@gisatcz/deckgl-geolib 1.12.0-dev.13 → 1.12.0-dev.15

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,5 +1,5 @@
1
- import{CompositeLayer as A,log as e,COORDINATE_SYSTEM as t}from"@deck.gl/core";import{TileLayer as i}from"@deck.gl/geo-layers";import{BitmapLayer as r}from"@deck.gl/layers";import{_TerrainExtension as a}from"@deck.gl/extensions";import n from"chroma-js";import{getMeshBoundingBox as s}from"@loaders.gl/schema";import{concatenateTypedArrays as o}from"@loaders.gl/loader-utils";import{SimpleMeshLayer as g}from"@deck.gl/mesh-layers";function l(A,e,t,i){return new(t||(t=Promise))((function(r,a){function n(A){try{o(i.next(A))}catch(A){a(A)}}function s(A){try{o(i.throw(A))}catch(A){a(A)}}function o(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(n,s)}o((i=i.apply(A,e||[])).next())}))}function h(A){return(e,...t)=>B(A,e,t)}function I(A,e){return h(E(A,e).get)}"function"==typeof SuppressedError&&SuppressedError;const{apply:B,construct:c,defineProperty:C,get:f,getOwnPropertyDescriptor:E,getPrototypeOf:Q,has:d,ownKeys:u,set:w,setPrototypeOf:p}=Reflect,{iterator:m,species:y,toStringTag:D,for:k}=Symbol,b=Object,{create:_,defineProperty:S,freeze:x,is:F}=b,G=Array.prototype[m],U=h(G),R=ArrayBuffer;I(R.prototype,"byteLength");const M="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:null;M&&I(M.prototype,"byteLength");const L=Q(Uint8Array);L.from;const v=L.prototype;v[m],h(v.keys),h(v.values),h(v.entries),h(v.set),h(v.reverse),h(v.fill),h(v.copyWithin),h(v.sort),h(v.slice),h(v.subarray),I(v,"buffer"),I(v,"byteOffset"),I(v,"length"),I(v,D);const N=Uint8Array,T=Uint16Array,q=Uint32Array,O=Float32Array,J=Q([][m]()),H=h(J.next),Y=h(function*(){}().next),z=Q(J),P=h(DataView.prototype.getUint16),K=WeakMap,V=K.prototype,Z=h(V.get),X=h(V.set),W=new K,j=_(null,{next:{value:function(){const A=Z(W,this);return H(A)}},[m]:{value:function(){return this}}});const $=new K,AA=_(z,{next:{value:function(){const A=Z($,this);return Y(A)},writable:!0,configurable:!0}});for(const A of u(J))"next"!==A&&S(AA,A,E(J,A));const eA=new R(4),tA=new O(eA),iA=new q(eA),rA=new T(512),aA=new N(512);for(let A=0;A<256;++A){const e=A-127;e<-24?(rA[A]=0,rA[256|A]=32768,aA[A]=24,aA[256|A]=24):e<-14?(rA[A]=1024>>-e-14,rA[256|A]=1024>>-e-14|32768,aA[A]=-e-1,aA[256|A]=-e-1):e<=15?(rA[A]=e+15<<10,rA[256|A]=e+15<<10|32768,aA[A]=13,aA[256|A]=13):e<128?(rA[A]=31744,rA[256|A]=64512,aA[A]=24,aA[256|A]=24):(rA[A]=31744,rA[256|A]=64512,aA[A]=13,aA[256|A]=13)}const nA=new q(2048);for(let A=1;A<1024;++A){let e=A<<13,t=0;for(;!(8388608&e);)e<<=1,t-=8388608;e&=-8388609,t+=947912704,nA[A]=e|t}for(let A=1024;A<2048;++A)nA[A]=939524096+(A-1024<<13);const sA=new q(64);for(let A=1;A<31;++A)sA[A]=A<<23;sA[31]=1199570944,sA[32]=2147483648;for(let A=33;A<63;++A)sA[A]=2147483648+(A-32<<23);sA[63]=3347054592;const oA=new T(64);for(let A=1;A<64;++A)32!==A&&(oA[A]=1024);function gA(A,e,...t){return function(A){const e=A>>10;return iA[0]=nA[oA[e]+(1023&A)]+sA[e],tA[0]}(P(A,e,...function(A){if(A[m]===G&&J.next===H)return A;const e=_(j);return X(W,e,U(A)),e}(t)))}function lA(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var hA={exports:{}};function IA(A,e,t){const i=t&&t.debug||!1;i&&console.log("[xml-utils] getting "+e+" in "+A);const r="object"==typeof A?A.outer:A,a=r.slice(0,r.indexOf(">")+1),n=['"',"'"];for(let A=0;A<n.length;A++){const t=n[A],r=e+"\\="+t+"([^"+t+"]*)"+t;i&&console.log("[xml-utils] pattern:",r);const s=new RegExp(r).exec(a);if(i&&console.log("[xml-utils] match:",s),s)return s[1]}}hA.exports=IA,hA.exports.default=IA;var BA=lA(hA.exports),cA={exports:{}},CA={exports:{}},fA={exports:{}};function EA(A,e,t){const i=new RegExp(e).exec(A.slice(t));return i?t+i.index:-1}fA.exports=EA,fA.exports.default=EA;var QA=fA.exports,dA={exports:{}};function uA(A,e,t){const i=new RegExp(e).exec(A.slice(t));return i?t+i.index+i[0].length-1:-1}dA.exports=uA,dA.exports.default=uA;var wA=dA.exports,pA={exports:{}};function mA(A,e){const t=new RegExp(e,"g"),i=A.match(t);return i?i.length:0}pA.exports=mA,pA.exports.default=mA;var yA=pA.exports;const DA=QA,kA=wA,bA=yA;function _A(A,e,t){const i=t&&t.debug||!1,r=!(t&&!1===typeof t.nested),a=t&&t.startIndex||0;i&&console.log("[xml-utils] starting findTagByName with",e," and ",t);const n=DA(A,`<${e}[ \n>/]`,a);if(i&&console.log("[xml-utils] start:",n),-1===n)return;const s=A.slice(n+e.length);let o=kA(s,"^[^<]*[ /]>",0);const g=-1!==o&&"/"===s[o-1];if(i&&console.log("[xml-utils] selfClosing:",g),!1===g)if(r){let A=0,t=1,i=0;for(;-1!==(o=kA(s,"[ /]"+e+">",A));){const r=s.substring(A,o+1);if(t+=bA(r,"<"+e+"[ \n\t>]"),i+=bA(r,"</"+e+">"),i>=t)break;A=o}}else o=kA(s,"[ /]"+e+">",0);const l=n+e.length+o+1;if(i&&console.log("[xml-utils] end:",l),-1===l)return;const h=A.slice(n,l);let I;return I=g?null:h.slice(h.indexOf(">")+1,h.lastIndexOf("<")),{inner:I,outer:h,start:n,end:l}}CA.exports=_A,CA.exports.default=_A;const SA=CA.exports;function xA(A,e,t){const i=[],r=t&&t.debug||!1,a=!t||"boolean"!=typeof t.nested||t.nested;let n,s=t&&t.startIndex||0;for(;n=SA(A,e,{debug:r,startIndex:s});)s=a?n.start+1+e.length:n.end,i.push(n);return r&&console.log("findTagsByName found",i.length,"tags"),i}cA.exports=xA,cA.exports.default=xA;var FA=lA(cA.exports);const GA={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},UA={};for(const A in GA)GA.hasOwnProperty(A)&&(UA[GA[A]]=parseInt(A,10));const RA=[UA.BitsPerSample,UA.ExtraSamples,UA.SampleFormat,UA.StripByteCounts,UA.StripOffsets,UA.StripRowCounts,UA.TileByteCounts,UA.TileOffsets,UA.SubIFDs],MA={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},LA={};for(const A in MA)MA.hasOwnProperty(A)&&(LA[MA[A]]=parseInt(A,10));const vA=0,NA=1,TA=2,qA=3,OA=5,JA=6,HA=8,YA=0,zA=1,PA=0,KA=1,VA=2,ZA={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"};const XA=new Map;function WA(A,e){Array.isArray(A)||(A=[A]),A.forEach((A=>XA.set(A,e)))}function jA(A,e,t,i=1){return new(Object.getPrototypeOf(A).constructor)(e*t*i)}function $A(A,e,t){return(1-t)*A+t*e}function Ae(A,e,t,i,r,a="nearest"){switch(a.toLowerCase()){case"nearest":return function(A,e,t,i,r){const a=e/i,n=t/r;return A.map((A=>{const s=jA(A,i,r);for(let o=0;o<r;++o){const r=Math.min(Math.round(n*o),t-1);for(let t=0;t<i;++t){const n=Math.min(Math.round(a*t),e-1),g=A[r*e+n];s[o*i+t]=g}}return s}))}(A,e,t,i,r);case"bilinear":case"linear":return function(A,e,t,i,r){const a=e/i,n=t/r;return A.map((A=>{const s=jA(A,i,r);for(let o=0;o<r;++o){const r=n*o,g=Math.floor(r),l=Math.min(Math.ceil(r),t-1);for(let t=0;t<i;++t){const n=a*t,h=n%1,I=Math.floor(n),B=Math.min(Math.ceil(n),e-1),c=A[g*e+I],C=A[g*e+B],f=A[l*e+I],E=A[l*e+B],Q=$A($A(c,C,h),$A(f,E,h),r%1);s[o*i+t]=Q}}return s}))}(A,e,t,i,r);default:throw new Error(`Unsupported resampling method: '${a}'`)}}function ee(A,e,t,i,r,a,n="nearest"){switch(n.toLowerCase()){case"nearest":return function(A,e,t,i,r,a){const n=e/i,s=t/r,o=jA(A,i,r,a);for(let g=0;g<r;++g){const r=Math.min(Math.round(s*g),t-1);for(let t=0;t<i;++t){const s=Math.min(Math.round(n*t),e-1);for(let n=0;n<a;++n){const l=A[r*e*a+s*a+n];o[g*i*a+t*a+n]=l}}}return o}(A,e,t,i,r,a);case"bilinear":case"linear":return function(A,e,t,i,r,a){const n=e/i,s=t/r,o=jA(A,i,r,a);for(let g=0;g<r;++g){const r=s*g,l=Math.floor(r),h=Math.min(Math.ceil(r),t-1);for(let t=0;t<i;++t){const s=n*t,I=s%1,B=Math.floor(s),c=Math.min(Math.ceil(s),e-1);for(let n=0;n<a;++n){const s=A[l*e*a+B*a+n],C=A[l*e*a+c*a+n],f=A[h*e*a+B*a+n],E=A[h*e*a+c*a+n],Q=$A($A(s,C,I),$A(f,E,I),r%1);o[g*i*a+t*a+n]=Q}}}return o}(A,e,t,i,r,a);default:throw new Error(`Unsupported resampling method: '${n}'`)}}function te(A,e,t){let i=0;for(let r=e;r<t;++r)i+=A[r];return i}function ie(A,e,t){switch(A){case 1:if(e<=8)return new Uint8Array(t);if(e<=16)return new Uint16Array(t);if(e<=32)return new Uint32Array(t);break;case 2:if(8===e)return new Int8Array(t);if(16===e)return new Int16Array(t);if(32===e)return new Int32Array(t);break;case 3:switch(e){case 16:case 32:return new Float32Array(t);case 64:return new Float64Array(t)}}throw Error("Unsupported data format/bitsPerSample")}WA([void 0,1],(()=>Promise.resolve().then((function(){return lt})).then((A=>A.default)))),WA(5,(()=>Promise.resolve().then((function(){return Bt})).then((A=>A.default)))),WA(6,(()=>{throw new Error("old style JPEG compression is not supported.")})),WA(7,(()=>Promise.resolve().then((function(){return bt})).then((A=>A.default)))),WA([8,32946],(()=>Promise.resolve().then((function(){return Ta})).then((A=>A.default)))),WA(32773,(()=>Promise.resolve().then((function(){return Oa})).then((A=>A.default)))),WA(34887,(()=>Promise.resolve().then((function(){return Xa})).then((async A=>(await A.zstd.init(),A))).then((A=>A.default)))),WA(50001,(()=>Promise.resolve().then((function(){return Wa})).then((A=>A.default))));var re=class{constructor(A,e,t,i,r,a){this.fileDirectory=A,this.geoKeys=e,this.dataView=t,this.littleEndian=i,this.tiles=r?{}:null,this.isTiled=!A.StripOffsets;const n=A.PlanarConfiguration;if(this.planarConfiguration=void 0===n?1:n,1!==this.planarConfiguration&&2!==this.planarConfiguration)throw new Error("Invalid planar configuration.");this.source=a}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.geoKeys}getWidth(){return this.fileDirectory.ImageWidth}getHeight(){return this.fileDirectory.ImageLength}getSamplesPerPixel(){return void 0!==this.fileDirectory.SamplesPerPixel?this.fileDirectory.SamplesPerPixel:1}getTileWidth(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}getTileHeight(){return this.isTiled?this.fileDirectory.TileLength:void 0!==this.fileDirectory.RowsPerStrip?Math.min(this.fileDirectory.RowsPerStrip,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;for(let e=0;e<this.fileDirectory.BitsPerSample.length;++e)A+=this.getSampleByteSize(e);return A}getSampleByteSize(A){if(A>=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${A} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[A]/8)}getReaderForSample(A){const e=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[A]:1,t=this.fileDirectory.BitsPerSample[A];switch(e){case 1:if(t<=8)return DataView.prototype.getUint8;if(t<=16)return DataView.prototype.getUint16;if(t<=32)return DataView.prototype.getUint32;break;case 2:if(t<=8)return DataView.prototype.getInt8;if(t<=16)return DataView.prototype.getInt16;if(t<=32)return DataView.prototype.getInt32;break;case 3:switch(t){case 16:return function(A,e){return gA(this,A,e)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(A=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[A]:1}getBitsPerSample(A=0){return this.fileDirectory.BitsPerSample[A]}getArrayForSample(A,e){return ie(this.getSampleFormat(A),this.getBitsPerSample(A),e)}async getTileOrStrip(A,e,t,i,r){const a=Math.ceil(this.getWidth()/this.getTileWidth()),n=Math.ceil(this.getHeight()/this.getTileHeight());let s;const{tiles:o}=this;let g,l;1===this.planarConfiguration?s=e*a+A:2===this.planarConfiguration&&(s=t*a*n+e*a+A),this.isTiled?(g=this.fileDirectory.TileOffsets[s],l=this.fileDirectory.TileByteCounts[s]):(g=this.fileDirectory.StripOffsets[s],l=this.fileDirectory.StripByteCounts[s]);const h=(await this.source.fetch([{offset:g,length:l}],r))[0];let I;return null!==o&&o[s]?I=o[s]:(I=(async()=>{let A=await i.decode(this.fileDirectory,h);const t=this.getSampleFormat(),r=this.getBitsPerSample();return function(A,e){return(1!==A&&2!==A||!(e<=32)||e%8!=0)&&(3!==A||16!==e&&32!==e&&64!==e)}(t,r)&&(A=function(A,e,t,i,r,a,n){const s=new DataView(A),o=2===t?1:i,g=ie(e,r,2===t?n*a:n*a*i),l=parseInt("1".repeat(r),2);if(1===e){let A;A=1===t?i*r:r;let e=a*A;7&e&&(e=e+7&-8);for(let A=0;A<n;++A){const t=A*e;for(let e=0;e<a;++e){const i=t+e*o*r;for(let t=0;t<o;++t){const n=i+t*r,h=(A*a+e)*o+t,I=Math.floor(n/8),B=n%8;if(B+r<=8)g[h]=s.getUint8(I)>>8-r-B&l;else if(B+r<=16)g[h]=s.getUint16(I)>>16-r-B&l;else if(B+r<=24){const A=s.getUint16(I)<<8|s.getUint8(I+2);g[h]=A>>24-r-B&l}else g[h]=s.getUint32(I)>>32-r-B&l}}}}return g.buffer}(A,t,this.planarConfiguration,this.getSamplesPerPixel(),r,this.getTileWidth(),this.getBlockHeight(e))),A})(),null!==o&&(o[s]=I)),{x:A,y:e,sample:t,data:await I}}async _readRaster(A,e,t,i,r,a,n,s,o){const g=this.getTileWidth(),l=this.getTileHeight(),h=this.getWidth(),I=this.getHeight(),B=Math.max(Math.floor(A[0]/g),0),c=Math.min(Math.ceil(A[2]/g),Math.ceil(h/g)),C=Math.max(Math.floor(A[1]/l),0),f=Math.min(Math.ceil(A[3]/l),Math.ceil(I/l)),E=A[2]-A[0];let Q=this.getBytesPerPixel();const d=[],u=[];for(let A=0;A<e.length;++A)1===this.planarConfiguration?d.push(te(this.fileDirectory.BitsPerSample,0,e[A])/8):d.push(0),u.push(this.getReaderForSample(e[A]));const w=[],{littleEndian:p}=this;for(let a=C;a<f;++a)for(let n=B;n<c;++n){let s;1===this.planarConfiguration&&(s=this.getTileOrStrip(n,a,0,r,o));for(let B=0;B<e.length;++B){const c=B,C=e[B];2===this.planarConfiguration&&(Q=this.getSampleByteSize(C),s=this.getTileOrStrip(n,a,C,r,o));const f=s.then((r=>{const a=r.data,n=new DataView(a),s=this.getBlockHeight(r.y),o=r.y*l,B=r.x*g,C=o+s,f=(r.x+1)*g,w=u[c],m=Math.min(s,s-(C-A[3]),I-o),y=Math.min(g,g-(f-A[2]),h-B);for(let r=Math.max(0,A[1]-o);r<m;++r)for(let a=Math.max(0,A[0]-B);a<y;++a){const s=(r*g+a)*Q,l=w.call(n,s+d[c],p);let h;i?(h=(r+o-A[1])*E*e.length+(a+B-A[0])*e.length+c,t[h]=l):(h=(r+o-A[1])*E+a+B-A[0],t[c][h]=l)}}));w.push(f)}}if(await Promise.all(w),a&&A[2]-A[0]!==a||n&&A[3]-A[1]!==n){let r;return r=i?ee(t,A[2]-A[0],A[3]-A[1],a,n,e.length,s):Ae(t,A[2]-A[0],A[3]-A[1],a,n,s),r.width=a,r.height=n,r}return t.width=a||A[2]-A[0],t.height=n||A[3]-A[1],t}async readRasters({window:A,samples:e=[],interleave:t,pool:i=null,width:r,height:a,resampleMethod:n,fillValue:s,signal:o}={}){const g=A||[0,0,this.getWidth(),this.getHeight()];if(g[0]>g[2]||g[1]>g[3])throw new Error("Invalid subsets");const l=(g[2]-g[0])*(g[3]-g[1]),h=this.getSamplesPerPixel();if(e&&e.length){for(let A=0;A<e.length;++A)if(e[A]>=h)return Promise.reject(new RangeError(`Invalid sample index '${e[A]}'.`))}else for(let A=0;A<h;++A)e.push(A);let I;if(t){I=ie(this.fileDirectory.SampleFormat?Math.max.apply(null,this.fileDirectory.SampleFormat):1,Math.max.apply(null,this.fileDirectory.BitsPerSample),l*e.length),s&&I.fill(s)}else{I=[];for(let A=0;A<e.length;++A){const t=this.getArrayForSample(e[A],l);Array.isArray(s)&&A<s.length?t.fill(s[A]):s&&!Array.isArray(s)&&t.fill(s),I.push(t)}}const B=i||await async function(A){const e=XA.get(A.Compression);if(!e)throw new Error(`Unknown compression method identifier: ${A.Compression}`);return new(await e())(A)}(this.fileDirectory);return await this._readRaster(g,e,I,t,B,r,a,n,o)}async readRGB({window:A,interleave:e=!0,pool:t=null,width:i,height:r,resampleMethod:a,enableAlpha:n=!1,signal:s}={}){const o=A||[0,0,this.getWidth(),this.getHeight()];if(o[0]>o[2]||o[1]>o[3])throw new Error("Invalid subsets");const g=this.fileDirectory.PhotometricInterpretation;if(g===TA){let o=[0,1,2];if(this.fileDirectory.ExtraSamples!==YA&&n){o=[];for(let A=0;A<this.fileDirectory.BitsPerSample.length;A+=1)o.push(A)}return this.readRasters({window:A,interleave:e,samples:o,pool:t,width:i,height:r,resampleMethod:a,signal:s})}let l;switch(g){case vA:case NA:case qA:l=[0];break;case OA:l=[0,1,2,3];break;case JA:case HA:l=[0,1,2];break;default:throw new Error("Invalid or unsupported photometric interpretation.")}const h={window:o,interleave:!0,samples:l,pool:t,width:i,height:r,resampleMethod:a,signal:s},{fileDirectory:I}=this,B=await this.readRasters(h),c=2**this.fileDirectory.BitsPerSample[0];let C;switch(g){case vA:C=function(A,e){const{width:t,height:i}=A,r=new Uint8Array(t*i*3);let a;for(let t=0,i=0;t<A.length;++t,i+=3)a=256-A[t]/e*256,r[i]=a,r[i+1]=a,r[i+2]=a;return r}(B,c);break;case NA:C=function(A,e){const{width:t,height:i}=A,r=new Uint8Array(t*i*3);let a;for(let t=0,i=0;t<A.length;++t,i+=3)a=A[t]/e*256,r[i]=a,r[i+1]=a,r[i+2]=a;return r}(B,c);break;case qA:C=function(A,e){const{width:t,height:i}=A,r=new Uint8Array(t*i*3),a=e.length/3,n=e.length/3*2;for(let t=0,i=0;t<A.length;++t,i+=3){const s=A[t];r[i]=e[s]/65536*256,r[i+1]=e[s+a]/65536*256,r[i+2]=e[s+n]/65536*256}return r}(B,I.ColorMap);break;case OA:C=function(A){const{width:e,height:t}=A,i=new Uint8Array(e*t*3);for(let e=0,t=0;e<A.length;e+=4,t+=3){const r=A[e],a=A[e+1],n=A[e+2],s=A[e+3];i[t]=(255-r)/256*255*((255-s)/256),i[t+1]=(255-a)/256*255*((255-s)/256),i[t+2]=(255-n)/256*255*((255-s)/256)}return i}(B);break;case JA:C=function(A){const{width:e,height:t}=A,i=new Uint8ClampedArray(e*t*3);for(let e=0,t=0;e<A.length;e+=3,t+=3){const r=A[e],a=A[e+1],n=A[e+2];i[t]=r+1.402*(n-128),i[t+1]=r-.34414*(a-128)-.71414*(n-128),i[t+2]=r+1.772*(a-128)}return i}(B);break;case HA:C=function(A){const{width:e,height:t}=A,i=new Uint8Array(e*t*3);for(let e=0,t=0;e<A.length;e+=3,t+=3){let r,a,n,s=(A[e+0]+16)/116,o=(A[e+1]<<24>>24)/500+s,g=s-(A[e+2]<<24>>24)/200;o=.95047*(o*o*o>.008856?o*o*o:(o-16/116)/7.787),s=1*(s*s*s>.008856?s*s*s:(s-16/116)/7.787),g=1.08883*(g*g*g>.008856?g*g*g:(g-16/116)/7.787),r=3.2406*o+-1.5372*s+-.4986*g,a=-.9689*o+1.8758*s+.0415*g,n=.0557*o+-.204*s+1.057*g,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,a=a>.0031308?1.055*a**(1/2.4)-.055:12.92*a,n=n>.0031308?1.055*n**(1/2.4)-.055:12.92*n,i[t]=255*Math.max(0,Math.min(1,r)),i[t+1]=255*Math.max(0,Math.min(1,a)),i[t+2]=255*Math.max(0,Math.min(1,n))}return i}(B);break;default:throw new Error("Unsupported photometric interpretation.")}if(!e){const A=new Uint8Array(C.length/3),e=new Uint8Array(C.length/3),t=new Uint8Array(C.length/3);for(let i=0,r=0;i<C.length;i+=3,++r)A[r]=C[i],e[r]=C[i+1],t[r]=C[i+2];C=[A,e,t]}return C.width=B.width,C.height=B.height,C}getTiePoints(){if(!this.fileDirectory.ModelTiepoint)return[];const A=[];for(let e=0;e<this.fileDirectory.ModelTiepoint.length;e+=6)A.push({i:this.fileDirectory.ModelTiepoint[e],j:this.fileDirectory.ModelTiepoint[e+1],k:this.fileDirectory.ModelTiepoint[e+2],x:this.fileDirectory.ModelTiepoint[e+3],y:this.fileDirectory.ModelTiepoint[e+4],z:this.fileDirectory.ModelTiepoint[e+5]});return A}getGDALMetadata(A=null){const e={};if(!this.fileDirectory.GDAL_METADATA)return null;const t=this.fileDirectory.GDAL_METADATA;let i=FA(t,"Item");i=null===A?i.filter((A=>void 0===BA(A,"sample"))):i.filter((e=>Number(BA(e,"sample"))===A));for(let A=0;A<i.length;++A){const t=i[A];e[BA(t,"name")]=t.inner}return e}getGDALNoData(){if(!this.fileDirectory.GDAL_NODATA)return null;const A=this.fileDirectory.GDAL_NODATA;return Number(A.substring(0,A.length-1))}getOrigin(){const A=this.fileDirectory.ModelTiepoint,e=this.fileDirectory.ModelTransformation;if(A&&6===A.length)return[A[3],A[4],A[5]];if(e)return[e[3],e[7],e[11]];throw new Error("The image does not have an affine transformation.")}getResolution(A=null){const e=this.fileDirectory.ModelPixelScale,t=this.fileDirectory.ModelTransformation;if(e)return[e[0],-e[1],e[2]];if(t)return 0===t[1]&&0===t[4]?[t[0],-t[5],t[10]]:[Math.sqrt(t[0]*t[0]+t[4]*t[4]),-Math.sqrt(t[1]*t[1]+t[5]*t[5]),t[10]];if(A){const[e,t,i]=A.getResolution();return[e*A.getWidth()/this.getWidth(),t*A.getHeight()/this.getHeight(),i*A.getWidth()/this.getWidth()]}throw new Error("The image does not have an affine transformation.")}pixelIsArea(){return 1===this.geoKeys.GTRasterTypeGeoKey}getBoundingBox(A=!1){const e=this.getHeight(),t=this.getWidth();if(this.fileDirectory.ModelTransformation&&!A){const[A,i,r,a,n,s,o,g]=this.fileDirectory.ModelTransformation,l=[[0,0],[0,e],[t,0],[t,e]].map((([e,t])=>[a+A*e+i*t,g+n*e+s*t])),h=l.map((A=>A[0])),I=l.map((A=>A[1]));return[Math.min(...h),Math.min(...I),Math.max(...h),Math.max(...I)]}{const A=this.getOrigin(),i=this.getResolution(),r=A[0],a=A[1],n=r+i[0]*t,s=a+i[1]*e;return[Math.min(r,n),Math.min(a,s),Math.max(r,n),Math.max(a,s)]}}};class ae{constructor(A){this._dataView=new DataView(A)}get buffer(){return this._dataView.buffer}getUint64(A,e){const t=this.getUint32(A,e),i=this.getUint32(A+4,e);let r;if(e){if(r=t+2**32*i,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}if(r=2**32*t+i,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}getInt64(A,e){let t=0;const i=(128&this._dataView.getUint8(A+(e?7:0)))>0;let r=!0;for(let a=0;a<8;a++){let n=this._dataView.getUint8(A+(e?a:7-a));i&&(r?0!==n&&(n=255&~(n-1),r=!1):n=255&~n),t+=n*256**a}return i&&(t=-t),t}getUint8(A,e){return this._dataView.getUint8(A,e)}getInt8(A,e){return this._dataView.getInt8(A,e)}getUint16(A,e){return this._dataView.getUint16(A,e)}getInt16(A,e){return this._dataView.getInt16(A,e)}getUint32(A,e){return this._dataView.getUint32(A,e)}getInt32(A,e){return this._dataView.getInt32(A,e)}getFloat16(A,e){return gA(this._dataView,A,e)}getFloat32(A,e){return this._dataView.getFloat32(A,e)}getFloat64(A,e){return this._dataView.getFloat64(A,e)}}class ne{constructor(A,e,t,i){this._dataView=new DataView(A),this._sliceOffset=e,this._littleEndian=t,this._bigTiff=i}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,e){return this.sliceOffset<=A&&this.sliceTop>=A+e}readUint8(A){return this._dataView.getUint8(A-this._sliceOffset,this._littleEndian)}readInt8(A){return this._dataView.getInt8(A-this._sliceOffset,this._littleEndian)}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 e=this.readUint32(A),t=this.readUint32(A+4);let i;if(this._littleEndian){if(i=e+2**32*t,!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*e+t,!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}readInt64(A){let e=0;const t=(128&this._dataView.getUint8(A+(this._littleEndian?7:0)))>0;let i=!0;for(let r=0;r<8;r++){let a=this._dataView.getUint8(A+(this._littleEndian?r:7-r));t&&(i?0!==a&&(a=255&~(a-1),i=!1):a=255&~a),e+=a*256**r}return t&&(e=-e),e}readOffset(A){return this._bigTiff?this.readUint64(A):this.readUint32(A)}}const se="\r\n\r\n";function oe(A){if(void 0!==Object.fromEntries)return Object.fromEntries(A);const e={};for(const[t,i]of A)e[t.toLowerCase()]=i;return e}function ge(A){return oe(A.split("\r\n").map((A=>{const e=A.split(":").map((A=>A.trim()));return e[0]=e[0].toLowerCase(),e})))}function le(A){let e,t,i;return A&&([,e,t,i]=A.match(/bytes (\d+)-(\d+)\/(\d+)/),e=parseInt(e,10),t=parseInt(t,10),i=parseInt(i,10)),{start:e,end:t,total:i}}class he{async fetch(A,e=void 0){return Promise.all(A.map((A=>this.fetchSlice(A,e))))}async fetchSlice(A){throw new Error(`fetching of slice ${A} not possible, not implemented`)}get fileSize(){return null}async close(){}}class Ie 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[e,t]of A)this.onEviction(e,t.value)}_deleteIfExpired(A,e){return"number"==typeof e.expiry&&e.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(A,e.value),this.delete(A))}_getOrDeleteIfExpired(A,e){if(!1===this._deleteIfExpired(A,e))return e.value}_getItemValue(A,e){return e.expiry?this._getOrDeleteIfExpired(A,e):e.value}_peek(A,e){const t=e.get(A);return this._getItemValue(A,t)}_set(A,e){this.cache.set(A,e),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(A,e){this.oldCache.delete(A),this._set(A,e)}*_entriesAscending(){for(const A of this.oldCache){const[e,t]=A;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,t)&&(yield A)}}for(const A of this.cache){const[e,t]=A;!1===this._deleteIfExpired(e,t)&&(yield A)}}get(A){if(this.cache.has(A)){const e=this.cache.get(A);return this._getItemValue(A,e)}if(this.oldCache.has(A)){const e=this.oldCache.get(A);if(!1===this._deleteIfExpired(A,e))return this._moveToRecent(A,e),e.value}}set(A,e,{maxAge:t=this.maxAge}={}){const i="number"==typeof t&&t!==Number.POSITIVE_INFINITY?Date.now()+t:void 0;return this.cache.has(A)?this.cache.set(A,{value:e,expiry:i}):this._set(A,{value:e,expiry:i}),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 e=this.cache.delete(A);return e&&this._size--,this.oldCache.delete(A)||e}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 e=[...this._entriesAscending()],t=e.length-A;t<0?(this.cache=new Map(e),this.oldCache=new Map,this._size=e.length):(t>0&&this._emitEvictions(e.slice(0,t)),this.oldCache=new Map(e.slice(t)),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[e,t]=A;!1===this._deleteIfExpired(e,t)&&(yield[e,t.value])}for(const A of this.oldCache){const[e,t]=A;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,t)&&(yield[e,t.value])}}}*entriesDescending(){let A=[...this.cache];for(let e=A.length-1;e>=0;--e){const t=A[e],[i,r]=t;!1===this._deleteIfExpired(i,r)&&(yield[i,r.value])}A=[...this.oldCache];for(let e=A.length-1;e>=0;--e){const t=A[e],[i,r]=t;if(!this.cache.has(i)){!1===this._deleteIfExpired(i,r)&&(yield[i,r.value])}}}*entriesAscending(){for(const[A,e]of this._entriesAscending())yield[A,e.value]}get size(){if(!this._size)return this.oldCache.size;let A=0;for(const e of this.oldCache.keys())this.cache.has(e)||A++;return Math.min(this._size+A,this.maxSize)}entries(){return this.entriesAscending()}forEach(A,e=this){for(const[t,i]of this.entriesAscending())A.call(e,i,t,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}class Be extends Error{constructor(A){super(A),Error.captureStackTrace&&Error.captureStackTrace(this,Be),this.name="AbortError"}}class ce extends Error{constructor(A,e){super(e),this.errors=A,this.message=e,this.name="AggregateError"}}const Ce=ce;class fe{constructor(A,e,t=null){this.offset=A,this.length=e,this.data=t}get top(){return this.offset+this.length}}class Ee{constructor(A,e,t){this.offset=A,this.length=e,this.blockIds=t}}class Qe extends he{constructor(A,{blockSize:e=65536,cacheSize:t=100}={}){super(),this.source=A,this.blockSize=e,this.blockCache=new Ie({maxSize:t,onEviction:(A,e)=>{this.evictedBlocks.set(A,e)}}),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,e){const t=[],i=[],r=[];this.evictedBlocks.clear();for(const{offset:e,length:a}of A){let A=e+a;const{fileSize:n}=this;null!==n&&(A=Math.min(A,n));for(let a=Math.floor(e/this.blockSize)*this.blockSize;a<A;a+=this.blockSize){const A=Math.floor(a/this.blockSize);this.blockCache.has(A)||this.blockRequests.has(A)||(this.blockIdsToFetch.add(A),i.push(A)),this.blockRequests.has(A)&&t.push(this.blockRequests.get(A)),r.push(A)}}await async function(A){return new Promise((e=>setTimeout(e,A)))}(),this.fetchBlocks(e);const a=[];for(const A of i)this.blockRequests.has(A)&&a.push(this.blockRequests.get(A));await Promise.allSettled(t),await Promise.allSettled(a);const n=[],s=r.filter((A=>this.abortedBlockIds.has(A)||!this.blockCache.has(A)));if(s.forEach((A=>this.blockIdsToFetch.add(A))),s.length>0&&e&&!e.aborted){this.fetchBlocks(null);for(const A of s){const e=this.blockRequests.get(A);if(!e)throw new Error(`Block ${A} is not in the block requests`);n.push(e)}await Promise.allSettled(n)}if(e&&e.aborted)throw new Be("Request was aborted");const o=r.map((A=>this.blockCache.get(A)||this.evictedBlocks.get(A))),g=o.filter((A=>!A));if(g.length)throw new Ce(g,"Request failed");const l=new Map(function(A,e){const t=Array.isArray(A)?A:Array.from(A),i=Array.isArray(e)?e:Array.from(e);return t.map(((A,e)=>[A,i[e]]))}(r,o));return this.readSliceData(A,l)}fetchBlocks(A){if(this.blockIdsToFetch.size>0){const e=this.groupBlocks(this.blockIdsToFetch),t=this.source.fetch(e,A);for(let i=0;i<e.length;++i){const r=e[i];for(const e of r.blockIds)this.blockRequests.set(e,(async()=>{try{const A=(await t)[i],r=e*this.blockSize,a=r-A.offset,n=Math.min(a+this.blockSize,A.data.byteLength),s=A.data.slice(a,n),o=new fe(r,s.byteLength,s,e);this.blockCache.set(e,o),this.abortedBlockIds.delete(e)}catch(t){if("AbortError"!==t.name)throw t;t.signal=A,this.blockCache.delete(e),this.abortedBlockIds.add(e)}finally{this.blockRequests.delete(e)}})())}this.blockIdsToFetch.clear()}}groupBlocks(A){const e=Array.from(A).sort(((A,e)=>A-e));if(0===e.length)return[];let t=[],i=null;const r=[];for(const A of e)null===i||i+1===A?(t.push(A),i=A):(r.push(new Ee(t[0]*this.blockSize,t.length*this.blockSize,t)),t=[A],i=A);return r.push(new Ee(t[0]*this.blockSize,t.length*this.blockSize,t)),r}readSliceData(A,e){return A.map((A=>{let t=A.offset+A.length;null!==this.fileSize&&(t=Math.min(this.fileSize,t));const i=Math.floor(A.offset/this.blockSize),r=Math.floor(t/this.blockSize),a=new ArrayBuffer(A.length),n=new Uint8Array(a);for(let a=i;a<=r;++a){const i=e.get(a),r=i.offset-A.offset;let s,o=0,g=0;r<0?o=-r:r>0&&(g=r),s=i.top-t<0?i.length-o:t-i.offset-o;const l=new Uint8Array(i.data,o,s);n.set(l,g)}return a}))}}class de{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 ue{constructor(A){this.url=A}async request({headers:A,signal:e}={}){throw new Error("request is not implemented")}}class we extends de{constructor(A){super(),this.response=A}get status(){return this.response.status}getHeader(A){return this.response.headers.get(A)}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}}class pe extends ue{constructor(A,e){super(A),this.credentials=e}async request({headers:A,signal:e}={}){const t=await fetch(this.url,{headers:A,credentials:this.credentials,signal:e});return new we(t)}}class me extends de{constructor(A,e){super(),this.xhr=A,this.data=e}get status(){return this.xhr.status}getHeader(A){return this.xhr.getResponseHeader(A)}async getData(){return this.data}}class ye extends ue{constructRequest(A,e){return new Promise(((t,i)=>{const r=new XMLHttpRequest;r.open("GET",this.url),r.responseType="arraybuffer";for(const[e,t]of Object.entries(A))r.setRequestHeader(e,t);r.onload=()=>{const A=r.response;t(new me(r,A))},r.onerror=i,r.onabort=()=>i(new Be("Request aborted")),r.send(),e&&(e.aborted&&r.abort(),e.addEventListener("abort",(()=>r.abort())))}))}async request({headers:A,signal:e}={}){return await this.constructRequest(A,e)}}var De={};class ke extends de{constructor(A,e){super(),this.response=A,this.dataPromise=e}get status(){return this.response.statusCode}getHeader(A){return this.response.headers[A]}async getData(){return await this.dataPromise}}class be extends ue{constructor(A){super(A),this.parsedUrl=De.parse(this.url),this.httpApi=(this.parsedUrl.protocol,De)}constructRequest(A,e){return new Promise(((t,i)=>{const r=this.httpApi.get({...this.parsedUrl,headers:A},(A=>{const e=new Promise((e=>{const t=[];A.on("data",(A=>{t.push(A)})),A.on("end",(()=>{const A=Buffer.concat(t).buffer;e(A)})),A.on("error",i)}));t(new ke(A,e))}));r.on("error",i),e&&(e.aborted&&r.destroy(new Be("Request aborted")),e.addEventListener("abort",(()=>r.destroy(new Be("Request aborted")))))}))}async request({headers:A,signal:e}={}){return await this.constructRequest(A,e)}}class _e extends he{constructor(A,e,t,i){super(),this.client=A,this.headers=e,this.maxRanges=t,this.allowFullFile=i,this._fileSize=null}async fetch(A,e){return this.maxRanges>=A.length?this.fetchSlices(A,e):(this.maxRanges>0&&A.length,Promise.all(A.map((A=>this.fetchSlice(A,e)))))}async fetchSlices(A,e){const t=await this.client.request({headers:{...this.headers,Range:`bytes=${A.map((({offset:A,length:e})=>`${A}-${A+e}`)).join(",")}`},signal:e});if(t.ok){if(206===t.status){const{type:i,params:r}=function(A){const[e,...t]=A.split(";").map((A=>A.trim()));return{type:e,params:oe(t.map((A=>A.split("="))))}}(t.getHeader("content-type"));if("multipart/byteranges"===i){const A=function(A,e){let t=null;const i=new TextDecoder("ascii"),r=[],a=`--${e}`,n=`${a}--`;for(let e=0;e<10;++e)i.decode(new Uint8Array(A,e,a.length))===a&&(t=e);if(null===t)throw new Error("Could not find initial boundary");for(;t<A.byteLength;){const e=i.decode(new Uint8Array(A,t,Math.min(a.length+1024,A.byteLength-t)));if(0===e.length||e.startsWith(n))break;if(!e.startsWith(a))throw new Error("Part does not start with boundary");const s=e.substr(a.length+2);if(0===s.length)break;const o=s.indexOf(se),g=ge(s.substr(0,o)),{start:l,end:h,total:I}=le(g["content-range"]),B=t+a.length+o+4,c=parseInt(h,10)+1-parseInt(l,10);r.push({headers:g,data:A.slice(B,B+c),offset:l,length:c,fileSize:I}),t=B+c+4}return r}(await t.getData(),r.boundary);return this._fileSize=A[0].fileSize||null,A}const a=await t.getData(),{start:n,end:s,total:o}=le(t.getHeader("content-range"));this._fileSize=o||null;const g=[{data:a,offset:n,length:s-n}];if(A.length>1){const t=await Promise.all(A.slice(1).map((A=>this.fetchSlice(A,e))));return g.concat(t)}return g}{if(!this.allowFullFile)throw new Error("Server responded with full file");const A=await t.getData();return this._fileSize=A.byteLength,[{data:A,offset:0,length:A.byteLength}]}}throw new Error("Error fetching data.")}async fetchSlice(A,e){const{offset:t,length:i}=A,r=await this.client.request({headers:{...this.headers,Range:`bytes=${t}-${t+i}`},signal:e});if(r.ok){if(206===r.status){const A=await r.getData(),{total:e}=le(r.getHeader("content-range"));return this._fileSize=e||null,{data:A,offset:t,length:i}}{if(!this.allowFullFile)throw new Error("Server responded with full file");const A=await r.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 Se(A,{blockSize:e,cacheSize:t}){return null===e?A:new Qe(A,{blockSize:e,cacheSize:t})}function xe(A,{forceXHR:e=!1,...t}={}){return"function"!=typeof fetch||e?"undefined"!=typeof XMLHttpRequest?function(A,{headers:e={},maxRanges:t=0,allowFullFile:i=!1,...r}={}){const a=new ye(A);return Se(new _e(a,e,t,i),r)}(A,t):function(A,{headers:e={},maxRanges:t=0,allowFullFile:i=!1,...r}={}){const a=new be(A);return Se(new _e(a,e,t,i),r)}(A,t):function(A,{headers:e={},credentials:t,maxRanges:i=0,allowFullFile:r=!1,...a}={}){const n=new pe(A,t);return Se(new _e(n,e,i,r),a)}(A,t)}class Fe extends he{constructor(A){super(),this.arrayBuffer=A}fetchSlice(A,e){if(e&&e.aborted)throw new Be("Request aborted");return this.arrayBuffer.slice(A.offset,A.offset+A.length)}}function Ge(A,e){let t=A.length-e,i=0;do{for(let t=e;t>0;t--)A[i+e]+=A[i],i++;t-=e}while(t>0)}function Ue(A,e,t){let i=0,r=A.length;const a=r/t;for(;r>e;){for(let t=e;t>0;--t)A[i+e]+=A[i],++i;r-=e}const n=A.slice();for(let e=0;e<a;++e)for(let i=0;i<t;++i)A[t*e+i]=n[(t-i-1)*a+e]}class Re{async decode(A,e){const t=await this.decodeBlock(e),i=A.Predictor||1;if(1!==i){const e=!A.StripOffsets;return function(A,e,t,i,r,a){if(!e||1===e)return A;for(let A=0;A<r.length;++A){if(r[A]%8!=0)throw new Error("When decoding with predictor, only multiple of 8 bits are supported.");if(r[A]!==r[0])throw new Error("When decoding with predictor, all samples must have the same size.")}const n=r[0]/8,s=2===a?1:r.length;for(let a=0;a<i&&!(a*s*t*n>=A.byteLength);++a){let i;if(2===e){switch(r[0]){case 8:i=new Uint8Array(A,a*s*t*n,s*t*n);break;case 16:i=new Uint16Array(A,a*s*t*n,s*t*n/2);break;case 32:i=new Uint32Array(A,a*s*t*n,s*t*n/4);break;default:throw new Error(`Predictor 2 not allowed with ${r[0]} bits per sample.`)}Ge(i,s)}else 3===e&&(i=new Uint8Array(A,a*s*t*n,s*t*n),Ue(i,s,n))}return A}(t,i,e?A.TileWidth:A.ImageWidth,e?A.TileLength:A.RowsPerStrip||A.ImageLength,A.BitsPerSample,A.PlanarConfiguration)}return t}}function Me(A){switch(A){case LA.BYTE:case LA.ASCII:case LA.SBYTE:case LA.UNDEFINED:return 1;case LA.SHORT:case LA.SSHORT:return 2;case LA.LONG:case LA.SLONG:case LA.FLOAT:case LA.IFD:return 4;case LA.RATIONAL:case LA.SRATIONAL:case LA.DOUBLE:case LA.LONG8:case LA.SLONG8:case LA.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${A}`)}}function Le(A,e,t,i){let r=null,a=null;const n=Me(e);switch(e){case LA.BYTE:case LA.ASCII:case LA.UNDEFINED:r=new Uint8Array(t),a=A.readUint8;break;case LA.SBYTE:r=new Int8Array(t),a=A.readInt8;break;case LA.SHORT:r=new Uint16Array(t),a=A.readUint16;break;case LA.SSHORT:r=new Int16Array(t),a=A.readInt16;break;case LA.LONG:case LA.IFD:r=new Uint32Array(t),a=A.readUint32;break;case LA.SLONG:r=new Int32Array(t),a=A.readInt32;break;case LA.LONG8:case LA.IFD8:r=new Array(t),a=A.readUint64;break;case LA.SLONG8:r=new Array(t),a=A.readInt64;break;case LA.RATIONAL:r=new Uint32Array(2*t),a=A.readUint32;break;case LA.SRATIONAL:r=new Int32Array(2*t),a=A.readInt32;break;case LA.FLOAT:r=new Float32Array(t),a=A.readFloat32;break;case LA.DOUBLE:r=new Float64Array(t),a=A.readFloat64;break;default:throw new RangeError(`Invalid field type: ${e}`)}if(e!==LA.RATIONAL&&e!==LA.SRATIONAL)for(let e=0;e<t;++e)r[e]=a.call(A,i+e*n);else for(let e=0;e<t;e+=2)r[e]=a.call(A,i+e*n),r[e+1]=a.call(A,i+(e*n+4));return e===LA.ASCII?new TextDecoder("utf-8").decode(r):r}class ve{constructor(A,e,t){this.fileDirectory=A,this.geoKeyDirectory=e,this.nextIFDByteOffset=t}}class Ne extends Error{constructor(A){super(`No image at index ${A}`),this.index=A}}class Te{async readRasters(A={}){const{window:e,width:t,height:i}=A;let{resX:r,resY:a,bbox:n}=A;const s=await this.getImage();let o=s;const g=await this.getImageCount(),l=s.getBoundingBox();if(e&&n)throw new Error('Both "bbox" and "window" passed.');if(t||i){if(e){const[A,t]=s.getOrigin(),[i,r]=s.getResolution();n=[A+e[0]*i,t+e[1]*r,A+e[2]*i,t+e[3]*r]}const A=n||l;if(t){if(r)throw new Error("Both width and resX passed");r=(A[2]-A[0])/t}if(i){if(a)throw new Error("Both width and resY passed");a=(A[3]-A[1])/i}}if(r||a){const A=[];for(let e=0;e<g;++e){const t=await this.getImage(e),{SubfileType:i,NewSubfileType:r}=t.fileDirectory;(0===e||2===i||1&r)&&A.push(t)}A.sort(((A,e)=>A.getWidth()-e.getWidth()));for(let e=0;e<A.length;++e){const t=A[e],i=(l[2]-l[0])/t.getWidth(),n=(l[3]-l[1])/t.getHeight();if(o=t,r&&r>i||a&&a>n)break}}let h=e;if(n){const[A,e]=s.getOrigin(),[t,i]=o.getResolution(s);h=[Math.round((n[0]-A)/t),Math.round((n[1]-e)/i),Math.round((n[2]-A)/t),Math.round((n[3]-e)/i)],h=[Math.min(h[0],h[2]),Math.min(h[1],h[3]),Math.max(h[0],h[2]),Math.max(h[1],h[3])]}return o.readRasters({...A,window:h})}}class qe extends Te{constructor(A,e,t,i,r={}){super(),this.source=A,this.littleEndian=e,this.bigTiff=t,this.firstIFDOffset=i,this.cache=r.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(A,e){const t=this.bigTiff?4048:1024;return new ne((await this.source.fetch([{offset:A,length:void 0!==e?e:t}]))[0],A,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(A){const e=this.bigTiff?20:12,t=this.bigTiff?8:2;let i=await this.getSlice(A);const r=this.bigTiff?i.readUint64(A):i.readUint16(A),a=r*e+(this.bigTiff?16:6);i.covers(A,a)||(i=await this.getSlice(A,a));const n={};let s=A+(this.bigTiff?8:2);for(let A=0;A<r;s+=e,++A){const A=i.readUint16(s),e=i.readUint16(s+2),t=this.bigTiff?i.readUint64(s+4):i.readUint32(s+4);let r,a;const o=Me(e),g=s+(this.bigTiff?12:8);if(o*t<=(this.bigTiff?8:4))r=Le(i,e,t,g);else{const A=i.readOffset(g),a=Me(e)*t;if(i.covers(A,a))r=Le(i,e,t,A);else{r=Le(await this.getSlice(A,a),e,t,A)}}a=1===t&&-1===RA.indexOf(A)&&e!==LA.RATIONAL&&e!==LA.SRATIONAL?r[0]:r,n[GA[A]]=a}const o=function(A){const e=A.GeoKeyDirectory;if(!e)return null;const t={};for(let i=4;i<=4*e[3];i+=4){const r=ZA[e[i]],a=e[i+1]?GA[e[i+1]]:null,n=e[i+2],s=e[i+3];let o=null;if(a){if(o=A[a],null==o)throw new Error(`Could not get value of geoKey '${r}'.`);"string"==typeof o?o=o.substring(s,s+n-1):o.subarray&&(o=o.subarray(s,s+n),1===n&&(o=o[0]))}else o=s;t[r]=o}return t}(n),g=i.readOffset(A+t+e*r);return new ve(n,o,g)}async requestIFD(A){if(this.ifdRequests[A])return this.ifdRequests[A];if(0===A)return this.ifdRequests[A]=this.parseFileDirectoryAt(this.firstIFDOffset),this.ifdRequests[A];if(!this.ifdRequests[A-1])try{this.ifdRequests[A-1]=this.requestIFD(A-1)}catch(e){if(e instanceof Ne)throw new Ne(A);throw e}return this.ifdRequests[A]=(async()=>{const e=await this.ifdRequests[A-1];if(0===e.nextIFDByteOffset)throw new Ne(A);return this.parseFileDirectoryAt(e.nextIFDByteOffset)})(),this.ifdRequests[A]}async getImage(A=0){const e=await this.requestIFD(A);return new re(e.fileDirectory,e.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let A=0,e=!0;for(;e;)try{await this.requestIFD(A),++A}catch(A){if(!(A instanceof Ne))throw A;e=!1}return A}async getGhostValues(){const A=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;const e="GDAL_STRUCTURAL_METADATA_SIZE=";let t=await this.getSlice(A,130);if(e===Le(t,LA.ASCII,30,A)){const e=Le(t,LA.ASCII,130,A).split("\n")[0],i=Number(e.split("=")[1].split(" ")[0])+e.length;i>130&&(t=await this.getSlice(A,i));const r=Le(t,LA.ASCII,i,A);this.ghostValues={},r.split("\n").filter((A=>A.length>0)).map((A=>A.split("="))).forEach((([A,e])=>{this.ghostValues[A]=e}))}return this.ghostValues}static async fromSource(A,e,t){const i=(await A.fetch([{offset:0,length:1024}],t))[0],r=new ae(i),a=r.getUint16(0,0);let n;if(18761===a)n=!0;else{if(19789!==a)throw new TypeError("Invalid byte order value.");n=!1}const s=r.getUint16(2,n);let o;if(42===s)o=!1;else{if(43!==s)throw new TypeError("Invalid magic number.");o=!0;if(8!==r.getUint16(4,n))throw new Error("Unsupported offset byte-size.")}const g=o?r.getUint64(8,n):r.getUint32(4,n);return new qe(A,n,o,g,e)}close(){return"function"==typeof this.source.close&&this.source.close()}}async function Oe(A,e){return qe.fromSource(function(A){return new Fe(A)}(A),e)}const Je=Math.PI,He=Je/4,Ye=180/Je;class ze{constructor(A=257){this.gridSize=A;const e=A-1;if(e&e-1)throw new Error(`Expected grid size to be 2^n+1, got ${A}.`);this.numTriangles=e*e*2-2,this.numParentTriangles=this.numTriangles-e*e,this.indices=new Uint32Array(this.gridSize*this.gridSize),this.coords=new Uint16Array(4*this.numTriangles);for(let A=0;A<this.numTriangles;A++){let t=A+2,i=0,r=0,a=0,n=0,s=0,o=0;for(1&t?a=n=s=e:i=r=o=e;(t>>=1)>1;){const A=i+a>>1,e=r+n>>1;1&t?(a=i,n=r,i=s,r=o):(i=a,r=n,a=s,n=o),s=A,o=e}const g=4*A;this.coords[g+0]=i,this.coords[g+1]=r,this.coords[g+2]=a,this.coords[g+3]=n}}createTile(A){return new Pe(A,this)}}class Pe{constructor(A,e){const t=e.gridSize;if(A.length!==t*t)throw new Error(`Expected terrain data of length ${t*t} (${t} x ${t}), got ${A.length}.`);this.terrain=A,this.martini=e,this.errors=new Float32Array(A.length),this.update()}update(){const{numTriangles:A,numParentTriangles:e,coords:t,gridSize:i}=this.martini,{terrain:r,errors:a}=this;for(let n=A-1;n>=0;n--){const A=4*n,s=t[A+0],o=t[A+1],g=t[A+2],l=t[A+3],h=s+g>>1,I=o+l>>1,B=h+I-o,c=I+s-h,C=(r[o*i+s]+r[l*i+g])/2,f=I*i+h,E=Math.abs(C-r[f]);if(a[f]=Math.max(a[f],E),n<e){const A=(o+c>>1)*i+(s+B>>1),e=(l+c>>1)*i+(g+B>>1);a[f]=Math.max(a[f],a[A],a[e])}}}getMesh(A=0){const{gridSize:e,indices:t}=this.martini,{errors:i}=this;let r=0,a=0;const n=e-1;function s(n,o,g,l,h,I){const B=n+g>>1,c=o+l>>1;Math.abs(n-h)+Math.abs(o-I)>1&&i[c*e+B]>A?(s(h,I,n,o,B,c),s(g,l,h,I,B,c)):(t[o*e+n]=t[o*e+n]||++r,t[l*e+g]=t[l*e+g]||++r,t[I*e+h]=t[I*e+h]||++r,a++)}t.fill(0),s(0,0,n,n,n,0),s(n,n,0,0,0,n);const o=new Uint16Array(2*r),g=new Uint32Array(3*a);let l=0;function h(r,a,n,s,I,B){const c=r+n>>1,C=a+s>>1;if(Math.abs(r-I)+Math.abs(a-B)>1&&i[C*e+c]>A)h(I,B,r,a,c,C),h(n,s,I,B,c,C);else{const A=t[a*e+r]-1,i=t[s*e+n]-1,h=t[B*e+I]-1;o[2*A]=r,o[2*A+1]=a,o[2*i]=n,o[2*i+1]=s,o[2*h]=I,o[2*h+1]=B,g[l++]=A,g[l++]=i,g[l++]=h}}return h(0,0,n,n,n,0),h(n,n,0,0,0,n),{vertices:o,triangles:g}}}function Ke(A,e,t,i){const r=i?function(A,e){A.westIndices.sort(((A,t)=>e[3*A+1]-e[3*t+1])),A.eastIndices.sort(((A,t)=>e[3*t+1]-e[3*A+1])),A.southIndices.sort(((A,t)=>e[3*t]-e[3*A])),A.northIndices.sort(((A,t)=>e[3*A]-e[3*t]));const t=[];for(const e in A){const i=A[e];for(let A=0;A<i.length-1;A++)t.push([i[A],i[A+1]])}return t}(i,A.POSITION.value):function(A){var e,t;const i=[];for(let e=0;e<A.length;e+=3)i.push([A[e],A[e+1]]),i.push([A[e+1],A[e+2]]),i.push([A[e+2],A[e]]);i.sort(((A,e)=>Math.min(...A)-Math.min(...e)||Math.max(...A)-Math.max(...e)));const r=[];let a=0;for(;a<i.length;)i[a][0]===(null===(e=i[a+1])||void 0===e?void 0:e[1])&&i[a][1]===(null===(t=i[a+1])||void 0===t?void 0:t[0])?a+=2:(r.push(i[a]),a++);return r}(e),a=new A.POSITION.value.constructor(6*r.length),n=new A.TEXCOORD_0.value.constructor(4*r.length),s=new e.constructor(6*r.length);for(let e=0;e<r.length;e++){Ve({edge:r[e],edgeIndex:e,attributes:A,skirtHeight:t,newPosition:a,newTexcoord0:n,newTriangles:s})}A.POSITION.value=o(A.POSITION.value,a),A.TEXCOORD_0.value=o(A.TEXCOORD_0.value,n);return{attributes:A,triangles:e instanceof Array?e.concat(s):o(e,s)}}function Ve({edge:A,edgeIndex:e,attributes:t,skirtHeight:i,newPosition:r,newTexcoord0:a,newTriangles:n}){const s=t.POSITION.value.length,o=2*e,g=2*e+1;r.set(t.POSITION.value.subarray(3*A[0],3*A[0]+3),3*o),r[3*o+2]=r[3*o+2]-i,r.set(t.POSITION.value.subarray(3*A[1],3*A[1]+3),3*g),r[3*g+2]=r[3*g+2]-i,a.set(t.TEXCOORD_0.value.subarray(2*A[0],2*A[0]+2),2*o),a.set(t.TEXCOORD_0.value.subarray(2*A[1],2*A[1]+2),2*g);const l=2*e*3;n[l]=A[0],n[l+1]=s/3+g,n[l+2]=A[1],n[l+3]=s/3+g,n[l+4]=A[0],n[l+5]=s/3+o}const Ze={type:"image",format:"uint8",useHeatMap:!0,useColorsBasedOnValues:!1,useAutoRange:!1,useDataForOpacity:!1,useSingleColor:!1,useColorClasses:!1,blurredTexture:!0,clipLow:null,clipHigh:null,multiplier:1,color:[255,0,255,255],colorScale:n.brewer.YlOrRd,colorScaleValueRange:[0,255],colorsBasedOnValues:null,colorClasses:null,alpha:100,useChannel:null,useChannelIndex:null,noDataValue:void 0,numOfChannels:void 0,nullColor:[0,0,0,0],unidentifiedColor:[0,0,0,0],clippedColor:[0,0,0,0],terrainColor:[133,133,133,255],terrainSkirtHeight:100,terrainMinValue:0,planarConfig:void 0};class Xe{constructor(){this.scale=(A,e,t,i,r)=>(A-e)*(r-i)/(t-e)+i}setUrl(A){return l(this,void 0,void 0,(function*(){const e=yield fetch(A),t=yield e.arrayBuffer(),i=yield Oe(t),r=yield i.getImage(0);this.data=r}))}getMap(A,e,t){return l(this,void 0,void 0,(function*(){const i=Object.assign(Object.assign({},Ze),e);switch(i.type){case"image":return this.getBitmap(A,i);case"terrain":return this.getHeightmap(A,i,t);default:return null}}))}getHeightmap(A,e,t){return l(this,void 0,void 0,(function*(){var i;let r,a,n=[];"string"==typeof A?(yield this.setUrl(A),n=yield this.data.readRasters(),r=this.data.getWidth(),a=this.data.getHeight()):(n=A.rasters,r=A.width,a=A.height);const o=Object.assign({},e);let g=n[0];null!==(i=o.useChannelIndex)&&void 0!==i||(o.useChannelIndex=null==o.useChannel?null:o.useChannel-1),null!=e.useChannelIndex&&n[o.useChannelIndex]&&(g=n[o.useChannelIndex]);const l=new Float32Array((r+1)*(a+1)),h=g.length/(r*a);let I=null===e.useChannelIndex?0:e.useChannelIndex;for(let A=0,t=0;t<a;t++)for(let i=0;i<r;i++,A++){const i=e.noDataValue&&g[I]===e.noDataValue?e.terrainMinValue:g[I]*e.multiplier;l[A+t]=i,I+=h}for(let A=(r+1)*r,e=0;e<r;e++,A++)l[A]=l[A-r-1];for(let A=a,e=0;e<a+1;e++,A+=a+1)l[A]=l[A-1];const{terrainSkirtHeight:B}=e;let c;c=We(t,r,l);const{vertices:C}=c;let{triangles:f}=c,E=function(A,e,t,i,r){const a=t+1,n=A.length/2,s=new Float32Array(3*n),o=new Float32Array(2*n),[g,l,h,I]=r||[0,0,t,i],B=(h-g)/t,c=(I-l)/i;for(let r=0;r<n;r++){const n=A[2*r],l=A[2*r+1],h=l*a+n;s[3*r+0]=n*B+g,s[3*r+1]=-l*c+I,s[3*r+2]=e[h],o[2*r+0]=n/t,o[2*r+1]=l/i}return{POSITION:{value:s,size:3},TEXCOORD_0:{value:o,size:2}}}(C,l,r,a,A.bounds);const Q=s(E);if(B){const{attributes:A,triangles:e}=Ke(E,f,B);E=A,f=e}return{loaderData:{header:{}},header:{vertexCount:f.length,boundingBox:Q},mode:4,indices:{value:Uint32Array.from(f),size:1},attributes:E}}))}getBitmap(A,e){return l(this,void 0,void 0,(function*(){var t;const i=Object.assign({},e);let r,a,n,s=[];"string"==typeof A?(yield this.setUrl(A),s=yield this.data.readRasters(),r=s.length,a=this.data.getWidth(),n=this.data.getHeight()):(s=A.rasters,r=s.length,a=A.width,n=A.height);const o=document.createElement("canvas");o.width=a,o.height=n;const g=o.getContext("2d"),l=g.createImageData(a,n);let h,I,B,c;const C=a*n*4;if(i.unidentifiedColor=this.getColorFromChromaType(i.unidentifiedColor),i.nullColor=this.getColorFromChromaType(i.nullColor),i.clippedColor=this.getColorFromChromaType(i.clippedColor),i.color=this.getColorFromChromaType(i.color),null!==(t=i.useChannelIndex)&&void 0!==t||(i.useChannelIndex=null===e.useChannel?null:e.useChannel-1),null==i.useChannelIndex){if(1===r){if(s[0].length/(a*n)==1){const A=s[0];i.useAutoRange&&(i.colorScaleValueRange=this.getMinMax(A,i));this.getColorValue(A,i,C).forEach(((A,e)=>{l.data[e]=A}))}if(s[0].length/(a*n)==3){let A=0;for(let e=0;e<C;e+=4){const t=[s[0][A],s[0][A+1],s[0][A+2]],r=this.hasPixelsNoData(t,i.noDataValue)?i.nullColor:[...t,Math.floor(2.55*i.alpha)];[l.data[e],l.data[e+1],l.data[e+2],l.data[e+3]]=r,A+=3}}s[0].length/(a*n)==4&&s[0].forEach(((A,e)=>{l.data[e]=A}))}if(3===r){let A=0;for(let e=0;e<C;e+=4)h=s[0][A],I=s[1][A],B=s[2][A],c=Math.floor(2.55*i.alpha),l.data[e]=h,l.data[e+1]=I,l.data[e+2]=B,l.data[e+3]=c,A+=1}if(4===r){let A=0;for(let e=0;e<C;e+=4)h=s[0][A],I=s[1][A],B=s[2][A],c=Math.floor(2.55*i.alpha),l.data[e]=h,l.data[e+1]=I,l.data[e+2]=B,l.data[e+3]=c,A+=1}}else if(i.useChannelIndex<i.numOfChannels&&i.useChannelIndex>=0){let A=s[0];s[i.useChannelIndex]&&(A=s[i.useChannelIndex]),i.useAutoRange&&(i.colorScaleValueRange=this.getMinMax(A,i));this.getColorValue(A,i,C,i.numOfChannels).forEach(((A,e)=>{l.data[e]=A}))}else{console.log(`Defined channel(${e.useChannel}) or channel index(${e.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(C,i.nullColor).forEach(((A,e)=>{l.data[e]=A}))}g.putImageData(l,0,0);return o.toDataURL("image/png")}))}getMinMax(A,e){let t=e.maxValue?e.maxValue:Number.MIN_VALUE,i=e.minValue?e.minValue:Number.MAX_VALUE;for(let r=0;r<A.length;r+=1)void 0!==e.noDataValue&&A[r]===e.noDataValue||(A[r]>t&&(t=A[r]),A[r]<i&&(i=A[r]));return[i,t]}getColorValue(A,e,t,i=1){const r=n.scale(e.colorScale).domain(e.colorScaleValueRange);let a=null===e.useChannelIndex?0:e.useChannelIndex;const s=new Array(t),o=e.colorsBasedOnValues?e.colorsBasedOnValues.map((([A])=>A)):void 0,g=e.colorsBasedOnValues?e.colorsBasedOnValues.map((([,A])=>[...n(A).rgb(),Math.floor(2.55*e.alpha)])):void 0,l=e.useColorClasses?e.colorClasses.map((([A])=>[...n(A).rgb(),Math.floor(2.55*e.alpha)])):void 0,h=e.useColorClasses?e.colorClasses.map((([,A])=>A)):void 0,I=e.useColorClasses?e.colorClasses.map((([,,A],t)=>void 0!==A?A:t===e.colorClasses.length-1?[!0,!0]:[!0,!1])):void 0;for(let n=0;n<t;n+=4){let t=e.nullColor;if(!Number.isNaN(A[a])&&(void 0===e.noDataValue||A[a]!==e.noDataValue))if(null!=e.clipLow&&A[a]<=e.clipLow||null!=e.clipHigh&&A[a]>=e.clipHigh)t=e.clippedColor;else{if(e.useHeatMap&&(t=[...r(A[a]).rgb(),Math.floor(2.55*e.alpha)]),e.useColorsBasedOnValues){const i=o.indexOf(A[a]);t=i>-1?g[i]:e.unidentifiedColor}if(e.useColorClasses){const i=this.findClassIndex(A[a],h,I);t=i>-1?l[i]:e.unidentifiedColor}e.useSingleColor&&(t=e.color),e.useDataForOpacity&&(t[3]=this.scale(A[a],e.colorScaleValueRange[0],e.colorScaleValueRange.slice(-1)[0],0,255))}[s[n],s[n+1],s[n+2],s[n+3]]=t,a+=i}return s}findClassIndex(A,e,t){for(let i=0;i<e.length;i+=1){const[r,a]=e[i],[n,s]=t[i];if((n?A>=r:A>r)&&(s?A<=a:A<a))return i}return-1}getDefaultColor(A,e){const t=new Array(A);for(let i=0;i<A;i+=4)[t[i],t[i+1],t[i+2],t[i+3]]=e;return t}getColorFromChromaType(A){return Array.isArray(A)&&4===A.length?A:[...n(A).rgb(),255]}hasPixelsNoData(A,e){return void 0!==e&&A.every((A=>A===e))}}function We(A,e,t){const i=new ze(e+1).createTile(t),{vertices:r,triangles:a}=i.getMesh(A);return{vertices:r,triangles:a}}const je=2*Math.PI*6378137,$e=je/2,At=[-20037508.342789244,20037508.342789244],et={blurredTexture:!0};class tt{constructor(A){this.cogZoomLookup=[0],this.cogResolutionLookup=[0],this.cogOrigin=[0,0],this.zoomRange=[0,0],this.loaded=!1,this.geo=new Xe,this.options=Object.assign(Object.assign({},et),A)}initializeCog(A){return l(this,void 0,void 0,(function*(){var e,t,i,r;this.cog=yield async function(A,e={},t){return qe.fromSource(xe(A,e),t)}(A);const a=yield this.cog.getImage();this.cogOrigin=a.getOrigin(),null!==(e=(i=this.options).noDataValue)&&void 0!==e||(i.noDataValue=this.getNoDataValue(a)),null!==(t=(r=this.options).format)&&void 0!==t||(r.format=this.getDataTypeFromTags(a)),this.options.numOfChannels=this.getNumberOfChannels(a),this.options.planarConfig=this.getPlanarConfiguration(a),[this.cogZoomLookup,this.cogResolutionLookup]=yield this.buildCogZoomResolutionLookup(this.cog),this.tileSize=a.getTileWidth(),this.zoomRange=this.calculateZoomRange(a,yield this.cog.getImageCount()),this.bounds=this.calculateBoundsAsLatLon(a)}))}getZoomRange(){return this.zoomRange}calculateZoomRange(A,e){const t=this.getZoomLevelFromResolution(A.getTileWidth(),A.getResolution()[0]);return[t-(e-1),t]}calculateBoundsAsLatLon(A){const e=A.getBoundingBox(),t=Math.min(e[0],e[2]),i=Math.max(e[0],e[2]),r=Math.min(e[1],e[3]),a=Math.max(e[1],e[3]),n=this.getLatLon([t,r]),s=this.getLatLon([i,a]);return[n[0],n[1],s[0],s[1]]}getZoomLevelFromResolution(A,e){return Math.round(Math.log2(je/(e*A)))}getBoundsAsLatLon(){return this.bounds}getLatLon(A){const e=$e+A[0],t=-($e+(A[1]-je)),i=function(A){const[e,t]=A,i=e/512*(2*Je)-Je,r=2*(Math.atan(Math.exp(t/512*(2*Je)-Je))-He);return[i*Ye,r*Ye]}([e*(512/je),t*(512/je)]);return[i[0],-i[1]]}buildCogZoomResolutionLookup(A){return l(this,void 0,void 0,(function*(){const e=yield A.getImageCount(),t=yield A.getImage(0),i=t.getResolution()[0],r=t.getWidth(),a=[],n=[];for(let t=0;t<e;t++){const e=i*(r/(yield A.getImage(t)).getWidth()),s=Math.round(Math.log2(156543.03125/e));a[t]=s,n[t]=e}return[a,n]}))}getImageIndexForZoomLevel(A){const e=this.cogZoomLookup[this.cogZoomLookup.length-1];if(A>this.cogZoomLookup[0])return 0;if(A<e)return this.cogZoomLookup.length-1;const t=this.cogZoomLookup.indexOf(A);return-1===t&&console.log("getImageIndexForZoomLevel: error in retrieving image by zoom index"),t}getTileFromImage(A,e,t){return l(this,void 0,void 0,(function*(){const i=this.getImageIndexForZoomLevel(t),r=yield this.cog.getImage(i),a=r.getTileWidth(),n=r.getTileHeight();if(!a||!n)throw new Error("The image is not tiled.");const s=this.cogOrigin[0]-At[0],o=At[1]-this.cogOrigin[1],g=je/a/Math.pow(2,t);this.cogResolutionLookup[i];const l=Math.floor(s/g),h=Math.floor(o/g),I=r.getHeight(),B=r.getWidth(),c=[A*a,e*n,(A+1)*a,(e+1)*n],C=[l,h,l+B,h+I],f=this.getIntersectionBBox(c,C,l,h,a),[E,Q,d,u,w]=f;if(u>0||w>0||E<a||Q<n){const A=this.createTileBuffer(this.options.format,a);A.fill(this.options.noDataValue);const e=yield r.readRasters({window:d}),t=Array(e.length*e[0].length);t.fill(this.options.noDataValue);for(let i=0;i<e.length;i++){for(let t=0;t<Q;t++)for(let r=0;r<E;r++){const s=w+t,o=u+r;s<a&&o<n?A[s*a+o]=e[i][t*e.width+r]:console.log("error in assigning data to tile buffer")}A.forEach(((A,e)=>{t[e*this.options.numOfChannels+i]=A}))}return[t]}return[yield r.readRasters({window:d,interleave:!0})]}))}getTile(A,e,t,i,r){return l(this,void 0,void 0,(function*(){const a=yield this.getTileFromImage(A,e,t);return this.geo.getMap({rasters:[a[0]],width:this.tileSize,height:this.tileSize,bounds:i},this.options,r)}))}getDataTypeFromTags(A){const e=A.getFileDirectory(),t=e.SampleFormat,i=e.BitsPerSample,r=t&&"number"==typeof t.length&&t.length>0?t[0]:t;let a;return a=1===r?"UInt":2===r?"Int":3===r?"Float":"Unknown",`${a}${i&&"number"==typeof i.length&&i.length>0?i[0]:i}`}getNoDataValue(A){const e=A.getGDALNoData();if(null==e)return void console.warn("No noData value defined — raster might be rendered incorrectly.");const t=String(e).replace(/\0/g,"").trim();if(""===t)return void console.warn("noData value is an empty string after cleanup.");const i=Number(t);return"nan"===t.toLowerCase()?NaN:Number.isNaN(i)?void console.warn(`Failed to parse numeric noData value: '${t}'`):i}getNumberOfChannels(A){return A.getSamplesPerPixel()}getIntersectionBBox(A,e,t=0,i=0,r=256){const a=Math.max(A[0],e[0]),n=Math.max(A[1],e[1]),s=Math.min(A[2],e[2]),o=Math.min(A[3],e[3]),g=Math.max(0,s-a),l=Math.max(0,o-n);let h=null,I=0,B=0;return g>0&&l>0&&(h=[a-t,n-i,s-t,o-i],I=a-A[0],B=n-A[1]),[g,l,h,I,B]}getPlanarConfiguration(A){const e=A.fileDirectory.PlanarConfiguration;if(1!==e&&2!==e)throw new Error("Invalid planar configuration.");return e}createTileBuffer(A,e){const t=e*e;switch(A){case"UInt8":return new Uint8Array(t);case"Int8":return new Int8Array(t);case"UInt16":return new Uint16Array(t);case"Int16":return new Int16Array(t);case"UInt32":return new Uint32Array(t);case"Int32":return new Int32Array(t);case"Float32":return new Float32Array(t);case"Float64":return new Float64Array(t);default:throw new Error(`Unsupported data type: ${A}`)}}}const it={type:"object",value:null,validate:(A,e)=>e.optional&&null===A||"string"==typeof A||Array.isArray(A)&&A.every((A=>"string"==typeof A)),equal:(A,e)=>{if(A===e)return!0;if(!Array.isArray(A)||!Array.isArray(e))return!1;const t=A.length;if(t!==e.length)return!1;for(let i=0;i<t;i++)if(A[i]!==e[i])return!1;return!0}},rt=Object.assign(Object.assign({},i.defaultProps),{bounds:{type:"array",value:null,optional:!0,compare:!0},rasterData:it,blurredTexture:!0,opacity:1,clampToTerrain:!1,workerUrl:""});class at extends A{initializeState(A){const e=Object.create(null,{initializeState:{get:()=>super.initializeState}});return l(this,void 0,void 0,(function*(){e.initializeState.call(this,A),this.setState({bitmapCogTiles:new tt(this.props.cogBitmapOptions),initialized:!1}),yield this.init()}))}init(){return l(this,void 0,void 0,(function*(){yield this.state.bitmapCogTiles.initializeCog(this.props.rasterData);const A=this.state.bitmapCogTiles.getZoomRange(),[e,t]=A;this.setState({initialized:!0,minZoom:e,maxZoom:t})}))}updateState({props:A,oldProps:t}){var i,r,a;const n=A.rasterData!==t.rasterData;if(n){const{rasterData:e}=A,t=e&&(Array.isArray(e)||e.includes("{x}")&&e.includes("{y}")||this.props.isTiled);this.setState({isTiled:t})}n||(A.bounds,t.bounds);this.state.isTiled,(null===(i=null==A?void 0:A.cogBitmapOptions)||void 0===i?void 0:i.useChannel)&&(null===(r=A.cogBitmapOptions)||void 0===r?void 0:r.useChannel)!==(null===(a=t.cogBitmapOptions)||void 0===a?void 0:a.useChannel)&&(this.state.bitmapCogTiles.options.useChannel=A.cogBitmapOptions.useChannel),A.workerUrl&&e.removed("workerUrl","loadOptions.terrain.workerUrl")()}getTiledBitmapData(A){return l(this,void 0,void 0,(function*(){return yield this.state.bitmapCogTiles.getTile(A.index.x,A.index.y,A.index.z)}))}renderSubLayers(A){const e=this.getSubLayerClass("image",r),{blurredTexture:t}=this.state.bitmapCogTiles.options,{opacity:i,clampToTerrain:n}=this.props,{data:s}=A;if(!s)return null;const{bbox:{west:o,south:g,east:l,north:h}}=A.tile;return new e(Object.assign(Object.assign({},A),{tileSize:this.state.bitmapCogTiles.tileSize}),Object.assign({data:null,image:s,_instanced:!1,bounds:[o,g,l,h],opacity:i,textureParameters:{minFilter:t?"linear":"nearest",magFilter:t?"linear":"nearest"},extensions:n?[new a]:[]},(null==n?void 0:n.terrainDrawMode)?{terrainDrawMode:n.terrainDrawMode}:{}))}renderLayers(){const{rasterData:A,blurredTexture:e,opacity:t,clampToTerrain:r,maxRequests:a,onTileLoad:n,onTileUnload:s,onTileError:o,maxCacheSize:g,maxCacheByteSize:l,refinementStrategy:h,cogBitmapOptions:I}=this.props;if(this.state.isTiled&&this.state.initialized){const{tileSize:A}=this.state.bitmapCogTiles;return new i(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledBitmapData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:[r,I.useChannel]},extent:this.state.bitmapCogTiles.getBoundsAsLatLon(),tileSize:A,minZoom:this.state.minZoom,maxZoom:this.state.maxZoom,maxRequests:a,onTileLoad:n,onTileUnload:s,onTileError:o,maxCacheSize:g,maxCacheByteSize:l,refinementStrategy:h})}return null}}at.defaultProps=rt,at.layerName="CogBitmapLayer";const nt={type:"object",value:null,validate:(A,e)=>e.optional&&null===A||"string"==typeof A||Array.isArray(A)&&A.every((A=>"string"==typeof A)),equal:(A,e)=>{if(A===e)return!0;if(!Array.isArray(A)||!Array.isArray(e))return!1;const t=A.length;if(t!==e.length)return!1;for(let i=0;i<t;i++)if(A[i]!==e[i])return!1;return!0}},st=[1],ot=Object.assign(Object.assign({},i.defaultProps),{elevationData:nt,texture:Object.assign(Object.assign({},nt),{optional:!0}),meshMaxError:{type:"number",value:4},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 gt extends A{initializeState(A){const e=Object.create(null,{initializeState:{get:()=>super.initializeState}});return l(this,void 0,void 0,(function*(){e.initializeState.call(this,A),this.setState({terrainCogTiles:new tt(this.props.terrainOptions),initialized:!1}),yield this.init(this.terrainUrl)}))}init(A){return l(this,void 0,void 0,(function*(){yield this.state.terrainCogTiles.initializeCog(this.props.elevationData);const A=this.state.terrainCogTiles.getZoomRange(),[e,t]=A;this.setState({initialized:!0,minZoom:e,maxZoom:t})}))}updateState({props:A,oldProps:t}){const i=A.elevationData!==t.elevationData;if(i){const{elevationData:e}=A,t=e&&(Array.isArray(e)||e.includes("{x}")&&e.includes("{y}"))||this.props.isTiled;this.setState({isTiled:t})}i||A.meshMaxError!==t.meshMaxError||A.elevationDecoder!==t.elevationDecoder||(A.bounds,t.bounds);this.state.isTiled,A.workerUrl&&e.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:A,bounds:e,elevationDecoder:t,meshMaxError:i,signal:r}){if(!A)return null;let a=this.getLoadOptions();a=Object.assign(Object.assign({},a),{_workerType:"test",terrain:Object.assign(Object.assign({skirtHeight:this.state.isTiled?2*i:0},null==a?void 0:a.terrain),{bounds:e,meshMaxError:i,elevationDecoder:t})});const{fetch:n}=this.props;return n(A,{propName:"elevationData",layer:this,loadOptions:a,signal:r,loaders:[]})}getTiledTerrainData(A){return l(this,void 0,void 0,(function*(){this.props;const{viewport:e}=this.context;let t=[0,0],i=[0,0];if(e.isGeospatial){const r=A.bbox;t=e.projectFlat([r.west,r.south]),i=e.projectFlat([r.east,r.north])}else{const e=A.bbox;t=[e.left,e.bottom],i=[e.right,e.top]}const r=[t[0],t[1],i[0],i[1]],a=yield this.state.terrainCogTiles.getTile(A.index.x,A.index.y,A.index.z,r,this.props.meshMaxError);return Promise.all([a])}))}renderSubLayers(A){const e=this.getSubLayerClass("mesh",g),{color:i,wireframe:r,material:a}=this.props,{data:n}=A;if(!n)return null;const[s]=n;return new e(Object.assign(Object.assign({},A),{tileSize:256}),{data:st,mesh:s,_instanced:!1,coordinateSystem:t.CARTESIAN,getPosition:A=>[0,0,0],getColor:i,wireframe:r,material:a})}onViewportLoad(A){if(!A)return;const{zRange:e}=this.state,t=A.map((A=>A.content)).filter((A=>A&&A[0])).map((A=>{var e,t;const i=null===(t=null===(e=A[0])||void 0===e?void 0:e.header)||void 0===t?void 0:t.boundingBox;return null==i?void 0:i.map((A=>A[2]))}));if(0===t.length)return;const i=Math.min(...t.map((A=>A[0]))),r=Math.max(...t.map((A=>A[1])));(!e||i<e[0]||r>e[1])&&this.setState({zRange:[Number.isFinite(i)?i:0,Number.isFinite(r)?r:0]})}renderLayers(){const{color:A,material:e,elevationData:t,texture:r,wireframe:a,meshMaxError:n,elevationDecoder:s,tileSize:o,extent:g,maxRequests:l,onTileLoad:h,onTileUnload:I,onTileError:B,maxCacheSize:c,maxCacheByteSize:C,refinementStrategy:f}=this.props;if(this.state.isTiled&&this.state.initialized)return new i(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:(E=t,Array.isArray(E)?E.join(";"):E||""),meshMaxError:n,elevationDecoder:s}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:o,minZoom:this.state.minZoom,maxZoom:this.state.maxZoom,extent:g,maxRequests:l,onTileLoad:h,onTileUnload:I,onTileError:B,maxCacheSize:c,maxCacheByteSize:C,refinementStrategy:f});var E}}gt.defaultProps=ot,gt.layerName="TerrainLayer";var lt=Object.freeze({__proto__:null,default:class extends Re{decodeBlock(A){return A}}});function ht(A,e){for(let t=e.length-1;t>=0;t--)A.push(e[t]);return A}function It(A){const e=new Uint16Array(4093),t=new Uint8Array(4093);for(let A=0;A<=257;A++)e[A]=4096,t[A]=A;let i=258,r=9,a=0;function n(){i=258,r=9}function s(A){const e=function(A,e,t){const i=e%8,r=Math.floor(e/8),a=8-i,n=e+t-8*(r+1);let s=8*(r+2)-(e+t);const o=8*(r+2)-e;if(s=Math.max(0,s),r>=A.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),257;let g=A[r]&2**(8-i)-1;g<<=t-a;let l=g;if(r+1<A.length){let e=A[r+1]>>>s;e<<=Math.max(0,t-o),l+=e}if(n>8&&r+2<A.length){const i=8*(r+3)-(e+t);l+=A[r+2]>>>i}return l}(A,a,r);return a+=r,e}function o(A,r){return t[i]=r,e[i]=A,i++,i-1}function g(A){const i=[];for(let r=A;4096!==r;r=e[r])i.push(t[r]);return i}const l=[];n();const h=new Uint8Array(A);let I,B=s(h);for(;257!==B;){if(256===B){for(n(),B=s(h);256===B;)B=s(h);if(257===B)break;if(B>256)throw new Error(`corrupted code at scanline ${B}`);ht(l,g(B)),I=B}else if(B<i){const A=g(B);ht(l,A),o(I,A[A.length-1]),I=B}else{const A=g(I);if(!A)throw new Error(`Bogus entry. Not in dictionary, ${I} / ${i}, position: ${a}`);ht(l,A),l.push(A[A.length-1]),o(I,A[A.length-1]),I=B}i+1>=2**r&&(12===r?I=void 0:r++),B=s(h)}return new Uint8Array(l)}var Bt=Object.freeze({__proto__:null,default:class extends Re{decodeBlock(A){return It(A).buffer}}});const ct=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]),Ct=4017,ft=799,Et=3406,Qt=2276,dt=1567,ut=3784,wt=5793,pt=2896;function mt(A,e){let t=0;const i=[];let r=16;for(;r>0&&!A[r-1];)--r;i.push({children:[],index:0});let a,n=i[0];for(let s=0;s<r;s++){for(let r=0;r<A[s];r++){for(n=i.pop(),n.children[n.index]=e[t];n.index>0;)n=i.pop();for(n.index++,i.push(n);i.length<=s;)i.push(a={children:[],index:0}),n.children[n.index]=a.children,n=a;t++}s+1<r&&(i.push(a={children:[],index:0}),n.children[n.index]=a.children,n=a)}return i[0].children}function yt(A,e,t,i,r,a,n,s,o){const{mcusPerLine:g,progressive:l}=t,h=e;let I=e,B=0,c=0;function C(){if(c>0)return c--,B>>c&1;if(B=A[I++],255===B){const e=A[I++];if(e)throw new Error(`unexpected marker: ${(B<<8|e).toString(16)}`)}return c=7,B>>>7}function f(A){let e,t=A;for(;null!==(e=C());){if(t=t[e],"number"==typeof t)return t;if("object"!=typeof t)throw new Error("invalid huffman sequence")}return null}function E(A){let e=A,t=0;for(;e>0;){const A=C();if(null===A)return;t=t<<1|A,--e}return t}function Q(A){const e=E(A);return e>=1<<A-1?e:e+(-1<<A)+1}let d=0;let u,w=0;function p(A,e,t,i,r){const a=t%g,n=(t/g|0)*A.v+i,s=a*A.h+r;e(A,A.blocks[n][s])}function m(A,e,t){const i=t/A.blocksPerLine|0,r=t%A.blocksPerLine;e(A,A.blocks[i][r])}const y=i.length;let D,k,b,_,S,x;x=l?0===a?0===s?function(A,e){const t=f(A.huffmanTableDC),i=0===t?0:Q(t)<<o;A.pred+=i,e[0]=A.pred}:function(A,e){e[0]|=C()<<o}:0===s?function(A,e){if(d>0)return void d--;let t=a;const i=n;for(;t<=i;){const i=f(A.huffmanTableAC),r=15&i,a=i>>4;if(0===r){if(a<15){d=E(a)+(1<<a)-1;break}t+=16}else t+=a,e[ct[t]]=Q(r)*(1<<o),t++}}:function(A,e){let t=a;const i=n;let r=0;for(;t<=i;){const i=ct[t],a=e[i]<0?-1:1;switch(w){case 0:{const e=f(A.huffmanTableAC),t=15&e;if(r=e>>4,0===t)r<15?(d=E(r)+(1<<r),w=4):(r=16,w=1);else{if(1!==t)throw new Error("invalid ACn encoding");u=Q(t),w=r?2:3}continue}case 1:case 2:e[i]?e[i]+=(C()<<o)*a:(r--,0===r&&(w=2===w?3:0));break;case 3:e[i]?e[i]+=(C()<<o)*a:(e[i]=u<<o,w=0);break;case 4:e[i]&&(e[i]+=(C()<<o)*a)}t++}4===w&&(d--,0===d&&(w=0))}:function(A,e){const t=f(A.huffmanTableDC),i=0===t?0:Q(t);A.pred+=i,e[0]=A.pred;let r=1;for(;r<64;){const t=f(A.huffmanTableAC),i=15&t,a=t>>4;if(0===i){if(a<15)break;r+=16}else r+=a,e[ct[r]]=Q(i),r++}};let F,G,U=0;G=1===y?i[0].blocksPerLine*i[0].blocksPerColumn:g*t.mcusPerColumn;const R=r||G;for(;U<G;){for(k=0;k<y;k++)i[k].pred=0;if(d=0,1===y)for(D=i[0],S=0;S<R;S++)m(D,x,U),U++;else for(S=0;S<R;S++){for(k=0;k<y;k++){D=i[k];const{h:A,v:e}=D;for(b=0;b<e;b++)for(_=0;_<A;_++)p(D,x,U,b,_)}if(U++,U===G)break}if(c=0,F=A[I]<<8|A[I+1],F<65280)throw new Error("marker was not found");if(!(F>=65488&&F<=65495))break;I+=2}return I-h}function Dt(A,e){const t=[],{blocksPerLine:i,blocksPerColumn:r}=e,a=i<<3,n=new Int32Array(64),s=new Uint8Array(64);function o(A,t,i){const r=e.quantizationTable;let a,n,s,o,g,l,h,I,B;const c=i;let C;for(C=0;C<64;C++)c[C]=A[C]*r[C];for(C=0;C<8;++C){const A=8*C;0!==c[1+A]||0!==c[2+A]||0!==c[3+A]||0!==c[4+A]||0!==c[5+A]||0!==c[6+A]||0!==c[7+A]?(a=wt*c[0+A]+128>>8,n=wt*c[4+A]+128>>8,s=c[2+A],o=c[6+A],g=pt*(c[1+A]-c[7+A])+128>>8,I=pt*(c[1+A]+c[7+A])+128>>8,l=c[3+A]<<4,h=c[5+A]<<4,B=a-n+1>>1,a=a+n+1>>1,n=B,B=s*ut+o*dt+128>>8,s=s*dt-o*ut+128>>8,o=B,B=g-h+1>>1,g=g+h+1>>1,h=B,B=I+l+1>>1,l=I-l+1>>1,I=B,B=a-o+1>>1,a=a+o+1>>1,o=B,B=n-s+1>>1,n=n+s+1>>1,s=B,B=g*Qt+I*Et+2048>>12,g=g*Et-I*Qt+2048>>12,I=B,B=l*ft+h*Ct+2048>>12,l=l*Ct-h*ft+2048>>12,h=B,c[0+A]=a+I,c[7+A]=a-I,c[1+A]=n+h,c[6+A]=n-h,c[2+A]=s+l,c[5+A]=s-l,c[3+A]=o+g,c[4+A]=o-g):(B=wt*c[0+A]+512>>10,c[0+A]=B,c[1+A]=B,c[2+A]=B,c[3+A]=B,c[4+A]=B,c[5+A]=B,c[6+A]=B,c[7+A]=B)}for(C=0;C<8;++C){const A=C;0!==c[8+A]||0!==c[16+A]||0!==c[24+A]||0!==c[32+A]||0!==c[40+A]||0!==c[48+A]||0!==c[56+A]?(a=wt*c[0+A]+2048>>12,n=wt*c[32+A]+2048>>12,s=c[16+A],o=c[48+A],g=pt*(c[8+A]-c[56+A])+2048>>12,I=pt*(c[8+A]+c[56+A])+2048>>12,l=c[24+A],h=c[40+A],B=a-n+1>>1,a=a+n+1>>1,n=B,B=s*ut+o*dt+2048>>12,s=s*dt-o*ut+2048>>12,o=B,B=g-h+1>>1,g=g+h+1>>1,h=B,B=I+l+1>>1,l=I-l+1>>1,I=B,B=a-o+1>>1,a=a+o+1>>1,o=B,B=n-s+1>>1,n=n+s+1>>1,s=B,B=g*Qt+I*Et+2048>>12,g=g*Et-I*Qt+2048>>12,I=B,B=l*ft+h*Ct+2048>>12,l=l*Ct-h*ft+2048>>12,h=B,c[0+A]=a+I,c[56+A]=a-I,c[8+A]=n+h,c[48+A]=n-h,c[16+A]=s+l,c[40+A]=s-l,c[24+A]=o+g,c[32+A]=o-g):(B=wt*i[C+0]+8192>>14,c[0+A]=B,c[8+A]=B,c[16+A]=B,c[24+A]=B,c[32+A]=B,c[40+A]=B,c[48+A]=B,c[56+A]=B)}for(C=0;C<64;++C){const A=128+(c[C]+8>>4);t[C]=A<0?0:A>255?255:A}}for(let A=0;A<r;A++){const r=A<<3;for(let A=0;A<8;A++)t.push(new Uint8Array(a));for(let a=0;a<i;a++){o(e.blocks[A][a],s,n);let i=0;const g=a<<3;for(let A=0;A<8;A++){const e=t[r+A];for(let A=0;A<8;A++)e[g+A]=s[i++]}}}return t}class kt{constructor(){this.jfif=null,this.adobe=null,this.quantizationTables=[],this.huffmanTablesAC=[],this.huffmanTablesDC=[],this.resetFrames()}resetFrames(){this.frames=[]}parse(A){let e=0;function t(){const t=A[e]<<8|A[e+1];return e+=2,t}function i(){const i=t(),r=A.subarray(e,e+i-2);return e+=r.length,r}function r(A){let e,t,i=0,r=0;for(t in A.components)A.components.hasOwnProperty(t)&&(e=A.components[t],i<e.h&&(i=e.h),r<e.v&&(r=e.v));const a=Math.ceil(A.samplesPerLine/8/i),n=Math.ceil(A.scanLines/8/r);for(t in A.components)if(A.components.hasOwnProperty(t)){e=A.components[t];const s=Math.ceil(Math.ceil(A.samplesPerLine/8)*e.h/i),o=Math.ceil(Math.ceil(A.scanLines/8)*e.v/r),g=a*e.h,l=n*e.v,h=[];for(let A=0;A<l;A++){const A=[];for(let e=0;e<g;e++)A.push(new Int32Array(64));h.push(A)}e.blocksPerLine=s,e.blocksPerColumn=o,e.blocks=h}A.maxH=i,A.maxV=r,A.mcusPerLine=a,A.mcusPerColumn=n}let a=t();if(65496!==a)throw new Error("SOI not found");for(a=t();65497!==a;){switch(a){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=i();65504===a&&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===a&&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 i=t()+e-2;for(;e<i;){const i=A[e++],r=new Int32Array(64);if(i>>4){if(i>>4!=1)throw new Error("DQT: invalid table spec");for(let A=0;A<64;A++){r[ct[A]]=t()}}else for(let t=0;t<64;t++){r[ct[t]]=A[e++]}this.quantizationTables[15&i]=r}break}case 65472:case 65473:case 65474:{t();const i={extended:65473===a,progressive:65474===a,precision:A[e++],scanLines:t(),samplesPerLine:t(),components:{},componentsOrder:[]},n=A[e++];let s;for(let t=0;t<n;t++){s=A[e];const t=A[e+1]>>4,r=15&A[e+1],a=A[e+2];i.componentsOrder.push(s),i.components[s]={h:t,v:r,quantizationIdx:a},e+=3}r(i),this.frames.push(i);break}case 65476:{const i=t();for(let t=2;t<i;){const i=A[e++],r=new Uint8Array(16);let a=0;for(let t=0;t<16;t++,e++)r[t]=A[e],a+=r[t];const n=new Uint8Array(a);for(let t=0;t<a;t++,e++)n[t]=A[e];t+=17+a,i>>4?this.huffmanTablesAC[15&i]=mt(r,n):this.huffmanTablesDC[15&i]=mt(r,n)}break}case 65501:t(),this.resetInterval=t();break;case 65498:{t();const i=A[e++],r=[],a=this.frames[0];for(let t=0;t<i;t++){const t=a.components[A[e++]],i=A[e++];t.huffmanTableDC=this.huffmanTablesDC[i>>4],t.huffmanTableAC=this.huffmanTablesAC[15&i],r.push(t)}const n=A[e++],s=A[e++],o=A[e++],g=yt(A,e,a,r,this.resetInterval,n,s,o>>4,15&o);e+=g;break}case 65535:255!==A[e]&&e--;break;default:if(255===A[e-3]&&A[e-2]>=192&&A[e-2]<=254){e-=3;break}throw new Error(`unknown JPEG marker ${a.toString(16)}`)}a=t()}}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 e=this.frames[A].components;for(const A of Object.keys(e))e[A].quantizationTable=this.quantizationTables[e[A].quantizationIdx],delete e[A].quantizationIdx}const e=A[0],{components:t,componentsOrder:i}=e,r=[],a=e.samplesPerLine,n=e.scanLines;for(let A=0;A<i.length;A++){const a=t[i[A]];r.push({lines:Dt(0,a),scaleX:a.h/e.maxH,scaleY:a.v/e.maxV})}const s=new Uint8Array(a*n*r.length);let o=0;for(let A=0;A<n;++A)for(let e=0;e<a;++e)for(let t=0;t<r.length;++t){const i=r[t];s[o]=i.lines[0|A*i.scaleY][0|e*i.scaleX],++o}return s}}var bt=Object.freeze({__proto__:null,default:class extends Re{constructor(A){super(),this.reader=new kt,A.JPEGTables&&this.reader.parse(A.JPEGTables)}decodeBlock(A){return this.reader.resetFrames(),this.reader.parse(new Uint8Array(A)),this.reader.getResult().buffer}}});
2
- /*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function _t(A){let e=A.length;for(;--e>=0;)A[e]=0}const St=256,xt=286,Ft=30,Gt=15,Ut=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Rt=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Mt=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Lt=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),vt=new Array(576);_t(vt);const Nt=new Array(60);_t(Nt);const Tt=new Array(512);_t(Tt);const qt=new Array(256);_t(qt);const Ot=new Array(29);_t(Ot);const Jt=new Array(Ft);function Ht(A,e,t,i,r){this.static_tree=A,this.extra_bits=e,this.extra_base=t,this.elems=i,this.max_length=r,this.has_stree=A&&A.length}let Yt,zt,Pt;function Kt(A,e){this.dyn_tree=A,this.max_code=0,this.stat_desc=e}_t(Jt);const Vt=A=>A<256?Tt[A]:Tt[256+(A>>>7)],Zt=(A,e)=>{A.pending_buf[A.pending++]=255&e,A.pending_buf[A.pending++]=e>>>8&255},Xt=(A,e,t)=>{A.bi_valid>16-t?(A.bi_buf|=e<<A.bi_valid&65535,Zt(A,A.bi_buf),A.bi_buf=e>>16-A.bi_valid,A.bi_valid+=t-16):(A.bi_buf|=e<<A.bi_valid&65535,A.bi_valid+=t)},Wt=(A,e,t)=>{Xt(A,t[2*e],t[2*e+1])},jt=(A,e)=>{let t=0;do{t|=1&A,A>>>=1,t<<=1}while(--e>0);return t>>>1},$t=(A,e,t)=>{const i=new Array(16);let r,a,n=0;for(r=1;r<=Gt;r++)n=n+t[r-1]<<1,i[r]=n;for(a=0;a<=e;a++){let e=A[2*a+1];0!==e&&(A[2*a]=jt(i[e]++,e))}},Ai=A=>{let e;for(e=0;e<xt;e++)A.dyn_ltree[2*e]=0;for(e=0;e<Ft;e++)A.dyn_dtree[2*e]=0;for(e=0;e<19;e++)A.bl_tree[2*e]=0;A.dyn_ltree[512]=1,A.opt_len=A.static_len=0,A.sym_next=A.matches=0},ei=A=>{A.bi_valid>8?Zt(A,A.bi_buf):A.bi_valid>0&&(A.pending_buf[A.pending++]=A.bi_buf),A.bi_buf=0,A.bi_valid=0},ti=(A,e,t,i)=>{const r=2*e,a=2*t;return A[r]<A[a]||A[r]===A[a]&&i[e]<=i[t]},ii=(A,e,t)=>{const i=A.heap[t];let r=t<<1;for(;r<=A.heap_len&&(r<A.heap_len&&ti(e,A.heap[r+1],A.heap[r],A.depth)&&r++,!ti(e,i,A.heap[r],A.depth));)A.heap[t]=A.heap[r],t=r,r<<=1;A.heap[t]=i},ri=(A,e,t)=>{let i,r,a,n,s=0;if(0!==A.sym_next)do{i=255&A.pending_buf[A.sym_buf+s++],i+=(255&A.pending_buf[A.sym_buf+s++])<<8,r=A.pending_buf[A.sym_buf+s++],0===i?Wt(A,r,e):(a=qt[r],Wt(A,a+St+1,e),n=Ut[a],0!==n&&(r-=Ot[a],Xt(A,r,n)),i--,a=Vt(i),Wt(A,a,t),n=Rt[a],0!==n&&(i-=Jt[a],Xt(A,i,n)))}while(s<A.sym_next);Wt(A,256,e)},ai=(A,e)=>{const t=e.dyn_tree,i=e.stat_desc.static_tree,r=e.stat_desc.has_stree,a=e.stat_desc.elems;let n,s,o,g=-1;for(A.heap_len=0,A.heap_max=573,n=0;n<a;n++)0!==t[2*n]?(A.heap[++A.heap_len]=g=n,A.depth[n]=0):t[2*n+1]=0;for(;A.heap_len<2;)o=A.heap[++A.heap_len]=g<2?++g:0,t[2*o]=1,A.depth[o]=0,A.opt_len--,r&&(A.static_len-=i[2*o+1]);for(e.max_code=g,n=A.heap_len>>1;n>=1;n--)ii(A,t,n);o=a;do{n=A.heap[1],A.heap[1]=A.heap[A.heap_len--],ii(A,t,1),s=A.heap[1],A.heap[--A.heap_max]=n,A.heap[--A.heap_max]=s,t[2*o]=t[2*n]+t[2*s],A.depth[o]=(A.depth[n]>=A.depth[s]?A.depth[n]:A.depth[s])+1,t[2*n+1]=t[2*s+1]=o,A.heap[1]=o++,ii(A,t,1)}while(A.heap_len>=2);A.heap[--A.heap_max]=A.heap[1],((A,e)=>{const t=e.dyn_tree,i=e.max_code,r=e.stat_desc.static_tree,a=e.stat_desc.has_stree,n=e.stat_desc.extra_bits,s=e.stat_desc.extra_base,o=e.stat_desc.max_length;let g,l,h,I,B,c,C=0;for(I=0;I<=Gt;I++)A.bl_count[I]=0;for(t[2*A.heap[A.heap_max]+1]=0,g=A.heap_max+1;g<573;g++)l=A.heap[g],I=t[2*t[2*l+1]+1]+1,I>o&&(I=o,C++),t[2*l+1]=I,l>i||(A.bl_count[I]++,B=0,l>=s&&(B=n[l-s]),c=t[2*l],A.opt_len+=c*(I+B),a&&(A.static_len+=c*(r[2*l+1]+B)));if(0!==C){do{for(I=o-1;0===A.bl_count[I];)I--;A.bl_count[I]--,A.bl_count[I+1]+=2,A.bl_count[o]--,C-=2}while(C>0);for(I=o;0!==I;I--)for(l=A.bl_count[I];0!==l;)h=A.heap[--g],h>i||(t[2*h+1]!==I&&(A.opt_len+=(I-t[2*h+1])*t[2*h],t[2*h+1]=I),l--)}})(A,e),$t(t,g,A.bl_count)},ni=(A,e,t)=>{let i,r,a=-1,n=e[1],s=0,o=7,g=4;for(0===n&&(o=138,g=3),e[2*(t+1)+1]=65535,i=0;i<=t;i++)r=n,n=e[2*(i+1)+1],++s<o&&r===n||(s<g?A.bl_tree[2*r]+=s:0!==r?(r!==a&&A.bl_tree[2*r]++,A.bl_tree[32]++):s<=10?A.bl_tree[34]++:A.bl_tree[36]++,s=0,a=r,0===n?(o=138,g=3):r===n?(o=6,g=3):(o=7,g=4))},si=(A,e,t)=>{let i,r,a=-1,n=e[1],s=0,o=7,g=4;for(0===n&&(o=138,g=3),i=0;i<=t;i++)if(r=n,n=e[2*(i+1)+1],!(++s<o&&r===n)){if(s<g)do{Wt(A,r,A.bl_tree)}while(0!=--s);else 0!==r?(r!==a&&(Wt(A,r,A.bl_tree),s--),Wt(A,16,A.bl_tree),Xt(A,s-3,2)):s<=10?(Wt(A,17,A.bl_tree),Xt(A,s-3,3)):(Wt(A,18,A.bl_tree),Xt(A,s-11,7));s=0,a=r,0===n?(o=138,g=3):r===n?(o=6,g=3):(o=7,g=4)}};let oi=!1;const gi=(A,e,t,i)=>{Xt(A,0+(i?1:0),3),ei(A),Zt(A,t),Zt(A,~t),t&&A.pending_buf.set(A.window.subarray(e,e+t),A.pending),A.pending+=t};var li=(A,e,t,i)=>{let r,a,n=0;A.level>0?(2===A.strm.data_type&&(A.strm.data_type=(A=>{let e,t=4093624447;for(e=0;e<=31;e++,t>>>=1)if(1&t&&0!==A.dyn_ltree[2*e])return 0;if(0!==A.dyn_ltree[18]||0!==A.dyn_ltree[20]||0!==A.dyn_ltree[26])return 1;for(e=32;e<St;e++)if(0!==A.dyn_ltree[2*e])return 1;return 0})(A)),ai(A,A.l_desc),ai(A,A.d_desc),n=(A=>{let e;for(ni(A,A.dyn_ltree,A.l_desc.max_code),ni(A,A.dyn_dtree,A.d_desc.max_code),ai(A,A.bl_desc),e=18;e>=3&&0===A.bl_tree[2*Lt[e]+1];e--);return A.opt_len+=3*(e+1)+5+5+4,e})(A),r=A.opt_len+3+7>>>3,a=A.static_len+3+7>>>3,a<=r&&(r=a)):r=a=t+5,t+4<=r&&-1!==e?gi(A,e,t,i):4===A.strategy||a===r?(Xt(A,2+(i?1:0),3),ri(A,vt,Nt)):(Xt(A,4+(i?1:0),3),((A,e,t,i)=>{let r;for(Xt(A,e-257,5),Xt(A,t-1,5),Xt(A,i-4,4),r=0;r<i;r++)Xt(A,A.bl_tree[2*Lt[r]+1],3);si(A,A.dyn_ltree,e-1),si(A,A.dyn_dtree,t-1)})(A,A.l_desc.max_code+1,A.d_desc.max_code+1,n+1),ri(A,A.dyn_ltree,A.dyn_dtree)),Ai(A),i&&ei(A)},hi={_tr_init:A=>{oi||((()=>{let A,e,t,i,r;const a=new Array(16);for(t=0,i=0;i<28;i++)for(Ot[i]=t,A=0;A<1<<Ut[i];A++)qt[t++]=i;for(qt[t-1]=i,r=0,i=0;i<16;i++)for(Jt[i]=r,A=0;A<1<<Rt[i];A++)Tt[r++]=i;for(r>>=7;i<Ft;i++)for(Jt[i]=r<<7,A=0;A<1<<Rt[i]-7;A++)Tt[256+r++]=i;for(e=0;e<=Gt;e++)a[e]=0;for(A=0;A<=143;)vt[2*A+1]=8,A++,a[8]++;for(;A<=255;)vt[2*A+1]=9,A++,a[9]++;for(;A<=279;)vt[2*A+1]=7,A++,a[7]++;for(;A<=287;)vt[2*A+1]=8,A++,a[8]++;for($t(vt,287,a),A=0;A<Ft;A++)Nt[2*A+1]=5,Nt[2*A]=jt(A,5);Yt=new Ht(vt,Ut,257,xt,Gt),zt=new Ht(Nt,Rt,0,Ft,Gt),Pt=new Ht(new Array(0),Mt,0,19,7)})(),oi=!0),A.l_desc=new Kt(A.dyn_ltree,Yt),A.d_desc=new Kt(A.dyn_dtree,zt),A.bl_desc=new Kt(A.bl_tree,Pt),A.bi_buf=0,A.bi_valid=0,Ai(A)},_tr_stored_block:gi,_tr_flush_block:li,_tr_tally:(A,e,t)=>(A.pending_buf[A.sym_buf+A.sym_next++]=e,A.pending_buf[A.sym_buf+A.sym_next++]=e>>8,A.pending_buf[A.sym_buf+A.sym_next++]=t,0===e?A.dyn_ltree[2*t]++:(A.matches++,e--,A.dyn_ltree[2*(qt[t]+St+1)]++,A.dyn_dtree[2*Vt(e)]++),A.sym_next===A.sym_end),_tr_align:A=>{Xt(A,2,3),Wt(A,256,vt),(A=>{16===A.bi_valid?(Zt(A,A.bi_buf),A.bi_buf=0,A.bi_valid=0):A.bi_valid>=8&&(A.pending_buf[A.pending++]=255&A.bi_buf,A.bi_buf>>=8,A.bi_valid-=8)})(A)}};var Ii=(A,e,t,i)=>{let r=65535&A,a=A>>>16&65535,n=0;for(;0!==t;){n=t>2e3?2e3:t,t-=n;do{r=r+e[i++]|0,a=a+r|0}while(--n);r%=65521,a%=65521}return r|a<<16};const Bi=new Uint32Array((()=>{let A,e=[];for(var t=0;t<256;t++){A=t;for(var i=0;i<8;i++)A=1&A?3988292384^A>>>1:A>>>1;e[t]=A}return e})());var ci=(A,e,t,i)=>{const r=Bi,a=i+t;A^=-1;for(let t=i;t<a;t++)A=A>>>8^r[255&(A^e[t])];return~A},Ci={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"},fi={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Ei,_tr_stored_block:Qi,_tr_flush_block:di,_tr_tally:ui,_tr_align:wi}=hi,{Z_NO_FLUSH:pi,Z_PARTIAL_FLUSH:mi,Z_FULL_FLUSH:yi,Z_FINISH:Di,Z_BLOCK:ki,Z_OK:bi,Z_STREAM_END:_i,Z_STREAM_ERROR:Si,Z_DATA_ERROR:xi,Z_BUF_ERROR:Fi,Z_DEFAULT_COMPRESSION:Gi,Z_FILTERED:Ui,Z_HUFFMAN_ONLY:Ri,Z_RLE:Mi,Z_FIXED:Li,Z_DEFAULT_STRATEGY:vi,Z_UNKNOWN:Ni,Z_DEFLATED:Ti}=fi,qi=258,Oi=262,Ji=42,Hi=113,Yi=666,zi=(A,e)=>(A.msg=Ci[e],e),Pi=A=>2*A-(A>4?9:0),Ki=A=>{let e=A.length;for(;--e>=0;)A[e]=0},Vi=A=>{let e,t,i,r=A.w_size;e=A.hash_size,i=e;do{t=A.head[--i],A.head[i]=t>=r?t-r:0}while(--e);e=r,i=e;do{t=A.prev[--i],A.prev[i]=t>=r?t-r:0}while(--e)};let Zi=(A,e,t)=>(e<<A.hash_shift^t)&A.hash_mask;const Xi=A=>{const e=A.state;let t=e.pending;t>A.avail_out&&(t=A.avail_out),0!==t&&(A.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+t),A.next_out),A.next_out+=t,e.pending_out+=t,A.total_out+=t,A.avail_out-=t,e.pending-=t,0===e.pending&&(e.pending_out=0))},Wi=(A,e)=>{di(A,A.block_start>=0?A.block_start:-1,A.strstart-A.block_start,e),A.block_start=A.strstart,Xi(A.strm)},ji=(A,e)=>{A.pending_buf[A.pending++]=e},$i=(A,e)=>{A.pending_buf[A.pending++]=e>>>8&255,A.pending_buf[A.pending++]=255&e},Ar=(A,e,t,i)=>{let r=A.avail_in;return r>i&&(r=i),0===r?0:(A.avail_in-=r,e.set(A.input.subarray(A.next_in,A.next_in+r),t),1===A.state.wrap?A.adler=Ii(A.adler,e,r,t):2===A.state.wrap&&(A.adler=ci(A.adler,e,r,t)),A.next_in+=r,A.total_in+=r,r)},er=(A,e)=>{let t,i,r=A.max_chain_length,a=A.strstart,n=A.prev_length,s=A.nice_match;const o=A.strstart>A.w_size-Oi?A.strstart-(A.w_size-Oi):0,g=A.window,l=A.w_mask,h=A.prev,I=A.strstart+qi;let B=g[a+n-1],c=g[a+n];A.prev_length>=A.good_match&&(r>>=2),s>A.lookahead&&(s=A.lookahead);do{if(t=e,g[t+n]===c&&g[t+n-1]===B&&g[t]===g[a]&&g[++t]===g[a+1]){a+=2,t++;do{}while(g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&a<I);if(i=qi-(I-a),a=I-qi,i>n){if(A.match_start=e,n=i,i>=s)break;B=g[a+n-1],c=g[a+n]}}}while((e=h[e&l])>o&&0!=--r);return n<=A.lookahead?n:A.lookahead},tr=A=>{const e=A.w_size;let t,i,r;do{if(i=A.window_size-A.lookahead-A.strstart,A.strstart>=e+(e-Oi)&&(A.window.set(A.window.subarray(e,e+e-i),0),A.match_start-=e,A.strstart-=e,A.block_start-=e,A.insert>A.strstart&&(A.insert=A.strstart),Vi(A),i+=e),0===A.strm.avail_in)break;if(t=Ar(A.strm,A.window,A.strstart+A.lookahead,i),A.lookahead+=t,A.lookahead+A.insert>=3)for(r=A.strstart-A.insert,A.ins_h=A.window[r],A.ins_h=Zi(A,A.ins_h,A.window[r+1]);A.insert&&(A.ins_h=Zi(A,A.ins_h,A.window[r+3-1]),A.prev[r&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=r,r++,A.insert--,!(A.lookahead+A.insert<3)););}while(A.lookahead<Oi&&0!==A.strm.avail_in)},ir=(A,e)=>{let t,i,r,a=A.pending_buf_size-5>A.w_size?A.w_size:A.pending_buf_size-5,n=0,s=A.strm.avail_in;do{if(t=65535,r=A.bi_valid+42>>3,A.strm.avail_out<r)break;if(r=A.strm.avail_out-r,i=A.strstart-A.block_start,t>i+A.strm.avail_in&&(t=i+A.strm.avail_in),t>r&&(t=r),t<a&&(0===t&&e!==Di||e===pi||t!==i+A.strm.avail_in))break;n=e===Di&&t===i+A.strm.avail_in?1:0,Qi(A,0,0,n),A.pending_buf[A.pending-4]=t,A.pending_buf[A.pending-3]=t>>8,A.pending_buf[A.pending-2]=~t,A.pending_buf[A.pending-1]=~t>>8,Xi(A.strm),i&&(i>t&&(i=t),A.strm.output.set(A.window.subarray(A.block_start,A.block_start+i),A.strm.next_out),A.strm.next_out+=i,A.strm.avail_out-=i,A.strm.total_out+=i,A.block_start+=i,t-=i),t&&(Ar(A.strm,A.strm.output,A.strm.next_out,t),A.strm.next_out+=t,A.strm.avail_out-=t,A.strm.total_out+=t)}while(0===n);return s-=A.strm.avail_in,s&&(s>=A.w_size?(A.matches=2,A.window.set(A.strm.input.subarray(A.strm.next_in-A.w_size,A.strm.next_in),0),A.strstart=A.w_size,A.insert=A.strstart):(A.window_size-A.strstart<=s&&(A.strstart-=A.w_size,A.window.set(A.window.subarray(A.w_size,A.w_size+A.strstart),0),A.matches<2&&A.matches++,A.insert>A.strstart&&(A.insert=A.strstart)),A.window.set(A.strm.input.subarray(A.strm.next_in-s,A.strm.next_in),A.strstart),A.strstart+=s,A.insert+=s>A.w_size-A.insert?A.w_size-A.insert:s),A.block_start=A.strstart),A.high_water<A.strstart&&(A.high_water=A.strstart),n?4:e!==pi&&e!==Di&&0===A.strm.avail_in&&A.strstart===A.block_start?2:(r=A.window_size-A.strstart,A.strm.avail_in>r&&A.block_start>=A.w_size&&(A.block_start-=A.w_size,A.strstart-=A.w_size,A.window.set(A.window.subarray(A.w_size,A.w_size+A.strstart),0),A.matches<2&&A.matches++,r+=A.w_size,A.insert>A.strstart&&(A.insert=A.strstart)),r>A.strm.avail_in&&(r=A.strm.avail_in),r&&(Ar(A.strm,A.window,A.strstart,r),A.strstart+=r,A.insert+=r>A.w_size-A.insert?A.w_size-A.insert:r),A.high_water<A.strstart&&(A.high_water=A.strstart),r=A.bi_valid+42>>3,r=A.pending_buf_size-r>65535?65535:A.pending_buf_size-r,a=r>A.w_size?A.w_size:r,i=A.strstart-A.block_start,(i>=a||(i||e===Di)&&e!==pi&&0===A.strm.avail_in&&i<=r)&&(t=i>r?r:i,n=e===Di&&0===A.strm.avail_in&&t===i?1:0,Qi(A,A.block_start,t,n),A.block_start+=t,Xi(A.strm)),n?3:1)},rr=(A,e)=>{let t,i;for(;;){if(A.lookahead<Oi){if(tr(A),A.lookahead<Oi&&e===pi)return 1;if(0===A.lookahead)break}if(t=0,A.lookahead>=3&&(A.ins_h=Zi(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart),0!==t&&A.strstart-t<=A.w_size-Oi&&(A.match_length=er(A,t)),A.match_length>=3)if(i=ui(A,A.strstart-A.match_start,A.match_length-3),A.lookahead-=A.match_length,A.match_length<=A.max_lazy_match&&A.lookahead>=3){A.match_length--;do{A.strstart++,A.ins_h=Zi(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart}while(0!=--A.match_length);A.strstart++}else A.strstart+=A.match_length,A.match_length=0,A.ins_h=A.window[A.strstart],A.ins_h=Zi(A,A.ins_h,A.window[A.strstart+1]);else i=ui(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++;if(i&&(Wi(A,!1),0===A.strm.avail_out))return 1}return A.insert=A.strstart<2?A.strstart:2,e===Di?(Wi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Wi(A,!1),0===A.strm.avail_out)?1:2},ar=(A,e)=>{let t,i,r;for(;;){if(A.lookahead<Oi){if(tr(A),A.lookahead<Oi&&e===pi)return 1;if(0===A.lookahead)break}if(t=0,A.lookahead>=3&&(A.ins_h=Zi(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart),A.prev_length=A.match_length,A.prev_match=A.match_start,A.match_length=2,0!==t&&A.prev_length<A.max_lazy_match&&A.strstart-t<=A.w_size-Oi&&(A.match_length=er(A,t),A.match_length<=5&&(A.strategy===Ui||3===A.match_length&&A.strstart-A.match_start>4096)&&(A.match_length=2)),A.prev_length>=3&&A.match_length<=A.prev_length){r=A.strstart+A.lookahead-3,i=ui(A,A.strstart-1-A.prev_match,A.prev_length-3),A.lookahead-=A.prev_length-1,A.prev_length-=2;do{++A.strstart<=r&&(A.ins_h=Zi(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart)}while(0!=--A.prev_length);if(A.match_available=0,A.match_length=2,A.strstart++,i&&(Wi(A,!1),0===A.strm.avail_out))return 1}else if(A.match_available){if(i=ui(A,0,A.window[A.strstart-1]),i&&Wi(A,!1),A.strstart++,A.lookahead--,0===A.strm.avail_out)return 1}else A.match_available=1,A.strstart++,A.lookahead--}return A.match_available&&(i=ui(A,0,A.window[A.strstart-1]),A.match_available=0),A.insert=A.strstart<2?A.strstart:2,e===Di?(Wi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Wi(A,!1),0===A.strm.avail_out)?1:2};function nr(A,e,t,i,r){this.good_length=A,this.max_lazy=e,this.nice_length=t,this.max_chain=i,this.func=r}const sr=[new nr(0,0,0,0,ir),new nr(4,4,8,4,rr),new nr(4,5,16,8,rr),new nr(4,6,32,32,rr),new nr(4,4,16,16,ar),new nr(8,16,32,32,ar),new nr(8,16,128,128,ar),new nr(8,32,128,256,ar),new nr(32,128,258,1024,ar),new nr(32,258,258,4096,ar)];function or(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Ti,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),Ki(this.dyn_ltree),Ki(this.dyn_dtree),Ki(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),Ki(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Ki(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const gr=A=>{if(!A)return 1;const e=A.state;return!e||e.strm!==A||e.status!==Ji&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&e.status!==Hi&&e.status!==Yi?1:0},lr=A=>{if(gr(A))return zi(A,Si);A.total_in=A.total_out=0,A.data_type=Ni;const e=A.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?Ji:Hi,A.adler=2===e.wrap?0:1,e.last_flush=-2,Ei(e),bi},hr=A=>{const e=lr(A);var t;return e===bi&&((t=A.state).window_size=2*t.w_size,Ki(t.head),t.max_lazy_match=sr[t.level].max_lazy,t.good_match=sr[t.level].good_length,t.nice_match=sr[t.level].nice_length,t.max_chain_length=sr[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=2,t.match_available=0,t.ins_h=0),e},Ir=(A,e,t,i,r,a)=>{if(!A)return Si;let n=1;if(e===Gi&&(e=6),i<0?(n=0,i=-i):i>15&&(n=2,i-=16),r<1||r>9||t!==Ti||i<8||i>15||e<0||e>9||a<0||a>Li||8===i&&1!==n)return zi(A,Si);8===i&&(i=9);const s=new or;return A.state=s,s.strm=A,s.status=Ji,s.wrap=n,s.gzhead=null,s.w_bits=i,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=r+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+3-1)/3),s.window=new Uint8Array(2*s.w_size),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<r+6,s.pending_buf_size=4*s.lit_bufsize,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=3*(s.lit_bufsize-1),s.level=e,s.strategy=a,s.method=t,hr(A)};var Br={deflateInit:(A,e)=>Ir(A,e,Ti,15,8,vi),deflateInit2:Ir,deflateReset:hr,deflateResetKeep:lr,deflateSetHeader:(A,e)=>gr(A)||2!==A.state.wrap?Si:(A.state.gzhead=e,bi),deflate:(A,e)=>{if(gr(A)||e>ki||e<0)return A?zi(A,Si):Si;const t=A.state;if(!A.output||0!==A.avail_in&&!A.input||t.status===Yi&&e!==Di)return zi(A,0===A.avail_out?Fi:Si);const i=t.last_flush;if(t.last_flush=e,0!==t.pending){if(Xi(A),0===A.avail_out)return t.last_flush=-1,bi}else if(0===A.avail_in&&Pi(e)<=Pi(i)&&e!==Di)return zi(A,Fi);if(t.status===Yi&&0!==A.avail_in)return zi(A,Fi);if(t.status===Ji&&0===t.wrap&&(t.status=Hi),t.status===Ji){let e=Ti+(t.w_bits-8<<4)<<8,i=-1;if(i=t.strategy>=Ri||t.level<2?0:t.level<6?1:6===t.level?2:3,e|=i<<6,0!==t.strstart&&(e|=32),e+=31-e%31,$i(t,e),0!==t.strstart&&($i(t,A.adler>>>16),$i(t,65535&A.adler)),A.adler=1,t.status=Hi,Xi(A),0!==t.pending)return t.last_flush=-1,bi}if(57===t.status)if(A.adler=0,ji(t,31),ji(t,139),ji(t,8),t.gzhead)ji(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),ji(t,255&t.gzhead.time),ji(t,t.gzhead.time>>8&255),ji(t,t.gzhead.time>>16&255),ji(t,t.gzhead.time>>24&255),ji(t,9===t.level?2:t.strategy>=Ri||t.level<2?4:0),ji(t,255&t.gzhead.os),t.gzhead.extra&&t.gzhead.extra.length&&(ji(t,255&t.gzhead.extra.length),ji(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(A.adler=ci(A.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=69;else if(ji(t,0),ji(t,0),ji(t,0),ji(t,0),ji(t,0),ji(t,9===t.level?2:t.strategy>=Ri||t.level<2?4:0),ji(t,3),t.status=Hi,Xi(A),0!==t.pending)return t.last_flush=-1,bi;if(69===t.status){if(t.gzhead.extra){let e=t.pending,i=(65535&t.gzhead.extra.length)-t.gzindex;for(;t.pending+i>t.pending_buf_size;){let r=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+r),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>e&&(A.adler=ci(A.adler,t.pending_buf,t.pending-e,e)),t.gzindex+=r,Xi(A),0!==t.pending)return t.last_flush=-1,bi;e=0,i-=r}let r=new Uint8Array(t.gzhead.extra);t.pending_buf.set(r.subarray(t.gzindex,t.gzindex+i),t.pending),t.pending+=i,t.gzhead.hcrc&&t.pending>e&&(A.adler=ci(A.adler,t.pending_buf,t.pending-e,e)),t.gzindex=0}t.status=73}if(73===t.status){if(t.gzhead.name){let e,i=t.pending;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>i&&(A.adler=ci(A.adler,t.pending_buf,t.pending-i,i)),Xi(A),0!==t.pending)return t.last_flush=-1,bi;i=0}e=t.gzindex<t.gzhead.name.length?255&t.gzhead.name.charCodeAt(t.gzindex++):0,ji(t,e)}while(0!==e);t.gzhead.hcrc&&t.pending>i&&(A.adler=ci(A.adler,t.pending_buf,t.pending-i,i)),t.gzindex=0}t.status=91}if(91===t.status){if(t.gzhead.comment){let e,i=t.pending;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>i&&(A.adler=ci(A.adler,t.pending_buf,t.pending-i,i)),Xi(A),0!==t.pending)return t.last_flush=-1,bi;i=0}e=t.gzindex<t.gzhead.comment.length?255&t.gzhead.comment.charCodeAt(t.gzindex++):0,ji(t,e)}while(0!==e);t.gzhead.hcrc&&t.pending>i&&(A.adler=ci(A.adler,t.pending_buf,t.pending-i,i))}t.status=103}if(103===t.status){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(Xi(A),0!==t.pending))return t.last_flush=-1,bi;ji(t,255&A.adler),ji(t,A.adler>>8&255),A.adler=0}if(t.status=Hi,Xi(A),0!==t.pending)return t.last_flush=-1,bi}if(0!==A.avail_in||0!==t.lookahead||e!==pi&&t.status!==Yi){let i=0===t.level?ir(t,e):t.strategy===Ri?((A,e)=>{let t;for(;;){if(0===A.lookahead&&(tr(A),0===A.lookahead)){if(e===pi)return 1;break}if(A.match_length=0,t=ui(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++,t&&(Wi(A,!1),0===A.strm.avail_out))return 1}return A.insert=0,e===Di?(Wi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Wi(A,!1),0===A.strm.avail_out)?1:2})(t,e):t.strategy===Mi?((A,e)=>{let t,i,r,a;const n=A.window;for(;;){if(A.lookahead<=qi){if(tr(A),A.lookahead<=qi&&e===pi)return 1;if(0===A.lookahead)break}if(A.match_length=0,A.lookahead>=3&&A.strstart>0&&(r=A.strstart-1,i=n[r],i===n[++r]&&i===n[++r]&&i===n[++r])){a=A.strstart+qi;do{}while(i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&r<a);A.match_length=qi-(a-r),A.match_length>A.lookahead&&(A.match_length=A.lookahead)}if(A.match_length>=3?(t=ui(A,1,A.match_length-3),A.lookahead-=A.match_length,A.strstart+=A.match_length,A.match_length=0):(t=ui(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++),t&&(Wi(A,!1),0===A.strm.avail_out))return 1}return A.insert=0,e===Di?(Wi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Wi(A,!1),0===A.strm.avail_out)?1:2})(t,e):sr[t.level].func(t,e);if(3!==i&&4!==i||(t.status=Yi),1===i||3===i)return 0===A.avail_out&&(t.last_flush=-1),bi;if(2===i&&(e===mi?wi(t):e!==ki&&(Qi(t,0,0,!1),e===yi&&(Ki(t.head),0===t.lookahead&&(t.strstart=0,t.block_start=0,t.insert=0))),Xi(A),0===A.avail_out))return t.last_flush=-1,bi}return e!==Di?bi:t.wrap<=0?_i:(2===t.wrap?(ji(t,255&A.adler),ji(t,A.adler>>8&255),ji(t,A.adler>>16&255),ji(t,A.adler>>24&255),ji(t,255&A.total_in),ji(t,A.total_in>>8&255),ji(t,A.total_in>>16&255),ji(t,A.total_in>>24&255)):($i(t,A.adler>>>16),$i(t,65535&A.adler)),Xi(A),t.wrap>0&&(t.wrap=-t.wrap),0!==t.pending?bi:_i)},deflateEnd:A=>{if(gr(A))return Si;const e=A.state.status;return A.state=null,e===Hi?zi(A,xi):bi},deflateSetDictionary:(A,e)=>{let t=e.length;if(gr(A))return Si;const i=A.state,r=i.wrap;if(2===r||1===r&&i.status!==Ji||i.lookahead)return Si;if(1===r&&(A.adler=Ii(A.adler,e,t,0)),i.wrap=0,t>=i.w_size){0===r&&(Ki(i.head),i.strstart=0,i.block_start=0,i.insert=0);let A=new Uint8Array(i.w_size);A.set(e.subarray(t-i.w_size,t),0),e=A,t=i.w_size}const a=A.avail_in,n=A.next_in,s=A.input;for(A.avail_in=t,A.next_in=0,A.input=e,tr(i);i.lookahead>=3;){let A=i.strstart,e=i.lookahead-2;do{i.ins_h=Zi(i,i.ins_h,i.window[A+3-1]),i.prev[A&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=A,A++}while(--e);i.strstart=A,i.lookahead=2,tr(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,A.next_in=n,A.input=s,A.avail_in=a,i.wrap=r,bi},deflateInfo:"pako deflate (from Nodeca project)"};const cr=(A,e)=>Object.prototype.hasOwnProperty.call(A,e);var Cr=function(A){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const t=e.shift();if(t){if("object"!=typeof t)throw new TypeError(t+"must be non-object");for(const e in t)cr(t,e)&&(A[e]=t[e])}}return A},fr=A=>{let e=0;for(let t=0,i=A.length;t<i;t++)e+=A[t].length;const t=new Uint8Array(e);for(let e=0,i=0,r=A.length;e<r;e++){let r=A[e];t.set(r,i),i+=r.length}return t};let Er=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(A){Er=!1}const Qr=new Uint8Array(256);for(let A=0;A<256;A++)Qr[A]=A>=252?6:A>=248?5:A>=240?4:A>=224?3:A>=192?2:1;Qr[254]=Qr[254]=1;var dr=A=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(A);let e,t,i,r,a,n=A.length,s=0;for(r=0;r<n;r++)t=A.charCodeAt(r),55296==(64512&t)&&r+1<n&&(i=A.charCodeAt(r+1),56320==(64512&i)&&(t=65536+(t-55296<<10)+(i-56320),r++)),s+=t<128?1:t<2048?2:t<65536?3:4;for(e=new Uint8Array(s),a=0,r=0;a<s;r++)t=A.charCodeAt(r),55296==(64512&t)&&r+1<n&&(i=A.charCodeAt(r+1),56320==(64512&i)&&(t=65536+(t-55296<<10)+(i-56320),r++)),t<128?e[a++]=t:t<2048?(e[a++]=192|t>>>6,e[a++]=128|63&t):t<65536?(e[a++]=224|t>>>12,e[a++]=128|t>>>6&63,e[a++]=128|63&t):(e[a++]=240|t>>>18,e[a++]=128|t>>>12&63,e[a++]=128|t>>>6&63,e[a++]=128|63&t);return e},ur=(A,e)=>{const t=e||A.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(A.subarray(0,e));let i,r;const a=new Array(2*t);for(r=0,i=0;i<t;){let e=A[i++];if(e<128){a[r++]=e;continue}let n=Qr[e];if(n>4)a[r++]=65533,i+=n-1;else{for(e&=2===n?31:3===n?15:7;n>1&&i<t;)e=e<<6|63&A[i++],n--;n>1?a[r++]=65533:e<65536?a[r++]=e:(e-=65536,a[r++]=55296|e>>10&1023,a[r++]=56320|1023&e)}}return((A,e)=>{if(e<65534&&A.subarray&&Er)return String.fromCharCode.apply(null,A.length===e?A:A.subarray(0,e));let t="";for(let i=0;i<e;i++)t+=String.fromCharCode(A[i]);return t})(a,r)},wr=(A,e)=>{(e=e||A.length)>A.length&&(e=A.length);let t=e-1;for(;t>=0&&128==(192&A[t]);)t--;return t<0||0===t?e:t+Qr[A[t]]>e?t:e};var pr=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 mr=Object.prototype.toString,{Z_NO_FLUSH:yr,Z_SYNC_FLUSH:Dr,Z_FULL_FLUSH:kr,Z_FINISH:br,Z_OK:_r,Z_STREAM_END:Sr,Z_DEFAULT_COMPRESSION:xr,Z_DEFAULT_STRATEGY:Fr,Z_DEFLATED:Gr}=fi;function Ur(A){this.options=Cr({level:xr,method:Gr,chunkSize:16384,windowBits:15,memLevel:8,strategy:Fr},A||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new pr,this.strm.avail_out=0;let t=Br.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==_r)throw new Error(Ci[t]);if(e.header&&Br.deflateSetHeader(this.strm,e.header),e.dictionary){let A;if(A="string"==typeof e.dictionary?dr(e.dictionary):"[object ArrayBuffer]"===mr.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,t=Br.deflateSetDictionary(this.strm,A),t!==_r)throw new Error(Ci[t]);this._dict_set=!0}}Ur.prototype.push=function(A,e){const t=this.strm,i=this.options.chunkSize;let r,a;if(this.ended)return!1;for(a=e===~~e?e:!0===e?br:yr,"string"==typeof A?t.input=dr(A):"[object ArrayBuffer]"===mr.call(A)?t.input=new Uint8Array(A):t.input=A,t.next_in=0,t.avail_in=t.input.length;;)if(0===t.avail_out&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),(a===Dr||a===kr)&&t.avail_out<=6)this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;else{if(r=Br.deflate(t,a),r===Sr)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),r=Br.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===_r;if(0!==t.avail_out){if(a>0&&t.next_out>0)this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;else if(0===t.avail_in)break}else this.onData(t.output)}return!0},Ur.prototype.onData=function(A){this.chunks.push(A)},Ur.prototype.onEnd=function(A){A===_r&&(this.result=fr(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};const Rr=16209;var Mr=function(A,e){let t,i,r,a,n,s,o,g,l,h,I,B,c,C,f,E,Q,d,u,w,p,m,y,D;const k=A.state;t=A.next_in,y=A.input,i=t+(A.avail_in-5),r=A.next_out,D=A.output,a=r-(e-A.avail_out),n=r+(A.avail_out-257),s=k.dmax,o=k.wsize,g=k.whave,l=k.wnext,h=k.window,I=k.hold,B=k.bits,c=k.lencode,C=k.distcode,f=(1<<k.lenbits)-1,E=(1<<k.distbits)-1;A:do{B<15&&(I+=y[t++]<<B,B+=8,I+=y[t++]<<B,B+=8),Q=c[I&f];e:for(;;){if(d=Q>>>24,I>>>=d,B-=d,d=Q>>>16&255,0===d)D[r++]=65535&Q;else{if(!(16&d)){if(64&d){if(32&d){k.mode=16191;break A}A.msg="invalid literal/length code",k.mode=Rr;break A}Q=c[(65535&Q)+(I&(1<<d)-1)];continue e}for(u=65535&Q,d&=15,d&&(B<d&&(I+=y[t++]<<B,B+=8),u+=I&(1<<d)-1,I>>>=d,B-=d),B<15&&(I+=y[t++]<<B,B+=8,I+=y[t++]<<B,B+=8),Q=C[I&E];;){if(d=Q>>>24,I>>>=d,B-=d,d=Q>>>16&255,16&d){if(w=65535&Q,d&=15,B<d&&(I+=y[t++]<<B,B+=8,B<d&&(I+=y[t++]<<B,B+=8)),w+=I&(1<<d)-1,w>s){A.msg="invalid distance too far back",k.mode=Rr;break A}if(I>>>=d,B-=d,d=r-a,w>d){if(d=w-d,d>g&&k.sane){A.msg="invalid distance too far back",k.mode=Rr;break A}if(p=0,m=h,0===l){if(p+=o-d,d<u){u-=d;do{D[r++]=h[p++]}while(--d);p=r-w,m=D}}else if(l<d){if(p+=o+l-d,d-=l,d<u){u-=d;do{D[r++]=h[p++]}while(--d);if(p=0,l<u){d=l,u-=d;do{D[r++]=h[p++]}while(--d);p=r-w,m=D}}}else if(p+=l-d,d<u){u-=d;do{D[r++]=h[p++]}while(--d);p=r-w,m=D}for(;u>2;)D[r++]=m[p++],D[r++]=m[p++],D[r++]=m[p++],u-=3;u&&(D[r++]=m[p++],u>1&&(D[r++]=m[p++]))}else{p=r-w;do{D[r++]=D[p++],D[r++]=D[p++],D[r++]=D[p++],u-=3}while(u>2);u&&(D[r++]=D[p++],u>1&&(D[r++]=D[p++]))}break}if(64&d){A.msg="invalid distance code",k.mode=Rr;break A}Q=C[(65535&Q)+(I&(1<<d)-1)]}}break}}while(t<i&&r<n);u=B>>3,t-=u,B-=u<<3,I&=(1<<B)-1,A.next_in=t,A.next_out=r,A.avail_in=t<i?i-t+5:5-(t-i),A.avail_out=r<n?n-r+257:257-(r-n),k.hold=I,k.bits=B};const Lr=15,vr=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]),Nr=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]),Tr=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]),qr=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 Or=(A,e,t,i,r,a,n,s)=>{const o=s.bits;let g,l,h,I,B,c,C=0,f=0,E=0,Q=0,d=0,u=0,w=0,p=0,m=0,y=0,D=null;const k=new Uint16Array(16),b=new Uint16Array(16);let _,S,x,F=null;for(C=0;C<=Lr;C++)k[C]=0;for(f=0;f<i;f++)k[e[t+f]]++;for(d=o,Q=Lr;Q>=1&&0===k[Q];Q--);if(d>Q&&(d=Q),0===Q)return r[a++]=20971520,r[a++]=20971520,s.bits=1,0;for(E=1;E<Q&&0===k[E];E++);for(d<E&&(d=E),p=1,C=1;C<=Lr;C++)if(p<<=1,p-=k[C],p<0)return-1;if(p>0&&(0===A||1!==Q))return-1;for(b[1]=0,C=1;C<Lr;C++)b[C+1]=b[C]+k[C];for(f=0;f<i;f++)0!==e[t+f]&&(n[b[e[t+f]]++]=f);if(0===A?(D=F=n,c=20):1===A?(D=vr,F=Nr,c=257):(D=Tr,F=qr,c=0),y=0,f=0,C=E,B=a,u=d,w=0,h=-1,m=1<<d,I=m-1,1===A&&m>852||2===A&&m>592)return 1;for(;;){_=C-w,n[f]+1<c?(S=0,x=n[f]):n[f]>=c?(S=F[n[f]-c],x=D[n[f]-c]):(S=96,x=0),g=1<<C-w,l=1<<u,E=l;do{l-=g,r[B+(y>>w)+l]=_<<24|S<<16|x}while(0!==l);for(g=1<<C-1;y&g;)g>>=1;if(0!==g?(y&=g-1,y+=g):y=0,f++,0==--k[C]){if(C===Q)break;C=e[t+n[f]]}if(C>d&&(y&I)!==h){for(0===w&&(w=d),B+=E,u=C-w,p=1<<u;u+w<Q&&(p-=k[u+w],!(p<=0));)u++,p<<=1;if(m+=1<<u,1===A&&m>852||2===A&&m>592)return 1;h=y&I,r[h]=d<<24|u<<16|B-a}}return 0!==y&&(r[B+y]=C-w<<24|64<<16),s.bits=d,0};const{Z_FINISH:Jr,Z_BLOCK:Hr,Z_TREES:Yr,Z_OK:zr,Z_STREAM_END:Pr,Z_NEED_DICT:Kr,Z_STREAM_ERROR:Vr,Z_DATA_ERROR:Zr,Z_MEM_ERROR:Xr,Z_BUF_ERROR:Wr,Z_DEFLATED:jr}=fi,$r=16180,Aa=16190,ea=16191,ta=16192,ia=16194,ra=16199,aa=16200,na=16206,sa=16209,oa=A=>(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24);function ga(){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 la=A=>{if(!A)return 1;const e=A.state;return!e||e.strm!==A||e.mode<$r||e.mode>16211?1:0},ha=A=>{if(la(A))return Vr;const e=A.state;return A.total_in=A.total_out=e.total=0,A.msg="",e.wrap&&(A.adler=1&e.wrap),e.mode=$r,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,zr},Ia=A=>{if(la(A))return Vr;const e=A.state;return e.wsize=0,e.whave=0,e.wnext=0,ha(A)},Ba=(A,e)=>{let t;if(la(A))return Vr;const i=A.state;return e<0?(t=0,e=-e):(t=5+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?Vr:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,Ia(A))},ca=(A,e)=>{if(!A)return Vr;const t=new ga;A.state=t,t.strm=A,t.window=null,t.mode=$r;const i=Ba(A,e);return i!==zr&&(A.state=null),i};let Ca,fa,Ea=!0;const Qa=A=>{if(Ea){Ca=new Int32Array(512),fa=new Int32Array(32);let e=0;for(;e<144;)A.lens[e++]=8;for(;e<256;)A.lens[e++]=9;for(;e<280;)A.lens[e++]=7;for(;e<288;)A.lens[e++]=8;for(Or(1,A.lens,0,288,Ca,0,A.work,{bits:9}),e=0;e<32;)A.lens[e++]=5;Or(2,A.lens,0,32,fa,0,A.work,{bits:5}),Ea=!1}A.lencode=Ca,A.lenbits=9,A.distcode=fa,A.distbits=5},da=(A,e,t,i)=>{let r;const a=A.state;return null===a.window&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),i>=a.wsize?(a.window.set(e.subarray(t-a.wsize,t),0),a.wnext=0,a.whave=a.wsize):(r=a.wsize-a.wnext,r>i&&(r=i),a.window.set(e.subarray(t-i,t-i+r),a.wnext),(i-=r)?(a.window.set(e.subarray(t-i,t),0),a.wnext=i,a.whave=a.wsize):(a.wnext+=r,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=r))),0};var ua={inflateReset:Ia,inflateReset2:Ba,inflateResetKeep:ha,inflateInit:A=>ca(A,15),inflateInit2:ca,inflate:(A,e)=>{let t,i,r,a,n,s,o,g,l,h,I,B,c,C,f,E,Q,d,u,w,p,m,y=0;const D=new Uint8Array(4);let k,b;const _=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(la(A)||!A.output||!A.input&&0!==A.avail_in)return Vr;t=A.state,t.mode===ea&&(t.mode=ta),n=A.next_out,r=A.output,o=A.avail_out,a=A.next_in,i=A.input,s=A.avail_in,g=t.hold,l=t.bits,h=s,I=o,m=zr;A:for(;;)switch(t.mode){case $r:if(0===t.wrap){t.mode=ta;break}for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(2&t.wrap&&35615===g){0===t.wbits&&(t.wbits=15),t.check=0,D[0]=255&g,D[1]=g>>>8&255,t.check=ci(t.check,D,2,0),g=0,l=0,t.mode=16181;break}if(t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&g)<<8)+(g>>8))%31){A.msg="incorrect header check",t.mode=sa;break}if((15&g)!==jr){A.msg="unknown compression method",t.mode=sa;break}if(g>>>=4,l-=4,p=8+(15&g),0===t.wbits&&(t.wbits=p),p>15||p>t.wbits){A.msg="invalid window size",t.mode=sa;break}t.dmax=1<<t.wbits,t.flags=0,A.adler=t.check=1,t.mode=512&g?16189:ea,g=0,l=0;break;case 16181:for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(t.flags=g,(255&t.flags)!==jr){A.msg="unknown compression method",t.mode=sa;break}if(57344&t.flags){A.msg="unknown header flags set",t.mode=sa;break}t.head&&(t.head.text=g>>8&1),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,t.check=ci(t.check,D,2,0)),g=0,l=0,t.mode=16182;case 16182:for(;l<32;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.head&&(t.head.time=g),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,D[2]=g>>>16&255,D[3]=g>>>24&255,t.check=ci(t.check,D,4,0)),g=0,l=0,t.mode=16183;case 16183:for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.head&&(t.head.xflags=255&g,t.head.os=g>>8),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,t.check=ci(t.check,D,2,0)),g=0,l=0,t.mode=16184;case 16184:if(1024&t.flags){for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.length=g,t.head&&(t.head.extra_len=g),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,t.check=ci(t.check,D,2,0)),g=0,l=0}else t.head&&(t.head.extra=null);t.mode=16185;case 16185:if(1024&t.flags&&(B=t.length,B>s&&(B=s),B&&(t.head&&(p=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(a,a+B),p)),512&t.flags&&4&t.wrap&&(t.check=ci(t.check,i,B,a)),s-=B,a+=B,t.length-=B),t.length))break A;t.length=0,t.mode=16186;case 16186:if(2048&t.flags){if(0===s)break A;B=0;do{p=i[a+B++],t.head&&p&&t.length<65536&&(t.head.name+=String.fromCharCode(p))}while(p&&B<s);if(512&t.flags&&4&t.wrap&&(t.check=ci(t.check,i,B,a)),s-=B,a+=B,p)break A}else t.head&&(t.head.name=null);t.length=0,t.mode=16187;case 16187:if(4096&t.flags){if(0===s)break A;B=0;do{p=i[a+B++],t.head&&p&&t.length<65536&&(t.head.comment+=String.fromCharCode(p))}while(p&&B<s);if(512&t.flags&&4&t.wrap&&(t.check=ci(t.check,i,B,a)),s-=B,a+=B,p)break A}else t.head&&(t.head.comment=null);t.mode=16188;case 16188:if(512&t.flags){for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(4&t.wrap&&g!==(65535&t.check)){A.msg="header crc mismatch",t.mode=sa;break}g=0,l=0}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=!0),A.adler=t.check=0,t.mode=ea;break;case 16189:for(;l<32;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}A.adler=t.check=oa(g),g=0,l=0,t.mode=Aa;case Aa:if(0===t.havedict)return A.next_out=n,A.avail_out=o,A.next_in=a,A.avail_in=s,t.hold=g,t.bits=l,Kr;A.adler=t.check=1,t.mode=ea;case ea:if(e===Hr||e===Yr)break A;case ta:if(t.last){g>>>=7&l,l-=7&l,t.mode=na;break}for(;l<3;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}switch(t.last=1&g,g>>>=1,l-=1,3&g){case 0:t.mode=16193;break;case 1:if(Qa(t),t.mode=ra,e===Yr){g>>>=2,l-=2;break A}break;case 2:t.mode=16196;break;case 3:A.msg="invalid block type",t.mode=sa}g>>>=2,l-=2;break;case 16193:for(g>>>=7&l,l-=7&l;l<32;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if((65535&g)!=(g>>>16^65535)){A.msg="invalid stored block lengths",t.mode=sa;break}if(t.length=65535&g,g=0,l=0,t.mode=ia,e===Yr)break A;case ia:t.mode=16195;case 16195:if(B=t.length,B){if(B>s&&(B=s),B>o&&(B=o),0===B)break A;r.set(i.subarray(a,a+B),n),s-=B,a+=B,o-=B,n+=B,t.length-=B;break}t.mode=ea;break;case 16196:for(;l<14;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(t.nlen=257+(31&g),g>>>=5,l-=5,t.ndist=1+(31&g),g>>>=5,l-=5,t.ncode=4+(15&g),g>>>=4,l-=4,t.nlen>286||t.ndist>30){A.msg="too many length or distance symbols",t.mode=sa;break}t.have=0,t.mode=16197;case 16197:for(;t.have<t.ncode;){for(;l<3;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.lens[_[t.have++]]=7&g,g>>>=3,l-=3}for(;t.have<19;)t.lens[_[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,k={bits:t.lenbits},m=Or(0,t.lens,0,19,t.lencode,0,t.work,k),t.lenbits=k.bits,m){A.msg="invalid code lengths set",t.mode=sa;break}t.have=0,t.mode=16198;case 16198:for(;t.have<t.nlen+t.ndist;){for(;y=t.lencode[g&(1<<t.lenbits)-1],f=y>>>24,E=y>>>16&255,Q=65535&y,!(f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(Q<16)g>>>=f,l-=f,t.lens[t.have++]=Q;else{if(16===Q){for(b=f+2;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(g>>>=f,l-=f,0===t.have){A.msg="invalid bit length repeat",t.mode=sa;break}p=t.lens[t.have-1],B=3+(3&g),g>>>=2,l-=2}else if(17===Q){for(b=f+3;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}g>>>=f,l-=f,p=0,B=3+(7&g),g>>>=3,l-=3}else{for(b=f+7;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}g>>>=f,l-=f,p=0,B=11+(127&g),g>>>=7,l-=7}if(t.have+B>t.nlen+t.ndist){A.msg="invalid bit length repeat",t.mode=sa;break}for(;B--;)t.lens[t.have++]=p}}if(t.mode===sa)break;if(0===t.lens[256]){A.msg="invalid code -- missing end-of-block",t.mode=sa;break}if(t.lenbits=9,k={bits:t.lenbits},m=Or(1,t.lens,0,t.nlen,t.lencode,0,t.work,k),t.lenbits=k.bits,m){A.msg="invalid literal/lengths set",t.mode=sa;break}if(t.distbits=6,t.distcode=t.distdyn,k={bits:t.distbits},m=Or(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,k),t.distbits=k.bits,m){A.msg="invalid distances set",t.mode=sa;break}if(t.mode=ra,e===Yr)break A;case ra:t.mode=aa;case aa:if(s>=6&&o>=258){A.next_out=n,A.avail_out=o,A.next_in=a,A.avail_in=s,t.hold=g,t.bits=l,Mr(A,I),n=A.next_out,r=A.output,o=A.avail_out,a=A.next_in,i=A.input,s=A.avail_in,g=t.hold,l=t.bits,t.mode===ea&&(t.back=-1);break}for(t.back=0;y=t.lencode[g&(1<<t.lenbits)-1],f=y>>>24,E=y>>>16&255,Q=65535&y,!(f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(E&&!(240&E)){for(d=f,u=E,w=Q;y=t.lencode[w+((g&(1<<d+u)-1)>>d)],f=y>>>24,E=y>>>16&255,Q=65535&y,!(d+f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}g>>>=d,l-=d,t.back+=d}if(g>>>=f,l-=f,t.back+=f,t.length=Q,0===E){t.mode=16205;break}if(32&E){t.back=-1,t.mode=ea;break}if(64&E){A.msg="invalid literal/length code",t.mode=sa;break}t.extra=15&E,t.mode=16201;case 16201:if(t.extra){for(b=t.extra;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.length+=g&(1<<t.extra)-1,g>>>=t.extra,l-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=16202;case 16202:for(;y=t.distcode[g&(1<<t.distbits)-1],f=y>>>24,E=y>>>16&255,Q=65535&y,!(f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(!(240&E)){for(d=f,u=E,w=Q;y=t.distcode[w+((g&(1<<d+u)-1)>>d)],f=y>>>24,E=y>>>16&255,Q=65535&y,!(d+f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}g>>>=d,l-=d,t.back+=d}if(g>>>=f,l-=f,t.back+=f,64&E){A.msg="invalid distance code",t.mode=sa;break}t.offset=Q,t.extra=15&E,t.mode=16203;case 16203:if(t.extra){for(b=t.extra;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.offset+=g&(1<<t.extra)-1,g>>>=t.extra,l-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){A.msg="invalid distance too far back",t.mode=sa;break}t.mode=16204;case 16204:if(0===o)break A;if(B=I-o,t.offset>B){if(B=t.offset-B,B>t.whave&&t.sane){A.msg="invalid distance too far back",t.mode=sa;break}B>t.wnext?(B-=t.wnext,c=t.wsize-B):c=t.wnext-B,B>t.length&&(B=t.length),C=t.window}else C=r,c=n-t.offset,B=t.length;B>o&&(B=o),o-=B,t.length-=B;do{r[n++]=C[c++]}while(--B);0===t.length&&(t.mode=aa);break;case 16205:if(0===o)break A;r[n++]=t.length,o--,t.mode=aa;break;case na:if(t.wrap){for(;l<32;){if(0===s)break A;s--,g|=i[a++]<<l,l+=8}if(I-=o,A.total_out+=I,t.total+=I,4&t.wrap&&I&&(A.adler=t.check=t.flags?ci(t.check,r,I,n-I):Ii(t.check,r,I,n-I)),I=o,4&t.wrap&&(t.flags?g:oa(g))!==t.check){A.msg="incorrect data check",t.mode=sa;break}g=0,l=0}t.mode=16207;case 16207:if(t.wrap&&t.flags){for(;l<32;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(4&t.wrap&&g!==(4294967295&t.total)){A.msg="incorrect length check",t.mode=sa;break}g=0,l=0}t.mode=16208;case 16208:m=Pr;break A;case sa:m=Zr;break A;case 16210:return Xr;default:return Vr}return A.next_out=n,A.avail_out=o,A.next_in=a,A.avail_in=s,t.hold=g,t.bits=l,(t.wsize||I!==A.avail_out&&t.mode<sa&&(t.mode<na||e!==Jr))&&da(A,A.output,A.next_out,I-A.avail_out),h-=A.avail_in,I-=A.avail_out,A.total_in+=h,A.total_out+=I,t.total+=I,4&t.wrap&&I&&(A.adler=t.check=t.flags?ci(t.check,r,I,A.next_out-I):Ii(t.check,r,I,A.next_out-I)),A.data_type=t.bits+(t.last?64:0)+(t.mode===ea?128:0)+(t.mode===ra||t.mode===ia?256:0),(0===h&&0===I||e===Jr)&&m===zr&&(m=Wr),m},inflateEnd:A=>{if(la(A))return Vr;let e=A.state;return e.window&&(e.window=null),A.state=null,zr},inflateGetHeader:(A,e)=>{if(la(A))return Vr;const t=A.state;return 2&t.wrap?(t.head=e,e.done=!1,zr):Vr},inflateSetDictionary:(A,e)=>{const t=e.length;let i,r,a;return la(A)?Vr:(i=A.state,0!==i.wrap&&i.mode!==Aa?Vr:i.mode===Aa&&(r=1,r=Ii(r,e,t,0),r!==i.check)?Zr:(a=da(A,e,t,t),a?(i.mode=16210,Xr):(i.havedict=1,zr)))},inflateInfo:"pako inflate (from Nodeca project)"};var wa=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 pa=Object.prototype.toString,{Z_NO_FLUSH:ma,Z_FINISH:ya,Z_OK:Da,Z_STREAM_END:ka,Z_NEED_DICT:ba,Z_STREAM_ERROR:_a,Z_DATA_ERROR:Sa,Z_MEM_ERROR:xa}=fi;function Fa(A){this.options=Cr({chunkSize:65536,windowBits:15,to:""},A||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||A&&A.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(15&e.windowBits||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new pr,this.strm.avail_out=0;let t=ua.inflateInit2(this.strm,e.windowBits);if(t!==Da)throw new Error(Ci[t]);if(this.header=new wa,ua.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=dr(e.dictionary):"[object ArrayBuffer]"===pa.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=ua.inflateSetDictionary(this.strm,e.dictionary),t!==Da)))throw new Error(Ci[t])}function Ga(A,e){const t=new Fa(e);if(t.push(A),t.err)throw t.msg||Ci[t.err];return t.result}Fa.prototype.push=function(A,e){const t=this.strm,i=this.options.chunkSize,r=this.options.dictionary;let a,n,s;if(this.ended)return!1;for(n=e===~~e?e:!0===e?ya:ma,"[object ArrayBuffer]"===pa.call(A)?t.input=new Uint8Array(A):t.input=A,t.next_in=0,t.avail_in=t.input.length;;){for(0===t.avail_out&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),a=ua.inflate(t,n),a===ba&&r&&(a=ua.inflateSetDictionary(t,r),a===Da?a=ua.inflate(t,n):a===Sa&&(a=ba));t.avail_in>0&&a===ka&&t.state.wrap>0&&0!==A[t.next_in];)ua.inflateReset(t),a=ua.inflate(t,n);switch(a){case _a:case Sa:case ba:case xa:return this.onEnd(a),this.ended=!0,!1}if(s=t.avail_out,t.next_out&&(0===t.avail_out||a===ka))if("string"===this.options.to){let A=wr(t.output,t.next_out),e=t.next_out-A,r=ur(t.output,A);t.next_out=e,t.avail_out=i-e,e&&t.output.set(t.output.subarray(A,A+e),0),this.onData(r)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(a!==Da||0!==s){if(a===ka)return a=ua.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(0===t.avail_in)break}}return!0},Fa.prototype.onData=function(A){this.chunks.push(A)},Fa.prototype.onEnd=function(A){A===Da&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=fr(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};var Ua={Inflate:Fa,inflate:Ga,inflateRaw:function(A,e){return(e=e||{}).raw=!0,Ga(A,e)},ungzip:Ga,constants:fi};const{Inflate:Ra,inflate:Ma,inflateRaw:La,ungzip:va}=Ua;var Na=Ma;var Ta=Object.freeze({__proto__:null,default:class extends Re{decodeBlock(A){return Na(new Uint8Array(A)).buffer}}});var qa,Oa=Object.freeze({__proto__:null,default:class extends Re{decodeBlock(A){const e=new DataView(A),t=[];for(let i=0;i<A.byteLength;++i){let A=e.getInt8(i);if(A<0){const r=e.getUint8(i+1);A=-A;for(let e=0;e<=A;++e)t.push(r);i+=1}else{for(let r=0;r<=A;++r)t.push(e.getUint8(i+r+1));i+=A+1}}return new Uint8Array(t).buffer}}}),Ja={exports:{}};qa=Ja,
1
+ import{CompositeLayer as A,log as e,COORDINATE_SYSTEM as t}from"@deck.gl/core";import{TileLayer as i}from"@deck.gl/geo-layers";import{BitmapLayer as a}from"@deck.gl/layers";import{_TerrainExtension as r}from"@deck.gl/extensions";import n from"chroma-js";import{getMeshBoundingBox as s}from"@loaders.gl/schema";import{concatenateTypedArrays as o}from"@loaders.gl/loader-utils";import{SimpleMeshLayer as g}from"@deck.gl/mesh-layers";function l(A){return(e,...t)=>h(A,e,t)}function I(A,e){return l(E(A,e).get)}const{apply:h,construct:B,defineProperty:c,get:C,getOwnPropertyDescriptor:E,getPrototypeOf:f,has:Q,ownKeys:d,set:u,setPrototypeOf:w}=Reflect,{iterator:p,species:m,toStringTag:y,for:D}=Symbol,k=Object,{create:b,defineProperty:_,freeze:S,is:x}=k,F=Array.prototype[p],G=l(F),U=ArrayBuffer;I(U.prototype,"byteLength");const R="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:null;R&&I(R.prototype,"byteLength");const M=f(Uint8Array);M.from;const L=M.prototype;L[p],l(L.keys),l(L.values),l(L.entries),l(L.set),l(L.reverse),l(L.fill),l(L.copyWithin),l(L.sort),l(L.slice),l(L.subarray),I(L,"buffer"),I(L,"byteOffset"),I(L,"length"),I(L,y);const N=Uint8Array,v=Uint16Array,T=Uint32Array,q=Float32Array,J=f([][p]()),O=l(J.next),H=l(function*(){}().next),z=f(J),Y=l(DataView.prototype.getUint16),K=WeakMap,P=K.prototype,V=l(P.get),Z=l(P.set),X=new K,W=b(null,{next:{value:function(){const A=V(X,this);return O(A)}},[p]:{value:function(){return this}}});const j=new K,$=b(z,{next:{value:function(){const A=V(j,this);return H(A)},writable:!0,configurable:!0}});for(const A of d(J))"next"!==A&&_($,A,E(J,A));const AA=new U(4),eA=new q(AA),tA=new T(AA),iA=new v(512),aA=new N(512);for(let A=0;A<256;++A){const e=A-127;e<-24?(iA[A]=0,iA[256|A]=32768,aA[A]=24,aA[256|A]=24):e<-14?(iA[A]=1024>>-e-14,iA[256|A]=1024>>-e-14|32768,aA[A]=-e-1,aA[256|A]=-e-1):e<=15?(iA[A]=e+15<<10,iA[256|A]=e+15<<10|32768,aA[A]=13,aA[256|A]=13):e<128?(iA[A]=31744,iA[256|A]=64512,aA[A]=24,aA[256|A]=24):(iA[A]=31744,iA[256|A]=64512,aA[A]=13,aA[256|A]=13)}const rA=new T(2048);for(let A=1;A<1024;++A){let e=A<<13,t=0;for(;!(8388608&e);)e<<=1,t-=8388608;e&=-8388609,t+=947912704,rA[A]=e|t}for(let A=1024;A<2048;++A)rA[A]=939524096+(A-1024<<13);const nA=new T(64);for(let A=1;A<31;++A)nA[A]=A<<23;nA[31]=1199570944,nA[32]=2147483648;for(let A=33;A<63;++A)nA[A]=2147483648+(A-32<<23);nA[63]=3347054592;const sA=new v(64);for(let A=1;A<64;++A)32!==A&&(sA[A]=1024);function oA(A,e,...t){return function(A){const e=A>>10;return tA[0]=rA[sA[e]+(1023&A)]+nA[e],eA[0]}(Y(A,e,...function(A){if(A[p]===F&&J.next===O)return A;const e=b(W);return Z(X,e,G(A)),e}(t)))}function gA(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var lA={exports:{}};function IA(A,e,t){const i=t&&t.debug||!1;i&&console.log("[xml-utils] getting "+e+" in "+A);const a="object"==typeof A?A.outer:A,r=a.slice(0,a.indexOf(">")+1),n=['"',"'"];for(let A=0;A<n.length;A++){const t=n[A],a=e+"\\="+t+"([^"+t+"]*)"+t;i&&console.log("[xml-utils] pattern:",a);const s=new RegExp(a).exec(r);if(i&&console.log("[xml-utils] match:",s),s)return s[1]}}lA.exports=IA,lA.exports.default=IA;var hA=gA(lA.exports),BA={exports:{}},cA={exports:{}},CA={exports:{}};function EA(A,e,t){const i=new RegExp(e).exec(A.slice(t));return i?t+i.index:-1}CA.exports=EA,CA.exports.default=EA;var fA=CA.exports,QA={exports:{}};function dA(A,e,t){const i=new RegExp(e).exec(A.slice(t));return i?t+i.index+i[0].length-1:-1}QA.exports=dA,QA.exports.default=dA;var uA=QA.exports,wA={exports:{}};function pA(A,e){const t=new RegExp(e,"g"),i=A.match(t);return i?i.length:0}wA.exports=pA,wA.exports.default=pA;var mA=wA.exports;const yA=fA,DA=uA,kA=mA;function bA(A,e,t){const i=t&&t.debug||!1,a=!(t&&!1===typeof t.nested),r=t&&t.startIndex||0;i&&console.log("[xml-utils] starting findTagByName with",e," and ",t);const n=yA(A,`<${e}[ \n>/]`,r);if(i&&console.log("[xml-utils] start:",n),-1===n)return;const s=A.slice(n+e.length);let o=DA(s,"^[^<]*[ /]>",0);const g=-1!==o&&"/"===s[o-1];if(i&&console.log("[xml-utils] selfClosing:",g),!1===g)if(a){let A=0,t=1,i=0;for(;-1!==(o=DA(s,"[ /]"+e+">",A));){const a=s.substring(A,o+1);if(t+=kA(a,"<"+e+"[ \n\t>]"),i+=kA(a,"</"+e+">"),i>=t)break;A=o}}else o=DA(s,"[ /]"+e+">",0);const l=n+e.length+o+1;if(i&&console.log("[xml-utils] end:",l),-1===l)return;const I=A.slice(n,l);let h;return h=g?null:I.slice(I.indexOf(">")+1,I.lastIndexOf("<")),{inner:h,outer:I,start:n,end:l}}cA.exports=bA,cA.exports.default=bA;const _A=cA.exports;function SA(A,e,t){const i=[],a=t&&t.debug||!1,r=!t||"boolean"!=typeof t.nested||t.nested;let n,s=t&&t.startIndex||0;for(;n=_A(A,e,{debug:a,startIndex:s});)s=r?n.start+1+e.length:n.end,i.push(n);return a&&console.log("findTagsByName found",i.length,"tags"),i}BA.exports=SA,BA.exports.default=SA;var xA=gA(BA.exports);const FA={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},GA={};for(const A in FA)FA.hasOwnProperty(A)&&(GA[FA[A]]=parseInt(A,10));const UA=[GA.BitsPerSample,GA.ExtraSamples,GA.SampleFormat,GA.StripByteCounts,GA.StripOffsets,GA.StripRowCounts,GA.TileByteCounts,GA.TileOffsets,GA.SubIFDs],RA={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},MA={};for(const A in RA)RA.hasOwnProperty(A)&&(MA[RA[A]]=parseInt(A,10));const LA=0,NA=1,vA=2,TA=3,qA=5,JA=6,OA=8,HA=0,zA=1,YA=0,KA=1,PA=2,VA={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"};const ZA=new Map;function XA(A,e){Array.isArray(A)||(A=[A]),A.forEach((A=>ZA.set(A,e)))}function WA(A,e,t,i=1){return new(Object.getPrototypeOf(A).constructor)(e*t*i)}function jA(A,e,t){return(1-t)*A+t*e}function $A(A,e,t,i,a,r="nearest"){switch(r.toLowerCase()){case"nearest":return function(A,e,t,i,a){const r=e/i,n=t/a;return A.map((A=>{const s=WA(A,i,a);for(let o=0;o<a;++o){const a=Math.min(Math.round(n*o),t-1);for(let t=0;t<i;++t){const n=Math.min(Math.round(r*t),e-1),g=A[a*e+n];s[o*i+t]=g}}return s}))}(A,e,t,i,a);case"bilinear":case"linear":return function(A,e,t,i,a){const r=e/i,n=t/a;return A.map((A=>{const s=WA(A,i,a);for(let o=0;o<a;++o){const a=n*o,g=Math.floor(a),l=Math.min(Math.ceil(a),t-1);for(let t=0;t<i;++t){const n=r*t,I=n%1,h=Math.floor(n),B=Math.min(Math.ceil(n),e-1),c=A[g*e+h],C=A[g*e+B],E=A[l*e+h],f=A[l*e+B],Q=jA(jA(c,C,I),jA(E,f,I),a%1);s[o*i+t]=Q}}return s}))}(A,e,t,i,a);default:throw new Error(`Unsupported resampling method: '${r}'`)}}function Ae(A,e,t,i,a,r,n="nearest"){switch(n.toLowerCase()){case"nearest":return function(A,e,t,i,a,r){const n=e/i,s=t/a,o=WA(A,i,a,r);for(let g=0;g<a;++g){const a=Math.min(Math.round(s*g),t-1);for(let t=0;t<i;++t){const s=Math.min(Math.round(n*t),e-1);for(let n=0;n<r;++n){const l=A[a*e*r+s*r+n];o[g*i*r+t*r+n]=l}}}return o}(A,e,t,i,a,r);case"bilinear":case"linear":return function(A,e,t,i,a,r){const n=e/i,s=t/a,o=WA(A,i,a,r);for(let g=0;g<a;++g){const a=s*g,l=Math.floor(a),I=Math.min(Math.ceil(a),t-1);for(let t=0;t<i;++t){const s=n*t,h=s%1,B=Math.floor(s),c=Math.min(Math.ceil(s),e-1);for(let n=0;n<r;++n){const s=A[l*e*r+B*r+n],C=A[l*e*r+c*r+n],E=A[I*e*r+B*r+n],f=A[I*e*r+c*r+n],Q=jA(jA(s,C,h),jA(E,f,h),a%1);o[g*i*r+t*r+n]=Q}}}return o}(A,e,t,i,a,r);default:throw new Error(`Unsupported resampling method: '${n}'`)}}function ee(A,e,t){let i=0;for(let a=e;a<t;++a)i+=A[a];return i}function te(A,e,t){switch(A){case 1:if(e<=8)return new Uint8Array(t);if(e<=16)return new Uint16Array(t);if(e<=32)return new Uint32Array(t);break;case 2:if(8===e)return new Int8Array(t);if(16===e)return new Int16Array(t);if(32===e)return new Int32Array(t);break;case 3:switch(e){case 16:case 32:return new Float32Array(t);case 64:return new Float64Array(t)}}throw Error("Unsupported data format/bitsPerSample")}XA([void 0,1],(()=>Promise.resolve().then((function(){return gt})).then((A=>A.default)))),XA(5,(()=>Promise.resolve().then((function(){return ht})).then((A=>A.default)))),XA(6,(()=>{throw new Error("old style JPEG compression is not supported.")})),XA(7,(()=>Promise.resolve().then((function(){return kt})).then((A=>A.default)))),XA([8,32946],(()=>Promise.resolve().then((function(){return vr})).then((A=>A.default)))),XA(32773,(()=>Promise.resolve().then((function(){return qr})).then((A=>A.default)))),XA(34887,(()=>Promise.resolve().then((function(){return Zr})).then((async A=>(await A.zstd.init(),A))).then((A=>A.default)))),XA(50001,(()=>Promise.resolve().then((function(){return Xr})).then((A=>A.default))));var ie=class{constructor(A,e,t,i,a,r){this.fileDirectory=A,this.geoKeys=e,this.dataView=t,this.littleEndian=i,this.tiles=a?{}:null,this.isTiled=!A.StripOffsets;const n=A.PlanarConfiguration;if(this.planarConfiguration=void 0===n?1:n,1!==this.planarConfiguration&&2!==this.planarConfiguration)throw new Error("Invalid planar configuration.");this.source=r}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.geoKeys}getWidth(){return this.fileDirectory.ImageWidth}getHeight(){return this.fileDirectory.ImageLength}getSamplesPerPixel(){return void 0!==this.fileDirectory.SamplesPerPixel?this.fileDirectory.SamplesPerPixel:1}getTileWidth(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}getTileHeight(){return this.isTiled?this.fileDirectory.TileLength:void 0!==this.fileDirectory.RowsPerStrip?Math.min(this.fileDirectory.RowsPerStrip,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;for(let e=0;e<this.fileDirectory.BitsPerSample.length;++e)A+=this.getSampleByteSize(e);return A}getSampleByteSize(A){if(A>=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${A} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[A]/8)}getReaderForSample(A){const e=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[A]:1,t=this.fileDirectory.BitsPerSample[A];switch(e){case 1:if(t<=8)return DataView.prototype.getUint8;if(t<=16)return DataView.prototype.getUint16;if(t<=32)return DataView.prototype.getUint32;break;case 2:if(t<=8)return DataView.prototype.getInt8;if(t<=16)return DataView.prototype.getInt16;if(t<=32)return DataView.prototype.getInt32;break;case 3:switch(t){case 16:return function(A,e){return oA(this,A,e)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(A=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[A]:1}getBitsPerSample(A=0){return this.fileDirectory.BitsPerSample[A]}getArrayForSample(A,e){return te(this.getSampleFormat(A),this.getBitsPerSample(A),e)}async getTileOrStrip(A,e,t,i,a){const r=Math.ceil(this.getWidth()/this.getTileWidth()),n=Math.ceil(this.getHeight()/this.getTileHeight());let s;const{tiles:o}=this;let g,l;1===this.planarConfiguration?s=e*r+A:2===this.planarConfiguration&&(s=t*r*n+e*r+A),this.isTiled?(g=this.fileDirectory.TileOffsets[s],l=this.fileDirectory.TileByteCounts[s]):(g=this.fileDirectory.StripOffsets[s],l=this.fileDirectory.StripByteCounts[s]);const I=(await this.source.fetch([{offset:g,length:l}],a))[0];let h;return null!==o&&o[s]?h=o[s]:(h=(async()=>{let A=await i.decode(this.fileDirectory,I);const t=this.getSampleFormat(),a=this.getBitsPerSample();return function(A,e){return(1!==A&&2!==A||!(e<=32)||e%8!=0)&&(3!==A||16!==e&&32!==e&&64!==e)}(t,a)&&(A=function(A,e,t,i,a,r,n){const s=new DataView(A),o=2===t?1:i,g=te(e,a,2===t?n*r:n*r*i),l=parseInt("1".repeat(a),2);if(1===e){let A;A=1===t?i*a:a;let e=r*A;7&e&&(e=e+7&-8);for(let A=0;A<n;++A){const t=A*e;for(let e=0;e<r;++e){const i=t+e*o*a;for(let t=0;t<o;++t){const n=i+t*a,I=(A*r+e)*o+t,h=Math.floor(n/8),B=n%8;if(B+a<=8)g[I]=s.getUint8(h)>>8-a-B&l;else if(B+a<=16)g[I]=s.getUint16(h)>>16-a-B&l;else if(B+a<=24){const A=s.getUint16(h)<<8|s.getUint8(h+2);g[I]=A>>24-a-B&l}else g[I]=s.getUint32(h)>>32-a-B&l}}}}return g.buffer}(A,t,this.planarConfiguration,this.getSamplesPerPixel(),a,this.getTileWidth(),this.getBlockHeight(e))),A})(),null!==o&&(o[s]=h)),{x:A,y:e,sample:t,data:await h}}async _readRaster(A,e,t,i,a,r,n,s,o){const g=this.getTileWidth(),l=this.getTileHeight(),I=this.getWidth(),h=this.getHeight(),B=Math.max(Math.floor(A[0]/g),0),c=Math.min(Math.ceil(A[2]/g),Math.ceil(I/g)),C=Math.max(Math.floor(A[1]/l),0),E=Math.min(Math.ceil(A[3]/l),Math.ceil(h/l)),f=A[2]-A[0];let Q=this.getBytesPerPixel();const d=[],u=[];for(let A=0;A<e.length;++A)1===this.planarConfiguration?d.push(ee(this.fileDirectory.BitsPerSample,0,e[A])/8):d.push(0),u.push(this.getReaderForSample(e[A]));const w=[],{littleEndian:p}=this;for(let r=C;r<E;++r)for(let n=B;n<c;++n){let s;1===this.planarConfiguration&&(s=this.getTileOrStrip(n,r,0,a,o));for(let B=0;B<e.length;++B){const c=B,C=e[B];2===this.planarConfiguration&&(Q=this.getSampleByteSize(C),s=this.getTileOrStrip(n,r,C,a,o));const E=s.then((a=>{const r=a.data,n=new DataView(r),s=this.getBlockHeight(a.y),o=a.y*l,B=a.x*g,C=o+s,E=(a.x+1)*g,w=u[c],m=Math.min(s,s-(C-A[3]),h-o),y=Math.min(g,g-(E-A[2]),I-B);for(let a=Math.max(0,A[1]-o);a<m;++a)for(let r=Math.max(0,A[0]-B);r<y;++r){const s=(a*g+r)*Q,l=w.call(n,s+d[c],p);let I;i?(I=(a+o-A[1])*f*e.length+(r+B-A[0])*e.length+c,t[I]=l):(I=(a+o-A[1])*f+r+B-A[0],t[c][I]=l)}}));w.push(E)}}if(await Promise.all(w),r&&A[2]-A[0]!==r||n&&A[3]-A[1]!==n){let a;return a=i?Ae(t,A[2]-A[0],A[3]-A[1],r,n,e.length,s):$A(t,A[2]-A[0],A[3]-A[1],r,n,s),a.width=r,a.height=n,a}return t.width=r||A[2]-A[0],t.height=n||A[3]-A[1],t}async readRasters({window:A,samples:e=[],interleave:t,pool:i=null,width:a,height:r,resampleMethod:n,fillValue:s,signal:o}={}){const g=A||[0,0,this.getWidth(),this.getHeight()];if(g[0]>g[2]||g[1]>g[3])throw new Error("Invalid subsets");const l=(g[2]-g[0])*(g[3]-g[1]),I=this.getSamplesPerPixel();if(e&&e.length){for(let A=0;A<e.length;++A)if(e[A]>=I)return Promise.reject(new RangeError(`Invalid sample index '${e[A]}'.`))}else for(let A=0;A<I;++A)e.push(A);let h;if(t){h=te(this.fileDirectory.SampleFormat?Math.max.apply(null,this.fileDirectory.SampleFormat):1,Math.max.apply(null,this.fileDirectory.BitsPerSample),l*e.length),s&&h.fill(s)}else{h=[];for(let A=0;A<e.length;++A){const t=this.getArrayForSample(e[A],l);Array.isArray(s)&&A<s.length?t.fill(s[A]):s&&!Array.isArray(s)&&t.fill(s),h.push(t)}}const B=i||await async function(A){const e=ZA.get(A.Compression);if(!e)throw new Error(`Unknown compression method identifier: ${A.Compression}`);return new(await e())(A)}(this.fileDirectory);return await this._readRaster(g,e,h,t,B,a,r,n,o)}async readRGB({window:A,interleave:e=!0,pool:t=null,width:i,height:a,resampleMethod:r,enableAlpha:n=!1,signal:s}={}){const o=A||[0,0,this.getWidth(),this.getHeight()];if(o[0]>o[2]||o[1]>o[3])throw new Error("Invalid subsets");const g=this.fileDirectory.PhotometricInterpretation;if(g===vA){let o=[0,1,2];if(this.fileDirectory.ExtraSamples!==HA&&n){o=[];for(let A=0;A<this.fileDirectory.BitsPerSample.length;A+=1)o.push(A)}return this.readRasters({window:A,interleave:e,samples:o,pool:t,width:i,height:a,resampleMethod:r,signal:s})}let l;switch(g){case LA:case NA:case TA:l=[0];break;case qA:l=[0,1,2,3];break;case JA:case OA:l=[0,1,2];break;default:throw new Error("Invalid or unsupported photometric interpretation.")}const I={window:o,interleave:!0,samples:l,pool:t,width:i,height:a,resampleMethod:r,signal:s},{fileDirectory:h}=this,B=await this.readRasters(I),c=2**this.fileDirectory.BitsPerSample[0];let C;switch(g){case LA:C=function(A,e){const{width:t,height:i}=A,a=new Uint8Array(t*i*3);let r;for(let t=0,i=0;t<A.length;++t,i+=3)r=256-A[t]/e*256,a[i]=r,a[i+1]=r,a[i+2]=r;return a}(B,c);break;case NA:C=function(A,e){const{width:t,height:i}=A,a=new Uint8Array(t*i*3);let r;for(let t=0,i=0;t<A.length;++t,i+=3)r=A[t]/e*256,a[i]=r,a[i+1]=r,a[i+2]=r;return a}(B,c);break;case TA:C=function(A,e){const{width:t,height:i}=A,a=new Uint8Array(t*i*3),r=e.length/3,n=e.length/3*2;for(let t=0,i=0;t<A.length;++t,i+=3){const s=A[t];a[i]=e[s]/65536*256,a[i+1]=e[s+r]/65536*256,a[i+2]=e[s+n]/65536*256}return a}(B,h.ColorMap);break;case qA:C=function(A){const{width:e,height:t}=A,i=new Uint8Array(e*t*3);for(let e=0,t=0;e<A.length;e+=4,t+=3){const a=A[e],r=A[e+1],n=A[e+2],s=A[e+3];i[t]=(255-a)/256*255*((255-s)/256),i[t+1]=(255-r)/256*255*((255-s)/256),i[t+2]=(255-n)/256*255*((255-s)/256)}return i}(B);break;case JA:C=function(A){const{width:e,height:t}=A,i=new Uint8ClampedArray(e*t*3);for(let e=0,t=0;e<A.length;e+=3,t+=3){const a=A[e],r=A[e+1],n=A[e+2];i[t]=a+1.402*(n-128),i[t+1]=a-.34414*(r-128)-.71414*(n-128),i[t+2]=a+1.772*(r-128)}return i}(B);break;case OA:C=function(A){const{width:e,height:t}=A,i=new Uint8Array(e*t*3);for(let e=0,t=0;e<A.length;e+=3,t+=3){let a,r,n,s=(A[e+0]+16)/116,o=(A[e+1]<<24>>24)/500+s,g=s-(A[e+2]<<24>>24)/200;o=.95047*(o*o*o>.008856?o*o*o:(o-16/116)/7.787),s=1*(s*s*s>.008856?s*s*s:(s-16/116)/7.787),g=1.08883*(g*g*g>.008856?g*g*g:(g-16/116)/7.787),a=3.2406*o+-1.5372*s+-.4986*g,r=-.9689*o+1.8758*s+.0415*g,n=.0557*o+-.204*s+1.057*g,a=a>.0031308?1.055*a**(1/2.4)-.055:12.92*a,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,n=n>.0031308?1.055*n**(1/2.4)-.055:12.92*n,i[t]=255*Math.max(0,Math.min(1,a)),i[t+1]=255*Math.max(0,Math.min(1,r)),i[t+2]=255*Math.max(0,Math.min(1,n))}return i}(B);break;default:throw new Error("Unsupported photometric interpretation.")}if(!e){const A=new Uint8Array(C.length/3),e=new Uint8Array(C.length/3),t=new Uint8Array(C.length/3);for(let i=0,a=0;i<C.length;i+=3,++a)A[a]=C[i],e[a]=C[i+1],t[a]=C[i+2];C=[A,e,t]}return C.width=B.width,C.height=B.height,C}getTiePoints(){if(!this.fileDirectory.ModelTiepoint)return[];const A=[];for(let e=0;e<this.fileDirectory.ModelTiepoint.length;e+=6)A.push({i:this.fileDirectory.ModelTiepoint[e],j:this.fileDirectory.ModelTiepoint[e+1],k:this.fileDirectory.ModelTiepoint[e+2],x:this.fileDirectory.ModelTiepoint[e+3],y:this.fileDirectory.ModelTiepoint[e+4],z:this.fileDirectory.ModelTiepoint[e+5]});return A}getGDALMetadata(A=null){const e={};if(!this.fileDirectory.GDAL_METADATA)return null;const t=this.fileDirectory.GDAL_METADATA;let i=xA(t,"Item");i=null===A?i.filter((A=>void 0===hA(A,"sample"))):i.filter((e=>Number(hA(e,"sample"))===A));for(let A=0;A<i.length;++A){const t=i[A];e[hA(t,"name")]=t.inner}return e}getGDALNoData(){if(!this.fileDirectory.GDAL_NODATA)return null;const A=this.fileDirectory.GDAL_NODATA;return Number(A.substring(0,A.length-1))}getOrigin(){const A=this.fileDirectory.ModelTiepoint,e=this.fileDirectory.ModelTransformation;if(A&&6===A.length)return[A[3],A[4],A[5]];if(e)return[e[3],e[7],e[11]];throw new Error("The image does not have an affine transformation.")}getResolution(A=null){const e=this.fileDirectory.ModelPixelScale,t=this.fileDirectory.ModelTransformation;if(e)return[e[0],-e[1],e[2]];if(t)return 0===t[1]&&0===t[4]?[t[0],-t[5],t[10]]:[Math.sqrt(t[0]*t[0]+t[4]*t[4]),-Math.sqrt(t[1]*t[1]+t[5]*t[5]),t[10]];if(A){const[e,t,i]=A.getResolution();return[e*A.getWidth()/this.getWidth(),t*A.getHeight()/this.getHeight(),i*A.getWidth()/this.getWidth()]}throw new Error("The image does not have an affine transformation.")}pixelIsArea(){return 1===this.geoKeys.GTRasterTypeGeoKey}getBoundingBox(A=!1){const e=this.getHeight(),t=this.getWidth();if(this.fileDirectory.ModelTransformation&&!A){const[A,i,a,r,n,s,o,g]=this.fileDirectory.ModelTransformation,l=[[0,0],[0,e],[t,0],[t,e]].map((([e,t])=>[r+A*e+i*t,g+n*e+s*t])),I=l.map((A=>A[0])),h=l.map((A=>A[1]));return[Math.min(...I),Math.min(...h),Math.max(...I),Math.max(...h)]}{const A=this.getOrigin(),i=this.getResolution(),a=A[0],r=A[1],n=a+i[0]*t,s=r+i[1]*e;return[Math.min(a,n),Math.min(r,s),Math.max(a,n),Math.max(r,s)]}}};class ae{constructor(A){this._dataView=new DataView(A)}get buffer(){return this._dataView.buffer}getUint64(A,e){const t=this.getUint32(A,e),i=this.getUint32(A+4,e);let a;if(e){if(a=t+2**32*i,!Number.isSafeInteger(a))throw new Error(`${a} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return a}if(a=2**32*t+i,!Number.isSafeInteger(a))throw new Error(`${a} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return a}getInt64(A,e){let t=0;const i=(128&this._dataView.getUint8(A+(e?7:0)))>0;let a=!0;for(let r=0;r<8;r++){let n=this._dataView.getUint8(A+(e?r:7-r));i&&(a?0!==n&&(n=255&~(n-1),a=!1):n=255&~n),t+=n*256**r}return i&&(t=-t),t}getUint8(A,e){return this._dataView.getUint8(A,e)}getInt8(A,e){return this._dataView.getInt8(A,e)}getUint16(A,e){return this._dataView.getUint16(A,e)}getInt16(A,e){return this._dataView.getInt16(A,e)}getUint32(A,e){return this._dataView.getUint32(A,e)}getInt32(A,e){return this._dataView.getInt32(A,e)}getFloat16(A,e){return oA(this._dataView,A,e)}getFloat32(A,e){return this._dataView.getFloat32(A,e)}getFloat64(A,e){return this._dataView.getFloat64(A,e)}}class re{constructor(A,e,t,i){this._dataView=new DataView(A),this._sliceOffset=e,this._littleEndian=t,this._bigTiff=i}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,e){return this.sliceOffset<=A&&this.sliceTop>=A+e}readUint8(A){return this._dataView.getUint8(A-this._sliceOffset,this._littleEndian)}readInt8(A){return this._dataView.getInt8(A-this._sliceOffset,this._littleEndian)}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 e=this.readUint32(A),t=this.readUint32(A+4);let i;if(this._littleEndian){if(i=e+2**32*t,!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*e+t,!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}readInt64(A){let e=0;const t=(128&this._dataView.getUint8(A+(this._littleEndian?7:0)))>0;let i=!0;for(let a=0;a<8;a++){let r=this._dataView.getUint8(A+(this._littleEndian?a:7-a));t&&(i?0!==r&&(r=255&~(r-1),i=!1):r=255&~r),e+=r*256**a}return t&&(e=-e),e}readOffset(A){return this._bigTiff?this.readUint64(A):this.readUint32(A)}}const ne="\r\n\r\n";function se(A){if(void 0!==Object.fromEntries)return Object.fromEntries(A);const e={};for(const[t,i]of A)e[t.toLowerCase()]=i;return e}function oe(A){return se(A.split("\r\n").map((A=>{const e=A.split(":").map((A=>A.trim()));return e[0]=e[0].toLowerCase(),e})))}function ge(A){let e,t,i;return A&&([,e,t,i]=A.match(/bytes (\d+)-(\d+)\/(\d+)/),e=parseInt(e,10),t=parseInt(t,10),i=parseInt(i,10)),{start:e,end:t,total:i}}class le{async fetch(A,e=void 0){return Promise.all(A.map((A=>this.fetchSlice(A,e))))}async fetchSlice(A){throw new Error(`fetching of slice ${A} not possible, not implemented`)}get fileSize(){return null}async close(){}}class Ie 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[e,t]of A)this.onEviction(e,t.value)}_deleteIfExpired(A,e){return"number"==typeof e.expiry&&e.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(A,e.value),this.delete(A))}_getOrDeleteIfExpired(A,e){if(!1===this._deleteIfExpired(A,e))return e.value}_getItemValue(A,e){return e.expiry?this._getOrDeleteIfExpired(A,e):e.value}_peek(A,e){const t=e.get(A);return this._getItemValue(A,t)}_set(A,e){this.cache.set(A,e),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(A,e){this.oldCache.delete(A),this._set(A,e)}*_entriesAscending(){for(const A of this.oldCache){const[e,t]=A;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,t)&&(yield A)}}for(const A of this.cache){const[e,t]=A;!1===this._deleteIfExpired(e,t)&&(yield A)}}get(A){if(this.cache.has(A)){const e=this.cache.get(A);return this._getItemValue(A,e)}if(this.oldCache.has(A)){const e=this.oldCache.get(A);if(!1===this._deleteIfExpired(A,e))return this._moveToRecent(A,e),e.value}}set(A,e,{maxAge:t=this.maxAge}={}){const i="number"==typeof t&&t!==Number.POSITIVE_INFINITY?Date.now()+t:void 0;return this.cache.has(A)?this.cache.set(A,{value:e,expiry:i}):this._set(A,{value:e,expiry:i}),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 e=this.cache.delete(A);return e&&this._size--,this.oldCache.delete(A)||e}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 e=[...this._entriesAscending()],t=e.length-A;t<0?(this.cache=new Map(e),this.oldCache=new Map,this._size=e.length):(t>0&&this._emitEvictions(e.slice(0,t)),this.oldCache=new Map(e.slice(t)),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[e,t]=A;!1===this._deleteIfExpired(e,t)&&(yield[e,t.value])}for(const A of this.oldCache){const[e,t]=A;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,t)&&(yield[e,t.value])}}}*entriesDescending(){let A=[...this.cache];for(let e=A.length-1;e>=0;--e){const t=A[e],[i,a]=t;!1===this._deleteIfExpired(i,a)&&(yield[i,a.value])}A=[...this.oldCache];for(let e=A.length-1;e>=0;--e){const t=A[e],[i,a]=t;if(!this.cache.has(i)){!1===this._deleteIfExpired(i,a)&&(yield[i,a.value])}}}*entriesAscending(){for(const[A,e]of this._entriesAscending())yield[A,e.value]}get size(){if(!this._size)return this.oldCache.size;let A=0;for(const e of this.oldCache.keys())this.cache.has(e)||A++;return Math.min(this._size+A,this.maxSize)}entries(){return this.entriesAscending()}forEach(A,e=this){for(const[t,i]of this.entriesAscending())A.call(e,i,t,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}class he extends Error{constructor(A){super(A),Error.captureStackTrace&&Error.captureStackTrace(this,he),this.name="AbortError"}}class Be extends Error{constructor(A,e){super(e),this.errors=A,this.message=e,this.name="AggregateError"}}const ce=Be;class Ce{constructor(A,e,t=null){this.offset=A,this.length=e,this.data=t}get top(){return this.offset+this.length}}class Ee{constructor(A,e,t){this.offset=A,this.length=e,this.blockIds=t}}class fe extends le{constructor(A,{blockSize:e=65536,cacheSize:t=100}={}){super(),this.source=A,this.blockSize=e,this.blockCache=new Ie({maxSize:t,onEviction:(A,e)=>{this.evictedBlocks.set(A,e)}}),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,e){const t=[],i=[],a=[];this.evictedBlocks.clear();for(const{offset:e,length:r}of A){let A=e+r;const{fileSize:n}=this;null!==n&&(A=Math.min(A,n));for(let r=Math.floor(e/this.blockSize)*this.blockSize;r<A;r+=this.blockSize){const A=Math.floor(r/this.blockSize);this.blockCache.has(A)||this.blockRequests.has(A)||(this.blockIdsToFetch.add(A),i.push(A)),this.blockRequests.has(A)&&t.push(this.blockRequests.get(A)),a.push(A)}}await async function(A){return new Promise((e=>setTimeout(e,A)))}(),this.fetchBlocks(e);const r=[];for(const A of i)this.blockRequests.has(A)&&r.push(this.blockRequests.get(A));await Promise.allSettled(t),await Promise.allSettled(r);const n=[],s=a.filter((A=>this.abortedBlockIds.has(A)||!this.blockCache.has(A)));if(s.forEach((A=>this.blockIdsToFetch.add(A))),s.length>0&&e&&!e.aborted){this.fetchBlocks(null);for(const A of s){const e=this.blockRequests.get(A);if(!e)throw new Error(`Block ${A} is not in the block requests`);n.push(e)}await Promise.allSettled(n)}if(e&&e.aborted)throw new he("Request was aborted");const o=a.map((A=>this.blockCache.get(A)||this.evictedBlocks.get(A))),g=o.filter((A=>!A));if(g.length)throw new ce(g,"Request failed");const l=new Map(function(A,e){const t=Array.isArray(A)?A:Array.from(A),i=Array.isArray(e)?e:Array.from(e);return t.map(((A,e)=>[A,i[e]]))}(a,o));return this.readSliceData(A,l)}fetchBlocks(A){if(this.blockIdsToFetch.size>0){const e=this.groupBlocks(this.blockIdsToFetch),t=this.source.fetch(e,A);for(let i=0;i<e.length;++i){const a=e[i];for(const e of a.blockIds)this.blockRequests.set(e,(async()=>{try{const A=(await t)[i],a=e*this.blockSize,r=a-A.offset,n=Math.min(r+this.blockSize,A.data.byteLength),s=A.data.slice(r,n),o=new Ce(a,s.byteLength,s,e);this.blockCache.set(e,o),this.abortedBlockIds.delete(e)}catch(t){if("AbortError"!==t.name)throw t;t.signal=A,this.blockCache.delete(e),this.abortedBlockIds.add(e)}finally{this.blockRequests.delete(e)}})())}this.blockIdsToFetch.clear()}}groupBlocks(A){const e=Array.from(A).sort(((A,e)=>A-e));if(0===e.length)return[];let t=[],i=null;const a=[];for(const A of e)null===i||i+1===A?(t.push(A),i=A):(a.push(new Ee(t[0]*this.blockSize,t.length*this.blockSize,t)),t=[A],i=A);return a.push(new Ee(t[0]*this.blockSize,t.length*this.blockSize,t)),a}readSliceData(A,e){return A.map((A=>{let t=A.offset+A.length;null!==this.fileSize&&(t=Math.min(this.fileSize,t));const i=Math.floor(A.offset/this.blockSize),a=Math.floor(t/this.blockSize),r=new ArrayBuffer(A.length),n=new Uint8Array(r);for(let r=i;r<=a;++r){const i=e.get(r),a=i.offset-A.offset;let s,o=0,g=0;a<0?o=-a:a>0&&(g=a),s=i.top-t<0?i.length-o:t-i.offset-o;const l=new Uint8Array(i.data,o,s);n.set(l,g)}return r}))}}class Qe{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 de{constructor(A){this.url=A}async request({headers:A,signal:e}={}){throw new Error("request is not implemented")}}class ue extends Qe{constructor(A){super(),this.response=A}get status(){return this.response.status}getHeader(A){return this.response.headers.get(A)}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}}class we extends de{constructor(A,e){super(A),this.credentials=e}async request({headers:A,signal:e}={}){const t=await fetch(this.url,{headers:A,credentials:this.credentials,signal:e});return new ue(t)}}class pe extends Qe{constructor(A,e){super(),this.xhr=A,this.data=e}get status(){return this.xhr.status}getHeader(A){return this.xhr.getResponseHeader(A)}async getData(){return this.data}}class me extends de{constructRequest(A,e){return new Promise(((t,i)=>{const a=new XMLHttpRequest;a.open("GET",this.url),a.responseType="arraybuffer";for(const[e,t]of Object.entries(A))a.setRequestHeader(e,t);a.onload=()=>{const A=a.response;t(new pe(a,A))},a.onerror=i,a.onabort=()=>i(new he("Request aborted")),a.send(),e&&(e.aborted&&a.abort(),e.addEventListener("abort",(()=>a.abort())))}))}async request({headers:A,signal:e}={}){return await this.constructRequest(A,e)}}var ye={};class De extends Qe{constructor(A,e){super(),this.response=A,this.dataPromise=e}get status(){return this.response.statusCode}getHeader(A){return this.response.headers[A]}async getData(){return await this.dataPromise}}class ke extends de{constructor(A){super(A),this.parsedUrl=ye.parse(this.url),this.httpApi=(this.parsedUrl.protocol,ye)}constructRequest(A,e){return new Promise(((t,i)=>{const a=this.httpApi.get({...this.parsedUrl,headers:A},(A=>{const e=new Promise((e=>{const t=[];A.on("data",(A=>{t.push(A)})),A.on("end",(()=>{const A=Buffer.concat(t).buffer;e(A)})),A.on("error",i)}));t(new De(A,e))}));a.on("error",i),e&&(e.aborted&&a.destroy(new he("Request aborted")),e.addEventListener("abort",(()=>a.destroy(new he("Request aborted")))))}))}async request({headers:A,signal:e}={}){return await this.constructRequest(A,e)}}class be extends le{constructor(A,e,t,i){super(),this.client=A,this.headers=e,this.maxRanges=t,this.allowFullFile=i,this._fileSize=null}async fetch(A,e){return this.maxRanges>=A.length?this.fetchSlices(A,e):(this.maxRanges>0&&A.length,Promise.all(A.map((A=>this.fetchSlice(A,e)))))}async fetchSlices(A,e){const t=await this.client.request({headers:{...this.headers,Range:`bytes=${A.map((({offset:A,length:e})=>`${A}-${A+e}`)).join(",")}`},signal:e});if(t.ok){if(206===t.status){const{type:i,params:a}=function(A){const[e,...t]=A.split(";").map((A=>A.trim()));return{type:e,params:se(t.map((A=>A.split("="))))}}(t.getHeader("content-type"));if("multipart/byteranges"===i){const A=function(A,e){let t=null;const i=new TextDecoder("ascii"),a=[],r=`--${e}`,n=`${r}--`;for(let e=0;e<10;++e)i.decode(new Uint8Array(A,e,r.length))===r&&(t=e);if(null===t)throw new Error("Could not find initial boundary");for(;t<A.byteLength;){const e=i.decode(new Uint8Array(A,t,Math.min(r.length+1024,A.byteLength-t)));if(0===e.length||e.startsWith(n))break;if(!e.startsWith(r))throw new Error("Part does not start with boundary");const s=e.substr(r.length+2);if(0===s.length)break;const o=s.indexOf(ne),g=oe(s.substr(0,o)),{start:l,end:I,total:h}=ge(g["content-range"]),B=t+r.length+o+4,c=parseInt(I,10)+1-parseInt(l,10);a.push({headers:g,data:A.slice(B,B+c),offset:l,length:c,fileSize:h}),t=B+c+4}return a}(await t.getData(),a.boundary);return this._fileSize=A[0].fileSize||null,A}const r=await t.getData(),{start:n,end:s,total:o}=ge(t.getHeader("content-range"));this._fileSize=o||null;const g=[{data:r,offset:n,length:s-n}];if(A.length>1){const t=await Promise.all(A.slice(1).map((A=>this.fetchSlice(A,e))));return g.concat(t)}return g}{if(!this.allowFullFile)throw new Error("Server responded with full file");const A=await t.getData();return this._fileSize=A.byteLength,[{data:A,offset:0,length:A.byteLength}]}}throw new Error("Error fetching data.")}async fetchSlice(A,e){const{offset:t,length:i}=A,a=await this.client.request({headers:{...this.headers,Range:`bytes=${t}-${t+i}`},signal:e});if(a.ok){if(206===a.status){const A=await a.getData(),{total:e}=ge(a.getHeader("content-range"));return this._fileSize=e||null,{data:A,offset:t,length:i}}{if(!this.allowFullFile)throw new Error("Server responded with full file");const A=await a.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 _e(A,{blockSize:e,cacheSize:t}){return null===e?A:new fe(A,{blockSize:e,cacheSize:t})}function Se(A,{forceXHR:e=!1,...t}={}){return"function"!=typeof fetch||e?"undefined"!=typeof XMLHttpRequest?function(A,{headers:e={},maxRanges:t=0,allowFullFile:i=!1,...a}={}){const r=new me(A);return _e(new be(r,e,t,i),a)}(A,t):function(A,{headers:e={},maxRanges:t=0,allowFullFile:i=!1,...a}={}){const r=new ke(A);return _e(new be(r,e,t,i),a)}(A,t):function(A,{headers:e={},credentials:t,maxRanges:i=0,allowFullFile:a=!1,...r}={}){const n=new we(A,t);return _e(new be(n,e,i,a),r)}(A,t)}class xe extends le{constructor(A){super(),this.arrayBuffer=A}fetchSlice(A,e){if(e&&e.aborted)throw new he("Request aborted");return this.arrayBuffer.slice(A.offset,A.offset+A.length)}}function Fe(A,e){let t=A.length-e,i=0;do{for(let t=e;t>0;t--)A[i+e]+=A[i],i++;t-=e}while(t>0)}function Ge(A,e,t){let i=0,a=A.length;const r=a/t;for(;a>e;){for(let t=e;t>0;--t)A[i+e]+=A[i],++i;a-=e}const n=A.slice();for(let e=0;e<r;++e)for(let i=0;i<t;++i)A[t*e+i]=n[(t-i-1)*r+e]}class Ue{async decode(A,e){const t=await this.decodeBlock(e),i=A.Predictor||1;if(1!==i){const e=!A.StripOffsets;return function(A,e,t,i,a,r){if(!e||1===e)return A;for(let A=0;A<a.length;++A){if(a[A]%8!=0)throw new Error("When decoding with predictor, only multiple of 8 bits are supported.");if(a[A]!==a[0])throw new Error("When decoding with predictor, all samples must have the same size.")}const n=a[0]/8,s=2===r?1:a.length;for(let r=0;r<i&&!(r*s*t*n>=A.byteLength);++r){let i;if(2===e){switch(a[0]){case 8:i=new Uint8Array(A,r*s*t*n,s*t*n);break;case 16:i=new Uint16Array(A,r*s*t*n,s*t*n/2);break;case 32:i=new Uint32Array(A,r*s*t*n,s*t*n/4);break;default:throw new Error(`Predictor 2 not allowed with ${a[0]} bits per sample.`)}Fe(i,s)}else 3===e&&(i=new Uint8Array(A,r*s*t*n,s*t*n),Ge(i,s,n))}return A}(t,i,e?A.TileWidth:A.ImageWidth,e?A.TileLength:A.RowsPerStrip||A.ImageLength,A.BitsPerSample,A.PlanarConfiguration)}return t}}function Re(A){switch(A){case MA.BYTE:case MA.ASCII:case MA.SBYTE:case MA.UNDEFINED:return 1;case MA.SHORT:case MA.SSHORT:return 2;case MA.LONG:case MA.SLONG:case MA.FLOAT:case MA.IFD:return 4;case MA.RATIONAL:case MA.SRATIONAL:case MA.DOUBLE:case MA.LONG8:case MA.SLONG8:case MA.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${A}`)}}function Me(A,e,t,i){let a=null,r=null;const n=Re(e);switch(e){case MA.BYTE:case MA.ASCII:case MA.UNDEFINED:a=new Uint8Array(t),r=A.readUint8;break;case MA.SBYTE:a=new Int8Array(t),r=A.readInt8;break;case MA.SHORT:a=new Uint16Array(t),r=A.readUint16;break;case MA.SSHORT:a=new Int16Array(t),r=A.readInt16;break;case MA.LONG:case MA.IFD:a=new Uint32Array(t),r=A.readUint32;break;case MA.SLONG:a=new Int32Array(t),r=A.readInt32;break;case MA.LONG8:case MA.IFD8:a=new Array(t),r=A.readUint64;break;case MA.SLONG8:a=new Array(t),r=A.readInt64;break;case MA.RATIONAL:a=new Uint32Array(2*t),r=A.readUint32;break;case MA.SRATIONAL:a=new Int32Array(2*t),r=A.readInt32;break;case MA.FLOAT:a=new Float32Array(t),r=A.readFloat32;break;case MA.DOUBLE:a=new Float64Array(t),r=A.readFloat64;break;default:throw new RangeError(`Invalid field type: ${e}`)}if(e!==MA.RATIONAL&&e!==MA.SRATIONAL)for(let e=0;e<t;++e)a[e]=r.call(A,i+e*n);else for(let e=0;e<t;e+=2)a[e]=r.call(A,i+e*n),a[e+1]=r.call(A,i+(e*n+4));return e===MA.ASCII?new TextDecoder("utf-8").decode(a):a}class Le{constructor(A,e,t){this.fileDirectory=A,this.geoKeyDirectory=e,this.nextIFDByteOffset=t}}class Ne extends Error{constructor(A){super(`No image at index ${A}`),this.index=A}}class ve{async readRasters(A={}){const{window:e,width:t,height:i}=A;let{resX:a,resY:r,bbox:n}=A;const s=await this.getImage();let o=s;const g=await this.getImageCount(),l=s.getBoundingBox();if(e&&n)throw new Error('Both "bbox" and "window" passed.');if(t||i){if(e){const[A,t]=s.getOrigin(),[i,a]=s.getResolution();n=[A+e[0]*i,t+e[1]*a,A+e[2]*i,t+e[3]*a]}const A=n||l;if(t){if(a)throw new Error("Both width and resX passed");a=(A[2]-A[0])/t}if(i){if(r)throw new Error("Both width and resY passed");r=(A[3]-A[1])/i}}if(a||r){const A=[];for(let e=0;e<g;++e){const t=await this.getImage(e),{SubfileType:i,NewSubfileType:a}=t.fileDirectory;(0===e||2===i||1&a)&&A.push(t)}A.sort(((A,e)=>A.getWidth()-e.getWidth()));for(let e=0;e<A.length;++e){const t=A[e],i=(l[2]-l[0])/t.getWidth(),n=(l[3]-l[1])/t.getHeight();if(o=t,a&&a>i||r&&r>n)break}}let I=e;if(n){const[A,e]=s.getOrigin(),[t,i]=o.getResolution(s);I=[Math.round((n[0]-A)/t),Math.round((n[1]-e)/i),Math.round((n[2]-A)/t),Math.round((n[3]-e)/i)],I=[Math.min(I[0],I[2]),Math.min(I[1],I[3]),Math.max(I[0],I[2]),Math.max(I[1],I[3])]}return o.readRasters({...A,window:I})}}class Te extends ve{constructor(A,e,t,i,a={}){super(),this.source=A,this.littleEndian=e,this.bigTiff=t,this.firstIFDOffset=i,this.cache=a.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(A,e){const t=this.bigTiff?4048:1024;return new re((await this.source.fetch([{offset:A,length:void 0!==e?e:t}]))[0],A,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(A){const e=this.bigTiff?20:12,t=this.bigTiff?8:2;let i=await this.getSlice(A);const a=this.bigTiff?i.readUint64(A):i.readUint16(A),r=a*e+(this.bigTiff?16:6);i.covers(A,r)||(i=await this.getSlice(A,r));const n={};let s=A+(this.bigTiff?8:2);for(let A=0;A<a;s+=e,++A){const A=i.readUint16(s),e=i.readUint16(s+2),t=this.bigTiff?i.readUint64(s+4):i.readUint32(s+4);let a,r;const o=Re(e),g=s+(this.bigTiff?12:8);if(o*t<=(this.bigTiff?8:4))a=Me(i,e,t,g);else{const A=i.readOffset(g),r=Re(e)*t;if(i.covers(A,r))a=Me(i,e,t,A);else{a=Me(await this.getSlice(A,r),e,t,A)}}r=1===t&&-1===UA.indexOf(A)&&e!==MA.RATIONAL&&e!==MA.SRATIONAL?a[0]:a,n[FA[A]]=r}const o=function(A){const e=A.GeoKeyDirectory;if(!e)return null;const t={};for(let i=4;i<=4*e[3];i+=4){const a=VA[e[i]],r=e[i+1]?FA[e[i+1]]:null,n=e[i+2],s=e[i+3];let o=null;if(r){if(o=A[r],null==o)throw new Error(`Could not get value of geoKey '${a}'.`);"string"==typeof o?o=o.substring(s,s+n-1):o.subarray&&(o=o.subarray(s,s+n),1===n&&(o=o[0]))}else o=s;t[a]=o}return t}(n),g=i.readOffset(A+t+e*a);return new Le(n,o,g)}async requestIFD(A){if(this.ifdRequests[A])return this.ifdRequests[A];if(0===A)return this.ifdRequests[A]=this.parseFileDirectoryAt(this.firstIFDOffset),this.ifdRequests[A];if(!this.ifdRequests[A-1])try{this.ifdRequests[A-1]=this.requestIFD(A-1)}catch(e){if(e instanceof Ne)throw new Ne(A);throw e}return this.ifdRequests[A]=(async()=>{const e=await this.ifdRequests[A-1];if(0===e.nextIFDByteOffset)throw new Ne(A);return this.parseFileDirectoryAt(e.nextIFDByteOffset)})(),this.ifdRequests[A]}async getImage(A=0){const e=await this.requestIFD(A);return new ie(e.fileDirectory,e.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let A=0,e=!0;for(;e;)try{await this.requestIFD(A),++A}catch(A){if(!(A instanceof Ne))throw A;e=!1}return A}async getGhostValues(){const A=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;const e="GDAL_STRUCTURAL_METADATA_SIZE=";let t=await this.getSlice(A,130);if(e===Me(t,MA.ASCII,30,A)){const e=Me(t,MA.ASCII,130,A).split("\n")[0],i=Number(e.split("=")[1].split(" ")[0])+e.length;i>130&&(t=await this.getSlice(A,i));const a=Me(t,MA.ASCII,i,A);this.ghostValues={},a.split("\n").filter((A=>A.length>0)).map((A=>A.split("="))).forEach((([A,e])=>{this.ghostValues[A]=e}))}return this.ghostValues}static async fromSource(A,e,t){const i=(await A.fetch([{offset:0,length:1024}],t))[0],a=new ae(i),r=a.getUint16(0,0);let n;if(18761===r)n=!0;else{if(19789!==r)throw new TypeError("Invalid byte order value.");n=!1}const s=a.getUint16(2,n);let o;if(42===s)o=!1;else{if(43!==s)throw new TypeError("Invalid magic number.");o=!0;if(8!==a.getUint16(4,n))throw new Error("Unsupported offset byte-size.")}const g=o?a.getUint64(8,n):a.getUint32(4,n);return new Te(A,n,o,g,e)}close(){return"function"==typeof this.source.close&&this.source.close()}}async function qe(A,e){return Te.fromSource(function(A){return new xe(A)}(A),e)}const Je=Math.PI,Oe=Je/4,He=180/Je;class ze{constructor(A=257){this.gridSize=A;const e=A-1;if(e&e-1)throw new Error(`Expected grid size to be 2^n+1, got ${A}.`);this.numTriangles=e*e*2-2,this.numParentTriangles=this.numTriangles-e*e,this.indices=new Uint32Array(this.gridSize*this.gridSize),this.coords=new Uint16Array(4*this.numTriangles);for(let A=0;A<this.numTriangles;A++){let t=A+2,i=0,a=0,r=0,n=0,s=0,o=0;for(1&t?r=n=s=e:i=a=o=e;(t>>=1)>1;){const A=i+r>>1,e=a+n>>1;1&t?(r=i,n=a,i=s,a=o):(i=r,a=n,r=s,n=o),s=A,o=e}const g=4*A;this.coords[g+0]=i,this.coords[g+1]=a,this.coords[g+2]=r,this.coords[g+3]=n}}createTile(A){return new Ye(A,this)}}class Ye{constructor(A,e){const t=e.gridSize;if(A.length!==t*t)throw new Error(`Expected terrain data of length ${t*t} (${t} x ${t}), got ${A.length}.`);this.terrain=A,this.martini=e,this.errors=new Float32Array(A.length),this.update()}update(){const{numTriangles:A,numParentTriangles:e,coords:t,gridSize:i}=this.martini,{terrain:a,errors:r}=this;for(let n=A-1;n>=0;n--){const A=4*n,s=t[A+0],o=t[A+1],g=t[A+2],l=t[A+3],I=s+g>>1,h=o+l>>1,B=I+h-o,c=h+s-I,C=(a[o*i+s]+a[l*i+g])/2,E=h*i+I,f=Math.abs(C-a[E]);if(r[E]=Math.max(r[E],f),n<e){const A=(o+c>>1)*i+(s+B>>1),e=(l+c>>1)*i+(g+B>>1);r[E]=Math.max(r[E],r[A],r[e])}}}getMesh(A=0){const{gridSize:e,indices:t}=this.martini,{errors:i}=this;let a=0,r=0;const n=e-1;function s(n,o,g,l,I,h){const B=n+g>>1,c=o+l>>1;Math.abs(n-I)+Math.abs(o-h)>1&&i[c*e+B]>A?(s(I,h,n,o,B,c),s(g,l,I,h,B,c)):(t[o*e+n]=t[o*e+n]||++a,t[l*e+g]=t[l*e+g]||++a,t[h*e+I]=t[h*e+I]||++a,r++)}t.fill(0),s(0,0,n,n,n,0),s(n,n,0,0,0,n);const o=new Uint16Array(2*a),g=new Uint32Array(3*r);let l=0;function I(a,r,n,s,h,B){const c=a+n>>1,C=r+s>>1;if(Math.abs(a-h)+Math.abs(r-B)>1&&i[C*e+c]>A)I(h,B,a,r,c,C),I(n,s,h,B,c,C);else{const A=t[r*e+a]-1,i=t[s*e+n]-1,I=t[B*e+h]-1;o[2*A]=a,o[2*A+1]=r,o[2*i]=n,o[2*i+1]=s,o[2*I]=h,o[2*I+1]=B,g[l++]=A,g[l++]=i,g[l++]=I}}return I(0,0,n,n,n,0),I(n,n,0,0,0,n),{vertices:o,triangles:g}}}function Ke(A,e,t,i){const a=i?function(A,e){A.westIndices.sort(((A,t)=>e[3*A+1]-e[3*t+1])),A.eastIndices.sort(((A,t)=>e[3*t+1]-e[3*A+1])),A.southIndices.sort(((A,t)=>e[3*t]-e[3*A])),A.northIndices.sort(((A,t)=>e[3*A]-e[3*t]));const t=[];for(const e in A){const i=A[e];for(let A=0;A<i.length-1;A++)t.push([i[A],i[A+1]])}return t}(i,A.POSITION.value):function(A){const e=[];for(let t=0;t<A.length;t+=3)e.push([A[t],A[t+1]]),e.push([A[t+1],A[t+2]]),e.push([A[t+2],A[t]]);e.sort(((A,e)=>Math.min(...A)-Math.min(...e)||Math.max(...A)-Math.max(...e)));const t=[];let i=0;for(;i<e.length;)e[i][0]===e[i+1]?.[1]&&e[i][1]===e[i+1]?.[0]?i+=2:(t.push(e[i]),i++);return t}(e),r=new A.POSITION.value.constructor(6*a.length),n=new A.TEXCOORD_0.value.constructor(4*a.length),s=new e.constructor(6*a.length);for(let e=0;e<a.length;e++){Pe({edge:a[e],edgeIndex:e,attributes:A,skirtHeight:t,newPosition:r,newTexcoord0:n,newTriangles:s})}A.POSITION.value=o(A.POSITION.value,r),A.TEXCOORD_0.value=o(A.TEXCOORD_0.value,n);return{attributes:A,triangles:e instanceof Array?e.concat(s):o(e,s)}}function Pe({edge:A,edgeIndex:e,attributes:t,skirtHeight:i,newPosition:a,newTexcoord0:r,newTriangles:n}){const s=t.POSITION.value.length,o=2*e,g=2*e+1;a.set(t.POSITION.value.subarray(3*A[0],3*A[0]+3),3*o),a[3*o+2]=a[3*o+2]-i,a.set(t.POSITION.value.subarray(3*A[1],3*A[1]+3),3*g),a[3*g+2]=a[3*g+2]-i,r.set(t.TEXCOORD_0.value.subarray(2*A[0],2*A[0]+2),2*o),r.set(t.TEXCOORD_0.value.subarray(2*A[1],2*A[1]+2),2*g);const l=2*e*3;n[l]=A[0],n[l+1]=s/3+g,n[l+2]=A[1],n[l+3]=s/3+g,n[l+4]=A[0],n[l+5]=s/3+o}const Ve={type:"image",format:"uint8",useHeatMap:!0,useColorsBasedOnValues:!1,useAutoRange:!1,useDataForOpacity:!1,useSingleColor:!1,useColorClasses:!1,blurredTexture:!0,clipLow:null,clipHigh:null,multiplier:1,color:[255,0,255,255],colorScale:n.brewer.YlOrRd,colorScaleValueRange:[0,255],colorsBasedOnValues:null,colorClasses:null,alpha:100,useChannel:null,useChannelIndex:null,noDataValue:void 0,numOfChannels:void 0,nullColor:[0,0,0,0],unidentifiedColor:[0,0,0,0],clippedColor:[0,0,0,0],terrainColor:[133,133,133,255],terrainSkirtHeight:100,terrainMinValue:0,planarConfig:void 0};class Ze{data;scale=(A,e,t,i,a)=>(A-e)*(a-i)/(t-e)+i;async setUrl(A){const e=await fetch(A),t=await e.arrayBuffer(),i=await qe(t),a=await i.getImage(0);this.data=a}async getMap(A,e,t){const i={...Ve,...e};switch(i.type){case"image":return this.getBitmap(A,i);case"terrain":return this.getHeightmap(A,i,t);default:return null}}async getHeightmap(A,e,t){let i,a,r=[];"string"==typeof A?(await this.setUrl(A),r=await this.data.readRasters(),i=this.data.getWidth(),a=this.data.getHeight()):(r=A.rasters,i=A.width,a=A.height);const n={...e};let o=r[0];n.useChannelIndex??=null==n.useChannel?null:n.useChannel-1,null!=e.useChannelIndex&&r[n.useChannelIndex]&&(o=r[n.useChannelIndex]);const g=new Float32Array((i+1)*(a+1)),l=o.length/(i*a);let I=null===e.useChannelIndex?0:e.useChannelIndex;for(let A=0,t=0;t<a;t++)for(let a=0;a<i;a++,A++){const i=e.noDataValue&&o[I]===e.noDataValue?e.terrainMinValue:o[I]*e.multiplier;g[A+t]=i,I+=l}for(let A=(i+1)*i,e=0;e<i;e++,A++)g[A]=g[A-i-1];for(let A=a,e=0;e<a+1;e++,A+=a+1)g[A]=g[A-1];const{terrainSkirtHeight:h}=e;let B;B=Xe(t,i,g);const{vertices:c}=B;let{triangles:C}=B,E=function(A,e,t,i,a){const r=t+1,n=A.length/2,s=new Float32Array(3*n),o=new Float32Array(2*n),[g,l,I,h]=a||[0,0,t,i],B=(I-g)/t,c=(h-l)/i;for(let a=0;a<n;a++){const n=A[2*a],l=A[2*a+1],I=l*r+n;s[3*a+0]=n*B+g,s[3*a+1]=-l*c+h,s[3*a+2]=e[I],o[2*a+0]=n/t,o[2*a+1]=l/i}return{POSITION:{value:s,size:3},TEXCOORD_0:{value:o,size:2}}}(c,g,i,a,A.bounds);const f=s(E);if(h){const{attributes:A,triangles:e}=Ke(E,C,h);E=A,C=e}return{loaderData:{header:{}},header:{vertexCount:C.length,boundingBox:f},mode:4,indices:{value:Uint32Array.from(C),size:1},attributes:E}}async getBitmap(A,e){const t={...e};let i,a,r,n=[];"string"==typeof A?(await this.setUrl(A),n=await this.data.readRasters(),i=n.length,a=this.data.getWidth(),r=this.data.getHeight()):(n=A.rasters,i=n.length,a=A.width,r=A.height);const s=document.createElement("canvas");s.width=a,s.height=r;const o=s.getContext("2d"),g=o.createImageData(a,r);let l,I,h,B;const c=a*r*4;if(t.unidentifiedColor=this.getColorFromChromaType(t.unidentifiedColor),t.nullColor=this.getColorFromChromaType(t.nullColor),t.clippedColor=this.getColorFromChromaType(t.clippedColor),t.color=this.getColorFromChromaType(t.color),t.useChannelIndex??=null===e.useChannel?null:e.useChannel-1,null==t.useChannelIndex){if(1===i){if(n[0].length/(a*r)==1){const A=n[0];t.useAutoRange&&(t.colorScaleValueRange=this.getMinMax(A,t));this.getColorValue(A,t,c).forEach(((A,e)=>{g.data[e]=A}))}if(n[0].length/(a*r)==3){let A=0;for(let e=0;e<c;e+=4){const i=[n[0][A],n[0][A+1],n[0][A+2]],a=this.hasPixelsNoData(i,t.noDataValue)?t.nullColor:[...i,Math.floor(2.55*t.alpha)];[g.data[e],g.data[e+1],g.data[e+2],g.data[e+3]]=a,A+=3}}n[0].length/(a*r)==4&&n[0].forEach(((A,e)=>{g.data[e]=A}))}if(3===i){let A=0;for(let e=0;e<c;e+=4)l=n[0][A],I=n[1][A],h=n[2][A],B=Math.floor(2.55*t.alpha),g.data[e]=l,g.data[e+1]=I,g.data[e+2]=h,g.data[e+3]=B,A+=1}if(4===i){let A=0;for(let e=0;e<c;e+=4)l=n[0][A],I=n[1][A],h=n[2][A],B=Math.floor(2.55*t.alpha),g.data[e]=l,g.data[e+1]=I,g.data[e+2]=h,g.data[e+3]=B,A+=1}}else if(t.useChannelIndex<t.numOfChannels&&t.useChannelIndex>=0){let A=n[0];n[t.useChannelIndex]&&(A=n[t.useChannelIndex]),t.useAutoRange&&(t.colorScaleValueRange=this.getMinMax(A,t));this.getColorValue(A,t,c,t.numOfChannels).forEach(((A,e)=>{g.data[e]=A}))}else{console.log(`Defined channel(${e.useChannel}) or channel index(${e.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(c,t.nullColor).forEach(((A,e)=>{g.data[e]=A}))}o.putImageData(g,0,0);return s.toDataURL("image/png")}getMinMax(A,e){let t=e.maxValue?e.maxValue:Number.MIN_VALUE,i=e.minValue?e.minValue:Number.MAX_VALUE;for(let a=0;a<A.length;a+=1)void 0!==e.noDataValue&&A[a]===e.noDataValue||(A[a]>t&&(t=A[a]),A[a]<i&&(i=A[a]));return[i,t]}getColorValue(A,e,t,i=1){const a=n.scale(e.colorScale).domain(e.colorScaleValueRange);let r=null===e.useChannelIndex?0:e.useChannelIndex;const s=new Array(t),o=e.colorsBasedOnValues?e.colorsBasedOnValues.map((([A])=>A)):void 0,g=e.colorsBasedOnValues?e.colorsBasedOnValues.map((([,A])=>[...n(A).rgb(),Math.floor(2.55*e.alpha)])):void 0,l=e.useColorClasses?e.colorClasses.map((([A])=>[...n(A).rgb(),Math.floor(2.55*e.alpha)])):void 0,I=e.useColorClasses?e.colorClasses.map((([,A])=>A)):void 0,h=e.useColorClasses?e.colorClasses.map((([,,A],t)=>void 0!==A?A:t===e.colorClasses.length-1?[!0,!0]:[!0,!1])):void 0;for(let n=0;n<t;n+=4){let t=e.nullColor;if(!Number.isNaN(A[r])&&(void 0===e.noDataValue||A[r]!==e.noDataValue))if(null!=e.clipLow&&A[r]<=e.clipLow||null!=e.clipHigh&&A[r]>=e.clipHigh)t=e.clippedColor;else{if(e.useHeatMap&&(t=[...a(A[r]).rgb(),Math.floor(2.55*e.alpha)]),e.useColorsBasedOnValues){const i=o.indexOf(A[r]);t=i>-1?g[i]:e.unidentifiedColor}if(e.useColorClasses){const i=this.findClassIndex(A[r],I,h);t=i>-1?l[i]:e.unidentifiedColor}e.useSingleColor&&(t=e.color),e.useDataForOpacity&&(t[3]=this.scale(A[r],e.colorScaleValueRange[0],e.colorScaleValueRange.slice(-1)[0],0,255))}[s[n],s[n+1],s[n+2],s[n+3]]=t,r+=i}return s}findClassIndex(A,e,t){for(let i=0;i<e.length;i+=1){const[a,r]=e[i],[n,s]=t[i];if((n?A>=a:A>a)&&(s?A<=r:A<r))return i}return-1}getDefaultColor(A,e){const t=new Array(A);for(let i=0;i<A;i+=4)[t[i],t[i+1],t[i+2],t[i+3]]=e;return t}getColorFromChromaType(A){return Array.isArray(A)&&4===A.length?A:[...n(A).rgb(),255]}hasPixelsNoData(A,e){return void 0!==e&&A.every((A=>A===e))}}function Xe(A,e,t){const i=new ze(e+1).createTile(t),{vertices:a,triangles:r}=i.getMesh(A);return{vertices:a,triangles:r}}const We=2*Math.PI*6378137,je=We/2,$e=[-20037508.342789244,20037508.342789244],At={blurredTexture:!0};class et{cog;cogZoomLookup=[0];cogResolutionLookup=[0];cogOrigin=[0,0];zoomRange=[0,0];tileSize;bounds;geo=new Ze;options;constructor(A){this.options={...At,...A}}async initializeCog(A){this.cog=await async function(A,e={},t){return Te.fromSource(Se(A,e),t)}(A);const e=await this.cog.getImage();this.cogOrigin=e.getOrigin(),this.options.noDataValue??=this.getNoDataValue(e),this.options.format??=this.getDataTypeFromTags(e),this.options.numOfChannels=this.getNumberOfChannels(e),this.options.planarConfig=this.getPlanarConfiguration(e),[this.cogZoomLookup,this.cogResolutionLookup]=await this.buildCogZoomResolutionLookup(this.cog),this.tileSize=e.getTileWidth(),this.zoomRange=this.calculateZoomRange(e,await this.cog.getImageCount()),this.bounds=this.calculateBoundsAsLatLon(e)}getZoomRange(){return this.zoomRange}calculateZoomRange(A,e){const t=this.getZoomLevelFromResolution(A.getTileWidth(),A.getResolution()[0]);return[t-(e-1),t]}calculateBoundsAsLatLon(A){const e=A.getBoundingBox(),t=Math.min(e[0],e[2]),i=Math.max(e[0],e[2]),a=Math.min(e[1],e[3]),r=Math.max(e[1],e[3]),n=this.getLatLon([t,a]),s=this.getLatLon([i,r]);return[n[0],n[1],s[0],s[1]]}getZoomLevelFromResolution(A,e){return Math.round(Math.log2(We/(e*A)))}getBoundsAsLatLon(){return this.bounds}getLatLon(A){const e=je+A[0],t=-(je+(A[1]-We)),i=function(A){const[e,t]=A,i=e/512*(2*Je)-Je,a=2*(Math.atan(Math.exp(t/512*(2*Je)-Je))-Oe);return[i*He,a*He]}([e*(512/We),t*(512/We)]);return[i[0],-i[1]]}async buildCogZoomResolutionLookup(A){const e=await A.getImageCount(),t=await A.getImage(0),i=t.getResolution()[0],a=t.getWidth(),r=[],n=[];for(let t=0;t<e;t++){const e=i*(a/(await A.getImage(t)).getWidth()),s=Math.round(Math.log2(156543.03125/e));r[t]=s,n[t]=e}return[r,n]}getImageIndexForZoomLevel(A){const e=this.cogZoomLookup[this.cogZoomLookup.length-1];if(A>this.cogZoomLookup[0])return 0;if(A<e)return this.cogZoomLookup.length-1;const t=this.cogZoomLookup.indexOf(A);return-1===t&&console.log("getImageIndexForZoomLevel: error in retrieving image by zoom index"),t}async getTileFromImage(A,e,t){const i=this.getImageIndexForZoomLevel(t),a=await this.cog.getImage(i),r=a.getTileWidth(),n=a.getTileHeight();if(!r||!n)throw new Error('GeoTIFF Error: The provided image is not tiled. Please use "rio cogeo create --web-optimized" to fix this.');const s=this.cogResolutionLookup[i],o=a.getHeight(),g=a.getWidth(),[l,I]=this.cogOrigin,h=this.tileSize,B=We/h/2**t,c=($e[0]+A*h*B-l)/s,C=(I-($e[1]-e*h*B))/s,E=Math.round(c),f=Math.round(C),Q=E+h,d=f+h,u=Math.max(0,E),w=Math.max(0,f),p=Math.min(g,Q),m=Math.min(o,d),y=p-u,D=m-w;if(y<=0||D<=0)return[this.createEmptyTile()];const k=u-E,b=w-f,_=[u,w,p,m];if(k>0||b>0||y<r||D<n){const A=this.createTileBuffer(this.options.format,r);A.fill(this.options.noDataValue);const e=await a.readRasters({window:_}),t=Array(e.length*e[0].length);t.fill(this.options.noDataValue);for(let i=0;i<e.length;i+=1){for(let t=0;t<D;t+=1){const a=b+t,s=a*h,o=t*e.width;for(let t=0;t<y;t+=1){const g=k+t;a<r&&g<n?A[s+g]=e[i][o+t]:console.log("error in assigning data to tile buffer")}}for(let e=0;e<A.length;e+=1)t[e*this.options.numOfChannels+i]=A[e]}return[t]}return[await a.readRasters({window:_,interleave:!0})]}createEmptyTile(){const A=this.options.numOfChannels||1,e=this.tileSize*this.tileSize*A,t=new Float32Array(e);return void 0!==this.options.noDataValue&&t.fill(this.options.noDataValue),t}async getTile(A,e,t,i,a){const r=await this.getTileFromImage(A,e,t);return this.geo.getMap({rasters:[r[0]],width:this.tileSize,height:this.tileSize,bounds:i},this.options,a)}getDataTypeFromTags(A){const e=A.getFileDirectory(),t=e.SampleFormat,i=e.BitsPerSample,a=t&&"number"==typeof t.length&&t.length>0?t[0]:t;let r;return r=1===a?"UInt":2===a?"Int":3===a?"Float":"Unknown",`${r}${i&&"number"==typeof i.length&&i.length>0?i[0]:i}`}getNoDataValue(A){const e=A.getGDALNoData();if(null==e)return void console.warn("No noData value defined — raster might be rendered incorrectly.");const t=String(e).replace(/\0/g,"").trim();if(""===t)return void console.warn("noData value is an empty string after cleanup.");const i=Number(t);return"nan"===t.toLowerCase()?NaN:Number.isNaN(i)?void console.warn(`Failed to parse numeric noData value: '${t}'`):i}getNumberOfChannels(A){return A.getSamplesPerPixel()}getPlanarConfiguration(A){const e=A.fileDirectory.PlanarConfiguration;if(1!==e&&2!==e)throw new Error("Invalid planar configuration.");return e}createTileBuffer(A,e){const t=e*e;switch(A){case"UInt8":return new Uint8Array(t);case"Int8":return new Int8Array(t);case"UInt16":return new Uint16Array(t);case"Int16":return new Int16Array(t);case"UInt32":return new Uint32Array(t);case"Int32":return new Int32Array(t);case"Float32":return new Float32Array(t);case"Float64":return new Float64Array(t);default:throw new Error(`Unsupported data type: ${A}`)}}}const tt={type:"object",value:null,validate:(A,e)=>e.optional&&null===A||"string"==typeof A||Array.isArray(A)&&A.every((A=>"string"==typeof A)),equal:(A,e)=>{if(A===e)return!0;if(!Array.isArray(A)||!Array.isArray(e))return!1;const t=A.length;if(t!==e.length)return!1;for(let i=0;i<t;i++)if(A[i]!==e[i])return!1;return!0}},it={...i.defaultProps,bounds:{type:"array",value:null,optional:!0,compare:!0},rasterData:tt,clampToTerrain:!1,workerUrl:""};class at extends A{static defaultProps=it;static layerName="CogBitmapLayer";async initializeState(A){super.initializeState(A),this.setState({bitmapCogTiles:new et(this.props.cogBitmapOptions),initialized:!1}),await this.init()}async init(){await this.state.bitmapCogTiles.initializeCog(this.props.rasterData);const A=this.state.bitmapCogTiles.getZoomRange(),[e,t]=A;this.setState({initialized:!0,minZoom:e,maxZoom:t})}updateState({props:A,oldProps:t}){const i=A.rasterData!==t.rasterData;if(i){const{rasterData:e}=A,t=e&&(Array.isArray(e)||e.includes("{x}")&&e.includes("{y}")||this.props.isTiled);this.setState({isTiled:t})}i||(A.bounds,t.bounds);this.state.isTiled,A?.cogBitmapOptions?.useChannel&&A.cogBitmapOptions?.useChannel!==t.cogBitmapOptions?.useChannel&&(this.state.bitmapCogTiles.options.useChannel=A.cogBitmapOptions.useChannel),A.workerUrl&&e.removed("workerUrl","loadOptions.terrain.workerUrl")()}async getTiledBitmapData(A){return await this.state.bitmapCogTiles.getTile(A.index.x,A.index.y,A.index.z)}renderSubLayers(A){const e=this.getSubLayerClass("image",a),{blurredTexture:t}=this.state.bitmapCogTiles.options,{clampToTerrain:i}=this.props,n="object"==typeof i&&null!==i&&"terrainDrawMode"in i,{data:s}=A;if(!s)return null;const{bbox:{west:o,south:g,east:l,north:I}}=A.tile;return new e({...A,tileSize:this.state.bitmapCogTiles.tileSize},{data:null,image:s,_instanced:!1,bounds:[o,g,l,I],textureParameters:{minFilter:t?"linear":"nearest",magFilter:t?"linear":"nearest"},extensions:i?[new r]:[],...n?{terrainDrawMode:i.terrainDrawMode}:{}})}renderLayers(){const{clampToTerrain:A,maxRequests:e,onTileLoad:t,onTileUnload:a,onTileError:r,maxCacheSize:n,maxCacheByteSize:s,refinementStrategy:o,cogBitmapOptions:g}=this.props;if(this.state.isTiled&&this.state.initialized){const{tileSize:l}=this.state.bitmapCogTiles;return new i(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledBitmapData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:[A,g.useChannel]},extent:this.state.bitmapCogTiles.getBoundsAsLatLon(),tileSize:l,minZoom:this.state.minZoom,maxZoom:this.state.maxZoom,maxRequests:e,onTileLoad:t,onTileUnload:a,onTileError:r,maxCacheSize:n,maxCacheByteSize:s,refinementStrategy:o})}return null}}const rt={type:"object",value:null,validate:(A,e)=>e.optional&&null===A||"string"==typeof A||Array.isArray(A)&&A.every((A=>"string"==typeof A)),equal:(A,e)=>{if(A===e)return!0;if(!Array.isArray(A)||!Array.isArray(e))return!1;const t=A.length;if(t!==e.length)return!1;for(let i=0;i<t;i++)if(A[i]!==e[i])return!1;return!0}},nt=[1],st={...i.defaultProps,elevationData:rt,texture:{...rt,optional:!0},meshMaxError:{type:"number",value:4},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 ot extends A{static defaultProps=st;static layerName="CogTerrainLayer";terrainUrl;async initializeState(A){super.initializeState(A),this.setState({terrainCogTiles:new et(this.props.terrainOptions),initialized:!1}),await this.init(this.terrainUrl)}async init(){await this.state.terrainCogTiles.initializeCog(this.props.elevationData);const A=this.state.terrainCogTiles.getZoomRange(),[e,t]=A;this.setState({initialized:!0,minZoom:e,maxZoom:t})}updateState({props:A,oldProps:t}){const i=A.elevationData!==t.elevationData;if(i){const{elevationData:e}=A,t=e&&(Array.isArray(e)||e.includes("{x}")&&e.includes("{y}"))||this.props.isTiled;this.setState({isTiled:t})}i||A.meshMaxError!==t.meshMaxError||A.elevationDecoder!==t.elevationDecoder||(A.bounds,t.bounds);this.state.isTiled,A.workerUrl&&e.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:A,bounds:e,elevationDecoder:t,meshMaxError:i,signal:a}){if(!A)return null;let r=this.getLoadOptions();r={...r,_workerType:"test",terrain:{skirtHeight:this.state.isTiled?2*i:0,...r?.terrain,bounds:e,meshMaxError:i,elevationDecoder:t}};const{fetch:n}=this.props;return n(A,{propName:"elevationData",layer:this,loadOptions:r,signal:a,loaders:[]})}async getTiledTerrainData(A){const{viewport:e}=this.context;let t=[0,0],i=[0,0];if(e.isGeospatial){const a=A.bbox;t=e.projectFlat([a.west,a.south]),i=e.projectFlat([a.east,a.north])}else{const e=A.bbox;t=[e.left,e.bottom],i=[e.right,e.top]}const a=[t[0],t[1],i[0],i[1]],r=await this.state.terrainCogTiles.getTile(A.index.x,A.index.y,A.index.z,a,this.props.meshMaxError);return Promise.all([r,null])}renderSubLayers(A){const e=this.getSubLayerClass("mesh",g),{color:i,wireframe:a,material:r}=this.props,{data:n}=A;if(!n)return null;const[s]=n;return new e({...A,tileSize:256},{data:nt,mesh:s,_instanced:!1,coordinateSystem:t.CARTESIAN,getColor:i,wireframe:a,material:r})}onViewportLoad(A){if(!A)return;const{zRange:e}=this.state,t=A.map((A=>A.content)).filter((A=>A&&A[0])).map((A=>{const e=A[0]?.header?.boundingBox;return e?.map((A=>A[2]))}));if(0===t.length)return;const i=Math.min(...t.map((A=>A[0]))),a=Math.max(...t.map((A=>A[1])));(!e||i<e[0]||a>e[1])&&this.setState({zRange:[Number.isFinite(i)?i:0,Number.isFinite(a)?a:0]})}renderLayers(){const{elevationData:A,meshMaxError:e,elevationDecoder:t,tileSize:a,extent:r,maxRequests:n,onTileLoad:s,onTileUnload:o,onTileError:g,maxCacheSize:l,maxCacheByteSize:I,refinementStrategy:h}=this.props;if(this.state.isTiled&&this.state.initialized)return new i(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:(B=A,Array.isArray(B)?B.join(";"):B||""),meshMaxError:e,elevationDecoder:t}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:a,minZoom:this.state.minZoom,maxZoom:this.state.maxZoom,extent:r,maxRequests:n,onTileLoad:s,onTileUnload:o,onTileError:g,maxCacheSize:l,maxCacheByteSize:I,refinementStrategy:h});var B}}var gt=Object.freeze({__proto__:null,default:class extends Ue{decodeBlock(A){return A}}});function lt(A,e){for(let t=e.length-1;t>=0;t--)A.push(e[t]);return A}function It(A){const e=new Uint16Array(4093),t=new Uint8Array(4093);for(let A=0;A<=257;A++)e[A]=4096,t[A]=A;let i=258,a=9,r=0;function n(){i=258,a=9}function s(A){const e=function(A,e,t){const i=e%8,a=Math.floor(e/8),r=8-i,n=e+t-8*(a+1);let s=8*(a+2)-(e+t);const o=8*(a+2)-e;if(s=Math.max(0,s),a>=A.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),257;let g=A[a]&2**(8-i)-1;g<<=t-r;let l=g;if(a+1<A.length){let e=A[a+1]>>>s;e<<=Math.max(0,t-o),l+=e}if(n>8&&a+2<A.length){const i=8*(a+3)-(e+t);l+=A[a+2]>>>i}return l}(A,r,a);return r+=a,e}function o(A,a){return t[i]=a,e[i]=A,i++,i-1}function g(A){const i=[];for(let a=A;4096!==a;a=e[a])i.push(t[a]);return i}const l=[];n();const I=new Uint8Array(A);let h,B=s(I);for(;257!==B;){if(256===B){for(n(),B=s(I);256===B;)B=s(I);if(257===B)break;if(B>256)throw new Error(`corrupted code at scanline ${B}`);lt(l,g(B)),h=B}else if(B<i){const A=g(B);lt(l,A),o(h,A[A.length-1]),h=B}else{const A=g(h);if(!A)throw new Error(`Bogus entry. Not in dictionary, ${h} / ${i}, position: ${r}`);lt(l,A),l.push(A[A.length-1]),o(h,A[A.length-1]),h=B}i+1>=2**a&&(12===a?h=void 0:a++),B=s(I)}return new Uint8Array(l)}var ht=Object.freeze({__proto__:null,default:class extends Ue{decodeBlock(A){return It(A).buffer}}});const Bt=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]),ct=4017,Ct=799,Et=3406,ft=2276,Qt=1567,dt=3784,ut=5793,wt=2896;function pt(A,e){let t=0;const i=[];let a=16;for(;a>0&&!A[a-1];)--a;i.push({children:[],index:0});let r,n=i[0];for(let s=0;s<a;s++){for(let a=0;a<A[s];a++){for(n=i.pop(),n.children[n.index]=e[t];n.index>0;)n=i.pop();for(n.index++,i.push(n);i.length<=s;)i.push(r={children:[],index:0}),n.children[n.index]=r.children,n=r;t++}s+1<a&&(i.push(r={children:[],index:0}),n.children[n.index]=r.children,n=r)}return i[0].children}function mt(A,e,t,i,a,r,n,s,o){const{mcusPerLine:g,progressive:l}=t,I=e;let h=e,B=0,c=0;function C(){if(c>0)return c--,B>>c&1;if(B=A[h++],255===B){const e=A[h++];if(e)throw new Error(`unexpected marker: ${(B<<8|e).toString(16)}`)}return c=7,B>>>7}function E(A){let e,t=A;for(;null!==(e=C());){if(t=t[e],"number"==typeof t)return t;if("object"!=typeof t)throw new Error("invalid huffman sequence")}return null}function f(A){let e=A,t=0;for(;e>0;){const A=C();if(null===A)return;t=t<<1|A,--e}return t}function Q(A){const e=f(A);return e>=1<<A-1?e:e+(-1<<A)+1}let d=0;let u,w=0;function p(A,e,t,i,a){const r=t%g,n=(t/g|0)*A.v+i,s=r*A.h+a;e(A,A.blocks[n][s])}function m(A,e,t){const i=t/A.blocksPerLine|0,a=t%A.blocksPerLine;e(A,A.blocks[i][a])}const y=i.length;let D,k,b,_,S,x;x=l?0===r?0===s?function(A,e){const t=E(A.huffmanTableDC),i=0===t?0:Q(t)<<o;A.pred+=i,e[0]=A.pred}:function(A,e){e[0]|=C()<<o}:0===s?function(A,e){if(d>0)return void d--;let t=r;const i=n;for(;t<=i;){const i=E(A.huffmanTableAC),a=15&i,r=i>>4;if(0===a){if(r<15){d=f(r)+(1<<r)-1;break}t+=16}else t+=r,e[Bt[t]]=Q(a)*(1<<o),t++}}:function(A,e){let t=r;const i=n;let a=0;for(;t<=i;){const i=Bt[t],r=e[i]<0?-1:1;switch(w){case 0:{const e=E(A.huffmanTableAC),t=15&e;if(a=e>>4,0===t)a<15?(d=f(a)+(1<<a),w=4):(a=16,w=1);else{if(1!==t)throw new Error("invalid ACn encoding");u=Q(t),w=a?2:3}continue}case 1:case 2:e[i]?e[i]+=(C()<<o)*r:(a--,0===a&&(w=2===w?3:0));break;case 3:e[i]?e[i]+=(C()<<o)*r:(e[i]=u<<o,w=0);break;case 4:e[i]&&(e[i]+=(C()<<o)*r)}t++}4===w&&(d--,0===d&&(w=0))}:function(A,e){const t=E(A.huffmanTableDC),i=0===t?0:Q(t);A.pred+=i,e[0]=A.pred;let a=1;for(;a<64;){const t=E(A.huffmanTableAC),i=15&t,r=t>>4;if(0===i){if(r<15)break;a+=16}else a+=r,e[Bt[a]]=Q(i),a++}};let F,G,U=0;G=1===y?i[0].blocksPerLine*i[0].blocksPerColumn:g*t.mcusPerColumn;const R=a||G;for(;U<G;){for(k=0;k<y;k++)i[k].pred=0;if(d=0,1===y)for(D=i[0],S=0;S<R;S++)m(D,x,U),U++;else for(S=0;S<R;S++){for(k=0;k<y;k++){D=i[k];const{h:A,v:e}=D;for(b=0;b<e;b++)for(_=0;_<A;_++)p(D,x,U,b,_)}if(U++,U===G)break}if(c=0,F=A[h]<<8|A[h+1],F<65280)throw new Error("marker was not found");if(!(F>=65488&&F<=65495))break;h+=2}return h-I}function yt(A,e){const t=[],{blocksPerLine:i,blocksPerColumn:a}=e,r=i<<3,n=new Int32Array(64),s=new Uint8Array(64);function o(A,t,i){const a=e.quantizationTable;let r,n,s,o,g,l,I,h,B;const c=i;let C;for(C=0;C<64;C++)c[C]=A[C]*a[C];for(C=0;C<8;++C){const A=8*C;0!==c[1+A]||0!==c[2+A]||0!==c[3+A]||0!==c[4+A]||0!==c[5+A]||0!==c[6+A]||0!==c[7+A]?(r=ut*c[0+A]+128>>8,n=ut*c[4+A]+128>>8,s=c[2+A],o=c[6+A],g=wt*(c[1+A]-c[7+A])+128>>8,h=wt*(c[1+A]+c[7+A])+128>>8,l=c[3+A]<<4,I=c[5+A]<<4,B=r-n+1>>1,r=r+n+1>>1,n=B,B=s*dt+o*Qt+128>>8,s=s*Qt-o*dt+128>>8,o=B,B=g-I+1>>1,g=g+I+1>>1,I=B,B=h+l+1>>1,l=h-l+1>>1,h=B,B=r-o+1>>1,r=r+o+1>>1,o=B,B=n-s+1>>1,n=n+s+1>>1,s=B,B=g*ft+h*Et+2048>>12,g=g*Et-h*ft+2048>>12,h=B,B=l*Ct+I*ct+2048>>12,l=l*ct-I*Ct+2048>>12,I=B,c[0+A]=r+h,c[7+A]=r-h,c[1+A]=n+I,c[6+A]=n-I,c[2+A]=s+l,c[5+A]=s-l,c[3+A]=o+g,c[4+A]=o-g):(B=ut*c[0+A]+512>>10,c[0+A]=B,c[1+A]=B,c[2+A]=B,c[3+A]=B,c[4+A]=B,c[5+A]=B,c[6+A]=B,c[7+A]=B)}for(C=0;C<8;++C){const A=C;0!==c[8+A]||0!==c[16+A]||0!==c[24+A]||0!==c[32+A]||0!==c[40+A]||0!==c[48+A]||0!==c[56+A]?(r=ut*c[0+A]+2048>>12,n=ut*c[32+A]+2048>>12,s=c[16+A],o=c[48+A],g=wt*(c[8+A]-c[56+A])+2048>>12,h=wt*(c[8+A]+c[56+A])+2048>>12,l=c[24+A],I=c[40+A],B=r-n+1>>1,r=r+n+1>>1,n=B,B=s*dt+o*Qt+2048>>12,s=s*Qt-o*dt+2048>>12,o=B,B=g-I+1>>1,g=g+I+1>>1,I=B,B=h+l+1>>1,l=h-l+1>>1,h=B,B=r-o+1>>1,r=r+o+1>>1,o=B,B=n-s+1>>1,n=n+s+1>>1,s=B,B=g*ft+h*Et+2048>>12,g=g*Et-h*ft+2048>>12,h=B,B=l*Ct+I*ct+2048>>12,l=l*ct-I*Ct+2048>>12,I=B,c[0+A]=r+h,c[56+A]=r-h,c[8+A]=n+I,c[48+A]=n-I,c[16+A]=s+l,c[40+A]=s-l,c[24+A]=o+g,c[32+A]=o-g):(B=ut*i[C+0]+8192>>14,c[0+A]=B,c[8+A]=B,c[16+A]=B,c[24+A]=B,c[32+A]=B,c[40+A]=B,c[48+A]=B,c[56+A]=B)}for(C=0;C<64;++C){const A=128+(c[C]+8>>4);t[C]=A<0?0:A>255?255:A}}for(let A=0;A<a;A++){const a=A<<3;for(let A=0;A<8;A++)t.push(new Uint8Array(r));for(let r=0;r<i;r++){o(e.blocks[A][r],s,n);let i=0;const g=r<<3;for(let A=0;A<8;A++){const e=t[a+A];for(let A=0;A<8;A++)e[g+A]=s[i++]}}}return t}class Dt{constructor(){this.jfif=null,this.adobe=null,this.quantizationTables=[],this.huffmanTablesAC=[],this.huffmanTablesDC=[],this.resetFrames()}resetFrames(){this.frames=[]}parse(A){let e=0;function t(){const t=A[e]<<8|A[e+1];return e+=2,t}function i(){const i=t(),a=A.subarray(e,e+i-2);return e+=a.length,a}function a(A){let e,t,i=0,a=0;for(t in A.components)A.components.hasOwnProperty(t)&&(e=A.components[t],i<e.h&&(i=e.h),a<e.v&&(a=e.v));const r=Math.ceil(A.samplesPerLine/8/i),n=Math.ceil(A.scanLines/8/a);for(t in A.components)if(A.components.hasOwnProperty(t)){e=A.components[t];const s=Math.ceil(Math.ceil(A.samplesPerLine/8)*e.h/i),o=Math.ceil(Math.ceil(A.scanLines/8)*e.v/a),g=r*e.h,l=n*e.v,I=[];for(let A=0;A<l;A++){const A=[];for(let e=0;e<g;e++)A.push(new Int32Array(64));I.push(A)}e.blocksPerLine=s,e.blocksPerColumn=o,e.blocks=I}A.maxH=i,A.maxV=a,A.mcusPerLine=r,A.mcusPerColumn=n}let r=t();if(65496!==r)throw new Error("SOI not found");for(r=t();65497!==r;){switch(r){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=i();65504===r&&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===r&&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 i=t()+e-2;for(;e<i;){const i=A[e++],a=new Int32Array(64);if(i>>4){if(i>>4!=1)throw new Error("DQT: invalid table spec");for(let A=0;A<64;A++){a[Bt[A]]=t()}}else for(let t=0;t<64;t++){a[Bt[t]]=A[e++]}this.quantizationTables[15&i]=a}break}case 65472:case 65473:case 65474:{t();const i={extended:65473===r,progressive:65474===r,precision:A[e++],scanLines:t(),samplesPerLine:t(),components:{},componentsOrder:[]},n=A[e++];let s;for(let t=0;t<n;t++){s=A[e];const t=A[e+1]>>4,a=15&A[e+1],r=A[e+2];i.componentsOrder.push(s),i.components[s]={h:t,v:a,quantizationIdx:r},e+=3}a(i),this.frames.push(i);break}case 65476:{const i=t();for(let t=2;t<i;){const i=A[e++],a=new Uint8Array(16);let r=0;for(let t=0;t<16;t++,e++)a[t]=A[e],r+=a[t];const n=new Uint8Array(r);for(let t=0;t<r;t++,e++)n[t]=A[e];t+=17+r,i>>4?this.huffmanTablesAC[15&i]=pt(a,n):this.huffmanTablesDC[15&i]=pt(a,n)}break}case 65501:t(),this.resetInterval=t();break;case 65498:{t();const i=A[e++],a=[],r=this.frames[0];for(let t=0;t<i;t++){const t=r.components[A[e++]],i=A[e++];t.huffmanTableDC=this.huffmanTablesDC[i>>4],t.huffmanTableAC=this.huffmanTablesAC[15&i],a.push(t)}const n=A[e++],s=A[e++],o=A[e++],g=mt(A,e,r,a,this.resetInterval,n,s,o>>4,15&o);e+=g;break}case 65535:255!==A[e]&&e--;break;default:if(255===A[e-3]&&A[e-2]>=192&&A[e-2]<=254){e-=3;break}throw new Error(`unknown JPEG marker ${r.toString(16)}`)}r=t()}}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 e=this.frames[A].components;for(const A of Object.keys(e))e[A].quantizationTable=this.quantizationTables[e[A].quantizationIdx],delete e[A].quantizationIdx}const e=A[0],{components:t,componentsOrder:i}=e,a=[],r=e.samplesPerLine,n=e.scanLines;for(let A=0;A<i.length;A++){const r=t[i[A]];a.push({lines:yt(0,r),scaleX:r.h/e.maxH,scaleY:r.v/e.maxV})}const s=new Uint8Array(r*n*a.length);let o=0;for(let A=0;A<n;++A)for(let e=0;e<r;++e)for(let t=0;t<a.length;++t){const i=a[t];s[o]=i.lines[0|A*i.scaleY][0|e*i.scaleX],++o}return s}}var kt=Object.freeze({__proto__:null,default:class extends Ue{constructor(A){super(),this.reader=new Dt,A.JPEGTables&&this.reader.parse(A.JPEGTables)}decodeBlock(A){return this.reader.resetFrames(),this.reader.parse(new Uint8Array(A)),this.reader.getResult().buffer}}});
2
+ /*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function bt(A){let e=A.length;for(;--e>=0;)A[e]=0}const _t=256,St=286,xt=30,Ft=15,Gt=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Ut=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Rt=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Mt=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Lt=new Array(576);bt(Lt);const Nt=new Array(60);bt(Nt);const vt=new Array(512);bt(vt);const Tt=new Array(256);bt(Tt);const qt=new Array(29);bt(qt);const Jt=new Array(xt);function Ot(A,e,t,i,a){this.static_tree=A,this.extra_bits=e,this.extra_base=t,this.elems=i,this.max_length=a,this.has_stree=A&&A.length}let Ht,zt,Yt;function Kt(A,e){this.dyn_tree=A,this.max_code=0,this.stat_desc=e}bt(Jt);const Pt=A=>A<256?vt[A]:vt[256+(A>>>7)],Vt=(A,e)=>{A.pending_buf[A.pending++]=255&e,A.pending_buf[A.pending++]=e>>>8&255},Zt=(A,e,t)=>{A.bi_valid>16-t?(A.bi_buf|=e<<A.bi_valid&65535,Vt(A,A.bi_buf),A.bi_buf=e>>16-A.bi_valid,A.bi_valid+=t-16):(A.bi_buf|=e<<A.bi_valid&65535,A.bi_valid+=t)},Xt=(A,e,t)=>{Zt(A,t[2*e],t[2*e+1])},Wt=(A,e)=>{let t=0;do{t|=1&A,A>>>=1,t<<=1}while(--e>0);return t>>>1},jt=(A,e,t)=>{const i=new Array(16);let a,r,n=0;for(a=1;a<=Ft;a++)n=n+t[a-1]<<1,i[a]=n;for(r=0;r<=e;r++){let e=A[2*r+1];0!==e&&(A[2*r]=Wt(i[e]++,e))}},$t=A=>{let e;for(e=0;e<St;e++)A.dyn_ltree[2*e]=0;for(e=0;e<xt;e++)A.dyn_dtree[2*e]=0;for(e=0;e<19;e++)A.bl_tree[2*e]=0;A.dyn_ltree[512]=1,A.opt_len=A.static_len=0,A.sym_next=A.matches=0},Ai=A=>{A.bi_valid>8?Vt(A,A.bi_buf):A.bi_valid>0&&(A.pending_buf[A.pending++]=A.bi_buf),A.bi_buf=0,A.bi_valid=0},ei=(A,e,t,i)=>{const a=2*e,r=2*t;return A[a]<A[r]||A[a]===A[r]&&i[e]<=i[t]},ti=(A,e,t)=>{const i=A.heap[t];let a=t<<1;for(;a<=A.heap_len&&(a<A.heap_len&&ei(e,A.heap[a+1],A.heap[a],A.depth)&&a++,!ei(e,i,A.heap[a],A.depth));)A.heap[t]=A.heap[a],t=a,a<<=1;A.heap[t]=i},ii=(A,e,t)=>{let i,a,r,n,s=0;if(0!==A.sym_next)do{i=255&A.pending_buf[A.sym_buf+s++],i+=(255&A.pending_buf[A.sym_buf+s++])<<8,a=A.pending_buf[A.sym_buf+s++],0===i?Xt(A,a,e):(r=Tt[a],Xt(A,r+_t+1,e),n=Gt[r],0!==n&&(a-=qt[r],Zt(A,a,n)),i--,r=Pt(i),Xt(A,r,t),n=Ut[r],0!==n&&(i-=Jt[r],Zt(A,i,n)))}while(s<A.sym_next);Xt(A,256,e)},ai=(A,e)=>{const t=e.dyn_tree,i=e.stat_desc.static_tree,a=e.stat_desc.has_stree,r=e.stat_desc.elems;let n,s,o,g=-1;for(A.heap_len=0,A.heap_max=573,n=0;n<r;n++)0!==t[2*n]?(A.heap[++A.heap_len]=g=n,A.depth[n]=0):t[2*n+1]=0;for(;A.heap_len<2;)o=A.heap[++A.heap_len]=g<2?++g:0,t[2*o]=1,A.depth[o]=0,A.opt_len--,a&&(A.static_len-=i[2*o+1]);for(e.max_code=g,n=A.heap_len>>1;n>=1;n--)ti(A,t,n);o=r;do{n=A.heap[1],A.heap[1]=A.heap[A.heap_len--],ti(A,t,1),s=A.heap[1],A.heap[--A.heap_max]=n,A.heap[--A.heap_max]=s,t[2*o]=t[2*n]+t[2*s],A.depth[o]=(A.depth[n]>=A.depth[s]?A.depth[n]:A.depth[s])+1,t[2*n+1]=t[2*s+1]=o,A.heap[1]=o++,ti(A,t,1)}while(A.heap_len>=2);A.heap[--A.heap_max]=A.heap[1],((A,e)=>{const t=e.dyn_tree,i=e.max_code,a=e.stat_desc.static_tree,r=e.stat_desc.has_stree,n=e.stat_desc.extra_bits,s=e.stat_desc.extra_base,o=e.stat_desc.max_length;let g,l,I,h,B,c,C=0;for(h=0;h<=Ft;h++)A.bl_count[h]=0;for(t[2*A.heap[A.heap_max]+1]=0,g=A.heap_max+1;g<573;g++)l=A.heap[g],h=t[2*t[2*l+1]+1]+1,h>o&&(h=o,C++),t[2*l+1]=h,l>i||(A.bl_count[h]++,B=0,l>=s&&(B=n[l-s]),c=t[2*l],A.opt_len+=c*(h+B),r&&(A.static_len+=c*(a[2*l+1]+B)));if(0!==C){do{for(h=o-1;0===A.bl_count[h];)h--;A.bl_count[h]--,A.bl_count[h+1]+=2,A.bl_count[o]--,C-=2}while(C>0);for(h=o;0!==h;h--)for(l=A.bl_count[h];0!==l;)I=A.heap[--g],I>i||(t[2*I+1]!==h&&(A.opt_len+=(h-t[2*I+1])*t[2*I],t[2*I+1]=h),l--)}})(A,e),jt(t,g,A.bl_count)},ri=(A,e,t)=>{let i,a,r=-1,n=e[1],s=0,o=7,g=4;for(0===n&&(o=138,g=3),e[2*(t+1)+1]=65535,i=0;i<=t;i++)a=n,n=e[2*(i+1)+1],++s<o&&a===n||(s<g?A.bl_tree[2*a]+=s:0!==a?(a!==r&&A.bl_tree[2*a]++,A.bl_tree[32]++):s<=10?A.bl_tree[34]++:A.bl_tree[36]++,s=0,r=a,0===n?(o=138,g=3):a===n?(o=6,g=3):(o=7,g=4))},ni=(A,e,t)=>{let i,a,r=-1,n=e[1],s=0,o=7,g=4;for(0===n&&(o=138,g=3),i=0;i<=t;i++)if(a=n,n=e[2*(i+1)+1],!(++s<o&&a===n)){if(s<g)do{Xt(A,a,A.bl_tree)}while(0!=--s);else 0!==a?(a!==r&&(Xt(A,a,A.bl_tree),s--),Xt(A,16,A.bl_tree),Zt(A,s-3,2)):s<=10?(Xt(A,17,A.bl_tree),Zt(A,s-3,3)):(Xt(A,18,A.bl_tree),Zt(A,s-11,7));s=0,r=a,0===n?(o=138,g=3):a===n?(o=6,g=3):(o=7,g=4)}};let si=!1;const oi=(A,e,t,i)=>{Zt(A,0+(i?1:0),3),Ai(A),Vt(A,t),Vt(A,~t),t&&A.pending_buf.set(A.window.subarray(e,e+t),A.pending),A.pending+=t};var gi=(A,e,t,i)=>{let a,r,n=0;A.level>0?(2===A.strm.data_type&&(A.strm.data_type=(A=>{let e,t=4093624447;for(e=0;e<=31;e++,t>>>=1)if(1&t&&0!==A.dyn_ltree[2*e])return 0;if(0!==A.dyn_ltree[18]||0!==A.dyn_ltree[20]||0!==A.dyn_ltree[26])return 1;for(e=32;e<_t;e++)if(0!==A.dyn_ltree[2*e])return 1;return 0})(A)),ai(A,A.l_desc),ai(A,A.d_desc),n=(A=>{let e;for(ri(A,A.dyn_ltree,A.l_desc.max_code),ri(A,A.dyn_dtree,A.d_desc.max_code),ai(A,A.bl_desc),e=18;e>=3&&0===A.bl_tree[2*Mt[e]+1];e--);return A.opt_len+=3*(e+1)+5+5+4,e})(A),a=A.opt_len+3+7>>>3,r=A.static_len+3+7>>>3,r<=a&&(a=r)):a=r=t+5,t+4<=a&&-1!==e?oi(A,e,t,i):4===A.strategy||r===a?(Zt(A,2+(i?1:0),3),ii(A,Lt,Nt)):(Zt(A,4+(i?1:0),3),((A,e,t,i)=>{let a;for(Zt(A,e-257,5),Zt(A,t-1,5),Zt(A,i-4,4),a=0;a<i;a++)Zt(A,A.bl_tree[2*Mt[a]+1],3);ni(A,A.dyn_ltree,e-1),ni(A,A.dyn_dtree,t-1)})(A,A.l_desc.max_code+1,A.d_desc.max_code+1,n+1),ii(A,A.dyn_ltree,A.dyn_dtree)),$t(A),i&&Ai(A)},li={_tr_init:A=>{si||((()=>{let A,e,t,i,a;const r=new Array(16);for(t=0,i=0;i<28;i++)for(qt[i]=t,A=0;A<1<<Gt[i];A++)Tt[t++]=i;for(Tt[t-1]=i,a=0,i=0;i<16;i++)for(Jt[i]=a,A=0;A<1<<Ut[i];A++)vt[a++]=i;for(a>>=7;i<xt;i++)for(Jt[i]=a<<7,A=0;A<1<<Ut[i]-7;A++)vt[256+a++]=i;for(e=0;e<=Ft;e++)r[e]=0;for(A=0;A<=143;)Lt[2*A+1]=8,A++,r[8]++;for(;A<=255;)Lt[2*A+1]=9,A++,r[9]++;for(;A<=279;)Lt[2*A+1]=7,A++,r[7]++;for(;A<=287;)Lt[2*A+1]=8,A++,r[8]++;for(jt(Lt,287,r),A=0;A<xt;A++)Nt[2*A+1]=5,Nt[2*A]=Wt(A,5);Ht=new Ot(Lt,Gt,257,St,Ft),zt=new Ot(Nt,Ut,0,xt,Ft),Yt=new Ot(new Array(0),Rt,0,19,7)})(),si=!0),A.l_desc=new Kt(A.dyn_ltree,Ht),A.d_desc=new Kt(A.dyn_dtree,zt),A.bl_desc=new Kt(A.bl_tree,Yt),A.bi_buf=0,A.bi_valid=0,$t(A)},_tr_stored_block:oi,_tr_flush_block:gi,_tr_tally:(A,e,t)=>(A.pending_buf[A.sym_buf+A.sym_next++]=e,A.pending_buf[A.sym_buf+A.sym_next++]=e>>8,A.pending_buf[A.sym_buf+A.sym_next++]=t,0===e?A.dyn_ltree[2*t]++:(A.matches++,e--,A.dyn_ltree[2*(Tt[t]+_t+1)]++,A.dyn_dtree[2*Pt(e)]++),A.sym_next===A.sym_end),_tr_align:A=>{Zt(A,2,3),Xt(A,256,Lt),(A=>{16===A.bi_valid?(Vt(A,A.bi_buf),A.bi_buf=0,A.bi_valid=0):A.bi_valid>=8&&(A.pending_buf[A.pending++]=255&A.bi_buf,A.bi_buf>>=8,A.bi_valid-=8)})(A)}};var Ii=(A,e,t,i)=>{let a=65535&A,r=A>>>16&65535,n=0;for(;0!==t;){n=t>2e3?2e3:t,t-=n;do{a=a+e[i++]|0,r=r+a|0}while(--n);a%=65521,r%=65521}return a|r<<16};const hi=new Uint32Array((()=>{let A,e=[];for(var t=0;t<256;t++){A=t;for(var i=0;i<8;i++)A=1&A?3988292384^A>>>1:A>>>1;e[t]=A}return e})());var Bi=(A,e,t,i)=>{const a=hi,r=i+t;A^=-1;for(let t=i;t<r;t++)A=A>>>8^a[255&(A^e[t])];return~A},ci={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"},Ci={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Ei,_tr_stored_block:fi,_tr_flush_block:Qi,_tr_tally:di,_tr_align:ui}=li,{Z_NO_FLUSH:wi,Z_PARTIAL_FLUSH:pi,Z_FULL_FLUSH:mi,Z_FINISH:yi,Z_BLOCK:Di,Z_OK:ki,Z_STREAM_END:bi,Z_STREAM_ERROR:_i,Z_DATA_ERROR:Si,Z_BUF_ERROR:xi,Z_DEFAULT_COMPRESSION:Fi,Z_FILTERED:Gi,Z_HUFFMAN_ONLY:Ui,Z_RLE:Ri,Z_FIXED:Mi,Z_DEFAULT_STRATEGY:Li,Z_UNKNOWN:Ni,Z_DEFLATED:vi}=Ci,Ti=258,qi=262,Ji=42,Oi=113,Hi=666,zi=(A,e)=>(A.msg=ci[e],e),Yi=A=>2*A-(A>4?9:0),Ki=A=>{let e=A.length;for(;--e>=0;)A[e]=0},Pi=A=>{let e,t,i,a=A.w_size;e=A.hash_size,i=e;do{t=A.head[--i],A.head[i]=t>=a?t-a:0}while(--e);e=a,i=e;do{t=A.prev[--i],A.prev[i]=t>=a?t-a:0}while(--e)};let Vi=(A,e,t)=>(e<<A.hash_shift^t)&A.hash_mask;const Zi=A=>{const e=A.state;let t=e.pending;t>A.avail_out&&(t=A.avail_out),0!==t&&(A.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+t),A.next_out),A.next_out+=t,e.pending_out+=t,A.total_out+=t,A.avail_out-=t,e.pending-=t,0===e.pending&&(e.pending_out=0))},Xi=(A,e)=>{Qi(A,A.block_start>=0?A.block_start:-1,A.strstart-A.block_start,e),A.block_start=A.strstart,Zi(A.strm)},Wi=(A,e)=>{A.pending_buf[A.pending++]=e},ji=(A,e)=>{A.pending_buf[A.pending++]=e>>>8&255,A.pending_buf[A.pending++]=255&e},$i=(A,e,t,i)=>{let a=A.avail_in;return a>i&&(a=i),0===a?0:(A.avail_in-=a,e.set(A.input.subarray(A.next_in,A.next_in+a),t),1===A.state.wrap?A.adler=Ii(A.adler,e,a,t):2===A.state.wrap&&(A.adler=Bi(A.adler,e,a,t)),A.next_in+=a,A.total_in+=a,a)},Aa=(A,e)=>{let t,i,a=A.max_chain_length,r=A.strstart,n=A.prev_length,s=A.nice_match;const o=A.strstart>A.w_size-qi?A.strstart-(A.w_size-qi):0,g=A.window,l=A.w_mask,I=A.prev,h=A.strstart+Ti;let B=g[r+n-1],c=g[r+n];A.prev_length>=A.good_match&&(a>>=2),s>A.lookahead&&(s=A.lookahead);do{if(t=e,g[t+n]===c&&g[t+n-1]===B&&g[t]===g[r]&&g[++t]===g[r+1]){r+=2,t++;do{}while(g[++r]===g[++t]&&g[++r]===g[++t]&&g[++r]===g[++t]&&g[++r]===g[++t]&&g[++r]===g[++t]&&g[++r]===g[++t]&&g[++r]===g[++t]&&g[++r]===g[++t]&&r<h);if(i=Ti-(h-r),r=h-Ti,i>n){if(A.match_start=e,n=i,i>=s)break;B=g[r+n-1],c=g[r+n]}}}while((e=I[e&l])>o&&0!=--a);return n<=A.lookahead?n:A.lookahead},ea=A=>{const e=A.w_size;let t,i,a;do{if(i=A.window_size-A.lookahead-A.strstart,A.strstart>=e+(e-qi)&&(A.window.set(A.window.subarray(e,e+e-i),0),A.match_start-=e,A.strstart-=e,A.block_start-=e,A.insert>A.strstart&&(A.insert=A.strstart),Pi(A),i+=e),0===A.strm.avail_in)break;if(t=$i(A.strm,A.window,A.strstart+A.lookahead,i),A.lookahead+=t,A.lookahead+A.insert>=3)for(a=A.strstart-A.insert,A.ins_h=A.window[a],A.ins_h=Vi(A,A.ins_h,A.window[a+1]);A.insert&&(A.ins_h=Vi(A,A.ins_h,A.window[a+3-1]),A.prev[a&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=a,a++,A.insert--,!(A.lookahead+A.insert<3)););}while(A.lookahead<qi&&0!==A.strm.avail_in)},ta=(A,e)=>{let t,i,a,r=A.pending_buf_size-5>A.w_size?A.w_size:A.pending_buf_size-5,n=0,s=A.strm.avail_in;do{if(t=65535,a=A.bi_valid+42>>3,A.strm.avail_out<a)break;if(a=A.strm.avail_out-a,i=A.strstart-A.block_start,t>i+A.strm.avail_in&&(t=i+A.strm.avail_in),t>a&&(t=a),t<r&&(0===t&&e!==yi||e===wi||t!==i+A.strm.avail_in))break;n=e===yi&&t===i+A.strm.avail_in?1:0,fi(A,0,0,n),A.pending_buf[A.pending-4]=t,A.pending_buf[A.pending-3]=t>>8,A.pending_buf[A.pending-2]=~t,A.pending_buf[A.pending-1]=~t>>8,Zi(A.strm),i&&(i>t&&(i=t),A.strm.output.set(A.window.subarray(A.block_start,A.block_start+i),A.strm.next_out),A.strm.next_out+=i,A.strm.avail_out-=i,A.strm.total_out+=i,A.block_start+=i,t-=i),t&&($i(A.strm,A.strm.output,A.strm.next_out,t),A.strm.next_out+=t,A.strm.avail_out-=t,A.strm.total_out+=t)}while(0===n);return s-=A.strm.avail_in,s&&(s>=A.w_size?(A.matches=2,A.window.set(A.strm.input.subarray(A.strm.next_in-A.w_size,A.strm.next_in),0),A.strstart=A.w_size,A.insert=A.strstart):(A.window_size-A.strstart<=s&&(A.strstart-=A.w_size,A.window.set(A.window.subarray(A.w_size,A.w_size+A.strstart),0),A.matches<2&&A.matches++,A.insert>A.strstart&&(A.insert=A.strstart)),A.window.set(A.strm.input.subarray(A.strm.next_in-s,A.strm.next_in),A.strstart),A.strstart+=s,A.insert+=s>A.w_size-A.insert?A.w_size-A.insert:s),A.block_start=A.strstart),A.high_water<A.strstart&&(A.high_water=A.strstart),n?4:e!==wi&&e!==yi&&0===A.strm.avail_in&&A.strstart===A.block_start?2:(a=A.window_size-A.strstart,A.strm.avail_in>a&&A.block_start>=A.w_size&&(A.block_start-=A.w_size,A.strstart-=A.w_size,A.window.set(A.window.subarray(A.w_size,A.w_size+A.strstart),0),A.matches<2&&A.matches++,a+=A.w_size,A.insert>A.strstart&&(A.insert=A.strstart)),a>A.strm.avail_in&&(a=A.strm.avail_in),a&&($i(A.strm,A.window,A.strstart,a),A.strstart+=a,A.insert+=a>A.w_size-A.insert?A.w_size-A.insert:a),A.high_water<A.strstart&&(A.high_water=A.strstart),a=A.bi_valid+42>>3,a=A.pending_buf_size-a>65535?65535:A.pending_buf_size-a,r=a>A.w_size?A.w_size:a,i=A.strstart-A.block_start,(i>=r||(i||e===yi)&&e!==wi&&0===A.strm.avail_in&&i<=a)&&(t=i>a?a:i,n=e===yi&&0===A.strm.avail_in&&t===i?1:0,fi(A,A.block_start,t,n),A.block_start+=t,Zi(A.strm)),n?3:1)},ia=(A,e)=>{let t,i;for(;;){if(A.lookahead<qi){if(ea(A),A.lookahead<qi&&e===wi)return 1;if(0===A.lookahead)break}if(t=0,A.lookahead>=3&&(A.ins_h=Vi(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart),0!==t&&A.strstart-t<=A.w_size-qi&&(A.match_length=Aa(A,t)),A.match_length>=3)if(i=di(A,A.strstart-A.match_start,A.match_length-3),A.lookahead-=A.match_length,A.match_length<=A.max_lazy_match&&A.lookahead>=3){A.match_length--;do{A.strstart++,A.ins_h=Vi(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart}while(0!=--A.match_length);A.strstart++}else A.strstart+=A.match_length,A.match_length=0,A.ins_h=A.window[A.strstart],A.ins_h=Vi(A,A.ins_h,A.window[A.strstart+1]);else i=di(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++;if(i&&(Xi(A,!1),0===A.strm.avail_out))return 1}return A.insert=A.strstart<2?A.strstart:2,e===yi?(Xi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Xi(A,!1),0===A.strm.avail_out)?1:2},aa=(A,e)=>{let t,i,a;for(;;){if(A.lookahead<qi){if(ea(A),A.lookahead<qi&&e===wi)return 1;if(0===A.lookahead)break}if(t=0,A.lookahead>=3&&(A.ins_h=Vi(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart),A.prev_length=A.match_length,A.prev_match=A.match_start,A.match_length=2,0!==t&&A.prev_length<A.max_lazy_match&&A.strstart-t<=A.w_size-qi&&(A.match_length=Aa(A,t),A.match_length<=5&&(A.strategy===Gi||3===A.match_length&&A.strstart-A.match_start>4096)&&(A.match_length=2)),A.prev_length>=3&&A.match_length<=A.prev_length){a=A.strstart+A.lookahead-3,i=di(A,A.strstart-1-A.prev_match,A.prev_length-3),A.lookahead-=A.prev_length-1,A.prev_length-=2;do{++A.strstart<=a&&(A.ins_h=Vi(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart)}while(0!=--A.prev_length);if(A.match_available=0,A.match_length=2,A.strstart++,i&&(Xi(A,!1),0===A.strm.avail_out))return 1}else if(A.match_available){if(i=di(A,0,A.window[A.strstart-1]),i&&Xi(A,!1),A.strstart++,A.lookahead--,0===A.strm.avail_out)return 1}else A.match_available=1,A.strstart++,A.lookahead--}return A.match_available&&(i=di(A,0,A.window[A.strstart-1]),A.match_available=0),A.insert=A.strstart<2?A.strstart:2,e===yi?(Xi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Xi(A,!1),0===A.strm.avail_out)?1:2};function ra(A,e,t,i,a){this.good_length=A,this.max_lazy=e,this.nice_length=t,this.max_chain=i,this.func=a}const na=[new ra(0,0,0,0,ta),new ra(4,4,8,4,ia),new ra(4,5,16,8,ia),new ra(4,6,32,32,ia),new ra(4,4,16,16,aa),new ra(8,16,32,32,aa),new ra(8,16,128,128,aa),new ra(8,32,128,256,aa),new ra(32,128,258,1024,aa),new ra(32,258,258,4096,aa)];function sa(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=vi,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),Ki(this.dyn_ltree),Ki(this.dyn_dtree),Ki(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),Ki(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Ki(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const oa=A=>{if(!A)return 1;const e=A.state;return!e||e.strm!==A||e.status!==Ji&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&e.status!==Oi&&e.status!==Hi?1:0},ga=A=>{if(oa(A))return zi(A,_i);A.total_in=A.total_out=0,A.data_type=Ni;const e=A.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?Ji:Oi,A.adler=2===e.wrap?0:1,e.last_flush=-2,Ei(e),ki},la=A=>{const e=ga(A);var t;return e===ki&&((t=A.state).window_size=2*t.w_size,Ki(t.head),t.max_lazy_match=na[t.level].max_lazy,t.good_match=na[t.level].good_length,t.nice_match=na[t.level].nice_length,t.max_chain_length=na[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=2,t.match_available=0,t.ins_h=0),e},Ia=(A,e,t,i,a,r)=>{if(!A)return _i;let n=1;if(e===Fi&&(e=6),i<0?(n=0,i=-i):i>15&&(n=2,i-=16),a<1||a>9||t!==vi||i<8||i>15||e<0||e>9||r<0||r>Mi||8===i&&1!==n)return zi(A,_i);8===i&&(i=9);const s=new sa;return A.state=s,s.strm=A,s.status=Ji,s.wrap=n,s.gzhead=null,s.w_bits=i,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=a+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+3-1)/3),s.window=new Uint8Array(2*s.w_size),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<a+6,s.pending_buf_size=4*s.lit_bufsize,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=3*(s.lit_bufsize-1),s.level=e,s.strategy=r,s.method=t,la(A)};var ha={deflateInit:(A,e)=>Ia(A,e,vi,15,8,Li),deflateInit2:Ia,deflateReset:la,deflateResetKeep:ga,deflateSetHeader:(A,e)=>oa(A)||2!==A.state.wrap?_i:(A.state.gzhead=e,ki),deflate:(A,e)=>{if(oa(A)||e>Di||e<0)return A?zi(A,_i):_i;const t=A.state;if(!A.output||0!==A.avail_in&&!A.input||t.status===Hi&&e!==yi)return zi(A,0===A.avail_out?xi:_i);const i=t.last_flush;if(t.last_flush=e,0!==t.pending){if(Zi(A),0===A.avail_out)return t.last_flush=-1,ki}else if(0===A.avail_in&&Yi(e)<=Yi(i)&&e!==yi)return zi(A,xi);if(t.status===Hi&&0!==A.avail_in)return zi(A,xi);if(t.status===Ji&&0===t.wrap&&(t.status=Oi),t.status===Ji){let e=vi+(t.w_bits-8<<4)<<8,i=-1;if(i=t.strategy>=Ui||t.level<2?0:t.level<6?1:6===t.level?2:3,e|=i<<6,0!==t.strstart&&(e|=32),e+=31-e%31,ji(t,e),0!==t.strstart&&(ji(t,A.adler>>>16),ji(t,65535&A.adler)),A.adler=1,t.status=Oi,Zi(A),0!==t.pending)return t.last_flush=-1,ki}if(57===t.status)if(A.adler=0,Wi(t,31),Wi(t,139),Wi(t,8),t.gzhead)Wi(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),Wi(t,255&t.gzhead.time),Wi(t,t.gzhead.time>>8&255),Wi(t,t.gzhead.time>>16&255),Wi(t,t.gzhead.time>>24&255),Wi(t,9===t.level?2:t.strategy>=Ui||t.level<2?4:0),Wi(t,255&t.gzhead.os),t.gzhead.extra&&t.gzhead.extra.length&&(Wi(t,255&t.gzhead.extra.length),Wi(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(A.adler=Bi(A.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=69;else if(Wi(t,0),Wi(t,0),Wi(t,0),Wi(t,0),Wi(t,0),Wi(t,9===t.level?2:t.strategy>=Ui||t.level<2?4:0),Wi(t,3),t.status=Oi,Zi(A),0!==t.pending)return t.last_flush=-1,ki;if(69===t.status){if(t.gzhead.extra){let e=t.pending,i=(65535&t.gzhead.extra.length)-t.gzindex;for(;t.pending+i>t.pending_buf_size;){let a=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+a),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>e&&(A.adler=Bi(A.adler,t.pending_buf,t.pending-e,e)),t.gzindex+=a,Zi(A),0!==t.pending)return t.last_flush=-1,ki;e=0,i-=a}let a=new Uint8Array(t.gzhead.extra);t.pending_buf.set(a.subarray(t.gzindex,t.gzindex+i),t.pending),t.pending+=i,t.gzhead.hcrc&&t.pending>e&&(A.adler=Bi(A.adler,t.pending_buf,t.pending-e,e)),t.gzindex=0}t.status=73}if(73===t.status){if(t.gzhead.name){let e,i=t.pending;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>i&&(A.adler=Bi(A.adler,t.pending_buf,t.pending-i,i)),Zi(A),0!==t.pending)return t.last_flush=-1,ki;i=0}e=t.gzindex<t.gzhead.name.length?255&t.gzhead.name.charCodeAt(t.gzindex++):0,Wi(t,e)}while(0!==e);t.gzhead.hcrc&&t.pending>i&&(A.adler=Bi(A.adler,t.pending_buf,t.pending-i,i)),t.gzindex=0}t.status=91}if(91===t.status){if(t.gzhead.comment){let e,i=t.pending;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>i&&(A.adler=Bi(A.adler,t.pending_buf,t.pending-i,i)),Zi(A),0!==t.pending)return t.last_flush=-1,ki;i=0}e=t.gzindex<t.gzhead.comment.length?255&t.gzhead.comment.charCodeAt(t.gzindex++):0,Wi(t,e)}while(0!==e);t.gzhead.hcrc&&t.pending>i&&(A.adler=Bi(A.adler,t.pending_buf,t.pending-i,i))}t.status=103}if(103===t.status){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(Zi(A),0!==t.pending))return t.last_flush=-1,ki;Wi(t,255&A.adler),Wi(t,A.adler>>8&255),A.adler=0}if(t.status=Oi,Zi(A),0!==t.pending)return t.last_flush=-1,ki}if(0!==A.avail_in||0!==t.lookahead||e!==wi&&t.status!==Hi){let i=0===t.level?ta(t,e):t.strategy===Ui?((A,e)=>{let t;for(;;){if(0===A.lookahead&&(ea(A),0===A.lookahead)){if(e===wi)return 1;break}if(A.match_length=0,t=di(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++,t&&(Xi(A,!1),0===A.strm.avail_out))return 1}return A.insert=0,e===yi?(Xi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Xi(A,!1),0===A.strm.avail_out)?1:2})(t,e):t.strategy===Ri?((A,e)=>{let t,i,a,r;const n=A.window;for(;;){if(A.lookahead<=Ti){if(ea(A),A.lookahead<=Ti&&e===wi)return 1;if(0===A.lookahead)break}if(A.match_length=0,A.lookahead>=3&&A.strstart>0&&(a=A.strstart-1,i=n[a],i===n[++a]&&i===n[++a]&&i===n[++a])){r=A.strstart+Ti;do{}while(i===n[++a]&&i===n[++a]&&i===n[++a]&&i===n[++a]&&i===n[++a]&&i===n[++a]&&i===n[++a]&&i===n[++a]&&a<r);A.match_length=Ti-(r-a),A.match_length>A.lookahead&&(A.match_length=A.lookahead)}if(A.match_length>=3?(t=di(A,1,A.match_length-3),A.lookahead-=A.match_length,A.strstart+=A.match_length,A.match_length=0):(t=di(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++),t&&(Xi(A,!1),0===A.strm.avail_out))return 1}return A.insert=0,e===yi?(Xi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Xi(A,!1),0===A.strm.avail_out)?1:2})(t,e):na[t.level].func(t,e);if(3!==i&&4!==i||(t.status=Hi),1===i||3===i)return 0===A.avail_out&&(t.last_flush=-1),ki;if(2===i&&(e===pi?ui(t):e!==Di&&(fi(t,0,0,!1),e===mi&&(Ki(t.head),0===t.lookahead&&(t.strstart=0,t.block_start=0,t.insert=0))),Zi(A),0===A.avail_out))return t.last_flush=-1,ki}return e!==yi?ki:t.wrap<=0?bi:(2===t.wrap?(Wi(t,255&A.adler),Wi(t,A.adler>>8&255),Wi(t,A.adler>>16&255),Wi(t,A.adler>>24&255),Wi(t,255&A.total_in),Wi(t,A.total_in>>8&255),Wi(t,A.total_in>>16&255),Wi(t,A.total_in>>24&255)):(ji(t,A.adler>>>16),ji(t,65535&A.adler)),Zi(A),t.wrap>0&&(t.wrap=-t.wrap),0!==t.pending?ki:bi)},deflateEnd:A=>{if(oa(A))return _i;const e=A.state.status;return A.state=null,e===Oi?zi(A,Si):ki},deflateSetDictionary:(A,e)=>{let t=e.length;if(oa(A))return _i;const i=A.state,a=i.wrap;if(2===a||1===a&&i.status!==Ji||i.lookahead)return _i;if(1===a&&(A.adler=Ii(A.adler,e,t,0)),i.wrap=0,t>=i.w_size){0===a&&(Ki(i.head),i.strstart=0,i.block_start=0,i.insert=0);let A=new Uint8Array(i.w_size);A.set(e.subarray(t-i.w_size,t),0),e=A,t=i.w_size}const r=A.avail_in,n=A.next_in,s=A.input;for(A.avail_in=t,A.next_in=0,A.input=e,ea(i);i.lookahead>=3;){let A=i.strstart,e=i.lookahead-2;do{i.ins_h=Vi(i,i.ins_h,i.window[A+3-1]),i.prev[A&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=A,A++}while(--e);i.strstart=A,i.lookahead=2,ea(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,A.next_in=n,A.input=s,A.avail_in=r,i.wrap=a,ki},deflateInfo:"pako deflate (from Nodeca project)"};const Ba=(A,e)=>Object.prototype.hasOwnProperty.call(A,e);var ca=function(A){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const t=e.shift();if(t){if("object"!=typeof t)throw new TypeError(t+"must be non-object");for(const e in t)Ba(t,e)&&(A[e]=t[e])}}return A},Ca=A=>{let e=0;for(let t=0,i=A.length;t<i;t++)e+=A[t].length;const t=new Uint8Array(e);for(let e=0,i=0,a=A.length;e<a;e++){let a=A[e];t.set(a,i),i+=a.length}return t};let Ea=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(A){Ea=!1}const fa=new Uint8Array(256);for(let A=0;A<256;A++)fa[A]=A>=252?6:A>=248?5:A>=240?4:A>=224?3:A>=192?2:1;fa[254]=fa[254]=1;var Qa=A=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(A);let e,t,i,a,r,n=A.length,s=0;for(a=0;a<n;a++)t=A.charCodeAt(a),55296==(64512&t)&&a+1<n&&(i=A.charCodeAt(a+1),56320==(64512&i)&&(t=65536+(t-55296<<10)+(i-56320),a++)),s+=t<128?1:t<2048?2:t<65536?3:4;for(e=new Uint8Array(s),r=0,a=0;r<s;a++)t=A.charCodeAt(a),55296==(64512&t)&&a+1<n&&(i=A.charCodeAt(a+1),56320==(64512&i)&&(t=65536+(t-55296<<10)+(i-56320),a++)),t<128?e[r++]=t:t<2048?(e[r++]=192|t>>>6,e[r++]=128|63&t):t<65536?(e[r++]=224|t>>>12,e[r++]=128|t>>>6&63,e[r++]=128|63&t):(e[r++]=240|t>>>18,e[r++]=128|t>>>12&63,e[r++]=128|t>>>6&63,e[r++]=128|63&t);return e},da=(A,e)=>{const t=e||A.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(A.subarray(0,e));let i,a;const r=new Array(2*t);for(a=0,i=0;i<t;){let e=A[i++];if(e<128){r[a++]=e;continue}let n=fa[e];if(n>4)r[a++]=65533,i+=n-1;else{for(e&=2===n?31:3===n?15:7;n>1&&i<t;)e=e<<6|63&A[i++],n--;n>1?r[a++]=65533:e<65536?r[a++]=e:(e-=65536,r[a++]=55296|e>>10&1023,r[a++]=56320|1023&e)}}return((A,e)=>{if(e<65534&&A.subarray&&Ea)return String.fromCharCode.apply(null,A.length===e?A:A.subarray(0,e));let t="";for(let i=0;i<e;i++)t+=String.fromCharCode(A[i]);return t})(r,a)},ua=(A,e)=>{(e=e||A.length)>A.length&&(e=A.length);let t=e-1;for(;t>=0&&128==(192&A[t]);)t--;return t<0||0===t?e:t+fa[A[t]]>e?t:e};var wa=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 pa=Object.prototype.toString,{Z_NO_FLUSH:ma,Z_SYNC_FLUSH:ya,Z_FULL_FLUSH:Da,Z_FINISH:ka,Z_OK:ba,Z_STREAM_END:_a,Z_DEFAULT_COMPRESSION:Sa,Z_DEFAULT_STRATEGY:xa,Z_DEFLATED:Fa}=Ci;function Ga(A){this.options=ca({level:Sa,method:Fa,chunkSize:16384,windowBits:15,memLevel:8,strategy:xa},A||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new wa,this.strm.avail_out=0;let t=ha.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==ba)throw new Error(ci[t]);if(e.header&&ha.deflateSetHeader(this.strm,e.header),e.dictionary){let A;if(A="string"==typeof e.dictionary?Qa(e.dictionary):"[object ArrayBuffer]"===pa.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,t=ha.deflateSetDictionary(this.strm,A),t!==ba)throw new Error(ci[t]);this._dict_set=!0}}Ga.prototype.push=function(A,e){const t=this.strm,i=this.options.chunkSize;let a,r;if(this.ended)return!1;for(r=e===~~e?e:!0===e?ka:ma,"string"==typeof A?t.input=Qa(A):"[object ArrayBuffer]"===pa.call(A)?t.input=new Uint8Array(A):t.input=A,t.next_in=0,t.avail_in=t.input.length;;)if(0===t.avail_out&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),(r===ya||r===Da)&&t.avail_out<=6)this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;else{if(a=ha.deflate(t,r),a===_a)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),a=ha.deflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===ba;if(0!==t.avail_out){if(r>0&&t.next_out>0)this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;else if(0===t.avail_in)break}else this.onData(t.output)}return!0},Ga.prototype.onData=function(A){this.chunks.push(A)},Ga.prototype.onEnd=function(A){A===ba&&(this.result=Ca(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};const Ua=16209;var Ra=function(A,e){let t,i,a,r,n,s,o,g,l,I,h,B,c,C,E,f,Q,d,u,w,p,m,y,D;const k=A.state;t=A.next_in,y=A.input,i=t+(A.avail_in-5),a=A.next_out,D=A.output,r=a-(e-A.avail_out),n=a+(A.avail_out-257),s=k.dmax,o=k.wsize,g=k.whave,l=k.wnext,I=k.window,h=k.hold,B=k.bits,c=k.lencode,C=k.distcode,E=(1<<k.lenbits)-1,f=(1<<k.distbits)-1;A:do{B<15&&(h+=y[t++]<<B,B+=8,h+=y[t++]<<B,B+=8),Q=c[h&E];e:for(;;){if(d=Q>>>24,h>>>=d,B-=d,d=Q>>>16&255,0===d)D[a++]=65535&Q;else{if(!(16&d)){if(64&d){if(32&d){k.mode=16191;break A}A.msg="invalid literal/length code",k.mode=Ua;break A}Q=c[(65535&Q)+(h&(1<<d)-1)];continue e}for(u=65535&Q,d&=15,d&&(B<d&&(h+=y[t++]<<B,B+=8),u+=h&(1<<d)-1,h>>>=d,B-=d),B<15&&(h+=y[t++]<<B,B+=8,h+=y[t++]<<B,B+=8),Q=C[h&f];;){if(d=Q>>>24,h>>>=d,B-=d,d=Q>>>16&255,16&d){if(w=65535&Q,d&=15,B<d&&(h+=y[t++]<<B,B+=8,B<d&&(h+=y[t++]<<B,B+=8)),w+=h&(1<<d)-1,w>s){A.msg="invalid distance too far back",k.mode=Ua;break A}if(h>>>=d,B-=d,d=a-r,w>d){if(d=w-d,d>g&&k.sane){A.msg="invalid distance too far back",k.mode=Ua;break A}if(p=0,m=I,0===l){if(p+=o-d,d<u){u-=d;do{D[a++]=I[p++]}while(--d);p=a-w,m=D}}else if(l<d){if(p+=o+l-d,d-=l,d<u){u-=d;do{D[a++]=I[p++]}while(--d);if(p=0,l<u){d=l,u-=d;do{D[a++]=I[p++]}while(--d);p=a-w,m=D}}}else if(p+=l-d,d<u){u-=d;do{D[a++]=I[p++]}while(--d);p=a-w,m=D}for(;u>2;)D[a++]=m[p++],D[a++]=m[p++],D[a++]=m[p++],u-=3;u&&(D[a++]=m[p++],u>1&&(D[a++]=m[p++]))}else{p=a-w;do{D[a++]=D[p++],D[a++]=D[p++],D[a++]=D[p++],u-=3}while(u>2);u&&(D[a++]=D[p++],u>1&&(D[a++]=D[p++]))}break}if(64&d){A.msg="invalid distance code",k.mode=Ua;break A}Q=C[(65535&Q)+(h&(1<<d)-1)]}}break}}while(t<i&&a<n);u=B>>3,t-=u,B-=u<<3,h&=(1<<B)-1,A.next_in=t,A.next_out=a,A.avail_in=t<i?i-t+5:5-(t-i),A.avail_out=a<n?n-a+257:257-(a-n),k.hold=h,k.bits=B};const Ma=15,La=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]),Na=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]),va=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]),Ta=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 qa=(A,e,t,i,a,r,n,s)=>{const o=s.bits;let g,l,I,h,B,c,C=0,E=0,f=0,Q=0,d=0,u=0,w=0,p=0,m=0,y=0,D=null;const k=new Uint16Array(16),b=new Uint16Array(16);let _,S,x,F=null;for(C=0;C<=Ma;C++)k[C]=0;for(E=0;E<i;E++)k[e[t+E]]++;for(d=o,Q=Ma;Q>=1&&0===k[Q];Q--);if(d>Q&&(d=Q),0===Q)return a[r++]=20971520,a[r++]=20971520,s.bits=1,0;for(f=1;f<Q&&0===k[f];f++);for(d<f&&(d=f),p=1,C=1;C<=Ma;C++)if(p<<=1,p-=k[C],p<0)return-1;if(p>0&&(0===A||1!==Q))return-1;for(b[1]=0,C=1;C<Ma;C++)b[C+1]=b[C]+k[C];for(E=0;E<i;E++)0!==e[t+E]&&(n[b[e[t+E]]++]=E);if(0===A?(D=F=n,c=20):1===A?(D=La,F=Na,c=257):(D=va,F=Ta,c=0),y=0,E=0,C=f,B=r,u=d,w=0,I=-1,m=1<<d,h=m-1,1===A&&m>852||2===A&&m>592)return 1;for(;;){_=C-w,n[E]+1<c?(S=0,x=n[E]):n[E]>=c?(S=F[n[E]-c],x=D[n[E]-c]):(S=96,x=0),g=1<<C-w,l=1<<u,f=l;do{l-=g,a[B+(y>>w)+l]=_<<24|S<<16|x}while(0!==l);for(g=1<<C-1;y&g;)g>>=1;if(0!==g?(y&=g-1,y+=g):y=0,E++,0==--k[C]){if(C===Q)break;C=e[t+n[E]]}if(C>d&&(y&h)!==I){for(0===w&&(w=d),B+=f,u=C-w,p=1<<u;u+w<Q&&(p-=k[u+w],!(p<=0));)u++,p<<=1;if(m+=1<<u,1===A&&m>852||2===A&&m>592)return 1;I=y&h,a[I]=d<<24|u<<16|B-r}}return 0!==y&&(a[B+y]=C-w<<24|64<<16),s.bits=d,0};const{Z_FINISH:Ja,Z_BLOCK:Oa,Z_TREES:Ha,Z_OK:za,Z_STREAM_END:Ya,Z_NEED_DICT:Ka,Z_STREAM_ERROR:Pa,Z_DATA_ERROR:Va,Z_MEM_ERROR:Za,Z_BUF_ERROR:Xa,Z_DEFLATED:Wa}=Ci,ja=16180,$a=16190,Ar=16191,er=16192,tr=16194,ir=16199,ar=16200,rr=16206,nr=16209,sr=A=>(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24);function or(){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 gr=A=>{if(!A)return 1;const e=A.state;return!e||e.strm!==A||e.mode<ja||e.mode>16211?1:0},lr=A=>{if(gr(A))return Pa;const e=A.state;return A.total_in=A.total_out=e.total=0,A.msg="",e.wrap&&(A.adler=1&e.wrap),e.mode=ja,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,za},Ir=A=>{if(gr(A))return Pa;const e=A.state;return e.wsize=0,e.whave=0,e.wnext=0,lr(A)},hr=(A,e)=>{let t;if(gr(A))return Pa;const i=A.state;return e<0?(t=0,e=-e):(t=5+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?Pa:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,Ir(A))},Br=(A,e)=>{if(!A)return Pa;const t=new or;A.state=t,t.strm=A,t.window=null,t.mode=ja;const i=hr(A,e);return i!==za&&(A.state=null),i};let cr,Cr,Er=!0;const fr=A=>{if(Er){cr=new Int32Array(512),Cr=new Int32Array(32);let e=0;for(;e<144;)A.lens[e++]=8;for(;e<256;)A.lens[e++]=9;for(;e<280;)A.lens[e++]=7;for(;e<288;)A.lens[e++]=8;for(qa(1,A.lens,0,288,cr,0,A.work,{bits:9}),e=0;e<32;)A.lens[e++]=5;qa(2,A.lens,0,32,Cr,0,A.work,{bits:5}),Er=!1}A.lencode=cr,A.lenbits=9,A.distcode=Cr,A.distbits=5},Qr=(A,e,t,i)=>{let a;const r=A.state;return null===r.window&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new Uint8Array(r.wsize)),i>=r.wsize?(r.window.set(e.subarray(t-r.wsize,t),0),r.wnext=0,r.whave=r.wsize):(a=r.wsize-r.wnext,a>i&&(a=i),r.window.set(e.subarray(t-i,t-i+a),r.wnext),(i-=a)?(r.window.set(e.subarray(t-i,t),0),r.wnext=i,r.whave=r.wsize):(r.wnext+=a,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=a))),0};var dr={inflateReset:Ir,inflateReset2:hr,inflateResetKeep:lr,inflateInit:A=>Br(A,15),inflateInit2:Br,inflate:(A,e)=>{let t,i,a,r,n,s,o,g,l,I,h,B,c,C,E,f,Q,d,u,w,p,m,y=0;const D=new Uint8Array(4);let k,b;const _=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(gr(A)||!A.output||!A.input&&0!==A.avail_in)return Pa;t=A.state,t.mode===Ar&&(t.mode=er),n=A.next_out,a=A.output,o=A.avail_out,r=A.next_in,i=A.input,s=A.avail_in,g=t.hold,l=t.bits,I=s,h=o,m=za;A:for(;;)switch(t.mode){case ja:if(0===t.wrap){t.mode=er;break}for(;l<16;){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}if(2&t.wrap&&35615===g){0===t.wbits&&(t.wbits=15),t.check=0,D[0]=255&g,D[1]=g>>>8&255,t.check=Bi(t.check,D,2,0),g=0,l=0,t.mode=16181;break}if(t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&g)<<8)+(g>>8))%31){A.msg="incorrect header check",t.mode=nr;break}if((15&g)!==Wa){A.msg="unknown compression method",t.mode=nr;break}if(g>>>=4,l-=4,p=8+(15&g),0===t.wbits&&(t.wbits=p),p>15||p>t.wbits){A.msg="invalid window size",t.mode=nr;break}t.dmax=1<<t.wbits,t.flags=0,A.adler=t.check=1,t.mode=512&g?16189:Ar,g=0,l=0;break;case 16181:for(;l<16;){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}if(t.flags=g,(255&t.flags)!==Wa){A.msg="unknown compression method",t.mode=nr;break}if(57344&t.flags){A.msg="unknown header flags set",t.mode=nr;break}t.head&&(t.head.text=g>>8&1),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,t.check=Bi(t.check,D,2,0)),g=0,l=0,t.mode=16182;case 16182:for(;l<32;){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}t.head&&(t.head.time=g),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,D[2]=g>>>16&255,D[3]=g>>>24&255,t.check=Bi(t.check,D,4,0)),g=0,l=0,t.mode=16183;case 16183:for(;l<16;){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}t.head&&(t.head.xflags=255&g,t.head.os=g>>8),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,t.check=Bi(t.check,D,2,0)),g=0,l=0,t.mode=16184;case 16184:if(1024&t.flags){for(;l<16;){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}t.length=g,t.head&&(t.head.extra_len=g),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,t.check=Bi(t.check,D,2,0)),g=0,l=0}else t.head&&(t.head.extra=null);t.mode=16185;case 16185:if(1024&t.flags&&(B=t.length,B>s&&(B=s),B&&(t.head&&(p=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(r,r+B),p)),512&t.flags&&4&t.wrap&&(t.check=Bi(t.check,i,B,r)),s-=B,r+=B,t.length-=B),t.length))break A;t.length=0,t.mode=16186;case 16186:if(2048&t.flags){if(0===s)break A;B=0;do{p=i[r+B++],t.head&&p&&t.length<65536&&(t.head.name+=String.fromCharCode(p))}while(p&&B<s);if(512&t.flags&&4&t.wrap&&(t.check=Bi(t.check,i,B,r)),s-=B,r+=B,p)break A}else t.head&&(t.head.name=null);t.length=0,t.mode=16187;case 16187:if(4096&t.flags){if(0===s)break A;B=0;do{p=i[r+B++],t.head&&p&&t.length<65536&&(t.head.comment+=String.fromCharCode(p))}while(p&&B<s);if(512&t.flags&&4&t.wrap&&(t.check=Bi(t.check,i,B,r)),s-=B,r+=B,p)break A}else t.head&&(t.head.comment=null);t.mode=16188;case 16188:if(512&t.flags){for(;l<16;){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}if(4&t.wrap&&g!==(65535&t.check)){A.msg="header crc mismatch",t.mode=nr;break}g=0,l=0}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=!0),A.adler=t.check=0,t.mode=Ar;break;case 16189:for(;l<32;){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}A.adler=t.check=sr(g),g=0,l=0,t.mode=$a;case $a:if(0===t.havedict)return A.next_out=n,A.avail_out=o,A.next_in=r,A.avail_in=s,t.hold=g,t.bits=l,Ka;A.adler=t.check=1,t.mode=Ar;case Ar:if(e===Oa||e===Ha)break A;case er:if(t.last){g>>>=7&l,l-=7&l,t.mode=rr;break}for(;l<3;){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}switch(t.last=1&g,g>>>=1,l-=1,3&g){case 0:t.mode=16193;break;case 1:if(fr(t),t.mode=ir,e===Ha){g>>>=2,l-=2;break A}break;case 2:t.mode=16196;break;case 3:A.msg="invalid block type",t.mode=nr}g>>>=2,l-=2;break;case 16193:for(g>>>=7&l,l-=7&l;l<32;){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}if((65535&g)!=(g>>>16^65535)){A.msg="invalid stored block lengths",t.mode=nr;break}if(t.length=65535&g,g=0,l=0,t.mode=tr,e===Ha)break A;case tr:t.mode=16195;case 16195:if(B=t.length,B){if(B>s&&(B=s),B>o&&(B=o),0===B)break A;a.set(i.subarray(r,r+B),n),s-=B,r+=B,o-=B,n+=B,t.length-=B;break}t.mode=Ar;break;case 16196:for(;l<14;){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}if(t.nlen=257+(31&g),g>>>=5,l-=5,t.ndist=1+(31&g),g>>>=5,l-=5,t.ncode=4+(15&g),g>>>=4,l-=4,t.nlen>286||t.ndist>30){A.msg="too many length or distance symbols",t.mode=nr;break}t.have=0,t.mode=16197;case 16197:for(;t.have<t.ncode;){for(;l<3;){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}t.lens[_[t.have++]]=7&g,g>>>=3,l-=3}for(;t.have<19;)t.lens[_[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,k={bits:t.lenbits},m=qa(0,t.lens,0,19,t.lencode,0,t.work,k),t.lenbits=k.bits,m){A.msg="invalid code lengths set",t.mode=nr;break}t.have=0,t.mode=16198;case 16198:for(;t.have<t.nlen+t.ndist;){for(;y=t.lencode[g&(1<<t.lenbits)-1],E=y>>>24,f=y>>>16&255,Q=65535&y,!(E<=l);){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}if(Q<16)g>>>=E,l-=E,t.lens[t.have++]=Q;else{if(16===Q){for(b=E+2;l<b;){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}if(g>>>=E,l-=E,0===t.have){A.msg="invalid bit length repeat",t.mode=nr;break}p=t.lens[t.have-1],B=3+(3&g),g>>>=2,l-=2}else if(17===Q){for(b=E+3;l<b;){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}g>>>=E,l-=E,p=0,B=3+(7&g),g>>>=3,l-=3}else{for(b=E+7;l<b;){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}g>>>=E,l-=E,p=0,B=11+(127&g),g>>>=7,l-=7}if(t.have+B>t.nlen+t.ndist){A.msg="invalid bit length repeat",t.mode=nr;break}for(;B--;)t.lens[t.have++]=p}}if(t.mode===nr)break;if(0===t.lens[256]){A.msg="invalid code -- missing end-of-block",t.mode=nr;break}if(t.lenbits=9,k={bits:t.lenbits},m=qa(1,t.lens,0,t.nlen,t.lencode,0,t.work,k),t.lenbits=k.bits,m){A.msg="invalid literal/lengths set",t.mode=nr;break}if(t.distbits=6,t.distcode=t.distdyn,k={bits:t.distbits},m=qa(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,k),t.distbits=k.bits,m){A.msg="invalid distances set",t.mode=nr;break}if(t.mode=ir,e===Ha)break A;case ir:t.mode=ar;case ar:if(s>=6&&o>=258){A.next_out=n,A.avail_out=o,A.next_in=r,A.avail_in=s,t.hold=g,t.bits=l,Ra(A,h),n=A.next_out,a=A.output,o=A.avail_out,r=A.next_in,i=A.input,s=A.avail_in,g=t.hold,l=t.bits,t.mode===Ar&&(t.back=-1);break}for(t.back=0;y=t.lencode[g&(1<<t.lenbits)-1],E=y>>>24,f=y>>>16&255,Q=65535&y,!(E<=l);){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}if(f&&!(240&f)){for(d=E,u=f,w=Q;y=t.lencode[w+((g&(1<<d+u)-1)>>d)],E=y>>>24,f=y>>>16&255,Q=65535&y,!(d+E<=l);){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}g>>>=d,l-=d,t.back+=d}if(g>>>=E,l-=E,t.back+=E,t.length=Q,0===f){t.mode=16205;break}if(32&f){t.back=-1,t.mode=Ar;break}if(64&f){A.msg="invalid literal/length code",t.mode=nr;break}t.extra=15&f,t.mode=16201;case 16201:if(t.extra){for(b=t.extra;l<b;){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}t.length+=g&(1<<t.extra)-1,g>>>=t.extra,l-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=16202;case 16202:for(;y=t.distcode[g&(1<<t.distbits)-1],E=y>>>24,f=y>>>16&255,Q=65535&y,!(E<=l);){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}if(!(240&f)){for(d=E,u=f,w=Q;y=t.distcode[w+((g&(1<<d+u)-1)>>d)],E=y>>>24,f=y>>>16&255,Q=65535&y,!(d+E<=l);){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}g>>>=d,l-=d,t.back+=d}if(g>>>=E,l-=E,t.back+=E,64&f){A.msg="invalid distance code",t.mode=nr;break}t.offset=Q,t.extra=15&f,t.mode=16203;case 16203:if(t.extra){for(b=t.extra;l<b;){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}t.offset+=g&(1<<t.extra)-1,g>>>=t.extra,l-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){A.msg="invalid distance too far back",t.mode=nr;break}t.mode=16204;case 16204:if(0===o)break A;if(B=h-o,t.offset>B){if(B=t.offset-B,B>t.whave&&t.sane){A.msg="invalid distance too far back",t.mode=nr;break}B>t.wnext?(B-=t.wnext,c=t.wsize-B):c=t.wnext-B,B>t.length&&(B=t.length),C=t.window}else C=a,c=n-t.offset,B=t.length;B>o&&(B=o),o-=B,t.length-=B;do{a[n++]=C[c++]}while(--B);0===t.length&&(t.mode=ar);break;case 16205:if(0===o)break A;a[n++]=t.length,o--,t.mode=ar;break;case rr:if(t.wrap){for(;l<32;){if(0===s)break A;s--,g|=i[r++]<<l,l+=8}if(h-=o,A.total_out+=h,t.total+=h,4&t.wrap&&h&&(A.adler=t.check=t.flags?Bi(t.check,a,h,n-h):Ii(t.check,a,h,n-h)),h=o,4&t.wrap&&(t.flags?g:sr(g))!==t.check){A.msg="incorrect data check",t.mode=nr;break}g=0,l=0}t.mode=16207;case 16207:if(t.wrap&&t.flags){for(;l<32;){if(0===s)break A;s--,g+=i[r++]<<l,l+=8}if(4&t.wrap&&g!==(4294967295&t.total)){A.msg="incorrect length check",t.mode=nr;break}g=0,l=0}t.mode=16208;case 16208:m=Ya;break A;case nr:m=Va;break A;case 16210:return Za;default:return Pa}return A.next_out=n,A.avail_out=o,A.next_in=r,A.avail_in=s,t.hold=g,t.bits=l,(t.wsize||h!==A.avail_out&&t.mode<nr&&(t.mode<rr||e!==Ja))&&Qr(A,A.output,A.next_out,h-A.avail_out),I-=A.avail_in,h-=A.avail_out,A.total_in+=I,A.total_out+=h,t.total+=h,4&t.wrap&&h&&(A.adler=t.check=t.flags?Bi(t.check,a,h,A.next_out-h):Ii(t.check,a,h,A.next_out-h)),A.data_type=t.bits+(t.last?64:0)+(t.mode===Ar?128:0)+(t.mode===ir||t.mode===tr?256:0),(0===I&&0===h||e===Ja)&&m===za&&(m=Xa),m},inflateEnd:A=>{if(gr(A))return Pa;let e=A.state;return e.window&&(e.window=null),A.state=null,za},inflateGetHeader:(A,e)=>{if(gr(A))return Pa;const t=A.state;return 2&t.wrap?(t.head=e,e.done=!1,za):Pa},inflateSetDictionary:(A,e)=>{const t=e.length;let i,a,r;return gr(A)?Pa:(i=A.state,0!==i.wrap&&i.mode!==$a?Pa:i.mode===$a&&(a=1,a=Ii(a,e,t,0),a!==i.check)?Va:(r=Qr(A,e,t,t),r?(i.mode=16210,Za):(i.havedict=1,za)))},inflateInfo:"pako inflate (from Nodeca project)"};var ur=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 wr=Object.prototype.toString,{Z_NO_FLUSH:pr,Z_FINISH:mr,Z_OK:yr,Z_STREAM_END:Dr,Z_NEED_DICT:kr,Z_STREAM_ERROR:br,Z_DATA_ERROR:_r,Z_MEM_ERROR:Sr}=Ci;function xr(A){this.options=ca({chunkSize:65536,windowBits:15,to:""},A||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||A&&A.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(15&e.windowBits||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new wa,this.strm.avail_out=0;let t=dr.inflateInit2(this.strm,e.windowBits);if(t!==yr)throw new Error(ci[t]);if(this.header=new ur,dr.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Qa(e.dictionary):"[object ArrayBuffer]"===wr.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=dr.inflateSetDictionary(this.strm,e.dictionary),t!==yr)))throw new Error(ci[t])}function Fr(A,e){const t=new xr(e);if(t.push(A),t.err)throw t.msg||ci[t.err];return t.result}xr.prototype.push=function(A,e){const t=this.strm,i=this.options.chunkSize,a=this.options.dictionary;let r,n,s;if(this.ended)return!1;for(n=e===~~e?e:!0===e?mr:pr,"[object ArrayBuffer]"===wr.call(A)?t.input=new Uint8Array(A):t.input=A,t.next_in=0,t.avail_in=t.input.length;;){for(0===t.avail_out&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),r=dr.inflate(t,n),r===kr&&a&&(r=dr.inflateSetDictionary(t,a),r===yr?r=dr.inflate(t,n):r===_r&&(r=kr));t.avail_in>0&&r===Dr&&t.state.wrap>0&&0!==A[t.next_in];)dr.inflateReset(t),r=dr.inflate(t,n);switch(r){case br:case _r:case kr:case Sr:return this.onEnd(r),this.ended=!0,!1}if(s=t.avail_out,t.next_out&&(0===t.avail_out||r===Dr))if("string"===this.options.to){let A=ua(t.output,t.next_out),e=t.next_out-A,a=da(t.output,A);t.next_out=e,t.avail_out=i-e,e&&t.output.set(t.output.subarray(A,A+e),0),this.onData(a)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(r!==yr||0!==s){if(r===Dr)return r=dr.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,!0;if(0===t.avail_in)break}}return!0},xr.prototype.onData=function(A){this.chunks.push(A)},xr.prototype.onEnd=function(A){A===yr&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Ca(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};var Gr={Inflate:xr,inflate:Fr,inflateRaw:function(A,e){return(e=e||{}).raw=!0,Fr(A,e)},ungzip:Fr,constants:Ci};const{Inflate:Ur,inflate:Rr,inflateRaw:Mr,ungzip:Lr}=Gr;var Nr=Rr;var vr=Object.freeze({__proto__:null,default:class extends Ue{decodeBlock(A){return Nr(new Uint8Array(A)).buffer}}});var Tr,qr=Object.freeze({__proto__:null,default:class extends Ue{decodeBlock(A){const e=new DataView(A),t=[];for(let i=0;i<A.byteLength;++i){let A=e.getInt8(i);if(A<0){const a=e.getUint8(i+1);A=-A;for(let e=0;e<=A;++e)t.push(a);i+=1}else{for(let a=0;a<=A;++a)t.push(e.getUint8(i+a+1));i+=A+1}}return new Uint8Array(t).buffer}}}),Jr={exports:{}};Tr=Jr,
3
3
  /* 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 */
4
- function(){var A,e,t,i,r,a,n,s,o,g,l,h,I,B,c,C,f=(A={defaultNoDataValue:-34027999387901484e22,decode:function(a,n){var s=(n=n||{}).encodedMaskData||null===n.encodedMaskData,o=r(a,n.inputOffset||0,s),g=null!==n.noDataValue?n.noDataValue:A.defaultNoDataValue,l=e(o,n.pixelType||Float32Array,n.encodedMaskData,g,n.returnMask),h={width:o.width,height:o.height,pixelData:l.resultPixels,minValue:l.minValue,maxValue:o.pixels.maxValue,noDataValue:g};return l.resultMask&&(h.maskData=l.resultMask),n.returnEncodedMask&&o.mask&&(h.encodedMaskData=o.mask.bitset?o.mask.bitset:null),n.returnFileInfo&&(h.fileInfo=t(o),n.computeUsedBitDepths&&(h.fileInfo.bitDepths=i(o))),h}},e=function(A,e,t,i,r){var n,s,o,g=0,l=A.pixels.numBlocksX,h=A.pixels.numBlocksY,I=Math.floor(A.width/l),B=Math.floor(A.height/h),c=2*A.maxZError,C=Number.MAX_VALUE;t=t||(A.mask?A.mask.bitset:null),s=new e(A.width*A.height),r&&t&&(o=new Uint8Array(A.width*A.height));for(var f,E,Q=new Float32Array(I*B),d=0;d<=h;d++){var u=d!==h?B:A.height%h;if(0!==u)for(var w=0;w<=l;w++){var p=w!==l?I:A.width%l;if(0!==p){var m,y,D,k,b=d*A.width*B+w*I,_=A.width-p,S=A.pixels.blocks[g];if(S.encoding<2?(0===S.encoding?m=S.rawData:(a(S.stuffedData,S.bitsPerPixel,S.numValidPixels,S.offset,c,Q,A.pixels.maxValue),m=Q),y=0):D=2===S.encoding?0:S.offset,t)for(E=0;E<u;E++){for(7&b&&(k=t[b>>3],k<<=7&b),f=0;f<p;f++)7&b||(k=t[b>>3]),128&k?(o&&(o[b]=1),C=C>(n=S.encoding<2?m[y++]:D)?n:C,s[b++]=n):(o&&(o[b]=0),s[b++]=i),k<<=1;b+=_}else if(S.encoding<2)for(E=0;E<u;E++){for(f=0;f<p;f++)C=C>(n=m[y++])?n:C,s[b++]=n;b+=_}else for(C=C>D?D:C,E=0;E<u;E++){for(f=0;f<p;f++)s[b++]=D;b+=_}if(1===S.encoding&&y!==S.numValidPixels)throw"Block and Mask do not match";g++}}}return{resultPixels:s,resultMask:o,minValue:C}},t=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}}},i=function(A){for(var e=A.pixels.numBlocksX*A.pixels.numBlocksY,t={},i=0;i<e;i++){var r=A.pixels.blocks[i];0===r.encoding?t.float32=!0:1===r.encoding?t[r.bitsPerPixel]=!0:t[0]=!0}return Object.keys(t)},r=function(A,e,t){var i={},r=new Uint8Array(A,e,10);if(i.fileIdentifierString=String.fromCharCode.apply(null,r),"CntZImage"!==i.fileIdentifierString.trim())throw"Unexpected file identifier string: "+i.fileIdentifierString;e+=10;var a=new DataView(A,e,24);if(i.fileVersion=a.getInt32(0,!0),i.imageType=a.getInt32(4,!0),i.height=a.getUint32(8,!0),i.width=a.getUint32(12,!0),i.maxZError=a.getFloat64(16,!0),e+=24,!t)if(a=new DataView(A,e,16),i.mask={},i.mask.numBlocksY=a.getUint32(0,!0),i.mask.numBlocksX=a.getUint32(4,!0),i.mask.numBytes=a.getUint32(8,!0),i.mask.maxValue=a.getFloat32(12,!0),e+=16,i.mask.numBytes>0){var n=new Uint8Array(Math.ceil(i.width*i.height/8)),s=(a=new DataView(A,e,i.mask.numBytes)).getInt16(0,!0),o=2,g=0;do{if(s>0)for(;s--;)n[g++]=a.getUint8(o++);else{var l=a.getUint8(o++);for(s=-s;s--;)n[g++]=l}s=a.getInt16(o,!0),o+=2}while(o<i.mask.numBytes);if(-32768!==s||g<n.length)throw"Unexpected end of mask RLE encoding";i.mask.bitset=n,e+=i.mask.numBytes}else i.mask.numBytes|i.mask.numBlocksY|i.mask.maxValue||(i.mask.bitset=new Uint8Array(Math.ceil(i.width*i.height/8)));a=new DataView(A,e,16),i.pixels={},i.pixels.numBlocksY=a.getUint32(0,!0),i.pixels.numBlocksX=a.getUint32(4,!0),i.pixels.numBytes=a.getUint32(8,!0),i.pixels.maxValue=a.getFloat32(12,!0),e+=16;var h=i.pixels.numBlocksX,I=i.pixels.numBlocksY,B=h+(i.width%h>0?1:0),c=I+(i.height%I>0?1:0);i.pixels.blocks=new Array(B*c);for(var C=0,f=0;f<c;f++)for(var E=0;E<B;E++){var Q=0,d=A.byteLength-e;a=new DataView(A,e,Math.min(10,d));var u={};i.pixels.blocks[C++]=u;var w=a.getUint8(0);if(Q++,u.encoding=63&w,u.encoding>3)throw"Invalid block encoding ("+u.encoding+")";if(2!==u.encoding){if(0!==w&&2!==w){if(w>>=6,u.offsetType=w,2===w)u.offset=a.getInt8(1),Q++;else if(1===w)u.offset=a.getInt16(1,!0),Q+=2;else{if(0!==w)throw"Invalid block offset type";u.offset=a.getFloat32(1,!0),Q+=4}if(1===u.encoding)if(w=a.getUint8(Q),Q++,u.bitsPerPixel=63&w,w>>=6,u.numValidPixelsType=w,2===w)u.numValidPixels=a.getUint8(Q),Q++;else if(1===w)u.numValidPixels=a.getUint16(Q,!0),Q+=2;else{if(0!==w)throw"Invalid valid pixel count type";u.numValidPixels=a.getUint32(Q,!0),Q+=4}}var p;if(e+=Q,3!==u.encoding)if(0===u.encoding){var m=(i.pixels.numBytes-1)/4;if(m!==Math.floor(m))throw"uncompressed block has invalid length";p=new ArrayBuffer(4*m),new Uint8Array(p).set(new Uint8Array(A,e,4*m));var y=new Float32Array(p);u.rawData=y,e+=4*m}else if(1===u.encoding){var D=Math.ceil(u.numValidPixels*u.bitsPerPixel/8),k=Math.ceil(D/4);p=new ArrayBuffer(4*k),new Uint8Array(p).set(new Uint8Array(A,e,D)),u.stuffedData=new Uint32Array(p),e+=D}}else e++}return i.eofOffset=e,i},a=function(A,e,t,i,r,a,n){var s,o,g,l=(1<<e)-1,h=0,I=0,B=Math.ceil((n-i)/r),c=4*A.length-Math.ceil(e*t/8);for(A[A.length-1]<<=8*c,s=0;s<t;s++){if(0===I&&(g=A[h++],I=32),I>=e)o=g>>>I-e&l,I-=e;else{var C=e-I;o=(g&l)<<C&l,o+=(g=A[h++])>>>(I=32-C)}a[s]=o<B?i+o*r:n}return a},A),E=(n=function(A,e,t,i,r,a,n,s){var o,g,l,h,I,B=(1<<t)-1,c=0,C=0,f=4*A.length-Math.ceil(t*i/8);if(A[A.length-1]<<=8*f,r)for(o=0;o<i;o++)0===C&&(l=A[c++],C=32),C>=t?(g=l>>>C-t&B,C-=t):(g=(l&B)<<(h=t-C)&B,g+=(l=A[c++])>>>(C=32-h)),e[o]=r[g];else for(I=Math.ceil((s-a)/n),o=0;o<i;o++)0===C&&(l=A[c++],C=32),C>=t?(g=l>>>C-t&B,C-=t):(g=(l&B)<<(h=t-C)&B,g+=(l=A[c++])>>>(C=32-h)),e[o]=g<I?a+g*n:s},s=function(A,e,t,i,r,a){var n,s=(1<<e)-1,o=0,g=0,l=0,h=0,I=0,B=[],c=4*A.length-Math.ceil(e*t/8);A[A.length-1]<<=8*c;var C=Math.ceil((a-i)/r);for(g=0;g<t;g++)0===h&&(n=A[o++],h=32),h>=e?(I=n>>>h-e&s,h-=e):(I=(n&s)<<(l=e-h)&s,I+=(n=A[o++])>>>(h=32-l)),B[g]=I<C?i+I*r:a;return B.unshift(i),B},o=function(A,e,t,i,r,a,n,s){var o,g,l,h,I=(1<<t)-1,B=0,c=0,C=0;if(r)for(o=0;o<i;o++)0===c&&(l=A[B++],c=32,C=0),c>=t?(g=l>>>C&I,c-=t,C+=t):(g=l>>>C&I,c=32-(h=t-c),g|=((l=A[B++])&(1<<h)-1)<<t-h,C=h),e[o]=r[g];else{var f=Math.ceil((s-a)/n);for(o=0;o<i;o++)0===c&&(l=A[B++],c=32,C=0),c>=t?(g=l>>>C&I,c-=t,C+=t):(g=l>>>C&I,c=32-(h=t-c),g|=((l=A[B++])&(1<<h)-1)<<t-h,C=h),e[o]=g<f?a+g*n:s}return e},g=function(A,e,t,i,r,a){var n,s=(1<<e)-1,o=0,g=0,l=0,h=0,I=0,B=0,c=[],C=Math.ceil((a-i)/r);for(g=0;g<t;g++)0===h&&(n=A[o++],h=32,B=0),h>=e?(I=n>>>B&s,h-=e,B+=e):(I=n>>>B&s,h=32-(l=e-h),I|=((n=A[o++])&(1<<l)-1)<<e-l,B=l),c[g]=I<C?i+I*r:a;return c.unshift(i),c},l=function(A,e,t,i){var r,a,n,s,o=(1<<t)-1,g=0,l=0,h=4*A.length-Math.ceil(t*i/8);for(A[A.length-1]<<=8*h,r=0;r<i;r++)0===l&&(n=A[g++],l=32),l>=t?(a=n>>>l-t&o,l-=t):(a=(n&o)<<(s=t-l)&o,a+=(n=A[g++])>>>(l=32-s)),e[r]=a;return e},h=function(A,e,t,i){var r,a,n,s,o=(1<<t)-1,g=0,l=0,h=0;for(r=0;r<i;r++)0===l&&(n=A[g++],l=32,h=0),l>=t?(a=n>>>h&o,l-=t,h+=t):(a=n>>>h&o,l=32-(s=t-l),a|=((n=A[g++])&(1<<s)-1)<<t-s,h=s),e[r]=a;return e},I={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(A){for(var e=65535,t=65535,i=A.length,r=Math.floor(i/2),a=0;r;){var n=r>=359?359:r;r-=n;do{e+=A[a++]<<8,t+=e+=A[a++]}while(--n);e=(65535&e)+(e>>>16),t=(65535&t)+(t>>>16)}return 1&i&&(t+=e+=A[a]<<8),((t=(65535&t)+(t>>>16))<<16|(e=(65535&e)+(e>>>16)))>>>0},readHeaderInfo:function(A,e){var t=e.ptr,i=new Uint8Array(A,t,6),r={};if(r.fileIdentifierString=String.fromCharCode.apply(null,i),0!==r.fileIdentifierString.lastIndexOf("Lerc2",0))throw"Unexpected file identifier string (expect Lerc2 ): "+r.fileIdentifierString;t+=6;var a,n=new DataView(A,t,8),s=n.getInt32(0,!0);if(r.fileVersion=s,t+=4,s>=3&&(r.checksum=n.getUint32(4,!0),t+=4),n=new DataView(A,t,12),r.height=n.getUint32(0,!0),r.width=n.getUint32(4,!0),t+=8,s>=4?(r.numDims=n.getUint32(8,!0),t+=4):r.numDims=1,n=new DataView(A,t,40),r.numValidPixel=n.getUint32(0,!0),r.microBlockSize=n.getInt32(4,!0),r.blobSize=n.getInt32(8,!0),r.imageType=n.getInt32(12,!0),r.maxZError=n.getFloat64(16,!0),r.zMin=n.getFloat64(24,!0),r.zMax=n.getFloat64(32,!0),t+=40,e.headerInfo=r,e.ptr=t,s>=3&&(a=s>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(A,t-a,r.blobSize-14))!==r.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(A,e){var t=e.headerInfo,i=this.getDataTypeArray(t.imageType),r=t.numDims*this.getDataTypeSize(t.imageType),a=this.readSubArray(A,e.ptr,i,r),n=this.readSubArray(A,e.ptr+r,i,r);e.ptr+=2*r;var s,o=!0;for(s=0;s<t.numDims;s++)if(a[s]!==n[s]){o=!1;break}return t.minValues=a,t.maxValues=n,o},readSubArray:function(A,e,t,i){var r;if(t===Uint8Array)r=new Uint8Array(A,e,i);else{var a=new ArrayBuffer(i);new Uint8Array(a).set(new Uint8Array(A,e,i)),r=new t(a)}return r},readMask:function(A,e){var t,i,r=e.ptr,a=e.headerInfo,n=a.width*a.height,s=a.numValidPixel,o=new DataView(A,r,4),g={};if(g.numBytes=o.getUint32(0,!0),r+=4,(0===s||n===s)&&0!==g.numBytes)throw"invalid mask";if(0===s)t=new Uint8Array(Math.ceil(n/8)),g.bitset=t,i=new Uint8Array(n),e.pixels.resultMask=i,r+=g.numBytes;else if(g.numBytes>0){t=new Uint8Array(Math.ceil(n/8));var l=(o=new DataView(A,r,g.numBytes)).getInt16(0,!0),h=2,I=0,B=0;do{if(l>0)for(;l--;)t[I++]=o.getUint8(h++);else for(B=o.getUint8(h++),l=-l;l--;)t[I++]=B;l=o.getInt16(h,!0),h+=2}while(h<g.numBytes);if(-32768!==l||I<t.length)throw"Unexpected end of mask RLE encoding";i=new Uint8Array(n);var c=0,C=0;for(C=0;C<n;C++)7&C?(c=t[C>>3],c<<=7&C):c=t[C>>3],128&c&&(i[C]=1);e.pixels.resultMask=i,g.bitset=t,r+=g.numBytes}return e.ptr=r,e.mask=g,!0},readDataOneSweep:function(A,e,t,i){var r,a=e.ptr,n=e.headerInfo,s=n.numDims,o=n.width*n.height,g=n.imageType,l=n.numValidPixel*I.getDataTypeSize(g)*s,h=e.pixels.resultMask;if(t===Uint8Array)r=new Uint8Array(A,a,l);else{var B=new ArrayBuffer(l);new Uint8Array(B).set(new Uint8Array(A,a,l)),r=new t(B)}if(r.length===o*s)e.pixels.resultPixels=i?I.swapDimensionOrder(r,o,s,t,!0):r;else{e.pixels.resultPixels=new t(o*s);var c=0,C=0,f=0,E=0;if(s>1){if(i){for(C=0;C<o;C++)if(h[C])for(E=C,f=0;f<s;f++,E+=o)e.pixels.resultPixels[E]=r[c++]}else for(C=0;C<o;C++)if(h[C])for(E=C*s,f=0;f<s;f++)e.pixels.resultPixels[E+f]=r[c++]}else for(C=0;C<o;C++)h[C]&&(e.pixels.resultPixels[C]=r[c++])}return a+=l,e.ptr=a,!0},readHuffmanTree:function(A,e){var t=this.HUFFMAN_LUT_BITS_MAX,i=new DataView(A,e.ptr,16);if(e.ptr+=16,i.getInt32(0,!0)<2)throw"unsupported Huffman version";var r=i.getInt32(4,!0),a=i.getInt32(8,!0),n=i.getInt32(12,!0);if(a>=n)return!1;var s=new Uint32Array(n-a);I.decodeBits(A,e,s);var o,g,l,h,c=[];for(o=a;o<n;o++)c[g=o-(o<r?0:r)]={first:s[o-a],second:null};var C=A.byteLength-e.ptr,f=Math.ceil(C/4),E=new ArrayBuffer(4*f);new Uint8Array(E).set(new Uint8Array(A,e.ptr,C));var Q,d=new Uint32Array(E),u=0,w=0;for(Q=d[0],o=a;o<n;o++)(h=c[g=o-(o<r?0:r)].first)>0&&(c[g].second=Q<<u>>>32-h,32-u>=h?32===(u+=h)&&(u=0,Q=d[++w]):(u+=h-32,Q=d[++w],c[g].second|=Q>>>32-u));var p=0,m=0,y=new B;for(o=0;o<c.length;o++)void 0!==c[o]&&(p=Math.max(p,c[o].first));m=p>=t?t:p;var D,k,b,_,S,x=[];for(o=a;o<n;o++)if((h=c[g=o-(o<r?0:r)].first)>0)if(D=[h,g],h<=m)for(k=c[g].second<<m-h,b=1<<m-h,l=0;l<b;l++)x[k|l]=D;else for(k=c[g].second,S=y,_=h-1;_>=0;_--)k>>>_&1?(S.right||(S.right=new B),S=S.right):(S.left||(S.left=new B),S=S.left),0!==_||S.val||(S.val=D[1]);return{decodeLut:x,numBitsLUTQick:m,numBitsLUT:p,tree:y,stuffedData:d,srcPtr:w,bitPos:u}},readHuffman:function(A,e,t,i){var r,a,n,s,o,g,l,h,B,c=e.headerInfo.numDims,C=e.headerInfo.height,f=e.headerInfo.width,E=f*C,Q=this.readHuffmanTree(A,e),d=Q.decodeLut,u=Q.tree,w=Q.stuffedData,p=Q.srcPtr,m=Q.bitPos,y=Q.numBitsLUTQick,D=Q.numBitsLUT,k=0===e.headerInfo.imageType?128:0,b=e.pixels.resultMask,_=0;m>0&&(p++,m=0);var S,x=w[p],F=1===e.encodeMode,G=new t(E*c),U=G;if(c<2||F){for(S=0;S<c;S++)if(c>1&&(U=new t(G.buffer,E*S,E),_=0),e.headerInfo.numValidPixel===f*C)for(h=0,g=0;g<C;g++)for(l=0;l<f;l++,h++){if(a=0,o=s=x<<m>>>32-y,32-m<y&&(o=s|=w[p+1]>>>64-m-y),d[o])a=d[o][1],m+=d[o][0];else for(o=s=x<<m>>>32-D,32-m<D&&(o=s|=w[p+1]>>>64-m-D),r=u,B=0;B<D;B++)if(!(r=s>>>D-B-1&1?r.right:r.left).left&&!r.right){a=r.val,m=m+B+1;break}m>=32&&(m-=32,x=w[++p]),n=a-k,F?(n+=l>0?_:g>0?U[h-f]:_,n&=255,U[h]=n,_=n):U[h]=n}else for(h=0,g=0;g<C;g++)for(l=0;l<f;l++,h++)if(b[h]){if(a=0,o=s=x<<m>>>32-y,32-m<y&&(o=s|=w[p+1]>>>64-m-y),d[o])a=d[o][1],m+=d[o][0];else for(o=s=x<<m>>>32-D,32-m<D&&(o=s|=w[p+1]>>>64-m-D),r=u,B=0;B<D;B++)if(!(r=s>>>D-B-1&1?r.right:r.left).left&&!r.right){a=r.val,m=m+B+1;break}m>=32&&(m-=32,x=w[++p]),n=a-k,F?(l>0&&b[h-1]?n+=_:g>0&&b[h-f]?n+=U[h-f]:n+=_,n&=255,U[h]=n,_=n):U[h]=n}}else for(h=0,g=0;g<C;g++)for(l=0;l<f;l++)if(h=g*f+l,!b||b[h])for(S=0;S<c;S++,h+=E){if(a=0,o=s=x<<m>>>32-y,32-m<y&&(o=s|=w[p+1]>>>64-m-y),d[o])a=d[o][1],m+=d[o][0];else for(o=s=x<<m>>>32-D,32-m<D&&(o=s|=w[p+1]>>>64-m-D),r=u,B=0;B<D;B++)if(!(r=s>>>D-B-1&1?r.right:r.left).left&&!r.right){a=r.val,m=m+B+1;break}m>=32&&(m-=32,x=w[++p]),n=a-k,U[h]=n}e.ptr=e.ptr+4*(p+1)+(m>0?4:0),e.pixels.resultPixels=G,c>1&&!i&&(e.pixels.resultPixels=I.swapDimensionOrder(G,E,c,t))},decodeBits:function(A,e,t,i,r){var a=e.headerInfo,I=a.fileVersion,B=0,c=A.byteLength-e.ptr>=5?5:A.byteLength-e.ptr,C=new DataView(A,e.ptr,c),f=C.getUint8(0);B++;var E=f>>6,Q=0===E?4:3-E,d=(32&f)>0,u=31&f,w=0;if(1===Q)w=C.getUint8(B),B++;else if(2===Q)w=C.getUint16(B,!0),B+=2;else{if(4!==Q)throw"Invalid valid pixel count type";w=C.getUint32(B,!0),B+=4}var p,m,y,D,k,b,_,S,x,F=2*a.maxZError,G=a.numDims>1?a.maxValues[r]:a.zMax;if(d){for(e.counter.lut++,S=C.getUint8(B),B++,D=Math.ceil((S-1)*u/8),k=Math.ceil(D/4),m=new ArrayBuffer(4*k),y=new Uint8Array(m),e.ptr+=B,y.set(new Uint8Array(A,e.ptr,D)),_=new Uint32Array(m),e.ptr+=D,x=0;S-1>>>x;)x++;D=Math.ceil(w*x/8),k=Math.ceil(D/4),m=new ArrayBuffer(4*k),(y=new Uint8Array(m)).set(new Uint8Array(A,e.ptr,D)),p=new Uint32Array(m),e.ptr+=D,b=I>=3?g(_,u,S-1,i,F,G):s(_,u,S-1,i,F,G),I>=3?o(p,t,x,w,b):n(p,t,x,w,b)}else e.counter.bitstuffer++,x=u,e.ptr+=B,x>0&&(D=Math.ceil(w*x/8),k=Math.ceil(D/4),m=new ArrayBuffer(4*k),(y=new Uint8Array(m)).set(new Uint8Array(A,e.ptr,D)),p=new Uint32Array(m),e.ptr+=D,I>=3?null==i?h(p,t,x,w):o(p,t,x,w,!1,i,F,G):null==i?l(p,t,x,w):n(p,t,x,w,!1,i,F,G))},readTiles:function(A,e,t,i){var r=e.headerInfo,a=r.width,n=r.height,s=a*n,o=r.microBlockSize,g=r.imageType,l=I.getDataTypeSize(g),h=Math.ceil(a/o),B=Math.ceil(n/o);e.pixels.numBlocksY=B,e.pixels.numBlocksX=h,e.pixels.ptr=0;var c,C,f,E,Q,d,u,w,p,m,y=0,D=0,k=0,b=0,_=0,S=0,x=0,F=0,G=0,U=0,R=0,M=0,L=0,v=0,N=0,T=new t(o*o),q=n%o||o,O=a%o||o,J=r.numDims,H=e.pixels.resultMask,Y=e.pixels.resultPixels,z=r.fileVersion>=5?14:15,P=r.zMax;for(k=0;k<B;k++)for(_=k!==B-1?o:q,b=0;b<h;b++)for(U=k*a*o+b*o,R=a-(S=b!==h-1?o:O),w=0;w<J;w++){if(J>1?(m=Y,U=k*a*o+b*o,Y=new t(e.pixels.resultPixels.buffer,s*w*l,s),P=r.maxValues[w]):m=null,x=A.byteLength-e.ptr,C={},N=0,F=(c=new DataView(A,e.ptr,Math.min(10,x))).getUint8(0),N++,p=r.fileVersion>=5?4&F:0,G=F>>6&255,(F>>2&z)!=(b*o>>3&z))throw"integrity issue";if(p&&0===w)throw"integrity issue";if((Q=3&F)>3)throw e.ptr+=N,"Invalid block encoding ("+Q+")";if(2!==Q)if(0===Q){if(p)throw"integrity issue";if(e.counter.uncompressed++,e.ptr+=N,M=(M=_*S*l)<(L=A.byteLength-e.ptr)?M:L,f=new ArrayBuffer(M%l==0?M:M+l-M%l),new Uint8Array(f).set(new Uint8Array(A,e.ptr,M)),E=new t(f),v=0,H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(Y[U]=E[v++]),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)Y[U++]=E[v++];U+=R}e.ptr+=v*l}else if(d=I.getDataTypeUsed(p&&g<6?4:g,G),u=I.getOnePixel(C,N,d,c),N+=I.getDataTypeSize(d),3===Q)if(e.ptr+=N,e.counter.constantoffset++,H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(Y[U]=p?Math.min(P,m[U]+u):u),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)Y[U]=p?Math.min(P,m[U]+u):u,U++;U+=R}else if(e.ptr+=N,I.decodeBits(A,e,T,u,w),N=0,p)if(H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(Y[U]=T[N++]+m[U]),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)Y[U]=T[N++]+m[U],U++;U+=R}else if(H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(Y[U]=T[N++]),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)Y[U++]=T[N++];U+=R}else{if(p)if(H)for(y=0;y<_;y++)for(D=0;D<S;D++)H[U]&&(Y[U]=m[U]),U++;else for(y=0;y<_;y++)for(D=0;D<S;D++)Y[U]=m[U],U++;e.counter.constant++,e.ptr+=N}}J>1&&!i&&(e.pixels.resultPixels=I.swapDimensionOrder(e.pixels.resultPixels,s,J,t))},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:I.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,e){var t=A.headerInfo.zMax,i=A.headerInfo.zMin,r=A.headerInfo.maxValues,a=A.headerInfo.numDims,n=A.headerInfo.height*A.headerInfo.width,s=0,o=0,g=0,l=A.pixels.resultMask,h=A.pixels.resultPixels;if(l)if(a>1){if(e)for(s=0;s<a;s++)for(g=s*n,t=r[s],o=0;o<n;o++)l[o]&&(h[g+o]=t);else for(o=0;o<n;o++)if(l[o])for(g=o*a,s=0;s<a;s++)h[g+a]=r[s]}else for(o=0;o<n;o++)l[o]&&(h[o]=t);else if(a>1&&i!==t)if(e)for(s=0;s<a;s++)for(g=s*n,t=r[s],o=0;o<n;o++)h[g+o]=t;else for(o=0;o<n;o++)for(g=o*a,s=0;s<a;s++)h[g+s]=r[s];else for(o=0;o<n*a;o++)h[o]=t},getDataTypeArray:function(A){var e;switch(A){case 0:e=Int8Array;break;case 1:e=Uint8Array;break;case 2:e=Int16Array;break;case 3:e=Uint16Array;break;case 4:e=Int32Array;break;case 5:e=Uint32Array;break;case 6:default:e=Float32Array;break;case 7:e=Float64Array}return e},getPixelType:function(A){var e;switch(A){case 0:e="S8";break;case 1:e="U8";break;case 2:e="S16";break;case 3:e="U16";break;case 4:e="S32";break;case 5:e="U32";break;case 6:default:e="F32";break;case 7:e="F64"}return e},isValidPixelValue:function(A,e){if(null==e)return!1;var t;switch(A){case 0:t=e>=-128&&e<=127;break;case 1:t=e>=0&&e<=255;break;case 2:t=e>=-32768&&e<=32767;break;case 3:t=e>=0&&e<=65536;break;case 4:t=e>=-2147483648&&e<=2147483647;break;case 5:t=e>=0&&e<=4294967296;break;case 6:t=e>=-34027999387901484e22&&e<=34027999387901484e22;break;case 7:t=e>=-17976931348623157e292&&e<=17976931348623157e292;break;default:t=!1}return t},getDataTypeSize:function(A){var e=0;switch(A){case 0:case 1:e=1;break;case 2:case 3:e=2;break;case 4:case 5:case 6:e=4;break;case 7:e=8;break;default:e=A}return e},getDataTypeUsed:function(A,e){var t=A;switch(A){case 2:case 4:t=A-e;break;case 3:case 5:t=A-2*e;break;case 6:t=0===e?A:1===e?2:1;break;case 7:t=0===e?A:A-2*e+1;break;default:t=A}return t},getOnePixel:function(A,e,t,i){var r=0;switch(t){case 0:r=i.getInt8(e);break;case 1:r=i.getUint8(e);break;case 2:r=i.getInt16(e,!0);break;case 3:r=i.getUint16(e,!0);break;case 4:r=i.getInt32(e,!0);break;case 5:r=i.getUInt32(e,!0);break;case 6:r=i.getFloat32(e,!0);break;case 7:r=i.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return r},swapDimensionOrder:function(A,e,t,i,r){var a=0,n=0,s=0,o=0,g=A;if(t>1)if(g=new i(e*t),r)for(a=0;a<e;a++)for(o=a,s=0;s<t;s++,o+=e)g[o]=A[n++];else for(a=0;a<e;a++)for(o=a,s=0;s<t;s++,o+=e)g[n++]=A[o];return g}},B=function(A,e,t){this.val=A,this.left=e,this.right=t},{decode:function(A,e){var t=(e=e||{}).noDataValue,i=0,r={};if(r.ptr=e.inputOffset||0,r.pixels={},I.readHeaderInfo(A,r)){var a=r.headerInfo,n=a.fileVersion,s=I.getDataTypeArray(a.imageType);if(n>5)throw"unsupported lerc version 2."+n;I.readMask(A,r),a.numValidPixel===a.width*a.height||r.pixels.resultMask||(r.pixels.resultMask=e.maskData);var o=a.width*a.height;r.pixels.resultPixels=new s(o*a.numDims),r.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var g,l=!e.returnPixelInterleavedDims;if(0!==a.numValidPixel)if(a.zMax===a.zMin)I.constructConstantSurface(r,l);else if(n>=4&&I.checkMinMaxRanges(A,r))I.constructConstantSurface(r,l);else{var h=new DataView(A,r.ptr,2),B=h.getUint8(0);if(r.ptr++,B)I.readDataOneSweep(A,r,s,l);else if(n>1&&a.imageType<=1&&Math.abs(a.maxZError-.5)<1e-5){var c=h.getUint8(1);if(r.ptr++,r.encodeMode=c,c>2||n<4&&c>1)throw"Invalid Huffman flag "+c;c?I.readHuffman(A,r,s,l):I.readTiles(A,r,s,l)}else I.readTiles(A,r,s,l)}r.eofOffset=r.ptr,e.inputOffset?(g=r.headerInfo.blobSize+e.inputOffset-r.ptr,Math.abs(g)>=1&&(r.eofOffset=e.inputOffset+r.headerInfo.blobSize)):(g=r.headerInfo.blobSize-r.ptr,Math.abs(g)>=1&&(r.eofOffset=r.headerInfo.blobSize));var C={width:a.width,height:a.height,pixelData:r.pixels.resultPixels,minValue:a.zMin,maxValue:a.zMax,validPixelCount:a.numValidPixel,dimCount:a.numDims,dimStats:{minValues:a.minValues,maxValues:a.maxValues},maskData:r.pixels.resultMask};if(r.pixels.resultMask&&I.isValidPixelValue(a.imageType,t)){var f=r.pixels.resultMask;for(i=0;i<o;i++)f[i]||(C.pixelData[i]=t);C.noDataValue=t}return r.noDataValue=t,e.returnFileInfo&&(C.fileInfo=I.formatFileInfo(r)),C}},getBandCount:function(A){for(var e=0,t=0,i={ptr:0,pixels:{}};t<A.byteLength-58;)I.readHeaderInfo(A,i),t+=i.headerInfo.blobSize,e++,i.ptr=t;return e}}),Q=(c=new ArrayBuffer(4),C=new Uint8Array(c),new Uint32Array(c)[0]=1,1===C[0]),d={decode:function(A,e){if(!Q)throw"Big endian system is not supported.";var t,i,r=(e=e||{}).inputOffset||0,a=new Uint8Array(A,r,10),n=String.fromCharCode.apply(null,a);if("CntZImage"===n.trim())t=f,i=1;else{if("Lerc2"!==n.substring(0,5))throw"Unexpected file identifier string: "+n;t=E,i=2}for(var s,o,g,l,h,I,B=0,c=A.byteLength-10,C=[],d={width:0,height:0,pixels:[],pixelType:e.pixelType,mask:null,statistics:[]},u=0;r<c;){var w=t.decode(A,{inputOffset:r,encodedMaskData:s,maskData:g,returnMask:0===B,returnEncodedMask:0===B,returnFileInfo:!0,returnPixelInterleavedDims:e.returnPixelInterleavedDims,pixelType:e.pixelType||null,noDataValue:e.noDataValue||null});r=w.fileInfo.eofOffset,g=w.maskData,0===B&&(s=w.encodedMaskData,d.width=w.width,d.height=w.height,d.dimCount=w.dimCount||1,d.pixelType=w.pixelType||w.fileInfo.pixelType,d.mask=g),i>1&&(g&&C.push(g),w.fileInfo.mask&&w.fileInfo.mask.numBytes>0&&u++),B++,d.pixels.push(w.pixelData),d.statistics.push({minValue:w.minValue,maxValue:w.maxValue,noDataValue:w.noDataValue,dimStats:w.dimStats})}if(i>1&&u>1){for(I=d.width*d.height,d.bandMasks=C,(g=new Uint8Array(I)).set(C[0]),l=1;l<C.length;l++)for(o=C[l],h=0;h<I;h++)g[h]=g[h]&o[h];d.maskData=g}return d}};qa.exports?qa.exports=d:this.Lerc=d}();var Ha=lA(Ja.exports);let Ya,za,Pa;const Ka={env:{emscripten_notify_memory_growth:function(A){Pa=new Uint8Array(za.exports.memory.buffer)}}};const Va="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",Za=new class{init(){return Ya||(Ya="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+Va).then((A=>A.arrayBuffer())).then((A=>WebAssembly.instantiate(A,Ka))).then(this._init):WebAssembly.instantiate(Buffer.from(Va,"base64"),Ka).then(this._init),Ya)}_init(A){za=A.instance,Ka.env.emscripten_notify_memory_growth(0)}decode(A,e=0){if(!za)throw new Error("ZSTDDecoder: Await .init() before decoding.");const t=A.byteLength,i=za.exports.malloc(t);Pa.set(A,i),e=e||Number(za.exports.ZSTD_findDecompressedSize(i,t));const r=za.exports.malloc(e),a=za.exports.ZSTD_decompress(r,e,i,t),n=Pa.slice(r,r+a);return za.exports.free(i),za.exports.free(r),n}};var Xa=Object.freeze({__proto__:null,default:class extends Re{constructor(A){super(),this.planarConfiguration=void 0!==A.PlanarConfiguration?A.PlanarConfiguration:1,this.samplesPerPixel=void 0!==A.SamplesPerPixel?A.SamplesPerPixel:1,this.addCompression=A.LercParameters[zA]}decodeBlock(A){switch(this.addCompression){case PA:break;case KA:A=Na(new Uint8Array(A)).buffer;break;case VA:A=Za.decode(new Uint8Array(A)).buffer;break;default:throw new Error(`Unsupported LERC additional compression method identifier: ${this.addCompression}`)}return Ha.decode(A,{returnPixelInterleavedDims:1===this.planarConfiguration}).pixels[0].buffer}},zstd:Za});var Wa=Object.freeze({__proto__:null,default:class extends Re{constructor(){if(super(),"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 decode(A,e){const t=new Blob([e]),i=await createImageBitmap(t);let r;"undefined"!=typeof document?(r=document.createElement("canvas"),r.width=i.width,r.height=i.height):r=new OffscreenCanvas(i.width,i.height);const a=r.getContext("2d");return a.drawImage(i,0,0),a.getImageData(0,0,i.width,i.height).data.buffer}}});export{at as CogBitmapLayer,gt as CogTerrainLayer,tt as CogTiles,Xe as GeoImage};
4
+ function(){var A,e,t,i,a,r,n,s,o,g,l,I,h,B,c,C,E=(A={defaultNoDataValue:-34027999387901484e22,decode:function(r,n){var s=(n=n||{}).encodedMaskData||null===n.encodedMaskData,o=a(r,n.inputOffset||0,s),g=null!==n.noDataValue?n.noDataValue:A.defaultNoDataValue,l=e(o,n.pixelType||Float32Array,n.encodedMaskData,g,n.returnMask),I={width:o.width,height:o.height,pixelData:l.resultPixels,minValue:l.minValue,maxValue:o.pixels.maxValue,noDataValue:g};return l.resultMask&&(I.maskData=l.resultMask),n.returnEncodedMask&&o.mask&&(I.encodedMaskData=o.mask.bitset?o.mask.bitset:null),n.returnFileInfo&&(I.fileInfo=t(o),n.computeUsedBitDepths&&(I.fileInfo.bitDepths=i(o))),I}},e=function(A,e,t,i,a){var n,s,o,g=0,l=A.pixels.numBlocksX,I=A.pixels.numBlocksY,h=Math.floor(A.width/l),B=Math.floor(A.height/I),c=2*A.maxZError,C=Number.MAX_VALUE;t=t||(A.mask?A.mask.bitset:null),s=new e(A.width*A.height),a&&t&&(o=new Uint8Array(A.width*A.height));for(var E,f,Q=new Float32Array(h*B),d=0;d<=I;d++){var u=d!==I?B:A.height%I;if(0!==u)for(var w=0;w<=l;w++){var p=w!==l?h:A.width%l;if(0!==p){var m,y,D,k,b=d*A.width*B+w*h,_=A.width-p,S=A.pixels.blocks[g];if(S.encoding<2?(0===S.encoding?m=S.rawData:(r(S.stuffedData,S.bitsPerPixel,S.numValidPixels,S.offset,c,Q,A.pixels.maxValue),m=Q),y=0):D=2===S.encoding?0:S.offset,t)for(f=0;f<u;f++){for(7&b&&(k=t[b>>3],k<<=7&b),E=0;E<p;E++)7&b||(k=t[b>>3]),128&k?(o&&(o[b]=1),C=C>(n=S.encoding<2?m[y++]:D)?n:C,s[b++]=n):(o&&(o[b]=0),s[b++]=i),k<<=1;b+=_}else if(S.encoding<2)for(f=0;f<u;f++){for(E=0;E<p;E++)C=C>(n=m[y++])?n:C,s[b++]=n;b+=_}else for(C=C>D?D:C,f=0;f<u;f++){for(E=0;E<p;E++)s[b++]=D;b+=_}if(1===S.encoding&&y!==S.numValidPixels)throw"Block and Mask do not match";g++}}}return{resultPixels:s,resultMask:o,minValue:C}},t=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}}},i=function(A){for(var e=A.pixels.numBlocksX*A.pixels.numBlocksY,t={},i=0;i<e;i++){var a=A.pixels.blocks[i];0===a.encoding?t.float32=!0:1===a.encoding?t[a.bitsPerPixel]=!0:t[0]=!0}return Object.keys(t)},a=function(A,e,t){var i={},a=new Uint8Array(A,e,10);if(i.fileIdentifierString=String.fromCharCode.apply(null,a),"CntZImage"!==i.fileIdentifierString.trim())throw"Unexpected file identifier string: "+i.fileIdentifierString;e+=10;var r=new DataView(A,e,24);if(i.fileVersion=r.getInt32(0,!0),i.imageType=r.getInt32(4,!0),i.height=r.getUint32(8,!0),i.width=r.getUint32(12,!0),i.maxZError=r.getFloat64(16,!0),e+=24,!t)if(r=new DataView(A,e,16),i.mask={},i.mask.numBlocksY=r.getUint32(0,!0),i.mask.numBlocksX=r.getUint32(4,!0),i.mask.numBytes=r.getUint32(8,!0),i.mask.maxValue=r.getFloat32(12,!0),e+=16,i.mask.numBytes>0){var n=new Uint8Array(Math.ceil(i.width*i.height/8)),s=(r=new DataView(A,e,i.mask.numBytes)).getInt16(0,!0),o=2,g=0;do{if(s>0)for(;s--;)n[g++]=r.getUint8(o++);else{var l=r.getUint8(o++);for(s=-s;s--;)n[g++]=l}s=r.getInt16(o,!0),o+=2}while(o<i.mask.numBytes);if(-32768!==s||g<n.length)throw"Unexpected end of mask RLE encoding";i.mask.bitset=n,e+=i.mask.numBytes}else i.mask.numBytes|i.mask.numBlocksY|i.mask.maxValue||(i.mask.bitset=new Uint8Array(Math.ceil(i.width*i.height/8)));r=new DataView(A,e,16),i.pixels={},i.pixels.numBlocksY=r.getUint32(0,!0),i.pixels.numBlocksX=r.getUint32(4,!0),i.pixels.numBytes=r.getUint32(8,!0),i.pixels.maxValue=r.getFloat32(12,!0),e+=16;var I=i.pixels.numBlocksX,h=i.pixels.numBlocksY,B=I+(i.width%I>0?1:0),c=h+(i.height%h>0?1:0);i.pixels.blocks=new Array(B*c);for(var C=0,E=0;E<c;E++)for(var f=0;f<B;f++){var Q=0,d=A.byteLength-e;r=new DataView(A,e,Math.min(10,d));var u={};i.pixels.blocks[C++]=u;var w=r.getUint8(0);if(Q++,u.encoding=63&w,u.encoding>3)throw"Invalid block encoding ("+u.encoding+")";if(2!==u.encoding){if(0!==w&&2!==w){if(w>>=6,u.offsetType=w,2===w)u.offset=r.getInt8(1),Q++;else if(1===w)u.offset=r.getInt16(1,!0),Q+=2;else{if(0!==w)throw"Invalid block offset type";u.offset=r.getFloat32(1,!0),Q+=4}if(1===u.encoding)if(w=r.getUint8(Q),Q++,u.bitsPerPixel=63&w,w>>=6,u.numValidPixelsType=w,2===w)u.numValidPixels=r.getUint8(Q),Q++;else if(1===w)u.numValidPixels=r.getUint16(Q,!0),Q+=2;else{if(0!==w)throw"Invalid valid pixel count type";u.numValidPixels=r.getUint32(Q,!0),Q+=4}}var p;if(e+=Q,3!==u.encoding)if(0===u.encoding){var m=(i.pixels.numBytes-1)/4;if(m!==Math.floor(m))throw"uncompressed block has invalid length";p=new ArrayBuffer(4*m),new Uint8Array(p).set(new Uint8Array(A,e,4*m));var y=new Float32Array(p);u.rawData=y,e+=4*m}else if(1===u.encoding){var D=Math.ceil(u.numValidPixels*u.bitsPerPixel/8),k=Math.ceil(D/4);p=new ArrayBuffer(4*k),new Uint8Array(p).set(new Uint8Array(A,e,D)),u.stuffedData=new Uint32Array(p),e+=D}}else e++}return i.eofOffset=e,i},r=function(A,e,t,i,a,r,n){var s,o,g,l=(1<<e)-1,I=0,h=0,B=Math.ceil((n-i)/a),c=4*A.length-Math.ceil(e*t/8);for(A[A.length-1]<<=8*c,s=0;s<t;s++){if(0===h&&(g=A[I++],h=32),h>=e)o=g>>>h-e&l,h-=e;else{var C=e-h;o=(g&l)<<C&l,o+=(g=A[I++])>>>(h=32-C)}r[s]=o<B?i+o*a:n}return r},A),f=(n=function(A,e,t,i,a,r,n,s){var o,g,l,I,h,B=(1<<t)-1,c=0,C=0,E=4*A.length-Math.ceil(t*i/8);if(A[A.length-1]<<=8*E,a)for(o=0;o<i;o++)0===C&&(l=A[c++],C=32),C>=t?(g=l>>>C-t&B,C-=t):(g=(l&B)<<(I=t-C)&B,g+=(l=A[c++])>>>(C=32-I)),e[o]=a[g];else for(h=Math.ceil((s-r)/n),o=0;o<i;o++)0===C&&(l=A[c++],C=32),C>=t?(g=l>>>C-t&B,C-=t):(g=(l&B)<<(I=t-C)&B,g+=(l=A[c++])>>>(C=32-I)),e[o]=g<h?r+g*n:s},s=function(A,e,t,i,a,r){var n,s=(1<<e)-1,o=0,g=0,l=0,I=0,h=0,B=[],c=4*A.length-Math.ceil(e*t/8);A[A.length-1]<<=8*c;var C=Math.ceil((r-i)/a);for(g=0;g<t;g++)0===I&&(n=A[o++],I=32),I>=e?(h=n>>>I-e&s,I-=e):(h=(n&s)<<(l=e-I)&s,h+=(n=A[o++])>>>(I=32-l)),B[g]=h<C?i+h*a:r;return B.unshift(i),B},o=function(A,e,t,i,a,r,n,s){var o,g,l,I,h=(1<<t)-1,B=0,c=0,C=0;if(a)for(o=0;o<i;o++)0===c&&(l=A[B++],c=32,C=0),c>=t?(g=l>>>C&h,c-=t,C+=t):(g=l>>>C&h,c=32-(I=t-c),g|=((l=A[B++])&(1<<I)-1)<<t-I,C=I),e[o]=a[g];else{var E=Math.ceil((s-r)/n);for(o=0;o<i;o++)0===c&&(l=A[B++],c=32,C=0),c>=t?(g=l>>>C&h,c-=t,C+=t):(g=l>>>C&h,c=32-(I=t-c),g|=((l=A[B++])&(1<<I)-1)<<t-I,C=I),e[o]=g<E?r+g*n:s}return e},g=function(A,e,t,i,a,r){var n,s=(1<<e)-1,o=0,g=0,l=0,I=0,h=0,B=0,c=[],C=Math.ceil((r-i)/a);for(g=0;g<t;g++)0===I&&(n=A[o++],I=32,B=0),I>=e?(h=n>>>B&s,I-=e,B+=e):(h=n>>>B&s,I=32-(l=e-I),h|=((n=A[o++])&(1<<l)-1)<<e-l,B=l),c[g]=h<C?i+h*a:r;return c.unshift(i),c},l=function(A,e,t,i){var a,r,n,s,o=(1<<t)-1,g=0,l=0,I=4*A.length-Math.ceil(t*i/8);for(A[A.length-1]<<=8*I,a=0;a<i;a++)0===l&&(n=A[g++],l=32),l>=t?(r=n>>>l-t&o,l-=t):(r=(n&o)<<(s=t-l)&o,r+=(n=A[g++])>>>(l=32-s)),e[a]=r;return e},I=function(A,e,t,i){var a,r,n,s,o=(1<<t)-1,g=0,l=0,I=0;for(a=0;a<i;a++)0===l&&(n=A[g++],l=32,I=0),l>=t?(r=n>>>I&o,l-=t,I+=t):(r=n>>>I&o,l=32-(s=t-l),r|=((n=A[g++])&(1<<s)-1)<<t-s,I=s),e[a]=r;return e},h={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(A){for(var e=65535,t=65535,i=A.length,a=Math.floor(i/2),r=0;a;){var n=a>=359?359:a;a-=n;do{e+=A[r++]<<8,t+=e+=A[r++]}while(--n);e=(65535&e)+(e>>>16),t=(65535&t)+(t>>>16)}return 1&i&&(t+=e+=A[r]<<8),((t=(65535&t)+(t>>>16))<<16|(e=(65535&e)+(e>>>16)))>>>0},readHeaderInfo:function(A,e){var t=e.ptr,i=new Uint8Array(A,t,6),a={};if(a.fileIdentifierString=String.fromCharCode.apply(null,i),0!==a.fileIdentifierString.lastIndexOf("Lerc2",0))throw"Unexpected file identifier string (expect Lerc2 ): "+a.fileIdentifierString;t+=6;var r,n=new DataView(A,t,8),s=n.getInt32(0,!0);if(a.fileVersion=s,t+=4,s>=3&&(a.checksum=n.getUint32(4,!0),t+=4),n=new DataView(A,t,12),a.height=n.getUint32(0,!0),a.width=n.getUint32(4,!0),t+=8,s>=4?(a.numDims=n.getUint32(8,!0),t+=4):a.numDims=1,n=new DataView(A,t,40),a.numValidPixel=n.getUint32(0,!0),a.microBlockSize=n.getInt32(4,!0),a.blobSize=n.getInt32(8,!0),a.imageType=n.getInt32(12,!0),a.maxZError=n.getFloat64(16,!0),a.zMin=n.getFloat64(24,!0),a.zMax=n.getFloat64(32,!0),t+=40,e.headerInfo=a,e.ptr=t,s>=3&&(r=s>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(A,t-r,a.blobSize-14))!==a.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(A,e){var t=e.headerInfo,i=this.getDataTypeArray(t.imageType),a=t.numDims*this.getDataTypeSize(t.imageType),r=this.readSubArray(A,e.ptr,i,a),n=this.readSubArray(A,e.ptr+a,i,a);e.ptr+=2*a;var s,o=!0;for(s=0;s<t.numDims;s++)if(r[s]!==n[s]){o=!1;break}return t.minValues=r,t.maxValues=n,o},readSubArray:function(A,e,t,i){var a;if(t===Uint8Array)a=new Uint8Array(A,e,i);else{var r=new ArrayBuffer(i);new Uint8Array(r).set(new Uint8Array(A,e,i)),a=new t(r)}return a},readMask:function(A,e){var t,i,a=e.ptr,r=e.headerInfo,n=r.width*r.height,s=r.numValidPixel,o=new DataView(A,a,4),g={};if(g.numBytes=o.getUint32(0,!0),a+=4,(0===s||n===s)&&0!==g.numBytes)throw"invalid mask";if(0===s)t=new Uint8Array(Math.ceil(n/8)),g.bitset=t,i=new Uint8Array(n),e.pixels.resultMask=i,a+=g.numBytes;else if(g.numBytes>0){t=new Uint8Array(Math.ceil(n/8));var l=(o=new DataView(A,a,g.numBytes)).getInt16(0,!0),I=2,h=0,B=0;do{if(l>0)for(;l--;)t[h++]=o.getUint8(I++);else for(B=o.getUint8(I++),l=-l;l--;)t[h++]=B;l=o.getInt16(I,!0),I+=2}while(I<g.numBytes);if(-32768!==l||h<t.length)throw"Unexpected end of mask RLE encoding";i=new Uint8Array(n);var c=0,C=0;for(C=0;C<n;C++)7&C?(c=t[C>>3],c<<=7&C):c=t[C>>3],128&c&&(i[C]=1);e.pixels.resultMask=i,g.bitset=t,a+=g.numBytes}return e.ptr=a,e.mask=g,!0},readDataOneSweep:function(A,e,t,i){var a,r=e.ptr,n=e.headerInfo,s=n.numDims,o=n.width*n.height,g=n.imageType,l=n.numValidPixel*h.getDataTypeSize(g)*s,I=e.pixels.resultMask;if(t===Uint8Array)a=new Uint8Array(A,r,l);else{var B=new ArrayBuffer(l);new Uint8Array(B).set(new Uint8Array(A,r,l)),a=new t(B)}if(a.length===o*s)e.pixels.resultPixels=i?h.swapDimensionOrder(a,o,s,t,!0):a;else{e.pixels.resultPixels=new t(o*s);var c=0,C=0,E=0,f=0;if(s>1){if(i){for(C=0;C<o;C++)if(I[C])for(f=C,E=0;E<s;E++,f+=o)e.pixels.resultPixels[f]=a[c++]}else for(C=0;C<o;C++)if(I[C])for(f=C*s,E=0;E<s;E++)e.pixels.resultPixels[f+E]=a[c++]}else for(C=0;C<o;C++)I[C]&&(e.pixels.resultPixels[C]=a[c++])}return r+=l,e.ptr=r,!0},readHuffmanTree:function(A,e){var t=this.HUFFMAN_LUT_BITS_MAX,i=new DataView(A,e.ptr,16);if(e.ptr+=16,i.getInt32(0,!0)<2)throw"unsupported Huffman version";var a=i.getInt32(4,!0),r=i.getInt32(8,!0),n=i.getInt32(12,!0);if(r>=n)return!1;var s=new Uint32Array(n-r);h.decodeBits(A,e,s);var o,g,l,I,c=[];for(o=r;o<n;o++)c[g=o-(o<a?0:a)]={first:s[o-r],second:null};var C=A.byteLength-e.ptr,E=Math.ceil(C/4),f=new ArrayBuffer(4*E);new Uint8Array(f).set(new Uint8Array(A,e.ptr,C));var Q,d=new Uint32Array(f),u=0,w=0;for(Q=d[0],o=r;o<n;o++)(I=c[g=o-(o<a?0:a)].first)>0&&(c[g].second=Q<<u>>>32-I,32-u>=I?32===(u+=I)&&(u=0,Q=d[++w]):(u+=I-32,Q=d[++w],c[g].second|=Q>>>32-u));var p=0,m=0,y=new B;for(o=0;o<c.length;o++)void 0!==c[o]&&(p=Math.max(p,c[o].first));m=p>=t?t:p;var D,k,b,_,S,x=[];for(o=r;o<n;o++)if((I=c[g=o-(o<a?0:a)].first)>0)if(D=[I,g],I<=m)for(k=c[g].second<<m-I,b=1<<m-I,l=0;l<b;l++)x[k|l]=D;else for(k=c[g].second,S=y,_=I-1;_>=0;_--)k>>>_&1?(S.right||(S.right=new B),S=S.right):(S.left||(S.left=new B),S=S.left),0!==_||S.val||(S.val=D[1]);return{decodeLut:x,numBitsLUTQick:m,numBitsLUT:p,tree:y,stuffedData:d,srcPtr:w,bitPos:u}},readHuffman:function(A,e,t,i){var a,r,n,s,o,g,l,I,B,c=e.headerInfo.numDims,C=e.headerInfo.height,E=e.headerInfo.width,f=E*C,Q=this.readHuffmanTree(A,e),d=Q.decodeLut,u=Q.tree,w=Q.stuffedData,p=Q.srcPtr,m=Q.bitPos,y=Q.numBitsLUTQick,D=Q.numBitsLUT,k=0===e.headerInfo.imageType?128:0,b=e.pixels.resultMask,_=0;m>0&&(p++,m=0);var S,x=w[p],F=1===e.encodeMode,G=new t(f*c),U=G;if(c<2||F){for(S=0;S<c;S++)if(c>1&&(U=new t(G.buffer,f*S,f),_=0),e.headerInfo.numValidPixel===E*C)for(I=0,g=0;g<C;g++)for(l=0;l<E;l++,I++){if(r=0,o=s=x<<m>>>32-y,32-m<y&&(o=s|=w[p+1]>>>64-m-y),d[o])r=d[o][1],m+=d[o][0];else for(o=s=x<<m>>>32-D,32-m<D&&(o=s|=w[p+1]>>>64-m-D),a=u,B=0;B<D;B++)if(!(a=s>>>D-B-1&1?a.right:a.left).left&&!a.right){r=a.val,m=m+B+1;break}m>=32&&(m-=32,x=w[++p]),n=r-k,F?(n+=l>0?_:g>0?U[I-E]:_,n&=255,U[I]=n,_=n):U[I]=n}else for(I=0,g=0;g<C;g++)for(l=0;l<E;l++,I++)if(b[I]){if(r=0,o=s=x<<m>>>32-y,32-m<y&&(o=s|=w[p+1]>>>64-m-y),d[o])r=d[o][1],m+=d[o][0];else for(o=s=x<<m>>>32-D,32-m<D&&(o=s|=w[p+1]>>>64-m-D),a=u,B=0;B<D;B++)if(!(a=s>>>D-B-1&1?a.right:a.left).left&&!a.right){r=a.val,m=m+B+1;break}m>=32&&(m-=32,x=w[++p]),n=r-k,F?(l>0&&b[I-1]?n+=_:g>0&&b[I-E]?n+=U[I-E]:n+=_,n&=255,U[I]=n,_=n):U[I]=n}}else for(I=0,g=0;g<C;g++)for(l=0;l<E;l++)if(I=g*E+l,!b||b[I])for(S=0;S<c;S++,I+=f){if(r=0,o=s=x<<m>>>32-y,32-m<y&&(o=s|=w[p+1]>>>64-m-y),d[o])r=d[o][1],m+=d[o][0];else for(o=s=x<<m>>>32-D,32-m<D&&(o=s|=w[p+1]>>>64-m-D),a=u,B=0;B<D;B++)if(!(a=s>>>D-B-1&1?a.right:a.left).left&&!a.right){r=a.val,m=m+B+1;break}m>=32&&(m-=32,x=w[++p]),n=r-k,U[I]=n}e.ptr=e.ptr+4*(p+1)+(m>0?4:0),e.pixels.resultPixels=G,c>1&&!i&&(e.pixels.resultPixels=h.swapDimensionOrder(G,f,c,t))},decodeBits:function(A,e,t,i,a){var r=e.headerInfo,h=r.fileVersion,B=0,c=A.byteLength-e.ptr>=5?5:A.byteLength-e.ptr,C=new DataView(A,e.ptr,c),E=C.getUint8(0);B++;var f=E>>6,Q=0===f?4:3-f,d=(32&E)>0,u=31&E,w=0;if(1===Q)w=C.getUint8(B),B++;else if(2===Q)w=C.getUint16(B,!0),B+=2;else{if(4!==Q)throw"Invalid valid pixel count type";w=C.getUint32(B,!0),B+=4}var p,m,y,D,k,b,_,S,x,F=2*r.maxZError,G=r.numDims>1?r.maxValues[a]:r.zMax;if(d){for(e.counter.lut++,S=C.getUint8(B),B++,D=Math.ceil((S-1)*u/8),k=Math.ceil(D/4),m=new ArrayBuffer(4*k),y=new Uint8Array(m),e.ptr+=B,y.set(new Uint8Array(A,e.ptr,D)),_=new Uint32Array(m),e.ptr+=D,x=0;S-1>>>x;)x++;D=Math.ceil(w*x/8),k=Math.ceil(D/4),m=new ArrayBuffer(4*k),(y=new Uint8Array(m)).set(new Uint8Array(A,e.ptr,D)),p=new Uint32Array(m),e.ptr+=D,b=h>=3?g(_,u,S-1,i,F,G):s(_,u,S-1,i,F,G),h>=3?o(p,t,x,w,b):n(p,t,x,w,b)}else e.counter.bitstuffer++,x=u,e.ptr+=B,x>0&&(D=Math.ceil(w*x/8),k=Math.ceil(D/4),m=new ArrayBuffer(4*k),(y=new Uint8Array(m)).set(new Uint8Array(A,e.ptr,D)),p=new Uint32Array(m),e.ptr+=D,h>=3?null==i?I(p,t,x,w):o(p,t,x,w,!1,i,F,G):null==i?l(p,t,x,w):n(p,t,x,w,!1,i,F,G))},readTiles:function(A,e,t,i){var a=e.headerInfo,r=a.width,n=a.height,s=r*n,o=a.microBlockSize,g=a.imageType,l=h.getDataTypeSize(g),I=Math.ceil(r/o),B=Math.ceil(n/o);e.pixels.numBlocksY=B,e.pixels.numBlocksX=I,e.pixels.ptr=0;var c,C,E,f,Q,d,u,w,p,m,y=0,D=0,k=0,b=0,_=0,S=0,x=0,F=0,G=0,U=0,R=0,M=0,L=0,N=0,v=0,T=new t(o*o),q=n%o||o,J=r%o||o,O=a.numDims,H=e.pixels.resultMask,z=e.pixels.resultPixels,Y=a.fileVersion>=5?14:15,K=a.zMax;for(k=0;k<B;k++)for(_=k!==B-1?o:q,b=0;b<I;b++)for(U=k*r*o+b*o,R=r-(S=b!==I-1?o:J),w=0;w<O;w++){if(O>1?(m=z,U=k*r*o+b*o,z=new t(e.pixels.resultPixels.buffer,s*w*l,s),K=a.maxValues[w]):m=null,x=A.byteLength-e.ptr,C={},v=0,F=(c=new DataView(A,e.ptr,Math.min(10,x))).getUint8(0),v++,p=a.fileVersion>=5?4&F:0,G=F>>6&255,(F>>2&Y)!=(b*o>>3&Y))throw"integrity issue";if(p&&0===w)throw"integrity issue";if((Q=3&F)>3)throw e.ptr+=v,"Invalid block encoding ("+Q+")";if(2!==Q)if(0===Q){if(p)throw"integrity issue";if(e.counter.uncompressed++,e.ptr+=v,M=(M=_*S*l)<(L=A.byteLength-e.ptr)?M:L,E=new ArrayBuffer(M%l==0?M:M+l-M%l),new Uint8Array(E).set(new Uint8Array(A,e.ptr,M)),f=new t(E),N=0,H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(z[U]=f[N++]),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)z[U++]=f[N++];U+=R}e.ptr+=N*l}else if(d=h.getDataTypeUsed(p&&g<6?4:g,G),u=h.getOnePixel(C,v,d,c),v+=h.getDataTypeSize(d),3===Q)if(e.ptr+=v,e.counter.constantoffset++,H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(z[U]=p?Math.min(K,m[U]+u):u),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)z[U]=p?Math.min(K,m[U]+u):u,U++;U+=R}else if(e.ptr+=v,h.decodeBits(A,e,T,u,w),v=0,p)if(H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(z[U]=T[v++]+m[U]),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)z[U]=T[v++]+m[U],U++;U+=R}else if(H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(z[U]=T[v++]),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)z[U++]=T[v++];U+=R}else{if(p)if(H)for(y=0;y<_;y++)for(D=0;D<S;D++)H[U]&&(z[U]=m[U]),U++;else for(y=0;y<_;y++)for(D=0;D<S;D++)z[U]=m[U],U++;e.counter.constant++,e.ptr+=v}}O>1&&!i&&(e.pixels.resultPixels=h.swapDimensionOrder(e.pixels.resultPixels,s,O,t))},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:h.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,e){var t=A.headerInfo.zMax,i=A.headerInfo.zMin,a=A.headerInfo.maxValues,r=A.headerInfo.numDims,n=A.headerInfo.height*A.headerInfo.width,s=0,o=0,g=0,l=A.pixels.resultMask,I=A.pixels.resultPixels;if(l)if(r>1){if(e)for(s=0;s<r;s++)for(g=s*n,t=a[s],o=0;o<n;o++)l[o]&&(I[g+o]=t);else for(o=0;o<n;o++)if(l[o])for(g=o*r,s=0;s<r;s++)I[g+r]=a[s]}else for(o=0;o<n;o++)l[o]&&(I[o]=t);else if(r>1&&i!==t)if(e)for(s=0;s<r;s++)for(g=s*n,t=a[s],o=0;o<n;o++)I[g+o]=t;else for(o=0;o<n;o++)for(g=o*r,s=0;s<r;s++)I[g+s]=a[s];else for(o=0;o<n*r;o++)I[o]=t},getDataTypeArray:function(A){var e;switch(A){case 0:e=Int8Array;break;case 1:e=Uint8Array;break;case 2:e=Int16Array;break;case 3:e=Uint16Array;break;case 4:e=Int32Array;break;case 5:e=Uint32Array;break;case 6:default:e=Float32Array;break;case 7:e=Float64Array}return e},getPixelType:function(A){var e;switch(A){case 0:e="S8";break;case 1:e="U8";break;case 2:e="S16";break;case 3:e="U16";break;case 4:e="S32";break;case 5:e="U32";break;case 6:default:e="F32";break;case 7:e="F64"}return e},isValidPixelValue:function(A,e){if(null==e)return!1;var t;switch(A){case 0:t=e>=-128&&e<=127;break;case 1:t=e>=0&&e<=255;break;case 2:t=e>=-32768&&e<=32767;break;case 3:t=e>=0&&e<=65536;break;case 4:t=e>=-2147483648&&e<=2147483647;break;case 5:t=e>=0&&e<=4294967296;break;case 6:t=e>=-34027999387901484e22&&e<=34027999387901484e22;break;case 7:t=e>=-17976931348623157e292&&e<=17976931348623157e292;break;default:t=!1}return t},getDataTypeSize:function(A){var e=0;switch(A){case 0:case 1:e=1;break;case 2:case 3:e=2;break;case 4:case 5:case 6:e=4;break;case 7:e=8;break;default:e=A}return e},getDataTypeUsed:function(A,e){var t=A;switch(A){case 2:case 4:t=A-e;break;case 3:case 5:t=A-2*e;break;case 6:t=0===e?A:1===e?2:1;break;case 7:t=0===e?A:A-2*e+1;break;default:t=A}return t},getOnePixel:function(A,e,t,i){var a=0;switch(t){case 0:a=i.getInt8(e);break;case 1:a=i.getUint8(e);break;case 2:a=i.getInt16(e,!0);break;case 3:a=i.getUint16(e,!0);break;case 4:a=i.getInt32(e,!0);break;case 5:a=i.getUInt32(e,!0);break;case 6:a=i.getFloat32(e,!0);break;case 7:a=i.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return a},swapDimensionOrder:function(A,e,t,i,a){var r=0,n=0,s=0,o=0,g=A;if(t>1)if(g=new i(e*t),a)for(r=0;r<e;r++)for(o=r,s=0;s<t;s++,o+=e)g[o]=A[n++];else for(r=0;r<e;r++)for(o=r,s=0;s<t;s++,o+=e)g[n++]=A[o];return g}},B=function(A,e,t){this.val=A,this.left=e,this.right=t},{decode:function(A,e){var t=(e=e||{}).noDataValue,i=0,a={};if(a.ptr=e.inputOffset||0,a.pixels={},h.readHeaderInfo(A,a)){var r=a.headerInfo,n=r.fileVersion,s=h.getDataTypeArray(r.imageType);if(n>5)throw"unsupported lerc version 2."+n;h.readMask(A,a),r.numValidPixel===r.width*r.height||a.pixels.resultMask||(a.pixels.resultMask=e.maskData);var o=r.width*r.height;a.pixels.resultPixels=new s(o*r.numDims),a.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var g,l=!e.returnPixelInterleavedDims;if(0!==r.numValidPixel)if(r.zMax===r.zMin)h.constructConstantSurface(a,l);else if(n>=4&&h.checkMinMaxRanges(A,a))h.constructConstantSurface(a,l);else{var I=new DataView(A,a.ptr,2),B=I.getUint8(0);if(a.ptr++,B)h.readDataOneSweep(A,a,s,l);else if(n>1&&r.imageType<=1&&Math.abs(r.maxZError-.5)<1e-5){var c=I.getUint8(1);if(a.ptr++,a.encodeMode=c,c>2||n<4&&c>1)throw"Invalid Huffman flag "+c;c?h.readHuffman(A,a,s,l):h.readTiles(A,a,s,l)}else h.readTiles(A,a,s,l)}a.eofOffset=a.ptr,e.inputOffset?(g=a.headerInfo.blobSize+e.inputOffset-a.ptr,Math.abs(g)>=1&&(a.eofOffset=e.inputOffset+a.headerInfo.blobSize)):(g=a.headerInfo.blobSize-a.ptr,Math.abs(g)>=1&&(a.eofOffset=a.headerInfo.blobSize));var C={width:r.width,height:r.height,pixelData:a.pixels.resultPixels,minValue:r.zMin,maxValue:r.zMax,validPixelCount:r.numValidPixel,dimCount:r.numDims,dimStats:{minValues:r.minValues,maxValues:r.maxValues},maskData:a.pixels.resultMask};if(a.pixels.resultMask&&h.isValidPixelValue(r.imageType,t)){var E=a.pixels.resultMask;for(i=0;i<o;i++)E[i]||(C.pixelData[i]=t);C.noDataValue=t}return a.noDataValue=t,e.returnFileInfo&&(C.fileInfo=h.formatFileInfo(a)),C}},getBandCount:function(A){for(var e=0,t=0,i={ptr:0,pixels:{}};t<A.byteLength-58;)h.readHeaderInfo(A,i),t+=i.headerInfo.blobSize,e++,i.ptr=t;return e}}),Q=(c=new ArrayBuffer(4),C=new Uint8Array(c),new Uint32Array(c)[0]=1,1===C[0]),d={decode:function(A,e){if(!Q)throw"Big endian system is not supported.";var t,i,a=(e=e||{}).inputOffset||0,r=new Uint8Array(A,a,10),n=String.fromCharCode.apply(null,r);if("CntZImage"===n.trim())t=E,i=1;else{if("Lerc2"!==n.substring(0,5))throw"Unexpected file identifier string: "+n;t=f,i=2}for(var s,o,g,l,I,h,B=0,c=A.byteLength-10,C=[],d={width:0,height:0,pixels:[],pixelType:e.pixelType,mask:null,statistics:[]},u=0;a<c;){var w=t.decode(A,{inputOffset:a,encodedMaskData:s,maskData:g,returnMask:0===B,returnEncodedMask:0===B,returnFileInfo:!0,returnPixelInterleavedDims:e.returnPixelInterleavedDims,pixelType:e.pixelType||null,noDataValue:e.noDataValue||null});a=w.fileInfo.eofOffset,g=w.maskData,0===B&&(s=w.encodedMaskData,d.width=w.width,d.height=w.height,d.dimCount=w.dimCount||1,d.pixelType=w.pixelType||w.fileInfo.pixelType,d.mask=g),i>1&&(g&&C.push(g),w.fileInfo.mask&&w.fileInfo.mask.numBytes>0&&u++),B++,d.pixels.push(w.pixelData),d.statistics.push({minValue:w.minValue,maxValue:w.maxValue,noDataValue:w.noDataValue,dimStats:w.dimStats})}if(i>1&&u>1){for(h=d.width*d.height,d.bandMasks=C,(g=new Uint8Array(h)).set(C[0]),l=1;l<C.length;l++)for(o=C[l],I=0;I<h;I++)g[I]=g[I]&o[I];d.maskData=g}return d}};Tr.exports?Tr.exports=d:this.Lerc=d}();var Or=gA(Jr.exports);let Hr,zr,Yr;const Kr={env:{emscripten_notify_memory_growth:function(A){Yr=new Uint8Array(zr.exports.memory.buffer)}}};const Pr="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",Vr=new class{init(){return Hr||(Hr="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+Pr).then((A=>A.arrayBuffer())).then((A=>WebAssembly.instantiate(A,Kr))).then(this._init):WebAssembly.instantiate(Buffer.from(Pr,"base64"),Kr).then(this._init),Hr)}_init(A){zr=A.instance,Kr.env.emscripten_notify_memory_growth(0)}decode(A,e=0){if(!zr)throw new Error("ZSTDDecoder: Await .init() before decoding.");const t=A.byteLength,i=zr.exports.malloc(t);Yr.set(A,i),e=e||Number(zr.exports.ZSTD_findDecompressedSize(i,t));const a=zr.exports.malloc(e),r=zr.exports.ZSTD_decompress(a,e,i,t),n=Yr.slice(a,a+r);return zr.exports.free(i),zr.exports.free(a),n}};var Zr=Object.freeze({__proto__:null,default:class extends Ue{constructor(A){super(),this.planarConfiguration=void 0!==A.PlanarConfiguration?A.PlanarConfiguration:1,this.samplesPerPixel=void 0!==A.SamplesPerPixel?A.SamplesPerPixel:1,this.addCompression=A.LercParameters[zA]}decodeBlock(A){switch(this.addCompression){case YA:break;case KA:A=Nr(new Uint8Array(A)).buffer;break;case PA:A=Vr.decode(new Uint8Array(A)).buffer;break;default:throw new Error(`Unsupported LERC additional compression method identifier: ${this.addCompression}`)}return Or.decode(A,{returnPixelInterleavedDims:1===this.planarConfiguration}).pixels[0].buffer}},zstd:Vr});var Xr=Object.freeze({__proto__:null,default:class extends Ue{constructor(){if(super(),"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 decode(A,e){const t=new Blob([e]),i=await createImageBitmap(t);let a;"undefined"!=typeof document?(a=document.createElement("canvas"),a.width=i.width,a.height=i.height):a=new OffscreenCanvas(i.width,i.height);const r=a.getContext("2d");return r.drawImage(i,0,0),r.getImageData(0,0,i.width,i.height).data.buffer}}});export{at as CogBitmapLayer,ot as CogTerrainLayer,et as CogTiles,Ze as GeoImage};
5
5
  //# sourceMappingURL=index.min.js.map