@gisatcz/deckgl-geolib 2.6.0-dev.1 → 2.6.0-dev.2

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.
@@ -1,4 +1,4 @@
1
- "use strict";var A=require("@deck.gl/core"),g=require("@deck.gl/geo-layers"),I=require("@deck.gl/layers"),e=require("@deck.gl/extensions"),i=require("chroma-js"),t=require("@loaders.gl/schema"),B=require("@loaders.gl/loader-utils"),C=require("@deck.gl/mesh-layers");let Q=!1;function E(){"undefined"==typeof window||Q||(window.addEventListener("unhandledrejection",A=>{A.reason&&"AbortError"===A.reason.name&&A.preventDefault()}),Q=!0)}function s(A){return(g,...I)=>o(A,g,I)}function a(A,g){return s(r(A,g).get)}const{apply:o,getOwnPropertyDescriptor:r,getPrototypeOf:n,ownKeys:h}=Reflect,{iterator:l,toStringTag:c}=Symbol,D=Object,{create:w,defineProperty:d}=D,y=Array.prototype[l],f=s(y),u=ArrayBuffer;a(u.prototype,"byteLength");const S="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:null;S&&a(S.prototype,"byteLength");const G=n(Uint8Array);G.from;const N=G.prototype;N[l],s(N.keys),s(N.values),s(N.entries),s(N.set),s(N.reverse),s(N.fill),s(N.copyWithin),s(N.sort),s(N.slice),s(N.subarray),a(N,"buffer"),a(N,"byteOffset"),a(N,"length"),a(N,c);const F=Uint8Array,k=Uint16Array,R=Uint32Array,L=Float32Array,U=n([][l]()),p=s(U.next),M=s(function*(){}().next),Y=n(U),m=s(DataView.prototype.getUint16),K=WeakMap,H=K.prototype,J=s(H.get),b=s(H.set),q=new K,x=w(null,{next:{value:function(){const A=J(q,this);return p(A)}},[l]:{value:function(){return this}}});const T=new K,O=w(Y,{next:{value:function(){const A=J(T,this);return M(A)},writable:!0,configurable:!0}});for(const A of h(U))"next"!==A&&d(O,A,r(U,A));const P=new u(4),v=new L(P),V=new R(P),Z=new k(512),z=new F(512);for(let A=0;A<256;++A){const g=A-127;g<-24?(Z[A]=0,Z[256|A]=32768,z[A]=24,z[256|A]=24):g<-14?(Z[A]=1024>>-g-14,Z[256|A]=1024>>-g-14|32768,z[A]=-g-1,z[256|A]=-g-1):g<=15?(Z[A]=g+15<<10,Z[256|A]=g+15<<10|32768,z[A]=13,z[256|A]=13):g<128?(Z[A]=31744,Z[256|A]=64512,z[A]=24,z[256|A]=24):(Z[A]=31744,Z[256|A]=64512,z[A]=13,z[256|A]=13)}const j=new R(2048);for(let A=1;A<1024;++A){let g=A<<13,I=0;for(;!(8388608&g);)g<<=1,I-=8388608;g&=-8388609,I+=947912704,j[A]=g|I}for(let A=1024;A<2048;++A)j[A]=939524096+(A-1024<<13);const W=new R(64);for(let A=1;A<31;++A)W[A]=A<<23;W[31]=1199570944,W[32]=2147483648;for(let A=33;A<63;++A)W[A]=2147483648+(A-32<<23);W[63]=3347054592;const _=new k(64);for(let A=1;A<64;++A)32!==A&&(_[A]=1024);function X(A,g,...I){return function(A){const g=A>>10;return V[0]=j[_[g]+(1023&A)]+W[g],v[0]}(m(A,g,...function(A){if(A[l]===y&&U.next===p)return A;const g=w(x);return b(q,g,f(A)),g}(I)))}function $(A,g,I){const e="object"==typeof A?A.outer:A,i=e.slice(0,e.indexOf(">")+1),t=['"',"'"];for(let A=0;A<t.length;A++){const I=t[A],e=new RegExp(g+"\\="+I+"([^"+I+"]*)"+I).exec(i);if(e)return e[1]}}function AA(A,g,I){const e=new RegExp(g).exec(A.slice(I));return e?I+e.index+e[0].length-1:-1}function gA(A,g){const I=new RegExp(g,"g"),e=A.match(I);return e?e.length:0}function IA(A,g,I){const e=I&&I.debug||!1,i=!(I&&!1===typeof I.nested),t=I&&I.startIndex||0;e&&console.log("[xml-utils] starting findTagByName with",g," and ",I);const B=function(A,g,I){const e=new RegExp(g).exec(A.slice(I));return e?I+e.index:-1}(A,`<${g}[ \n>/]`,t);if(e&&console.log("[xml-utils] start:",B),-1===B)return;const C=A.slice(B+g.length);let Q=AA(C,"^[^<]*[ /]>",0);const E=-1!==Q&&"/"===C[Q-1];if(e&&console.log("[xml-utils] selfClosing:",E),!1===E)if(i){let A=0,I=1,e=0;for(;-1!==(Q=AA(C,"[ /]"+g+">",A));){const i=C.substring(A,Q+1);if(I+=gA(i,"<"+g+"[ \n\t>]"),e+=gA(i,"</"+g+">"),e>=I)break;A=Q}}else Q=AA(C,"[ /]"+g+">",0);const s=B+g.length+Q+1;if(e&&console.log("[xml-utils] end:",s),-1===s)return;const a=A.slice(B,s);let o;return o=E?null:a.slice(a.indexOf(">")+1,a.lastIndexOf("<")),{inner:o,outer:a,start:B,end:s}}const eA={BYTE:1,ASCII:2,SHORT:3,LONG:4,RATIONAL:5,SBYTE:6,UNDEFINED:7,SSHORT:8,SLONG:9,SRATIONAL:10,FLOAT:11,DOUBLE:12,IFD:13,LONG8:16,SLONG8:17,IFD8:18},iA={[eA.BYTE]:1,[eA.ASCII]:1,[eA.SBYTE]:1,[eA.UNDEFINED]:1,[eA.SHORT]:2,[eA.SSHORT]:2,[eA.LONG]:4,[eA.SLONG]:4,[eA.FLOAT]:4,[eA.IFD]:4,[eA.RATIONAL]:8,[eA.SRATIONAL]:8,[eA.DOUBLE]:8,[eA.LONG8]:8,[eA.SLONG8]:8,[eA.IFD8]:8};function tA(A){const g=iA[A];if(void 0===g)throw new RangeError(`Invalid field type: ${A}`);return g}const BA={NewSubfileType:{tag:254,type:eA.LONG,eager:!0},SubfileType:{tag:255,type:eA.SHORT,eager:!0},ImageWidth:{tag:256,type:eA.SHORT,eager:!0},ImageLength:{tag:257,type:eA.SHORT,eager:!0},BitsPerSample:{tag:258,type:eA.SHORT,isArray:!0,eager:!0},Compression:{tag:259,type:eA.SHORT,eager:!0},PhotometricInterpretation:{tag:262,type:eA.SHORT,eager:!0},Threshholding:{tag:263,type:eA.SHORT},CellWidth:{tag:264,type:eA.SHORT},CellLength:{tag:265,type:eA.SHORT},FillOrder:{tag:266,type:eA.SHORT},DocumentName:{tag:269,type:eA.ASCII},ImageDescription:{tag:270,type:eA.ASCII},Make:{tag:271,type:eA.ASCII},Model:{tag:272,type:eA.ASCII},StripOffsets:{tag:273,type:eA.SHORT,isArray:!0},Orientation:{tag:274,type:eA.SHORT},SamplesPerPixel:{tag:277,type:eA.SHORT,eager:!0},RowsPerStrip:{tag:278,type:eA.SHORT,eager:!0},StripByteCounts:{tag:279,type:eA.LONG,isArray:!0},MinSampleValue:{tag:280,type:eA.SHORT,isArray:!0},MaxSampleValue:{tag:281,type:eA.SHORT,isArray:!0},XResolution:{tag:282,type:eA.RATIONAL},YResolution:{tag:283,type:eA.RATIONAL},PlanarConfiguration:{tag:284,type:eA.SHORT,eager:!0},PageName:{tag:285,type:eA.ASCII},XPosition:{tag:286,type:eA.RATIONAL},YPosition:{tag:287,type:eA.RATIONAL},FreeOffsets:{tag:288,type:eA.LONG},FreeByteCounts:{tag:289,type:eA.LONG},GrayResponseUnit:{tag:290,type:eA.SHORT},GrayResponseCurve:{tag:291,type:eA.SHORT,isArray:!0},T4Options:{tag:292,type:eA.LONG},T6Options:{tag:293,type:eA.LONG},ResolutionUnit:{tag:296,type:eA.SHORT},PageNumber:{tag:297,type:eA.SHORT,isArray:!0},TransferFunction:{tag:301,type:eA.SHORT,isArray:!0},Software:{tag:305,type:eA.ASCII},DateTime:{tag:306,type:eA.ASCII},Artist:{tag:315,type:eA.ASCII},HostComputer:{tag:316,type:eA.ASCII},Predictor:{tag:317,type:eA.SHORT},WhitePoint:{tag:318,type:eA.RATIONAL,isArray:!0},PrimaryChromaticities:{tag:319,type:eA.RATIONAL,isArray:!0},ColorMap:{tag:320,type:eA.SHORT,isArray:!0},HalftoneHints:{tag:321,type:eA.SHORT,isArray:!0},TileWidth:{tag:322,type:eA.SHORT,eager:!0},TileLength:{tag:323,type:eA.SHORT,eager:!0},TileOffsets:{tag:324,type:eA.LONG,isArray:!0},TileByteCounts:{tag:325,type:eA.SHORT,isArray:!0},InkSet:{tag:332,type:eA.SHORT},InkNames:{tag:333,type:eA.ASCII},NumberOfInks:{tag:334,type:eA.SHORT},DotRange:{tag:336,type:eA.BYTE,isArray:!0},TargetPrinter:{tag:337,type:eA.ASCII},ExtraSamples:{tag:338,type:eA.BYTE,isArray:!0,eager:!0},SampleFormat:{tag:339,type:eA.SHORT,isArray:!0,eager:!0},SMinSampleValue:{tag:340,isArray:!0},SMaxSampleValue:{tag:341,isArray:!0},TransferRange:{tag:342,type:eA.SHORT,isArray:!0},JPEGProc:{tag:512,type:eA.SHORT},JPEGInterchangeFormat:{tag:513,type:eA.LONG},JPEGInterchangeFormatLngth:{tag:514,type:eA.LONG},JPEGRestartInterval:{tag:515,type:eA.SHORT},JPEGLosslessPredictors:{tag:517,type:eA.SHORT,isArray:!0},JPEGPointTransforms:{tag:518,type:eA.SHORT,isArray:!0},JPEGQTables:{tag:519,type:eA.LONG,isArray:!0},JPEGDCTables:{tag:520,type:eA.LONG,isArray:!0},JPEGACTables:{tag:521,type:eA.LONG,isArray:!0},YCbCrCoefficients:{tag:529,type:eA.RATIONAL,isArray:!0},YCbCrSubSampling:{tag:530,type:eA.SHORT,isArray:!0},YCbCrPositioning:{tag:531,type:eA.SHORT},ReferenceBlackWhite:{tag:532,type:eA.LONG,isArray:!0},Copyright:{tag:33432,type:eA.ASCII},BadFaxLines:{tag:326},CleanFaxData:{tag:327},ClipPath:{tag:343},ConsecutiveBadFaxLines:{tag:328},Decode:{tag:433},DefaultImageColor:{tag:434},Indexed:{tag:346},JPEGTables:{tag:347,isArray:!0,eager:!0},StripRowCounts:{tag:559,isArray:!0},SubIFDs:{tag:330,isArray:!0},XClipPathUnits:{tag:344},YClipPathUnits:{tag:345},ApertureValue:{tag:37378},ColorSpace:{tag:40961},DateTimeDigitized:{tag:36868},DateTimeOriginal:{tag:36867},ExifIFD:{tag:34665,name:"Exif IFD",type:eA.LONG},ExifVersion:{tag:36864},ExposureTime:{tag:33434},FileSource:{tag:41728},Flash:{tag:37385},FlashpixVersion:{tag:40960},FNumber:{tag:33437},ImageUniqueID:{tag:42016},LightSource:{tag:37384},MakerNote:{tag:37500},ShutterSpeedValue:{tag:37377},UserComment:{tag:37510},IPTC:{tag:33723},CZ_LSMINFO:{tag:34412},ICCProfile:{tag:34675,name:"ICC Profile"},XMP:{tag:700},GDAL_METADATA:{tag:42112},GDAL_NODATA:{tag:42113,type:eA.ASCII,eager:!0},Photoshop:{tag:34377},ModelPixelScale:{tag:33550,type:eA.DOUBLE,isArray:!0,eager:!0},ModelTiepoint:{tag:33922,type:eA.DOUBLE,isArray:!0,eager:!0},ModelTransformation:{tag:34264,type:eA.DOUBLE,isArray:!0,eager:!0},GeoKeyDirectory:{tag:34735,type:eA.SHORT,isArray:!0,eager:!0},GeoDoubleParams:{tag:34736,type:eA.DOUBLE,isArray:!0,eager:!0},GeoAsciiParams:{tag:34737,type:eA.ASCII,eager:!0},LercParameters:{tag:50674,eager:!0}},CA={},QA={};function EA(A,g,I,e=!1,i=!1){CA[g]=A,QA[A]={tag:A,name:g,type:"string"==typeof I?eA[I]:I,isArray:e,eager:i}}for(const[A,g]of Object.entries(BA)){const I=g;EA(I.tag,I.name||A,I.type,I.isArray,I.eager)}function sA(A){return"number"==typeof A?A:CA[A]}const aA=0,oA=1,rA=2,nA=3,hA=5,lA=6,cA=8,DA=0,wA=1,dA=0,yA=1,fA=2,uA={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"};for(const[A,g]of Object.entries(uA));const SA=new Map;async function GA(A){const g=!A.hasTag("StripOffsets");return{tileWidth:g?await A.loadValue("TileWidth"):await A.loadValue("ImageWidth"),tileHeight:g?await A.loadValue("TileLength"):await A.loadValue("RowsPerStrip")||await A.loadValue("ImageLength"),planarConfiguration:await A.loadValue("PlanarConfiguration"),bitsPerSample:await A.loadValue("BitsPerSample"),predictor:await A.loadValue("Predictor")||1}}function NA(A,g,I=GA,e=!0){Array.isArray(A)||(A=[A]),A.forEach(A=>{SA.set(A,{importFn:g,decoderParameterFn:I,preferWorker:e})})}const FA=[{cases:[void 0,1],importFn:()=>Promise.resolve().then(function(){return AI}).then(A=>A.default),preferWorker:!1},{cases:5,importFn:()=>Promise.resolve().then(function(){return eI}).then(A=>A.default)},{cases:6,importFn:()=>{throw new Error("old style JPEG compression is not supported.")}},{cases:7,importFn:()=>Promise.resolve().then(function(){return cI}).then(A=>A.default),decoderParameterFn:async A=>({...await GA(A),JPEGTables:await A.loadValue("JPEGTables")})},{cases:[8,32946],importFn:()=>Promise.resolve().then(function(){return Ye}).then(A=>A.default)},{cases:32773,importFn:()=>Promise.resolve().then(function(){return me}).then(A=>A.default)},{cases:34887,importFn:()=>Promise.resolve().then(function(){return ze}).then(async A=>(await A.zstd.init(),A)).then(A=>A.default),decoderParameterFn:async A=>({...await GA(A),LercParameters:await A.loadValue("LercParameters")})},{cases:5e4,importFn:()=>Promise.resolve().then(function(){return Ii}).then(async A=>(await A.zstd.init(),A)).then(A=>A.default)},{cases:50001,importFn:()=>Promise.resolve().then(function(){return ei}).then(A=>A.default),decoderParameterFn:async A=>({...await GA(A),samplesPerPixel:Number(await A.loadValue("SamplesPerPixel"))||4}),preferWorker:!1}];for(const A of FA){const{cases:g,importFn:I,decoderParameterFn:e,preferWorker:i}=A;NA(g,I,e,i)}function kA(A,g,I,e=1){return new(Object.getPrototypeOf(A).constructor)(g*I*e)}function RA(A,g,I){return(1-I)*A+I*g}function LA(A,g,I,e,i,t="nearest"){switch(t.toLowerCase()){case"nearest":return function(A,g,I,e,i){const t=g/e,B=I/i;return A.map(A=>{const C=kA(A,e,i);for(let Q=0;Q<i;++Q){const i=Math.min(Math.round(B*Q),I-1);for(let I=0;I<e;++I){const B=Math.min(Math.round(t*I),g-1),E=A[i*g+B];C[Q*e+I]=E}}return C})}(A,g,I,e,i);case"bilinear":case"linear":return function(A,g,I,e,i){const t=g/e,B=I/i;return A.map(A=>{const C=kA(A,e,i);for(let Q=0;Q<i;++Q){const i=B*Q,E=Math.floor(i),s=Math.min(Math.ceil(i),I-1);for(let I=0;I<e;++I){const B=t*I,a=B%1,o=Math.floor(B),r=Math.min(Math.ceil(B),g-1),n=A[E*g+o],h=A[E*g+r],l=A[s*g+o],c=A[s*g+r],D=RA(RA(n,h,a),RA(l,c,a),i%1);C[Q*e+I]=D}}return C})}(A,g,I,e,i);default:throw new Error(`Unsupported resampling method: '${t}'`)}}function UA(A,g,I,e,i,t,B="nearest"){switch(B.toLowerCase()){case"nearest":return function(A,g,I,e,i,t){const B=g/e,C=I/i,Q=kA(A,e,i,t);for(let E=0;E<i;++E){const i=Math.min(Math.round(C*E),I-1);for(let I=0;I<e;++I){const C=Math.min(Math.round(B*I),g-1);for(let B=0;B<t;++B){const s=A[i*g*t+C*t+B];Q[E*e*t+I*t+B]=s}}}return Q}(A,g,I,e,i,t);case"bilinear":case"linear":return function(A,g,I,e,i,t){const B=g/e,C=I/i,Q=kA(A,e,i,t);for(let E=0;E<i;++E){const i=C*E,s=Math.floor(i),a=Math.min(Math.ceil(i),I-1);for(let I=0;I<e;++I){const C=B*I,o=C%1,r=Math.floor(C),n=Math.min(Math.ceil(C),g-1);for(let B=0;B<t;++B){const C=A[s*g*t+r*t+B],h=A[s*g*t+n*t+B],l=A[a*g*t+r*t+B],c=A[a*g*t+n*t+B],D=RA(RA(C,h,o),RA(l,c,o),i%1);Q[E*e*t+I*t+B]=D}}}return Q}(A,g,I,e,i,t);default:throw new Error(`Unsupported resampling method: '${B}'`)}}function pA(A,g,I){let e=0;for(let i=g;i<I;++i)e+=A[i];return e}function MA(A,g,I){let e;switch(A){case 1:g<=8?e=Uint8Array:g<=16?e=Uint16Array:g<=32&&(e=Uint32Array);break;case 2:8===g?e=Int8Array:16===g?e=Int16Array:32===g&&(e=Int32Array);break;case 3:switch(g){case 16:case 32:e=Float32Array;break;case 64:e=Float64Array}}if(e){if("number"==typeof I)return new e(I);if(I instanceof ArrayBuffer)return new e(I)}throw Error("Unsupported data format/bitsPerSample")}class YA{constructor(A,g,I,e){this.fileDirectory=A,this.littleEndian=g,this.tiles=I?[]:null,this.isTiled=!A.hasTag("StripOffsets");const i=A.getValue("PlanarConfiguration")??1;if(1!==i&&2!==i)throw new Error("Invalid planar configuration.");this.planarConfiguration=i,this.source=e}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.fileDirectory.parseGeoKeyDirectory()}getWidth(){return this.fileDirectory.getValue("ImageWidth")||0}getHeight(){return this.fileDirectory.getValue("ImageLength")||0}getSamplesPerPixel(){return this.fileDirectory.getValue("SamplesPerPixel")??1}getTileWidth(){return this.isTiled?this.fileDirectory.getValue("TileWidth")||0:this.getWidth()}getTileHeight(){if(this.isTiled)return this.fileDirectory.getValue("TileLength")||0;const A=this.fileDirectory.hasTag("RowsPerStrip")&&this.fileDirectory.getValue("RowsPerStrip");return A?Math.min(A,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(A){return this.isTiled||(A+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-A*this.getTileHeight()}getBytesPerPixel(){let A=0;const g=this.fileDirectory.getValue("BitsPerSample")||[];for(let I=0;I<g.length;++I)A+=this.getSampleByteSize(I);return A}getSampleByteSize(A){const g=this.fileDirectory.getValue("BitsPerSample")||[];if(A>=g.length)throw new RangeError(`Sample index ${A} is out of range.`);return Math.ceil(g[A]/8)}getReaderForSample(A){const g=this.fileDirectory.getValue("SampleFormat"),I=g?g[A]:1,e=(this.fileDirectory.getValue("BitsPerSample")||[])[A];switch(I){case 1:if(e<=8)return DataView.prototype.getUint8;if(e<=16)return DataView.prototype.getUint16;if(e<=32)return DataView.prototype.getUint32;break;case 2:if(e<=8)return DataView.prototype.getInt8;if(e<=16)return DataView.prototype.getInt16;if(e<=32)return DataView.prototype.getInt32;break;case 3:switch(e){case 16:return function(A,g){return X(this,A,g)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(A=0){const g=this.fileDirectory.getValue("SampleFormat");return g?g[A]:1}getBitsPerSample(A=0){const g=this.fileDirectory.getValue("BitsPerSample");return g?g[A]:0}getArrayForSample(A,g){return MA(this.getSampleFormat(A),this.getBitsPerSample(A),g)}async getTileOrStrip(A,g,I,e,i){const t=Math.ceil(this.getWidth()/this.getTileWidth()),B=Math.ceil(this.getHeight()/this.getTileHeight());let C;const{tiles:Q}=this;if(1===this.planarConfiguration?C=g*t+A:2===this.planarConfiguration&&(C=I*t*B+g*t+A),void 0===C)throw new Error("Could not determine tile or strip index.");let E,s;if(this.isTiled?(E=Number(await this.fileDirectory.loadValueIndexed("TileOffsets",C)),s=Number(await this.fileDirectory.loadValueIndexed("TileByteCounts",C))):(E=Number(await this.fileDirectory.loadValueIndexed("StripOffsets",C)),s=Number(await this.fileDirectory.loadValueIndexed("StripByteCounts",C))),0===s){const e=this.getBlockHeight(g)*this.getTileWidth(),i=2===this.planarConfiguration?this.getSampleByteSize(I):this.getBytesPerPixel(),t=new ArrayBuffer(e*i);return this.getArrayForSample(I,t).fill(this.getGDALNoData()||0),{x:A,y:g,sample:I,data:t}}const a=(await this.source.fetch([{offset:E,length:s}],i))[0];let o;return null!==Q&&Q[C]?o=Q[C]:(o=(async()=>{let A=await e.decode(a);const I=this.getSampleFormat(),i=this.getBitsPerSample();return function(A,g){return(1!==A&&2!==A||!(g<=32)||g%8!=0)&&(3!==A||16!==g&&32!==g&&64!==g)}(I,i)&&(A=function(A,g,I,e,i,t,B){const C=new DataView(A),Q=2===I?1:e,E=MA(g,i,2===I?B*t:B*t*e),s=parseInt("1".repeat(i),2);if(1===g){let A;A=1===I?e*i:i;let g=t*A;7&g&&(g=g+7&-8);for(let A=0;A<B;++A){const I=A*g;for(let g=0;g<t;++g){const e=I+g*Q*i;for(let I=0;I<Q;++I){const B=e+I*i,a=(A*t+g)*Q+I,o=Math.floor(B/8),r=B%8;if(r+i<=8)E[a]=C.getUint8(o)>>8-i-r&s;else if(r+i<=16)E[a]=C.getUint16(o)>>16-i-r&s;else if(r+i<=24){const A=C.getUint16(o)<<8|C.getUint8(o+2);E[a]=A>>24-i-r&s}else E[a]=C.getUint32(o)>>32-i-r&s}}}}return E.buffer}(A,I,this.planarConfiguration,this.getSamplesPerPixel(),i,this.getTileWidth(),this.getBlockHeight(g))),A})(),null!==Q&&(Q[C]=o)),{x:A,y:g,sample:I,data:await o}}async _readRaster(A,g,I,e,i,t,B,C,Q){const E=this.getTileWidth(),s=this.getTileHeight(),a=this.getWidth(),o=this.getHeight(),r=Math.max(Math.floor(A[0]/E),0),n=Math.min(Math.ceil(A[2]/E),Math.ceil(a/E)),h=Math.max(Math.floor(A[1]/s),0),l=Math.min(Math.ceil(A[3]/s),Math.ceil(o/s)),c=A[2]-A[0];let D=this.getBytesPerPixel();const w=[],d=[];for(let A=0;A<g.length;++A){if(1===this.planarConfiguration){const I=await this.fileDirectory.loadValue("BitsPerSample");if("object"!=typeof I)throw new Error("Expected BitsPerSample to be an array or typed array.");w.push(pA(I,0,g[A])/8)}else w.push(0);d.push(this.getReaderForSample(g[A]))}const y=[],{littleEndian:f}=this;for(let t=h;t<l;++t)for(let B=r;B<n;++B){let C;1===this.planarConfiguration&&(C=this.getTileOrStrip(B,t,0,i,Q));for(let r=0;r<g.length;++r){const n=r,h=g[r];if(2===this.planarConfiguration&&(D=this.getSampleByteSize(h),C=this.getTileOrStrip(B,t,h,i,Q)),!C)throw new Error("Could not get tile or strip data.");const l=C.then(i=>{const t=i.data,B=new DataView(t),C=this.getBlockHeight(i.y),Q=i.y*s,r=i.x*E,h=Q+C,l=(i.x+1)*E,y=d[n],u=Math.min(C,C-(h-A[3]),o-Q),S=Math.min(E,E-(l-A[2]),a-r);for(let i=Math.max(0,A[1]-Q);i<u;++i)for(let t=Math.max(0,A[0]-r);t<S;++t){const C=(i*E+t)*D,s=y.call(B,C+w[n],f);let a;e?(a=(i+Q-A[1])*c*g.length+(t+r-A[0])*g.length+n,I[a]=s):(a=(i+Q-A[1])*c+t+r-A[0],I[n][a]=s)}});y.push(l)}}if(await Promise.all(y),t&&A[2]-A[0]!==t||B&&A[3]-A[1]!==B){let i;i=e?UA(I,A[2]-A[0],A[3]-A[1],t,B,g.length,C):LA(I,A[2]-A[0],A[3]-A[1],t,B,C);const Q=i;return Q.width=t??A[2]-A[0],Q.height=B??A[3]-A[1],Q}const u=I;return u.width=t||A[2]-A[0],u.height=B||A[3]-A[1],u}async readRasters(A={}){const{window:g,samples:I=[],pool:e=null,width:i,height:t,resampleMethod:B,fillValue:C,signal:Q}=A,E="interleave"in A&&A.interleave,s=g||[0,0,this.getWidth(),this.getHeight()];if(s[0]>s[2]||s[1]>s[3])throw new Error("Invalid subsets");const a=(s[2]-s[0])*(s[3]-s[1]),o=this.getSamplesPerPixel();if(I&&I.length){for(let A=0;A<I.length;++A)if(I[A]>=o)return Promise.reject(new RangeError(`Invalid sample index '${I[A]}'.`))}else for(let A=0;A<o;++A)I.push(A);let r;if(E){const{fileDirectory:A}=this,g=A.getValue("SampleFormat"),e=g?Math.max.apply(null,Array.from(g)):1;if(1!==e&&2!==e&&3!==e)throw new Error("Unsupported sample format for interleaved data. Must be 1, 2, or 3.");const i=A.getValue("BitsPerSample");if(r=MA(e,i?Math.max.apply(null,Array.from(i)):8,a*I.length),C){if(Array.isArray(C))throw new Error("When reading interleaved data, fillValue must be a single number.");r.fill(C)}}else{r=[];for(let A=0;A<I.length;++A){const g=this.getArrayForSample(I[A],a);Array.isArray(C)&&A<C.length?g.fill(C[A]):C&&!Array.isArray(C)&&g.fill(C),r.push(g)}}const n=this.fileDirectory.getValue("Compression")||1,h=await async function(A,g){if(!SA.has(A))throw new Error(`Unknown compression method identifier: ${A}`);const{decoderParameterFn:I}=SA.get(A);return I(g)}(n,this.fileDirectory),l=e?e.bindParameters(n,h):await async function(A,g){if(!SA.has(A))throw new Error(`Unknown compression method identifier: ${A}`);const{importFn:I}=SA.get(A);return new(await I())(g)}(n,h);return await this._readRaster(s,I,r,E,l,i,t,B,Q)}async readRGB(A={}){const{window:g,pool:I=null,width:e,height:i,resampleMethod:t,enableAlpha:B=!1,signal:C}=A,Q=("interleave"in A&&A.interleave)??!1,E=g||[0,0,this.getWidth(),this.getHeight()];if(E[0]>E[2]||E[1]>E[3])throw new Error("Invalid subsets");const s=this.fileDirectory.getValue("PhotometricInterpretation");if(s===rA){let A=[0,1,2];const E=this.fileDirectory.getValue("ExtraSamples");if(E&&E[0]!==DA&&B){A=[];const g=this.fileDirectory.getValue("BitsPerSample")||[];for(let I=0;I<g.length;I+=1)A.push(I)}return this.readRasters({window:g,interleave:Q,samples:A,pool:I,width:e,height:i,resampleMethod:t,signal:C})}let a;switch(s){case aA:case oA:case nA:a=[0];break;case hA:a=[0,1,2,3];break;case lA:case cA:a=[0,1,2];break;default:throw new Error("Invalid or unsupported photometric interpretation.")}const o={window:E,interleave:!0,samples:a,pool:I,width:e,height:i,resampleMethod:t,signal:C},{fileDirectory:r}=this,n=await this.readRasters(o),h=2**this.getBitsPerSample(0);let l;switch(s){case aA:l=function(A,g){const{width:I,height:e}=A,i=new Uint8Array(I*e*3);let t;for(let I=0,e=0;I<A.length;++I,e+=3)t=256-A[I]/g*256,i[e]=t,i[e+1]=t,i[e+2]=t;return i}(n,h);break;case oA:l=function(A,g){const{width:I,height:e}=A,i=new Uint8Array(I*e*3);let t;for(let I=0,e=0;I<A.length;++I,e+=3)t=A[I]/g*256,i[e]=t,i[e+1]=t,i[e+2]=t;return i}(n,h);break;case nA:l=function(A,g){const{width:I,height:e}=A,i=new Uint8Array(I*e*3),t=g.length/3,B=g.length/3*2;for(let I=0,e=0;I<A.length;++I,e+=3){const C=A[I];i[e]=g[C]/65536*256,i[e+1]=g[C+t]/65536*256,i[e+2]=g[C+B]/65536*256}return i}(n,await r.loadValue("ColorMap"));break;case hA:l=function(A){const{width:g,height:I}=A,e=new Uint8Array(g*I*3);for(let g=0,I=0;g<A.length;g+=4,I+=3){const i=A[g],t=A[g+1],B=A[g+2],C=A[g+3];e[I]=(255-i)/256*255*((255-C)/256),e[I+1]=(255-t)/256*255*((255-C)/256),e[I+2]=(255-B)/256*255*((255-C)/256)}return e}(n);break;case lA:l=function(A){const{width:g,height:I}=A,e=new Uint8ClampedArray(g*I*3);for(let g=0,I=0;g<A.length;g+=3,I+=3){const i=A[g],t=A[g+1],B=A[g+2];e[I]=i+1.402*(B-128),e[I+1]=i-.34414*(t-128)-.71414*(B-128),e[I+2]=i+1.772*(t-128)}return e}(n);break;case cA:l=function(A){const{width:g,height:I}=A,e=new Uint8Array(g*I*3);for(let g=0,I=0;g<A.length;g+=3,I+=3){let i,t,B,C=(A[g+0]+16)/116,Q=(A[g+1]<<24>>24)/500+C,E=C-(A[g+2]<<24>>24)/200;Q=.95047*(Q*Q*Q>.008856?Q*Q*Q:(Q-16/116)/7.787),C=1*(C*C*C>.008856?C*C*C:(C-16/116)/7.787),E=1.08883*(E*E*E>.008856?E*E*E:(E-16/116)/7.787),i=3.2406*Q+-1.5372*C+-.4986*E,t=-.9689*Q+1.8758*C+.0415*E,B=.0557*Q+-.204*C+1.057*E,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,t=t>.0031308?1.055*t**(1/2.4)-.055:12.92*t,B=B>.0031308?1.055*B**(1/2.4)-.055:12.92*B,e[I]=255*Math.max(0,Math.min(1,i)),e[I+1]=255*Math.max(0,Math.min(1,t)),e[I+2]=255*Math.max(0,Math.min(1,B))}return e}(n);break;default:throw new Error("Unsupported photometric interpretation.")}if(!Q){const A=new Uint8Array(l.length/3),g=new Uint8Array(l.length/3),I=new Uint8Array(l.length/3);for(let e=0,i=0;e<l.length;e+=3,++i)A[i]=l[e],g[i]=l[e+1],I[i]=l[e+2];l=[A,g,I]}const c=l;return c.width=n.width,c.height=n.height,c}async getTiePoints(){if(!this.fileDirectory.hasTag("ModelTiepoint"))return[];const A=await this.fileDirectory.loadValue("ModelTiepoint");if("object"!=typeof A)throw new Error("Expected ModelTiepoint to be an array or typed array.");const g=[];for(let I=0;I<A.length;I+=6)g.push({i:A[I],j:A[I+1],k:A[I+2],x:A[I+3],y:A[I+4],z:A[I+5]});return g}async getGDALMetadata(A=null){const g={};if(!this.fileDirectory.hasTag("GDAL_METADATA"))return null;let I=function(A,g){const I=[];let e,i=0;for(;e=IA(A,g,{debug:!1,startIndex:i});)i=e.start+1+g.length,I.push(e);return I}(await this.fileDirectory.loadValue("GDAL_METADATA"),"Item");I=null===A?I.filter(A=>void 0===$(A,"sample")):I.filter(g=>Number($(g,"sample"))===A);for(let A=0;A<I.length;++A){const e=I[A];g[$(e,"name")]=e.inner}return g}getGDALNoData(){const A=this.fileDirectory.hasTag("GDAL_NODATA")&&this.fileDirectory.getValue("GDAL_NODATA");return A?Number(A.substring(0,A.length-1)):null}getOrigin(){const A=this.fileDirectory.getValue("ModelTiepoint"),g=this.fileDirectory.getValue("ModelTransformation");if(A&&6===A.length)return[A[3],A[4],A[5]];if(g)return[g[3],g[7],g[11]];throw new Error("The image does not have an affine transformation.")}getResolution(A=null){const g=this.fileDirectory.getValue("ModelPixelScale"),I=this.fileDirectory.getValue("ModelTransformation");if(g)return[g[0],-g[1],g[2]];if(I)return 0===I[1]&&0===I[4]?[I[0],-I[5],I[10]]:[Math.sqrt(I[0]*I[0]+I[4]*I[4]),-Math.sqrt(I[1]*I[1]+I[5]*I[5]),I[10]];if(A){const[g,I,e]=A.getResolution();return[g*A.getWidth()/this.getWidth(),I*A.getHeight()/this.getHeight(),e*A.getWidth()/this.getWidth()]}throw new Error("The image does not have an affine transformation.")}pixelIsArea(){return 1===this.getGeoKeys()?.GTRasterTypeGeoKey}getBoundingBox(A=!1){const g=this.getHeight(),I=this.getWidth(),e=this.fileDirectory.getValue("ModelTransformation");if(e&&!A){const[A,i,,t,B,C,,Q]=e,E=[[0,0],[0,g],[I,0],[I,g]].map(([g,I])=>[t+A*g+i*I,Q+B*g+C*I]),s=E.map(A=>A[0]),a=E.map(A=>A[1]);return[Math.min(...s),Math.min(...a),Math.max(...s),Math.max(...a)]}{const A=this.getOrigin(),e=this.getResolution(),i=A[0],t=A[1],B=i+e[0]*I,C=t+e[1]*g;return[Math.min(i,B),Math.min(t,C),Math.max(i,B),Math.max(t,C)]}}}class mA{constructor(A){this._dataView=new DataView(A)}get buffer(){return this._dataView.buffer}getUint64(A,g){const I=this.getUint32(A,g),e=this.getUint32(A+4,g);let i;if(g){if(i=I+2**32*e,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}if(i=2**32*I+e,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}getInt64(A,g){let I=0;const e=(128&this._dataView.getUint8(A+(g?7:0)))>0;let i=!0;for(let t=0;t<8;t++){let B=this._dataView.getUint8(A+(g?t:7-t));e&&(i?0!==B&&(B=255&~(B-1),i=!1):B=255&~B),I+=B*256**t}return e&&(I=-I),I}getUint8(A){return this._dataView.getUint8(A)}getInt8(A){return this._dataView.getInt8(A)}getUint16(A,g){return this._dataView.getUint16(A,g)}getInt16(A,g){return this._dataView.getInt16(A,g)}getUint32(A,g){return this._dataView.getUint32(A,g)}getInt32(A,g){return this._dataView.getInt32(A,g)}getFloat16(A,g){return X(this._dataView,A,g)}getFloat32(A,g){return this._dataView.getFloat32(A,g)}getFloat64(A,g){return this._dataView.getFloat64(A,g)}}class KA{constructor(A,g,I,e){this._dataView=new DataView(A),this._sliceOffset=g,this._littleEndian=I,this._bigTiff=e}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(A,g){return this.sliceOffset<=A&&this.sliceTop>=A+g}readUint8(A){return this._dataView.getUint8(A-this._sliceOffset)}readInt8(A){return this._dataView.getInt8(A-this._sliceOffset)}readUint16(A){return this._dataView.getUint16(A-this._sliceOffset,this._littleEndian)}readInt16(A){return this._dataView.getInt16(A-this._sliceOffset,this._littleEndian)}readUint32(A){return this._dataView.getUint32(A-this._sliceOffset,this._littleEndian)}readInt32(A){return this._dataView.getInt32(A-this._sliceOffset,this._littleEndian)}readFloat32(A){return this._dataView.getFloat32(A-this._sliceOffset,this._littleEndian)}readFloat64(A){return this._dataView.getFloat64(A-this._sliceOffset,this._littleEndian)}readUint64(A){const g=this.readUint32(A),I=this.readUint32(A+4);let e;if(this._littleEndian){if(e=g+2**32*I,!Number.isSafeInteger(e))throw new Error(`${e} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return e}if(e=2**32*g+I,!Number.isSafeInteger(e))throw new Error(`${e} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return e}readInt64(A){let g=0;const I=(128&this._dataView.getUint8(A+(this._littleEndian?7:0)))>0;let e=!0;for(let i=0;i<8;i++){let t=this._dataView.getUint8(A+(this._littleEndian?i:7-i));I&&(e?0!==t&&(t=255&~(t-1),e=!1):t=255&~t),g+=t*256**i}return I&&(g=-g),g}readOffset(A){return this._bigTiff?this.readUint64(A):this.readUint32(A)}}const HA="\r\n\r\n";function JA(A){if(void 0!==Object.fromEntries)return Object.fromEntries(A);const g={};for(const[I,e]of A)g[I.toLowerCase()]=e;return g}function bA(A){return JA(A.split("\r\n").map(A=>{const g=A.split(":").map(A=>A.trim());return g[0]=g[0].toLowerCase(),g}))}function qA(A){let g=NaN,I=NaN,e=NaN;return A&&([,g,I,e]=(A.match(/bytes (\d+)-(\d+)\/(\d+)/)||[]).map(Number)),{start:g,end:I,total:e}}class xA{async fetch(A,g){return Promise.all(A.map(async A=>(await this.fetchSlice(A,g)).data))}async fetchSlice(A,g){throw new Error(`fetching of slice ${A} not possible, not implemented`)}get fileSize(){return null}async close(){}}class TA extends Map{constructor(A={}){if(super(),!(A.maxSize&&A.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof A.maxAge&&0===A.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=A.maxSize,this.maxAge=A.maxAge||Number.POSITIVE_INFINITY,this.onEviction=A.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(A){if("function"==typeof this.onEviction)for(const[g,I]of A)this.onEviction(g,I.value)}_deleteIfExpired(A,g){return"number"==typeof g.expiry&&g.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(A,g.value),this.delete(A))}_getOrDeleteIfExpired(A,g){if(!1===this._deleteIfExpired(A,g))return g.value}_getItemValue(A,g){return g.expiry?this._getOrDeleteIfExpired(A,g):g.value}_peek(A,g){const I=g.get(A);return this._getItemValue(A,I)}_set(A,g){this.cache.set(A,g),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(A,g){this.oldCache.delete(A),this._set(A,g)}*_entriesAscending(){for(const A of this.oldCache){const[g,I]=A;if(!this.cache.has(g)){!1===this._deleteIfExpired(g,I)&&(yield A)}}for(const A of this.cache){const[g,I]=A;!1===this._deleteIfExpired(g,I)&&(yield A)}}get(A){if(this.cache.has(A)){const g=this.cache.get(A);return this._getItemValue(A,g)}if(this.oldCache.has(A)){const g=this.oldCache.get(A);if(!1===this._deleteIfExpired(A,g))return this._moveToRecent(A,g),g.value}}set(A,g,{maxAge:I=this.maxAge}={}){const e="number"==typeof I&&I!==Number.POSITIVE_INFINITY?Date.now()+I:void 0;return this.cache.has(A)?this.cache.set(A,{value:g,expiry:e}):this._set(A,{value:g,expiry:e}),this}has(A){return this.cache.has(A)?!this._deleteIfExpired(A,this.cache.get(A)):!!this.oldCache.has(A)&&!this._deleteIfExpired(A,this.oldCache.get(A))}peek(A){return this.cache.has(A)?this._peek(A,this.cache):this.oldCache.has(A)?this._peek(A,this.oldCache):void 0}delete(A){const g=this.cache.delete(A);return g&&this._size--,this.oldCache.delete(A)||g}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(A){if(!(A&&A>0))throw new TypeError("`maxSize` must be a number greater than 0");const g=[...this._entriesAscending()],I=g.length-A;I<0?(this.cache=new Map(g),this.oldCache=new Map,this._size=g.length):(I>0&&this._emitEvictions(g.slice(0,I)),this.oldCache=new Map(g.slice(I)),this.cache=new Map,this._size=0),this.maxSize=A}*keys(){for(const[A]of this)yield A}*values(){for(const[,A]of this)yield A}*[Symbol.iterator](){for(const A of this.cache){const[g,I]=A;!1===this._deleteIfExpired(g,I)&&(yield[g,I.value])}for(const A of this.oldCache){const[g,I]=A;if(!this.cache.has(g)){!1===this._deleteIfExpired(g,I)&&(yield[g,I.value])}}}*entriesDescending(){let A=[...this.cache];for(let g=A.length-1;g>=0;--g){const I=A[g],[e,i]=I;!1===this._deleteIfExpired(e,i)&&(yield[e,i.value])}A=[...this.oldCache];for(let g=A.length-1;g>=0;--g){const I=A[g],[e,i]=I;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,i)&&(yield[e,i.value])}}}*entriesAscending(){for(const[A,g]of this._entriesAscending())yield[A,g.value]}get size(){if(!this._size)return this.oldCache.size;let A=0;for(const g of this.oldCache.keys())this.cache.has(g)||A++;return Math.min(this._size+A,this.maxSize)}entries(){return this.entriesAscending()}forEach(A,g=this){for(const[I,e]of this.entriesAscending())A.call(g,e,I,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}class OA extends Error{constructor(...A){super(...A),Error.captureStackTrace&&Error.captureStackTrace(this,OA),this.name="AbortError",this.signal=void 0}}class PA extends Error{constructor(A,g){super(g),this.errors=A,this.message=g,this.name="AggregateError"}}const vA=PA;class VA{constructor(A,g,I){this.offset=A,this.length=g,this.data=I}get top(){return this.offset+this.length}}class ZA{constructor(A,g,I){this.offset=A,this.length=g,this.blockIds=I}}class zA extends xA{constructor(A,{blockSize:g=65536,cacheSize:I=100}={}){super(),this.source=A,this.blockSize=g,this.blockCache=new TA({maxSize:I,onEviction:(A,g)=>{this.evictedBlocks.set(A,g)}}),this.evictedBlocks=new Map,this.blockRequests=new Map,this.blockIdsToFetch=new Set,this.abortedBlockIds=new Set}get fileSize(){return this.source.fileSize}async fetch(A,g){const I=[],e=[],i=[];this.evictedBlocks.clear();for(const{offset:g,length:t}of A){let A=g+t;const{fileSize:B}=this;null!==B&&(A=Math.min(A,B));for(let t=Math.floor(g/this.blockSize)*this.blockSize;t<A;t+=this.blockSize){const A=Math.floor(t/this.blockSize);this.blockCache.has(A)||this.blockRequests.has(A)||(this.blockIdsToFetch.add(A),e.push(A)),this.blockRequests.has(A)&&I.push(this.blockRequests.get(A)),i.push(A)}}await async function(A){return new Promise(g=>setTimeout(g,A))}(),this.fetchBlocks(g);const t=[];for(const A of e)this.blockRequests.has(A)&&t.push(this.blockRequests.get(A));await Promise.allSettled(I),await Promise.allSettled(t);const B=[],C=i.filter(A=>this.abortedBlockIds.has(A)||!this.blockCache.has(A));if(C.forEach(A=>this.blockIdsToFetch.add(A)),C.length>0&&g&&!g.aborted){this.fetchBlocks();for(const A of C){const g=this.blockRequests.get(A);if(!g)throw new Error(`Block ${A} is not in the block requests`);B.push(g)}await Promise.allSettled(B)}if(g&&g.aborted)throw new OA("Request was aborted");const Q=i.map(A=>this.blockCache.get(A)||this.evictedBlocks.get(A)),E=Q.filter(A=>!A);if(E.length)throw new vA(E,"Request failed");const s=new Map(function(A,g){const I=Array.isArray(A)?A:Array.from(A),e=Array.isArray(g)?g:Array.from(g);return I.map((A,g)=>[A,e[g]])}(i,Q));return this.readSliceData(A,s)}fetchBlocks(A){if(this.blockIdsToFetch.size>0){const g=this.groupBlocks(this.blockIdsToFetch),I=g.map(async g=>({...g,...await this.source.fetchSlice(g,A)}));for(let e=0;e<g.length;++e){const i=g[e];for(const g of i.blockIds)this.blockRequests.set(g,(async()=>{try{const A=(await Promise.all(I))[e],i=g*this.blockSize,t=i-A.offset,B=Math.min(t+this.blockSize,A.data.byteLength),C=A.data.slice(t,B),Q=new VA(i,C.byteLength,C);this.blockCache.set(g,Q),this.abortedBlockIds.delete(g)}catch(I){if(!(I instanceof OA&&"AbortError"===I.name))throw I;I.signal=A,this.blockCache.delete(g),this.abortedBlockIds.add(g)}finally{this.blockRequests.delete(g)}})())}this.blockIdsToFetch.clear()}}groupBlocks(A){const g=Array.from(A).sort((A,g)=>A-g);if(0===g.length)return[];let I=[],e=null;const i=[];for(const A of g)null===e||e+1===A?(I.push(A),e=A):(i.push(new ZA(I[0]*this.blockSize,I.length*this.blockSize,I)),I=[A],e=A);return i.push(new ZA(I[0]*this.blockSize,I.length*this.blockSize,I)),i}readSliceData(A,g){return A.map(A=>{let I=A.offset+A.length;null!==this.fileSize&&(I=Math.min(this.fileSize,I));const e=Math.floor(A.offset/this.blockSize),i=Math.floor((I-1)/this.blockSize),t=new ArrayBuffer(A.length),B=new Uint8Array(t);for(let t=e;t<=i;++t){const e=g.get(t);if(!e)continue;const i=e.offset-A.offset;let C,Q=0,E=0;i<0?Q=-i:i>0&&(E=i),C=e.top-I<0?e.length-Q:I-e.offset-Q;const s=new Uint8Array(e.data,Q,C);B.set(s,E)}return t})}}class jA{get ok(){return this.status>=200&&this.status<=299}get status(){throw new Error("not implemented")}getHeader(A){throw new Error("not implemented")}async getData(){throw new Error("not implemented")}}class WA{constructor(A){this.url=A}async request(A){throw new Error("request is not implemented")}}class _A extends jA{constructor(A){super(),this.response=A}get status(){return this.response.status}getHeader(A){return this.response.headers.get(A)||void 0}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}}class XA extends WA{constructor(A,g){super(A),this.credentials=g}async request({headers:A,signal:g}={}){const I=await fetch(this.url,{headers:A,credentials:this.credentials,signal:g});return new _A(I)}}class $A extends jA{constructor(A,g){super(),this.xhr=A,this.data=g}get status(){return this.xhr.status}getHeader(A){return this.xhr.getResponseHeader(A)||void 0}async getData(){return this.data}}class Ag extends WA{constructRequest(A,g){return new Promise((I,e)=>{const i=new XMLHttpRequest;i.open("GET",this.url),i.responseType="arraybuffer";for(const[g,I]of Object.entries(A))i.setRequestHeader(g,I);i.onload=()=>{const A=i.response;I(new $A(i,A))},i.onerror=e,i.onabort=()=>e(new OA("Request aborted")),i.send(),g&&(g.aborted&&i.abort(),g.addEventListener("abort",()=>i.abort()))})}async request({headers:A={},signal:g}={}){return await this.constructRequest(A,g)}}var gg={};class Ig extends jA{constructor(A,g){super(),this.response=A,this.dataPromise=g}get status(){return this.response.statusCode}getHeader(A){const g=this.response.headers[A];return Array.isArray(g)?g.join(", "):g}async getData(){return await this.dataPromise}}class eg extends WA{constructor(A){super(A),this.parsedUrl=gg.parse(this.url),this.httpApi=(this.parsedUrl.protocol,gg)}constructRequest(A,g){return new Promise((I,e)=>{const i=this.httpApi.get({...this.parsedUrl,headers:A},A=>{const g=new Promise(g=>{const I=[];A.on("data",A=>{I.push(A)}),A.on("end",()=>{const A=Buffer.concat(I).buffer;g(A)}),A.on("error",e)});I(new Ig(A,g))});i.on("error",e),g&&(g.aborted&&i.destroy(new OA("Request aborted")),g.addEventListener("abort",()=>i.destroy(new OA("Request aborted"))))})}async request({headers:A={},signal:g}={}){return await this.constructRequest(A,g)}}class ig extends xA{constructor(A,{headers:g,maxRanges:I=0,allowFullFile:e}={}){super(),this.client=A,this.headers=g,this.maxRanges=I,this.allowFullFile=e,this._fileSize=null}async fetch(A,g){return this.maxRanges>=A.length?this.fetchSlices(A,g).then(A=>A.map(A=>A.data)):(this.maxRanges>0&&A.length,Promise.all(A.map(async A=>(await this.fetchSlice(A,g)).data)))}async fetchSlices(A,g){const I=await this.client.request({headers:{...this.headers,Range:`bytes=${A.map(({offset:A,length:g})=>`${A}-${A+g-1}`).join(",")}`},signal:g});if(I.ok){if(206===I.status){const{type:e,params:i}=function(A){if(!A)return{type:null,params:{}};const[g,...I]=A.split(";").map(A=>A.trim());return{type:g,params:JA(I.map(A=>A.split("=")))}}(I.getHeader("content-type"));if("multipart/byteranges"===e){const A=function(A,g){let I=-1;const e=new TextDecoder("ascii"),i=[],t=`--${g}`,B=`${t}--`;for(let g=0;g<10;++g)e.decode(new Uint8Array(A,g,t.length))===t&&(I=g);if(-1===I)throw new Error("Could not find initial boundary");for(;I<A.byteLength;){const g=e.decode(new Uint8Array(A,I,Math.min(t.length+1024,A.byteLength-I)));if(0===g.length||g.startsWith(B))break;if(!g.startsWith(t))throw new Error("Part does not start with boundary");const C=g.substr(t.length+2);if(0===C.length)break;const Q=C.indexOf(HA),E=bA(C.substr(0,Q)),{start:s,end:a,total:o}=qA(E["content-range"]),r=I+t.length+Q+4,n=a+1-s;i.push({headers:E,data:A.slice(r,r+n),offset:s,length:n,fileSize:o}),I=r+n+4}return i}(await I.getData(),i.boundary);return this._fileSize=A[0].fileSize||null,A}const t=await I.getData(),{start:B,end:C,total:Q}=qA(I.getHeader("content-range"));this._fileSize=Q||null;const E=[{data:t,offset:B,length:C+1-B}];if(A.length>1){const I=await Promise.all(A.slice(1).map(A=>this.fetchSlice(A,g)));return E.concat(I)}return E}{if(!this.allowFullFile)throw new Error("Server responded with full file");const A=await I.getData();return this._fileSize=A.byteLength,[{data:A,offset:0,length:A.byteLength}]}}throw new Error("Error fetching data.")}async fetchSlice(A,g){const{offset:I,length:e}=A,i=await this.client.request({headers:{...this.headers,Range:`bytes=${I}-${I+e-1}`},signal:g});if(i.ok){if(206===i.status){const A=await i.getData(),{total:g}=qA(i.getHeader("content-range"));return this._fileSize=g||null,{data:A,offset:I,length:e}}{if(!this.allowFullFile)throw new Error("Server responded with full file");const A=await i.getData();return this._fileSize=A.byteLength,{data:A,offset:0,length:A.byteLength}}}throw new Error("Error fetching data.")}get fileSize(){return this._fileSize}}function tg(A,{blockSize:g,cacheSize:I}){return void 0===g?A:new zA(A,{blockSize:g,cacheSize:I})}function Bg(A,{forceXHR:g=!1,...I}={}){return"function"!=typeof fetch||g?"undefined"!=typeof XMLHttpRequest?function(A,{headers:g={},maxRanges:I=0,allowFullFile:e=!1,...i}={}){const t=new Ag(A);return tg(new ig(t,{headers:g,maxRanges:I,allowFullFile:e}),i)}(A,I):function(A,{headers:g={},maxRanges:I=0,allowFullFile:e=!1,...i}={}){const t=new eg(A);return tg(new ig(t,{headers:g,maxRanges:I,allowFullFile:e}),i)}(A,I):function(A,{headers:g={},credentials:I,maxRanges:e=0,allowFullFile:i=!1,...t}={}){const B=new XA(A,I);return tg(new ig(B,{headers:g,maxRanges:e,allowFullFile:i}),t)}(A,I)}class Cg extends xA{constructor(A){super(),this.arrayBuffer=A}fetchSlice(A,g){if(g&&g.aborted)throw new OA("Request aborted");return Promise.resolve({data:this.arrayBuffer.slice(A.offset,A.offset+A.length),offset:A.offset,length:A.length})}}function Qg(A,g){switch(A){case eA.BYTE:case eA.ASCII:case eA.UNDEFINED:return new Uint8Array(g);case eA.SBYTE:return new Int8Array(g);case eA.SHORT:return new Uint16Array(g);case eA.SSHORT:return new Int16Array(g);case eA.LONG:case eA.IFD:return new Uint32Array(g);case eA.SLONG:return new Int32Array(g);case eA.LONG8:case eA.IFD8:case eA.SLONG8:return new Array(g);case eA.RATIONAL:return new Uint32Array(2*g);case eA.SRATIONAL:return new Int32Array(2*g);case eA.FLOAT:return new Float32Array(g);case eA.DOUBLE:return new Float64Array(g);default:throw new RangeError(`Invalid field type: ${A}`)}}function Eg(A,g){switch(g){case eA.BYTE:case eA.ASCII:case eA.UNDEFINED:return A.readUint8;case eA.SBYTE:return A.readInt8;case eA.SHORT:return A.readUint16;case eA.SSHORT:return A.readInt16;case eA.LONG:case eA.IFD:return A.readUint32;case eA.SLONG:return A.readInt32;case eA.LONG8:case eA.IFD8:return A.readUint64;case eA.SLONG8:return A.readInt64;case eA.RATIONAL:return A.readUint32;case eA.SRATIONAL:return A.readInt32;case eA.FLOAT:return A.readFloat32;case eA.DOUBLE:return A.readFloat64;default:throw new RangeError(`Invalid field type: ${g}`)}}function sg(A=null,g,I,e,i,t,B=!1){const C=tA(e),Q=A||Qg(e,i),E=e===eA.RATIONAL||e===eA.SRATIONAL;if(E)for(let A=0;A<i;A+=2)Q[A]=g.call(I,t+A*C),Q[A+1]=g.call(I,t+(A*C+4));else for(let A=0;A<i;++A)Q[A]=g.call(I,t+A*C);return e===eA.ASCII?new TextDecoder("utf-8").decode(Q):1!==i||B||E?Q:Q[0]}class ag{constructor(A,g,I,e,i){this.source=A,this.arrayOffset=g,this.littleEndian=I,this.fieldType=e,this.length=i,this.data=Qg(e,i),this.itemSize=tA(e),this.maskBitmap=new Uint8Array(Math.ceil(i/8)),this.fetchIndexPromises=new Map,this.fullFetchPromise=null}async loadAll(){return this.fullFetchPromise||(this.fullFetchPromise=this.source.fetch([{offset:this.arrayOffset,length:this.itemSize*this.length}]).then(A=>{const g=new KA(A[0],this.arrayOffset,!0,!1),I=sg(this.data,Eg(g,this.fieldType),g,this.fieldType,this.length,this.arrayOffset,!0);return this.maskBitmap.fill(255),this.fetchIndexPromises.clear(),I})),this.fullFetchPromise}async get(A){if(A<0||A>=this.data.length)throw new RangeError(`Index ${A} out of bounds for length ${this.data.length}`);const g=Math.floor(A/8),I=1<<A%8,e=this.arrayOffset+A*this.itemSize;if(0===(this.maskBitmap[g]&I)){if(!this.fetchIndexPromises.has(A)){const i=this.source.fetch([{offset:e,length:this.itemSize}]).then(i=>{const t=new KA(i[0],this.arrayOffset+A*this.itemSize,!0,!1),B=Eg(t,this.fieldType).call(t,e);return this.data[A]=B,this.maskBitmap[g]|=I,this.fetchIndexPromises.delete(A),B});this.fetchIndexPromises.set(A,i)}return this.fetchIndexPromises.get(A)}return this.data[A]}}class og{constructor(A,g,I,e){this.actualizedFields=A,this.deferredFields=g,this.deferredFieldsBeingResolved=new Map,this.deferredArrays=I,this.nextIFDByteOffset=e}hasTag(A){const g=sA(A);return this.actualizedFields.has(g)||this.deferredFields.has(g)||this.deferredArrays.has(g)}getValue(A){const g=sA(A);if(this.deferredFields.has(g)||this.deferredArrays.has(g)){const A=QA[g];throw new Error(`Field '${A?.name||`Tag${g}`}' (${g}) is deferred. Use loadValue() to load it asynchronously.`)}if(this.actualizedFields.has(g))return this.actualizedFields.get(g)}async loadValue(A){const g=sA(A);if(this.actualizedFields.has(g))return this.actualizedFields.get(g);if(this.deferredFieldsBeingResolved.has(g))return this.deferredFieldsBeingResolved.get(g);const I=this.deferredFields.get(g);if(I){this.deferredFields.delete(g);const A=(async()=>{try{const A=await I();return this.actualizedFields.set(g,A),A}finally{this.deferredFieldsBeingResolved.delete(g)}})();return this.deferredFieldsBeingResolved.set(g,A),A}const e=this.deferredArrays.get(g);return e?e.loadAll():void 0}async loadValueIndexed(A,g){const I=sA(A);if(this.actualizedFields.has(I)){return this.actualizedFields.get(I)[g]}if(this.deferredArrays.has(I)){return this.deferredArrays.get(I).get(g)}if(this.hasTag(I)){const A=await this.loadValue(I);if(A&&"number"!=typeof A)return A[g]}}parseGeoKeyDirectory(){const A=this.getValue("GeoKeyDirectory");if(!A)return null;const g={};for(let I=4;I<=4*A[3];I+=4){const e=uA[A[I]],i=A[I+1]||null,t=A[I+2],B=A[I+3];let C=null;if(i){if(C=this.getValue(i),null==C)throw new Error(`Could not get value of geoKey '${e}'.`);"string"==typeof C?C=C.substring(B,B+t-1):C.subarray&&(C=C.subarray(B,B+t),1===t&&(C=C[0]))}else C=B;g[e]=C}return g}toObject(){const A={};for(const[g,I]of this.actualizedFields.entries()){const e="number"==typeof g?QA[g]:void 0;A[e?e.name:`Tag${g}`]=I}return A}}class rg{constructor(A,g,I,e=!1){this.source=A,this.littleEndian=g,this.bigTiff=I,this.eager=e}async getSlice(A,g){const I=this.bigTiff?4048:1024;return new KA((await this.source.fetch([{offset:A,length:void 0!==g?g:I}]))[0],A,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(A){const g=this.bigTiff?20:12,I=this.bigTiff?8:2;let e=await this.getSlice(A);const i=this.bigTiff?e.readUint64(A):e.readUint16(A),t=i*(g+(this.bigTiff?16:6));e.covers(A,t)||(e=await this.getSlice(A,t));const B=new Map,C=new Map,Q=new Map;let E=A+(this.bigTiff?8:2);for(let A=0;A<i;E+=g,++A){const A=e.readUint16(E),g=e.readUint16(E+2),I=this.bigTiff?e.readUint64(E+4):e.readUint32(E+4);let i=null,t=null,s=null;const a=tA(g),o=E+(this.bigTiff?12:8),r=QA[A]?.isArray,n=QA[A]?.eager||this.eager;if(a*I<=(this.bigTiff?8:4))i=sg(Qg(g,I),Eg(e,g),e,g,I,o,r);else{const A=e.readOffset(o),B=tA(g)*I;if(e.covers(A,B))i=sg(Qg(g,I),Eg(e,g),e,g,I,A,r);else if(n){const e=await this.getSlice(A,B);i=sg(Qg(g,I),Eg(e,g),e,g,I,A,r)}else r?s=new ag(this.source,A,this.littleEndian,g,I):t=async()=>{const e=await this.getSlice(A,B);return sg(Qg(g,I),Eg(e,g),e,g,I,A,r)}}null!==i?B.set(A,i):null!==t?C.set(A,t):null!==s&&Q.set(A,s)}const s=e.readOffset(A+I+g*i);return new og(B,C,Q,s)}}function ng(A,g){let I=A.length-g,e=0;do{for(let I=g;I>0;I--)A[e+g]+=A[e],e++;I-=g}while(I>0)}function hg(A,g,I){let e=0,i=A.length;const t=i/I;for(;i>g;){for(let I=g;I>0;--I)A[e+g]+=A[e],++e;i-=g}const B=A.slice();for(let g=0;g<t;++g)for(let e=0;e<I;++e)A[I*g+e]=B[(I-e-1)*t+g]}class lg{constructor(A){this.parameters=A}decodeBlock(A){throw new Error("decodeBlock not implemented")}async decode(A){const g=await this.decodeBlock(A),{tileWidth:I,tileHeight:e,predictor:i,bitsPerSample:t,planarConfiguration:B}=this.parameters;if(1!==i){return function(A,g,I,e,i,t){if(!g||1===g)return A;for(let A=0;A<i.length;++A){if(i[A]%8!=0)throw new Error("When decoding with predictor, only multiple of 8 bits are supported.");if(i[A]!==i[0])throw new Error("When decoding with predictor, all samples must have the same size.")}const B=i[0]/8,C=2===t?1:i.length;for(let t=0;t<e&&!(t*C*I*B>=A.byteLength);++t){let e;if(2===g){switch(i[0]){case 8:e=new Uint8Array(A,t*C*I*B,C*I*B);break;case 16:e=new Uint16Array(A,t*C*I*B,C*I*B/2);break;case 32:e=new Uint32Array(A,t*C*I*B,C*I*B/4);break;default:throw new Error(`Predictor 2 not allowed with ${i[0]} bits per sample.`)}ng(e,C)}else 3===g&&(e=new Uint8Array(A,t*C*I*B,C*I*B),hg(e,C,B))}return A}(g,i,I,e,Array.isArray(t)||ArrayBuffer.isView(t)?Array.from(t):[t],B)}return g}}function cg(A,g,I,e){let i=null,t=null;const B=tA(g);switch(g){case eA.BYTE:case eA.ASCII:case eA.UNDEFINED:i=new Uint8Array(I),t=A.readUint8;break;case eA.SBYTE:i=new Int8Array(I),t=A.readInt8;break;case eA.SHORT:i=new Uint16Array(I),t=A.readUint16;break;case eA.SSHORT:i=new Int16Array(I),t=A.readInt16;break;case eA.LONG:case eA.IFD:i=new Uint32Array(I),t=A.readUint32;break;case eA.SLONG:i=new Int32Array(I),t=A.readInt32;break;case eA.LONG8:case eA.IFD8:i=new Array(I),t=A.readUint64;break;case eA.SLONG8:i=new Array(I),t=A.readInt64;break;case eA.RATIONAL:i=new Uint32Array(2*I),t=A.readUint32;break;case eA.SRATIONAL:i=new Int32Array(2*I),t=A.readInt32;break;case eA.FLOAT:i=new Float32Array(I),t=A.readFloat32;break;case eA.DOUBLE:i=new Float64Array(I),t=A.readFloat64}if(null===i||null===t)throw new RangeError(`Invalid field type: ${g}`);for(let g=0;g<I;++g)i[g]=t.call(A,e+g*B);return new TextDecoder("utf-8").decode(i)}class Dg extends Error{constructor(A){super(`No image at index ${A}`),this.index=A}}class wg{async getImage(A=0){throw new Error("Not implemented")}async getImageCount(){throw new Error("Not implemented")}async readRasters(A={}){const{window:g,width:I,height:e}=A;let{resX:i,resY:t,bbox:B}=A;const C=await this.getImage();let Q=C;const E=await this.getImageCount(),s=C.getBoundingBox();if(g&&B)throw new Error('Both "bbox" and "window" passed.');if(I||e){if(g){const[A,I]=C.getOrigin(),[e,i]=C.getResolution();B=[A+g[0]*e,I+g[1]*i,A+g[2]*e,I+g[3]*i]}const A=B||s;if(I){if(i)throw new Error("Both width and resX passed");i=(A[2]-A[0])/I}if(e){if(t)throw new Error("Both width and resY passed");t=(A[3]-A[1])/e}}if(i||t){const A=[];for(let g=0;g<E;++g){const I=await this.getImage(g),e=I.fileDirectory.getValue("SubfileType"),i=I.fileDirectory.getValue("NewSubfileType");(0===g||2===e||1&(i||0))&&A.push(I)}A.sort((A,g)=>A.getWidth()-g.getWidth());for(let g=0;g<A.length;++g){const I=A[g],e=(s[2]-s[0])/I.getWidth(),B=(s[3]-s[1])/I.getHeight();if(Q=I,i&&i>e||t&&t>B)break}}let a=g;if(B){const[A,g]=C.getOrigin(),[I,e]=Q.getResolution(C);a=[Math.round((B[0]-A)/I),Math.round((B[1]-g)/e),Math.round((B[2]-A)/I),Math.round((B[3]-g)/e)],a=[Math.min(a[0],a[2]),Math.min(a[1],a[3]),Math.max(a[0],a[2]),Math.max(a[1],a[3])]}return Q.readRasters({...A,window:a})}}class dg extends wg{constructor(A,g,I,e,i={}){super(),this.source=A,this.parser=new rg(A,g,I,!1),this.littleEndian=g,this.bigTiff=I,this.firstIFDOffset=e,this.cache=i.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(A,g){const I=this.bigTiff?4048:1024;return new KA((await this.source.fetch([{offset:A,length:void 0!==g?g:I}]))[0],A,this.littleEndian,this.bigTiff)}async requestIFD(A){if(this.ifdRequests[A])return this.ifdRequests[A];if(0===A)return this.ifdRequests[A]=this.parser.parseFileDirectoryAt(this.firstIFDOffset),this.ifdRequests[A];if(!this.ifdRequests[A-1])try{this.ifdRequests[A-1]=this.requestIFD(A-1)}catch(g){if(g instanceof Dg)throw new Dg(A);throw g}return this.ifdRequests[A]=(async()=>{const g=this.ifdRequests[A-1];if(!g)throw new Error("Previous IFD request missing");const I=await g;if(0===I.nextIFDByteOffset)throw new Dg(A);return this.parser.parseFileDirectoryAt(I.nextIFDByteOffset)})(),this.ifdRequests[A]}async getImage(A=0){return new YA(await this.requestIFD(A),this.littleEndian,this.cache,this.source)}async getImageCount(){let A=0,g=!0;for(;g;)try{await this.requestIFD(A),++A}catch(A){if(!(A instanceof Dg))throw A;g=!1}return A}async getGhostValues(){const A=this.bigTiff?16:8;if(null!==this.ghostValues)return this.ghostValues;const g="GDAL_STRUCTURAL_METADATA_SIZE=";let I=await this.getSlice(A,130);if(g===cg(I,eA.ASCII,30,A)){const g=cg(I,eA.ASCII,130,A).split("\n")[0],e=Number(g.split("=")[1].split(" ")[0])+g.length;e>130&&(I=await this.getSlice(A,e));const i=cg(I,eA.ASCII,e,A),t={};i.split("\n").filter(A=>A.length>0).map(A=>A.split("=")).forEach(([A,g])=>{t[A]=g}),this.ghostValues=t}return this.ghostValues}static async fromSource(A,g,I){const e=(await A.fetch([{offset:0,length:1024}],I))[0],i=new mA(e),t=i.getUint16(0,!1);let B;if(18761===t)B=!0;else{if(19789!==t)throw new TypeError("Invalid byte order value.");B=!1}const C=i.getUint16(2,B);let Q;if(42===C)Q=!1;else{if(43!==C)throw new TypeError("Invalid magic number.");Q=!0;if(8!==i.getUint16(4,B))throw new Error("Unsupported offset byte-size.")}const E=Q?i.getUint64(8,B):i.getUint32(4,B);return new dg(A,B,Q,E,g)}close(){return"function"==typeof this.source.close&&this.source.close()}}async function yg(A,g){return dg.fromSource(function(A){return new Cg(A)}(A),void 0,g)}const fg={type:"image",blockSize:65536,format:void 0,useChannel:null,useChannelIndex:null,noDataValue:void 0,multiplier:1,verticalExaggeration:1,numOfChannels:void 0,planarConfig:void 0,tesselator:"martini",terrainColor:[200,200,200,255],terrainSkirtHeight:100,terrainMinValue:0,useHeatMap:!0,useColorsBasedOnValues:!1,useColorClasses:!1,useAutoRange:!1,useDataForOpacity:!1,useSingleColor:!1,blurredTexture:!0,skipTexture:!1,noDataCheck:"full",clipLow:null,clipHigh:null,color:[255,0,255,255],colorScale:i.brewer.YlOrRd,colorScaleValueRange:[0,255],colorsBasedOnValues:void 0,colorClasses:void 0,alpha:100,maxGlazeAlpha:128,nullColor:[0,0,0,0],unidentifiedColor:[0,0,0,0],clippedColor:[0,0,0,0],useSlope:!1,useHillshade:!1,hillshadeAzimuth:315,hillshadeAltitude:45,zFactor:1,useSwissRelief:!1,swissSlopeWeight:.5,useReliefGlaze:!1,disableLighting:!1,cacheAllBands:!1};class ug{constructor(A=257){this.gridSize=A;const g=A-1;if(g&g-1)throw new Error(`Expected grid size to be 2^n+1, got ${A}.`);this.numTriangles=g*g*2-2,this.numParentTriangles=this.numTriangles-g*g,this.indices=new Uint32Array(this.gridSize*this.gridSize),this.coords=new Uint16Array(4*this.numTriangles);for(let A=0;A<this.numTriangles;A++){let I=A+2,e=0,i=0,t=0,B=0,C=0,Q=0;for(1&I?t=B=C=g:e=i=Q=g;(I>>=1)>1;){const A=e+t>>1,g=i+B>>1;1&I?(t=e,B=i,e=C,i=Q):(e=t,i=B,t=C,B=Q),C=A,Q=g}const E=4*A;this.coords[E+0]=e,this.coords[E+1]=i,this.coords[E+2]=t,this.coords[E+3]=B}}createTile(A){return new Sg(A,this)}}class Sg{constructor(A,g){const I=g.gridSize;if(A.length!==I*I)throw new Error(`Expected terrain data of length ${I*I} (${I} x ${I}), got ${A.length}.`);this.terrain=A,this.martini=g,this.errors=new Float32Array(A.length),this.update()}update(){const{numTriangles:A,numParentTriangles:g,coords:I,gridSize:e}=this.martini,{terrain:i,errors:t}=this;for(let B=A-1;B>=0;B--){const A=4*B,C=I[A+0],Q=I[A+1],E=I[A+2],s=I[A+3],a=C+E>>1,o=Q+s>>1,r=a+o-Q,n=o+C-a,h=(i[Q*e+C]+i[s*e+E])/2,l=o*e+a,c=Math.abs(h-i[l]);if(t[l]=Math.max(t[l],c),B<g){const A=(Q+n>>1)*e+(C+r>>1),g=(s+n>>1)*e+(E+r>>1);t[l]=Math.max(t[l],t[A],t[g])}}}getMesh(A=0){const{gridSize:g,indices:I}=this.martini,{errors:e}=this;let i=0,t=0;const B=g-1;function C(B,Q,E,s,a,o){const r=B+E>>1,n=Q+s>>1;Math.abs(B-a)+Math.abs(Q-o)>1&&e[n*g+r]>A?(C(a,o,B,Q,r,n),C(E,s,a,o,r,n)):(I[Q*g+B]=I[Q*g+B]||++i,I[s*g+E]=I[s*g+E]||++i,I[o*g+a]=I[o*g+a]||++i,t++)}I.fill(0),C(0,0,B,B,B,0),C(B,B,0,0,0,B);const Q=new Uint16Array(2*i),E=new Uint32Array(3*t);let s=0;function a(i,t,B,C,o,r){const n=i+B>>1,h=t+C>>1;if(Math.abs(i-o)+Math.abs(t-r)>1&&e[h*g+n]>A)a(o,r,i,t,n,h),a(B,C,o,r,n,h);else{const A=I[t*g+i]-1,e=I[C*g+B]-1,a=I[r*g+o]-1;Q[2*A]=i,Q[2*A+1]=t,Q[2*e]=B,Q[2*e+1]=C,Q[2*a]=o,Q[2*a+1]=r,E[s++]=A,E[s++]=e,E[s++]=a}}return a(0,0,B,B,B,0),a(B,B,0,0,0,B),{vertices:Q,triangles:E}}}function Gg(A,g,I,e,i,t){return(I-i)*(g-t)-(e-t)*(A-i)}class Ng{constructor(A,g,I=g){this.data=A,this.width=g,this.height=I,this.coords=[],this.triangles=[],this._halfedges=[],this._candidates=[],this._queueIndices=[],this._queue=[],this._errors=[],this._rms=[],this._pending=[],this._pendingLen=0,this._rmsSum=0;const e=g-1,i=I-1,t=this._addPoint(0,0),B=this._addPoint(e,0),C=this._addPoint(0,i),Q=this._addPoint(e,i),E=this._addTriangle(Q,t,C,-1,-1,-1);this._addTriangle(t,Q,B,E,-1,-1),this._flush()}run(A=1){for(;this.getMaxError()>A;)this.refine()}refine(){this._step(),this._flush()}getMaxError(){return this._errors[0]}getRMSD(){return this._rmsSum>0?Math.sqrt(this._rmsSum/(this.width*this.height)):0}heightAt(A,g){return this.data[this.width*g+A]}_flush(){const{coords:A}=this;for(let g=0;g<this._pendingLen;g++){const I=this._pending[g],e=2*this.triangles[3*I+0],i=2*this.triangles[3*I+1],t=2*this.triangles[3*I+2];this._findCandidate(A[e],A[e+1],A[i],A[i+1],A[t],A[t+1],I)}this._pendingLen=0}_findCandidate(A,g,I,e,i,t,B){const C=Math.min(A,I,i),Q=Math.min(g,e,t),E=Math.max(A,I,i),s=Math.max(g,e,t);let a=Gg(I,e,i,t,C,Q),o=Gg(i,t,A,g,C,Q),r=Gg(A,g,I,e,C,Q);const n=e-g,h=A-I,l=t-e,c=I-i,D=g-t,w=i-A,d=Gg(A,g,I,e,i,t),y=this.heightAt(A,g)/d,f=this.heightAt(I,e)/d,u=this.heightAt(i,t)/d;let S=0,G=0,N=0,F=0;for(let A=Q;A<=s;A++){let g=0;a<0&&0!==l&&(g=Math.max(g,Math.floor(-a/l))),o<0&&0!==D&&(g=Math.max(g,Math.floor(-o/D))),r<0&&0!==n&&(g=Math.max(g,Math.floor(-r/n)));let I=a+l*g,e=o+D*g,i=r+n*g,t=!1;for(let B=C+g;B<=E;B++){if(I>=0&&e>=0&&i>=0){t=!0;const g=y*I+f*e+u*i,C=Math.abs(g-this.heightAt(B,A));F+=C*C,C>S&&(S=C,G=B,N=A)}else if(t)break;I+=l,e+=D,i+=n}a+=c,o+=w,r+=h}(G===A&&N===g||G===I&&N===e||G===i&&N===t)&&(S=0),this._candidates[2*B]=G,this._candidates[2*B+1]=N,this._rms[B]=F,this._queuePush(B,S,F)}_step(){const A=this._queuePop(),g=3*A+0,I=3*A+1,e=3*A+2,i=this.triangles[g],t=this.triangles[I],B=this.triangles[e],C=this.coords[2*i],Q=this.coords[2*i+1],E=this.coords[2*t],s=this.coords[2*t+1],a=this.coords[2*B],o=this.coords[2*B+1],r=this._candidates[2*A],n=this._candidates[2*A+1],h=this._addPoint(r,n);if(0===Gg(C,Q,E,s,r,n))this._handleCollinear(h,g);else if(0===Gg(E,s,a,o,r,n))this._handleCollinear(h,I);else if(0===Gg(a,o,C,Q,r,n))this._handleCollinear(h,e);else{const A=this._halfedges[g],C=this._halfedges[I],Q=this._halfedges[e],E=this._addTriangle(i,t,h,A,-1,-1,g),s=this._addTriangle(t,B,h,C,-1,E+1),a=this._addTriangle(B,i,h,Q,E+2,s+1);this._legalize(E),this._legalize(s),this._legalize(a)}}_addPoint(A,g){const I=this.coords.length>>1;return this.coords.push(A,g),I}_addTriangle(A,g,I,e,i,t,B=this.triangles.length){const C=B/3;return this.triangles[B+0]=A,this.triangles[B+1]=g,this.triangles[B+2]=I,this._halfedges[B+0]=e,this._halfedges[B+1]=i,this._halfedges[B+2]=t,e>=0&&(this._halfedges[e]=B+0),i>=0&&(this._halfedges[i]=B+1),t>=0&&(this._halfedges[t]=B+2),this._candidates[2*C+0]=0,this._candidates[2*C+1]=0,this._queueIndices[C]=-1,this._rms[C]=0,this._pending[this._pendingLen++]=C,B}_legalize(A){const g=this._halfedges[A];if(g<0)return;const I=A-A%3,e=g-g%3,i=I+(A+1)%3,t=I+(A+2)%3,B=e+(g+2)%3,C=e+(g+1)%3,Q=this.triangles[t],E=this.triangles[A],s=this.triangles[i],a=this.triangles[B],{coords:o}=this;if(!function(A,g,I,e,i,t,B,C){const Q=A-B,E=g-C,s=I-B,a=e-C,o=i-B,r=t-C,n=s*s+a*a,h=o*o+r*r;return Q*(a*h-n*r)-E*(s*h-n*o)+(Q*Q+E*E)*(s*r-a*o)<0}(o[2*Q],o[2*Q+1],o[2*E],o[2*E+1],o[2*s],o[2*s+1],o[2*a],o[2*a+1]))return;const r=this._halfedges[i],n=this._halfedges[t],h=this._halfedges[B],l=this._halfedges[C];this._queueRemove(I/3),this._queueRemove(e/3);const c=this._addTriangle(Q,a,s,-1,h,r,I),D=this._addTriangle(a,Q,E,c,n,l,e);this._legalize(c+1),this._legalize(D+2)}_handleCollinear(A,g){const I=g-g%3,e=I+(g+1)%3,i=I+(g+2)%3,t=this.triangles[i],B=this.triangles[g],C=this.triangles[e],Q=this._halfedges[e],E=this._halfedges[i],s=this._halfedges[g];if(s<0){const g=this._addTriangle(A,t,B,-1,E,-1,I),e=this._addTriangle(t,A,C,g,-1,Q);return this._legalize(g+1),void this._legalize(e+2)}const a=s-s%3,o=a+(s+2)%3,r=a+(s+1)%3,n=this.triangles[o],h=this._halfedges[o],l=this._halfedges[r];this._queueRemove(a/3);const c=this._addTriangle(t,B,A,E,-1,-1,I),D=this._addTriangle(B,n,A,l,-1,c+1,a),w=this._addTriangle(n,C,A,h,-1,D+1),d=this._addTriangle(C,t,A,Q,c+2,w+1);this._legalize(c),this._legalize(D),this._legalize(w),this._legalize(d)}_queuePush(A,g,I){const e=this._queue.length;this._queueIndices[A]=e,this._queue.push(A),this._errors.push(g),this._rmsSum+=I,this._queueUp(e)}_queuePop(){const A=this._queue.length-1;return this._queueSwap(0,A),this._queueDown(0,A),this._queuePopBack()}_queuePopBack(){const A=this._queue.pop();return this._errors.pop(),this._rmsSum-=this._rms[A],this._queueIndices[A]=-1,A}_queueRemove(A){const g=this._queueIndices[A];if(g<0){const g=this._pending.indexOf(A);if(-1===g)throw new Error("Broken triangulation (something went wrong).");return void(this._pending[g]=this._pending[--this._pendingLen])}const I=this._queue.length-1;I!==g&&(this._queueSwap(g,I),this._queueDown(g,I)||this._queueUp(g)),this._queuePopBack()}_queueLess(A,g){return this._errors[A]>this._errors[g]}_queueSwap(A,g){const I=this._queue[A],e=this._queue[g];this._queue[A]=e,this._queue[g]=I,this._queueIndices[I]=g,this._queueIndices[e]=A;const i=this._errors[A];this._errors[A]=this._errors[g],this._errors[g]=i}_queueUp(A){let g=A;for(;;){const A=g-1>>1;if(A===g||!this._queueLess(g,A))break;this._queueSwap(A,g),g=A}}_queueDown(A,g){let I=A;for(;;){const A=2*I+1;if(A>=g||A<0)break;const e=A+1;let i=A;if(e<g&&this._queueLess(e,A)&&(i=e),!this._queueLess(i,I))break;this._queueSwap(I,i),I=i}return I>A}}function Fg(A,g,I,e){const i=function(A){const g=new Map,I=(A,I)=>{const e=Math.min(A,I),i=Math.max(A,I),t=BigInt(e)<<32n|BigInt(i);g.has(t)?g.delete(t):g.set(t,[A,I])};for(let g=0;g<A.length;g+=3){const e=A[g],i=A[g+1],t=A[g+2];I(e,i),I(i,t),I(t,e)}return Array.from(g.values())}(g),t=new A.POSITION.value.constructor(6*i.length),C=new A.TEXCOORD_0.value.constructor(4*i.length),Q=new g.constructor(6*i.length);for(let g=0;g<i.length;g++){kg({edge:i[g],edgeIndex:g,attributes:A,skirtHeight:I,newPosition:t,newTexcoord0:C,newTriangles:Q})}A.POSITION.value=B.concatenateTypedArrays(A.POSITION.value,t),A.TEXCOORD_0.value=B.concatenateTypedArrays(A.TEXCOORD_0.value,C);return{attributes:A,triangles:g instanceof Array?g.concat(Q):B.concatenateTypedArrays(g,Q)}}function kg({edge:A,edgeIndex:g,attributes:I,skirtHeight:e,newPosition:i,newTexcoord0:t,newTriangles:B}){const C=I.POSITION.value.length,Q=2*g,E=2*g+1;i.set(I.POSITION.value.subarray(3*A[0],3*A[0]+3),3*Q),i[3*Q+2]=i[3*Q+2]-e,i.set(I.POSITION.value.subarray(3*A[1],3*A[1]+3),3*E),i[3*E+2]=i[3*E+2]-e,t.set(I.TEXCOORD_0.value.subarray(2*A[0],2*A[0]+2),2*Q),t.set(I.TEXCOORD_0.value.subarray(2*A[1],2*A[1]+2),2*E);const s=2*g*3;B[s]=A[0],B[s+1]=C/3+E,B[s+2]=A[1],B[s+3]=C/3+E,B[s+4]=A[0],B[s+5]=C/3+Q}function Rg(A,g,I,e,i){return I===g?e:(A-g)*(i-e)/(I-g)+e}function Lg(A){return Math.fround(A)}function Ug(A,g){if(null==g)return!1;const I=Lg(A),e=Lg(g);return Number.isNaN(e)?Number.isNaN(I):I===e}class pg{static _swissColorLUTCache=new Map;static _8bitLUTCache=new Map;static _floatLUTCache=new Map;static getLUTCacheKey(A,g,I,e){return`${g}_${I}_${e}_${JSON.stringify(A.colorScale)}_${A.useSingleColor}_${JSON.stringify(A.color)}_${A.useColorClasses}_${JSON.stringify(A.colorClasses)}_${A.useColorsBasedOnValues}_${JSON.stringify(A.colorsBasedOnValues)}_${A.useHeatMap}_${A.clipLow??""}_${A.clipHigh??""}_${JSON.stringify(A.clippedColor)}_${JSON.stringify(A.nullColor)}_${JSON.stringify(A.unidentifiedColor)}`}static async generate(A,g){const I={...g},{rasters:e,width:i,height:t}=A,B=1===e.length,C=document.createElement("canvas");C.width=i,C.height=t;const Q=C.getContext("2d"),E=Q.createImageData(i,t),s=i*t*4,a=Math.floor(2.55*I.alpha);I.unidentifiedColor=this.getColorFromChromaType(I.unidentifiedColor,a),I.nullColor=this.getColorFromChromaType(I.nullColor,a),I.clippedColor=this.getColorFromChromaType(I.clippedColor,a),I.color=this.getColorFromChromaType(I.color,a),I.useChannelIndex??=null==I.useChannel?null:I.useChannel-1;const o=I.numOfChannels??(1===e.length?e[0].length/(i*t):e.length);if(I.useReliefGlaze)if(e.length>=1)E.data.set(this.getReliefGlazeRGBA(e,I,s));else{const A=new Uint8ClampedArray(s);A.fill(0),E.data.set(A)}else if(I.useSwissRelief)if(2===e.length)E.data.set(this.getColorValue(e,I,s));else{this.getDefaultColor(s,I.nullColor).forEach((A,g)=>{E.data[g]=A})}else if(null==I.useChannelIndex)if(B){const A=e[0].length/(i*t);if(1===A)I.useAutoRange&&(I.colorScaleValueRange=this.getMinMax(e[0],I)),E.data.set(this.getColorValue(e[0],I,s));else if(3===A||4===A){let g=0;for(let i=0;i<s;i+=4){const t=[e[0][g],e[0][g+1],e[0][g+2]],B=this.hasPixelsNoData(t,I.noDataValue);E.data[i]=B?I.nullColor[0]:t[0],E.data[i+1]=B?I.nullColor[1]:t[1],E.data[i+2]=B?I.nullColor[2]:t[2],E.data[i+3]=B?I.nullColor[3]:4===A?e[0][g+3]:a,g+=A}}}else{let A=0;for(let g=0;g<s;g+=4)E.data[g]=e[0][A],E.data[g+1]=e[1][A],E.data[g+2]=e[2][A],E.data[g+3]=4===e.length?e[3][A]:a,A++}else if(I.useChannelIndex<o&&I.useChannelIndex>=0){const A=1===e.length&&o>1,g=A?e[0]:e[I.useChannelIndex]??e[0],i=A?o:1;I.useAutoRange&&(I.colorScaleValueRange=this.getMinMax(g,I,i)),E.data.set(this.getColorValue(g,I,s,i))}else{console.log(`Defined channel(${g.useChannel}) or channel index(${g.useChannelIndex}) does not exist, choose a different channel or set the useChannel property to null if you want to visualize RGB(A) imagery`);this.getDefaultColor(s,I.nullColor).forEach((A,g)=>{E.data[g]=A})}Q.putImageData(E,0,0);return{map:await createImageBitmap(C),raw:e[0],width:i,height:t}}static getColorValue(A,g,I,e=1){const t=i.scale(g.colorScale?.map(A=>Array.isArray(A)?i(A):A)).domain(g.colorScaleValueRange??[0,255]),B=new Uint8ClampedArray(I),C=Math.floor(2.55*(g.alpha??100)),Q=g.colorScaleValueRange?.[0]??0,E=g.colorScaleValueRange?.[1]??255,s=Array.isArray(A),a=s?A[0]:A,o=g.useSwissRelief&&s&&A.length>=2,r=a instanceof Uint8Array||a instanceof Uint8ClampedArray,n=!r&&(a instanceof Float32Array||a instanceof Uint16Array||a instanceof Int16Array);if(o){const i=A[1],s=E-Q||1;let o=null;if(g.useHeatMap){const A=1024,I=`${Q}_${E}_${C}_${JSON.stringify(g.colorScale)}`;if(o=this._swissColorLUTCache.get(I)||null,!o){o=new Uint8ClampedArray(4*A);for(let g=0;g<A;g++){const I=t(Q+g/(A-1)*s).rgb();o[4*g]=I[0],o[4*g+1]=I[1],o[4*g+2]=I[2],o[4*g+3]=C}this._swissColorLUTCache.set(I,o)}}for(let A=0,E=g.useChannelIndex??0;A<I;A+=4,E+=e){const I=a[E],e=Ug(I,g.noDataValue);if(Number.isNaN(I)||e){B.set(g.nullColor,A);continue}let r;if(o){const A=(I-Q)/s,g=4*Math.min(1023,Math.max(0,Math.floor(1023*A)));r=[o[g],o[g+1],o[g+2],o[g+3]]}else r=this.calculateSingleColor(I,t,g,C);const n=.4+i[E]/255*.6;B[A]=Math.floor(r[0]*n),B[A+1]=Math.floor(r[1]*n),B[A+2]=Math.floor(r[2]*n),B[A+3]=r[3]}return B}if(r&&!g.useDataForOpacity){const A=g.useAutoRange?null:this.getLUTCacheKey(g,Q,E,C);let i=A?this._8bitLUTCache.get(A)??null:null;if(!i){i=new Uint8ClampedArray(1024);for(let A=0;A<256;A++)null!=g.clipLow&&A<=g.clipLow||null!=g.clipHigh&&A>=g.clipHigh?i.set(g.clippedColor,4*A):i.set(this.calculateSingleColor(A,t,g,C),4*A);A&&this._8bitLUTCache.set(A,i)}for(let A=0,t=g.useChannelIndex??0;A<I;A+=4,t+=e){const g=4*a[t];B[A]=i[g],B[A+1]=i[g+1],B[A+2]=i[g+2],B[A+3]=i[g+3]}return B}if(n&&g.useHeatMap&&!g.useSingleColor&&!g.useColorClasses&&!g.useColorsBasedOnValues&&!g.useDataForOpacity){const A=1024,i=E-Q||1,s=g.useAutoRange?null:this.getLUTCacheKey(g,Q,E,C);let o=s?this._floatLUTCache.get(s)??null:null;if(!o){o=new Uint8ClampedArray(4*A);for(let I=0;I<A;I++){const e=Q+I/(A-1)*i;if(null!=g.clipLow&&e<=g.clipLow||null!=g.clipHigh&&e>=g.clipHigh)o.set(g.clippedColor,4*I);else{const A=t(e).rgb();o[4*I]=A[0],o[4*I+1]=A[1],o[4*I+2]=A[2],o[4*I+3]=C}}s&&this._floatLUTCache.set(s,o)}for(let t=0,C=g.useChannelIndex??0;t<I;t+=4,C+=e){const I=a[C];if(this.isInvalid(I,g))B.set(this.getInvalidColor(I,g),t);else{const g=(I-Q)/i,e=4*Math.min(A-1,Math.max(0,Math.floor(g*(A-1))));B[t]=o[e],B[t+1]=o[e+1],B[t+2]=o[e+2],B[t+3]=o[e+3]}}return B}let h=g.useChannelIndex??0;for(let A=0;A<I;A+=4){const I=a[h];let i;i=null!=g.clipLow&&I<=g.clipLow||null!=g.clipHigh&&I>=g.clipHigh?g.clippedColor:this.calculateSingleColor(I,t,g,C),g.useDataForOpacity&&!this.isInvalid(I,g)&&(i[3]=Rg(I,Q,E,0,255)),B.set(i,A),h+=e}return B}static getReliefGlazeRGBA(A,g,I){const e=A[0],i=(g.maxGlazeAlpha??128)/255,t=new Uint8Array(256);for(let A=0;A<256;A++)if(0===A)t[A]=0;else{const g=Math.abs(A-128)/128,I=A<128?.6:.8;t[A]=Math.floor(255*Math.pow(g,I)*i)}const B=new Uint8ClampedArray(I);let C=0;for(let A=0;A<I;A+=4){const g=e[C],I=g<128?0:255,i=t[g];B[A]=I,B[A+1]=I,B[A+2]=I,B[A+3]=i,C++}return B}static calculateSingleColor(A,g,I,e){if(this.isInvalid(A,I))return I.nullColor;if(I.useSingleColor)return I.color;if(I.useColorClasses){const g=this.findClassIndex(A,I);return g>-1?[...i(Array.isArray(I.colorClasses[g][0])?i(I.colorClasses[g][0]):I.colorClasses[g][0]).rgb(),e]:I.unidentifiedColor}if(I.useColorsBasedOnValues){const g=I.colorsBasedOnValues?.find(([g])=>g===A);return g?[...i(Array.isArray(g[1])?i(g[1]):g[1]).rgb(),e]:I.unidentifiedColor}return I.useHeatMap?[...g(A).rgb(),e]:I.unidentifiedColor}static findClassIndex(A,g){if(!g.colorClasses)return-1;for(let I=0;I<g.colorClasses.length;I++){const[,[e,i],t]=g.colorClasses[I],[B,C]=t||(I===g.colorClasses.length-1?[!0,!0]:[!0,!1]);if((B?A>=e:A>e)&&(C?A<=i:A<i))return I}return-1}static getDefaultColor(A,g){const I=new Uint8ClampedArray(A);for(let e=0;e<A;e+=4)[I[e],I[e+1],I[e+2],I[e+3]]=g;return I}static isInvalid(A,g){return Number.isNaN(A)||Ug(A,g.noDataValue)}static getInvalidColor(A,g){return g.nullColor}static getMinMax(A,g,I=1){let e=-1/0,i=1/0;for(let t=g.useChannelIndex??0;t<A.length;t+=I){const I=A[t];this.isInvalid(I,g)||(I>e&&(e=I),I<i&&(i=I))}return e===-1/0?g.colorScaleValueRange||[0,255]:[i,e]}static getColorFromChromaType(A,g=255){return Array.isArray(A)&&4===A.length?A:[...i(A).rgb(),g]}static hasPixelsNoData(A,g){return void 0!==g&&A.every(A=>Ug(A,g))}}class Mg{static computeGradients(A,g,I,e,i,t,B,C,Q,E=!0){return{dzdx:(I+2*i+C-(A+2*e+t))*Q,dzdy:E?(A+2*g+I-(t+2*B+C))*Q:(t+2*B+C-(A+2*g+I))*Q}}static calculateSlope(A,g,I=1,e){const i=256,t=258,B=new Float32Array(65536),C=1/(8*g),Q=180/Math.PI;for(let g=0;g<i;g++)for(let E=0;E<i;E++){const s=g*t+E;if(Ug(A[s+t+1],e)){B[g*i+E]=NaN;continue}const a=A[s],o=A[s+1],r=A[s+2],n=A[s+t],h=A[s+t+2],l=A[s+516],c=A[s+516+1],D=A[s+516+2],{dzdx:w,dzdy:d}=this.computeGradients(a,o,r,n,h,l,c,D,C,!1),y=Math.atan(I*Math.sqrt(w*w+d*d));B[g*i+E]=y*Q}return B}static calculateHillshade(A,g,I=315,e=45,i=1,t){const B=256,C=258,Q=new Float32Array(65536),E=(90-e)*(Math.PI/180);let s=360-I+90;s>=360&&(s-=360);const a=s*(Math.PI/180),o=1/(8*g);for(let g=0;g<B;g++)for(let I=0;I<B;I++){const e=g*C+I;if(Ug(A[e+C+1],t)){Q[g*B+I]=NaN;continue}const s=A[e],r=A[e+1],n=A[e+2],h=A[e+C],l=A[e+C+2],c=A[e+516],D=A[e+516+1],w=A[e+516+2],{dzdx:d,dzdy:y}=this.computeGradients(s,r,n,h,l,c,D,w,o,!0),f=Math.atan(i*Math.sqrt(d*d+y*y)),u=Math.atan2(y,-d),S=255*(Math.cos(E)*Math.cos(f)+Math.sin(E)*Math.sin(f)*Math.cos(a-u));Q[g*B+I]=Math.max(0,Math.min(255,S))}return Q}static calculateMultiHillshade(A,g,I=1,e){const i=256,t=258,B=new Float32Array(65536),C=1/(8*g),Q=[{az:315,alt:45,weight:.6},{az:225,alt:35,weight:.25},{az:0,alt:35,weight:.15}].map(A=>{const g=(90-A.alt)*(Math.PI/180);let I=360-A.az+90;return I>=360&&(I-=360),{zCos:Math.cos(g),zSin:Math.sin(g),aRad:I*(Math.PI/180),w:A.weight}});for(let g=0;g<i;g++)for(let E=0;E<i;E++){const s=g*t+E;if(Ug(A[s+t+1],e)){B[g*i+E]=NaN;continue}const a=A[s],o=A[s+1],r=A[s+2],n=A[s+t],h=A[s+t+2],l=A[s+516],c=A[s+516+1],D=A[s+516+2],{dzdx:w,dzdy:d}=this.computeGradients(a,o,r,n,h,l,c,D,C,!0),y=Math.atan(I*Math.sqrt(w*w+d*d)),f=Math.atan2(d,-w),u=Math.cos(y),S=Math.sin(y);let G=0;for(const A of Q){const g=A.zCos*u+A.zSin*S*Math.cos(A.aRad-f);G+=Math.max(0,g)*A.w}B[g*i+E]=Math.min(255,255*G)}return B}}class Yg{static _swissReliefLUT=null;static _lastWeight=null;static getSwissReliefLUT(A=.5){if(this._swissReliefLUT&&this._lastWeight===A)return this._swissReliefLUT;const g=new Float32Array(65536);for(let I=0;I<256;I++){const e=I/255;for(let i=0;i<256;i++){const t=1-i/255*A;g[I<<8|i]=Math.max(.01,e*t)}}return this._swissReliefLUT=g,this._lastWeight=A,g}static composeSwissRelief(A,g,I,e,i){const t=g.swissSlopeWeight??.5,B=Mg.calculateSlope(A,I,g.zFactor??1,g.noDataValue),C=Mg.calculateMultiHillshade(A,I,g.zFactor??1,g.noDataValue),Q=this.getSwissReliefLUT(t),E=new Uint8ClampedArray(e*i),s=255/90;for(let A=0;A<e*i;A++){if(isNaN(B[A])){E[A]=0;continue}const g=Math.max(0,Math.min(255,B[A]*s|0)),I=0|Math.max(0,Math.min(255,C[A]));E[A]=Math.max(1,255*Q[I<<8|g]|0)}return E}}class mg{static async generate(A,g,I){const{width:e,height:i}=A,B=258===e,C=this.computeTerrainData(A,g),Q=B?this.extractMeshRaster(C):C,E=B?257:e,s=B?257:i,{terrainSkirtHeight:a,verticalExaggeration:o=1}=g;let r;switch(g.tesselator){case"martini":default:r=this.getMartiniTileMesh(I,E,Q);break;case"delatin":r=this.getDelatinTileMesh(I,E,s,Q)}const{vertices:n}=r;let{triangles:h}=r,l=this.getMeshAttributes(n,Q,E,s,A.bounds,o);const c=t.getMeshBoundingBox(l);if(a){const A=a*o;if(A>0){const{attributes:g,triangles:I}=Fg(l,h,A);l=g,h=I}}const D=257===E?257:E+1,w=257===s?257:s+1,d={map:{loaderData:{header:{}},header:{vertexCount:h.length,boundingBox:c},mode:4,indices:{value:Uint32Array.from(h),size:1},attributes:l},raw:Q,width:D,height:w},y=!!g.skipTexture;if(B&&g.useSwissRelief){const I=A.cellSizeMeters??(A.bounds[2]-A.bounds[0])/256,e=this.preserveNoDataForKernel(C,A.rasters[0],g.noDataValue),i=Yg.composeSwissRelief(e,g,I,256,256);if(d.rawDerived=i,!y&&this.hasVisualizationOptions(g)){const A=this.cropRaster(Q,D,w,256,256),I=await pg.generate({width:256,height:256,rasters:[A,i]},{...g,type:"image"});d.texture=I.map}}else if(B&&(g.useSlope||g.useHillshade)){const I=A.cellSizeMeters??(A.bounds[2]-A.bounds[0])/256,e=g.zFactor??1;g.useSlope&&g.useHillshade&&console.warn("[TerrainGenerator] useSlope and useHillshade are mutually exclusive; useSlope takes precedence.");const i=this.preserveNoDataForKernel(C,A.rasters[0],g.noDataValue);let t;if(t=g.useSlope?Mg.calculateSlope(i,I,e,g.noDataValue):Mg.calculateHillshade(i,I,g.hillshadeAzimuth??315,g.hillshadeAltitude??45,e,g.noDataValue),d.rawDerived=t,!y&&this.hasVisualizationOptions(g)){const A=await pg.generate({width:256,height:256,rasters:[t]},{...g,type:"image"});d.texture=A.map}}else if(!y&&this.hasVisualizationOptions(g)){const I=g.multiplier??1,e=g.noDataValue,i=A.rasters[0],t=A.width,B=A.height,C=Math.max(1,Math.round(i.length/(t*B))),Q=g.useChannelIndex??(null!=g.useChannel?g.useChannel-1:0),E=new Float32Array(65536);for(let A=0;A<256;A++)for(let g=0;g<256;g++){const s=Math.min(g,t-1),a=i[(Math.min(A,B-1)*t+s)*C+Q],o=Ug(a,e);E[256*A+g]=o?e*I:a*I}const s={...g,type:"image",useChannelIndex:0,numOfChannels:1,noDataValue:void 0!==e?e*I:void 0},a=await pg.generate({width:256,height:256,rasters:[E]},s);d.texture=a.map}return d}static extractMeshRaster(A){const g=257,I=new Float32Array(66049);for(let e=0;e<g;e++)for(let i=0;i<g;i++)I[e*g+i]=A[258*(e+1)+(i+1)];return I}static hasVisualizationOptions(A){return!!(A.useSingleColor||A.useHeatMap||A.useSwissRelief||A.useColorsBasedOnValues||A.useColorClasses)}static preserveNoDataForKernel(A,g,I){const e=new Float32Array(A.length);if(null!=I&&g&&g.length===A.length)for(let i=0;i<A.length;i++){const t=Ug(g[i],I);e[i]=t?I:A[i]}else e.set(A);return e}static cropRaster(A,g,I,e,i){const t=new Float32Array(e*i);for(let I=0;I<i;I++)for(let i=0;i<e;i++)t[I*e+i]=A[I*g+i];return t}static computeTerrainData(A,g){const{width:I,height:e,rasters:i}=A,t={...g};t.useChannelIndex??=null==t.useChannel?null:t.useChannel-1;const B=i.length>1,C=B?i[t.useChannelIndex??0]??i[0]:i[0],Q=258===I,E=257===I,s=new Float32Array((Q?258:E?257:I+1)*(Q?258:E?257:e+1)),a=B?1:C.length/(I*e);let o=B?0:t.useChannelIndex??0;const r=g.terrainMinValue??0;for(let A=0;A<e;A++)for(let e=0;e<I;e++){const i=g.multiplier??1;let t=Ug(C[o],g.noDataValue)?r:C[o]*i;(Number.isNaN(t)||t<-34e37||t>34e37)&&(t=r);s[Q||E?A*I+e:A*(I+1)+e]=t,o+=a}if(!Q&&!E){for(let A=(I+1)*I,g=0;g<I;g++,A++)s[A]=s[A-I-1];for(let A=e,g=0;g<e+1;g++,A+=e+1)s[A]=s[A-1]}return s}static getMartiniTileMesh(A,g,I){const e=new ug(257===g?257:g+1).createTile(I),{vertices:i,triangles:t}=e.getMesh(A);return{vertices:i,triangles:t}}static getDelatinTileMesh(A,g,I,e){const i=new Ng(e,257===g?257:g+1,257===I?257:I+1);i.run(A);const{coords:t,triangles:B}=i;return{vertices:t,triangles:B}}static getMeshAttributes(A,g,I,e,i,t=1){const B=257===I?257:I+1,C=A.length/2,Q=new Float32Array(3*C),E=new Float32Array(2*C),[s,a,o,r]=i||[0,0,I,e],n=257===I?I-1:I,h=257===e?e-1:e,l=(o-s)/n,c=(r-a)/h;for(let I=0;I<C;I++){const e=A[2*I],i=A[2*I+1],C=i*B+e;Q[3*I]=e*l+s,Q[3*I+1]=-i*c+r,Q[3*I+2]=g[C]*t,E[2*I]=e/n,E[2*I+1]=i/h}return{POSITION:{value:Q,size:3},TEXCOORD_0:{value:E,size:2}}}}class Kg{data;async setUrl(A){const g=await fetch(A),I=await g.arrayBuffer(),e=await yg(I),i=await e.getImage(0);this.data=i}async getMap(A,g,I){const e=Kg.resolveVisualizationMode({...fg,...g},g);switch(e.type){case"image":return this.getBitmap(A,e);case"terrain":return this.getHeightmap(A,e,I);default:return null}}static resolveVisualizationMode(A,g){const I=["useSingleColor","useColorClasses","useColorsBasedOnValues","useHeatMap"],e=I.filter(A=>!0===g[A]),i={...A};if(e.length>0){for(const A of I)i[A]=!1;for(const A of e)i[A]=!0}else if("terrain"===A.type){(g.useSwissRelief||g.useSlope||g.useHillshade)&&!A.skipTexture||(i.useHeatMap=!1,i.useSingleColor=!0,i.color=A.terrainColor)}return i}async getHeightmap(A,g,I){let e,i,t,B,C=[];return"string"==typeof A?(await this.setUrl(A),C=await this.data.readRasters(),e=this.data.getWidth(),i=this.data.getHeight(),t=this.data.getBoundingBox()):(C=A.rasters,e=A.width,i=A.height,t=A.bounds,B=A.cellSizeMeters),await mg.generate({width:e,height:i,rasters:C,bounds:t,cellSizeMeters:B},g,I)}async getBitmap(A,g){let I,e,i=[];return"string"==typeof A?(await this.setUrl(A),i=await this.data.readRasters(),I=this.data.getWidth(),e=this.data.getHeight()):(i=A.rasters,I=A.width,e=A.height),pg.generate({width:I,height:e,rasters:i},g)}}const Hg=2*Math.PI*6378137,Jg=Hg/2,bg=[-20037508.342789244,20037508.342789244];function qg(A){const g=A[0],I=A[1],e=g/Jg*180;let i=I/Jg*180;return i=180/Math.PI*(2*Math.atan(Math.exp(i*Math.PI/180))-Math.PI/2),[e,i]}function xg(A,g,I){const e=function(A,g){return Math.round(Math.log2(Hg/(g*A)))}(A,g);return[e-(I-1),e]}class Tg{tileResultCache=new Map;tileResultCacheMaxSize;rasterCache=new Map;rasterCacheMaxSize;reliefMaskCache=new Map;reliefMaskCacheMaxSize;imageCache=new Map;constructor(A){this.tileResultCacheMaxSize=A?.tileResultCacheMaxSize??32,this.rasterCacheMaxSize=A?.rasterCacheMaxSize??64,this.reliefMaskCacheMaxSize=A?.reliefMaskCacheMaxSize??64}getTileResultCacheKey(A,g,I,e,i){return`${I}/${A}/${g}/${e}/${i?"1":"0"}`}getTileCacheKey(A,g,I){return`${I}/${A}/${g}`}getTileResult(A){const g=this.tileResultCache.get(A);if(g)return this.tileResultCache.delete(A),this.tileResultCache.set(A,g),g}setTileResult(A,g){if(this.tileResultCache.set(A,g),this.tileResultCache.size>this.tileResultCacheMaxSize){const A=this.tileResultCache.keys().next().value;if(A){const g=this.tileResultCache.get(A);g&&!g.settled&&g.controller.abort(),this.tileResultCache.delete(A)}}}deleteTileResult(A){return this.tileResultCache.delete(A)}clearTileResultCache(){for(const A of this.tileResultCache.values())A.settled||A.controller.abort();this.tileResultCache.clear()}getRaster(A){const g=this.rasterCache.get(A);if(g)return this.rasterCache.delete(A),this.rasterCache.set(A,g),g}setRaster(A,g){if(this.rasterCache.set(A,g),g.catch(()=>this.rasterCache.delete(A)),this.rasterCache.size>this.rasterCacheMaxSize){const A=this.rasterCache.keys().next().value;A&&this.rasterCache.delete(A)}}deleteRaster(A){return this.rasterCache.delete(A)}clearRasterCache(){this.rasterCache.clear()}getReliefMask(A){const g=this.reliefMaskCache.get(A);if(g)return this.reliefMaskCache.delete(A),this.reliefMaskCache.set(A,g),g}setReliefMask(A,g){if(this.reliefMaskCache.set(A,g),g.catch(()=>this.reliefMaskCache.delete(A)),this.reliefMaskCache.size>this.reliefMaskCacheMaxSize){const A=this.reliefMaskCache.keys().next().value;A&&this.reliefMaskCache.delete(A)}}deleteReliefMask(A){return this.reliefMaskCache.delete(A)}clearReliefMaskCache(){this.reliefMaskCache.clear()}getImage(A){return this.imageCache.get(A)}setImage(A,g){this.imageCache.set(A,g)}deleteImage(A){return this.imageCache.delete(A)}clearImageCache(){this.imageCache.clear()}clearAll(){this.clearTileResultCache(),this.clearRasterCache(),this.clearReliefMaskCache(),this.clearImageCache()}}class Og{options;tileSize;constructor(A){this.options=A.options,this.tileSize=A.tileSize}createEmptyTile(A){const g=A||this.tileSize,I=this.options.numOfChannels||1,e=new Float32Array(g*g*I);return void 0!==this.options.noDataValue&&e.fill(this.options.noDataValue),e}createTileBuffer(A,g,I=1){const e=g*g*I;switch(A){case"UInt8":return new Uint8Array(e);case"Int8":return new Int8Array(e);case"UInt16":return new Uint16Array(e);case"Int16":return new Int16Array(e);case"UInt32":return new Uint32Array(e);case"Int32":return new Int32Array(e);case"Float32":return new Float32Array(e);case"Float64":return new Float64Array(e);default:return console.warn(`Unsupported data type: ${A}, defaulting to Float32`),new Float32Array(e)}}}const Pg=new Map,vg={blurredTexture:!0,debugTileStats:!1};class Vg{cog;cogZoomLookup=[];cogResolutionLookup=[];cogMeshMaxErrorLookup=[];cogOrigin=[0,0];zoomRange=[0,0];tileSize=256;bounds=[0,0,0,0];bandDescriptions=[];geo=new Kg;options;cache=new Tg;tileReader;initializePromise;lastInitializedUrl;constructor(A){this.options={...vg,...A}}async initializeCog(A){if(this.initializePromise&&(!this.cog||this.lastInitializedUrl===A))return this.initializePromise;if(void 0!==this.lastInitializedUrl&&this.lastInitializedUrl!==A){this.cache.clearAll();const A=[];Pg.forEach((g,I)=>{I.startsWith(this.lastInitializedUrl)&&A.push(I)}),A.forEach(A=>Pg.delete(A)),this.cog=void 0,this.cogOrigin=[0,0],this.cogZoomLookup=[],this.cogResolutionLookup=[],this.cogMeshMaxErrorLookup=[],this.tileSize=256,this.zoomRange=[0,0],this.bounds=[0,0,0,0],this.bandDescriptions=[],this.initializePromise=void 0,this.lastInitializedUrl=void 0}return this.cog&&this.lastInitializedUrl===A?this.initializePromise??Promise.resolve():(this.initializePromise=(async()=>{try{const g=this.options.blockSize??65536;this.cog=await async function(A,g={},I){return dg.fromSource(Bg(A,g),void 0,I)}(A,{blockSize:g});const I=this.cog.getImage();this.cache.setImage(0,I);const e=await I,i=e.fileDirectory;this.cogOrigin=e.getOrigin(),this.options.noDataValue??=function(A){const g=A.getGDALNoData();if(null==g)return void console.warn("No noData value defined — raster might be rendered incorrectly.");const I=String(g).replace(/\0/g,"").trim();if(""===I)return void console.warn("noData value is an empty string after cleanup.");const e=Number(I);return"nan"===I.toLowerCase()?NaN:Number.isNaN(e)?void console.warn(`Failed to parse numeric noData value: '${I}'`):e}(e),this.options.format??=await async function(A){const g=A.hasTag("SampleFormat"),I=A.hasTag("BitsPerSample");if(!g||!I)return console.warn("Missing SampleFormat or BitsPerSample tags, defaulting to UInt8"),"UInt8";const e=A.getValue("SampleFormat"),i=A.getValue("BitsPerSample"),t=e&&"number"==typeof e.length&&e.length>0?e[0]:e;let B;return B=1===t?"UInt":2===t?"Int":3===t?"Float":"Unknown",`${B}${i&&"number"==typeof i.length&&i.length>0?i[0]:i}`}(i),this.options.numOfChannels=i.getValue("SamplesPerPixel"),this.options.planarConfig=i.getValue("PlanarConfiguration");const t=this.options.numOfChannels??1,B=Array(t).fill("");if(e.fileDirectory.hasTag("GDAL_METADATA")){const A=await e.fileDirectory.loadValue("GDAL_METADATA"),g=/<Item[^>]*name="DESCRIPTION"[^>]*sample="(\d+)"[^>]*>([^<]*)<\/Item>/g;let I;for(;null!==(I=g.exec(A));){const A=parseInt(I[1],10),g=I[2];A<t&&(B[A]=g)}B.every(A=>""===A)&&console.debug("[CogTiles] GDAL_METADATA present but no DESCRIPTION items found")}if(this.bandDescriptions=B,[this.cogZoomLookup,this.cogResolutionLookup]=await async function(A){const g=await A.getImageCount(),I=await A.getImage(0),e=I.getResolution()[0],i=I.getWidth(),t=[],B=[];for(let I=0;I<g;I++){const g=e*(i/(await A.getImage(I)).getWidth()),C=Math.round(Math.log2(156543.03125/g));t[I]=C,B[I]=g}return[t,B]}(this.cog),"terrain"===this.options.type&&this.computeMeshMaxErrorLookup(),this.tileSize=e.getTileWidth(),!this.tileSize||!e.getTileHeight())throw new Error('GeoTIFF Error: The provided image is not tiled. Please use "rio cogeo create --web-optimized" to fix this.');this.zoomRange=xg(this.tileSize,e.getResolution()[0],await this.cog.getImageCount()),this.bounds=function(A){const g=Math.min(A[0],A[2]),I=Math.max(A[0],A[2]),e=Math.min(A[1],A[3]),i=Math.max(A[1],A[3]),t=qg([g,e]),B=qg([I,i]);return[t[0],t[1],B[0],B[1]]}(e.getBoundingBox()),this.tileReader=new Og({options:this.options,tileSize:this.tileSize}),this.lastInitializedUrl=A}catch(g){throw this.initializePromise=void 0,console.error(`[CogTiles] Failed to initialize COG from ${A}:`,g),g}})(),this.initializePromise)}getZoomRange(){return this.zoomRange}getBoundsAsLatLon(){return this.bounds}getNumChannels(){return this.options.numOfChannels||1}getBandDescriptions(){return this.bandDescriptions}getMeshMaxErrorForImageIndex(A){return this.cogMeshMaxErrorLookup[A]}computeMeshMaxErrorLookup(){const A=this.cogZoomLookup[this.cogZoomLookup.length-1],g=this.cogZoomLookup[0];this.cogMeshMaxErrorLookup=this.cogResolutionLookup.map((I,e)=>function(A,g,I,e){const i=function(A,g,I){return A>=I?.5:A<=g?3:3-(A-g)/(I-g)*2.5}(A,I,e),t=g*i;return Math.round(Math.max(.5,Math.min(100,t)))}(this.cogZoomLookup[e],I,A,g))}getImageIndexForZoomLevel(A){return function(A,g){const I=g[g.length-1];if(A>g[0])return 0;if(A<I)return g.length-1;const e=g.indexOf(A);if(-1!==e)return e;let i=0,t=Math.abs(g[0]-A);for(let I=1;I<g.length;I+=1){const e=Math.abs(g[I]-A);e<t&&(t=e,i=I)}return i}(A,this.cogZoomLookup)}async getTileFromImage(A,g,I,e,i){const t=new AbortController;i&&!i.aborted&&i.addEventListener("abort",()=>t.abort(),{once:!0});const B=t.signal;try{const i=this.getImageIndexForZoomLevel(I);let t=this.cache.getImage(i);t||(t=this.cog.getImage(i),this.cache.setImage(i,t));const C=await t,Q=this.cogResolutionLookup[i],E=C.getHeight(),s=C.getWidth(),[a,o]=this.cogOrigin,r=this.tileSize,n=Hg/r/2**I,h=(bg[0]+A*r*n-a)/Q,l=(o-(bg[1]-g*r*n))/Q,c=e||r,D=Math.round(h),w=Math.round(l),d=D+c,y=w+c,f=Math.max(0,D),u=Math.max(0,w),S=Math.min(s,d),G=Math.min(E,y),N=S-f,F=G-u;if(N<=0||F<=0)return[this.tileReader.createEmptyTile(c)];const k=f-D,R=u-w,L=[f,u,S,G];if(k>0||R>0||N<c||F<c){const A=this.options.numOfChannels||1,g=this.tileReader.createTileBuffer(this.options.format||"Float32",c,A);void 0!==this.options.noDataValue&&g.fill(this.options.noDataValue);const I=await C.readRasters({window:L,signal:B});for(let e=0;e<I.length;e+=1){const i=this.tileReader.createTileBuffer(this.options.format||"Float32",c);void 0!==this.options.noDataValue&&i.fill(this.options.noDataValue);for(let A=0;A<F;A+=1){const g=R+A,t=g*c,B=A*I.width;for(let A=0;A<N;A+=1){const C=k+A;g<c&&C<c?i[t+C]=I[e][B+A]:console.error(`[CogTiles] tile buffer bounds exceeded: destRow ${g}, destCol ${C}, FETCH_SIZE ${c}`)}}for(let I=0;I<i.length;I+=1)g[I*A+e]=i[I]}return[g]}return[await C.readRasters({window:L,interleave:!0,signal:B})]}catch(A){if(A instanceof AggregateError&&1===A.errors.length){const g=A.errors[0];if(g instanceof DOMException&&"AbortError"===g.name)throw g;if(g instanceof Error&&"Request was aborted"===g.message)throw new DOMException("Tile request aborted","AbortError");throw g}if(B.aborted||A instanceof DOMException&&"AbortError"===A.name||A instanceof Error&&"Request was aborted"===A.message)throw new DOMException("Tile request aborted","AbortError");if(A instanceof AggregateError){if(A.errors.some(A=>A instanceof DOMException&&"AbortError"===A.name||A instanceof Error&&"Request was aborted"===A.message))throw new DOMException("Tile request aborted","AbortError")}throw A}}async getTile(A,g,I,e,i,t,B){const C=Math.atan(Math.sinh(Math.PI*(1-2*(g+.5)/Math.pow(2,I)))),Q=Hg/Math.pow(2,I)*Math.cos(C)/this.tileSize,E="terrain"===this.options.type,s="image"===this.options.type&&this.options.useReliefGlaze;let a=i;if(!E||i&&0!==i)a=i??4;else{const A=this.getImageIndexForZoomLevel(I);a=this.getMeshMaxErrorForImageIndex(A)??4}return E?this.getTerrainTile(A,g,I,e,a,Q,t,B):s?this.getGlazeTile(A,g,I,e,Q,i,t):this.getBitmapTile(A,g,I,e,Q,i,t)}async getTerrainTile(A,g,I,e,i,t,B,C){const Q=C??this.options.skipTexture??!1;if(this.options.cacheAllBands){if(B?.aborted)return null;const t=this.options.useChannel||1,C=`${this.lastInitializedUrl}_${I}_${A}_${g}_${i}_${Q}_band_${t}`;if(Pg.has(C)){const A=Pg.get(C);if(A)return A}try{const C=await this.getTileAllBands(A,g,I,i,void 0,e);if(C&&C.length>0){if(B?.aborted)return null;C.forEach((e,t)=>{const B=t+1,C=`${this.lastInitializedUrl}_${I}_${A}_${g}_${i}_${Q}_band_${B}`;Pg.set(C,e)});const e=(t||1)-1;return e<0||e>=C.length?(console.error(`[CogTiles] Requested band index ${e} out of range (0-${C.length-1})`),null):C[e]}}catch(A){console.warn("[CogTiles] Multi-band fetch failed, falling back to single-band:",A)}}const E=this.cache.getTileResultCacheKey(A,g,I,i,Q),s=this.cache.getTileResult(E);if(s){if(s.settled)return B?.aborted?null:s.promise;s.callerCount+=1,B&&!B.aborted&&B.addEventListener("abort",()=>{s.callerCount-=1,s.callerCount<=0&&!s.settled&&s.controller.abort()},{once:!0});const A=await s.promise;return B?.aborted?null:A}const a=new AbortController,o=(async()=>{const B=this.options.useSlope||this.options.useHillshade||this.options.useSwissRelief,C=this.tileSize+(B?2:1),s=await this.getTileFromImage(A,g,I,C,a.signal),o=s[0],r=this.options.noDataValue;if(void 0!==r&&o){const A=this.options.numOfChannels||1;let g=this.options.useChannelIndex??(this.options.useChannel?this.options.useChannel-1:0);null==g&&(g=0);const I=this.options.noDataCheck??"full",e=C,i=C,t=A=>Ug(A,r);let B=!0;if("full"===I)if(A>1)for(let I=g;I<o.length;I+=A){if(!t(o[I])){B=!1;break}}else for(let A=0;A<o.length;A++){if(!t(o[A])){B=!1;break}}else if("border+center"===I){const I=A;for(let A=0;A<e;A++){if(!t(o[A*I+g])){B=!1;break}}if(B)for(let A=0;A<e;A++){if(!t(o[((i-1)*e+A)*I+g])){B=!1;break}}if(B)for(let A=1;A<i-1;A++){const i=(A*e+(e-1))*I+g,C=o[A*e*I+g],Q=o[i];if(!t(C)||!t(Q)){B=!1;break}}if(B){const A=[[Math.floor(e/2),Math.floor(i/2)],[Math.floor(e/4),Math.floor(i/4)],[Math.floor(3*e/4),Math.floor(i/4)],[Math.floor(e/4),Math.floor(3*i/4)],[Math.floor(3*e/4),Math.floor(3*i/4)]];for(const[i,C]of A){if(!t(o[(C*e+i)*I+g])){B=!1;break}}}}else for(let A=0;A<o.length;A++){if(!t(o[A])){B=!1;break}}if(B)return this.cache.deleteTileResult(E),null}const n={...this.options,skipTexture:Q};return this.geo.getMap({rasters:[s[0]],width:C,height:C,bounds:e??[0,0,0,0],cellSizeMeters:t},n,i)})(),r={promise:o,controller:a,callerCount:1,settled:!1};B&&!B.aborted&&B.addEventListener("abort",()=>{r.callerCount-=1,r.callerCount<=0&&!r.settled&&r.controller.abort()},{once:!0}),r.promise=o,this.cache.setTileResult(E,r);try{const A=await o;return r.settled=!0,B?.aborted?null:A}catch(A){throw r.settled=!0,this.cache.deleteTileResult(E),A}}async getGlazeTile(A,g,I,e,i,t,B){const C=this.cache.getTileCacheKey(A,g,I);let Q=this.cache.getReliefMask(C);if(!Q){const e=new AbortController;Q=(async()=>{const t=await this.getTileFromImage(A,g,I,this.tileSize+2,e.signal);return Yg.composeSwissRelief(t[0],this.options,i,this.tileSize,this.tileSize)})(),this.cache.setReliefMask(C,Q),Q.catch(()=>this.cache.deleteReliefMask(C))}if(B?.aborted)return null;const E=await Q;return B?.aborted?null:this.geo.getMap({rasters:[E],width:this.tileSize,height:this.tileSize,bounds:e??[0,0,0,0],cellSizeMeters:i},this.options,t??4)}async getBitmapTile(A,g,I,e,i,t,B){const C=this.cache.getTileCacheKey(A,g,I);let Q=this.cache.getRaster(C);if(!Q){const e=new AbortController;Q=this.getTileFromImage(A,g,I,this.tileSize,e.signal),this.cache.setRaster(C,Q),Q.catch(()=>this.cache.deleteRaster(C))}if(B?.aborted)return null;const E=await Q;return B?.aborted?null:this.geo.getMap({rasters:[E[0]],width:this.tileSize,height:this.tileSize,bounds:e??[0,0,0,0],cellSizeMeters:i},this.options,t??4)}async getTileAllBands(A,g,I,e,i,t){if(!this.cog)return[];const B=Math.atan(Math.sinh(Math.PI*(1-2*(g+.5)/Math.pow(2,I)))),C=Hg/Math.pow(2,I)*Math.cos(B)/this.tileSize;let Q;if(e&&0!==e)Q=e;else{const A=this.getImageIndexForZoomLevel(I);Q=this.getMeshMaxErrorForImageIndex(A)??4}const E=new AbortController;i&&!i.aborted&&i.addEventListener("abort",()=>E.abort(),{once:!0});const s=E.signal;try{const e=this.getImageIndexForZoomLevel(I);let B=this.cache.getImage(e);B||(B=this.cog.getImage(e),this.cache.setImage(e,B));const E=await B,a=this.cogResolutionLookup[e],o=E.getHeight(),r=E.getWidth(),[n,h]=this.cogOrigin,l=this.tileSize,c=bg[0],D=bg[1],w=this.options.useSlope||this.options.useHillshade||this.options.useSwissRelief,d=this.tileSize+(w?2:1),y=Hg/l/2**I,f=(c+A*l*y-n)/a,u=(h-(D-g*l*y))/a,S=Math.round(f),G=Math.round(u),N=S+d,F=G+d,k=Math.max(0,S),R=Math.max(0,G),L=Math.min(r,N),U=Math.min(o,F),p=L-k,M=U-R;if(p<=0||M<=0)return[];const Y=k-S,m=R-G,K=[k,R,L,U],H=await E.readRasters({window:K,signal:s});if(i?.aborted)return[];const J=[],b=H.length;for(let A=0;A<b;A+=1){const g=H[A],I=this.tileReader.createTileBuffer(this.options.format||"Float32",d);void 0!==this.options.noDataValue&&I.fill(this.options.noDataValue);for(let A=0;A<M;A+=1){const e=m+A,i=e*d,t=A*p;for(let A=0;A<p;A+=1){const B=Y+A;e<d&&B<d&&(I[i+B]=g[t+A])}}const e={...this.options,useChannel:1,useChannelIndex:0,numOfChannels:1},i=await this.geo.getMap({rasters:[I],width:d,height:d,bounds:t??[0,0,0,0],cellSizeMeters:C},e,Q);i&&J.push(i)}return J}catch(A){return i?.aborted||console.error("[CogTiles.getTileAllBands] Error fetching all bands:",A),[]}}clearTileResultCache(){this.cache.clearTileResultCache()}}const Zg={type:"object",value:null,validate:(A,g)=>g.optional&&null===A||"string"==typeof A||Array.isArray(A)&&A.every(A=>"string"==typeof A),equal:(A,g)=>{if(A===g)return!0;if(!Array.isArray(A)||!Array.isArray(g))return!1;const I=A.length;if(I!==g.length)return!1;for(let e=0;e<I;e++)if(A[e]!==g[e])return!1;return!0}},zg={...g.TileLayer.defaultProps,bounds:{type:"array",value:null,optional:!0,compare:!0},rasterData:Zg,clampToTerrain:!1,workerUrl:""};class jg extends A.CompositeLayer{static defaultProps=zg;static layerName="CogBitmapLayer";async initializeState(A){super.initializeState(A),this.setState({bitmapCogTiles:this.props.cogTiles||new Vg(this.props.cogBitmapOptions),initialized:!1}),await this.init()}async init(){await this.state.bitmapCogTiles.initializeCog(this.props.rasterData);const A=this.state.bitmapCogTiles.getZoomRange(),[g,I]=A;this.setState({initialized:!0,minZoom:g,maxZoom:I})}updateState({props:g,oldProps:I}){const e=g.rasterData!==I.rasterData;if(e){const{rasterData:A}=g,I=A&&(Array.isArray(A)||A.includes("{x}")&&A.includes("{y}")||this.props.isTiled);this.setState({isTiled:I})}e||(g.bounds,I.bounds);this.state.isTiled,g?.cogBitmapOptions?.useChannel!==I.cogBitmapOptions?.useChannel&&(this.state.bitmapCogTiles.options.useChannel=g.cogBitmapOptions.useChannel,this.state.bitmapCogTiles.options.useChannelIndex=null),g.workerUrl&&A.log.removed("workerUrl","loadOptions.terrain.workerUrl")()}async getTiledBitmapData(A){let g;try{g=await this.state.bitmapCogTiles.getTile(A.index.x,A.index.y,A.index.z,void 0,void 0,A.signal)}catch(A){if(A instanceof DOMException&&"AbortError"===A.name)return null;throw A}return g&&!this.props.pickable&&(g.raw=null),g}renderSubLayers(A){const g=this.getSubLayerClass("image",I.BitmapLayer),{blurredTexture:i}=this.state.bitmapCogTiles.options,{clampToTerrain:t}=this.props,B="object"==typeof t&&null!==t&&"terrainDrawMode"in t,{data:C}=A;if(!C)return null;const{bbox:{west:Q,south:E,east:s,north:a}}=A.tile;return new g({...A,tileSize:this.state.bitmapCogTiles.tileSize},{data:[1],image:C.map,_instanced:!1,pickable:A.pickable,bounds:[Q,E,s,a],textureParameters:{minFilter:i?"linear":"nearest",magFilter:i?"linear":"nearest"},extensions:t?[new e._TerrainExtension]:[],...B?{terrainDrawMode:t.terrainDrawMode}:{}})}renderLayers(){const{clampToTerrain:A,maxRequests:I,onTileLoad:e,onTileUnload:i,onTileError:t,maxCacheSize:B,maxCacheByteSize:C,refinementStrategy:Q,cogBitmapOptions:E}=this.props;if(this.state.isTiled&&this.state.initialized){const{tileSize:s}=this.state.bitmapCogTiles;return new g.TileLayer(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledBitmapData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),pickable:this.props.pickable,onClick:this.props.onClick,updateTriggers:{getTileData:[A,E.useChannel]},extent:this.state.bitmapCogTiles.getBoundsAsLatLon(),tileSize:s,minZoom:this.state.minZoom,maxZoom:this.state.maxZoom,maxRequests:I,onTileLoad:e,onTileUnload:i,onTileError:t,maxCacheSize:B,maxCacheByteSize:C,refinementStrategy:Q})}return null}}const Wg={type:"object",value:null,validate:(A,g)=>g.optional&&null===A||"string"==typeof A||Array.isArray(A)&&A.every(A=>"string"==typeof A),equal:(A,g)=>{if(A===g)return!0;if(!Array.isArray(A)||!Array.isArray(g))return!1;const I=A.length;if(I!==g.length)return!1;for(let e=0;e<I;e++)if(A[e]!==g[e])return!1;return!0}},_g=[1],Xg={...g.TileLayer.defaultProps,elevationData:Wg,texture:{...Wg,optional:!0},meshMaxError:{type:"object",value:"auto",validate:A=>"number"==typeof A||"auto"===A,equal:(A,g)=>A===g},bounds:{type:"array",value:null,optional:!0,compare:!0},color:{type:"color",value:[255,255,255]},elevationDecoder:{type:"object",value:{rScaler:1,gScaler:0,bScaler:0,offset:0}},workerUrl:"",wireframe:!1,material:!0};class $g extends A.CompositeLayer{static defaultProps=Xg;static layerName="CogTerrainLayer";terrainUrl="";async initializeState(A){super.initializeState(A);const g=this.props.cogTiles||new Vg(this.props.terrainOptions);if(this.setState({terrainCogTiles:g,initialized:!1}),g.cog){const A=g.getZoomRange(),[I,e]=A;this.setState({initialized:!0,minZoom:I,maxZoom:e})}else await this.init()}async init(){await this.state.terrainCogTiles.initializeCog(this.props.elevationData);const A=this.state.terrainCogTiles.getZoomRange(),[g,I]=A;this.setState({initialized:!0,minZoom:g,maxZoom:I})}updateState({props:g,oldProps:I}){const e=g.elevationData!==I.elevationData;if(e){const{elevationData:A}=g,I=A&&(Array.isArray(A)||A.includes("{x}")&&A.includes("{y}"))||this.props.isTiled;this.setState({isTiled:I})}e||g.meshMaxError!==I.meshMaxError||g.elevationDecoder!==I.elevationDecoder||(g.bounds,I.bounds);g.meshMaxError!==I.meshMaxError&&this.state.terrainCogTiles&&this.state.terrainCogTiles.clearTileResultCache(),this.state.isTiled,g?.terrainOptions?.useChannel!==I.terrainOptions?.useChannel&&this.state.terrainCogTiles&&(this.state.terrainCogTiles.options.useChannel=g.terrainOptions.useChannel,this.state.terrainCogTiles.options.useChannelIndex=null,this.state.terrainCogTiles.clearTileResultCache());const i=!(!g?.wireframe&&"terrain"!==g?.operation&&!g?.disableTexture);i!==!(!I?.wireframe&&"terrain"!==I?.operation&&!I?.disableTexture)&&this.state.terrainCogTiles&&(this.state.terrainCogTiles.options.skipTexture=i,this.state.terrainCogTiles.clearTileResultCache()),g.cogTiles&&g.cogTiles!==I.cogTiles&&this.setState({terrainCogTiles:g.cogTiles}),g.workerUrl&&A.log.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:A,bounds:g,elevationDecoder:I,meshMaxError:e,signal:i}){if(!A)return null;let t=this.getLoadOptions();t={...t,_workerType:"test",terrain:{skirtHeight:this.state.isTiled?2*e:0,...t?.terrain,bounds:g,meshMaxError:e,elevationDecoder:I}};const{fetch:B}=this.props;return B(A,{propName:"elevationData",layer:this,loadOptions:t,signal:i,loaders:[]})}async getTiledTerrainData(A){const{viewport:g}=this.context;let I=[0,0],e=[0,0];if(g.isGeospatial){const i=A.bbox;I=g.projectFlat([i.west,i.south]),e=g.projectFlat([i.east,i.north])}else{const g=A.bbox;I=[g.left,g.bottom],e=[g.right,g.top]}const i=[I[0],I[1],e[0],e[1]];let t=null;try{const g=!(!this.props.wireframe&&"terrain"!==this.props.operation&&!this.props.disableTexture),I="auto"===this.props.meshMaxError?void 0:this.props.meshMaxError;t=await this.state.terrainCogTiles.getTile(A.index.x,A.index.y,A.index.z,i,I,A.signal,g)}catch(A){if(A instanceof DOMException&&"AbortError"===A.name)return null;throw A}return t&&!this.props.pickable&&(t.raw=null),t?[t,null]:null}renderSubLayers(g){const I=this.getSubLayerClass("mesh",C.SimpleMeshLayer),{color:e,wireframe:i,terrainOptions:t}=this.props,{data:B}=g;if(!B)return null;const[Q]=B,E=!this.props.disableTexture&&Q?.texture?Q.texture:null,s=t?.useSwissRelief,a=t?.disableLighting,o=s||a?{material:{ambient:1,diffuse:0,shininess:0,specularColor:[0,0,0]}}:{material:this.props.material};return new I({...g,tileSize:g.tileSize},{...o,data:_g,mesh:Q?.map,texture:E,_instanced:!1,pickable:g.pickable,coordinateSystem:A.COORDINATE_SYSTEM.CARTESIAN,getColor:E?[255,255,255]:e,wireframe:i})}onViewportLoad(A){if(!A)return;const{zRange:g}=this.state,I=A.map(A=>A.content).filter(A=>!!A&&!!A[0]).map(A=>{if(!A||!A[0])return;const g=A[0]?.map?.header?.boundingBox;return g?.map(A=>A[2])}).filter(A=>void 0!==A);if(0===I.length)return;const e=Math.min(...I.map(A=>A?.[0]??0).filter(A=>Number.isFinite(A))),i=Math.max(...I.map(A=>A?.[1]??0).filter(A=>Number.isFinite(A)));(!g||e<g[0]||i>g[1])&&this.setState({zRange:[Number.isFinite(e)?e:0,Number.isFinite(i)?i:0]})}renderLayers(){const{elevationData:A,meshMaxError:I,elevationDecoder:e,tileSize:i,extent:t,maxRequests:B,onTileLoad:C,onTileUnload:Q,onTileError:E,maxCacheSize:s,maxCacheByteSize:a,refinementStrategy:o}=this.props;return this.state.isTiled&&this.state.initialized?new g.TileLayer(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),pickable:this.props.pickable,onClick:this.props.onClick,updateTriggers:{getTileData:{elevationData:(r=A,Array.isArray(r)?r.join(";"):r||""),meshMaxError:I,elevationDecoder:e,terrainCogTiles:this.state.terrainCogTiles,skipTexture:!(!this.props.wireframe&&"terrain"!==this.props.operation&&!this.props.disableTexture),useChannel:this.props.terrainOptions?.useChannel},renderSubLayers:{disableTexture:this.props.disableTexture,terrainOptions:this.props.terrainOptions}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:i,minZoom:this.state.minZoom,maxZoom:this.state.maxZoom,extent:t,maxRequests:B,onTileLoad:C,onTileUnload:Q,onTileError:E,maxCacheSize:s,maxCacheByteSize:a,refinementStrategy:o}):null;var r}}E();var AI=Object.freeze({__proto__:null,default:class extends lg{decodeBlock(A){return A}}});function gI(A,g){for(let I=g.length-1;I>=0;I--)A.push(g[I]);return A}function II(A){const g=new Uint16Array(4093),I=new Uint8Array(4093);for(let A=0;A<=257;A++)g[A]=4096,I[A]=A;let e=258,i=9,t=0;function B(){e=258,i=9}function C(A){const g=function(A,g,I){const e=g%8,i=Math.floor(g/8),t=8-e,B=g+I-8*(i+1);let C=8*(i+2)-(g+I);const Q=8*(i+2)-g;if(C=Math.max(0,C),i>=A.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),257;let E=A[i]&2**(8-e)-1;E<<=I-t;let s=E;if(i+1<A.length){let g=A[i+1]>>>C;g<<=Math.max(0,I-Q),s+=g}if(B>8&&i+2<A.length){const e=8*(i+3)-(g+I);s+=A[i+2]>>>e}return s}(A,t,i);return t+=i,g}function Q(A,i){return I[e]=i,g[e]=A,e++,e-1}function E(A){const e=[];for(let i=A;4096!==i;i=g[i])e.push(I[i]);return e}const s=[];B();const a=new Uint8Array(A);let o,r=C(a);for(;257!==r;){if(256===r){for(B(),r=C(a);256===r;)r=C(a);if(257===r)break;if(r>256)throw new Error(`corrupted code at scanline ${r}`);gI(s,E(r)),o=r}else if(r<e){const A=E(r);gI(s,A),void 0!==o&&Q(o,A[A.length-1]),o=r}else{if(void 0===o)throw new Error(`Invalid LZW code: ${r} with no previous code`);const A=E(o);if(!A)throw new Error(`Bogus entry. Not in dictionary, ${o} / ${e}, position: ${t}`);gI(s,A),s.push(A[A.length-1]),Q(o,A[A.length-1]),o=r}e+1>=2**i&&(12===i?o=void 0:i++),r=C(a)}return new Uint8Array(s)}var eI=Object.freeze({__proto__:null,default:class extends lg{decodeBlock(A){return II(A).buffer}}});const iI=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),tI=4017,BI=799,CI=3406,QI=2276,EI=1567,sI=3784,aI=5793,oI=2896;function rI(A,g){let I=0;const e=[];let i=16;for(;i>0&&!A[i-1];)--i;e.push({children:[],index:0});let t,B=e[0];for(let C=0;C<i;C++){for(let i=0;i<A[C];i++){if(B=e.pop(),!B)throw new Error("buildHuffmanTable: codeLength mismatch");for(B.children[B.index]=g[I];B.index>0;)if(B=e.pop(),!B)throw new Error("buildHuffmanTable: codeLength mismatch");for(B.index++,e.push(B);e.length<=C;)e.push(t={children:[],index:0}),B.children[B.index]=t.children,B=t;I++}C+1<i&&(e.push(t={children:[],index:0}),B.children[B.index]=t.children,B=t)}return e[0].children}function nI(A,g,I,e,i,t,B,C,Q){const{mcusPerLine:E,progressive:s}=I;if(e.length>1&&(void 0===E||void 0===I.mcusPerColumn))throw new Error("Missing MCU dimensions");if(1===e.length&&(void 0===e[0].blocksPerLine||void 0===e[0].blocksPerColumn))throw new Error("Missing block dimensions");const a=g;let o=g,r=0,n=0;function h(){if(n>0)return n--,r>>n&1;if(r=A[o++],255===r){const g=A[o++];if(g)throw new Error(`unexpected marker: ${(r<<8|g).toString(16)}`)}return n=7,r>>>7}function l(A){if(!A)throw new Error("Huffman table not found");let g,I=A;for(;null!==(g=h());){const A=I[g];if("number"==typeof A)return A;if("object"!=typeof A)throw new Error("invalid huffman sequence");I=A}return null}function c(A){let g=A,I=0;for(;g>0;){const A=h();if(null===A)return;I=I<<1|A,--g}return I}function D(A){const g=c(A);if(void 0!==g)return g>=1<<A-1?g:g+(-1<<A)+1}let w=0;let d,y=0;function f(A,g,I,e,i){const t=I%E,B=(I/E|0)*A.v+e,C=t*A.h+i;if(!A.blocks)throw new Error("Missing blocks");g(A,A.blocks[B][C])}function u(A,g,I){const e=I/A.blocksPerLine|0,i=I%A.blocksPerLine;if(!A.blocks)throw new Error("Missing blocks");g(A,A.blocks[e][i])}const S=e.length;let G,N,F,k,R,L;L=s?0===t?0===C?function(A,g){const I=l(A.huffmanTableDC);if(null===I)throw new Error("Huffman error");const e=D(I);if(void 0===e)throw new Error("Unexpected end of data in DC coefficient decoding");const i=0===I?0:e<<Q;void 0===A.pred&&(A.pred=0),A.pred+=i,g[0]=A.pred}:function(A,g){const I=h();if(null===I)throw new Error("Unexpected end of data in DC coefficient decoding");g[0]|=I<<Q}:0===C?function(A,g){if(w>0)return void w--;let I=t;const e=B;for(;I<=e;){const e=l(A.huffmanTableAC);if(null===e)throw new Error("Unexpected end of data in AC coefficient decoding");const i=15&e,t=e>>4;if(0===i){if(t<15){const A=c(t);if(void 0===A)throw new Error("Unexpected end of data in AC coefficient decoding");w=A+(1<<t)-1;break}I+=16}else{I+=t;const A=iI[I],e=D(i);if(void 0===e)throw new Error("Unexpected end of data in AC coefficient decoding");g[A]=e*(1<<Q),I++}}}:function(A,g){let I=t;const e=B;let i=0;for(;I<=e;){const e=iI[I],t=g[e]<0?-1:1;switch(y){case 0:{const g=l(A.huffmanTableAC);if(null===g)throw new Error("Unexpected end of data in AC coefficient decoding");const I=15&g;if(i=g>>4,0===I)if(i<15){const A=c(i);if(void 0===A)throw new Error("Unexpected end of data in AC coefficient decoding");w=A+(1<<i),y=4}else i=16,y=1;else{if(1!==I)throw new Error("invalid ACn encoding");const A=D(I);if(void 0===A)throw new Error("Unexpected end of data in AC coefficient decoding");d=A,y=i?2:3}continue}case 1:case 2:if(g[e]){const A=h();if(null===A)throw new Error("Unexpected end of data in AC coefficient decoding");g[e]+=(A<<Q)*t}else i--,0===i&&(y=2===y?3:0);break;case 3:if(g[e]){const A=h();if(null===A)throw new Error("Unexpected end of data in AC coefficient decoding");g[e]+=(A<<Q)*t}else g[e]=d<<Q,y=0;break;case 4:if(g[e]){const A=h();if(null===A)throw new Error("Unexpected end of data in AC coefficient decoding");g[e]+=(A<<Q)*t}}I++}4===y&&(w--,0===w&&(y=0))}:function(A,g){const I=l(A.huffmanTableDC);if(null===I)throw new Error("Huffman error");const e=0===I?0:D(I);if(void 0===e)throw new Error("Unexpected end of stream");void 0===A.pred&&(A.pred=0),A.pred+=e,g[0]=A.pred;let i=1;for(;i<64;){const I=l(A.huffmanTableAC);if(null===I)throw new Error("Unexpected end of data in AC coefficient decoding");const e=15&I,t=I>>4;if(0===e){if(t<15)break;i+=16}else{i+=t;const A=iI[i],I=D(e);if(void 0===I)throw new Error("Unexpected end of stream");g[A]=I,i++}}};let U,p,M=0;p=1===S?e[0].blocksPerLine*e[0].blocksPerColumn:E*I.mcusPerColumn;const Y=i||p;for(;M<p;){for(N=0;N<S;N++)e[N].pred=0;if(w=0,1===S)for(G=e[0],R=0;R<Y;R++)u(G,L,M),M++;else for(R=0;R<Y;R++){for(N=0;N<S;N++){G=e[N];const{h:A,v:g}=G;for(F=0;F<g;F++)for(k=0;k<A;k++)f(G,L,M,F,k)}if(M++,M===p)break}if(n=0,U=A[o]<<8|A[o+1],U<65280)throw new Error("marker was not found");if(!(U>=65488&&U<=65495))break;o+=2}return o-a}function hI(A){const g=[],{blocksPerLine:I,blocksPerColumn:e}=A;if(!I||!e||!A.blocks)throw new Error("Missing component data");const i=I<<3,t=new Int32Array(64),B=new Uint8Array(64);function C(g,I,e){const i=A.quantizationTable;if(!i)throw new Error("No quantization table found");let t,B,C,Q,E,s,a,o,r;const n=e;let h;for(h=0;h<64;h++)n[h]=g[h]*i[h];for(h=0;h<8;++h){const A=8*h;0!==n[1+A]||0!==n[2+A]||0!==n[3+A]||0!==n[4+A]||0!==n[5+A]||0!==n[6+A]||0!==n[7+A]?(t=aI*n[0+A]+128>>8,B=aI*n[4+A]+128>>8,C=n[2+A],Q=n[6+A],E=oI*(n[1+A]-n[7+A])+128>>8,o=oI*(n[1+A]+n[7+A])+128>>8,s=n[3+A]<<4,a=n[5+A]<<4,r=t-B+1>>1,t=t+B+1>>1,B=r,r=C*sI+Q*EI+128>>8,C=C*EI-Q*sI+128>>8,Q=r,r=E-a+1>>1,E=E+a+1>>1,a=r,r=o+s+1>>1,s=o-s+1>>1,o=r,r=t-Q+1>>1,t=t+Q+1>>1,Q=r,r=B-C+1>>1,B=B+C+1>>1,C=r,r=E*QI+o*CI+2048>>12,E=E*CI-o*QI+2048>>12,o=r,r=s*BI+a*tI+2048>>12,s=s*tI-a*BI+2048>>12,a=r,n[0+A]=t+o,n[7+A]=t-o,n[1+A]=B+a,n[6+A]=B-a,n[2+A]=C+s,n[5+A]=C-s,n[3+A]=Q+E,n[4+A]=Q-E):(r=aI*n[0+A]+512>>10,n[0+A]=r,n[1+A]=r,n[2+A]=r,n[3+A]=r,n[4+A]=r,n[5+A]=r,n[6+A]=r,n[7+A]=r)}for(h=0;h<8;++h){const A=h;0!==n[8+A]||0!==n[16+A]||0!==n[24+A]||0!==n[32+A]||0!==n[40+A]||0!==n[48+A]||0!==n[56+A]?(t=aI*n[0+A]+2048>>12,B=aI*n[32+A]+2048>>12,C=n[16+A],Q=n[48+A],E=oI*(n[8+A]-n[56+A])+2048>>12,o=oI*(n[8+A]+n[56+A])+2048>>12,s=n[24+A],a=n[40+A],r=t-B+1>>1,t=t+B+1>>1,B=r,r=C*sI+Q*EI+2048>>12,C=C*EI-Q*sI+2048>>12,Q=r,r=E-a+1>>1,E=E+a+1>>1,a=r,r=o+s+1>>1,s=o-s+1>>1,o=r,r=t-Q+1>>1,t=t+Q+1>>1,Q=r,r=B-C+1>>1,B=B+C+1>>1,C=r,r=E*QI+o*CI+2048>>12,E=E*CI-o*QI+2048>>12,o=r,r=s*BI+a*tI+2048>>12,s=s*tI-a*BI+2048>>12,a=r,n[0+A]=t+o,n[56+A]=t-o,n[8+A]=B+a,n[48+A]=B-a,n[16+A]=C+s,n[40+A]=C-s,n[24+A]=Q+E,n[32+A]=Q-E):(r=aI*e[h+0]+8192>>14,n[0+A]=r,n[8+A]=r,n[16+A]=r,n[24+A]=r,n[32+A]=r,n[40+A]=r,n[48+A]=r,n[56+A]=r)}for(h=0;h<64;++h){const A=128+(n[h]+8>>4);I[h]=A<0?0:A>255?255:A}}for(let Q=0;Q<e;Q++){const e=Q<<3;for(let A=0;A<8;A++)g.push(new Uint8Array(i));for(let i=0;i<I;i++){C(A.blocks[Q][i],B,t);let I=0;const E=i<<3;for(let A=0;A<8;A++){const i=g[e+A];for(let A=0;A<8;A++)i[E+A]=B[I++]}}}return g}class lI{constructor(){this.jfif=null,this.adobe=null,this.resetInterval=0,this.quantizationTables=[],this.huffmanTablesAC=[],this.huffmanTablesDC=[],this.frames=[]}resetFrames(){this.frames=[]}parse(A){let g=0;function I(){const I=A[g]<<8|A[g+1];return g+=2,I}function e(){const e=I(),i=A.subarray(g,g+e-2);return g+=i.length,i}function i(A){let g,I,e=0,i=0;for(I in A.components)A.components.hasOwnProperty(I)&&(g=A.components[I],e<g.h&&(e=g.h),i<g.v&&(i=g.v));const t=Math.ceil(A.samplesPerLine/8/e),B=Math.ceil(A.scanLines/8/i);for(I in A.components)if(A.components.hasOwnProperty(I)){g=A.components[I];const C=Math.ceil(Math.ceil(A.samplesPerLine/8)*g.h/e),Q=Math.ceil(Math.ceil(A.scanLines/8)*g.v/i),E=t*g.h,s=B*g.v,a=[];for(let A=0;A<s;A++){const A=[];for(let g=0;g<E;g++)A.push(new Int32Array(64));a.push(A)}g.blocksPerLine=C,g.blocksPerColumn=Q,g.blocks=a}A.maxH=e,A.maxV=i,A.mcusPerLine=t,A.mcusPerColumn=B}let t=I();if(65496!==t)throw new Error("SOI not found");for(t=I();65497!==t;){switch(t){case 65280:break;case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:{const A=e();65504===t&&74===A[0]&&70===A[1]&&73===A[2]&&70===A[3]&&0===A[4]&&(this.jfif={version:{major:A[5],minor:A[6]},densityUnits:A[7],xDensity:A[8]<<8|A[9],yDensity:A[10]<<8|A[11],thumbWidth:A[12],thumbHeight:A[13],thumbData:A.subarray(14,14+3*A[12]*A[13])}),65518===t&&65===A[0]&&100===A[1]&&111===A[2]&&98===A[3]&&101===A[4]&&0===A[5]&&(this.adobe={version:A[6],flags0:A[7]<<8|A[8],flags1:A[9]<<8|A[10],transformCode:A[11]});break}case 65499:{const e=I()+g-2;for(;g<e;){const e=A[g++],i=new Int32Array(64);if(e>>4){if(e>>4!=1)throw new Error("DQT: invalid table spec");for(let A=0;A<64;A++){i[iI[A]]=I()}}else for(let I=0;I<64;I++){i[iI[I]]=A[g++]}this.quantizationTables[15&e]=i}break}case 65472:case 65473:case 65474:{I();const e={extended:65473===t,progressive:65474===t,precision:A[g++],scanLines:I(),samplesPerLine:I(),components:{},componentsOrder:[],maxH:0,maxV:0,mcusPerLine:0,mcusPerColumn:0},B=A[g++];let C;for(let I=0;I<B;I++){C=A[g];const I=A[g+1]>>4,i=15&A[g+1],t=A[g+2];e.componentsOrder.push(C),e.components[C]={h:I,v:i,quantizationIdx:t,blocksPerLine:0,blocksPerColumn:0,blocks:[]},g+=3}i(e),this.frames.push(e);break}case 65476:{const e=I();for(let I=2;I<e;){const e=A[g++],i=new Uint8Array(16);let t=0;for(let I=0;I<16;I++,g++)i[I]=A[g],t+=i[I];const B=new Uint8Array(t);for(let I=0;I<t;I++,g++)B[I]=A[g];I+=17+t,e>>4?this.huffmanTablesAC[15&e]=rI(i,B):this.huffmanTablesDC[15&e]=rI(i,B)}break}case 65501:I(),this.resetInterval=I();break;case 65498:{I();const e=A[g++],i=[],t=this.frames[0];for(let I=0;I<e;I++){const I=t.components[A[g++]],e=A[g++];I.huffmanTableDC=this.huffmanTablesDC[e>>4],I.huffmanTableAC=this.huffmanTablesAC[15&e],i.push(I)}const B=A[g++],C=A[g++],Q=A[g++],E=nI(A,g,t,i,this.resetInterval,B,C,Q>>4,15&Q);g+=E;break}case 65535:255!==A[g]&&g--;break;default:if(255===A[g-3]&&A[g-2]>=192&&A[g-2]<=254){g-=3;break}throw new Error(`unknown JPEG marker ${t.toString(16)}`)}t=I()}}getResult(){const{frames:A}=this;if(0===this.frames.length)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(let A=0;A<this.frames.length;A++){const g=this.frames[A].components;for(const A of Object.keys(g)){const I=g[A].quantizationIdx;"number"==typeof I&&(g[A].quantizationTable=this.quantizationTables[I],delete g[A].quantizationIdx)}}const g=A[0];if(!g.maxH||!g.maxV)throw new Error("Invalid frame dimensions");const{components:I,componentsOrder:e}=g,i=[],t=g.samplesPerLine,B=g.scanLines;for(let A=0;A<e.length;A++){const t=I[e[A]];i.push({lines:hI(t),scaleX:t.h/g.maxH,scaleY:t.v/g.maxV})}const C=new Uint8Array(t*B*i.length);let Q=0;for(let A=0;A<B;++A)for(let g=0;g<t;++g)for(let I=0;I<i.length;++I){const e=i[I];C[Q]=e.lines[0|A*e.scaleY][0|g*e.scaleX],++Q}return C}}var cI=Object.freeze({__proto__:null,default:class extends lg{constructor(A){super(A),this.reader=new lI,A.JPEGTables&&this.reader.parse(A.JPEGTables)}decodeBlock(A){return this.reader.resetFrames(),this.reader.parse(new Uint8Array(A)),this.reader.getResult().buffer}}});function DI(A){let g=A.length;for(;--g>=0;)A[g]=0}DI(new Array(576));DI(new Array(60));DI(new Array(512));DI(new Array(256));DI(new Array(29));DI(new Array(30));var wI=(A,g,I,e)=>{let i=65535&A,t=A>>>16&65535,B=0;for(;0!==I;){B=I>2e3?2e3:I,I-=B;do{i=i+g[e++]|0,t=t+i|0}while(--B);i%=65521,t%=65521}return i|t<<16};const dI=new Uint32Array((()=>{let A,g=[];for(var I=0;I<256;I++){A=I;for(var e=0;e<8;e++)A=1&A?3988292384^A>>>1:A>>>1;g[I]=A}return g})());var yI=(A,g,I,e)=>{const i=dI,t=e+I;A^=-1;for(let I=e;I<t;I++)A=A>>>8^i[255&(A^g[I])];return-1^A},fI={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},uI={Z_NO_FLUSH:0,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_DEFLATED:8};const SI=(A,g)=>Object.prototype.hasOwnProperty.call(A,g);var GI=function(A){const g=Array.prototype.slice.call(arguments,1);for(;g.length;){const I=g.shift();if(I){if("object"!=typeof I)throw new TypeError(I+"must be non-object");for(const g in I)SI(I,g)&&(A[g]=I[g])}}return A},NI=A=>{let g=0;for(let I=0,e=A.length;I<e;I++)g+=A[I].length;const I=new Uint8Array(g);for(let g=0,e=0,i=A.length;g<i;g++){let i=A[g];I.set(i,e),e+=i.length}return I};let FI=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(A){FI=!1}const kI=new Uint8Array(256);for(let A=0;A<256;A++)kI[A]=A>=252?6:A>=248?5:A>=240?4:A>=224?3:A>=192?2:1;kI[254]=kI[254]=1;var RI=A=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(A);let g,I,e,i,t,B=A.length,C=0;for(i=0;i<B;i++)I=A.charCodeAt(i),55296==(64512&I)&&i+1<B&&(e=A.charCodeAt(i+1),56320==(64512&e)&&(I=65536+(I-55296<<10)+(e-56320),i++)),C+=I<128?1:I<2048?2:I<65536?3:4;for(g=new Uint8Array(C),t=0,i=0;t<C;i++)I=A.charCodeAt(i),55296==(64512&I)&&i+1<B&&(e=A.charCodeAt(i+1),56320==(64512&e)&&(I=65536+(I-55296<<10)+(e-56320),i++)),I<128?g[t++]=I:I<2048?(g[t++]=192|I>>>6,g[t++]=128|63&I):I<65536?(g[t++]=224|I>>>12,g[t++]=128|I>>>6&63,g[t++]=128|63&I):(g[t++]=240|I>>>18,g[t++]=128|I>>>12&63,g[t++]=128|I>>>6&63,g[t++]=128|63&I);return g},LI=(A,g)=>{const I=g||A.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(A.subarray(0,g));let e,i;const t=new Array(2*I);for(i=0,e=0;e<I;){let g=A[e++];if(g<128){t[i++]=g;continue}let B=kI[g];if(B>4)t[i++]=65533,e+=B-1;else{for(g&=2===B?31:3===B?15:7;B>1&&e<I;)g=g<<6|63&A[e++],B--;B>1?t[i++]=65533:g<65536?t[i++]=g:(g-=65536,t[i++]=55296|g>>10&1023,t[i++]=56320|1023&g)}}return((A,g)=>{if(g<65534&&A.subarray&&FI)return String.fromCharCode.apply(null,A.length===g?A:A.subarray(0,g));let I="";for(let e=0;e<g;e++)I+=String.fromCharCode(A[e]);return I})(t,i)},UI=(A,g)=>{(g=g||A.length)>A.length&&(g=A.length);let I=g-1;for(;I>=0&&128==(192&A[I]);)I--;return I<0||0===I?g:I+kI[A[I]]>g?I:g};var pI=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const MI=16209;var YI=function(A,g){let I,e,i,t,B,C,Q,E,s,a,o,r,n,h,l,c,D,w,d,y,f,u,S,G;const N=A.state;I=A.next_in,S=A.input,e=I+(A.avail_in-5),i=A.next_out,G=A.output,t=i-(g-A.avail_out),B=i+(A.avail_out-257),C=N.dmax,Q=N.wsize,E=N.whave,s=N.wnext,a=N.window,o=N.hold,r=N.bits,n=N.lencode,h=N.distcode,l=(1<<N.lenbits)-1,c=(1<<N.distbits)-1;A:do{r<15&&(o+=S[I++]<<r,r+=8,o+=S[I++]<<r,r+=8),D=n[o&l];g:for(;;){if(w=D>>>24,o>>>=w,r-=w,w=D>>>16&255,0===w)G[i++]=65535&D;else{if(!(16&w)){if(64&w){if(32&w){N.mode=16191;break A}A.msg="invalid literal/length code",N.mode=MI;break A}D=n[(65535&D)+(o&(1<<w)-1)];continue g}for(d=65535&D,w&=15,w&&(r<w&&(o+=S[I++]<<r,r+=8),d+=o&(1<<w)-1,o>>>=w,r-=w),r<15&&(o+=S[I++]<<r,r+=8,o+=S[I++]<<r,r+=8),D=h[o&c];;){if(w=D>>>24,o>>>=w,r-=w,w=D>>>16&255,16&w){if(y=65535&D,w&=15,r<w&&(o+=S[I++]<<r,r+=8,r<w&&(o+=S[I++]<<r,r+=8)),y+=o&(1<<w)-1,y>C){A.msg="invalid distance too far back",N.mode=MI;break A}if(o>>>=w,r-=w,w=i-t,y>w){if(w=y-w,w>E&&N.sane){A.msg="invalid distance too far back",N.mode=MI;break A}if(f=0,u=a,0===s){if(f+=Q-w,w<d){d-=w;do{G[i++]=a[f++]}while(--w);f=i-y,u=G}}else if(s<w){if(f+=Q+s-w,w-=s,w<d){d-=w;do{G[i++]=a[f++]}while(--w);if(f=0,s<d){w=s,d-=w;do{G[i++]=a[f++]}while(--w);f=i-y,u=G}}}else if(f+=s-w,w<d){d-=w;do{G[i++]=a[f++]}while(--w);f=i-y,u=G}for(;d>2;)G[i++]=u[f++],G[i++]=u[f++],G[i++]=u[f++],d-=3;d&&(G[i++]=u[f++],d>1&&(G[i++]=u[f++]))}else{f=i-y;do{G[i++]=G[f++],G[i++]=G[f++],G[i++]=G[f++],d-=3}while(d>2);d&&(G[i++]=G[f++],d>1&&(G[i++]=G[f++]))}break}if(64&w){A.msg="invalid distance code",N.mode=MI;break A}D=h[(65535&D)+(o&(1<<w)-1)]}}break}}while(I<e&&i<B);d=r>>3,I-=d,r-=d<<3,o&=(1<<r)-1,A.next_in=I,A.next_out=i,A.avail_in=I<e?e-I+5:5-(I-e),A.avail_out=i<B?B-i+257:257-(i-B),N.hold=o,N.bits=r};const mI=15,KI=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),HI=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),JI=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),bI=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var qI=(A,g,I,e,i,t,B,C)=>{const Q=C.bits;let E,s,a,o,r,n,h=0,l=0,c=0,D=0,w=0,d=0,y=0,f=0,u=0,S=0,G=null;const N=new Uint16Array(16),F=new Uint16Array(16);let k,R,L,U=null;for(h=0;h<=mI;h++)N[h]=0;for(l=0;l<e;l++)N[g[I+l]]++;for(w=Q,D=mI;D>=1&&0===N[D];D--);if(w>D&&(w=D),0===D)return i[t++]=20971520,i[t++]=20971520,C.bits=1,0;for(c=1;c<D&&0===N[c];c++);for(w<c&&(w=c),f=1,h=1;h<=mI;h++)if(f<<=1,f-=N[h],f<0)return-1;if(f>0&&(0===A||1!==D))return-1;for(F[1]=0,h=1;h<mI;h++)F[h+1]=F[h]+N[h];for(l=0;l<e;l++)0!==g[I+l]&&(B[F[g[I+l]]++]=l);if(0===A?(G=U=B,n=20):1===A?(G=KI,U=HI,n=257):(G=JI,U=bI,n=0),S=0,l=0,h=c,r=t,d=w,y=0,a=-1,u=1<<w,o=u-1,1===A&&u>852||2===A&&u>592)return 1;for(;;){k=h-y,B[l]+1<n?(R=0,L=B[l]):B[l]>=n?(R=U[B[l]-n],L=G[B[l]-n]):(R=96,L=0),E=1<<h-y,s=1<<d,c=s;do{s-=E,i[r+(S>>y)+s]=k<<24|R<<16|L}while(0!==s);for(E=1<<h-1;S&E;)E>>=1;if(0!==E?(S&=E-1,S+=E):S=0,l++,0===--N[h]){if(h===D)break;h=g[I+B[l]]}if(h>w&&(S&o)!==a){for(0===y&&(y=w),r+=c,d=h-y,f=1<<d;d+y<D&&(f-=N[d+y],!(f<=0));)d++,f<<=1;if(u+=1<<d,1===A&&u>852||2===A&&u>592)return 1;a=S&o,i[a]=w<<24|d<<16|r-t}}return 0!==S&&(i[r+S]=h-y<<24|64<<16),C.bits=w,0};const{Z_FINISH:xI,Z_BLOCK:TI,Z_TREES:OI,Z_OK:PI,Z_STREAM_END:vI,Z_NEED_DICT:VI,Z_STREAM_ERROR:ZI,Z_DATA_ERROR:zI,Z_MEM_ERROR:jI,Z_BUF_ERROR:WI,Z_DEFLATED:_I}=uI,XI=16180,$I=16190,Ae=16191,ge=16192,Ie=16194,ee=16199,ie=16200,te=16206,Be=16209,Ce=A=>(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24);function Qe(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Ee=A=>{if(!A)return 1;const g=A.state;return!g||g.strm!==A||g.mode<XI||g.mode>16211?1:0},se=A=>{if(Ee(A))return ZI;const g=A.state;return A.total_in=A.total_out=g.total=0,A.msg="",g.wrap&&(A.adler=1&g.wrap),g.mode=XI,g.last=0,g.havedict=0,g.flags=-1,g.dmax=32768,g.head=null,g.hold=0,g.bits=0,g.lencode=g.lendyn=new Int32Array(852),g.distcode=g.distdyn=new Int32Array(592),g.sane=1,g.back=-1,PI},ae=A=>{if(Ee(A))return ZI;const g=A.state;return g.wsize=0,g.whave=0,g.wnext=0,se(A)},oe=(A,g)=>{let I;if(Ee(A))return ZI;const e=A.state;return g<0?(I=0,g=-g):(I=5+(g>>4),g<48&&(g&=15)),g&&(g<8||g>15)?ZI:(null!==e.window&&e.wbits!==g&&(e.window=null),e.wrap=I,e.wbits=g,ae(A))},re=(A,g)=>{if(!A)return ZI;const I=new Qe;A.state=I,I.strm=A,I.window=null,I.mode=XI;const e=oe(A,g);return e!==PI&&(A.state=null),e};let ne,he,le=!0;const ce=A=>{if(le){ne=new Int32Array(512),he=new Int32Array(32);let g=0;for(;g<144;)A.lens[g++]=8;for(;g<256;)A.lens[g++]=9;for(;g<280;)A.lens[g++]=7;for(;g<288;)A.lens[g++]=8;for(qI(1,A.lens,0,288,ne,0,A.work,{bits:9}),g=0;g<32;)A.lens[g++]=5;qI(2,A.lens,0,32,he,0,A.work,{bits:5}),le=!1}A.lencode=ne,A.lenbits=9,A.distcode=he,A.distbits=5},De=(A,g,I,e)=>{let i;const t=A.state;return null===t.window&&(t.wsize=1<<t.wbits,t.wnext=0,t.whave=0,t.window=new Uint8Array(t.wsize)),e>=t.wsize?(t.window.set(g.subarray(I-t.wsize,I),0),t.wnext=0,t.whave=t.wsize):(i=t.wsize-t.wnext,i>e&&(i=e),t.window.set(g.subarray(I-e,I-e+i),t.wnext),(e-=i)?(t.window.set(g.subarray(I-e,I),0),t.wnext=e,t.whave=t.wsize):(t.wnext+=i,t.wnext===t.wsize&&(t.wnext=0),t.whave<t.wsize&&(t.whave+=i))),0};var we={inflateReset:ae,inflateReset2:oe,inflateResetKeep:se,inflateInit:A=>re(A,15),inflateInit2:re,inflate:(A,g)=>{let I,e,i,t,B,C,Q,E,s,a,o,r,n,h,l,c,D,w,d,y,f,u,S=0;const G=new Uint8Array(4);let N,F;const k=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Ee(A)||!A.output||!A.input&&0!==A.avail_in)return ZI;I=A.state,I.mode===Ae&&(I.mode=ge),B=A.next_out,i=A.output,Q=A.avail_out,t=A.next_in,e=A.input,C=A.avail_in,E=I.hold,s=I.bits,a=C,o=Q,u=PI;A:for(;;)switch(I.mode){case XI:if(0===I.wrap){I.mode=ge;break}for(;s<16;){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}if(2&I.wrap&&35615===E){0===I.wbits&&(I.wbits=15),I.check=0,G[0]=255&E,G[1]=E>>>8&255,I.check=yI(I.check,G,2,0),E=0,s=0,I.mode=16181;break}if(I.head&&(I.head.done=!1),!(1&I.wrap)||(((255&E)<<8)+(E>>8))%31){A.msg="incorrect header check",I.mode=Be;break}if((15&E)!==_I){A.msg="unknown compression method",I.mode=Be;break}if(E>>>=4,s-=4,f=8+(15&E),0===I.wbits&&(I.wbits=f),f>15||f>I.wbits){A.msg="invalid window size",I.mode=Be;break}I.dmax=1<<I.wbits,I.flags=0,A.adler=I.check=1,I.mode=512&E?16189:Ae,E=0,s=0;break;case 16181:for(;s<16;){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}if(I.flags=E,(255&I.flags)!==_I){A.msg="unknown compression method",I.mode=Be;break}if(57344&I.flags){A.msg="unknown header flags set",I.mode=Be;break}I.head&&(I.head.text=E>>8&1),512&I.flags&&4&I.wrap&&(G[0]=255&E,G[1]=E>>>8&255,I.check=yI(I.check,G,2,0)),E=0,s=0,I.mode=16182;case 16182:for(;s<32;){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}I.head&&(I.head.time=E),512&I.flags&&4&I.wrap&&(G[0]=255&E,G[1]=E>>>8&255,G[2]=E>>>16&255,G[3]=E>>>24&255,I.check=yI(I.check,G,4,0)),E=0,s=0,I.mode=16183;case 16183:for(;s<16;){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}I.head&&(I.head.xflags=255&E,I.head.os=E>>8),512&I.flags&&4&I.wrap&&(G[0]=255&E,G[1]=E>>>8&255,I.check=yI(I.check,G,2,0)),E=0,s=0,I.mode=16184;case 16184:if(1024&I.flags){for(;s<16;){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}I.length=E,I.head&&(I.head.extra_len=E),512&I.flags&&4&I.wrap&&(G[0]=255&E,G[1]=E>>>8&255,I.check=yI(I.check,G,2,0)),E=0,s=0}else I.head&&(I.head.extra=null);I.mode=16185;case 16185:if(1024&I.flags&&(r=I.length,r>C&&(r=C),r&&(I.head&&(f=I.head.extra_len-I.length,I.head.extra||(I.head.extra=new Uint8Array(I.head.extra_len)),I.head.extra.set(e.subarray(t,t+r),f)),512&I.flags&&4&I.wrap&&(I.check=yI(I.check,e,r,t)),C-=r,t+=r,I.length-=r),I.length))break A;I.length=0,I.mode=16186;case 16186:if(2048&I.flags){if(0===C)break A;r=0;do{f=e[t+r++],I.head&&f&&I.length<65536&&(I.head.name+=String.fromCharCode(f))}while(f&&r<C);if(512&I.flags&&4&I.wrap&&(I.check=yI(I.check,e,r,t)),C-=r,t+=r,f)break A}else I.head&&(I.head.name=null);I.length=0,I.mode=16187;case 16187:if(4096&I.flags){if(0===C)break A;r=0;do{f=e[t+r++],I.head&&f&&I.length<65536&&(I.head.comment+=String.fromCharCode(f))}while(f&&r<C);if(512&I.flags&&4&I.wrap&&(I.check=yI(I.check,e,r,t)),C-=r,t+=r,f)break A}else I.head&&(I.head.comment=null);I.mode=16188;case 16188:if(512&I.flags){for(;s<16;){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}if(4&I.wrap&&E!==(65535&I.check)){A.msg="header crc mismatch",I.mode=Be;break}E=0,s=0}I.head&&(I.head.hcrc=I.flags>>9&1,I.head.done=!0),A.adler=I.check=0,I.mode=Ae;break;case 16189:for(;s<32;){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}A.adler=I.check=Ce(E),E=0,s=0,I.mode=$I;case $I:if(0===I.havedict)return A.next_out=B,A.avail_out=Q,A.next_in=t,A.avail_in=C,I.hold=E,I.bits=s,VI;A.adler=I.check=1,I.mode=Ae;case Ae:if(g===TI||g===OI)break A;case ge:if(I.last){E>>>=7&s,s-=7&s,I.mode=te;break}for(;s<3;){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}switch(I.last=1&E,E>>>=1,s-=1,3&E){case 0:I.mode=16193;break;case 1:if(ce(I),I.mode=ee,g===OI){E>>>=2,s-=2;break A}break;case 2:I.mode=16196;break;case 3:A.msg="invalid block type",I.mode=Be}E>>>=2,s-=2;break;case 16193:for(E>>>=7&s,s-=7&s;s<32;){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}if((65535&E)!=(E>>>16^65535)){A.msg="invalid stored block lengths",I.mode=Be;break}if(I.length=65535&E,E=0,s=0,I.mode=Ie,g===OI)break A;case Ie:I.mode=16195;case 16195:if(r=I.length,r){if(r>C&&(r=C),r>Q&&(r=Q),0===r)break A;i.set(e.subarray(t,t+r),B),C-=r,t+=r,Q-=r,B+=r,I.length-=r;break}I.mode=Ae;break;case 16196:for(;s<14;){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}if(I.nlen=257+(31&E),E>>>=5,s-=5,I.ndist=1+(31&E),E>>>=5,s-=5,I.ncode=4+(15&E),E>>>=4,s-=4,I.nlen>286||I.ndist>30){A.msg="too many length or distance symbols",I.mode=Be;break}I.have=0,I.mode=16197;case 16197:for(;I.have<I.ncode;){for(;s<3;){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}I.lens[k[I.have++]]=7&E,E>>>=3,s-=3}for(;I.have<19;)I.lens[k[I.have++]]=0;if(I.lencode=I.lendyn,I.lenbits=7,N={bits:I.lenbits},u=qI(0,I.lens,0,19,I.lencode,0,I.work,N),I.lenbits=N.bits,u){A.msg="invalid code lengths set",I.mode=Be;break}I.have=0,I.mode=16198;case 16198:for(;I.have<I.nlen+I.ndist;){for(;S=I.lencode[E&(1<<I.lenbits)-1],l=S>>>24,c=S>>>16&255,D=65535&S,!(l<=s);){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}if(D<16)E>>>=l,s-=l,I.lens[I.have++]=D;else{if(16===D){for(F=l+2;s<F;){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}if(E>>>=l,s-=l,0===I.have){A.msg="invalid bit length repeat",I.mode=Be;break}f=I.lens[I.have-1],r=3+(3&E),E>>>=2,s-=2}else if(17===D){for(F=l+3;s<F;){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}E>>>=l,s-=l,f=0,r=3+(7&E),E>>>=3,s-=3}else{for(F=l+7;s<F;){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}E>>>=l,s-=l,f=0,r=11+(127&E),E>>>=7,s-=7}if(I.have+r>I.nlen+I.ndist){A.msg="invalid bit length repeat",I.mode=Be;break}for(;r--;)I.lens[I.have++]=f}}if(I.mode===Be)break;if(0===I.lens[256]){A.msg="invalid code -- missing end-of-block",I.mode=Be;break}if(I.lenbits=9,N={bits:I.lenbits},u=qI(1,I.lens,0,I.nlen,I.lencode,0,I.work,N),I.lenbits=N.bits,u){A.msg="invalid literal/lengths set",I.mode=Be;break}if(I.distbits=6,I.distcode=I.distdyn,N={bits:I.distbits},u=qI(2,I.lens,I.nlen,I.ndist,I.distcode,0,I.work,N),I.distbits=N.bits,u){A.msg="invalid distances set",I.mode=Be;break}if(I.mode=ee,g===OI)break A;case ee:I.mode=ie;case ie:if(C>=6&&Q>=258){A.next_out=B,A.avail_out=Q,A.next_in=t,A.avail_in=C,I.hold=E,I.bits=s,YI(A,o),B=A.next_out,i=A.output,Q=A.avail_out,t=A.next_in,e=A.input,C=A.avail_in,E=I.hold,s=I.bits,I.mode===Ae&&(I.back=-1);break}for(I.back=0;S=I.lencode[E&(1<<I.lenbits)-1],l=S>>>24,c=S>>>16&255,D=65535&S,!(l<=s);){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}if(c&&!(240&c)){for(w=l,d=c,y=D;S=I.lencode[y+((E&(1<<w+d)-1)>>w)],l=S>>>24,c=S>>>16&255,D=65535&S,!(w+l<=s);){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}E>>>=w,s-=w,I.back+=w}if(E>>>=l,s-=l,I.back+=l,I.length=D,0===c){I.mode=16205;break}if(32&c){I.back=-1,I.mode=Ae;break}if(64&c){A.msg="invalid literal/length code",I.mode=Be;break}I.extra=15&c,I.mode=16201;case 16201:if(I.extra){for(F=I.extra;s<F;){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}I.length+=E&(1<<I.extra)-1,E>>>=I.extra,s-=I.extra,I.back+=I.extra}I.was=I.length,I.mode=16202;case 16202:for(;S=I.distcode[E&(1<<I.distbits)-1],l=S>>>24,c=S>>>16&255,D=65535&S,!(l<=s);){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}if(!(240&c)){for(w=l,d=c,y=D;S=I.distcode[y+((E&(1<<w+d)-1)>>w)],l=S>>>24,c=S>>>16&255,D=65535&S,!(w+l<=s);){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}E>>>=w,s-=w,I.back+=w}if(E>>>=l,s-=l,I.back+=l,64&c){A.msg="invalid distance code",I.mode=Be;break}I.offset=D,I.extra=15&c,I.mode=16203;case 16203:if(I.extra){for(F=I.extra;s<F;){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}I.offset+=E&(1<<I.extra)-1,E>>>=I.extra,s-=I.extra,I.back+=I.extra}if(I.offset>I.dmax){A.msg="invalid distance too far back",I.mode=Be;break}I.mode=16204;case 16204:if(0===Q)break A;if(r=o-Q,I.offset>r){if(r=I.offset-r,r>I.whave&&I.sane){A.msg="invalid distance too far back",I.mode=Be;break}r>I.wnext?(r-=I.wnext,n=I.wsize-r):n=I.wnext-r,r>I.length&&(r=I.length),h=I.window}else h=i,n=B-I.offset,r=I.length;r>Q&&(r=Q),Q-=r,I.length-=r;do{i[B++]=h[n++]}while(--r);0===I.length&&(I.mode=ie);break;case 16205:if(0===Q)break A;i[B++]=I.length,Q--,I.mode=ie;break;case te:if(I.wrap){for(;s<32;){if(0===C)break A;C--,E|=e[t++]<<s,s+=8}if(o-=Q,A.total_out+=o,I.total+=o,4&I.wrap&&o&&(A.adler=I.check=I.flags?yI(I.check,i,o,B-o):wI(I.check,i,o,B-o)),o=Q,4&I.wrap&&(I.flags?E:Ce(E))!==I.check){A.msg="incorrect data check",I.mode=Be;break}E=0,s=0}I.mode=16207;case 16207:if(I.wrap&&I.flags){for(;s<32;){if(0===C)break A;C--,E+=e[t++]<<s,s+=8}if(4&I.wrap&&E!==(4294967295&I.total)){A.msg="incorrect length check",I.mode=Be;break}E=0,s=0}I.mode=16208;case 16208:u=vI;break A;case Be:u=zI;break A;case 16210:return jI;default:return ZI}return A.next_out=B,A.avail_out=Q,A.next_in=t,A.avail_in=C,I.hold=E,I.bits=s,(I.wsize||o!==A.avail_out&&I.mode<Be&&(I.mode<te||g!==xI))&&De(A,A.output,A.next_out,o-A.avail_out),a-=A.avail_in,o-=A.avail_out,A.total_in+=a,A.total_out+=o,I.total+=o,4&I.wrap&&o&&(A.adler=I.check=I.flags?yI(I.check,i,o,A.next_out-o):wI(I.check,i,o,A.next_out-o)),A.data_type=I.bits+(I.last?64:0)+(I.mode===Ae?128:0)+(I.mode===ee||I.mode===Ie?256:0),(0===a&&0===o||g===xI)&&u===PI&&(u=WI),u},inflateEnd:A=>{if(Ee(A))return ZI;let g=A.state;return g.window&&(g.window=null),A.state=null,PI},inflateGetHeader:(A,g)=>{if(Ee(A))return ZI;const I=A.state;return 2&I.wrap?(I.head=g,g.done=!1,PI):ZI},inflateSetDictionary:(A,g)=>{const I=g.length;let e,i,t;return Ee(A)?ZI:(e=A.state,0!==e.wrap&&e.mode!==$I?ZI:e.mode===$I&&(i=1,i=wI(i,g,I,0),i!==e.check)?zI:(t=De(A,g,I,I),t?(e.mode=16210,jI):(e.havedict=1,PI)))},inflateInfo:"pako inflate (from Nodeca project)"};var de=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const ye=Object.prototype.toString,{Z_NO_FLUSH:fe,Z_FINISH:ue,Z_OK:Se,Z_STREAM_END:Ge,Z_NEED_DICT:Ne,Z_STREAM_ERROR:Fe,Z_DATA_ERROR:ke,Z_MEM_ERROR:Re}=uI;function Le(A){this.options=GI({chunkSize:65536,windowBits:15,to:""},A||{});const g=this.options;g.raw&&g.windowBits>=0&&g.windowBits<16&&(g.windowBits=-g.windowBits,0===g.windowBits&&(g.windowBits=-15)),!(g.windowBits>=0&&g.windowBits<16)||A&&A.windowBits||(g.windowBits+=32),g.windowBits>15&&g.windowBits<48&&(15&g.windowBits||(g.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new pI,this.strm.avail_out=0;let I=we.inflateInit2(this.strm,g.windowBits);if(I!==Se)throw new Error(fI[I]);if(this.header=new de,we.inflateGetHeader(this.strm,this.header),g.dictionary&&("string"==typeof g.dictionary?g.dictionary=RI(g.dictionary):"[object ArrayBuffer]"===ye.call(g.dictionary)&&(g.dictionary=new Uint8Array(g.dictionary)),g.raw&&(I=we.inflateSetDictionary(this.strm,g.dictionary),I!==Se)))throw new Error(fI[I])}Le.prototype.push=function(A,g){const I=this.strm,e=this.options.chunkSize,i=this.options.dictionary;let t,B,C;if(this.ended)return!1;for(B=g===~~g?g:!0===g?ue:fe,"[object ArrayBuffer]"===ye.call(A)?I.input=new Uint8Array(A):I.input=A,I.next_in=0,I.avail_in=I.input.length;;){for(0===I.avail_out&&(I.output=new Uint8Array(e),I.next_out=0,I.avail_out=e),t=we.inflate(I,B),t===Ne&&i&&(t=we.inflateSetDictionary(I,i),t===Se?t=we.inflate(I,B):t===ke&&(t=Ne));I.avail_in>0&&t===Ge&&I.state.wrap>0&&0!==A[I.next_in];)we.inflateReset(I),t=we.inflate(I,B);switch(t){case Fe:case ke:case Ne:case Re:return this.onEnd(t),this.ended=!0,!1}if(C=I.avail_out,I.next_out&&(0===I.avail_out||t===Ge))if("string"===this.options.to){let A=UI(I.output,I.next_out),g=I.next_out-A,i=LI(I.output,A);I.next_out=g,I.avail_out=e-g,g&&I.output.set(I.output.subarray(A,A+g),0),this.onData(i)}else this.onData(I.output.length===I.next_out?I.output:I.output.subarray(0,I.next_out));if(t!==Se||0!==C){if(t===Ge)return t=we.inflateEnd(this.strm),this.onEnd(t),this.ended=!0,!0;if(0===I.avail_in)break}}return!0},Le.prototype.onData=function(A){this.chunks.push(A)},Le.prototype.onEnd=function(A){A===Se&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=NI(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};var Ue={inflate:function(A,g){const I=new Le(g);if(I.push(A),I.err)throw I.msg||fI[I.err];return I.result}};const{inflate:pe}=Ue;var Me=pe;var Ye=Object.freeze({__proto__:null,default:class extends lg{decodeBlock(A){return Me(new Uint8Array(A)).buffer}}});var me=Object.freeze({__proto__:null,default:class extends lg{decodeBlock(A){const g=new DataView(A),I=[];for(let e=0;e<A.byteLength;++e){let A=g.getInt8(e);if(A<0){const i=g.getUint8(e+1);A=-A;for(let g=0;g<=A;++g)I.push(i);e+=1}else{for(let i=0;i<=A;++i)I.push(g.getUint8(e+i+1));e+=A+1}}return new Uint8Array(I).buffer}}});function Ke(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var He,Je={exports:{}};var be,qe=(He||(He=1,be=Je,
1
+ "use strict";var A=require("@deck.gl/core"),g=require("@deck.gl/geo-layers"),I=require("@deck.gl/layers"),e=require("@deck.gl/extensions"),i=require("chroma-js"),t=require("@loaders.gl/schema"),B=require("@loaders.gl/loader-utils"),C=require("@deck.gl/mesh-layers");let Q=!1;function s(){"undefined"==typeof window||Q||(window.addEventListener("unhandledrejection",A=>{A.reason&&"AbortError"===A.reason.name&&A.preventDefault()}),Q=!0)}function E(A){return(g,...I)=>o(A,g,I)}function a(A,g){return E(r(A,g).get)}const{apply:o,getOwnPropertyDescriptor:r,getPrototypeOf:n,ownKeys:h}=Reflect,{iterator:l,toStringTag:c}=Symbol,D=Object,{create:w,defineProperty:d}=D,y=Array.prototype[l],f=E(y),u=ArrayBuffer;a(u.prototype,"byteLength");const S="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:null;S&&a(S.prototype,"byteLength");const G=n(Uint8Array);G.from;const N=G.prototype;N[l],E(N.keys),E(N.values),E(N.entries),E(N.set),E(N.reverse),E(N.fill),E(N.copyWithin),E(N.sort),E(N.slice),E(N.subarray),a(N,"buffer"),a(N,"byteOffset"),a(N,"length"),a(N,c);const F=Uint8Array,k=Uint16Array,R=Uint32Array,L=Float32Array,U=n([][l]()),p=E(U.next),M=E(function*(){}().next),Y=n(U),m=E(DataView.prototype.getUint16),K=WeakMap,H=K.prototype,J=E(H.get),b=E(H.set),q=new K,x=w(null,{next:{value:function(){const A=J(q,this);return p(A)}},[l]:{value:function(){return this}}});const T=new K,O=w(Y,{next:{value:function(){const A=J(T,this);return M(A)},writable:!0,configurable:!0}});for(const A of h(U))"next"!==A&&d(O,A,r(U,A));const P=new u(4),v=new L(P),V=new R(P),Z=new k(512),z=new F(512);for(let A=0;A<256;++A){const g=A-127;g<-24?(Z[A]=0,Z[256|A]=32768,z[A]=24,z[256|A]=24):g<-14?(Z[A]=1024>>-g-14,Z[256|A]=1024>>-g-14|32768,z[A]=-g-1,z[256|A]=-g-1):g<=15?(Z[A]=g+15<<10,Z[256|A]=g+15<<10|32768,z[A]=13,z[256|A]=13):g<128?(Z[A]=31744,Z[256|A]=64512,z[A]=24,z[256|A]=24):(Z[A]=31744,Z[256|A]=64512,z[A]=13,z[256|A]=13)}const j=new R(2048);for(let A=1;A<1024;++A){let g=A<<13,I=0;for(;!(8388608&g);)g<<=1,I-=8388608;g&=-8388609,I+=947912704,j[A]=g|I}for(let A=1024;A<2048;++A)j[A]=939524096+(A-1024<<13);const W=new R(64);for(let A=1;A<31;++A)W[A]=A<<23;W[31]=1199570944,W[32]=2147483648;for(let A=33;A<63;++A)W[A]=2147483648+(A-32<<23);W[63]=3347054592;const _=new k(64);for(let A=1;A<64;++A)32!==A&&(_[A]=1024);function X(A,g,...I){return function(A){const g=A>>10;return V[0]=j[_[g]+(1023&A)]+W[g],v[0]}(m(A,g,...function(A){if(A[l]===y&&U.next===p)return A;const g=w(x);return b(q,g,f(A)),g}(I)))}function $(A,g,I){const e="object"==typeof A?A.outer:A,i=e.slice(0,e.indexOf(">")+1),t=['"',"'"];for(let A=0;A<t.length;A++){const I=t[A],e=new RegExp(g+"\\="+I+"([^"+I+"]*)"+I).exec(i);if(e)return e[1]}}function AA(A,g,I){const e=new RegExp(g).exec(A.slice(I));return e?I+e.index+e[0].length-1:-1}function gA(A,g){const I=new RegExp(g,"g"),e=A.match(I);return e?e.length:0}function IA(A,g,I){const e=I&&I.debug||!1,i=!(I&&!1===typeof I.nested),t=I&&I.startIndex||0;e&&console.log("[xml-utils] starting findTagByName with",g," and ",I);const B=function(A,g,I){const e=new RegExp(g).exec(A.slice(I));return e?I+e.index:-1}(A,`<${g}[ \n>/]`,t);if(e&&console.log("[xml-utils] start:",B),-1===B)return;const C=A.slice(B+g.length);let Q=AA(C,"^[^<]*[ /]>",0);const s=-1!==Q&&"/"===C[Q-1];if(e&&console.log("[xml-utils] selfClosing:",s),!1===s)if(i){let A=0,I=1,e=0;for(;-1!==(Q=AA(C,"[ /]"+g+">",A));){const i=C.substring(A,Q+1);if(I+=gA(i,"<"+g+"[ \n\t>]"),e+=gA(i,"</"+g+">"),e>=I)break;A=Q}}else Q=AA(C,"[ /]"+g+">",0);const E=B+g.length+Q+1;if(e&&console.log("[xml-utils] end:",E),-1===E)return;const a=A.slice(B,E);let o;return o=s?null:a.slice(a.indexOf(">")+1,a.lastIndexOf("<")),{inner:o,outer:a,start:B,end:E}}const eA={BYTE:1,ASCII:2,SHORT:3,LONG:4,RATIONAL:5,SBYTE:6,UNDEFINED:7,SSHORT:8,SLONG:9,SRATIONAL:10,FLOAT:11,DOUBLE:12,IFD:13,LONG8:16,SLONG8:17,IFD8:18},iA={[eA.BYTE]:1,[eA.ASCII]:1,[eA.SBYTE]:1,[eA.UNDEFINED]:1,[eA.SHORT]:2,[eA.SSHORT]:2,[eA.LONG]:4,[eA.SLONG]:4,[eA.FLOAT]:4,[eA.IFD]:4,[eA.RATIONAL]:8,[eA.SRATIONAL]:8,[eA.DOUBLE]:8,[eA.LONG8]:8,[eA.SLONG8]:8,[eA.IFD8]:8};function tA(A){const g=iA[A];if(void 0===g)throw new RangeError(`Invalid field type: ${A}`);return g}const BA={NewSubfileType:{tag:254,type:eA.LONG,eager:!0},SubfileType:{tag:255,type:eA.SHORT,eager:!0},ImageWidth:{tag:256,type:eA.SHORT,eager:!0},ImageLength:{tag:257,type:eA.SHORT,eager:!0},BitsPerSample:{tag:258,type:eA.SHORT,isArray:!0,eager:!0},Compression:{tag:259,type:eA.SHORT,eager:!0},PhotometricInterpretation:{tag:262,type:eA.SHORT,eager:!0},Threshholding:{tag:263,type:eA.SHORT},CellWidth:{tag:264,type:eA.SHORT},CellLength:{tag:265,type:eA.SHORT},FillOrder:{tag:266,type:eA.SHORT},DocumentName:{tag:269,type:eA.ASCII},ImageDescription:{tag:270,type:eA.ASCII},Make:{tag:271,type:eA.ASCII},Model:{tag:272,type:eA.ASCII},StripOffsets:{tag:273,type:eA.SHORT,isArray:!0},Orientation:{tag:274,type:eA.SHORT},SamplesPerPixel:{tag:277,type:eA.SHORT,eager:!0},RowsPerStrip:{tag:278,type:eA.SHORT,eager:!0},StripByteCounts:{tag:279,type:eA.LONG,isArray:!0},MinSampleValue:{tag:280,type:eA.SHORT,isArray:!0},MaxSampleValue:{tag:281,type:eA.SHORT,isArray:!0},XResolution:{tag:282,type:eA.RATIONAL},YResolution:{tag:283,type:eA.RATIONAL},PlanarConfiguration:{tag:284,type:eA.SHORT,eager:!0},PageName:{tag:285,type:eA.ASCII},XPosition:{tag:286,type:eA.RATIONAL},YPosition:{tag:287,type:eA.RATIONAL},FreeOffsets:{tag:288,type:eA.LONG},FreeByteCounts:{tag:289,type:eA.LONG},GrayResponseUnit:{tag:290,type:eA.SHORT},GrayResponseCurve:{tag:291,type:eA.SHORT,isArray:!0},T4Options:{tag:292,type:eA.LONG},T6Options:{tag:293,type:eA.LONG},ResolutionUnit:{tag:296,type:eA.SHORT},PageNumber:{tag:297,type:eA.SHORT,isArray:!0},TransferFunction:{tag:301,type:eA.SHORT,isArray:!0},Software:{tag:305,type:eA.ASCII},DateTime:{tag:306,type:eA.ASCII},Artist:{tag:315,type:eA.ASCII},HostComputer:{tag:316,type:eA.ASCII},Predictor:{tag:317,type:eA.SHORT},WhitePoint:{tag:318,type:eA.RATIONAL,isArray:!0},PrimaryChromaticities:{tag:319,type:eA.RATIONAL,isArray:!0},ColorMap:{tag:320,type:eA.SHORT,isArray:!0},HalftoneHints:{tag:321,type:eA.SHORT,isArray:!0},TileWidth:{tag:322,type:eA.SHORT,eager:!0},TileLength:{tag:323,type:eA.SHORT,eager:!0},TileOffsets:{tag:324,type:eA.LONG,isArray:!0},TileByteCounts:{tag:325,type:eA.SHORT,isArray:!0},InkSet:{tag:332,type:eA.SHORT},InkNames:{tag:333,type:eA.ASCII},NumberOfInks:{tag:334,type:eA.SHORT},DotRange:{tag:336,type:eA.BYTE,isArray:!0},TargetPrinter:{tag:337,type:eA.ASCII},ExtraSamples:{tag:338,type:eA.BYTE,isArray:!0,eager:!0},SampleFormat:{tag:339,type:eA.SHORT,isArray:!0,eager:!0},SMinSampleValue:{tag:340,isArray:!0},SMaxSampleValue:{tag:341,isArray:!0},TransferRange:{tag:342,type:eA.SHORT,isArray:!0},JPEGProc:{tag:512,type:eA.SHORT},JPEGInterchangeFormat:{tag:513,type:eA.LONG},JPEGInterchangeFormatLngth:{tag:514,type:eA.LONG},JPEGRestartInterval:{tag:515,type:eA.SHORT},JPEGLosslessPredictors:{tag:517,type:eA.SHORT,isArray:!0},JPEGPointTransforms:{tag:518,type:eA.SHORT,isArray:!0},JPEGQTables:{tag:519,type:eA.LONG,isArray:!0},JPEGDCTables:{tag:520,type:eA.LONG,isArray:!0},JPEGACTables:{tag:521,type:eA.LONG,isArray:!0},YCbCrCoefficients:{tag:529,type:eA.RATIONAL,isArray:!0},YCbCrSubSampling:{tag:530,type:eA.SHORT,isArray:!0},YCbCrPositioning:{tag:531,type:eA.SHORT},ReferenceBlackWhite:{tag:532,type:eA.LONG,isArray:!0},Copyright:{tag:33432,type:eA.ASCII},BadFaxLines:{tag:326},CleanFaxData:{tag:327},ClipPath:{tag:343},ConsecutiveBadFaxLines:{tag:328},Decode:{tag:433},DefaultImageColor:{tag:434},Indexed:{tag:346},JPEGTables:{tag:347,isArray:!0,eager:!0},StripRowCounts:{tag:559,isArray:!0},SubIFDs:{tag:330,isArray:!0},XClipPathUnits:{tag:344},YClipPathUnits:{tag:345},ApertureValue:{tag:37378},ColorSpace:{tag:40961},DateTimeDigitized:{tag:36868},DateTimeOriginal:{tag:36867},ExifIFD:{tag:34665,name:"Exif IFD",type:eA.LONG},ExifVersion:{tag:36864},ExposureTime:{tag:33434},FileSource:{tag:41728},Flash:{tag:37385},FlashpixVersion:{tag:40960},FNumber:{tag:33437},ImageUniqueID:{tag:42016},LightSource:{tag:37384},MakerNote:{tag:37500},ShutterSpeedValue:{tag:37377},UserComment:{tag:37510},IPTC:{tag:33723},CZ_LSMINFO:{tag:34412},ICCProfile:{tag:34675,name:"ICC Profile"},XMP:{tag:700},GDAL_METADATA:{tag:42112},GDAL_NODATA:{tag:42113,type:eA.ASCII,eager:!0},Photoshop:{tag:34377},ModelPixelScale:{tag:33550,type:eA.DOUBLE,isArray:!0,eager:!0},ModelTiepoint:{tag:33922,type:eA.DOUBLE,isArray:!0,eager:!0},ModelTransformation:{tag:34264,type:eA.DOUBLE,isArray:!0,eager:!0},GeoKeyDirectory:{tag:34735,type:eA.SHORT,isArray:!0,eager:!0},GeoDoubleParams:{tag:34736,type:eA.DOUBLE,isArray:!0,eager:!0},GeoAsciiParams:{tag:34737,type:eA.ASCII,eager:!0},LercParameters:{tag:50674,eager:!0}},CA={},QA={};function sA(A,g,I,e=!1,i=!1){CA[g]=A,QA[A]={tag:A,name:g,type:"string"==typeof I?eA[I]:I,isArray:e,eager:i}}for(const[A,g]of Object.entries(BA)){const I=g;sA(I.tag,I.name||A,I.type,I.isArray,I.eager)}function EA(A){return"number"==typeof A?A:CA[A]}const aA=0,oA=1,rA=2,nA=3,hA=5,lA=6,cA=8,DA=0,wA=1,dA=0,yA=1,fA=2,uA={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"};for(const[A,g]of Object.entries(uA));const SA=new Map;async function GA(A){const g=!A.hasTag("StripOffsets");return{tileWidth:g?await A.loadValue("TileWidth"):await A.loadValue("ImageWidth"),tileHeight:g?await A.loadValue("TileLength"):await A.loadValue("RowsPerStrip")||await A.loadValue("ImageLength"),planarConfiguration:await A.loadValue("PlanarConfiguration"),bitsPerSample:await A.loadValue("BitsPerSample"),predictor:await A.loadValue("Predictor")||1}}function NA(A,g,I=GA,e=!0){Array.isArray(A)||(A=[A]),A.forEach(A=>{SA.set(A,{importFn:g,decoderParameterFn:I,preferWorker:e})})}const FA=[{cases:[void 0,1],importFn:()=>Promise.resolve().then(function(){return AI}).then(A=>A.default),preferWorker:!1},{cases:5,importFn:()=>Promise.resolve().then(function(){return eI}).then(A=>A.default)},{cases:6,importFn:()=>{throw new Error("old style JPEG compression is not supported.")}},{cases:7,importFn:()=>Promise.resolve().then(function(){return cI}).then(A=>A.default),decoderParameterFn:async A=>({...await GA(A),JPEGTables:await A.loadValue("JPEGTables")})},{cases:[8,32946],importFn:()=>Promise.resolve().then(function(){return Ye}).then(A=>A.default)},{cases:32773,importFn:()=>Promise.resolve().then(function(){return me}).then(A=>A.default)},{cases:34887,importFn:()=>Promise.resolve().then(function(){return ze}).then(async A=>(await A.zstd.init(),A)).then(A=>A.default),decoderParameterFn:async A=>({...await GA(A),LercParameters:await A.loadValue("LercParameters")})},{cases:5e4,importFn:()=>Promise.resolve().then(function(){return Ii}).then(async A=>(await A.zstd.init(),A)).then(A=>A.default)},{cases:50001,importFn:()=>Promise.resolve().then(function(){return ei}).then(A=>A.default),decoderParameterFn:async A=>({...await GA(A),samplesPerPixel:Number(await A.loadValue("SamplesPerPixel"))||4}),preferWorker:!1}];for(const A of FA){const{cases:g,importFn:I,decoderParameterFn:e,preferWorker:i}=A;NA(g,I,e,i)}function kA(A,g,I,e=1){return new(Object.getPrototypeOf(A).constructor)(g*I*e)}function RA(A,g,I){return(1-I)*A+I*g}function LA(A,g,I,e,i,t="nearest"){switch(t.toLowerCase()){case"nearest":return function(A,g,I,e,i){const t=g/e,B=I/i;return A.map(A=>{const C=kA(A,e,i);for(let Q=0;Q<i;++Q){const i=Math.min(Math.round(B*Q),I-1);for(let I=0;I<e;++I){const B=Math.min(Math.round(t*I),g-1),s=A[i*g+B];C[Q*e+I]=s}}return C})}(A,g,I,e,i);case"bilinear":case"linear":return function(A,g,I,e,i){const t=g/e,B=I/i;return A.map(A=>{const C=kA(A,e,i);for(let Q=0;Q<i;++Q){const i=B*Q,s=Math.floor(i),E=Math.min(Math.ceil(i),I-1);for(let I=0;I<e;++I){const B=t*I,a=B%1,o=Math.floor(B),r=Math.min(Math.ceil(B),g-1),n=A[s*g+o],h=A[s*g+r],l=A[E*g+o],c=A[E*g+r],D=RA(RA(n,h,a),RA(l,c,a),i%1);C[Q*e+I]=D}}return C})}(A,g,I,e,i);default:throw new Error(`Unsupported resampling method: '${t}'`)}}function UA(A,g,I,e,i,t,B="nearest"){switch(B.toLowerCase()){case"nearest":return function(A,g,I,e,i,t){const B=g/e,C=I/i,Q=kA(A,e,i,t);for(let s=0;s<i;++s){const i=Math.min(Math.round(C*s),I-1);for(let I=0;I<e;++I){const C=Math.min(Math.round(B*I),g-1);for(let B=0;B<t;++B){const E=A[i*g*t+C*t+B];Q[s*e*t+I*t+B]=E}}}return Q}(A,g,I,e,i,t);case"bilinear":case"linear":return function(A,g,I,e,i,t){const B=g/e,C=I/i,Q=kA(A,e,i,t);for(let s=0;s<i;++s){const i=C*s,E=Math.floor(i),a=Math.min(Math.ceil(i),I-1);for(let I=0;I<e;++I){const C=B*I,o=C%1,r=Math.floor(C),n=Math.min(Math.ceil(C),g-1);for(let B=0;B<t;++B){const C=A[E*g*t+r*t+B],h=A[E*g*t+n*t+B],l=A[a*g*t+r*t+B],c=A[a*g*t+n*t+B],D=RA(RA(C,h,o),RA(l,c,o),i%1);Q[s*e*t+I*t+B]=D}}}return Q}(A,g,I,e,i,t);default:throw new Error(`Unsupported resampling method: '${B}'`)}}function pA(A,g,I){let e=0;for(let i=g;i<I;++i)e+=A[i];return e}function MA(A,g,I){let e;switch(A){case 1:g<=8?e=Uint8Array:g<=16?e=Uint16Array:g<=32&&(e=Uint32Array);break;case 2:8===g?e=Int8Array:16===g?e=Int16Array:32===g&&(e=Int32Array);break;case 3:switch(g){case 16:case 32:e=Float32Array;break;case 64:e=Float64Array}}if(e){if("number"==typeof I)return new e(I);if(I instanceof ArrayBuffer)return new e(I)}throw Error("Unsupported data format/bitsPerSample")}class YA{constructor(A,g,I,e){this.fileDirectory=A,this.littleEndian=g,this.tiles=I?[]:null,this.isTiled=!A.hasTag("StripOffsets");const i=A.getValue("PlanarConfiguration")??1;if(1!==i&&2!==i)throw new Error("Invalid planar configuration.");this.planarConfiguration=i,this.source=e}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.fileDirectory.parseGeoKeyDirectory()}getWidth(){return this.fileDirectory.getValue("ImageWidth")||0}getHeight(){return this.fileDirectory.getValue("ImageLength")||0}getSamplesPerPixel(){return this.fileDirectory.getValue("SamplesPerPixel")??1}getTileWidth(){return this.isTiled?this.fileDirectory.getValue("TileWidth")||0:this.getWidth()}getTileHeight(){if(this.isTiled)return this.fileDirectory.getValue("TileLength")||0;const A=this.fileDirectory.hasTag("RowsPerStrip")&&this.fileDirectory.getValue("RowsPerStrip");return A?Math.min(A,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(A){return this.isTiled||(A+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-A*this.getTileHeight()}getBytesPerPixel(){let A=0;const g=this.fileDirectory.getValue("BitsPerSample")||[];for(let I=0;I<g.length;++I)A+=this.getSampleByteSize(I);return A}getSampleByteSize(A){const g=this.fileDirectory.getValue("BitsPerSample")||[];if(A>=g.length)throw new RangeError(`Sample index ${A} is out of range.`);return Math.ceil(g[A]/8)}getReaderForSample(A){const g=this.fileDirectory.getValue("SampleFormat"),I=g?g[A]:1,e=(this.fileDirectory.getValue("BitsPerSample")||[])[A];switch(I){case 1:if(e<=8)return DataView.prototype.getUint8;if(e<=16)return DataView.prototype.getUint16;if(e<=32)return DataView.prototype.getUint32;break;case 2:if(e<=8)return DataView.prototype.getInt8;if(e<=16)return DataView.prototype.getInt16;if(e<=32)return DataView.prototype.getInt32;break;case 3:switch(e){case 16:return function(A,g){return X(this,A,g)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(A=0){const g=this.fileDirectory.getValue("SampleFormat");return g?g[A]:1}getBitsPerSample(A=0){const g=this.fileDirectory.getValue("BitsPerSample");return g?g[A]:0}getArrayForSample(A,g){return MA(this.getSampleFormat(A),this.getBitsPerSample(A),g)}async getTileOrStrip(A,g,I,e,i){const t=Math.ceil(this.getWidth()/this.getTileWidth()),B=Math.ceil(this.getHeight()/this.getTileHeight());let C;const{tiles:Q}=this;if(1===this.planarConfiguration?C=g*t+A:2===this.planarConfiguration&&(C=I*t*B+g*t+A),void 0===C)throw new Error("Could not determine tile or strip index.");let s,E;if(this.isTiled?(s=Number(await this.fileDirectory.loadValueIndexed("TileOffsets",C)),E=Number(await this.fileDirectory.loadValueIndexed("TileByteCounts",C))):(s=Number(await this.fileDirectory.loadValueIndexed("StripOffsets",C)),E=Number(await this.fileDirectory.loadValueIndexed("StripByteCounts",C))),0===E){const e=this.getBlockHeight(g)*this.getTileWidth(),i=2===this.planarConfiguration?this.getSampleByteSize(I):this.getBytesPerPixel(),t=new ArrayBuffer(e*i);return this.getArrayForSample(I,t).fill(this.getGDALNoData()||0),{x:A,y:g,sample:I,data:t}}const a=(await this.source.fetch([{offset:s,length:E}],i))[0];let o;return null!==Q&&Q[C]?o=Q[C]:(o=(async()=>{let A=await e.decode(a);const I=this.getSampleFormat(),i=this.getBitsPerSample();return function(A,g){return(1!==A&&2!==A||!(g<=32)||g%8!=0)&&(3!==A||16!==g&&32!==g&&64!==g)}(I,i)&&(A=function(A,g,I,e,i,t,B){const C=new DataView(A),Q=2===I?1:e,s=MA(g,i,2===I?B*t:B*t*e),E=parseInt("1".repeat(i),2);if(1===g){let A;A=1===I?e*i:i;let g=t*A;7&g&&(g=g+7&-8);for(let A=0;A<B;++A){const I=A*g;for(let g=0;g<t;++g){const e=I+g*Q*i;for(let I=0;I<Q;++I){const B=e+I*i,a=(A*t+g)*Q+I,o=Math.floor(B/8),r=B%8;if(r+i<=8)s[a]=C.getUint8(o)>>8-i-r&E;else if(r+i<=16)s[a]=C.getUint16(o)>>16-i-r&E;else if(r+i<=24){const A=C.getUint16(o)<<8|C.getUint8(o+2);s[a]=A>>24-i-r&E}else s[a]=C.getUint32(o)>>32-i-r&E}}}}return s.buffer}(A,I,this.planarConfiguration,this.getSamplesPerPixel(),i,this.getTileWidth(),this.getBlockHeight(g))),A})(),null!==Q&&(Q[C]=o)),{x:A,y:g,sample:I,data:await o}}async _readRaster(A,g,I,e,i,t,B,C,Q){const s=this.getTileWidth(),E=this.getTileHeight(),a=this.getWidth(),o=this.getHeight(),r=Math.max(Math.floor(A[0]/s),0),n=Math.min(Math.ceil(A[2]/s),Math.ceil(a/s)),h=Math.max(Math.floor(A[1]/E),0),l=Math.min(Math.ceil(A[3]/E),Math.ceil(o/E)),c=A[2]-A[0];let D=this.getBytesPerPixel();const w=[],d=[];for(let A=0;A<g.length;++A){if(1===this.planarConfiguration){const I=await this.fileDirectory.loadValue("BitsPerSample");if("object"!=typeof I)throw new Error("Expected BitsPerSample to be an array or typed array.");w.push(pA(I,0,g[A])/8)}else w.push(0);d.push(this.getReaderForSample(g[A]))}const y=[],{littleEndian:f}=this;for(let t=h;t<l;++t)for(let B=r;B<n;++B){let C;1===this.planarConfiguration&&(C=this.getTileOrStrip(B,t,0,i,Q));for(let r=0;r<g.length;++r){const n=r,h=g[r];if(2===this.planarConfiguration&&(D=this.getSampleByteSize(h),C=this.getTileOrStrip(B,t,h,i,Q)),!C)throw new Error("Could not get tile or strip data.");const l=C.then(i=>{const t=i.data,B=new DataView(t),C=this.getBlockHeight(i.y),Q=i.y*E,r=i.x*s,h=Q+C,l=(i.x+1)*s,y=d[n],u=Math.min(C,C-(h-A[3]),o-Q),S=Math.min(s,s-(l-A[2]),a-r);for(let i=Math.max(0,A[1]-Q);i<u;++i)for(let t=Math.max(0,A[0]-r);t<S;++t){const C=(i*s+t)*D,E=y.call(B,C+w[n],f);let a;e?(a=(i+Q-A[1])*c*g.length+(t+r-A[0])*g.length+n,I[a]=E):(a=(i+Q-A[1])*c+t+r-A[0],I[n][a]=E)}});y.push(l)}}if(await Promise.all(y),t&&A[2]-A[0]!==t||B&&A[3]-A[1]!==B){let i;i=e?UA(I,A[2]-A[0],A[3]-A[1],t,B,g.length,C):LA(I,A[2]-A[0],A[3]-A[1],t,B,C);const Q=i;return Q.width=t??A[2]-A[0],Q.height=B??A[3]-A[1],Q}const u=I;return u.width=t||A[2]-A[0],u.height=B||A[3]-A[1],u}async readRasters(A={}){const{window:g,samples:I=[],pool:e=null,width:i,height:t,resampleMethod:B,fillValue:C,signal:Q}=A,s="interleave"in A&&A.interleave,E=g||[0,0,this.getWidth(),this.getHeight()];if(E[0]>E[2]||E[1]>E[3])throw new Error("Invalid subsets");const a=(E[2]-E[0])*(E[3]-E[1]),o=this.getSamplesPerPixel();if(I&&I.length){for(let A=0;A<I.length;++A)if(I[A]>=o)return Promise.reject(new RangeError(`Invalid sample index '${I[A]}'.`))}else for(let A=0;A<o;++A)I.push(A);let r;if(s){const{fileDirectory:A}=this,g=A.getValue("SampleFormat"),e=g?Math.max.apply(null,Array.from(g)):1;if(1!==e&&2!==e&&3!==e)throw new Error("Unsupported sample format for interleaved data. Must be 1, 2, or 3.");const i=A.getValue("BitsPerSample");if(r=MA(e,i?Math.max.apply(null,Array.from(i)):8,a*I.length),C){if(Array.isArray(C))throw new Error("When reading interleaved data, fillValue must be a single number.");r.fill(C)}}else{r=[];for(let A=0;A<I.length;++A){const g=this.getArrayForSample(I[A],a);Array.isArray(C)&&A<C.length?g.fill(C[A]):C&&!Array.isArray(C)&&g.fill(C),r.push(g)}}const n=this.fileDirectory.getValue("Compression")||1,h=await async function(A,g){if(!SA.has(A))throw new Error(`Unknown compression method identifier: ${A}`);const{decoderParameterFn:I}=SA.get(A);return I(g)}(n,this.fileDirectory),l=e?e.bindParameters(n,h):await async function(A,g){if(!SA.has(A))throw new Error(`Unknown compression method identifier: ${A}`);const{importFn:I}=SA.get(A);return new(await I())(g)}(n,h);return await this._readRaster(E,I,r,s,l,i,t,B,Q)}async readRGB(A={}){const{window:g,pool:I=null,width:e,height:i,resampleMethod:t,enableAlpha:B=!1,signal:C}=A,Q=("interleave"in A&&A.interleave)??!1,s=g||[0,0,this.getWidth(),this.getHeight()];if(s[0]>s[2]||s[1]>s[3])throw new Error("Invalid subsets");const E=this.fileDirectory.getValue("PhotometricInterpretation");if(E===rA){let A=[0,1,2];const s=this.fileDirectory.getValue("ExtraSamples");if(s&&s[0]!==DA&&B){A=[];const g=this.fileDirectory.getValue("BitsPerSample")||[];for(let I=0;I<g.length;I+=1)A.push(I)}return this.readRasters({window:g,interleave:Q,samples:A,pool:I,width:e,height:i,resampleMethod:t,signal:C})}let a;switch(E){case aA:case oA:case nA:a=[0];break;case hA:a=[0,1,2,3];break;case lA:case cA:a=[0,1,2];break;default:throw new Error("Invalid or unsupported photometric interpretation.")}const o={window:s,interleave:!0,samples:a,pool:I,width:e,height:i,resampleMethod:t,signal:C},{fileDirectory:r}=this,n=await this.readRasters(o),h=2**this.getBitsPerSample(0);let l;switch(E){case aA:l=function(A,g){const{width:I,height:e}=A,i=new Uint8Array(I*e*3);let t;for(let I=0,e=0;I<A.length;++I,e+=3)t=256-A[I]/g*256,i[e]=t,i[e+1]=t,i[e+2]=t;return i}(n,h);break;case oA:l=function(A,g){const{width:I,height:e}=A,i=new Uint8Array(I*e*3);let t;for(let I=0,e=0;I<A.length;++I,e+=3)t=A[I]/g*256,i[e]=t,i[e+1]=t,i[e+2]=t;return i}(n,h);break;case nA:l=function(A,g){const{width:I,height:e}=A,i=new Uint8Array(I*e*3),t=g.length/3,B=g.length/3*2;for(let I=0,e=0;I<A.length;++I,e+=3){const C=A[I];i[e]=g[C]/65536*256,i[e+1]=g[C+t]/65536*256,i[e+2]=g[C+B]/65536*256}return i}(n,await r.loadValue("ColorMap"));break;case hA:l=function(A){const{width:g,height:I}=A,e=new Uint8Array(g*I*3);for(let g=0,I=0;g<A.length;g+=4,I+=3){const i=A[g],t=A[g+1],B=A[g+2],C=A[g+3];e[I]=(255-i)/256*255*((255-C)/256),e[I+1]=(255-t)/256*255*((255-C)/256),e[I+2]=(255-B)/256*255*((255-C)/256)}return e}(n);break;case lA:l=function(A){const{width:g,height:I}=A,e=new Uint8ClampedArray(g*I*3);for(let g=0,I=0;g<A.length;g+=3,I+=3){const i=A[g],t=A[g+1],B=A[g+2];e[I]=i+1.402*(B-128),e[I+1]=i-.34414*(t-128)-.71414*(B-128),e[I+2]=i+1.772*(t-128)}return e}(n);break;case cA:l=function(A){const{width:g,height:I}=A,e=new Uint8Array(g*I*3);for(let g=0,I=0;g<A.length;g+=3,I+=3){let i,t,B,C=(A[g+0]+16)/116,Q=(A[g+1]<<24>>24)/500+C,s=C-(A[g+2]<<24>>24)/200;Q=.95047*(Q*Q*Q>.008856?Q*Q*Q:(Q-16/116)/7.787),C=1*(C*C*C>.008856?C*C*C:(C-16/116)/7.787),s=1.08883*(s*s*s>.008856?s*s*s:(s-16/116)/7.787),i=3.2406*Q+-1.5372*C+-.4986*s,t=-.9689*Q+1.8758*C+.0415*s,B=.0557*Q+-.204*C+1.057*s,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,t=t>.0031308?1.055*t**(1/2.4)-.055:12.92*t,B=B>.0031308?1.055*B**(1/2.4)-.055:12.92*B,e[I]=255*Math.max(0,Math.min(1,i)),e[I+1]=255*Math.max(0,Math.min(1,t)),e[I+2]=255*Math.max(0,Math.min(1,B))}return e}(n);break;default:throw new Error("Unsupported photometric interpretation.")}if(!Q){const A=new Uint8Array(l.length/3),g=new Uint8Array(l.length/3),I=new Uint8Array(l.length/3);for(let e=0,i=0;e<l.length;e+=3,++i)A[i]=l[e],g[i]=l[e+1],I[i]=l[e+2];l=[A,g,I]}const c=l;return c.width=n.width,c.height=n.height,c}async getTiePoints(){if(!this.fileDirectory.hasTag("ModelTiepoint"))return[];const A=await this.fileDirectory.loadValue("ModelTiepoint");if("object"!=typeof A)throw new Error("Expected ModelTiepoint to be an array or typed array.");const g=[];for(let I=0;I<A.length;I+=6)g.push({i:A[I],j:A[I+1],k:A[I+2],x:A[I+3],y:A[I+4],z:A[I+5]});return g}async getGDALMetadata(A=null){const g={};if(!this.fileDirectory.hasTag("GDAL_METADATA"))return null;let I=function(A,g){const I=[];let e,i=0;for(;e=IA(A,g,{debug:!1,startIndex:i});)i=e.start+1+g.length,I.push(e);return I}(await this.fileDirectory.loadValue("GDAL_METADATA"),"Item");I=null===A?I.filter(A=>void 0===$(A,"sample")):I.filter(g=>Number($(g,"sample"))===A);for(let A=0;A<I.length;++A){const e=I[A];g[$(e,"name")]=e.inner}return g}getGDALNoData(){const A=this.fileDirectory.hasTag("GDAL_NODATA")&&this.fileDirectory.getValue("GDAL_NODATA");return A?Number(A.substring(0,A.length-1)):null}getOrigin(){const A=this.fileDirectory.getValue("ModelTiepoint"),g=this.fileDirectory.getValue("ModelTransformation");if(A&&6===A.length)return[A[3],A[4],A[5]];if(g)return[g[3],g[7],g[11]];throw new Error("The image does not have an affine transformation.")}getResolution(A=null){const g=this.fileDirectory.getValue("ModelPixelScale"),I=this.fileDirectory.getValue("ModelTransformation");if(g)return[g[0],-g[1],g[2]];if(I)return 0===I[1]&&0===I[4]?[I[0],-I[5],I[10]]:[Math.sqrt(I[0]*I[0]+I[4]*I[4]),-Math.sqrt(I[1]*I[1]+I[5]*I[5]),I[10]];if(A){const[g,I,e]=A.getResolution();return[g*A.getWidth()/this.getWidth(),I*A.getHeight()/this.getHeight(),e*A.getWidth()/this.getWidth()]}throw new Error("The image does not have an affine transformation.")}pixelIsArea(){return 1===this.getGeoKeys()?.GTRasterTypeGeoKey}getBoundingBox(A=!1){const g=this.getHeight(),I=this.getWidth(),e=this.fileDirectory.getValue("ModelTransformation");if(e&&!A){const[A,i,,t,B,C,,Q]=e,s=[[0,0],[0,g],[I,0],[I,g]].map(([g,I])=>[t+A*g+i*I,Q+B*g+C*I]),E=s.map(A=>A[0]),a=s.map(A=>A[1]);return[Math.min(...E),Math.min(...a),Math.max(...E),Math.max(...a)]}{const A=this.getOrigin(),e=this.getResolution(),i=A[0],t=A[1],B=i+e[0]*I,C=t+e[1]*g;return[Math.min(i,B),Math.min(t,C),Math.max(i,B),Math.max(t,C)]}}}class mA{constructor(A){this._dataView=new DataView(A)}get buffer(){return this._dataView.buffer}getUint64(A,g){const I=this.getUint32(A,g),e=this.getUint32(A+4,g);let i;if(g){if(i=I+2**32*e,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}if(i=2**32*I+e,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}getInt64(A,g){let I=0;const e=(128&this._dataView.getUint8(A+(g?7:0)))>0;let i=!0;for(let t=0;t<8;t++){let B=this._dataView.getUint8(A+(g?t:7-t));e&&(i?0!==B&&(B=255&~(B-1),i=!1):B=255&~B),I+=B*256**t}return e&&(I=-I),I}getUint8(A){return this._dataView.getUint8(A)}getInt8(A){return this._dataView.getInt8(A)}getUint16(A,g){return this._dataView.getUint16(A,g)}getInt16(A,g){return this._dataView.getInt16(A,g)}getUint32(A,g){return this._dataView.getUint32(A,g)}getInt32(A,g){return this._dataView.getInt32(A,g)}getFloat16(A,g){return X(this._dataView,A,g)}getFloat32(A,g){return this._dataView.getFloat32(A,g)}getFloat64(A,g){return this._dataView.getFloat64(A,g)}}class KA{constructor(A,g,I,e){this._dataView=new DataView(A),this._sliceOffset=g,this._littleEndian=I,this._bigTiff=e}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(A,g){return this.sliceOffset<=A&&this.sliceTop>=A+g}readUint8(A){return this._dataView.getUint8(A-this._sliceOffset)}readInt8(A){return this._dataView.getInt8(A-this._sliceOffset)}readUint16(A){return this._dataView.getUint16(A-this._sliceOffset,this._littleEndian)}readInt16(A){return this._dataView.getInt16(A-this._sliceOffset,this._littleEndian)}readUint32(A){return this._dataView.getUint32(A-this._sliceOffset,this._littleEndian)}readInt32(A){return this._dataView.getInt32(A-this._sliceOffset,this._littleEndian)}readFloat32(A){return this._dataView.getFloat32(A-this._sliceOffset,this._littleEndian)}readFloat64(A){return this._dataView.getFloat64(A-this._sliceOffset,this._littleEndian)}readUint64(A){const g=this.readUint32(A),I=this.readUint32(A+4);let e;if(this._littleEndian){if(e=g+2**32*I,!Number.isSafeInteger(e))throw new Error(`${e} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return e}if(e=2**32*g+I,!Number.isSafeInteger(e))throw new Error(`${e} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return e}readInt64(A){let g=0;const I=(128&this._dataView.getUint8(A+(this._littleEndian?7:0)))>0;let e=!0;for(let i=0;i<8;i++){let t=this._dataView.getUint8(A+(this._littleEndian?i:7-i));I&&(e?0!==t&&(t=255&~(t-1),e=!1):t=255&~t),g+=t*256**i}return I&&(g=-g),g}readOffset(A){return this._bigTiff?this.readUint64(A):this.readUint32(A)}}const HA="\r\n\r\n";function JA(A){if(void 0!==Object.fromEntries)return Object.fromEntries(A);const g={};for(const[I,e]of A)g[I.toLowerCase()]=e;return g}function bA(A){return JA(A.split("\r\n").map(A=>{const g=A.split(":").map(A=>A.trim());return g[0]=g[0].toLowerCase(),g}))}function qA(A){let g=NaN,I=NaN,e=NaN;return A&&([,g,I,e]=(A.match(/bytes (\d+)-(\d+)\/(\d+)/)||[]).map(Number)),{start:g,end:I,total:e}}class xA{async fetch(A,g){return Promise.all(A.map(async A=>(await this.fetchSlice(A,g)).data))}async fetchSlice(A,g){throw new Error(`fetching of slice ${A} not possible, not implemented`)}get fileSize(){return null}async close(){}}class TA extends Map{constructor(A={}){if(super(),!(A.maxSize&&A.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof A.maxAge&&0===A.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=A.maxSize,this.maxAge=A.maxAge||Number.POSITIVE_INFINITY,this.onEviction=A.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(A){if("function"==typeof this.onEviction)for(const[g,I]of A)this.onEviction(g,I.value)}_deleteIfExpired(A,g){return"number"==typeof g.expiry&&g.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(A,g.value),this.delete(A))}_getOrDeleteIfExpired(A,g){if(!1===this._deleteIfExpired(A,g))return g.value}_getItemValue(A,g){return g.expiry?this._getOrDeleteIfExpired(A,g):g.value}_peek(A,g){const I=g.get(A);return this._getItemValue(A,I)}_set(A,g){this.cache.set(A,g),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(A,g){this.oldCache.delete(A),this._set(A,g)}*_entriesAscending(){for(const A of this.oldCache){const[g,I]=A;if(!this.cache.has(g)){!1===this._deleteIfExpired(g,I)&&(yield A)}}for(const A of this.cache){const[g,I]=A;!1===this._deleteIfExpired(g,I)&&(yield A)}}get(A){if(this.cache.has(A)){const g=this.cache.get(A);return this._getItemValue(A,g)}if(this.oldCache.has(A)){const g=this.oldCache.get(A);if(!1===this._deleteIfExpired(A,g))return this._moveToRecent(A,g),g.value}}set(A,g,{maxAge:I=this.maxAge}={}){const e="number"==typeof I&&I!==Number.POSITIVE_INFINITY?Date.now()+I:void 0;return this.cache.has(A)?this.cache.set(A,{value:g,expiry:e}):this._set(A,{value:g,expiry:e}),this}has(A){return this.cache.has(A)?!this._deleteIfExpired(A,this.cache.get(A)):!!this.oldCache.has(A)&&!this._deleteIfExpired(A,this.oldCache.get(A))}peek(A){return this.cache.has(A)?this._peek(A,this.cache):this.oldCache.has(A)?this._peek(A,this.oldCache):void 0}delete(A){const g=this.cache.delete(A);return g&&this._size--,this.oldCache.delete(A)||g}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(A){if(!(A&&A>0))throw new TypeError("`maxSize` must be a number greater than 0");const g=[...this._entriesAscending()],I=g.length-A;I<0?(this.cache=new Map(g),this.oldCache=new Map,this._size=g.length):(I>0&&this._emitEvictions(g.slice(0,I)),this.oldCache=new Map(g.slice(I)),this.cache=new Map,this._size=0),this.maxSize=A}*keys(){for(const[A]of this)yield A}*values(){for(const[,A]of this)yield A}*[Symbol.iterator](){for(const A of this.cache){const[g,I]=A;!1===this._deleteIfExpired(g,I)&&(yield[g,I.value])}for(const A of this.oldCache){const[g,I]=A;if(!this.cache.has(g)){!1===this._deleteIfExpired(g,I)&&(yield[g,I.value])}}}*entriesDescending(){let A=[...this.cache];for(let g=A.length-1;g>=0;--g){const I=A[g],[e,i]=I;!1===this._deleteIfExpired(e,i)&&(yield[e,i.value])}A=[...this.oldCache];for(let g=A.length-1;g>=0;--g){const I=A[g],[e,i]=I;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,i)&&(yield[e,i.value])}}}*entriesAscending(){for(const[A,g]of this._entriesAscending())yield[A,g.value]}get size(){if(!this._size)return this.oldCache.size;let A=0;for(const g of this.oldCache.keys())this.cache.has(g)||A++;return Math.min(this._size+A,this.maxSize)}entries(){return this.entriesAscending()}forEach(A,g=this){for(const[I,e]of this.entriesAscending())A.call(g,e,I,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}class OA extends Error{constructor(...A){super(...A),Error.captureStackTrace&&Error.captureStackTrace(this,OA),this.name="AbortError",this.signal=void 0}}class PA extends Error{constructor(A,g){super(g),this.errors=A,this.message=g,this.name="AggregateError"}}const vA=PA;class VA{constructor(A,g,I){this.offset=A,this.length=g,this.data=I}get top(){return this.offset+this.length}}class ZA{constructor(A,g,I){this.offset=A,this.length=g,this.blockIds=I}}class zA extends xA{constructor(A,{blockSize:g=65536,cacheSize:I=100}={}){super(),this.source=A,this.blockSize=g,this.blockCache=new TA({maxSize:I,onEviction:(A,g)=>{this.evictedBlocks.set(A,g)}}),this.evictedBlocks=new Map,this.blockRequests=new Map,this.blockIdsToFetch=new Set,this.abortedBlockIds=new Set}get fileSize(){return this.source.fileSize}async fetch(A,g){const I=[],e=[],i=[];this.evictedBlocks.clear();for(const{offset:g,length:t}of A){let A=g+t;const{fileSize:B}=this;null!==B&&(A=Math.min(A,B));for(let t=Math.floor(g/this.blockSize)*this.blockSize;t<A;t+=this.blockSize){const A=Math.floor(t/this.blockSize);this.blockCache.has(A)||this.blockRequests.has(A)||(this.blockIdsToFetch.add(A),e.push(A)),this.blockRequests.has(A)&&I.push(this.blockRequests.get(A)),i.push(A)}}await async function(A){return new Promise(g=>setTimeout(g,A))}(),this.fetchBlocks(g);const t=[];for(const A of e)this.blockRequests.has(A)&&t.push(this.blockRequests.get(A));await Promise.allSettled(I),await Promise.allSettled(t);const B=[],C=i.filter(A=>this.abortedBlockIds.has(A)||!this.blockCache.has(A));if(C.forEach(A=>this.blockIdsToFetch.add(A)),C.length>0&&g&&!g.aborted){this.fetchBlocks();for(const A of C){const g=this.blockRequests.get(A);if(!g)throw new Error(`Block ${A} is not in the block requests`);B.push(g)}await Promise.allSettled(B)}if(g&&g.aborted)throw new OA("Request was aborted");const Q=i.map(A=>this.blockCache.get(A)||this.evictedBlocks.get(A)),s=Q.filter(A=>!A);if(s.length)throw new vA(s,"Request failed");const E=new Map(function(A,g){const I=Array.isArray(A)?A:Array.from(A),e=Array.isArray(g)?g:Array.from(g);return I.map((A,g)=>[A,e[g]])}(i,Q));return this.readSliceData(A,E)}fetchBlocks(A){if(this.blockIdsToFetch.size>0){const g=this.groupBlocks(this.blockIdsToFetch),I=g.map(async g=>({...g,...await this.source.fetchSlice(g,A)}));for(let e=0;e<g.length;++e){const i=g[e];for(const g of i.blockIds)this.blockRequests.set(g,(async()=>{try{const A=(await Promise.all(I))[e],i=g*this.blockSize,t=i-A.offset,B=Math.min(t+this.blockSize,A.data.byteLength),C=A.data.slice(t,B),Q=new VA(i,C.byteLength,C);this.blockCache.set(g,Q),this.abortedBlockIds.delete(g)}catch(I){if(!(I instanceof OA&&"AbortError"===I.name))throw I;I.signal=A,this.blockCache.delete(g),this.abortedBlockIds.add(g)}finally{this.blockRequests.delete(g)}})())}this.blockIdsToFetch.clear()}}groupBlocks(A){const g=Array.from(A).sort((A,g)=>A-g);if(0===g.length)return[];let I=[],e=null;const i=[];for(const A of g)null===e||e+1===A?(I.push(A),e=A):(i.push(new ZA(I[0]*this.blockSize,I.length*this.blockSize,I)),I=[A],e=A);return i.push(new ZA(I[0]*this.blockSize,I.length*this.blockSize,I)),i}readSliceData(A,g){return A.map(A=>{let I=A.offset+A.length;null!==this.fileSize&&(I=Math.min(this.fileSize,I));const e=Math.floor(A.offset/this.blockSize),i=Math.floor((I-1)/this.blockSize),t=new ArrayBuffer(A.length),B=new Uint8Array(t);for(let t=e;t<=i;++t){const e=g.get(t);if(!e)continue;const i=e.offset-A.offset;let C,Q=0,s=0;i<0?Q=-i:i>0&&(s=i),C=e.top-I<0?e.length-Q:I-e.offset-Q;const E=new Uint8Array(e.data,Q,C);B.set(E,s)}return t})}}class jA{get ok(){return this.status>=200&&this.status<=299}get status(){throw new Error("not implemented")}getHeader(A){throw new Error("not implemented")}async getData(){throw new Error("not implemented")}}class WA{constructor(A){this.url=A}async request(A){throw new Error("request is not implemented")}}class _A extends jA{constructor(A){super(),this.response=A}get status(){return this.response.status}getHeader(A){return this.response.headers.get(A)||void 0}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}}class XA extends WA{constructor(A,g){super(A),this.credentials=g}async request({headers:A,signal:g}={}){const I=await fetch(this.url,{headers:A,credentials:this.credentials,signal:g});return new _A(I)}}class $A extends jA{constructor(A,g){super(),this.xhr=A,this.data=g}get status(){return this.xhr.status}getHeader(A){return this.xhr.getResponseHeader(A)||void 0}async getData(){return this.data}}class Ag extends WA{constructRequest(A,g){return new Promise((I,e)=>{const i=new XMLHttpRequest;i.open("GET",this.url),i.responseType="arraybuffer";for(const[g,I]of Object.entries(A))i.setRequestHeader(g,I);i.onload=()=>{const A=i.response;I(new $A(i,A))},i.onerror=e,i.onabort=()=>e(new OA("Request aborted")),i.send(),g&&(g.aborted&&i.abort(),g.addEventListener("abort",()=>i.abort()))})}async request({headers:A={},signal:g}={}){return await this.constructRequest(A,g)}}var gg={};class Ig extends jA{constructor(A,g){super(),this.response=A,this.dataPromise=g}get status(){return this.response.statusCode}getHeader(A){const g=this.response.headers[A];return Array.isArray(g)?g.join(", "):g}async getData(){return await this.dataPromise}}class eg extends WA{constructor(A){super(A),this.parsedUrl=gg.parse(this.url),this.httpApi=(this.parsedUrl.protocol,gg)}constructRequest(A,g){return new Promise((I,e)=>{const i=this.httpApi.get({...this.parsedUrl,headers:A},A=>{const g=new Promise(g=>{const I=[];A.on("data",A=>{I.push(A)}),A.on("end",()=>{const A=Buffer.concat(I).buffer;g(A)}),A.on("error",e)});I(new Ig(A,g))});i.on("error",e),g&&(g.aborted&&i.destroy(new OA("Request aborted")),g.addEventListener("abort",()=>i.destroy(new OA("Request aborted"))))})}async request({headers:A={},signal:g}={}){return await this.constructRequest(A,g)}}class ig extends xA{constructor(A,{headers:g,maxRanges:I=0,allowFullFile:e}={}){super(),this.client=A,this.headers=g,this.maxRanges=I,this.allowFullFile=e,this._fileSize=null}async fetch(A,g){return this.maxRanges>=A.length?this.fetchSlices(A,g).then(A=>A.map(A=>A.data)):(this.maxRanges>0&&A.length,Promise.all(A.map(async A=>(await this.fetchSlice(A,g)).data)))}async fetchSlices(A,g){const I=await this.client.request({headers:{...this.headers,Range:`bytes=${A.map(({offset:A,length:g})=>`${A}-${A+g-1}`).join(",")}`},signal:g});if(I.ok){if(206===I.status){const{type:e,params:i}=function(A){if(!A)return{type:null,params:{}};const[g,...I]=A.split(";").map(A=>A.trim());return{type:g,params:JA(I.map(A=>A.split("=")))}}(I.getHeader("content-type"));if("multipart/byteranges"===e){const A=function(A,g){let I=-1;const e=new TextDecoder("ascii"),i=[],t=`--${g}`,B=`${t}--`;for(let g=0;g<10;++g)e.decode(new Uint8Array(A,g,t.length))===t&&(I=g);if(-1===I)throw new Error("Could not find initial boundary");for(;I<A.byteLength;){const g=e.decode(new Uint8Array(A,I,Math.min(t.length+1024,A.byteLength-I)));if(0===g.length||g.startsWith(B))break;if(!g.startsWith(t))throw new Error("Part does not start with boundary");const C=g.substr(t.length+2);if(0===C.length)break;const Q=C.indexOf(HA),s=bA(C.substr(0,Q)),{start:E,end:a,total:o}=qA(s["content-range"]),r=I+t.length+Q+4,n=a+1-E;i.push({headers:s,data:A.slice(r,r+n),offset:E,length:n,fileSize:o}),I=r+n+4}return i}(await I.getData(),i.boundary);return this._fileSize=A[0].fileSize||null,A}const t=await I.getData(),{start:B,end:C,total:Q}=qA(I.getHeader("content-range"));this._fileSize=Q||null;const s=[{data:t,offset:B,length:C+1-B}];if(A.length>1){const I=await Promise.all(A.slice(1).map(A=>this.fetchSlice(A,g)));return s.concat(I)}return s}{if(!this.allowFullFile)throw new Error("Server responded with full file");const A=await I.getData();return this._fileSize=A.byteLength,[{data:A,offset:0,length:A.byteLength}]}}throw new Error("Error fetching data.")}async fetchSlice(A,g){const{offset:I,length:e}=A,i=await this.client.request({headers:{...this.headers,Range:`bytes=${I}-${I+e-1}`},signal:g});if(i.ok){if(206===i.status){const A=await i.getData(),{total:g}=qA(i.getHeader("content-range"));return this._fileSize=g||null,{data:A,offset:I,length:e}}{if(!this.allowFullFile)throw new Error("Server responded with full file");const A=await i.getData();return this._fileSize=A.byteLength,{data:A,offset:0,length:A.byteLength}}}throw new Error("Error fetching data.")}get fileSize(){return this._fileSize}}function tg(A,{blockSize:g,cacheSize:I}){return void 0===g?A:new zA(A,{blockSize:g,cacheSize:I})}function Bg(A,{forceXHR:g=!1,...I}={}){return"function"!=typeof fetch||g?"undefined"!=typeof XMLHttpRequest?function(A,{headers:g={},maxRanges:I=0,allowFullFile:e=!1,...i}={}){const t=new Ag(A);return tg(new ig(t,{headers:g,maxRanges:I,allowFullFile:e}),i)}(A,I):function(A,{headers:g={},maxRanges:I=0,allowFullFile:e=!1,...i}={}){const t=new eg(A);return tg(new ig(t,{headers:g,maxRanges:I,allowFullFile:e}),i)}(A,I):function(A,{headers:g={},credentials:I,maxRanges:e=0,allowFullFile:i=!1,...t}={}){const B=new XA(A,I);return tg(new ig(B,{headers:g,maxRanges:e,allowFullFile:i}),t)}(A,I)}class Cg extends xA{constructor(A){super(),this.arrayBuffer=A}fetchSlice(A,g){if(g&&g.aborted)throw new OA("Request aborted");return Promise.resolve({data:this.arrayBuffer.slice(A.offset,A.offset+A.length),offset:A.offset,length:A.length})}}function Qg(A,g){switch(A){case eA.BYTE:case eA.ASCII:case eA.UNDEFINED:return new Uint8Array(g);case eA.SBYTE:return new Int8Array(g);case eA.SHORT:return new Uint16Array(g);case eA.SSHORT:return new Int16Array(g);case eA.LONG:case eA.IFD:return new Uint32Array(g);case eA.SLONG:return new Int32Array(g);case eA.LONG8:case eA.IFD8:case eA.SLONG8:return new Array(g);case eA.RATIONAL:return new Uint32Array(2*g);case eA.SRATIONAL:return new Int32Array(2*g);case eA.FLOAT:return new Float32Array(g);case eA.DOUBLE:return new Float64Array(g);default:throw new RangeError(`Invalid field type: ${A}`)}}function sg(A,g){switch(g){case eA.BYTE:case eA.ASCII:case eA.UNDEFINED:return A.readUint8;case eA.SBYTE:return A.readInt8;case eA.SHORT:return A.readUint16;case eA.SSHORT:return A.readInt16;case eA.LONG:case eA.IFD:return A.readUint32;case eA.SLONG:return A.readInt32;case eA.LONG8:case eA.IFD8:return A.readUint64;case eA.SLONG8:return A.readInt64;case eA.RATIONAL:return A.readUint32;case eA.SRATIONAL:return A.readInt32;case eA.FLOAT:return A.readFloat32;case eA.DOUBLE:return A.readFloat64;default:throw new RangeError(`Invalid field type: ${g}`)}}function Eg(A=null,g,I,e,i,t,B=!1){const C=tA(e),Q=A||Qg(e,i),s=e===eA.RATIONAL||e===eA.SRATIONAL;if(s)for(let A=0;A<i;A+=2)Q[A]=g.call(I,t+A*C),Q[A+1]=g.call(I,t+(A*C+4));else for(let A=0;A<i;++A)Q[A]=g.call(I,t+A*C);return e===eA.ASCII?new TextDecoder("utf-8").decode(Q):1!==i||B||s?Q:Q[0]}class ag{constructor(A,g,I,e,i){this.source=A,this.arrayOffset=g,this.littleEndian=I,this.fieldType=e,this.length=i,this.data=Qg(e,i),this.itemSize=tA(e),this.maskBitmap=new Uint8Array(Math.ceil(i/8)),this.fetchIndexPromises=new Map,this.fullFetchPromise=null}async loadAll(){return this.fullFetchPromise||(this.fullFetchPromise=this.source.fetch([{offset:this.arrayOffset,length:this.itemSize*this.length}]).then(A=>{const g=new KA(A[0],this.arrayOffset,!0,!1),I=Eg(this.data,sg(g,this.fieldType),g,this.fieldType,this.length,this.arrayOffset,!0);return this.maskBitmap.fill(255),this.fetchIndexPromises.clear(),I})),this.fullFetchPromise}async get(A){if(A<0||A>=this.data.length)throw new RangeError(`Index ${A} out of bounds for length ${this.data.length}`);const g=Math.floor(A/8),I=1<<A%8,e=this.arrayOffset+A*this.itemSize;if(0===(this.maskBitmap[g]&I)){if(!this.fetchIndexPromises.has(A)){const i=this.source.fetch([{offset:e,length:this.itemSize}]).then(i=>{const t=new KA(i[0],this.arrayOffset+A*this.itemSize,!0,!1),B=sg(t,this.fieldType).call(t,e);return this.data[A]=B,this.maskBitmap[g]|=I,this.fetchIndexPromises.delete(A),B});this.fetchIndexPromises.set(A,i)}return this.fetchIndexPromises.get(A)}return this.data[A]}}class og{constructor(A,g,I,e){this.actualizedFields=A,this.deferredFields=g,this.deferredFieldsBeingResolved=new Map,this.deferredArrays=I,this.nextIFDByteOffset=e}hasTag(A){const g=EA(A);return this.actualizedFields.has(g)||this.deferredFields.has(g)||this.deferredArrays.has(g)}getValue(A){const g=EA(A);if(this.deferredFields.has(g)||this.deferredArrays.has(g)){const A=QA[g];throw new Error(`Field '${A?.name||`Tag${g}`}' (${g}) is deferred. Use loadValue() to load it asynchronously.`)}if(this.actualizedFields.has(g))return this.actualizedFields.get(g)}async loadValue(A){const g=EA(A);if(this.actualizedFields.has(g))return this.actualizedFields.get(g);if(this.deferredFieldsBeingResolved.has(g))return this.deferredFieldsBeingResolved.get(g);const I=this.deferredFields.get(g);if(I){this.deferredFields.delete(g);const A=(async()=>{try{const A=await I();return this.actualizedFields.set(g,A),A}finally{this.deferredFieldsBeingResolved.delete(g)}})();return this.deferredFieldsBeingResolved.set(g,A),A}const e=this.deferredArrays.get(g);return e?e.loadAll():void 0}async loadValueIndexed(A,g){const I=EA(A);if(this.actualizedFields.has(I)){return this.actualizedFields.get(I)[g]}if(this.deferredArrays.has(I)){return this.deferredArrays.get(I).get(g)}if(this.hasTag(I)){const A=await this.loadValue(I);if(A&&"number"!=typeof A)return A[g]}}parseGeoKeyDirectory(){const A=this.getValue("GeoKeyDirectory");if(!A)return null;const g={};for(let I=4;I<=4*A[3];I+=4){const e=uA[A[I]],i=A[I+1]||null,t=A[I+2],B=A[I+3];let C=null;if(i){if(C=this.getValue(i),null==C)throw new Error(`Could not get value of geoKey '${e}'.`);"string"==typeof C?C=C.substring(B,B+t-1):C.subarray&&(C=C.subarray(B,B+t),1===t&&(C=C[0]))}else C=B;g[e]=C}return g}toObject(){const A={};for(const[g,I]of this.actualizedFields.entries()){const e="number"==typeof g?QA[g]:void 0;A[e?e.name:`Tag${g}`]=I}return A}}class rg{constructor(A,g,I,e=!1){this.source=A,this.littleEndian=g,this.bigTiff=I,this.eager=e}async getSlice(A,g){const I=this.bigTiff?4048:1024;return new KA((await this.source.fetch([{offset:A,length:void 0!==g?g:I}]))[0],A,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(A){const g=this.bigTiff?20:12,I=this.bigTiff?8:2;let e=await this.getSlice(A);const i=this.bigTiff?e.readUint64(A):e.readUint16(A),t=i*(g+(this.bigTiff?16:6));e.covers(A,t)||(e=await this.getSlice(A,t));const B=new Map,C=new Map,Q=new Map;let s=A+(this.bigTiff?8:2);for(let A=0;A<i;s+=g,++A){const A=e.readUint16(s),g=e.readUint16(s+2),I=this.bigTiff?e.readUint64(s+4):e.readUint32(s+4);let i=null,t=null,E=null;const a=tA(g),o=s+(this.bigTiff?12:8),r=QA[A]?.isArray,n=QA[A]?.eager||this.eager;if(a*I<=(this.bigTiff?8:4))i=Eg(Qg(g,I),sg(e,g),e,g,I,o,r);else{const A=e.readOffset(o),B=tA(g)*I;if(e.covers(A,B))i=Eg(Qg(g,I),sg(e,g),e,g,I,A,r);else if(n){const e=await this.getSlice(A,B);i=Eg(Qg(g,I),sg(e,g),e,g,I,A,r)}else r?E=new ag(this.source,A,this.littleEndian,g,I):t=async()=>{const e=await this.getSlice(A,B);return Eg(Qg(g,I),sg(e,g),e,g,I,A,r)}}null!==i?B.set(A,i):null!==t?C.set(A,t):null!==E&&Q.set(A,E)}const E=e.readOffset(A+I+g*i);return new og(B,C,Q,E)}}function ng(A,g){let I=A.length-g,e=0;do{for(let I=g;I>0;I--)A[e+g]+=A[e],e++;I-=g}while(I>0)}function hg(A,g,I){let e=0,i=A.length;const t=i/I;for(;i>g;){for(let I=g;I>0;--I)A[e+g]+=A[e],++e;i-=g}const B=A.slice();for(let g=0;g<t;++g)for(let e=0;e<I;++e)A[I*g+e]=B[(I-e-1)*t+g]}class lg{constructor(A){this.parameters=A}decodeBlock(A){throw new Error("decodeBlock not implemented")}async decode(A){const g=await this.decodeBlock(A),{tileWidth:I,tileHeight:e,predictor:i,bitsPerSample:t,planarConfiguration:B}=this.parameters;if(1!==i){return function(A,g,I,e,i,t){if(!g||1===g)return A;for(let A=0;A<i.length;++A){if(i[A]%8!=0)throw new Error("When decoding with predictor, only multiple of 8 bits are supported.");if(i[A]!==i[0])throw new Error("When decoding with predictor, all samples must have the same size.")}const B=i[0]/8,C=2===t?1:i.length;for(let t=0;t<e&&!(t*C*I*B>=A.byteLength);++t){let e;if(2===g){switch(i[0]){case 8:e=new Uint8Array(A,t*C*I*B,C*I*B);break;case 16:e=new Uint16Array(A,t*C*I*B,C*I*B/2);break;case 32:e=new Uint32Array(A,t*C*I*B,C*I*B/4);break;default:throw new Error(`Predictor 2 not allowed with ${i[0]} bits per sample.`)}ng(e,C)}else 3===g&&(e=new Uint8Array(A,t*C*I*B,C*I*B),hg(e,C,B))}return A}(g,i,I,e,Array.isArray(t)||ArrayBuffer.isView(t)?Array.from(t):[t],B)}return g}}function cg(A,g,I,e){let i=null,t=null;const B=tA(g);switch(g){case eA.BYTE:case eA.ASCII:case eA.UNDEFINED:i=new Uint8Array(I),t=A.readUint8;break;case eA.SBYTE:i=new Int8Array(I),t=A.readInt8;break;case eA.SHORT:i=new Uint16Array(I),t=A.readUint16;break;case eA.SSHORT:i=new Int16Array(I),t=A.readInt16;break;case eA.LONG:case eA.IFD:i=new Uint32Array(I),t=A.readUint32;break;case eA.SLONG:i=new Int32Array(I),t=A.readInt32;break;case eA.LONG8:case eA.IFD8:i=new Array(I),t=A.readUint64;break;case eA.SLONG8:i=new Array(I),t=A.readInt64;break;case eA.RATIONAL:i=new Uint32Array(2*I),t=A.readUint32;break;case eA.SRATIONAL:i=new Int32Array(2*I),t=A.readInt32;break;case eA.FLOAT:i=new Float32Array(I),t=A.readFloat32;break;case eA.DOUBLE:i=new Float64Array(I),t=A.readFloat64}if(null===i||null===t)throw new RangeError(`Invalid field type: ${g}`);for(let g=0;g<I;++g)i[g]=t.call(A,e+g*B);return new TextDecoder("utf-8").decode(i)}class Dg extends Error{constructor(A){super(`No image at index ${A}`),this.index=A}}class wg{async getImage(A=0){throw new Error("Not implemented")}async getImageCount(){throw new Error("Not implemented")}async readRasters(A={}){const{window:g,width:I,height:e}=A;let{resX:i,resY:t,bbox:B}=A;const C=await this.getImage();let Q=C;const s=await this.getImageCount(),E=C.getBoundingBox();if(g&&B)throw new Error('Both "bbox" and "window" passed.');if(I||e){if(g){const[A,I]=C.getOrigin(),[e,i]=C.getResolution();B=[A+g[0]*e,I+g[1]*i,A+g[2]*e,I+g[3]*i]}const A=B||E;if(I){if(i)throw new Error("Both width and resX passed");i=(A[2]-A[0])/I}if(e){if(t)throw new Error("Both width and resY passed");t=(A[3]-A[1])/e}}if(i||t){const A=[];for(let g=0;g<s;++g){const I=await this.getImage(g),e=I.fileDirectory.getValue("SubfileType"),i=I.fileDirectory.getValue("NewSubfileType");(0===g||2===e||1&(i||0))&&A.push(I)}A.sort((A,g)=>A.getWidth()-g.getWidth());for(let g=0;g<A.length;++g){const I=A[g],e=(E[2]-E[0])/I.getWidth(),B=(E[3]-E[1])/I.getHeight();if(Q=I,i&&i>e||t&&t>B)break}}let a=g;if(B){const[A,g]=C.getOrigin(),[I,e]=Q.getResolution(C);a=[Math.round((B[0]-A)/I),Math.round((B[1]-g)/e),Math.round((B[2]-A)/I),Math.round((B[3]-g)/e)],a=[Math.min(a[0],a[2]),Math.min(a[1],a[3]),Math.max(a[0],a[2]),Math.max(a[1],a[3])]}return Q.readRasters({...A,window:a})}}class dg extends wg{constructor(A,g,I,e,i={}){super(),this.source=A,this.parser=new rg(A,g,I,!1),this.littleEndian=g,this.bigTiff=I,this.firstIFDOffset=e,this.cache=i.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(A,g){const I=this.bigTiff?4048:1024;return new KA((await this.source.fetch([{offset:A,length:void 0!==g?g:I}]))[0],A,this.littleEndian,this.bigTiff)}async requestIFD(A){if(this.ifdRequests[A])return this.ifdRequests[A];if(0===A)return this.ifdRequests[A]=this.parser.parseFileDirectoryAt(this.firstIFDOffset),this.ifdRequests[A];if(!this.ifdRequests[A-1])try{this.ifdRequests[A-1]=this.requestIFD(A-1)}catch(g){if(g instanceof Dg)throw new Dg(A);throw g}return this.ifdRequests[A]=(async()=>{const g=this.ifdRequests[A-1];if(!g)throw new Error("Previous IFD request missing");const I=await g;if(0===I.nextIFDByteOffset)throw new Dg(A);return this.parser.parseFileDirectoryAt(I.nextIFDByteOffset)})(),this.ifdRequests[A]}async getImage(A=0){return new YA(await this.requestIFD(A),this.littleEndian,this.cache,this.source)}async getImageCount(){let A=0,g=!0;for(;g;)try{await this.requestIFD(A),++A}catch(A){if(!(A instanceof Dg))throw A;g=!1}return A}async getGhostValues(){const A=this.bigTiff?16:8;if(null!==this.ghostValues)return this.ghostValues;const g="GDAL_STRUCTURAL_METADATA_SIZE=";let I=await this.getSlice(A,130);if(g===cg(I,eA.ASCII,30,A)){const g=cg(I,eA.ASCII,130,A).split("\n")[0],e=Number(g.split("=")[1].split(" ")[0])+g.length;e>130&&(I=await this.getSlice(A,e));const i=cg(I,eA.ASCII,e,A),t={};i.split("\n").filter(A=>A.length>0).map(A=>A.split("=")).forEach(([A,g])=>{t[A]=g}),this.ghostValues=t}return this.ghostValues}static async fromSource(A,g,I){const e=(await A.fetch([{offset:0,length:1024}],I))[0],i=new mA(e),t=i.getUint16(0,!1);let B;if(18761===t)B=!0;else{if(19789!==t)throw new TypeError("Invalid byte order value.");B=!1}const C=i.getUint16(2,B);let Q;if(42===C)Q=!1;else{if(43!==C)throw new TypeError("Invalid magic number.");Q=!0;if(8!==i.getUint16(4,B))throw new Error("Unsupported offset byte-size.")}const s=Q?i.getUint64(8,B):i.getUint32(4,B);return new dg(A,B,Q,s,g)}close(){return"function"==typeof this.source.close&&this.source.close()}}async function yg(A,g){return dg.fromSource(function(A){return new Cg(A)}(A),void 0,g)}const fg={type:"image",blockSize:65536,format:void 0,useChannel:null,useChannelIndex:null,noDataValue:void 0,multiplier:1,verticalExaggeration:1,numOfChannels:void 0,planarConfig:void 0,tesselator:"martini",terrainColor:[200,200,200,255],terrainSkirtHeight:100,terrainMinValue:0,useHeatMap:!0,useColorsBasedOnValues:!1,useColorClasses:!1,useAutoRange:!1,useDataForOpacity:!1,useSingleColor:!1,blurredTexture:!0,skipTexture:!1,noDataCheck:"full",clipLow:null,clipHigh:null,color:[255,0,255,255],colorScale:i.brewer.YlOrRd,colorScaleValueRange:[0,255],colorsBasedOnValues:void 0,colorClasses:void 0,alpha:100,maxGlazeAlpha:128,nullColor:[0,0,0,0],unidentifiedColor:[0,0,0,0],clippedColor:[0,0,0,0],useSlope:!1,useHillshade:!1,hillshadeAzimuth:315,hillshadeAltitude:45,zFactor:1,useSwissRelief:!1,swissSlopeWeight:.5,useReliefGlaze:!1,disableLighting:!1,cacheAllBands:!1};class ug{constructor(A=257){this.gridSize=A;const g=A-1;if(g&g-1)throw new Error(`Expected grid size to be 2^n+1, got ${A}.`);this.numTriangles=g*g*2-2,this.numParentTriangles=this.numTriangles-g*g,this.indices=new Uint32Array(this.gridSize*this.gridSize),this.coords=new Uint16Array(4*this.numTriangles);for(let A=0;A<this.numTriangles;A++){let I=A+2,e=0,i=0,t=0,B=0,C=0,Q=0;for(1&I?t=B=C=g:e=i=Q=g;(I>>=1)>1;){const A=e+t>>1,g=i+B>>1;1&I?(t=e,B=i,e=C,i=Q):(e=t,i=B,t=C,B=Q),C=A,Q=g}const s=4*A;this.coords[s+0]=e,this.coords[s+1]=i,this.coords[s+2]=t,this.coords[s+3]=B}}createTile(A){return new Sg(A,this)}}class Sg{constructor(A,g){const I=g.gridSize;if(A.length!==I*I)throw new Error(`Expected terrain data of length ${I*I} (${I} x ${I}), got ${A.length}.`);this.terrain=A,this.martini=g,this.errors=new Float32Array(A.length),this.update()}update(){const{numTriangles:A,numParentTriangles:g,coords:I,gridSize:e}=this.martini,{terrain:i,errors:t}=this;for(let B=A-1;B>=0;B--){const A=4*B,C=I[A+0],Q=I[A+1],s=I[A+2],E=I[A+3],a=C+s>>1,o=Q+E>>1,r=a+o-Q,n=o+C-a,h=(i[Q*e+C]+i[E*e+s])/2,l=o*e+a,c=Math.abs(h-i[l]);if(t[l]=Math.max(t[l],c),B<g){const A=(Q+n>>1)*e+(C+r>>1),g=(E+n>>1)*e+(s+r>>1);t[l]=Math.max(t[l],t[A],t[g])}}}getMesh(A=0){const{gridSize:g,indices:I}=this.martini,{errors:e}=this;let i=0,t=0;const B=g-1;function C(B,Q,s,E,a,o){const r=B+s>>1,n=Q+E>>1;Math.abs(B-a)+Math.abs(Q-o)>1&&e[n*g+r]>A?(C(a,o,B,Q,r,n),C(s,E,a,o,r,n)):(I[Q*g+B]=I[Q*g+B]||++i,I[E*g+s]=I[E*g+s]||++i,I[o*g+a]=I[o*g+a]||++i,t++)}I.fill(0),C(0,0,B,B,B,0),C(B,B,0,0,0,B);const Q=new Uint16Array(2*i),s=new Uint32Array(3*t);let E=0;function a(i,t,B,C,o,r){const n=i+B>>1,h=t+C>>1;if(Math.abs(i-o)+Math.abs(t-r)>1&&e[h*g+n]>A)a(o,r,i,t,n,h),a(B,C,o,r,n,h);else{const A=I[t*g+i]-1,e=I[C*g+B]-1,a=I[r*g+o]-1;Q[2*A]=i,Q[2*A+1]=t,Q[2*e]=B,Q[2*e+1]=C,Q[2*a]=o,Q[2*a+1]=r,s[E++]=A,s[E++]=e,s[E++]=a}}return a(0,0,B,B,B,0),a(B,B,0,0,0,B),{vertices:Q,triangles:s}}}function Gg(A,g,I,e,i,t){return(I-i)*(g-t)-(e-t)*(A-i)}class Ng{constructor(A,g,I=g){this.data=A,this.width=g,this.height=I,this.coords=[],this.triangles=[],this._halfedges=[],this._candidates=[],this._queueIndices=[],this._queue=[],this._errors=[],this._rms=[],this._pending=[],this._pendingLen=0,this._rmsSum=0;const e=g-1,i=I-1,t=this._addPoint(0,0),B=this._addPoint(e,0),C=this._addPoint(0,i),Q=this._addPoint(e,i),s=this._addTriangle(Q,t,C,-1,-1,-1);this._addTriangle(t,Q,B,s,-1,-1),this._flush()}run(A=1){for(;this.getMaxError()>A;)this.refine()}refine(){this._step(),this._flush()}getMaxError(){return this._errors[0]}getRMSD(){return this._rmsSum>0?Math.sqrt(this._rmsSum/(this.width*this.height)):0}heightAt(A,g){return this.data[this.width*g+A]}_flush(){const{coords:A}=this;for(let g=0;g<this._pendingLen;g++){const I=this._pending[g],e=2*this.triangles[3*I+0],i=2*this.triangles[3*I+1],t=2*this.triangles[3*I+2];this._findCandidate(A[e],A[e+1],A[i],A[i+1],A[t],A[t+1],I)}this._pendingLen=0}_findCandidate(A,g,I,e,i,t,B){const C=Math.min(A,I,i),Q=Math.min(g,e,t),s=Math.max(A,I,i),E=Math.max(g,e,t);let a=Gg(I,e,i,t,C,Q),o=Gg(i,t,A,g,C,Q),r=Gg(A,g,I,e,C,Q);const n=e-g,h=A-I,l=t-e,c=I-i,D=g-t,w=i-A,d=Gg(A,g,I,e,i,t),y=this.heightAt(A,g)/d,f=this.heightAt(I,e)/d,u=this.heightAt(i,t)/d;let S=0,G=0,N=0,F=0;for(let A=Q;A<=E;A++){let g=0;a<0&&0!==l&&(g=Math.max(g,Math.floor(-a/l))),o<0&&0!==D&&(g=Math.max(g,Math.floor(-o/D))),r<0&&0!==n&&(g=Math.max(g,Math.floor(-r/n)));let I=a+l*g,e=o+D*g,i=r+n*g,t=!1;for(let B=C+g;B<=s;B++){if(I>=0&&e>=0&&i>=0){t=!0;const g=y*I+f*e+u*i,C=Math.abs(g-this.heightAt(B,A));F+=C*C,C>S&&(S=C,G=B,N=A)}else if(t)break;I+=l,e+=D,i+=n}a+=c,o+=w,r+=h}(G===A&&N===g||G===I&&N===e||G===i&&N===t)&&(S=0),this._candidates[2*B]=G,this._candidates[2*B+1]=N,this._rms[B]=F,this._queuePush(B,S,F)}_step(){const A=this._queuePop(),g=3*A+0,I=3*A+1,e=3*A+2,i=this.triangles[g],t=this.triangles[I],B=this.triangles[e],C=this.coords[2*i],Q=this.coords[2*i+1],s=this.coords[2*t],E=this.coords[2*t+1],a=this.coords[2*B],o=this.coords[2*B+1],r=this._candidates[2*A],n=this._candidates[2*A+1],h=this._addPoint(r,n);if(0===Gg(C,Q,s,E,r,n))this._handleCollinear(h,g);else if(0===Gg(s,E,a,o,r,n))this._handleCollinear(h,I);else if(0===Gg(a,o,C,Q,r,n))this._handleCollinear(h,e);else{const A=this._halfedges[g],C=this._halfedges[I],Q=this._halfedges[e],s=this._addTriangle(i,t,h,A,-1,-1,g),E=this._addTriangle(t,B,h,C,-1,s+1),a=this._addTriangle(B,i,h,Q,s+2,E+1);this._legalize(s),this._legalize(E),this._legalize(a)}}_addPoint(A,g){const I=this.coords.length>>1;return this.coords.push(A,g),I}_addTriangle(A,g,I,e,i,t,B=this.triangles.length){const C=B/3;return this.triangles[B+0]=A,this.triangles[B+1]=g,this.triangles[B+2]=I,this._halfedges[B+0]=e,this._halfedges[B+1]=i,this._halfedges[B+2]=t,e>=0&&(this._halfedges[e]=B+0),i>=0&&(this._halfedges[i]=B+1),t>=0&&(this._halfedges[t]=B+2),this._candidates[2*C+0]=0,this._candidates[2*C+1]=0,this._queueIndices[C]=-1,this._rms[C]=0,this._pending[this._pendingLen++]=C,B}_legalize(A){const g=this._halfedges[A];if(g<0)return;const I=A-A%3,e=g-g%3,i=I+(A+1)%3,t=I+(A+2)%3,B=e+(g+2)%3,C=e+(g+1)%3,Q=this.triangles[t],s=this.triangles[A],E=this.triangles[i],a=this.triangles[B],{coords:o}=this;if(!function(A,g,I,e,i,t,B,C){const Q=A-B,s=g-C,E=I-B,a=e-C,o=i-B,r=t-C,n=E*E+a*a,h=o*o+r*r;return Q*(a*h-n*r)-s*(E*h-n*o)+(Q*Q+s*s)*(E*r-a*o)<0}(o[2*Q],o[2*Q+1],o[2*s],o[2*s+1],o[2*E],o[2*E+1],o[2*a],o[2*a+1]))return;const r=this._halfedges[i],n=this._halfedges[t],h=this._halfedges[B],l=this._halfedges[C];this._queueRemove(I/3),this._queueRemove(e/3);const c=this._addTriangle(Q,a,E,-1,h,r,I),D=this._addTriangle(a,Q,s,c,n,l,e);this._legalize(c+1),this._legalize(D+2)}_handleCollinear(A,g){const I=g-g%3,e=I+(g+1)%3,i=I+(g+2)%3,t=this.triangles[i],B=this.triangles[g],C=this.triangles[e],Q=this._halfedges[e],s=this._halfedges[i],E=this._halfedges[g];if(E<0){const g=this._addTriangle(A,t,B,-1,s,-1,I),e=this._addTriangle(t,A,C,g,-1,Q);return this._legalize(g+1),void this._legalize(e+2)}const a=E-E%3,o=a+(E+2)%3,r=a+(E+1)%3,n=this.triangles[o],h=this._halfedges[o],l=this._halfedges[r];this._queueRemove(a/3);const c=this._addTriangle(t,B,A,s,-1,-1,I),D=this._addTriangle(B,n,A,l,-1,c+1,a),w=this._addTriangle(n,C,A,h,-1,D+1),d=this._addTriangle(C,t,A,Q,c+2,w+1);this._legalize(c),this._legalize(D),this._legalize(w),this._legalize(d)}_queuePush(A,g,I){const e=this._queue.length;this._queueIndices[A]=e,this._queue.push(A),this._errors.push(g),this._rmsSum+=I,this._queueUp(e)}_queuePop(){const A=this._queue.length-1;return this._queueSwap(0,A),this._queueDown(0,A),this._queuePopBack()}_queuePopBack(){const A=this._queue.pop();return this._errors.pop(),this._rmsSum-=this._rms[A],this._queueIndices[A]=-1,A}_queueRemove(A){const g=this._queueIndices[A];if(g<0){const g=this._pending.indexOf(A);if(-1===g)throw new Error("Broken triangulation (something went wrong).");return void(this._pending[g]=this._pending[--this._pendingLen])}const I=this._queue.length-1;I!==g&&(this._queueSwap(g,I),this._queueDown(g,I)||this._queueUp(g)),this._queuePopBack()}_queueLess(A,g){return this._errors[A]>this._errors[g]}_queueSwap(A,g){const I=this._queue[A],e=this._queue[g];this._queue[A]=e,this._queue[g]=I,this._queueIndices[I]=g,this._queueIndices[e]=A;const i=this._errors[A];this._errors[A]=this._errors[g],this._errors[g]=i}_queueUp(A){let g=A;for(;;){const A=g-1>>1;if(A===g||!this._queueLess(g,A))break;this._queueSwap(A,g),g=A}}_queueDown(A,g){let I=A;for(;;){const A=2*I+1;if(A>=g||A<0)break;const e=A+1;let i=A;if(e<g&&this._queueLess(e,A)&&(i=e),!this._queueLess(i,I))break;this._queueSwap(I,i),I=i}return I>A}}function Fg(A,g,I,e){const i=function(A){const g=new Map,I=(A,I)=>{const e=Math.min(A,I),i=Math.max(A,I),t=BigInt(e)<<32n|BigInt(i);g.has(t)?g.delete(t):g.set(t,[A,I])};for(let g=0;g<A.length;g+=3){const e=A[g],i=A[g+1],t=A[g+2];I(e,i),I(i,t),I(t,e)}return Array.from(g.values())}(g),t=new A.POSITION.value.constructor(6*i.length),C=new A.TEXCOORD_0.value.constructor(4*i.length),Q=new g.constructor(6*i.length);for(let g=0;g<i.length;g++){kg({edge:i[g],edgeIndex:g,attributes:A,skirtHeight:I,newPosition:t,newTexcoord0:C,newTriangles:Q})}A.POSITION.value=B.concatenateTypedArrays(A.POSITION.value,t),A.TEXCOORD_0.value=B.concatenateTypedArrays(A.TEXCOORD_0.value,C);return{attributes:A,triangles:g instanceof Array?g.concat(Q):B.concatenateTypedArrays(g,Q)}}function kg({edge:A,edgeIndex:g,attributes:I,skirtHeight:e,newPosition:i,newTexcoord0:t,newTriangles:B}){const C=I.POSITION.value.length,Q=2*g,s=2*g+1;i.set(I.POSITION.value.subarray(3*A[0],3*A[0]+3),3*Q),i[3*Q+2]=i[3*Q+2]-e,i.set(I.POSITION.value.subarray(3*A[1],3*A[1]+3),3*s),i[3*s+2]=i[3*s+2]-e,t.set(I.TEXCOORD_0.value.subarray(2*A[0],2*A[0]+2),2*Q),t.set(I.TEXCOORD_0.value.subarray(2*A[1],2*A[1]+2),2*s);const E=2*g*3;B[E]=A[0],B[E+1]=C/3+s,B[E+2]=A[1],B[E+3]=C/3+s,B[E+4]=A[0],B[E+5]=C/3+Q}function Rg(A,g,I,e,i){return I===g?e:(A-g)*(i-e)/(I-g)+e}function Lg(A){return Math.fround(A)}function Ug(A,g){if(null==g)return!1;const I=Lg(A),e=Lg(g);return Number.isNaN(e)?Number.isNaN(I):I===e}class pg{static _swissColorLUTCache=new Map;static _8bitLUTCache=new Map;static _floatLUTCache=new Map;static getLUTCacheKey(A,g,I,e){return`${g}_${I}_${e}_${JSON.stringify(A.colorScale)}_${A.useSingleColor}_${JSON.stringify(A.color)}_${A.useColorClasses}_${JSON.stringify(A.colorClasses)}_${A.useColorsBasedOnValues}_${JSON.stringify(A.colorsBasedOnValues)}_${A.useHeatMap}_${A.clipLow??""}_${A.clipHigh??""}_${JSON.stringify(A.clippedColor)}_${JSON.stringify(A.nullColor)}_${JSON.stringify(A.unidentifiedColor)}`}static async generate(A,g){const I={...g},{rasters:e,width:i,height:t}=A,B=1===e.length,C=document.createElement("canvas");C.width=i,C.height=t;const Q=C.getContext("2d"),s=Q.createImageData(i,t),E=i*t*4,a=Math.floor(2.55*I.alpha);I.unidentifiedColor=this.getColorFromChromaType(I.unidentifiedColor,a),I.nullColor=this.getColorFromChromaType(I.nullColor,a),I.clippedColor=this.getColorFromChromaType(I.clippedColor,a),I.color=this.getColorFromChromaType(I.color,a),I.useChannelIndex??=null==I.useChannel?null:I.useChannel-1;const o=I.numOfChannels??(1===e.length?e[0].length/(i*t):e.length);if(I.useReliefGlaze)if(e.length>=1)s.data.set(this.getReliefGlazeRGBA(e,I,E));else{const A=new Uint8ClampedArray(E);A.fill(0),s.data.set(A)}else if(I.useSwissRelief)if(2===e.length)s.data.set(this.getColorValue(e,I,E));else{this.getDefaultColor(E,I.nullColor).forEach((A,g)=>{s.data[g]=A})}else if(null==I.useChannelIndex)if(B){const A=e[0].length/(i*t);if(1===A)I.useAutoRange&&(I.colorScaleValueRange=this.getMinMax(e[0],I)),s.data.set(this.getColorValue(e[0],I,E));else if(3===A||4===A){let g=0;for(let i=0;i<E;i+=4){const t=[e[0][g],e[0][g+1],e[0][g+2]],B=this.hasPixelsNoData(t,I.noDataValue);s.data[i]=B?I.nullColor[0]:t[0],s.data[i+1]=B?I.nullColor[1]:t[1],s.data[i+2]=B?I.nullColor[2]:t[2],s.data[i+3]=B?I.nullColor[3]:4===A?e[0][g+3]:a,g+=A}}}else{let A=0;for(let g=0;g<E;g+=4)s.data[g]=e[0][A],s.data[g+1]=e[1][A],s.data[g+2]=e[2][A],s.data[g+3]=4===e.length?e[3][A]:a,A++}else if(I.useChannelIndex<o&&I.useChannelIndex>=0){const A=1===e.length&&o>1,g=A?e[0]:e[I.useChannelIndex]??e[0],i=A?o:1;I.useAutoRange&&(I.colorScaleValueRange=this.getMinMax(g,I,i)),s.data.set(this.getColorValue(g,I,E,i))}else{console.log(`Defined channel(${g.useChannel}) or channel index(${g.useChannelIndex}) does not exist, choose a different channel or set the useChannel property to null if you want to visualize RGB(A) imagery`);this.getDefaultColor(E,I.nullColor).forEach((A,g)=>{s.data[g]=A})}Q.putImageData(s,0,0);return{map:await createImageBitmap(C),raw:e[0],width:i,height:t}}static getColorValue(A,g,I,e=1){const t=i.scale(g.colorScale?.map(A=>Array.isArray(A)?i(A):A)).domain(g.colorScaleValueRange??[0,255]),B=new Uint8ClampedArray(I),C=Math.floor(2.55*(g.alpha??100)),Q=g.colorScaleValueRange?.[0]??0,s=g.colorScaleValueRange?.[1]??255,E=Array.isArray(A),a=E?A[0]:A,o=g.useSwissRelief&&E&&A.length>=2,r=a instanceof Uint8Array||a instanceof Uint8ClampedArray,n=!r&&(a instanceof Float32Array||a instanceof Uint16Array||a instanceof Int16Array);if(o){const i=A[1],E=s-Q||1;let o=null;if(g.useHeatMap){const A=1024,I=`${Q}_${s}_${C}_${JSON.stringify(g.colorScale)}`;if(o=this._swissColorLUTCache.get(I)||null,!o){o=new Uint8ClampedArray(4*A);for(let g=0;g<A;g++){const I=t(Q+g/(A-1)*E).rgb();o[4*g]=I[0],o[4*g+1]=I[1],o[4*g+2]=I[2],o[4*g+3]=C}this._swissColorLUTCache.set(I,o)}}for(let A=0,s=g.useChannelIndex??0;A<I;A+=4,s+=e){const I=a[s],e=Ug(I,g.noDataValue);if(Number.isNaN(I)||e){B.set(g.nullColor,A);continue}let r;if(o){const A=(I-Q)/E,g=4*Math.min(1023,Math.max(0,Math.floor(1023*A)));r=[o[g],o[g+1],o[g+2],o[g+3]]}else r=this.calculateSingleColor(I,t,g,C);const n=.4+i[s]/255*.6;B[A]=Math.floor(r[0]*n),B[A+1]=Math.floor(r[1]*n),B[A+2]=Math.floor(r[2]*n),B[A+3]=r[3]}return B}if(r&&!g.useDataForOpacity){const A=g.useAutoRange?null:this.getLUTCacheKey(g,Q,s,C);let i=A?this._8bitLUTCache.get(A)??null:null;if(!i){i=new Uint8ClampedArray(1024);for(let A=0;A<256;A++)null!=g.clipLow&&A<=g.clipLow||null!=g.clipHigh&&A>=g.clipHigh?i.set(g.clippedColor,4*A):i.set(this.calculateSingleColor(A,t,g,C),4*A);A&&this._8bitLUTCache.set(A,i)}for(let A=0,t=g.useChannelIndex??0;A<I;A+=4,t+=e){const g=4*a[t];B[A]=i[g],B[A+1]=i[g+1],B[A+2]=i[g+2],B[A+3]=i[g+3]}return B}if(n&&g.useHeatMap&&!g.useSingleColor&&!g.useColorClasses&&!g.useColorsBasedOnValues&&!g.useDataForOpacity){const A=1024,i=s-Q||1,E=g.useAutoRange?null:this.getLUTCacheKey(g,Q,s,C);let o=E?this._floatLUTCache.get(E)??null:null;if(!o){o=new Uint8ClampedArray(4*A);for(let I=0;I<A;I++){const e=Q+I/(A-1)*i;if(null!=g.clipLow&&e<=g.clipLow||null!=g.clipHigh&&e>=g.clipHigh)o.set(g.clippedColor,4*I);else{const A=t(e).rgb();o[4*I]=A[0],o[4*I+1]=A[1],o[4*I+2]=A[2],o[4*I+3]=C}}E&&this._floatLUTCache.set(E,o)}for(let t=0,C=g.useChannelIndex??0;t<I;t+=4,C+=e){const I=a[C];if(this.isInvalid(I,g))B.set(this.getInvalidColor(I,g),t);else{const g=(I-Q)/i,e=4*Math.min(A-1,Math.max(0,Math.floor(g*(A-1))));B[t]=o[e],B[t+1]=o[e+1],B[t+2]=o[e+2],B[t+3]=o[e+3]}}return B}let h=g.useChannelIndex??0;for(let A=0;A<I;A+=4){const I=a[h];let i;i=null!=g.clipLow&&I<=g.clipLow||null!=g.clipHigh&&I>=g.clipHigh?g.clippedColor:this.calculateSingleColor(I,t,g,C),g.useDataForOpacity&&!this.isInvalid(I,g)&&(i[3]=Rg(I,Q,s,0,255)),B.set(i,A),h+=e}return B}static getReliefGlazeRGBA(A,g,I){const e=A[0],i=(g.maxGlazeAlpha??128)/255,t=new Uint8Array(256);for(let A=0;A<256;A++)if(0===A)t[A]=0;else{const g=Math.abs(A-128)/128,I=A<128?.6:.8;t[A]=Math.floor(255*Math.pow(g,I)*i)}const B=new Uint8ClampedArray(I);let C=0;for(let A=0;A<I;A+=4){const g=e[C],I=g<128?0:255,i=t[g];B[A]=I,B[A+1]=I,B[A+2]=I,B[A+3]=i,C++}return B}static calculateSingleColor(A,g,I,e){if(this.isInvalid(A,I))return I.nullColor;if(I.useSingleColor)return I.color;if(I.useColorClasses){const g=this.findClassIndex(A,I);return g>-1?[...i(Array.isArray(I.colorClasses[g][0])?i(I.colorClasses[g][0]):I.colorClasses[g][0]).rgb(),e]:I.unidentifiedColor}if(I.useColorsBasedOnValues){const g=I.colorsBasedOnValues?.find(([g])=>g===A);return g?[...i(Array.isArray(g[1])?i(g[1]):g[1]).rgb(),e]:I.unidentifiedColor}return I.useHeatMap?[...g(A).rgb(),e]:I.unidentifiedColor}static findClassIndex(A,g){if(!g.colorClasses)return-1;for(let I=0;I<g.colorClasses.length;I++){const[,[e,i],t]=g.colorClasses[I],[B,C]=t||(I===g.colorClasses.length-1?[!0,!0]:[!0,!1]);if((B?A>=e:A>e)&&(C?A<=i:A<i))return I}return-1}static getDefaultColor(A,g){const I=new Uint8ClampedArray(A);for(let e=0;e<A;e+=4)[I[e],I[e+1],I[e+2],I[e+3]]=g;return I}static isInvalid(A,g){return Number.isNaN(A)||Ug(A,g.noDataValue)}static getInvalidColor(A,g){return g.nullColor}static getMinMax(A,g,I=1){let e=-1/0,i=1/0;for(let t=g.useChannelIndex??0;t<A.length;t+=I){const I=A[t];this.isInvalid(I,g)||(I>e&&(e=I),I<i&&(i=I))}return e===-1/0?g.colorScaleValueRange||[0,255]:[i,e]}static getColorFromChromaType(A,g=255){return Array.isArray(A)&&4===A.length?A:[...i(A).rgb(),g]}static hasPixelsNoData(A,g){return void 0!==g&&A.every(A=>Ug(A,g))}}class Mg{static computeGradients(A,g,I,e,i,t,B,C,Q,s=!0){return{dzdx:(I+2*i+C-(A+2*e+t))*Q,dzdy:s?(A+2*g+I-(t+2*B+C))*Q:(t+2*B+C-(A+2*g+I))*Q}}static calculateSlope(A,g,I=1,e){const i=256,t=258,B=new Float32Array(65536),C=1/(8*g),Q=180/Math.PI;for(let g=0;g<i;g++)for(let s=0;s<i;s++){const E=g*t+s;if(Ug(A[E+t+1],e)){B[g*i+s]=NaN;continue}const a=A[E],o=A[E+1],r=A[E+2],n=A[E+t],h=A[E+t+2],l=A[E+516],c=A[E+516+1],D=A[E+516+2],{dzdx:w,dzdy:d}=this.computeGradients(a,o,r,n,h,l,c,D,C,!1),y=Math.atan(I*Math.sqrt(w*w+d*d));B[g*i+s]=y*Q}return B}static calculateHillshade(A,g,I=315,e=45,i=1,t){const B=256,C=258,Q=new Float32Array(65536),s=(90-e)*(Math.PI/180);let E=360-I+90;E>=360&&(E-=360);const a=E*(Math.PI/180),o=1/(8*g);for(let g=0;g<B;g++)for(let I=0;I<B;I++){const e=g*C+I;if(Ug(A[e+C+1],t)){Q[g*B+I]=NaN;continue}const E=A[e],r=A[e+1],n=A[e+2],h=A[e+C],l=A[e+C+2],c=A[e+516],D=A[e+516+1],w=A[e+516+2],{dzdx:d,dzdy:y}=this.computeGradients(E,r,n,h,l,c,D,w,o,!0),f=Math.atan(i*Math.sqrt(d*d+y*y)),u=Math.atan2(y,-d),S=255*(Math.cos(s)*Math.cos(f)+Math.sin(s)*Math.sin(f)*Math.cos(a-u));Q[g*B+I]=Math.max(0,Math.min(255,S))}return Q}static calculateMultiHillshade(A,g,I=1,e){const i=256,t=258,B=new Float32Array(65536),C=1/(8*g),Q=[{az:315,alt:45,weight:.6},{az:225,alt:35,weight:.25},{az:0,alt:35,weight:.15}].map(A=>{const g=(90-A.alt)*(Math.PI/180);let I=360-A.az+90;return I>=360&&(I-=360),{zCos:Math.cos(g),zSin:Math.sin(g),aRad:I*(Math.PI/180),w:A.weight}});for(let g=0;g<i;g++)for(let s=0;s<i;s++){const E=g*t+s;if(Ug(A[E+t+1],e)){B[g*i+s]=NaN;continue}const a=A[E],o=A[E+1],r=A[E+2],n=A[E+t],h=A[E+t+2],l=A[E+516],c=A[E+516+1],D=A[E+516+2],{dzdx:w,dzdy:d}=this.computeGradients(a,o,r,n,h,l,c,D,C,!0),y=Math.atan(I*Math.sqrt(w*w+d*d)),f=Math.atan2(d,-w),u=Math.cos(y),S=Math.sin(y);let G=0;for(const A of Q){const g=A.zCos*u+A.zSin*S*Math.cos(A.aRad-f);G+=Math.max(0,g)*A.w}B[g*i+s]=Math.min(255,255*G)}return B}}class Yg{static _swissReliefLUT=null;static _lastWeight=null;static getSwissReliefLUT(A=.5){if(this._swissReliefLUT&&this._lastWeight===A)return this._swissReliefLUT;const g=new Float32Array(65536);for(let I=0;I<256;I++){const e=I/255;for(let i=0;i<256;i++){const t=1-i/255*A;g[I<<8|i]=Math.max(.01,e*t)}}return this._swissReliefLUT=g,this._lastWeight=A,g}static composeSwissRelief(A,g,I,e,i){const t=g.swissSlopeWeight??.5,B=Mg.calculateSlope(A,I,g.zFactor??1,g.noDataValue),C=Mg.calculateMultiHillshade(A,I,g.zFactor??1,g.noDataValue),Q=this.getSwissReliefLUT(t),s=new Uint8ClampedArray(e*i),E=255/90;for(let A=0;A<e*i;A++){if(isNaN(B[A])){s[A]=0;continue}const g=Math.max(0,Math.min(255,B[A]*E|0)),I=0|Math.max(0,Math.min(255,C[A]));s[A]=Math.max(1,255*Q[I<<8|g]|0)}return s}}class mg{static async generate(A,g,I){const{width:e,height:i}=A,B=258===e,C=this.computeTerrainData(A,g),Q=B?this.extractMeshRaster(C):C,s=B?257:e,E=B?257:i,{terrainSkirtHeight:a,verticalExaggeration:o=1}=g;let r;switch(g.tesselator){case"martini":default:r=this.getMartiniTileMesh(I,s,Q);break;case"delatin":r=this.getDelatinTileMesh(I,s,E,Q)}const{vertices:n}=r;let{triangles:h}=r,l=this.getMeshAttributes(n,Q,s,E,A.bounds,o);const c=t.getMeshBoundingBox(l);if(a){const A=a*o;if(A>0){const{attributes:g,triangles:I}=Fg(l,h,A);l=g,h=I}}const D=257===s?257:s+1,w=257===E?257:E+1,d={map:{loaderData:{header:{}},header:{vertexCount:h.length,boundingBox:c},mode:4,indices:{value:Uint32Array.from(h),size:1},attributes:l},raw:Q,width:D,height:w},y=!!g.skipTexture;if(B&&g.useSwissRelief){const I=A.cellSizeMeters??(A.bounds[2]-A.bounds[0])/256,e=this.preserveNoDataForKernel(C,A.rasters[0],g.noDataValue),i=Yg.composeSwissRelief(e,g,I,256,256);if(d.rawDerived=i,!y&&this.hasVisualizationOptions(g)){const A=this.cropRaster(Q,D,w,256,256),I=await pg.generate({width:256,height:256,rasters:[A,i]},{...g,type:"image"});d.texture=I.map}}else if(B&&(g.useSlope||g.useHillshade)){const I=A.cellSizeMeters??(A.bounds[2]-A.bounds[0])/256,e=g.zFactor??1;g.useSlope&&g.useHillshade&&console.warn("[TerrainGenerator] useSlope and useHillshade are mutually exclusive; useSlope takes precedence.");const i=this.preserveNoDataForKernel(C,A.rasters[0],g.noDataValue);let t;if(t=g.useSlope?Mg.calculateSlope(i,I,e,g.noDataValue):Mg.calculateHillshade(i,I,g.hillshadeAzimuth??315,g.hillshadeAltitude??45,e,g.noDataValue),d.rawDerived=t,!y&&this.hasVisualizationOptions(g)){const A=await pg.generate({width:256,height:256,rasters:[t]},{...g,type:"image"});d.texture=A.map}}else if(!y&&this.hasVisualizationOptions(g)){const I=g.multiplier??1,e=g.noDataValue,i=A.rasters[0],t=A.width,B=A.height,C=Math.max(1,Math.round(i.length/(t*B))),Q=g.useChannelIndex??(null!=g.useChannel?g.useChannel-1:0),s=new Float32Array(65536);for(let A=0;A<256;A++)for(let g=0;g<256;g++){const E=Math.min(g,t-1),a=i[(Math.min(A,B-1)*t+E)*C+Q],o=Ug(a,e);s[256*A+g]=o?e*I:a*I}const E={...g,type:"image",useChannelIndex:0,numOfChannels:1,noDataValue:void 0!==e?e*I:void 0},a=await pg.generate({width:256,height:256,rasters:[s]},E);d.texture=a.map}return d}static extractMeshRaster(A){const g=257,I=new Float32Array(66049);for(let e=0;e<g;e++)for(let i=0;i<g;i++)I[e*g+i]=A[258*(e+1)+(i+1)];return I}static hasVisualizationOptions(A){return!!(A.useSingleColor||A.useHeatMap||A.useSwissRelief||A.useColorsBasedOnValues||A.useColorClasses)}static preserveNoDataForKernel(A,g,I){const e=new Float32Array(A.length);if(null!=I&&g&&g.length===A.length)for(let i=0;i<A.length;i++){const t=Ug(g[i],I);e[i]=t?I:A[i]}else e.set(A);return e}static cropRaster(A,g,I,e,i){const t=new Float32Array(e*i);for(let I=0;I<i;I++)for(let i=0;i<e;i++)t[I*e+i]=A[I*g+i];return t}static computeTerrainData(A,g){const{width:I,height:e,rasters:i}=A,t={...g};t.useChannelIndex??=null==t.useChannel?null:t.useChannel-1;const B=i.length>1,C=B?i[t.useChannelIndex??0]??i[0]:i[0],Q=258===I,s=257===I,E=new Float32Array((Q?258:s?257:I+1)*(Q?258:s?257:e+1)),a=B?1:C.length/(I*e);let o=B?0:t.useChannelIndex??0;const r=g.terrainMinValue??0;for(let A=0;A<e;A++)for(let e=0;e<I;e++){const i=g.multiplier??1;let t=Ug(C[o],g.noDataValue)?r:C[o]*i;(Number.isNaN(t)||t<-34e37||t>34e37)&&(t=r);E[Q||s?A*I+e:A*(I+1)+e]=t,o+=a}if(!Q&&!s){for(let A=(I+1)*I,g=0;g<I;g++,A++)E[A]=E[A-I-1];for(let A=e,g=0;g<e+1;g++,A+=e+1)E[A]=E[A-1]}return E}static getMartiniTileMesh(A,g,I){const e=new ug(257===g?257:g+1).createTile(I),{vertices:i,triangles:t}=e.getMesh(A);return{vertices:i,triangles:t}}static getDelatinTileMesh(A,g,I,e){const i=new Ng(e,257===g?257:g+1,257===I?257:I+1);i.run(A);const{coords:t,triangles:B}=i;return{vertices:t,triangles:B}}static getMeshAttributes(A,g,I,e,i,t=1){const B=257===I?257:I+1,C=A.length/2,Q=new Float32Array(3*C),s=new Float32Array(2*C),[E,a,o,r]=i||[0,0,I,e],n=257===I?I-1:I,h=257===e?e-1:e,l=(o-E)/n,c=(r-a)/h;for(let I=0;I<C;I++){const e=A[2*I],i=A[2*I+1],C=i*B+e;Q[3*I]=e*l+E,Q[3*I+1]=-i*c+r,Q[3*I+2]=g[C]*t,s[2*I]=e/n,s[2*I+1]=i/h}return{POSITION:{value:Q,size:3},TEXCOORD_0:{value:s,size:2}}}}class Kg{data;async setUrl(A){const g=await fetch(A),I=await g.arrayBuffer(),e=await yg(I),i=await e.getImage(0);this.data=i}async getMap(A,g,I){const e=Kg.resolveVisualizationMode({...fg,...g},g);switch(e.type){case"image":return this.getBitmap(A,e);case"terrain":return this.getHeightmap(A,e,I);default:return null}}static resolveVisualizationMode(A,g){const I=["useSingleColor","useColorClasses","useColorsBasedOnValues","useHeatMap"],e=I.filter(A=>!0===g[A]),i={...A};if(e.length>0){for(const A of I)i[A]=!1;for(const A of e)i[A]=!0}else if("terrain"===A.type){(g.useSwissRelief||g.useSlope||g.useHillshade)&&!A.skipTexture||(i.useHeatMap=!1,i.useSingleColor=!0,i.color=A.terrainColor)}return i}async getHeightmap(A,g,I){let e,i,t,B,C=[];return"string"==typeof A?(await this.setUrl(A),C=await this.data.readRasters(),e=this.data.getWidth(),i=this.data.getHeight(),t=this.data.getBoundingBox()):(C=A.rasters,e=A.width,i=A.height,t=A.bounds,B=A.cellSizeMeters),await mg.generate({width:e,height:i,rasters:C,bounds:t,cellSizeMeters:B},g,I)}async getBitmap(A,g){let I,e,i=[];return"string"==typeof A?(await this.setUrl(A),i=await this.data.readRasters(),I=this.data.getWidth(),e=this.data.getHeight()):(i=A.rasters,I=A.width,e=A.height),pg.generate({width:I,height:e,rasters:i},g)}}const Hg=2*Math.PI*6378137,Jg=Hg/2,bg=[-20037508.342789244,20037508.342789244];function qg(A){const g=A[0],I=A[1],e=g/Jg*180;let i=I/Jg*180;return i=180/Math.PI*(2*Math.atan(Math.exp(i*Math.PI/180))-Math.PI/2),[e,i]}function xg(A,g,I){const e=function(A,g){return Math.round(Math.log2(Hg/(g*A)))}(A,g);return[e-(I-1),e]}class Tg{tileResultCache=new Map;tileResultCacheMaxSize;rasterCache=new Map;rasterCacheMaxSize;reliefMaskCache=new Map;reliefMaskCacheMaxSize;imageCache=new Map;constructor(A){this.tileResultCacheMaxSize=A?.tileResultCacheMaxSize??32,this.rasterCacheMaxSize=A?.rasterCacheMaxSize??64,this.reliefMaskCacheMaxSize=A?.reliefMaskCacheMaxSize??64}getTileResultCacheKey(A,g,I,e,i){return`${I}/${A}/${g}/${e}/${i?"1":"0"}`}getTileCacheKey(A,g,I){return`${I}/${A}/${g}`}getTileResult(A){const g=this.tileResultCache.get(A);if(g)return this.tileResultCache.delete(A),this.tileResultCache.set(A,g),g}setTileResult(A,g){if(this.tileResultCache.set(A,g),this.tileResultCache.size>this.tileResultCacheMaxSize){const A=this.tileResultCache.keys().next().value;if(A){const g=this.tileResultCache.get(A);g&&!g.settled&&g.controller.abort(),this.tileResultCache.delete(A)}}}deleteTileResult(A){return this.tileResultCache.delete(A)}clearTileResultCache(){for(const A of this.tileResultCache.values())A.settled||A.controller.abort();this.tileResultCache.clear()}getRaster(A){const g=this.rasterCache.get(A);if(g)return this.rasterCache.delete(A),this.rasterCache.set(A,g),g}setRaster(A,g){if(this.rasterCache.set(A,g),g.catch(()=>this.rasterCache.delete(A)),this.rasterCache.size>this.rasterCacheMaxSize){const A=this.rasterCache.keys().next().value;A&&this.rasterCache.delete(A)}}deleteRaster(A){return this.rasterCache.delete(A)}clearRasterCache(){this.rasterCache.clear()}getReliefMask(A){const g=this.reliefMaskCache.get(A);if(g)return this.reliefMaskCache.delete(A),this.reliefMaskCache.set(A,g),g}setReliefMask(A,g){if(this.reliefMaskCache.set(A,g),g.catch(()=>this.reliefMaskCache.delete(A)),this.reliefMaskCache.size>this.reliefMaskCacheMaxSize){const A=this.reliefMaskCache.keys().next().value;A&&this.reliefMaskCache.delete(A)}}deleteReliefMask(A){return this.reliefMaskCache.delete(A)}clearReliefMaskCache(){this.reliefMaskCache.clear()}getImage(A){return this.imageCache.get(A)}setImage(A,g){this.imageCache.set(A,g)}deleteImage(A){return this.imageCache.delete(A)}clearImageCache(){this.imageCache.clear()}clearAll(){this.clearTileResultCache(),this.clearRasterCache(),this.clearReliefMaskCache(),this.clearImageCache()}}class Og{options;tileSize;constructor(A){this.options=A.options,this.tileSize=A.tileSize}createEmptyTile(A){const g=A||this.tileSize,I=this.options.numOfChannels||1,e=new Float32Array(g*g*I);return void 0!==this.options.noDataValue&&e.fill(this.options.noDataValue),e}createTileBuffer(A,g,I=1){const e=g*g*I;switch(A){case"UInt8":return new Uint8Array(e);case"Int8":return new Int8Array(e);case"UInt16":return new Uint16Array(e);case"Int16":return new Int16Array(e);case"UInt32":return new Uint32Array(e);case"Int32":return new Int32Array(e);case"Float32":return new Float32Array(e);case"Float64":return new Float64Array(e);default:return console.warn(`Unsupported data type: ${A}, defaulting to Float32`),new Float32Array(e)}}}const Pg=new Map,vg={blurredTexture:!0,debugTileStats:!1};class Vg{cog;cogZoomLookup=[];cogResolutionLookup=[];cogMeshMaxErrorLookup=[];cogOrigin=[0,0];zoomRange=[0,0];tileSize=256;bounds=[0,0,0,0];bandDescriptions=[];geo=new Kg;options;cache=new Tg;tileReader;initializePromise;lastInitializedUrl;constructor(A){this.options={...vg,...A}}async initializeCog(A){if(this.initializePromise&&(!this.cog||this.lastInitializedUrl===A))return this.initializePromise;if(void 0!==this.lastInitializedUrl&&this.lastInitializedUrl!==A){this.cache.clearAll();const A=[];Pg.forEach((g,I)=>{I.startsWith(this.lastInitializedUrl)&&A.push(I)}),A.forEach(A=>Pg.delete(A)),this.cog=void 0,this.cogOrigin=[0,0],this.cogZoomLookup=[],this.cogResolutionLookup=[],this.cogMeshMaxErrorLookup=[],this.tileSize=256,this.zoomRange=[0,0],this.bounds=[0,0,0,0],this.bandDescriptions=[],this.initializePromise=void 0,this.lastInitializedUrl=void 0}return this.cog&&this.lastInitializedUrl===A?this.initializePromise??Promise.resolve():(this.initializePromise=(async()=>{try{const g=this.options.blockSize??65536;this.cog=await async function(A,g={},I){return dg.fromSource(Bg(A,g),void 0,I)}(A,{blockSize:g});const I=this.cog.getImage();this.cache.setImage(0,I);const e=await I,i=e.fileDirectory;this.cogOrigin=e.getOrigin(),this.options.noDataValue??=function(A){const g=A.getGDALNoData();if(null==g)return void console.warn("No noData value defined — raster might be rendered incorrectly.");const I=String(g).replace(/\0/g,"").trim();if(""===I)return void console.warn("noData value is an empty string after cleanup.");const e=Number(I);return"nan"===I.toLowerCase()?NaN:Number.isNaN(e)?void console.warn(`Failed to parse numeric noData value: '${I}'`):e}(e),this.options.format??=await async function(A){const g=A.hasTag("SampleFormat"),I=A.hasTag("BitsPerSample");if(!g||!I)return console.warn("Missing SampleFormat or BitsPerSample tags, defaulting to UInt8"),"UInt8";const e=A.getValue("SampleFormat"),i=A.getValue("BitsPerSample"),t=e&&"number"==typeof e.length&&e.length>0?e[0]:e;let B;return B=1===t?"UInt":2===t?"Int":3===t?"Float":"Unknown",`${B}${i&&"number"==typeof i.length&&i.length>0?i[0]:i}`}(i),this.options.numOfChannels=i.getValue("SamplesPerPixel"),this.options.planarConfig=i.getValue("PlanarConfiguration");const t=this.options.numOfChannels??1,B=Array(t).fill("");if(e.fileDirectory.hasTag("GDAL_METADATA")){const A=await e.fileDirectory.loadValue("GDAL_METADATA"),g=/<Item[^>]*name="DESCRIPTION"[^>]*sample="(\d+)"[^>]*>([^<]*)<\/Item>/g;let I;for(;null!==(I=g.exec(A));){const A=parseInt(I[1],10),g=I[2];A<t&&(B[A]=g)}B.every(A=>""===A)&&console.debug("[CogTiles] GDAL_METADATA present but no DESCRIPTION items found")}if(this.bandDescriptions=B,[this.cogZoomLookup,this.cogResolutionLookup]=await async function(A){const g=await A.getImageCount(),I=await A.getImage(0),e=I.getResolution()[0],i=I.getWidth(),t=[],B=[];for(let I=0;I<g;I++){const g=e*(i/(await A.getImage(I)).getWidth()),C=Math.round(Math.log2(156543.03125/g));t[I]=C,B[I]=g}return[t,B]}(this.cog),"terrain"===this.options.type&&this.computeMeshMaxErrorLookup(),this.tileSize=e.getTileWidth(),!this.tileSize||!e.getTileHeight())throw new Error('GeoTIFF Error: The provided image is not tiled. Please use "rio cogeo create --web-optimized" to fix this.');this.zoomRange=xg(this.tileSize,e.getResolution()[0],await this.cog.getImageCount()),this.bounds=function(A){const g=Math.min(A[0],A[2]),I=Math.max(A[0],A[2]),e=Math.min(A[1],A[3]),i=Math.max(A[1],A[3]),t=qg([g,e]),B=qg([I,i]);return[t[0],t[1],B[0],B[1]]}(e.getBoundingBox()),this.tileReader=new Og({options:this.options,tileSize:this.tileSize}),this.lastInitializedUrl=A}catch(g){throw this.initializePromise=void 0,console.error(`[CogTiles] Failed to initialize COG from ${A}:`,g),g}})(),this.initializePromise)}getZoomRange(){return this.zoomRange}getBoundsAsLatLon(){return this.bounds}getNumChannels(){return this.options.numOfChannels||1}getBandDescriptions(){return this.bandDescriptions}getMeshMaxErrorForImageIndex(A){return this.cogMeshMaxErrorLookup[A]}computeMeshMaxErrorLookup(){const A=this.cogZoomLookup[this.cogZoomLookup.length-1],g=this.cogZoomLookup[0];this.cogMeshMaxErrorLookup=this.cogResolutionLookup.map((I,e)=>function(A,g,I,e){const i=function(A,g,I){return A>=I?.5:A<=g?3:3-(A-g)/(I-g)*2.5}(A,I,e),t=g*i;return Math.round(Math.max(.5,Math.min(100,t)))}(this.cogZoomLookup[e],I,A,g))}getImageIndexForZoomLevel(A){return function(A,g){const I=g[g.length-1];if(A>g[0])return 0;if(A<I)return g.length-1;const e=g.indexOf(A);if(-1!==e)return e;let i=0,t=Math.abs(g[0]-A);for(let I=1;I<g.length;I+=1){const e=Math.abs(g[I]-A);e<t&&(t=e,i=I)}return i}(A,this.cogZoomLookup)}async getTileFromImage(A,g,I,e,i){const t=new AbortController;i&&!i.aborted&&i.addEventListener("abort",()=>t.abort(),{once:!0});const B=t.signal;try{const i=this.getImageIndexForZoomLevel(I);let t=this.cache.getImage(i);t||(t=this.cog.getImage(i),this.cache.setImage(i,t));const C=await t,Q=this.cogResolutionLookup[i],s=C.getHeight(),E=C.getWidth(),[a,o]=this.cogOrigin,r=this.tileSize,n=Hg/r/2**I,h=(bg[0]+A*r*n-a)/Q,l=(o-(bg[1]-g*r*n))/Q,c=e||r,D=Math.round(h),w=Math.round(l),d=D+c,y=w+c,f=Math.max(0,D),u=Math.max(0,w),S=Math.min(E,d),G=Math.min(s,y),N=S-f,F=G-u;if(N<=0||F<=0)return[this.tileReader.createEmptyTile(c)];const k=f-D,R=u-w,L=[f,u,S,G];if(k>0||R>0||N<c||F<c){const A=this.options.numOfChannels||1,g=this.tileReader.createTileBuffer(this.options.format||"Float32",c,A);void 0!==this.options.noDataValue&&g.fill(this.options.noDataValue);const I=await C.readRasters({window:L,signal:B});for(let e=0;e<I.length;e+=1){const i=this.tileReader.createTileBuffer(this.options.format||"Float32",c);void 0!==this.options.noDataValue&&i.fill(this.options.noDataValue);for(let A=0;A<F;A+=1){const g=R+A,t=g*c,B=A*I.width;for(let A=0;A<N;A+=1){const C=k+A;g<c&&C<c?i[t+C]=I[e][B+A]:console.error(`[CogTiles] tile buffer bounds exceeded: destRow ${g}, destCol ${C}, FETCH_SIZE ${c}`)}}for(let I=0;I<i.length;I+=1)g[I*A+e]=i[I]}return[g]}return[await C.readRasters({window:L,interleave:!0,signal:B})]}catch(A){if(A instanceof AggregateError&&1===A.errors.length){const g=A.errors[0];if(g instanceof DOMException&&"AbortError"===g.name)throw g;if(g instanceof Error&&"Request was aborted"===g.message)throw new DOMException("Tile request aborted","AbortError");throw g}if(B.aborted||A instanceof DOMException&&"AbortError"===A.name||A instanceof Error&&"Request was aborted"===A.message)throw new DOMException("Tile request aborted","AbortError");if(A instanceof AggregateError){if(A.errors.some(A=>A instanceof DOMException&&"AbortError"===A.name||A instanceof Error&&"Request was aborted"===A.message))throw new DOMException("Tile request aborted","AbortError")}throw A}}async getTile(A,g,I,e,i,t,B){const C=Math.atan(Math.sinh(Math.PI*(1-2*(g+.5)/Math.pow(2,I)))),Q=Hg/Math.pow(2,I)*Math.cos(C)/this.tileSize,s="terrain"===this.options.type,E="image"===this.options.type&&this.options.useReliefGlaze;let a=i;if(!s||i&&0!==i)a=i??4;else{const A=this.getImageIndexForZoomLevel(I);a=this.getMeshMaxErrorForImageIndex(A)??4}return s?this.getTerrainTile(A,g,I,e,a,Q,t,B):E?this.getGlazeTile(A,g,I,e,Q,i,t):this.getBitmapTile(A,g,I,e,Q,i,t)}async getTerrainTile(A,g,I,e,i,t,B,C){const Q=C??this.options.skipTexture??!1;if(this.options.cacheAllBands){if(B?.aborted)return null;const t=this.options.useChannel||1,C=`${this.lastInitializedUrl}_${I}_${A}_${g}_${i}_${Q}_band_${t}`;if(Pg.has(C)){const A=Pg.get(C);if(A)return A}try{const C=await this.getTileAllBands(A,g,I,i,void 0,e);if(C&&C.length>0){if(B?.aborted)return null;C.forEach((e,t)=>{const B=t+1,C=`${this.lastInitializedUrl}_${I}_${A}_${g}_${i}_${Q}_band_${B}`;Pg.set(C,e)});const e=(t||1)-1;return e<0||e>=C.length?(console.error(`[CogTiles] Requested band index ${e} out of range (0-${C.length-1})`),null):C[e]}}catch(A){console.warn("[CogTiles] Multi-band fetch failed, falling back to single-band:",A)}}const s=this.cache.getTileResultCacheKey(A,g,I,i,Q),E=this.cache.getTileResult(s);if(E){if(E.settled)return B?.aborted?null:E.promise;E.callerCount+=1,B&&!B.aborted&&B.addEventListener("abort",()=>{E.callerCount-=1,E.callerCount<=0&&!E.settled&&E.controller.abort()},{once:!0});const A=await E.promise;return B?.aborted?null:A}const a=new AbortController,o=(async()=>{const B=this.options.useSlope||this.options.useHillshade||this.options.useSwissRelief,C=this.tileSize+(B?2:1),E=await this.getTileFromImage(A,g,I,C,a.signal),o=E[0],r=this.options.noDataValue;if(void 0!==r&&o){const A=this.options.numOfChannels||1;let g=this.options.useChannelIndex??(this.options.useChannel?this.options.useChannel-1:0);null==g&&(g=0);const I=this.options.noDataCheck??"full",e=C,i=C,t=A=>Ug(A,r);let B=!0;if("full"===I)if(A>1)for(let I=g;I<o.length;I+=A){if(!t(o[I])){B=!1;break}}else for(let A=0;A<o.length;A++){if(!t(o[A])){B=!1;break}}else if("border+center"===I){const I=A;for(let A=0;A<e;A++){if(!t(o[A*I+g])){B=!1;break}}if(B)for(let A=0;A<e;A++){if(!t(o[((i-1)*e+A)*I+g])){B=!1;break}}if(B)for(let A=1;A<i-1;A++){const i=(A*e+(e-1))*I+g,C=o[A*e*I+g],Q=o[i];if(!t(C)||!t(Q)){B=!1;break}}if(B){const A=[[Math.floor(e/2),Math.floor(i/2)],[Math.floor(e/4),Math.floor(i/4)],[Math.floor(3*e/4),Math.floor(i/4)],[Math.floor(e/4),Math.floor(3*i/4)],[Math.floor(3*e/4),Math.floor(3*i/4)]];for(const[i,C]of A){if(!t(o[(C*e+i)*I+g])){B=!1;break}}}}else for(let A=0;A<o.length;A++){if(!t(o[A])){B=!1;break}}if(B)return this.cache.deleteTileResult(s),null}const n={...this.options,skipTexture:Q};return this.geo.getMap({rasters:[E[0]],width:C,height:C,bounds:e??[0,0,0,0],cellSizeMeters:t},n,i)})(),r={promise:o,controller:a,callerCount:1,settled:!1};B&&!B.aborted&&B.addEventListener("abort",()=>{r.callerCount-=1,r.callerCount<=0&&!r.settled&&r.controller.abort()},{once:!0}),r.promise=o,this.cache.setTileResult(s,r);try{const A=await o;return r.settled=!0,B?.aborted?null:A}catch(A){throw r.settled=!0,this.cache.deleteTileResult(s),A}}async getGlazeTile(A,g,I,e,i,t,B){const C=this.cache.getTileCacheKey(A,g,I);let Q=this.cache.getReliefMask(C);if(!Q){const e=new AbortController;Q=(async()=>{const t=await this.getTileFromImage(A,g,I,this.tileSize+2,e.signal);return Yg.composeSwissRelief(t[0],this.options,i,this.tileSize,this.tileSize)})(),this.cache.setReliefMask(C,Q),Q.catch(()=>this.cache.deleteReliefMask(C))}if(B?.aborted)return null;const s=await Q;return B?.aborted?null:this.geo.getMap({rasters:[s],width:this.tileSize,height:this.tileSize,bounds:e??[0,0,0,0],cellSizeMeters:i},this.options,t??4)}async getBitmapTile(A,g,I,e,i,t,B){const C=this.cache.getTileCacheKey(A,g,I);let Q=this.cache.getRaster(C);if(!Q){const e=new AbortController;Q=this.getTileFromImage(A,g,I,this.tileSize,e.signal),this.cache.setRaster(C,Q),Q.catch(()=>this.cache.deleteRaster(C))}if(B?.aborted)return null;const s=await Q;return B?.aborted?null:this.geo.getMap({rasters:[s[0]],width:this.tileSize,height:this.tileSize,bounds:e??[0,0,0,0],cellSizeMeters:i},this.options,t??4)}async getTileAllBands(A,g,I,e,i,t){if(!this.cog)return[];const B=Math.atan(Math.sinh(Math.PI*(1-2*(g+.5)/Math.pow(2,I)))),C=Hg/Math.pow(2,I)*Math.cos(B)/this.tileSize;let Q;if(e&&0!==e)Q=e;else{const A=this.getImageIndexForZoomLevel(I);Q=this.getMeshMaxErrorForImageIndex(A)??4}const s=new AbortController;i&&!i.aborted&&i.addEventListener("abort",()=>s.abort(),{once:!0});const E=s.signal;try{const e=this.getImageIndexForZoomLevel(I);let B=this.cache.getImage(e);B||(B=this.cog.getImage(e),this.cache.setImage(e,B));const s=await B,a=this.cogResolutionLookup[e],o=s.getHeight(),r=s.getWidth(),[n,h]=this.cogOrigin,l=this.tileSize,c=bg[0],D=bg[1],w=this.options.useSlope||this.options.useHillshade||this.options.useSwissRelief,d=this.tileSize+(w?2:1),y=Hg/l/2**I,f=(c+A*l*y-n)/a,u=(h-(D-g*l*y))/a,S=Math.round(f),G=Math.round(u),N=S+d,F=G+d,k=Math.max(0,S),R=Math.max(0,G),L=Math.min(r,N),U=Math.min(o,F),p=L-k,M=U-R;if(p<=0||M<=0)return[];const Y=k-S,m=R-G,K=[k,R,L,U],H=await s.readRasters({window:K,signal:E});if(i?.aborted)return[];const J=[],b=H.length;for(let A=0;A<b;A+=1){const g=H[A],I=this.tileReader.createTileBuffer(this.options.format||"Float32",d);void 0!==this.options.noDataValue&&I.fill(this.options.noDataValue);for(let A=0;A<M;A+=1){const e=m+A,i=e*d,t=A*p;for(let A=0;A<p;A+=1){const B=Y+A;e<d&&B<d&&(I[i+B]=g[t+A])}}const e={...this.options,useChannel:1,useChannelIndex:0,numOfChannels:1},i=await this.geo.getMap({rasters:[I],width:d,height:d,bounds:t??[0,0,0,0],cellSizeMeters:C},e,Q);i&&J.push(i)}return J}catch(A){return i?.aborted||console.error("[CogTiles.getTileAllBands] Error fetching all bands:",A),[]}}clearTileResultCache(){this.cache.clearTileResultCache()}}const Zg={type:"object",value:null,validate:(A,g)=>g.optional&&null===A||"string"==typeof A||Array.isArray(A)&&A.every(A=>"string"==typeof A),equal:(A,g)=>{if(A===g)return!0;if(!Array.isArray(A)||!Array.isArray(g))return!1;const I=A.length;if(I!==g.length)return!1;for(let e=0;e<I;e++)if(A[e]!==g[e])return!1;return!0}},zg={...g.TileLayer.defaultProps,bounds:{type:"array",value:null,optional:!0,compare:!0},rasterData:Zg,clampToTerrain:!1,workerUrl:""};class jg extends A.CompositeLayer{static defaultProps=zg;static layerName="CogBitmapLayer";async initializeState(A){super.initializeState(A),this.setState({bitmapCogTiles:this.props.cogTiles||new Vg(this.props.cogBitmapOptions),initialized:!1}),await this.init()}async init(){await this.state.bitmapCogTiles.initializeCog(this.props.rasterData);const A=this.state.bitmapCogTiles.getZoomRange(),[g,I]=A;this.setState({initialized:!0,minZoom:g,maxZoom:I})}updateState({props:g,oldProps:I}){const e=g.rasterData!==I.rasterData;if(e){const{rasterData:A}=g,I=A&&(Array.isArray(A)||A.includes("{x}")&&A.includes("{y}")||this.props.isTiled);this.setState({isTiled:I})}e||(g.bounds,I.bounds);this.state.isTiled,g?.cogBitmapOptions?.useChannel!==I.cogBitmapOptions?.useChannel&&(this.state.bitmapCogTiles.options.useChannel=g.cogBitmapOptions.useChannel,this.state.bitmapCogTiles.options.useChannelIndex=null),g.workerUrl&&A.log.removed("workerUrl","loadOptions.terrain.workerUrl")()}async getTiledBitmapData(A){let g;try{g=await this.state.bitmapCogTiles.getTile(A.index.x,A.index.y,A.index.z,void 0,void 0,A.signal)}catch(A){if(A instanceof DOMException&&"AbortError"===A.name)return null;throw A}return g&&!this.props.pickable&&(g.raw=null),g}renderSubLayers(A){const g=this.getSubLayerClass("image",I.BitmapLayer),{blurredTexture:i}=this.state.bitmapCogTiles.options,{clampToTerrain:t}=this.props,B="object"==typeof t&&null!==t&&"terrainDrawMode"in t,{data:C}=A;if(!C)return null;const{bbox:{west:Q,south:s,east:E,north:a}}=A.tile;return new g({...A,tileSize:this.state.bitmapCogTiles.tileSize},{data:[1],image:C.map,_instanced:!1,pickable:A.pickable,bounds:[Q,s,E,a],textureParameters:{minFilter:i?"linear":"nearest",magFilter:i?"linear":"nearest"},extensions:t?[new e._TerrainExtension]:[],...B?{terrainDrawMode:t.terrainDrawMode}:{}})}renderLayers(){const{clampToTerrain:A,maxRequests:I,onTileLoad:e,onTileUnload:i,onTileError:t,maxCacheSize:B,maxCacheByteSize:C,refinementStrategy:Q,cogBitmapOptions:s}=this.props;if(this.state.isTiled&&this.state.initialized){const{tileSize:E}=this.state.bitmapCogTiles;return new g.TileLayer(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledBitmapData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),pickable:this.props.pickable,onClick:this.props.onClick,updateTriggers:{getTileData:[A,s.useChannel]},extent:this.state.bitmapCogTiles.getBoundsAsLatLon(),tileSize:E,minZoom:this.state.minZoom,maxZoom:this.state.maxZoom,maxRequests:I,onTileLoad:e,onTileUnload:i,onTileError:t,maxCacheSize:B,maxCacheByteSize:C,refinementStrategy:Q})}return null}}const Wg={type:"object",value:null,validate:(A,g)=>g.optional&&null===A||"string"==typeof A||Array.isArray(A)&&A.every(A=>"string"==typeof A),equal:(A,g)=>{if(A===g)return!0;if(!Array.isArray(A)||!Array.isArray(g))return!1;const I=A.length;if(I!==g.length)return!1;for(let e=0;e<I;e++)if(A[e]!==g[e])return!1;return!0}},_g=[1],Xg={...g.TileLayer.defaultProps,elevationData:Wg,texture:{...Wg,optional:!0},meshMaxError:{type:"object",value:"auto",validate:A=>"number"==typeof A||"auto"===A,equal:(A,g)=>A===g},bounds:{type:"array",value:null,optional:!0,compare:!0},color:{type:"color",value:[255,255,255]},elevationDecoder:{type:"object",value:{rScaler:1,gScaler:0,bScaler:0,offset:0}},workerUrl:"",wireframe:!1,material:!0};class $g extends A.CompositeLayer{static defaultProps=Xg;static layerName="CogTerrainLayer";terrainUrl="";async initializeState(A){super.initializeState(A);const g=this.props.cogTiles||new Vg(this.props.terrainOptions);if(this.setState({terrainCogTiles:g,initialized:!1}),g.cog){const A=g.getZoomRange(),[I,e]=A;this.setState({initialized:!0,minZoom:I,maxZoom:e})}else await this.init()}async init(){await this.state.terrainCogTiles.initializeCog(this.props.elevationData);const A=this.state.terrainCogTiles.getZoomRange(),[g,I]=A;this.setState({initialized:!0,minZoom:g,maxZoom:I})}updateState({props:g,oldProps:I}){const e=g.elevationData!==I.elevationData;if(e){const{elevationData:A}=g,I=A&&(Array.isArray(A)||A.includes("{x}")&&A.includes("{y}"))||this.props.isTiled;this.setState({isTiled:I})}e||g.meshMaxError!==I.meshMaxError||g.elevationDecoder!==I.elevationDecoder||(g.bounds,I.bounds);g.meshMaxError!==I.meshMaxError&&this.state.terrainCogTiles&&this.state.terrainCogTiles.clearTileResultCache(),this.state.isTiled,g?.terrainOptions?.useChannel!==I.terrainOptions?.useChannel&&this.state.terrainCogTiles&&(this.state.terrainCogTiles.options.useChannel=g.terrainOptions.useChannel,this.state.terrainCogTiles.options.useChannelIndex=null,this.state.terrainCogTiles.clearTileResultCache());const i=!(!g?.wireframe&&"terrain"!==g?.operation&&!g?.disableTexture);i!==!(!I?.wireframe&&"terrain"!==I?.operation&&!I?.disableTexture)&&this.state.terrainCogTiles&&(this.state.terrainCogTiles.options.skipTexture=i,this.state.terrainCogTiles.clearTileResultCache()),g.cogTiles&&g.cogTiles!==I.cogTiles&&this.setState({terrainCogTiles:g.cogTiles}),g.workerUrl&&A.log.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:A,bounds:g,elevationDecoder:I,meshMaxError:e,signal:i}){if(!A)return null;let t=this.getLoadOptions();t={...t,_workerType:"test",terrain:{skirtHeight:this.state.isTiled?2*e:0,...t?.terrain,bounds:g,meshMaxError:e,elevationDecoder:I}};const{fetch:B}=this.props;return B(A,{propName:"elevationData",layer:this,loadOptions:t,signal:i,loaders:[]})}async getTiledTerrainData(A){const{viewport:g}=this.context;let I=[0,0],e=[0,0];if(g.isGeospatial){const i=A.bbox;I=g.projectFlat([i.west,i.south]),e=g.projectFlat([i.east,i.north])}else{const g=A.bbox;I=[g.left,g.bottom],e=[g.right,g.top]}const i=[I[0],I[1],e[0],e[1]];let t=null;try{const g=!(!this.props.wireframe&&"terrain"!==this.props.operation&&!this.props.disableTexture),I="auto"===this.props.meshMaxError?void 0:this.props.meshMaxError;t=await this.state.terrainCogTiles.getTile(A.index.x,A.index.y,A.index.z,i,I,A.signal,g)}catch(A){if(A instanceof DOMException&&"AbortError"===A.name)return null;throw A}return t&&!this.props.pickable&&(t.raw=null),t?[t,null]:null}renderSubLayers(g){const I=this.getSubLayerClass("mesh",C.SimpleMeshLayer),{color:e,wireframe:i,terrainOptions:t}=this.props,{data:B}=g;if(!B)return null;const[Q]=B,s=!this.props.disableTexture&&Q?.texture?Q.texture:null,E=t?.useSwissRelief,a=t?.disableLighting,o=E||a?{material:{ambient:1,diffuse:0,shininess:0,specularColor:[0,0,0]}}:{material:this.props.material};return new I({...g,tileSize:g.tileSize},{...o,data:_g,mesh:Q?.map,texture:s,_instanced:!1,pickable:g.pickable,coordinateSystem:A.COORDINATE_SYSTEM.CARTESIAN,getColor:s?[255,255,255]:e,wireframe:i})}onViewportLoad(A){if(!A)return;const{zRange:g}=this.state,I=A.map(A=>A.content).filter(A=>!!A&&!!A[0]).map(A=>{if(!A||!A[0])return;const g=A[0]?.map?.header?.boundingBox;return g?.map(A=>A[2])}).filter(A=>void 0!==A);if(0===I.length)return;const e=Math.min(...I.map(A=>A?.[0]??0).filter(A=>Number.isFinite(A))),i=Math.max(...I.map(A=>A?.[1]??0).filter(A=>Number.isFinite(A)));(!g||e<g[0]||i>g[1])&&this.setState({zRange:[Number.isFinite(e)?e:0,Number.isFinite(i)?i:0]})}renderLayers(){const{elevationData:A,meshMaxError:I,elevationDecoder:e,tileSize:i,extent:t,maxRequests:B,onTileLoad:C,onTileUnload:Q,onTileError:s,maxCacheSize:E,maxCacheByteSize:a,refinementStrategy:o}=this.props;return this.state.isTiled&&this.state.initialized?new g.TileLayer(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),pickable:this.props.pickable,onClick:this.props.onClick,updateTriggers:{getTileData:{elevationData:(r=A,Array.isArray(r)?r.join(";"):r||""),meshMaxError:I,elevationDecoder:e,terrainCogTiles:this.state.terrainCogTiles,skipTexture:!(!this.props.wireframe&&"terrain"!==this.props.operation&&!this.props.disableTexture),useChannel:this.props.terrainOptions?.useChannel},renderSubLayers:{disableTexture:this.props.disableTexture,terrainOptions:this.props.terrainOptions}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:i,minZoom:this.state.minZoom,maxZoom:this.state.maxZoom,extent:t,maxRequests:B,onTileLoad:C,onTileUnload:Q,onTileError:s,maxCacheSize:E,maxCacheByteSize:a,refinementStrategy:o}):null;var r}}s();var AI=Object.freeze({__proto__:null,default:class extends lg{decodeBlock(A){return A}}});function gI(A,g){for(let I=g.length-1;I>=0;I--)A.push(g[I]);return A}function II(A){const g=new Uint16Array(4093),I=new Uint8Array(4093);for(let A=0;A<=257;A++)g[A]=4096,I[A]=A;let e=258,i=9,t=0;function B(){e=258,i=9}function C(A){const g=function(A,g,I){const e=g%8,i=Math.floor(g/8),t=8-e,B=g+I-8*(i+1);let C=8*(i+2)-(g+I);const Q=8*(i+2)-g;if(C=Math.max(0,C),i>=A.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),257;let s=A[i]&2**(8-e)-1;s<<=I-t;let E=s;if(i+1<A.length){let g=A[i+1]>>>C;g<<=Math.max(0,I-Q),E+=g}if(B>8&&i+2<A.length){const e=8*(i+3)-(g+I);E+=A[i+2]>>>e}return E}(A,t,i);return t+=i,g}function Q(A,i){return I[e]=i,g[e]=A,e++,e-1}function s(A){const e=[];for(let i=A;4096!==i;i=g[i])e.push(I[i]);return e}const E=[];B();const a=new Uint8Array(A);let o,r=C(a);for(;257!==r;){if(256===r){for(B(),r=C(a);256===r;)r=C(a);if(257===r)break;if(r>256)throw new Error(`corrupted code at scanline ${r}`);gI(E,s(r)),o=r}else if(r<e){const A=s(r);gI(E,A),void 0!==o&&Q(o,A[A.length-1]),o=r}else{if(void 0===o)throw new Error(`Invalid LZW code: ${r} with no previous code`);const A=s(o);if(!A)throw new Error(`Bogus entry. Not in dictionary, ${o} / ${e}, position: ${t}`);gI(E,A),E.push(A[A.length-1]),Q(o,A[A.length-1]),o=r}e+1>=2**i&&(12===i?o=void 0:i++),r=C(a)}return new Uint8Array(E)}var eI=Object.freeze({__proto__:null,default:class extends lg{decodeBlock(A){return II(A).buffer}}});const iI=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),tI=4017,BI=799,CI=3406,QI=2276,sI=1567,EI=3784,aI=5793,oI=2896;function rI(A,g){let I=0;const e=[];let i=16;for(;i>0&&!A[i-1];)--i;e.push({children:[],index:0});let t,B=e[0];for(let C=0;C<i;C++){for(let i=0;i<A[C];i++){if(B=e.pop(),!B)throw new Error("buildHuffmanTable: codeLength mismatch");for(B.children[B.index]=g[I];B.index>0;)if(B=e.pop(),!B)throw new Error("buildHuffmanTable: codeLength mismatch");for(B.index++,e.push(B);e.length<=C;)e.push(t={children:[],index:0}),B.children[B.index]=t.children,B=t;I++}C+1<i&&(e.push(t={children:[],index:0}),B.children[B.index]=t.children,B=t)}return e[0].children}function nI(A,g,I,e,i,t,B,C,Q){const{mcusPerLine:s,progressive:E}=I;if(e.length>1&&(void 0===s||void 0===I.mcusPerColumn))throw new Error("Missing MCU dimensions");if(1===e.length&&(void 0===e[0].blocksPerLine||void 0===e[0].blocksPerColumn))throw new Error("Missing block dimensions");const a=g;let o=g,r=0,n=0;function h(){if(n>0)return n--,r>>n&1;if(r=A[o++],255===r){const g=A[o++];if(g)throw new Error(`unexpected marker: ${(r<<8|g).toString(16)}`)}return n=7,r>>>7}function l(A){if(!A)throw new Error("Huffman table not found");let g,I=A;for(;null!==(g=h());){const A=I[g];if("number"==typeof A)return A;if("object"!=typeof A)throw new Error("invalid huffman sequence");I=A}return null}function c(A){let g=A,I=0;for(;g>0;){const A=h();if(null===A)return;I=I<<1|A,--g}return I}function D(A){const g=c(A);if(void 0!==g)return g>=1<<A-1?g:g+(-1<<A)+1}let w=0;let d,y=0;function f(A,g,I,e,i){const t=I%s,B=(I/s|0)*A.v+e,C=t*A.h+i;if(!A.blocks)throw new Error("Missing blocks");g(A,A.blocks[B][C])}function u(A,g,I){const e=I/A.blocksPerLine|0,i=I%A.blocksPerLine;if(!A.blocks)throw new Error("Missing blocks");g(A,A.blocks[e][i])}const S=e.length;let G,N,F,k,R,L;L=E?0===t?0===C?function(A,g){const I=l(A.huffmanTableDC);if(null===I)throw new Error("Huffman error");const e=D(I);if(void 0===e)throw new Error("Unexpected end of data in DC coefficient decoding");const i=0===I?0:e<<Q;void 0===A.pred&&(A.pred=0),A.pred+=i,g[0]=A.pred}:function(A,g){const I=h();if(null===I)throw new Error("Unexpected end of data in DC coefficient decoding");g[0]|=I<<Q}:0===C?function(A,g){if(w>0)return void w--;let I=t;const e=B;for(;I<=e;){const e=l(A.huffmanTableAC);if(null===e)throw new Error("Unexpected end of data in AC coefficient decoding");const i=15&e,t=e>>4;if(0===i){if(t<15){const A=c(t);if(void 0===A)throw new Error("Unexpected end of data in AC coefficient decoding");w=A+(1<<t)-1;break}I+=16}else{I+=t;const A=iI[I],e=D(i);if(void 0===e)throw new Error("Unexpected end of data in AC coefficient decoding");g[A]=e*(1<<Q),I++}}}:function(A,g){let I=t;const e=B;let i=0;for(;I<=e;){const e=iI[I],t=g[e]<0?-1:1;switch(y){case 0:{const g=l(A.huffmanTableAC);if(null===g)throw new Error("Unexpected end of data in AC coefficient decoding");const I=15&g;if(i=g>>4,0===I)if(i<15){const A=c(i);if(void 0===A)throw new Error("Unexpected end of data in AC coefficient decoding");w=A+(1<<i),y=4}else i=16,y=1;else{if(1!==I)throw new Error("invalid ACn encoding");const A=D(I);if(void 0===A)throw new Error("Unexpected end of data in AC coefficient decoding");d=A,y=i?2:3}continue}case 1:case 2:if(g[e]){const A=h();if(null===A)throw new Error("Unexpected end of data in AC coefficient decoding");g[e]+=(A<<Q)*t}else i--,0===i&&(y=2===y?3:0);break;case 3:if(g[e]){const A=h();if(null===A)throw new Error("Unexpected end of data in AC coefficient decoding");g[e]+=(A<<Q)*t}else g[e]=d<<Q,y=0;break;case 4:if(g[e]){const A=h();if(null===A)throw new Error("Unexpected end of data in AC coefficient decoding");g[e]+=(A<<Q)*t}}I++}4===y&&(w--,0===w&&(y=0))}:function(A,g){const I=l(A.huffmanTableDC);if(null===I)throw new Error("Huffman error");const e=0===I?0:D(I);if(void 0===e)throw new Error("Unexpected end of stream");void 0===A.pred&&(A.pred=0),A.pred+=e,g[0]=A.pred;let i=1;for(;i<64;){const I=l(A.huffmanTableAC);if(null===I)throw new Error("Unexpected end of data in AC coefficient decoding");const e=15&I,t=I>>4;if(0===e){if(t<15)break;i+=16}else{i+=t;const A=iI[i],I=D(e);if(void 0===I)throw new Error("Unexpected end of stream");g[A]=I,i++}}};let U,p,M=0;p=1===S?e[0].blocksPerLine*e[0].blocksPerColumn:s*I.mcusPerColumn;const Y=i||p;for(;M<p;){for(N=0;N<S;N++)e[N].pred=0;if(w=0,1===S)for(G=e[0],R=0;R<Y;R++)u(G,L,M),M++;else for(R=0;R<Y;R++){for(N=0;N<S;N++){G=e[N];const{h:A,v:g}=G;for(F=0;F<g;F++)for(k=0;k<A;k++)f(G,L,M,F,k)}if(M++,M===p)break}if(n=0,U=A[o]<<8|A[o+1],U<65280)throw new Error("marker was not found");if(!(U>=65488&&U<=65495))break;o+=2}return o-a}function hI(A){const g=[],{blocksPerLine:I,blocksPerColumn:e}=A;if(!I||!e||!A.blocks)throw new Error("Missing component data");const i=I<<3,t=new Int32Array(64),B=new Uint8Array(64);function C(g,I,e){const i=A.quantizationTable;if(!i)throw new Error("No quantization table found");let t,B,C,Q,s,E,a,o,r;const n=e;let h;for(h=0;h<64;h++)n[h]=g[h]*i[h];for(h=0;h<8;++h){const A=8*h;0!==n[1+A]||0!==n[2+A]||0!==n[3+A]||0!==n[4+A]||0!==n[5+A]||0!==n[6+A]||0!==n[7+A]?(t=aI*n[0+A]+128>>8,B=aI*n[4+A]+128>>8,C=n[2+A],Q=n[6+A],s=oI*(n[1+A]-n[7+A])+128>>8,o=oI*(n[1+A]+n[7+A])+128>>8,E=n[3+A]<<4,a=n[5+A]<<4,r=t-B+1>>1,t=t+B+1>>1,B=r,r=C*EI+Q*sI+128>>8,C=C*sI-Q*EI+128>>8,Q=r,r=s-a+1>>1,s=s+a+1>>1,a=r,r=o+E+1>>1,E=o-E+1>>1,o=r,r=t-Q+1>>1,t=t+Q+1>>1,Q=r,r=B-C+1>>1,B=B+C+1>>1,C=r,r=s*QI+o*CI+2048>>12,s=s*CI-o*QI+2048>>12,o=r,r=E*BI+a*tI+2048>>12,E=E*tI-a*BI+2048>>12,a=r,n[0+A]=t+o,n[7+A]=t-o,n[1+A]=B+a,n[6+A]=B-a,n[2+A]=C+E,n[5+A]=C-E,n[3+A]=Q+s,n[4+A]=Q-s):(r=aI*n[0+A]+512>>10,n[0+A]=r,n[1+A]=r,n[2+A]=r,n[3+A]=r,n[4+A]=r,n[5+A]=r,n[6+A]=r,n[7+A]=r)}for(h=0;h<8;++h){const A=h;0!==n[8+A]||0!==n[16+A]||0!==n[24+A]||0!==n[32+A]||0!==n[40+A]||0!==n[48+A]||0!==n[56+A]?(t=aI*n[0+A]+2048>>12,B=aI*n[32+A]+2048>>12,C=n[16+A],Q=n[48+A],s=oI*(n[8+A]-n[56+A])+2048>>12,o=oI*(n[8+A]+n[56+A])+2048>>12,E=n[24+A],a=n[40+A],r=t-B+1>>1,t=t+B+1>>1,B=r,r=C*EI+Q*sI+2048>>12,C=C*sI-Q*EI+2048>>12,Q=r,r=s-a+1>>1,s=s+a+1>>1,a=r,r=o+E+1>>1,E=o-E+1>>1,o=r,r=t-Q+1>>1,t=t+Q+1>>1,Q=r,r=B-C+1>>1,B=B+C+1>>1,C=r,r=s*QI+o*CI+2048>>12,s=s*CI-o*QI+2048>>12,o=r,r=E*BI+a*tI+2048>>12,E=E*tI-a*BI+2048>>12,a=r,n[0+A]=t+o,n[56+A]=t-o,n[8+A]=B+a,n[48+A]=B-a,n[16+A]=C+E,n[40+A]=C-E,n[24+A]=Q+s,n[32+A]=Q-s):(r=aI*e[h+0]+8192>>14,n[0+A]=r,n[8+A]=r,n[16+A]=r,n[24+A]=r,n[32+A]=r,n[40+A]=r,n[48+A]=r,n[56+A]=r)}for(h=0;h<64;++h){const A=128+(n[h]+8>>4);I[h]=A<0?0:A>255?255:A}}for(let Q=0;Q<e;Q++){const e=Q<<3;for(let A=0;A<8;A++)g.push(new Uint8Array(i));for(let i=0;i<I;i++){C(A.blocks[Q][i],B,t);let I=0;const s=i<<3;for(let A=0;A<8;A++){const i=g[e+A];for(let A=0;A<8;A++)i[s+A]=B[I++]}}}return g}class lI{constructor(){this.jfif=null,this.adobe=null,this.resetInterval=0,this.quantizationTables=[],this.huffmanTablesAC=[],this.huffmanTablesDC=[],this.frames=[]}resetFrames(){this.frames=[]}parse(A){let g=0;function I(){const I=A[g]<<8|A[g+1];return g+=2,I}function e(){const e=I(),i=A.subarray(g,g+e-2);return g+=i.length,i}function i(A){let g,I,e=0,i=0;for(I in A.components)A.components.hasOwnProperty(I)&&(g=A.components[I],e<g.h&&(e=g.h),i<g.v&&(i=g.v));const t=Math.ceil(A.samplesPerLine/8/e),B=Math.ceil(A.scanLines/8/i);for(I in A.components)if(A.components.hasOwnProperty(I)){g=A.components[I];const C=Math.ceil(Math.ceil(A.samplesPerLine/8)*g.h/e),Q=Math.ceil(Math.ceil(A.scanLines/8)*g.v/i),s=t*g.h,E=B*g.v,a=[];for(let A=0;A<E;A++){const A=[];for(let g=0;g<s;g++)A.push(new Int32Array(64));a.push(A)}g.blocksPerLine=C,g.blocksPerColumn=Q,g.blocks=a}A.maxH=e,A.maxV=i,A.mcusPerLine=t,A.mcusPerColumn=B}let t=I();if(65496!==t)throw new Error("SOI not found");for(t=I();65497!==t;){switch(t){case 65280:break;case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:{const A=e();65504===t&&74===A[0]&&70===A[1]&&73===A[2]&&70===A[3]&&0===A[4]&&(this.jfif={version:{major:A[5],minor:A[6]},densityUnits:A[7],xDensity:A[8]<<8|A[9],yDensity:A[10]<<8|A[11],thumbWidth:A[12],thumbHeight:A[13],thumbData:A.subarray(14,14+3*A[12]*A[13])}),65518===t&&65===A[0]&&100===A[1]&&111===A[2]&&98===A[3]&&101===A[4]&&0===A[5]&&(this.adobe={version:A[6],flags0:A[7]<<8|A[8],flags1:A[9]<<8|A[10],transformCode:A[11]});break}case 65499:{const e=I()+g-2;for(;g<e;){const e=A[g++],i=new Int32Array(64);if(e>>4){if(e>>4!=1)throw new Error("DQT: invalid table spec");for(let A=0;A<64;A++){i[iI[A]]=I()}}else for(let I=0;I<64;I++){i[iI[I]]=A[g++]}this.quantizationTables[15&e]=i}break}case 65472:case 65473:case 65474:{I();const e={extended:65473===t,progressive:65474===t,precision:A[g++],scanLines:I(),samplesPerLine:I(),components:{},componentsOrder:[],maxH:0,maxV:0,mcusPerLine:0,mcusPerColumn:0},B=A[g++];let C;for(let I=0;I<B;I++){C=A[g];const I=A[g+1]>>4,i=15&A[g+1],t=A[g+2];e.componentsOrder.push(C),e.components[C]={h:I,v:i,quantizationIdx:t,blocksPerLine:0,blocksPerColumn:0,blocks:[]},g+=3}i(e),this.frames.push(e);break}case 65476:{const e=I();for(let I=2;I<e;){const e=A[g++],i=new Uint8Array(16);let t=0;for(let I=0;I<16;I++,g++)i[I]=A[g],t+=i[I];const B=new Uint8Array(t);for(let I=0;I<t;I++,g++)B[I]=A[g];I+=17+t,e>>4?this.huffmanTablesAC[15&e]=rI(i,B):this.huffmanTablesDC[15&e]=rI(i,B)}break}case 65501:I(),this.resetInterval=I();break;case 65498:{I();const e=A[g++],i=[],t=this.frames[0];for(let I=0;I<e;I++){const I=t.components[A[g++]],e=A[g++];I.huffmanTableDC=this.huffmanTablesDC[e>>4],I.huffmanTableAC=this.huffmanTablesAC[15&e],i.push(I)}const B=A[g++],C=A[g++],Q=A[g++],s=nI(A,g,t,i,this.resetInterval,B,C,Q>>4,15&Q);g+=s;break}case 65535:255!==A[g]&&g--;break;default:if(255===A[g-3]&&A[g-2]>=192&&A[g-2]<=254){g-=3;break}throw new Error(`unknown JPEG marker ${t.toString(16)}`)}t=I()}}getResult(){const{frames:A}=this;if(0===this.frames.length)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(let A=0;A<this.frames.length;A++){const g=this.frames[A].components;for(const A of Object.keys(g)){const I=g[A].quantizationIdx;"number"==typeof I&&(g[A].quantizationTable=this.quantizationTables[I],delete g[A].quantizationIdx)}}const g=A[0];if(!g.maxH||!g.maxV)throw new Error("Invalid frame dimensions");const{components:I,componentsOrder:e}=g,i=[],t=g.samplesPerLine,B=g.scanLines;for(let A=0;A<e.length;A++){const t=I[e[A]];i.push({lines:hI(t),scaleX:t.h/g.maxH,scaleY:t.v/g.maxV})}const C=new Uint8Array(t*B*i.length);let Q=0;for(let A=0;A<B;++A)for(let g=0;g<t;++g)for(let I=0;I<i.length;++I){const e=i[I];C[Q]=e.lines[0|A*e.scaleY][0|g*e.scaleX],++Q}return C}}var cI=Object.freeze({__proto__:null,default:class extends lg{constructor(A){super(A),this.reader=new lI,A.JPEGTables&&this.reader.parse(A.JPEGTables)}decodeBlock(A){return this.reader.resetFrames(),this.reader.parse(new Uint8Array(A)),this.reader.getResult().buffer}}});function DI(A){let g=A.length;for(;--g>=0;)A[g]=0}DI(new Array(576));DI(new Array(60));DI(new Array(512));DI(new Array(256));DI(new Array(29));DI(new Array(30));var wI=(A,g,I,e)=>{let i=65535&A,t=A>>>16&65535,B=0;for(;0!==I;){B=I>2e3?2e3:I,I-=B;do{i=i+g[e++]|0,t=t+i|0}while(--B);i%=65521,t%=65521}return i|t<<16};const dI=new Uint32Array((()=>{let A,g=[];for(var I=0;I<256;I++){A=I;for(var e=0;e<8;e++)A=1&A?3988292384^A>>>1:A>>>1;g[I]=A}return g})());var yI=(A,g,I,e)=>{const i=dI,t=e+I;A^=-1;for(let I=e;I<t;I++)A=A>>>8^i[255&(A^g[I])];return-1^A},fI={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},uI={Z_NO_FLUSH:0,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_DEFLATED:8};const SI=(A,g)=>Object.prototype.hasOwnProperty.call(A,g);var GI=function(A){const g=Array.prototype.slice.call(arguments,1);for(;g.length;){const I=g.shift();if(I){if("object"!=typeof I)throw new TypeError(I+"must be non-object");for(const g in I)SI(I,g)&&(A[g]=I[g])}}return A},NI=A=>{let g=0;for(let I=0,e=A.length;I<e;I++)g+=A[I].length;const I=new Uint8Array(g);for(let g=0,e=0,i=A.length;g<i;g++){let i=A[g];I.set(i,e),e+=i.length}return I};let FI=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(A){FI=!1}const kI=new Uint8Array(256);for(let A=0;A<256;A++)kI[A]=A>=252?6:A>=248?5:A>=240?4:A>=224?3:A>=192?2:1;kI[254]=kI[254]=1;var RI=A=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(A);let g,I,e,i,t,B=A.length,C=0;for(i=0;i<B;i++)I=A.charCodeAt(i),55296==(64512&I)&&i+1<B&&(e=A.charCodeAt(i+1),56320==(64512&e)&&(I=65536+(I-55296<<10)+(e-56320),i++)),C+=I<128?1:I<2048?2:I<65536?3:4;for(g=new Uint8Array(C),t=0,i=0;t<C;i++)I=A.charCodeAt(i),55296==(64512&I)&&i+1<B&&(e=A.charCodeAt(i+1),56320==(64512&e)&&(I=65536+(I-55296<<10)+(e-56320),i++)),I<128?g[t++]=I:I<2048?(g[t++]=192|I>>>6,g[t++]=128|63&I):I<65536?(g[t++]=224|I>>>12,g[t++]=128|I>>>6&63,g[t++]=128|63&I):(g[t++]=240|I>>>18,g[t++]=128|I>>>12&63,g[t++]=128|I>>>6&63,g[t++]=128|63&I);return g},LI=(A,g)=>{const I=g||A.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(A.subarray(0,g));let e,i;const t=new Array(2*I);for(i=0,e=0;e<I;){let g=A[e++];if(g<128){t[i++]=g;continue}let B=kI[g];if(B>4)t[i++]=65533,e+=B-1;else{for(g&=2===B?31:3===B?15:7;B>1&&e<I;)g=g<<6|63&A[e++],B--;B>1?t[i++]=65533:g<65536?t[i++]=g:(g-=65536,t[i++]=55296|g>>10&1023,t[i++]=56320|1023&g)}}return((A,g)=>{if(g<65534&&A.subarray&&FI)return String.fromCharCode.apply(null,A.length===g?A:A.subarray(0,g));let I="";for(let e=0;e<g;e++)I+=String.fromCharCode(A[e]);return I})(t,i)},UI=(A,g)=>{(g=g||A.length)>A.length&&(g=A.length);let I=g-1;for(;I>=0&&128==(192&A[I]);)I--;return I<0||0===I?g:I+kI[A[I]]>g?I:g};var pI=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const MI=16209;var YI=function(A,g){let I,e,i,t,B,C,Q,s,E,a,o,r,n,h,l,c,D,w,d,y,f,u,S,G;const N=A.state;I=A.next_in,S=A.input,e=I+(A.avail_in-5),i=A.next_out,G=A.output,t=i-(g-A.avail_out),B=i+(A.avail_out-257),C=N.dmax,Q=N.wsize,s=N.whave,E=N.wnext,a=N.window,o=N.hold,r=N.bits,n=N.lencode,h=N.distcode,l=(1<<N.lenbits)-1,c=(1<<N.distbits)-1;A:do{r<15&&(o+=S[I++]<<r,r+=8,o+=S[I++]<<r,r+=8),D=n[o&l];g:for(;;){if(w=D>>>24,o>>>=w,r-=w,w=D>>>16&255,0===w)G[i++]=65535&D;else{if(!(16&w)){if(64&w){if(32&w){N.mode=16191;break A}A.msg="invalid literal/length code",N.mode=MI;break A}D=n[(65535&D)+(o&(1<<w)-1)];continue g}for(d=65535&D,w&=15,w&&(r<w&&(o+=S[I++]<<r,r+=8),d+=o&(1<<w)-1,o>>>=w,r-=w),r<15&&(o+=S[I++]<<r,r+=8,o+=S[I++]<<r,r+=8),D=h[o&c];;){if(w=D>>>24,o>>>=w,r-=w,w=D>>>16&255,16&w){if(y=65535&D,w&=15,r<w&&(o+=S[I++]<<r,r+=8,r<w&&(o+=S[I++]<<r,r+=8)),y+=o&(1<<w)-1,y>C){A.msg="invalid distance too far back",N.mode=MI;break A}if(o>>>=w,r-=w,w=i-t,y>w){if(w=y-w,w>s&&N.sane){A.msg="invalid distance too far back",N.mode=MI;break A}if(f=0,u=a,0===E){if(f+=Q-w,w<d){d-=w;do{G[i++]=a[f++]}while(--w);f=i-y,u=G}}else if(E<w){if(f+=Q+E-w,w-=E,w<d){d-=w;do{G[i++]=a[f++]}while(--w);if(f=0,E<d){w=E,d-=w;do{G[i++]=a[f++]}while(--w);f=i-y,u=G}}}else if(f+=E-w,w<d){d-=w;do{G[i++]=a[f++]}while(--w);f=i-y,u=G}for(;d>2;)G[i++]=u[f++],G[i++]=u[f++],G[i++]=u[f++],d-=3;d&&(G[i++]=u[f++],d>1&&(G[i++]=u[f++]))}else{f=i-y;do{G[i++]=G[f++],G[i++]=G[f++],G[i++]=G[f++],d-=3}while(d>2);d&&(G[i++]=G[f++],d>1&&(G[i++]=G[f++]))}break}if(64&w){A.msg="invalid distance code",N.mode=MI;break A}D=h[(65535&D)+(o&(1<<w)-1)]}}break}}while(I<e&&i<B);d=r>>3,I-=d,r-=d<<3,o&=(1<<r)-1,A.next_in=I,A.next_out=i,A.avail_in=I<e?e-I+5:5-(I-e),A.avail_out=i<B?B-i+257:257-(i-B),N.hold=o,N.bits=r};const mI=15,KI=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),HI=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),JI=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),bI=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var qI=(A,g,I,e,i,t,B,C)=>{const Q=C.bits;let s,E,a,o,r,n,h=0,l=0,c=0,D=0,w=0,d=0,y=0,f=0,u=0,S=0,G=null;const N=new Uint16Array(16),F=new Uint16Array(16);let k,R,L,U=null;for(h=0;h<=mI;h++)N[h]=0;for(l=0;l<e;l++)N[g[I+l]]++;for(w=Q,D=mI;D>=1&&0===N[D];D--);if(w>D&&(w=D),0===D)return i[t++]=20971520,i[t++]=20971520,C.bits=1,0;for(c=1;c<D&&0===N[c];c++);for(w<c&&(w=c),f=1,h=1;h<=mI;h++)if(f<<=1,f-=N[h],f<0)return-1;if(f>0&&(0===A||1!==D))return-1;for(F[1]=0,h=1;h<mI;h++)F[h+1]=F[h]+N[h];for(l=0;l<e;l++)0!==g[I+l]&&(B[F[g[I+l]]++]=l);if(0===A?(G=U=B,n=20):1===A?(G=KI,U=HI,n=257):(G=JI,U=bI,n=0),S=0,l=0,h=c,r=t,d=w,y=0,a=-1,u=1<<w,o=u-1,1===A&&u>852||2===A&&u>592)return 1;for(;;){k=h-y,B[l]+1<n?(R=0,L=B[l]):B[l]>=n?(R=U[B[l]-n],L=G[B[l]-n]):(R=96,L=0),s=1<<h-y,E=1<<d,c=E;do{E-=s,i[r+(S>>y)+E]=k<<24|R<<16|L}while(0!==E);for(s=1<<h-1;S&s;)s>>=1;if(0!==s?(S&=s-1,S+=s):S=0,l++,0===--N[h]){if(h===D)break;h=g[I+B[l]]}if(h>w&&(S&o)!==a){for(0===y&&(y=w),r+=c,d=h-y,f=1<<d;d+y<D&&(f-=N[d+y],!(f<=0));)d++,f<<=1;if(u+=1<<d,1===A&&u>852||2===A&&u>592)return 1;a=S&o,i[a]=w<<24|d<<16|r-t}}return 0!==S&&(i[r+S]=h-y<<24|64<<16),C.bits=w,0};const{Z_FINISH:xI,Z_BLOCK:TI,Z_TREES:OI,Z_OK:PI,Z_STREAM_END:vI,Z_NEED_DICT:VI,Z_STREAM_ERROR:ZI,Z_DATA_ERROR:zI,Z_MEM_ERROR:jI,Z_BUF_ERROR:WI,Z_DEFLATED:_I}=uI,XI=16180,$I=16190,Ae=16191,ge=16192,Ie=16194,ee=16199,ie=16200,te=16206,Be=16209,Ce=A=>(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24);function Qe(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const se=A=>{if(!A)return 1;const g=A.state;return!g||g.strm!==A||g.mode<XI||g.mode>16211?1:0},Ee=A=>{if(se(A))return ZI;const g=A.state;return A.total_in=A.total_out=g.total=0,A.msg="",g.wrap&&(A.adler=1&g.wrap),g.mode=XI,g.last=0,g.havedict=0,g.flags=-1,g.dmax=32768,g.head=null,g.hold=0,g.bits=0,g.lencode=g.lendyn=new Int32Array(852),g.distcode=g.distdyn=new Int32Array(592),g.sane=1,g.back=-1,PI},ae=A=>{if(se(A))return ZI;const g=A.state;return g.wsize=0,g.whave=0,g.wnext=0,Ee(A)},oe=(A,g)=>{let I;if(se(A))return ZI;const e=A.state;return g<0?(I=0,g=-g):(I=5+(g>>4),g<48&&(g&=15)),g&&(g<8||g>15)?ZI:(null!==e.window&&e.wbits!==g&&(e.window=null),e.wrap=I,e.wbits=g,ae(A))},re=(A,g)=>{if(!A)return ZI;const I=new Qe;A.state=I,I.strm=A,I.window=null,I.mode=XI;const e=oe(A,g);return e!==PI&&(A.state=null),e};let ne,he,le=!0;const ce=A=>{if(le){ne=new Int32Array(512),he=new Int32Array(32);let g=0;for(;g<144;)A.lens[g++]=8;for(;g<256;)A.lens[g++]=9;for(;g<280;)A.lens[g++]=7;for(;g<288;)A.lens[g++]=8;for(qI(1,A.lens,0,288,ne,0,A.work,{bits:9}),g=0;g<32;)A.lens[g++]=5;qI(2,A.lens,0,32,he,0,A.work,{bits:5}),le=!1}A.lencode=ne,A.lenbits=9,A.distcode=he,A.distbits=5},De=(A,g,I,e)=>{let i;const t=A.state;return null===t.window&&(t.wsize=1<<t.wbits,t.wnext=0,t.whave=0,t.window=new Uint8Array(t.wsize)),e>=t.wsize?(t.window.set(g.subarray(I-t.wsize,I),0),t.wnext=0,t.whave=t.wsize):(i=t.wsize-t.wnext,i>e&&(i=e),t.window.set(g.subarray(I-e,I-e+i),t.wnext),(e-=i)?(t.window.set(g.subarray(I-e,I),0),t.wnext=e,t.whave=t.wsize):(t.wnext+=i,t.wnext===t.wsize&&(t.wnext=0),t.whave<t.wsize&&(t.whave+=i))),0};var we={inflateReset:ae,inflateReset2:oe,inflateResetKeep:Ee,inflateInit:A=>re(A,15),inflateInit2:re,inflate:(A,g)=>{let I,e,i,t,B,C,Q,s,E,a,o,r,n,h,l,c,D,w,d,y,f,u,S=0;const G=new Uint8Array(4);let N,F;const k=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(se(A)||!A.output||!A.input&&0!==A.avail_in)return ZI;I=A.state,I.mode===Ae&&(I.mode=ge),B=A.next_out,i=A.output,Q=A.avail_out,t=A.next_in,e=A.input,C=A.avail_in,s=I.hold,E=I.bits,a=C,o=Q,u=PI;A:for(;;)switch(I.mode){case XI:if(0===I.wrap){I.mode=ge;break}for(;E<16;){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}if(2&I.wrap&&35615===s){0===I.wbits&&(I.wbits=15),I.check=0,G[0]=255&s,G[1]=s>>>8&255,I.check=yI(I.check,G,2,0),s=0,E=0,I.mode=16181;break}if(I.head&&(I.head.done=!1),!(1&I.wrap)||(((255&s)<<8)+(s>>8))%31){A.msg="incorrect header check",I.mode=Be;break}if((15&s)!==_I){A.msg="unknown compression method",I.mode=Be;break}if(s>>>=4,E-=4,f=8+(15&s),0===I.wbits&&(I.wbits=f),f>15||f>I.wbits){A.msg="invalid window size",I.mode=Be;break}I.dmax=1<<I.wbits,I.flags=0,A.adler=I.check=1,I.mode=512&s?16189:Ae,s=0,E=0;break;case 16181:for(;E<16;){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}if(I.flags=s,(255&I.flags)!==_I){A.msg="unknown compression method",I.mode=Be;break}if(57344&I.flags){A.msg="unknown header flags set",I.mode=Be;break}I.head&&(I.head.text=s>>8&1),512&I.flags&&4&I.wrap&&(G[0]=255&s,G[1]=s>>>8&255,I.check=yI(I.check,G,2,0)),s=0,E=0,I.mode=16182;case 16182:for(;E<32;){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}I.head&&(I.head.time=s),512&I.flags&&4&I.wrap&&(G[0]=255&s,G[1]=s>>>8&255,G[2]=s>>>16&255,G[3]=s>>>24&255,I.check=yI(I.check,G,4,0)),s=0,E=0,I.mode=16183;case 16183:for(;E<16;){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}I.head&&(I.head.xflags=255&s,I.head.os=s>>8),512&I.flags&&4&I.wrap&&(G[0]=255&s,G[1]=s>>>8&255,I.check=yI(I.check,G,2,0)),s=0,E=0,I.mode=16184;case 16184:if(1024&I.flags){for(;E<16;){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}I.length=s,I.head&&(I.head.extra_len=s),512&I.flags&&4&I.wrap&&(G[0]=255&s,G[1]=s>>>8&255,I.check=yI(I.check,G,2,0)),s=0,E=0}else I.head&&(I.head.extra=null);I.mode=16185;case 16185:if(1024&I.flags&&(r=I.length,r>C&&(r=C),r&&(I.head&&(f=I.head.extra_len-I.length,I.head.extra||(I.head.extra=new Uint8Array(I.head.extra_len)),I.head.extra.set(e.subarray(t,t+r),f)),512&I.flags&&4&I.wrap&&(I.check=yI(I.check,e,r,t)),C-=r,t+=r,I.length-=r),I.length))break A;I.length=0,I.mode=16186;case 16186:if(2048&I.flags){if(0===C)break A;r=0;do{f=e[t+r++],I.head&&f&&I.length<65536&&(I.head.name+=String.fromCharCode(f))}while(f&&r<C);if(512&I.flags&&4&I.wrap&&(I.check=yI(I.check,e,r,t)),C-=r,t+=r,f)break A}else I.head&&(I.head.name=null);I.length=0,I.mode=16187;case 16187:if(4096&I.flags){if(0===C)break A;r=0;do{f=e[t+r++],I.head&&f&&I.length<65536&&(I.head.comment+=String.fromCharCode(f))}while(f&&r<C);if(512&I.flags&&4&I.wrap&&(I.check=yI(I.check,e,r,t)),C-=r,t+=r,f)break A}else I.head&&(I.head.comment=null);I.mode=16188;case 16188:if(512&I.flags){for(;E<16;){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}if(4&I.wrap&&s!==(65535&I.check)){A.msg="header crc mismatch",I.mode=Be;break}s=0,E=0}I.head&&(I.head.hcrc=I.flags>>9&1,I.head.done=!0),A.adler=I.check=0,I.mode=Ae;break;case 16189:for(;E<32;){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}A.adler=I.check=Ce(s),s=0,E=0,I.mode=$I;case $I:if(0===I.havedict)return A.next_out=B,A.avail_out=Q,A.next_in=t,A.avail_in=C,I.hold=s,I.bits=E,VI;A.adler=I.check=1,I.mode=Ae;case Ae:if(g===TI||g===OI)break A;case ge:if(I.last){s>>>=7&E,E-=7&E,I.mode=te;break}for(;E<3;){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}switch(I.last=1&s,s>>>=1,E-=1,3&s){case 0:I.mode=16193;break;case 1:if(ce(I),I.mode=ee,g===OI){s>>>=2,E-=2;break A}break;case 2:I.mode=16196;break;case 3:A.msg="invalid block type",I.mode=Be}s>>>=2,E-=2;break;case 16193:for(s>>>=7&E,E-=7&E;E<32;){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}if((65535&s)!=(s>>>16^65535)){A.msg="invalid stored block lengths",I.mode=Be;break}if(I.length=65535&s,s=0,E=0,I.mode=Ie,g===OI)break A;case Ie:I.mode=16195;case 16195:if(r=I.length,r){if(r>C&&(r=C),r>Q&&(r=Q),0===r)break A;i.set(e.subarray(t,t+r),B),C-=r,t+=r,Q-=r,B+=r,I.length-=r;break}I.mode=Ae;break;case 16196:for(;E<14;){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}if(I.nlen=257+(31&s),s>>>=5,E-=5,I.ndist=1+(31&s),s>>>=5,E-=5,I.ncode=4+(15&s),s>>>=4,E-=4,I.nlen>286||I.ndist>30){A.msg="too many length or distance symbols",I.mode=Be;break}I.have=0,I.mode=16197;case 16197:for(;I.have<I.ncode;){for(;E<3;){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}I.lens[k[I.have++]]=7&s,s>>>=3,E-=3}for(;I.have<19;)I.lens[k[I.have++]]=0;if(I.lencode=I.lendyn,I.lenbits=7,N={bits:I.lenbits},u=qI(0,I.lens,0,19,I.lencode,0,I.work,N),I.lenbits=N.bits,u){A.msg="invalid code lengths set",I.mode=Be;break}I.have=0,I.mode=16198;case 16198:for(;I.have<I.nlen+I.ndist;){for(;S=I.lencode[s&(1<<I.lenbits)-1],l=S>>>24,c=S>>>16&255,D=65535&S,!(l<=E);){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}if(D<16)s>>>=l,E-=l,I.lens[I.have++]=D;else{if(16===D){for(F=l+2;E<F;){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}if(s>>>=l,E-=l,0===I.have){A.msg="invalid bit length repeat",I.mode=Be;break}f=I.lens[I.have-1],r=3+(3&s),s>>>=2,E-=2}else if(17===D){for(F=l+3;E<F;){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}s>>>=l,E-=l,f=0,r=3+(7&s),s>>>=3,E-=3}else{for(F=l+7;E<F;){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}s>>>=l,E-=l,f=0,r=11+(127&s),s>>>=7,E-=7}if(I.have+r>I.nlen+I.ndist){A.msg="invalid bit length repeat",I.mode=Be;break}for(;r--;)I.lens[I.have++]=f}}if(I.mode===Be)break;if(0===I.lens[256]){A.msg="invalid code -- missing end-of-block",I.mode=Be;break}if(I.lenbits=9,N={bits:I.lenbits},u=qI(1,I.lens,0,I.nlen,I.lencode,0,I.work,N),I.lenbits=N.bits,u){A.msg="invalid literal/lengths set",I.mode=Be;break}if(I.distbits=6,I.distcode=I.distdyn,N={bits:I.distbits},u=qI(2,I.lens,I.nlen,I.ndist,I.distcode,0,I.work,N),I.distbits=N.bits,u){A.msg="invalid distances set",I.mode=Be;break}if(I.mode=ee,g===OI)break A;case ee:I.mode=ie;case ie:if(C>=6&&Q>=258){A.next_out=B,A.avail_out=Q,A.next_in=t,A.avail_in=C,I.hold=s,I.bits=E,YI(A,o),B=A.next_out,i=A.output,Q=A.avail_out,t=A.next_in,e=A.input,C=A.avail_in,s=I.hold,E=I.bits,I.mode===Ae&&(I.back=-1);break}for(I.back=0;S=I.lencode[s&(1<<I.lenbits)-1],l=S>>>24,c=S>>>16&255,D=65535&S,!(l<=E);){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}if(c&&!(240&c)){for(w=l,d=c,y=D;S=I.lencode[y+((s&(1<<w+d)-1)>>w)],l=S>>>24,c=S>>>16&255,D=65535&S,!(w+l<=E);){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}s>>>=w,E-=w,I.back+=w}if(s>>>=l,E-=l,I.back+=l,I.length=D,0===c){I.mode=16205;break}if(32&c){I.back=-1,I.mode=Ae;break}if(64&c){A.msg="invalid literal/length code",I.mode=Be;break}I.extra=15&c,I.mode=16201;case 16201:if(I.extra){for(F=I.extra;E<F;){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}I.length+=s&(1<<I.extra)-1,s>>>=I.extra,E-=I.extra,I.back+=I.extra}I.was=I.length,I.mode=16202;case 16202:for(;S=I.distcode[s&(1<<I.distbits)-1],l=S>>>24,c=S>>>16&255,D=65535&S,!(l<=E);){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}if(!(240&c)){for(w=l,d=c,y=D;S=I.distcode[y+((s&(1<<w+d)-1)>>w)],l=S>>>24,c=S>>>16&255,D=65535&S,!(w+l<=E);){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}s>>>=w,E-=w,I.back+=w}if(s>>>=l,E-=l,I.back+=l,64&c){A.msg="invalid distance code",I.mode=Be;break}I.offset=D,I.extra=15&c,I.mode=16203;case 16203:if(I.extra){for(F=I.extra;E<F;){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}I.offset+=s&(1<<I.extra)-1,s>>>=I.extra,E-=I.extra,I.back+=I.extra}if(I.offset>I.dmax){A.msg="invalid distance too far back",I.mode=Be;break}I.mode=16204;case 16204:if(0===Q)break A;if(r=o-Q,I.offset>r){if(r=I.offset-r,r>I.whave&&I.sane){A.msg="invalid distance too far back",I.mode=Be;break}r>I.wnext?(r-=I.wnext,n=I.wsize-r):n=I.wnext-r,r>I.length&&(r=I.length),h=I.window}else h=i,n=B-I.offset,r=I.length;r>Q&&(r=Q),Q-=r,I.length-=r;do{i[B++]=h[n++]}while(--r);0===I.length&&(I.mode=ie);break;case 16205:if(0===Q)break A;i[B++]=I.length,Q--,I.mode=ie;break;case te:if(I.wrap){for(;E<32;){if(0===C)break A;C--,s|=e[t++]<<E,E+=8}if(o-=Q,A.total_out+=o,I.total+=o,4&I.wrap&&o&&(A.adler=I.check=I.flags?yI(I.check,i,o,B-o):wI(I.check,i,o,B-o)),o=Q,4&I.wrap&&(I.flags?s:Ce(s))!==I.check){A.msg="incorrect data check",I.mode=Be;break}s=0,E=0}I.mode=16207;case 16207:if(I.wrap&&I.flags){for(;E<32;){if(0===C)break A;C--,s+=e[t++]<<E,E+=8}if(4&I.wrap&&s!==(4294967295&I.total)){A.msg="incorrect length check",I.mode=Be;break}s=0,E=0}I.mode=16208;case 16208:u=vI;break A;case Be:u=zI;break A;case 16210:return jI;default:return ZI}return A.next_out=B,A.avail_out=Q,A.next_in=t,A.avail_in=C,I.hold=s,I.bits=E,(I.wsize||o!==A.avail_out&&I.mode<Be&&(I.mode<te||g!==xI))&&De(A,A.output,A.next_out,o-A.avail_out),a-=A.avail_in,o-=A.avail_out,A.total_in+=a,A.total_out+=o,I.total+=o,4&I.wrap&&o&&(A.adler=I.check=I.flags?yI(I.check,i,o,A.next_out-o):wI(I.check,i,o,A.next_out-o)),A.data_type=I.bits+(I.last?64:0)+(I.mode===Ae?128:0)+(I.mode===ee||I.mode===Ie?256:0),(0===a&&0===o||g===xI)&&u===PI&&(u=WI),u},inflateEnd:A=>{if(se(A))return ZI;let g=A.state;return g.window&&(g.window=null),A.state=null,PI},inflateGetHeader:(A,g)=>{if(se(A))return ZI;const I=A.state;return 2&I.wrap?(I.head=g,g.done=!1,PI):ZI},inflateSetDictionary:(A,g)=>{const I=g.length;let e,i,t;return se(A)?ZI:(e=A.state,0!==e.wrap&&e.mode!==$I?ZI:e.mode===$I&&(i=1,i=wI(i,g,I,0),i!==e.check)?zI:(t=De(A,g,I,I),t?(e.mode=16210,jI):(e.havedict=1,PI)))},inflateInfo:"pako inflate (from Nodeca project)"};var de=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const ye=Object.prototype.toString,{Z_NO_FLUSH:fe,Z_FINISH:ue,Z_OK:Se,Z_STREAM_END:Ge,Z_NEED_DICT:Ne,Z_STREAM_ERROR:Fe,Z_DATA_ERROR:ke,Z_MEM_ERROR:Re}=uI;function Le(A){this.options=GI({chunkSize:65536,windowBits:15,to:""},A||{});const g=this.options;g.raw&&g.windowBits>=0&&g.windowBits<16&&(g.windowBits=-g.windowBits,0===g.windowBits&&(g.windowBits=-15)),!(g.windowBits>=0&&g.windowBits<16)||A&&A.windowBits||(g.windowBits+=32),g.windowBits>15&&g.windowBits<48&&(15&g.windowBits||(g.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new pI,this.strm.avail_out=0;let I=we.inflateInit2(this.strm,g.windowBits);if(I!==Se)throw new Error(fI[I]);if(this.header=new de,we.inflateGetHeader(this.strm,this.header),g.dictionary&&("string"==typeof g.dictionary?g.dictionary=RI(g.dictionary):"[object ArrayBuffer]"===ye.call(g.dictionary)&&(g.dictionary=new Uint8Array(g.dictionary)),g.raw&&(I=we.inflateSetDictionary(this.strm,g.dictionary),I!==Se)))throw new Error(fI[I])}Le.prototype.push=function(A,g){const I=this.strm,e=this.options.chunkSize,i=this.options.dictionary;let t,B,C;if(this.ended)return!1;for(B=g===~~g?g:!0===g?ue:fe,"[object ArrayBuffer]"===ye.call(A)?I.input=new Uint8Array(A):I.input=A,I.next_in=0,I.avail_in=I.input.length;;){for(0===I.avail_out&&(I.output=new Uint8Array(e),I.next_out=0,I.avail_out=e),t=we.inflate(I,B),t===Ne&&i&&(t=we.inflateSetDictionary(I,i),t===Se?t=we.inflate(I,B):t===ke&&(t=Ne));I.avail_in>0&&t===Ge&&I.state.wrap>0&&0!==A[I.next_in];)we.inflateReset(I),t=we.inflate(I,B);switch(t){case Fe:case ke:case Ne:case Re:return this.onEnd(t),this.ended=!0,!1}if(C=I.avail_out,I.next_out&&(0===I.avail_out||t===Ge))if("string"===this.options.to){let A=UI(I.output,I.next_out),g=I.next_out-A,i=LI(I.output,A);I.next_out=g,I.avail_out=e-g,g&&I.output.set(I.output.subarray(A,A+g),0),this.onData(i)}else this.onData(I.output.length===I.next_out?I.output:I.output.subarray(0,I.next_out));if(t!==Se||0!==C){if(t===Ge)return t=we.inflateEnd(this.strm),this.onEnd(t),this.ended=!0,!0;if(0===I.avail_in)break}}return!0},Le.prototype.onData=function(A){this.chunks.push(A)},Le.prototype.onEnd=function(A){A===Se&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=NI(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};var Ue={inflate:function(A,g){const I=new Le(g);if(I.push(A),I.err)throw I.msg||fI[I.err];return I.result}};const{inflate:pe}=Ue;var Me=pe;var Ye=Object.freeze({__proto__:null,default:class extends lg{decodeBlock(A){return Me(new Uint8Array(A)).buffer}}});var me=Object.freeze({__proto__:null,default:class extends lg{decodeBlock(A){const g=new DataView(A),I=[];for(let e=0;e<A.byteLength;++e){let A=g.getInt8(e);if(A<0){const i=g.getUint8(e+1);A=-A;for(let g=0;g<=A;++g)I.push(i);e+=1}else{for(let i=0;i<=A;++i)I.push(g.getUint8(e+i+1));e+=A+1}}return new Uint8Array(I).buffer}}});function Ke(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var He,Je={exports:{}};var be,qe=(He||(He=1,be=Je,
2
2
  /* Copyright 2015-2021 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */
3
- function(){var A,g,I,e,i,t,B,C,Q,E,s,a,o,r,n,h,l=(A={defaultNoDataValue:-34027999387901484e22,decode:function(t,B){var C=(B=B||{}).encodedMaskData||null===B.encodedMaskData,Q=i(t,B.inputOffset||0,C),E=null!==B.noDataValue?B.noDataValue:A.defaultNoDataValue,s=g(Q,B.pixelType||Float32Array,B.encodedMaskData,E,B.returnMask),a={width:Q.width,height:Q.height,pixelData:s.resultPixels,minValue:s.minValue,maxValue:Q.pixels.maxValue,noDataValue:E};return s.resultMask&&(a.maskData=s.resultMask),B.returnEncodedMask&&Q.mask&&(a.encodedMaskData=Q.mask.bitset?Q.mask.bitset:null),B.returnFileInfo&&(a.fileInfo=I(Q),B.computeUsedBitDepths&&(a.fileInfo.bitDepths=e(Q))),a}},g=function(A,g,I,e,i){var B,C,Q,E=0,s=A.pixels.numBlocksX,a=A.pixels.numBlocksY,o=Math.floor(A.width/s),r=Math.floor(A.height/a),n=2*A.maxZError,h=Number.MAX_VALUE;I=I||(A.mask?A.mask.bitset:null),C=new g(A.width*A.height),i&&I&&(Q=new Uint8Array(A.width*A.height));for(var l,c,D=new Float32Array(o*r),w=0;w<=a;w++){var d=w!==a?r:A.height%a;if(0!==d)for(var y=0;y<=s;y++){var f=y!==s?o:A.width%s;if(0!==f){var u,S,G,N,F=w*A.width*r+y*o,k=A.width-f,R=A.pixels.blocks[E];if(R.encoding<2?(0===R.encoding?u=R.rawData:(t(R.stuffedData,R.bitsPerPixel,R.numValidPixels,R.offset,n,D,A.pixels.maxValue),u=D),S=0):G=2===R.encoding?0:R.offset,I)for(c=0;c<d;c++){for(7&F&&(N=I[F>>3],N<<=7&F),l=0;l<f;l++)7&F||(N=I[F>>3]),128&N?(Q&&(Q[F]=1),h=h>(B=R.encoding<2?u[S++]:G)?B:h,C[F++]=B):(Q&&(Q[F]=0),C[F++]=e),N<<=1;F+=k}else if(R.encoding<2)for(c=0;c<d;c++){for(l=0;l<f;l++)h=h>(B=u[S++])?B:h,C[F++]=B;F+=k}else for(h=h>G?G:h,c=0;c<d;c++){for(l=0;l<f;l++)C[F++]=G;F+=k}if(1===R.encoding&&S!==R.numValidPixels)throw"Block and Mask do not match";E++}}}return{resultPixels:C,resultMask:Q,minValue:h}},I=function(A){return{fileIdentifierString:A.fileIdentifierString,fileVersion:A.fileVersion,imageType:A.imageType,height:A.height,width:A.width,maxZError:A.maxZError,eofOffset:A.eofOffset,mask:A.mask?{numBlocksX:A.mask.numBlocksX,numBlocksY:A.mask.numBlocksY,numBytes:A.mask.numBytes,maxValue:A.mask.maxValue}:null,pixels:{numBlocksX:A.pixels.numBlocksX,numBlocksY:A.pixels.numBlocksY,numBytes:A.pixels.numBytes,maxValue:A.pixels.maxValue,noDataValue:A.noDataValue}}},e=function(A){for(var g=A.pixels.numBlocksX*A.pixels.numBlocksY,I={},e=0;e<g;e++){var i=A.pixels.blocks[e];0===i.encoding?I.float32=!0:1===i.encoding?I[i.bitsPerPixel]=!0:I[0]=!0}return Object.keys(I)},i=function(A,g,I){var e={},i=new Uint8Array(A,g,10);if(e.fileIdentifierString=String.fromCharCode.apply(null,i),"CntZImage"!==e.fileIdentifierString.trim())throw"Unexpected file identifier string: "+e.fileIdentifierString;g+=10;var t=new DataView(A,g,24);if(e.fileVersion=t.getInt32(0,!0),e.imageType=t.getInt32(4,!0),e.height=t.getUint32(8,!0),e.width=t.getUint32(12,!0),e.maxZError=t.getFloat64(16,!0),g+=24,!I)if(t=new DataView(A,g,16),e.mask={},e.mask.numBlocksY=t.getUint32(0,!0),e.mask.numBlocksX=t.getUint32(4,!0),e.mask.numBytes=t.getUint32(8,!0),e.mask.maxValue=t.getFloat32(12,!0),g+=16,e.mask.numBytes>0){var B=new Uint8Array(Math.ceil(e.width*e.height/8)),C=(t=new DataView(A,g,e.mask.numBytes)).getInt16(0,!0),Q=2,E=0;do{if(C>0)for(;C--;)B[E++]=t.getUint8(Q++);else{var s=t.getUint8(Q++);for(C=-C;C--;)B[E++]=s}C=t.getInt16(Q,!0),Q+=2}while(Q<e.mask.numBytes);if(-32768!==C||E<B.length)throw"Unexpected end of mask RLE encoding";e.mask.bitset=B,g+=e.mask.numBytes}else 0===(e.mask.numBytes|e.mask.numBlocksY|e.mask.maxValue)&&(e.mask.bitset=new Uint8Array(Math.ceil(e.width*e.height/8)));t=new DataView(A,g,16),e.pixels={},e.pixels.numBlocksY=t.getUint32(0,!0),e.pixels.numBlocksX=t.getUint32(4,!0),e.pixels.numBytes=t.getUint32(8,!0),e.pixels.maxValue=t.getFloat32(12,!0),g+=16;var a=e.pixels.numBlocksX,o=e.pixels.numBlocksY,r=a+(e.width%a>0?1:0),n=o+(e.height%o>0?1:0);e.pixels.blocks=new Array(r*n);for(var h=0,l=0;l<n;l++)for(var c=0;c<r;c++){var D=0,w=A.byteLength-g;t=new DataView(A,g,Math.min(10,w));var d={};e.pixels.blocks[h++]=d;var y=t.getUint8(0);if(D++,d.encoding=63&y,d.encoding>3)throw"Invalid block encoding ("+d.encoding+")";if(2!==d.encoding){if(0!==y&&2!==y){if(y>>=6,d.offsetType=y,2===y)d.offset=t.getInt8(1),D++;else if(1===y)d.offset=t.getInt16(1,!0),D+=2;else{if(0!==y)throw"Invalid block offset type";d.offset=t.getFloat32(1,!0),D+=4}if(1===d.encoding)if(y=t.getUint8(D),D++,d.bitsPerPixel=63&y,y>>=6,d.numValidPixelsType=y,2===y)d.numValidPixels=t.getUint8(D),D++;else if(1===y)d.numValidPixels=t.getUint16(D,!0),D+=2;else{if(0!==y)throw"Invalid valid pixel count type";d.numValidPixels=t.getUint32(D,!0),D+=4}}var f;if(g+=D,3!==d.encoding)if(0===d.encoding){var u=(e.pixels.numBytes-1)/4;if(u!==Math.floor(u))throw"uncompressed block has invalid length";f=new ArrayBuffer(4*u),new Uint8Array(f).set(new Uint8Array(A,g,4*u));var S=new Float32Array(f);d.rawData=S,g+=4*u}else if(1===d.encoding){var G=Math.ceil(d.numValidPixels*d.bitsPerPixel/8),N=Math.ceil(G/4);f=new ArrayBuffer(4*N),new Uint8Array(f).set(new Uint8Array(A,g,G)),d.stuffedData=new Uint32Array(f),g+=G}}else g++}return e.eofOffset=g,e},t=function(A,g,I,e,i,t,B){var C,Q,E,s=(1<<g)-1,a=0,o=0,r=Math.ceil((B-e)/i),n=4*A.length-Math.ceil(g*I/8);for(A[A.length-1]<<=8*n,C=0;C<I;C++){if(0===o&&(E=A[a++],o=32),o>=g)Q=E>>>o-g&s,o-=g;else{var h=g-o;Q=(E&s)<<h&s,Q+=(E=A[a++])>>>(o=32-h)}t[C]=Q<r?e+Q*i:B}return t},A),c=(B=function(A,g,I,e,i,t,B,C){var Q,E,s,a,o,r=(1<<I)-1,n=0,h=0,l=4*A.length-Math.ceil(I*e/8);if(A[A.length-1]<<=8*l,i)for(Q=0;Q<e;Q++)0===h&&(s=A[n++],h=32),h>=I?(E=s>>>h-I&r,h-=I):(E=(s&r)<<(a=I-h)&r,E+=(s=A[n++])>>>(h=32-a)),g[Q]=i[E];else for(o=Math.ceil((C-t)/B),Q=0;Q<e;Q++)0===h&&(s=A[n++],h=32),h>=I?(E=s>>>h-I&r,h-=I):(E=(s&r)<<(a=I-h)&r,E+=(s=A[n++])>>>(h=32-a)),g[Q]=E<o?t+E*B:C},C=function(A,g,I,e,i,t){var B,C=(1<<g)-1,Q=0,E=0,s=0,a=0,o=0,r=[],n=4*A.length-Math.ceil(g*I/8);A[A.length-1]<<=8*n;var h=Math.ceil((t-e)/i);for(E=0;E<I;E++)0===a&&(B=A[Q++],a=32),a>=g?(o=B>>>a-g&C,a-=g):(o=(B&C)<<(s=g-a)&C,o+=(B=A[Q++])>>>(a=32-s)),r[E]=o<h?e+o*i:t;return r.unshift(e),r},Q=function(A,g,I,e,i,t,B,C){var Q,E,s,a,o=(1<<I)-1,r=0,n=0,h=0;if(i)for(Q=0;Q<e;Q++)0===n&&(s=A[r++],n=32,h=0),n>=I?(E=s>>>h&o,n-=I,h+=I):(E=s>>>h&o,n=32-(a=I-n),E|=((s=A[r++])&(1<<a)-1)<<I-a,h=a),g[Q]=i[E];else{var l=Math.ceil((C-t)/B);for(Q=0;Q<e;Q++)0===n&&(s=A[r++],n=32,h=0),n>=I?(E=s>>>h&o,n-=I,h+=I):(E=s>>>h&o,n=32-(a=I-n),E|=((s=A[r++])&(1<<a)-1)<<I-a,h=a),g[Q]=E<l?t+E*B:C}return g},E=function(A,g,I,e,i,t){var B,C=(1<<g)-1,Q=0,E=0,s=0,a=0,o=0,r=0,n=[],h=Math.ceil((t-e)/i);for(E=0;E<I;E++)0===a&&(B=A[Q++],a=32,r=0),a>=g?(o=B>>>r&C,a-=g,r+=g):(o=B>>>r&C,a=32-(s=g-a),o|=((B=A[Q++])&(1<<s)-1)<<g-s,r=s),n[E]=o<h?e+o*i:t;return n.unshift(e),n},s=function(A,g,I,e){var i,t,B,C,Q=(1<<I)-1,E=0,s=0,a=4*A.length-Math.ceil(I*e/8);for(A[A.length-1]<<=8*a,i=0;i<e;i++)0===s&&(B=A[E++],s=32),s>=I?(t=B>>>s-I&Q,s-=I):(t=(B&Q)<<(C=I-s)&Q,t+=(B=A[E++])>>>(s=32-C)),g[i]=t;return g},a=function(A,g,I,e){var i,t,B,C,Q=(1<<I)-1,E=0,s=0,a=0;for(i=0;i<e;i++)0===s&&(B=A[E++],s=32,a=0),s>=I?(t=B>>>a&Q,s-=I,a+=I):(t=B>>>a&Q,s=32-(C=I-s),t|=((B=A[E++])&(1<<C)-1)<<I-C,a=C),g[i]=t;return g},o={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(A){for(var g=65535,I=65535,e=A.length,i=Math.floor(e/2),t=0;i;){var B=i>=359?359:i;i-=B;do{g+=A[t++]<<8,I+=g+=A[t++]}while(--B);g=(65535&g)+(g>>>16),I=(65535&I)+(I>>>16)}return 1&e&&(I+=g+=A[t]<<8),((I=(65535&I)+(I>>>16))<<16|(g=(65535&g)+(g>>>16)))>>>0},readHeaderInfo:function(A,g){var I=g.ptr,e=new Uint8Array(A,I,6),i={};if(i.fileIdentifierString=String.fromCharCode.apply(null,e),0!==i.fileIdentifierString.lastIndexOf("Lerc2",0))throw"Unexpected file identifier string (expect Lerc2 ): "+i.fileIdentifierString;I+=6;var t,B=new DataView(A,I,8),C=B.getInt32(0,!0);if(i.fileVersion=C,I+=4,C>=3&&(i.checksum=B.getUint32(4,!0),I+=4),B=new DataView(A,I,12),i.height=B.getUint32(0,!0),i.width=B.getUint32(4,!0),I+=8,C>=4?(i.numDims=B.getUint32(8,!0),I+=4):i.numDims=1,B=new DataView(A,I,40),i.numValidPixel=B.getUint32(0,!0),i.microBlockSize=B.getInt32(4,!0),i.blobSize=B.getInt32(8,!0),i.imageType=B.getInt32(12,!0),i.maxZError=B.getFloat64(16,!0),i.zMin=B.getFloat64(24,!0),i.zMax=B.getFloat64(32,!0),I+=40,g.headerInfo=i,g.ptr=I,C>=3&&(t=C>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(A,I-t,i.blobSize-14))!==i.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(A,g){var I=g.headerInfo,e=this.getDataTypeArray(I.imageType),i=I.numDims*this.getDataTypeSize(I.imageType),t=this.readSubArray(A,g.ptr,e,i),B=this.readSubArray(A,g.ptr+i,e,i);g.ptr+=2*i;var C,Q=!0;for(C=0;C<I.numDims;C++)if(t[C]!==B[C]){Q=!1;break}return I.minValues=t,I.maxValues=B,Q},readSubArray:function(A,g,I,e){var i;if(I===Uint8Array)i=new Uint8Array(A,g,e);else{var t=new ArrayBuffer(e);new Uint8Array(t).set(new Uint8Array(A,g,e)),i=new I(t)}return i},readMask:function(A,g){var I,e,i=g.ptr,t=g.headerInfo,B=t.width*t.height,C=t.numValidPixel,Q=new DataView(A,i,4),E={};if(E.numBytes=Q.getUint32(0,!0),i+=4,(0===C||B===C)&&0!==E.numBytes)throw"invalid mask";if(0===C)I=new Uint8Array(Math.ceil(B/8)),E.bitset=I,e=new Uint8Array(B),g.pixels.resultMask=e,i+=E.numBytes;else if(E.numBytes>0){I=new Uint8Array(Math.ceil(B/8));var s=(Q=new DataView(A,i,E.numBytes)).getInt16(0,!0),a=2,o=0,r=0;do{if(s>0)for(;s--;)I[o++]=Q.getUint8(a++);else for(r=Q.getUint8(a++),s=-s;s--;)I[o++]=r;s=Q.getInt16(a,!0),a+=2}while(a<E.numBytes);if(-32768!==s||o<I.length)throw"Unexpected end of mask RLE encoding";e=new Uint8Array(B);var n=0,h=0;for(h=0;h<B;h++)7&h?(n=I[h>>3],n<<=7&h):n=I[h>>3],128&n&&(e[h]=1);g.pixels.resultMask=e,E.bitset=I,i+=E.numBytes}return g.ptr=i,g.mask=E,!0},readDataOneSweep:function(A,g,I,e){var i,t=g.ptr,B=g.headerInfo,C=B.numDims,Q=B.width*B.height,E=B.imageType,s=B.numValidPixel*o.getDataTypeSize(E)*C,a=g.pixels.resultMask;if(I===Uint8Array)i=new Uint8Array(A,t,s);else{var r=new ArrayBuffer(s);new Uint8Array(r).set(new Uint8Array(A,t,s)),i=new I(r)}if(i.length===Q*C)g.pixels.resultPixels=e?o.swapDimensionOrder(i,Q,C,I,!0):i;else{g.pixels.resultPixels=new I(Q*C);var n=0,h=0,l=0,c=0;if(C>1){if(e){for(h=0;h<Q;h++)if(a[h])for(c=h,l=0;l<C;l++,c+=Q)g.pixels.resultPixels[c]=i[n++]}else for(h=0;h<Q;h++)if(a[h])for(c=h*C,l=0;l<C;l++)g.pixels.resultPixels[c+l]=i[n++]}else for(h=0;h<Q;h++)a[h]&&(g.pixels.resultPixels[h]=i[n++])}return t+=s,g.ptr=t,!0},readHuffmanTree:function(A,g){var I=this.HUFFMAN_LUT_BITS_MAX,e=new DataView(A,g.ptr,16);if(g.ptr+=16,e.getInt32(0,!0)<2)throw"unsupported Huffman version";var i=e.getInt32(4,!0),t=e.getInt32(8,!0),B=e.getInt32(12,!0);if(t>=B)return!1;var C=new Uint32Array(B-t);o.decodeBits(A,g,C);var Q,E,s,a,n=[];for(Q=t;Q<B;Q++)n[E=Q-(Q<i?0:i)]={first:C[Q-t],second:null};var h=A.byteLength-g.ptr,l=Math.ceil(h/4),c=new ArrayBuffer(4*l);new Uint8Array(c).set(new Uint8Array(A,g.ptr,h));var D,w=new Uint32Array(c),d=0,y=0;for(D=w[0],Q=t;Q<B;Q++)(a=n[E=Q-(Q<i?0:i)].first)>0&&(n[E].second=D<<d>>>32-a,32-d>=a?32===(d+=a)&&(d=0,D=w[++y]):(d+=a-32,D=w[++y],n[E].second|=D>>>32-d));var f=0,u=0,S=new r;for(Q=0;Q<n.length;Q++)void 0!==n[Q]&&(f=Math.max(f,n[Q].first));u=f>=I?I:f;var G,N,F,k,R,L=[];for(Q=t;Q<B;Q++)if((a=n[E=Q-(Q<i?0:i)].first)>0)if(G=[a,E],a<=u)for(N=n[E].second<<u-a,F=1<<u-a,s=0;s<F;s++)L[N|s]=G;else for(N=n[E].second,R=S,k=a-1;k>=0;k--)N>>>k&1?(R.right||(R.right=new r),R=R.right):(R.left||(R.left=new r),R=R.left),0!==k||R.val||(R.val=G[1]);return{decodeLut:L,numBitsLUTQick:u,numBitsLUT:f,tree:S,stuffedData:w,srcPtr:y,bitPos:d}},readHuffman:function(A,g,I,e){var i,t,B,C,Q,E,s,a,r,n=g.headerInfo.numDims,h=g.headerInfo.height,l=g.headerInfo.width,c=l*h,D=this.readHuffmanTree(A,g),w=D.decodeLut,d=D.tree,y=D.stuffedData,f=D.srcPtr,u=D.bitPos,S=D.numBitsLUTQick,G=D.numBitsLUT,N=0===g.headerInfo.imageType?128:0,F=g.pixels.resultMask,k=0;u>0&&(f++,u=0);var R,L=y[f],U=1===g.encodeMode,p=new I(c*n),M=p;if(n<2||U){for(R=0;R<n;R++)if(n>1&&(M=new I(p.buffer,c*R,c),k=0),g.headerInfo.numValidPixel===l*h)for(a=0,E=0;E<h;E++)for(s=0;s<l;s++,a++){if(t=0,Q=C=L<<u>>>32-S,32-u<S&&(Q=C|=y[f+1]>>>64-u-S),w[Q])t=w[Q][1],u+=w[Q][0];else for(Q=C=L<<u>>>32-G,32-u<G&&(Q=C|=y[f+1]>>>64-u-G),i=d,r=0;r<G;r++)if(!(i=C>>>G-r-1&1?i.right:i.left).left&&!i.right){t=i.val,u=u+r+1;break}u>=32&&(u-=32,L=y[++f]),B=t-N,U?(B+=s>0?k:E>0?M[a-l]:k,B&=255,M[a]=B,k=B):M[a]=B}else for(a=0,E=0;E<h;E++)for(s=0;s<l;s++,a++)if(F[a]){if(t=0,Q=C=L<<u>>>32-S,32-u<S&&(Q=C|=y[f+1]>>>64-u-S),w[Q])t=w[Q][1],u+=w[Q][0];else for(Q=C=L<<u>>>32-G,32-u<G&&(Q=C|=y[f+1]>>>64-u-G),i=d,r=0;r<G;r++)if(!(i=C>>>G-r-1&1?i.right:i.left).left&&!i.right){t=i.val,u=u+r+1;break}u>=32&&(u-=32,L=y[++f]),B=t-N,U?(s>0&&F[a-1]?B+=k:E>0&&F[a-l]?B+=M[a-l]:B+=k,B&=255,M[a]=B,k=B):M[a]=B}}else for(a=0,E=0;E<h;E++)for(s=0;s<l;s++)if(a=E*l+s,!F||F[a])for(R=0;R<n;R++,a+=c){if(t=0,Q=C=L<<u>>>32-S,32-u<S&&(Q=C|=y[f+1]>>>64-u-S),w[Q])t=w[Q][1],u+=w[Q][0];else for(Q=C=L<<u>>>32-G,32-u<G&&(Q=C|=y[f+1]>>>64-u-G),i=d,r=0;r<G;r++)if(!(i=C>>>G-r-1&1?i.right:i.left).left&&!i.right){t=i.val,u=u+r+1;break}u>=32&&(u-=32,L=y[++f]),B=t-N,M[a]=B}g.ptr=g.ptr+4*(f+1)+(u>0?4:0),g.pixels.resultPixels=p,n>1&&!e&&(g.pixels.resultPixels=o.swapDimensionOrder(p,c,n,I))},decodeBits:function(A,g,I,e,i){var t=g.headerInfo,o=t.fileVersion,r=0,n=A.byteLength-g.ptr>=5?5:A.byteLength-g.ptr,h=new DataView(A,g.ptr,n),l=h.getUint8(0);r++;var c=l>>6,D=0===c?4:3-c,w=(32&l)>0,d=31&l,y=0;if(1===D)y=h.getUint8(r),r++;else if(2===D)y=h.getUint16(r,!0),r+=2;else{if(4!==D)throw"Invalid valid pixel count type";y=h.getUint32(r,!0),r+=4}var f,u,S,G,N,F,k,R,L,U=2*t.maxZError,p=t.numDims>1?t.maxValues[i]:t.zMax;if(w){for(g.counter.lut++,R=h.getUint8(r),r++,G=Math.ceil((R-1)*d/8),N=Math.ceil(G/4),u=new ArrayBuffer(4*N),S=new Uint8Array(u),g.ptr+=r,S.set(new Uint8Array(A,g.ptr,G)),k=new Uint32Array(u),g.ptr+=G,L=0;R-1>>>L;)L++;G=Math.ceil(y*L/8),N=Math.ceil(G/4),u=new ArrayBuffer(4*N),(S=new Uint8Array(u)).set(new Uint8Array(A,g.ptr,G)),f=new Uint32Array(u),g.ptr+=G,F=o>=3?E(k,d,R-1,e,U,p):C(k,d,R-1,e,U,p),o>=3?Q(f,I,L,y,F):B(f,I,L,y,F)}else g.counter.bitstuffer++,L=d,g.ptr+=r,L>0&&(G=Math.ceil(y*L/8),N=Math.ceil(G/4),u=new ArrayBuffer(4*N),(S=new Uint8Array(u)).set(new Uint8Array(A,g.ptr,G)),f=new Uint32Array(u),g.ptr+=G,o>=3?null==e?a(f,I,L,y):Q(f,I,L,y,!1,e,U,p):null==e?s(f,I,L,y):B(f,I,L,y,!1,e,U,p))},readTiles:function(A,g,I,e){var i=g.headerInfo,t=i.width,B=i.height,C=t*B,Q=i.microBlockSize,E=i.imageType,s=o.getDataTypeSize(E),a=Math.ceil(t/Q),r=Math.ceil(B/Q);g.pixels.numBlocksY=r,g.pixels.numBlocksX=a,g.pixels.ptr=0;var n,h,l,c,D,w,d,y,f,u,S=0,G=0,N=0,F=0,k=0,R=0,L=0,U=0,p=0,M=0,Y=0,m=0,K=0,H=0,J=0,b=new I(Q*Q),q=B%Q||Q,x=t%Q||Q,T=i.numDims,O=g.pixels.resultMask,P=g.pixels.resultPixels,v=i.fileVersion>=5?14:15,V=i.zMax;for(N=0;N<r;N++)for(k=N!==r-1?Q:q,F=0;F<a;F++)for(M=N*t*Q+F*Q,Y=t-(R=F!==a-1?Q:x),y=0;y<T;y++){if(T>1?(u=P,M=N*t*Q+F*Q,P=new I(g.pixels.resultPixels.buffer,C*y*s,C),V=i.maxValues[y]):u=null,L=A.byteLength-g.ptr,h={},J=0,U=(n=new DataView(A,g.ptr,Math.min(10,L))).getUint8(0),J++,f=i.fileVersion>=5?4&U:0,p=U>>6&255,(U>>2&v)!=(F*Q>>3&v))throw"integrity issue";if(f&&0===y)throw"integrity issue";if((D=3&U)>3)throw g.ptr+=J,"Invalid block encoding ("+D+")";if(2!==D)if(0===D){if(f)throw"integrity issue";if(g.counter.uncompressed++,g.ptr+=J,m=(m=k*R*s)<(K=A.byteLength-g.ptr)?m:K,l=new ArrayBuffer(m%s===0?m:m+s-m%s),new Uint8Array(l).set(new Uint8Array(A,g.ptr,m)),c=new I(l),H=0,O)for(S=0;S<k;S++){for(G=0;G<R;G++)O[M]&&(P[M]=c[H++]),M++;M+=Y}else for(S=0;S<k;S++){for(G=0;G<R;G++)P[M++]=c[H++];M+=Y}g.ptr+=H*s}else if(w=o.getDataTypeUsed(f&&E<6?4:E,p),d=o.getOnePixel(h,J,w,n),J+=o.getDataTypeSize(w),3===D)if(g.ptr+=J,g.counter.constantoffset++,O)for(S=0;S<k;S++){for(G=0;G<R;G++)O[M]&&(P[M]=f?Math.min(V,u[M]+d):d),M++;M+=Y}else for(S=0;S<k;S++){for(G=0;G<R;G++)P[M]=f?Math.min(V,u[M]+d):d,M++;M+=Y}else if(g.ptr+=J,o.decodeBits(A,g,b,d,y),J=0,f)if(O)for(S=0;S<k;S++){for(G=0;G<R;G++)O[M]&&(P[M]=b[J++]+u[M]),M++;M+=Y}else for(S=0;S<k;S++){for(G=0;G<R;G++)P[M]=b[J++]+u[M],M++;M+=Y}else if(O)for(S=0;S<k;S++){for(G=0;G<R;G++)O[M]&&(P[M]=b[J++]),M++;M+=Y}else for(S=0;S<k;S++){for(G=0;G<R;G++)P[M++]=b[J++];M+=Y}else{if(f)if(O)for(S=0;S<k;S++)for(G=0;G<R;G++)O[M]&&(P[M]=u[M]),M++;else for(S=0;S<k;S++)for(G=0;G<R;G++)P[M]=u[M],M++;g.counter.constant++,g.ptr+=J}}T>1&&!e&&(g.pixels.resultPixels=o.swapDimensionOrder(g.pixels.resultPixels,C,T,I))},formatFileInfo:function(A){return{fileIdentifierString:A.headerInfo.fileIdentifierString,fileVersion:A.headerInfo.fileVersion,imageType:A.headerInfo.imageType,height:A.headerInfo.height,width:A.headerInfo.width,numValidPixel:A.headerInfo.numValidPixel,microBlockSize:A.headerInfo.microBlockSize,blobSize:A.headerInfo.blobSize,maxZError:A.headerInfo.maxZError,pixelType:o.getPixelType(A.headerInfo.imageType),eofOffset:A.eofOffset,mask:A.mask?{numBytes:A.mask.numBytes}:null,pixels:{numBlocksX:A.pixels.numBlocksX,numBlocksY:A.pixels.numBlocksY,maxValue:A.headerInfo.zMax,minValue:A.headerInfo.zMin,noDataValue:A.noDataValue}}},constructConstantSurface:function(A,g){var I=A.headerInfo.zMax,e=A.headerInfo.zMin,i=A.headerInfo.maxValues,t=A.headerInfo.numDims,B=A.headerInfo.height*A.headerInfo.width,C=0,Q=0,E=0,s=A.pixels.resultMask,a=A.pixels.resultPixels;if(s)if(t>1){if(g)for(C=0;C<t;C++)for(E=C*B,I=i[C],Q=0;Q<B;Q++)s[Q]&&(a[E+Q]=I);else for(Q=0;Q<B;Q++)if(s[Q])for(E=Q*t,C=0;C<t;C++)a[E+t]=i[C]}else for(Q=0;Q<B;Q++)s[Q]&&(a[Q]=I);else if(t>1&&e!==I)if(g)for(C=0;C<t;C++)for(E=C*B,I=i[C],Q=0;Q<B;Q++)a[E+Q]=I;else for(Q=0;Q<B;Q++)for(E=Q*t,C=0;C<t;C++)a[E+C]=i[C];else for(Q=0;Q<B*t;Q++)a[Q]=I},getDataTypeArray:function(A){var g;switch(A){case 0:g=Int8Array;break;case 1:g=Uint8Array;break;case 2:g=Int16Array;break;case 3:g=Uint16Array;break;case 4:g=Int32Array;break;case 5:g=Uint32Array;break;case 6:default:g=Float32Array;break;case 7:g=Float64Array}return g},getPixelType:function(A){var g;switch(A){case 0:g="S8";break;case 1:g="U8";break;case 2:g="S16";break;case 3:g="U16";break;case 4:g="S32";break;case 5:g="U32";break;case 6:default:g="F32";break;case 7:g="F64"}return g},isValidPixelValue:function(A,g){if(null==g)return!1;var I;switch(A){case 0:I=g>=-128&&g<=127;break;case 1:I=g>=0&&g<=255;break;case 2:I=g>=-32768&&g<=32767;break;case 3:I=g>=0&&g<=65536;break;case 4:I=g>=-2147483648&&g<=2147483647;break;case 5:I=g>=0&&g<=4294967296;break;case 6:I=g>=-34027999387901484e22&&g<=34027999387901484e22;break;case 7:I=g>=-17976931348623157e292&&g<=17976931348623157e292;break;default:I=!1}return I},getDataTypeSize:function(A){var g=0;switch(A){case 0:case 1:g=1;break;case 2:case 3:g=2;break;case 4:case 5:case 6:g=4;break;case 7:g=8;break;default:g=A}return g},getDataTypeUsed:function(A,g){var I=A;switch(A){case 2:case 4:I=A-g;break;case 3:case 5:I=A-2*g;break;case 6:I=0===g?A:1===g?2:1;break;case 7:I=0===g?A:A-2*g+1;break;default:I=A}return I},getOnePixel:function(A,g,I,e){var i=0;switch(I){case 0:i=e.getInt8(g);break;case 1:i=e.getUint8(g);break;case 2:i=e.getInt16(g,!0);break;case 3:i=e.getUint16(g,!0);break;case 4:i=e.getInt32(g,!0);break;case 5:i=e.getUInt32(g,!0);break;case 6:i=e.getFloat32(g,!0);break;case 7:i=e.getFloat64(g,!0);break;default:throw"the decoder does not understand this pixel type"}return i},swapDimensionOrder:function(A,g,I,e,i){var t=0,B=0,C=0,Q=0,E=A;if(I>1)if(E=new e(g*I),i)for(t=0;t<g;t++)for(Q=t,C=0;C<I;C++,Q+=g)E[Q]=A[B++];else for(t=0;t<g;t++)for(Q=t,C=0;C<I;C++,Q+=g)E[B++]=A[Q];return E}},r=function(A,g,I){this.val=A,this.left=g,this.right=I},{decode:function(A,g){var I=(g=g||{}).noDataValue,e=0,i={};if(i.ptr=g.inputOffset||0,i.pixels={},o.readHeaderInfo(A,i)){var t=i.headerInfo,B=t.fileVersion,C=o.getDataTypeArray(t.imageType);if(B>5)throw"unsupported lerc version 2."+B;o.readMask(A,i),t.numValidPixel===t.width*t.height||i.pixels.resultMask||(i.pixels.resultMask=g.maskData);var Q=t.width*t.height;i.pixels.resultPixels=new C(Q*t.numDims),i.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var E,s=!g.returnPixelInterleavedDims;if(0!==t.numValidPixel)if(t.zMax===t.zMin)o.constructConstantSurface(i,s);else if(B>=4&&o.checkMinMaxRanges(A,i))o.constructConstantSurface(i,s);else{var a=new DataView(A,i.ptr,2),r=a.getUint8(0);if(i.ptr++,r)o.readDataOneSweep(A,i,C,s);else if(B>1&&t.imageType<=1&&Math.abs(t.maxZError-.5)<1e-5){var n=a.getUint8(1);if(i.ptr++,i.encodeMode=n,n>2||B<4&&n>1)throw"Invalid Huffman flag "+n;n?o.readHuffman(A,i,C,s):o.readTiles(A,i,C,s)}else o.readTiles(A,i,C,s)}i.eofOffset=i.ptr,g.inputOffset?(E=i.headerInfo.blobSize+g.inputOffset-i.ptr,Math.abs(E)>=1&&(i.eofOffset=g.inputOffset+i.headerInfo.blobSize)):(E=i.headerInfo.blobSize-i.ptr,Math.abs(E)>=1&&(i.eofOffset=i.headerInfo.blobSize));var h={width:t.width,height:t.height,pixelData:i.pixels.resultPixels,minValue:t.zMin,maxValue:t.zMax,validPixelCount:t.numValidPixel,dimCount:t.numDims,dimStats:{minValues:t.minValues,maxValues:t.maxValues},maskData:i.pixels.resultMask};if(i.pixels.resultMask&&o.isValidPixelValue(t.imageType,I)){var l=i.pixels.resultMask;for(e=0;e<Q;e++)l[e]||(h.pixelData[e]=I);h.noDataValue=I}return i.noDataValue=I,g.returnFileInfo&&(h.fileInfo=o.formatFileInfo(i)),h}},getBandCount:function(A){for(var g=0,I=0,e={ptr:0,pixels:{}};I<A.byteLength-58;)o.readHeaderInfo(A,e),I+=e.headerInfo.blobSize,g++,e.ptr=I;return g}}),D=(n=new ArrayBuffer(4),h=new Uint8Array(n),new Uint32Array(n)[0]=1,1===h[0]),w={decode:function(A,g){if(!D)throw"Big endian system is not supported.";var I,e,i=(g=g||{}).inputOffset||0,t=new Uint8Array(A,i,10),B=String.fromCharCode.apply(null,t);if("CntZImage"===B.trim())I=l,e=1;else{if("Lerc2"!==B.substring(0,5))throw"Unexpected file identifier string: "+B;I=c,e=2}for(var C,Q,E,s,a,o,r=0,n=A.byteLength-10,h=[],w={width:0,height:0,pixels:[],pixelType:g.pixelType,mask:null,statistics:[]},d=0;i<n;){var y=I.decode(A,{inputOffset:i,encodedMaskData:C,maskData:E,returnMask:0===r,returnEncodedMask:0===r,returnFileInfo:!0,returnPixelInterleavedDims:g.returnPixelInterleavedDims,pixelType:g.pixelType||null,noDataValue:g.noDataValue||null});i=y.fileInfo.eofOffset,E=y.maskData,0===r&&(C=y.encodedMaskData,w.width=y.width,w.height=y.height,w.dimCount=y.dimCount||1,w.pixelType=y.pixelType||y.fileInfo.pixelType,w.mask=E),e>1&&(E&&h.push(E),y.fileInfo.mask&&y.fileInfo.mask.numBytes>0&&d++),r++,w.pixels.push(y.pixelData),w.statistics.push({minValue:y.minValue,maxValue:y.maxValue,noDataValue:y.noDataValue,dimStats:y.dimStats})}if(e>1&&d>1){for(o=w.width*w.height,w.bandMasks=h,(E=new Uint8Array(o)).set(h[0]),s=1;s<h.length;s++)for(Q=h[s],a=0;a<o;a++)E[a]=E[a]&Q[a];w.maskData=E}return w}};be.exports?be.exports=w:this.Lerc=w}()),Je.exports),xe=Ke(qe);let Te,Oe,Pe;const ve={env:{emscripten_notify_memory_growth:A=>{Pe=new Uint8Array(Oe.exports.memory.buffer)}}};const Ve="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AikACDcACCAHIDo3AAAgEUEZSA0BIARBGGohBANAIAIpABAhOiAEIAIpABg3AAggBCA6NwAAIAIpACAhOiAEIAIpACg3ABggBCA6NwAQIAJBIGohAiAEQSBqIgQgCkkNAAsMAQsCQAJAIAUoAswCIhEgBUHgAWogJUEHcUEMbGoiDygCACICaiIHIBxLDQAgCSAPKAIEIgogAmoiBmogG0sNACAGQSBqIBQgCWtNDQELIAUgDygCCDYCoAEgBSAPKQIANwOYASAJIBQgBUGYAWogBUHMAmogHCALIBcgIhAgIQYMAQsgAiAJaiEEIA8oAgghFSARKQAAITogCSARKQAINwAIIAkgOjcAAAJAIAJBEUkNACARKQAQITogCSARKQAYNwAYIAkgOjcAECACQRBrQRFIDQAgEUEQaiECIAlBIGohEgNAIAIpABAhOiASIAIpABg3AAggEiA6NwAAIAIpACAhOiASIAIpACg3ABggEiA6NwAQIAJBIGohAiASQSBqIhIgBEkNAAsLIAQgFWshAiAFIAc2AswCIAQgC2sgFUkEQCAVIAQgF2tLDQwgIiAiIAIgC2siD2oiByAKak8EQCAKRQ0CIAQgByAK/AoAAAwCC0EAIA9rIgIEQCAEIAcgAvwKAAALIAogD2ohCiAEIA9rIQQgCyECCyAVQRBPBEAgAikAACE6IAQgAikACDcACCAEIDo3AAAgCkERSA0BIAQgCmohByAEQRBqIQQDQCACKQAQITogBCACKQAYNwAIIAQgOjcAACACKQAgITogBCACKQAoNwAYIAQgOjcAECACQSBqIQIgBEEgaiIEIAdJDQALDAELAkAgFUEHTQRAIAQgAi0AADoAACAEIAItAAE6AAEgBCACLQACOgACIAQgAi0AAzoAAyAEIAIgFUECdCIHQeAaaigCAGoiAigAADYABCACIAdBgBtqKAIAayECDAELIAQgAikAADcAAAsgCkEJSQ0AIAQgCmohDyAEQQhqIgcgAkEIaiICa0EPTARAA0AgByACKQAANwAAIAJBCGohAiAHQQhqIgcgD0kNAAwCCwALIAIpAAAhOiAHIAIpAAg3AAggByA6NwAAIApBGUgNACAEQRhqIQQDQCACKQAQITogBCACKQAYNwAIIAQgOjcAACACKQAgITogBCACKQAoNwAYIAQgOjcAECACQSBqIQIgBEEgaiIEIA9JDQALCyAGQYh/SwRAIAYhAwwLCyAFQeABaiAlQQdxQQxsaiICIA02AgggAiAMNgIEIAIgEDYCAAsgBiAJaiEJICVBAWohJSAQIC1qIAxqIS0MAQsLIAUoArABIAUoArQBRw0HIAUoAqwBQSBHDQcgDiAoayEQA0ACQCAOIBBMBEBBACECA0AgAkEDRg0CIDIgAkECdCIDaiADICZqKAIANgIAIAJBAWohAgwACwALIAVB4AFqIBBBB3FBDGxqIQoCfwJAIAgoAoTsAUECRgRAIAUoAswCIg8gCigCACIEaiIHIAgoAoDsASICSwRAIAIgD0cEQCACIA9rIgIgFCAJa0sNCyAJIA8gAhAfIAogBCACayIENgIAIAIgCWohCQsgBSAWNgLMAiAIQQA2AoTsAQJAAkACQCAEQYCABEoNACAJIAooAgQiDSAEaiIGaiAbSw0AIAZBIGogFCAJa00NAQsgBSAKKAIINgJQIAUgCikCADcDSCAJIBQgBUHIAGogBUHMAmogGSALIBcgIhAgIQYMAQsgBCAWaiEHIAQgCWohDCAKKAIIIQogFikAACE6IAkgFikACDcACCAJIDo3AAACQCAEQRFJDQAgHikAACE6IAkgHikACDcAGCAJIDo3ABAgBEEQa0ERSA0AIAlBIGohAiAeIQQDQCAEKQAQITogAiAEKQAYNwAIIAIgOjcAACAEKQAgITogAiAEKQAoNwAYIAIgOjcAECAEQSBqIQQgAkEgaiICIAxJDQALCyAMIAprIQIgBSAHNgLMAiAMIAtrIApJBEAgCiAMIBdrSw0PICIgIiACIAtrIgdqIgQgDWpPBEAgDUUNAiAMIAQgDfwKAAAMAgtBACAHayICBEAgDCAEIAL8CgAACyAHIA1qIQ0gDCAHayEMIAshAgsgCkEQTwRAIAIpAAAhOiAMIAIpAAg3AAggDCA6NwAAIA1BEUgNASAMIA1qIQcgDEEQaiEEA0AgAikAECE6IAQgAikAGDcACCAEIDo3AAAgAikAICE6IAQgAikAKDcAGCAEIDo3ABAgAkEgaiECIARBIGoiBCAHSQ0ACwwBCwJAIApBB00EQCAMIAItAAA6AAAgDCACLQABOgABIAwgAi0AAjoAAiAMIAItAAM6AAMgDCACIApBAnQiBEHgGmooAgBqIgIoAAA2AAQgAiAEQYAbaigCAGshAgwBCyAMIAIpAAA3AAALIA1BCUkNACAMIA1qIQcgDEEIaiIEIAJBCGoiAmtBD0wEQANAIAQgAikAADcAACACQQhqIQIgBEEIaiIEIAdJDQAMAgsACyACKQAAITogBCACKQAINwAIIAQgOjcAACANQRlIDQAgDEEYaiEEA0AgAikAECE6IAQgAikAGDcACCAEIDo3AAAgAikAICE6IAQgAikAKDcAGCAEIDo3ABAgAkEgaiECIARBIGoiBCAHSQ0ACwsgBkGJf08EQCAGIQMMDgsgGSEcIAYgCWoMAwsgB0EgayECAkACQCAHIBxLDQAgCSAKKAIEIhIgBGoiDGogAksNACAMQSBqIBQgCWtNDQELIAUgCigCCDYCYCAFIAopAgA3A1ggCSAUIAIgBUHYAGogBUHMAmogHCALIBcgIhAhIQwMAgsgBCAJaiEGIAooAgghCiAPKQAAITogCSAPKQAINwAIIAkgOjcAAAJAIARBEUkNACAPKQAQITogCSAPKQAYNwAYIAkgOjcAECAEQRBrQRFIDQAgD0EQaiECIAlBIGohBANAIAIpABAhOiAEIAIpABg3AAggBCA6NwAAIAIpACAhOiAEIAIpACg3ABggBCA6NwAQIAJBIGohAiAEQSBqIgQgBkkNAAsLIAYgCmshAiAFIAc2AswCIAYgC2sgCkkEQCAKIAYgF2tLDQ0gIiAiIAIgC2siB2oiBCASak8EQCASRQ0DIAYgBCAS/AoAAAwDC0EAIAdrIgIEQCAGIAQgAvwKAAALIAcgEmohEiAGIAdrIQYgCyECCyAKQRBPBEAgAikAACE6IAYgAikACDcACCAGIDo3AAAgEkERSA0CIAYgEmohByAGQRBqIQQDQCACKQAQITogBCACKQAYNwAIIAQgOjcAACACKQAgITogBCACKQAoNwAYIAQgOjcAECACQSBqIQIgBEEgaiIEIAdJDQALDAILAkAgCkEHTQRAIAYgAi0AADoAACAGIAItAAE6AAEgBiACLQACOgACIAYgAi0AAzoAAyAGIAIgCkECdCIEQeAaaigCAGoiAigAADYABCACIARBgBtqKAIAayECDAELIAYgAikAADcAAAsgEkEJSQ0BIAYgEmohByAGQQhqIgQgAkEIaiICa0EPTARAA0AgBCACKQAANwAAIAJBCGohAiAE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",Ze=new class{init(){return Te||(Te="undefined"!=typeof fetch?fetch(`data:application/wasm;base64,${Ve}`).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,ve)).then(this._init):WebAssembly.instantiate(Buffer.from(Ve,"base64"),ve).then(this._init),Te)}_init(A){Oe=A.instance,ve.env.emscripten_notify_memory_growth(0)}decode(A,g=0){if(!Oe)throw new Error("ZSTDDecoder: Await .init() before decoding.");const I=A.byteLength,e=Oe.exports.malloc(I);Pe.set(A,e),g=g||Number(Oe.exports.ZSTD_findDecompressedSize(e,I));const i=Oe.exports.malloc(g),t=Oe.exports.ZSTD_decompress(i,g,e,I),B=Pe.slice(i,i+t);return Oe.exports.free(e),Oe.exports.free(i),B}};var ze=Object.freeze({__proto__:null,default:class extends lg{decodeBlock(A){const g=this.parameters,I=g.LercParameters?.[wA];let e=A;switch(I){case dA:break;case yA:e=Me(new Uint8Array(e)).buffer;break;case fA:e=Ze.decode(new Uint8Array(e)).buffer;break;default:throw new Error(`Unsupported LERC additional compression method identifier: ${I}`)}return xe.decode(e,{returnPixelInterleavedDims:1===this.parameters.planarConfiguration}).pixels[0].buffer}},zstd:Ze});let je,We,_e,Xe;const $e={env:{emscripten_notify_memory_growth:A=>{_e=new Uint8Array(We.exports.memory.buffer),Xe=new DataView(_e.buffer)}}};const Ai="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QQhyIQBBACEDA0AgACADTQ0DIANBQGshAwwACwALQWwhCiAOIA5B/ABqIA5B+ABqIAUgBhAGIgJBiH9LDQEgDigCeCIDIARLDQEgACAOIA4oAnwgByAIIAMgDRAlIAEgADYCACACIQoMAQtBbCEKCyAOQYABaiQAIAoLcAEEfyAAQgA3AgAgAgRAIAFBCmohBiABKAIEIQRBACECQQAhAQNAIAEgBHZFBEAgAiAGIAFBA3RqLQAAIgUgAiAFSxshAiABQQFqIQEgAyAFQRZLaiEDDAELCyAAIAI2AgQgACADQQggBGt0NgIACwuuAQEEfyABIAIoAgQiAyABKAIEaiIENgIEIAAgA0ECdEGwGWooAgAgASgCAEEAIARrdnE2AgACQCAEQSFPBEAgAUGwGjYCCAwBCyABKAIIIgMgASgCEE8EQCABEAwMAQsgAyABKAIMIgVGDQAgASADIAMgBWsgBEEDdiIGIAMgBmsgBUkbIgNrIgU2AgggASAEIANBA3RrNgIEIAEgBSgAADYCAAsgACACQQhqNgIEC40CAgN/AX4gACACaiEEAkACQCACQQhOBEAgACABayICQXlIDQELA0AgACAETw0CIAAgAS0AADoAACAAQQFqIQAgAUEBaiEBDAALAAsCQAJAIAJBb0sNACAAIARBIGsiAksNACABKQAAIQYgACABKQAINwAIIAAgBjcAACACIABrIgVBEU4EQCAAQRBqIQAgASEDA0AgAykAECEGIAAgAykAGDcACCAAIAY3AAAgAykAICEGIAAgAykAKDcAGCAAIAY3ABAgA0EgaiEDIABBIGoiACACSQ0ACwsgASAFaiEBDAELIAAhAgsDQCACIARPDQEgAiABLQAAOgAAIAJBAWohAiABQQFqIQEMAAsACwvfAQEGf0G6fyEKAkAgAigCBCIIIAIoAgAiCWoiDSABIABrSw0AQWwhCiAJIAQgAygCACILa0sNACAAIAlqIgQgAigCCCIMayECIAAgAUEgayIBIAsgCUEAEDMgAyAJIAtqNgIAAkACQCAEIAVrIAxPBEAgAiEFDAELIAwgBCAGa0sNAiAHIAcgAiAFayIDaiICIAhqTwRAIAhFDQIgBCACIAj8CgAADAILQQAgA2siAARAIAQgAiAA/AoAAAsgAyAIaiEIIAQgA2shBAsgBCABIAUgCEEBEDML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",gi=new class{init(){return je||(je="undefined"!=typeof fetch?fetch(`data:application/wasm;base64,${Ai}`).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,$e)).then(this._init):WebAssembly.instantiate(Buffer.from(Ai,"base64"),$e).then(this._init),je)}_init(A){We=A.instance,$e.env.emscripten_notify_memory_growth(0)}decode(A,g=0){if(!We)throw new Error("ZSTDDecoder: Await .init() before decoding.");const I=A.byteLength,e=We.exports.malloc(I);if(_e.set(A,e),0===g&&(g=Number(We.exports.ZSTD_findDecompressedSize(e,I))),-1===g){We.exports.free(e);const g=[];for(const I of this.decodeStreaming([A]))g.push(I);if(1===g.length)return g[0];const I=g.reduce((A,g)=>A+g.byteLength,0),i=new Uint8Array(I);let t=0;for(const A of g)i.set(A,t),t+=A.byteLength;return i}const i=We.exports.malloc(g),t=We.exports.ZSTD_decompress(i,g,e,I),B=_e.slice(i,i+t);return We.exports.free(e),We.exports.free(i),B}*decodeStreaming(A){if(!We)throw new Error("ZSTDDecoder: Await .init() before decoding.");const g=We.exports.ZSTD_DStreamInSize(),I=We.exports.malloc(g),e=We.exports.ZSTD_DStreamOutSize(),i=We.exports.malloc(e),t=We.exports.ZSTD_createDCtx(),B=We.exports.malloc(12),C=We.exports.malloc(12);let Q=0;for(const g of A){const A=We.exports.malloc(g.byteLength);for(_e.set(g,A),Xe.setInt32(B,A,!0),Xe.setInt32(B+4,g.byteLength,!0),Xe.setInt32(B+4+4,0,!0);Xe.getUint32(B+4+4,!0)<Xe.getUint32(B+4,!0);){Xe.setInt32(C,i,!0),Xe.setInt32(C+4,e,!0),Xe.setInt32(C+4+4,0,!0),Q=We.exports.ZSTD_decompressStream(t,C,B);const A=Xe.getUint32(C+4+4,!0);yield _e.slice(i,i+A)}We.exports.free(A)}if(We.exports.ZSTD_freeDCtx(t),We.exports.free(I),We.exports.free(i),We.exports.free(B),We.exports.free(C),0!==Q)throw new Error("Incomplete stream, more data expected.")}};var Ii=Object.freeze({__proto__:null,default:class extends lg{decodeBlock(A){return gi.decode(new Uint8Array(A)).buffer}},zstd:gi});var ei=Object.freeze({__proto__:null,default:class extends lg{constructor(A){if(super(A),"undefined"==typeof createImageBitmap)throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if("undefined"==typeof document&&"undefined"==typeof OffscreenCanvas)throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available")}async decodeBlock(A){const g=new Blob([A]),I=await createImageBitmap(g);let e;"undefined"!=typeof document?(e=document.createElement("canvas"),e.width=I.width,e.height=I.height):e=new OffscreenCanvas(I.width,I.height);const i=e.getContext("2d");i.drawImage(I,0,0);const t=i.getImageData(0,0,I.width,I.height).data,B=this.parameters.samplesPerPixel||4;if(4===B)return t.buffer;if(3===B){const A=new Uint8ClampedArray(I.width*I.height*3);for(let g=0,I=0;g<A.length;g+=3,I+=4)A[g]=t[I],A[g+1]=t[I+1],A[g+2]=t[I+2];return A.buffer}throw new Error(`Unsupported SamplesPerPixel value: ${B}`)}}});exports.CogBitmapLayer=jg,exports.CogTerrainLayer=$g,exports.CogTiles=Vg,exports.GeoImage=Kg,exports.suppressGlobalAbortErrors=E;
3
+ function(){var A,g,I,e,i,t,B,C,Q,s,E,a,o,r,n,h,l=(A={defaultNoDataValue:-34027999387901484e22,decode:function(t,B){var C=(B=B||{}).encodedMaskData||null===B.encodedMaskData,Q=i(t,B.inputOffset||0,C),s=null!==B.noDataValue?B.noDataValue:A.defaultNoDataValue,E=g(Q,B.pixelType||Float32Array,B.encodedMaskData,s,B.returnMask),a={width:Q.width,height:Q.height,pixelData:E.resultPixels,minValue:E.minValue,maxValue:Q.pixels.maxValue,noDataValue:s};return E.resultMask&&(a.maskData=E.resultMask),B.returnEncodedMask&&Q.mask&&(a.encodedMaskData=Q.mask.bitset?Q.mask.bitset:null),B.returnFileInfo&&(a.fileInfo=I(Q),B.computeUsedBitDepths&&(a.fileInfo.bitDepths=e(Q))),a}},g=function(A,g,I,e,i){var B,C,Q,s=0,E=A.pixels.numBlocksX,a=A.pixels.numBlocksY,o=Math.floor(A.width/E),r=Math.floor(A.height/a),n=2*A.maxZError,h=Number.MAX_VALUE;I=I||(A.mask?A.mask.bitset:null),C=new g(A.width*A.height),i&&I&&(Q=new Uint8Array(A.width*A.height));for(var l,c,D=new Float32Array(o*r),w=0;w<=a;w++){var d=w!==a?r:A.height%a;if(0!==d)for(var y=0;y<=E;y++){var f=y!==E?o:A.width%E;if(0!==f){var u,S,G,N,F=w*A.width*r+y*o,k=A.width-f,R=A.pixels.blocks[s];if(R.encoding<2?(0===R.encoding?u=R.rawData:(t(R.stuffedData,R.bitsPerPixel,R.numValidPixels,R.offset,n,D,A.pixels.maxValue),u=D),S=0):G=2===R.encoding?0:R.offset,I)for(c=0;c<d;c++){for(7&F&&(N=I[F>>3],N<<=7&F),l=0;l<f;l++)7&F||(N=I[F>>3]),128&N?(Q&&(Q[F]=1),h=h>(B=R.encoding<2?u[S++]:G)?B:h,C[F++]=B):(Q&&(Q[F]=0),C[F++]=e),N<<=1;F+=k}else if(R.encoding<2)for(c=0;c<d;c++){for(l=0;l<f;l++)h=h>(B=u[S++])?B:h,C[F++]=B;F+=k}else for(h=h>G?G:h,c=0;c<d;c++){for(l=0;l<f;l++)C[F++]=G;F+=k}if(1===R.encoding&&S!==R.numValidPixels)throw"Block and Mask do not match";s++}}}return{resultPixels:C,resultMask:Q,minValue:h}},I=function(A){return{fileIdentifierString:A.fileIdentifierString,fileVersion:A.fileVersion,imageType:A.imageType,height:A.height,width:A.width,maxZError:A.maxZError,eofOffset:A.eofOffset,mask:A.mask?{numBlocksX:A.mask.numBlocksX,numBlocksY:A.mask.numBlocksY,numBytes:A.mask.numBytes,maxValue:A.mask.maxValue}:null,pixels:{numBlocksX:A.pixels.numBlocksX,numBlocksY:A.pixels.numBlocksY,numBytes:A.pixels.numBytes,maxValue:A.pixels.maxValue,noDataValue:A.noDataValue}}},e=function(A){for(var g=A.pixels.numBlocksX*A.pixels.numBlocksY,I={},e=0;e<g;e++){var i=A.pixels.blocks[e];0===i.encoding?I.float32=!0:1===i.encoding?I[i.bitsPerPixel]=!0:I[0]=!0}return Object.keys(I)},i=function(A,g,I){var e={},i=new Uint8Array(A,g,10);if(e.fileIdentifierString=String.fromCharCode.apply(null,i),"CntZImage"!==e.fileIdentifierString.trim())throw"Unexpected file identifier string: "+e.fileIdentifierString;g+=10;var t=new DataView(A,g,24);if(e.fileVersion=t.getInt32(0,!0),e.imageType=t.getInt32(4,!0),e.height=t.getUint32(8,!0),e.width=t.getUint32(12,!0),e.maxZError=t.getFloat64(16,!0),g+=24,!I)if(t=new DataView(A,g,16),e.mask={},e.mask.numBlocksY=t.getUint32(0,!0),e.mask.numBlocksX=t.getUint32(4,!0),e.mask.numBytes=t.getUint32(8,!0),e.mask.maxValue=t.getFloat32(12,!0),g+=16,e.mask.numBytes>0){var B=new Uint8Array(Math.ceil(e.width*e.height/8)),C=(t=new DataView(A,g,e.mask.numBytes)).getInt16(0,!0),Q=2,s=0;do{if(C>0)for(;C--;)B[s++]=t.getUint8(Q++);else{var E=t.getUint8(Q++);for(C=-C;C--;)B[s++]=E}C=t.getInt16(Q,!0),Q+=2}while(Q<e.mask.numBytes);if(-32768!==C||s<B.length)throw"Unexpected end of mask RLE encoding";e.mask.bitset=B,g+=e.mask.numBytes}else 0===(e.mask.numBytes|e.mask.numBlocksY|e.mask.maxValue)&&(e.mask.bitset=new Uint8Array(Math.ceil(e.width*e.height/8)));t=new DataView(A,g,16),e.pixels={},e.pixels.numBlocksY=t.getUint32(0,!0),e.pixels.numBlocksX=t.getUint32(4,!0),e.pixels.numBytes=t.getUint32(8,!0),e.pixels.maxValue=t.getFloat32(12,!0),g+=16;var a=e.pixels.numBlocksX,o=e.pixels.numBlocksY,r=a+(e.width%a>0?1:0),n=o+(e.height%o>0?1:0);e.pixels.blocks=new Array(r*n);for(var h=0,l=0;l<n;l++)for(var c=0;c<r;c++){var D=0,w=A.byteLength-g;t=new DataView(A,g,Math.min(10,w));var d={};e.pixels.blocks[h++]=d;var y=t.getUint8(0);if(D++,d.encoding=63&y,d.encoding>3)throw"Invalid block encoding ("+d.encoding+")";if(2!==d.encoding){if(0!==y&&2!==y){if(y>>=6,d.offsetType=y,2===y)d.offset=t.getInt8(1),D++;else if(1===y)d.offset=t.getInt16(1,!0),D+=2;else{if(0!==y)throw"Invalid block offset type";d.offset=t.getFloat32(1,!0),D+=4}if(1===d.encoding)if(y=t.getUint8(D),D++,d.bitsPerPixel=63&y,y>>=6,d.numValidPixelsType=y,2===y)d.numValidPixels=t.getUint8(D),D++;else if(1===y)d.numValidPixels=t.getUint16(D,!0),D+=2;else{if(0!==y)throw"Invalid valid pixel count type";d.numValidPixels=t.getUint32(D,!0),D+=4}}var f;if(g+=D,3!==d.encoding)if(0===d.encoding){var u=(e.pixels.numBytes-1)/4;if(u!==Math.floor(u))throw"uncompressed block has invalid length";f=new ArrayBuffer(4*u),new Uint8Array(f).set(new Uint8Array(A,g,4*u));var S=new Float32Array(f);d.rawData=S,g+=4*u}else if(1===d.encoding){var G=Math.ceil(d.numValidPixels*d.bitsPerPixel/8),N=Math.ceil(G/4);f=new ArrayBuffer(4*N),new Uint8Array(f).set(new Uint8Array(A,g,G)),d.stuffedData=new Uint32Array(f),g+=G}}else g++}return e.eofOffset=g,e},t=function(A,g,I,e,i,t,B){var C,Q,s,E=(1<<g)-1,a=0,o=0,r=Math.ceil((B-e)/i),n=4*A.length-Math.ceil(g*I/8);for(A[A.length-1]<<=8*n,C=0;C<I;C++){if(0===o&&(s=A[a++],o=32),o>=g)Q=s>>>o-g&E,o-=g;else{var h=g-o;Q=(s&E)<<h&E,Q+=(s=A[a++])>>>(o=32-h)}t[C]=Q<r?e+Q*i:B}return t},A),c=(B=function(A,g,I,e,i,t,B,C){var Q,s,E,a,o,r=(1<<I)-1,n=0,h=0,l=4*A.length-Math.ceil(I*e/8);if(A[A.length-1]<<=8*l,i)for(Q=0;Q<e;Q++)0===h&&(E=A[n++],h=32),h>=I?(s=E>>>h-I&r,h-=I):(s=(E&r)<<(a=I-h)&r,s+=(E=A[n++])>>>(h=32-a)),g[Q]=i[s];else for(o=Math.ceil((C-t)/B),Q=0;Q<e;Q++)0===h&&(E=A[n++],h=32),h>=I?(s=E>>>h-I&r,h-=I):(s=(E&r)<<(a=I-h)&r,s+=(E=A[n++])>>>(h=32-a)),g[Q]=s<o?t+s*B:C},C=function(A,g,I,e,i,t){var B,C=(1<<g)-1,Q=0,s=0,E=0,a=0,o=0,r=[],n=4*A.length-Math.ceil(g*I/8);A[A.length-1]<<=8*n;var h=Math.ceil((t-e)/i);for(s=0;s<I;s++)0===a&&(B=A[Q++],a=32),a>=g?(o=B>>>a-g&C,a-=g):(o=(B&C)<<(E=g-a)&C,o+=(B=A[Q++])>>>(a=32-E)),r[s]=o<h?e+o*i:t;return r.unshift(e),r},Q=function(A,g,I,e,i,t,B,C){var Q,s,E,a,o=(1<<I)-1,r=0,n=0,h=0;if(i)for(Q=0;Q<e;Q++)0===n&&(E=A[r++],n=32,h=0),n>=I?(s=E>>>h&o,n-=I,h+=I):(s=E>>>h&o,n=32-(a=I-n),s|=((E=A[r++])&(1<<a)-1)<<I-a,h=a),g[Q]=i[s];else{var l=Math.ceil((C-t)/B);for(Q=0;Q<e;Q++)0===n&&(E=A[r++],n=32,h=0),n>=I?(s=E>>>h&o,n-=I,h+=I):(s=E>>>h&o,n=32-(a=I-n),s|=((E=A[r++])&(1<<a)-1)<<I-a,h=a),g[Q]=s<l?t+s*B:C}return g},s=function(A,g,I,e,i,t){var B,C=(1<<g)-1,Q=0,s=0,E=0,a=0,o=0,r=0,n=[],h=Math.ceil((t-e)/i);for(s=0;s<I;s++)0===a&&(B=A[Q++],a=32,r=0),a>=g?(o=B>>>r&C,a-=g,r+=g):(o=B>>>r&C,a=32-(E=g-a),o|=((B=A[Q++])&(1<<E)-1)<<g-E,r=E),n[s]=o<h?e+o*i:t;return n.unshift(e),n},E=function(A,g,I,e){var i,t,B,C,Q=(1<<I)-1,s=0,E=0,a=4*A.length-Math.ceil(I*e/8);for(A[A.length-1]<<=8*a,i=0;i<e;i++)0===E&&(B=A[s++],E=32),E>=I?(t=B>>>E-I&Q,E-=I):(t=(B&Q)<<(C=I-E)&Q,t+=(B=A[s++])>>>(E=32-C)),g[i]=t;return g},a=function(A,g,I,e){var i,t,B,C,Q=(1<<I)-1,s=0,E=0,a=0;for(i=0;i<e;i++)0===E&&(B=A[s++],E=32,a=0),E>=I?(t=B>>>a&Q,E-=I,a+=I):(t=B>>>a&Q,E=32-(C=I-E),t|=((B=A[s++])&(1<<C)-1)<<I-C,a=C),g[i]=t;return g},o={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(A){for(var g=65535,I=65535,e=A.length,i=Math.floor(e/2),t=0;i;){var B=i>=359?359:i;i-=B;do{g+=A[t++]<<8,I+=g+=A[t++]}while(--B);g=(65535&g)+(g>>>16),I=(65535&I)+(I>>>16)}return 1&e&&(I+=g+=A[t]<<8),((I=(65535&I)+(I>>>16))<<16|(g=(65535&g)+(g>>>16)))>>>0},readHeaderInfo:function(A,g){var I=g.ptr,e=new Uint8Array(A,I,6),i={};if(i.fileIdentifierString=String.fromCharCode.apply(null,e),0!==i.fileIdentifierString.lastIndexOf("Lerc2",0))throw"Unexpected file identifier string (expect Lerc2 ): "+i.fileIdentifierString;I+=6;var t,B=new DataView(A,I,8),C=B.getInt32(0,!0);if(i.fileVersion=C,I+=4,C>=3&&(i.checksum=B.getUint32(4,!0),I+=4),B=new DataView(A,I,12),i.height=B.getUint32(0,!0),i.width=B.getUint32(4,!0),I+=8,C>=4?(i.numDims=B.getUint32(8,!0),I+=4):i.numDims=1,B=new DataView(A,I,40),i.numValidPixel=B.getUint32(0,!0),i.microBlockSize=B.getInt32(4,!0),i.blobSize=B.getInt32(8,!0),i.imageType=B.getInt32(12,!0),i.maxZError=B.getFloat64(16,!0),i.zMin=B.getFloat64(24,!0),i.zMax=B.getFloat64(32,!0),I+=40,g.headerInfo=i,g.ptr=I,C>=3&&(t=C>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(A,I-t,i.blobSize-14))!==i.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(A,g){var I=g.headerInfo,e=this.getDataTypeArray(I.imageType),i=I.numDims*this.getDataTypeSize(I.imageType),t=this.readSubArray(A,g.ptr,e,i),B=this.readSubArray(A,g.ptr+i,e,i);g.ptr+=2*i;var C,Q=!0;for(C=0;C<I.numDims;C++)if(t[C]!==B[C]){Q=!1;break}return I.minValues=t,I.maxValues=B,Q},readSubArray:function(A,g,I,e){var i;if(I===Uint8Array)i=new Uint8Array(A,g,e);else{var t=new ArrayBuffer(e);new Uint8Array(t).set(new Uint8Array(A,g,e)),i=new I(t)}return i},readMask:function(A,g){var I,e,i=g.ptr,t=g.headerInfo,B=t.width*t.height,C=t.numValidPixel,Q=new DataView(A,i,4),s={};if(s.numBytes=Q.getUint32(0,!0),i+=4,(0===C||B===C)&&0!==s.numBytes)throw"invalid mask";if(0===C)I=new Uint8Array(Math.ceil(B/8)),s.bitset=I,e=new Uint8Array(B),g.pixels.resultMask=e,i+=s.numBytes;else if(s.numBytes>0){I=new Uint8Array(Math.ceil(B/8));var E=(Q=new DataView(A,i,s.numBytes)).getInt16(0,!0),a=2,o=0,r=0;do{if(E>0)for(;E--;)I[o++]=Q.getUint8(a++);else for(r=Q.getUint8(a++),E=-E;E--;)I[o++]=r;E=Q.getInt16(a,!0),a+=2}while(a<s.numBytes);if(-32768!==E||o<I.length)throw"Unexpected end of mask RLE encoding";e=new Uint8Array(B);var n=0,h=0;for(h=0;h<B;h++)7&h?(n=I[h>>3],n<<=7&h):n=I[h>>3],128&n&&(e[h]=1);g.pixels.resultMask=e,s.bitset=I,i+=s.numBytes}return g.ptr=i,g.mask=s,!0},readDataOneSweep:function(A,g,I,e){var i,t=g.ptr,B=g.headerInfo,C=B.numDims,Q=B.width*B.height,s=B.imageType,E=B.numValidPixel*o.getDataTypeSize(s)*C,a=g.pixels.resultMask;if(I===Uint8Array)i=new Uint8Array(A,t,E);else{var r=new ArrayBuffer(E);new Uint8Array(r).set(new Uint8Array(A,t,E)),i=new I(r)}if(i.length===Q*C)g.pixels.resultPixels=e?o.swapDimensionOrder(i,Q,C,I,!0):i;else{g.pixels.resultPixels=new I(Q*C);var n=0,h=0,l=0,c=0;if(C>1){if(e){for(h=0;h<Q;h++)if(a[h])for(c=h,l=0;l<C;l++,c+=Q)g.pixels.resultPixels[c]=i[n++]}else for(h=0;h<Q;h++)if(a[h])for(c=h*C,l=0;l<C;l++)g.pixels.resultPixels[c+l]=i[n++]}else for(h=0;h<Q;h++)a[h]&&(g.pixels.resultPixels[h]=i[n++])}return t+=E,g.ptr=t,!0},readHuffmanTree:function(A,g){var I=this.HUFFMAN_LUT_BITS_MAX,e=new DataView(A,g.ptr,16);if(g.ptr+=16,e.getInt32(0,!0)<2)throw"unsupported Huffman version";var i=e.getInt32(4,!0),t=e.getInt32(8,!0),B=e.getInt32(12,!0);if(t>=B)return!1;var C=new Uint32Array(B-t);o.decodeBits(A,g,C);var Q,s,E,a,n=[];for(Q=t;Q<B;Q++)n[s=Q-(Q<i?0:i)]={first:C[Q-t],second:null};var h=A.byteLength-g.ptr,l=Math.ceil(h/4),c=new ArrayBuffer(4*l);new Uint8Array(c).set(new Uint8Array(A,g.ptr,h));var D,w=new Uint32Array(c),d=0,y=0;for(D=w[0],Q=t;Q<B;Q++)(a=n[s=Q-(Q<i?0:i)].first)>0&&(n[s].second=D<<d>>>32-a,32-d>=a?32===(d+=a)&&(d=0,D=w[++y]):(d+=a-32,D=w[++y],n[s].second|=D>>>32-d));var f=0,u=0,S=new r;for(Q=0;Q<n.length;Q++)void 0!==n[Q]&&(f=Math.max(f,n[Q].first));u=f>=I?I:f;var G,N,F,k,R,L=[];for(Q=t;Q<B;Q++)if((a=n[s=Q-(Q<i?0:i)].first)>0)if(G=[a,s],a<=u)for(N=n[s].second<<u-a,F=1<<u-a,E=0;E<F;E++)L[N|E]=G;else for(N=n[s].second,R=S,k=a-1;k>=0;k--)N>>>k&1?(R.right||(R.right=new r),R=R.right):(R.left||(R.left=new r),R=R.left),0!==k||R.val||(R.val=G[1]);return{decodeLut:L,numBitsLUTQick:u,numBitsLUT:f,tree:S,stuffedData:w,srcPtr:y,bitPos:d}},readHuffman:function(A,g,I,e){var i,t,B,C,Q,s,E,a,r,n=g.headerInfo.numDims,h=g.headerInfo.height,l=g.headerInfo.width,c=l*h,D=this.readHuffmanTree(A,g),w=D.decodeLut,d=D.tree,y=D.stuffedData,f=D.srcPtr,u=D.bitPos,S=D.numBitsLUTQick,G=D.numBitsLUT,N=0===g.headerInfo.imageType?128:0,F=g.pixels.resultMask,k=0;u>0&&(f++,u=0);var R,L=y[f],U=1===g.encodeMode,p=new I(c*n),M=p;if(n<2||U){for(R=0;R<n;R++)if(n>1&&(M=new I(p.buffer,c*R,c),k=0),g.headerInfo.numValidPixel===l*h)for(a=0,s=0;s<h;s++)for(E=0;E<l;E++,a++){if(t=0,Q=C=L<<u>>>32-S,32-u<S&&(Q=C|=y[f+1]>>>64-u-S),w[Q])t=w[Q][1],u+=w[Q][0];else for(Q=C=L<<u>>>32-G,32-u<G&&(Q=C|=y[f+1]>>>64-u-G),i=d,r=0;r<G;r++)if(!(i=C>>>G-r-1&1?i.right:i.left).left&&!i.right){t=i.val,u=u+r+1;break}u>=32&&(u-=32,L=y[++f]),B=t-N,U?(B+=E>0?k:s>0?M[a-l]:k,B&=255,M[a]=B,k=B):M[a]=B}else for(a=0,s=0;s<h;s++)for(E=0;E<l;E++,a++)if(F[a]){if(t=0,Q=C=L<<u>>>32-S,32-u<S&&(Q=C|=y[f+1]>>>64-u-S),w[Q])t=w[Q][1],u+=w[Q][0];else for(Q=C=L<<u>>>32-G,32-u<G&&(Q=C|=y[f+1]>>>64-u-G),i=d,r=0;r<G;r++)if(!(i=C>>>G-r-1&1?i.right:i.left).left&&!i.right){t=i.val,u=u+r+1;break}u>=32&&(u-=32,L=y[++f]),B=t-N,U?(E>0&&F[a-1]?B+=k:s>0&&F[a-l]?B+=M[a-l]:B+=k,B&=255,M[a]=B,k=B):M[a]=B}}else for(a=0,s=0;s<h;s++)for(E=0;E<l;E++)if(a=s*l+E,!F||F[a])for(R=0;R<n;R++,a+=c){if(t=0,Q=C=L<<u>>>32-S,32-u<S&&(Q=C|=y[f+1]>>>64-u-S),w[Q])t=w[Q][1],u+=w[Q][0];else for(Q=C=L<<u>>>32-G,32-u<G&&(Q=C|=y[f+1]>>>64-u-G),i=d,r=0;r<G;r++)if(!(i=C>>>G-r-1&1?i.right:i.left).left&&!i.right){t=i.val,u=u+r+1;break}u>=32&&(u-=32,L=y[++f]),B=t-N,M[a]=B}g.ptr=g.ptr+4*(f+1)+(u>0?4:0),g.pixels.resultPixels=p,n>1&&!e&&(g.pixels.resultPixels=o.swapDimensionOrder(p,c,n,I))},decodeBits:function(A,g,I,e,i){var t=g.headerInfo,o=t.fileVersion,r=0,n=A.byteLength-g.ptr>=5?5:A.byteLength-g.ptr,h=new DataView(A,g.ptr,n),l=h.getUint8(0);r++;var c=l>>6,D=0===c?4:3-c,w=(32&l)>0,d=31&l,y=0;if(1===D)y=h.getUint8(r),r++;else if(2===D)y=h.getUint16(r,!0),r+=2;else{if(4!==D)throw"Invalid valid pixel count type";y=h.getUint32(r,!0),r+=4}var f,u,S,G,N,F,k,R,L,U=2*t.maxZError,p=t.numDims>1?t.maxValues[i]:t.zMax;if(w){for(g.counter.lut++,R=h.getUint8(r),r++,G=Math.ceil((R-1)*d/8),N=Math.ceil(G/4),u=new ArrayBuffer(4*N),S=new Uint8Array(u),g.ptr+=r,S.set(new Uint8Array(A,g.ptr,G)),k=new Uint32Array(u),g.ptr+=G,L=0;R-1>>>L;)L++;G=Math.ceil(y*L/8),N=Math.ceil(G/4),u=new ArrayBuffer(4*N),(S=new Uint8Array(u)).set(new Uint8Array(A,g.ptr,G)),f=new Uint32Array(u),g.ptr+=G,F=o>=3?s(k,d,R-1,e,U,p):C(k,d,R-1,e,U,p),o>=3?Q(f,I,L,y,F):B(f,I,L,y,F)}else g.counter.bitstuffer++,L=d,g.ptr+=r,L>0&&(G=Math.ceil(y*L/8),N=Math.ceil(G/4),u=new ArrayBuffer(4*N),(S=new Uint8Array(u)).set(new Uint8Array(A,g.ptr,G)),f=new Uint32Array(u),g.ptr+=G,o>=3?null==e?a(f,I,L,y):Q(f,I,L,y,!1,e,U,p):null==e?E(f,I,L,y):B(f,I,L,y,!1,e,U,p))},readTiles:function(A,g,I,e){var i=g.headerInfo,t=i.width,B=i.height,C=t*B,Q=i.microBlockSize,s=i.imageType,E=o.getDataTypeSize(s),a=Math.ceil(t/Q),r=Math.ceil(B/Q);g.pixels.numBlocksY=r,g.pixels.numBlocksX=a,g.pixels.ptr=0;var n,h,l,c,D,w,d,y,f,u,S=0,G=0,N=0,F=0,k=0,R=0,L=0,U=0,p=0,M=0,Y=0,m=0,K=0,H=0,J=0,b=new I(Q*Q),q=B%Q||Q,x=t%Q||Q,T=i.numDims,O=g.pixels.resultMask,P=g.pixels.resultPixels,v=i.fileVersion>=5?14:15,V=i.zMax;for(N=0;N<r;N++)for(k=N!==r-1?Q:q,F=0;F<a;F++)for(M=N*t*Q+F*Q,Y=t-(R=F!==a-1?Q:x),y=0;y<T;y++){if(T>1?(u=P,M=N*t*Q+F*Q,P=new I(g.pixels.resultPixels.buffer,C*y*E,C),V=i.maxValues[y]):u=null,L=A.byteLength-g.ptr,h={},J=0,U=(n=new DataView(A,g.ptr,Math.min(10,L))).getUint8(0),J++,f=i.fileVersion>=5?4&U:0,p=U>>6&255,(U>>2&v)!=(F*Q>>3&v))throw"integrity issue";if(f&&0===y)throw"integrity issue";if((D=3&U)>3)throw g.ptr+=J,"Invalid block encoding ("+D+")";if(2!==D)if(0===D){if(f)throw"integrity issue";if(g.counter.uncompressed++,g.ptr+=J,m=(m=k*R*E)<(K=A.byteLength-g.ptr)?m:K,l=new ArrayBuffer(m%E===0?m:m+E-m%E),new Uint8Array(l).set(new Uint8Array(A,g.ptr,m)),c=new I(l),H=0,O)for(S=0;S<k;S++){for(G=0;G<R;G++)O[M]&&(P[M]=c[H++]),M++;M+=Y}else for(S=0;S<k;S++){for(G=0;G<R;G++)P[M++]=c[H++];M+=Y}g.ptr+=H*E}else if(w=o.getDataTypeUsed(f&&s<6?4:s,p),d=o.getOnePixel(h,J,w,n),J+=o.getDataTypeSize(w),3===D)if(g.ptr+=J,g.counter.constantoffset++,O)for(S=0;S<k;S++){for(G=0;G<R;G++)O[M]&&(P[M]=f?Math.min(V,u[M]+d):d),M++;M+=Y}else for(S=0;S<k;S++){for(G=0;G<R;G++)P[M]=f?Math.min(V,u[M]+d):d,M++;M+=Y}else if(g.ptr+=J,o.decodeBits(A,g,b,d,y),J=0,f)if(O)for(S=0;S<k;S++){for(G=0;G<R;G++)O[M]&&(P[M]=b[J++]+u[M]),M++;M+=Y}else for(S=0;S<k;S++){for(G=0;G<R;G++)P[M]=b[J++]+u[M],M++;M+=Y}else if(O)for(S=0;S<k;S++){for(G=0;G<R;G++)O[M]&&(P[M]=b[J++]),M++;M+=Y}else for(S=0;S<k;S++){for(G=0;G<R;G++)P[M++]=b[J++];M+=Y}else{if(f)if(O)for(S=0;S<k;S++)for(G=0;G<R;G++)O[M]&&(P[M]=u[M]),M++;else for(S=0;S<k;S++)for(G=0;G<R;G++)P[M]=u[M],M++;g.counter.constant++,g.ptr+=J}}T>1&&!e&&(g.pixels.resultPixels=o.swapDimensionOrder(g.pixels.resultPixels,C,T,I))},formatFileInfo:function(A){return{fileIdentifierString:A.headerInfo.fileIdentifierString,fileVersion:A.headerInfo.fileVersion,imageType:A.headerInfo.imageType,height:A.headerInfo.height,width:A.headerInfo.width,numValidPixel:A.headerInfo.numValidPixel,microBlockSize:A.headerInfo.microBlockSize,blobSize:A.headerInfo.blobSize,maxZError:A.headerInfo.maxZError,pixelType:o.getPixelType(A.headerInfo.imageType),eofOffset:A.eofOffset,mask:A.mask?{numBytes:A.mask.numBytes}:null,pixels:{numBlocksX:A.pixels.numBlocksX,numBlocksY:A.pixels.numBlocksY,maxValue:A.headerInfo.zMax,minValue:A.headerInfo.zMin,noDataValue:A.noDataValue}}},constructConstantSurface:function(A,g){var I=A.headerInfo.zMax,e=A.headerInfo.zMin,i=A.headerInfo.maxValues,t=A.headerInfo.numDims,B=A.headerInfo.height*A.headerInfo.width,C=0,Q=0,s=0,E=A.pixels.resultMask,a=A.pixels.resultPixels;if(E)if(t>1){if(g)for(C=0;C<t;C++)for(s=C*B,I=i[C],Q=0;Q<B;Q++)E[Q]&&(a[s+Q]=I);else for(Q=0;Q<B;Q++)if(E[Q])for(s=Q*t,C=0;C<t;C++)a[s+t]=i[C]}else for(Q=0;Q<B;Q++)E[Q]&&(a[Q]=I);else if(t>1&&e!==I)if(g)for(C=0;C<t;C++)for(s=C*B,I=i[C],Q=0;Q<B;Q++)a[s+Q]=I;else for(Q=0;Q<B;Q++)for(s=Q*t,C=0;C<t;C++)a[s+C]=i[C];else for(Q=0;Q<B*t;Q++)a[Q]=I},getDataTypeArray:function(A){var g;switch(A){case 0:g=Int8Array;break;case 1:g=Uint8Array;break;case 2:g=Int16Array;break;case 3:g=Uint16Array;break;case 4:g=Int32Array;break;case 5:g=Uint32Array;break;case 6:default:g=Float32Array;break;case 7:g=Float64Array}return g},getPixelType:function(A){var g;switch(A){case 0:g="S8";break;case 1:g="U8";break;case 2:g="S16";break;case 3:g="U16";break;case 4:g="S32";break;case 5:g="U32";break;case 6:default:g="F32";break;case 7:g="F64"}return g},isValidPixelValue:function(A,g){if(null==g)return!1;var I;switch(A){case 0:I=g>=-128&&g<=127;break;case 1:I=g>=0&&g<=255;break;case 2:I=g>=-32768&&g<=32767;break;case 3:I=g>=0&&g<=65536;break;case 4:I=g>=-2147483648&&g<=2147483647;break;case 5:I=g>=0&&g<=4294967296;break;case 6:I=g>=-34027999387901484e22&&g<=34027999387901484e22;break;case 7:I=g>=-17976931348623157e292&&g<=17976931348623157e292;break;default:I=!1}return I},getDataTypeSize:function(A){var g=0;switch(A){case 0:case 1:g=1;break;case 2:case 3:g=2;break;case 4:case 5:case 6:g=4;break;case 7:g=8;break;default:g=A}return g},getDataTypeUsed:function(A,g){var I=A;switch(A){case 2:case 4:I=A-g;break;case 3:case 5:I=A-2*g;break;case 6:I=0===g?A:1===g?2:1;break;case 7:I=0===g?A:A-2*g+1;break;default:I=A}return I},getOnePixel:function(A,g,I,e){var i=0;switch(I){case 0:i=e.getInt8(g);break;case 1:i=e.getUint8(g);break;case 2:i=e.getInt16(g,!0);break;case 3:i=e.getUint16(g,!0);break;case 4:i=e.getInt32(g,!0);break;case 5:i=e.getUInt32(g,!0);break;case 6:i=e.getFloat32(g,!0);break;case 7:i=e.getFloat64(g,!0);break;default:throw"the decoder does not understand this pixel type"}return i},swapDimensionOrder:function(A,g,I,e,i){var t=0,B=0,C=0,Q=0,s=A;if(I>1)if(s=new e(g*I),i)for(t=0;t<g;t++)for(Q=t,C=0;C<I;C++,Q+=g)s[Q]=A[B++];else for(t=0;t<g;t++)for(Q=t,C=0;C<I;C++,Q+=g)s[B++]=A[Q];return s}},r=function(A,g,I){this.val=A,this.left=g,this.right=I},{decode:function(A,g){var I=(g=g||{}).noDataValue,e=0,i={};if(i.ptr=g.inputOffset||0,i.pixels={},o.readHeaderInfo(A,i)){var t=i.headerInfo,B=t.fileVersion,C=o.getDataTypeArray(t.imageType);if(B>5)throw"unsupported lerc version 2."+B;o.readMask(A,i),t.numValidPixel===t.width*t.height||i.pixels.resultMask||(i.pixels.resultMask=g.maskData);var Q=t.width*t.height;i.pixels.resultPixels=new C(Q*t.numDims),i.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var s,E=!g.returnPixelInterleavedDims;if(0!==t.numValidPixel)if(t.zMax===t.zMin)o.constructConstantSurface(i,E);else if(B>=4&&o.checkMinMaxRanges(A,i))o.constructConstantSurface(i,E);else{var a=new DataView(A,i.ptr,2),r=a.getUint8(0);if(i.ptr++,r)o.readDataOneSweep(A,i,C,E);else if(B>1&&t.imageType<=1&&Math.abs(t.maxZError-.5)<1e-5){var n=a.getUint8(1);if(i.ptr++,i.encodeMode=n,n>2||B<4&&n>1)throw"Invalid Huffman flag "+n;n?o.readHuffman(A,i,C,E):o.readTiles(A,i,C,E)}else o.readTiles(A,i,C,E)}i.eofOffset=i.ptr,g.inputOffset?(s=i.headerInfo.blobSize+g.inputOffset-i.ptr,Math.abs(s)>=1&&(i.eofOffset=g.inputOffset+i.headerInfo.blobSize)):(s=i.headerInfo.blobSize-i.ptr,Math.abs(s)>=1&&(i.eofOffset=i.headerInfo.blobSize));var h={width:t.width,height:t.height,pixelData:i.pixels.resultPixels,minValue:t.zMin,maxValue:t.zMax,validPixelCount:t.numValidPixel,dimCount:t.numDims,dimStats:{minValues:t.minValues,maxValues:t.maxValues},maskData:i.pixels.resultMask};if(i.pixels.resultMask&&o.isValidPixelValue(t.imageType,I)){var l=i.pixels.resultMask;for(e=0;e<Q;e++)l[e]||(h.pixelData[e]=I);h.noDataValue=I}return i.noDataValue=I,g.returnFileInfo&&(h.fileInfo=o.formatFileInfo(i)),h}},getBandCount:function(A){for(var g=0,I=0,e={ptr:0,pixels:{}};I<A.byteLength-58;)o.readHeaderInfo(A,e),I+=e.headerInfo.blobSize,g++,e.ptr=I;return g}}),D=(n=new ArrayBuffer(4),h=new Uint8Array(n),new Uint32Array(n)[0]=1,1===h[0]),w={decode:function(A,g){if(!D)throw"Big endian system is not supported.";var I,e,i=(g=g||{}).inputOffset||0,t=new Uint8Array(A,i,10),B=String.fromCharCode.apply(null,t);if("CntZImage"===B.trim())I=l,e=1;else{if("Lerc2"!==B.substring(0,5))throw"Unexpected file identifier string: "+B;I=c,e=2}for(var C,Q,s,E,a,o,r=0,n=A.byteLength-10,h=[],w={width:0,height:0,pixels:[],pixelType:g.pixelType,mask:null,statistics:[]},d=0;i<n;){var y=I.decode(A,{inputOffset:i,encodedMaskData:C,maskData:s,returnMask:0===r,returnEncodedMask:0===r,returnFileInfo:!0,returnPixelInterleavedDims:g.returnPixelInterleavedDims,pixelType:g.pixelType||null,noDataValue:g.noDataValue||null});i=y.fileInfo.eofOffset,s=y.maskData,0===r&&(C=y.encodedMaskData,w.width=y.width,w.height=y.height,w.dimCount=y.dimCount||1,w.pixelType=y.pixelType||y.fileInfo.pixelType,w.mask=s),e>1&&(s&&h.push(s),y.fileInfo.mask&&y.fileInfo.mask.numBytes>0&&d++),r++,w.pixels.push(y.pixelData),w.statistics.push({minValue:y.minValue,maxValue:y.maxValue,noDataValue:y.noDataValue,dimStats:y.dimStats})}if(e>1&&d>1){for(o=w.width*w.height,w.bandMasks=h,(s=new Uint8Array(o)).set(h[0]),E=1;E<h.length;E++)for(Q=h[E],a=0;a<o;a++)s[a]=s[a]&Q[a];w.maskData=s}return w}};be.exports?be.exports=w:this.Lerc=w}()),Je.exports),xe=Ke(qe);let Te,Oe,Pe;const ve={env:{emscripten_notify_memory_growth:A=>{Pe=new Uint8Array(Oe.exports.memory.buffer)}}};const Ve="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AikACDcACCAHIDo3AAAgEUEZSA0BIARBGGohBANAIAIpABAhOiAEIAIpABg3AAggBCA6NwAAIAIpACAhOiAEIAIpACg3ABggBCA6NwAQIAJBIGohAiAEQSBqIgQgCkkNAAsMAQsCQAJAIAUoAswCIhEgBUHgAWogJUEHcUEMbGoiDygCACICaiIHIBxLDQAgCSAPKAIEIgogAmoiBmogG0sNACAGQSBqIBQgCWtNDQELIAUgDygCCDYCoAEgBSAPKQIANwOYASAJIBQgBUGYAWogBUHMAmogHCALIBcgIhAgIQYMAQsgAiAJaiEEIA8oAgghFSARKQAAITogCSARKQAINwAIIAkgOjcAAAJAIAJBEUkNACARKQAQITogCSARKQAYNwAYIAkgOjcAECACQRBrQRFIDQAgEUEQaiECIAlBIGohEgNAIAIpABAhOiASIAIpABg3AAggEiA6NwAAIAIpACAhOiASIAIpACg3ABggEiA6NwAQIAJBIGohAiASQSBqIhIgBEkNAAsLIAQgFWshAiAFIAc2AswCIAQgC2sgFUkEQCAVIAQgF2tLDQwgIiAiIAIgC2siD2oiByAKak8EQCAKRQ0CIAQgByAK/AoAAAwCC0EAIA9rIgIEQCAEIAcgAvwKAAALIAogD2ohCiAEIA9rIQQgCyECCyAVQRBPBEAgAikAACE6IAQgAikACDcACCAEIDo3AAAgCkERSA0BIAQgCmohByAEQRBqIQQDQCACKQAQITogBCACKQAYNwAIIAQgOjcAACACKQAgITogBCACKQAoNwAYIAQgOjcAECACQSBqIQIgBEEgaiIEIAdJDQALDAELAkAgFUEHTQRAIAQgAi0AADoAACAEIAItAAE6AAEgBCACLQACOgACIAQgAi0AAzoAAyAEIAIgFUECdCIHQeAaaigCAGoiAigAADYABCACIAdBgBtqKAIAayECDAELIAQgAikAADcAAAsgCkEJSQ0AIAQgCmohDyAEQQhqIgcgAkEIaiICa0EPTARAA0AgByACKQAANwAAIAJBCGohAiAHQQhqIgcgD0kNAAwCCwALIAIpAAAhOiAHIAIpAAg3AAggByA6NwAAIApBGUgNACAEQRhqIQQDQCACKQAQITogBCACKQAYNwAIIAQgOjcAACACKQAgITogBCACKQAoNwAYIAQgOjcAECACQSBqIQIgBEEgaiIEIA9JDQALCyAGQYh/SwRAIAYhAwwLCyAFQeABaiAlQQdxQQxsaiICIA02AgggAiAMNgIEIAIgEDYCAAsgBiAJaiEJICVBAWohJSAQIC1qIAxqIS0MAQsLIAUoArABIAUoArQBRw0HIAUoAqwBQSBHDQcgDiAoayEQA0ACQCAOIBBMBEBBACECA0AgAkEDRg0CIDIgAkECdCIDaiADICZqKAIANgIAIAJBAWohAgwACwALIAVB4AFqIBBBB3FBDGxqIQoCfwJAIAgoAoTsAUECRgRAIAUoAswCIg8gCigCACIEaiIHIAgoAoDsASICSwRAIAIgD0cEQCACIA9rIgIgFCAJa0sNCyAJIA8gAhAfIAogBCACayIENgIAIAIgCWohCQsgBSAWNgLMAiAIQQA2AoTsAQJAAkACQCAEQYCABEoNACAJIAooAgQiDSAEaiIGaiAbSw0AIAZBIGogFCAJa00NAQsgBSAKKAIINgJQIAUgCikCADcDSCAJIBQgBUHIAGogBUHMAmogGSALIBcgIhAgIQYMAQsgBCAWaiEHIAQgCWohDCAKKAIIIQogFikAACE6IAkgFikACDcACCAJIDo3AAACQCAEQRFJDQAgHikAACE6IAkgHikACDcAGCAJIDo3ABAgBEEQa0ERSA0AIAlBIGohAiAeIQQDQCAEKQAQITogAiAEKQAYNwAIIAIgOjcAACAEKQAgITogAiAEKQAoNwAYIAIgOjcAECAEQSBqIQQgAkEgaiICIAxJDQALCyAMIAprIQIgBSAHNgLMAiAMIAtrIApJBEAgCiAMIBdrSw0PICIgIiACIAtrIgdqIgQgDWpPBEAgDUUNAiAMIAQgDfwKAAAMAgtBACAHayICBEAgDCAEIAL8CgAACyAHIA1qIQ0gDCAHayEMIAshAgsgCkEQTwRAIAIpAAAhOiAMIAIpAAg3AAggDCA6NwAAIA1BEUgNASAMIA1qIQcgDEEQaiEEA0AgAikAECE6IAQgAikAGDcACCAEIDo3AAAgAikAICE6IAQgAikAKDcAGCAEIDo3ABAgAkEgaiECIARBIGoiBCAHSQ0ACwwBCwJAIApBB00EQCAMIAItAAA6AAAgDCACLQABOgABIAwgAi0AAjoAAiAMIAItAAM6AAMgDCACIApBAnQiBEHgGmooAgBqIgIoAAA2AAQgAiAEQYAbaigCAGshAgwBCyAMIAIpAAA3AAALIA1BCUkNACAMIA1qIQcgDEEIaiIEIAJBCGoiAmtBD0wEQANAIAQgAikAADcAACACQQhqIQIgBEEIaiIEIAdJDQAMAgsACyACKQAAITogBCACKQAINwAIIAQgOjcAACANQRlIDQAgDEEYaiEEA0AgAikAECE6IAQgAikAGDcACCAEIDo3AAAgAikAICE6IAQgAikAKDcAGCAEIDo3ABAgAkEgaiECIARBIGoiBCAHSQ0ACwsgBkGJf08EQCAGIQMMDgsgGSEcIAYgCWoMAwsgB0EgayECAkACQCAHIBxLDQAgCSAKKAIEIhIgBGoiDGogAksNACAMQSBqIBQgCWtNDQELIAUgCigCCDYCYCAFIAopAgA3A1ggCSAUIAIgBUHYAGogBUHMAmogHCALIBcgIhAhIQwMAgsgBCAJaiEGIAooAgghCiAPKQAAITogCSAPKQAINwAIIAkgOjcAAAJAIARBEUkNACAPKQAQITogCSAPKQAYNwAYIAkgOjcAECAEQRBrQRFIDQAgD0EQaiECIAlBIGohBANAIAIpABAhOiAEIAIpABg3AAggBCA6NwAAIAIpACAhOiAEIAIpACg3ABggBCA6NwAQIAJBIGohAiAEQSBqIgQgBkkNAAsLIAYgCmshAiAFIAc2AswCIAYgC2sgCkkEQCAKIAYgF2tLDQ0gIiAiIAIgC2siB2oiBCASak8EQCASRQ0DIAYgBCAS/AoAAAwDC0EAIAdrIgIEQCAGIAQgAvwKAAALIAcgEmohEiAGIAdrIQYgCyECCyAKQRBPBEAgAikAACE6IAYgAikACDcACCAGIDo3AAAgEkERSA0CIAYgEmohByAGQRBqIQQDQCACKQAQITogBCACKQAYNwAIIAQgOjcAACACKQAgITogBCACKQAoNwAYIAQgOjcAECACQSBqIQIgBEEgaiIEIAdJDQALDAILAkAgCkEHTQRAIAYgAi0AADoAACAGIAItAAE6AAEgBiACLQACOgACIAYgAi0AAzoAAyAGIAIgCkECdCIEQeAaaigCAGoiAigAADYABCACIARBgBtqKAIAayECDAELIAYgAikAADcAAAsgEkEJSQ0BIAYgEmohByAGQQhqIgQgAkEIaiICa0EPTARAA0AgBCACKQAANwAAIAJBCGohAiAE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",Ze=new class{init(){return Te||(Te="undefined"!=typeof fetch?fetch(`data:application/wasm;base64,${Ve}`).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,ve)).then(this._init):WebAssembly.instantiate(Buffer.from(Ve,"base64"),ve).then(this._init),Te)}_init(A){Oe=A.instance,ve.env.emscripten_notify_memory_growth(0)}decode(A,g=0){if(!Oe)throw new Error("ZSTDDecoder: Await .init() before decoding.");const I=A.byteLength,e=Oe.exports.malloc(I);Pe.set(A,e),g=g||Number(Oe.exports.ZSTD_findDecompressedSize(e,I));const i=Oe.exports.malloc(g),t=Oe.exports.ZSTD_decompress(i,g,e,I),B=Pe.slice(i,i+t);return Oe.exports.free(e),Oe.exports.free(i),B}};var ze=Object.freeze({__proto__:null,default:class extends lg{decodeBlock(A){const g=this.parameters,I=g.LercParameters?.[wA];let e=A;switch(I){case dA:break;case yA:e=Me(new Uint8Array(e)).buffer;break;case fA:e=Ze.decode(new Uint8Array(e)).buffer;break;default:throw new Error(`Unsupported LERC additional compression method identifier: ${I}`)}return xe.decode(e,{returnPixelInterleavedDims:1===this.parameters.planarConfiguration}).pixels[0].buffer}},zstd:Ze});let je,We,_e,Xe;const $e={env:{emscripten_notify_memory_growth:A=>{_e=new Uint8Array(We.exports.memory.buffer),Xe=new DataView(_e.buffer)}}};const Ai="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QQhyIQBBACEDA0AgACADTQ0DIANBQGshAwwACwALQWwhCiAOIA5B/ABqIA5B+ABqIAUgBhAGIgJBiH9LDQEgDigCeCIDIARLDQEgACAOIA4oAnwgByAIIAMgDRAlIAEgADYCACACIQoMAQtBbCEKCyAOQYABaiQAIAoLcAEEfyAAQgA3AgAgAgRAIAFBCmohBiABKAIEIQRBACECQQAhAQNAIAEgBHZFBEAgAiAGIAFBA3RqLQAAIgUgAiAFSxshAiABQQFqIQEgAyAFQRZLaiEDDAELCyAAIAI2AgQgACADQQggBGt0NgIACwuuAQEEfyABIAIoAgQiAyABKAIEaiIENgIEIAAgA0ECdEGwGWooAgAgASgCAEEAIARrdnE2AgACQCAEQSFPBEAgAUGwGjYCCAwBCyABKAIIIgMgASgCEE8EQCABEAwMAQsgAyABKAIMIgVGDQAgASADIAMgBWsgBEEDdiIGIAMgBmsgBUkbIgNrIgU2AgggASAEIANBA3RrNgIEIAEgBSgAADYCAAsgACACQQhqNgIEC40CAgN/AX4gACACaiEEAkACQCACQQhOBEAgACABayICQXlIDQELA0AgACAETw0CIAAgAS0AADoAACAAQQFqIQAgAUEBaiEBDAALAAsCQAJAIAJBb0sNACAAIARBIGsiAksNACABKQAAIQYgACABKQAINwAIIAAgBjcAACACIABrIgVBEU4EQCAAQRBqIQAgASEDA0AgAykAECEGIAAgAykAGDcACCAAIAY3AAAgAykAICEGIAAgAykAKDcAGCAAIAY3ABAgA0EgaiEDIABBIGoiACACSQ0ACwsgASAFaiEBDAELIAAhAgsDQCACIARPDQEgAiABLQAAOgAAIAJBAWohAiABQQFqIQEMAAsACwvfAQEGf0G6fyEKAkAgAigCBCIIIAIoAgAiCWoiDSABIABrSw0AQWwhCiAJIAQgAygCACILa0sNACAAIAlqIgQgAigCCCIMayECIAAgAUEgayIBIAsgCUEAEDMgAyAJIAtqNgIAAkACQCAEIAVrIAxPBEAgAiEFDAELIAwgBCAGa0sNAiAHIAcgAiAFayIDaiICIAhqTwRAIAhFDQIgBCACIAj8CgAADAILQQAgA2siAARAIAQgAiAA/AoAAAsgAyAIaiEIIAQgA2shBAsgBCABIAUgCEEBEDMLIA0hCgsgCgvrAQEGf0G6fyELAkAgAygCBCIJIAMoAgAiCmoiDSABIABrSw0AIAUgBCgCACIFayAKSQRAQWwPCyADKAIIIQwgACAFSyAFIApqIg4gAEtxDQAgACAKaiIDIAxrIQEgACAFIAoQLyAEIA42AgACQAJAIAMgBmsgDE8EQCABIQYMAQtBbCELIAwgAyAHa0sNAiAIIAggASAGayIAaiIBIAlqTwRAIAlFDQIgAyABIAn8CgAADAILQQAgAGsiBARAIAMgASAE/AoAAAsgACAJaiEJIAMgAGshAwsgAyACIAYgCUEBEDMLIA0hCwsgCwurAgECfyACQR9xIQMgASEEA0AgA0EISUUEQCADQQhrIQMgBCkAAELP1tO+0ser2UJ+Qh+JQoeVr6+Ytt6bnn9+IACFQhuJQoeVr6+Ytt6bnn9+Qp2jteqDsY2K+gB9IQAgBEEIaiEEDAELCyABIAJBGHFqIQEgAkEHcSIDQQRJBH8gAQUgA0EEayEDIAE1AABCh5Wvr5i23puef34gAIVCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQAgAUEEagshBANAIAMEQCADQQFrIQMgBDEAAELFz9my8eW66id+IACFQguJQoeVr6+Ytt6bnn9+IQAgBEEBaiEEDAELCyAAQiGIIACFQs/W077Sx6vZQn4iAEIdiCAAhUL5893xmfaZqxZ+IgBCIIggAIUL4QQCAX4CfyAAIANqIQcCQCADQQdMBEADQCAAIAdPDQIgACACLQAAOgAAIABBAWohACACQQFqIQIMAAsACyAEBEACQCAAIAJrIgZBB00EQCAAIAItAAA6AAAgACACLQABOgABIAAgAi0AAjoAAiAAIAItAAM6AAMgACACIAZBAnQiBkHgGmooAgBqIgIoAAA2AAQgAiAGQYAbaigCAGshAgwBCyAAIAIpAAA3AAALIANBCGshAyACQQhqIQIgAEEIaiEACyABIAdPBEAgACADaiEBIARFIAAgAmtBD0pyRQRAA0AgACACKQAANwAAIAJBCGohAiAAQQhqIgAgAUkNAAwDCwALIAIpAAAhBSAAIAIpAAg3AAggACAFNwAAIANBEUkNASAAQRBqIQADQCACKQAQIQUgACACKQAYNwAIIAAgBTcAACACKQAgIQUgACACKQAoNwAYIAAgBTcAECACQSBqIQIgAEEgaiIAIAFJDQALDAELAkAgACABSwRAIAAhAQwBCyABIABrIQYCQCAERSAAIAJrQQ9KckUEQCACIQMDQCAAIAMpAAA3AAAgA0EIaiEDIABBCGoiACABSQ0ACwwBCyACKQAAIQUgACACKQAINwAIIAAgBTcAACAGQRFIDQAgAEEQaiEAIAIhAwNAIAMpABAhBSAAIAMpABg3AAggACAFNwAAIAMpACAhBSAAIAMpACg3ABggACAFNwAQIANBIGohAyAAQSBqIgAgAUkNAAsLIAIgBmohAgsDQCABIAdPDQEgASACLQAAOgAAIAFBAWohASACQQFqIQIMAAsACwtOAQJ/IwBBEGsiBCQAIARBADYCCCAEQgA3AwACQCAEEBciBUUEQEFAIQMMAQsgBSAAIAEgAiADIAUQIRAiIQMgBRAZGgsgBEEQaiQAIAMLrwgCAn8BfiMAQRBrIgYkAAJAIAAgBBA2IARHBEBBuH8hBQwBCyAAIAEgAhAgIAAgACkD8OkBIAStfDcD8OkBQX8hBQJAAkACQAJAAkACQAJAAkAgACgChOoBDggAAQIDAwQFBggLAkAgACgC7OoBIgUNAEEAIQUgAygAAEFwcUHQ1LTCAUcNACAEBEAgAEGo7AVqIAMgBPwKAAALIABBBjYChOoBIABBCCAEazYCvOkBDAgLIAAgAyAEIAUQHCIFNgLo6gEgBUGIf0sNByAEBEAgAEGo7AVqIAMgBPwKAAALIABBATYChOoBIAAgBSAEazYCvOkBQQAhBQwHCyAAQajsBWohASAAKALo6gEhAiAEBEAgASACIARraiADIAT8CgAACyAAIAEgAhAmIgVBiH9LDQYgAEECNgKE6gEgAEEDNgK86QFBACEFDAYLIANBAyAGQQRqEB8iAUGIf0sEQCABIQUMBgtBbCEFIAEgACgC0OkBSw0FIAAgATYCvOkBIAAgBigCBDYCgOoBIAAgBigCDDYCjOsBIAYoAgghAiAAAn9BBEEDIAIbIAENABogAgRAIAAoAuDpAQRAIABBBDYCvOkBQQUMAgsgAEEANgK86QFBAAwBCyAAQQM2ArzpAUECCzYChOoBQQAhBQwFC0FsIQUCQAJAAkACQAJAAkACQCAAKAKA6gEOAwABAgsLIAIgBEkEQEG6fyEFDAsLAkAgAUUEQCAERQ0BQbZ/IQUMDAsgBARAIAEgAyAE/AoAAAsgBEGIf00NACAEIQUMCwsgACAAKAK86QEgBGsiAjYCvOkBIAQhBQwDCwJAIAIgACgCjOsBIgVJBH9Bun8FIAENASAFRQ0FQbZ/CyEFIABBADYCvOkBDAoLIAVFDQEgASADLQAAIAX8CwAMAQsgACABIAIgAyAEQQEQJyEFC0EAIQIgAEEANgK86QEgBUGIf0sNBwsgBSAAKALQ6QFNDQFBbCEFDAYLQQAhAiAAQQA2ArzpAUEAIQULIAAgACkD+OkBIAUiA618NwP46QEgACgC9OoBBEAgAEGQ6gFqIAEgAxAoIAAoArzpASECCyAAIAEgA2o2AqzpASACDQMgACgChOoBQQRGBEAgACkDwOkBIgdCf1IEQEFsIQUgACkD+OkBIAdSDQYLIAAoAuDpAQRAIABBBTYChOoBIABBBDYCvOkBDAULIABBADYChOoBIABBADYCvOkBDAQLIABBAzYCvOkBIABBAjYChOoBDAMLIAAoAvTqAUUNASADKAAAIABBkOoBahApp0YNAUFqIQUMAwsgBARAIAAgBGtBsOwFaiADIAT8CgAACyAAQQc2AoTqASAAIAAoAKzsBTYCvOkBQQAhBQwCC0EAIQUgAEEANgKE6gEgAEEANgK86QEMAQsgAyEFCyAGQRBqJAAgBQtGAQF/IAAoAoTqAUEDa0ECTwRAIAAoArzpAQ8LIAAoArzpASECIAAoAoDqAQR/IAIFQQEgASACIAEgAkkbIgAgAEEBTRsLCwYAQYOACAsGAEGAgAgLxBACGH8CfiMAQRBrIggkACACKAIIIQ4gAigCBCEPIAIoAgAhBCABKAIEIRAgCCABKAIAIgYgASgCCCITaiIYNgIMAkAgDiAPSwRAQbh/IQMMAQsCQCAQIBNJDQACQCAAKALs6wFBAUcNACAAKAK86wFFDQBBmH8hAyAAKALw6wEgBkcNAiAAKAL46wEgE0cNAiAAKAL06wEgEEcNAgsgBiAQaiEMIAQgD2ohCSAAQfDrAWohESAPIA5rIRUgAEGo7AVqIQogAEHA6QFqIQ0gAEHY6wFqIRQgAEGE6gFqIRYgAEGE6wFqIRcgAEGA6wFqIRkgBCAOaiISIQQDQAJAIAQhBgJ/AkAgBUEBcUUEQEF/IQMCQAJAAkAgDSAKAn8CQAJAIAAoArzrAQ4FAQADBAUMCyAAKALg6wEMAQsgAEEANgLI6wEgAEEBNgK86wEgFEIANwMIIBRCADcDACARIAEoAgg2AgggESABKQIANwIAQQALIAAoAuzqARAbIQQCQCAAKAKw6wFFDQAgACgCrOsBRQ0AIAAQKgsgBEGIf0sEQCAEIQMMCgsgBARAIAQgACgC4OsBIgNrIgUgCSAGayIHSwRAIAYgCUcEQCAHBEAgAyAKaiAGIAf8CgAACyAAIAMgB2oiAzYC4OsBCyACIAIoAgQ2AgggDSAKIAMgACgC7OoBEBsiA0GIf0sNC0ECQQYgACgC7OoBGyIBIAQgASAESxsgACgC4OsBa0EDaiEDDAsLIAUEQCADIApqIAYgBfwKAAALIAAgBDYC4OsBIAUgBmohBEEAIQUMCAsCQCANKQMAIhtCf1ENACAAKALU6QFBAUYNACAbIAwgCCgCDCIEayIDrVYNACASIBUgACgC7OoBEB4iBSAVSw0AIAAgBCADIBIgBSAAECEQIiIDQYh/Sw0KIAggAyAEakEAIAQbNgIMIABBADYCvOsBIABBADYCvOkBIAUgEmohBEEBIQUMCAsCQCAAKALs6wFBAUcNACAAKALU6QFBAUYNACANKQMAIhtCf1ENACAbIAwgCCgCDGutVg0JCyAAIAAQIRAjAn8CQCAAKALs6gENACAKKAAAQXBxQdDUtMIBRw0AIAAoAKzsBSEFQQcMAQsgACAKIAAoAuDrARAmIgNBiH9LDQpBAyEFQQILIQQgACAFNgK86QEgFiAENgIAIABCgAggACkDyOkBIhsgG0KACFgbIhs3A8jpASAANQLM6wEgG1QEQEFwIQMMCgsgACgC0OkBIQUgACgCuOsBIgQEQCAAIAUgBCAEIAVLGyIFNgLQ6QELQQAhB0EAIQMgACgC7OsBRQRAQXAgDSkDACIcIBsgBUKAgAggGyAbQoCACFobpyIEIAQgBUsbQQF0rXxCQH0iGyAbIBxWGyIbpyAbQoCAgIAQWhshAwsgACgC1OsBIgsgACgCxOsBIhpqQQQgBSAFQQRNGyIEIANqIgVBA2xPBEAgACgCvOwFQQFqIQcLIAAgBzYCvOwFIAQgGksgAyALS3JFIAdBgAFJcUUEQAJAAkAgACgCkOsBIgcEQCAFIAdBwOwFa00NAQwKCyAAKALA6wEgGSgCACAXKAIAEBUgAEEANgLU6wEgAEEANgLE6wEgACAFIAAoAvzqASAXKAIAEBgiBTYCwOsBIAVFDQkMAQsgACgCwOsBIQULIAAgAzYC1OsBIAAgBDYCxOsBIAAgBCAFajYC0OsBCyAAQQI2ArzrAQsgACAJIAZrIgQQNiIDRQRAIABBADYCvOsBQQEhBSAGIQQMBwsgAyAETQRAIAMgBmohBEEAIQUgACAIQQxqIAwgBiADEDoiA0GJf0kNBwwJC0EBIQUgBiAJIgRGDQYgAEEDNgK86wELIAAoArzpASILIAAoAsjrASIFayEDAkAgFigCAEEHRwRAIAAoAsTrASAFayADSQRAQWwhAwwKCyADIAkgBmsiBCADIARJGyIHRQ0EIAcEQCAAKALA6wEgBWogBiAH/AoAAAsgACgCyOsBIQUMAQsgAyAJIAZrIgQgAyAESRsiB0UNAwsgACAFIAdqNgLI6wEgBiAHagwDCyAMIAgoAgwiA2siByAAKALc6wEgACgC2OsBIgVrIgsgByALSRsiBARAIAQEQCADIAAoAtDrASAFaiAE/AoAAAsgACgC2OsBIQULIAggAyAEakEAIAMbNgIMIBQgBCAFaiIDNgIAQQEhBSAGIQQgByALSQ0EIABBAjYCvOsBQQAhBSAAKQPA6QEgACgC1OsBIgatWA0EIAAoAtDpASADaiAGTQ0EIABCADcD2OsBDAQLIAIgBiACKAIAazYCCCABIAgoAgwiBCABKAIAayIDNgIIIBEgAzYCCCARIAEpAgA3AgACQCAGIBJHIAQgGEdyRQRAIAAgACgC6OsBIgFBAWo2AujrASABQQ9IDQEgECATRgRAQbB/IQMMCAsgDiAPRw0BQa5/IQMMBwsgAEEANgLo6wELIAAoArzpASIBRQRAIAAoAuTrASEBAkACQCAAKALc6wEgACgC2OsBRgRAQQAhAyABRQ0JIAIoAggiASACKAIETwRAIABBAjYCvOsBDAILIAIgAUEBajYCCAwJCyABRQ0BC0EBIQMMBwsgAiACKAIIQQFrNgIIQQEhAyAAQQE2AuTrAQwGCyABIAAoAsjrAWtBA0EAIABBhOoBaigCAEEDRhtqIQMMBQtBACEHIAYLIQRBASEFIAMgB0sNAUEAIQUgAEEANgLI6wEgACAIQQxqIAwgACgCwOsBIAsQOiIDQYl/SQ0BDAMLC0FAIQMMAQtBun8hAwsgCEEQaiQAIAMLxwEBAn8gACgChOoBIgVBB0YhBgJAIAACfwJAIAAoAuzrAUUEQAJ/IAVBB0YEQCAAKALY6wEhAUEADAELIAAoAtTrASAAKALY6wEiAWsLIQIgACAAKALQ6wEgAWogAiADIAQQNSIEQYh/Sw0DIAQgBnJFDQEgACAAKALY6wEgBGo2AtzrAUEEDAILIAAgASgCACIFQQAgAiAFayAGGyADIAQQNSIEQYh/Sw0CIAEgASgCACAEajYCAAtBAgs2ArzrAUEAIQQLIAQLCgAgAARAEDwACwsDAAALC80SCgBBiAgLBQEAAAABAEGYCAvbBAEAAAABAAAAlgAAANgAAAB9AQAAdwAAAKoAAADNAAAAAgIAAHAAAACxAAAAxwAAABsCAABuAAAAxQAAAMIAAACEAgAAawAAAN0AAADAAAAA3wIAAGsAAAAAAQAAvQAAAHEDAABqAAAAZwEAALwAAACPBAAAbQAAAEYCAAC7AAAAIgYAAHIAAACwAgAAuwAAALAGAAB6AAAAOQMAALoAAACtBwAAiAAAANADAAC5AAAAUwgAAJYAAACcBAAAugAAABYIAACvAAAAYQUAALkAAADDBgAAygAAAIQFAAC5AAAAnwYAAMoAAAAAAAAAAQAAAAEAAAAFAAAADQAAAB0AAAA9AAAAfQAAAP0AAAD9AQAA/QMAAP0HAAD9DwAA/R8AAP0/AAD9fwAA/f8AAP3/AQD9/wMA/f8HAP3/DwD9/x8A/f8/AP3/fwD9//8A/f//Af3//wP9//8H/f//D/3//x/9//8//f//fwABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAJQAAACcAAAApAAAAKwAAAC8AAAAzAAAAOwAAAEMAAABTAAAAYwAAAIMAAAADAQAAAwIAAAMEAAADCAAAAxAAAAMgAAADQAAAA4AAAAMAAQBBoA0LFQEBAQECAgMDBAQFBwgJCgsMDQ4PEABBxA0LiwEBAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEgAAABQAAAAWAAAAGAAAABwAAAAgAAAAKAAAADAAAABAAAAAgAAAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAAABAEHgDgumBAEBAQECAgMDBAYHCAkKCwwNDg8QAQAAAAQAAAAIAAAAAQABAQYAAAAAAAAEAAAAABAAAAQAAAAAIAAABQEAAAAAAAAFAwAAAAAAAAUEAAAAAAAABQYAAAAAAAAFBwAAAAAAAAUJAAAAAAAABQoAAAAAAAAFDAAAAAAAAAYOAAAAAAABBRAAAAAAAAEFFAAAAAAAAQUWAAAAAAACBRwAAAAAAAMFIAAAAAAABAUwAAAAIAAGBUAAAAAAAAcFgAAAAAAACAYAAQAAAAAKBgAEAAAAAAwGABAAACAAAAQAAAAAAAAABAEAAAAAAAAFAgAAACAAAAUEAAAAAAAABQUAAAAgAAAFBwAAAAAAAAUIAAAAIAAABQoAAAAAAAAFCwAAAAAAAAYNAAAAIAABBRAAAAAAAAEFEgAAACAAAQUWAAAAAAACBRgAAAAgAAMFIAAAAAAAAwUoAAAAAAAGBEAAAAAQAAYEQAAAACAABwWAAAAAAAAJBgACAAAAAAsGAAgAADAAAAQAAAAAEAAABAEAAAAgAAAFAgAAACAAAAUDAAAAIAAABQUAAAAgAAAFBgAAACAAAAUIAAAAIAAABQkAAAAgAAAFCwAAACAAAAUMAAAAAAAABg8AAAAgAAEFEgAAACAAAQUUAAAAIAACBRgAAAAgAAIFHAAAACAAAwUoAAAAIAAEBTAAAAAAABAGAAABAAAADwYAgAAAAAAOBgBAAAAAAA0GACAAQZATC4cCAQABAQUAAAAAAAAFAAAAAAAABgQ9AAAAAAAJBf0BAAAAAA8F/X8AAAAAFQX9/x8AAAADBQUAAAAAAAcEfQAAAAAADAX9DwAAAAASBf3/AwAAABcF/f9/AAAABQUdAAAAAAAIBP0AAAAAAA4F/T8AAAAAFAX9/w8AAAACBQEAAAAQAAcEfQAAAAAACwX9BwAAAAARBf3/AQAAABYF/f8/AAAABAUNAAAAEAAIBP0AAAAAAA0F/R8AAAAAEwX9/wcAAAABBQEAAAAQAAYEPQAAAAAACgX9AwAAAAAQBf3/AAAAABwF/f//DwAAGwX9//8HAAAaBf3//wMAABkF/f//AQAAGAX9//8AQaAVC4YEAQABAQYAAAAAAAAGAwAAAAAAAAQEAAAAIAAABQUAAAAAAAAFBgAAAAAAAAUIAAAAAAAABQkAAAAAAAAFCwAAAAAAAAYNAAAAAAAABhAAAAAAAAAGEwAAAAAAAAYWAAAAAAAABhkAAAAAAAAGHAAAAAAAAAYfAAAAAAAABiIAAAAAAAEGJQAAAAAAAQYpAAAAAAACBi8AAAAAAAMGOwAAAAAABAZTAAAAAAAHBoMAAAAAAAkGAwIAABAAAAQEAAAAAAAABAUAAAAgAAAFBgAAAAAAAAUHAAAAIAAABQkAAAAAAAAFCgAAAAAAAAYMAAAAAAAABg8AAAAAAAAGEgAAAAAAAAYVAAAAAAAABhgAAAAAAAAGGwAAAAAAAAYeAAAAAAAABiEAAAAAAAEGIwAAAAAAAQYnAAAAAAACBisAAAAAAAMGMwAAAAAABAZDAAAAAAAFBmMAAAAAAAgGAwEAACAAAAQEAAAAMAAABAQAAAAQAAAEBQAAACAAAAUHAAAAIAAABQgAAAAgAAAFCgAAACAAAAULAAAAAAAABg4AAAAAAAAGEQAAAAAAAAYUAAAAAAAABhcAAAAAAAAGGgAAAAAAAAYdAAAAAAAABiAAAAAAABAGAwABAAAADwYDgAAAAAAOBgNAAAAAAA0GAyAAAAAADAYDEAAAAAALBgMIAAAAAAoGAwQAQbQZC3wBAAAAAwAAAAcAAAAPAAAAHwAAAD8AAAB/AAAA/wAAAP8BAAD/AwAA/wcAAP8PAAD/HwAA/z8AAP9/AAD//wAA//8BAP//AwD//wcA//8PAP//HwD//z8A//9/AP///wD///8B////A////wf///8P////H////z////9/AEHEGgtZAQAAAAIAAAAEAAAAAAAAAAIAAAAEAAAACAAAAAAAAAABAAAAAgAAAAEAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAABwAAAAgAAAAJAAAACgAAAAsAQaAbCwOgDwE=",gi=new class{init(){return je||(je="undefined"!=typeof fetch?fetch(`data:application/wasm;base64,${Ai}`).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,$e)).then(this._init):WebAssembly.instantiate(Buffer.from(Ai,"base64"),$e).then(this._init),je)}_init(A){We=A.instance,$e.env.emscripten_notify_memory_growth(0)}decode(A,g=0){if(!We)throw new Error("ZSTDDecoder: Await .init() before decoding.");const I=A.byteLength,e=We.exports.malloc(I);if(_e.set(A,e),0===g&&(g=Number(We.exports.ZSTD_findDecompressedSize(e,I))),-1===g){We.exports.free(e);const g=[];for(const I of this.decodeStreaming([A]))g.push(I);if(1===g.length)return g[0];const I=g.reduce((A,g)=>A+g.byteLength,0),i=new Uint8Array(I);let t=0;for(const A of g)i.set(A,t),t+=A.byteLength;return i}const i=We.exports.malloc(g),t=We.exports.ZSTD_decompress(i,g,e,I),B=_e.slice(i,i+t);return We.exports.free(e),We.exports.free(i),B}*decodeStreaming(A){if(!We)throw new Error("ZSTDDecoder: Await .init() before decoding.");const g=We.exports.ZSTD_DStreamInSize(),I=We.exports.malloc(g),e=We.exports.ZSTD_DStreamOutSize(),i=We.exports.malloc(e),t=We.exports.ZSTD_createDCtx(),B=We.exports.malloc(12),C=We.exports.malloc(12);let Q=0;for(const g of A){const A=We.exports.malloc(g.byteLength);for(_e.set(g,A),Xe.setInt32(B,A,!0),Xe.setInt32(B+4,g.byteLength,!0),Xe.setInt32(B+4+4,0,!0);Xe.getUint32(B+4+4,!0)<Xe.getUint32(B+4,!0);){Xe.setInt32(C,i,!0),Xe.setInt32(C+4,e,!0),Xe.setInt32(C+4+4,0,!0),Q=We.exports.ZSTD_decompressStream(t,C,B);const A=Xe.getUint32(C+4+4,!0);yield _e.slice(i,i+A)}We.exports.free(A)}if(We.exports.ZSTD_freeDCtx(t),We.exports.free(I),We.exports.free(i),We.exports.free(B),We.exports.free(C),0!==Q)throw new Error("Incomplete stream, more data expected.")}};var Ii=Object.freeze({__proto__:null,default:class extends lg{decodeBlock(A){return gi.decode(new Uint8Array(A)).buffer}},zstd:gi});var ei=Object.freeze({__proto__:null,default:class extends lg{constructor(A){if(super(A),"undefined"==typeof createImageBitmap)throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if("undefined"==typeof document&&"undefined"==typeof OffscreenCanvas)throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available")}async decodeBlock(A){const g=new Blob([A]),I=await createImageBitmap(g);let e;"undefined"!=typeof document?(e=document.createElement("canvas"),e.width=I.width,e.height=I.height):e=new OffscreenCanvas(I.width,I.height);const i=e.getContext("2d");i.drawImage(I,0,0);const t=i.getImageData(0,0,I.width,I.height).data,B=this.parameters.samplesPerPixel||4;if(4===B)return t.buffer;if(3===B){const A=new Uint8ClampedArray(I.width*I.height*3);for(let g=0,I=0;g<A.length;g+=3,I+=4)A[g]=t[I],A[g+1]=t[I+1],A[g+2]=t[I+2];return A.buffer}throw new Error(`Unsupported SamplesPerPixel value: ${B}`)}}});exports.CogBitmapLayer=jg,exports.CogTerrainLayer=$g,exports.CogTiles=Vg,exports.GeoImage=Kg,exports.extractTerrainCoordinate=function(A){try{if(!A?.coordinate||A.coordinate.length<3)return null;const[g,I,e]=A.coordinate;return void 0===g||void 0===I||void 0===e?null:{longitude:g,latitude:I,elevation:e}}catch{return null}},exports.sampleTerrainTileCoordinates=function(A,g=3){try{if(!A?.tile?.content)return[];const I=A.tile.content[0];if(!I?.raw)return[];const{raw:e,width:i,height:t}=I,B=A.tile.bbox;if(!B)return[];const C=B.west??B[0],Q=B.south??B[1],s=B.east??B[2],E=B.north??B[3];if(void 0===C||void 0===Q||void 0===s||void 0===E)return[];const a=A.coordinate;if(!a||a.length<2)return[];const[o,r]=a,n=Math.floor(g/2),h=(o-C)/(s-C),l=r*Math.PI/180,c=E*Math.PI/180,D=Q*Math.PI/180,w=Math.log(Math.tan(Math.PI/4+l/2)),d=Math.log(Math.tan(Math.PI/4+c/2)),y=Math.log(Math.tan(Math.PI/4+D/2)),f=(d-w)/(d-y),u=Math.floor(h*(i-1)),S=Math.floor(f*(t-1)),G=[];for(let A=-n;A<=n;A++)for(let g=-n;g<=n;g++){const I=u+g,B=S+A;if(I<0||I>=i||B<0||B>=t)continue;const Q=e[B*i+I];if(null==Q)continue;const E=C+I/(i-1)*(s-C),a=d-B/(t-1)*(d-y),o=180*(2*Math.atan(Math.exp(a))-Math.PI/2)/Math.PI;G.push({longitude:E,latitude:o,elevation:Q})}return G}catch{return[]}},exports.suppressGlobalAbortErrors=s;
4
4
  //# sourceMappingURL=index.min.js.map