{
  "version": 3,
  "sources": ["dist/geotiff-tilesource.lite.mjs", "tiff-metadata.mjs", "auto-config.mjs", "tiff-statistics.mjs", "index.mjs"],
  "sourcesContent": ["var ar = Object.defineProperty;\nvar sr = (t, e, A) => e in t ? ar(t, e, { enumerable: !0, configurable: !0, writable: !0, value: A }) : t[e] = A;\nvar ye = (t, e, A) => sr(t, typeof e != \"symbol\" ? e + \"\" : e, A);\nfunction Z(t) {\n  return (e, ...A) => gr(t, e, A);\n}\nfunction NA(t, e) {\n  return Z(\n    ti(\n      t,\n      e\n    ).get\n  );\n}\nconst {\n  apply: gr,\n  getOwnPropertyDescriptor: ti,\n  getPrototypeOf: ze,\n  ownKeys: Ir\n} = Reflect, {\n  iterator: jA,\n  toStringTag: Br\n} = Symbol, lr = Object, {\n  create: $e,\n  defineProperty: fr\n} = lr, cr = Array, Cr = cr.prototype, ii = Cr[jA], Er = Z(ii), ri = ArrayBuffer, Qr = ri.prototype;\nNA(Qr, \"byteLength\");\nconst Ct = typeof SharedArrayBuffer < \"u\" ? SharedArrayBuffer : null;\nCt && NA(Ct.prototype, \"byteLength\");\nconst ni = ze(Uint8Array);\nni.from;\nconst AA = ni.prototype;\nAA[jA];\nZ(AA.keys);\nZ(\n  AA.values\n);\nZ(\n  AA.entries\n);\nZ(AA.set);\nZ(\n  AA.reverse\n);\nZ(AA.fill);\nZ(\n  AA.copyWithin\n);\nZ(AA.sort);\nZ(AA.slice);\nZ(\n  AA.subarray\n);\nNA(\n  AA,\n  \"buffer\"\n);\nNA(\n  AA,\n  \"byteOffset\"\n);\nNA(\n  AA,\n  \"length\"\n);\nNA(\n  AA,\n  Br\n);\nconst hr = Uint8Array, oi = Uint16Array, At = Uint32Array, ur = Float32Array, _A = ze([][jA]()), ai = Z(_A.next), dr = Z(function* () {\n}().next), wr = ze(_A), yr = DataView.prototype, Dr = Z(\n  yr.getUint16\n), et = WeakMap, si = et.prototype, gi = Z(si.get), mr = Z(si.set), Ii = new et(), pr = $e(null, {\n  next: {\n    value: function() {\n      const e = gi(Ii, this);\n      return ai(e);\n    }\n  },\n  [jA]: {\n    value: function() {\n      return this;\n    }\n  }\n});\nfunction kr(t) {\n  if (t[jA] === ii && _A.next === ai)\n    return t;\n  const e = $e(pr);\n  return mr(Ii, e, Er(t)), e;\n}\nconst Fr = new et(), Sr = $e(wr, {\n  next: {\n    value: function() {\n      const e = gi(Fr, this);\n      return dr(e);\n    },\n    writable: !0,\n    configurable: !0\n  }\n});\nfor (const t of Ir(_A))\n  t !== \"next\" && fr(Sr, t, ti(_A, t));\nconst Bi = new ri(4), Gr = new ur(Bi), xr = new At(Bi), aA = new oi(512), sA = new hr(512);\nfor (let t = 0; t < 256; ++t) {\n  const e = t - 127;\n  e < -24 ? (aA[t] = 0, aA[t | 256] = 32768, sA[t] = 24, sA[t | 256] = 24) : e < -14 ? (aA[t] = 1024 >> -e - 14, aA[t | 256] = 1024 >> -e - 14 | 32768, sA[t] = -e - 1, sA[t | 256] = -e - 1) : e <= 15 ? (aA[t] = e + 15 << 10, aA[t | 256] = e + 15 << 10 | 32768, sA[t] = 13, sA[t | 256] = 13) : e < 128 ? (aA[t] = 31744, aA[t | 256] = 64512, sA[t] = 24, sA[t | 256] = 24) : (aA[t] = 31744, aA[t | 256] = 64512, sA[t] = 13, sA[t | 256] = 13);\n}\nconst tt = new At(2048);\nfor (let t = 1; t < 1024; ++t) {\n  let e = t << 13, A = 0;\n  for (; !(e & 8388608); )\n    e <<= 1, A -= 8388608;\n  e &= -8388609, A += 947912704, tt[t] = e | A;\n}\nfor (let t = 1024; t < 2048; ++t)\n  tt[t] = 939524096 + (t - 1024 << 13);\nconst TA = new At(64);\nfor (let t = 1; t < 31; ++t)\n  TA[t] = t << 23;\nTA[31] = 1199570944;\nTA[32] = 2147483648;\nfor (let t = 33; t < 63; ++t)\n  TA[t] = 2147483648 + (t - 32 << 23);\nTA[63] = 3347054592;\nconst li = new oi(64);\nfor (let t = 1; t < 64; ++t)\n  t !== 32 && (li[t] = 1024);\nfunction br(t) {\n  const e = t >> 10;\n  return xr[0] = tt[li[e] + (t & 1023)] + TA[e], Gr[0];\n}\nfunction fi(t, e, ...A) {\n  return br(\n    Dr(t, e, ...kr(A))\n  );\n}\nfunction it(t) {\n  return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, \"default\") ? t.default : t;\n}\nvar rt = { exports: {} };\nfunction ci(t, e, A) {\n  const i = A && A.debug || !1;\n  i && console.log(\"[xml-utils] getting \" + e + \" in \" + t);\n  const n = typeof t == \"object\" ? t.outer : t, o = n.slice(0, n.indexOf(\">\") + 1), I = ['\"', \"'\"];\n  for (let s = 0; s < I.length; s++) {\n    const y = I[s], a = e + \"\\\\=\" + y + \"([^\" + y + \"]*)\" + y;\n    i && console.log(\"[xml-utils] pattern:\", a);\n    const g = new RegExp(a).exec(o);\n    if (i && console.log(\"[xml-utils] match:\", g), g) return g[1];\n  }\n}\nrt.exports = ci;\nrt.exports.default = ci;\nvar Rr = rt.exports;\nconst De = /* @__PURE__ */ it(Rr);\nvar nt = { exports: {} }, ot = { exports: {} }, at = { exports: {} };\nfunction Ci(t, e, A) {\n  const n = new RegExp(e).exec(t.slice(A));\n  return n ? A + n.index : -1;\n}\nat.exports = Ci;\nat.exports.default = Ci;\nvar vr = at.exports, st = { exports: {} };\nfunction Ei(t, e, A) {\n  const n = new RegExp(e).exec(t.slice(A));\n  return n ? A + n.index + n[0].length - 1 : -1;\n}\nst.exports = Ei;\nst.exports.default = Ei;\nvar Ur = st.exports, gt = { exports: {} };\nfunction Qi(t, e) {\n  const A = new RegExp(e, \"g\"), i = t.match(A);\n  return i ? i.length : 0;\n}\ngt.exports = Qi;\ngt.exports.default = Qi;\nvar Lr = gt.exports;\nconst Mr = vr, me = Ur, Et = Lr;\nfunction hi(t, e, A) {\n  const i = A && A.debug || !1, n = !(A && typeof A.nested === !1), o = A && A.startIndex || 0;\n  i && console.log(\"[xml-utils] starting findTagByName with\", e, \" and \", A);\n  const I = Mr(t, `<${e}[ \n>/]`, o);\n  if (i && console.log(\"[xml-utils] start:\", I), I === -1) return;\n  const s = t.slice(I + e.length);\n  let y = me(s, \"^[^<]*[ /]>\", 0);\n  const a = y !== -1 && s[y - 1] === \"/\";\n  if (i && console.log(\"[xml-utils] selfClosing:\", a), a === !1)\n    if (n) {\n      let B = 0, f = 1, c = 0;\n      for (; (y = me(s, \"[ /]\" + e + \">\", B)) !== -1; ) {\n        const l = s.substring(B, y + 1);\n        if (f += Et(l, \"<\" + e + `[ \n\t>]`), c += Et(l, \"</\" + e + \">\"), c >= f) break;\n        B = y;\n      }\n    } else\n      y = me(s, \"[ /]\" + e + \">\", 0);\n  const r = I + e.length + y + 1;\n  if (i && console.log(\"[xml-utils] end:\", r), r === -1) return;\n  const g = t.slice(I, r);\n  let E;\n  return a ? E = null : E = g.slice(g.indexOf(\">\") + 1, g.lastIndexOf(\"<\")), { inner: E, outer: g, start: I, end: r };\n}\not.exports = hi;\not.exports.default = hi;\nvar Nr = ot.exports;\nconst Tr = Nr;\nfunction ui(t, e, A) {\n  const i = [], n = A && A.debug || !1, o = A && typeof A.nested == \"boolean\" ? A.nested : !0;\n  let I = A && A.startIndex || 0, s;\n  for (; s = Tr(t, e, { debug: n, startIndex: I }); )\n    o ? I = s.start + 1 + e.length : I = s.end, i.push(s);\n  return n && console.log(\"findTagsByName found\", i.length, \"tags\"), i;\n}\nnt.exports = ui;\nnt.exports.default = ui;\nvar qr = nt.exports;\nconst Jr = /* @__PURE__ */ it(qr), pA = {\n  // TIFF Baseline\n  315: \"Artist\",\n  258: \"BitsPerSample\",\n  265: \"CellLength\",\n  264: \"CellWidth\",\n  320: \"ColorMap\",\n  259: \"Compression\",\n  33432: \"Copyright\",\n  306: \"DateTime\",\n  338: \"ExtraSamples\",\n  266: \"FillOrder\",\n  289: \"FreeByteCounts\",\n  288: \"FreeOffsets\",\n  291: \"GrayResponseCurve\",\n  290: \"GrayResponseUnit\",\n  316: \"HostComputer\",\n  270: \"ImageDescription\",\n  257: \"ImageLength\",\n  256: \"ImageWidth\",\n  271: \"Make\",\n  281: \"MaxSampleValue\",\n  280: \"MinSampleValue\",\n  272: \"Model\",\n  254: \"NewSubfileType\",\n  274: \"Orientation\",\n  262: \"PhotometricInterpretation\",\n  284: \"PlanarConfiguration\",\n  296: \"ResolutionUnit\",\n  278: \"RowsPerStrip\",\n  277: \"SamplesPerPixel\",\n  305: \"Software\",\n  279: \"StripByteCounts\",\n  273: \"StripOffsets\",\n  255: \"SubfileType\",\n  263: \"Threshholding\",\n  282: \"XResolution\",\n  283: \"YResolution\",\n  // TIFF Extended\n  326: \"BadFaxLines\",\n  327: \"CleanFaxData\",\n  343: \"ClipPath\",\n  328: \"ConsecutiveBadFaxLines\",\n  433: \"Decode\",\n  434: \"DefaultImageColor\",\n  269: \"DocumentName\",\n  336: \"DotRange\",\n  321: \"HalftoneHints\",\n  346: \"Indexed\",\n  347: \"JPEGTables\",\n  285: \"PageName\",\n  297: \"PageNumber\",\n  317: \"Predictor\",\n  319: \"PrimaryChromaticities\",\n  532: \"ReferenceBlackWhite\",\n  339: \"SampleFormat\",\n  340: \"SMinSampleValue\",\n  341: \"SMaxSampleValue\",\n  559: \"StripRowCounts\",\n  330: \"SubIFDs\",\n  292: \"T4Options\",\n  293: \"T6Options\",\n  325: \"TileByteCounts\",\n  323: \"TileLength\",\n  324: \"TileOffsets\",\n  322: \"TileWidth\",\n  301: \"TransferFunction\",\n  318: \"WhitePoint\",\n  344: \"XClipPathUnits\",\n  286: \"XPosition\",\n  529: \"YCbCrCoefficients\",\n  531: \"YCbCrPositioning\",\n  530: \"YCbCrSubSampling\",\n  345: \"YClipPathUnits\",\n  287: \"YPosition\",\n  // EXIF\n  37378: \"ApertureValue\",\n  40961: \"ColorSpace\",\n  36868: \"DateTimeDigitized\",\n  36867: \"DateTimeOriginal\",\n  34665: \"Exif IFD\",\n  36864: \"ExifVersion\",\n  33434: \"ExposureTime\",\n  41728: \"FileSource\",\n  37385: \"Flash\",\n  40960: \"FlashpixVersion\",\n  33437: \"FNumber\",\n  42016: \"ImageUniqueID\",\n  37384: \"LightSource\",\n  37500: \"MakerNote\",\n  37377: \"ShutterSpeedValue\",\n  37510: \"UserComment\",\n  // IPTC\n  33723: \"IPTC\",\n  // ICC\n  34675: \"ICC Profile\",\n  // XMP\n  700: \"XMP\",\n  // GDAL\n  42112: \"GDAL_METADATA\",\n  42113: \"GDAL_NODATA\",\n  // Photoshop\n  34377: \"Photoshop\",\n  // GeoTiff\n  33550: \"ModelPixelScale\",\n  33922: \"ModelTiepoint\",\n  34264: \"ModelTransformation\",\n  34735: \"GeoKeyDirectory\",\n  34736: \"GeoDoubleParams\",\n  34737: \"GeoAsciiParams\",\n  // LERC\n  50674: \"LercParameters\"\n}, rA = {};\nfor (const t in pA)\n  pA.hasOwnProperty(t) && (rA[pA[t]] = parseInt(t, 10));\nconst fe = {\n  256: \"SHORT\",\n  257: \"SHORT\",\n  258: \"SHORT\",\n  259: \"SHORT\",\n  262: \"SHORT\",\n  273: \"LONG\",\n  274: \"SHORT\",\n  277: \"SHORT\",\n  278: \"LONG\",\n  279: \"LONG\",\n  282: \"RATIONAL\",\n  283: \"RATIONAL\",\n  284: \"SHORT\",\n  286: \"SHORT\",\n  287: \"RATIONAL\",\n  296: \"SHORT\",\n  297: \"SHORT\",\n  305: \"ASCII\",\n  306: \"ASCII\",\n  338: \"SHORT\",\n  339: \"SHORT\",\n  513: \"LONG\",\n  514: \"LONG\",\n  1024: \"SHORT\",\n  1025: \"SHORT\",\n  2048: \"SHORT\",\n  2049: \"ASCII\",\n  3072: \"SHORT\",\n  3073: \"ASCII\",\n  33550: \"DOUBLE\",\n  33922: \"DOUBLE\",\n  34264: \"DOUBLE\",\n  34665: \"LONG\",\n  34735: \"SHORT\",\n  34736: \"DOUBLE\",\n  34737: \"ASCII\",\n  42113: \"ASCII\"\n}, di = [\n  rA.BitsPerSample,\n  rA.ExtraSamples,\n  rA.SampleFormat,\n  rA.StripByteCounts,\n  rA.StripOffsets,\n  rA.StripRowCounts,\n  rA.TileByteCounts,\n  rA.TileOffsets,\n  rA.SubIFDs\n], HA = {\n  1: \"BYTE\",\n  2: \"ASCII\",\n  3: \"SHORT\",\n  4: \"LONG\",\n  5: \"RATIONAL\",\n  6: \"SBYTE\",\n  7: \"UNDEFINED\",\n  8: \"SSHORT\",\n  9: \"SLONG\",\n  10: \"SRATIONAL\",\n  11: \"FLOAT\",\n  12: \"DOUBLE\",\n  // IFD offset, suggested by https://owl.phy.queensu.ca/~phil/exiftool/standards.html\n  13: \"IFD\",\n  // introduced by BigTIFF\n  16: \"LONG8\",\n  17: \"SLONG8\",\n  18: \"IFD8\"\n}, K = {};\nfor (const t in HA)\n  HA.hasOwnProperty(t) && (K[HA[t]] = parseInt(t, 10));\nconst z = {\n  WhiteIsZero: 0,\n  BlackIsZero: 1,\n  RGB: 2,\n  Palette: 3,\n  TransparencyMask: 4,\n  CMYK: 5,\n  YCbCr: 6,\n  CIELab: 8,\n  ICCLab: 9\n}, wi = {\n  Unspecified: 0,\n  Assocalpha: 1,\n  Unassalpha: 2\n}, yi = {\n  Version: 0,\n  AddCompression: 1\n}, Be = {\n  None: 0,\n  Deflate: 1,\n  Zstandard: 2\n}, vA = {\n  1024: \"GTModelTypeGeoKey\",\n  1025: \"GTRasterTypeGeoKey\",\n  1026: \"GTCitationGeoKey\",\n  2048: \"GeographicTypeGeoKey\",\n  2049: \"GeogCitationGeoKey\",\n  2050: \"GeogGeodeticDatumGeoKey\",\n  2051: \"GeogPrimeMeridianGeoKey\",\n  2052: \"GeogLinearUnitsGeoKey\",\n  2053: \"GeogLinearUnitSizeGeoKey\",\n  2054: \"GeogAngularUnitsGeoKey\",\n  2055: \"GeogAngularUnitSizeGeoKey\",\n  2056: \"GeogEllipsoidGeoKey\",\n  2057: \"GeogSemiMajorAxisGeoKey\",\n  2058: \"GeogSemiMinorAxisGeoKey\",\n  2059: \"GeogInvFlatteningGeoKey\",\n  2060: \"GeogAzimuthUnitsGeoKey\",\n  2061: \"GeogPrimeMeridianLongGeoKey\",\n  2062: \"GeogTOWGS84GeoKey\",\n  3072: \"ProjectedCSTypeGeoKey\",\n  3073: \"PCSCitationGeoKey\",\n  3074: \"ProjectionGeoKey\",\n  3075: \"ProjCoordTransGeoKey\",\n  3076: \"ProjLinearUnitsGeoKey\",\n  3077: \"ProjLinearUnitSizeGeoKey\",\n  3078: \"ProjStdParallel1GeoKey\",\n  3079: \"ProjStdParallel2GeoKey\",\n  3080: \"ProjNatOriginLongGeoKey\",\n  3081: \"ProjNatOriginLatGeoKey\",\n  3082: \"ProjFalseEastingGeoKey\",\n  3083: \"ProjFalseNorthingGeoKey\",\n  3084: \"ProjFalseOriginLongGeoKey\",\n  3085: \"ProjFalseOriginLatGeoKey\",\n  3086: \"ProjFalseOriginEastingGeoKey\",\n  3087: \"ProjFalseOriginNorthingGeoKey\",\n  3088: \"ProjCenterLongGeoKey\",\n  3089: \"ProjCenterLatGeoKey\",\n  3090: \"ProjCenterEastingGeoKey\",\n  3091: \"ProjCenterNorthingGeoKey\",\n  3092: \"ProjScaleAtNatOriginGeoKey\",\n  3093: \"ProjScaleAtCenterGeoKey\",\n  3094: \"ProjAzimuthAngleGeoKey\",\n  3095: \"ProjStraightVertPoleLongGeoKey\",\n  3096: \"ProjRectifiedGridAngleGeoKey\",\n  4096: \"VerticalCSTypeGeoKey\",\n  4097: \"VerticalCitationGeoKey\",\n  4098: \"VerticalDatumGeoKey\",\n  4099: \"VerticalUnitsGeoKey\"\n}, Di = {};\nfor (const t in vA)\n  vA.hasOwnProperty(t) && (Di[vA[t]] = parseInt(t, 10));\nconst Yr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n  __proto__: null,\n  ExtraSamplesValues: wi,\n  LercAddCompression: Be,\n  LercParameters: yi,\n  arrayFields: di,\n  fieldTagNames: pA,\n  fieldTagTypes: fe,\n  fieldTags: rA,\n  fieldTypeNames: HA,\n  fieldTypes: K,\n  geoKeyNames: vA,\n  geoKeys: Di,\n  photometricInterpretations: z\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction mi(t, e) {\n  const { width: A, height: i } = t, n = new Uint8Array(A * i * 3);\n  let o;\n  for (let I = 0, s = 0; I < t.length; ++I, s += 3)\n    o = 256 - t[I] / e * 256, n[s] = o, n[s + 1] = o, n[s + 2] = o;\n  return n;\n}\nfunction pi(t, e) {\n  const { width: A, height: i } = t, n = new Uint8Array(A * i * 3);\n  let o;\n  for (let I = 0, s = 0; I < t.length; ++I, s += 3)\n    o = t[I] / e * 256, n[s] = o, n[s + 1] = o, n[s + 2] = o;\n  return n;\n}\nfunction ki(t, e) {\n  const { width: A, height: i } = t, n = new Uint8Array(A * i * 3), o = e.length / 3, I = e.length / 3 * 2;\n  for (let s = 0, y = 0; s < t.length; ++s, y += 3) {\n    const a = t[s];\n    n[y] = e[a] / 65536 * 256, n[y + 1] = e[a + o] / 65536 * 256, n[y + 2] = e[a + I] / 65536 * 256;\n  }\n  return n;\n}\nfunction Fi(t) {\n  const { width: e, height: A } = t, i = new Uint8Array(e * A * 3);\n  for (let n = 0, o = 0; n < t.length; n += 4, o += 3) {\n    const I = t[n], s = t[n + 1], y = t[n + 2], a = t[n + 3];\n    i[o] = 255 * ((255 - I) / 256) * ((255 - a) / 256), i[o + 1] = 255 * ((255 - s) / 256) * ((255 - a) / 256), i[o + 2] = 255 * ((255 - y) / 256) * ((255 - a) / 256);\n  }\n  return i;\n}\nfunction Si(t) {\n  const { width: e, height: A } = t, i = new Uint8ClampedArray(e * A * 3);\n  for (let n = 0, o = 0; n < t.length; n += 3, o += 3) {\n    const I = t[n], s = t[n + 1], y = t[n + 2];\n    i[o] = I + 1.402 * (y - 128), i[o + 1] = I - 0.34414 * (s - 128) - 0.71414 * (y - 128), i[o + 2] = I + 1.772 * (s - 128);\n  }\n  return i;\n}\nconst Hr = 0.95047, Or = 1, Kr = 1.08883;\nfunction Gi(t) {\n  const { width: e, height: A } = t, i = new Uint8Array(e * A * 3);\n  for (let n = 0, o = 0; n < t.length; n += 3, o += 3) {\n    const I = t[n + 0], s = t[n + 1] << 24 >> 24, y = t[n + 2] << 24 >> 24;\n    let a = (I + 16) / 116, r = s / 500 + a, g = a - y / 200, E, B, f;\n    r = Hr * (r * r * r > 8856e-6 ? r * r * r : (r - 16 / 116) / 7.787), a = Or * (a * a * a > 8856e-6 ? a * a * a : (a - 16 / 116) / 7.787), g = Kr * (g * g * g > 8856e-6 ? g * g * g : (g - 16 / 116) / 7.787), E = r * 3.2406 + a * -1.5372 + g * -0.4986, B = r * -0.9689 + a * 1.8758 + g * 0.0415, f = r * 0.0557 + a * -0.204 + g * 1.057, E = E > 31308e-7 ? 1.055 * E ** (1 / 2.4) - 0.055 : 12.92 * E, B = B > 31308e-7 ? 1.055 * B ** (1 / 2.4) - 0.055 : 12.92 * B, f = f > 31308e-7 ? 1.055 * f ** (1 / 2.4) - 0.055 : 12.92 * f, i[o] = Math.max(0, Math.min(1, E)) * 255, i[o + 1] = Math.max(0, Math.min(1, B)) * 255, i[o + 2] = Math.max(0, Math.min(1, f)) * 255;\n  }\n  return i;\n}\nconst _r = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n  __proto__: null,\n  fromBlackIsZero: pi,\n  fromCIELab: Gi,\n  fromCMYK: Fi,\n  fromPalette: ki,\n  fromWhiteIsZero: mi,\n  fromYCbCr: Si\n}, Symbol.toStringTag, { value: \"Module\" })), xi = /* @__PURE__ */ new Map();\nfunction CA(t, e) {\n  Array.isArray(t) || (t = [t]), t.forEach((A) => xi.set(A, e));\n}\nasync function It(t) {\n  const e = xi.get(t.Compression);\n  if (!e)\n    throw new Error(`Unknown compression method identifier: ${t.Compression}`);\n  const A = await e();\n  return new A(t);\n}\nCA([void 0, 1], () => Promise.resolve().then(() => Eo).then((t) => t.default));\nCA(5, () => Promise.resolve().then(() => yo).then((t) => t.default));\nCA(6, () => {\n  throw new Error(\"old style JPEG compression is not supported.\");\n});\nCA(7, () => Promise.resolve().then(() => Fo).then((t) => t.default));\nCA([8, 32946], () => Promise.resolve().then(() => Ha).then((t) => t.default));\nCA(32773, () => Promise.resolve().then(() => Ka).then((t) => t.default));\nCA(\n  34887,\n  () => Promise.resolve().then(() => Xa).then(async (t) => (await t.zstd.init(), t)).then((t) => t.default)\n);\nCA(50001, () => Promise.resolve().then(() => Za).then((t) => t.default));\nfunction Ee(t, e, A, i = 1) {\n  return new (Object.getPrototypeOf(t)).constructor(e * A * i);\n}\nfunction Pr(t, e, A, i, n) {\n  const o = e / i, I = A / n;\n  return t.map((s) => {\n    const y = Ee(s, i, n);\n    for (let a = 0; a < n; ++a) {\n      const r = Math.min(Math.round(I * a), A - 1);\n      for (let g = 0; g < i; ++g) {\n        const E = Math.min(Math.round(o * g), e - 1), B = s[r * e + E];\n        y[a * i + g] = B;\n      }\n    }\n    return y;\n  });\n}\nfunction UA(t, e, A) {\n  return (1 - A) * t + A * e;\n}\nfunction Vr(t, e, A, i, n) {\n  const o = e / i, I = A / n;\n  return t.map((s) => {\n    const y = Ee(s, i, n);\n    for (let a = 0; a < n; ++a) {\n      const r = I * a, g = Math.floor(r), E = Math.min(Math.ceil(r), A - 1);\n      for (let B = 0; B < i; ++B) {\n        const f = o * B, c = f % 1, l = Math.floor(f), u = Math.min(Math.ceil(f), e - 1), h = s[g * e + l], D = s[g * e + u], d = s[E * e + l], Q = s[E * e + u], C = UA(\n          UA(h, D, c),\n          UA(d, Q, c),\n          r % 1\n        );\n        y[a * i + B] = C;\n      }\n    }\n    return y;\n  });\n}\nfunction jr(t, e, A, i, n, o = \"nearest\") {\n  switch (o.toLowerCase()) {\n    case \"nearest\":\n      return Pr(t, e, A, i, n);\n    case \"bilinear\":\n    case \"linear\":\n      return Vr(t, e, A, i, n);\n    default:\n      throw new Error(`Unsupported resampling method: '${o}'`);\n  }\n}\nfunction Xr(t, e, A, i, n, o) {\n  const I = e / i, s = A / n, y = Ee(t, i, n, o);\n  for (let a = 0; a < n; ++a) {\n    const r = Math.min(Math.round(s * a), A - 1);\n    for (let g = 0; g < i; ++g) {\n      const E = Math.min(Math.round(I * g), e - 1);\n      for (let B = 0; B < o; ++B) {\n        const f = t[r * e * o + E * o + B];\n        y[a * i * o + g * o + B] = f;\n      }\n    }\n  }\n  return y;\n}\nfunction Wr(t, e, A, i, n, o) {\n  const I = e / i, s = A / n, y = Ee(t, i, n, o);\n  for (let a = 0; a < n; ++a) {\n    const r = s * a, g = Math.floor(r), E = Math.min(Math.ceil(r), A - 1);\n    for (let B = 0; B < i; ++B) {\n      const f = I * B, c = f % 1, l = Math.floor(f), u = Math.min(Math.ceil(f), e - 1);\n      for (let h = 0; h < o; ++h) {\n        const D = t[g * e * o + l * o + h], d = t[g * e * o + u * o + h], Q = t[E * e * o + l * o + h], C = t[E * e * o + u * o + h], w = UA(\n          UA(D, d, c),\n          UA(Q, C, c),\n          r % 1\n        );\n        y[a * i * o + B * o + h] = w;\n      }\n    }\n  }\n  return y;\n}\nfunction Zr(t, e, A, i, n, o, I = \"nearest\") {\n  switch (I.toLowerCase()) {\n    case \"nearest\":\n      return Xr(\n        t,\n        e,\n        A,\n        i,\n        n,\n        o\n      );\n    case \"bilinear\":\n    case \"linear\":\n      return Wr(\n        t,\n        e,\n        A,\n        i,\n        n,\n        o\n      );\n    default:\n      throw new Error(`Unsupported resampling method: '${I}'`);\n  }\n}\nfunction zr(t, e, A) {\n  let i = 0;\n  for (let n = e; n < A; ++n)\n    i += t[n];\n  return i;\n}\nfunction qe(t, e, A) {\n  switch (t) {\n    case 1:\n      if (e <= 8)\n        return new Uint8Array(A);\n      if (e <= 16)\n        return new Uint16Array(A);\n      if (e <= 32)\n        return new Uint32Array(A);\n      break;\n    case 2:\n      if (e === 8)\n        return new Int8Array(A);\n      if (e === 16)\n        return new Int16Array(A);\n      if (e === 32)\n        return new Int32Array(A);\n      break;\n    case 3:\n      switch (e) {\n        case 16:\n        case 32:\n          return new Float32Array(A);\n        case 64:\n          return new Float64Array(A);\n      }\n      break;\n  }\n  throw Error(\"Unsupported data format/bitsPerSample\");\n}\nfunction $r(t, e) {\n  return (t === 1 || t === 2) && e <= 32 && e % 8 === 0 ? !1 : !(t === 3 && (e === 16 || e === 32 || e === 64));\n}\nfunction An(t, e, A, i, n, o, I) {\n  const s = new DataView(t), y = A === 2 ? I * o : I * o * i, a = A === 2 ? 1 : i, r = qe(e, n, y), g = parseInt(\"1\".repeat(n), 2);\n  if (e === 1) {\n    let E;\n    A === 1 ? E = i * n : E = n;\n    let B = o * E;\n    B & 7 && (B = B + 7 & -8);\n    for (let f = 0; f < I; ++f) {\n      const c = f * B;\n      for (let l = 0; l < o; ++l) {\n        const u = c + l * a * n;\n        for (let h = 0; h < a; ++h) {\n          const D = u + h * n, d = (f * o + l) * a + h, Q = Math.floor(D / 8), C = D % 8;\n          if (C + n <= 8)\n            r[d] = s.getUint8(Q) >> 8 - n - C & g;\n          else if (C + n <= 16)\n            r[d] = s.getUint16(Q) >> 16 - n - C & g;\n          else if (C + n <= 24) {\n            const w = s.getUint16(Q) << 8 | s.getUint8(Q + 2);\n            r[d] = w >> 24 - n - C & g;\n          } else\n            r[d] = s.getUint32(Q) >> 32 - n - C & g;\n        }\n      }\n    }\n  }\n  return r.buffer;\n}\nclass Bt {\n  /**\n   * @constructor\n   * @param {Object} fileDirectory The parsed file directory\n   * @param {Object} geoKeys The parsed geo-keys\n   * @param {DataView} dataView The DataView for the underlying file.\n   * @param {Boolean} littleEndian Whether the file is encoded in little or big endian\n   * @param {Boolean} cache Whether or not decoded tiles shall be cached\n   * @param {import('./source/basesource').BaseSource} source The datasource to read from\n   */\n  constructor(e, A, i, n, o, I) {\n    this.fileDirectory = e, this.geoKeys = A, this.dataView = i, this.littleEndian = n, this.tiles = o ? {} : null, this.isTiled = !e.StripOffsets;\n    const s = e.PlanarConfiguration;\n    if (this.planarConfiguration = typeof s > \"u\" ? 1 : s, this.planarConfiguration !== 1 && this.planarConfiguration !== 2)\n      throw new Error(\"Invalid planar configuration.\");\n    this.source = I;\n  }\n  /**\n   * Returns the associated parsed file directory.\n   * @returns {Object} the parsed file directory\n   */\n  getFileDirectory() {\n    return this.fileDirectory;\n  }\n  /**\n   * Returns the associated parsed geo keys.\n   * @returns {Object} the parsed geo keys\n   */\n  getGeoKeys() {\n    return this.geoKeys;\n  }\n  /**\n   * Returns the width of the image.\n   * @returns {Number} the width of the image\n   */\n  getWidth() {\n    return this.fileDirectory.ImageWidth;\n  }\n  /**\n   * Returns the height of the image.\n   * @returns {Number} the height of the image\n   */\n  getHeight() {\n    return this.fileDirectory.ImageLength;\n  }\n  /**\n   * Returns the number of samples per pixel.\n   * @returns {Number} the number of samples per pixel\n   */\n  getSamplesPerPixel() {\n    return typeof this.fileDirectory.SamplesPerPixel < \"u\" ? this.fileDirectory.SamplesPerPixel : 1;\n  }\n  /**\n   * Returns the width of each tile.\n   * @returns {Number} the width of each tile\n   */\n  getTileWidth() {\n    return this.isTiled ? this.fileDirectory.TileWidth : this.getWidth();\n  }\n  /**\n   * Returns the height of each tile.\n   * @returns {Number} the height of each tile\n   */\n  getTileHeight() {\n    return this.isTiled ? this.fileDirectory.TileLength : typeof this.fileDirectory.RowsPerStrip < \"u\" ? Math.min(this.fileDirectory.RowsPerStrip, this.getHeight()) : this.getHeight();\n  }\n  getBlockWidth() {\n    return this.getTileWidth();\n  }\n  getBlockHeight(e) {\n    return this.isTiled || (e + 1) * this.getTileHeight() <= this.getHeight() ? this.getTileHeight() : this.getHeight() - e * this.getTileHeight();\n  }\n  /**\n   * Calculates the number of bytes for each pixel across all samples. Only full\n   * bytes are supported, an exception is thrown when this is not the case.\n   * @returns {Number} the bytes per pixel\n   */\n  getBytesPerPixel() {\n    let e = 0;\n    for (let A = 0; A < this.fileDirectory.BitsPerSample.length; ++A)\n      e += this.getSampleByteSize(A);\n    return e;\n  }\n  getSampleByteSize(e) {\n    if (e >= this.fileDirectory.BitsPerSample.length)\n      throw new RangeError(`Sample index ${e} is out of range.`);\n    return Math.ceil(this.fileDirectory.BitsPerSample[e] / 8);\n  }\n  getReaderForSample(e) {\n    const A = this.fileDirectory.SampleFormat ? this.fileDirectory.SampleFormat[e] : 1, i = this.fileDirectory.BitsPerSample[e];\n    switch (A) {\n      case 1:\n        if (i <= 8)\n          return DataView.prototype.getUint8;\n        if (i <= 16)\n          return DataView.prototype.getUint16;\n        if (i <= 32)\n          return DataView.prototype.getUint32;\n        break;\n      case 2:\n        if (i <= 8)\n          return DataView.prototype.getInt8;\n        if (i <= 16)\n          return DataView.prototype.getInt16;\n        if (i <= 32)\n          return DataView.prototype.getInt32;\n        break;\n      case 3:\n        switch (i) {\n          case 16:\n            return function(n, o) {\n              return fi(this, n, o);\n            };\n          case 32:\n            return DataView.prototype.getFloat32;\n          case 64:\n            return DataView.prototype.getFloat64;\n        }\n        break;\n    }\n    throw Error(\"Unsupported data format/bitsPerSample\");\n  }\n  getSampleFormat(e = 0) {\n    return this.fileDirectory.SampleFormat ? this.fileDirectory.SampleFormat[e] : 1;\n  }\n  getBitsPerSample(e = 0) {\n    return this.fileDirectory.BitsPerSample[e];\n  }\n  getArrayForSample(e, A) {\n    const i = this.getSampleFormat(e), n = this.getBitsPerSample(e);\n    return qe(i, n, A);\n  }\n  /**\n   * Returns the decoded strip or tile.\n   * @param {Number} x the strip or tile x-offset\n   * @param {Number} y the tile y-offset (0 for stripped images)\n   * @param {Number} sample the sample to get for separated samples\n   * @param {import(\"./geotiff\").Pool|import(\"./geotiff\").BaseDecoder} poolOrDecoder the decoder or decoder pool\n   * @param {AbortSignal} [signal] An AbortSignal that may be signalled if the request is\n   *                               to be aborted\n   * @returns {Promise.<ArrayBuffer>}\n   */\n  async getTileOrStrip(e, A, i, n, o) {\n    const I = Math.ceil(this.getWidth() / this.getTileWidth()), s = Math.ceil(this.getHeight() / this.getTileHeight());\n    let y;\n    const { tiles: a } = this;\n    this.planarConfiguration === 1 ? y = A * I + e : this.planarConfiguration === 2 && (y = i * I * s + A * I + e);\n    let r, g;\n    this.isTiled ? (r = this.fileDirectory.TileOffsets[y], g = this.fileDirectory.TileByteCounts[y]) : (r = this.fileDirectory.StripOffsets[y], g = this.fileDirectory.StripByteCounts[y]);\n    const E = (await this.source.fetch([{ offset: r, length: g }], o))[0];\n    let B;\n    return a === null || !a[y] ? (B = (async () => {\n      let f = await n.decode(this.fileDirectory, E);\n      const c = this.getSampleFormat(), l = this.getBitsPerSample();\n      return $r(c, l) && (f = An(\n        f,\n        c,\n        this.planarConfiguration,\n        this.getSamplesPerPixel(),\n        l,\n        this.getTileWidth(),\n        this.getBlockHeight(A)\n      )), f;\n    })(), a !== null && (a[y] = B)) : B = a[y], { x: e, y: A, sample: i, data: await B };\n  }\n  /**\n   * Internal read function.\n   * @private\n   * @param {Array} imageWindow The image window in pixel coordinates\n   * @param {Array} samples The selected samples (0-based indices)\n   * @param {TypedArray|TypedArray[]} valueArrays The array(s) to write into\n   * @param {Boolean} interleave Whether or not to write in an interleaved manner\n   * @param {import(\"./geotiff\").Pool|AbstractDecoder} poolOrDecoder the decoder or decoder pool\n   * @param {number} width the width of window to be read into\n   * @param {number} height the height of window to be read into\n   * @param {number} resampleMethod the resampling method to be used when interpolating\n   * @param {AbortSignal} [signal] An AbortSignal that may be signalled if the request is\n   *                               to be aborted\n   * @returns {Promise<ReadRasterResult>}\n   */\n  async _readRaster(e, A, i, n, o, I, s, y, a) {\n    const r = this.getTileWidth(), g = this.getTileHeight(), E = this.getWidth(), B = this.getHeight(), f = Math.max(Math.floor(e[0] / r), 0), c = Math.min(\n      Math.ceil(e[2] / r),\n      Math.ceil(E / r)\n    ), l = Math.max(Math.floor(e[1] / g), 0), u = Math.min(\n      Math.ceil(e[3] / g),\n      Math.ceil(B / g)\n    ), h = e[2] - e[0];\n    let D = this.getBytesPerPixel();\n    const d = [], Q = [];\n    for (let m = 0; m < A.length; ++m)\n      this.planarConfiguration === 1 ? d.push(zr(this.fileDirectory.BitsPerSample, 0, A[m]) / 8) : d.push(0), Q.push(this.getReaderForSample(A[m]));\n    const C = [], { littleEndian: w } = this;\n    for (let m = l; m < u; ++m)\n      for (let F = f; F < c; ++F) {\n        let k;\n        this.planarConfiguration === 1 && (k = this.getTileOrStrip(F, m, 0, o, a));\n        for (let p = 0; p < A.length; ++p) {\n          const x = p, b = A[p];\n          this.planarConfiguration === 2 && (D = this.getSampleByteSize(b), k = this.getTileOrStrip(F, m, b, o, a));\n          const M = k.then((S) => {\n            const G = S.data, U = new DataView(G), L = this.getBlockHeight(S.y), R = S.y * g, N = S.x * r, v = R + L, Y = (S.x + 1) * r, _ = Q[x], q = Math.min(L, L - (v - e[3]), B - R), T = Math.min(r, r - (Y - e[2]), E - N);\n            for (let O = Math.max(0, e[1] - R); O < q; ++O)\n              for (let J = Math.max(0, e[0] - N); J < T; ++J) {\n                const H = (O * r + J) * D, P = _.call(\n                  U,\n                  H + d[x],\n                  w\n                );\n                let j;\n                n ? (j = (O + R - e[1]) * h * A.length + (J + N - e[0]) * A.length + x, i[j] = P) : (j = (O + R - e[1]) * h + J + N - e[0], i[x][j] = P);\n              }\n          });\n          C.push(M);\n        }\n      }\n    if (await Promise.all(C), I && e[2] - e[0] !== I || s && e[3] - e[1] !== s) {\n      let m;\n      return n ? m = Zr(\n        i,\n        e[2] - e[0],\n        e[3] - e[1],\n        I,\n        s,\n        A.length,\n        y\n      ) : m = jr(\n        i,\n        e[2] - e[0],\n        e[3] - e[1],\n        I,\n        s,\n        y\n      ), m.width = I, m.height = s, m;\n    }\n    return i.width = I || e[2] - e[0], i.height = s || e[3] - e[1], i;\n  }\n  /**\n   * Reads raster data from the image. This function reads all selected samples\n   * into separate arrays of the correct type for that sample or into a single\n   * combined array when `interleave` is set. When provided, only a subset\n   * of the raster is read for each sample.\n   *\n   * @param {ReadRasterOptions} [options={}] optional parameters\n   * @returns {Promise<ReadRasterResult>} the decoded arrays as a promise\n   */\n  async readRasters({\n    window: e,\n    samples: A = [],\n    interleave: i,\n    pool: n = null,\n    width: o,\n    height: I,\n    resampleMethod: s,\n    fillValue: y,\n    signal: a\n  } = {}) {\n    const r = e || [0, 0, this.getWidth(), this.getHeight()];\n    if (r[0] > r[2] || r[1] > r[3])\n      throw new Error(\"Invalid subsets\");\n    const g = r[2] - r[0], E = r[3] - r[1], B = g * E, f = this.getSamplesPerPixel();\n    if (!A || !A.length)\n      for (let h = 0; h < f; ++h)\n        A.push(h);\n    else\n      for (let h = 0; h < A.length; ++h)\n        if (A[h] >= f)\n          return Promise.reject(new RangeError(`Invalid sample index '${A[h]}'.`));\n    let c;\n    if (i) {\n      const h = this.fileDirectory.SampleFormat ? Math.max.apply(null, this.fileDirectory.SampleFormat) : 1, D = Math.max.apply(null, this.fileDirectory.BitsPerSample);\n      c = qe(h, D, B * A.length), y && c.fill(y);\n    } else {\n      c = [];\n      for (let h = 0; h < A.length; ++h) {\n        const D = this.getArrayForSample(A[h], B);\n        Array.isArray(y) && h < y.length ? D.fill(y[h]) : y && !Array.isArray(y) && D.fill(y), c.push(D);\n      }\n    }\n    const l = n || await It(this.fileDirectory);\n    return await this._readRaster(\n      r,\n      A,\n      c,\n      i,\n      l,\n      o,\n      I,\n      s,\n      a\n    );\n  }\n  /**\n   * Reads raster data from the image as RGB. The result is always an\n   * interleaved typed array.\n   * Colorspaces other than RGB will be transformed to RGB, color maps expanded.\n   * When no other method is applicable, the first sample is used to produce a\n   * grayscale image.\n   * When provided, only a subset of the raster is read for each sample.\n   *\n   * @param {Object} [options] optional parameters\n   * @param {Array<number>} [options.window] the subset to read data from in pixels.\n   * @param {boolean} [options.interleave=true] whether the data shall be read\n   *                                             in one single array or separate\n   *                                             arrays.\n   * @param {import(\"./geotiff\").Pool} [options.pool=null] The optional decoder pool to use.\n   * @param {number} [options.width] The desired width of the output. When the width is no the\n   *                                 same as the images, resampling will be performed.\n   * @param {number} [options.height] The desired height of the output. When the width is no the\n   *                                  same as the images, resampling will be performed.\n   * @param {string} [options.resampleMethod='nearest'] The desired resampling method.\n   * @param {boolean} [options.enableAlpha=false] Enable reading alpha channel if present.\n   * @param {AbortSignal} [options.signal] An AbortSignal that may be signalled if the request is\n   *                                       to be aborted\n   * @returns {Promise<ReadRasterResult>} the RGB array as a Promise\n   */\n  async readRGB({\n    window: e,\n    interleave: A = !0,\n    pool: i = null,\n    width: n,\n    height: o,\n    resampleMethod: I,\n    enableAlpha: s = !1,\n    signal: y\n  } = {}) {\n    const a = e || [0, 0, this.getWidth(), this.getHeight()];\n    if (a[0] > a[2] || a[1] > a[3])\n      throw new Error(\"Invalid subsets\");\n    const r = this.fileDirectory.PhotometricInterpretation;\n    if (r === z.RGB) {\n      let u = [0, 1, 2];\n      if (this.fileDirectory.ExtraSamples !== wi.Unspecified && s) {\n        u = [];\n        for (let h = 0; h < this.fileDirectory.BitsPerSample.length; h += 1)\n          u.push(h);\n      }\n      return this.readRasters({\n        window: e,\n        interleave: A,\n        samples: u,\n        pool: i,\n        width: n,\n        height: o,\n        resampleMethod: I,\n        signal: y\n      });\n    }\n    let g;\n    switch (r) {\n      case z.WhiteIsZero:\n      case z.BlackIsZero:\n      case z.Palette:\n        g = [0];\n        break;\n      case z.CMYK:\n        g = [0, 1, 2, 3];\n        break;\n      case z.YCbCr:\n      case z.CIELab:\n        g = [0, 1, 2];\n        break;\n      default:\n        throw new Error(\"Invalid or unsupported photometric interpretation.\");\n    }\n    const E = {\n      window: a,\n      interleave: !0,\n      samples: g,\n      pool: i,\n      width: n,\n      height: o,\n      resampleMethod: I,\n      signal: y\n    }, { fileDirectory: B } = this, f = await this.readRasters(E), c = 2 ** this.fileDirectory.BitsPerSample[0];\n    let l;\n    switch (r) {\n      case z.WhiteIsZero:\n        l = mi(f, c);\n        break;\n      case z.BlackIsZero:\n        l = pi(f, c);\n        break;\n      case z.Palette:\n        l = ki(f, B.ColorMap);\n        break;\n      case z.CMYK:\n        l = Fi(f);\n        break;\n      case z.YCbCr:\n        l = Si(f);\n        break;\n      case z.CIELab:\n        l = Gi(f);\n        break;\n      default:\n        throw new Error(\"Unsupported photometric interpretation.\");\n    }\n    if (!A) {\n      const u = new Uint8Array(l.length / 3), h = new Uint8Array(l.length / 3), D = new Uint8Array(l.length / 3);\n      for (let d = 0, Q = 0; d < l.length; d += 3, ++Q)\n        u[Q] = l[d], h[Q] = l[d + 1], D[Q] = l[d + 2];\n      l = [u, h, D];\n    }\n    return l.width = f.width, l.height = f.height, l;\n  }\n  /**\n   * Returns an array of tiepoints.\n   * @returns {Object[]}\n   */\n  getTiePoints() {\n    if (!this.fileDirectory.ModelTiepoint)\n      return [];\n    const e = [];\n    for (let A = 0; A < this.fileDirectory.ModelTiepoint.length; A += 6)\n      e.push({\n        i: this.fileDirectory.ModelTiepoint[A],\n        j: this.fileDirectory.ModelTiepoint[A + 1],\n        k: this.fileDirectory.ModelTiepoint[A + 2],\n        x: this.fileDirectory.ModelTiepoint[A + 3],\n        y: this.fileDirectory.ModelTiepoint[A + 4],\n        z: this.fileDirectory.ModelTiepoint[A + 5]\n      });\n    return e;\n  }\n  /**\n   * Returns the parsed GDAL metadata items.\n   *\n   * If sample is passed to null, dataset-level metadata will be returned.\n   * Otherwise only metadata specific to the provided sample will be returned.\n   *\n   * @param {number} [sample=null] The sample index.\n   * @returns {Object}\n   */\n  getGDALMetadata(e = null) {\n    const A = {};\n    if (!this.fileDirectory.GDAL_METADATA)\n      return null;\n    const i = this.fileDirectory.GDAL_METADATA;\n    let n = Jr(i, \"Item\");\n    e === null ? n = n.filter((o) => De(o, \"sample\") === void 0) : n = n.filter((o) => Number(De(o, \"sample\")) === e);\n    for (let o = 0; o < n.length; ++o) {\n      const I = n[o];\n      A[De(I, \"name\")] = I.inner;\n    }\n    return A;\n  }\n  /**\n   * Returns the GDAL nodata value\n   * @returns {number|null}\n   */\n  getGDALNoData() {\n    if (!this.fileDirectory.GDAL_NODATA)\n      return null;\n    const e = this.fileDirectory.GDAL_NODATA;\n    return Number(e.substring(0, e.length - 1));\n  }\n  /**\n   * Returns the image origin as a XYZ-vector. When the image has no affine\n   * transformation, then an exception is thrown.\n   * @returns {Array<number>} The origin as a vector\n   */\n  getOrigin() {\n    const e = this.fileDirectory.ModelTiepoint, A = this.fileDirectory.ModelTransformation;\n    if (e && e.length === 6)\n      return [\n        e[3],\n        e[4],\n        e[5]\n      ];\n    if (A)\n      return [\n        A[3],\n        A[7],\n        A[11]\n      ];\n    throw new Error(\"The image does not have an affine transformation.\");\n  }\n  /**\n   * Returns the image resolution as a XYZ-vector. When the image has no affine\n   * transformation, then an exception is thrown.\n   * @param {GeoTIFFImage} [referenceImage=null] A reference image to calculate the resolution from\n   *                                             in cases when the current image does not have the\n   *                                             required tags on its own.\n   * @returns {Array<number>} The resolution as a vector\n   */\n  getResolution(e = null) {\n    const A = this.fileDirectory.ModelPixelScale, i = this.fileDirectory.ModelTransformation;\n    if (A)\n      return [\n        A[0],\n        -A[1],\n        A[2]\n      ];\n    if (i)\n      return i[1] === 0 && i[4] === 0 ? [\n        i[0],\n        -i[5],\n        i[10]\n      ] : [\n        Math.sqrt(i[0] * i[0] + i[4] * i[4]),\n        -Math.sqrt(i[1] * i[1] + i[5] * i[5]),\n        i[10]\n      ];\n    if (e) {\n      const [n, o, I] = e.getResolution();\n      return [\n        n * e.getWidth() / this.getWidth(),\n        o * e.getHeight() / this.getHeight(),\n        I * e.getWidth() / this.getWidth()\n      ];\n    }\n    throw new Error(\"The image does not have an affine transformation.\");\n  }\n  /**\n   * Returns whether or not the pixels of the image depict an area (or point).\n   * @returns {Boolean} Whether the pixels are a point\n   */\n  pixelIsArea() {\n    return this.geoKeys.GTRasterTypeGeoKey === 1;\n  }\n  /**\n   * Returns the image bounding box as an array of 4 values: min-x, min-y,\n   * max-x and max-y. When the image has no affine transformation, then an\n   * exception is thrown.\n   * @param {boolean} [tilegrid=false] If true return extent for a tilegrid\n   *                                   without adjustment for ModelTransformation.\n   * @returns {Array<number>} The bounding box\n   */\n  getBoundingBox(e = !1) {\n    const A = this.getHeight(), i = this.getWidth();\n    if (this.fileDirectory.ModelTransformation && !e) {\n      const [n, o, I, s, y, a, r, g] = this.fileDirectory.ModelTransformation, B = [\n        [0, 0],\n        [0, A],\n        [i, 0],\n        [i, A]\n      ].map(([l, u]) => [\n        s + n * l + o * u,\n        g + y * l + a * u\n      ]), f = B.map((l) => l[0]), c = B.map((l) => l[1]);\n      return [\n        Math.min(...f),\n        Math.min(...c),\n        Math.max(...f),\n        Math.max(...c)\n      ];\n    } else {\n      const n = this.getOrigin(), o = this.getResolution(), I = n[0], s = n[1], y = I + o[0] * i, a = s + o[1] * A;\n      return [\n        Math.min(I, y),\n        Math.min(s, a),\n        Math.max(I, y),\n        Math.max(s, a)\n      ];\n    }\n  }\n}\nclass en {\n  constructor(e) {\n    this._dataView = new DataView(e);\n  }\n  get buffer() {\n    return this._dataView.buffer;\n  }\n  getUint64(e, A) {\n    const i = this.getUint32(e, A), n = this.getUint32(e + 4, A);\n    let o;\n    if (A) {\n      if (o = i + 2 ** 32 * n, !Number.isSafeInteger(o))\n        throw new Error(\n          `${o} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`\n        );\n      return o;\n    }\n    if (o = 2 ** 32 * i + n, !Number.isSafeInteger(o))\n      throw new Error(\n        `${o} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`\n      );\n    return o;\n  }\n  // adapted from https://stackoverflow.com/a/55338384/8060591\n  getInt64(e, A) {\n    let i = 0;\n    const n = (this._dataView.getUint8(e + (A ? 7 : 0)) & 128) > 0;\n    let o = !0;\n    for (let I = 0; I < 8; I++) {\n      let s = this._dataView.getUint8(e + (A ? I : 7 - I));\n      n && (o ? s !== 0 && (s = ~(s - 1) & 255, o = !1) : s = ~s & 255), i += s * 256 ** I;\n    }\n    return n && (i = -i), i;\n  }\n  getUint8(e, A) {\n    return this._dataView.getUint8(e, A);\n  }\n  getInt8(e, A) {\n    return this._dataView.getInt8(e, A);\n  }\n  getUint16(e, A) {\n    return this._dataView.getUint16(e, A);\n  }\n  getInt16(e, A) {\n    return this._dataView.getInt16(e, A);\n  }\n  getUint32(e, A) {\n    return this._dataView.getUint32(e, A);\n  }\n  getInt32(e, A) {\n    return this._dataView.getInt32(e, A);\n  }\n  getFloat16(e, A) {\n    return fi(this._dataView, e, A);\n  }\n  getFloat32(e, A) {\n    return this._dataView.getFloat32(e, A);\n  }\n  getFloat64(e, A) {\n    return this._dataView.getFloat64(e, A);\n  }\n}\nclass tn {\n  constructor(e, A, i, n) {\n    this._dataView = new DataView(e), this._sliceOffset = A, this._littleEndian = i, this._bigTiff = n;\n  }\n  get sliceOffset() {\n    return this._sliceOffset;\n  }\n  get sliceTop() {\n    return this._sliceOffset + this.buffer.byteLength;\n  }\n  get littleEndian() {\n    return this._littleEndian;\n  }\n  get bigTiff() {\n    return this._bigTiff;\n  }\n  get buffer() {\n    return this._dataView.buffer;\n  }\n  covers(e, A) {\n    return this.sliceOffset <= e && this.sliceTop >= e + A;\n  }\n  readUint8(e) {\n    return this._dataView.getUint8(\n      e - this._sliceOffset,\n      this._littleEndian\n    );\n  }\n  readInt8(e) {\n    return this._dataView.getInt8(\n      e - this._sliceOffset,\n      this._littleEndian\n    );\n  }\n  readUint16(e) {\n    return this._dataView.getUint16(\n      e - this._sliceOffset,\n      this._littleEndian\n    );\n  }\n  readInt16(e) {\n    return this._dataView.getInt16(\n      e - this._sliceOffset,\n      this._littleEndian\n    );\n  }\n  readUint32(e) {\n    return this._dataView.getUint32(\n      e - this._sliceOffset,\n      this._littleEndian\n    );\n  }\n  readInt32(e) {\n    return this._dataView.getInt32(\n      e - this._sliceOffset,\n      this._littleEndian\n    );\n  }\n  readFloat32(e) {\n    return this._dataView.getFloat32(\n      e - this._sliceOffset,\n      this._littleEndian\n    );\n  }\n  readFloat64(e) {\n    return this._dataView.getFloat64(\n      e - this._sliceOffset,\n      this._littleEndian\n    );\n  }\n  readUint64(e) {\n    const A = this.readUint32(e), i = this.readUint32(e + 4);\n    let n;\n    if (this._littleEndian) {\n      if (n = A + 2 ** 32 * i, !Number.isSafeInteger(n))\n        throw new Error(\n          `${n} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`\n        );\n      return n;\n    }\n    if (n = 2 ** 32 * A + i, !Number.isSafeInteger(n))\n      throw new Error(\n        `${n} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`\n      );\n    return n;\n  }\n  // adapted from https://stackoverflow.com/a/55338384/8060591\n  readInt64(e) {\n    let A = 0;\n    const i = (this._dataView.getUint8(e + (this._littleEndian ? 7 : 0)) & 128) > 0;\n    let n = !0;\n    for (let o = 0; o < 8; o++) {\n      let I = this._dataView.getUint8(\n        e + (this._littleEndian ? o : 7 - o)\n      );\n      i && (n ? I !== 0 && (I = ~(I - 1) & 255, n = !1) : I = ~I & 255), A += I * 256 ** o;\n    }\n    return i && (A = -A), A;\n  }\n  readOffset(e) {\n    return this._bigTiff ? this.readUint64(e) : this.readUint32(e);\n  }\n}\nconst rn = typeof navigator < \"u\" && navigator.hardwareConcurrency || 2;\nclass bi {\n  /**\n   * @constructor\n   * @param {Number} [size] The size of the pool. Defaults to the number of CPUs\n   *                      available. When this parameter is `null` or 0, then the\n   *                      decoding will be done in the main thread.\n   * @param {function(): Worker} [createWorker] A function that creates the decoder worker.\n   * Defaults to a worker with all decoders that ship with geotiff.js. The `createWorker()`\n   * function is expected to return a `Worker` compatible with Web Workers. For code that\n   * runs in Node, [web-worker](https://www.npmjs.com/package/web-worker) is a good choice.\n   *\n   * A worker that uses a custom lzw decoder would look like this `my-custom-worker.js` file:\n   * ```js\n   * import { addDecoder, getDecoder } from 'geotiff';\n   * addDecoder(5, () => import ('./my-custom-lzw').then((m) => m.default));\n   * self.addEventListener('message', async (e) => {\n   *   const { id, fileDirectory, buffer } = e.data;\n   *   const decoder = await getDecoder(fileDirectory);\n   *   const decoded = await decoder.decode(fileDirectory, buffer);\n   *   self.postMessage({ decoded, id }, [decoded]);\n   * });\n   * ```\n   * The way the above code is built into a worker by the `createWorker()` function\n   * depends on the used bundler. For most bundlers, something like this will work:\n   * ```js\n   * function createWorker() {\n   *   return new Worker(new URL('./my-custom-worker.js', import.meta.url));\n   * }\n   * ```\n   */\n  constructor(e = rn, A) {\n    this.workers = null, this._awaitingDecoder = null, this.size = e, this.messageId = 0, e && (this._awaitingDecoder = A ? Promise.resolve(A) : new Promise((i) => {\n      Promise.resolve().then(() => As).then((n) => {\n        i(n.create);\n      });\n    }), this._awaitingDecoder.then((i) => {\n      this._awaitingDecoder = null, this.workers = [];\n      for (let n = 0; n < e; n++)\n        this.workers.push({ worker: i(), idle: !0 });\n    }));\n  }\n  /**\n   * Decode the given block of bytes with the set compression method.\n   * @param {ArrayBuffer} buffer the array buffer of bytes to decode.\n   * @returns {Promise<ArrayBuffer>} the decoded result as a `Promise`\n   */\n  async decode(e, A) {\n    return this._awaitingDecoder && await this._awaitingDecoder, this.size === 0 ? It(e).then((i) => i.decode(e, A)) : new Promise((i) => {\n      const n = this.workers.find((s) => s.idle) || this.workers[Math.floor(Math.random() * this.size)];\n      n.idle = !1;\n      const o = this.messageId++, I = (s) => {\n        s.data.id === o && (n.idle = !0, i(s.data.decoded), n.worker.removeEventListener(\"message\", I));\n      };\n      n.worker.addEventListener(\"message\", I), n.worker.postMessage({ fileDirectory: e, buffer: A, id: o }, [A]);\n    });\n  }\n  destroy() {\n    this.workers && (this.workers.forEach((e) => {\n      e.worker.terminate();\n    }), this.workers = null);\n  }\n}\nconst Qt = `\\r\n\\r\n`;\nfunction Ri(t) {\n  if (typeof Object.fromEntries < \"u\")\n    return Object.fromEntries(t);\n  const e = {};\n  for (const [A, i] of t)\n    e[A.toLowerCase()] = i;\n  return e;\n}\nfunction nn(t) {\n  const e = t.split(`\\r\n`).map((A) => {\n    const i = A.split(\":\").map((n) => n.trim());\n    return i[0] = i[0].toLowerCase(), i;\n  });\n  return Ri(e);\n}\nfunction on(t) {\n  const [e, ...A] = t.split(\";\").map((n) => n.trim()), i = A.map((n) => n.split(\"=\"));\n  return { type: e, params: Ri(i) };\n}\nfunction Je(t) {\n  let e, A, i;\n  return t && ([, e, A, i] = t.match(/bytes (\\d+)-(\\d+)\\/(\\d+)/), e = parseInt(e, 10), A = parseInt(A, 10), i = parseInt(i, 10)), { start: e, end: A, total: i };\n}\nfunction an(t, e) {\n  let A = null;\n  const i = new TextDecoder(\"ascii\"), n = [], o = `--${e}`, I = `${o}--`;\n  for (let s = 0; s < 10; ++s)\n    i.decode(\n      new Uint8Array(t, s, o.length)\n    ) === o && (A = s);\n  if (A === null)\n    throw new Error(\"Could not find initial boundary\");\n  for (; A < t.byteLength; ) {\n    const s = i.decode(\n      new Uint8Array(\n        t,\n        A,\n        Math.min(o.length + 1024, t.byteLength - A)\n      )\n    );\n    if (s.length === 0 || s.startsWith(I))\n      break;\n    if (!s.startsWith(o))\n      throw new Error(\"Part does not start with boundary\");\n    const y = s.substr(o.length + 2);\n    if (y.length === 0)\n      break;\n    const a = y.indexOf(Qt), r = nn(y.substr(0, a)), { start: g, end: E, total: B } = Je(r[\"content-range\"]), f = A + o.length + a + Qt.length, c = parseInt(E, 10) + 1 - parseInt(g, 10);\n    n.push({\n      headers: r,\n      data: t.slice(f, f + c),\n      offset: g,\n      length: c,\n      fileSize: B\n    }), A = f + c + 4;\n  }\n  return n;\n}\nclass XA {\n  /**\n   *\n   * @param {Slice[]} slices\n   * @returns {ArrayBuffer[]}\n   */\n  async fetch(e, A = void 0) {\n    return Promise.all(\n      e.map((i) => this.fetchSlice(i, A))\n    );\n  }\n  /**\n   *\n   * @param {Slice} slice\n   * @returns {ArrayBuffer}\n   */\n  async fetchSlice(e) {\n    throw new Error(`fetching of slice ${e} not possible, not implemented`);\n  }\n  /**\n   * Returns the filesize if already determined and null otherwise\n   */\n  get fileSize() {\n    return null;\n  }\n  async close() {\n  }\n}\nclass sn extends Map {\n  constructor(e = {}) {\n    if (super(), !(e.maxSize && e.maxSize > 0))\n      throw new TypeError(\"`maxSize` must be a number greater than 0\");\n    if (typeof e.maxAge == \"number\" && e.maxAge === 0)\n      throw new TypeError(\"`maxAge` must be a number greater than 0\");\n    this.maxSize = e.maxSize, this.maxAge = e.maxAge || Number.POSITIVE_INFINITY, this.onEviction = e.onEviction, this.cache = /* @__PURE__ */ new Map(), this.oldCache = /* @__PURE__ */ new Map(), this._size = 0;\n  }\n  // TODO: Use private class methods when targeting Node.js 16.\n  _emitEvictions(e) {\n    if (typeof this.onEviction == \"function\")\n      for (const [A, i] of e)\n        this.onEviction(A, i.value);\n  }\n  _deleteIfExpired(e, A) {\n    return typeof A.expiry == \"number\" && A.expiry <= Date.now() ? (typeof this.onEviction == \"function\" && this.onEviction(e, A.value), this.delete(e)) : !1;\n  }\n  _getOrDeleteIfExpired(e, A) {\n    if (this._deleteIfExpired(e, A) === !1)\n      return A.value;\n  }\n  _getItemValue(e, A) {\n    return A.expiry ? this._getOrDeleteIfExpired(e, A) : A.value;\n  }\n  _peek(e, A) {\n    const i = A.get(e);\n    return this._getItemValue(e, i);\n  }\n  _set(e, A) {\n    this.cache.set(e, A), this._size++, this._size >= this.maxSize && (this._size = 0, this._emitEvictions(this.oldCache), this.oldCache = this.cache, this.cache = /* @__PURE__ */ new Map());\n  }\n  _moveToRecent(e, A) {\n    this.oldCache.delete(e), this._set(e, A);\n  }\n  *_entriesAscending() {\n    for (const e of this.oldCache) {\n      const [A, i] = e;\n      this.cache.has(A) || this._deleteIfExpired(A, i) === !1 && (yield e);\n    }\n    for (const e of this.cache) {\n      const [A, i] = e;\n      this._deleteIfExpired(A, i) === !1 && (yield e);\n    }\n  }\n  get(e) {\n    if (this.cache.has(e)) {\n      const A = this.cache.get(e);\n      return this._getItemValue(e, A);\n    }\n    if (this.oldCache.has(e)) {\n      const A = this.oldCache.get(e);\n      if (this._deleteIfExpired(e, A) === !1)\n        return this._moveToRecent(e, A), A.value;\n    }\n  }\n  set(e, A, { maxAge: i = this.maxAge } = {}) {\n    const n = typeof i == \"number\" && i !== Number.POSITIVE_INFINITY ? Date.now() + i : void 0;\n    return this.cache.has(e) ? this.cache.set(e, {\n      value: A,\n      expiry: n\n    }) : this._set(e, { value: A, expiry: n }), this;\n  }\n  has(e) {\n    return this.cache.has(e) ? !this._deleteIfExpired(e, this.cache.get(e)) : this.oldCache.has(e) ? !this._deleteIfExpired(e, this.oldCache.get(e)) : !1;\n  }\n  peek(e) {\n    if (this.cache.has(e))\n      return this._peek(e, this.cache);\n    if (this.oldCache.has(e))\n      return this._peek(e, this.oldCache);\n  }\n  delete(e) {\n    const A = this.cache.delete(e);\n    return A && this._size--, this.oldCache.delete(e) || A;\n  }\n  clear() {\n    this.cache.clear(), this.oldCache.clear(), this._size = 0;\n  }\n  resize(e) {\n    if (!(e && e > 0))\n      throw new TypeError(\"`maxSize` must be a number greater than 0\");\n    const A = [...this._entriesAscending()], i = A.length - e;\n    i < 0 ? (this.cache = new Map(A), this.oldCache = /* @__PURE__ */ new Map(), this._size = A.length) : (i > 0 && this._emitEvictions(A.slice(0, i)), this.oldCache = new Map(A.slice(i)), this.cache = /* @__PURE__ */ new Map(), this._size = 0), this.maxSize = e;\n  }\n  *keys() {\n    for (const [e] of this)\n      yield e;\n  }\n  *values() {\n    for (const [, e] of this)\n      yield e;\n  }\n  *[Symbol.iterator]() {\n    for (const e of this.cache) {\n      const [A, i] = e;\n      this._deleteIfExpired(A, i) === !1 && (yield [A, i.value]);\n    }\n    for (const e of this.oldCache) {\n      const [A, i] = e;\n      this.cache.has(A) || this._deleteIfExpired(A, i) === !1 && (yield [A, i.value]);\n    }\n  }\n  *entriesDescending() {\n    let e = [...this.cache];\n    for (let A = e.length - 1; A >= 0; --A) {\n      const i = e[A], [n, o] = i;\n      this._deleteIfExpired(n, o) === !1 && (yield [n, o.value]);\n    }\n    e = [...this.oldCache];\n    for (let A = e.length - 1; A >= 0; --A) {\n      const i = e[A], [n, o] = i;\n      this.cache.has(n) || this._deleteIfExpired(n, o) === !1 && (yield [n, o.value]);\n    }\n  }\n  *entriesAscending() {\n    for (const [e, A] of this._entriesAscending())\n      yield [e, A.value];\n  }\n  get size() {\n    if (!this._size)\n      return this.oldCache.size;\n    let e = 0;\n    for (const A of this.oldCache.keys())\n      this.cache.has(A) || e++;\n    return Math.min(this._size + e, this.maxSize);\n  }\n  entries() {\n    return this.entriesAscending();\n  }\n  forEach(e, A = this) {\n    for (const [i, n] of this.entriesAscending())\n      e.call(A, n, i, this);\n  }\n  get [Symbol.toStringTag]() {\n    return JSON.stringify([...this.entriesAscending()]);\n  }\n}\nfunction vi(t, e) {\n  for (const A in e)\n    e.hasOwnProperty(A) && (t[A] = e[A]);\n}\nfunction Ui(t, e) {\n  return t.length < e.length ? !1 : t.substr(t.length - e.length) === e;\n}\nfunction gn(t, e) {\n  const { length: A } = t;\n  for (let i = 0; i < A; i++)\n    e(t[i], i);\n}\nfunction lt(t) {\n  const e = {};\n  for (const A in t)\n    if (t.hasOwnProperty(A)) {\n      const i = t[A];\n      e[i] = A;\n    }\n  return e;\n}\nfunction eA(t, e) {\n  const A = [];\n  for (let i = 0; i < t; i++)\n    A.push(e(i));\n  return A;\n}\nasync function In(t) {\n  return new Promise((e) => setTimeout(e, t));\n}\nfunction Bn(t, e) {\n  const A = Array.isArray(t) ? t : Array.from(t), i = Array.isArray(e) ? e : Array.from(e);\n  return A.map((n, o) => [n, i[o]]);\n}\nclass kA extends Error {\n  constructor(e) {\n    super(e), Error.captureStackTrace && Error.captureStackTrace(this, kA), this.name = \"AbortError\";\n  }\n}\nclass ln extends Error {\n  constructor(e, A) {\n    super(A), this.errors = e, this.message = A, this.name = \"AggregateError\";\n  }\n}\nconst fn = ln;\nclass cn {\n  /**\n   *\n   * @param {number} offset\n   * @param {number} length\n   * @param {ArrayBuffer} [data]\n   */\n  constructor(e, A, i = null) {\n    this.offset = e, this.length = A, this.data = i;\n  }\n  /**\n   * @returns {number} the top byte border\n   */\n  get top() {\n    return this.offset + this.length;\n  }\n}\nclass ht {\n  /**\n   *\n   * @param {number} offset\n   * @param {number} length\n   * @param {number[]} blockIds\n   */\n  constructor(e, A, i) {\n    this.offset = e, this.length = A, this.blockIds = i;\n  }\n}\nclass Cn extends XA {\n  /**\n   *\n   * @param {BaseSource} source The underlying source that shall be blocked and cached\n   * @param {object} options\n   * @param {number} [options.blockSize]\n   * @param {number} [options.cacheSize]\n   */\n  constructor(e, { blockSize: A = 65536, cacheSize: i = 100 } = {}) {\n    super(), this.source = e, this.blockSize = A, this.blockCache = new sn({\n      maxSize: i,\n      onEviction: (n, o) => {\n        this.evictedBlocks.set(n, o);\n      }\n    }), this.evictedBlocks = /* @__PURE__ */ new Map(), this.blockRequests = /* @__PURE__ */ new Map(), this.blockIdsToFetch = /* @__PURE__ */ new Set(), this.abortedBlockIds = /* @__PURE__ */ new Set();\n  }\n  get fileSize() {\n    return this.source.fileSize;\n  }\n  /**\n   *\n   * @param {import(\"./basesource\").Slice[]} slices\n   */\n  async fetch(e, A) {\n    const i = [], n = [], o = [];\n    this.evictedBlocks.clear();\n    for (const { offset: E, length: B } of e) {\n      let f = E + B;\n      const { fileSize: c } = this;\n      c !== null && (f = Math.min(f, c));\n      const l = Math.floor(E / this.blockSize) * this.blockSize;\n      for (let u = l; u < f; u += this.blockSize) {\n        const h = Math.floor(u / this.blockSize);\n        !this.blockCache.has(h) && !this.blockRequests.has(h) && (this.blockIdsToFetch.add(h), n.push(h)), this.blockRequests.has(h) && i.push(this.blockRequests.get(h)), o.push(h);\n      }\n    }\n    await In(), this.fetchBlocks(A);\n    const I = [];\n    for (const E of n)\n      this.blockRequests.has(E) && I.push(this.blockRequests.get(E));\n    await Promise.allSettled(i), await Promise.allSettled(I);\n    const s = [], y = o.filter((E) => this.abortedBlockIds.has(E) || !this.blockCache.has(E));\n    if (y.forEach((E) => this.blockIdsToFetch.add(E)), y.length > 0 && A && !A.aborted) {\n      this.fetchBlocks(null);\n      for (const E of y) {\n        const B = this.blockRequests.get(E);\n        if (!B)\n          throw new Error(`Block ${E} is not in the block requests`);\n        s.push(B);\n      }\n      await Promise.allSettled(s);\n    }\n    if (A && A.aborted)\n      throw new kA(\"Request was aborted\");\n    const a = o.map((E) => this.blockCache.get(E) || this.evictedBlocks.get(E)), r = a.filter((E) => !E);\n    if (r.length)\n      throw new fn(r, \"Request failed\");\n    const g = new Map(Bn(o, a));\n    return this.readSliceData(e, g);\n  }\n  /**\n   *\n   * @param {AbortSignal} signal\n   */\n  fetchBlocks(e) {\n    if (this.blockIdsToFetch.size > 0) {\n      const A = this.groupBlocks(this.blockIdsToFetch), i = this.source.fetch(A, e);\n      for (let n = 0; n < A.length; ++n) {\n        const o = A[n];\n        for (const I of o.blockIds)\n          this.blockRequests.set(I, (async () => {\n            try {\n              const s = (await i)[n], y = I * this.blockSize, a = y - s.offset, r = Math.min(a + this.blockSize, s.data.byteLength), g = s.data.slice(a, r), E = new cn(\n                y,\n                g.byteLength,\n                g,\n                I\n              );\n              this.blockCache.set(I, E), this.abortedBlockIds.delete(I);\n            } catch (s) {\n              if (s.name === \"AbortError\")\n                s.signal = e, this.blockCache.delete(I), this.abortedBlockIds.add(I);\n              else\n                throw s;\n            } finally {\n              this.blockRequests.delete(I);\n            }\n          })());\n      }\n      this.blockIdsToFetch.clear();\n    }\n  }\n  /**\n   *\n   * @param {Set} blockIds\n   * @returns {BlockGroup[]}\n   */\n  groupBlocks(e) {\n    const A = Array.from(e).sort((I, s) => I - s);\n    if (A.length === 0)\n      return [];\n    let i = [], n = null;\n    const o = [];\n    for (const I of A)\n      n === null || n + 1 === I ? (i.push(I), n = I) : (o.push(new ht(\n        i[0] * this.blockSize,\n        i.length * this.blockSize,\n        i\n      )), i = [I], n = I);\n    return o.push(new ht(\n      i[0] * this.blockSize,\n      i.length * this.blockSize,\n      i\n    )), o;\n  }\n  /**\n   *\n   * @param {import(\"./basesource\").Slice[]} slices\n   * @param {Map} blocks\n   */\n  readSliceData(e, A) {\n    return e.map((i) => {\n      let n = i.offset + i.length;\n      this.fileSize !== null && (n = Math.min(this.fileSize, n));\n      const o = Math.floor(i.offset / this.blockSize), I = Math.floor(n / this.blockSize), s = new ArrayBuffer(i.length), y = new Uint8Array(s);\n      for (let a = o; a <= I; ++a) {\n        const r = A.get(a), g = r.offset - i.offset, E = r.top - n;\n        let B = 0, f = 0, c;\n        g < 0 ? B = -g : g > 0 && (f = g), E < 0 ? c = r.length - B : c = n - r.offset - B;\n        const l = new Uint8Array(r.data, B, c);\n        y.set(l, f);\n      }\n      return s;\n    });\n  }\n}\nclass WA {\n  /**\n   * Returns whether the response has an ok'ish status code\n   */\n  get ok() {\n    return this.status >= 200 && this.status <= 299;\n  }\n  /**\n   * Returns the status code of the response\n   */\n  get status() {\n    throw new Error(\"not implemented\");\n  }\n  /**\n   * Returns the value of the specified header\n   * @param {string} headerName the header name\n   * @returns {string} the header value\n   */\n  getHeader(e) {\n    throw new Error(\"not implemented\");\n  }\n  /**\n   * @returns {ArrayBuffer} the response data of the request\n   */\n  async getData() {\n    throw new Error(\"not implemented\");\n  }\n}\nclass ZA {\n  constructor(e) {\n    this.url = e;\n  }\n  /**\n   * Send a request with the options\n   * @param {{headers: HeadersInit, signal: AbortSignal}} [options={}]\n   * @returns {Promise<BaseResponse>}\n   */\n  async request({ headers: e, signal: A } = {}) {\n    throw new Error(\"request is not implemented\");\n  }\n}\nclass En extends WA {\n  /**\n   * BaseResponse facade for fetch API Response\n   * @param {Response} response\n   */\n  constructor(e) {\n    super(), this.response = e;\n  }\n  get status() {\n    return this.response.status;\n  }\n  getHeader(e) {\n    return this.response.headers.get(e);\n  }\n  async getData() {\n    return this.response.arrayBuffer ? await this.response.arrayBuffer() : (await this.response.buffer()).buffer;\n  }\n}\nclass Qn extends ZA {\n  constructor(e, A) {\n    super(e), this.credentials = A;\n  }\n  /**\n   * @param {{headers: HeadersInit, signal: AbortSignal}} [options={}]\n   * @returns {Promise<FetchResponse>}\n   */\n  async request({ headers: e, signal: A } = {}) {\n    const i = await fetch(this.url, {\n      headers: e,\n      credentials: this.credentials,\n      signal: A\n    });\n    return new En(i);\n  }\n}\nclass hn extends WA {\n  /**\n   * BaseResponse facade for XMLHttpRequest\n   * @param {XMLHttpRequest} xhr\n   * @param {ArrayBuffer} data\n   */\n  constructor(e, A) {\n    super(), this.xhr = e, this.data = A;\n  }\n  get status() {\n    return this.xhr.status;\n  }\n  getHeader(e) {\n    return this.xhr.getResponseHeader(e);\n  }\n  async getData() {\n    return this.data;\n  }\n}\nclass un extends ZA {\n  constructRequest(e, A) {\n    return new Promise((i, n) => {\n      const o = new XMLHttpRequest();\n      o.open(\"GET\", this.url), o.responseType = \"arraybuffer\";\n      for (const [I, s] of Object.entries(e))\n        o.setRequestHeader(I, s);\n      o.onload = () => {\n        const I = o.response;\n        i(new hn(o, I));\n      }, o.onerror = n, o.onabort = () => n(new kA(\"Request aborted\")), o.send(), A && (A.aborted && o.abort(), A.addEventListener(\"abort\", () => o.abort()));\n    });\n  }\n  async request({ headers: e, signal: A } = {}) {\n    return await this.constructRequest(e, A);\n  }\n}\nconst LA = {};\nclass dn extends WA {\n  /**\n   * BaseResponse facade for node HTTP/HTTPS API Response\n   * @param {http.ServerResponse} response\n   */\n  constructor(e, A) {\n    super(), this.response = e, this.dataPromise = A;\n  }\n  get status() {\n    return this.response.statusCode;\n  }\n  getHeader(e) {\n    return this.response.headers[e];\n  }\n  async getData() {\n    return await this.dataPromise;\n  }\n}\nclass wn extends ZA {\n  constructor(e) {\n    super(e), this.parsedUrl = LA.parse(this.url), this.httpApi = (this.parsedUrl.protocol === \"http:\", LA);\n  }\n  constructRequest(e, A) {\n    return new Promise((i, n) => {\n      const o = this.httpApi.get(\n        {\n          ...this.parsedUrl,\n          headers: e\n        },\n        (I) => {\n          const s = new Promise((y) => {\n            const a = [];\n            I.on(\"data\", (r) => {\n              a.push(r);\n            }), I.on(\"end\", () => {\n              const r = Buffer.concat(a).buffer;\n              y(r);\n            }), I.on(\"error\", n);\n          });\n          i(new dn(I, s));\n        }\n      );\n      o.on(\"error\", n), A && (A.aborted && o.destroy(new kA(\"Request aborted\")), A.addEventListener(\"abort\", () => o.destroy(new kA(\"Request aborted\"))));\n    });\n  }\n  async request({ headers: e, signal: A } = {}) {\n    return await this.constructRequest(e, A);\n  }\n}\nclass Qe extends XA {\n  /**\n   *\n   * @param {BaseClient} client\n   * @param {object} headers\n   * @param {numbers} maxRanges\n   * @param {boolean} allowFullFile\n   */\n  constructor(e, A, i, n) {\n    super(), this.client = e, this.headers = A, this.maxRanges = i, this.allowFullFile = n, this._fileSize = null;\n  }\n  /**\n   *\n   * @param {Slice[]} slices\n   */\n  async fetch(e, A) {\n    return this.maxRanges >= e.length ? this.fetchSlices(e, A) : (this.maxRanges > 0 && e.length > 1, Promise.all(\n      e.map((i) => this.fetchSlice(i, A))\n    ));\n  }\n  async fetchSlices(e, A) {\n    const i = await this.client.request({\n      headers: {\n        ...this.headers,\n        Range: `bytes=${e.map(({ offset: n, length: o }) => `${n}-${n + o}`).join(\",\")}`\n      },\n      signal: A\n    });\n    if (i.ok)\n      if (i.status === 206) {\n        const { type: n, params: o } = on(i.getHeader(\"content-type\"));\n        if (n === \"multipart/byteranges\") {\n          const g = an(await i.getData(), o.boundary);\n          return this._fileSize = g[0].fileSize || null, g;\n        }\n        const I = await i.getData(), { start: s, end: y, total: a } = Je(i.getHeader(\"content-range\"));\n        this._fileSize = a || null;\n        const r = [{\n          data: I,\n          offset: s,\n          length: y - s\n        }];\n        if (e.length > 1) {\n          const g = await Promise.all(e.slice(1).map((E) => this.fetchSlice(E, A)));\n          return r.concat(g);\n        }\n        return r;\n      } else {\n        if (!this.allowFullFile)\n          throw new Error(\"Server responded with full file\");\n        const n = await i.getData();\n        return this._fileSize = n.byteLength, [{\n          data: n,\n          offset: 0,\n          length: n.byteLength\n        }];\n      }\n    else throw new Error(\"Error fetching data.\");\n  }\n  async fetchSlice(e, A) {\n    const { offset: i, length: n } = e, o = await this.client.request({\n      headers: {\n        ...this.headers,\n        Range: `bytes=${i}-${i + n}`\n      },\n      signal: A\n    });\n    if (o.ok)\n      if (o.status === 206) {\n        const I = await o.getData(), { total: s } = Je(o.getHeader(\"content-range\"));\n        return this._fileSize = s || null, {\n          data: I,\n          offset: i,\n          length: n\n        };\n      } else {\n        if (!this.allowFullFile)\n          throw new Error(\"Server responded with full file\");\n        const I = await o.getData();\n        return this._fileSize = I.byteLength, {\n          data: I,\n          offset: 0,\n          length: I.byteLength\n        };\n      }\n    else throw new Error(\"Error fetching data.\");\n  }\n  get fileSize() {\n    return this._fileSize;\n  }\n}\nfunction he(t, { blockSize: e, cacheSize: A }) {\n  return e === null ? t : new Cn(t, { blockSize: e, cacheSize: A });\n}\nfunction yn(t, { headers: e = {}, credentials: A, maxRanges: i = 0, allowFullFile: n = !1, ...o } = {}) {\n  const I = new Qn(t, A), s = new Qe(I, e, i, n);\n  return he(s, o);\n}\nfunction Dn(t, { headers: e = {}, maxRanges: A = 0, allowFullFile: i = !1, ...n } = {}) {\n  const o = new un(t), I = new Qe(o, e, A, i);\n  return he(I, n);\n}\nfunction mn(t, { headers: e = {}, maxRanges: A = 0, allowFullFile: i = !1, ...n } = {}) {\n  const o = new wn(t), I = new Qe(o, e, A, i);\n  return he(I, n);\n}\nfunction pn(t, { headers: e = {}, maxRanges: A = 0, allowFullFile: i = !1, ...n } = {}) {\n  const o = new Qe(t, e, A, i);\n  return he(o, n);\n}\nfunction Ye(t, { forceXHR: e = !1, ...A } = {}) {\n  return typeof fetch == \"function\" && !e ? yn(t, A) : typeof XMLHttpRequest < \"u\" ? Dn(t, A) : mn(t, A);\n}\nclass kn extends XA {\n  constructor(e) {\n    super(), this.arrayBuffer = e;\n  }\n  fetchSlice(e, A) {\n    if (A && A.aborted)\n      throw new kA(\"Request aborted\");\n    return this.arrayBuffer.slice(e.offset, e.offset + e.length);\n  }\n}\nfunction Fn(t) {\n  return new kn(t);\n}\nclass Sn extends XA {\n  constructor(e) {\n    super(), this.file = e;\n  }\n  async fetchSlice(e, A) {\n    return new Promise((i, n) => {\n      const o = this.file.slice(e.offset, e.offset + e.length), I = new FileReader();\n      I.onload = (s) => i(s.target.result), I.onerror = n, I.onabort = n, I.readAsArrayBuffer(o), A && A.addEventListener(\"abort\", () => I.abort());\n    });\n  }\n}\nfunction Gn(t) {\n  return new Sn(t);\n}\nfunction xn(t) {\n  return new Promise((e, A) => {\n    LA.close(t, (i) => {\n      i ? A(i) : e();\n    });\n  });\n}\nfunction bn(t, e, A = void 0) {\n  return new Promise((i, n) => {\n    LA.open(t, e, A, (o, I) => {\n      o ? n(o) : i(I);\n    });\n  });\n}\nfunction Rn(...t) {\n  return new Promise((e, A) => {\n    LA.read(...t, (i, n, o) => {\n      i ? A(i) : e({ bytesRead: n, buffer: o });\n    });\n  });\n}\nclass vn extends XA {\n  constructor(e) {\n    super(), this.path = e, this.openRequest = bn(e, \"r\");\n  }\n  async fetchSlice(e) {\n    const A = await this.openRequest, { buffer: i } = await Rn(\n      A,\n      Buffer.alloc(e.length),\n      0,\n      e.length,\n      e.offset\n    );\n    return i.buffer;\n  }\n  async close() {\n    const e = await this.openRequest;\n    await xn(e);\n  }\n}\nfunction Un(t) {\n  return new vn(t);\n}\nconst Ln = lt(pA), Mn = lt(vA), IA = {};\nvi(IA, Ln);\nvi(IA, Mn);\nconst Nn = lt(HA), le = 1e3, $ = {\n  nextZero: (t, e) => {\n    let A = e;\n    for (; t[A] !== 0; )\n      A++;\n    return A;\n  },\n  readUshort: (t, e) => t[e] << 8 | t[e + 1],\n  readShort: (t, e) => {\n    const A = $.ui8;\n    return A[0] = t[e + 1], A[1] = t[e + 0], $.i16[0];\n  },\n  readInt: (t, e) => {\n    const A = $.ui8;\n    return A[0] = t[e + 3], A[1] = t[e + 2], A[2] = t[e + 1], A[3] = t[e + 0], $.i32[0];\n  },\n  readUint: (t, e) => {\n    const A = $.ui8;\n    return A[0] = t[e + 3], A[1] = t[e + 2], A[2] = t[e + 1], A[3] = t[e + 0], $.ui32[0];\n  },\n  readASCII: (t, e, A) => A.map((i) => String.fromCharCode(t[e + i])).join(\"\"),\n  readFloat: (t, e) => {\n    const A = $.ui8;\n    return eA(4, (i) => {\n      A[i] = t[e + 3 - i];\n    }), $.fl32[0];\n  },\n  readDouble: (t, e) => {\n    const A = $.ui8;\n    return eA(8, (i) => {\n      A[i] = t[e + 7 - i];\n    }), $.fl64[0];\n  },\n  writeUshort: (t, e, A) => {\n    t[e] = A >> 8 & 255, t[e + 1] = A & 255;\n  },\n  writeUint: (t, e, A) => {\n    t[e] = A >> 24 & 255, t[e + 1] = A >> 16 & 255, t[e + 2] = A >> 8 & 255, t[e + 3] = A >> 0 & 255;\n  },\n  writeASCII: (t, e, A) => {\n    eA(A.length, (i) => {\n      t[e + i] = A.charCodeAt(i);\n    });\n  },\n  ui8: new Uint8Array(8)\n};\n$.fl64 = new Float64Array($.ui8.buffer);\n$.writeDouble = (t, e, A) => {\n  $.fl64[0] = A, eA(8, (i) => {\n    t[e + i] = $.ui8[7 - i];\n  });\n};\nconst Tn = (t, e, A, i) => {\n  let n = A;\n  const o = Object.keys(i).filter((s) => s != null && s !== \"undefined\");\n  t.writeUshort(e, n, o.length), n += 2;\n  let I = n + 12 * o.length + 4;\n  for (const s of o) {\n    let y = null;\n    typeof s == \"number\" ? y = s : typeof s == \"string\" && (y = parseInt(s, 10));\n    const a = fe[y], r = Nn[a];\n    if (a == null || a === void 0 || typeof a > \"u\")\n      throw new Error(`unknown type of tag: ${y}`);\n    let g = i[s];\n    if (g === void 0)\n      throw new Error(`failed to get value for key ${s}`);\n    a === \"ASCII\" && typeof g == \"string\" && Ui(g, \"\\0\") === !1 && (g += \"\\0\");\n    const E = g.length;\n    t.writeUshort(e, n, y), n += 2, t.writeUshort(e, n, r), n += 2, t.writeUint(e, n, E), n += 4;\n    let B = [-1, 1, 1, 2, 4, 8, 0, 0, 0, 0, 0, 0, 8][r] * E, f = n;\n    B > 4 && (t.writeUint(e, n, I), f = I), a === \"ASCII\" ? t.writeASCII(e, f, g) : a === \"SHORT\" ? eA(E, (c) => {\n      t.writeUshort(e, f + 2 * c, g[c]);\n    }) : a === \"LONG\" ? eA(E, (c) => {\n      t.writeUint(e, f + 4 * c, g[c]);\n    }) : a === \"RATIONAL\" ? eA(E, (c) => {\n      t.writeUint(e, f + 8 * c, Math.round(g[c] * 1e4)), t.writeUint(e, f + 8 * c + 4, 1e4);\n    }) : a === \"DOUBLE\" && eA(E, (c) => {\n      t.writeDouble(e, f + 8 * c, g[c]);\n    }), B > 4 && (B += B & 1, I += B), n += 4;\n  }\n  return [n, I];\n}, qn = (t) => {\n  const e = new Uint8Array(le);\n  let A = 4;\n  const i = $;\n  e[0] = 77, e[1] = 77, e[3] = 42;\n  let n = 8;\n  if (i.writeUint(e, A, n), A += 4, t.forEach((I, s) => {\n    const y = Tn(i, e, n, I);\n    n = y[1], s < t.length - 1 && i.writeUint(e, y[0], n);\n  }), e.slice)\n    return e.slice(0, n).buffer;\n  const o = new Uint8Array(n);\n  for (let I = 0; I < n; I++)\n    o[I] = e[I];\n  return o.buffer;\n}, Jn = (t, e, A, i) => {\n  if (A == null)\n    throw new Error(`you passed into encodeImage a width of type ${A}`);\n  if (e == null)\n    throw new Error(`you passed into encodeImage a width of type ${e}`);\n  const n = {\n    256: [e],\n    // ImageWidth\n    257: [A],\n    // ImageLength\n    273: [le],\n    // strips offset\n    278: [A],\n    // RowsPerStrip\n    305: \"geotiff.js\"\n    // no array for ASCII(Z)\n  };\n  if (i)\n    for (const a in i)\n      i.hasOwnProperty(a) && (n[a] = i[a]);\n  const o = new Uint8Array(qn([n])), I = new Uint8Array(t), s = n[277], y = new Uint8Array(le + e * A * s);\n  return eA(o.length, (a) => {\n    y[a] = o[a];\n  }), gn(I, (a, r) => {\n    y[le + r] = a;\n  }), y.buffer;\n}, Yn = (t) => {\n  const e = {};\n  for (const A in t)\n    A !== \"StripOffsets\" && (IA[A] || console.error(A, \"not in name2code:\", Object.keys(IA)), e[IA[A]] = t[A]);\n  return e;\n}, Hn = (t) => Array.isArray(t) ? t : [t], On = [\n  [\"Compression\", 1],\n  // no compression\n  [\"PlanarConfiguration\", 1],\n  [\"ExtraSamples\", 0]\n];\nfunction Kn(t, e) {\n  const A = typeof t[0] == \"number\";\n  let i, n, o, I;\n  A ? (i = e.height || e.ImageLength, o = e.width || e.ImageWidth, n = t.length / (i * o), I = t) : (n = t.length, i = t[0].length, o = t[0][0].length, I = [], eA(i, (r) => {\n    eA(o, (g) => {\n      eA(n, (E) => {\n        I.push(t[E][r][g]);\n      });\n    });\n  })), e.ImageLength = i, delete e.height, e.ImageWidth = o, delete e.width, e.BitsPerSample || (e.BitsPerSample = eA(n, () => 8)), On.forEach((r) => {\n    const g = r[0];\n    if (!e[g]) {\n      const E = r[1];\n      e[g] = E;\n    }\n  }), e.PhotometricInterpretation || (e.PhotometricInterpretation = e.BitsPerSample.length === 3 ? 2 : 1), e.SamplesPerPixel || (e.SamplesPerPixel = [n]), e.StripByteCounts || (e.StripByteCounts = [n * i * o]), e.ModelPixelScale || (e.ModelPixelScale = [360 / o, 180 / i, 0]), e.SampleFormat || (e.SampleFormat = eA(n, () => 1)), !e.hasOwnProperty(\"GeographicTypeGeoKey\") && !e.hasOwnProperty(\"ProjectedCSTypeGeoKey\") && (e.GeographicTypeGeoKey = 4326, e.ModelTiepoint = [0, 0, 0, -180, 90, 0], e.GeogCitationGeoKey = \"WGS 84\", e.GTModelTypeGeoKey = 2);\n  const s = Object.keys(e).filter((r) => Ui(r, \"GeoKey\")).sort((r, g) => IA[r] - IA[g]);\n  if (!e.GeoAsciiParams) {\n    let r = \"\";\n    s.forEach((g) => {\n      const E = Number(IA[g]);\n      fe[E] === \"ASCII\" && (r += `${e[g].toString()}\\0`);\n    }), r.length > 0 && (e.GeoAsciiParams = r);\n  }\n  if (!e.GeoKeyDirectory) {\n    const g = [1, 1, 0, s.length];\n    s.forEach((E) => {\n      const B = Number(IA[E]);\n      g.push(B);\n      let f, c, l;\n      fe[B] === \"SHORT\" ? (f = 1, c = 0, l = e[E]) : E === \"GeogCitationGeoKey\" ? (f = e.GeoAsciiParams.length, c = Number(IA.GeoAsciiParams), l = 0) : console.log(`[geotiff.js] couldn't get TIFFTagLocation for ${E}`), g.push(c), g.push(f), g.push(l);\n    }), e.GeoKeyDirectory = g;\n  }\n  for (const r of s)\n    e.hasOwnProperty(r) && delete e[r];\n  [\n    \"Compression\",\n    \"ExtraSamples\",\n    \"GeographicTypeGeoKey\",\n    \"GTModelTypeGeoKey\",\n    \"GTRasterTypeGeoKey\",\n    \"ImageLength\",\n    // synonym of ImageHeight\n    \"ImageWidth\",\n    \"Orientation\",\n    \"PhotometricInterpretation\",\n    \"ProjectedCSTypeGeoKey\",\n    \"PlanarConfiguration\",\n    \"ResolutionUnit\",\n    \"SamplesPerPixel\",\n    \"XPosition\",\n    \"YPosition\",\n    \"RowsPerStrip\"\n  ].forEach((r) => {\n    e[r] && (e[r] = Hn(e[r]));\n  });\n  const y = Yn(e);\n  return Jn(I, o, i, y);\n}\nclass _n {\n  log() {\n  }\n  debug() {\n  }\n  info() {\n  }\n  warn() {\n  }\n  error() {\n  }\n  time() {\n  }\n  timeEnd() {\n  }\n}\nfunction Pn(t = new _n()) {\n}\nfunction Vn(t, e) {\n  let A = t.length - e, i = 0;\n  do {\n    for (let n = e; n > 0; n--)\n      t[i + e] += t[i], i++;\n    A -= e;\n  } while (A > 0);\n}\nfunction jn(t, e, A) {\n  let i = 0, n = t.length;\n  const o = n / A;\n  for (; n > e; ) {\n    for (let s = e; s > 0; --s)\n      t[i + e] += t[i], ++i;\n    n -= e;\n  }\n  const I = t.slice();\n  for (let s = 0; s < o; ++s)\n    for (let y = 0; y < A; ++y)\n      t[A * s + y] = I[(A - y - 1) * o + s];\n}\nfunction Xn(t, e, A, i, n, o) {\n  if (e === 1)\n    return t;\n  for (let y = 0; y < n.length; ++y) {\n    if (n[y] % 8 !== 0)\n      throw new Error(\"When decoding with predictor, only multiple of 8 bits are supported.\");\n    if (n[y] !== n[0])\n      throw new Error(\"When decoding with predictor, all samples must have the same size.\");\n  }\n  const I = n[0] / 8, s = o === 2 ? 1 : n.length;\n  for (let y = 0; y < i && !(y * s * A * I >= t.byteLength); ++y) {\n    let a;\n    if (e === 2) {\n      switch (n[0]) {\n        case 8:\n          a = new Uint8Array(\n            t,\n            y * s * A * I,\n            s * A * I\n          );\n          break;\n        case 16:\n          a = new Uint16Array(\n            t,\n            y * s * A * I,\n            s * A * I / 2\n          );\n          break;\n        case 32:\n          a = new Uint32Array(\n            t,\n            y * s * A * I,\n            s * A * I / 4\n          );\n          break;\n        default:\n          throw new Error(`Predictor 2 not allowed with ${n[0]} bits per sample.`);\n      }\n      Vn(a, s);\n    } else e === 3 && (a = new Uint8Array(\n      t,\n      y * s * A * I,\n      s * A * I\n    ), jn(a, s, I));\n  }\n  return t;\n}\nclass dA {\n  async decode(e, A) {\n    const i = await this.decodeBlock(A), n = e.Predictor || 1;\n    if (n !== 1) {\n      const o = !e.StripOffsets, I = o ? e.TileWidth : e.ImageWidth, s = o ? e.TileLength : e.RowsPerStrip || e.ImageLength;\n      return Xn(\n        i,\n        n,\n        I,\n        s,\n        e.BitsPerSample,\n        e.PlanarConfiguration\n      );\n    }\n    return i;\n  }\n}\nfunction He(t) {\n  switch (t) {\n    case K.BYTE:\n    case K.ASCII:\n    case K.SBYTE:\n    case K.UNDEFINED:\n      return 1;\n    case K.SHORT:\n    case K.SSHORT:\n      return 2;\n    case K.LONG:\n    case K.SLONG:\n    case K.FLOAT:\n    case K.IFD:\n      return 4;\n    case K.RATIONAL:\n    case K.SRATIONAL:\n    case K.DOUBLE:\n    case K.LONG8:\n    case K.SLONG8:\n    case K.IFD8:\n      return 8;\n    default:\n      throw new RangeError(`Invalid field type: ${t}`);\n  }\n}\nfunction Wn(t) {\n  const e = t.GeoKeyDirectory;\n  if (!e)\n    return null;\n  const A = {};\n  for (let i = 4; i <= e[3] * 4; i += 4) {\n    const n = vA[e[i]], o = e[i + 1] ? pA[e[i + 1]] : null, I = e[i + 2], s = e[i + 3];\n    let y = null;\n    if (!o)\n      y = s;\n    else {\n      if (y = t[o], typeof y > \"u\" || y === null)\n        throw new Error(`Could not get value of geoKey '${n}'.`);\n      typeof y == \"string\" ? y = y.substring(s, s + I - 1) : y.subarray && (y = y.subarray(s, s + I), I === 1 && (y = y[0]));\n    }\n    A[n] = y;\n  }\n  return A;\n}\nfunction GA(t, e, A, i) {\n  let n = null, o = null;\n  const I = He(e);\n  switch (e) {\n    case K.BYTE:\n    case K.ASCII:\n    case K.UNDEFINED:\n      n = new Uint8Array(A), o = t.readUint8;\n      break;\n    case K.SBYTE:\n      n = new Int8Array(A), o = t.readInt8;\n      break;\n    case K.SHORT:\n      n = new Uint16Array(A), o = t.readUint16;\n      break;\n    case K.SSHORT:\n      n = new Int16Array(A), o = t.readInt16;\n      break;\n    case K.LONG:\n    case K.IFD:\n      n = new Uint32Array(A), o = t.readUint32;\n      break;\n    case K.SLONG:\n      n = new Int32Array(A), o = t.readInt32;\n      break;\n    case K.LONG8:\n    case K.IFD8:\n      n = new Array(A), o = t.readUint64;\n      break;\n    case K.SLONG8:\n      n = new Array(A), o = t.readInt64;\n      break;\n    case K.RATIONAL:\n      n = new Uint32Array(A * 2), o = t.readUint32;\n      break;\n    case K.SRATIONAL:\n      n = new Int32Array(A * 2), o = t.readInt32;\n      break;\n    case K.FLOAT:\n      n = new Float32Array(A), o = t.readFloat32;\n      break;\n    case K.DOUBLE:\n      n = new Float64Array(A), o = t.readFloat64;\n      break;\n    default:\n      throw new RangeError(`Invalid field type: ${e}`);\n  }\n  if (e === K.RATIONAL || e === K.SRATIONAL)\n    for (let s = 0; s < A; s += 2)\n      n[s] = o.call(\n        t,\n        i + s * I\n      ), n[s + 1] = o.call(\n        t,\n        i + (s * I + 4)\n      );\n  else\n    for (let s = 0; s < A; ++s)\n      n[s] = o.call(\n        t,\n        i + s * I\n      );\n  return e === K.ASCII ? new TextDecoder(\"utf-8\").decode(n) : n;\n}\nclass Zn {\n  constructor(e, A, i) {\n    this.fileDirectory = e, this.geoKeyDirectory = A, this.nextIFDByteOffset = i;\n  }\n}\nclass zA extends Error {\n  constructor(e) {\n    super(`No image at index ${e}`), this.index = e;\n  }\n}\nclass Li {\n  /**\n   * (experimental) Reads raster data from the best fitting image. This function uses\n   * the image with the lowest resolution that is still a higher resolution than the\n   * requested resolution.\n   * When specified, the `bbox` option is translated to the `window` option and the\n   * `resX` and `resY` to `width` and `height` respectively.\n   * Then, the [readRasters]{@link GeoTIFFImage#readRasters} method of the selected\n   * image is called and the result returned.\n   * @see GeoTIFFImage.readRasters\n   * @param {import('./geotiffimage').ReadRasterOptions} [options={}] optional parameters\n   * @returns {Promise<ReadRasterResult>} the decoded array(s), with `height` and `width`, as a promise\n   */\n  async readRasters(e = {}) {\n    const { window: A, width: i, height: n } = e;\n    let { resX: o, resY: I, bbox: s } = e;\n    const y = await this.getImage();\n    let a = y;\n    const r = await this.getImageCount(), g = y.getBoundingBox();\n    if (A && s)\n      throw new Error('Both \"bbox\" and \"window\" passed.');\n    if (i || n) {\n      if (A) {\n        const [f, c] = y.getOrigin(), [l, u] = y.getResolution();\n        s = [\n          f + A[0] * l,\n          c + A[1] * u,\n          f + A[2] * l,\n          c + A[3] * u\n        ];\n      }\n      const B = s || g;\n      if (i) {\n        if (o)\n          throw new Error(\"Both width and resX passed\");\n        o = (B[2] - B[0]) / i;\n      }\n      if (n) {\n        if (I)\n          throw new Error(\"Both width and resY passed\");\n        I = (B[3] - B[1]) / n;\n      }\n    }\n    if (o || I) {\n      const B = [];\n      for (let f = 0; f < r; ++f) {\n        const c = await this.getImage(f), { SubfileType: l, NewSubfileType: u } = c.fileDirectory;\n        (f === 0 || l === 2 || u & 1) && B.push(c);\n      }\n      B.sort((f, c) => f.getWidth() - c.getWidth());\n      for (let f = 0; f < B.length; ++f) {\n        const c = B[f], l = (g[2] - g[0]) / c.getWidth(), u = (g[3] - g[1]) / c.getHeight();\n        if (a = c, o && o > l || I && I > u)\n          break;\n      }\n    }\n    let E = A;\n    if (s) {\n      const [B, f] = y.getOrigin(), [c, l] = a.getResolution(y);\n      E = [\n        Math.round((s[0] - B) / c),\n        Math.round((s[1] - f) / l),\n        Math.round((s[2] - B) / c),\n        Math.round((s[3] - f) / l)\n      ], E = [\n        Math.min(E[0], E[2]),\n        Math.min(E[1], E[3]),\n        Math.max(E[0], E[2]),\n        Math.max(E[1], E[3])\n      ];\n    }\n    return a.readRasters({ ...e, window: E });\n  }\n}\nclass nA extends Li {\n  /**\n   * @constructor\n   * @param {*} source The datasource to read from.\n   * @param {boolean} littleEndian Whether the image uses little endian.\n   * @param {boolean} bigTiff Whether the image uses bigTIFF conventions.\n   * @param {number} firstIFDOffset The numeric byte-offset from the start of the image\n   *                                to the first IFD.\n   * @param {GeoTIFFOptions} [options] further options.\n   */\n  constructor(e, A, i, n, o = {}) {\n    super(), this.source = e, this.littleEndian = A, this.bigTiff = i, this.firstIFDOffset = n, this.cache = o.cache || !1, this.ifdRequests = [], this.ghostValues = null;\n  }\n  async getSlice(e, A) {\n    const i = this.bigTiff ? 4048 : 1024;\n    return new tn(\n      (await this.source.fetch([{\n        offset: e,\n        length: typeof A < \"u\" ? A : i\n      }]))[0],\n      e,\n      this.littleEndian,\n      this.bigTiff\n    );\n  }\n  /**\n   * Instructs to parse an image file directory at the given file offset.\n   * As there is no way to ensure that a location is indeed the start of an IFD,\n   * this function must be called with caution (e.g only using the IFD offsets from\n   * the headers or other IFDs).\n   * @param {number} offset the offset to parse the IFD at\n   * @returns {Promise<ImageFileDirectory>} the parsed IFD\n   */\n  async parseFileDirectoryAt(e) {\n    const A = this.bigTiff ? 20 : 12, i = this.bigTiff ? 8 : 2;\n    let n = await this.getSlice(e);\n    const o = this.bigTiff ? n.readUint64(e) : n.readUint16(e), I = o * A + (this.bigTiff ? 16 : 6);\n    n.covers(e, I) || (n = await this.getSlice(e, I));\n    const s = {};\n    let y = e + (this.bigTiff ? 8 : 2);\n    for (let g = 0; g < o; y += A, ++g) {\n      const E = n.readUint16(y), B = n.readUint16(y + 2), f = this.bigTiff ? n.readUint64(y + 4) : n.readUint32(y + 4);\n      let c, l;\n      const u = He(B), h = y + (this.bigTiff ? 12 : 8);\n      if (u * f <= (this.bigTiff ? 8 : 4))\n        c = GA(n, B, f, h);\n      else {\n        const D = n.readOffset(h), d = He(B) * f;\n        if (n.covers(D, d))\n          c = GA(n, B, f, D);\n        else {\n          const Q = await this.getSlice(D, d);\n          c = GA(Q, B, f, D);\n        }\n      }\n      f === 1 && di.indexOf(E) === -1 && !(B === K.RATIONAL || B === K.SRATIONAL) ? l = c[0] : l = c, s[pA[E]] = l;\n    }\n    const a = Wn(s), r = n.readOffset(\n      e + i + A * o\n    );\n    return new Zn(\n      s,\n      a,\n      r\n    );\n  }\n  async requestIFD(e) {\n    if (this.ifdRequests[e])\n      return this.ifdRequests[e];\n    if (e === 0)\n      return this.ifdRequests[e] = this.parseFileDirectoryAt(this.firstIFDOffset), this.ifdRequests[e];\n    if (!this.ifdRequests[e - 1])\n      try {\n        this.ifdRequests[e - 1] = this.requestIFD(e - 1);\n      } catch (A) {\n        throw A instanceof zA ? new zA(e) : A;\n      }\n    return this.ifdRequests[e] = (async () => {\n      const A = await this.ifdRequests[e - 1];\n      if (A.nextIFDByteOffset === 0)\n        throw new zA(e);\n      return this.parseFileDirectoryAt(A.nextIFDByteOffset);\n    })(), this.ifdRequests[e];\n  }\n  /**\n   * Get the n-th internal subfile of an image. By default, the first is returned.\n   *\n   * @param {number} [index=0] the index of the image to return.\n   * @returns {Promise<GeoTIFFImage>} the image at the given index\n   */\n  async getImage(e = 0) {\n    const A = await this.requestIFD(e);\n    return new Bt(\n      A.fileDirectory,\n      A.geoKeyDirectory,\n      this.dataView,\n      this.littleEndian,\n      this.cache,\n      this.source\n    );\n  }\n  /**\n   * Returns the count of the internal subfiles.\n   *\n   * @returns {Promise<number>} the number of internal subfile images\n   */\n  async getImageCount() {\n    let e = 0, A = !0;\n    for (; A; )\n      try {\n        await this.requestIFD(e), ++e;\n      } catch (i) {\n        if (i instanceof zA)\n          A = !1;\n        else\n          throw i;\n      }\n    return e;\n  }\n  /**\n   * Get the values of the COG ghost area as a parsed map.\n   * See https://gdal.org/drivers/raster/cog.html#header-ghost-area for reference\n   * @returns {Promise<Object>} the parsed ghost area or null, if no such area was found\n   */\n  async getGhostValues() {\n    const e = this.bigTiff ? 16 : 8;\n    if (this.ghostValues)\n      return this.ghostValues;\n    const A = \"GDAL_STRUCTURAL_METADATA_SIZE=\", i = A.length + 100;\n    let n = await this.getSlice(e, i);\n    if (A === GA(n, K.ASCII, A.length, e)) {\n      const I = GA(n, K.ASCII, i, e).split(`\n`)[0], s = Number(I.split(\"=\")[1].split(\" \")[0]) + I.length;\n      s > i && (n = await this.getSlice(e, s));\n      const y = GA(n, K.ASCII, s, e);\n      this.ghostValues = {}, y.split(`\n`).filter((a) => a.length > 0).map((a) => a.split(\"=\")).forEach(([a, r]) => {\n        this.ghostValues[a] = r;\n      });\n    }\n    return this.ghostValues;\n  }\n  /**\n   * Parse a (Geo)TIFF file from the given source.\n   *\n   * @param {*} source The source of data to parse from.\n   * @param {GeoTIFFOptions} [options] Additional options.\n   * @param {AbortSignal} [signal] An AbortSignal that may be signalled if the request is\n   *                               to be aborted\n   */\n  static async fromSource(e, A, i) {\n    const n = (await e.fetch([{ offset: 0, length: 1024 }], i))[0], o = new en(n), I = o.getUint16(0, 0);\n    let s;\n    if (I === 18761)\n      s = !0;\n    else if (I === 19789)\n      s = !1;\n    else\n      throw new TypeError(\"Invalid byte order value.\");\n    const y = o.getUint16(2, s);\n    let a;\n    if (y === 42)\n      a = !1;\n    else if (y === 43) {\n      if (a = !0, o.getUint16(4, s) !== 8)\n        throw new Error(\"Unsupported offset byte-size.\");\n    } else\n      throw new TypeError(\"Invalid magic number.\");\n    const r = a ? o.getUint64(8, s) : o.getUint32(4, s);\n    return new nA(e, s, a, r, A);\n  }\n  /**\n   * Closes the underlying file buffer\n   * N.B. After the GeoTIFF has been completely processed it needs\n   * to be closed but only if it has been constructed from a file.\n   */\n  close() {\n    return typeof this.source.close == \"function\" ? this.source.close() : !1;\n  }\n}\nclass Mi extends Li {\n  /**\n   * Construct a new MultiGeoTIFF from a main and several overview files.\n   * @param {GeoTIFF} mainFile The main GeoTIFF file.\n   * @param {GeoTIFF[]} overviewFiles An array of overview files.\n   */\n  constructor(e, A) {\n    super(), this.mainFile = e, this.overviewFiles = A, this.imageFiles = [e].concat(A), this.fileDirectoriesPerFile = null, this.fileDirectoriesPerFileParsing = null, this.imageCount = null;\n  }\n  async parseFileDirectoriesPerFile() {\n    const e = [this.mainFile.parseFileDirectoryAt(this.mainFile.firstIFDOffset)].concat(this.overviewFiles.map((A) => A.parseFileDirectoryAt(A.firstIFDOffset)));\n    return this.fileDirectoriesPerFile = await Promise.all(e), this.fileDirectoriesPerFile;\n  }\n  /**\n   * Get the n-th internal subfile of an image. By default, the first is returned.\n   *\n   * @param {number} [index=0] the index of the image to return.\n   * @returns {Promise<GeoTIFFImage>} the image at the given index\n   */\n  async getImage(e = 0) {\n    await this.getImageCount(), await this.parseFileDirectoriesPerFile();\n    let A = 0, i = 0;\n    for (let n = 0; n < this.imageFiles.length; n++) {\n      const o = this.imageFiles[n];\n      for (let I = 0; I < this.imageCounts[n]; I++) {\n        if (e === A) {\n          const s = await o.requestIFD(i);\n          return new Bt(\n            s.fileDirectory,\n            s.geoKeyDirectory,\n            o.dataView,\n            o.littleEndian,\n            o.cache,\n            o.source\n          );\n        }\n        A++, i++;\n      }\n      i = 0;\n    }\n    throw new RangeError(\"Invalid image index\");\n  }\n  /**\n   * Returns the count of the internal subfiles.\n   *\n   * @returns {Promise<number>} the number of internal subfile images\n   */\n  async getImageCount() {\n    if (this.imageCount !== null)\n      return this.imageCount;\n    const e = [this.mainFile.getImageCount()].concat(this.overviewFiles.map((A) => A.getImageCount()));\n    return this.imageCounts = await Promise.all(e), this.imageCount = this.imageCounts.reduce((A, i) => A + i, 0), this.imageCount;\n  }\n}\nasync function Ni(t, e = {}, A) {\n  return nA.fromSource(Ye(t, e), A);\n}\nasync function Ti(t, e = {}, A) {\n  return nA.fromSource(pn(t, e), A);\n}\nasync function Oe(t, e) {\n  return nA.fromSource(Fn(t), e);\n}\nasync function zn(t, e) {\n  return nA.fromSource(Un(t), e);\n}\nasync function MA(t, e) {\n  return nA.fromSource(Gn(t), e);\n}\nasync function $n(t, e = [], A = {}, i) {\n  const n = await nA.fromSource(Ye(t, A), i), o = await Promise.all(\n    e.map((I) => nA.fromSource(Ye(I, A)))\n  );\n  return new Mi(n, o);\n}\nfunction Ao(t, e) {\n  return Kn(t, e);\n}\nconst eo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n  __proto__: null,\n  BaseClient: ZA,\n  BaseDecoder: dA,\n  BaseResponse: WA,\n  GeoTIFF: nA,\n  GeoTIFFImage: Bt,\n  MultiGeoTIFF: Mi,\n  Pool: bi,\n  addDecoder: CA,\n  default: nA,\n  fromArrayBuffer: Oe,\n  fromBlob: MA,\n  fromCustomClient: Ti,\n  fromFile: zn,\n  fromUrl: Ni,\n  fromUrls: $n,\n  getDecoder: It,\n  globals: Yr,\n  rgb: _r,\n  setLogger: Pn,\n  writeArrayBuffer: Ao\n}, Symbol.toStringTag, { value: \"Module\" }));\nclass pe {\n  constructor() {\n    this.promise = new Promise((e, A) => {\n      this.reject = A, this.resolve = e;\n    });\n  }\n}\nconst ut = {};\nfunction fA(t, e, A = \"warn\") {\n  ut[t] || (ut[t] = !0, console[A](e));\n}\nconst to = (t) => {\n  var A, i, n;\n  const e = /* @__PURE__ */ new Map();\n  for (const o of t) {\n    const I = new DOMParser().parseFromString(\n      (A = o.fileDirectory) == null ? void 0 : A.ImageDescription,\n      \"text/xml\"\n    ), s = (i = I == null ? void 0 : I.querySelector(\"Name\")) == null ? void 0 : i.textContent, y = (n = I == null ? void 0 : I.querySelector(\"Color\")) == null ? void 0 : n.textContent;\n    if (!s)\n      continue;\n    const a = y ? y.split(\",\").map((r) => parseInt(r)) : [255, 255, 255];\n    e.has(s) || e.set(s, {\n      name: s,\n      color: a,\n      images: []\n    }), e.get(s).images.push(o);\n  }\n  return e;\n};\nclass uA {\n  static RGBAfromYCbCr(...e) {\n    let A, i, n;\n    if (e.length === 1) {\n      const s = e[0], y = new Uint8ClampedArray(s.length * 4 / 3);\n      for (let a = 0, r = 0; a < s.length; a += 3, r += 4)\n        A = s[a], i = s[a + 1], n = s[a + 2], y[r] = A + 1.402 * (n - 128), y[r + 1] = A - 0.34414 * (i - 128) - 0.71414 * (n - 128), y[r + 2] = A + 1.772 * (i - 128), y[r + 3] = 255;\n      return y;\n    }\n    [A, i, n] = e;\n    const o = A.length, I = new Uint8ClampedArray(o * 4);\n    for (let s = 0, y = 0; s < o; s++, y += 4) {\n      const a = A[s], r = i[s], g = n[s];\n      I[y] = a + 1.402 * (g - 128), I[y + 1] = a - 0.34414 * (r - 128) - 0.71414 * (g - 128), I[y + 2] = a + 1.772 * (r - 128), I[y + 3] = 255;\n    }\n    return I;\n  }\n  static RGBAfromRGB(...e) {\n    if (e.length === 1) {\n      const y = e[0], a = new Uint8ClampedArray(y.length * 4 / 3);\n      for (let r = 0, g = 0; r < y.length; r += 3, g += 4)\n        a[g] = y[r], a[g + 1] = y[r + 1], a[g + 2] = y[r + 2], a[g + 3] = 255;\n      return a;\n    }\n    const A = e[0], i = e[1], n = e[2], o = e.length >= 4 ? e[3] : null, I = A.length, s = new Uint8ClampedArray(I * 4);\n    for (let y = 0, a = 0; y < I; y++, a += 4)\n      s[a] = A[y], s[a + 1] = i[y], s[a + 2] = n[y], s[a + 3] = o ? o[y] : 255;\n    return s;\n  }\n  static RGBAfromWhiteIsZero(e, A) {\n    const i = new Uint8ClampedArray(e.length * 4);\n    let n;\n    for (let o = 0, I = 0; o < e.length; ++o, I += 4)\n      n = 256 - e[o] / A * 256, i[I] = n, i[I + 1] = n, i[I + 2] = n, i[I + 3] = 255;\n    return i;\n  }\n  static RGBAfromBlackIsZero(e, A) {\n    const i = new Uint8ClampedArray(e.length * 4);\n    let n;\n    for (let o = 0, I = 0; o < e.length; ++o, I += 4)\n      n = e[o] / A * 256, i[I] = n, i[I + 1] = n, i[I + 2] = n, i[I + 3] = 255;\n    return i;\n  }\n  static RGBAfromPalette(e, A) {\n    const i = new Uint8ClampedArray(e.length * 4), n = A.length / 3, o = A.length / 3 * 2;\n    for (let I = 0, s = 0; I < e.length; ++I, s += 4) {\n      const y = e[I];\n      i[s] = A[y] / 65536 * 256, i[s + 1] = A[y + n] / 65536 * 256, i[s + 2] = A[y + o] / 65536 * 256, i[s + 3] = 255;\n    }\n    return i;\n  }\n  static RGBAfromCMYK(...e) {\n    if (e.length === 1) {\n      const y = e[0], a = new Uint8ClampedArray(y.length);\n      for (let r = 0, g = 0; r < y.length; r += 4, g += 4) {\n        const E = y[r], B = y[r + 1], f = y[r + 2], c = y[r + 3];\n        a[g] = 255 * ((255 - E) / 256) * ((255 - c) / 256), a[g + 1] = 255 * ((255 - B) / 256) * ((255 - c) / 256), a[g + 2] = 255 * ((255 - f) / 256) * ((255 - c) / 256), a[g + 3] = 255;\n      }\n      return a;\n    }\n    const A = e[0], i = e[1], n = e[2], o = e[3], I = A.length, s = new Uint8ClampedArray(I * 4);\n    for (let y = 0, a = 0; y < I; y++, a += 4) {\n      const r = A[y], g = i[y], E = n[y], B = o[y];\n      s[a] = 255 * ((255 - r) / 256) * ((255 - B) / 256), s[a + 1] = 255 * ((255 - g) / 256) * ((255 - B) / 256), s[a + 2] = 255 * ((255 - E) / 256) * ((255 - B) / 256), s[a + 3] = 255;\n    }\n    return s;\n  }\n  static RGBAfromCIELab(...e) {\n    const o = (g, E, B) => {\n      const f = E << 24 >> 24, c = B << 24 >> 24;\n      let l = (g + 16) / 116, u = f / 500 + l, h = l - c / 200;\n      u = 0.95047 * (u * u * u > 8856e-6 ? u * u * u : (u - 0.13793103448275862) / 7.787), l = 1 * (l * l * l > 8856e-6 ? l * l * l : (l - 0.13793103448275862) / 7.787), h = 1.08883 * (h * h * h > 8856e-6 ? h * h * h : (h - 0.13793103448275862) / 7.787);\n      let D = u * 3.2406 + l * -1.5372 + h * -0.4986, d = u * -0.9689 + l * 1.8758 + h * 0.0415, Q = u * 0.0557 + l * -0.204 + h * 1.057;\n      return D = D > 31308e-7 ? 1.055 * D ** 0.4166666666666667 - 0.055 : 12.92 * D, d = d > 31308e-7 ? 1.055 * d ** 0.4166666666666667 - 0.055 : 12.92 * d, Q = Q > 31308e-7 ? 1.055 * Q ** 0.4166666666666667 - 0.055 : 12.92 * Q, [\n        Math.max(0, Math.min(1, D)) * 255,\n        Math.max(0, Math.min(1, d)) * 255,\n        Math.max(0, Math.min(1, Q)) * 255\n      ];\n    };\n    if (e.length === 1) {\n      const g = e[0], E = new Uint8ClampedArray(g.length * 4 / 3);\n      for (let B = 0, f = 0; B < g.length; B += 3, f += 4) {\n        const [c, l, u] = o(g[B], g[B + 1], g[B + 2]);\n        E[f] = c, E[f + 1] = l, E[f + 2] = u, E[f + 3] = 255;\n      }\n      return E;\n    }\n    const I = e[0], s = e[1], y = e[2], a = I.length, r = new Uint8ClampedArray(a * 4);\n    for (let g = 0, E = 0; g < a; g++, E += 4) {\n      const [B, f, c] = o(I[g], s[g], y[g]);\n      r[E] = B, r[E + 1] = f, r[E + 2] = c, r[E + 3] = 255;\n    }\n    return r;\n  }\n}\nconst io = {\n  interpretation: \"auto\",\n  channels: null,\n  gpu: {\n    preferRGBA8: !0,\n    forceRGBA16F: !1,\n    packMode: \"packsOf4\",\n    padAlpha: 1\n  },\n  image: {\n    rgbaChannels: null\n  },\n  hints: {\n    layout: {\n      pyramid: \"auto\",\n      planeIndex: 0,\n      prefer: \"pyramid\"\n    }\n  }\n}, Ke = 1, yA = {\n  WhiteIsZero: 0,\n  BlackIsZero: 1,\n  RGB: 2,\n  Palette: 3,\n  CMYK: 5,\n  YCbCr: 6,\n  CIELab: 8\n}, mA = {\n  UINT: 1,\n  INT: 2,\n  FLOAT: 3\n};\nfunction ce(t, e, A) {\n  if (t == null) return A;\n  if (Array.isArray(t) || ArrayBuffer.isView(t)) {\n    if (t.length === 0) return A;\n    const i = e < t.length ? t[e] : t[0];\n    return i ?? A;\n  }\n  return t;\n}\nfunction qi(t) {\n  const e = t || {}, A = (i) => i == null ? null : Array.isArray(i) ? i.length ? i : null : ArrayBuffer.isView(i) ? i.length ? Array.from(i) : null : [i];\n  return {\n    sMinSampleValue: A(e.SMinSampleValue),\n    sMaxSampleValue: A(e.SMaxSampleValue)\n  };\n}\nfunction ke(t, e, A, i) {\n  const n = ce(t.sMinSampleValue, e, null), o = ce(t.sMaxSampleValue, e, null);\n  if (n === null || o === null) return null;\n  const I = Number(n), s = Number(o);\n  return !Number.isFinite(I) || !Number.isFinite(s) || s <= I || A !== null && (I < A || s > i) ? null : { min: I, max: s };\n}\nfunction dt(t, e) {\n  return e ? [-Math.pow(2, t - 1), Math.pow(2, t - 1) - 1] : [0, Math.pow(2, t) - 1];\n}\nfunction ft(t) {\n  const e = t || {}, A = e.bitsPerSample, i = e.sampleFormat;\n  let n = e.samplesPerPixel;\n  n > 0 || (n = Array.isArray(A) || ArrayBuffer.isView(A) ? A.length : 1), n = Math.max(1, n | 0);\n  const o = [];\n  for (let I = 0; I < n; I++) {\n    const s = ce(A, I, 8) || 8, y = ce(i, I, mA.UINT) || mA.UINT;\n    let a, r = 0, g = !1;\n    switch (y) {\n      case mA.UINT: {\n        const E = ke(e, I, ...dt(s, !1));\n        E ? (a = E.max - E.min, r = E.min) : a = Math.pow(2, s) - 1;\n        break;\n      }\n      case mA.INT: {\n        const E = ke(e, I, ...dt(s, !0));\n        E ? (a = E.max - E.min, r = E.min) : (a = Math.pow(2, s - 1) - 1, g = !0);\n        break;\n      }\n      case mA.FLOAT: {\n        const E = ke(e, I, null, null);\n        E ? (a = E.max - E.min, r = E.min) : (a = 1, g = !0);\n        break;\n      }\n      default:\n        throw new Error(\n          `[RawTiffPlugin] Unsupported SampleFormat ${y} on channel ${I}; only 1 (unsigned int), 2 (signed int) and 3 (float) are supported.`\n        );\n    }\n    a > 0 || (a = 1), o.push({ scale: a, offset: r, signed: g, bits: s, sampleFormat: y });\n  }\n  return { version: Ke, channels: o };\n}\nfunction YA(t, e) {\n  const A = t && t.channels || [];\n  return A.length ? A[e] != null ? A[e] : A[0] : { scale: 1, offset: 0, signed: !1, bits: 8, sampleFormat: 1 };\n}\nfunction ro(t, e) {\n  if (t == null) return 0;\n  const A = Number(t);\n  return Number.isNaN(A) ? 0 : (A - e.offset) / e.scale;\n}\nfunction wt(t, e) {\n  const A = ro(t, e);\n  return A <= 0 ? 0 : A >= 1 ? 255 : Math.round(A * 255);\n}\nfunction no(t) {\n  return t.bits === 8 && (t.sampleFormat === mA.UINT || t.sampleFormat === mA.INT);\n}\nfunction oo(t, e) {\n  const A = t || {}, i = A.photometricInterpretation, n = A.encoding;\n  if (i === yA.Palette && A.hasColorMap) return \"image\";\n  const o = A.samplesPerPixel || n && n.channels.length || 1;\n  return (i === yA.RGB || i === yA.YCbCr || i === yA.CMYK || i === yA.CIELab || (i === yA.BlackIsZero || i === yA.WhiteIsZero) && o === 1) && (Array.isArray(e) && e.length ? e.filter((a) => a != null && a >= 0) : n.channels.map((a, r) => r)).every((a) => no(YA(n, a))) ? \"image\" : \"data\";\n}\nfunction Fe(t) {\n  if (t.__encoding) return t.__encoding;\n  const { sMinSampleValue: e, sMaxSampleValue: A } = qi(t.fileDirectory), i = ft({\n    bitsPerSample: t.bitsPerSample,\n    sampleFormat: t.sampleFormat,\n    sMinSampleValue: e,\n    sMaxSampleValue: A,\n    samplesPerPixel: Math.max(\n      t.samplesPerPixel || 0,\n      t.bands ? t.bands.length : 0\n    )\n  });\n  return t.__encoding = i, i;\n}\nfunction ao() {\n  let t, e;\n  return { promise: new Promise((i, n) => {\n    t = i, e = n;\n  }), resolve: t, reject: e };\n}\nfunction so(t) {\n  try {\n    return t ? typeof t == \"string\" ? t : t && typeof t.message == \"string\" ? t.message : JSON.stringify(t) : \"Unknown error\";\n  } catch {\n    return String(t);\n  }\n}\nclass _e {\n  constructor(e) {\n    Object.assign(this, e);\n  }\n  getType() {\n    return \"gpuTextureSet\";\n  }\n}\nclass go {\n  /**\n   * @param {Object} params\n   * @param {number} params.size\n   * @param {() => Worker} params.createWorker\n   */\n  constructor({ size: e, createWorker: A }) {\n    this.size = Math.max(1, e | 0), this.createWorker = A, this.workers = [], this._nextId = 1;\n    for (let i = 0; i < this.size; i++) {\n      const n = this.createWorker(), o = { worker: n, pending: 0, callbacks: /* @__PURE__ */ new Map() };\n      n.onmessage = (I) => {\n        const s = I.data || {};\n        if (s.kind === \"warn\") {\n          fA(\n            s.code || \"RawTiffWorker_warn\",\n            s.message || \"[RawTiffWorker] warning\",\n            \"warn\"\n          );\n          return;\n        }\n        const y = s.id, a = o.callbacks.get(y);\n        a && (o.callbacks.delete(y), o.pending = Math.max(0, o.pending - 1), s.ok ? a.resolve(s.result) : a.reject(new Error(so(s.error))));\n      }, n.onerror = (I) => {\n        for (const s of o.callbacks.values())\n          s.reject(I instanceof Error ? I : new Error(String(I)));\n        o.callbacks.clear(), o.pending = 0;\n      }, this.workers.push(o);\n    }\n  }\n  /**\n   * @param {string} op\n   * @param {any} payload\n   * @param {Transferable[]} [transfer]\n   * @returns {Promise<any>}\n   */\n  request(e, A, i) {\n    const n = this._nextId++, o = ao();\n    let I = this.workers[0];\n    for (const s of this.workers)\n      s.pending < I.pending && (I = s);\n    I.pending++, I.callbacks.set(n, o);\n    try {\n      i && i.length ? I.worker.postMessage({ id: n, op: e, payload: A }, i) : I.worker.postMessage({ id: n, op: e, payload: A });\n    } catch (s) {\n      I.callbacks.delete(n), I.pending = Math.max(0, I.pending - 1), o.reject(s);\n    }\n    return o.promise;\n  }\n  terminate() {\n    for (const e of this.workers) {\n      try {\n        e.worker.terminate();\n      } catch {\n      }\n      e.callbacks.clear(), e.pending = 0;\n    }\n    this.workers.length = 0;\n  }\n}\nfunction Io() {\n  return new Worker(new URL(\n    /* @vite-ignore */\n    \"/assets/tiff.worker-hM9BOsqI.js\",\n    import.meta.url\n  ), { type: \"module\" });\n}\nclass DA {\n  /**\n   * @param {ArrayBuffer|Uint8Array|Blob|{bytes?:any, blob?:Blob, arrayBuffer?:Function}} source\n   * @param {Object} [opts]\n   * @param {RawTiffHints} [opts.hints]\n   * @param {*} [opts.meta]\n   */\n  constructor(e, A = {}) {\n    this.source = e, this.hints = A.hints || {}, this.meta = A.meta;\n  }\n  getType() {\n    return \"rawTiff\";\n  }\n}\nclass Pe {\n  /**\n   * @param {Object} params\n   * @param {number} params.width\n   * @param {number} params.height\n   * @param {TypedArray[]} params.bands\n   * @param {number} params.samplesPerPixel\n   * @param {number[]} params.bitsPerSample\n   * @param {number[]} [params.sampleFormat]\n   * @param {number} [params.photometricInterpretation]\n   * @param {any} [params.colorMap]\n   * @param {any} [params.fileDirectory]\n   * @param {RawTiffHints} [params.hints]\n   */\n  constructor(e) {\n    Object.assign(this, e), this.hints = e.hints || {};\n  }\n  getType() {\n    return \"tiffRaster\";\n  }\n}\nfunction RA(t, e) {\n  const A = Array.isArray(t) ? t.slice() : Object.assign({}, t || {});\n  if (!e || typeof e != \"object\") return A;\n  for (const i of Object.keys(e)) {\n    const n = e[i];\n    n && typeof n == \"object\" && !Array.isArray(n) && A[i] && typeof A[i] == \"object\" && !Array.isArray(A[i]) ? A[i] = RA(A[i], n) : A[i] = n;\n  }\n  return A;\n}\nfunction $A(t, e) {\n  const A = e && e.hints;\n  if (A && A.formatResolved) return A.formatResolved;\n  if (A && A.format) return A.format;\n  if (e && e.meta && e.meta.format) return e.meta.format;\n  if (t && t.format) return t.format;\n  if (t && t.userData && t.userData.format) return t.userData.format;\n  const i = t && (t.source || t.tileSource || t._tileSource || t.tiledImage && t.tiledImage.source);\n  return i && i.format ? i.format : i && i.options && i.options.format ? i.options.format : null;\n}\nfunction Bo(t) {\n  return Array.isArray(t) ? t.map((e) => {\n    const A = typeof e.ctor == \"string\" && globalThis[e.ctor] ? globalThis[e.ctor] : Uint8Array;\n    return new A(e.buffer, e.byteOffset || 0, e.length);\n  }) : [];\n}\nfunction lo(t, e) {\n  const A = Bo(t.bands);\n  return new Pe({\n    width: t.width,\n    height: t.height,\n    bands: A,\n    samplesPerPixel: t.samplesPerPixel,\n    bitsPerSample: t.bitsPerSample,\n    sampleFormat: t.sampleFormat,\n    photometricInterpretation: t.photometricInterpretation,\n    colorMap: t.colorMap,\n    fileDirectory: t.fileDirectory,\n    hints: e || {}\n  });\n}\nfunction yt(t) {\n  const e = (t.packs || []).map((A) => {\n    const i = A.data, n = typeof i.ctor == \"string\" && globalThis[i.ctor] ? globalThis[i.ctor] : Uint8Array, o = new n(i.buffer, i.byteOffset || 0, i.length);\n    return Object.assign({}, A, { data: o });\n  });\n  return new _e({\n    width: t.width,\n    height: t.height,\n    mode: t.mode,\n    channelCount: t.channelCount,\n    encodingVersion: t.encodingVersion,\n    encoding: t.encoding,\n    packs: e\n  });\n}\nfunction fo(t, e = {}) {\n  const A = t;\n  if (A.RawTiffPlugin && A.RawTiffPlugin.__installed) return A.RawTiffPlugin;\n  const i = Object.assign({ toneMap: null }, e.defaults || {});\n  i.format = RA(io, e.defaults && e.defaults.format || null);\n  const n = Object.assign({\n    enabled: !0,\n    size: typeof navigator < \"u\" && navigator.hardwareConcurrency ? Math.max(1, Math.min(4, Math.ceil(navigator.hardwareConcurrency / 2))) : 2,\n    createWorker: null,\n    transferInput: !1,\n    enableRawTiffToImageBitmap: !0\n  }, e.workerPool || {}), o = A.RawTiffPluginShared = A.RawTiffPluginShared || {};\n  function I() {\n    var C, w;\n    if (!n.enabled || typeof Worker > \"u\") return null;\n    if (o.__rawTiffWorkerPool) return o.__rawTiffWorkerPool;\n    const Q = n.createWorker || Io;\n    try {\n      return o.__rawTiffWorkerPool = new go({\n        size: n.size,\n        createWorker: Q\n      }), o.__rawTiffWorkerPool;\n    } catch (m) {\n      return (w = (C = A.console) == null ? void 0 : C.warn) == null || w.call(C, \"[RawTiffPlugin] Failed to create worker pool; falling back to main thread.\", m), o.__rawTiffWorkerPool = null, null;\n    }\n  }\n  async function s(Q) {\n    if (Q == null) throw new Error(\"[RawTiffPlugin] rawTiff is null/undefined.\");\n    if (Q instanceof DA) return s(Q.source);\n    if (typeof Q == \"object\") {\n      if (typeof Q.arrayBuffer == \"function\") {\n        const C = await Q.arrayBuffer();\n        if (C instanceof ArrayBuffer) return C;\n      }\n      if (Q.bytes != null) return s(Q.bytes);\n      if (Q.blob != null) return s(Q.blob);\n    }\n    if (typeof Blob < \"u\" && Q instanceof Blob) return await Q.arrayBuffer();\n    if (Q instanceof ArrayBuffer) return Q;\n    if (ArrayBuffer.isView(Q)) {\n      const { buffer: C, byteOffset: w, byteLength: m } = Q;\n      return C.slice(w, w + m);\n    }\n    throw new Error(\"[RawTiffPlugin] Unsupported rawTiff payload. Provide ArrayBuffer, TypedArray, Blob, or RawTiff wrapper.\");\n  }\n  async function y(Q) {\n    return typeof Q.getImageCount == \"function\" ? await Q.getImageCount() : typeof Q.getImages == \"function\" ? (await Q.getImages()).length : 1;\n  }\n  async function a(Q, C) {\n    if (typeof Q.getImage == \"function\") return await Q.getImage(C);\n    if (typeof Q.getImages == \"function\") return (await Q.getImages())[C];\n    throw new Error(\"[RawTiffPlugin] geotiff instance does not expose getImage/getImages.\");\n  }\n  async function r(Q, C) {\n    if (!A.supportsAsync) throw new Error(\"[RawTiffPlugin] Not supported in sync mode.\");\n    const w = C && C.hints || (C instanceof DA ? C.hints : null) || {}, m = await s(C);\n    let F;\n    if (typeof Oe == \"function\")\n      F = await Oe(m);\n    else if (typeof MA == \"function\")\n      F = await MA(new Blob([m], { type: \"image/tiff\" }));\n    else\n      throw new Error(\"[RawTiffPlugin] geotiff module does not provide fromArrayBuffer/fromBlob.\");\n    const k = await y(F);\n    let p = w.imageIndex;\n    if (k > 1) {\n      if (typeof p != \"number\" || !Number.isFinite(p))\n        throw new Error(`[RawTiffPlugin] TIFF contains ${k} images. Provide rawTiff.hints.imageIndex.`);\n      if (p < 0 || p >= k)\n        throw new Error(`[RawTiffPlugin] imageIndex ${p} out of range (0..${k - 1}).`);\n    } else\n      p = 0;\n    const x = await a(F, p), b = typeof x.getWidth == \"function\" ? x.getWidth() : x.width, M = typeof x.getHeight == \"function\" ? x.getHeight() : x.height, S = typeof x.getSamplesPerPixel == \"function\" ? x.getSamplesPerPixel() : x.samplesPerPixel || 1, G = typeof x.getBitsPerSample == \"function\" ? x.getBitsPerSample() : x.bitsPerSample || [8], U = typeof x.getSampleFormat == \"function\" ? x.getSampleFormat() : x.sampleFormat || null, L = typeof x.getPhotometricInterpretation == \"function\" ? x.getPhotometricInterpretation() : x.fileDirectory ? x.fileDirectory.PhotometricInterpretation : void 0, R = x.fileDirectory || null, N = R && R.ColorMap ? R.ColorMap : null, v = Object.assign({ interleave: !1 }, w.decode || {}), Y = await x.readRasters(v), _ = Array.isArray(Y) ? Y : [Y], q = Math.max(S || 0, _.length);\n    return new Pe({\n      width: b,\n      height: M,\n      bands: _,\n      samplesPerPixel: q,\n      bitsPerSample: Array.isArray(G) ? G : [G],\n      sampleFormat: Array.isArray(U) ? U : U ? [U] : null,\n      photometricInterpretation: L,\n      colorMap: N,\n      fileDirectory: R,\n      hints: w\n    });\n  }\n  async function g(Q, C, w) {\n    const m = C && C.hints || (C instanceof DA ? C.hints : null) || {}, F = await s(C), k = $A(Q, C), p = RA(i.format, k || null), x = Object.assign({}, m, { formatResolved: p }), b = n && n.transferInput ? [F] : [], M = await w.request(\"decodeRaster\", { buffer: F, hints: x }, b);\n    return lo(M, x);\n  }\n  async function E(Q, C) {\n    if (!A.supportsAsync) throw new Error(\"[RawTiffPlugin] Not supported in sync mode.\");\n    const w = I();\n    return w ? await g(Q, C, w) : await r(Q, C);\n  }\n  async function B(Q, C) {\n    const w = C && C.hints || (C instanceof DA ? C.hints : null) || {}, m = I();\n    if (m) {\n      const k = await s(C), p = $A(Q, C), x = RA(i.format, p || null), b = Object.assign({}, w, { formatResolved: x }), M = n && n.transferInput ? [k] : [], S = await m.request(\"decodeAndRenderImageBitmap\", { buffer: k, hints: b }, M);\n      if (S && S.kind === \"imageBitmap\") return S.imageBitmap;\n      if (S && S.kind === \"rgba8\") {\n        if (typeof createImageBitmap != \"function\")\n          throw new Error(\"[RawTiffPlugin] createImageBitmap is not available to build ImageBitmap fallback.\");\n        const G = new Uint8ClampedArray(S.rgbaBuffer, S.rgbaByteOffset || 0, S.rgbaLength), U = new ImageData(G, S.width, S.height);\n        return await createImageBitmap(U);\n      }\n      throw new Error(\"[RawTiffPlugin] Worker did not return a supported output.\");\n    }\n    const F = await r(Q, C);\n    return await h(Q, F);\n  }\n  async function f(Q, C) {\n    const w = C && C.hints || (C instanceof DA ? C.hints : null) || {}, m = I();\n    if (!m) {\n      const G = await r(Q, C);\n      return await c(Q, G);\n    }\n    const F = await s(C), k = $A(Q, C), p = RA(i.format, k || null), x = Object.assign({}, w, { formatResolved: p }), b = n && n.transferInput ? [F] : [], M = await m.request(\"decodeAndPackGpuTextureSet\", { buffer: F, hints: x }, b), S = yt(M.texSet);\n    return S.hints = x, S;\n  }\n  async function c(Q, C) {\n    var U;\n    const w = C.hints || {}, m = $A(Q, C), F = RA(i.format, m || null), k = Object.assign({}, w, { formatResolved: F }), p = I();\n    if (!p) {\n      fA(\"gpuTextureSet_no_worker\", \"[RawTiffPlugin] No worker pool available; gpuTextureSet packing will fall back to worker-less path (slower).\", \"warn\");\n      const L = C.width, R = C.height, N = L * R, v = Fe(C), Y = ((U = F.gpu) == null ? void 0 : U.padAlpha) == null ? 1 : F.gpu.padAlpha, _ = new Uint8Array(N * 4), q = [0, 1, 2, 3].map((T) => C.bands[T] ? T : -1);\n      for (let T = 0; T < 4; T++) {\n        const O = C.bands[T];\n        if (!O) {\n          const H = Math.round((T === 3 ? Y : 0) * 255);\n          if (H) for (let P = 0; P < N; P++) _[P * 4 + T] = H;\n          continue;\n        }\n        const J = YA(v, T);\n        for (let H = 0; H < N; H++) _[H * 4 + T] = wt(O[H], J);\n      }\n      return new _e({\n        width: L,\n        height: R,\n        mode: \"data\",\n        channelCount: C.bands ? C.bands.length : 0,\n        encodingVersion: Ke,\n        encoding: v,\n        packs: [{\n          format: \"RGBA8\",\n          data: _,\n          channels: q,\n          normalized: !0,\n          scale: q.map((T) => T >= 0 ? YA(v, T).scale : 1),\n          offset: q.map((T) => T >= 0 ? YA(v, T).offset : 0)\n        }]\n      });\n    }\n    const x = C.bands.map((L) => {\n      var R;\n      return {\n        ctor: ((R = L.constructor) == null ? void 0 : R.name) || \"Uint8Array\",\n        buffer: L.buffer,\n        byteOffset: L.byteOffset,\n        length: L.length\n      };\n    }), b = {\n      width: C.width,\n      height: C.height,\n      bands: x,\n      samplesPerPixel: C.samplesPerPixel,\n      bitsPerSample: C.bitsPerSample,\n      sampleFormat: C.sampleFormat,\n      photometricInterpretation: C.photometricInterpretation,\n      colorMap: C.colorMap,\n      fileDirectory: C.fileDirectory\n    }, M = x.map((L) => L.buffer), S = await p.request(\"rasterToGpuTextureSet\", { raster: b, hints: k }, M), G = yt(S);\n    return G.hints = k, G;\n  }\n  function l(Q, C, w) {\n    return Q == null || Number.isNaN(Q) ? 0 : wt(Q, YA(Fe(w), C));\n  }\n  function u(Q) {\n    const C = i.toneMap || l, w = z || {}, m = Q.width, F = Q.height, k = m * F, p = Q.hints.renderChannels || Q.renderChannels || null, x = Q.samplesPerPixel || Q.bands.length || 1, b = (R, N) => C(Q.bands[R][N], R, Q), M = Q.photometricInterpretation;\n    if (M === w.Palette && Q.colorMap) {\n      const R = Q.bands[0];\n      return uA.RGBAfromPalette(R, Q.colorMap);\n    }\n    if ((M === w.WhiteIsZero || M === w.BlackIsZero) && x >= 1) {\n      const R = Q.bands[0], N = new Uint8ClampedArray(R.length);\n      for (let v = 0; v < R.length; v++) N[v] = C(R[v], 0, Q);\n      return M === w.WhiteIsZero ? uA.RGBAfromWhiteIsZero(N, 255) : uA.RGBAfromBlackIsZero(N, 255);\n    }\n    const S = p || (M === w.RGB || M === w.YCbCr || M === w.CIELab ? [0, 1, 2] : x >= 3 ? [0, 1, 2] : [0]);\n    if (S.length > 4 && (fA(\n      \"renderChannels>4_to_RGBA\",\n      `[tiff] Requested ${S.length} channels for RGBA output; only 4 can be represented. Extra channels will be dropped.`,\n      \"warn\"\n    ), S.splice(4)), S.length === 1) {\n      const R = S[0], N = new Uint8ClampedArray(k * 4);\n      for (let v = 0, Y = 0; v < k; v++, Y += 4) {\n        const _ = b(R, v);\n        N[Y] = N[Y + 1] = N[Y + 2] = _, N[Y + 3] = 255;\n      }\n      return N;\n    }\n    const G = new Uint8ClampedArray(k * S.length);\n    for (let R = 0; R < k; R++) {\n      const N = R * S.length;\n      for (let v = 0; v < S.length; v++) {\n        const Y = S[v];\n        G[N + v] = Y < Q.bands.length ? b(Y, R) : 0;\n      }\n    }\n    if (M === w.YCbCr && S.length >= 3) return uA.RGBAfromYCbCr(G);\n    if (M === w.CMYK && S.length >= 4) return uA.RGBAfromCMYK(G);\n    if (M === w.CIELab && S.length >= 3) return uA.RGBAfromCIELab(G);\n    if (S.length === 4) return G;\n    if (S.length === 3) return uA.RGBAfromRGB(G);\n    const U = new Uint8ClampedArray(k * 4), L = S.length >= 4;\n    for (let R = 0, N = 0; R < k; R++, N += 4) {\n      const v = R * S.length;\n      U[N] = G[v], U[N + 1] = G[v + 1] || 0, U[N + 2] = G[v + 2] || 0, U[N + 3] = L ? G[v + 3] : 255;\n    }\n    return U;\n  }\n  async function h(Q, C) {\n    if (typeof createImageBitmap != \"function\")\n      throw new Error(\"[RawTiffPlugin] createImageBitmap is not available.\");\n    const w = u(C), m = new ImageData(w, C.width, C.height);\n    return await createImageBitmap(m);\n  }\n  async function D(Q, C) {\n    const w = await h(Q, C), m = document.createElement(\"canvas\");\n    m.width = w.width, m.height = w.height;\n    const F = m.getContext(\"2d\", { willReadFrequently: !0 });\n    return F.drawImage(w, 0, 0), F;\n  }\n  A.converter ? (A.converter.learn(\"rawTiff\", \"tiffRaster\", (Q, C) => E(Q, C), 2, 10), n.enableRawTiffToImageBitmap && A.converter.learn(\"rawTiff\", \"imageBitmap\", (Q, C) => B(Q, C), 1, 5), A.converter.learn(\"tiffRaster\", \"context2d\", (Q, C) => D(Q, C), 2, 10), A.converter.learn(\"tiffRaster\", \"imageBitmap\", (Q, C) => h(Q, C), 1, 50), A.converter.learn(\"rawTiff\", \"gpuTextureSet\", (Q, C) => f(Q, C), 1, 8), A.converter.learn(\"tiffRaster\", \"gpuTextureSet\", (Q, C) => c(Q, C), 1, 12)) : A.console.warn(\"[RawTiffPlugin] OpenSeadragon.converter is missing. Load OSD v6+.\");\n  const d = {\n    __installed: !0,\n    RawTiff: DA,\n    TiffRaster: Pe,\n    GpuTextureSet: _e,\n    Converters: uA,\n    decodeRawTiff: E,\n    rasterToRGBA8: u,\n    rasterToContext2d: D,\n    rasterToImageBitmap: h,\n    // Sample encoding contract (see utils/tiffEncoding.js). A consumer can resolve the\n    // same descriptor the packer used, without duplicating the rules.\n    SAMPLE_ENCODING_VERSION: Ke,\n    resolveSampleEncoding: ft,\n    rasterEncoding: Fe,\n    getWorkerPool: I,\n    terminateWorkerPool() {\n      const Q = A.RawTiffPluginShared;\n      Q && Q.__rawTiffWorkerPool && (Q.__rawTiffWorkerPool.terminate(), Q.__rawTiffWorkerPool = null);\n    },\n    /**\n     * Convert using OpenSeadragon.converter.\n     * @param {*} tile\n     * @param {*} data\n     * @param {string} toType\n     * @param {string} [fromType]\n     */\n    convert(Q, C, w, m) {\n      if (!A.converter) throw new Error(\"[RawTiffPlugin] OpenSeadragon.converter is missing.\");\n      const F = m || A.converter.guessType(C);\n      return A.converter.convert(Q, C, F, w);\n    },\n    /**\n     * Wrap binary as a RawTiff object.\n     * @param {*} source\n     * @param {Object} [opts]\n     * @returns {RawTiff}\n     */\n    wrap(Q, C) {\n      return new DA(Q, C);\n    },\n    /**\n     * Expose defaults (merged).\n     */\n    defaults: i\n  };\n  return A.RawTiffPlugin = d, d;\n}\nwindow.GeoTIFF = eo;\nconst co = (t, e = {}) => {\n  if (t.version.major < 4 || t.version.major === 4 && t.version.minor < 1)\n    throw new Error(\"Your current OpenSeadragon version is too low to support GeoTIFFTileSource\");\n  const {\n    workerUrl: A,\n    // optional: string or URL\n    workerPool: i,\n    // optional: { createWorker: () => Worker }\n    httpAdapter: n,\n    // optional: { fetch(url, init?) => Promise<Response> }\n    defaults: o\n    // optional: { format, toneMap }\n  } = e, I = n ? /* @__PURE__ */ (() => {\n    class f extends WA {\n      constructor(l) {\n        super(), this.res = l;\n      }\n      get status() {\n        return this.res.status;\n      }\n      getHeader(l) {\n        return this.res.headers.get(l);\n      }\n      async getData() {\n        return this.res.arrayBuffer();\n      }\n    }\n    return class extends ZA {\n      async request({ headers: l, signal: u } = {}) {\n        const h = await n.fetch(this.url, { headers: l, signal: u });\n        return new f(h);\n      }\n    };\n  })() : null, s = (f, c) => I ? Ti(new I(f), c) : Ni(f, c), a = i || {\n    createWorker: () => A ? new Worker(A, { type: \"module\" }) : new Worker(new URL(\n      /* @vite-ignore */\n      \"/assets/tiff.worker-hM9BOsqI.js\",\n      import.meta.url\n    ), {\n      type: \"module\"\n    })\n  }, r = t.RawTiffPlugin || fo(t, {\n    workerPool: a,\n    defaults: o\n  });\n  let g = 0;\n  const B = class B extends t.TileSource {\n    static get sharedPool() {\n      return B._sharedPool || (B._sharedPool = new bi()), B._sharedPool;\n    }\n    static set sharedPool(c) {\n      B._sharedPool = c;\n    }\n    constructor(c, l = { logLatency: !1 }) {\n      const u = g++, h = typeof File < \"u\" && c instanceof File;\n      c && typeof c == \"object\" && !h && !c.GeoTIFF && typeof c.url == \"string\" && (l = Object.assign({}, c, l), c = c.url), super(typeof c == \"string\" ? c : `geotiff://${u}`);\n      let D = this;\n      this.input = c, this.options = l, this.channel = (c == null ? void 0 : c.channel) ?? (l == null ? void 0 : l.channel) ?? null, this.format = (l == null ? void 0 : l.format) ?? (c == null ? void 0 : c.format) ?? null, this._ready = !1, this._pool = B.sharedPool, this._tileSize = 256, this._tsCounter = u, c.GeoTIFF && c.GeoTIFFImages ? (this.promises = {\n        GeoTIFF: Promise.resolve(c.GeoTIFF),\n        GeoTIFFImages: Promise.resolve(c.GeoTIFFImages),\n        ready: new pe()\n      }, this.GeoTIFF = c.GeoTIFF, this.imageCount = c.GeoTIFFImages.length, this.GeoTIFFImages = c.GeoTIFFImages, this.GeoTIFFAllImages = c.GeoTIFFAllImages ?? c.GeoTIFFImages, this.setupLevels()) : (this.promises = {\n        GeoTIFF: c instanceof File ? MA(c, l.GeoTIFFOptions) : s(c, l.GeoTIFFOptions),\n        GeoTIFFImages: new pe(),\n        ready: new pe()\n      }, this.promises.GeoTIFF.then((d) => (D.GeoTIFF = d, d.getImageCount())).then((d) => {\n        D.imageCount = d;\n        let Q = [...Array(d).keys()].map((C) => D.GeoTIFF.getImage(C));\n        return Promise.all(Q);\n      }).then((d) => {\n        d = D.constructor.userDefinedImagesFilter(d, l), D.GeoTIFFImages = d, D.GeoTIFFAllImages = d, D.promises.GeoTIFFImages.resolve(d), this.setupLevels();\n      }).catch((d) => {\n        throw console.error(\"Re-throwing error with GeoTIFF:\", d), D.promises.ready.promise.catch(() => {\n        }), D.promises.ready.reject(d), D.raiseEvent(\"open-failed\", {\n          message: d && d.message ? d.message : String(d),\n          source: D.url\n        }), d;\n      }));\n    }\n    /**\n     * OpenSeadragon calls this from the url branch of TileSource to fetch an info document.\n     * This source loads the TIFF header itself in the constructor, and the url points at\n     * the image data -- downloading it as an info document would be catastrophic.\n     */\n    getImageInfo() {\n    }\n    /**\n     * Autodetection entry point. Must live on the prototype: TileSource.determineType\n     * calls `OpenSeadragon[Type].prototype.supports.call(...)`.\n     *\n     * Note `this` is the *viewer* here, not a tile source.\n     *\n     * @param {String|Object|ArrayBuffer|TypedArray} data\n     * @param {String} [url]\n     * @returns {Boolean}\n     */\n    supports(c, l) {\n      if (c && typeof c == \"object\" && typeof c.type == \"string\" && /^(geo)?tiff$/i.test(c.type))\n        return !0;\n      const u = typeof c == \"string\" && c || c && typeof c == \"object\" && typeof c.url == \"string\" && c.url || l;\n      if (typeof u == \"string\" && /\\.(tiff?|qptiff|ome\\.tiff?|btf|svs|ndpi|scn)(\\?|#|$)/i.test(u))\n        return !0;\n      let h = null;\n      if (c instanceof ArrayBuffer ? h = new Uint8Array(c, 0, Math.min(4, c.byteLength)) : ArrayBuffer.isView(c) && (h = new Uint8Array(c.buffer, c.byteOffset, Math.min(4, c.byteLength))), h && h.length >= 4) {\n        const D = h[0] === 73 ? h[2] | h[3] << 8 : h[2] << 8 | h[3], d = D === 42 || D === 43;\n        if (h[0] === 73 && h[1] === 73 && d || h[0] === 77 && h[1] === 77 && d) return !0;\n      }\n      return !1;\n    }\n    /**\n     * Build constructor options from what autodetection matched. `this` is the viewer.\n     *\n     * @param {String|Object} data\n     * @param {String} [url]\n     * @returns {Object}\n     */\n    configure(c, l) {\n      if (typeof c == \"string\") return { url: c };\n      const u = Object.assign({}, c);\n      return l && !u.url && (u.url = l), u;\n    }\n    static async getAllTileSources(c, l) {\n      const u = c instanceof File ? c.name.split(\".\").pop() : c.split(\".\").pop();\n      let h = await (c instanceof File ? MA(c, l.GeoTIFFOptions) : s(c, l.GeoTIFFOptions)), D = await h.getImageCount();\n      const d = await Promise.all(\n        Array.from({ length: D }, (k, p) => h.getImage(p))\n      );\n      let Q = this.userDefinedImagesFilter(d, l);\n      Q = Q.filter(\n        (k) => k.fileDirectory.photometricInterpretation !== z.TransparencyMask\n      ), Q.sort((k, p) => p.getWidth() - k.getWidth());\n      const C = 0.015, m = Q.reduce((k, p) => {\n        const x = p.getWidth() / p.getHeight();\n        let b = \"\";\n        p.fileDirectory.ImageDescription && (b = p.fileDirectory.ImageDescription.split(`\n`)[1] ?? \"\");\n        const M = k.filter(\n          (S) => Math.abs(1 - S.aspectRatio / x) < C && !(b != null && b.toLowerCase().includes(\"macro\") || b != null && b.toLowerCase().includes(\"label\"))\n        );\n        return M.length === 0 ? k.push({\n          aspectRatio: x,\n          images: [p]\n        }) : M[0].images.push(p), k;\n      }, []).map((k) => k.images), F = [];\n      for (let k = 0; k < m.length; k++) {\n        const p = m[k];\n        if (k !== 0) {\n          F.push(\n            new t.GeoTIFFTileSource(\n              {\n                GeoTIFF: h,\n                GeoTIFFImages: p,\n                GeoTIFFAllImages: p\n              },\n              l\n            )\n          );\n          continue;\n        }\n        if (u === \"qptiff\") {\n          const M = to(p);\n          for (const S of M.values())\n            F.push(\n              new t.GeoTIFFTileSource(\n                {\n                  GeoTIFF: h,\n                  GeoTIFFImages: S.images,\n                  GeoTIFFAllImages: S.images,\n                  channel: {\n                    name: S.name,\n                    color: S.color\n                  }\n                },\n                l\n              )\n            );\n          continue;\n        }\n        const x = await this.resolveLayout(h, p, l.hints), b = await this.buildLevelImages(h, x, h);\n        F.push(\n          new t.GeoTIFFTileSource(\n            {\n              GeoTIFF: h,\n              GeoTIFFImages: b,\n              GeoTIFFAllImages: p\n            },\n            l\n          )\n        );\n      }\n      return F;\n    }\n    /**\n     * Return the tileWidth for a given level.\n     * @function\n     * @param {Number} level\n     */\n    getTileWidth(c) {\n      if (this.levels.length > c)\n        return this.levels[c].tileWidth;\n    }\n    /**\n     * Return the tileHeight for a given level.\n     * @function\n     * @param {Number} level\n     */\n    getTileHeight(c) {\n      if (this.levels.length > c)\n        return this.levels[c].tileHeight;\n    }\n    /**\n     * @function\n     * @param {Number} level\n     */\n    getLevelScale(c) {\n      let l = NaN;\n      return this.levels.length > 0 && c >= this.minLevel && c <= this.maxLevel && (l = this.levels[c].width / this.levels[this.maxLevel].width), l;\n    }\n    /**\n     * Handle maintaining unique caches per channel in multi-channel images\n     */\n    getTileHashKey(c, l, u) {\n      var h;\n      return `geotiffTileSource${this._tsCounter}_${((h = this == null ? void 0 : this.channel) == null ? void 0 : h.name) ?? \"\"}_${c}_${l}_${u}`;\n    }\n    /**\n     * Implement function here instead of as custom tile source in client code\n     * @function\n     * @param {Number} levelnum\n     * @param {Number} x\n     * @param {Number} y\n     */\n    getTileUrl(c, l, u) {\n      return `${c}/${l}_${u}`;\n    }\n    downloadTileStart(c) {\n      const l = !!t.converter && typeof c.fail == \"function\", u = \"\" + c.src, h = new AbortController();\n      c.userData && (c.userData.abortController = h);\n      const D = this.levels[c.tile.level];\n      this.regionToTiffRaster(D, c.tile.x, c.tile.y, h.signal).then(async (d) => {\n        if (l) {\n          c.finish(d, u, d.getType());\n          return;\n        }\n        const Q = await Promise.resolve(r.rasterToContext2d(c.tile, d));\n        c.finish(Q.canvas);\n      }).catch((d) => {\n        const Q = d && d.message ? d.message : String(d);\n        l ? c.fail(Q) : c.finish(null, u, Q);\n      });\n    }\n    downloadTileAbort(c) {\n      const l = c.userData && c.userData.abortController;\n      l ? l.abort() : t.console.error(\"Could not abort download: controller not available.\");\n    }\n    setupComplete() {\n      this._ready = !0, this.promises.ready.resolve(), this.raiseEvent(\"ready\", { tileSource: this });\n    }\n    setupLevels() {\n      if (this._ready)\n        return;\n      let c = this.GeoTIFFImages.sort((Q, C) => C.getWidth() - Q.getWidth()), l = this._tileSize, u = this._tileSize, h = c[0].getWidth();\n      this.width = h;\n      let D = c[0].getHeight();\n      if (this.height = D, this.tileOverlap = 0, this.minLevel = 0, this.aspectRatio = this.width / this.height, this.dimensions = new t.Point(this.width, this.height), c.reduce(\n        (Q, C) => (Q.width !== -1 && (Q.valid = Q.valid && C.getWidth() < Q.width), Q.width = C.getWidth(), Q),\n        { valid: !0, width: -1 }\n      ).valid)\n        this.levels = c.map((Q) => {\n          let C = Q.getWidth(), w = Q.getHeight();\n          return {\n            width: C,\n            height: w,\n            tileWidth: this.options.tileWidth || Q.getTileWidth() || l,\n            tileHeight: this.options.tileHeight || Q.getTileHeight() || u,\n            image: Q,\n            scaleFactor: 1\n          };\n        }), this.maxLevel = this.levels.length - 1;\n      else {\n        let Q = Math.ceil(\n          Math.log2(Math.max(h / l, D / u))\n        ), C = [...Array(Q).keys()].filter((w) => w % 2 == 0);\n        this.levels = C.map((w) => {\n          let m = Math.pow(2, w);\n          const F = c.filter((p) => {\n            const x = Math.pow(2, w - 1);\n            return x >= 0 ? p.getWidth() * x < h && p.getWidth() * m >= h : p.getWidth() * m >= h;\n          });\n          if (F.length === 0)\n            return null;\n          const k = F[0];\n          return {\n            width: h / m,\n            height: D / m,\n            tileWidth: this.options.tileWidth || k.getTileWidth() || l,\n            tileHeight: this.options.tileHeight || k.getTileHeight() || u,\n            image: k,\n            scaleFactor: m * k.getWidth() / h\n          };\n        }).filter((w) => w !== null), this.maxLevel = this.levels.length - 1;\n      }\n      this.levels = this.levels.sort((Q, C) => Q.width - C.width), this.tileWidth = this.levels[0].tileWidth, this.tileHeight = this.levels[0].tileHeight, this.setupComplete();\n    }\n    /**\n     * Declared sample encoding of the displayed plane -- the contract the GPU packs obey.\n     * Every component of a pack is (rawSample - offset) / scale, so it lands in [0,1],\n     * or [-1,1] for signed sample formats.\n     *\n     * @returns {import(\"./utils/tiffEncoding.js\").SampleEncoding}\n     */\n    getSampleEncoding() {\n      return this.getTiffDescriptor().encoding;\n    }\n    /**\n     * Everything a consumer needs to interpret this source's tiles, resolved from the\n     * full-resolution plane's file directory. Available once the source is ready.\n     *\n     * @returns {Object}\n     */\n    getTiffDescriptor() {\n      var k, p;\n      if (this._descriptor) return this._descriptor;\n      if (!this._ready)\n        throw new Error(\n          \"[GeoTIFFTileSource] getTiffDescriptor() is unavailable until the header is parsed; await tileSource.promises.ready first.\"\n        );\n      const l = this.levels[this.maxLevel].image.fileDirectory || {}, u = Array.from(l.BitsPerSample || [8]), h = l.SampleFormat ? Array.from(l.SampleFormat) : null, D = Math.max(l.SamplesPerPixel || 0, u.length), { sMinSampleValue: d, sMaxSampleValue: Q } = qi(l), C = ft({\n        bitsPerSample: u,\n        sampleFormat: h,\n        sMinSampleValue: d,\n        sMaxSampleValue: Q,\n        samplesPerPixel: D\n      }), w = this.format && Array.isArray(this.format.channels) && this.format.channels.length ? this.format.channels.slice() : [...Array(D).keys()], m = this.format && this.format.interpretation, F = m && m !== \"auto\" ? m : oo({\n        photometricInterpretation: l.PhotometricInterpretation,\n        samplesPerPixel: D,\n        hasColorMap: !!l.ColorMap,\n        encoding: C\n      }, w);\n      return this._descriptor = {\n        width: this.width,\n        height: this.height,\n        samplesPerPixel: D,\n        bitsPerSample: u,\n        sampleFormat: h,\n        photometricInterpretation: l.PhotometricInterpretation,\n        hasColorMap: !!l.ColorMap,\n        channelNames: (k = this.channel) != null && k.name ? [this.channel.name] : [],\n        channelColors: (p = this.channel) != null && p.color ? [this.channel.color] : [],\n        channels: w,\n        interpretationResolved: F,\n        encoding: C\n      }, this._descriptor;\n    }\n    static getGeoTiffFileDirectory(c) {\n      var l;\n      return ((l = c.getFileDirectory) == null ? void 0 : l.call(c)) ?? c.fileDirectory ?? {};\n    }\n    static getGeoTiffFileKey(c) {\n      return [\n        c.getWidth(),\n        c.getHeight(),\n        this.getGeoTiffFileDirectory(c).TileWidth ?? 0,\n        this.getGeoTiffFileDirectory(c).TileLength ?? 0,\n        (c.getWidth() / c.getHeight()).toFixed(6)\n      ].join(\"|\");\n    }\n    /**\n     * Aperio-style companion pages (macro / label) use line 1 of ImageDescription; they must not\n     * participate in IFD pyramid detection when mixed with the main slide.\n     */\n    static isSvsStyleCompanionPage(c) {\n      var D;\n      const l = (D = c.fileDirectory) == null ? void 0 : D.ImageDescription;\n      if (typeof l != \"string\" || !l) return !1;\n      const h = (l.split(`\n`)[1] ?? \"\").toLowerCase();\n      return h.includes(\"macro\") || h.includes(\"label\");\n    }\n    static _uniqueByDecreasingSize(c) {\n      const l = c.map((D) => ({ im: D, w: D.getWidth(), h: D.getHeight() })).sort((D, d) => d.w - D.w), u = [], h = /* @__PURE__ */ new Set();\n      for (const { im: D, w: d, h: Q } of l) {\n        const C = `${d}x${Q}`;\n        h.has(C) || (h.add(C), u.push(D));\n      }\n      return u;\n    }\n    static async resolveLayout(c, l, u = {}) {\n      const h = u.layout || {}, D = h.pyramid || \"auto\", d = Number.isFinite(h.planeIndex) ? h.planeIndex : 0, Q = h.prefer === \"stack\" ? \"stack\" : \"pyramid\", C = /* @__PURE__ */ new Map();\n      for (const J of l) {\n        const H = this.getGeoTiffFileKey(J);\n        J.__key = H;\n        const P = C.get(H) || [];\n        P.push(J), C.set(H, P);\n      }\n      const w = this._uniqueByDecreasingSize(l), m = l.filter((J) => !this.isSvsStyleCompanionPage(J)), F = this._uniqueByDecreasingSize(m), k = (J, H, P) => {\n        const j = J / (H + P), V = H - P, W = V > 0 ? J / V : 1 / 0;\n        return { min: j, max: W };\n      }, p = (J, H) => Math.max(J.min, H.min) <= Math.min(J.max, H.max), x = (J, H, P, j, V) => {\n        const W = k(J, P, V), EA = k(H, j, V);\n        return p(W, EA);\n      }, b = (J) => {\n        if (J.length < 2) return !1;\n        for (let V = 1; V < J.length; V++)\n          if (J[V].getWidth() >= J[V - 1].getWidth() || J[V].getHeight() >= J[V - 1].getHeight()) return !1;\n        const H = J[0].getWidth(), P = J[0].getHeight(), j = 1;\n        for (const V of J) {\n          const W = V.getWidth(), EA = V.getHeight();\n          if (!x(H, P, W, EA, j)) return !1;\n        }\n        return !0;\n      }, M = b(w), S = b(F), G = l.some(\n        (J) => this.isSvsStyleCompanionPage(J)\n      );\n      let U = M, L = !U && S;\n      G && S && (L = !0, U = !1);\n      const R = U || L, N = U ? w : L ? F : w, v = l.some((J) => {\n        const H = this.getGeoTiffFileDirectory(J).SubIFDs;\n        return H && H.length;\n      });\n      let Y = \"single\";\n      D === \"ifd\" ? Y = R ? \"ifd\" : \"single\" : D === \"subifd\" ? Y = v ? \"subifd\" : \"single\" : R ? Y = \"ifd\" : v ? Y = \"subifd\" : Y = \"single\";\n      const _ = w[0], q = _.__key, T = C.get(q) || [_], O = T[Math.max(0, Math.min(T.length - 1, d))];\n      return Q === \"stack\" && T.length > 1 && Y === \"ifd\" && (Y = \"single\"), Y === \"subifd\" && (fA(`${O.__key}-subifd-warn`, `[GeoTIFFTileSource] File was detected to contain SubIFD pyramids, \nhowever, geotiff.js does not support reading SubIFD files and is unable to display the pyramid. Only the\nhigh-resolution lowest level will be shown. Note that loading such data can crash your browser due to memory consumption.`, \"warn\"), Y = \"ifd\"), { strategy: Y, planes: T, chosenPlane: O, ifdLevelsLargestToSmallest: N };\n    }\n    static async buildLevelImages(c, l, u) {\n      const { strategy: h, chosenPlane: D, ifdLevelsLargestToSmallest: d, planes: Q } = l, C = (w) => {\n        var m;\n        return ((m = w.getFileDirectory) == null ? void 0 : m.call(w)) ?? w.fileDirectory ?? {};\n      };\n      if (h === \"ifd\") {\n        const w = [...d].sort((m, F) => m.getWidth() - F.getWidth());\n        return Q.length > 1 && fA(u, `[GeoTIFFTileSource] Detected a plane stack (${Q.length} same-size IFDs) AND a top-level pyramid. Defaulting to planeIndex=0. Set hints.layout.planeIndex to choose a different plane.`, \"warn\"), w;\n      }\n      if (h === \"subifd\") {\n        const m = C(D).SubIFDs;\n        if (!m || !m.length)\n          return fA(u, \"[GeoTIFFTileSource] SubIFD pyramid requested/detected but the chosen plane has no SubIFDs. Falling back to single level.\", \"warn\"), [D];\n        if (typeof D.getSubIFDs == \"function\") {\n          const k = [...await D.getSubIFDs(), D].sort((p, x) => p.getWidth() - x.getWidth());\n          return Q.length > 1 && fA(u, `[GeoTIFFTileSource] Detected a plane stack (${Q.length} same-size IFDs) with SubIFD pyramid. Defaulting to planeIndex=0. Set hints.layout.planeIndex to choose plane.`, \"warn\"), k;\n        }\n        return fA(u, \"[GeoTIFFTileSource] SubIFDs are present but geotiff.js does not expose getSubIFDs() in this build. Using single level. (You can still render multi-plane data via your GPU pipeline.)\", \"warn\"), [D];\n      }\n      return Q.length > 1 && fA(u, `[GeoTIFFTileSource] Detected ${Q.length} same-size IFD pages (likely channels/planes). No pyramid detected. Defaulting to planeIndex=0. Set hints.layout.planeIndex to choose plane.`, \"warn\"), [D];\n    }\n    regionToTiffRaster(c, l, u, h) {\n      var k, p, x, b;\n      const D = this.options.logLatency && Date.now(), d = c.tileWidth, Q = c.tileHeight, C = [l * d, u * Q, (l + 1) * d, (u + 1) * Q].map(\n        (M) => M * c.scaleFactor\n      ), w = c.image, m = (p = (k = w.fileDirectory) == null ? void 0 : k.Software) == null ? void 0 : p.startsWith(\"PerkinElmer-QPI\");\n      let F = null;\n      if (m && ((x = w.fileDirectory) != null && x.ImageDescription))\n        try {\n          const S = (b = new DOMParser().parseFromString(w.fileDirectory.ImageDescription, \"text/xml\").querySelector(\"Color\")) == null ? void 0 : b.textContent;\n          F = S ? S.split(\",\").map((G) => parseInt(G, 10)) : null;\n        } catch {\n          F = null;\n        }\n      return w.readRasters({\n        interleave: !1,\n        window: C,\n        pool: this._pool,\n        width: d,\n        height: Q,\n        signal: h\n      }).then((M) => {\n        const S = Array.isArray(M) ? M : [M], G = w.fileDirectory || {}, U = new r.TiffRaster({\n          width: d,\n          height: Q,\n          bands: S,\n          samplesPerPixel: Math.max(G.SamplesPerPixel || 0, S.length),\n          bitsPerSample: G.BitsPerSample || [8],\n          sampleFormat: G.SampleFormat || null,\n          photometricInterpretation: G.PhotometricInterpretation,\n          colorMap: G.ColorMap || null,\n          fileDirectory: G,\n          hints: {\n            ...this.channel ? { channel: this.channel } : {},\n            ...F ? { tintRGB: F } : {},\n            // Per-source format override. Deliberately `format`, not `formatResolved`:\n            // the tile source does not own the plugin defaults, so the converter must\n            // still merge this on top of them.\n            ...this.format ? { format: this.format } : {}\n          }\n        });\n        return this.options.logLatency && (typeof this.options.logLatency == \"function\" ? this.options.logLatency : console.log)(\n          \"Tile decode latency (ms):\",\n          Date.now() - D\n        ), U;\n      });\n    }\n  };\n  /**\n   * Create a shared GeoTIFF Pool for all GeoTIFFTileSources to use.\n   *\n   * If a shared pool is not created, every page of every GeoTIFF will create its own pool,\n   * which can quickly lead to browser crashes.\n   *\n   * Created on first use: geotiff.js spawns its decoder workers in the Pool constructor,\n   * and merely importing this library should not do that.\n   *\n   * @static sharedPool\n   * @type {Pool}\n   */\n  ye(B, \"_sharedPool\", null), ye(B, \"userDefinedImagesFilter\", (c, l) => (typeof l.imagesFilter < \"u\" && l.imagesFilter && (Array.isArray(l.imagesFilter) ? c = c.filter((u, h) => l.imagesFilter.includes(h)) : typeof l.imagesFilter == \"function\" && (c = c.filter(l.imagesFilter)), l.imagesFilter = void 0), c));\n  let E = B;\n  E.openGeoTIFF = (f, c) => typeof Blob < \"u\" && f instanceof Blob ? MA(f, c) : s(f, c), t.GeoTIFFTileSource = E;\n};\n(function(t, e) {\n  typeof exports > \"u\" || typeof t.OpenSeadragon < \"u\" && e(t.OpenSeadragon);\n})(typeof window < \"u\" ? window : void 0, co);\nclass Co extends dA {\n  decodeBlock(e) {\n    return e;\n  }\n}\nconst Eo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n  __proto__: null,\n  default: Co\n}, Symbol.toStringTag, { value: \"Module\" })), Dt = 9, Se = 256, Ve = 257, Qo = 12;\nfunction ho(t, e, A) {\n  const i = e % 8, n = Math.floor(e / 8), o = 8 - i, I = e + A - (n + 1) * 8;\n  let s = 8 * (n + 2) - (e + A);\n  const y = (n + 2) * 8 - e;\n  if (s = Math.max(0, s), n >= t.length)\n    return console.warn(\"ran off the end of the buffer before finding EOI_CODE (end on input code)\"), Ve;\n  let a = t[n] & 2 ** (8 - i) - 1;\n  a <<= A - o;\n  let r = a;\n  if (n + 1 < t.length) {\n    let g = t[n + 1] >>> s;\n    g <<= Math.max(0, A - y), r += g;\n  }\n  if (I > 8 && n + 2 < t.length) {\n    const g = (n + 3) * 8 - (e + A), E = t[n + 2] >>> g;\n    r += E;\n  }\n  return r;\n}\nfunction Ge(t, e) {\n  for (let A = e.length - 1; A >= 0; A--)\n    t.push(e[A]);\n  return t;\n}\nfunction uo(t) {\n  const e = new Uint16Array(4093), A = new Uint8Array(4093);\n  for (let f = 0; f <= 257; f++)\n    e[f] = 4096, A[f] = f;\n  let i = 258, n = Dt, o = 0;\n  function I() {\n    i = 258, n = Dt;\n  }\n  function s(f) {\n    const c = ho(f, o, n);\n    return o += n, c;\n  }\n  function y(f, c) {\n    return A[i] = c, e[i] = f, i++, i - 1;\n  }\n  function a(f) {\n    const c = [];\n    for (let l = f; l !== 4096; l = e[l])\n      c.push(A[l]);\n    return c;\n  }\n  const r = [];\n  I();\n  const g = new Uint8Array(t);\n  let E = s(g), B;\n  for (; E !== Ve; ) {\n    if (E === Se) {\n      for (I(), E = s(g); E === Se; )\n        E = s(g);\n      if (E === Ve)\n        break;\n      if (E > Se)\n        throw new Error(`corrupted code at scanline ${E}`);\n      {\n        const f = a(E);\n        Ge(r, f), B = E;\n      }\n    } else if (E < i) {\n      const f = a(E);\n      Ge(r, f), y(B, f[f.length - 1]), B = E;\n    } else {\n      const f = a(B);\n      if (!f)\n        throw new Error(`Bogus entry. Not in dictionary, ${B} / ${i}, position: ${o}`);\n      Ge(r, f), r.push(f[f.length - 1]), y(B, f[f.length - 1]), B = E;\n    }\n    i + 1 >= 2 ** n && (n === Qo ? B = void 0 : n++), E = s(g);\n  }\n  return new Uint8Array(r);\n}\nclass wo extends dA {\n  decodeBlock(e) {\n    return uo(e).buffer;\n  }\n}\nconst yo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n  __proto__: null,\n  default: wo\n}, Symbol.toStringTag, { value: \"Module\" })), OA = new Int32Array([\n  0,\n  1,\n  8,\n  16,\n  9,\n  2,\n  3,\n  10,\n  17,\n  24,\n  32,\n  25,\n  18,\n  11,\n  4,\n  5,\n  12,\n  19,\n  26,\n  33,\n  40,\n  48,\n  41,\n  34,\n  27,\n  20,\n  13,\n  6,\n  7,\n  14,\n  21,\n  28,\n  35,\n  42,\n  49,\n  56,\n  57,\n  50,\n  43,\n  36,\n  29,\n  22,\n  15,\n  23,\n  30,\n  37,\n  44,\n  51,\n  58,\n  59,\n  52,\n  45,\n  38,\n  31,\n  39,\n  46,\n  53,\n  60,\n  61,\n  54,\n  47,\n  55,\n  62,\n  63\n]), Ae = 4017, ee = 799, te = 3406, ie = 2276, re = 1567, ne = 3784, xA = 5793, oe = 2896;\nfunction mt(t, e) {\n  let A = 0;\n  const i = [];\n  let n = 16;\n  for (; n > 0 && !t[n - 1]; )\n    --n;\n  i.push({ children: [], index: 0 });\n  let o = i[0], I;\n  for (let s = 0; s < n; s++) {\n    for (let y = 0; y < t[s]; y++) {\n      for (o = i.pop(), o.children[o.index] = e[A]; o.index > 0; )\n        o = i.pop();\n      for (o.index++, i.push(o); i.length <= s; )\n        i.push(I = { children: [], index: 0 }), o.children[o.index] = I.children, o = I;\n      A++;\n    }\n    s + 1 < n && (i.push(I = { children: [], index: 0 }), o.children[o.index] = I.children, o = I);\n  }\n  return i[0].children;\n}\nfunction Do(t, e, A, i, n, o, I, s, y) {\n  const { mcusPerLine: a, progressive: r } = A, g = e;\n  let E = e, B = 0, f = 0;\n  function c() {\n    if (f > 0)\n      return f--, B >> f & 1;\n    if (B = t[E++], B === 255) {\n      const q = t[E++];\n      if (q)\n        throw new Error(`unexpected marker: ${(B << 8 | q).toString(16)}`);\n    }\n    return f = 7, B >>> 7;\n  }\n  function l(q) {\n    let T = q, O;\n    for (; (O = c()) !== null; ) {\n      if (T = T[O], typeof T == \"number\")\n        return T;\n      if (typeof T != \"object\")\n        throw new Error(\"invalid huffman sequence\");\n    }\n    return null;\n  }\n  function u(q) {\n    let T = q, O = 0;\n    for (; T > 0; ) {\n      const J = c();\n      if (J === null)\n        return;\n      O = O << 1 | J, --T;\n    }\n    return O;\n  }\n  function h(q) {\n    const T = u(q);\n    return T >= 1 << q - 1 ? T : T + (-1 << q) + 1;\n  }\n  function D(q, T) {\n    const O = l(q.huffmanTableDC), J = O === 0 ? 0 : h(O);\n    q.pred += J, T[0] = q.pred;\n    let H = 1;\n    for (; H < 64; ) {\n      const P = l(q.huffmanTableAC), j = P & 15, V = P >> 4;\n      if (j === 0) {\n        if (V < 15)\n          break;\n        H += 16;\n      } else {\n        H += V;\n        const W = OA[H];\n        T[W] = h(j), H++;\n      }\n    }\n  }\n  function d(q, T) {\n    const O = l(q.huffmanTableDC), J = O === 0 ? 0 : h(O) << y;\n    q.pred += J, T[0] = q.pred;\n  }\n  function Q(q, T) {\n    T[0] |= c() << y;\n  }\n  let C = 0;\n  function w(q, T) {\n    if (C > 0) {\n      C--;\n      return;\n    }\n    let O = o;\n    const J = I;\n    for (; O <= J; ) {\n      const H = l(q.huffmanTableAC), P = H & 15, j = H >> 4;\n      if (P === 0) {\n        if (j < 15) {\n          C = u(j) + (1 << j) - 1;\n          break;\n        }\n        O += 16;\n      } else {\n        O += j;\n        const V = OA[O];\n        T[V] = h(P) * (1 << y), O++;\n      }\n    }\n  }\n  let m = 0, F;\n  function k(q, T) {\n    let O = o;\n    const J = I;\n    let H = 0;\n    for (; O <= J; ) {\n      const P = OA[O], j = T[P] < 0 ? -1 : 1;\n      switch (m) {\n        case 0: {\n          const V = l(q.huffmanTableAC), W = V & 15;\n          if (H = V >> 4, W === 0)\n            H < 15 ? (C = u(H) + (1 << H), m = 4) : (H = 16, m = 1);\n          else {\n            if (W !== 1)\n              throw new Error(\"invalid ACn encoding\");\n            F = h(W), m = H ? 2 : 3;\n          }\n          continue;\n        }\n        case 1:\n        case 2:\n          T[P] ? T[P] += (c() << y) * j : (H--, H === 0 && (m = m === 2 ? 3 : 0));\n          break;\n        case 3:\n          T[P] ? T[P] += (c() << y) * j : (T[P] = F << y, m = 0);\n          break;\n        case 4:\n          T[P] && (T[P] += (c() << y) * j);\n          break;\n      }\n      O++;\n    }\n    m === 4 && (C--, C === 0 && (m = 0));\n  }\n  function p(q, T, O, J, H) {\n    const P = O / a | 0, j = O % a, V = P * q.v + J, W = j * q.h + H;\n    T(q, q.blocks[V][W]);\n  }\n  function x(q, T, O) {\n    const J = O / q.blocksPerLine | 0, H = O % q.blocksPerLine;\n    T(q, q.blocks[J][H]);\n  }\n  const b = i.length;\n  let M, S, G, U, L, R;\n  r ? o === 0 ? R = s === 0 ? d : Q : R = s === 0 ? w : k : R = D;\n  let N = 0, v, Y;\n  b === 1 ? Y = i[0].blocksPerLine * i[0].blocksPerColumn : Y = a * A.mcusPerColumn;\n  const _ = n || Y;\n  for (; N < Y; ) {\n    for (S = 0; S < b; S++)\n      i[S].pred = 0;\n    if (C = 0, b === 1)\n      for (M = i[0], L = 0; L < _; L++)\n        x(M, R, N), N++;\n    else\n      for (L = 0; L < _; L++) {\n        for (S = 0; S < b; S++) {\n          M = i[S];\n          const { h: q, v: T } = M;\n          for (G = 0; G < T; G++)\n            for (U = 0; U < q; U++)\n              p(M, R, N, G, U);\n        }\n        if (N++, N === Y)\n          break;\n      }\n    if (f = 0, v = t[E] << 8 | t[E + 1], v < 65280)\n      throw new Error(\"marker was not found\");\n    if (v >= 65488 && v <= 65495)\n      E += 2;\n    else\n      break;\n  }\n  return E - g;\n}\nfunction mo(t, e) {\n  const A = [], { blocksPerLine: i, blocksPerColumn: n } = e, o = i << 3, I = new Int32Array(64), s = new Uint8Array(64);\n  function y(a, r, g) {\n    const E = e.quantizationTable;\n    let B, f, c, l, u, h, D, d, Q;\n    const C = g;\n    let w;\n    for (w = 0; w < 64; w++)\n      C[w] = a[w] * E[w];\n    for (w = 0; w < 8; ++w) {\n      const m = 8 * w;\n      if (C[1 + m] === 0 && C[2 + m] === 0 && C[3 + m] === 0 && C[4 + m] === 0 && C[5 + m] === 0 && C[6 + m] === 0 && C[7 + m] === 0) {\n        Q = xA * C[0 + m] + 512 >> 10, C[0 + m] = Q, C[1 + m] = Q, C[2 + m] = Q, C[3 + m] = Q, C[4 + m] = Q, C[5 + m] = Q, C[6 + m] = Q, C[7 + m] = Q;\n        continue;\n      }\n      B = xA * C[0 + m] + 128 >> 8, f = xA * C[4 + m] + 128 >> 8, c = C[2 + m], l = C[6 + m], u = oe * (C[1 + m] - C[7 + m]) + 128 >> 8, d = oe * (C[1 + m] + C[7 + m]) + 128 >> 8, h = C[3 + m] << 4, D = C[5 + m] << 4, Q = B - f + 1 >> 1, B = B + f + 1 >> 1, f = Q, Q = c * ne + l * re + 128 >> 8, c = c * re - l * ne + 128 >> 8, l = Q, Q = u - D + 1 >> 1, u = u + D + 1 >> 1, D = Q, Q = d + h + 1 >> 1, h = d - h + 1 >> 1, d = Q, Q = B - l + 1 >> 1, B = B + l + 1 >> 1, l = Q, Q = f - c + 1 >> 1, f = f + c + 1 >> 1, c = Q, Q = u * ie + d * te + 2048 >> 12, u = u * te - d * ie + 2048 >> 12, d = Q, Q = h * ee + D * Ae + 2048 >> 12, h = h * Ae - D * ee + 2048 >> 12, D = Q, C[0 + m] = B + d, C[7 + m] = B - d, C[1 + m] = f + D, C[6 + m] = f - D, C[2 + m] = c + h, C[5 + m] = c - h, C[3 + m] = l + u, C[4 + m] = l - u;\n    }\n    for (w = 0; w < 8; ++w) {\n      const m = w;\n      if (C[1 * 8 + m] === 0 && C[2 * 8 + m] === 0 && C[3 * 8 + m] === 0 && C[4 * 8 + m] === 0 && C[5 * 8 + m] === 0 && C[6 * 8 + m] === 0 && C[7 * 8 + m] === 0) {\n        Q = xA * g[w + 0] + 8192 >> 14, C[0 * 8 + m] = Q, C[1 * 8 + m] = Q, C[2 * 8 + m] = Q, C[3 * 8 + m] = Q, C[4 * 8 + m] = Q, C[5 * 8 + m] = Q, C[6 * 8 + m] = Q, C[7 * 8 + m] = Q;\n        continue;\n      }\n      B = xA * C[0 * 8 + m] + 2048 >> 12, f = xA * C[4 * 8 + m] + 2048 >> 12, c = C[2 * 8 + m], l = C[6 * 8 + m], u = oe * (C[1 * 8 + m] - C[7 * 8 + m]) + 2048 >> 12, d = oe * (C[1 * 8 + m] + C[7 * 8 + m]) + 2048 >> 12, h = C[3 * 8 + m], D = C[5 * 8 + m], Q = B - f + 1 >> 1, B = B + f + 1 >> 1, f = Q, Q = c * ne + l * re + 2048 >> 12, c = c * re - l * ne + 2048 >> 12, l = Q, Q = u - D + 1 >> 1, u = u + D + 1 >> 1, D = Q, Q = d + h + 1 >> 1, h = d - h + 1 >> 1, d = Q, Q = B - l + 1 >> 1, B = B + l + 1 >> 1, l = Q, Q = f - c + 1 >> 1, f = f + c + 1 >> 1, c = Q, Q = u * ie + d * te + 2048 >> 12, u = u * te - d * ie + 2048 >> 12, d = Q, Q = h * ee + D * Ae + 2048 >> 12, h = h * Ae - D * ee + 2048 >> 12, D = Q, C[0 * 8 + m] = B + d, C[7 * 8 + m] = B - d, C[1 * 8 + m] = f + D, C[6 * 8 + m] = f - D, C[2 * 8 + m] = c + h, C[5 * 8 + m] = c - h, C[3 * 8 + m] = l + u, C[4 * 8 + m] = l - u;\n    }\n    for (w = 0; w < 64; ++w) {\n      const m = 128 + (C[w] + 8 >> 4);\n      m < 0 ? r[w] = 0 : m > 255 ? r[w] = 255 : r[w] = m;\n    }\n  }\n  for (let a = 0; a < n; a++) {\n    const r = a << 3;\n    for (let g = 0; g < 8; g++)\n      A.push(new Uint8Array(o));\n    for (let g = 0; g < i; g++) {\n      y(e.blocks[a][g], s, I);\n      let E = 0;\n      const B = g << 3;\n      for (let f = 0; f < 8; f++) {\n        const c = A[r + f];\n        for (let l = 0; l < 8; l++)\n          c[B + l] = s[E++];\n      }\n    }\n  }\n  return A;\n}\nclass po {\n  constructor() {\n    this.jfif = null, this.adobe = null, this.quantizationTables = [], this.huffmanTablesAC = [], this.huffmanTablesDC = [], this.resetFrames();\n  }\n  resetFrames() {\n    this.frames = [];\n  }\n  parse(e) {\n    let A = 0;\n    function i() {\n      const s = e[A] << 8 | e[A + 1];\n      return A += 2, s;\n    }\n    function n() {\n      const s = i(), y = e.subarray(A, A + s - 2);\n      return A += y.length, y;\n    }\n    function o(s) {\n      let y = 0, a = 0, r, g;\n      for (g in s.components)\n        s.components.hasOwnProperty(g) && (r = s.components[g], y < r.h && (y = r.h), a < r.v && (a = r.v));\n      const E = Math.ceil(s.samplesPerLine / 8 / y), B = Math.ceil(s.scanLines / 8 / a);\n      for (g in s.components)\n        if (s.components.hasOwnProperty(g)) {\n          r = s.components[g];\n          const f = Math.ceil(Math.ceil(s.samplesPerLine / 8) * r.h / y), c = Math.ceil(Math.ceil(s.scanLines / 8) * r.v / a), l = E * r.h, u = B * r.v, h = [];\n          for (let D = 0; D < u; D++) {\n            const d = [];\n            for (let Q = 0; Q < l; Q++)\n              d.push(new Int32Array(64));\n            h.push(d);\n          }\n          r.blocksPerLine = f, r.blocksPerColumn = c, r.blocks = h;\n        }\n      s.maxH = y, s.maxV = a, s.mcusPerLine = E, s.mcusPerColumn = B;\n    }\n    let I = i();\n    if (I !== 65496)\n      throw new Error(\"SOI not found\");\n    for (I = i(); I !== 65497; ) {\n      switch (I) {\n        case 65280:\n          break;\n        case 65504:\n        case 65505:\n        case 65506:\n        case 65507:\n        case 65508:\n        case 65509:\n        case 65510:\n        case 65511:\n        case 65512:\n        case 65513:\n        case 65514:\n        case 65515:\n        case 65516:\n        case 65517:\n        case 65518:\n        case 65519:\n        case 65534: {\n          const s = n();\n          I === 65504 && s[0] === 74 && s[1] === 70 && s[2] === 73 && s[3] === 70 && s[4] === 0 && (this.jfif = {\n            version: { major: s[5], minor: s[6] },\n            densityUnits: s[7],\n            xDensity: s[8] << 8 | s[9],\n            yDensity: s[10] << 8 | s[11],\n            thumbWidth: s[12],\n            thumbHeight: s[13],\n            thumbData: s.subarray(14, 14 + 3 * s[12] * s[13])\n          }), I === 65518 && s[0] === 65 && s[1] === 100 && s[2] === 111 && s[3] === 98 && s[4] === 101 && s[5] === 0 && (this.adobe = {\n            version: s[6],\n            flags0: s[7] << 8 | s[8],\n            flags1: s[9] << 8 | s[10],\n            transformCode: s[11]\n          });\n          break;\n        }\n        case 65499: {\n          const y = i() + A - 2;\n          for (; A < y; ) {\n            const a = e[A++], r = new Int32Array(64);\n            if (a >> 4)\n              if (a >> 4 === 1)\n                for (let g = 0; g < 64; g++) {\n                  const E = OA[g];\n                  r[E] = i();\n                }\n              else\n                throw new Error(\"DQT: invalid table spec\");\n            else for (let g = 0; g < 64; g++) {\n              const E = OA[g];\n              r[E] = e[A++];\n            }\n            this.quantizationTables[a & 15] = r;\n          }\n          break;\n        }\n        case 65472:\n        case 65473:\n        case 65474: {\n          i();\n          const s = {\n            extended: I === 65473,\n            progressive: I === 65474,\n            precision: e[A++],\n            scanLines: i(),\n            samplesPerLine: i(),\n            components: {},\n            componentsOrder: []\n          }, y = e[A++];\n          let a;\n          for (let r = 0; r < y; r++) {\n            a = e[A];\n            const g = e[A + 1] >> 4, E = e[A + 1] & 15, B = e[A + 2];\n            s.componentsOrder.push(a), s.components[a] = {\n              h: g,\n              v: E,\n              quantizationIdx: B\n            }, A += 3;\n          }\n          o(s), this.frames.push(s);\n          break;\n        }\n        case 65476: {\n          const s = i();\n          for (let y = 2; y < s; ) {\n            const a = e[A++], r = new Uint8Array(16);\n            let g = 0;\n            for (let B = 0; B < 16; B++, A++)\n              r[B] = e[A], g += r[B];\n            const E = new Uint8Array(g);\n            for (let B = 0; B < g; B++, A++)\n              E[B] = e[A];\n            y += 17 + g, a >> 4 ? this.huffmanTablesAC[a & 15] = mt(\n              r,\n              E\n            ) : this.huffmanTablesDC[a & 15] = mt(\n              r,\n              E\n            );\n          }\n          break;\n        }\n        case 65501:\n          i(), this.resetInterval = i();\n          break;\n        case 65498: {\n          i();\n          const s = e[A++], y = [], a = this.frames[0];\n          for (let f = 0; f < s; f++) {\n            const c = a.components[e[A++]], l = e[A++];\n            c.huffmanTableDC = this.huffmanTablesDC[l >> 4], c.huffmanTableAC = this.huffmanTablesAC[l & 15], y.push(c);\n          }\n          const r = e[A++], g = e[A++], E = e[A++], B = Do(\n            e,\n            A,\n            a,\n            y,\n            this.resetInterval,\n            r,\n            g,\n            E >> 4,\n            E & 15\n          );\n          A += B;\n          break;\n        }\n        case 65535:\n          e[A] !== 255 && A--;\n          break;\n        default:\n          if (e[A - 3] === 255 && e[A - 2] >= 192 && e[A - 2] <= 254) {\n            A -= 3;\n            break;\n          }\n          throw new Error(`unknown JPEG marker ${I.toString(16)}`);\n      }\n      I = i();\n    }\n  }\n  getResult() {\n    const { frames: e } = this;\n    if (this.frames.length === 0)\n      throw new Error(\"no frames were decoded\");\n    this.frames.length > 1 && console.warn(\"more than one frame is not supported\");\n    for (let r = 0; r < this.frames.length; r++) {\n      const g = this.frames[r].components;\n      for (const E of Object.keys(g))\n        g[E].quantizationTable = this.quantizationTables[g[E].quantizationIdx], delete g[E].quantizationIdx;\n    }\n    const A = e[0], { components: i, componentsOrder: n } = A, o = [], I = A.samplesPerLine, s = A.scanLines;\n    for (let r = 0; r < n.length; r++) {\n      const g = i[n[r]];\n      o.push({\n        lines: mo(A, g),\n        scaleX: g.h / A.maxH,\n        scaleY: g.v / A.maxV\n      });\n    }\n    const y = new Uint8Array(I * s * o.length);\n    let a = 0;\n    for (let r = 0; r < s; ++r)\n      for (let g = 0; g < I; ++g)\n        for (let E = 0; E < o.length; ++E) {\n          const B = o[E];\n          y[a] = B.lines[0 | r * B.scaleY][0 | g * B.scaleX], ++a;\n        }\n    return y;\n  }\n}\nclass ko extends dA {\n  constructor(e) {\n    super(), this.reader = new po(), e.JPEGTables && this.reader.parse(e.JPEGTables);\n  }\n  decodeBlock(e) {\n    return this.reader.resetFrames(), this.reader.parse(new Uint8Array(e)), this.reader.getResult().buffer;\n  }\n}\nconst Fo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n  __proto__: null,\n  default: ko\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction qA(t) {\n  let e = t.length;\n  for (; --e >= 0; )\n    t[e] = 0;\n}\nconst So = 3, Go = 258, Ji = 29, xo = 256, bo = xo + 1 + Ji, Yi = 30, Ro = 512, vo = new Array((bo + 2) * 2);\nqA(vo);\nconst Uo = new Array(Yi * 2);\nqA(Uo);\nconst Lo = new Array(Ro);\nqA(Lo);\nconst Mo = new Array(Go - So + 1);\nqA(Mo);\nconst No = new Array(Ji);\nqA(No);\nconst To = new Array(Yi);\nqA(To);\nconst qo = (t, e, A, i) => {\n  let n = t & 65535 | 0, o = t >>> 16 & 65535 | 0, I = 0;\n  for (; A !== 0; ) {\n    I = A > 2e3 ? 2e3 : A, A -= I;\n    do\n      n = n + e[i++] | 0, o = o + n | 0;\n    while (--I);\n    n %= 65521, o %= 65521;\n  }\n  return n | o << 16 | 0;\n};\nvar je = qo;\nconst Jo = () => {\n  let t, e = [];\n  for (var A = 0; A < 256; A++) {\n    t = A;\n    for (var i = 0; i < 8; i++)\n      t = t & 1 ? 3988292384 ^ t >>> 1 : t >>> 1;\n    e[A] = t;\n  }\n  return e;\n}, Yo = new Uint32Array(Jo()), Ho = (t, e, A, i) => {\n  const n = Yo, o = i + A;\n  t ^= -1;\n  for (let I = i; I < o; I++)\n    t = t >>> 8 ^ n[(t ^ e[I]) & 255];\n  return t ^ -1;\n};\nvar gA = Ho, Xe = {\n  2: \"need dictionary\",\n  /* Z_NEED_DICT       2  */\n  1: \"stream end\",\n  /* Z_STREAM_END      1  */\n  0: \"\",\n  /* Z_OK              0  */\n  \"-1\": \"file error\",\n  /* Z_ERRNO         (-1) */\n  \"-2\": \"stream error\",\n  /* Z_STREAM_ERROR  (-2) */\n  \"-3\": \"data error\",\n  /* Z_DATA_ERROR    (-3) */\n  \"-4\": \"insufficient memory\",\n  /* Z_MEM_ERROR     (-4) */\n  \"-5\": \"buffer error\",\n  /* Z_BUF_ERROR     (-5) */\n  \"-6\": \"incompatible version\"\n  /* Z_VERSION_ERROR (-6) */\n}, Hi = {\n  /* Allowed flush values; see deflate() and inflate() below for details */\n  Z_NO_FLUSH: 0,\n  Z_FINISH: 4,\n  Z_BLOCK: 5,\n  Z_TREES: 6,\n  /* Return codes for the compression/decompression functions. Negative values\n  * are errors, positive values are used for special but normal events.\n  */\n  Z_OK: 0,\n  Z_STREAM_END: 1,\n  Z_NEED_DICT: 2,\n  Z_STREAM_ERROR: -2,\n  Z_DATA_ERROR: -3,\n  Z_MEM_ERROR: -4,\n  Z_BUF_ERROR: -5,\n  /* The deflate compression method */\n  Z_DEFLATED: 8\n  //Z_NULL:                 null // Use -1 or null inline, depending on var type\n};\nconst Oo = (t, e) => Object.prototype.hasOwnProperty.call(t, e);\nvar Ko = function(t) {\n  const e = Array.prototype.slice.call(arguments, 1);\n  for (; e.length; ) {\n    const A = e.shift();\n    if (A) {\n      if (typeof A != \"object\")\n        throw new TypeError(A + \"must be non-object\");\n      for (const i in A)\n        Oo(A, i) && (t[i] = A[i]);\n    }\n  }\n  return t;\n}, _o = (t) => {\n  let e = 0;\n  for (let i = 0, n = t.length; i < n; i++)\n    e += t[i].length;\n  const A = new Uint8Array(e);\n  for (let i = 0, n = 0, o = t.length; i < o; i++) {\n    let I = t[i];\n    A.set(I, n), n += I.length;\n  }\n  return A;\n}, Oi = {\n  assign: Ko,\n  flattenChunks: _o\n};\nlet Ki = !0;\ntry {\n  String.fromCharCode.apply(null, new Uint8Array(1));\n} catch {\n  Ki = !1;\n}\nconst PA = new Uint8Array(256);\nfor (let t = 0; t < 256; t++)\n  PA[t] = t >= 252 ? 6 : t >= 248 ? 5 : t >= 240 ? 4 : t >= 224 ? 3 : t >= 192 ? 2 : 1;\nPA[254] = PA[254] = 1;\nvar Po = (t) => {\n  if (typeof TextEncoder == \"function\" && TextEncoder.prototype.encode)\n    return new TextEncoder().encode(t);\n  let e, A, i, n, o, I = t.length, s = 0;\n  for (n = 0; n < I; n++)\n    A = t.charCodeAt(n), (A & 64512) === 55296 && n + 1 < I && (i = t.charCodeAt(n + 1), (i & 64512) === 56320 && (A = 65536 + (A - 55296 << 10) + (i - 56320), n++)), s += A < 128 ? 1 : A < 2048 ? 2 : A < 65536 ? 3 : 4;\n  for (e = new Uint8Array(s), o = 0, n = 0; o < s; n++)\n    A = t.charCodeAt(n), (A & 64512) === 55296 && n + 1 < I && (i = t.charCodeAt(n + 1), (i & 64512) === 56320 && (A = 65536 + (A - 55296 << 10) + (i - 56320), n++)), A < 128 ? e[o++] = A : A < 2048 ? (e[o++] = 192 | A >>> 6, e[o++] = 128 | A & 63) : A < 65536 ? (e[o++] = 224 | A >>> 12, e[o++] = 128 | A >>> 6 & 63, e[o++] = 128 | A & 63) : (e[o++] = 240 | A >>> 18, e[o++] = 128 | A >>> 12 & 63, e[o++] = 128 | A >>> 6 & 63, e[o++] = 128 | A & 63);\n  return e;\n};\nconst Vo = (t, e) => {\n  if (e < 65534 && t.subarray && Ki)\n    return String.fromCharCode.apply(null, t.length === e ? t : t.subarray(0, e));\n  let A = \"\";\n  for (let i = 0; i < e; i++)\n    A += String.fromCharCode(t[i]);\n  return A;\n};\nvar jo = (t, e) => {\n  const A = e || t.length;\n  if (typeof TextDecoder == \"function\" && TextDecoder.prototype.decode)\n    return new TextDecoder().decode(t.subarray(0, e));\n  let i, n;\n  const o = new Array(A * 2);\n  for (n = 0, i = 0; i < A; ) {\n    let I = t[i++];\n    if (I < 128) {\n      o[n++] = I;\n      continue;\n    }\n    let s = PA[I];\n    if (s > 4) {\n      o[n++] = 65533, i += s - 1;\n      continue;\n    }\n    for (I &= s === 2 ? 31 : s === 3 ? 15 : 7; s > 1 && i < A; )\n      I = I << 6 | t[i++] & 63, s--;\n    if (s > 1) {\n      o[n++] = 65533;\n      continue;\n    }\n    I < 65536 ? o[n++] = I : (I -= 65536, o[n++] = 55296 | I >> 10 & 1023, o[n++] = 56320 | I & 1023);\n  }\n  return Vo(o, n);\n}, Xo = (t, e) => {\n  e = e || t.length, e > t.length && (e = t.length);\n  let A = e - 1;\n  for (; A >= 0 && (t[A] & 192) === 128; )\n    A--;\n  return A < 0 || A === 0 ? e : A + PA[t[A]] > e ? A : e;\n}, We = {\n  string2buf: Po,\n  buf2string: jo,\n  utf8border: Xo\n};\nfunction Wo() {\n  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;\n}\nvar Zo = Wo;\nconst ae = 16209, zo = 16191;\nvar $o = function(e, A) {\n  let i, n, o, I, s, y, a, r, g, E, B, f, c, l, u, h, D, d, Q, C, w, m, F, k;\n  const p = e.state;\n  i = e.next_in, F = e.input, n = i + (e.avail_in - 5), o = e.next_out, k = e.output, I = o - (A - e.avail_out), s = o + (e.avail_out - 257), y = p.dmax, a = p.wsize, r = p.whave, g = p.wnext, E = p.window, B = p.hold, f = p.bits, c = p.lencode, l = p.distcode, u = (1 << p.lenbits) - 1, h = (1 << p.distbits) - 1;\n  A:\n    do {\n      f < 15 && (B += F[i++] << f, f += 8, B += F[i++] << f, f += 8), D = c[B & u];\n      e:\n        for (; ; ) {\n          if (d = D >>> 24, B >>>= d, f -= d, d = D >>> 16 & 255, d === 0)\n            k[o++] = D & 65535;\n          else if (d & 16) {\n            Q = D & 65535, d &= 15, d && (f < d && (B += F[i++] << f, f += 8), Q += B & (1 << d) - 1, B >>>= d, f -= d), f < 15 && (B += F[i++] << f, f += 8, B += F[i++] << f, f += 8), D = l[B & h];\n            t:\n              for (; ; ) {\n                if (d = D >>> 24, B >>>= d, f -= d, d = D >>> 16 & 255, d & 16) {\n                  if (C = D & 65535, d &= 15, f < d && (B += F[i++] << f, f += 8, f < d && (B += F[i++] << f, f += 8)), C += B & (1 << d) - 1, C > y) {\n                    e.msg = \"invalid distance too far back\", p.mode = ae;\n                    break A;\n                  }\n                  if (B >>>= d, f -= d, d = o - I, C > d) {\n                    if (d = C - d, d > r && p.sane) {\n                      e.msg = \"invalid distance too far back\", p.mode = ae;\n                      break A;\n                    }\n                    if (w = 0, m = E, g === 0) {\n                      if (w += a - d, d < Q) {\n                        Q -= d;\n                        do\n                          k[o++] = E[w++];\n                        while (--d);\n                        w = o - C, m = k;\n                      }\n                    } else if (g < d) {\n                      if (w += a + g - d, d -= g, d < Q) {\n                        Q -= d;\n                        do\n                          k[o++] = E[w++];\n                        while (--d);\n                        if (w = 0, g < Q) {\n                          d = g, Q -= d;\n                          do\n                            k[o++] = E[w++];\n                          while (--d);\n                          w = o - C, m = k;\n                        }\n                      }\n                    } else if (w += g - d, d < Q) {\n                      Q -= d;\n                      do\n                        k[o++] = E[w++];\n                      while (--d);\n                      w = o - C, m = k;\n                    }\n                    for (; Q > 2; )\n                      k[o++] = m[w++], k[o++] = m[w++], k[o++] = m[w++], Q -= 3;\n                    Q && (k[o++] = m[w++], Q > 1 && (k[o++] = m[w++]));\n                  } else {\n                    w = o - C;\n                    do\n                      k[o++] = k[w++], k[o++] = k[w++], k[o++] = k[w++], Q -= 3;\n                    while (Q > 2);\n                    Q && (k[o++] = k[w++], Q > 1 && (k[o++] = k[w++]));\n                  }\n                } else if (d & 64) {\n                  e.msg = \"invalid distance code\", p.mode = ae;\n                  break A;\n                } else {\n                  D = l[(D & 65535) + (B & (1 << d) - 1)];\n                  continue t;\n                }\n                break;\n              }\n          } else if (d & 64)\n            if (d & 32) {\n              p.mode = zo;\n              break A;\n            } else {\n              e.msg = \"invalid literal/length code\", p.mode = ae;\n              break A;\n            }\n          else {\n            D = c[(D & 65535) + (B & (1 << d) - 1)];\n            continue e;\n          }\n          break;\n        }\n    } while (i < n && o < s);\n  Q = f >> 3, i -= Q, f -= Q << 3, B &= (1 << f) - 1, e.next_in = i, e.next_out = o, e.avail_in = i < n ? 5 + (n - i) : 5 - (i - n), e.avail_out = o < s ? 257 + (s - o) : 257 - (o - s), p.hold = B, p.bits = f;\n};\nconst bA = 15, pt = 852, kt = 592, Ft = 0, xe = 1, St = 2, Aa = new Uint16Array([\n  /* Length codes 257..285 base */\n  3,\n  4,\n  5,\n  6,\n  7,\n  8,\n  9,\n  10,\n  11,\n  13,\n  15,\n  17,\n  19,\n  23,\n  27,\n  31,\n  35,\n  43,\n  51,\n  59,\n  67,\n  83,\n  99,\n  115,\n  131,\n  163,\n  195,\n  227,\n  258,\n  0,\n  0\n]), ea = new Uint8Array([\n  /* Length codes 257..285 extra */\n  16,\n  16,\n  16,\n  16,\n  16,\n  16,\n  16,\n  16,\n  17,\n  17,\n  17,\n  17,\n  18,\n  18,\n  18,\n  18,\n  19,\n  19,\n  19,\n  19,\n  20,\n  20,\n  20,\n  20,\n  21,\n  21,\n  21,\n  21,\n  16,\n  72,\n  78\n]), ta = new Uint16Array([\n  /* Distance codes 0..29 base */\n  1,\n  2,\n  3,\n  4,\n  5,\n  7,\n  9,\n  13,\n  17,\n  25,\n  33,\n  49,\n  65,\n  97,\n  129,\n  193,\n  257,\n  385,\n  513,\n  769,\n  1025,\n  1537,\n  2049,\n  3073,\n  4097,\n  6145,\n  8193,\n  12289,\n  16385,\n  24577,\n  0,\n  0\n]), ia = new Uint8Array([\n  /* Distance codes 0..29 extra */\n  16,\n  16,\n  16,\n  16,\n  17,\n  17,\n  18,\n  18,\n  19,\n  19,\n  20,\n  20,\n  21,\n  21,\n  22,\n  22,\n  23,\n  23,\n  24,\n  24,\n  25,\n  25,\n  26,\n  26,\n  27,\n  27,\n  28,\n  28,\n  29,\n  29,\n  64,\n  64\n]), ra = (t, e, A, i, n, o, I, s) => {\n  const y = s.bits;\n  let a = 0, r = 0, g = 0, E = 0, B = 0, f = 0, c = 0, l = 0, u = 0, h = 0, D, d, Q, C, w, m = null, F;\n  const k = new Uint16Array(bA + 1), p = new Uint16Array(bA + 1);\n  let x = null, b, M, S;\n  for (a = 0; a <= bA; a++)\n    k[a] = 0;\n  for (r = 0; r < i; r++)\n    k[e[A + r]]++;\n  for (B = y, E = bA; E >= 1 && k[E] === 0; E--)\n    ;\n  if (B > E && (B = E), E === 0)\n    return n[o++] = 1 << 24 | 64 << 16 | 0, n[o++] = 1 << 24 | 64 << 16 | 0, s.bits = 1, 0;\n  for (g = 1; g < E && k[g] === 0; g++)\n    ;\n  for (B < g && (B = g), l = 1, a = 1; a <= bA; a++)\n    if (l <<= 1, l -= k[a], l < 0)\n      return -1;\n  if (l > 0 && (t === Ft || E !== 1))\n    return -1;\n  for (p[1] = 0, a = 1; a < bA; a++)\n    p[a + 1] = p[a] + k[a];\n  for (r = 0; r < i; r++)\n    e[A + r] !== 0 && (I[p[e[A + r]]++] = r);\n  if (t === Ft ? (m = x = I, F = 20) : t === xe ? (m = Aa, x = ea, F = 257) : (m = ta, x = ia, F = 0), h = 0, r = 0, a = g, w = o, f = B, c = 0, Q = -1, u = 1 << B, C = u - 1, t === xe && u > pt || t === St && u > kt)\n    return 1;\n  for (; ; ) {\n    b = a - c, I[r] + 1 < F ? (M = 0, S = I[r]) : I[r] >= F ? (M = x[I[r] - F], S = m[I[r] - F]) : (M = 96, S = 0), D = 1 << a - c, d = 1 << f, g = d;\n    do\n      d -= D, n[w + (h >> c) + d] = b << 24 | M << 16 | S | 0;\n    while (d !== 0);\n    for (D = 1 << a - 1; h & D; )\n      D >>= 1;\n    if (D !== 0 ? (h &= D - 1, h += D) : h = 0, r++, --k[a] === 0) {\n      if (a === E)\n        break;\n      a = e[A + I[r]];\n    }\n    if (a > B && (h & C) !== Q) {\n      for (c === 0 && (c = B), w += g, f = a - c, l = 1 << f; f + c < E && (l -= k[f + c], !(l <= 0)); )\n        f++, l <<= 1;\n      if (u += 1 << f, t === xe && u > pt || t === St && u > kt)\n        return 1;\n      Q = h & C, n[Q] = B << 24 | f << 16 | w - o | 0;\n    }\n  }\n  return h !== 0 && (n[w + h] = a - c << 24 | 64 << 16 | 0), s.bits = B, 0;\n};\nvar KA = ra;\nconst na = 0, _i = 1, Pi = 2, {\n  Z_FINISH: Gt,\n  Z_BLOCK: oa,\n  Z_TREES: se,\n  Z_OK: FA,\n  Z_STREAM_END: aa,\n  Z_NEED_DICT: sa,\n  Z_STREAM_ERROR: iA,\n  Z_DATA_ERROR: Vi,\n  Z_MEM_ERROR: ji,\n  Z_BUF_ERROR: ga,\n  Z_DEFLATED: xt\n} = Hi, ue = 16180, bt = 16181, Rt = 16182, vt = 16183, Ut = 16184, Lt = 16185, Mt = 16186, Nt = 16187, Tt = 16188, qt = 16189, Ce = 16190, BA = 16191, be = 16192, Jt = 16193, Re = 16194, Yt = 16195, Ht = 16196, Ot = 16197, Kt = 16198, ge = 16199, Ie = 16200, _t = 16201, Pt = 16202, Vt = 16203, jt = 16204, Xt = 16205, ve = 16206, Wt = 16207, Zt = 16208, X = 16209, Xi = 16210, Wi = 16211, Ia = 852, Ba = 592, la = 15, fa = la, zt = (t) => (t >>> 24 & 255) + (t >>> 8 & 65280) + ((t & 65280) << 8) + ((t & 255) << 24);\nfunction ca() {\n  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;\n}\nconst SA = (t) => {\n  if (!t)\n    return 1;\n  const e = t.state;\n  return !e || e.strm !== t || e.mode < ue || e.mode > Wi ? 1 : 0;\n}, Zi = (t) => {\n  if (SA(t))\n    return iA;\n  const e = t.state;\n  return t.total_in = t.total_out = e.total = 0, t.msg = \"\", e.wrap && (t.adler = e.wrap & 1), e.mode = ue, 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(Ia), e.distcode = e.distdyn = new Int32Array(Ba), e.sane = 1, e.back = -1, FA;\n}, zi = (t) => {\n  if (SA(t))\n    return iA;\n  const e = t.state;\n  return e.wsize = 0, e.whave = 0, e.wnext = 0, Zi(t);\n}, $i = (t, e) => {\n  let A;\n  if (SA(t))\n    return iA;\n  const i = t.state;\n  return e < 0 ? (A = 0, e = -e) : (A = (e >> 4) + 5, e < 48 && (e &= 15)), e && (e < 8 || e > 15) ? iA : (i.window !== null && i.wbits !== e && (i.window = null), i.wrap = A, i.wbits = e, zi(t));\n}, Ar = (t, e) => {\n  if (!t)\n    return iA;\n  const A = new ca();\n  t.state = A, A.strm = t, A.window = null, A.mode = ue;\n  const i = $i(t, e);\n  return i !== FA && (t.state = null), i;\n}, Ca = (t) => Ar(t, fa);\nlet $t = !0, Ue, Le;\nconst Ea = (t) => {\n  if ($t) {\n    Ue = new Int32Array(512), Le = new Int32Array(32);\n    let e = 0;\n    for (; e < 144; )\n      t.lens[e++] = 8;\n    for (; e < 256; )\n      t.lens[e++] = 9;\n    for (; e < 280; )\n      t.lens[e++] = 7;\n    for (; e < 288; )\n      t.lens[e++] = 8;\n    for (KA(_i, t.lens, 0, 288, Ue, 0, t.work, { bits: 9 }), e = 0; e < 32; )\n      t.lens[e++] = 5;\n    KA(Pi, t.lens, 0, 32, Le, 0, t.work, { bits: 5 }), $t = !1;\n  }\n  t.lencode = Ue, t.lenbits = 9, t.distcode = Le, t.distbits = 5;\n}, er = (t, e, A, i) => {\n  let n;\n  const o = t.state;\n  return o.window === null && (o.wsize = 1 << o.wbits, o.wnext = 0, o.whave = 0, o.window = new Uint8Array(o.wsize)), i >= o.wsize ? (o.window.set(e.subarray(A - o.wsize, A), 0), o.wnext = 0, o.whave = o.wsize) : (n = o.wsize - o.wnext, n > i && (n = i), o.window.set(e.subarray(A - i, A - i + n), o.wnext), i -= n, i ? (o.window.set(e.subarray(A - i, A), 0), o.wnext = i, o.whave = o.wsize) : (o.wnext += n, o.wnext === o.wsize && (o.wnext = 0), o.whave < o.wsize && (o.whave += n))), 0;\n}, Qa = (t, e) => {\n  let A, i, n, o, I, s, y, a, r, g, E, B, f, c, l = 0, u, h, D, d, Q, C, w, m;\n  const F = new Uint8Array(4);\n  let k, p;\n  const x = (\n    /* permutation of code lengths */\n    new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15])\n  );\n  if (SA(t) || !t.output || !t.input && t.avail_in !== 0)\n    return iA;\n  A = t.state, A.mode === BA && (A.mode = be), I = t.next_out, n = t.output, y = t.avail_out, o = t.next_in, i = t.input, s = t.avail_in, a = A.hold, r = A.bits, g = s, E = y, m = FA;\n  A:\n    for (; ; )\n      switch (A.mode) {\n        case ue:\n          if (A.wrap === 0) {\n            A.mode = be;\n            break;\n          }\n          for (; r < 16; ) {\n            if (s === 0)\n              break A;\n            s--, a += i[o++] << r, r += 8;\n          }\n          if (A.wrap & 2 && a === 35615) {\n            A.wbits === 0 && (A.wbits = 15), A.check = 0, F[0] = a & 255, F[1] = a >>> 8 & 255, A.check = gA(A.check, F, 2, 0), a = 0, r = 0, A.mode = bt;\n            break;\n          }\n          if (A.head && (A.head.done = !1), !(A.wrap & 1) || /* check if zlib header allowed */\n          (((a & 255) << 8) + (a >> 8)) % 31) {\n            t.msg = \"incorrect header check\", A.mode = X;\n            break;\n          }\n          if ((a & 15) !== xt) {\n            t.msg = \"unknown compression method\", A.mode = X;\n            break;\n          }\n          if (a >>>= 4, r -= 4, w = (a & 15) + 8, A.wbits === 0 && (A.wbits = w), w > 15 || w > A.wbits) {\n            t.msg = \"invalid window size\", A.mode = X;\n            break;\n          }\n          A.dmax = 1 << A.wbits, A.flags = 0, t.adler = A.check = 1, A.mode = a & 512 ? qt : BA, a = 0, r = 0;\n          break;\n        case bt:\n          for (; r < 16; ) {\n            if (s === 0)\n              break A;\n            s--, a += i[o++] << r, r += 8;\n          }\n          if (A.flags = a, (A.flags & 255) !== xt) {\n            t.msg = \"unknown compression method\", A.mode = X;\n            break;\n          }\n          if (A.flags & 57344) {\n            t.msg = \"unknown header flags set\", A.mode = X;\n            break;\n          }\n          A.head && (A.head.text = a >> 8 & 1), A.flags & 512 && A.wrap & 4 && (F[0] = a & 255, F[1] = a >>> 8 & 255, A.check = gA(A.check, F, 2, 0)), a = 0, r = 0, A.mode = Rt;\n        case Rt:\n          for (; r < 32; ) {\n            if (s === 0)\n              break A;\n            s--, a += i[o++] << r, r += 8;\n          }\n          A.head && (A.head.time = a), A.flags & 512 && A.wrap & 4 && (F[0] = a & 255, F[1] = a >>> 8 & 255, F[2] = a >>> 16 & 255, F[3] = a >>> 24 & 255, A.check = gA(A.check, F, 4, 0)), a = 0, r = 0, A.mode = vt;\n        case vt:\n          for (; r < 16; ) {\n            if (s === 0)\n              break A;\n            s--, a += i[o++] << r, r += 8;\n          }\n          A.head && (A.head.xflags = a & 255, A.head.os = a >> 8), A.flags & 512 && A.wrap & 4 && (F[0] = a & 255, F[1] = a >>> 8 & 255, A.check = gA(A.check, F, 2, 0)), a = 0, r = 0, A.mode = Ut;\n        case Ut:\n          if (A.flags & 1024) {\n            for (; r < 16; ) {\n              if (s === 0)\n                break A;\n              s--, a += i[o++] << r, r += 8;\n            }\n            A.length = a, A.head && (A.head.extra_len = a), A.flags & 512 && A.wrap & 4 && (F[0] = a & 255, F[1] = a >>> 8 & 255, A.check = gA(A.check, F, 2, 0)), a = 0, r = 0;\n          } else A.head && (A.head.extra = null);\n          A.mode = Lt;\n        case Lt:\n          if (A.flags & 1024 && (B = A.length, B > s && (B = s), B && (A.head && (w = A.head.extra_len - A.length, A.head.extra || (A.head.extra = new Uint8Array(A.head.extra_len)), A.head.extra.set(\n            i.subarray(\n              o,\n              // extra field is limited to 65536 bytes\n              // - no need for additional size check\n              o + B\n            ),\n            /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n            w\n          )), A.flags & 512 && A.wrap & 4 && (A.check = gA(A.check, i, B, o)), s -= B, o += B, A.length -= B), A.length))\n            break A;\n          A.length = 0, A.mode = Mt;\n        case Mt:\n          if (A.flags & 2048) {\n            if (s === 0)\n              break A;\n            B = 0;\n            do\n              w = i[o + B++], A.head && w && A.length < 65536 && (A.head.name += String.fromCharCode(w));\n            while (w && B < s);\n            if (A.flags & 512 && A.wrap & 4 && (A.check = gA(A.check, i, B, o)), s -= B, o += B, w)\n              break A;\n          } else A.head && (A.head.name = null);\n          A.length = 0, A.mode = Nt;\n        case Nt:\n          if (A.flags & 4096) {\n            if (s === 0)\n              break A;\n            B = 0;\n            do\n              w = i[o + B++], A.head && w && A.length < 65536 && (A.head.comment += String.fromCharCode(w));\n            while (w && B < s);\n            if (A.flags & 512 && A.wrap & 4 && (A.check = gA(A.check, i, B, o)), s -= B, o += B, w)\n              break A;\n          } else A.head && (A.head.comment = null);\n          A.mode = Tt;\n        case Tt:\n          if (A.flags & 512) {\n            for (; r < 16; ) {\n              if (s === 0)\n                break A;\n              s--, a += i[o++] << r, r += 8;\n            }\n            if (A.wrap & 4 && a !== (A.check & 65535)) {\n              t.msg = \"header crc mismatch\", A.mode = X;\n              break;\n            }\n            a = 0, r = 0;\n          }\n          A.head && (A.head.hcrc = A.flags >> 9 & 1, A.head.done = !0), t.adler = A.check = 0, A.mode = BA;\n          break;\n        case qt:\n          for (; r < 32; ) {\n            if (s === 0)\n              break A;\n            s--, a += i[o++] << r, r += 8;\n          }\n          t.adler = A.check = zt(a), a = 0, r = 0, A.mode = Ce;\n        case Ce:\n          if (A.havedict === 0)\n            return t.next_out = I, t.avail_out = y, t.next_in = o, t.avail_in = s, A.hold = a, A.bits = r, sa;\n          t.adler = A.check = 1, A.mode = BA;\n        case BA:\n          if (e === oa || e === se)\n            break A;\n        case be:\n          if (A.last) {\n            a >>>= r & 7, r -= r & 7, A.mode = ve;\n            break;\n          }\n          for (; r < 3; ) {\n            if (s === 0)\n              break A;\n            s--, a += i[o++] << r, r += 8;\n          }\n          switch (A.last = a & 1, a >>>= 1, r -= 1, a & 3) {\n            case 0:\n              A.mode = Jt;\n              break;\n            case 1:\n              if (Ea(A), A.mode = ge, e === se) {\n                a >>>= 2, r -= 2;\n                break A;\n              }\n              break;\n            case 2:\n              A.mode = Ht;\n              break;\n            case 3:\n              t.msg = \"invalid block type\", A.mode = X;\n          }\n          a >>>= 2, r -= 2;\n          break;\n        case Jt:\n          for (a >>>= r & 7, r -= r & 7; r < 32; ) {\n            if (s === 0)\n              break A;\n            s--, a += i[o++] << r, r += 8;\n          }\n          if ((a & 65535) !== (a >>> 16 ^ 65535)) {\n            t.msg = \"invalid stored block lengths\", A.mode = X;\n            break;\n          }\n          if (A.length = a & 65535, a = 0, r = 0, A.mode = Re, e === se)\n            break A;\n        case Re:\n          A.mode = Yt;\n        case Yt:\n          if (B = A.length, B) {\n            if (B > s && (B = s), B > y && (B = y), B === 0)\n              break A;\n            n.set(i.subarray(o, o + B), I), s -= B, o += B, y -= B, I += B, A.length -= B;\n            break;\n          }\n          A.mode = BA;\n          break;\n        case Ht:\n          for (; r < 14; ) {\n            if (s === 0)\n              break A;\n            s--, a += i[o++] << r, r += 8;\n          }\n          if (A.nlen = (a & 31) + 257, a >>>= 5, r -= 5, A.ndist = (a & 31) + 1, a >>>= 5, r -= 5, A.ncode = (a & 15) + 4, a >>>= 4, r -= 4, A.nlen > 286 || A.ndist > 30) {\n            t.msg = \"too many length or distance symbols\", A.mode = X;\n            break;\n          }\n          A.have = 0, A.mode = Ot;\n        case Ot:\n          for (; A.have < A.ncode; ) {\n            for (; r < 3; ) {\n              if (s === 0)\n                break A;\n              s--, a += i[o++] << r, r += 8;\n            }\n            A.lens[x[A.have++]] = a & 7, a >>>= 3, r -= 3;\n          }\n          for (; A.have < 19; )\n            A.lens[x[A.have++]] = 0;\n          if (A.lencode = A.lendyn, A.lenbits = 7, k = { bits: A.lenbits }, m = KA(na, A.lens, 0, 19, A.lencode, 0, A.work, k), A.lenbits = k.bits, m) {\n            t.msg = \"invalid code lengths set\", A.mode = X;\n            break;\n          }\n          A.have = 0, A.mode = Kt;\n        case Kt:\n          for (; A.have < A.nlen + A.ndist; ) {\n            for (; l = A.lencode[a & (1 << A.lenbits) - 1], u = l >>> 24, h = l >>> 16 & 255, D = l & 65535, !(u <= r); ) {\n              if (s === 0)\n                break A;\n              s--, a += i[o++] << r, r += 8;\n            }\n            if (D < 16)\n              a >>>= u, r -= u, A.lens[A.have++] = D;\n            else {\n              if (D === 16) {\n                for (p = u + 2; r < p; ) {\n                  if (s === 0)\n                    break A;\n                  s--, a += i[o++] << r, r += 8;\n                }\n                if (a >>>= u, r -= u, A.have === 0) {\n                  t.msg = \"invalid bit length repeat\", A.mode = X;\n                  break;\n                }\n                w = A.lens[A.have - 1], B = 3 + (a & 3), a >>>= 2, r -= 2;\n              } else if (D === 17) {\n                for (p = u + 3; r < p; ) {\n                  if (s === 0)\n                    break A;\n                  s--, a += i[o++] << r, r += 8;\n                }\n                a >>>= u, r -= u, w = 0, B = 3 + (a & 7), a >>>= 3, r -= 3;\n              } else {\n                for (p = u + 7; r < p; ) {\n                  if (s === 0)\n                    break A;\n                  s--, a += i[o++] << r, r += 8;\n                }\n                a >>>= u, r -= u, w = 0, B = 11 + (a & 127), a >>>= 7, r -= 7;\n              }\n              if (A.have + B > A.nlen + A.ndist) {\n                t.msg = \"invalid bit length repeat\", A.mode = X;\n                break;\n              }\n              for (; B--; )\n                A.lens[A.have++] = w;\n            }\n          }\n          if (A.mode === X)\n            break;\n          if (A.lens[256] === 0) {\n            t.msg = \"invalid code -- missing end-of-block\", A.mode = X;\n            break;\n          }\n          if (A.lenbits = 9, k = { bits: A.lenbits }, m = KA(_i, A.lens, 0, A.nlen, A.lencode, 0, A.work, k), A.lenbits = k.bits, m) {\n            t.msg = \"invalid literal/lengths set\", A.mode = X;\n            break;\n          }\n          if (A.distbits = 6, A.distcode = A.distdyn, k = { bits: A.distbits }, m = KA(Pi, A.lens, A.nlen, A.ndist, A.distcode, 0, A.work, k), A.distbits = k.bits, m) {\n            t.msg = \"invalid distances set\", A.mode = X;\n            break;\n          }\n          if (A.mode = ge, e === se)\n            break A;\n        case ge:\n          A.mode = Ie;\n        case Ie:\n          if (s >= 6 && y >= 258) {\n            t.next_out = I, t.avail_out = y, t.next_in = o, t.avail_in = s, A.hold = a, A.bits = r, $o(t, E), I = t.next_out, n = t.output, y = t.avail_out, o = t.next_in, i = t.input, s = t.avail_in, a = A.hold, r = A.bits, A.mode === BA && (A.back = -1);\n            break;\n          }\n          for (A.back = 0; l = A.lencode[a & (1 << A.lenbits) - 1], u = l >>> 24, h = l >>> 16 & 255, D = l & 65535, !(u <= r); ) {\n            if (s === 0)\n              break A;\n            s--, a += i[o++] << r, r += 8;\n          }\n          if (h && !(h & 240)) {\n            for (d = u, Q = h, C = D; l = A.lencode[C + ((a & (1 << d + Q) - 1) >> d)], u = l >>> 24, h = l >>> 16 & 255, D = l & 65535, !(d + u <= r); ) {\n              if (s === 0)\n                break A;\n              s--, a += i[o++] << r, r += 8;\n            }\n            a >>>= d, r -= d, A.back += d;\n          }\n          if (a >>>= u, r -= u, A.back += u, A.length = D, h === 0) {\n            A.mode = Xt;\n            break;\n          }\n          if (h & 32) {\n            A.back = -1, A.mode = BA;\n            break;\n          }\n          if (h & 64) {\n            t.msg = \"invalid literal/length code\", A.mode = X;\n            break;\n          }\n          A.extra = h & 15, A.mode = _t;\n        case _t:\n          if (A.extra) {\n            for (p = A.extra; r < p; ) {\n              if (s === 0)\n                break A;\n              s--, a += i[o++] << r, r += 8;\n            }\n            A.length += a & (1 << A.extra) - 1, a >>>= A.extra, r -= A.extra, A.back += A.extra;\n          }\n          A.was = A.length, A.mode = Pt;\n        case Pt:\n          for (; l = A.distcode[a & (1 << A.distbits) - 1], u = l >>> 24, h = l >>> 16 & 255, D = l & 65535, !(u <= r); ) {\n            if (s === 0)\n              break A;\n            s--, a += i[o++] << r, r += 8;\n          }\n          if (!(h & 240)) {\n            for (d = u, Q = h, C = D; l = A.distcode[C + ((a & (1 << d + Q) - 1) >> d)], u = l >>> 24, h = l >>> 16 & 255, D = l & 65535, !(d + u <= r); ) {\n              if (s === 0)\n                break A;\n              s--, a += i[o++] << r, r += 8;\n            }\n            a >>>= d, r -= d, A.back += d;\n          }\n          if (a >>>= u, r -= u, A.back += u, h & 64) {\n            t.msg = \"invalid distance code\", A.mode = X;\n            break;\n          }\n          A.offset = D, A.extra = h & 15, A.mode = Vt;\n        case Vt:\n          if (A.extra) {\n            for (p = A.extra; r < p; ) {\n              if (s === 0)\n                break A;\n              s--, a += i[o++] << r, r += 8;\n            }\n            A.offset += a & (1 << A.extra) - 1, a >>>= A.extra, r -= A.extra, A.back += A.extra;\n          }\n          if (A.offset > A.dmax) {\n            t.msg = \"invalid distance too far back\", A.mode = X;\n            break;\n          }\n          A.mode = jt;\n        case jt:\n          if (y === 0)\n            break A;\n          if (B = E - y, A.offset > B) {\n            if (B = A.offset - B, B > A.whave && A.sane) {\n              t.msg = \"invalid distance too far back\", A.mode = X;\n              break;\n            }\n            B > A.wnext ? (B -= A.wnext, f = A.wsize - B) : f = A.wnext - B, B > A.length && (B = A.length), c = A.window;\n          } else\n            c = n, f = I - A.offset, B = A.length;\n          B > y && (B = y), y -= B, A.length -= B;\n          do\n            n[I++] = c[f++];\n          while (--B);\n          A.length === 0 && (A.mode = Ie);\n          break;\n        case Xt:\n          if (y === 0)\n            break A;\n          n[I++] = A.length, y--, A.mode = Ie;\n          break;\n        case ve:\n          if (A.wrap) {\n            for (; r < 32; ) {\n              if (s === 0)\n                break A;\n              s--, a |= i[o++] << r, r += 8;\n            }\n            if (E -= y, t.total_out += E, A.total += E, A.wrap & 4 && E && (t.adler = A.check = /*UPDATE_CHECK(state.check, put - _out, _out);*/\n            A.flags ? gA(A.check, n, E, I - E) : je(A.check, n, E, I - E)), E = y, A.wrap & 4 && (A.flags ? a : zt(a)) !== A.check) {\n              t.msg = \"incorrect data check\", A.mode = X;\n              break;\n            }\n            a = 0, r = 0;\n          }\n          A.mode = Wt;\n        case Wt:\n          if (A.wrap && A.flags) {\n            for (; r < 32; ) {\n              if (s === 0)\n                break A;\n              s--, a += i[o++] << r, r += 8;\n            }\n            if (A.wrap & 4 && a !== (A.total & 4294967295)) {\n              t.msg = \"incorrect length check\", A.mode = X;\n              break;\n            }\n            a = 0, r = 0;\n          }\n          A.mode = Zt;\n        case Zt:\n          m = aa;\n          break A;\n        case X:\n          m = Vi;\n          break A;\n        case Xi:\n          return ji;\n        case Wi:\n        default:\n          return iA;\n      }\n  return t.next_out = I, t.avail_out = y, t.next_in = o, t.avail_in = s, A.hold = a, A.bits = r, (A.wsize || E !== t.avail_out && A.mode < X && (A.mode < ve || e !== Gt)) && er(t, t.output, t.next_out, E - t.avail_out), g -= t.avail_in, E -= t.avail_out, t.total_in += g, t.total_out += E, A.total += E, A.wrap & 4 && E && (t.adler = A.check = /*UPDATE_CHECK(state.check, strm.next_out - _out, _out);*/\n  A.flags ? gA(A.check, n, E, t.next_out - E) : je(A.check, n, E, t.next_out - E)), t.data_type = A.bits + (A.last ? 64 : 0) + (A.mode === BA ? 128 : 0) + (A.mode === ge || A.mode === Re ? 256 : 0), (g === 0 && E === 0 || e === Gt) && m === FA && (m = ga), m;\n}, ha = (t) => {\n  if (SA(t))\n    return iA;\n  let e = t.state;\n  return e.window && (e.window = null), t.state = null, FA;\n}, ua = (t, e) => {\n  if (SA(t))\n    return iA;\n  const A = t.state;\n  return A.wrap & 2 ? (A.head = e, e.done = !1, FA) : iA;\n}, da = (t, e) => {\n  const A = e.length;\n  let i, n, o;\n  return SA(t) || (i = t.state, i.wrap !== 0 && i.mode !== Ce) ? iA : i.mode === Ce && (n = 1, n = je(n, e, A, 0), n !== i.check) ? Vi : (o = er(t, e, A, A), o ? (i.mode = Xi, ji) : (i.havedict = 1, FA));\n};\nvar wa = zi, ya = $i, Da = Zi, ma = Ca, pa = Ar, ka = Qa, Fa = ha, Sa = ua, Ga = da, xa = \"pako inflate (from Nodeca project)\", cA = {\n  inflateReset: wa,\n  inflateReset2: ya,\n  inflateResetKeep: Da,\n  inflateInit: ma,\n  inflateInit2: pa,\n  inflate: ka,\n  inflateEnd: Fa,\n  inflateGetHeader: Sa,\n  inflateSetDictionary: Ga,\n  inflateInfo: xa\n};\nfunction ba() {\n  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;\n}\nvar Ra = ba;\nconst tr = Object.prototype.toString, {\n  Z_NO_FLUSH: va,\n  Z_FINISH: Ua,\n  Z_OK: VA,\n  Z_STREAM_END: Me,\n  Z_NEED_DICT: Ne,\n  Z_STREAM_ERROR: La,\n  Z_DATA_ERROR: Ai,\n  Z_MEM_ERROR: Ma\n} = Hi;\nfunction de(t) {\n  this.options = Oi.assign({\n    chunkSize: 1024 * 64,\n    windowBits: 15,\n    to: \"\"\n  }, t || {});\n  const e = this.options;\n  e.raw && e.windowBits >= 0 && e.windowBits < 16 && (e.windowBits = -e.windowBits, e.windowBits === 0 && (e.windowBits = -15)), e.windowBits >= 0 && e.windowBits < 16 && !(t && t.windowBits) && (e.windowBits += 32), e.windowBits > 15 && e.windowBits < 48 && (e.windowBits & 15 || (e.windowBits |= 15)), this.err = 0, this.msg = \"\", this.ended = !1, this.chunks = [], this.strm = new Zo(), this.strm.avail_out = 0;\n  let A = cA.inflateInit2(\n    this.strm,\n    e.windowBits\n  );\n  if (A !== VA)\n    throw new Error(Xe[A]);\n  if (this.header = new Ra(), cA.inflateGetHeader(this.strm, this.header), e.dictionary && (typeof e.dictionary == \"string\" ? e.dictionary = We.string2buf(e.dictionary) : tr.call(e.dictionary) === \"[object ArrayBuffer]\" && (e.dictionary = new Uint8Array(e.dictionary)), e.raw && (A = cA.inflateSetDictionary(this.strm, e.dictionary), A !== VA)))\n    throw new Error(Xe[A]);\n}\nde.prototype.push = function(t, e) {\n  const A = this.strm, i = this.options.chunkSize, n = this.options.dictionary;\n  let o, I, s;\n  if (this.ended) return !1;\n  for (e === ~~e ? I = e : I = e === !0 ? Ua : va, tr.call(t) === \"[object ArrayBuffer]\" ? A.input = new Uint8Array(t) : A.input = t, A.next_in = 0, A.avail_in = A.input.length; ; ) {\n    for (A.avail_out === 0 && (A.output = new Uint8Array(i), A.next_out = 0, A.avail_out = i), o = cA.inflate(A, I), o === Ne && n && (o = cA.inflateSetDictionary(A, n), o === VA ? o = cA.inflate(A, I) : o === Ai && (o = Ne)); A.avail_in > 0 && o === Me && A.state.wrap > 0 && t[A.next_in] !== 0; )\n      cA.inflateReset(A), o = cA.inflate(A, I);\n    switch (o) {\n      case La:\n      case Ai:\n      case Ne:\n      case Ma:\n        return this.onEnd(o), this.ended = !0, !1;\n    }\n    if (s = A.avail_out, A.next_out && (A.avail_out === 0 || o === Me))\n      if (this.options.to === \"string\") {\n        let y = We.utf8border(A.output, A.next_out), a = A.next_out - y, r = We.buf2string(A.output, y);\n        A.next_out = a, A.avail_out = i - a, a && A.output.set(A.output.subarray(y, y + a), 0), this.onData(r);\n      } else\n        this.onData(A.output.length === A.next_out ? A.output : A.output.subarray(0, A.next_out));\n    if (!(o === VA && s === 0)) {\n      if (o === Me)\n        return o = cA.inflateEnd(this.strm), this.onEnd(o), this.ended = !0, !0;\n      if (A.avail_in === 0) break;\n    }\n  }\n  return !0;\n};\nde.prototype.onData = function(t) {\n  this.chunks.push(t);\n};\nde.prototype.onEnd = function(t) {\n  t === VA && (this.options.to === \"string\" ? this.result = this.chunks.join(\"\") : this.result = Oi.flattenChunks(this.chunks)), this.chunks = [], this.err = t, this.msg = this.strm.msg;\n};\nfunction Na(t, e) {\n  const A = new de(e);\n  if (A.push(t), A.err) throw A.msg || Xe[A.err];\n  return A.result;\n}\nvar Ta = Na, qa = {\n  inflate: Ta\n};\nconst { inflate: Ja } = qa;\nvar ir = Ja;\nclass Ya extends dA {\n  decodeBlock(e) {\n    return ir(new Uint8Array(e)).buffer;\n  }\n}\nconst Ha = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n  __proto__: null,\n  default: Ya\n}, Symbol.toStringTag, { value: \"Module\" }));\nclass Oa extends dA {\n  decodeBlock(e) {\n    const A = new DataView(e), i = [];\n    for (let n = 0; n < e.byteLength; ++n) {\n      let o = A.getInt8(n);\n      if (o < 0) {\n        const I = A.getUint8(n + 1);\n        o = -o;\n        for (let s = 0; s <= o; ++s)\n          i.push(I);\n        n += 1;\n      } else {\n        for (let I = 0; I <= o; ++I)\n          i.push(A.getUint8(n + I + 1));\n        n += o + 1;\n      }\n    }\n    return new Uint8Array(i).buffer;\n  }\n}\nconst Ka = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n  __proto__: null,\n  default: Oa\n}, Symbol.toStringTag, { value: \"Module\" }));\nvar rr = { exports: {} };\n(function(t) {\n  /* 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 */\n  (function() {\n    var e = function() {\n      var o = {};\n      o.defaultNoDataValue = -34027999387901484e22, o.decode = function(g, E) {\n        E = E || {};\n        var B = E.encodedMaskData || E.encodedMaskData === null, f = a(g, E.inputOffset || 0, B), c = E.noDataValue !== null ? E.noDataValue : o.defaultNoDataValue, l = I(\n          f,\n          E.pixelType || Float32Array,\n          E.encodedMaskData,\n          c,\n          E.returnMask\n        ), u = {\n          width: f.width,\n          height: f.height,\n          pixelData: l.resultPixels,\n          minValue: l.minValue,\n          maxValue: f.pixels.maxValue,\n          noDataValue: c\n        };\n        return l.resultMask && (u.maskData = l.resultMask), E.returnEncodedMask && f.mask && (u.encodedMaskData = f.mask.bitset ? f.mask.bitset : null), E.returnFileInfo && (u.fileInfo = s(f), E.computeUsedBitDepths && (u.fileInfo.bitDepths = y(f))), u;\n      };\n      var I = function(g, E, B, f, c) {\n        var l = 0, u = g.pixels.numBlocksX, h = g.pixels.numBlocksY, D = Math.floor(g.width / u), d = Math.floor(g.height / h), Q = 2 * g.maxZError, C = Number.MAX_VALUE, w;\n        B = B || (g.mask ? g.mask.bitset : null);\n        var m, F;\n        m = new E(g.width * g.height), c && B && (F = new Uint8Array(g.width * g.height));\n        for (var k = new Float32Array(D * d), p, x, b = 0; b <= h; b++) {\n          var M = b !== h ? d : g.height % h;\n          if (M !== 0)\n            for (var S = 0; S <= u; S++) {\n              var G = S !== u ? D : g.width % u;\n              if (G !== 0) {\n                var U = b * g.width * d + S * D, L = g.width - G, R = g.pixels.blocks[l], N, v, Y;\n                R.encoding < 2 ? (R.encoding === 0 ? N = R.rawData : (r(R.stuffedData, R.bitsPerPixel, R.numValidPixels, R.offset, Q, k, g.pixels.maxValue), N = k), v = 0) : R.encoding === 2 ? Y = 0 : Y = R.offset;\n                var _;\n                if (B)\n                  for (x = 0; x < M; x++) {\n                    for (U & 7 && (_ = B[U >> 3], _ <<= U & 7), p = 0; p < G; p++)\n                      U & 7 || (_ = B[U >> 3]), _ & 128 ? (F && (F[U] = 1), w = R.encoding < 2 ? N[v++] : Y, C = C > w ? w : C, m[U++] = w) : (F && (F[U] = 0), m[U++] = f), _ <<= 1;\n                    U += L;\n                  }\n                else if (R.encoding < 2)\n                  for (x = 0; x < M; x++) {\n                    for (p = 0; p < G; p++)\n                      w = N[v++], C = C > w ? w : C, m[U++] = w;\n                    U += L;\n                  }\n                else\n                  for (C = C > Y ? Y : C, x = 0; x < M; x++) {\n                    for (p = 0; p < G; p++)\n                      m[U++] = Y;\n                    U += L;\n                  }\n                if (R.encoding === 1 && v !== R.numValidPixels)\n                  throw \"Block and Mask do not match\";\n                l++;\n              }\n            }\n        }\n        return {\n          resultPixels: m,\n          resultMask: F,\n          minValue: C\n        };\n      }, s = function(g) {\n        return {\n          fileIdentifierString: g.fileIdentifierString,\n          fileVersion: g.fileVersion,\n          imageType: g.imageType,\n          height: g.height,\n          width: g.width,\n          maxZError: g.maxZError,\n          eofOffset: g.eofOffset,\n          mask: g.mask ? {\n            numBlocksX: g.mask.numBlocksX,\n            numBlocksY: g.mask.numBlocksY,\n            numBytes: g.mask.numBytes,\n            maxValue: g.mask.maxValue\n          } : null,\n          pixels: {\n            numBlocksX: g.pixels.numBlocksX,\n            numBlocksY: g.pixels.numBlocksY,\n            numBytes: g.pixels.numBytes,\n            maxValue: g.pixels.maxValue,\n            noDataValue: g.noDataValue\n          }\n        };\n      }, y = function(g) {\n        for (var E = g.pixels.numBlocksX * g.pixels.numBlocksY, B = {}, f = 0; f < E; f++) {\n          var c = g.pixels.blocks[f];\n          c.encoding === 0 ? B.float32 = !0 : c.encoding === 1 ? B[c.bitsPerPixel] = !0 : B[0] = !0;\n        }\n        return Object.keys(B);\n      }, a = function(g, E, B) {\n        var f = {}, c = new Uint8Array(g, E, 10);\n        if (f.fileIdentifierString = String.fromCharCode.apply(null, c), f.fileIdentifierString.trim() !== \"CntZImage\")\n          throw \"Unexpected file identifier string: \" + f.fileIdentifierString;\n        E += 10;\n        var l = new DataView(g, E, 24);\n        if (f.fileVersion = l.getInt32(0, !0), f.imageType = l.getInt32(4, !0), f.height = l.getUint32(8, !0), f.width = l.getUint32(12, !0), f.maxZError = l.getFloat64(16, !0), E += 24, !B)\n          if (l = new DataView(g, E, 16), f.mask = {}, f.mask.numBlocksY = l.getUint32(0, !0), f.mask.numBlocksX = l.getUint32(4, !0), f.mask.numBytes = l.getUint32(8, !0), f.mask.maxValue = l.getFloat32(12, !0), E += 16, f.mask.numBytes > 0) {\n            var u = new Uint8Array(Math.ceil(f.width * f.height / 8));\n            l = new DataView(g, E, f.mask.numBytes);\n            var h = l.getInt16(0, !0), D = 2, d = 0;\n            do {\n              if (h > 0)\n                for (; h--; )\n                  u[d++] = l.getUint8(D++);\n              else {\n                var Q = l.getUint8(D++);\n                for (h = -h; h--; )\n                  u[d++] = Q;\n              }\n              h = l.getInt16(D, !0), D += 2;\n            } while (D < f.mask.numBytes);\n            if (h !== -32768 || d < u.length)\n              throw \"Unexpected end of mask RLE encoding\";\n            f.mask.bitset = u, E += f.mask.numBytes;\n          } else f.mask.numBytes | f.mask.numBlocksY | f.mask.maxValue || (f.mask.bitset = new Uint8Array(Math.ceil(f.width * f.height / 8)));\n        l = new DataView(g, E, 16), f.pixels = {}, f.pixels.numBlocksY = l.getUint32(0, !0), f.pixels.numBlocksX = l.getUint32(4, !0), f.pixels.numBytes = l.getUint32(8, !0), f.pixels.maxValue = l.getFloat32(12, !0), E += 16;\n        var C = f.pixels.numBlocksX, w = f.pixels.numBlocksY, m = C + (f.width % C > 0 ? 1 : 0), F = w + (f.height % w > 0 ? 1 : 0);\n        f.pixels.blocks = new Array(m * F);\n        for (var k = 0, p = 0; p < F; p++)\n          for (var x = 0; x < m; x++) {\n            var b = 0, M = g.byteLength - E;\n            l = new DataView(g, E, Math.min(10, M));\n            var S = {};\n            f.pixels.blocks[k++] = S;\n            var G = l.getUint8(0);\n            if (b++, S.encoding = G & 63, S.encoding > 3)\n              throw \"Invalid block encoding (\" + S.encoding + \")\";\n            if (S.encoding === 2) {\n              E++;\n              continue;\n            }\n            if (G !== 0 && G !== 2) {\n              if (G >>= 6, S.offsetType = G, G === 2)\n                S.offset = l.getInt8(1), b++;\n              else if (G === 1)\n                S.offset = l.getInt16(1, !0), b += 2;\n              else if (G === 0)\n                S.offset = l.getFloat32(1, !0), b += 4;\n              else\n                throw \"Invalid block offset type\";\n              if (S.encoding === 1)\n                if (G = l.getUint8(b), b++, S.bitsPerPixel = G & 63, G >>= 6, S.numValidPixelsType = G, G === 2)\n                  S.numValidPixels = l.getUint8(b), b++;\n                else if (G === 1)\n                  S.numValidPixels = l.getUint16(b, !0), b += 2;\n                else if (G === 0)\n                  S.numValidPixels = l.getUint32(b, !0), b += 4;\n                else\n                  throw \"Invalid valid pixel count type\";\n            }\n            if (E += b, S.encoding !== 3) {\n              var U, L;\n              if (S.encoding === 0) {\n                var R = (f.pixels.numBytes - 1) / 4;\n                if (R !== Math.floor(R))\n                  throw \"uncompressed block has invalid length\";\n                U = new ArrayBuffer(R * 4), L = new Uint8Array(U), L.set(new Uint8Array(g, E, R * 4));\n                var N = new Float32Array(U);\n                S.rawData = N, E += R * 4;\n              } else if (S.encoding === 1) {\n                var v = Math.ceil(S.numValidPixels * S.bitsPerPixel / 8), Y = Math.ceil(v / 4);\n                U = new ArrayBuffer(Y * 4), L = new Uint8Array(U), L.set(new Uint8Array(g, E, v)), S.stuffedData = new Uint32Array(U), E += v;\n              }\n            }\n          }\n        return f.eofOffset = E, f;\n      }, r = function(g, E, B, f, c, l, u) {\n        var h = (1 << E) - 1, D = 0, d, Q = 0, C, w, m = Math.ceil((u - f) / c), F = g.length * 4 - Math.ceil(E * B / 8);\n        for (g[g.length - 1] <<= 8 * F, d = 0; d < B; d++) {\n          if (Q === 0 && (w = g[D++], Q = 32), Q >= E)\n            C = w >>> Q - E & h, Q -= E;\n          else {\n            var k = E - Q;\n            C = (w & h) << k & h, w = g[D++], Q = 32 - k, C += w >>> Q;\n          }\n          l[d] = C < m ? f + C * c : u;\n        }\n        return l;\n      };\n      return o;\n    }(), A = /* @__PURE__ */ function() {\n      var o = {\n        //methods ending with 2 are for the new byte order used by Lerc2.3 and above.\n        //originalUnstuff is used to unpack Huffman code table. code is duplicated to unstuffx for performance reasons.\n        unstuff: function(a, r, g, E, B, f, c, l) {\n          var u = (1 << g) - 1, h = 0, D, d = 0, Q, C, w, m, F = a.length * 4 - Math.ceil(g * E / 8);\n          if (a[a.length - 1] <<= 8 * F, B)\n            for (D = 0; D < E; D++)\n              d === 0 && (C = a[h++], d = 32), d >= g ? (Q = C >>> d - g & u, d -= g) : (w = g - d, Q = (C & u) << w & u, C = a[h++], d = 32 - w, Q += C >>> d), r[D] = B[Q];\n          else\n            for (m = Math.ceil((l - f) / c), D = 0; D < E; D++)\n              d === 0 && (C = a[h++], d = 32), d >= g ? (Q = C >>> d - g & u, d -= g) : (w = g - d, Q = (C & u) << w & u, C = a[h++], d = 32 - w, Q += C >>> d), r[D] = Q < m ? f + Q * c : l;\n        },\n        unstuffLUT: function(a, r, g, E, B, f) {\n          var c = (1 << r) - 1, l = 0, u = 0, h = 0, D = 0, d = 0, Q, C = [], w = a.length * 4 - Math.ceil(r * g / 8);\n          a[a.length - 1] <<= 8 * w;\n          var m = Math.ceil((f - E) / B);\n          for (u = 0; u < g; u++)\n            D === 0 && (Q = a[l++], D = 32), D >= r ? (d = Q >>> D - r & c, D -= r) : (h = r - D, d = (Q & c) << h & c, Q = a[l++], D = 32 - h, d += Q >>> D), C[u] = d < m ? E + d * B : f;\n          return C.unshift(E), C;\n        },\n        unstuff2: function(a, r, g, E, B, f, c, l) {\n          var u = (1 << g) - 1, h = 0, D, d = 0, Q = 0, C, w, m;\n          if (B)\n            for (D = 0; D < E; D++)\n              d === 0 && (w = a[h++], d = 32, Q = 0), d >= g ? (C = w >>> Q & u, d -= g, Q += g) : (m = g - d, C = w >>> Q & u, w = a[h++], d = 32 - m, C |= (w & (1 << m) - 1) << g - m, Q = m), r[D] = B[C];\n          else {\n            var F = Math.ceil((l - f) / c);\n            for (D = 0; D < E; D++)\n              d === 0 && (w = a[h++], d = 32, Q = 0), d >= g ? (C = w >>> Q & u, d -= g, Q += g) : (m = g - d, C = w >>> Q & u, w = a[h++], d = 32 - m, C |= (w & (1 << m) - 1) << g - m, Q = m), r[D] = C < F ? f + C * c : l;\n          }\n          return r;\n        },\n        unstuffLUT2: function(a, r, g, E, B, f) {\n          var c = (1 << r) - 1, l = 0, u = 0, h = 0, D = 0, d = 0, Q = 0, C, w = [], m = Math.ceil((f - E) / B);\n          for (u = 0; u < g; u++)\n            D === 0 && (C = a[l++], D = 32, Q = 0), D >= r ? (d = C >>> Q & c, D -= r, Q += r) : (h = r - D, d = C >>> Q & c, C = a[l++], D = 32 - h, d |= (C & (1 << h) - 1) << r - h, Q = h), w[u] = d < m ? E + d * B : f;\n          return w.unshift(E), w;\n        },\n        originalUnstuff: function(a, r, g, E) {\n          var B = (1 << g) - 1, f = 0, c, l = 0, u, h, D, d = a.length * 4 - Math.ceil(g * E / 8);\n          for (a[a.length - 1] <<= 8 * d, c = 0; c < E; c++)\n            l === 0 && (h = a[f++], l = 32), l >= g ? (u = h >>> l - g & B, l -= g) : (D = g - l, u = (h & B) << D & B, h = a[f++], l = 32 - D, u += h >>> l), r[c] = u;\n          return r;\n        },\n        originalUnstuff2: function(a, r, g, E) {\n          var B = (1 << g) - 1, f = 0, c, l = 0, u = 0, h, D, d;\n          for (c = 0; c < E; c++)\n            l === 0 && (D = a[f++], l = 32, u = 0), l >= g ? (h = D >>> u & B, l -= g, u += g) : (d = g - l, h = D >>> u & B, D = a[f++], l = 32 - d, h |= (D & (1 << d) - 1) << g - d, u = d), r[c] = h;\n          return r;\n        }\n      }, I = {\n        HUFFMAN_LUT_BITS_MAX: 12,\n        //use 2^12 lut, treat it like constant\n        computeChecksumFletcher32: function(a) {\n          for (var r = 65535, g = 65535, E = a.length, B = Math.floor(E / 2), f = 0; B; ) {\n            var c = B >= 359 ? 359 : B;\n            B -= c;\n            do\n              r += a[f++] << 8, g += r += a[f++];\n            while (--c);\n            r = (r & 65535) + (r >>> 16), g = (g & 65535) + (g >>> 16);\n          }\n          return E & 1 && (g += r += a[f] << 8), r = (r & 65535) + (r >>> 16), g = (g & 65535) + (g >>> 16), (g << 16 | r) >>> 0;\n        },\n        readHeaderInfo: function(a, r) {\n          var g = r.ptr, E = new Uint8Array(a, g, 6), B = {};\n          if (B.fileIdentifierString = String.fromCharCode.apply(null, E), B.fileIdentifierString.lastIndexOf(\"Lerc2\", 0) !== 0)\n            throw \"Unexpected file identifier string (expect Lerc2 ): \" + B.fileIdentifierString;\n          g += 6;\n          var f = new DataView(a, g, 8), c = f.getInt32(0, !0);\n          B.fileVersion = c, g += 4, c >= 3 && (B.checksum = f.getUint32(4, !0), g += 4), f = new DataView(a, g, 12), B.height = f.getUint32(0, !0), B.width = f.getUint32(4, !0), g += 8, c >= 4 ? (B.numDims = f.getUint32(8, !0), g += 4) : B.numDims = 1, f = new DataView(a, g, 40), B.numValidPixel = f.getUint32(0, !0), B.microBlockSize = f.getInt32(4, !0), B.blobSize = f.getInt32(8, !0), B.imageType = f.getInt32(12, !0), B.maxZError = f.getFloat64(16, !0), B.zMin = f.getFloat64(24, !0), B.zMax = f.getFloat64(32, !0), g += 40, r.headerInfo = B, r.ptr = g;\n          var l, u;\n          if (c >= 3 && (u = c >= 4 ? 52 : 48, l = this.computeChecksumFletcher32(new Uint8Array(a, g - u, B.blobSize - 14)), l !== B.checksum))\n            throw \"Checksum failed.\";\n          return !0;\n        },\n        checkMinMaxRanges: function(a, r) {\n          var g = r.headerInfo, E = this.getDataTypeArray(g.imageType), B = g.numDims * this.getDataTypeSize(g.imageType), f = this.readSubArray(a, r.ptr, E, B), c = this.readSubArray(a, r.ptr + B, E, B);\n          r.ptr += 2 * B;\n          var l, u = !0;\n          for (l = 0; l < g.numDims; l++)\n            if (f[l] !== c[l]) {\n              u = !1;\n              break;\n            }\n          return g.minValues = f, g.maxValues = c, u;\n        },\n        readSubArray: function(a, r, g, E) {\n          var B;\n          if (g === Uint8Array)\n            B = new Uint8Array(a, r, E);\n          else {\n            var f = new ArrayBuffer(E), c = new Uint8Array(f);\n            c.set(new Uint8Array(a, r, E)), B = new g(f);\n          }\n          return B;\n        },\n        readMask: function(a, r) {\n          var g = r.ptr, E = r.headerInfo, B = E.width * E.height, f = E.numValidPixel, c = new DataView(a, g, 4), l = {};\n          if (l.numBytes = c.getUint32(0, !0), g += 4, (f === 0 || B === f) && l.numBytes !== 0)\n            throw \"invalid mask\";\n          var u, h;\n          if (f === 0)\n            u = new Uint8Array(Math.ceil(B / 8)), l.bitset = u, h = new Uint8Array(B), r.pixels.resultMask = h, g += l.numBytes;\n          else if (l.numBytes > 0) {\n            u = new Uint8Array(Math.ceil(B / 8)), c = new DataView(a, g, l.numBytes);\n            var D = c.getInt16(0, !0), d = 2, Q = 0, C = 0;\n            do {\n              if (D > 0)\n                for (; D--; )\n                  u[Q++] = c.getUint8(d++);\n              else\n                for (C = c.getUint8(d++), D = -D; D--; )\n                  u[Q++] = C;\n              D = c.getInt16(d, !0), d += 2;\n            } while (d < l.numBytes);\n            if (D !== -32768 || Q < u.length)\n              throw \"Unexpected end of mask RLE encoding\";\n            h = new Uint8Array(B);\n            var w = 0, m = 0;\n            for (m = 0; m < B; m++)\n              m & 7 ? (w = u[m >> 3], w <<= m & 7) : w = u[m >> 3], w & 128 && (h[m] = 1);\n            r.pixels.resultMask = h, l.bitset = u, g += l.numBytes;\n          }\n          return r.ptr = g, r.mask = l, !0;\n        },\n        readDataOneSweep: function(a, r, g, E) {\n          var B = r.ptr, f = r.headerInfo, c = f.numDims, l = f.width * f.height, u = f.imageType, h = f.numValidPixel * I.getDataTypeSize(u) * c, D, d = r.pixels.resultMask;\n          if (g === Uint8Array)\n            D = new Uint8Array(a, B, h);\n          else {\n            var Q = new ArrayBuffer(h), C = new Uint8Array(Q);\n            C.set(new Uint8Array(a, B, h)), D = new g(Q);\n          }\n          if (D.length === l * c)\n            E ? r.pixels.resultPixels = I.swapDimensionOrder(D, l, c, g, !0) : r.pixels.resultPixels = D;\n          else {\n            r.pixels.resultPixels = new g(l * c);\n            var w = 0, m = 0, F = 0, k = 0;\n            if (c > 1) {\n              if (E) {\n                for (m = 0; m < l; m++)\n                  if (d[m])\n                    for (k = m, F = 0; F < c; F++, k += l)\n                      r.pixels.resultPixels[k] = D[w++];\n              } else\n                for (m = 0; m < l; m++)\n                  if (d[m])\n                    for (k = m * c, F = 0; F < c; F++)\n                      r.pixels.resultPixels[k + F] = D[w++];\n            } else\n              for (m = 0; m < l; m++)\n                d[m] && (r.pixels.resultPixels[m] = D[w++]);\n          }\n          return B += h, r.ptr = B, !0;\n        },\n        readHuffmanTree: function(a, r) {\n          var g = this.HUFFMAN_LUT_BITS_MAX, E = new DataView(a, r.ptr, 16);\n          r.ptr += 16;\n          var B = E.getInt32(0, !0);\n          if (B < 2)\n            throw \"unsupported Huffman version\";\n          var f = E.getInt32(4, !0), c = E.getInt32(8, !0), l = E.getInt32(12, !0);\n          if (c >= l)\n            return !1;\n          var u = new Uint32Array(l - c);\n          I.decodeBits(a, r, u);\n          var h = [], D, d, Q, C;\n          for (D = c; D < l; D++)\n            d = D - (D < f ? 0 : f), h[d] = { first: u[D - c], second: null };\n          var w = a.byteLength - r.ptr, m = Math.ceil(w / 4), F = new ArrayBuffer(m * 4), k = new Uint8Array(F);\n          k.set(new Uint8Array(a, r.ptr, w));\n          var p = new Uint32Array(F), x = 0, b, M = 0;\n          for (b = p[0], D = c; D < l; D++)\n            d = D - (D < f ? 0 : f), C = h[d].first, C > 0 && (h[d].second = b << x >>> 32 - C, 32 - x >= C ? (x += C, x === 32 && (x = 0, M++, b = p[M])) : (x += C - 32, M++, b = p[M], h[d].second |= b >>> 32 - x));\n          var S = 0, G = 0, U = new s();\n          for (D = 0; D < h.length; D++)\n            h[D] !== void 0 && (S = Math.max(S, h[D].first));\n          S >= g ? G = g : G = S;\n          var L = [], R, N, v, Y, _, q;\n          for (D = c; D < l; D++)\n            if (d = D - (D < f ? 0 : f), C = h[d].first, C > 0)\n              if (R = [C, d], C <= G)\n                for (N = h[d].second << G - C, v = 1 << G - C, Q = 0; Q < v; Q++)\n                  L[N | Q] = R;\n              else\n                for (N = h[d].second, q = U, Y = C - 1; Y >= 0; Y--)\n                  _ = N >>> Y & 1, _ ? (q.right || (q.right = new s()), q = q.right) : (q.left || (q.left = new s()), q = q.left), Y === 0 && !q.val && (q.val = R[1]);\n          return {\n            decodeLut: L,\n            numBitsLUTQick: G,\n            numBitsLUT: S,\n            tree: U,\n            stuffedData: p,\n            srcPtr: M,\n            bitPos: x\n          };\n        },\n        readHuffman: function(a, r, g, E) {\n          var B = r.headerInfo, f = B.numDims, c = r.headerInfo.height, l = r.headerInfo.width, u = l * c, h = this.readHuffmanTree(a, r), D = h.decodeLut, d = h.tree, Q = h.stuffedData, C = h.srcPtr, w = h.bitPos, m = h.numBitsLUTQick, F = h.numBitsLUT, k = r.headerInfo.imageType === 0 ? 128 : 0, p, x, b, M = r.pixels.resultMask, S, G, U, L, R, N, v, Y = 0;\n          w > 0 && (C++, w = 0);\n          var _ = Q[C], q = r.encodeMode === 1, T = new g(u * f), O = T, J;\n          if (f < 2 || q) {\n            for (J = 0; J < f; J++)\n              if (f > 1 && (O = new g(T.buffer, u * J, u), Y = 0), r.headerInfo.numValidPixel === l * c)\n                for (N = 0, L = 0; L < c; L++)\n                  for (R = 0; R < l; R++, N++) {\n                    if (x = 0, S = _ << w >>> 32 - m, G = S, 32 - w < m && (S |= Q[C + 1] >>> 64 - w - m, G = S), D[G])\n                      x = D[G][1], w += D[G][0];\n                    else\n                      for (S = _ << w >>> 32 - F, G = S, 32 - w < F && (S |= Q[C + 1] >>> 64 - w - F, G = S), p = d, v = 0; v < F; v++)\n                        if (U = S >>> F - v - 1 & 1, p = U ? p.right : p.left, !(p.left || p.right)) {\n                          x = p.val, w = w + v + 1;\n                          break;\n                        }\n                    w >= 32 && (w -= 32, C++, _ = Q[C]), b = x - k, q ? (R > 0 ? b += Y : L > 0 ? b += O[N - l] : b += Y, b &= 255, O[N] = b, Y = b) : O[N] = b;\n                  }\n              else\n                for (N = 0, L = 0; L < c; L++)\n                  for (R = 0; R < l; R++, N++)\n                    if (M[N]) {\n                      if (x = 0, S = _ << w >>> 32 - m, G = S, 32 - w < m && (S |= Q[C + 1] >>> 64 - w - m, G = S), D[G])\n                        x = D[G][1], w += D[G][0];\n                      else\n                        for (S = _ << w >>> 32 - F, G = S, 32 - w < F && (S |= Q[C + 1] >>> 64 - w - F, G = S), p = d, v = 0; v < F; v++)\n                          if (U = S >>> F - v - 1 & 1, p = U ? p.right : p.left, !(p.left || p.right)) {\n                            x = p.val, w = w + v + 1;\n                            break;\n                          }\n                      w >= 32 && (w -= 32, C++, _ = Q[C]), b = x - k, q ? (R > 0 && M[N - 1] ? b += Y : L > 0 && M[N - l] ? b += O[N - l] : b += Y, b &= 255, O[N] = b, Y = b) : O[N] = b;\n                    }\n          } else\n            for (N = 0, L = 0; L < c; L++)\n              for (R = 0; R < l; R++)\n                if (N = L * l + R, !M || M[N])\n                  for (J = 0; J < f; J++, N += u) {\n                    if (x = 0, S = _ << w >>> 32 - m, G = S, 32 - w < m && (S |= Q[C + 1] >>> 64 - w - m, G = S), D[G])\n                      x = D[G][1], w += D[G][0];\n                    else\n                      for (S = _ << w >>> 32 - F, G = S, 32 - w < F && (S |= Q[C + 1] >>> 64 - w - F, G = S), p = d, v = 0; v < F; v++)\n                        if (U = S >>> F - v - 1 & 1, p = U ? p.right : p.left, !(p.left || p.right)) {\n                          x = p.val, w = w + v + 1;\n                          break;\n                        }\n                    w >= 32 && (w -= 32, C++, _ = Q[C]), b = x - k, O[N] = b;\n                  }\n          r.ptr = r.ptr + (C + 1) * 4 + (w > 0 ? 4 : 0), r.pixels.resultPixels = T, f > 1 && !E && (r.pixels.resultPixels = I.swapDimensionOrder(T, u, f, g));\n        },\n        decodeBits: function(a, r, g, E, B) {\n          {\n            var f = r.headerInfo, c = f.fileVersion, l = 0, u = a.byteLength - r.ptr >= 5 ? 5 : a.byteLength - r.ptr, h = new DataView(a, r.ptr, u), D = h.getUint8(0);\n            l++;\n            var d = D >> 6, Q = d === 0 ? 4 : 3 - d, C = (D & 32) > 0, w = D & 31, m = 0;\n            if (Q === 1)\n              m = h.getUint8(l), l++;\n            else if (Q === 2)\n              m = h.getUint16(l, !0), l += 2;\n            else if (Q === 4)\n              m = h.getUint32(l, !0), l += 4;\n            else\n              throw \"Invalid valid pixel count type\";\n            var F = 2 * f.maxZError, k, p, x, b, M, S, G, U, L, R = f.numDims > 1 ? f.maxValues[B] : f.zMax;\n            if (C) {\n              for (r.counter.lut++, U = h.getUint8(l), l++, b = Math.ceil((U - 1) * w / 8), M = Math.ceil(b / 4), p = new ArrayBuffer(M * 4), x = new Uint8Array(p), r.ptr += l, x.set(new Uint8Array(a, r.ptr, b)), G = new Uint32Array(p), r.ptr += b, L = 0; U - 1 >>> L; )\n                L++;\n              b = Math.ceil(m * L / 8), M = Math.ceil(b / 4), p = new ArrayBuffer(M * 4), x = new Uint8Array(p), x.set(new Uint8Array(a, r.ptr, b)), k = new Uint32Array(p), r.ptr += b, c >= 3 ? S = o.unstuffLUT2(G, w, U - 1, E, F, R) : S = o.unstuffLUT(G, w, U - 1, E, F, R), c >= 3 ? o.unstuff2(k, g, L, m, S) : o.unstuff(k, g, L, m, S);\n            } else\n              r.counter.bitstuffer++, L = w, r.ptr += l, L > 0 && (b = Math.ceil(m * L / 8), M = Math.ceil(b / 4), p = new ArrayBuffer(M * 4), x = new Uint8Array(p), x.set(new Uint8Array(a, r.ptr, b)), k = new Uint32Array(p), r.ptr += b, c >= 3 ? E == null ? o.originalUnstuff2(k, g, L, m) : o.unstuff2(k, g, L, m, !1, E, F, R) : E == null ? o.originalUnstuff(k, g, L, m) : o.unstuff(k, g, L, m, !1, E, F, R));\n          }\n        },\n        readTiles: function(a, r, g, E) {\n          var B = r.headerInfo, f = B.width, c = B.height, l = f * c, u = B.microBlockSize, h = B.imageType, D = I.getDataTypeSize(h), d = Math.ceil(f / u), Q = Math.ceil(c / u);\n          r.pixels.numBlocksY = Q, r.pixels.numBlocksX = d, r.pixels.ptr = 0;\n          var C = 0, w = 0, m = 0, F = 0, k = 0, p = 0, x = 0, b = 0, M = 0, S = 0, G = 0, U = 0, L = 0, R = 0, N = 0, v = 0, Y, _, q, T, O, J, H = new g(u * u), P = c % u || u, j = f % u || u, V, W, EA = B.numDims, wA, oA = r.pixels.resultMask, tA = r.pixels.resultPixels, or = B.fileVersion, ct = or >= 5 ? 14 : 15, QA, we = B.zMax, hA;\n          for (m = 0; m < Q; m++)\n            for (k = m !== Q - 1 ? u : P, F = 0; F < d; F++)\n              for (p = F !== d - 1 ? u : j, G = m * f * u + F * u, U = f - p, wA = 0; wA < EA; wA++) {\n                if (EA > 1 ? (hA = tA, G = m * f * u + F * u, tA = new g(r.pixels.resultPixels.buffer, l * wA * D, l), we = B.maxValues[wA]) : hA = null, x = a.byteLength - r.ptr, Y = new DataView(a, r.ptr, Math.min(10, x)), _ = {}, v = 0, b = Y.getUint8(0), v++, QA = B.fileVersion >= 5 ? b & 4 : 0, M = b >> 6 & 255, S = b >> 2 & ct, S !== (F * u >> 3 & ct) || QA && wA === 0)\n                  throw \"integrity issue\";\n                if (J = b & 3, J > 3)\n                  throw r.ptr += v, \"Invalid block encoding (\" + J + \")\";\n                if (J === 2) {\n                  if (QA)\n                    if (oA)\n                      for (C = 0; C < k; C++)\n                        for (w = 0; w < p; w++)\n                          oA[G] && (tA[G] = hA[G]), G++;\n                    else\n                      for (C = 0; C < k; C++)\n                        for (w = 0; w < p; w++)\n                          tA[G] = hA[G], G++;\n                  r.counter.constant++, r.ptr += v;\n                  continue;\n                } else if (J === 0) {\n                  if (QA)\n                    throw \"integrity issue\";\n                  if (r.counter.uncompressed++, r.ptr += v, L = k * p * D, R = a.byteLength - r.ptr, L = L < R ? L : R, q = new ArrayBuffer(L % D === 0 ? L : L + D - L % D), T = new Uint8Array(q), T.set(new Uint8Array(a, r.ptr, L)), O = new g(q), N = 0, oA)\n                    for (C = 0; C < k; C++) {\n                      for (w = 0; w < p; w++)\n                        oA[G] && (tA[G] = O[N++]), G++;\n                      G += U;\n                    }\n                  else\n                    for (C = 0; C < k; C++) {\n                      for (w = 0; w < p; w++)\n                        tA[G++] = O[N++];\n                      G += U;\n                    }\n                  r.ptr += N * D;\n                } else if (V = I.getDataTypeUsed(QA && h < 6 ? 4 : h, M), W = I.getOnePixel(_, v, V, Y), v += I.getDataTypeSize(V), J === 3)\n                  if (r.ptr += v, r.counter.constantoffset++, oA)\n                    for (C = 0; C < k; C++) {\n                      for (w = 0; w < p; w++)\n                        oA[G] && (tA[G] = QA ? Math.min(we, hA[G] + W) : W), G++;\n                      G += U;\n                    }\n                  else\n                    for (C = 0; C < k; C++) {\n                      for (w = 0; w < p; w++)\n                        tA[G] = QA ? Math.min(we, hA[G] + W) : W, G++;\n                      G += U;\n                    }\n                else if (r.ptr += v, I.decodeBits(a, r, H, W, wA), v = 0, QA)\n                  if (oA)\n                    for (C = 0; C < k; C++) {\n                      for (w = 0; w < p; w++)\n                        oA[G] && (tA[G] = H[v++] + hA[G]), G++;\n                      G += U;\n                    }\n                  else\n                    for (C = 0; C < k; C++) {\n                      for (w = 0; w < p; w++)\n                        tA[G] = H[v++] + hA[G], G++;\n                      G += U;\n                    }\n                else if (oA)\n                  for (C = 0; C < k; C++) {\n                    for (w = 0; w < p; w++)\n                      oA[G] && (tA[G] = H[v++]), G++;\n                    G += U;\n                  }\n                else\n                  for (C = 0; C < k; C++) {\n                    for (w = 0; w < p; w++)\n                      tA[G++] = H[v++];\n                    G += U;\n                  }\n              }\n          EA > 1 && !E && (r.pixels.resultPixels = I.swapDimensionOrder(r.pixels.resultPixels, l, EA, g));\n        },\n        /*****************\n        *  private methods (helper methods)\n        *****************/\n        formatFileInfo: function(a) {\n          return {\n            fileIdentifierString: a.headerInfo.fileIdentifierString,\n            fileVersion: a.headerInfo.fileVersion,\n            imageType: a.headerInfo.imageType,\n            height: a.headerInfo.height,\n            width: a.headerInfo.width,\n            numValidPixel: a.headerInfo.numValidPixel,\n            microBlockSize: a.headerInfo.microBlockSize,\n            blobSize: a.headerInfo.blobSize,\n            maxZError: a.headerInfo.maxZError,\n            pixelType: I.getPixelType(a.headerInfo.imageType),\n            eofOffset: a.eofOffset,\n            mask: a.mask ? {\n              numBytes: a.mask.numBytes\n            } : null,\n            pixels: {\n              numBlocksX: a.pixels.numBlocksX,\n              numBlocksY: a.pixels.numBlocksY,\n              //\"numBytes\": data.pixels.numBytes,\n              maxValue: a.headerInfo.zMax,\n              minValue: a.headerInfo.zMin,\n              noDataValue: a.noDataValue\n            }\n          };\n        },\n        constructConstantSurface: function(a, r) {\n          var g = a.headerInfo.zMax, E = a.headerInfo.zMin, B = a.headerInfo.maxValues, f = a.headerInfo.numDims, c = a.headerInfo.height * a.headerInfo.width, l = 0, u = 0, h = 0, D = a.pixels.resultMask, d = a.pixels.resultPixels;\n          if (D)\n            if (f > 1) {\n              if (r)\n                for (l = 0; l < f; l++)\n                  for (h = l * c, g = B[l], u = 0; u < c; u++)\n                    D[u] && (d[h + u] = g);\n              else\n                for (u = 0; u < c; u++)\n                  if (D[u])\n                    for (h = u * f, l = 0; l < f; l++)\n                      d[h + f] = B[l];\n            } else\n              for (u = 0; u < c; u++)\n                D[u] && (d[u] = g);\n          else if (f > 1 && E !== g)\n            if (r)\n              for (l = 0; l < f; l++)\n                for (h = l * c, g = B[l], u = 0; u < c; u++)\n                  d[h + u] = g;\n            else\n              for (u = 0; u < c; u++)\n                for (h = u * f, l = 0; l < f; l++)\n                  d[h + l] = B[l];\n          else\n            for (u = 0; u < c * f; u++)\n              d[u] = g;\n        },\n        getDataTypeArray: function(a) {\n          var r;\n          switch (a) {\n            case 0:\n              r = Int8Array;\n              break;\n            case 1:\n              r = Uint8Array;\n              break;\n            case 2:\n              r = Int16Array;\n              break;\n            case 3:\n              r = Uint16Array;\n              break;\n            case 4:\n              r = Int32Array;\n              break;\n            case 5:\n              r = Uint32Array;\n              break;\n            case 6:\n              r = Float32Array;\n              break;\n            case 7:\n              r = Float64Array;\n              break;\n            default:\n              r = Float32Array;\n          }\n          return r;\n        },\n        getPixelType: function(a) {\n          var r;\n          switch (a) {\n            case 0:\n              r = \"S8\";\n              break;\n            case 1:\n              r = \"U8\";\n              break;\n            case 2:\n              r = \"S16\";\n              break;\n            case 3:\n              r = \"U16\";\n              break;\n            case 4:\n              r = \"S32\";\n              break;\n            case 5:\n              r = \"U32\";\n              break;\n            case 6:\n              r = \"F32\";\n              break;\n            case 7:\n              r = \"F64\";\n              break;\n            default:\n              r = \"F32\";\n          }\n          return r;\n        },\n        isValidPixelValue: function(a, r) {\n          if (r == null)\n            return !1;\n          var g;\n          switch (a) {\n            case 0:\n              g = r >= -128 && r <= 127;\n              break;\n            case 1:\n              g = r >= 0 && r <= 255;\n              break;\n            case 2:\n              g = r >= -32768 && r <= 32767;\n              break;\n            case 3:\n              g = r >= 0 && r <= 65536;\n              break;\n            case 4:\n              g = r >= -2147483648 && r <= 2147483647;\n              break;\n            case 5:\n              g = r >= 0 && r <= 4294967296;\n              break;\n            case 6:\n              g = r >= -34027999387901484e22 && r <= 34027999387901484e22;\n              break;\n            case 7:\n              g = r >= -17976931348623157e292 && r <= 17976931348623157e292;\n              break;\n            default:\n              g = !1;\n          }\n          return g;\n        },\n        getDataTypeSize: function(a) {\n          var r = 0;\n          switch (a) {\n            case 0:\n            case 1:\n              r = 1;\n              break;\n            case 2:\n            case 3:\n              r = 2;\n              break;\n            case 4:\n            case 5:\n            case 6:\n              r = 4;\n              break;\n            case 7:\n              r = 8;\n              break;\n            default:\n              r = a;\n          }\n          return r;\n        },\n        getDataTypeUsed: function(a, r) {\n          var g = a;\n          switch (a) {\n            case 2:\n            case 4:\n              g = a - r;\n              break;\n            case 3:\n            case 5:\n              g = a - 2 * r;\n              break;\n            case 6:\n              r === 0 ? g = a : r === 1 ? g = 2 : g = 1;\n              break;\n            case 7:\n              r === 0 ? g = a : g = a - 2 * r + 1;\n              break;\n            default:\n              g = a;\n              break;\n          }\n          return g;\n        },\n        getOnePixel: function(a, r, g, E) {\n          var B = 0;\n          switch (g) {\n            case 0:\n              B = E.getInt8(r);\n              break;\n            case 1:\n              B = E.getUint8(r);\n              break;\n            case 2:\n              B = E.getInt16(r, !0);\n              break;\n            case 3:\n              B = E.getUint16(r, !0);\n              break;\n            case 4:\n              B = E.getInt32(r, !0);\n              break;\n            case 5:\n              B = E.getUInt32(r, !0);\n              break;\n            case 6:\n              B = E.getFloat32(r, !0);\n              break;\n            case 7:\n              B = E.getFloat64(r, !0);\n              break;\n            default:\n              throw \"the decoder does not understand this pixel type\";\n          }\n          return B;\n        },\n        swapDimensionOrder: function(a, r, g, E, B) {\n          var f = 0, c = 0, l = 0, u = 0, h = a;\n          if (g > 1)\n            if (h = new E(r * g), B)\n              for (f = 0; f < r; f++)\n                for (u = f, l = 0; l < g; l++, u += r)\n                  h[u] = a[c++];\n            else\n              for (f = 0; f < r; f++)\n                for (u = f, l = 0; l < g; l++, u += r)\n                  h[c++] = a[u];\n          return h;\n        }\n      }, s = function(a, r, g) {\n        this.val = a, this.left = r, this.right = g;\n      }, y = {\n        /*\n        * ********removed options compared to LERC1. We can bring some of them back if needed.\n         * removed pixel type. LERC2 is typed and doesn't require user to give pixel type\n         * changed encodedMaskData to maskData. LERC2 's js version make it faster to use maskData directly.\n         * removed returnMask. mask is used by LERC2 internally and is cost free. In case of user input mask, it's returned as well and has neglible cost.\n         * removed nodatavalue. Because LERC2 pixels are typed, nodatavalue will sacrify a useful value for many types (8bit, 16bit) etc,\n         *       user has to be knowledgable enough about raster and their data to avoid usability issues. so nodata value is simply removed now.\n         *       We can add it back later if their's a clear requirement.\n         * removed encodedMask. This option was not implemented in LercDecode. It can be done after decoding (less efficient)\n         * removed computeUsedBitDepths.\n         *\n         *\n         * response changes compared to LERC1\n         * 1. encodedMaskData is not available\n         * 2. noDataValue is optional (returns only if user's noDataValue is with in the valid data type range)\n         * 3. maskData is always available\n        */\n        /*****************\n        *  public properties\n        ******************/\n        //HUFFMAN_LUT_BITS_MAX: 12, //use 2^12 lut, not configurable\n        /*****************\n        *  public methods\n        *****************/\n        /**\n         * Decode a LERC2 byte stream and return an object containing the pixel data and optional metadata.\n         *\n         * @param {ArrayBuffer} input The LERC input byte stream\n         * @param {object} [options] options Decoding options\n         * @param {number} [options.inputOffset] The number of bytes to skip in the input byte stream. A valid LERC file is expected at that position\n         * @param {boolean} [options.returnFileInfo] If true, the return value will have a fileInfo property that contains metadata obtained from the LERC headers and the decoding process\n         * @param {boolean} [options.returnPixelInterleavedDims]  If true, returned dimensions are pixel-interleaved, a.k.a [p1_dim0, p1_dim1, p1_dimn, p2_dim0...], default is [p1_dim0, p2_dim0, ..., p1_dim1, p2_dim1...]\n         */\n        decode: function(a, r) {\n          r = r || {};\n          var g = r.noDataValue, E = 0, B = {};\n          if (B.ptr = r.inputOffset || 0, B.pixels = {}, !!I.readHeaderInfo(a, B)) {\n            var f = B.headerInfo, c = f.fileVersion, l = I.getDataTypeArray(f.imageType);\n            if (c > 5)\n              throw \"unsupported lerc version 2.\" + c;\n            I.readMask(a, B), f.numValidPixel !== f.width * f.height && !B.pixels.resultMask && (B.pixels.resultMask = r.maskData);\n            var u = f.width * f.height;\n            B.pixels.resultPixels = new l(u * f.numDims), B.counter = {\n              onesweep: 0,\n              uncompressed: 0,\n              lut: 0,\n              bitstuffer: 0,\n              constant: 0,\n              constantoffset: 0\n            };\n            var h = !r.returnPixelInterleavedDims;\n            if (f.numValidPixel !== 0)\n              if (f.zMax === f.zMin)\n                I.constructConstantSurface(B, h);\n              else if (c >= 4 && I.checkMinMaxRanges(a, B))\n                I.constructConstantSurface(B, h);\n              else {\n                var D = new DataView(a, B.ptr, 2), d = D.getUint8(0);\n                if (B.ptr++, d)\n                  I.readDataOneSweep(a, B, l, h);\n                else if (c > 1 && f.imageType <= 1 && Math.abs(f.maxZError - 0.5) < 1e-5) {\n                  var Q = D.getUint8(1);\n                  if (B.ptr++, B.encodeMode = Q, Q > 2 || c < 4 && Q > 1)\n                    throw \"Invalid Huffman flag \" + Q;\n                  Q ? I.readHuffman(a, B, l, h) : I.readTiles(a, B, l, h);\n                } else\n                  I.readTiles(a, B, l, h);\n              }\n            B.eofOffset = B.ptr;\n            var C;\n            r.inputOffset ? (C = B.headerInfo.blobSize + r.inputOffset - B.ptr, Math.abs(C) >= 1 && (B.eofOffset = r.inputOffset + B.headerInfo.blobSize)) : (C = B.headerInfo.blobSize - B.ptr, Math.abs(C) >= 1 && (B.eofOffset = B.headerInfo.blobSize));\n            var w = {\n              width: f.width,\n              height: f.height,\n              pixelData: B.pixels.resultPixels,\n              minValue: f.zMin,\n              maxValue: f.zMax,\n              validPixelCount: f.numValidPixel,\n              dimCount: f.numDims,\n              dimStats: {\n                minValues: f.minValues,\n                maxValues: f.maxValues\n              },\n              maskData: B.pixels.resultMask\n              //noDataValue: noDataValue\n            };\n            if (B.pixels.resultMask && I.isValidPixelValue(f.imageType, g)) {\n              var m = B.pixels.resultMask;\n              for (E = 0; E < u; E++)\n                m[E] || (w.pixelData[E] = g);\n              w.noDataValue = g;\n            }\n            return B.noDataValue = g, r.returnFileInfo && (w.fileInfo = I.formatFileInfo(B)), w;\n          }\n        },\n        getBandCount: function(a) {\n          var r = 0, g = 0, E = {};\n          for (E.ptr = 0, E.pixels = {}; g < a.byteLength - 58; )\n            I.readHeaderInfo(a, E), g += E.headerInfo.blobSize, r++, E.ptr = g;\n          return r;\n        }\n      };\n      return y;\n    }(), i = function() {\n      var o = new ArrayBuffer(4), I = new Uint8Array(o), s = new Uint32Array(o);\n      return s[0] = 1, I[0] === 1;\n    }(), n = {\n      /************wrapper**********************************************/\n      /**\n       * A wrapper for decoding both LERC1 and LERC2 byte streams capable of handling multiband pixel blocks for various pixel types.\n       *\n       * @alias module:Lerc\n       * @param {ArrayBuffer} input The LERC input byte stream\n       * @param {object} [options] The decoding options below are optional.\n       * @param {number} [options.inputOffset] The number of bytes to skip in the input byte stream. A valid Lerc file is expected at that position.\n       * @param {string} [options.pixelType] (LERC1 only) Default value is F32. Valid pixel types for input are U8/S8/S16/U16/S32/U32/F32.\n       * @param {number} [options.noDataValue] (LERC1 only). It is recommended to use the returned mask instead of setting this value.\n       * @param {boolean} [options.returnPixelInterleavedDims] (nDim LERC2 only) If true, returned dimensions are pixel-interleaved, a.k.a [p1_dim0, p1_dim1, p1_dimn, p2_dim0...], default is [p1_dim0, p2_dim0, ..., p1_dim1, p2_dim1...]\n       * @returns {{width, height, pixels, pixelType, mask, statistics}}\n         * @property {number} width Width of decoded image.\n         * @property {number} height Height of decoded image.\n         * @property {array} pixels [band1, band2, \u2026] Each band is a typed array of width*height.\n         * @property {string} pixelType The type of pixels represented in the output.\n         * @property {mask} mask Typed array with a size of width*height, or null if all pixels are valid.\n         * @property {array} statistics [statistics_band1, statistics_band2, \u2026] Each element is a statistics object representing min and max values\n      **/\n      decode: function(o, I) {\n        if (!i)\n          throw \"Big endian system is not supported.\";\n        I = I || {};\n        var s = I.inputOffset || 0, y = new Uint8Array(o, s, 10), a = String.fromCharCode.apply(null, y), r, g;\n        if (a.trim() === \"CntZImage\")\n          r = e, g = 1;\n        else if (a.substring(0, 5) === \"Lerc2\")\n          r = A, g = 2;\n        else\n          throw \"Unexpected file identifier string: \" + a;\n        for (var E = 0, B = o.byteLength - 10, f, c = [], l, u, h = {\n          width: 0,\n          height: 0,\n          pixels: [],\n          pixelType: I.pixelType,\n          mask: null,\n          statistics: []\n        }, D = 0; s < B; ) {\n          var d = r.decode(o, {\n            inputOffset: s,\n            //for both lerc1 and lerc2\n            encodedMaskData: f,\n            //lerc1 only\n            maskData: u,\n            //lerc2 only\n            returnMask: E === 0,\n            //lerc1 only\n            returnEncodedMask: E === 0,\n            //lerc1 only\n            returnFileInfo: !0,\n            //for both lerc1 and lerc2\n            returnPixelInterleavedDims: I.returnPixelInterleavedDims,\n            //for ndim lerc2 only\n            pixelType: I.pixelType || null,\n            //lerc1 only\n            noDataValue: I.noDataValue || null\n            //lerc1 only\n          });\n          s = d.fileInfo.eofOffset, u = d.maskData, E === 0 && (f = d.encodedMaskData, h.width = d.width, h.height = d.height, h.dimCount = d.dimCount || 1, h.pixelType = d.pixelType || d.fileInfo.pixelType, h.mask = u), g > 1 && (u && c.push(u), d.fileInfo.mask && d.fileInfo.mask.numBytes > 0 && D++), E++, h.pixels.push(d.pixelData), h.statistics.push({\n            minValue: d.minValue,\n            maxValue: d.maxValue,\n            noDataValue: d.noDataValue,\n            dimStats: d.dimStats\n          });\n        }\n        var Q, C, w;\n        if (g > 1 && D > 1) {\n          for (w = h.width * h.height, h.bandMasks = c, u = new Uint8Array(w), u.set(c[0]), Q = 1; Q < c.length; Q++)\n            for (l = c[Q], C = 0; C < w; C++)\n              u[C] = u[C] & l[C];\n          h.maskData = u;\n        }\n        return h;\n      }\n    };\n    t.exports ? t.exports = n : this.Lerc = n;\n  })();\n})(rr);\nvar _a = rr.exports;\nconst Pa = /* @__PURE__ */ it(_a);\nlet JA, lA, Ze;\nconst Te = {\n  env: {\n    emscripten_notify_memory_growth: function(t) {\n      Ze = new Uint8Array(lA.exports.memory.buffer);\n    }\n  }\n};\nclass Va {\n  init() {\n    return JA || (typeof fetch < \"u\" ? JA = fetch(\"data:application/wasm;base64,\" + ei).then((e) => e.arrayBuffer()).then((e) => WebAssembly.instantiate(e, Te)).then(this._init) : JA = WebAssembly.instantiate(Buffer.from(ei, \"base64\"), Te).then(this._init), JA);\n  }\n  _init(e) {\n    lA = e.instance, Te.env.emscripten_notify_memory_growth(0);\n  }\n  decode(e, A = 0) {\n    if (!lA) throw new Error(\"ZSTDDecoder: Await .init() before decoding.\");\n    const i = e.byteLength, n = lA.exports.malloc(i);\n    Ze.set(e, n), A = A || Number(lA.exports.ZSTD_findDecompressedSize(n, i));\n    const o = lA.exports.malloc(A), I = lA.exports.ZSTD_decompress(o, A, n, i), s = Ze.slice(o, o + I);\n    return lA.exports.free(n), lA.exports.free(o), s;\n  }\n}\nconst ei = \"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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigCACACaiAAQQZ2IgFBAnRBsB5qKAIAaiAAQSBxIgBFaiABRSAAQQV2cWoFQbh/CwsdACAAKAKQ4gEQWiAAQQA2AqDiASAAQgA3A5DiAQu1AwEFfyMAQZACayIKJABBuH8hBgJAIAVFDQAgBCwAACIIQf8BcSEHAkAgCEF/TARAIAdBgn9qQQF2IgggBU8NAkFsIQYgB0GBf2oiBUGAAk8NAiAEQQFqIQdBACEGA0AgBiAFTwRAIAUhBiAIIQcMAwUgACAGaiAHIAZBAXZqIgQtAABBBHY6AAAgACAGQQFyaiAELQAAQQ9xOgAAIAZBAmohBgwBCwAACwALIAcgBU8NASAAIARBAWogByAKEFMiBhADDQELIAYhBEEAIQYgAUEAQTQQECEJQQAhBQNAIAQgBkcEQCAAIAZqIggtAAAiAUELSwRAQWwhBgwDBSAJIAFBAnRqIgEgASgCAEEBajYCACAGQQFqIQZBASAILQAAdEEBdSAFaiEFDAILAAsLQWwhBiAFRQ0AIAUQFEEBaiIBQQxLDQAgAyABNgIAQQFBASABdCAFayIDEBQiAXQgA0cNACAAIARqIAFBAWoiADoAACAJIABBAnRqIgAgACgCAEEBajYCACAJKAIEIgBBAkkgAEEBcXINACACIARBAWo2AgAgB0EBaiEGCyAKQZACaiQAIAYLxhEBDH8jAEHwAGsiBSQAQWwhCwJAIANBCkkNACACLwAAIQogAi8AAiEJIAIvAAQhByAFQQhqIAQQDgJAIAMgByAJIApqakEGaiIMSQ0AIAUtAAohCCAFQdgAaiACQQZqIgIgChAGIgsQAw0BIAVBQGsgAiAKaiICIAkQBiILEAMNASAFQShqIAIgCWoiAiAHEAYiCxADDQEgBUEQaiACIAdqIAMgDGsQBiILEAMNASAAIAFqIg9BfWohECAEQQRqIQZBASELIAAgAUEDakECdiIDaiIMIANqIgIgA2oiDiEDIAIhBCAMIQcDQCALIAMgEElxBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgCS0AAyELIAcgBiAFQUBrIAgQAkECdGoiCS8BADsAACAFQUBrIAktAAIQASAJLQADIQogBCAGIAVBKGogCBACQQJ0aiIJLwEAOwAAIAVBKGogCS0AAhABIAktAAMhCSADIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgDS0AAyENIAAgC2oiCyAGIAVB2ABqIAgQAkECdGoiAC8BADsAACAFQdgAaiAALQACEAEgAC0AAyEAIAcgCmoiCiAGIAVBQGsgCBACQQJ0aiIHLwEAOwAAIAVBQGsgBy0AAhABIActAAMhByAEIAlqIgkgBiAFQShqIAgQAkECdGoiBC8BADsAACAFQShqIAQtAAIQASAELQADIQQgAyANaiIDIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgACALaiEAIAcgCmohByAEIAlqIQQgAyANLQADaiEDIAVB2ABqEA0gBUFAaxANciAFQShqEA1yIAVBEGoQDXJFIQsMAQsLIAQgDksgByACS3INAEFsIQsgACAMSw0BIAxBfWohCQNAQQAgACAJSSAFQdgAahAEGwRAIAAgBiAFQdgAaiAIEAJBAnRqIgovAQA7AAAgBUHYAGogCi0AAhABIAAgCi0AA2oiACAGIAVB2ABqIAgQAkECdGoiCi8BADsAACAFQdgAaiAKLQACEAEgACAKLQADaiEADAEFIAxBfmohCgNAIAVB2ABqEAQgACAKS3JFBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgACAJLQADaiEADAELCwNAIAAgCk0EQCAAIAYgBUHYAGogCBACQQJ0aiIJLwEAOwAAIAVB2ABqIAktAAIQASAAIAktAANqIQAMAQsLAkAgACAMTw0AIAAgBiAFQdgAaiAIEAIiAEECdGoiDC0AADoAACAMLQADQQFGBEAgBUHYAGogDC0AAhABDAELIAUoAlxBH0sNACAFQdgAaiAGIABBAnRqLQACEAEgBSgCXEEhSQ0AIAVBIDYCXAsgAkF9aiEMA0BBACAHIAxJIAVBQGsQBBsEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiIAIAYgBUFAayAIEAJBAnRqIgcvAQA7AAAgBUFAayAHLQACEAEgACAHLQADaiEHDAEFIAJBfmohDANAIAVBQGsQBCAHIAxLckUEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwNAIAcgDE0EQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwJAIAcgAk8NACAHIAYgBUFAayAIEAIiAEECdGoiAi0AADoAACACLQADQQFGBEAgBUFAayACLQACEAEMAQsgBSgCREEfSw0AIAVBQGsgBiAAQQJ0ai0AAhABIAUoAkRBIUkNACAFQSA2AkQLIA5BfWohAgNAQQAgBCACSSAFQShqEAQbBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2oiACAGIAVBKGogCBACQQJ0aiIELwEAOwAAIAVBKGogBC0AAhABIAAgBC0AA2ohBAwBBSAOQX5qIQIDQCAFQShqEAQgBCACS3JFBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsDQCAEIAJNBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsCQCAEIA5PDQAgBCAGIAVBKGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBKGogAi0AAhABDAELIAUoAixBH0sNACAFQShqIAYgAEECdGotAAIQASAFKAIsQSFJDQAgBUEgNgIsCwNAQQAgAyAQSSAFQRBqEAQbBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2oiACAGIAVBEGogCBACQQJ0aiICLwEAOwAAIAVBEGogAi0AAhABIAAgAi0AA2ohAwwBBSAPQX5qIQIDQCAFQRBqEAQgAyACS3JFBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsDQCADIAJNBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsCQCADIA9PDQAgAyAGIAVBEGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBEGogAi0AAhABDAELIAUoAhRBH0sNACAFQRBqIAYgAEECdGotAAIQASAFKAIUQSFJDQAgBUEgNgIUCyABQWwgBUHYAGoQCiAFQUBrEApxIAVBKGoQCnEgBUEQahAKcRshCwwJCwAACwALAAALAAsAAAsACwAACwALQWwhCwsgBUHwAGokACALC7UEAQ5/IwBBEGsiBiQAIAZBBGogABAOQVQhBQJAIARB3AtJDQAgBi0ABCEHIANB8ARqQQBB7AAQECEIIAdBDEsNACADQdwJaiIJIAggBkEIaiAGQQxqIAEgAhAxIhAQA0UEQCAGKAIMIgQgB0sNASADQdwFaiEPIANBpAVqIREgAEEEaiESIANBqAVqIQEgBCEFA0AgBSICQX9qIQUgCCACQQJ0aigCAEUNAAsgAkEBaiEOQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgASALaiAKNgIAIAVBAWohBSAKIAxqIQoMAQsLIAEgCjYCAEEAIQUgBigCCCELA0AgBSALRkUEQCABIAUgCWotAAAiDEECdGoiDSANKAIAIg1BAWo2AgAgDyANQQF0aiINIAw6AAEgDSAFOgAAIAVBAWohBQwBCwtBACEBIANBADYCqAUgBEF/cyAHaiEJQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgAyALaiABNgIAIAwgBSAJanQgAWohASAFQQFqIQUMAQsLIAcgBEEBaiIBIAJrIgRrQQFqIQgDQEEBIQUgBCAIT0UEQANAIAUgDk9FBEAgBUECdCIJIAMgBEE0bGpqIAMgCWooAgAgBHY2AgAgBUEBaiEFDAELCyAEQQFqIQQMAQsLIBIgByAPIAogESADIAIgARBkIAZBAToABSAGIAc6AAYgACAGKAIENgIACyAQIQULIAZBEGokACAFC8ENAQt/IwBB8ABrIgUkAEFsIQkCQCADQQpJDQAgAi8AACEKIAIvAAIhDCACLwAEIQYgBUEIaiAEEA4CQCADIAYgCiAMampBBmoiDUkNACAFLQAKIQcgBUHYAGogAkEGaiICIAoQBiIJEAMNASAFQUBrIAIgCmoiAiAMEAYiCRADDQEgBUEoaiACIAxqIgIgBhAGIgkQAw0BIAVBEGogAiAGaiADIA1rEAYiCRADDQEgACABaiIOQX1qIQ8gBEEEaiEGQQEhCSAAIAFBA2pBAnYiAmoiCiACaiIMIAJqIg0hAyAMIQQgCiECA0AgCSADIA9JcQRAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAACAGIAVBQGsgBxACQQF0aiIILQAAIQsgBUFAayAILQABEAEgAiALOgAAIAYgBUEoaiAHEAJBAXRqIggtAAAhCyAFQShqIAgtAAEQASAEIAs6AAAgBiAFQRBqIAcQAkEBdGoiCC0AACELIAVBEGogCC0AARABIAMgCzoAACAGIAVB2ABqIAcQAkEBdGoiCC0AACELIAVB2ABqIAgtAAEQASAAIAs6AAEgBiAFQUBrIAcQAkEBdGoiCC0AACELIAVBQGsgCC0AARABIAIgCzoAASAGIAVBKGogBxACQQF0aiIILQAAIQsgBUEoaiAILQABEAEgBCALOgABIAYgBUEQaiAHEAJBAXRqIggtAAAhCyAFQRBqIAgtAAEQASADIAs6AAEgA0ECaiEDIARBAmohBCACQQJqIQIgAEECaiEAIAkgBUHYAGoQDUVxIAVBQGsQDUVxIAVBKGoQDUVxIAVBEGoQDUVxIQkMAQsLIAQgDUsgAiAMS3INAEFsIQkgACAKSw0BIApBfWohCQNAIAVB2ABqEAQgACAJT3JFBEAgBiAFQdgAaiAHEAJBAXRqIggtAAAhCyAFQdgAaiAILQABEAEgACALOgAAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAASAAQQJqIQAMAQsLA0AgBUHYAGoQBCAAIApPckUEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCwNAIAAgCkkEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCyAMQX1qIQADQCAFQUBrEAQgAiAAT3JFBEAgBiAFQUBrIAcQAkEBdGoiCi0AACEJIAVBQGsgCi0AARABIAIgCToAACAGIAVBQGsgBxACQQF0aiIKLQAAIQkgBUFAayAKLQABEAEgAiAJOgABIAJBAmohAgwBCwsDQCAFQUBrEAQgAiAMT3JFBEAgBiAFQUBrIAcQAkEBdGoiAC0AACEKIAVBQGsgAC0AARABIAIgCjoAACACQQFqIQIMAQsLA0AgAiAMSQRAIAYgBUFAayAHEAJBAXRqIgAtAAAhCiAFQUBrIAAtAAEQASACIAo6AAAgAkEBaiECDAELCyANQX1qIQADQCAFQShqEAQgBCAAT3JFBEAgBiAFQShqIAcQAkEBdGoiAi0AACEKIAVBKGogAi0AARABIAQgCjoAACAGIAVBKGogBxACQQF0aiICLQAAIQogBUEoaiACLQABEAEgBCAKOgABIARBAmohBAwBCwsDQCAFQShqEAQgBCANT3JFBEAgBiAFQShqIAcQAkEBdGoiAC0AACECIAVBKGogAC0AARABIAQgAjoAACAEQQFqIQQMAQsLA0AgBCANSQRAIAYgBUEoaiAHEAJBAXRqIgAtAAAhAiAFQShqIAAtAAEQASAEIAI6AAAgBEEBaiEEDAELCwNAIAVBEGoQBCADIA9PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIAYgBUEQaiAHEAJBAXRqIgAtAAAhAiAFQRBqIAAtAAEQASADIAI6AAEgA0ECaiEDDAELCwNAIAVBEGoQBCADIA5PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIANBAWohAwwBCwsDQCADIA5JBEAgBiAFQRBqIAcQAkEBdGoiAC0AACECIAVBEGogAC0AARABIAMgAjoAACADQQFqIQMMAQsLIAFBbCAFQdgAahAKIAVBQGsQCnEgBUEoahAKcSAFQRBqEApxGyEJDAELQWwhCQsgBUHwAGokACAJC8oCAQR/IwBBIGsiBSQAIAUgBBAOIAUtAAIhByAFQQhqIAIgAxAGIgIQA0UEQCAEQQRqIQIgACABaiIDQX1qIQQDQCAFQQhqEAQgACAET3JFBEAgAiAFQQhqIAcQAkEBdGoiBi0AACEIIAVBCGogBi0AARABIAAgCDoAACACIAVBCGogBxACQQF0aiIGLQAAIQggBUEIaiAGLQABEAEgACAIOgABIABBAmohAAwBCwsDQCAFQQhqEAQgACADT3JFBEAgAiAFQQhqIAcQAkEBdGoiBC0AACEGIAVBCGogBC0AARABIAAgBjoAACAAQQFqIQAMAQsLA0AgACADT0UEQCACIAVBCGogBxACQQF0aiIELQAAIQYgBUEIaiAELQABEAEgACAGOgAAIABBAWohAAwBCwsgAUFsIAVBCGoQChshAgsgBUEgaiQAIAILtgMBCX8jAEEQayIGJAAgBkEANgIMIAZBADYCCEFUIQQCQAJAIANBQGsiDCADIAZBCGogBkEMaiABIAIQMSICEAMNACAGQQRqIAAQDiAGKAIMIgcgBi0ABEEBaksNASAAQQRqIQogBkEAOgAFIAYgBzoABiAAIAYoAgQ2AgAgB0EBaiEJQQEhBANAIAQgCUkEQCADIARBAnRqIgEoAgAhACABIAU2AgAgACAEQX9qdCAFaiEFIARBAWohBAwBCwsgB0EBaiEHQQAhBSAGKAIIIQkDQCAFIAlGDQEgAyAFIAxqLQAAIgRBAnRqIgBBASAEdEEBdSILIAAoAgAiAWoiADYCACAHIARrIQhBACEEAkAgC0EDTQRAA0AgBCALRg0CIAogASAEakEBdGoiACAIOgABIAAgBToAACAEQQFqIQQMAAALAAsDQCABIABPDQEgCiABQQF0aiIEIAg6AAEgBCAFOgAAIAQgCDoAAyAEIAU6AAIgBCAIOgAFIAQgBToABCAEIAg6AAcgBCAFOgAGIAFBBGohAQwAAAsACyAFQQFqIQUMAAALAAsgAiEECyAGQRBqJAAgBAutAQECfwJAQYQgKAIAIABHIAAoAgBBAXYiAyABa0F4aiICQXhxQQhHcgR/IAIFIAMQJ0UNASACQQhqC0EQSQ0AIAAgACgCACICQQFxIAAgAWpBD2pBeHEiASAAa0EBdHI2AgAgASAANgIEIAEgASgCAEEBcSAAIAJBAXZqIAFrIgJBAXRyNgIAQYQgIAEgAkH/////B3FqQQRqQYQgKAIAIABGGyABNgIAIAEQJQsLygIBBX8CQAJAAkAgAEEIIABBCEsbZ0EfcyAAaUEBR2oiAUEESSAAIAF2cg0AIAFBAnRB/B5qKAIAIgJFDQADQCACQXhqIgMoAgBBAXZBeGoiBSAATwRAIAIgBUEIIAVBCEsbZ0Efc0ECdEGAH2oiASgCAEYEQCABIAIoAgQ2AgALDAMLIARBHksNASAEQQFqIQQgAigCBCICDQALC0EAIQMgAUEgTw0BA0AgAUECdEGAH2ooAgAiAkUEQCABQR5LIQIgAUEBaiEBIAJFDQEMAwsLIAIgAkF4aiIDKAIAQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgBGBEAgASACKAIENgIACwsgAigCACIBBEAgASACKAIENgIECyACKAIEIgEEQCABIAIoAgA2AgALIAMgAygCAEEBcjYCACADIAAQNwsgAwvhCwINfwV+IwBB8ABrIgckACAHIAAoAvDhASIINgJcIAEgAmohDSAIIAAoAoDiAWohDwJAAkAgBUUEQCABIQQMAQsgACgCxOABIRAgACgCwOABIREgACgCvOABIQ4gAEEBNgKM4QFBACEIA0AgCEEDRwRAIAcgCEECdCICaiAAIAJqQazQAWooAgA2AkQgCEEBaiEIDAELC0FsIQwgB0EYaiADIAQQBhADDQEgB0EsaiAHQRhqIAAoAgAQEyAHQTRqIAdBGGogACgCCBATIAdBPGogB0EYaiAAKAIEEBMgDUFgaiESIAEhBEEAIQwDQCAHKAIwIAcoAixBA3RqKQIAIhRCEIinQf8BcSEIIAcoAkAgBygCPEEDdGopAgAiFUIQiKdB/wFxIQsgBygCOCAHKAI0QQN0aikCACIWQiCIpyEJIBVCIIghFyAUQiCIpyECAkAgFkIQiKdB/wFxIgNBAk8EQAJAIAZFIANBGUlyRQRAIAkgB0EYaiADQSAgBygCHGsiCiAKIANLGyIKEAUgAyAKayIDdGohCSAHQRhqEAQaIANFDQEgB0EYaiADEAUgCWohCQwBCyAHQRhqIAMQBSAJaiEJIAdBGGoQBBoLIAcpAkQhGCAHIAk2AkQgByAYNwNIDAELAkAgA0UEQCACBEAgBygCRCEJDAMLIAcoAkghCQwBCwJAAkAgB0EYakEBEAUgCSACRWpqIgNBA0YEQCAHKAJEQX9qIgMgA0VqIQkMAQsgA0ECdCAHaigCRCIJIAlFaiEJIANBAUYNAQsgByAHKAJINgJMCwsgByAHKAJENgJIIAcgCTYCRAsgF6chAyALBEAgB0EYaiALEAUgA2ohAwsgCCALakEUTwRAIAdBGGoQBBoLIAgEQCAHQRhqIAgQBSACaiECCyAHQRhqEAQaIAcgB0EYaiAUQhiIp0H/AXEQCCAUp0H//wNxajYCLCAHIAdBGGogFUIYiKdB/wFxEAggFadB//8DcWo2AjwgB0EYahAEGiAHIAdBGGogFkIYiKdB/wFxEAggFqdB//8DcWo2AjQgByACNgJgIAcoAlwhCiAHIAk2AmggByADNgJkAkACQAJAIAQgAiADaiILaiASSw0AIAIgCmoiEyAPSw0AIA0gBGsgC0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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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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\", nr = new Va();\nclass ja extends dA {\n  constructor(e) {\n    super(), this.planarConfiguration = typeof e.PlanarConfiguration < \"u\" ? e.PlanarConfiguration : 1, this.samplesPerPixel = typeof e.SamplesPerPixel < \"u\" ? e.SamplesPerPixel : 1, this.addCompression = e.LercParameters[yi.AddCompression];\n  }\n  decodeBlock(e) {\n    switch (this.addCompression) {\n      case Be.None:\n        break;\n      case Be.Deflate:\n        e = ir(new Uint8Array(e)).buffer;\n        break;\n      case Be.Zstandard:\n        e = nr.decode(new Uint8Array(e)).buffer;\n        break;\n      default:\n        throw new Error(`Unsupported LERC additional compression method identifier: ${this.addCompression}`);\n    }\n    return Pa.decode(e, { returnPixelInterleavedDims: this.planarConfiguration === 1 }).pixels[0].buffer;\n  }\n}\nconst Xa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n  __proto__: null,\n  default: ja,\n  zstd: nr\n}, Symbol.toStringTag, { value: \"Module\" }));\nclass Wa extends dA {\n  constructor() {\n    if (super(), typeof createImageBitmap > \"u\")\n      throw new Error(\"Cannot decode WebImage as `createImageBitmap` is not available\");\n    if (typeof document > \"u\" && typeof OffscreenCanvas > \"u\")\n      throw new Error(\"Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available\");\n  }\n  async decode(e, A) {\n    const i = new Blob([A]), n = await createImageBitmap(i);\n    let o;\n    typeof document < \"u\" ? (o = document.createElement(\"canvas\"), o.width = n.width, o.height = n.height) : o = new OffscreenCanvas(n.width, n.height);\n    const I = o.getContext(\"2d\");\n    return I.drawImage(n, 0, 0), I.getImageData(0, 0, n.width, n.height).data.buffer;\n  }\n}\nconst Za = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n  __proto__: null,\n  default: Wa\n}, Symbol.toStringTag, { value: \"Module\" })), za = Worker;\nfunction $a() {\n  const t = 'function A(A,e,t,i,r,I,g){try{var n=A[I](g),a=n.value}catch(A){return void t(A)}n.done?e(a):Promise.resolve(a).then(i,r)}function e(e){return function(){var t=this,i=arguments;return new Promise((function(r,I){var g=e.apply(t,i);function n(e){A(g,r,I,n,a,\"next\",e)}function a(e){A(g,r,I,n,a,\"throw\",e)}n(void 0)}))}}function t(A){return t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(A){return typeof A}:function(A){return A&&\"function\"==typeof Symbol&&A.constructor===Symbol&&A!==Symbol.prototype?\"symbol\":typeof A},t(A)}var i={exports:{}};!function(A){var e=function(A){var e,i=Object.prototype,r=i.hasOwnProperty,I=\"function\"==typeof Symbol?Symbol:{},g=I.iterator||\"@@iterator\",n=I.asyncIterator||\"@@asyncIterator\",a=I.toStringTag||\"@@toStringTag\";function o(A,e,t){return Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}),A[e]}try{o({},\"\")}catch(A){o=function(A,e,t){return A[e]=t}}function B(A,e,t,i){var r=e&&e.prototype instanceof h?e:h,I=Object.create(r.prototype),g=new S(i||[]);return I._invoke=function(A,e,t){var i=Q;return function(r,I){if(i===s)throw new Error(\"Generator is already running\");if(i===f){if(\"throw\"===r)throw I;return R()}for(t.method=r,t.arg=I;;){var g=t.delegate;if(g){var n=m(g,t);if(n){if(n===c)continue;return n}}if(\"next\"===t.method)t.sent=t._sent=t.arg;else if(\"throw\"===t.method){if(i===Q)throw i=f,t.arg;t.dispatchException(t.arg)}else\"return\"===t.method&&t.abrupt(\"return\",t.arg);i=s;var a=C(A,e,t);if(\"normal\"===a.type){if(i=t.done?f:E,a.arg===c)continue;return{value:a.arg,done:t.done}}\"throw\"===a.type&&(i=f,t.method=\"throw\",t.arg=a.arg)}}}(A,t,g),I}function C(A,e,t){try{return{type:\"normal\",arg:A.call(e,t)}}catch(A){return{type:\"throw\",arg:A}}}A.wrap=B;var Q=\"suspendedStart\",E=\"suspendedYield\",s=\"executing\",f=\"completed\",c={};function h(){}function l(){}function u(){}var w={};o(w,g,(function(){return this}));var d=Object.getPrototypeOf,D=d&&d(d(v([])));D&&D!==i&&r.call(D,g)&&(w=D);var y=u.prototype=h.prototype=Object.create(w);function k(A){[\"next\",\"throw\",\"return\"].forEach((function(e){o(A,e,(function(A){return this._invoke(e,A)}))}))}function p(A,e){function i(I,g,n,a){var o=C(A[I],A,g);if(\"throw\"!==o.type){var B=o.arg,Q=B.value;return Q&&\"object\"===t(Q)&&r.call(Q,\"__await\")?e.resolve(Q.__await).then((function(A){i(\"next\",A,n,a)}),(function(A){i(\"throw\",A,n,a)})):e.resolve(Q).then((function(A){B.value=A,n(B)}),(function(A){return i(\"throw\",A,n,a)}))}a(o.arg)}var I;this._invoke=function(A,t){function r(){return new e((function(e,r){i(A,t,e,r)}))}return I=I?I.then(r,r):r()}}function m(A,t){var i=A.iterator[t.method];if(i===e){if(t.delegate=null,\"throw\"===t.method){if(A.iterator.return&&(t.method=\"return\",t.arg=e,m(A,t),\"throw\"===t.method))return c;t.method=\"throw\",t.arg=new TypeError(\"The iterator does not provide a \\'throw\\' method\")}return c}var r=C(i,A.iterator,t.arg);if(\"throw\"===r.type)return t.method=\"throw\",t.arg=r.arg,t.delegate=null,c;var I=r.arg;return I?I.done?(t[A.resultName]=I.value,t.next=A.nextLoc,\"return\"!==t.method&&(t.method=\"next\",t.arg=e),t.delegate=null,c):I:(t.method=\"throw\",t.arg=new TypeError(\"iterator result is not an object\"),t.delegate=null,c)}function G(A){var e={tryLoc:A[0]};1 in A&&(e.catchLoc=A[1]),2 in A&&(e.finallyLoc=A[2],e.afterLoc=A[3]),this.tryEntries.push(e)}function F(A){var e=A.completion||{};e.type=\"normal\",delete e.arg,A.completion=e}function S(A){this.tryEntries=[{tryLoc:\"root\"}],A.forEach(G,this),this.reset(!0)}function v(A){if(A){var t=A[g];if(t)return t.call(A);if(\"function\"==typeof A.next)return A;if(!isNaN(A.length)){var i=-1,I=function t(){for(;++i<A.length;)if(r.call(A,i))return t.value=A[i],t.done=!1,t;return t.value=e,t.done=!0,t};return I.next=I}}return{next:R}}function R(){return{value:e,done:!0}}return l.prototype=u,o(y,\"constructor\",u),o(u,\"constructor\",l),l.displayName=o(u,a,\"GeneratorFunction\"),A.isGeneratorFunction=function(A){var e=\"function\"==typeof A&&A.constructor;return!!e&&(e===l||\"GeneratorFunction\"===(e.displayName||e.name))},A.mark=function(A){return Object.setPrototypeOf?Object.setPrototypeOf(A,u):(A.__proto__=u,o(A,a,\"GeneratorFunction\")),A.prototype=Object.create(y),A},A.awrap=function(A){return{__await:A}},k(p.prototype),o(p.prototype,n,(function(){return this})),A.AsyncIterator=p,A.async=function(e,t,i,r,I){void 0===I&&(I=Promise);var g=new p(B(e,t,i,r),I);return A.isGeneratorFunction(t)?g:g.next().then((function(A){return A.done?A.value:g.next()}))},k(y),o(y,a,\"Generator\"),o(y,g,(function(){return this})),o(y,\"toString\",(function(){return\"[object Generator]\"})),A.keys=function(A){var e=[];for(var t in A)e.push(t);return e.reverse(),function t(){for(;e.length;){var i=e.pop();if(i in A)return t.value=i,t.done=!1,t}return t.done=!0,t}},A.values=v,S.prototype={constructor:S,reset:function(A){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=e,this.tryEntries.forEach(F),!A)for(var t in this)\"t\"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=e)},stop:function(){this.done=!0;var A=this.tryEntries[0].completion;if(\"throw\"===A.type)throw A.arg;return this.rval},dispatchException:function(A){if(this.done)throw A;var t=this;function i(i,r){return n.type=\"throw\",n.arg=A,t.next=i,r&&(t.method=\"next\",t.arg=e),!!r}for(var I=this.tryEntries.length-1;I>=0;--I){var g=this.tryEntries[I],n=g.completion;if(\"root\"===g.tryLoc)return i(\"end\");if(g.tryLoc<=this.prev){var a=r.call(g,\"catchLoc\"),o=r.call(g,\"finallyLoc\");if(a&&o){if(this.prev<g.catchLoc)return i(g.catchLoc,!0);if(this.prev<g.finallyLoc)return i(g.finallyLoc)}else if(a){if(this.prev<g.catchLoc)return i(g.catchLoc,!0)}else{if(!o)throw new Error(\"try statement without catch or finally\");if(this.prev<g.finallyLoc)return i(g.finallyLoc)}}}},abrupt:function(A,e){for(var t=this.tryEntries.length-1;t>=0;--t){var i=this.tryEntries[t];if(i.tryLoc<=this.prev&&r.call(i,\"finallyLoc\")&&this.prev<i.finallyLoc){var I=i;break}}I&&(\"break\"===A||\"continue\"===A)&&I.tryLoc<=e&&e<=I.finallyLoc&&(I=null);var g=I?I.completion:{};return g.type=A,g.arg=e,I?(this.method=\"next\",this.next=I.finallyLoc,c):this.complete(g)},complete:function(A,e){if(\"throw\"===A.type)throw A.arg;return\"break\"===A.type||\"continue\"===A.type?this.next=A.arg:\"return\"===A.type?(this.rval=this.arg=A.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===A.type&&e&&(this.next=e),c},finish:function(A){for(var e=this.tryEntries.length-1;e>=0;--e){var t=this.tryEntries[e];if(t.finallyLoc===A)return this.complete(t.completion,t.afterLoc),F(t),c}},catch:function(A){for(var e=this.tryEntries.length-1;e>=0;--e){var t=this.tryEntries[e];if(t.tryLoc===A){var i=t.completion;if(\"throw\"===i.type){var r=i.arg;F(t)}return r}}throw new Error(\"illegal catch attempt\")},delegateYield:function(A,t,i){return this.delegate={iterator:v(A),resultName:t,nextLoc:i},\"next\"===this.method&&(this.arg=e),c}},A}(A.exports);try{regeneratorRuntime=e}catch(A){\"object\"===(\"undefined\"==typeof globalThis?\"undefined\":t(globalThis))?globalThis.regeneratorRuntime=e:Function(\"r\",\"regeneratorRuntime = r\")(e)}}(i);var r=i.exports,I=new Map;function g(A,e){Array.isArray(A)||(A=[A]),A.forEach((function(A){return I.set(A,e)}))}function n(A){return a.apply(this,arguments)}function a(){return(a=e(r.mark((function A(e){var t,i;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:if(t=I.get(e.Compression)){A.next=3;break}throw new Error(\"Unknown compression method identifier: \".concat(e.Compression));case 3:return A.next=5,t();case 5:return i=A.sent,A.abrupt(\"return\",new i(e));case 7:case\"end\":return A.stop()}}),A)})))).apply(this,arguments)}g([void 0,1],(function(){return Promise.resolve().then((function(){return y})).then((function(A){return A.default}))})),g(5,(function(){return Promise.resolve().then((function(){return F})).then((function(A){return A.default}))})),g(6,(function(){throw new Error(\"old style JPEG compression is not supported.\")})),g(7,(function(){return Promise.resolve().then((function(){return N})).then((function(A){return A.default}))})),g([8,32946],(function(){return Promise.resolve().then((function(){return OA})).then((function(A){return A.default}))})),g(32773,(function(){return Promise.resolve().then((function(){return _A})).then((function(A){return A.default}))})),g(34887,(function(){return Promise.resolve().then((function(){return le})).then(function(){var A=e(r.mark((function A(e){return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return A.next=2,e.zstd.init();case 2:return A.abrupt(\"return\",e);case 3:case\"end\":return A.stop()}}),A)})));return function(e){return A.apply(this,arguments)}}()).then((function(A){return A.default}))})),g(50001,(function(){return Promise.resolve().then((function(){return de})).then((function(A){return A.default}))}));var o=globalThis;function B(A,e){if(!(A instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function C(A,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(A,i.key,i)}}function Q(A,e,t){return e&&C(A.prototype,e),t&&C(A,t),A}function E(A,e){return E=Object.setPrototypeOf||function(A,e){return A.__proto__=e,A},E(A,e)}function s(A,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");A.prototype=Object.create(e&&e.prototype,{constructor:{value:A,writable:!0,configurable:!0}}),e&&E(A,e)}function f(A,e){if(e&&(\"object\"===t(e)||\"function\"==typeof e))return e;if(void 0!==e)throw new TypeError(\"Derived constructors may only return object or undefined\");return function(A){if(void 0===A)throw new ReferenceError(\"this hasn\\'t been initialised - super() hasn\\'t been called\");return A}(A)}function c(A){return c=Object.setPrototypeOf?Object.getPrototypeOf:function(A){return A.__proto__||Object.getPrototypeOf(A)},c(A)}function h(A,e){var t=A.length-e,i=0;do{for(var r=e;r>0;r--)A[i+e]+=A[i],i++;t-=e}while(t>0)}function l(A,e,t){for(var i=0,r=A.length,I=r/t;r>e;){for(var g=e;g>0;--g)A[i+e]+=A[i],++i;r-=e}for(var n=A.slice(),a=0;a<I;++a)for(var o=0;o<t;++o)A[t*a+o]=n[(t-o-1)*I+a]}function u(A,e,t,i,r,I){if(!e||1===e)return A;for(var g=0;g<r.length;++g){if(r[g]%8!=0)throw new Error(\"When decoding with predictor, only multiple of 8 bits are supported.\");if(r[g]!==r[0])throw new Error(\"When decoding with predictor, all samples must have the same size.\")}for(var n=r[0]/8,a=2===I?1:r.length,o=0;o<i&&!(o*a*t*n>=A.byteLength);++o){var B=void 0;if(2===e){switch(r[0]){case 8:B=new Uint8Array(A,o*a*t*n,a*t*n);break;case 16:B=new Uint16Array(A,o*a*t*n,a*t*n/2);break;case 32:B=new Uint32Array(A,o*a*t*n,a*t*n/4);break;default:throw new Error(\"Predictor 2 not allowed with \".concat(r[0],\" bits per sample.\"))}h(B,a)}else 3===e&&l(B=new Uint8Array(A,o*a*t*n,a*t*n),a,n)}return A}o.addEventListener(\"message\",function(){var A=e(r.mark((function A(e){var t,i,I,g,a,B;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return t=e.data,i=t.id,I=t.fileDirectory,g=t.buffer,A.next=3,n(I);case 3:return a=A.sent,A.next=6,a.decode(I,g);case 6:B=A.sent,o.postMessage({decoded:B,id:i},[B]);case 8:case\"end\":return A.stop()}}),A)})));return function(e){return A.apply(this,arguments)}}());var w=function(){function A(){B(this,A)}var t;return Q(A,[{key:\"decode\",value:(t=e(r.mark((function A(e,t){var i,I,g,n,a;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return A.next=2,this.decodeBlock(t);case 2:if(i=A.sent,1===(I=e.Predictor||1)){A.next=9;break}return g=!e.StripOffsets,n=g?e.TileWidth:e.ImageWidth,a=g?e.TileLength:e.RowsPerStrip||e.ImageLength,A.abrupt(\"return\",u(i,I,n,a,e.BitsPerSample,e.PlanarConfiguration));case 9:return A.abrupt(\"return\",i);case 10:case\"end\":return A.stop()}}),A,this)}))),function(A,e){return t.apply(this,arguments)})}]),A}();function d(A){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var D=function(A){s(t,w);var e=d(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:\"decodeBlock\",value:function(A){return A}}]),t}(),y=Object.freeze({__proto__:null,default:D});function k(A){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}function p(A,e){for(var t=e.length-1;t>=0;t--)A.push(e[t]);return A}function m(A){for(var e=new Uint16Array(4093),t=new Uint8Array(4093),i=0;i<=257;i++)e[i]=4096,t[i]=i;var r=258,I=9,g=0;function n(){r=258,I=9}function a(A){var e=function(A,e,t){var i=e%8,r=Math.floor(e/8),I=8-i,g=e+t-8*(r+1),n=8*(r+2)-(e+t),a=8*(r+2)-e;if(n=Math.max(0,n),r>=A.length)return console.warn(\"ran off the end of the buffer before finding EOI_CODE (end on input code)\"),257;var o=A[r]&Math.pow(2,8-i)-1,B=o<<=t-I;if(r+1<A.length){var C=A[r+1]>>>n;B+=C<<=Math.max(0,t-a)}if(g>8&&r+2<A.length){var Q=8*(r+3)-(e+t);B+=A[r+2]>>>Q}return B}(A,g,I);return g+=I,e}function o(A,i){return t[r]=i,e[r]=A,++r-1}function B(A){for(var i=[],r=A;4096!==r;r=e[r])i.push(t[r]);return i}var C=[];n();for(var Q,E=new Uint8Array(A),s=a(E);257!==s;){if(256===s){for(n(),s=a(E);256===s;)s=a(E);if(257===s)break;if(s>256)throw new Error(\"corrupted code at scanline \".concat(s));p(C,B(s)),Q=s}else if(s<r){var f=B(s);p(C,f),o(Q,f[f.length-1]),Q=s}else{var c=B(Q);if(!c)throw new Error(\"Bogus entry. Not in dictionary, \".concat(Q,\" / \").concat(r,\", position: \").concat(g));p(C,c),C.push(c[c.length-1]),o(Q,c[c.length-1]),Q=s}r+1>=Math.pow(2,I)&&(12===I?Q=void 0:I++),s=a(E)}return new Uint8Array(C)}var G=function(A){s(t,w);var e=k(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:\"decodeBlock\",value:function(A){return m(A).buffer}}]),t}(),F=Object.freeze({__proto__:null,default:G});function S(A){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var v=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]);function R(A,e){for(var t=0,i=[],r=16;r>0&&!A[r-1];)--r;i.push({children:[],index:0});for(var I,g=i[0],n=0;n<r;n++){for(var a=0;a<A[n];a++){for((g=i.pop()).children[g.index]=e[t];g.index>0;)g=i.pop();for(g.index++,i.push(g);i.length<=n;)i.push(I={children:[],index:0}),g.children[g.index]=I.children,g=I;t++}n+1<r&&(i.push(I={children:[],index:0}),g.children[g.index]=I.children,g=I)}return i[0].children}function U(A,e,i,r,I,g,n,a,o){var B=i.mcusPerLine,C=i.progressive,Q=e,E=e,s=0,f=0;function c(){if(f>0)return f--,s>>f&1;if(255===(s=A[E++])){var e=A[E++];if(e)throw new Error(\"unexpected marker: \".concat((s<<8|e).toString(16)))}return f=7,s>>>7}function h(A){for(var e,i=A;null!==(e=c());){if(\"number\"==typeof(i=i[e]))return i;if(\"object\"!==t(i))throw new Error(\"invalid huffman sequence\")}return null}function l(A){for(var e=A,t=0;e>0;){var i=c();if(null===i)return;t=t<<1|i,--e}return t}function u(A){var e=l(A);return e>=1<<A-1?e:e+(-1<<A)+1}var w=0;var d,D=0;function y(A,e,t,i,r){var I=t%B,g=(t/B|0)*A.v+i,n=I*A.h+r;e(A,A.blocks[g][n])}function k(A,e,t){var i=t/A.blocksPerLine|0,r=t%A.blocksPerLine;e(A,A.blocks[i][r])}var p,m,G,F,S,R,U=r.length;R=C?0===g?0===a?function(A,e){var t=h(A.huffmanTableDC),i=0===t?0:u(t)<<o;A.pred+=i,e[0]=A.pred}:function(A,e){e[0]|=c()<<o}:0===a?function(A,e){if(w>0)w--;else for(var t=g,i=n;t<=i;){var r=h(A.huffmanTableAC),I=15&r,a=r>>4;if(0===I){if(a<15){w=l(a)+(1<<a)-1;break}t+=16}else e[v[t+=a]]=u(I)*(1<<o),t++}}:function(A,e){for(var t=g,i=n,r=0;t<=i;){var I=v[t],a=e[I]<0?-1:1;switch(D){case 0:var B=h(A.huffmanTableAC),C=15&B;if(r=B>>4,0===C)r<15?(w=l(r)+(1<<r),D=4):(r=16,D=1);else{if(1!==C)throw new Error(\"invalid ACn encoding\");d=u(C),D=r?2:3}continue;case 1:case 2:e[I]?e[I]+=(c()<<o)*a:0==--r&&(D=2===D?3:0);break;case 3:e[I]?e[I]+=(c()<<o)*a:(e[I]=d<<o,D=0);break;case 4:e[I]&&(e[I]+=(c()<<o)*a)}t++}4===D&&0==--w&&(D=0)}:function(A,e){var t=h(A.huffmanTableDC),i=0===t?0:u(t);A.pred+=i,e[0]=A.pred;for(var r=1;r<64;){var I=h(A.huffmanTableAC),g=15&I,n=I>>4;if(0===g){if(n<15)break;r+=16}else e[v[r+=n]]=u(g),r++}};var L,b,M=0;b=1===U?r[0].blocksPerLine*r[0].blocksPerColumn:B*i.mcusPerColumn;for(var N=I||b;M<b;){for(m=0;m<U;m++)r[m].pred=0;if(w=0,1===U)for(p=r[0],S=0;S<N;S++)k(p,R,M),M++;else for(S=0;S<N;S++){for(m=0;m<U;m++){var x=p=r[m],J=x.h,q=x.v;for(G=0;G<q;G++)for(F=0;F<J;F++)y(p,R,M,G,F)}if(++M===b)break}if(f=0,(L=A[E]<<8|A[E+1])<65280)throw new Error(\"marker was not found\");if(!(L>=65488&&L<=65495))break;E+=2}return E-Q}function L(A,e){var t=[],i=e.blocksPerLine,r=e.blocksPerColumn,I=i<<3,g=new Int32Array(64),n=new Uint8Array(64);function a(A,t,i){var r,I,g,n,a,o,B,C,Q,E,s=e.quantizationTable,f=i;for(E=0;E<64;E++)f[E]=A[E]*s[E];for(E=0;E<8;++E){var c=8*E;0!==f[1+c]||0!==f[2+c]||0!==f[3+c]||0!==f[4+c]||0!==f[5+c]||0!==f[6+c]||0!==f[7+c]?(r=5793*f[0+c]+128>>8,I=5793*f[4+c]+128>>8,g=f[2+c],n=f[6+c],a=2896*(f[1+c]-f[7+c])+128>>8,C=2896*(f[1+c]+f[7+c])+128>>8,o=f[3+c]<<4,Q=r-I+1>>1,r=r+I+1>>1,I=Q,Q=3784*g+1567*n+128>>8,g=1567*g-3784*n+128>>8,n=Q,Q=a-(B=f[5+c]<<4)+1>>1,a=a+B+1>>1,B=Q,Q=C+o+1>>1,o=C-o+1>>1,C=Q,Q=r-n+1>>1,r=r+n+1>>1,n=Q,Q=I-g+1>>1,I=I+g+1>>1,g=Q,Q=2276*a+3406*C+2048>>12,a=3406*a-2276*C+2048>>12,C=Q,Q=799*o+4017*B+2048>>12,o=4017*o-799*B+2048>>12,B=Q,f[0+c]=r+C,f[7+c]=r-C,f[1+c]=I+B,f[6+c]=I-B,f[2+c]=g+o,f[5+c]=g-o,f[3+c]=n+a,f[4+c]=n-a):(Q=5793*f[0+c]+512>>10,f[0+c]=Q,f[1+c]=Q,f[2+c]=Q,f[3+c]=Q,f[4+c]=Q,f[5+c]=Q,f[6+c]=Q,f[7+c]=Q)}for(E=0;E<8;++E){var h=E;0!==f[8+h]||0!==f[16+h]||0!==f[24+h]||0!==f[32+h]||0!==f[40+h]||0!==f[48+h]||0!==f[56+h]?(r=5793*f[0+h]+2048>>12,I=5793*f[32+h]+2048>>12,g=f[16+h],n=f[48+h],a=2896*(f[8+h]-f[56+h])+2048>>12,C=2896*(f[8+h]+f[56+h])+2048>>12,o=f[24+h],Q=r-I+1>>1,r=r+I+1>>1,I=Q,Q=3784*g+1567*n+2048>>12,g=1567*g-3784*n+2048>>12,n=Q,Q=a-(B=f[40+h])+1>>1,a=a+B+1>>1,B=Q,Q=C+o+1>>1,o=C-o+1>>1,C=Q,Q=r-n+1>>1,r=r+n+1>>1,n=Q,Q=I-g+1>>1,I=I+g+1>>1,g=Q,Q=2276*a+3406*C+2048>>12,a=3406*a-2276*C+2048>>12,C=Q,Q=799*o+4017*B+2048>>12,o=4017*o-799*B+2048>>12,B=Q,f[0+h]=r+C,f[56+h]=r-C,f[8+h]=I+B,f[48+h]=I-B,f[16+h]=g+o,f[40+h]=g-o,f[24+h]=n+a,f[32+h]=n-a):(Q=5793*i[E+0]+8192>>14,f[0+h]=Q,f[8+h]=Q,f[16+h]=Q,f[24+h]=Q,f[32+h]=Q,f[40+h]=Q,f[48+h]=Q,f[56+h]=Q)}for(E=0;E<64;++E){var l=128+(f[E]+8>>4);t[E]=l<0?0:l>255?255:l}}for(var o=0;o<r;o++){for(var B=o<<3,C=0;C<8;C++)t.push(new Uint8Array(I));for(var Q=0;Q<i;Q++){a(e.blocks[o][Q],n,g);for(var E=0,s=Q<<3,f=0;f<8;f++)for(var c=t[B+f],h=0;h<8;h++)c[s+h]=n[E++]}}return t}var b=function(){function A(){B(this,A),this.jfif=null,this.adobe=null,this.quantizationTables=[],this.huffmanTablesAC=[],this.huffmanTablesDC=[],this.resetFrames()}return Q(A,[{key:\"resetFrames\",value:function(){this.frames=[]}},{key:\"parse\",value:function(A){var e=0;function t(){var t=A[e]<<8|A[e+1];return e+=2,t}function i(A){var e,t,i=0,r=0;for(t in A.components)A.components.hasOwnProperty(t)&&(i<(e=A.components[t]).h&&(i=e.h),r<e.v&&(r=e.v));var I=Math.ceil(A.samplesPerLine/8/i),g=Math.ceil(A.scanLines/8/r);for(t in A.components)if(A.components.hasOwnProperty(t)){e=A.components[t];for(var n=Math.ceil(Math.ceil(A.samplesPerLine/8)*e.h/i),a=Math.ceil(Math.ceil(A.scanLines/8)*e.v/r),o=I*e.h,B=g*e.v,C=[],Q=0;Q<B;Q++){for(var E=[],s=0;s<o;s++)E.push(new Int32Array(64));C.push(E)}e.blocksPerLine=n,e.blocksPerColumn=a,e.blocks=C}A.maxH=i,A.maxV=r,A.mcusPerLine=I,A.mcusPerColumn=g}var r,I,g=t();if(65496!==g)throw new Error(\"SOI not found\");for(g=t();65497!==g;){switch(g){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:var n=(r=void 0,I=void 0,r=t(),I=A.subarray(e,e+r-2),e+=I.length,I);65504===g&&74===n[0]&&70===n[1]&&73===n[2]&&70===n[3]&&0===n[4]&&(this.jfif={version:{major:n[5],minor:n[6]},densityUnits:n[7],xDensity:n[8]<<8|n[9],yDensity:n[10]<<8|n[11],thumbWidth:n[12],thumbHeight:n[13],thumbData:n.subarray(14,14+3*n[12]*n[13])}),65518===g&&65===n[0]&&100===n[1]&&111===n[2]&&98===n[3]&&101===n[4]&&0===n[5]&&(this.adobe={version:n[6],flags0:n[7]<<8|n[8],flags1:n[9]<<8|n[10],transformCode:n[11]});break;case 65499:for(var a=t()+e-2;e<a;){var o=A[e++],B=new Int32Array(64);if(o>>4==0)for(var C=0;C<64;C++){B[v[C]]=A[e++]}else{if(o>>4!=1)throw new Error(\"DQT: invalid table spec\");for(var Q=0;Q<64;Q++){B[v[Q]]=t()}}this.quantizationTables[15&o]=B}break;case 65472:case 65473:case 65474:t();for(var E={extended:65473===g,progressive:65474===g,precision:A[e++],scanLines:t(),samplesPerLine:t(),components:{},componentsOrder:[]},s=A[e++],f=void 0,c=0;c<s;c++){f=A[e];var h=A[e+1]>>4,l=15&A[e+1],u=A[e+2];E.componentsOrder.push(f),E.components[f]={h:h,v:l,quantizationIdx:u},e+=3}i(E),this.frames.push(E);break;case 65476:for(var w=t(),d=2;d<w;){for(var D=A[e++],y=new Uint8Array(16),k=0,p=0;p<16;p++,e++)y[p]=A[e],k+=y[p];for(var m=new Uint8Array(k),G=0;G<k;G++,e++)m[G]=A[e];d+=17+k,D>>4==0?this.huffmanTablesDC[15&D]=R(y,m):this.huffmanTablesAC[15&D]=R(y,m)}break;case 65501:t(),this.resetInterval=t();break;case 65498:t();for(var F=A[e++],S=[],L=this.frames[0],b=0;b<F;b++){var M=L.components[A[e++]],N=A[e++];M.huffmanTableDC=this.huffmanTablesDC[N>>4],M.huffmanTableAC=this.huffmanTablesAC[15&N],S.push(M)}var x=A[e++],J=A[e++],q=A[e++],Y=U(A,e,L,S,this.resetInterval,x,J,q>>4,15&q);e+=Y;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 \".concat(g.toString(16)))}g=t()}}},{key:\"getResult\",value:function(){var A=this.frames;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(var e=0;e<this.frames.length;e++)for(var t=this.frames[e].components,i=0,r=Object.keys(t);i<r.length;i++){var I=r[i];t[I].quantizationTable=this.quantizationTables[t[I].quantizationIdx],delete t[I].quantizationIdx}for(var g=A[0],n=g.components,a=g.componentsOrder,o=[],B=g.samplesPerLine,C=g.scanLines,Q=0;Q<a.length;Q++){var E=n[a[Q]];o.push({lines:L(0,E),scaleX:E.h/g.maxH,scaleY:E.v/g.maxV})}for(var s=new Uint8Array(B*C*o.length),f=0,c=0;c<C;++c)for(var h=0;h<B;++h)for(var l=0;l<o.length;++l){var u=o[l];s[f]=u.lines[0|c*u.scaleY][0|h*u.scaleX],++f}return s}}]),A}(),M=function(A){s(t,w);var e=S(t);function t(A){var i;return B(this,t),(i=e.call(this)).reader=new b,A.JPEGTables&&i.reader.parse(A.JPEGTables),i}return Q(t,[{key:\"decodeBlock\",value:function(A){return this.reader.resetFrames(),this.reader.parse(new Uint8Array(A)),this.reader.getResult().buffer}}]),t}(),N=Object.freeze({__proto__:null,default:M});function x(A){for(var e=A.length;--e>=0;)A[e]=0}x(new Array(576)),x(new Array(60)),x(new Array(512)),x(new Array(256)),x(new Array(29)),x(new Array(30));var J=function(A,e,t,i){for(var r=65535&A|0,I=A>>>16&65535|0,g=0;0!==t;){t-=g=t>2e3?2e3:t;do{I=I+(r=r+e[i++]|0)|0}while(--g);r%=65521,I%=65521}return r|I<<16|0},q=new Uint32Array(function(){for(var A,e=[],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}()),Y=function(A,e,t,i){var r=q,I=i+t;A^=-1;for(var g=i;g<I;g++)A=A>>>8^r[255&(A^e[g])];return-1^A},K={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\"},H={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},O=function(A,e){return Object.prototype.hasOwnProperty.call(A,e)},P=function(A){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var i=e.shift();if(i){if(\"object\"!==t(i))throw new TypeError(i+\"must be non-object\");for(var r in i)O(i,r)&&(A[r]=i[r])}}return A},T=function(A){for(var e=0,t=0,i=A.length;t<i;t++)e+=A[t].length;for(var r=new Uint8Array(e),I=0,g=0,n=A.length;I<n;I++){var a=A[I];r.set(a,g),g+=a.length}return r},V=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(A){V=!1}for(var _=new Uint8Array(256),X=0;X<256;X++)_[X]=X>=252?6:X>=248?5:X>=240?4:X>=224?3:X>=192?2:1;_[254]=_[254]=1;var Z=function(A){if(\"function\"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(A);var e,t,i,r,I,g=A.length,n=0;for(r=0;r<g;r++)55296==(64512&(t=A.charCodeAt(r)))&&r+1<g&&56320==(64512&(i=A.charCodeAt(r+1)))&&(t=65536+(t-55296<<10)+(i-56320),r++),n+=t<128?1:t<2048?2:t<65536?3:4;for(e=new Uint8Array(n),I=0,r=0;I<n;r++)55296==(64512&(t=A.charCodeAt(r)))&&r+1<g&&56320==(64512&(i=A.charCodeAt(r+1)))&&(t=65536+(t-55296<<10)+(i-56320),r++),t<128?e[I++]=t:t<2048?(e[I++]=192|t>>>6,e[I++]=128|63&t):t<65536?(e[I++]=224|t>>>12,e[I++]=128|t>>>6&63,e[I++]=128|63&t):(e[I++]=240|t>>>18,e[I++]=128|t>>>12&63,e[I++]=128|t>>>6&63,e[I++]=128|63&t);return e},j=function(A,e){var t,i,r=e||A.length;if(\"function\"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(A.subarray(0,e));var I=new Array(2*r);for(i=0,t=0;t<r;){var g=A[t++];if(g<128)I[i++]=g;else{var n=_[g];if(n>4)I[i++]=65533,t+=n-1;else{for(g&=2===n?31:3===n?15:7;n>1&&t<r;)g=g<<6|63&A[t++],n--;n>1?I[i++]=65533:g<65536?I[i++]=g:(g-=65536,I[i++]=55296|g>>10&1023,I[i++]=56320|1023&g)}}}return function(A,e){if(e<65534&&A.subarray&&V)return String.fromCharCode.apply(null,A.length===e?A:A.subarray(0,e));for(var t=\"\",i=0;i<e;i++)t+=String.fromCharCode(A[i]);return t}(I,i)},W=function(A,e){(e=e||A.length)>A.length&&(e=A.length);for(var t=e-1;t>=0&&128==(192&A[t]);)t--;return t<0||0===t?e:t+_[A[t]]>e?t:e};var z=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},$=function(A,e){var t,i,r,I,g,n,a,o,B,C,Q,E,s,f,c,h,l,u,w,d,D,y,k,p,m=A.state;t=A.next_in,k=A.input,i=t+(A.avail_in-5),r=A.next_out,p=A.output,I=r-(e-A.avail_out),g=r+(A.avail_out-257),n=m.dmax,a=m.wsize,o=m.whave,B=m.wnext,C=m.window,Q=m.hold,E=m.bits,s=m.lencode,f=m.distcode,c=(1<<m.lenbits)-1,h=(1<<m.distbits)-1;A:do{E<15&&(Q+=k[t++]<<E,E+=8,Q+=k[t++]<<E,E+=8),l=s[Q&c];e:for(;;){if(Q>>>=u=l>>>24,E-=u,0===(u=l>>>16&255))p[r++]=65535&l;else{if(!(16&u)){if(0==(64&u)){l=s[(65535&l)+(Q&(1<<u)-1)];continue e}if(32&u){m.mode=12;break A}A.msg=\"invalid literal/length code\",m.mode=30;break A}w=65535&l,(u&=15)&&(E<u&&(Q+=k[t++]<<E,E+=8),w+=Q&(1<<u)-1,Q>>>=u,E-=u),E<15&&(Q+=k[t++]<<E,E+=8,Q+=k[t++]<<E,E+=8),l=f[Q&h];t:for(;;){if(Q>>>=u=l>>>24,E-=u,!(16&(u=l>>>16&255))){if(0==(64&u)){l=f[(65535&l)+(Q&(1<<u)-1)];continue t}A.msg=\"invalid distance code\",m.mode=30;break A}if(d=65535&l,E<(u&=15)&&(Q+=k[t++]<<E,(E+=8)<u&&(Q+=k[t++]<<E,E+=8)),(d+=Q&(1<<u)-1)>n){A.msg=\"invalid distance too far back\",m.mode=30;break A}if(Q>>>=u,E-=u,d>(u=r-I)){if((u=d-u)>o&&m.sane){A.msg=\"invalid distance too far back\",m.mode=30;break A}if(D=0,y=C,0===B){if(D+=a-u,u<w){w-=u;do{p[r++]=C[D++]}while(--u);D=r-d,y=p}}else if(B<u){if(D+=a+B-u,(u-=B)<w){w-=u;do{p[r++]=C[D++]}while(--u);if(D=0,B<w){w-=u=B;do{p[r++]=C[D++]}while(--u);D=r-d,y=p}}}else if(D+=B-u,u<w){w-=u;do{p[r++]=C[D++]}while(--u);D=r-d,y=p}for(;w>2;)p[r++]=y[D++],p[r++]=y[D++],p[r++]=y[D++],w-=3;w&&(p[r++]=y[D++],w>1&&(p[r++]=y[D++]))}else{D=r-d;do{p[r++]=p[D++],p[r++]=p[D++],p[r++]=p[D++],w-=3}while(w>2);w&&(p[r++]=p[D++],w>1&&(p[r++]=p[D++]))}break}}break}}while(t<i&&r<g);t-=w=E>>3,Q&=(1<<(E-=w<<3))-1,A.next_in=t,A.next_out=r,A.avail_in=t<i?i-t+5:5-(t-i),A.avail_out=r<g?g-r+257:257-(r-g),m.hold=Q,m.bits=E},AA=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]),eA=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]),tA=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]),iA=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]),rA=function(A,e,t,i,r,I,g,n){var a,o,B,C,Q,E,s,f,c,h=n.bits,l=0,u=0,w=0,d=0,D=0,y=0,k=0,p=0,m=0,G=0,F=null,S=0,v=new Uint16Array(16),R=new Uint16Array(16),U=null,L=0;for(l=0;l<=15;l++)v[l]=0;for(u=0;u<i;u++)v[e[t+u]]++;for(D=h,d=15;d>=1&&0===v[d];d--);if(D>d&&(D=d),0===d)return r[I++]=20971520,r[I++]=20971520,n.bits=1,0;for(w=1;w<d&&0===v[w];w++);for(D<w&&(D=w),p=1,l=1;l<=15;l++)if(p<<=1,(p-=v[l])<0)return-1;if(p>0&&(0===A||1!==d))return-1;for(R[1]=0,l=1;l<15;l++)R[l+1]=R[l]+v[l];for(u=0;u<i;u++)0!==e[t+u]&&(g[R[e[t+u]]++]=u);if(0===A?(F=U=g,E=19):1===A?(F=AA,S-=257,U=eA,L-=257,E=256):(F=tA,U=iA,E=-1),G=0,u=0,l=w,Q=I,y=D,k=0,B=-1,C=(m=1<<D)-1,1===A&&m>852||2===A&&m>592)return 1;for(;;){s=l-k,g[u]<E?(f=0,c=g[u]):g[u]>E?(f=U[L+g[u]],c=F[S+g[u]]):(f=96,c=0),a=1<<l-k,w=o=1<<y;do{r[Q+(G>>k)+(o-=a)]=s<<24|f<<16|c|0}while(0!==o);for(a=1<<l-1;G&a;)a>>=1;if(0!==a?(G&=a-1,G+=a):G=0,u++,0==--v[l]){if(l===d)break;l=e[t+g[u]]}if(l>D&&(G&C)!==B){for(0===k&&(k=D),Q+=w,p=1<<(y=l-k);y+k<d&&!((p-=v[y+k])<=0);)y++,p<<=1;if(m+=1<<y,1===A&&m>852||2===A&&m>592)return 1;r[B=G&C]=D<<24|y<<16|Q-I|0}}return 0!==G&&(r[Q+G]=l-k<<24|64<<16|0),n.bits=D,0},IA=H.Z_FINISH,gA=H.Z_BLOCK,nA=H.Z_TREES,aA=H.Z_OK,oA=H.Z_STREAM_END,BA=H.Z_NEED_DICT,CA=H.Z_STREAM_ERROR,QA=H.Z_DATA_ERROR,EA=H.Z_MEM_ERROR,sA=H.Z_BUF_ERROR,fA=H.Z_DEFLATED,cA=function(A){return(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24)};function hA(){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}var lA,uA,wA=function(A){if(!A||!A.state)return CA;var e=A.state;return A.total_in=A.total_out=e.total=0,A.msg=\"\",e.wrap&&(A.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,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,aA},dA=function(A){if(!A||!A.state)return CA;var e=A.state;return e.wsize=0,e.whave=0,e.wnext=0,wA(A)},DA=function(A,e){var t;if(!A||!A.state)return CA;var i=A.state;return e<0?(t=0,e=-e):(t=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?CA:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,dA(A))},yA=function(A,e){if(!A)return CA;var t=new hA;A.state=t,t.window=null;var i=DA(A,e);return i!==aA&&(A.state=null),i},kA=!0,pA=function(A){if(kA){lA=new Int32Array(512),uA=new Int32Array(32);for(var e=0;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(rA(1,A.lens,0,288,lA,0,A.work,{bits:9}),e=0;e<32;)A.lens[e++]=5;rA(2,A.lens,0,32,uA,0,A.work,{bits:5}),kA=!1}A.lencode=lA,A.lenbits=9,A.distcode=uA,A.distbits=5},mA=function(A,e,t,i){var r,I=A.state;return null===I.window&&(I.wsize=1<<I.wbits,I.wnext=0,I.whave=0,I.window=new Uint8Array(I.wsize)),i>=I.wsize?(I.window.set(e.subarray(t-I.wsize,t),0),I.wnext=0,I.whave=I.wsize):((r=I.wsize-I.wnext)>i&&(r=i),I.window.set(e.subarray(t-i,t-i+r),I.wnext),(i-=r)?(I.window.set(e.subarray(t-i,t),0),I.wnext=i,I.whave=I.wsize):(I.wnext+=r,I.wnext===I.wsize&&(I.wnext=0),I.whave<I.wsize&&(I.whave+=r))),0},GA={inflateReset:dA,inflateReset2:DA,inflateResetKeep:wA,inflateInit:function(A){return yA(A,15)},inflateInit2:yA,inflate:function(A,e){var t,i,r,I,g,n,a,o,B,C,Q,E,s,f,c,h,l,u,w,d,D,y,k,p,m=0,G=new Uint8Array(4),F=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!A||!A.state||!A.output||!A.input&&0!==A.avail_in)return CA;12===(t=A.state).mode&&(t.mode=13),g=A.next_out,r=A.output,a=A.avail_out,I=A.next_in,i=A.input,n=A.avail_in,o=t.hold,B=t.bits,C=n,Q=a,y=aA;A:for(;;)switch(t.mode){case 1:if(0===t.wrap){t.mode=13;break}for(;B<16;){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}if(2&t.wrap&&35615===o){t.check=0,G[0]=255&o,G[1]=o>>>8&255,t.check=Y(t.check,G,2,0),o=0,B=0,t.mode=2;break}if(t.flags=0,t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&o)<<8)+(o>>8))%31){A.msg=\"incorrect header check\",t.mode=30;break}if((15&o)!==fA){A.msg=\"unknown compression method\",t.mode=30;break}if(B-=4,D=8+(15&(o>>>=4)),0===t.wbits)t.wbits=D;else if(D>t.wbits){A.msg=\"invalid window size\",t.mode=30;break}t.dmax=1<<t.wbits,A.adler=t.check=1,t.mode=512&o?10:12,o=0,B=0;break;case 2:for(;B<16;){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}if(t.flags=o,(255&t.flags)!==fA){A.msg=\"unknown compression method\",t.mode=30;break}if(57344&t.flags){A.msg=\"unknown header flags set\",t.mode=30;break}t.head&&(t.head.text=o>>8&1),512&t.flags&&(G[0]=255&o,G[1]=o>>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0,t.mode=3;case 3:for(;B<32;){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}t.head&&(t.head.time=o),512&t.flags&&(G[0]=255&o,G[1]=o>>>8&255,G[2]=o>>>16&255,G[3]=o>>>24&255,t.check=Y(t.check,G,4,0)),o=0,B=0,t.mode=4;case 4:for(;B<16;){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}t.head&&(t.head.xflags=255&o,t.head.os=o>>8),512&t.flags&&(G[0]=255&o,G[1]=o>>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0,t.mode=5;case 5:if(1024&t.flags){for(;B<16;){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}t.length=o,t.head&&(t.head.extra_len=o),512&t.flags&&(G[0]=255&o,G[1]=o>>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0}else t.head&&(t.head.extra=null);t.mode=6;case 6:if(1024&t.flags&&((E=t.length)>n&&(E=n),E&&(t.head&&(D=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(I,I+E),D)),512&t.flags&&(t.check=Y(t.check,i,E,I)),n-=E,I+=E,t.length-=E),t.length))break A;t.length=0,t.mode=7;case 7:if(2048&t.flags){if(0===n)break A;E=0;do{D=i[I+E++],t.head&&D&&t.length<65536&&(t.head.name+=String.fromCharCode(D))}while(D&&E<n);if(512&t.flags&&(t.check=Y(t.check,i,E,I)),n-=E,I+=E,D)break A}else t.head&&(t.head.name=null);t.length=0,t.mode=8;case 8:if(4096&t.flags){if(0===n)break A;E=0;do{D=i[I+E++],t.head&&D&&t.length<65536&&(t.head.comment+=String.fromCharCode(D))}while(D&&E<n);if(512&t.flags&&(t.check=Y(t.check,i,E,I)),n-=E,I+=E,D)break A}else t.head&&(t.head.comment=null);t.mode=9;case 9:if(512&t.flags){for(;B<16;){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}if(o!==(65535&t.check)){A.msg=\"header crc mismatch\",t.mode=30;break}o=0,B=0}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=!0),A.adler=t.check=0,t.mode=12;break;case 10:for(;B<32;){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}A.adler=t.check=cA(o),o=0,B=0,t.mode=11;case 11:if(0===t.havedict)return A.next_out=g,A.avail_out=a,A.next_in=I,A.avail_in=n,t.hold=o,t.bits=B,BA;A.adler=t.check=1,t.mode=12;case 12:if(e===gA||e===nA)break A;case 13:if(t.last){o>>>=7&B,B-=7&B,t.mode=27;break}for(;B<3;){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}switch(t.last=1&o,B-=1,3&(o>>>=1)){case 0:t.mode=14;break;case 1:if(pA(t),t.mode=20,e===nA){o>>>=2,B-=2;break A}break;case 2:t.mode=17;break;case 3:A.msg=\"invalid block type\",t.mode=30}o>>>=2,B-=2;break;case 14:for(o>>>=7&B,B-=7&B;B<32;){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}if((65535&o)!=(o>>>16^65535)){A.msg=\"invalid stored block lengths\",t.mode=30;break}if(t.length=65535&o,o=0,B=0,t.mode=15,e===nA)break A;case 15:t.mode=16;case 16:if(E=t.length){if(E>n&&(E=n),E>a&&(E=a),0===E)break A;r.set(i.subarray(I,I+E),g),n-=E,I+=E,a-=E,g+=E,t.length-=E;break}t.mode=12;break;case 17:for(;B<14;){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}if(t.nlen=257+(31&o),o>>>=5,B-=5,t.ndist=1+(31&o),o>>>=5,B-=5,t.ncode=4+(15&o),o>>>=4,B-=4,t.nlen>286||t.ndist>30){A.msg=\"too many length or distance symbols\",t.mode=30;break}t.have=0,t.mode=18;case 18:for(;t.have<t.ncode;){for(;B<3;){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}t.lens[F[t.have++]]=7&o,o>>>=3,B-=3}for(;t.have<19;)t.lens[F[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,k={bits:t.lenbits},y=rA(0,t.lens,0,19,t.lencode,0,t.work,k),t.lenbits=k.bits,y){A.msg=\"invalid code lengths set\",t.mode=30;break}t.have=0,t.mode=19;case 19:for(;t.have<t.nlen+t.ndist;){for(;h=(m=t.lencode[o&(1<<t.lenbits)-1])>>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}if(l<16)o>>>=c,B-=c,t.lens[t.have++]=l;else{if(16===l){for(p=c+2;B<p;){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}if(o>>>=c,B-=c,0===t.have){A.msg=\"invalid bit length repeat\",t.mode=30;break}D=t.lens[t.have-1],E=3+(3&o),o>>>=2,B-=2}else if(17===l){for(p=c+3;B<p;){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}B-=c,D=0,E=3+(7&(o>>>=c)),o>>>=3,B-=3}else{for(p=c+7;B<p;){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}B-=c,D=0,E=11+(127&(o>>>=c)),o>>>=7,B-=7}if(t.have+E>t.nlen+t.ndist){A.msg=\"invalid bit length repeat\",t.mode=30;break}for(;E--;)t.lens[t.have++]=D}}if(30===t.mode)break;if(0===t.lens[256]){A.msg=\"invalid code -- missing end-of-block\",t.mode=30;break}if(t.lenbits=9,k={bits:t.lenbits},y=rA(1,t.lens,0,t.nlen,t.lencode,0,t.work,k),t.lenbits=k.bits,y){A.msg=\"invalid literal/lengths set\",t.mode=30;break}if(t.distbits=6,t.distcode=t.distdyn,k={bits:t.distbits},y=rA(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,k),t.distbits=k.bits,y){A.msg=\"invalid distances set\",t.mode=30;break}if(t.mode=20,e===nA)break A;case 20:t.mode=21;case 21:if(n>=6&&a>=258){A.next_out=g,A.avail_out=a,A.next_in=I,A.avail_in=n,t.hold=o,t.bits=B,$(A,Q),g=A.next_out,r=A.output,a=A.avail_out,I=A.next_in,i=A.input,n=A.avail_in,o=t.hold,B=t.bits,12===t.mode&&(t.back=-1);break}for(t.back=0;h=(m=t.lencode[o&(1<<t.lenbits)-1])>>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}if(h&&0==(240&h)){for(u=c,w=h,d=l;h=(m=t.lencode[d+((o&(1<<u+w)-1)>>u)])>>>16&255,l=65535&m,!(u+(c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}o>>>=u,B-=u,t.back+=u}if(o>>>=c,B-=c,t.back+=c,t.length=l,0===h){t.mode=26;break}if(32&h){t.back=-1,t.mode=12;break}if(64&h){A.msg=\"invalid literal/length code\",t.mode=30;break}t.extra=15&h,t.mode=22;case 22:if(t.extra){for(p=t.extra;B<p;){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}t.length+=o&(1<<t.extra)-1,o>>>=t.extra,B-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=23;case 23:for(;h=(m=t.distcode[o&(1<<t.distbits)-1])>>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}if(0==(240&h)){for(u=c,w=h,d=l;h=(m=t.distcode[d+((o&(1<<u+w)-1)>>u)])>>>16&255,l=65535&m,!(u+(c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}o>>>=u,B-=u,t.back+=u}if(o>>>=c,B-=c,t.back+=c,64&h){A.msg=\"invalid distance code\",t.mode=30;break}t.offset=l,t.extra=15&h,t.mode=24;case 24:if(t.extra){for(p=t.extra;B<p;){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}t.offset+=o&(1<<t.extra)-1,o>>>=t.extra,B-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){A.msg=\"invalid distance too far back\",t.mode=30;break}t.mode=25;case 25:if(0===a)break A;if(E=Q-a,t.offset>E){if((E=t.offset-E)>t.whave&&t.sane){A.msg=\"invalid distance too far back\",t.mode=30;break}E>t.wnext?(E-=t.wnext,s=t.wsize-E):s=t.wnext-E,E>t.length&&(E=t.length),f=t.window}else f=r,s=g-t.offset,E=t.length;E>a&&(E=a),a-=E,t.length-=E;do{r[g++]=f[s++]}while(--E);0===t.length&&(t.mode=21);break;case 26:if(0===a)break A;r[g++]=t.length,a--,t.mode=21;break;case 27:if(t.wrap){for(;B<32;){if(0===n)break A;n--,o|=i[I++]<<B,B+=8}if(Q-=a,A.total_out+=Q,t.total+=Q,Q&&(A.adler=t.check=t.flags?Y(t.check,r,Q,g-Q):J(t.check,r,Q,g-Q)),Q=a,(t.flags?o:cA(o))!==t.check){A.msg=\"incorrect data check\",t.mode=30;break}o=0,B=0}t.mode=28;case 28:if(t.wrap&&t.flags){for(;B<32;){if(0===n)break A;n--,o+=i[I++]<<B,B+=8}if(o!==(4294967295&t.total)){A.msg=\"incorrect length check\",t.mode=30;break}o=0,B=0}t.mode=29;case 29:y=oA;break A;case 30:y=QA;break A;case 31:return EA;default:return CA}return A.next_out=g,A.avail_out=a,A.next_in=I,A.avail_in=n,t.hold=o,t.bits=B,(t.wsize||Q!==A.avail_out&&t.mode<30&&(t.mode<27||e!==IA))&&mA(A,A.output,A.next_out,Q-A.avail_out),C-=A.avail_in,Q-=A.avail_out,A.total_in+=C,A.total_out+=Q,t.total+=Q,t.wrap&&Q&&(A.adler=t.check=t.flags?Y(t.check,r,Q,A.next_out-Q):J(t.check,r,Q,A.next_out-Q)),A.data_type=t.bits+(t.last?64:0)+(12===t.mode?128:0)+(20===t.mode||15===t.mode?256:0),(0===C&&0===Q||e===IA)&&y===aA&&(y=sA),y},inflateEnd:function(A){if(!A||!A.state)return CA;var e=A.state;return e.window&&(e.window=null),A.state=null,aA},inflateGetHeader:function(A,e){if(!A||!A.state)return CA;var t=A.state;return 0==(2&t.wrap)?CA:(t.head=e,e.done=!1,aA)},inflateSetDictionary:function(A,e){var t,i=e.length;return A&&A.state?0!==(t=A.state).wrap&&11!==t.mode?CA:11===t.mode&&J(1,e,i,0)!==t.check?QA:mA(A,e,i,i)?(t.mode=31,EA):(t.havedict=1,aA):CA},inflateInfo:\"pako inflate (from Nodeca project)\"};var FA=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},SA=Object.prototype.toString,vA=H.Z_NO_FLUSH,RA=H.Z_FINISH,UA=H.Z_OK,LA=H.Z_STREAM_END,bA=H.Z_NEED_DICT,MA=H.Z_STREAM_ERROR,NA=H.Z_DATA_ERROR,xA=H.Z_MEM_ERROR;function JA(A){this.options=P({chunkSize:65536,windowBits:15,to:\"\"},A||{});var 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&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new z,this.strm.avail_out=0;var t=GA.inflateInit2(this.strm,e.windowBits);if(t!==UA)throw new Error(K[t]);if(this.header=new FA,GA.inflateGetHeader(this.strm,this.header),e.dictionary&&(\"string\"==typeof e.dictionary?e.dictionary=Z(e.dictionary):\"[object ArrayBuffer]\"===SA.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=GA.inflateSetDictionary(this.strm,e.dictionary))!==UA))throw new Error(K[t])}function qA(A,e){var t=new JA(e);if(t.push(A),t.err)throw t.msg||K[t.err];return t.result}JA.prototype.push=function(A,e){var t,i,r,I=this.strm,g=this.options.chunkSize,n=this.options.dictionary;if(this.ended)return!1;for(i=e===~~e?e:!0===e?RA:vA,\"[object ArrayBuffer]\"===SA.call(A)?I.input=new Uint8Array(A):I.input=A,I.next_in=0,I.avail_in=I.input.length;;){for(0===I.avail_out&&(I.output=new Uint8Array(g),I.next_out=0,I.avail_out=g),(t=GA.inflate(I,i))===bA&&n&&((t=GA.inflateSetDictionary(I,n))===UA?t=GA.inflate(I,i):t===NA&&(t=bA));I.avail_in>0&&t===LA&&I.state.wrap>0&&0!==A[I.next_in];)GA.inflateReset(I),t=GA.inflate(I,i);switch(t){case MA:case NA:case bA:case xA:return this.onEnd(t),this.ended=!0,!1}if(r=I.avail_out,I.next_out&&(0===I.avail_out||t===LA))if(\"string\"===this.options.to){var a=W(I.output,I.next_out),o=I.next_out-a,B=j(I.output,a);I.next_out=o,I.avail_out=g-o,o&&I.output.set(I.output.subarray(a,a+o),0),this.onData(B)}else this.onData(I.output.length===I.next_out?I.output:I.output.subarray(0,I.next_out));if(t!==UA||0!==r){if(t===LA)return t=GA.inflateEnd(this.strm),this.onEnd(t),this.ended=!0,!0;if(0===I.avail_in)break}}return!0},JA.prototype.onData=function(A){this.chunks.push(A)},JA.prototype.onEnd=function(A){A===UA&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=T(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};var YA={Inflate:JA,inflate:qA,inflateRaw:function(A,e){return(e=e||{}).raw=!0,qA(A,e)},ungzip:qA,constants:H}.inflate;function KA(A){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var HA=function(A){s(t,w);var e=KA(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:\"decodeBlock\",value:function(A){return YA(new Uint8Array(A)).buffer}}]),t}(),OA=Object.freeze({__proto__:null,default:HA});function PA(A){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var TA,VA=function(A){s(t,w);var e=PA(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:\"decodeBlock\",value:function(A){for(var e=new DataView(A),t=[],i=0;i<A.byteLength;++i){var r=e.getInt8(i);if(r<0){var I=e.getUint8(i+1);r=-r;for(var g=0;g<=r;++g)t.push(I);i+=1}else{for(var n=0;n<=r;++n)t.push(e.getUint8(i+n+1));i+=r+1}}return new Uint8Array(t).buffer}}]),t}(),_A=Object.freeze({__proto__:null,default:VA}),XA={exports:{}};TA=XA,\\n/* 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 */\\nfunction(){var A,e,t,i,r,I,g,n,a,o,B,C,Q,E,s,f,c=(A={defaultNoDataValue:-34027999387901484e22,decode:function(I,g){var n=(g=g||{}).encodedMaskData||null===g.encodedMaskData,a=r(I,g.inputOffset||0,n),o=null!==g.noDataValue?g.noDataValue:A.defaultNoDataValue,B=e(a,g.pixelType||Float32Array,g.encodedMaskData,o,g.returnMask),C={width:a.width,height:a.height,pixelData:B.resultPixels,minValue:B.minValue,maxValue:a.pixels.maxValue,noDataValue:o};return B.resultMask&&(C.maskData=B.resultMask),g.returnEncodedMask&&a.mask&&(C.encodedMaskData=a.mask.bitset?a.mask.bitset:null),g.returnFileInfo&&(C.fileInfo=t(a),g.computeUsedBitDepths&&(C.fileInfo.bitDepths=i(a))),C}},e=function(A,e,t,i,r){var g,n,a,o=0,B=A.pixels.numBlocksX,C=A.pixels.numBlocksY,Q=Math.floor(A.width/B),E=Math.floor(A.height/C),s=2*A.maxZError,f=Number.MAX_VALUE;t=t||(A.mask?A.mask.bitset:null),n=new e(A.width*A.height),r&&t&&(a=new Uint8Array(A.width*A.height));for(var c,h,l=new Float32Array(Q*E),u=0;u<=C;u++){var w=u!==C?E:A.height%C;if(0!==w)for(var d=0;d<=B;d++){var D=d!==B?Q:A.width%B;if(0!==D){var y,k,p,m,G=u*A.width*E+d*Q,F=A.width-D,S=A.pixels.blocks[o];if(S.encoding<2?(0===S.encoding?y=S.rawData:(I(S.stuffedData,S.bitsPerPixel,S.numValidPixels,S.offset,s,l,A.pixels.maxValue),y=l),k=0):p=2===S.encoding?0:S.offset,t)for(h=0;h<w;h++){for(7&G&&(m=t[G>>3],m<<=7&G),c=0;c<D;c++)7&G||(m=t[G>>3]),128&m?(a&&(a[G]=1),f=f>(g=S.encoding<2?y[k++]:p)?g:f,n[G++]=g):(a&&(a[G]=0),n[G++]=i),m<<=1;G+=F}else if(S.encoding<2)for(h=0;h<w;h++){for(c=0;c<D;c++)f=f>(g=y[k++])?g:f,n[G++]=g;G+=F}else for(f=f>p?p:f,h=0;h<w;h++){for(c=0;c<D;c++)n[G++]=p;G+=F}if(1===S.encoding&&k!==S.numValidPixels)throw\"Block and Mask do not match\";o++}}}return{resultPixels:n,resultMask:a,minValue:f}},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 I=new DataView(A,e,24);if(i.fileVersion=I.getInt32(0,!0),i.imageType=I.getInt32(4,!0),i.height=I.getUint32(8,!0),i.width=I.getUint32(12,!0),i.maxZError=I.getFloat64(16,!0),e+=24,!t)if(I=new DataView(A,e,16),i.mask={},i.mask.numBlocksY=I.getUint32(0,!0),i.mask.numBlocksX=I.getUint32(4,!0),i.mask.numBytes=I.getUint32(8,!0),i.mask.maxValue=I.getFloat32(12,!0),e+=16,i.mask.numBytes>0){var g=new Uint8Array(Math.ceil(i.width*i.height/8)),n=(I=new DataView(A,e,i.mask.numBytes)).getInt16(0,!0),a=2,o=0;do{if(n>0)for(;n--;)g[o++]=I.getUint8(a++);else{var B=I.getUint8(a++);for(n=-n;n--;)g[o++]=B}n=I.getInt16(a,!0),a+=2}while(a<i.mask.numBytes);if(-32768!==n||o<g.length)throw\"Unexpected end of mask RLE encoding\";i.mask.bitset=g,e+=i.mask.numBytes}else 0==(i.mask.numBytes|i.mask.numBlocksY|i.mask.maxValue)&&(i.mask.bitset=new Uint8Array(Math.ceil(i.width*i.height/8)));I=new DataView(A,e,16),i.pixels={},i.pixels.numBlocksY=I.getUint32(0,!0),i.pixels.numBlocksX=I.getUint32(4,!0),i.pixels.numBytes=I.getUint32(8,!0),i.pixels.maxValue=I.getFloat32(12,!0),e+=16;var C=i.pixels.numBlocksX,Q=i.pixels.numBlocksY,E=C+(i.width%C>0?1:0),s=Q+(i.height%Q>0?1:0);i.pixels.blocks=new Array(E*s);for(var f=0,c=0;c<s;c++)for(var h=0;h<E;h++){var l=0,u=A.byteLength-e;I=new DataView(A,e,Math.min(10,u));var w={};i.pixels.blocks[f++]=w;var d=I.getUint8(0);if(l++,w.encoding=63&d,w.encoding>3)throw\"Invalid block encoding (\"+w.encoding+\")\";if(2!==w.encoding){if(0!==d&&2!==d){if(d>>=6,w.offsetType=d,2===d)w.offset=I.getInt8(1),l++;else if(1===d)w.offset=I.getInt16(1,!0),l+=2;else{if(0!==d)throw\"Invalid block offset type\";w.offset=I.getFloat32(1,!0),l+=4}if(1===w.encoding)if(d=I.getUint8(l),l++,w.bitsPerPixel=63&d,d>>=6,w.numValidPixelsType=d,2===d)w.numValidPixels=I.getUint8(l),l++;else if(1===d)w.numValidPixels=I.getUint16(l,!0),l+=2;else{if(0!==d)throw\"Invalid valid pixel count type\";w.numValidPixels=I.getUint32(l,!0),l+=4}}var D;if(e+=l,3!==w.encoding)if(0===w.encoding){var y=(i.pixels.numBytes-1)/4;if(y!==Math.floor(y))throw\"uncompressed block has invalid length\";D=new ArrayBuffer(4*y),new Uint8Array(D).set(new Uint8Array(A,e,4*y));var k=new Float32Array(D);w.rawData=k,e+=4*y}else if(1===w.encoding){var p=Math.ceil(w.numValidPixels*w.bitsPerPixel/8),m=Math.ceil(p/4);D=new ArrayBuffer(4*m),new Uint8Array(D).set(new Uint8Array(A,e,p)),w.stuffedData=new Uint32Array(D),e+=p}}else e++}return i.eofOffset=e,i},I=function(A,e,t,i,r,I,g){var n,a,o,B=(1<<e)-1,C=0,Q=0,E=Math.ceil((g-i)/r),s=4*A.length-Math.ceil(e*t/8);for(A[A.length-1]<<=8*s,n=0;n<t;n++){if(0===Q&&(o=A[C++],Q=32),Q>=e)a=o>>>Q-e&B,Q-=e;else{var f=e-Q;a=(o&B)<<f&B,a+=(o=A[C++])>>>(Q=32-f)}I[n]=a<E?i+a*r:g}return I},A),h=(g=function(A,e,t,i,r,I,g,n){var a,o,B,C,Q,E=(1<<t)-1,s=0,f=0,c=4*A.length-Math.ceil(t*i/8);if(A[A.length-1]<<=8*c,r)for(a=0;a<i;a++)0===f&&(B=A[s++],f=32),f>=t?(o=B>>>f-t&E,f-=t):(o=(B&E)<<(C=t-f)&E,o+=(B=A[s++])>>>(f=32-C)),e[a]=r[o];else for(Q=Math.ceil((n-I)/g),a=0;a<i;a++)0===f&&(B=A[s++],f=32),f>=t?(o=B>>>f-t&E,f-=t):(o=(B&E)<<(C=t-f)&E,o+=(B=A[s++])>>>(f=32-C)),e[a]=o<Q?I+o*g:n},n=function(A,e,t,i,r,I){var g,n=(1<<e)-1,a=0,o=0,B=0,C=0,Q=0,E=[],s=4*A.length-Math.ceil(e*t/8);A[A.length-1]<<=8*s;var f=Math.ceil((I-i)/r);for(o=0;o<t;o++)0===C&&(g=A[a++],C=32),C>=e?(Q=g>>>C-e&n,C-=e):(Q=(g&n)<<(B=e-C)&n,Q+=(g=A[a++])>>>(C=32-B)),E[o]=Q<f?i+Q*r:I;return E.unshift(i),E},a=function(A,e,t,i,r,I,g,n){var a,o,B,C,Q=(1<<t)-1,E=0,s=0,f=0;if(r)for(a=0;a<i;a++)0===s&&(B=A[E++],s=32,f=0),s>=t?(o=B>>>f&Q,s-=t,f+=t):(o=B>>>f&Q,s=32-(C=t-s),o|=((B=A[E++])&(1<<C)-1)<<t-C,f=C),e[a]=r[o];else{var c=Math.ceil((n-I)/g);for(a=0;a<i;a++)0===s&&(B=A[E++],s=32,f=0),s>=t?(o=B>>>f&Q,s-=t,f+=t):(o=B>>>f&Q,s=32-(C=t-s),o|=((B=A[E++])&(1<<C)-1)<<t-C,f=C),e[a]=o<c?I+o*g:n}return e},o=function(A,e,t,i,r,I){var g,n=(1<<e)-1,a=0,o=0,B=0,C=0,Q=0,E=0,s=[],f=Math.ceil((I-i)/r);for(o=0;o<t;o++)0===C&&(g=A[a++],C=32,E=0),C>=e?(Q=g>>>E&n,C-=e,E+=e):(Q=g>>>E&n,C=32-(B=e-C),Q|=((g=A[a++])&(1<<B)-1)<<e-B,E=B),s[o]=Q<f?i+Q*r:I;return s.unshift(i),s},B=function(A,e,t,i){var r,I,g,n,a=(1<<t)-1,o=0,B=0,C=4*A.length-Math.ceil(t*i/8);for(A[A.length-1]<<=8*C,r=0;r<i;r++)0===B&&(g=A[o++],B=32),B>=t?(I=g>>>B-t&a,B-=t):(I=(g&a)<<(n=t-B)&a,I+=(g=A[o++])>>>(B=32-n)),e[r]=I;return e},C=function(A,e,t,i){var r,I,g,n,a=(1<<t)-1,o=0,B=0,C=0;for(r=0;r<i;r++)0===B&&(g=A[o++],B=32,C=0),B>=t?(I=g>>>C&a,B-=t,C+=t):(I=g>>>C&a,B=32-(n=t-B),I|=((g=A[o++])&(1<<n)-1)<<t-n,C=n),e[r]=I;return e},Q={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(A){for(var e=65535,t=65535,i=A.length,r=Math.floor(i/2),I=0;r;){var g=r>=359?359:r;r-=g;do{e+=A[I++]<<8,t+=e+=A[I++]}while(--g);e=(65535&e)+(e>>>16),t=(65535&t)+(t>>>16)}return 1&i&&(t+=e+=A[I]<<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 I,g=new DataView(A,t,8),n=g.getInt32(0,!0);if(r.fileVersion=n,t+=4,n>=3&&(r.checksum=g.getUint32(4,!0),t+=4),g=new DataView(A,t,12),r.height=g.getUint32(0,!0),r.width=g.getUint32(4,!0),t+=8,n>=4?(r.numDims=g.getUint32(8,!0),t+=4):r.numDims=1,g=new DataView(A,t,40),r.numValidPixel=g.getUint32(0,!0),r.microBlockSize=g.getInt32(4,!0),r.blobSize=g.getInt32(8,!0),r.imageType=g.getInt32(12,!0),r.maxZError=g.getFloat64(16,!0),r.zMin=g.getFloat64(24,!0),r.zMax=g.getFloat64(32,!0),t+=40,e.headerInfo=r,e.ptr=t,n>=3&&(I=n>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(A,t-I,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),I=this.readSubArray(A,e.ptr,i,r),g=this.readSubArray(A,e.ptr+r,i,r);e.ptr+=2*r;var n,a=!0;for(n=0;n<t.numDims;n++)if(I[n]!==g[n]){a=!1;break}return t.minValues=I,t.maxValues=g,a},readSubArray:function(A,e,t,i){var r;if(t===Uint8Array)r=new Uint8Array(A,e,i);else{var I=new ArrayBuffer(i);new Uint8Array(I).set(new Uint8Array(A,e,i)),r=new t(I)}return r},readMask:function(A,e){var t,i,r=e.ptr,I=e.headerInfo,g=I.width*I.height,n=I.numValidPixel,a=new DataView(A,r,4),o={};if(o.numBytes=a.getUint32(0,!0),r+=4,(0===n||g===n)&&0!==o.numBytes)throw\"invalid mask\";if(0===n)t=new Uint8Array(Math.ceil(g/8)),o.bitset=t,i=new Uint8Array(g),e.pixels.resultMask=i,r+=o.numBytes;else if(o.numBytes>0){t=new Uint8Array(Math.ceil(g/8));var B=(a=new DataView(A,r,o.numBytes)).getInt16(0,!0),C=2,Q=0,E=0;do{if(B>0)for(;B--;)t[Q++]=a.getUint8(C++);else for(E=a.getUint8(C++),B=-B;B--;)t[Q++]=E;B=a.getInt16(C,!0),C+=2}while(C<o.numBytes);if(-32768!==B||Q<t.length)throw\"Unexpected end of mask RLE encoding\";i=new Uint8Array(g);var s=0,f=0;for(f=0;f<g;f++)7&f?(s=t[f>>3],s<<=7&f):s=t[f>>3],128&s&&(i[f]=1);e.pixels.resultMask=i,o.bitset=t,r+=o.numBytes}return e.ptr=r,e.mask=o,!0},readDataOneSweep:function(A,e,t,i){var r,I=e.ptr,g=e.headerInfo,n=g.numDims,a=g.width*g.height,o=g.imageType,B=g.numValidPixel*Q.getDataTypeSize(o)*n,C=e.pixels.resultMask;if(t===Uint8Array)r=new Uint8Array(A,I,B);else{var E=new ArrayBuffer(B);new Uint8Array(E).set(new Uint8Array(A,I,B)),r=new t(E)}if(r.length===a*n)e.pixels.resultPixels=i?Q.swapDimensionOrder(r,a,n,t,!0):r;else{e.pixels.resultPixels=new t(a*n);var s=0,f=0,c=0,h=0;if(n>1){if(i){for(f=0;f<a;f++)if(C[f])for(h=f,c=0;c<n;c++,h+=a)e.pixels.resultPixels[h]=r[s++]}else for(f=0;f<a;f++)if(C[f])for(h=f*n,c=0;c<n;c++)e.pixels.resultPixels[h+c]=r[s++]}else for(f=0;f<a;f++)C[f]&&(e.pixels.resultPixels[f]=r[s++])}return I+=B,e.ptr=I,!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),I=i.getInt32(8,!0),g=i.getInt32(12,!0);if(I>=g)return!1;var n=new Uint32Array(g-I);Q.decodeBits(A,e,n);var a,o,B,C,s=[];for(a=I;a<g;a++)s[o=a-(a<r?0:r)]={first:n[a-I],second:null};var f=A.byteLength-e.ptr,c=Math.ceil(f/4),h=new ArrayBuffer(4*c);new Uint8Array(h).set(new Uint8Array(A,e.ptr,f));var l,u=new Uint32Array(h),w=0,d=0;for(l=u[0],a=I;a<g;a++)(C=s[o=a-(a<r?0:r)].first)>0&&(s[o].second=l<<w>>>32-C,32-w>=C?32===(w+=C)&&(w=0,l=u[++d]):(w+=C-32,l=u[++d],s[o].second|=l>>>32-w));var D=0,y=0,k=new E;for(a=0;a<s.length;a++)void 0!==s[a]&&(D=Math.max(D,s[a].first));y=D>=t?t:D;var p,m,G,F,S,v=[];for(a=I;a<g;a++)if((C=s[o=a-(a<r?0:r)].first)>0)if(p=[C,o],C<=y)for(m=s[o].second<<y-C,G=1<<y-C,B=0;B<G;B++)v[m|B]=p;else for(m=s[o].second,S=k,F=C-1;F>=0;F--)m>>>F&1?(S.right||(S.right=new E),S=S.right):(S.left||(S.left=new E),S=S.left),0!==F||S.val||(S.val=p[1]);return{decodeLut:v,numBitsLUTQick:y,numBitsLUT:D,tree:k,stuffedData:u,srcPtr:d,bitPos:w}},readHuffman:function(A,e,t,i){var r,I,g,n,a,o,B,C,E,s=e.headerInfo.numDims,f=e.headerInfo.height,c=e.headerInfo.width,h=c*f,l=this.readHuffmanTree(A,e),u=l.decodeLut,w=l.tree,d=l.stuffedData,D=l.srcPtr,y=l.bitPos,k=l.numBitsLUTQick,p=l.numBitsLUT,m=0===e.headerInfo.imageType?128:0,G=e.pixels.resultMask,F=0;y>0&&(D++,y=0);var S,v=d[D],R=1===e.encodeMode,U=new t(h*s),L=U;if(s<2||R){for(S=0;S<s;S++)if(s>1&&(L=new t(U.buffer,h*S,h),F=0),e.headerInfo.numValidPixel===c*f)for(C=0,o=0;o<f;o++)for(B=0;B<c;B++,C++){if(I=0,a=n=v<<y>>>32-k,32-y<k&&(a=n|=d[D+1]>>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<<y>>>32-p,32-y<p&&(a=n|=d[D+1]>>>64-y-p),r=w,E=0;E<p;E++)if(!(r=n>>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,R?(g+=B>0?F:o>0?L[C-c]:F,g&=255,L[C]=g,F=g):L[C]=g}else for(C=0,o=0;o<f;o++)for(B=0;B<c;B++,C++)if(G[C]){if(I=0,a=n=v<<y>>>32-k,32-y<k&&(a=n|=d[D+1]>>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<<y>>>32-p,32-y<p&&(a=n|=d[D+1]>>>64-y-p),r=w,E=0;E<p;E++)if(!(r=n>>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,R?(B>0&&G[C-1]?g+=F:o>0&&G[C-c]?g+=L[C-c]:g+=F,g&=255,L[C]=g,F=g):L[C]=g}}else for(C=0,o=0;o<f;o++)for(B=0;B<c;B++)if(C=o*c+B,!G||G[C])for(S=0;S<s;S++,C+=h){if(I=0,a=n=v<<y>>>32-k,32-y<k&&(a=n|=d[D+1]>>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<<y>>>32-p,32-y<p&&(a=n|=d[D+1]>>>64-y-p),r=w,E=0;E<p;E++)if(!(r=n>>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,L[C]=g}e.ptr=e.ptr+4*(D+1)+(y>0?4:0),e.pixels.resultPixels=U,s>1&&!i&&(e.pixels.resultPixels=Q.swapDimensionOrder(U,h,s,t))},decodeBits:function(A,e,t,i,r){var I=e.headerInfo,Q=I.fileVersion,E=0,s=A.byteLength-e.ptr>=5?5:A.byteLength-e.ptr,f=new DataView(A,e.ptr,s),c=f.getUint8(0);E++;var h=c>>6,l=0===h?4:3-h,u=(32&c)>0,w=31&c,d=0;if(1===l)d=f.getUint8(E),E++;else if(2===l)d=f.getUint16(E,!0),E+=2;else{if(4!==l)throw\"Invalid valid pixel count type\";d=f.getUint32(E,!0),E+=4}var D,y,k,p,m,G,F,S,v,R=2*I.maxZError,U=I.numDims>1?I.maxValues[r]:I.zMax;if(u){for(e.counter.lut++,S=f.getUint8(E),E++,p=Math.ceil((S-1)*w/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),k=new Uint8Array(y),e.ptr+=E,k.set(new Uint8Array(A,e.ptr,p)),F=new Uint32Array(y),e.ptr+=p,v=0;S-1>>>v;)v++;p=Math.ceil(d*v/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),(k=new Uint8Array(y)).set(new Uint8Array(A,e.ptr,p)),D=new Uint32Array(y),e.ptr+=p,G=Q>=3?o(F,w,S-1,i,R,U):n(F,w,S-1,i,R,U),Q>=3?a(D,t,v,d,G):g(D,t,v,d,G)}else e.counter.bitstuffer++,v=w,e.ptr+=E,v>0&&(p=Math.ceil(d*v/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),(k=new Uint8Array(y)).set(new Uint8Array(A,e.ptr,p)),D=new Uint32Array(y),e.ptr+=p,Q>=3?null==i?C(D,t,v,d):a(D,t,v,d,!1,i,R,U):null==i?B(D,t,v,d):g(D,t,v,d,!1,i,R,U))},readTiles:function(A,e,t,i){var r=e.headerInfo,I=r.width,g=r.height,n=I*g,a=r.microBlockSize,o=r.imageType,B=Q.getDataTypeSize(o),C=Math.ceil(I/a),E=Math.ceil(g/a);e.pixels.numBlocksY=E,e.pixels.numBlocksX=C,e.pixels.ptr=0;var s,f,c,h,l,u,w,d,D,y,k=0,p=0,m=0,G=0,F=0,S=0,v=0,R=0,U=0,L=0,b=0,M=0,N=0,x=0,J=0,q=new t(a*a),Y=g%a||a,K=I%a||a,H=r.numDims,O=e.pixels.resultMask,P=e.pixels.resultPixels,T=r.fileVersion>=5?14:15,V=r.zMax;for(m=0;m<E;m++)for(F=m!==E-1?a:Y,G=0;G<C;G++)for(L=m*I*a+G*a,b=I-(S=G!==C-1?a:K),d=0;d<H;d++){if(H>1?(y=P,L=m*I*a+G*a,P=new t(e.pixels.resultPixels.buffer,n*d*B,n),V=r.maxValues[d]):y=null,v=A.byteLength-e.ptr,f={},J=0,R=(s=new DataView(A,e.ptr,Math.min(10,v))).getUint8(0),J++,D=r.fileVersion>=5?4&R:0,U=R>>6&255,(R>>2&T)!=(G*a>>3&T))throw\"integrity issue\";if(D&&0===d)throw\"integrity issue\";if((l=3&R)>3)throw e.ptr+=J,\"Invalid block encoding (\"+l+\")\";if(2!==l)if(0===l){if(D)throw\"integrity issue\";if(e.counter.uncompressed++,e.ptr+=J,M=(M=F*S*B)<(N=A.byteLength-e.ptr)?M:N,c=new ArrayBuffer(M%B==0?M:M+B-M%B),new Uint8Array(c).set(new Uint8Array(A,e.ptr,M)),h=new t(c),x=0,O)for(k=0;k<F;k++){for(p=0;p<S;p++)O[L]&&(P[L]=h[x++]),L++;L+=b}else for(k=0;k<F;k++){for(p=0;p<S;p++)P[L++]=h[x++];L+=b}e.ptr+=x*B}else if(u=Q.getDataTypeUsed(D&&o<6?4:o,U),w=Q.getOnePixel(f,J,u,s),J+=Q.getDataTypeSize(u),3===l)if(e.ptr+=J,e.counter.constantoffset++,O)for(k=0;k<F;k++){for(p=0;p<S;p++)O[L]&&(P[L]=D?Math.min(V,y[L]+w):w),L++;L+=b}else for(k=0;k<F;k++){for(p=0;p<S;p++)P[L]=D?Math.min(V,y[L]+w):w,L++;L+=b}else if(e.ptr+=J,Q.decodeBits(A,e,q,w,d),J=0,D)if(O)for(k=0;k<F;k++){for(p=0;p<S;p++)O[L]&&(P[L]=q[J++]+y[L]),L++;L+=b}else for(k=0;k<F;k++){for(p=0;p<S;p++)P[L]=q[J++]+y[L],L++;L+=b}else if(O)for(k=0;k<F;k++){for(p=0;p<S;p++)O[L]&&(P[L]=q[J++]),L++;L+=b}else for(k=0;k<F;k++){for(p=0;p<S;p++)P[L++]=q[J++];L+=b}else{if(D)if(O)for(k=0;k<F;k++)for(p=0;p<S;p++)O[L]&&(P[L]=y[L]),L++;else for(k=0;k<F;k++)for(p=0;p<S;p++)P[L]=y[L],L++;e.counter.constant++,e.ptr+=J}}H>1&&!i&&(e.pixels.resultPixels=Q.swapDimensionOrder(e.pixels.resultPixels,n,H,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:Q.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,I=A.headerInfo.numDims,g=A.headerInfo.height*A.headerInfo.width,n=0,a=0,o=0,B=A.pixels.resultMask,C=A.pixels.resultPixels;if(B)if(I>1){if(e)for(n=0;n<I;n++)for(o=n*g,t=r[n],a=0;a<g;a++)B[a]&&(C[o+a]=t);else for(a=0;a<g;a++)if(B[a])for(o=a*I,n=0;n<I;n++)C[o+I]=r[n]}else for(a=0;a<g;a++)B[a]&&(C[a]=t);else if(I>1&&i!==t)if(e)for(n=0;n<I;n++)for(o=n*g,t=r[n],a=0;a<g;a++)C[o+a]=t;else for(a=0;a<g;a++)for(o=a*I,n=0;n<I;n++)C[o+n]=r[n];else for(a=0;a<g*I;a++)C[a]=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 I=0,g=0,n=0,a=0,o=A;if(t>1)if(o=new i(e*t),r)for(I=0;I<e;I++)for(a=I,n=0;n<t;n++,a+=e)o[a]=A[g++];else for(I=0;I<e;I++)for(a=I,n=0;n<t;n++,a+=e)o[g++]=A[a];return o}},E=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={};r.ptr=e.inputOffset||0,r.pixels={},Q.readHeaderInfo(A,r);var I=r.headerInfo,g=I.fileVersion,n=Q.getDataTypeArray(I.imageType);if(g>5)throw\"unsupported lerc version 2.\"+g;Q.readMask(A,r),I.numValidPixel===I.width*I.height||r.pixels.resultMask||(r.pixels.resultMask=e.maskData);var a=I.width*I.height;r.pixels.resultPixels=new n(a*I.numDims),r.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var o,B=!e.returnPixelInterleavedDims;if(0!==I.numValidPixel)if(I.zMax===I.zMin)Q.constructConstantSurface(r,B);else if(g>=4&&Q.checkMinMaxRanges(A,r))Q.constructConstantSurface(r,B);else{var C=new DataView(A,r.ptr,2),E=C.getUint8(0);if(r.ptr++,E)Q.readDataOneSweep(A,r,n,B);else if(g>1&&I.imageType<=1&&Math.abs(I.maxZError-.5)<1e-5){var s=C.getUint8(1);if(r.ptr++,r.encodeMode=s,s>2||g<4&&s>1)throw\"Invalid Huffman flag \"+s;s?Q.readHuffman(A,r,n,B):Q.readTiles(A,r,n,B)}else Q.readTiles(A,r,n,B)}r.eofOffset=r.ptr,e.inputOffset?(o=r.headerInfo.blobSize+e.inputOffset-r.ptr,Math.abs(o)>=1&&(r.eofOffset=e.inputOffset+r.headerInfo.blobSize)):(o=r.headerInfo.blobSize-r.ptr,Math.abs(o)>=1&&(r.eofOffset=r.headerInfo.blobSize));var f={width:I.width,height:I.height,pixelData:r.pixels.resultPixels,minValue:I.zMin,maxValue:I.zMax,validPixelCount:I.numValidPixel,dimCount:I.numDims,dimStats:{minValues:I.minValues,maxValues:I.maxValues},maskData:r.pixels.resultMask};if(r.pixels.resultMask&&Q.isValidPixelValue(I.imageType,t)){var c=r.pixels.resultMask;for(i=0;i<a;i++)c[i]||(f.pixelData[i]=t);f.noDataValue=t}return r.noDataValue=t,e.returnFileInfo&&(f.fileInfo=Q.formatFileInfo(r)),f},getBandCount:function(A){for(var e=0,t=0,i={ptr:0,pixels:{}};t<A.byteLength-58;)Q.readHeaderInfo(A,i),t+=i.headerInfo.blobSize,e++,i.ptr=t;return e}}),l=(s=new ArrayBuffer(4),f=new Uint8Array(s),new Uint32Array(s)[0]=1,1===f[0]),u={decode:function(A,e){if(!l)throw\"Big endian system is not supported.\";var t,i,r=(e=e||{}).inputOffset||0,I=new Uint8Array(A,r,10),g=String.fromCharCode.apply(null,I);if(\"CntZImage\"===g.trim())t=c,i=1;else{if(\"Lerc2\"!==g.substring(0,5))throw\"Unexpected file identifier string: \"+g;t=h,i=2}for(var n,a,o,B,C,Q,E=0,s=A.byteLength-10,f=[],u={width:0,height:0,pixels:[],pixelType:e.pixelType,mask:null,statistics:[]},w=0;r<s;){var d=t.decode(A,{inputOffset:r,encodedMaskData:n,maskData:o,returnMask:0===E,returnEncodedMask:0===E,returnFileInfo:!0,returnPixelInterleavedDims:e.returnPixelInterleavedDims,pixelType:e.pixelType||null,noDataValue:e.noDataValue||null});r=d.fileInfo.eofOffset,o=d.maskData,0===E&&(n=d.encodedMaskData,u.width=d.width,u.height=d.height,u.dimCount=d.dimCount||1,u.pixelType=d.pixelType||d.fileInfo.pixelType,u.mask=o),i>1&&(o&&f.push(o),d.fileInfo.mask&&d.fileInfo.mask.numBytes>0&&w++),E++,u.pixels.push(d.pixelData),u.statistics.push({minValue:d.minValue,maxValue:d.maxValue,noDataValue:d.noDataValue,dimStats:d.dimStats})}if(i>1&&w>1){for(Q=u.width*u.height,u.bandMasks=f,(o=new Uint8Array(Q)).set(f[0]),B=1;B<f.length;B++)for(a=f[B],C=0;C<Q;C++)o[C]=o[C]&a[C];u.maskData=o}return u}};TA.exports?TA.exports=u:this.Lerc=u}();var ZA,jA,WA,zA=XA.exports,$A={env:{emscripten_notify_memory_growth:function(A){WA=new Uint8Array(jA.exports.memory.buffer)}}},Ae=function(){function A(){B(this,A)}return Q(A,[{key:\"init\",value:function(){return ZA||(ZA=\"undefined\"!=typeof fetch?fetch(\"data:application/wasm;base64,\"+ee).then((function(A){return A.arrayBuffer()})).then((function(A){return WebAssembly.instantiate(A,$A)})).then(this._init):WebAssembly.instantiate(Buffer.from(ee,\"base64\"),$A).then(this._init))}},{key:\"_init\",value:function(A){jA=A.instance,$A.env.emscripten_notify_memory_growth(0)}},{key:\"decode\",value:function(A){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!jA)throw new Error(\"ZSTDDecoder: Await .init() before decoding.\");var t=A.byteLength,i=jA.exports.malloc(t);WA.set(A,i),e=e||Number(jA.exports.ZSTD_findDecompressedSize(i,t));var r=jA.exports.malloc(e),I=jA.exports.ZSTD_decompress(r,e,i,t),g=WA.slice(r,r+I);return jA.exports.free(i),jA.exports.free(r),g}}]),A}(),ee=\"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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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\",te={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\"},ie={};for(var re in te)te.hasOwnProperty(re)&&(ie[te[re]]=parseInt(re,10));ie.BitsPerSample,ie.ExtraSamples,ie.SampleFormat,ie.StripByteCounts,ie.StripOffsets,ie.StripRowCounts,ie.TileByteCounts,ie.TileOffsets,ie.SubIFDs;var Ie={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\"},ge={};for(var ne in Ie)Ie.hasOwnProperty(ne)&&(ge[Ie[ne]]=parseInt(ne,10));var ae=1,oe=0,Be=1,Ce=2,Qe={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\"},Ee={};for(var se in Qe)Qe.hasOwnProperty(se)&&(Ee[Qe[se]]=parseInt(se,10));function fe(A){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var ce=new Ae,he=function(A){s(t,w);var e=fe(t);function t(A){var i;return B(this,t),(i=e.call(this)).planarConfiguration=void 0!==A.PlanarConfiguration?A.PlanarConfiguration:1,i.samplesPerPixel=void 0!==A.SamplesPerPixel?A.SamplesPerPixel:1,i.addCompression=A.LercParameters[ae],i}return Q(t,[{key:\"decodeBlock\",value:function(A){switch(this.addCompression){case oe:break;case Be:A=YA(new Uint8Array(A)).buffer;break;case Ce:A=ce.decode(new Uint8Array(A)).buffer;break;default:throw new Error(\"Unsupported LERC additional compression method identifier: \".concat(this.addCompression))}return zA.decode(A,{returnPixelInterleavedDims:1===this.planarConfiguration}).pixels[0].buffer}}]),t}(),le=Object.freeze({__proto__:null,zstd:ce,default:he});function ue(A){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var we=function(A){s(I,w);var t,i=ue(I);function I(){var A;if(B(this,I),A=i.call(this),\"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\");return A}return Q(I,[{key:\"decode\",value:(t=e(r.mark((function A(e,t){var i,I,g,n;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return i=new Blob([t]),A.next=3,createImageBitmap(i);case 3:return I=A.sent,\"undefined\"!=typeof document?((g=document.createElement(\"canvas\")).width=I.width,g.height=I.height):g=new OffscreenCanvas(I.width,I.height),(n=g.getContext(\"2d\")).drawImage(I,0,0),A.abrupt(\"return\",n.getImageData(0,0,I.width,I.height).data.buffer);case 8:case\"end\":return A.stop()}}),A)}))),function(A,e){return t.apply(this,arguments)})}]),I}(),de=Object.freeze({__proto__:null,default:we});';\n  return new za(typeof Buffer < \"u\" ? \"data:application/javascript;base64,\" + Buffer.from(t, \"binary\").toString(\"base64\") : URL.createObjectURL(new Blob([t], { type: \"application/javascript\" })));\n}\nconst As = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n  __proto__: null,\n  create: $a\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n  co as enableGeoTIFFTileSource\n};\n", "/**\n * Where a TIFF's channel layout comes from.\n *\n * TIFF pixels reach xOpat by more than one route and each knows a different\n * amount up front, so this is a chain rather than a single lookup:\n *\n *  1. `source.getTiffDescriptor()` \u2014 the decoder describing itself. This is the\n *     normal path for a GeoTIFF source, and the only one that reports the\n *     resolved image/data interpretation.\n *  2. the GeoTIFF source's raw `fileDirectory` \u2014 a fallback for a build that\n *     predates (1), or for a source whose header is readable but whose\n *     descriptor throws.\n *  3. `source.getSampleEncoding()` \u2014 the narrower contract, for a source that\n *     never sees a TIFF header client-side and can only report what its `/info`\n *     said about the slide.\n *  4. the first decoded tile \u2014 the last resort, and the only option for a\n *     server-tiled TIFF whose `/info` says nothing about bit depth.\n *\n * Everything here is read-only probing: no fetches, no decoding.\n *\n * None of it decides *whether* this module may act on a slide \u2014 answering one of\n * these questions does not make a source ours. Ownership is settled before any of\n * this runs, by the protocol serving the slide (`ownsBackground` / `ownsSource` in\n * `index.mjs`).\n */\n\n/**\n * @typedef {object} TiffDescriptor\n * @property {number[]} bitsPerSample\n * @property {number[]} [sampleFormat] TIFF SampleFormat per sample (1 uint, 2 int, 3 float)\n * @property {number} samplesPerPixel\n * @property {number} [photometricInterpretation]\n * @property {boolean} [hasColorMap]\n * @property {\"image\"|\"data\"} [interpretation] how the decoder will pack this file\n * @property {TiffSampleEncoding} [encoding] declared per-channel scale/offset\n * @property {string[]} [channelNames]\n * @property {string[]} [channelColors]\n * @property {string} origin which chain step produced this\n */\n\n// geotiff.js hands back TIFF tag arrays as TypedArrays (`BitsPerSample` is a\n// Uint16Array), which `Array.isArray` rejects \u2014 treating one as a scalar yields\n// `[NaN]` and silently turns every bit depth into \"unknown\".\nconst asArray = (value, fallback) => {\n    if (Array.isArray(value)) return value.slice();\n    if (ArrayBuffer.isView(value) && !(value instanceof DataView)) return Array.from(value);\n    if (value === undefined || value === null) return fallback;\n    return [value];\n};\n\n/**\n * Normalize the decoder's own descriptor (chain step 1) into the shape this\n * module uses. Only the field names differ.\n * @param {object} described return value of `getTiffDescriptor()`\n * @return {TiffDescriptor}\n */\nexport function describeFromDecoder(described) {\n    return {\n        bitsPerSample: asArray(described.bitsPerSample, [8]).map(Number),\n        sampleFormat: asArray(described.sampleFormat, undefined)?.map(Number),\n        samplesPerPixel: Number(described.samplesPerPixel)\n            || asArray(described.bitsPerSample, [8]).length,\n        photometricInterpretation: described.photometricInterpretation !== undefined\n            ? Number(described.photometricInterpretation) : undefined,\n        hasColorMap: !!described.hasColorMap,\n        interpretation: described.interpretationResolved,\n        encoding: described.encoding,\n        channelNames: described.channelNames?.length ? described.channelNames : undefined,\n        channelColors: described.channelColors?.length ? described.channelColors : undefined,\n        origin: \"tileSource:getTiffDescriptor\",\n    };\n}\n\n/**\n * Descriptor from a geotiff.js `fileDirectory` (chain step 2). Carries no\n * interpretation: only the decoder knows how it will pack the file.\n * @param {object} fd\n * @param {string} [origin]\n * @return {TiffDescriptor|undefined}\n */\nexport function describeFromFileDirectory(fd, origin = \"geotiff:fileDirectory\") {\n    if (!fd) return undefined;\n\n    const bitsPerSample = asArray(fd.BitsPerSample, undefined);\n    if (!bitsPerSample) return undefined;\n\n    return {\n        bitsPerSample: bitsPerSample.map(Number),\n        sampleFormat: asArray(fd.SampleFormat, undefined)?.map(Number),\n        samplesPerPixel: Number(fd.SamplesPerPixel) || bitsPerSample.length,\n        photometricInterpretation: fd.PhotometricInterpretation !== undefined\n            ? Number(fd.PhotometricInterpretation) : undefined,\n        hasColorMap: !!fd.ColorMap,\n        origin,\n    };\n}\n\n/**\n * Descriptor from a decoded `tiffRaster` (chain step 4). Authoritative \u2014 just\n * late, since it only exists once a tile has come back.\n * @param {object} raster\n * @return {TiffDescriptor|undefined}\n */\nexport function describeFromTiffRaster(raster) {\n    if (!raster || !raster.bitsPerSample) return undefined;\n\n    const bitsPerSample = asArray(raster.bitsPerSample, [8]).map(Number);\n    return {\n        bitsPerSample,\n        sampleFormat: asArray(raster.sampleFormat, undefined)?.map(Number),\n        samplesPerPixel: Number(raster.samplesPerPixel) || bitsPerSample.length,\n        photometricInterpretation: raster.photometricInterpretation !== undefined\n            ? Number(raster.photometricInterpretation) : undefined,\n        hasColorMap: !!raster.colorMap,\n        origin: \"tile:tiffRaster\",\n    };\n}\n\n/**\n * Descriptor from a {@link TiffSampleEncoding} (chain step 3) \u2014 how WSI-Service\n * sources report what their `/info` knew.\n * @param {TiffSampleEncoding} encoding\n * @return {TiffDescriptor|undefined}\n */\nexport function describeFromSampleEncoding(encoding) {\n    if (!encoding || !Array.isArray(encoding.channels) || !encoding.channels.length) return undefined;\n\n    const channels = encoding.channels;\n    return {\n        bitsPerSample: channels.map(c => Number(c.bits) || 8),\n        sampleFormat: channels.map(c => Number(c.sampleFormat) || 1),\n        samplesPerPixel: channels.length,\n        // `/info` reports channels, never a photometric tag; let the channel\n        // count speak instead of inventing an interpretation.\n        photometricInterpretation: undefined,\n        interpretation: encoding.interpretation,\n        encoding,\n        channelNames: channels.some(c => c.name) ? channels.map(c => c.name) : undefined,\n        channelColors: channels.some(c => c.color) ? channels.map(c => c.color) : undefined,\n        origin: encoding.origin || \"tileSource:getSampleEncoding\",\n    };\n}\n\n/**\n * Walk the resolution chain for a tile source.\n * @param {object} source an OpenSeadragon TileSource\n * @return {TiffDescriptor|undefined} undefined when nothing knows yet\n */\nexport function describeTileSource(source) {\n    if (!source) return undefined;\n\n    // 1) the decoder describing itself. It throws while the header is unread\n    // rather than returning a guess \u2014 treat that as \"not known yet\".\n    if (typeof source.getTiffDescriptor === \"function\") {\n        try {\n            const described = source.getTiffDescriptor();\n            if (described) return describeFromDecoder(described);\n        } catch (e) {\n            console.debug(\"[geotiff] descriptor not available yet:\", e?.message || e);\n        }\n    }\n\n    // 2) raw header tags\n    const level = Array.isArray(source.levels) && source.levels.length\n        ? source.levels[source.levels.length - 1] : undefined;\n    const image = level && level.image;\n    if (image) {\n        const fd = typeof image.getFileDirectory === \"function\"\n            ? image.getFileDirectory() : image.fileDirectory;\n        const described = describeFromFileDirectory(fd);\n        if (described) {\n            // QPTIFF-style sources are split one channel per source and carry\n            // their own name/colour; surface it so the fan-out can tint them.\n            if (source.channel && source.channel.name) {\n                described.channelNames = [source.channel.name];\n                if (source.channel.color) described.channelColors = [source.channel.color];\n            }\n            return described;\n        }\n    }\n\n    // 3) whatever the server said about the slide\n    if (typeof source.getSampleEncoding === \"function\") {\n        try {\n            const described = describeFromSampleEncoding(source.getSampleEncoding());\n            if (described) return described;\n        } catch (e) {\n            console.debug(\"[geotiff] sample encoding not available yet:\", e?.message || e);\n        }\n    }\n\n    // 4) caller falls back to the observed-tile path\n    return undefined;\n}\n\n/**\n * Whether two descriptors would produce a different shader choice. Ignores\n * cosmetic fields like channel names.\n * @param {TiffDescriptor} [a]\n * @param {TiffDescriptor} [b]\n * @return {boolean}\n */\nexport function descriptorsDiffer(a, b) {\n    if (!a || !b) return a !== b;\n    const key = d => JSON.stringify([\n        d.samplesPerPixel,\n        // Decides which packing rules apply, so it decides the render.\n        d.interpretation || null,\n    ]);\n    return key(a) !== key(b);\n}\n", "/**\n * Choosing a built-in shader for a TIFF background.\n *\n * The decoder normalizes every channel to `[0,1]`, so no shader needs to know\n * anything about TIFF to render one correctly. The one thing it cannot infer is\n * the *channel layout*: the implicit `identity` layer samples `.rgba` and only\n * works for four-channel sources, so a slide the decoder packs as one or six\n * scalar channels needs a different built-in.\n *\n * That is all this file decides. Everything emitted is tagged {@link AUTO_TAG}\n * so a later run can tell its own guesses apart from a configuration the user\n * chose.\n */\n\n/** Marks a shader config this module derived rather than a human authored. */\nexport const AUTO_TAG = \"geotiff@1\";\n\n/**\n * Below this the slide cannot reach half intensity and is, for practical purposes,\n * a black frame \u2014 which is the only case an automatic window is worth its\n * surprise. A well-exposed slide is left exactly as the file declares it.\n */\nconst RESCUE_CEILING = 0.5;\n\n/** A window narrower than this is noise amplification, not a rescue. */\nconst MIN_WINDOW_SPAN = 1e-3;\n\n/**\n * Whether the built-in scalar shader accepts an input window.\n *\n * The controls are a renderer-side feature, so a deployment running an older\n * vendored `flex-renderer` does not have them. Emitting params it cannot resolve\n * would be config the user sees and cannot act on, so probe the registry instead\n * of assuming \u2014 the rest of the auto-configuration works either way.\n *\n * @return {boolean}\n */\nfunction shaderSupportsWindow() {\n    try {\n        const registry = window.OpenSeadragon?.FlexRenderer?.ShaderLayerRegistry;\n        const controls = registry?.get?.(\"single_channel\")?.defaultControls;\n        return !!(controls && controls.window_low && controls.window_high);\n    } catch (e) {\n        return false;\n    }\n}\n\n/**\n * Whether the built-in scalar shader can be told to output opaque alpha.\n *\n * Same reasoning as {@link shaderSupportsWindow}: a renderer-side feature an\n * older vendored `flex-renderer` does not have, and emitting a param nothing can\n * resolve is config the user sees and cannot act on.\n *\n * @return {boolean}\n */\nfunction shaderSupportsOpaque() {\n    try {\n        const registry = window.OpenSeadragon?.FlexRenderer?.ShaderLayerRegistry;\n        return !!registry?.get?.(\"single_channel\")?.defaultControls?.opaque;\n    } catch (e) {\n        return false;\n    }\n}\n\n/**\n * The window a measured channel needs, or undefined when it needs none.\n *\n * Applied only to a channel that would otherwise be unreadable. The decoder\n * normalizes against the range the file *declares*, and that is the right\n * contract \u2014 but a file declaring 16 bits while using 12 (with no\n * `SMaxSampleValue` to say so) decodes to a peak of `0.0625`, and nothing in the\n * header distinguishes it from a genuinely dim scene. Only the samples do, which\n * is why the decision is made here and stays adjustable rather than being baked\n * into the pixels.\n *\n * @param {ChannelRange} [range] from `tiff-statistics.mjs`\n * @param {string} [mode] `\"rescue\"` (default), `\"always\"` or `\"off\"`\n * @return {{window_low: number, window_high: number}|undefined}\n */\nfunction windowParams(range, mode = \"rescue\") {\n    if (!range || mode === \"off\") return undefined;\n\n    const low = Number(range.low);\n    const high = Number(range.high);\n    if (!Number.isFinite(low) || !Number.isFinite(high)) return undefined;\n    if (high - low < MIN_WINDOW_SPAN) return undefined;\n\n    // `high <= RESCUE_CEILING`: never reaches half intensity. `low >= RESCUE_CEILING`:\n    // the inverse case, a channel with a floor so high nothing in it is distinguishable.\n    const needsRescue = high <= RESCUE_CEILING || low >= RESCUE_CEILING;\n    if (mode !== \"always\" && !needsRescue) return undefined;\n\n    return { window_low: low, window_high: high };  // eslint-disable-line camelcase\n}\n\n/**\n * Fallback tints for a multi-channel source that declares no colours. Chosen to\n * stay distinguishable when several are blended additively.\n */\nconst FALLBACK_TINTS = [\n    \"#ff4d4d\", \"#4dff4d\", \"#4d8cff\", \"#ffe14d\",\n    \"#ff4dff\", \"#4dffff\", \"#ff9a4d\", \"#b04dff\",\n];\n\nconst tagged = (config) => ({ ...config, autoDerived: AUTO_TAG });\n\n/**\n * Decide the shader configuration for a TIFF background.\n *\n * @param {object} descriptor from `tiff-metadata.mjs`\n * @param {object} [options]\n * @param {ChannelRange[]} [options.statistics] measured per-channel ranges, from\n *      `tiff-statistics.mjs`; used only to seed the shader's input window\n * @param {string} [options.autoWindow] `\"rescue\"` (default), `\"always\"` or `\"off\"`\n * @return {{shaders: object[]|undefined, reason: string}} `shaders: undefined`\n *      means \"leave the background alone\" (implicit `identity`).\n */\nexport function buildAutoShaders(descriptor, options = {}) {\n    if (!descriptor) return { shaders: undefined, reason: \"no-descriptor\" };\n\n    // Resolved once per call rather than per channel: the registry does not change\n    // mid-open, and a six-channel slide would otherwise probe it six times.\n    const windowing = shaderSupportsWindow()\n        ? { statistics: options.statistics, mode: options.autoWindow || \"rescue\" }\n        : undefined;\n\n    const count = Number(descriptor.samplesPerPixel)\n        || (Array.isArray(descriptor.bitsPerSample) ? descriptor.bitsPerSample.length : 0)\n        || 1;\n\n    // The decoder's image path renders to four opaque channels before upload \u2014\n    // 8-bit colour, 8-bit grayscale and palette all arrive display-ready, which\n    // is exactly what `identity` expects.\n    if (descriptor.interpretation === \"image\") {\n        return { shaders: undefined, reason: \"image-path\" };\n    }\n\n    if (count === 1) {\n        // White, not `single_channel`'s tinted default: a one-channel slide is a\n        // grayscale image, and it should look like one.\n        //\n        // Opaque, too. `single_channel` writes the sampled value into alpha, which\n        // is what additive blending of several tinted channels needs \u2014 but this\n        // layer has nothing beneath it, so a low value would blend toward the\n        // canvas backdrop instead of toward black. Against the default opaque-white\n        // clear that renders a white-tinted grayscale slide as a blank frame.\n        const opaque = shaderSupportsOpaque();\n        const params = {\n            color: \"#ffffff\",\n            ...(opaque ? { opaque: true } : {}),\n            ...windowFor(0, windowing),\n        };\n        const reason = params.window_high === undefined ? \"scalar\" : \"scalar+window\";\n        return {\n            shaders: [tagged({ type: \"single_channel\", params })],\n            reason: opaque ? `${reason}+opaque` : reason,\n        };\n    }\n\n    if (count === 3 || count === 4) {\n        // Colour on the data path: the packer pads the unused lane with\n        // `gpu.padAlpha` (opaque by default), so the texel `identity` samples is\n        // a complete RGBA \u2014 normalized, and correct without any format knowledge.\n        return { shaders: undefined, reason: \"colour-data-path\" };\n    }\n\n    // Several scalar channels (fluorescence, QPTIFF, OME): one tinted layer each,\n    // blended together.\n    const children = {};\n    const order = [];\n    for (let i = 0; i < count; i++) {\n        const id = `ch${i}`;\n        children[id] = channelConfig(i, descriptor, windowing);\n        order.push(id);\n    }\n    return {\n        shaders: [tagged({ type: \"group\", shaders: children, order })],\n        reason: `multichannel:${count}`,\n    };\n}\n\n/**\n * Window params for one channel, or an empty object when none applies.\n * @param {number} index\n * @param {{statistics: ChannelRange[]|undefined, mode: string}} [windowing]\n * @return {object}\n */\nfunction windowFor(index, windowing) {\n    if (!windowing) return {};\n    return windowParams(windowing.statistics?.[index], windowing.mode) || {};\n}\n\n/**\n * One `single_channel` entry for logical channel `index`.\n * @param {number} index\n * @param {object} descriptor\n * @param {{statistics: ChannelRange[]|undefined, mode: string}} [windowing]\n * @return {object}\n */\nfunction channelConfig(index, descriptor, windowing) {\n    const color = descriptor.channelColors?.[index] || FALLBACK_TINTS[index % FALLBACK_TINTS.length];\n\n    // Channel selection, the tint and the window are shader *controls*, so they\n    // belong in `params` \u2014 that is the object a ShaderLayer resolves its controls\n    // from. Each channel is measured on its own: in a fluorescence stack the\n    // channels routinely differ by an order of magnitude.\n    const config = {\n        type: \"single_channel\",\n        params: {\n            use_channel_base0: index,   // eslint-disable-line camelcase\n            color,\n            ...windowFor(index, windowing),\n        },\n    };\n    const name = descriptor.channelNames?.[index];\n    if (name) config.name = name;\n    return config;\n}\n\n/**\n * Whether this module may overwrite a background's shader configuration: either\n * nothing is configured, or everything configured is a previous auto-derivation\n * whose type has not been changed since.\n *\n * The type check matters because the canonical scene writes a user's runtime\n * layer switch back into the config while keeping the rest of the entry \u2014 so a\n * tagged entry with a foreign type means the user took over.\n *\n * @param {object} background background config entry\n * @return {boolean}\n */\nexport function shadersAreAutoOwned(background) {\n    const shaders = background?.shaders;\n    if (!shaders) return true;\n    if (!Array.isArray(shaders) || !shaders.length) return false;\n    return shaders.every(entry => entry && entry.autoDerived === AUTO_TAG);\n}\n\n/**\n * Drop auto-derived shader arrays so they are re-derived from scratch.\n *\n * They describe the file's channel layout, which the next open re-reads anyway;\n * persisting them into a session only risks carrying a stale layout.\n *\n * @param {object[]} backgrounds `config.background`\n * @return {number} how many entries were reset\n */\nexport function stripAutoDerived(backgrounds) {\n    if (!Array.isArray(backgrounds)) return 0;\n    let count = 0;\n    for (const background of backgrounds) {\n        if (background && Array.isArray(background.shaders) && background.shaders.length\n            && background.shaders.every(entry => entry && entry.autoDerived === AUTO_TAG)) {\n            delete background.shaders;\n            count++;\n        }\n    }\n    return count;\n}\n", "/**\n * What a TIFF's samples actually look like, as opposed to what its header claims.\n *\n * The decoder normalizes every channel against the range the file *declares* \u2014\n * its bit depth, or `SMinSampleValue`/`SMaxSampleValue` when present. That is the\n * only honest thing a decoder can do: a guess derived from pixels would change\n * with which tiles happened to decode first and would be baked into the tile\n * cache, so the same normalized value would stop meaning the same thing across\n * the pyramid.\n *\n * The cost of that honesty is that a file which under-uses its declared range is\n * decoded correctly and displayed as a black frame \u2014 12-bit data written into a\n * `BitsPerSample=16` container with no range tags peaks at `4095/65535`, and no\n * header distinguishes it from a genuinely dim 16-bit scene. Only the samples do.\n *\n * So the measurement lives here, on the display side, where it is allowed to be\n * data-dependent: it seeds a shader's window controls, stays adjustable, and\n * never touches the pixels handed to the renderer.\n *\n * Cost is one read of the smallest pyramid level \u2014 for a typical pyramid a single\n * tile, fetched through the same range-request stack as everything else and then\n * cached by geotiff.js.\n */\n\n/**\n * @typedef {object} ChannelRange\n * @property {number} low  low percentile, in the decoder's normalized units\n * @property {number} high high percentile, in the decoder's normalized units\n */\n\n/** Percentiles rather than min/max: a single hot or dead pixel must not set the window. */\nconst LOW_PERCENTILE = 0.001;\nconst HIGH_PERCENTILE = 0.999;\n\n/** Enough for a stable percentile; beyond this the sort costs more than it informs. */\nconst MAX_SAMPLES = 65536;\n\n/**\n * Percentile of an unsorted typed array, ignoring non-finite samples.\n * @param {ArrayLike<number>} values\n * @param {number} lowQuantile\n * @param {number} highQuantile\n * @return {{low: number, high: number}|undefined}\n */\nfunction percentiles(values, lowQuantile, highQuantile) {\n    const total = values.length;\n    if (!total) return undefined;\n\n    // Regular stride rather than random sampling: reproducible across opens, and on\n    // an overview level a gradient is as well covered either way.\n    const stride = Math.max(1, Math.ceil(total / MAX_SAMPLES));\n    const sample = [];\n    for (let i = 0; i < total; i += stride) {\n        const value = Number(values[i]);\n        if (Number.isFinite(value)) sample.push(value);\n    }\n    if (!sample.length) return undefined;\n\n    sample.sort((a, b) => a - b);\n    const at = (quantile) => sample[Math.min(sample.length - 1,\n        Math.max(0, Math.round(quantile * (sample.length - 1))))];\n    return { low: at(lowQuantile), high: at(highQuantile) };\n}\n\n/**\n * Measure each channel's occupied range, expressed in the units the shader sees.\n *\n * @param {object} source a ready `GeoTIFFTileSource`\n * @param {object} descriptor from `tiff-metadata.mjs`\n * @return {Promise<ChannelRange[]|undefined>} one entry per channel, or undefined\n *      when the source cannot be measured (no overview level, read failure, a\n *      server-tiled source with no client-side header)\n */\nexport async function measureChannelRanges(source, descriptor) {\n    const image = source?.levels?.[0]?.image;\n    // `levels` is sorted ascending by width (`setupLevels`), so [0] is the overview.\n    if (!image || typeof image.readRasters !== \"function\") return undefined;\n\n    let rasters;\n    try {\n        rasters = await image.readRasters();\n    } catch (e) {\n        console.debug(\"[geotiff] could not read the overview level for statistics:\", e?.message || e);\n        return undefined;\n    }\n    if (!rasters || !rasters.length) return undefined;\n\n    const channels = descriptor?.encoding?.channels;\n    const ranges = [];\n    for (let i = 0; i < rasters.length; i++) {\n        const measured = percentiles(rasters[i], LOW_PERCENTILE, HIGH_PERCENTILE);\n        if (!measured) return undefined;\n\n        // Raw samples -> the decoder's normalized units, so the numbers are directly\n        // comparable with what the shader receives. Without an encoding the raw values\n        // are already what reaches it.\n        const encoding = channels?.[i] || channels?.[0];\n        const scale = Number(encoding?.scale) || 1;\n        const offset = Number(encoding?.offset) || 0;\n        ranges.push({\n            low: (measured.low - offset) / scale,\n            high: (measured.high - offset) / scale,\n        });\n    }\n    return ranges;\n}\n", "/**\n * TIFF support: decoder wiring, slide protocol, and shader auto-config.\n *\n * The decoder itself is the vendored `geotiff-tilesource` bundle, which\n * normalizes every channel to `[0,1]` and declares its encoding\n * (`getTiffDescriptor()`). Because of that, the ordinary renderer shaders are\n * already correct on TIFF data and this module ships none of its own. What is\n * left here:\n *\n *  - install the tile source, pointing it at `HttpClient` for range requests;\n *  - register a `tiff` slide protocol so a `.tif`/`.tiff` background opens\n *    without a deployment writing its own protocol entry;\n *  - pick the built-in shader that fits the slide's channel layout, since the\n *    implicit `identity` layer only works for four-channel sources.\n *\n * Deployment knobs live in `include.json` (merged with `ENV.modules.geotiff`) and\n * are read through `moduleMeta` \u2014 deployment-trusted config, never session data.\n */\n\nimport { enableGeoTIFFTileSource } from \"./dist/geotiff-tilesource.lite.mjs\";\nimport { describeTileSource, descriptorsDiffer } from \"./tiff-metadata.mjs\";\nimport { buildAutoShaders, shadersAreAutoOwned, stripAutoDerived } from \"./auto-config.mjs\";\nimport { measureChannelRanges } from \"./tiff-statistics.mjs\";\n\nconst MODULE_ID = \"geotiff\";\nconst meta = (key, fallback) => {\n    const value = window.moduleMeta?.(MODULE_ID, key);\n    return value === undefined ? fallback : value;\n};\n\n// The bundle's own default is root-absolute (`new URL(\"/assets/tiff.worker-*.js\",\n// import.meta.url)`), which resolves against the origin and ignores the module\n// directory \u2014 under xOpat that points at a path no server serves. Resolve it\n// relative to this module instead. Still pinned to a build hash, so it has to be\n// updated on every decoder bump; the symptom of getting it wrong is a worker that\n// never answers, which stalls every tile without an error anywhere.\nconst DEFAULT_WORKER_URL = new URL(\"./dist/assets/tiff.worker.js\", import.meta.url).href;\nconst workerUrl = meta(\"workerUrl\", DEFAULT_WORKER_URL);\n\n/**\n * Diagnostics, on under `debugMode`.\n *\n * A TIFF has a long way to travel \u2014 decode, converter graph, drawer upload \u2014 and\n * every link fails quietly: an unregistered converter edge, a tile finished as a\n * type nothing can route, a rejected worker request. The visible symptom of any\n * of them is the same blank viewport, so the trail is worth keeping rather than\n * re-deriving each time.\n */\nconst debugEnabled = () => !!window.APPLICATION_CONTEXT?.getOption?.(\"debugMode\");\nconst debug = (...args) => { if (debugEnabled()) console.info(\"[geotiff]\", ...args); };\n\ndebug(\"installing decoder; converter present:\", !!OpenSeadragon.converter, \"| worker:\", workerUrl);\n\n// A worker that never answers stalls every tile with no error, so verify the\n// asset is really there and really JavaScript \u2014 a dev server answering unknown\n// paths with index.html would otherwise hand the worker HTML and hang silently.\n// Same-origin static asset: plain fetch is correct here, as for locales/.d.ts.\nif (debugEnabled()) {\n    // Decode should happen off the main thread: geotiff.js runs its own decoder\n    // pool, and the packer runs in the RawTiff worker. If the main thread is\n    // blocked instead, per-tile latency is CPU contention, not decode cost \u2014\n    // and everything else in the app suffers with it.\n    try {\n        let longTasks = 0;\n        let longTaskMs = 0;\n        new PerformanceObserver((list) => {\n            for (const entry of list.getEntries()) {\n                longTasks++;\n                longTaskMs += entry.duration;\n            }\n            if (longTasks % 10 === 0) {\n                debug(`main thread blocked: ${longTasks} long tasks, ${longTaskMs.toFixed(0)}ms total`);\n            }\n        }).observe({ type: \"longtask\", buffered: true });\n    } catch (e) {\n        debug(\"longtask observer unavailable:\", e?.message || e);\n    }\n\n    // Both pools, so a decode running on the main thread is visible as such.\n    setTimeout(() => {\n        const decodePool = OpenSeadragon.GeoTIFFTileSource?.sharedPool;\n        debug(\"decoder pool size:\", decodePool?.size,\n            \"| workers:\", decodePool?.workers?.length ?? \"not created\",\n            \"| packer pool:\", !!OpenSeadragon.RawTiffPlugin?.getWorkerPool?.());\n    }, 3000);\n\n    fetch(workerUrl, { method: \"GET\" }).then(response => {\n        const type = response.headers.get(\"content-type\") || \"\";\n        if (!response.ok || !/javascript|ecmascript/i.test(type)) {\n            console.warn(`[geotiff] decoder worker at ${workerUrl} responded ${response.status} ` +\n                `as '${type}' \u2014 tiles will decode but never finish.`);\n        } else {\n            debug(\"worker asset ok:\", response.status, type);\n        }\n    }).catch(e => console.warn(\"[geotiff] decoder worker unreachable:\", workerUrl, e?.message || e));\n}\n\n/**\n * Per-tile decode latency and HTTP traffic, aggregated. Reported as running\n * summaries rather than per-event lines \u2014 a pyramid is hundreds of tiles, and\n * the question is always \"which of the two is the cost\", not what one tile did.\n */\nconst stats = { tiles: 0, decodeMs: 0, maxMs: 0, requests: 0, bytes: 0 };\nconst reportStats = () => debug(`decoded ${stats.tiles} tiles`,\n    `| avg ${(stats.decodeMs / Math.max(1, stats.tiles)).toFixed(1)}ms`,\n    `| max ${stats.maxMs.toFixed(1)}ms`,\n    `| ${stats.requests} range requests`,\n    `(${(stats.requests / Math.max(1, stats.tiles)).toFixed(1)} per tile,`,\n    `${(stats.bytes / 1048576).toFixed(1)} MB)`);\n\nconst logTileLatency = (_label, ms) => {\n    stats.tiles++;\n    stats.decodeMs += ms;\n    stats.maxMs = Math.max(stats.maxMs, ms);\n    if (stats.tiles % 25 === 0) reportStats();\n};\n\nconst baseAdapter = window.HttpClient?.createAdapter?.();\nconst httpAdapter = baseAdapter && debugEnabled() ? {\n    fetch: (url, init) => {\n        stats.requests++;\n        return baseAdapter.fetch(url, init).then(response => {\n            const length = Number(response.headers?.get?.(\"content-length\"));\n            if (Number.isFinite(length)) stats.bytes += length;\n            return response;\n        });\n    }\n} : baseAdapter;\n\nenableGeoTIFFTileSource(OpenSeadragon, {\n    ...(workerUrl ? { workerUrl } : {}),\n    httpAdapter,\n});\n\nif (debugEnabled()) {\n    // The decoder registers its converter edges only if `OpenSeadragon.converter`\n    // existed at install time, and stays silent otherwise. Without an edge from\n    // `tiffRaster` to a format the drawer accepts, tiles decode, land in the\n    // cache, and are never handed over \u2014 with nothing logged anywhere.\n    try {\n        const converter = OpenSeadragon.converter;\n        const describePath = (from, to) => {\n            try {\n                const path = converter?.getConversionPath?.(from, to);\n                return path ? `${path.length} step(s)` : \"NONE\";\n            } catch (e) {\n                return `error: ${e?.message || e}`;\n            }\n        };\n        debug(\"conversion paths \u2014\",\n            \"tiffRaster\u2192gpuTextureSet:\", describePath(\"tiffRaster\", \"gpuTextureSet\"),\n            \"| tiffRaster\u2192context2d:\", describePath(\"tiffRaster\", \"context2d\"),\n            \"| rawTiff\u2192gpuTextureSet:\", describePath(\"rawTiff\", \"gpuTextureSet\"));\n    } catch (e) {\n        console.warn(\"[geotiff] conversion-path probe failed:\", e);\n    }\n\n    // Which conversions OSD actually performs on a decoded tile. A tile that is\n    // never converted is never handed to the drawer, and OpenSeadragon marks it\n    // ready either way \u2014 so silence here is itself the answer.\n    try {\n        const converter = OpenSeadragon.converter;\n        const originalConvert = converter?.convert?.bind(converter);\n        if (originalConvert) {\n            let remaining = 4;\n            converter.convert = (tile, data, from, ...to) => {\n                const trace = remaining > 0 && (from === \"tiffRaster\" || from === \"rawTiff\");\n                if (trace) {\n                    remaining--;\n                    debug(\"converting\", from, \"\u2192\", to.join(\"|\"));\n                }\n                const result = originalConvert(tile, data, from, ...to);\n                if (trace && result && typeof result.then === \"function\") {\n                    result.then(\n                        out => debug(\"converted\", from, \"\u2192\", typeof out?.getType === \"function\"\n                            ? out.getType() : out?.constructor?.name),\n                        err => console.warn(\"[geotiff] conversion failed:\", from, err?.message || err)\n                    );\n                }\n                return result;\n            };\n        }\n    } catch (e) {\n        console.warn(\"[geotiff] converter probe failed:\", e);\n    }\n\n    // What the source actually hands OSD. It re-checks `converter` per tile, so\n    // this can differ from what the install-time line reported.\n    try {\n        const proto = OpenSeadragon.GeoTIFFTileSource?.prototype;\n        const originalDownload = proto?.downloadTileStart;\n        if (originalDownload) {\n            let remaining = 2;\n            proto.downloadTileStart = function (context) {\n                if (remaining > 0) {\n                    remaining--;\n                    const finish = context.finish?.bind(context);\n                    const fail = context.fail?.bind(context);\n                    if (finish) {\n                        context.finish = (data, request, type) => {\n                            const tile = context.tile;\n                            debug(\"tile finished as\", type,\n                                \"| ctor:\", data?.constructor?.name,\n                                \"| converter present:\", !!OpenSeadragon.converter);\n                            const result = finish(data, request, type);\n                            // Whether OSD actually completes the tile after the\n                            // source hands it over: a tile that never becomes\n                            // `loaded` is never converted, never uploaded, and\n                            // never drawn \u2014 silently.\n                            setTimeout(() => {\n                                const cache = tile?.getCache?.(tile?.cacheKey);\n                                debug(\"tile after finish:\", `${tile?.level}/${tile?.x}_${tile?.y}`,\n                                    \"| loaded:\", tile?.loaded,\n                                    \"| loading:\", tile?.loading,\n                                    \"| cacheKey:\", tile?.cacheKey,\n                                    \"| cache type:\", cache?.type,\n                                    \"| caches:\", Object.keys(tile?._caches || {}).length);\n                            }, 250);\n                            return result;\n                        };\n                    }\n                    if (fail) {\n                        context.fail = (message, request) => {\n                            console.warn(\"[geotiff] tile failed:\", message);\n                            return fail(message, request);\n                        };\n                    }\n                }\n                return originalDownload.call(this, context);\n            };\n        }\n    } catch (e) {\n        console.warn(\"[geotiff] tile-download probe failed:\", e);\n    }\n}\n\n/**\n * Log the first tiles a viewer's drawer is asked to prepare. Silence here, while\n * tiles are downloading, means the converter never produced a format the drawer\n * accepts \u2014 the failure mode that otherwise leaves no trace at all.\n * @param {object} drawer the viewer's drawer\n */\nfunction traceDrawerUploads(drawer) {\n    if (!drawer || drawer.__geotiffTraced || typeof drawer.internalCacheCreate !== \"function\") return;\n    drawer.__geotiffTraced = true;\n    debug(\"tracing drawer uploads for\", drawer.getType?.());\n\n    const original = drawer.internalCacheCreate.bind(drawer);\n    let remaining = 2;\n    drawer.internalCacheCreate = (cache, tile) => {\n        if (remaining > 0) {\n            remaining--;\n            debug(\"drawer preparing tile\", `${tile?.level}/${tile?.x}_${tile?.y}`, \"as\", cache?.type);\n        }\n        return original(cache, tile);\n    };\n}\n\nif (debugEnabled() && window.VIEWER_MANAGER) {\n    // A first-time viewer does not exist yet at `before-open`, so attach on both\n    // hooks \u2014 `traceDrawerUploads` is idempotent per drawer.\n    VIEWER_MANAGER.addHandler(\"before-open\", (e) => traceDrawerUploads(e?.viewer?.drawer));\n    VIEWER_MANAGER.broadcastHandler(\"open\", (e) => {\n        const viewer = e?.eventSource;\n        traceDrawerUploads(viewer?.drawer);\n        debug(\"open: drawer\", viewer?.drawer?.getType?.(), \"| traced:\", !!viewer?.drawer?.__geotiffTraced,\n            openStartedAt ? `| pipeline ${(performance.now() - openStartedAt).toFixed(0)}ms` : \"\");\n\n        // Time from `open` to the first prepared tile \u2014 the drawer raises no\n        // event this module can hook for \"drawn\", so measure the upload instead.\n        const openedAt = performance.now();\n        let firstUpload = true;\n        const drawer = viewer?.drawer;\n        if (drawer && !drawer.__geotiffTimed && typeof drawer.internalCacheCreate === \"function\") {\n            drawer.__geotiffTimed = true;\n            const prepare = drawer.internalCacheCreate.bind(drawer);\n            drawer.internalCacheCreate = (cache, tile) => {\n                if (firstUpload) {\n                    firstUpload = false;\n                    debug(`first tile uploaded ${(performance.now() - openedAt).toFixed(0)}ms after open`);\n                }\n                return prepare(cache, tile);\n            };\n        }\n\n        // A tile that fails after handover is reported here and nowhere else.\n        viewer.addHandler(\"tile-load-failed\", (fe) => console.warn(\"[geotiff] tile-load-failed:\",\n            `${fe?.tile?.level}/${fe?.tile?.x}_${fe?.tile?.y}`, fe?.message, fe?.tiledImage?.source?.constructor?.name));\n\n        // The interesting moment is a loaded tile, not the open itself: at `open`\n        // no tile exists yet and rendering is still suspended by the pipeline's\n        // render transaction, so both readings would be meaningless.\n        let remaining = 2;\n        viewer.addHandler(\"tile-loaded\", (te) => {\n            if (remaining <= 0) return;\n            remaining--;\n            const tile = te?.tile;\n            const cache = tile?.getCache?.(tile?.cacheKey);\n            const item = te?.tiledImage;\n            debug(\"tile-loaded\", `${tile?.level}/${tile?.x}_${tile?.y}`,\n                \"| cache type:\", cache?.type,\n                \"| usable for drawer:\", cache?.isUsableForDrawer?.(viewer.drawer),\n                \"| packs:\", item?.__flexPackCount,\n                \"| channels:\", item?.__flexChannelCount);\n        });\n    });\n}\n\n// Without a worker pool the decoder falls back to a main-thread packer that does\n// not behave identically (alpha padding, channel selection, pack count), so a\n// missing worker is a correctness problem, not just a performance one. It must\n// not pass unnoticed.\ntry {\n    if (!OpenSeadragon.RawTiffPlugin?.getWorkerPool?.()) {\n        console.warn(\n            \"[geotiff] no decoder worker pool \u2014 tiles decode on the main thread, \" +\n            \"whose packing differs from the worker's. Check that the worker asset \" +\n            `named by the bundle exists${workerUrl ? ` (configured: ${workerUrl})` : \"\"}.`\n        );\n    }\n} catch (e) {\n    console.warn(\"[geotiff] could not probe the decoder worker pool:\", e?.message || e);\n}\n\nwindow.loadElementLocale?.(\"modules\", MODULE_ID);\n\n/**\n * Channel layouts already learned, keyed by data id. A TIFF only reveals its\n * layout once its header (or the server's slide info) has been read, which\n * happens during the open \u2014 too late for the shader decision of that same open.\n * Caching means every subsequent open of the same slide is decided up front.\n */\nconst descriptors = new Map();\n\n/**\n * Measured channel ranges, keyed by data id \u2014 the second half of the layout\n * question. The header says what the file *declares*; this says what it actually\n * contains, which is the only thing that can tell a 12-bit-in-16 slide from a\n * genuinely dim one. Costs one overview read per slide, so it is cached exactly\n * like the descriptor.\n */\nconst statistics = new Map();\n\n/** How aggressively a measured range may seed the shader's window. */\nconst autoWindow = meta(\"autoWindow\", \"rescue\");\n\n/** Backgrounds already corrected once, so a mismatch cannot ping-pong. */\nconst corrected = new WeakSet();\n\n/** Wall clock of the last `before-open`, to time the open pipeline itself. */\nlet openStartedAt = 0;\n\nfunction reportPlan(dataId, reason) {\n    console.debug(`[geotiff] shader plan for ${dataId}: ${reason}`);\n}\n\nconst specOf = (background) => (background?.dataReference !== undefined\n    ? APPLICATION_CONTEXT?.config?.data?.[background.dataReference]\n    : undefined);\n\nconst dataIdOf = (background) => {\n    const spec = specOf(background);\n    if (typeof spec === \"string\") return spec;\n    if (spec && typeof spec === \"object\" && typeof spec.dataID === \"string\") return spec.dataID;\n    return undefined;\n};\n\n/**\n * The protocol whose slides this module owns.\n *\n * Normally the one registered below. A deployment that declares its own\n * GeoTIFF-backed protocol turns `registerSlideProtocol` off and names it here;\n * without that it would own nothing up front and every slide would have to be\n * opened twice before rendering correctly.\n */\nconst PROTOCOL_ID = meta(\"protocolId\", \"tiff\");\n\n/**\n * Whether this module may configure a background \u2014 *before* any source exists.\n *\n * Ownership is the protocol that will serve the slide, never what its data id\n * looks like. A `.tif` served over DICOM, WSI-Service or any other protocol\n * belongs to that protocol: its module knows things about the slide this one\n * does not, and silently rewriting its shaders is a bug even when the file\n * really is a TIFF.\n *\n * `protocolIdFor` is the non-constructing half of `resolve` \u2014 asking with\n * `resolve` would build the foreign source (and issue its requests) just to\n * answer the question.\n *\n * @param {object} background background config entry\n * @return {boolean}\n */\nconst ownsBackground = (background) => {\n    if (!background || Array.isArray(background)) return false;\n    try {\n        return window.SLIDE_PROTOCOLS?.protocolIdFor({\n            spec: specOf(background),\n            bgEntry: background,\n            role: \"background\",\n        }) === PROTOCOL_ID;\n    } catch (e) {\n        // A spec nothing can resolve is not ours either.\n        return false;\n    }\n};\n\n/**\n * Whether an opened world item is one of ours \u2014 the same question as\n * {@link ownsBackground}, asked once the source exists and can answer for\n * itself. A source that merely *describes* tiff-encoded samples (WSI-Service\n * `/info`) is not ours; only one this decoder built is.\n *\n * @param {object} source an OpenSeadragon TileSource\n * @return {boolean}\n */\nconst ownsSource = (source) => !!source\n    && typeof OpenSeadragon.GeoTIFFTileSource === \"function\"\n    && source instanceof OpenSeadragon.GeoTIFFTileSource;\n\n// Data ids may be bare file names when the deployment says where they live.\nconst baseUrl = meta(\"protocolBaseUrl\", \"\");\nconst resolveUrl = (dataID) => {\n    const id = String(dataID);\n    if (!baseUrl || /^(https?:)?\\/\\//i.test(id)) return id;\n    return baseUrl.replace(/\\/+$/, \"\") + \"/\" + id.replace(/^\\/+/, \"\");\n};\n\n/**\n * Sources already built, keyed by resolved URL.\n *\n * A source owns the parsed header, the level pyramid and geotiff's 64 KB block\n * cache. Rebuilding one per open means re-reading the header and re-fetching\n * every block, which is what makes returning to a slide as slow as opening it\n * the first time. Reuse is safe: `TiledImage.destroy()` calls `source.destroy()`,\n * and both the base implementation (`openseadragon.js:14744`) and this decoder\n * leave it a no-op \u2014 the teardown belongs to the tiled image, not to the source.\n */\nconst sources = new Map();\n\n/**\n * Build (or reuse) the source for a data id and wait for its header.\n *\n * Reached through {@link ensureSlideLayout}, from an awaited `before-open` or from\n * the preview hook, so the channel layout is known *before* the shader\n * configuration is assembled. The alternative \u2014 correcting after the open \u2014 can\n * only change a layer's type, not its params, which is why a first open used to\n * render with the wrong colour and a second one correctly.\n *\n * @param {string} dataId\n * @return {Promise<object|undefined>} the ready source, or undefined on failure\n */\nasync function readySourceFor(dataId) {\n    const url = resolveUrl(dataId);\n    let source = sources.get(url);\n    if (source?._ready) return source;\n\n    if (!source) {\n        source = new OpenSeadragon.GeoTIFFTileSource(url, {\n            logLatency: debugEnabled() ? logTileLatency : false,\n        });\n        sources.set(url, source);\n    }\n\n    try {\n        // `promises.ready` is a *deferred* (`{promise, resolve, reject}`), not a\n        // promise. Awaiting the deferred itself is a no-op \u2014 it has no `then`, so\n        // it resolves on the next microtask with the header still unread, the\n        // descriptor still unknown, and the background left on the implicit\n        // `identity`. That is what rendered a grayscale TIFF red and a\n        // six-channel one as raw noise on its *first* open, then correctly on\n        // every later one (the `open` handler had cached the layout by then).\n        await (source.promises?.ready?.promise ?? source.promises?.ready);\n        return source._ready ? source : undefined;\n    } catch (e) {\n        // Leave the entry in place: `createTileSource` checks `_ready` and will\n        // rebuild, and the open pipeline reports the failure properly.\n        debug(\"header read failed for\", url, e?.message || e);\n        return undefined;\n    }\n}\n\n/**\n * Layout resolutions in flight, keyed by data id. A slide list asks about the\n * same slide from several cards at once; without this each ask would re-read the\n * header.\n */\nconst layoutInFlight = new Map();\n\n/**\n * The descriptor *and* the measured ranges for a slide, resolved once and cached\n * together.\n *\n * Both consumers \u2014 the open pipeline and the preview hook \u2014 go through here, and\n * that is the point. Resolving them separately lets a slide end up with a cached\n * descriptor but unmeasured statistics: whichever consumer ran second would find\n * the descriptor already known, skip the measurement, and silently drop the input\n * window \u2014 so the same slide would render windowed in one place and black in the\n * other, which is the exact defect this module exists to avoid.\n *\n * @param {string} dataId\n * @param {object} [knownSource] a source the caller already resolved and awaited\n * @return {Promise<object|undefined>} the descriptor, or undefined when unknown\n */\nfunction ensureSlideLayout(dataId, knownSource) {\n    if (!dataId) return Promise.resolve(undefined);\n    if (descriptors.has(dataId) && (autoWindow === \"off\" || statistics.has(dataId))) {\n        return Promise.resolve(descriptors.get(dataId));\n    }\n\n    let pending = layoutInFlight.get(dataId);\n    if (!pending) {\n        pending = (async () => {\n            const source = (knownSource && typeof knownSource.getTiffDescriptor === \"function\")\n                ? knownSource\n                : await readySourceFor(dataId);\n            const descriptor = descriptors.get(dataId)\n                || (source ? describeTileSource(source) : undefined);\n            if (!descriptor) return undefined;\n            descriptors.set(dataId, descriptor);\n\n            if (autoWindow !== \"off\" && !statistics.has(dataId) && source) {\n                // An `undefined` result is stored deliberately: a slide that cannot\n                // be measured must not be re-measured on every thumbnail repaint.\n                statistics.set(dataId, await measureChannelRanges(source, descriptor));\n            }\n            return descriptor;\n        })().finally(() => layoutInFlight.delete(dataId));\n        layoutInFlight.set(dataId, pending);\n    }\n    return pending;\n}\n\nif (meta(\"registerSlideProtocol\", true) && window.SLIDE_PROTOCOLS) {\n    try {\n        window.SLIDE_PROTOCOLS.register({\n            // Same id the ownership test compares against, so the two cannot drift.\n            id: PROTOCOL_ID,\n            label: \"TIFF / GeoTIFF\",\n            // The tile source reads the file itself (range requests through the\n            // adapter installed above), so the data id resolves to the file URL.\n            createTileSource: (ctx) => {\n                const url = resolveUrl(ctx.dataID);\n                const cached = sources.get(url);\n                // Only reuse a source that actually parsed: one that failed would\n                // otherwise pin its failure for the rest of the session.\n                if (cached && cached._ready) {\n                    debug(\"reusing tile source for\", url);\n                    return cached;\n                }\n\n                const source = new OpenSeadragon.GeoTIFFTileSource(url, {\n                    // The decoder reports per-tile decode time through this hook;\n                    // aggregate it instead of printing one line per tile.\n                    logLatency: debugEnabled() ? logTileLatency : false,\n                });\n                sources.set(url, source);\n                return source;\n            },\n        });\n    } catch (e) {\n        // A deployment that already declares its own `tiff` protocol wins.\n        console.warn(\"[geotiff] slide protocol not registered:\", e?.message || e);\n    }\n}\n\nif (meta(\"autoConfigure\", true) && window.VIEWER_MANAGER) {\n    // Auto-derived shader configurations are a runtime decision, not state worth\n    // persisting: they describe the file's channel layout, which the next open\n    // re-derives anyway. Drop them on load.\n    VIEWER_MANAGER.addHandler(\"before-app-init\", (e) => {\n        const reset = stripAutoDerived(e?.background);\n        if (reset) console.debug(`[geotiff] re-deriving shaders for ${reset} background(s)`);\n    });\n\n    // Decide before the open pipeline clones the background's shader list.\n    VIEWER_MANAGER.addHandler(\"before-open\", async (e) => {\n        // How long the open pipeline itself takes, before any tile is involved.\n        openStartedAt = performance.now();\n        const background = e?.background;\n        // Two independent gates: `ownsBackground` keeps this module off foreign\n        // *data*, `shadersAreAutoOwned` keeps it off foreign *configuration*.\n        if (!ownsBackground(background) || !shadersAreAutoOwned(background)) return;\n\n        const dataId = dataIdOf(background);\n\n        // This handler is awaited and the source is memoized, so reading the header\n        // now costs one read that would have happened moments later anyway \u2014 and it\n        // buys the layout *before* the shader list is assembled.\n        const descriptor = await ensureSlideLayout(dataId);\n        if (!descriptor) return;   // unknown layout: leave the implicit identity\n\n        const { shaders, reason } = buildAutoShaders(descriptor, {\n            statistics: statistics.get(dataId),\n            autoWindow,\n        });\n        reportPlan(dataId, reason);\n        if (shaders) background.shaders = shaders;\n        else delete background.shaders;\n    });\n\n    // A slide-list thumbnail is rendered for a slide that is open in no viewer, so\n    // nothing knows its shader configuration and the preview falls back to the\n    // implicit `identity` \u2014 the same wrong picture the viewport showed before this\n    // module ran. Answer with the layout that would be applied on open, so the card\n    // and the viewport agree. Configs only: a preview must not write session state.\n    VIEWER_MANAGER.addHandler(\"get-preview-shader\", async (e) => {\n        if (e.shaders) return;              // someone with a better claim answered\n        if (e.usesPreviewImage) return;     // rendered source is a flat RGB image\n\n        const background = e.background;\n        // Same two gates as `before-open`: foreign data, foreign configuration.\n        if (!ownsBackground(background) || !shadersAreAutoOwned(background)) return;\n\n        const dataId = e.dataId || dataIdOf(background);\n        // The preview already resolved and awaited the source, so in the common case\n        // this costs no I/O at all \u2014 and whatever it does read warms the later open.\n        const descriptor = await ensureSlideLayout(dataId, e.source);\n        if (!descriptor) return;\n\n        const { shaders, reason } = buildAutoShaders(descriptor, {\n            statistics: statistics.get(dataId),\n            autoWindow,\n        });\n        if (!shaders) return;               // implicit identity is the right answer\n        reportPlan(dataId, `preview:${reason}`);\n        e.shaders = shaders;\n    });\n\n    // Learn the real layout once the source is open, and correct this viewer if\n    // the slide turned out to be something else than the plan assumed.\n    VIEWER_MANAGER.broadcastHandler(\"open\", (e) => {\n        const viewer = e?.eventSource;\n        const world = viewer?.world;\n        if (!world) return;\n\n        for (let i = 0; i < world.getItemCount(); i++) {\n            const item = world.getItemAt(i);\n            const background = item?.getConfig?.(\"background\");\n            if (!background) continue;\n            // This runs for every item of every viewer, so the ownership test is\n            // what keeps it from describing \u2014 and then reconfiguring \u2014 a DICOM or\n            // WSI-Service slide that merely answers one of the descriptor chain's\n            // questions.\n            if (!ownsSource(item.source)) continue;\n\n            const descriptor = describeTileSource(item.source);\n            if (!descriptor) continue;\n\n            const dataId = dataIdOf(background);\n            const known = descriptors.get(dataId);\n            descriptors.set(dataId, descriptor);\n\n            if (!shadersAreAutoOwned(background) || corrected.has(background)) continue;\n            if (known && !descriptorsDiffer(known, descriptor)) continue;\n\n            const { shaders, reason } = buildAutoShaders(descriptor, {\n                statistics: statistics.get(dataId),\n                autoWindow,\n            });\n            reportPlan(dataId, reason);\n            const currentType = background.shaders?.[0]?.type;\n            const wantedType = shaders?.[0]?.type;\n            if (currentType === wantedType) continue;\n\n            corrected.add(background);\n            if (shaders) background.shaders = shaders;\n            else delete background.shaders;\n\n            // Deliberately not swapping the live layer here. A runtime swap can\n            // only change a layer's *type* \u2014 its params (channel index, colour)\n            // stay at the shader's defaults, which rendered a grayscale slide in\n            // magenta until the next open. The corrected configuration above\n            // applies on reopen; `before-open` resolves the layout up front, so\n            // this path only runs when a slide's layout turns out to differ from\n            // what the header said.\n            console.info(\n                `[geotiff] ${dataId}: layout resolved as ${wantedType || \"identity\"}; ` +\n                \"applies on the next open of this slide.\"\n            );\n        }\n    });\n}\n"],
  "mappings": "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,SAAS,CACX,CACA,KACF,CACJ,SAAWA,EAAI,GACb,GAAIA,EAAI,GAAI,CACVe,EAAE,KAAOkN,GACT,MAAM,CACR,KAAO,CACL1T,EAAE,IAAM,8BAA+BwG,EAAE,KAAOiN,GAChD,MAAM,CACR,KACG,CACHjO,EAAIhD,GAAGgD,EAAI,QAAUkC,GAAK,GAAKjC,GAAK,EAAE,EACtC,SAAS,CACX,CACA,KACF,CACJ,OAASiI,EAAIzM,GAAKC,EAAIyL,GACxBjH,EAAInD,GAAK,EAAGmL,GAAKhI,EAAGnD,GAAKmD,GAAK,EAAGgC,IAAM,GAAKnF,GAAK,EAAGvC,EAAE,QAAU0N,EAAG1N,EAAE,SAAWkB,EAAGlB,EAAE,SAAW0N,EAAIzM,EAAI,GAAKA,EAAIyM,GAAK,GAAKA,EAAIzM,GAAIjB,EAAE,UAAYkB,EAAIyL,EAAI,KAAOA,EAAIzL,GAAK,KAAOA,EAAIyL,GAAInG,EAAE,KAAOkB,EAAGlB,EAAE,KAAOjE,CAC/M,EACMqR,GAAK,GAAIC,GAAK,IAAKC,GAAK,IAAKC,GAAK,EAAGC,GAAK,EAAGC,GAAK,EAAGC,GAAK,IAAI,YAAY,CAE9E,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,CACF,CAAC,EAAGC,GAAK,IAAI,WAAW,CAEtB,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACF,CAAC,EAAGC,GAAK,IAAI,YAAY,CAEvB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,EACA,CACF,CAAC,EAAGC,GAAK,IAAI,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",
  "names": ["ar", "sr", "ye", "gr", "NA", "ti", "ze", "Ir", "jA", "Br", "lr", "$e", "fr", "cr", "Cr", "ii", "Er", "ri", "Qr", "Ct", "ni", "AA", "hr", "oi", "At", "ur", "_A", "ai", "dr", "wr", "yr", "Dr", "et", "si", "gi", "mr", "Ii", "pr", "e", "kr", "Fr", "Sr", "Bi", "Gr", "xr", "aA", "sA", "tt", "TA", "li", "br", "fi", "it", "rt", "ci", "n", "o", "y", "a", "g", "Rr", "De", "nt", "ot", "at", "Ci", "vr", "st", "Ei", "Ur", "gt", "Qi", "Lr", "Mr", "me", "Et", "hi", "f", "c", "l", "r", "E", "Nr", "Tr", "ui", "qr", "Jr", "pA", "rA", "fe", "di", "HA", "K", "z", "wi", "yi", "Be", "vA", "Di", "Yr", "mi", "pi", "ki", "Fi", "Si", "Hr", "Or", "Kr", "Gi", "_r", "xi", "CA", "It", "Eo", "yo", "Fo", "Ha", "Ka", "Xa", "Za", "Ee", "Pr", "UA", "Vr", "u", "h", "D", "d", "Q", "jr", "Xr", "Wr", "w", "Zr", "zr", "qe", "$r", "An", "Bt", "m", "F", "k", "p", "x", "b", "M", "S", "G", "U", "L", "R", "N", "v", "Y", "_", "T", "O", "H", "P", "j", "B", "en", "tn", "rn", "bi", "As", "Qt", "Ri", "nn", "on", "Je", "an", "XA", "sn", "vi", "Ui", "gn", "lt", "eA", "In", "Bn", "kA", "_kA", "ln", "fn", "cn", "ht", "Cn", "WA", "ZA", "En", "Qn", "hn", "un", "LA", "dn", "wn", "Qe", "he", "yn", "Dn", "mn", "pn", "Ye", "kn", "Fn", "Sn", "Gn", "xn", "bn", "Rn", "vn", "Un", "Ln", "Mn", "IA", "Nn", "le", "$", "Tn", "qn", "Jn", "Yn", "Hn", "On", "Kn", "_n", "Pn", "Vn", "jn", "Xn", "dA", "He", "Wn", "GA", "Zn", "zA", "Li", "nA", "_nA", "I", "s", "Mi", "Ni", "Ti", "Oe", "zn", "MA", "$n", "Ao", "eo", "pe", "ut", "fA", "to", "A", "i", "uA", "io", "Ke", "yA", "mA", "ce", "qi", "ke", "dt", "ft", "YA", "ro", "wt", "no", "oo", "Fe", "ao", "so", "_e", "go", "Io", "DA", "Pe", "RA", "$A", "Bo", "lo", "yt", "fo", "C", "co", "J", "V", "W", "EA", "q", "Co", "Dt", "Se", "Ve", "Qo", "ho", "Ge", "uo", "wo", "OA", "Ae", "ee", "te", "ie", "re", "ne", "xA", "oe", "mt", "Do", "mo", "po", "ko", "qA", "So", "Go", "Ji", "xo", "bo", "Yi", "Ro", "vo", "Uo", "Lo", "Mo", "No", "To", "qo", "je", "Jo", "Yo", "Ho", "gA", "Xe", "Hi", "Oo", "Ko", "_o", "Oi", "Ki", "PA", "Po", "Vo", "jo", "Xo", "We", "Wo", "Zo", "ae", "zo", "$o", "bA", "pt", "kt", "Ft", "xe", "St", "Aa", "ea", "ta", "ia", "ra", "KA", "na", "_i", "Pi", "Gt", "oa", "se", "FA", "aa", "sa", "iA", "Vi", "ji", "ga", "xt", "ue", "bt", "Rt", "vt", "Ut", "Lt", "Mt", "Nt", "Tt", "qt", "Ce", "BA", "be", "Jt", "Re", "Yt", "Ht", "Ot", "Kt", "ge", "Ie", "_t", "Pt", "Vt", "jt", "Xt", "ve", "Wt", "Zt", "X", "Xi", "Wi", "Ia", "Ba", "la", "fa", "zt", "ca", "SA", "Zi", "zi", "$i", "Ar", "Ca", "$t", "Ue", "Le", "Ea", "er", "Qa", "ha", "ua", "da", "wa", "ya", "Da", "ma", "pa", "ka", "Fa", "Sa", "Ga", "xa", "cA", "ba", "Ra", "tr", "va", "Ua", "VA", "Me", "Ne", "La", "Ai", "Ma", "de", "Na", "Ta", "qa", "Ja", "ir", "Ya", "Oa", "rr", "wA", "oA", "tA", "or", "ct", "QA", "we", "hA", "_a", "Pa", "JA", "lA", "Ze", "Te", "Va", "ei", "nr", "ja", "Wa", "za", "$a", "asArray", "value", "fallback", "describeFromDecoder", "described", "describeFromFileDirectory", "fd", "origin", "bitsPerSample", "describeFromSampleEncoding", "encoding", "channels", "c", "describeTileSource", "source", "described", "describeFromDecoder", "e", "level", "image", "fd", "describeFromFileDirectory", "descriptorsDiffer", "a", "b", "key", "d", "AUTO_TAG", "shaderSupportsWindow", "controls", "shaderSupportsOpaque", "windowParams", "range", "mode", "low", "high", "needsRescue", "FALLBACK_TINTS", "tagged", "config", "AUTO_TAG", "buildAutoShaders", "descriptor", "options", "windowing", "count", "opaque", "params", "windowFor", "reason", "children", "order", "i", "id", "channelConfig", "index", "color", "name", "shadersAreAutoOwned", "background", "shaders", "entry", "stripAutoDerived", "backgrounds", "percentiles", "values", "lowQuantile", "highQuantile", "total", "stride", "sample", "i", "value", "a", "b", "at", "quantile", "measureChannelRanges", "source", "descriptor", "image", "rasters", "e", "channels", "ranges", "measured", "encoding", "scale", "offset", "MODULE_ID", "meta", "key", "fallback", "value", "DEFAULT_WORKER_URL", "workerUrl", "debugEnabled", "debug", "args", "longTasks", "longTaskMs", "list", "entry", "e", "decodePool", "response", "type", "stats", "reportStats", "logTileLatency", "_label", "ms", "baseAdapter", "httpAdapter", "url", "init", "length", "co", "converter", "describePath", "from", "to", "path", "originalConvert", "remaining", "tile", "data", "trace", "result", "out", "err", "proto", "originalDownload", "context", "finish", "fail", "request", "cache", "message", "traceDrawerUploads", "drawer", "original", "viewer", "openStartedAt", "openedAt", "firstUpload", "prepare", "fe", "te", "item", "descriptors", "statistics", "autoWindow", "corrected", "reportPlan", "dataId", "reason", "specOf", "background", "dataIdOf", "spec", "PROTOCOL_ID", "ownsBackground", "ownsSource", "source", "baseUrl", "resolveUrl", "dataID", "id", "sources", "readySourceFor", "layoutInFlight", "ensureSlideLayout", "knownSource", "pending", "descriptor", "describeTileSource", "measureChannelRanges", "ctx", "cached", "reset", "stripAutoDerived", "shadersAreAutoOwned", "shaders", "buildAutoShaders", "world", "known", "descriptorsDiffer", "currentType", "wantedType"]
}
