define(["./Matrix2-ae0e0b05","./AxisAlignedBoundingBox-699685f5","./Transforms-a6362ad2","./when-e3a49219","./RuntimeError-ffc802eb","./TerrainEncoding-d0dbd995","./ComponentDatatype-64cf6611","./OrientedBoundingBox-d2fffacc","./WebMercatorProjection-043b7eb3","./AttributeCompression-8cb78525","./createTaskProcessorWorker","./PixelFormat-83d70a69","./WebGLConstants-1c8239cc","./combine-c7a1ec8a","./EllipsoidTangentPlane-e3af9e65","./IntersectionTests-8be403d7","./Plane-2bf1bb80"],(function(e,t,a,i,r,n,s,l,o,f,u,c,d,h,m,g,p){"use strict";var w=Object.freeze({NONE:0,LERC:1}),x={};x.DEFAULT_STRUCTURE=Object.freeze({heightScale:1,heightOffset:0,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1});var y=new e.Cartesian3,k=new e.Matrix4,v=new e.Cartesian3,b=new e.Cartesian3;x.computeVertices=function(r){var u,c,d,h,m=Math.cos,g=Math.sin,p=Math.sqrt,w=Math.atan,I=Math.exp,U=s.CesiumMath.PI_OVER_TWO,T=s.CesiumMath.toRadians,M=r.heightmap,V=r.width,A=r.height,B=r.skirtHeight,D=B>0,S=i.defaultValue(r.isGeographic,!0),P=i.defaultValue(r.ellipsoid,e.Ellipsoid.WGS84),E=1/P.maximumRadius,C=e.Rectangle.clone(r.nativeRectangle),F=e.Rectangle.clone(r.rectangle);i.defined(F)?(u=F.west,c=F.south,d=F.east,h=F.north):S?(u=T(C.west),c=T(C.south),d=T(C.east),h=T(C.north)):(u=C.west*E,c=U-2*w(I(-C.south*E)),d=C.east*E,h=U-2*w(I(-C.north*E)));var N=r.relativeToCenter,O=i.defined(N);N=O?N:e.Cartesian3.ZERO;var R=i.defaultValue(r.includeWebMercatorT,!1),L=i.defaultValue(r.exaggeration,1),z=i.defaultValue(r.exaggerationRelativeHeight,0),H=1!==L,_=i.defaultValue(r.structure,x.DEFAULT_STRUCTURE),Y=i.defaultValue(_.heightScale,x.DEFAULT_STRUCTURE.heightScale),W=i.defaultValue(_.heightOffset,x.DEFAULT_STRUCTURE.heightOffset),X=i.defaultValue(_.elementsPerHeight,x.DEFAULT_STRUCTURE.elementsPerHeight),Z=i.defaultValue(_.stride,x.DEFAULT_STRUCTURE.stride),j=i.defaultValue(_.elementMultiplier,x.DEFAULT_STRUCTURE.elementMultiplier),G=i.defaultValue(_.isBigEndian,x.DEFAULT_STRUCTURE.isBigEndian),q=e.Rectangle.computeWidth(C),Q=e.Rectangle.computeHeight(C),J=q/(V-1),K=Q/(A-1);S||(q*=E,Q*=E);var $,ee,te=P.radiiSquared,ae=te.x,ie=te.y,re=te.z,ne=65536,se=-65536,le=a.Transforms.eastNorthUpToFixedFrame(N,P),oe=e.Matrix4.inverseTransformation(le,k);R&&($=o.WebMercatorProjection.geodeticLatitudeToMercatorAngle(c),ee=1/(o.WebMercatorProjection.geodeticLatitudeToMercatorAngle(h)-$));var fe=v;fe.x=Number.POSITIVE_INFINITY,fe.y=Number.POSITIVE_INFINITY,fe.z=Number.POSITIVE_INFINITY;var ue=b;ue.x=Number.NEGATIVE_INFINITY,ue.y=Number.NEGATIVE_INFINITY,ue.z=Number.NEGATIVE_INFINITY;var ce=Number.POSITIVE_INFINITY,de=V*A,he=de+(B>0?2*V+2*A:0),me=new Array(he),ge=new Array(he),pe=new Array(he),we=R?new Array(he):[],xe=H?new Array(he):[],ye=0,ke=A,ve=0,be=V;D&&(--ye,++ke,--ve,++be);for(var Ie=1e-5,Ue=ye;Ue=A&&(Te=A-1);var Me=C.north-K*Te,Ve=((Me=S?T(Me):U-2*w(I(-Me*E)))-c)/(h-c);Ve=s.CesiumMath.clamp(Ve,0,1);var Ae=Ue===ye,Be=Ue===ke-1;B>0&&(Ae?Me+=Ie*Q:Be&&(Me-=Ie*Q));var De,Se=m(Me),Pe=g(Me),Ee=re*Pe;R&&(De=(o.WebMercatorProjection.geodeticLatitudeToMercatorAngle(Me)-$)*ee);for(var Ce=ve;Ce=V&&(Fe=V-1);var Ne,Oe,Re=Te*(V*Z)+Fe*Z;if(1===X)Ne=M[Re];else if(Ne=0,G)for(Oe=0;Oe=0;--Oe)Ne=Ne*j+M[Re+Oe];Ne=Ne*Y+W,se=Math.max(se,Ne),ne=Math.min(ne,Ne);var Le=C.west+J*Fe;S?Le=T(Le):Le*=E;var ze=(Le-u)/(d-u);ze=s.CesiumMath.clamp(ze,0,1);var He=Te*V+Fe;if(B>0){var _e=Ce===ve,Ye=Ce===be-1,We=Ae||Be||_e||Ye;if((Ae||Be)&&(_e||Ye))continue;We&&(Ne-=B,_e?(He=de+(A-Te-1),Le-=Ie*q):Be?He=de+A+(V-Fe-1):Ye?(He=de+A+V+Te,Le+=Ie*q):Ae&&(He=de+A+V+A+Fe))}var Xe=Se*m(Le),Ze=Se*g(Le),je=ae*Xe,Ge=ie*Ze,qe=1/p(je*Xe+Ge*Ze+Ee*Pe),Qe=je*qe,Je=Ge*qe,Ke=Ee*qe,$e=new e.Cartesian3;$e.x=Qe+Xe*Ne,$e.y=Je+Ze*Ne,$e.z=Ke+Pe*Ne,e.Matrix4.multiplyByPoint(oe,$e,y),e.Cartesian3.minimumByComponent(y,fe,fe),e.Cartesian3.maximumByComponent(y,ue,ue),ce=Math.min(ce,Ne),me[He]=$e,pe[He]=new e.Cartesian2(ze,Ve),ge[He]=Ne,R&&(we[He]=De),H&&(xe[He]=P.geodeticSurfaceNormal($e))}}var et=new Array(he);if(B>0)for(var tt=0,at=0;at=A-1&&(rt=0);for(var nt=0;nt=V-1&&(lt=0),tt=at*V+nt;try{var ot=me[(at+it)*V+nt],ft=me[(at+rt)*V+nt],ut=me[at*V+(nt+st)],ct=me[at*V+(nt+lt)],dt=e.Cartesian3.subtract(ut,ct,new e.Cartesian3),ht=e.Cartesian3.subtract(ot,ft,new e.Cartesian3),mt=e.Cartesian3.cross(dt,ht,new e.Cartesian3),gt=e.Cartesian3.normalize(mt,new e.Cartesian3);et[tt]=f.AttributeCompression.octEncodeFloat(gt)}catch(e){et[tt]=0}}}var pt,wt,xt=a.BoundingSphere.fromPoints(me);(i.defined(F)&&(pt=l.OrientedBoundingBox.fromRectangle(F,ne,se,P)),O)&&(wt=new n.EllipsoidalOccluder(P).computeHorizonCullingPointPossiblyUnderEllipsoid(N,me,ne));var yt=new t.AxisAlignedBoundingBox(fe,ue,N),kt=new n.TerrainEncoding(N,yt,ce,se,le,B>0,R,H,L,z),vt=new Float32Array(he*kt.stride),bt=0;for(nt=0;nt0?et[nt]:void 0,we[nt],xe[nt],B>0||void 0);return{vertices:vt,maximumHeight:se,minimumHeight:ne,encoding:kt,boundingSphere3D:xt,orientedBoundingBox:pt,occludeePointInScaledSpace:wt}};var I=i.createCommonjsModule((function(e){ /* Copyright 2015-2018 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 */ !function(){var t,a,i,r,n,s,l,o,f,u,c,d,h,m,g,p,w=(t={defaultNoDataValue:-34027999387901484e22,decode:function(e,s){var l=(s=s||{}).encodedMaskData||null===s.encodedMaskData,o=n(e,s.inputOffset||0,l),f=null!==s.noDataValue?s.noDataValue:t.defaultNoDataValue,u=a(o,s.pixelType||Float32Array,s.encodedMaskData,f,s.returnMask),c={width:o.width,height:o.height,pixelData:u.resultPixels,minValue:u.minValue,maxValue:o.pixels.maxValue,noDataValue:f};return u.resultMask&&(c.maskData=u.resultMask),s.returnEncodedMask&&o.mask&&(c.encodedMaskData=o.mask.bitset?o.mask.bitset:null),s.returnFileInfo&&(c.fileInfo=i(o),s.computeUsedBitDepths&&(c.fileInfo.bitDepths=r(o))),c}},a=function(e,t,a,i,r){var n,l,o,f=0,u=e.pixels.numBlocksX,c=e.pixels.numBlocksY,d=Math.floor(e.width/u),h=Math.floor(e.height/c),m=2*e.maxZError,g=Number.MAX_VALUE;a=a||(e.mask?e.mask.bitset:null),l=new t(e.width*e.height),r&&a&&(o=new Uint8Array(e.width*e.height));for(var p,w,x=new Float32Array(d*h),y=0;y<=c;y++){var k=y!==c?h:e.height%c;if(0!==k)for(var v=0;v<=u;v++){var b=v!==u?d:e.width%u;if(0!==b){var I,U,T,M,V=y*e.width*h+v*d,A=e.width-b,B=e.pixels.blocks[f];if(B.encoding<2?(0===B.encoding?I=B.rawData:(s(B.stuffedData,B.bitsPerPixel,B.numValidPixels,B.offset,m,x,e.pixels.maxValue),I=x),U=0):T=2===B.encoding?0:B.offset,a)for(w=0;w>3],M<<=7&V),p=0;p>3]),128&M?(o&&(o[V]=1),g=g>(n=B.encoding<2?I[U++]:T)?n:g,l[V++]=n):(o&&(o[V]=0),l[V++]=i),M<<=1;V+=A}else if(B.encoding<2)for(w=0;w(n=I[U++])?n:g,l[V++]=n;V+=A}else for(g=g>T?T:g,w=0;w0){var s=new Uint8Array(Math.ceil(i.width*i.height/8)),l=(n=new DataView(e,t,i.mask.numBytes)).getInt16(0,!0),o=2,f=0;do{if(l>0)for(;l--;)s[f++]=n.getUint8(o++);else{var u=n.getUint8(o++);for(l=-l;l--;)s[f++]=u}l=n.getInt16(o,!0),o+=2}while(o0?1:0),m=d+(i.height%d>0?1:0);i.pixels.blocks=new Array(h*m);for(var g=0,p=0;p3)throw"Invalid block encoding ("+k.encoding+")";if(2!==k.encoding){if(0!==v&&2!==v){if(v>>=6,k.offsetType=v,2===v)k.offset=n.getInt8(1),x++;else if(1===v)k.offset=n.getInt16(1,!0),x+=2;else{if(0!==v)throw"Invalid block offset type";k.offset=n.getFloat32(1,!0),x+=4}if(1===k.encoding)if(v=n.getUint8(x),x++,k.bitsPerPixel=63&v,v>>=6,k.numValidPixelsType=v,2===v)k.numValidPixels=n.getUint8(x),x++;else if(1===v)k.numValidPixels=n.getUint16(x,!0),x+=2;else{if(0!==v)throw"Invalid valid pixel count type";k.numValidPixels=n.getUint32(x,!0),x+=4}}var b;if(t+=x,3!==k.encoding)if(0===k.encoding){var I=(i.pixels.numBytes-1)/4;if(I!==Math.floor(I))throw"uncompressed block has invalid length";b=new ArrayBuffer(4*I),new Uint8Array(b).set(new Uint8Array(e,t,4*I));var U=new Float32Array(b);k.rawData=U,t+=4*I}else if(1===k.encoding){var T=Math.ceil(k.numValidPixels*k.bitsPerPixel/8),M=Math.ceil(T/4);b=new ArrayBuffer(4*M),new Uint8Array(b).set(new Uint8Array(e,t,T)),k.stuffedData=new Uint32Array(b),t+=T}}else t++}return i.eofOffset=t,i},s=function(e,t,a,i,r,n,s){var l,o,f,u=(1<=t)o=f>>>d-t&u,d-=t;else{var g=t-d;o=(f&u)<>>(d=32-g)}n[l]=o=a?(f=u>>>g-a&h,g-=a):(f=(u&h)<<(c=a-g)&h,f+=(u=e[m++])>>>(g=32-c)),t[o]=r[f];else for(d=Math.ceil((l-n)/s),o=0;o=a?(f=u>>>g-a&h,g-=a):(f=(u&h)<<(c=a-g)&h,f+=(u=e[m++])>>>(g=32-c)),t[o]=f=t?(d=s>>>c-t&l,c-=t):(d=(s&l)<<(u=t-c)&l,d+=(s=e[o++])>>>(c=32-u)),h[f]=d=a?(f=u>>>g&d,m-=a,g+=a):(f=u>>>g&d,m=32-(c=a-m),f|=((u=e[h++])&(1<=a?(f=u>>>g&d,m-=a,g+=a):(f=u>>>g&d,m=32-(c=a-m),f|=((u=e[h++])&(1<=t?(d=s>>>h&l,c-=t,h+=t):(d=s>>>h&l,c=32-(u=t-c),d|=((s=e[o++])&(1<=a?(n=s>>>u-a&o,u-=a):(n=(s&o)<<(l=a-u)&o,n+=(s=e[f++])>>>(u=32-l)),t[r]=n;return t},d=function(e,t,a,i){var r,n,s,l,o=(1<=a?(n=s>>>c&o,u-=a,c+=a):(n=s>>>c&o,u=32-(l=a-u),n|=((s=e[f++])&(1<=359?359:r;r-=s;do{t+=e[n++]<<8,a+=t+=e[n++]}while(--s);t=(65535&t)+(t>>>16),a=(65535&a)+(a>>>16)}return 1&i&&(a+=t+=e[n]<<8),((a=(65535&a)+(a>>>16))<<16|(t=(65535&t)+(t>>>16)))>>>0},readHeaderInfo:function(e,t){var a=t.ptr,i=new Uint8Array(e,a,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;a+=6;var n,s=new DataView(e,a,8),l=s.getInt32(0,!0);if(r.fileVersion=l,a+=4,l>=3&&(r.checksum=s.getUint32(4,!0),a+=4),s=new DataView(e,a,12),r.height=s.getUint32(0,!0),r.width=s.getUint32(4,!0),a+=8,l>=4?(r.numDims=s.getUint32(8,!0),a+=4):r.numDims=1,s=new DataView(e,a,40),r.numValidPixel=s.getUint32(0,!0),r.microBlockSize=s.getInt32(4,!0),r.blobSize=s.getInt32(8,!0),r.imageType=s.getInt32(12,!0),r.maxZError=s.getFloat64(16,!0),r.zMin=s.getFloat64(24,!0),r.zMax=s.getFloat64(32,!0),a+=40,t.headerInfo=r,t.ptr=a,l>=3&&(n=l>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(e,a-n,r.blobSize-14))!==r.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(e,t){var a=t.headerInfo,i=this.getDataTypeArray(a.imageType),r=a.numDims*this.getDataTypeSize(a.imageType),n=this.readSubArray(e,t.ptr,i,r),s=this.readSubArray(e,t.ptr+r,i,r);t.ptr+=2*r;var l,o=!0;for(l=0;l0){a=new Uint8Array(Math.ceil(s/8));var u=(o=new DataView(e,r,f.numBytes)).getInt16(0,!0),c=2,d=0,h=0;do{if(u>0)for(;u--;)a[d++]=o.getUint8(c++);else for(h=o.getUint8(c++),u=-u;u--;)a[d++]=h;u=o.getInt16(c,!0),c+=2}while(c>3],m<<=7&g):m=a[g>>3],128&m&&(i[g]=1);t.pixels.resultMask=i,f.bitset=a,r+=f.numBytes}return t.ptr=r,t.mask=f,!0},readDataOneSweep:function(e,t,a){var i,r=t.ptr,n=t.headerInfo,s=n.numDims,l=n.width*n.height,o=n.imageType,f=n.numValidPixel*h.getDataTypeSize(o)*s,u=t.pixels.resultMask;if(a===Uint8Array)i=new Uint8Array(e,r,f);else{var c=new ArrayBuffer(f);new Uint8Array(c).set(new Uint8Array(e,r,f)),i=new a(c)}if(i.length===l*s)t.pixels.resultPixels=i;else{t.pixels.resultPixels=new a(l*s);var d=0,m=0,g=0,p=0;if(s>1)for(g=0;g=s)return!1;var l=new Uint32Array(s-n);h.decodeBits(e,t,l);var o,f,u,c,d=[];for(o=n;o0&&(d[f].second=x<>>32-c,32-k>=c?32===(k+=c)&&(k=0,x=y[++v]):(k+=c-32,x=y[++v],d[f].second|=x>>>32-k));var b=0,I=0,U=new m;for(o=0;o=a?a:b,b>=30&&console.log("WARning, large NUM LUT BITS IS "+b);var T,M,V,A,B,D=[];for(o=n;o0)if(T=[c,f],c<=I)for(M=d[f].second<=0;A--)M>>>A&1?(B.right||(B.right=new m),B=B.right):(B.left||(B.left=new m),B=B.left),0!==A||B.val||(B.val=T[1]);return{decodeLut:D,numBitsLUTQick:I,numBitsLUT:b,tree:U,stuffedData:y,srcPtr:v,bitPos:k}},readHuffman:function(e,t,a){var i,r,n,s,l,o,f,u,c,d=t.headerInfo,h=d.numDims,m=t.headerInfo.height,g=t.headerInfo.width,p=g*m,w=this.readHuffmanTree(e,t),x=w.decodeLut,y=w.tree,k=w.stuffedData,v=w.srcPtr,b=w.bitPos,I=w.numBitsLUTQick,U=w.numBitsLUT,T=0===t.headerInfo.imageType?128:0,M=t.pixels.resultMask,V=0;b>0&&(v++,b=0);var A,B=k[v],D=1===t.encodeMode,S=new a(p*h),P=S;for(A=0;A1&&(P=new a(S.buffer,p*A,p),V=0),t.headerInfo.numValidPixel===g*m)for(u=0,o=0;o>>32-I,32-b>>64-b-I),x[l])r=x[l][1],b+=x[l][0];else for(l=s=B<>>32-U,32-b>>64-b-U),i=y,c=0;c>>U-c-1&1?i.right:i.left).left&&!i.right){r=i.val,b=b+c+1;break}b>=32&&(b-=32,B=k[++v]),n=r-T,D?(n+=f>0?V:o>0?P[u-g]:V,n&=255,P[u]=n,V=n):P[u]=n}else for(u=0,o=0;o>>32-I,32-b>>64-b-I),x[l])r=x[l][1],b+=x[l][0];else for(l=s=B<>>32-U,32-b>>64-b-U),i=y,c=0;c>>U-c-1&1?i.right:i.left).left&&!i.right){r=i.val,b=b+c+1;break}b>=32&&(b-=32,B=k[++v]),n=r-T,D?(f>0&&M[u-1]?n+=V:o>0&&M[u-g]?n+=P[u-g]:n+=V,n&=255,P[u]=n,V=n):P[u]=n}t.ptr=t.ptr+4*(v+1)+(b>0?4:0)}t.pixels.resultPixels=S},decodeBits:function(e,t,a,i,r){var n=t.headerInfo,s=n.fileVersion,h=0,m=new DataView(e,t.ptr,5),g=m.getUint8(0);h++;var p=g>>6,w=0===p?4:3-p,x=(32&g)>0,y=31&g,k=0;if(1===w)k=m.getUint8(h),h++;else if(2===w)k=m.getUint16(h,!0),h+=2;else{if(4!==w)throw"Invalid valid pixel count type";k=m.getUint32(h,!0),h+=4}var v,b,I,U,T,M,V,A,B,D=2*n.maxZError,S=n.numDims>1?n.maxValues[r]:n.zMax;if(x){for(t.counter.lut++,A=m.getUint8(h),h++,U=Math.ceil((A-1)*y/8),T=Math.ceil(U/4),b=new ArrayBuffer(4*T),I=new Uint8Array(b),t.ptr+=h,I.set(new Uint8Array(e,t.ptr,U)),V=new Uint32Array(b),t.ptr+=U,B=0;A-1>>>B;)B++;U=Math.ceil(k*B/8),T=Math.ceil(U/4),b=new ArrayBuffer(4*T),(I=new Uint8Array(b)).set(new Uint8Array(e,t.ptr,U)),v=new Uint32Array(b),t.ptr+=U,M=s>=3?u(V,y,A-1,i,D,S):o(V,y,A-1,i,D,S),s>=3?f(v,a,B,k,M):l(v,a,B,k,M)}else t.counter.bitstuffer++,B=y,t.ptr+=h,B>0&&(U=Math.ceil(k*B/8),T=Math.ceil(U/4),b=new ArrayBuffer(4*T),(I=new Uint8Array(b)).set(new Uint8Array(e,t.ptr,U)),v=new Uint32Array(b),t.ptr+=U,s>=3?null==i?d(v,a,B,k):f(v,a,B,k,!1,i,D,S):null==i?c(v,a,B,k):l(v,a,B,k,!1,i,D,S))},readTiles:function(e,t,a){var i=t.headerInfo,r=i.width,n=i.height,s=i.microBlockSize,l=i.imageType,o=h.getDataTypeSize(l),f=Math.ceil(r/s),u=Math.ceil(n/s);t.pixels.numBlocksY=u,t.pixels.numBlocksX=f,t.pixels.ptr=0;var c,d,m,g,p,w,x,y,k=0,v=0,b=0,I=0,U=0,T=0,M=0,V=0,A=0,B=0,D=0,S=0,P=0,E=0,C=0,F=new a(s*s),N=n%s||s,O=r%s||s,R=i.numDims,L=t.pixels.resultMask,z=t.pixels.resultPixels;for(b=0;b1&&(z=new a(t.pixels.resultPixels.buffer,r*n*y*o,r*n)),M=e.byteLength-t.ptr,d={},C=0,C++,A=(V=(c=new DataView(e,t.ptr,Math.min(10,M))).getUint8(0))>>6&255,(V>>2&15)!=(I*s>>3&15))throw"integrity issue";if((p=3&V)>3)throw t.ptr+=C,"Invalid block encoding ("+p+")";if(2!==p)if(0===p){if(t.counter.uncompressed++,t.ptr+=C,S=(S=U*T*o)<(P=e.byteLength-t.ptr)?S:P,m=new ArrayBuffer(S%o==0?S:S+o-S%o),new Uint8Array(m).set(new Uint8Array(e,t.ptr,S)),g=new a(m),E=0,L)for(k=0;k1)for(n=0;n=-128&&t<=127;break;case 1:a=t>=0&&t<=255;break;case 2:a=t>=-32768&&t<=32767;break;case 3:a=t>=0&&t<=65536;break;case 4:a=t>=-2147483648&&t<=2147483647;break;case 5:a=t>=0&&t<=4294967296;break;case 6:a=t>=-34027999387901484e22&&t<=34027999387901484e22;break;case 7:a=t>=5e-324&&t<=17976931348623157e292;break;default:a=!1}return a},getDataTypeSize:function(e){var t=0;switch(e){case 0:case 1:t=1;break;case 2:case 3:t=2;break;case 4:case 5:case 6:t=4;break;case 7:t=8;break;default:t=e}return t},getDataTypeUsed:function(e,t){var a=e;switch(e){case 2:case 4:a=e-t;break;case 3:case 5:a=e-2*t;break;case 6:a=0===t?e:1===t?2:1;break;case 7:a=0===t?e:e-2*t+1;break;default:a=e}return a},getOnePixel:function(e,t,a,i){var r=0;switch(a){case 0:r=i.getInt8(t);break;case 1:r=i.getUint8(t);break;case 2:r=i.getInt16(t,!0);break;case 3:r=i.getUint16(t,!0);break;case 4:r=i.getInt32(t,!0);break;case 5:r=i.getUInt32(t,!0);break;case 6:r=i.getFloat32(t,!0);break;case 7:r=i.getFloat64(t,!0);break;default:throw"the decoder does not understand this pixel type"}return r}},m=function(e,t,a){this.val=e,this.left=t,this.right=a},{decode:function(e,t){var a=(t=t||{}).noDataValue,i=0,r={};r.ptr=t.inputOffset||0,r.pixels={},h.readHeaderInfo(e,r);var n=r.headerInfo,s=n.fileVersion,l=h.getDataTypeArray(n.imageType);h.readMask(e,r),n.numValidPixel===n.width*n.height||r.pixels.resultMask||(r.pixels.resultMask=t.maskData);var o,f=n.width*n.height;if(r.pixels.resultPixels=new l(f*n.numDims),r.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0},0!==n.numValidPixel)if(n.zMax===n.zMin)h.constructConstantSurface(r);else if(s>=4&&h.checkMinMaxRanges(e,r))h.constructConstantSurface(r);else{var u=new DataView(e,r.ptr,2),c=u.getUint8(0);if(r.ptr++,c)h.readDataOneSweep(e,r,l);else if(s>1&&n.imageType<=1&&Math.abs(n.maxZError-.5)<1e-5){var d=u.getUint8(1);if(r.ptr++,r.encodeMode=d,d>2||s<4&&d>1)throw"Invalid Huffman flag "+d;d?h.readHuffman(e,r,l):h.readTiles(e,r,l)}else h.readTiles(e,r,l)}r.eofOffset=r.ptr,t.inputOffset?(o=r.headerInfo.blobSize+t.inputOffset-r.ptr,Math.abs(o)>=1&&(r.eofOffset=t.inputOffset+r.headerInfo.blobSize)):(o=r.headerInfo.blobSize-r.ptr,Math.abs(o)>=1&&(r.eofOffset=r.headerInfo.blobSize));var m={width:n.width,height:n.height,pixelData:r.pixels.resultPixels,minValue:n.zMin,maxValue:n.zMax,validPixelCount:n.numValidPixel,dimCount:n.numDims,dimStats:{minValues:n.minValues,maxValues:n.maxValues},maskData:r.pixels.resultMask};if(r.pixels.resultMask&&h.isValidPixelValue(n.imageType,a)){var g=r.pixels.resultMask;for(i=0;i1&&k.fileInfo.mask&&k.fileInfo.mask.numBytes>0&&g.push(k.maskData),h++,p.pixels.push(k.pixelData),p.statistics.push({minValue:k.minValue,maxValue:k.maxValue,noDataValue:k.noDataValue,dimStats:k.dimStats})}if(i>1&&g.length>1){for(d=p.width*p.height,p.bandMasks=g,(f=new Uint8Array(d)).set(g[0]),u=1;u