@genome-spy/core 0.48.1 → 0.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/dist/bundle/index.es.js +7485 -7097
  2. package/dist/bundle/index.js +124 -111
  3. package/dist/schema.json +838 -344
  4. package/dist/src/data/collector.d.ts +10 -8
  5. package/dist/src/data/collector.d.ts.map +1 -1
  6. package/dist/src/data/collector.js +131 -33
  7. package/dist/src/data/collector.test.d.ts +2 -0
  8. package/dist/src/data/collector.test.d.ts.map +1 -0
  9. package/dist/src/data/collector.test.js +55 -1
  10. package/dist/src/data/dataFlow.test.d.ts +2 -0
  11. package/dist/src/data/dataFlow.test.d.ts.map +1 -0
  12. package/dist/src/data/flow.test.d.ts +2 -0
  13. package/dist/src/data/flow.test.d.ts.map +1 -0
  14. package/dist/src/data/flow.test.js +19 -14
  15. package/dist/src/data/flowNode.test.d.ts +2 -0
  16. package/dist/src/data/flowNode.test.d.ts.map +1 -0
  17. package/dist/src/data/flowOptimizer.test.d.ts +2 -0
  18. package/dist/src/data/flowOptimizer.test.d.ts.map +1 -0
  19. package/dist/src/data/flowOptimizer.test.js +9 -10
  20. package/dist/src/data/formats/fasta.test.d.ts +2 -0
  21. package/dist/src/data/formats/fasta.test.d.ts.map +1 -0
  22. package/dist/src/data/sources/inlineSource.test.d.ts +2 -0
  23. package/dist/src/data/sources/inlineSource.test.d.ts.map +1 -0
  24. package/dist/src/data/sources/inlineSource.test.js +23 -16
  25. package/dist/src/data/sources/sequenceSource.test.d.ts +2 -0
  26. package/dist/src/data/sources/sequenceSource.test.d.ts.map +1 -0
  27. package/dist/src/data/sources/sequenceSource.test.js +59 -42
  28. package/dist/src/data/transforms/clone.test.d.ts +2 -0
  29. package/dist/src/data/transforms/clone.test.d.ts.map +1 -0
  30. package/dist/src/data/transforms/coverage.test.d.ts +2 -0
  31. package/dist/src/data/transforms/coverage.test.d.ts.map +1 -0
  32. package/dist/src/data/transforms/coverage.test.js +1 -1
  33. package/dist/src/data/transforms/filter.d.ts +10 -0
  34. package/dist/src/data/transforms/filter.d.ts.map +1 -1
  35. package/dist/src/data/transforms/filter.js +30 -1
  36. package/dist/src/data/transforms/filter.test.d.ts +2 -0
  37. package/dist/src/data/transforms/filter.test.d.ts.map +1 -0
  38. package/dist/src/data/transforms/flatten.test.d.ts +2 -0
  39. package/dist/src/data/transforms/flatten.test.d.ts.map +1 -0
  40. package/dist/src/data/transforms/flatten.test.js +10 -7
  41. package/dist/src/data/transforms/flattenDelimited.test.d.ts +2 -0
  42. package/dist/src/data/transforms/flattenDelimited.test.d.ts.map +1 -0
  43. package/dist/src/data/transforms/flattenDelimited.test.js +16 -13
  44. package/dist/src/data/transforms/flattenSequence.test.d.ts +2 -0
  45. package/dist/src/data/transforms/flattenSequence.test.d.ts.map +1 -0
  46. package/dist/src/data/transforms/flattenSequence.test.js +1 -1
  47. package/dist/src/data/transforms/formula.test.d.ts +2 -0
  48. package/dist/src/data/transforms/formula.test.d.ts.map +1 -0
  49. package/dist/src/data/transforms/formula.test.js +1 -1
  50. package/dist/src/data/transforms/identifier.d.ts +1 -1
  51. package/dist/src/data/transforms/identifier.d.ts.map +1 -1
  52. package/dist/src/data/transforms/identifier.js +2 -2
  53. package/dist/src/data/transforms/identifier.test.d.ts +2 -0
  54. package/dist/src/data/transforms/identifier.test.d.ts.map +1 -0
  55. package/dist/src/data/transforms/identifier.test.js +23 -14
  56. package/dist/src/data/transforms/pileup.test.d.ts +2 -0
  57. package/dist/src/data/transforms/pileup.test.d.ts.map +1 -0
  58. package/dist/src/data/transforms/project.test.d.ts +2 -0
  59. package/dist/src/data/transforms/project.test.d.ts.map +1 -0
  60. package/dist/src/data/transforms/project.test.js +1 -1
  61. package/dist/src/data/transforms/regexExtract.test.d.ts +2 -0
  62. package/dist/src/data/transforms/regexExtract.test.d.ts.map +1 -0
  63. package/dist/src/data/transforms/regexExtract.test.js +6 -3
  64. package/dist/src/data/transforms/regexFold.test.d.ts +2 -0
  65. package/dist/src/data/transforms/regexFold.test.d.ts.map +1 -0
  66. package/dist/src/data/transforms/sample.test.d.ts +2 -0
  67. package/dist/src/data/transforms/sample.test.d.ts.map +1 -0
  68. package/dist/src/data/transforms/stack.test.d.ts +2 -0
  69. package/dist/src/data/transforms/stack.test.d.ts.map +1 -0
  70. package/dist/src/data/transforms/stack.test.js +8 -8
  71. package/dist/src/encoder/accessor.d.ts +17 -14
  72. package/dist/src/encoder/accessor.d.ts.map +1 -1
  73. package/dist/src/encoder/accessor.js +127 -56
  74. package/dist/src/encoder/accessor.test.d.ts +2 -0
  75. package/dist/src/encoder/accessor.test.d.ts.map +1 -0
  76. package/dist/src/encoder/accessor.test.js +145 -31
  77. package/dist/src/encoder/encoder.d.ts +26 -13
  78. package/dist/src/encoder/encoder.d.ts.map +1 -1
  79. package/dist/src/encoder/encoder.js +98 -114
  80. package/dist/src/encoder/encoder.test.d.ts +2 -0
  81. package/dist/src/encoder/encoder.test.d.ts.map +1 -0
  82. package/dist/src/encoder/encoder.test.js +85 -82
  83. package/dist/src/fonts/bmFontManager.d.ts.map +1 -1
  84. package/dist/src/fonts/bmFontManager.js +10 -4
  85. package/dist/src/genome/genome.test.d.ts +2 -0
  86. package/dist/src/genome/genome.test.d.ts.map +1 -0
  87. package/dist/src/genome/scaleIndex.test.d.ts +2 -0
  88. package/dist/src/genome/scaleIndex.test.d.ts.map +1 -0
  89. package/dist/src/genome/scaleLocus.test.d.ts +2 -0
  90. package/dist/src/genome/scaleLocus.test.d.ts.map +1 -0
  91. package/dist/src/genomeSpy.d.ts +3 -2
  92. package/dist/src/genomeSpy.d.ts.map +1 -1
  93. package/dist/src/genomeSpy.js +29 -21
  94. package/dist/src/gl/dataToVertices.d.ts +5 -7
  95. package/dist/src/gl/dataToVertices.d.ts.map +1 -1
  96. package/dist/src/gl/dataToVertices.js +42 -30
  97. package/dist/src/gl/glslScaleGenerator.d.ts +84 -15
  98. package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
  99. package/dist/src/gl/glslScaleGenerator.js +260 -73
  100. package/dist/src/gl/includes/picking.vertex.glsl.js +1 -1
  101. package/dist/src/marks/link.common.glsl.js +1 -1
  102. package/dist/src/marks/link.d.ts.map +1 -1
  103. package/dist/src/marks/link.js +10 -0
  104. package/dist/src/marks/link.vertex.glsl.js +1 -1
  105. package/dist/src/marks/mark.d.ts +6 -9
  106. package/dist/src/marks/mark.d.ts.map +1 -1
  107. package/dist/src/marks/mark.js +212 -95
  108. package/dist/src/marks/point.d.ts.map +1 -1
  109. package/dist/src/marks/point.js +5 -1
  110. package/dist/src/marks/rect.d.ts.map +1 -1
  111. package/dist/src/marks/rect.js +9 -4
  112. package/dist/src/marks/rule.d.ts.map +1 -1
  113. package/dist/src/marks/rule.js +4 -0
  114. package/dist/src/marks/text.d.ts.map +1 -1
  115. package/dist/src/marks/text.js +5 -1
  116. package/dist/src/scale/scale.test.d.ts +2 -0
  117. package/dist/src/scale/scale.test.d.ts.map +1 -0
  118. package/dist/src/scale/scale.test.js +2 -0
  119. package/dist/src/scale/ticks.test.d.ts +2 -0
  120. package/dist/src/scale/ticks.test.d.ts.map +1 -0
  121. package/dist/src/scale/ticks.test.js +6 -0
  122. package/dist/src/selection/selection.d.ts +39 -0
  123. package/dist/src/selection/selection.d.ts.map +1 -0
  124. package/dist/src/selection/selection.js +78 -0
  125. package/dist/src/spec/channel.d.ts +137 -83
  126. package/dist/src/spec/mark.d.ts +9 -0
  127. package/dist/src/spec/parameter.d.ts +112 -3
  128. package/dist/src/spec/root.d.ts +0 -1
  129. package/dist/src/spec/transform.d.ts +19 -1
  130. package/dist/src/spec/view.d.ts +3 -3
  131. package/dist/src/tooltip/dataTooltipHandler.js +1 -1
  132. package/dist/src/types/encoder.d.ts +80 -26
  133. package/dist/src/types/rendering.d.ts +1 -0
  134. package/dist/src/types/selectionTypes.d.ts +44 -0
  135. package/dist/src/types/viewContext.d.ts +1 -4
  136. package/dist/src/utils/addBaseUrl.test.d.ts +2 -0
  137. package/dist/src/utils/addBaseUrl.test.d.ts.map +1 -0
  138. package/dist/src/utils/animator.d.ts.map +1 -1
  139. package/dist/src/utils/animator.js +3 -1
  140. package/dist/src/utils/binnedIndex.test.d.ts +2 -0
  141. package/dist/src/utils/binnedIndex.test.d.ts.map +1 -0
  142. package/dist/src/utils/cloner.test.d.ts +2 -0
  143. package/dist/src/utils/cloner.test.d.ts.map +1 -0
  144. package/dist/src/utils/coalesce.test.d.ts +2 -0
  145. package/dist/src/utils/coalesce.test.d.ts.map +1 -0
  146. package/dist/src/utils/concatIterables.test.d.ts +2 -0
  147. package/dist/src/utils/concatIterables.test.d.ts.map +1 -0
  148. package/dist/src/utils/domainArray.test.d.ts +2 -0
  149. package/dist/src/utils/domainArray.test.d.ts.map +1 -0
  150. package/dist/src/utils/expression.d.ts +2 -2
  151. package/dist/src/utils/expression.d.ts.map +1 -1
  152. package/dist/src/utils/expression.js +11 -2
  153. package/dist/src/utils/indexer.test.d.ts +2 -0
  154. package/dist/src/utils/indexer.test.d.ts.map +1 -0
  155. package/dist/src/utils/inertia.d.ts.map +1 -1
  156. package/dist/src/utils/inertia.js +4 -0
  157. package/dist/src/utils/inputBinding.d.ts.map +1 -1
  158. package/dist/src/utils/inputBinding.js +4 -0
  159. package/dist/src/utils/iterateNestedMaps.d.ts +4 -3
  160. package/dist/src/utils/iterateNestedMaps.d.ts.map +1 -1
  161. package/dist/src/utils/iterateNestedMaps.js +3 -2
  162. package/dist/src/utils/iterateNestedMaps.test.d.ts +2 -0
  163. package/dist/src/utils/iterateNestedMaps.test.d.ts.map +1 -0
  164. package/dist/src/utils/kWayMerge.test.d.ts +2 -0
  165. package/dist/src/utils/kWayMerge.test.d.ts.map +1 -0
  166. package/dist/src/utils/mergeObjects.test.d.ts +2 -0
  167. package/dist/src/utils/mergeObjects.test.d.ts.map +1 -0
  168. package/dist/src/utils/numberExtractor.test.d.ts +2 -0
  169. package/dist/src/utils/numberExtractor.test.d.ts.map +1 -0
  170. package/dist/src/utils/propertyCacher.test.d.ts +2 -0
  171. package/dist/src/utils/propertyCacher.test.d.ts.map +1 -0
  172. package/dist/src/utils/propertyCoalescer.test.d.ts +2 -0
  173. package/dist/src/utils/propertyCoalescer.test.d.ts.map +1 -0
  174. package/dist/src/utils/propertyCoalescer.test.js +3 -0
  175. package/dist/src/utils/radixSort.d.ts +9 -0
  176. package/dist/src/utils/radixSort.d.ts.map +1 -0
  177. package/dist/src/utils/radixSort.js +130 -0
  178. package/dist/src/utils/radixSort.test.d.ts +2 -0
  179. package/dist/src/utils/radixSort.test.d.ts.map +1 -0
  180. package/dist/src/utils/radixSort.test.js +51 -0
  181. package/dist/src/utils/reservationMap.test.d.ts +2 -0
  182. package/dist/src/utils/reservationMap.test.d.ts.map +1 -0
  183. package/dist/src/utils/ringBuffer.test.d.ts +2 -0
  184. package/dist/src/utils/ringBuffer.test.d.ts.map +1 -0
  185. package/dist/src/utils/topK.test.d.ts +2 -0
  186. package/dist/src/utils/topK.test.d.ts.map +1 -0
  187. package/dist/src/utils/trees.test.d.ts +2 -0
  188. package/dist/src/utils/trees.test.d.ts.map +1 -0
  189. package/dist/src/utils/trees.test.js +8 -3
  190. package/dist/src/utils/variableTools.test.d.ts +2 -0
  191. package/dist/src/utils/variableTools.test.d.ts.map +1 -0
  192. package/dist/src/view/axisResolution.d.ts +19 -6
  193. package/dist/src/view/axisResolution.d.ts.map +1 -1
  194. package/dist/src/view/axisResolution.js +16 -7
  195. package/dist/src/view/axisResolution.test.d.ts +2 -0
  196. package/dist/src/view/axisResolution.test.d.ts.map +1 -0
  197. package/dist/src/view/axisResolution.test.js +16 -11
  198. package/dist/src/view/facetView.d.ts +1 -1
  199. package/dist/src/view/facetView.d.ts.map +1 -1
  200. package/dist/src/view/flowBuilder.d.ts +1 -1
  201. package/dist/src/view/flowBuilder.d.ts.map +1 -1
  202. package/dist/src/view/flowBuilder.js +34 -5
  203. package/dist/src/view/flowBuilder.test.d.ts +2 -0
  204. package/dist/src/view/flowBuilder.test.d.ts.map +1 -0
  205. package/dist/src/view/gridView.d.ts +0 -6
  206. package/dist/src/view/gridView.d.ts.map +1 -1
  207. package/dist/src/view/layerView.d.ts +0 -6
  208. package/dist/src/view/layerView.d.ts.map +1 -1
  209. package/dist/src/view/layout/flexLayout.test.d.ts +2 -0
  210. package/dist/src/view/layout/flexLayout.test.d.ts.map +1 -0
  211. package/dist/src/view/layout/grid.test.d.ts +2 -0
  212. package/dist/src/view/layout/grid.test.d.ts.map +1 -0
  213. package/dist/src/view/layout/rectangle.test.d.ts +2 -0
  214. package/dist/src/view/layout/rectangle.test.d.ts.map +1 -0
  215. package/dist/src/view/paramMediator.d.ts +32 -5
  216. package/dist/src/view/paramMediator.d.ts.map +1 -1
  217. package/dist/src/view/paramMediator.js +97 -9
  218. package/dist/src/view/paramMediator.test.d.ts +2 -0
  219. package/dist/src/view/paramMediator.test.d.ts.map +1 -0
  220. package/dist/src/view/paramMediator.test.js +17 -1
  221. package/dist/src/view/scaleResolution.d.ts +17 -9
  222. package/dist/src/view/scaleResolution.d.ts.map +1 -1
  223. package/dist/src/view/scaleResolution.js +51 -34
  224. package/dist/src/view/scaleResolution.test.d.ts +2 -0
  225. package/dist/src/view/scaleResolution.test.d.ts.map +1 -0
  226. package/dist/src/view/scaleResolution.test.js +2 -0
  227. package/dist/src/view/testUtils.d.ts.map +1 -1
  228. package/dist/src/view/testUtils.js +15 -3
  229. package/dist/src/view/unitView.d.ts +5 -15
  230. package/dist/src/view/unitView.d.ts.map +1 -1
  231. package/dist/src/view/unitView.js +81 -101
  232. package/dist/src/view/view.d.ts +1 -1
  233. package/dist/src/view/view.d.ts.map +1 -1
  234. package/dist/src/view/view.test.d.ts +2 -0
  235. package/dist/src/view/view.test.d.ts.map +1 -0
  236. package/dist/src/view/view.test.js +73 -55
  237. package/dist/src/view/viewFactory.test.d.ts +2 -0
  238. package/dist/src/view/viewFactory.test.d.ts.map +1 -0
  239. package/dist/src/view/viewFactory.test.js +2 -2
  240. package/dist/src/view/zoom.js +2 -2
  241. package/package.json +5 -2
@@ -1,35 +1,35 @@
1
- (function(he,Ae){typeof exports=="object"&&typeof module<"u"?Ae(exports):typeof define=="function"&&define.amd?define(["exports"],Ae):(he=typeof globalThis<"u"?globalThis:he||self,Ae(he.genomeSpyEmbed={}))})(this,function(he){"use strict";var mG=Object.defineProperty;var bG=(he,Ae,Te)=>Ae in he?mG(he,Ae,{enumerable:!0,configurable:!0,writable:!0,value:Te}):he[Ae]=Te;var Pt=(he,Ae,Te)=>(bG(he,typeof Ae!="symbol"?Ae+"":Ae,Te),Te),Sm=(he,Ae,Te)=>{if(!Ae.has(he))throw TypeError("Cannot "+Te)};var G=(he,Ae,Te)=>(Sm(he,Ae,"read from private field"),Te?Te.call(he):Ae.get(he)),Y=(he,Ae,Te)=>{if(Ae.has(he))throw TypeError("Cannot add the same private member more than once");Ae instanceof WeakSet?Ae.add(he):Ae.set(he,Te)},de=(he,Ae,Te,Ia)=>(Sm(he,Ae,"write to private field"),Ia?Ia.call(he,Te):Ae.set(he,Te),Te);var h4=(he,Ae,Te,Ia)=>({set _(Uu){de(he,Ae,Uu,Te)},get _(){return G(he,Ae,Ia)}}),K=(he,Ae,Te)=>(Sm(he,Ae,"access private method"),Te);var X_,yi,zo,Uo,su,lu,uu,xh,d4,Ah,p4,Ar,cu,Cm,fu,km,va,Nu,Go,Eh,g4,Er,Ho,tn,hu,du,Tm,wm,yG,Dn,Dr,pu,Im,_h,m4,Sh,b4,gu,Bm,mu,Dm,Vo,Lh,_r,ka,bu,Rm,Ch,y4,vm,wG,yu,Fm,wu,Mm,jo,vu,xu,xa,Ou,Au,Pm,Eu,_u,Lm,Su,Nm,$o,qo,Wo,Cu,Zo,Yo,ku,Om,Tu,zm,Aa,Iu,Bu,Du,Sr,Ea,wi,vi,Qo,Xo,nn,_a,Ko,Cr,Ta,kh,w4,Sa,zu,Ru,Um,Fu,Gm,Mu,Hm,Th,v4,Jo,Nh,Ih,x4,es,Pu,xi,Ca,ts,ns,Oh,Bh,A4,Dh,E4,Rh,_4;function Ae(e,t){for(var n=0;n<t.length;n++){const r=t[n];if(typeof r!="string"&&!Array.isArray(r)){for(const i in r)if(i!=="default"&&!(i in e)){const a=Object.getOwnPropertyDescriptor(r,i);a&&Object.defineProperty(e,i,a.get?a:{enumerable:!0,get:()=>r[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function Te(e,t,n){return e.fields=t||[],e.fname=n,e}function Ia(e){return e==null?null:e.fname}function Uu(e){return e==null?null:e.fields}function S4(e){return e.length===1?C4(e[0]):k4(e)}const C4=e=>function(t){return t[e]},k4=e=>{const t=e.length;return function(n){for(let r=0;r<t;++r)n=n[e[r]];return n}};function Qe(e){throw Error(e)}function T4(e){const t=[],n=e.length;let r=null,i=0,a="",o,s,u;e=e+"";function l(){t.push(a+e.substring(o,s)),a="",o=s+1}for(o=s=0;s<n;++s)if(u=e[s],u==="\\")a+=e.substring(o,s++),o=s;else if(u===r)l(),r=null,i=-1;else{if(r)continue;o===i&&u==='"'||o===i&&u==="'"?(o=s+1,r=u):u==="."&&!i?s>o?l():o=s+1:u==="["?(s>o&&l(),i=o=s+1):u==="]"&&(i||Qe("Access path missing open bracket: "+e),i>0&&l(),i=0,o=s+1)}return i&&Qe("Access path missing closing bracket: "+e),r&&Qe("Access path missing closing quote: "+e),s>o&&(s++,l()),t}function Gu(e,t,n){const r=T4(e);return e=r.length===1?r[0]:e,Te((n&&n.get||S4)(r),[e],t||e)}Gu("id");const Hu=Te(e=>e,[],"identity");Te(()=>0,[],"zero"),Te(()=>1,[],"one"),Te(()=>!0,[],"true"),Te(()=>!1,[],"false");var xt=Array.isArray;function kt(e){return e===Object(e)}function vn(e){return e[e.length-1]}function rs(e){return e==null||e===""?null:+e}const Vm=e=>t=>e*Math.exp(t),jm=e=>t=>Math.log(e*t),I4=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),B4=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,Vu=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function zh(e,t,n,r){const i=n(e[0]),a=n(vn(e)),o=(a-i)*t;return[r(i-o),r(a-o)]}function D4(e,t){return zh(e,t,rs,Hu)}function R4(e,t){var n=Math.sign(e[0]);return zh(e,t,jm(n),Vm(n))}function F4(e,t,n){return zh(e,t,Vu(n),Vu(1/n))}function ju(e,t,n,r,i){const a=r(e[0]),o=r(vn(e)),s=t!=null?r(t):(a+o)/2;return[i(s+(a-s)*n),i(s+(o-s)*n)]}function $m(e,t,n){return ju(e,t,n,rs,Hu)}function qm(e,t,n){const r=Math.sign(e[0]);return ju(e,t,n,jm(r),Vm(r))}function Uh(e,t,n,r){return ju(e,t,n,Vu(r),Vu(1/r))}function M4(e,t,n,r){return ju(e,t,n,I4(r),B4(r))}function Gh(e){return e!=null?xt(e)?e:[e]:[]}function P4(e,t,n){let r=e[0],i=e[1],a;return i<r&&(a=i,i=r,r=a),a=i-r,a>=n-t?[t,n]:[r=Math.min(Math.max(r,t),n-a),r+a]}function Lt(e){return typeof e=="function"}const L4="descending";function Wm(e,t,n){n=n||{},t=Gh(t)||[];const r=[],i=[],a={},o=n.comparator||N4;return Gh(e).forEach((s,u)=>{s!=null&&(r.push(t[u]===L4?-1:1),i.push(s=Lt(s)?s:Gu(s,null,n)),(Uu(s)||[]).forEach(l=>a[l]=1))}),i.length===0?null:Te(o(i,r),Object.keys(a))}const Zm=(e,t)=>(e<t||e==null)&&t!=null?-1:(e>t||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0),N4=(e,t)=>e.length===1?O4(e[0],t[0]):z4(e,t,e.length),O4=(e,t)=>function(n,r){return Zm(e(n),e(r))*t},z4=(e,t,n)=>(t.push(0),function(r,i){let a,o=0,s=-1;for(;o===0&&++s<n;)a=e[s],o=Zm(a(r),a(i));return o*t[s]});function U4(e){return Lt(e)?e:()=>e}function Hh(e){for(let t,n,r=1,i=arguments.length;r<i;++r){t=arguments[r];for(n in t)e[n]=t[n]}return e}const G4=Object.prototype.hasOwnProperty;function Ba(e,t){return G4.call(e,t)}function is(e){return typeof e=="boolean"}function H4(e){return Object.prototype.toString.call(e)==="[object Date]"}function V4(e){return e&&Lt(e[Symbol.iterator])}function Tt(e){return typeof e=="number"}function j4(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function Ue(e){return typeof e=="string"}function Ym(e,t){const n=e[0],r=vn(e),i=+t;return i?i===1?r:n+i*(r-n):n}function $u(e){return e&&vn(e)-e[0]||0}function qu(e){return xt(e)?"["+e.map(qu)+"]":kt(e)||Ue(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function $4(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const q4=e=>Tt(e)||H4(e)?e:Date.parse(e);function W4(e,t){return t=t||q4,e==null||e===""?null:t(e)}function Z4(e){return e==null||e===""?null:e+""}function Wu(e){const t={},n=e.length;for(let r=0;r<n;++r)t[e[r]]=!0;return t}var Qm={},Vh={},jh=34,as=10,$h=13;function Xm(e){return new Function("d","return {"+e.map(function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'}).join(",")+"}")}function Y4(e,t){var n=Xm(e);return function(r,i){return t(n(r),i,e)}}function Km(e){var t=Object.create(null),n=[];return e.forEach(function(r){for(var i in r)i in t||n.push(t[i]=i)}),n}function Nt(e,t){var n=e+"",r=n.length;return r<t?new Array(t-r+1).join(0)+n:n}function Q4(e){return e<0?"-"+Nt(-e,6):e>9999?"+"+Nt(e,6):Nt(e,4)}function X4(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),r=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":Q4(e.getUTCFullYear())+"-"+Nt(e.getUTCMonth()+1,2)+"-"+Nt(e.getUTCDate(),2)+(i?"T"+Nt(t,2)+":"+Nt(n,2)+":"+Nt(r,2)+"."+Nt(i,3)+"Z":r?"T"+Nt(t,2)+":"+Nt(n,2)+":"+Nt(r,2)+"Z":n||t?"T"+Nt(t,2)+":"+Nt(n,2)+"Z":"")}function Jm(e){var t=new RegExp('["'+e+`
2
- \r]`),n=e.charCodeAt(0);function r(f,h){var d,p,m=i(f,function(y,w){if(d)return d(y,w-1);p=y,d=h?Y4(y,h):Xm(y)});return m.columns=p||[],m}function i(f,h){var d=[],p=f.length,m=0,y=0,w,x=p<=0,S=!1;f.charCodeAt(p-1)===as&&--p,f.charCodeAt(p-1)===$h&&--p;function _(){if(x)return Vh;if(S)return S=!1,Qm;var I,B=m,R;if(f.charCodeAt(B)===jh){for(;m++<p&&f.charCodeAt(m)!==jh||f.charCodeAt(++m)===jh;);return(I=m)>=p?x=!0:(R=f.charCodeAt(m++))===as?S=!0:R===$h&&(S=!0,f.charCodeAt(m)===as&&++m),f.slice(B+1,I-1).replace(/""/g,'"')}for(;m<p;){if((R=f.charCodeAt(I=m++))===as)S=!0;else if(R===$h)S=!0,f.charCodeAt(m)===as&&++m;else if(R!==n)continue;return f.slice(B,I)}return x=!0,f.slice(B,p)}for(;(w=_())!==Vh;){for(var T=[];w!==Qm&&w!==Vh;)T.push(w),w=_();h&&(T=h(T,y++))==null||d.push(T)}return d}function a(f,h){return f.map(function(d){return h.map(function(p){return c(d[p])}).join(e)})}function o(f,h){return h==null&&(h=Km(f)),[h.map(c).join(e)].concat(a(f,h)).join(`
3
- `)}function s(f,h){return h==null&&(h=Km(f)),a(f,h).join(`
1
+ (function(de,Ee){typeof exports=="object"&&typeof module<"u"?Ee(exports):typeof define=="function"&&define.amd?define(["exports"],Ee):(de=typeof globalThis<"u"?globalThis:de||self,Ee(de.genomeSpyEmbed={}))})(this,function(de){"use strict";var XG=Object.defineProperty;var KG=(de,Ee,Ie)=>Ee in de?XG(de,Ee,{enumerable:!0,configurable:!0,writable:!0,value:Ie}):de[Ee]=Ie;var Pt=(de,Ee,Ie)=>(KG(de,typeof Ee!="symbol"?Ee+"":Ee,Ie),Ie),Fm=(de,Ee,Ie)=>{if(!Ee.has(de))throw TypeError("Cannot "+Ie)};var z=(de,Ee,Ie)=>(Fm(de,Ee,"read from private field"),Ie?Ie.call(de):Ee.get(de)),Z=(de,Ee,Ie)=>{if(Ee.has(de))throw TypeError("Cannot add the same private member more than once");Ee instanceof WeakSet?Ee.add(de):Ee.set(de,Ie)},le=(de,Ee,Ie,Po)=>(Fm(de,Ee,"write to private field"),Po?Po.call(de,Ie):Ee.set(de,Ie),Ie);var I4=(de,Ee,Ie,Po)=>({set _(Zh){le(de,Ee,Zh,Ie)},get _(){return z(de,Ee,Po)}}),X=(de,Ee,Ie)=>(Fm(de,Ee,"access private method"),Ie);var p4,Eo,Wu,Ai,_o,$a,gu,mu,bu,kh,B4,Th,D4,nr,yu,Mm,wu,Pm,qa,Ih,R4,Er,Wa,en,vu,xu,Lm,Au,Nm,Dn,Rr,Eu,Om,Bh,F4,Dh,M4,_u,zm,Su,Um,Za,$h,_r,Fo,Cu,Gm,Rh,P4,Fh,L4,ku,Hm,Ya,Tu,Iu,So,Zu,Bu,Vm,Du,Mh,N4,Sr,Ru,Co,ko,Fu,jm,Mu,$m,Pu,qm,Ph,O4,Qa,Xa,Ka,Lu,Ja,es,Nu,Wm,Ou,Zm,To,zu,Uu,Gu,Cr,Io,Ei,_i,ts,ns,tn,Bo,rs,kr,Mo,Lh,z4,Do,Yu,Hu,Ym,Vu,Qm,ju,Xm,Nh,U4,is,qh,Oh,G4,os,$u,Si,Ro,as,ss,Wh,zh,H4,Uh,V4,Gh,j4;function Ee(e,t){for(var n=0;n<t.length;n++){const r=t[n];if(typeof r!="string"&&!Array.isArray(r)){for(const i in r)if(i!=="default"&&!(i in e)){const o=Object.getOwnPropertyDescriptor(r,i);o&&Object.defineProperty(e,i,o.get?o:{enumerable:!0,get:()=>r[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function Ie(e,t,n){return e.fields=t||[],e.fname=n,e}function Po(e){return e==null?null:e.fname}function Zh(e){return e==null?null:e.fields}function $4(e){return e.length===1?q4(e[0]):W4(e)}const q4=e=>function(t){return t[e]},W4=e=>{const t=e.length;return function(n){for(let r=0;r<t;++r)n=n[e[r]];return n}};function Ke(e){throw Error(e)}function Z4(e){const t=[],n=e.length;let r=null,i=0,o="",a,s,u;e=e+"";function l(){t.push(o+e.substring(a,s)),o="",a=s+1}for(a=s=0;s<n;++s)if(u=e[s],u==="\\")o+=e.substring(a,s++),a=s;else if(u===r)l(),r=null,i=-1;else{if(r)continue;a===i&&u==='"'||a===i&&u==="'"?(a=s+1,r=u):u==="."&&!i?s>a?l():a=s+1:u==="["?(s>a&&l(),i=a=s+1):u==="]"&&(i||Ke("Access path missing open bracket: "+e),i>0&&l(),i=0,a=s+1)}return i&&Ke("Access path missing closing bracket: "+e),r&&Ke("Access path missing closing quote: "+e),s>a&&(s++,l()),t}function Qu(e,t,n){const r=Z4(e);return e=r.length===1?r[0]:e,Ie((n&&n.get||$4)(r),[e],t||e)}Qu("id");const Xu=Ie(e=>e,[],"identity");Ie(()=>0,[],"zero"),Ie(()=>1,[],"one"),Ie(()=>!0,[],"true"),Ie(()=>!1,[],"false");var xt=Array.isArray;function kt(e){return e===Object(e)}function vn(e){return e[e.length-1]}function ls(e){return e==null||e===""?null:+e}const Km=e=>t=>e*Math.exp(t),Jm=e=>t=>Math.log(e*t),Y4=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),Q4=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,Ku=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function Yh(e,t,n,r){const i=n(e[0]),o=n(vn(e)),a=(o-i)*t;return[r(i-a),r(o-a)]}function X4(e,t){return Yh(e,t,ls,Xu)}function K4(e,t){var n=Math.sign(e[0]);return Yh(e,t,Jm(n),Km(n))}function J4(e,t,n){return Yh(e,t,Ku(n),Ku(1/n))}function Ju(e,t,n,r,i){const o=r(e[0]),a=r(vn(e)),s=t!=null?r(t):(o+a)/2;return[i(s+(o-s)*n),i(s+(a-s)*n)]}function e1(e,t,n){return Ju(e,t,n,ls,Xu)}function t1(e,t,n){const r=Math.sign(e[0]);return Ju(e,t,n,Jm(r),Km(r))}function Qh(e,t,n,r){return Ju(e,t,n,Ku(r),Ku(1/r))}function eS(e,t,n,r){return Ju(e,t,n,Y4(r),Q4(r))}function Xh(e){return e!=null?xt(e)?e:[e]:[]}function tS(e,t,n){let r=e[0],i=e[1],o;return i<r&&(o=i,i=r,r=o),o=i-r,o>=n-t?[t,n]:[r=Math.min(Math.max(r,t),n-o),r+o]}function Zt(e){return typeof e=="function"}const nS="descending";function n1(e,t,n){n=n||{},t=Xh(t)||[];const r=[],i=[],o={},a=n.comparator||rS;return Xh(e).forEach((s,u)=>{s!=null&&(r.push(t[u]===nS?-1:1),i.push(s=Zt(s)?s:Qu(s,null,n)),(Zh(s)||[]).forEach(l=>o[l]=1))}),i.length===0?null:Ie(a(i,r),Object.keys(o))}const r1=(e,t)=>(e<t||e==null)&&t!=null?-1:(e>t||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0),rS=(e,t)=>e.length===1?iS(e[0],t[0]):oS(e,t,e.length),iS=(e,t)=>function(n,r){return r1(e(n),e(r))*t},oS=(e,t,n)=>(t.push(0),function(r,i){let o,a=0,s=-1;for(;a===0&&++s<n;)o=e[s],a=r1(o(r),o(i));return a*t[s]});function Kh(e){for(let t,n,r=1,i=arguments.length;r<i;++r){t=arguments[r];for(n in t)e[n]=t[n]}return e}const aS=Object.prototype.hasOwnProperty;function Lo(e,t){return aS.call(e,t)}function us(e){return typeof e=="boolean"}function sS(e){return Object.prototype.toString.call(e)==="[object Date]"}function lS(e){return e&&Zt(e[Symbol.iterator])}function Tt(e){return typeof e=="number"}function uS(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function Fe(e){return typeof e=="string"}function i1(e,t){const n=e[0],r=vn(e),i=+t;return i?i===1?r:n+i*(r-n):n}function ec(e){return e&&vn(e)-e[0]||0}function tc(e){return xt(e)?"["+e.map(tc)+"]":kt(e)||Fe(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function cS(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const fS=e=>Tt(e)||sS(e)?e:Date.parse(e);function hS(e,t){return t=t||fS,e==null||e===""?null:t(e)}function dS(e){return e==null||e===""?null:e+""}function nc(e){const t={},n=e.length;for(let r=0;r<n;++r)t[e[r]]=!0;return t}var o1={},Jh={},ed=34,cs=10,td=13;function a1(e){return new Function("d","return {"+e.map(function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'}).join(",")+"}")}function pS(e,t){var n=a1(e);return function(r,i){return t(n(r),i,e)}}function s1(e){var t=Object.create(null),n=[];return e.forEach(function(r){for(var i in r)i in t||n.push(t[i]=i)}),n}function Lt(e,t){var n=e+"",r=n.length;return r<t?new Array(t-r+1).join(0)+n:n}function gS(e){return e<0?"-"+Lt(-e,6):e>9999?"+"+Lt(e,6):Lt(e,4)}function mS(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),r=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":gS(e.getUTCFullYear())+"-"+Lt(e.getUTCMonth()+1,2)+"-"+Lt(e.getUTCDate(),2)+(i?"T"+Lt(t,2)+":"+Lt(n,2)+":"+Lt(r,2)+"."+Lt(i,3)+"Z":r?"T"+Lt(t,2)+":"+Lt(n,2)+":"+Lt(r,2)+"Z":n||t?"T"+Lt(t,2)+":"+Lt(n,2)+"Z":"")}function l1(e){var t=new RegExp('["'+e+`
2
+ \r]`),n=e.charCodeAt(0);function r(f,h){var d,p,m=i(f,function(y,w){if(d)return d(y,w-1);p=y,d=h?pS(y,h):a1(y)});return m.columns=p||[],m}function i(f,h){var d=[],p=f.length,m=0,y=0,w,A=p<=0,S=!1;f.charCodeAt(p-1)===cs&&--p,f.charCodeAt(p-1)===td&&--p;function _(){if(A)return Jh;if(S)return S=!1,o1;var B,I=m,D;if(f.charCodeAt(I)===ed){for(;m++<p&&f.charCodeAt(m)!==ed||f.charCodeAt(++m)===ed;);return(B=m)>=p?A=!0:(D=f.charCodeAt(m++))===cs?S=!0:D===td&&(S=!0,f.charCodeAt(m)===cs&&++m),f.slice(I+1,B-1).replace(/""/g,'"')}for(;m<p;){if((D=f.charCodeAt(B=m++))===cs)S=!0;else if(D===td)S=!0,f.charCodeAt(m)===cs&&++m;else if(D!==n)continue;return f.slice(I,B)}return A=!0,f.slice(I,p)}for(;(w=_())!==Jh;){for(var k=[];w!==o1&&w!==Jh;)k.push(w),w=_();h&&(k=h(k,y++))==null||d.push(k)}return d}function o(f,h){return f.map(function(d){return h.map(function(p){return c(d[p])}).join(e)})}function a(f,h){return h==null&&(h=s1(f)),[h.map(c).join(e)].concat(o(f,h)).join(`
3
+ `)}function s(f,h){return h==null&&(h=s1(f)),o(f,h).join(`
4
4
  `)}function u(f){return f.map(l).join(`
5
- `)}function l(f){return f.map(c).join(e)}function c(f){return f==null?"":f instanceof Date?X4(f):t.test(f+="")?'"'+f.replace(/"/g,'""')+'"':f}return{parse:r,parseRows:i,format:o,formatBody:s,formatRows:u,formatRow:l,formatValue:c}}var K4=Jm(" "),J4=K4.parseRows;function eS(e){return e}function tS(e){if(e==null)return eS;var t,n,r=e.scale[0],i=e.scale[1],a=e.translate[0],o=e.translate[1];return function(s,u){u||(t=n=0);var l=2,c=s.length,f=new Array(c);for(f[0]=(t+=s[0])*r+a,f[1]=(n+=s[1])*i+o;l<c;)f[l]=s[l],++l;return f}}function nS(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}function rS(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return e1(e,n)})}:e1(e,t)}function e1(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,a=t1(e,t);return n==null&&r==null?{type:"Feature",properties:i,geometry:a}:r==null?{type:"Feature",id:n,properties:i,geometry:a}:{type:"Feature",id:n,bbox:r,properties:i,geometry:a}}function t1(e,t){var n=tS(e.transform),r=e.arcs;function i(c,f){f.length&&f.pop();for(var h=r[c<0?~c:c],d=0,p=h.length;d<p;++d)f.push(n(h[d],d));c<0&&nS(f,p)}function a(c){return n(c)}function o(c){for(var f=[],h=0,d=c.length;h<d;++h)i(c[h],f);return f.length<2&&f.push(f[0]),f}function s(c){for(var f=o(c);f.length<4;)f.push(f[0]);return f}function u(c){return c.map(s)}function l(c){var f=c.type,h;switch(f){case"GeometryCollection":return{type:f,geometries:c.geometries.map(l)};case"Point":h=a(c.coordinates);break;case"MultiPoint":h=c.coordinates.map(a);break;case"LineString":h=o(c.arcs);break;case"MultiLineString":h=c.arcs.map(o);break;case"Polygon":h=u(c.arcs);break;case"MultiPolygon":h=c.arcs.map(u);break;default:return null}return{type:f,coordinates:h}}return l(t)}function iS(e,t){var n={},r={},i={},a=[],o=-1;t.forEach(function(l,c){var f=e.arcs[l<0?~l:l],h;f.length<3&&!f[1][0]&&!f[1][1]&&(h=t[++o],t[o]=l,t[c]=h)}),t.forEach(function(l){var c=s(l),f=c[0],h=c[1],d,p;if(d=i[f])if(delete i[d.end],d.push(l),d.end=h,p=r[h]){delete r[p.start];var m=p===d?d:d.concat(p);r[m.start=d.start]=i[m.end=p.end]=m}else r[d.start]=i[d.end]=d;else if(d=r[h])if(delete r[d.start],d.unshift(l),d.start=f,p=i[f]){delete i[p.end];var y=p===d?d:p.concat(d);r[y.start=p.start]=i[y.end=d.end]=y}else r[d.start]=i[d.end]=d;else d=[l],r[d.start=f]=i[d.end=h]=d});function s(l){var c=e.arcs[l<0?~l:l],f=c[0],h;return e.transform?(h=[0,0],c.forEach(function(d){h[0]+=d[0],h[1]+=d[1]})):h=c[c.length-1],l<0?[h,f]:[f,h]}function u(l,c){for(var f in l){var h=l[f];delete c[h.start],delete h.start,delete h.end,h.forEach(function(d){n[d<0?~d:d]=1}),a.push(h)}}return u(i,r),u(r,i),t.forEach(function(l){n[l<0?~l:l]||a.push([l])}),a}function aS(e){return t1(e,oS.apply(this,arguments))}function oS(e,t,n){var r,i,a;if(arguments.length>1)r=sS(e,t,n);else for(i=0,r=new Array(a=e.arcs.length);i<a;++i)r[i]=i;return{type:"MultiLineString",arcs:iS(e,r)}}function sS(e,t,n){var r=[],i=[],a;function o(f){var h=f<0?~f:f;(i[h]||(i[h]=[])).push({i:f,g:a})}function s(f){f.forEach(o)}function u(f){f.forEach(s)}function l(f){f.forEach(u)}function c(f){switch(a=f,f.type){case"GeometryCollection":f.geometries.forEach(c);break;case"LineString":s(f.arcs);break;case"MultiLineString":case"Polygon":u(f.arcs);break;case"MultiPolygon":l(f.arcs);break}}return c(t),i.forEach(n==null?function(f){r.push(f[0].i)}:function(f){n(f[0].g,f[f.length-1].g)&&r.push(f[0].i)}),r}function os(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function lS(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Zu(e){let t,n,r;e.length!==2?(t=os,n=(s,u)=>os(e(s),u),r=(s,u)=>e(s)-u):(t=e===os||e===lS?e:uS,n=e,r=e);function i(s,u,l=0,c=s.length){if(l<c){if(t(u,u)!==0)return c;do{const f=l+c>>>1;n(s[f],u)<0?l=f+1:c=f}while(l<c)}return l}function a(s,u,l=0,c=s.length){if(l<c){if(t(u,u)!==0)return c;do{const f=l+c>>>1;n(s[f],u)<=0?l=f+1:c=f}while(l<c)}return l}function o(s,u,l=0,c=s.length){const f=i(s,u,l,c-1);return f>l&&r(s[f-1],u)>-r(s[f],u)?f-1:f}return{left:i,center:o,right:a}}function uS(){return 0}function n1(e){return e===null?NaN:+e}const r1=Zu(os),Rr=r1.right;r1.left,Zu(n1).center;function cS(e,t){let n,r;if(t===void 0)for(const i of e)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let a of e)(a=t(a,++i,e))!=null&&(n===void 0?a>=a&&(n=r=a):(n>a&&(n=a),r<a&&(r=a)))}return[n,r]}class ir extends Map{constructor(t,n=dS){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,i]of t)this.set(r,i)}get(t){return super.get(i1(this,t))}has(t){return super.has(i1(this,t))}set(t,n){return super.set(fS(this,t),n)}delete(t){return super.delete(hS(this,t))}}function i1({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function fS({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function hS({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function dS(e){return e!==null&&typeof e=="object"?e.valueOf():e}function qh(e){return e}function Yu(e,...t){return a1(e,qh,qh,t)}function pS(e,...t){return a1(e,Array.from,qh,t)}function a1(e,t,n,r){return function i(a,o){if(o>=r.length)return n(a);const s=new ir,u=r[o++];let l=-1;for(const c of a){const f=u(c,++l,a),h=s.get(f);h?h.push(c):s.set(f,[c])}for(const[c,f]of s)s.set(c,i(f,o));return t(s)}(e,0)}const gS=Math.sqrt(50),mS=Math.sqrt(10),bS=Math.sqrt(2);function Qu(e,t,n){const r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/Math.pow(10,i),o=a>=gS?10:a>=mS?5:a>=bS?2:1;let s,u,l;return i<0?(l=Math.pow(10,-i)/o,s=Math.round(e*l),u=Math.round(t*l),s/l<e&&++s,u/l>t&&--u,l=-l):(l=Math.pow(10,i)*o,s=Math.round(e/l),u=Math.round(t/l),s*l<e&&++s,u*l>t&&--u),u<s&&.5<=n&&n<2?Qu(e,t,n*2):[s,u,l]}function Xu(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];const r=t<e,[i,a,o]=r?Qu(t,e,n):Qu(e,t,n);if(!(a>=i))return[];const s=a-i+1,u=new Array(s);if(r)if(o<0)for(let l=0;l<s;++l)u[l]=(a-l)/-o;else for(let l=0;l<s;++l)u[l]=(a-l)*o;else if(o<0)for(let l=0;l<s;++l)u[l]=(i+l)/-o;else for(let l=0;l<s;++l)u[l]=(i+l)*o;return u}function Wh(e,t,n){return t=+t,e=+e,n=+n,Qu(e,t,n)[2]}function Fr(e,t,n){t=+t,e=+e,n=+n;const r=t<e,i=r?Wh(t,e,n):Wh(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function o1(e,t,n=n1){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e),s=+n(e[a+1],a+1,e);return o+(s-o)*(i-a)}}function ss(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=new Array(i);++r<i;)a[r]=e+r*n;return a}function Ku(e,t){let n=0;if(t===void 0)for(let r of e)(r=+r)&&(n+=r);else{let r=-1;for(let i of e)(i=+t(i,++r,e))&&(n+=i)}return n}function yS(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Ju(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function Da(e){return e=Ju(Math.abs(e)),e?e[1]:NaN}function wS(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],u=0;i>0&&s>0&&(u+s+1>r&&(s=Math.max(1,r-u)),a.push(n.substring(i-=s,i+s)),!((u+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function vS(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var xS=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Mr(e){if(!(t=xS.exec(e)))throw new Error("invalid format: "+e);var t;return new Zh({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Mr.prototype=Zh.prototype;function Zh(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}Zh.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function AS(e){e:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+e[n])break e;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var s1;function ES(e,t){var n=Ju(e,t);if(!n)return e+"";var r=n[0],i=n[1],a=i-(s1=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+new Array(a-o+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+Ju(e,Math.max(0,t+a-1))[0]}function l1(e,t){var n=Ju(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const u1={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:yS,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>l1(e*100,t),r:l1,s:ES,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function c1(e){return e}var f1=Array.prototype.map,h1=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function _S(e){var t=e.grouping===void 0||e.thousands===void 0?c1:wS(f1.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?c1:vS(f1.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",u=e.nan===void 0?"NaN":e.nan+"";function l(f){f=Mr(f);var h=f.fill,d=f.align,p=f.sign,m=f.symbol,y=f.zero,w=f.width,x=f.comma,S=f.precision,_=f.trim,T=f.type;T==="n"?(x=!0,T="g"):u1[T]||(S===void 0&&(S=12),_=!0,T="g"),(y||h==="0"&&d==="=")&&(y=!0,h="0",d="=");var I=m==="$"?n:m==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",B=m==="$"?r:/[%p]/.test(T)?o:"",R=u1[T],M=/[defgprs%]/.test(T);S=S===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,S)):Math.max(0,Math.min(20,S));function H(O){var re=I,se=B,te,me,Ke;if(T==="c")se=R(O)+se,O="";else{O=+O;var Re=O<0||1/O<0;if(O=isNaN(O)?u:R(Math.abs(O),S),_&&(O=AS(O)),Re&&+O==0&&p!=="+"&&(Re=!1),re=(Re?p==="("?p:s:p==="-"||p==="("?"":p)+re,se=(T==="s"?h1[8+s1/3]:"")+se+(Re&&p==="("?")":""),M){for(te=-1,me=O.length;++te<me;)if(Ke=O.charCodeAt(te),48>Ke||Ke>57){se=(Ke===46?i+O.slice(te+1):O.slice(te))+se,O=O.slice(0,te);break}}}x&&!y&&(O=t(O,1/0));var Je=re.length+O.length+se.length,We=Je<w?new Array(w-Je+1).join(h):"";switch(x&&y&&(O=t(We+O,We.length?w-se.length:1/0),We=""),d){case"<":O=re+O+se+We;break;case"=":O=re+We+O+se;break;case"^":O=We.slice(0,Je=We.length>>1)+re+O+se+We.slice(Je);break;default:O=We+re+O+se;break}return a(O)}return H.toString=function(){return f+""},H}function c(f,h){var d=l((f=Mr(f),f.type="f",f)),p=Math.max(-8,Math.min(8,Math.floor(Da(h)/3)))*3,m=Math.pow(10,-p),y=h1[8+p/3];return function(w){return d(m*w)+y}}return{format:l,formatPrefix:c}}var ec,mt,Yh;SS({thousands:",",grouping:[3],currency:["$",""]});function SS(e){return ec=_S(e),mt=ec.format,Yh=ec.formatPrefix,ec}function d1(e){return Math.max(0,-Da(Math.abs(e)))}function p1(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Da(t)/3)))*3-Da(Math.abs(e)))}function g1(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Da(t)-Da(e))+1}const Qh=new Date,Xh=new Date;function at(e,t,n,r){function i(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=a=>(e(a=new Date(+a)),a),i.ceil=a=>(e(a=new Date(a-1)),t(a,1),e(a),a),i.round=a=>{const o=i(a),s=i.ceil(a);return a-o<s-a?o:s},i.offset=(a,o)=>(t(a=new Date(+a),o==null?1:Math.floor(o)),a),i.range=(a,o,s)=>{const u=[];if(a=i.ceil(a),s=s==null?1:Math.floor(s),!(a<o)||!(s>0))return u;let l;do u.push(l=new Date(+a)),t(a,s),e(a);while(l<a&&a<o);return u},i.filter=a=>at(o=>{if(o>=o)for(;e(o),!a(o);)o.setTime(o-1)},(o,s)=>{if(o>=o)if(s<0)for(;++s<=0;)for(;t(o,-1),!a(o););else for(;--s>=0;)for(;t(o,1),!a(o););}),n&&(i.count=(a,o)=>(Qh.setTime(+a),Xh.setTime(+o),e(Qh),e(Xh),Math.floor(n(Qh,Xh))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(r?o=>r(o)%a===0:o=>i.count(0,o)%a===0):i)),i}const Ra=at(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Ra.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?at(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):Ra),Ra.range;const ar=1e3,rn=ar*60,or=rn*60,sr=or*24,Kh=sr*7,m1=sr*30,Jh=sr*365,lr=at(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*ar)},(e,t)=>(t-e)/ar,e=>e.getUTCSeconds());lr.range;const tc=at(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*ar)},(e,t)=>{e.setTime(+e+t*rn)},(e,t)=>(t-e)/rn,e=>e.getMinutes());tc.range;const nc=at(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*rn)},(e,t)=>(t-e)/rn,e=>e.getUTCMinutes());nc.range;const rc=at(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*ar-e.getMinutes()*rn)},(e,t)=>{e.setTime(+e+t*or)},(e,t)=>(t-e)/or,e=>e.getHours());rc.range;const ic=at(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*or)},(e,t)=>(t-e)/or,e=>e.getUTCHours());ic.range;const Pr=at(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*rn)/sr,e=>e.getDate()-1);Pr.range;const Ii=at(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/sr,e=>e.getUTCDate()-1);Ii.range;const b1=at(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/sr,e=>Math.floor(e/sr));b1.range;function Bi(e){return at(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*rn)/Kh)}const ls=Bi(0),ac=Bi(1),CS=Bi(2),kS=Bi(3),Fa=Bi(4),TS=Bi(5),IS=Bi(6);ls.range,ac.range,CS.range,kS.range,Fa.range,TS.range,IS.range;function Di(e){return at(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/Kh)}const us=Di(0),oc=Di(1),BS=Di(2),DS=Di(3),Ma=Di(4),RS=Di(5),FS=Di(6);us.range,oc.range,BS.range,DS.range,Ma.range,RS.range,FS.range;const cs=at(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());cs.range;const fs=at(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());fs.range;const Pn=at(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());Pn.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:at(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)}),Pn.range;const Ln=at(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());Ln.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:at(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)}),Ln.range;function y1(e,t,n,r,i,a){const o=[[lr,1,ar],[lr,5,5*ar],[lr,15,15*ar],[lr,30,30*ar],[a,1,rn],[a,5,5*rn],[a,15,15*rn],[a,30,30*rn],[i,1,or],[i,3,3*or],[i,6,6*or],[i,12,12*or],[r,1,sr],[r,2,2*sr],[n,1,Kh],[t,1,m1],[t,3,3*m1],[e,1,Jh]];function s(l,c,f){const h=c<l;h&&([l,c]=[c,l]);const d=f&&typeof f.range=="function"?f:u(l,c,f),p=d?d.range(l,+c+1):[];return h?p.reverse():p}function u(l,c,f){const h=Math.abs(c-l)/f,d=Zu(([,,y])=>y).right(o,h);if(d===o.length)return e.every(Fr(l/Jh,c/Jh,f));if(d===0)return Ra.every(Math.max(Fr(l,c,f),1));const[p,m]=o[h/o[d-1][2]<o[d][2]/h?d-1:d];return p.every(m)}return[s,u]}const[MS,PS]=y1(Ln,fs,us,b1,ic,nc),[LS,NS]=y1(Pn,cs,ls,Pr,rc,tc),hs="year",ds="quarter",ps="month",gs="week",ms="date",sc="day",ed="dayofyear",bs="hours",ys="minutes",ws="seconds",lc="milliseconds";[hs,ds,ps,gs,ms,sc,ed,bs,ys,ws,lc].reduce((e,t,n)=>(e[t]=1+n,e),{});const OS={[hs]:Pn,[ds]:cs.every(3),[ps]:cs,[gs]:ls,[ms]:Pr,[sc]:Pr,[ed]:Pr,[bs]:rc,[ys]:tc,[ws]:lr,[lc]:Ra},zS={[hs]:Ln,[ds]:fs.every(3),[ps]:fs,[gs]:us,[ms]:Ii,[sc]:Ii,[ed]:Ii,[bs]:ic,[ys]:nc,[ws]:lr,[lc]:Ra};function US(e){return OS[e]}function GS(e){return zS[e]}function td(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function nd(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function vs(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function w1(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,u=e.shortMonths,l=xs(i),c=As(i),f=xs(a),h=As(a),d=xs(o),p=As(o),m=xs(s),y=As(s),w=xs(u),x=As(u),S={a:Re,A:Je,b:We,B:et,c:null,d:S1,e:S1,f:cC,g:vC,G:AC,H:sC,I:lC,j:uC,L:C1,m:fC,M:hC,p:Se,q:Ce,Q:R1,s:F1,S:dC,u:pC,U:gC,V:mC,w:bC,W:yC,x:null,X:null,y:wC,Y:xC,Z:EC,"%":D1},_={a:gt,A:qt,b:Oe,B:L,c:null,d:T1,e:T1,f:kC,g:NC,G:zC,H:_C,I:SC,j:CC,L:I1,m:TC,M:IC,p:P,q,Q:R1,s:F1,S:BC,u:DC,U:RC,V:FC,w:MC,W:PC,x:null,X:null,y:LC,Y:OC,Z:UC,"%":D1},T={a:H,A:O,b:re,B:se,c:te,d:E1,e:E1,f:rC,g:A1,G:x1,H:_1,I:_1,j:JS,L:nC,m:KS,M:eC,p:M,q:XS,Q:aC,s:oC,S:tC,u:qS,U:WS,V:ZS,w:$S,W:YS,x:me,X:Ke,y:A1,Y:x1,Z:QS,"%":iC};S.x=I(n,S),S.X=I(r,S),S.c=I(t,S),_.x=I(n,_),_.X=I(r,_),_.c=I(t,_);function I(j,Z){return function(C){var A=[],V=-1,W=0,ue=j.length,ne,ce,Wt;for(C instanceof Date||(C=new Date(+C));++V<ue;)j.charCodeAt(V)===37&&(A.push(j.slice(W,V)),(ce=v1[ne=j.charAt(++V)])!=null?ne=j.charAt(++V):ce=ne==="e"?" ":"0",(Wt=Z[ne])&&(ne=Wt(C,ce)),A.push(ne),W=V+1);return A.push(j.slice(W,V)),A.join("")}}function B(j,Z){return function(C){var A=vs(1900,void 0,1),V=R(A,j,C+="",0),W,ue;if(V!=C.length)return null;if("Q"in A)return new Date(A.Q);if("s"in A)return new Date(A.s*1e3+("L"in A?A.L:0));if(Z&&!("Z"in A)&&(A.Z=0),"p"in A&&(A.H=A.H%12+A.p*12),A.m===void 0&&(A.m="q"in A?A.q:0),"V"in A){if(A.V<1||A.V>53)return null;"w"in A||(A.w=1),"Z"in A?(W=nd(vs(A.y,0,1)),ue=W.getUTCDay(),W=ue>4||ue===0?oc.ceil(W):oc(W),W=Ii.offset(W,(A.V-1)*7),A.y=W.getUTCFullYear(),A.m=W.getUTCMonth(),A.d=W.getUTCDate()+(A.w+6)%7):(W=td(vs(A.y,0,1)),ue=W.getDay(),W=ue>4||ue===0?ac.ceil(W):ac(W),W=Pr.offset(W,(A.V-1)*7),A.y=W.getFullYear(),A.m=W.getMonth(),A.d=W.getDate()+(A.w+6)%7)}else("W"in A||"U"in A)&&("w"in A||(A.w="u"in A?A.u%7:"W"in A?1:0),ue="Z"in A?nd(vs(A.y,0,1)).getUTCDay():td(vs(A.y,0,1)).getDay(),A.m=0,A.d="W"in A?(A.w+6)%7+A.W*7-(ue+5)%7:A.w+A.U*7-(ue+6)%7);return"Z"in A?(A.H+=A.Z/100|0,A.M+=A.Z%100,nd(A)):td(A)}}function R(j,Z,C,A){for(var V=0,W=Z.length,ue=C.length,ne,ce;V<W;){if(A>=ue)return-1;if(ne=Z.charCodeAt(V++),ne===37){if(ne=Z.charAt(V++),ce=T[ne in v1?Z.charAt(V++):ne],!ce||(A=ce(j,C,A))<0)return-1}else if(ne!=C.charCodeAt(A++))return-1}return A}function M(j,Z,C){var A=l.exec(Z.slice(C));return A?(j.p=c.get(A[0].toLowerCase()),C+A[0].length):-1}function H(j,Z,C){var A=d.exec(Z.slice(C));return A?(j.w=p.get(A[0].toLowerCase()),C+A[0].length):-1}function O(j,Z,C){var A=f.exec(Z.slice(C));return A?(j.w=h.get(A[0].toLowerCase()),C+A[0].length):-1}function re(j,Z,C){var A=w.exec(Z.slice(C));return A?(j.m=x.get(A[0].toLowerCase()),C+A[0].length):-1}function se(j,Z,C){var A=m.exec(Z.slice(C));return A?(j.m=y.get(A[0].toLowerCase()),C+A[0].length):-1}function te(j,Z,C){return R(j,t,Z,C)}function me(j,Z,C){return R(j,n,Z,C)}function Ke(j,Z,C){return R(j,r,Z,C)}function Re(j){return o[j.getDay()]}function Je(j){return a[j.getDay()]}function We(j){return u[j.getMonth()]}function et(j){return s[j.getMonth()]}function Se(j){return i[+(j.getHours()>=12)]}function Ce(j){return 1+~~(j.getMonth()/3)}function gt(j){return o[j.getUTCDay()]}function qt(j){return a[j.getUTCDay()]}function Oe(j){return u[j.getUTCMonth()]}function L(j){return s[j.getUTCMonth()]}function P(j){return i[+(j.getUTCHours()>=12)]}function q(j){return 1+~~(j.getUTCMonth()/3)}return{format:function(j){var Z=I(j+="",S);return Z.toString=function(){return j},Z},parse:function(j){var Z=B(j+="",!1);return Z.toString=function(){return j},Z},utcFormat:function(j){var Z=I(j+="",_);return Z.toString=function(){return j},Z},utcParse:function(j){var Z=B(j+="",!0);return Z.toString=function(){return j},Z}}}var v1={"-":"",_:" ",0:"0"},ut=/^\s*\d+/,HS=/^%/,VS=/[\\^$*+?|[\]().{}]/g;function we(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",a=i.length;return r+(a<n?new Array(n-a+1).join(t)+i:i)}function jS(e){return e.replace(VS,"\\$&")}function xs(e){return new RegExp("^(?:"+e.map(jS).join("|")+")","i")}function As(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function $S(e,t,n){var r=ut.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function qS(e,t,n){var r=ut.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function WS(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function ZS(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function YS(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function x1(e,t,n){var r=ut.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function A1(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function QS(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function XS(e,t,n){var r=ut.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function KS(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function E1(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function JS(e,t,n){var r=ut.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function _1(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function eC(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function tC(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function nC(e,t,n){var r=ut.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function rC(e,t,n){var r=ut.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function iC(e,t,n){var r=HS.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function aC(e,t,n){var r=ut.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function oC(e,t,n){var r=ut.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function S1(e,t){return we(e.getDate(),t,2)}function sC(e,t){return we(e.getHours(),t,2)}function lC(e,t){return we(e.getHours()%12||12,t,2)}function uC(e,t){return we(1+Pr.count(Pn(e),e),t,3)}function C1(e,t){return we(e.getMilliseconds(),t,3)}function cC(e,t){return C1(e,t)+"000"}function fC(e,t){return we(e.getMonth()+1,t,2)}function hC(e,t){return we(e.getMinutes(),t,2)}function dC(e,t){return we(e.getSeconds(),t,2)}function pC(e){var t=e.getDay();return t===0?7:t}function gC(e,t){return we(ls.count(Pn(e)-1,e),t,2)}function k1(e){var t=e.getDay();return t>=4||t===0?Fa(e):Fa.ceil(e)}function mC(e,t){return e=k1(e),we(Fa.count(Pn(e),e)+(Pn(e).getDay()===4),t,2)}function bC(e){return e.getDay()}function yC(e,t){return we(ac.count(Pn(e)-1,e),t,2)}function wC(e,t){return we(e.getFullYear()%100,t,2)}function vC(e,t){return e=k1(e),we(e.getFullYear()%100,t,2)}function xC(e,t){return we(e.getFullYear()%1e4,t,4)}function AC(e,t){var n=e.getDay();return e=n>=4||n===0?Fa(e):Fa.ceil(e),we(e.getFullYear()%1e4,t,4)}function EC(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+we(t/60|0,"0",2)+we(t%60,"0",2)}function T1(e,t){return we(e.getUTCDate(),t,2)}function _C(e,t){return we(e.getUTCHours(),t,2)}function SC(e,t){return we(e.getUTCHours()%12||12,t,2)}function CC(e,t){return we(1+Ii.count(Ln(e),e),t,3)}function I1(e,t){return we(e.getUTCMilliseconds(),t,3)}function kC(e,t){return I1(e,t)+"000"}function TC(e,t){return we(e.getUTCMonth()+1,t,2)}function IC(e,t){return we(e.getUTCMinutes(),t,2)}function BC(e,t){return we(e.getUTCSeconds(),t,2)}function DC(e){var t=e.getUTCDay();return t===0?7:t}function RC(e,t){return we(us.count(Ln(e)-1,e),t,2)}function B1(e){var t=e.getUTCDay();return t>=4||t===0?Ma(e):Ma.ceil(e)}function FC(e,t){return e=B1(e),we(Ma.count(Ln(e),e)+(Ln(e).getUTCDay()===4),t,2)}function MC(e){return e.getUTCDay()}function PC(e,t){return we(oc.count(Ln(e)-1,e),t,2)}function LC(e,t){return we(e.getUTCFullYear()%100,t,2)}function NC(e,t){return e=B1(e),we(e.getUTCFullYear()%100,t,2)}function OC(e,t){return we(e.getUTCFullYear()%1e4,t,4)}function zC(e,t){var n=e.getUTCDay();return e=n>=4||n===0?Ma(e):Ma.ceil(e),we(e.getUTCFullYear()%1e4,t,4)}function UC(){return"+0000"}function D1(){return"%"}function R1(e){return+e}function F1(e){return Math.floor(+e/1e3)}var Pa,rd,M1,id,P1;GC({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function GC(e){return Pa=w1(e),rd=Pa.format,M1=Pa.parse,id=Pa.utcFormat,P1=Pa.utcParse,Pa}function Es(e){const t={};return n=>t[n]||(t[n]=e(n))}function HC(e,t){return n=>{const r=e(n),i=r.indexOf(t);if(i<0)return r;let a=VC(r,i);const o=a<r.length?r.slice(a):"";for(;--a>i;)if(r[a]!=="0"){++a;break}return r.slice(0,a)+o}}function VC(e,t){let n=e.lastIndexOf("e"),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.charCodeAt(n),r>=48&&r<=57)return n+1}function jC(e){const t=Es(e.format),n=e.formatPrefix;return{format:t,formatPrefix:n,formatFloat(r){const i=Mr(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return HC(t(i),t(".1f")(1)[1])}else return t(i)},formatSpan(r,i,a,o){o=Mr(o??",f");const s=Fr(r,i,a),u=Math.max(Math.abs(r),Math.abs(i));let l;if(o.precision==null)switch(o.type){case"s":return isNaN(l=p1(s,u))||(o.precision=l),n(o,u);case"":case"e":case"g":case"p":case"r":{isNaN(l=g1(s,u))||(o.precision=l-(o.type==="e"));break}case"f":case"%":{isNaN(l=d1(s))||(o.precision=l-(o.type==="%")*2);break}}return t(o)}}}$C();function $C(){return jC({format:mt,formatPrefix:Yh})}function L1(e,t,n){n=n||{},kt(n)||Qe(`Invalid time multi-format specifier: ${n}`);const r=t(ws),i=t(ys),a=t(bs),o=t(ms),s=t(gs),u=t(ps),l=t(ds),c=t(hs),f=e(n[lc]||".%L"),h=e(n[ws]||":%S"),d=e(n[ys]||"%I:%M"),p=e(n[bs]||"%I %p"),m=e(n[ms]||n[sc]||"%a %d"),y=e(n[gs]||"%b %d"),w=e(n[ps]||"%B"),x=e(n[ds]||"%B"),S=e(n[hs]||"%Y");return _=>(r(_)<_?f:i(_)<_?h:a(_)<_?d:o(_)<_?p:u(_)<_?s(_)<_?m:y:c(_)<_?l(_)<_?w:x:S)(_)}function N1(e){const t=Es(e.format),n=Es(e.utcFormat);return{timeFormat:r=>Ue(r)?t(r):L1(t,US,r),utcFormat:r=>Ue(r)?n(r):L1(n,GS,r),timeParse:Es(e.parse),utcParse:Es(e.utcParse)}}let ad;qC();function qC(){return ad=N1({format:rd,parse:M1,utcFormat:id,utcParse:P1})}function WC(e){return N1(w1(e))}function ZC(e){return arguments.length?ad=WC(e):ad}const YC=/^(data:|([A-Za-z]+:)?\/\/)/,QC=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,XC=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,O1="file://";function KC(e,t){return n=>({options:n||{},sanitize:e6,load:JC,fileAccess:!!t,file:t6(t),http:r6(e)})}async function JC(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t)}async function e6(e,t){t=Hh({},this.options,t);const n=this.fileAccess,r={href:null};let i,a,o;const s=QC.test(e.replace(XC,""));(e==null||typeof e!="string"||!s)&&Qe("Sanitize failure, invalid URI: "+qu(e));const u=YC.test(e);return(o=t.baseURL)&&!u&&(!e.startsWith("/")&&!o.endsWith("/")&&(e="/"+e),e=o+e),a=(i=e.startsWith(O1))||t.mode==="file"||t.mode!=="http"&&!u&&n,i?e=e.slice(O1.length):e.startsWith("//")&&(t.defaultProtocol==="file"?(e=e.slice(2),a=!0):e=(t.defaultProtocol||"http")+":"+e),Object.defineProperty(r,"localFile",{value:!!a}),r.href=e,t.target&&(r.target=t.target+""),t.rel&&(r.rel=t.rel+""),t.context==="image"&&t.crossOrigin&&(r.crossOrigin=t.crossOrigin+""),r}function t6(e){return e?t=>new Promise((n,r)=>{e.readFile(t,(i,a)=>{i?r(i):n(a)})}):n6}async function n6(){Qe("No file system access.")}function r6(e){return e?async function(t,n){const r=Hh({},this.options.http,n),i=n&&n.response,a=await e(t,r);return a.ok?Lt(a[i])?a[i]():a.text():Qe(a.status+""+a.statusText)}:i6}async function i6(){Qe("No HTTP fetch method available.")}const a6=e=>e!=null&&e===e,o6=e=>e==="true"||e==="false"||e===!0||e===!1,s6=e=>!Number.isNaN(Date.parse(e)),z1=e=>!Number.isNaN(+e)&&!(e instanceof Date),l6=e=>z1(e)&&Number.isInteger(+e),U1={boolean:$4,integer:rs,number:rs,date:W4,string:Z4,unknown:Hu},uc=[o6,l6,z1,s6],u6=["boolean","integer","number","date"];function c6(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=uc.length,i=uc.map((a,o)=>o+1);for(let a=0,o=0,s,u;a<n;++a)for(u=t?e[a][t]:e[a],s=0;s<r;++s)if(i[s]&&a6(u)&&!uc[s](u)&&(i[s]=0,++o,o===uc.length))return"string";return u6[i.reduce((a,o)=>a===0?o:a,0)-1]}function f6(e,t){return t.reduce((n,r)=>(n[r]=c6(e,r),n),{})}function G1(e){const t=function(n,r){const i={delimiter:e};return od(n,r?Hh(r,i):i)};return t.responseType="text",t}function od(e,t){return t.header&&(e=t.header.map(qu).join(t.delimiter)+`
6
- `+e),Jm(t.delimiter).parse(e+"")}od.responseType="text";function h6(e){return typeof Buffer=="function"&&Lt(Buffer.isBuffer)?Buffer.isBuffer(e):!1}function sd(e,t){const n=t&&t.property?Gu(t.property):Hu;return kt(e)&&!h6(e)?d6(n(e),t):n(JSON.parse(e))}sd.responseType="json";function d6(e,t){return!xt(e)&&V4(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}const p6={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function H1(e,t){let n,r,i,a;return e=sd(e,t),t&&t.feature?(n=rS,i=t.feature):t&&t.mesh?(n=aS,i=t.mesh,a=p6[t.filter]):Qe("Missing TopoJSON feature or mesh parameter."),r=(r=e.objects[i])?n(e,r,a):Qe("Invalid TopoJSON object: "+i),r&&r.features||[r]}H1.responseType="json";const ld={dsv:od,csv:G1(","),tsv:G1(" "),json:sd,topojson:H1};function V1(e,t){return arguments.length>1?(ld[e]=t,this):Ba(ld,e)?ld[e]:null}function j1(e,t,n,r){t=t||{};const i=V1(t.type||"json");return i||Qe("Unknown data format type: "+t.type),e=i(e,t),t.parse&&g6(e,t.parse,n,r),Ba(e,"columns")&&delete e.columns,e}function g6(e,t,n,r){if(!e.length)return;const i=ZC();n=n||i.timeParse,r=r||i.utcParse;let a=e.columns||Object.keys(e[0]),o,s,u,l,c,f;t==="auto"&&(t=f6(e,a)),a=Object.keys(t);const h=a.map(d=>{const p=t[d];let m,y;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return m=p.split(/:(.+)?/,2),y=m[1],(y[0]==="'"&&y[y.length-1]==="'"||y[0]==='"'&&y[y.length-1]==='"')&&(y=y.slice(1,-1)),(m[0]==="utc"?r:n)(y);if(!U1[p])throw Error("Illegal format pattern: "+d+":"+p);return U1[p]});for(u=0,c=e.length,f=a.length;u<c;++u)for(o=e[u],l=0;l<f;++l)s=a[l],o[s]=h[l](o[s])}const cc=KC(typeof fetch<"u"&&fetch,null);/**
5
+ `)}function l(f){return f.map(c).join(e)}function c(f){return f==null?"":f instanceof Date?mS(f):t.test(f+="")?'"'+f.replace(/"/g,'""')+'"':f}return{parse:r,parseRows:i,format:a,formatBody:s,formatRows:u,formatRow:l,formatValue:c}}var bS=l1(" "),yS=bS.parseRows;function wS(e){return e}function vS(e){if(e==null)return wS;var t,n,r=e.scale[0],i=e.scale[1],o=e.translate[0],a=e.translate[1];return function(s,u){u||(t=n=0);var l=2,c=s.length,f=new Array(c);for(f[0]=(t+=s[0])*r+o,f[1]=(n+=s[1])*i+a;l<c;)f[l]=s[l],++l;return f}}function xS(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}function AS(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return u1(e,n)})}:u1(e,t)}function u1(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,o=c1(e,t);return n==null&&r==null?{type:"Feature",properties:i,geometry:o}:r==null?{type:"Feature",id:n,properties:i,geometry:o}:{type:"Feature",id:n,bbox:r,properties:i,geometry:o}}function c1(e,t){var n=vS(e.transform),r=e.arcs;function i(c,f){f.length&&f.pop();for(var h=r[c<0?~c:c],d=0,p=h.length;d<p;++d)f.push(n(h[d],d));c<0&&xS(f,p)}function o(c){return n(c)}function a(c){for(var f=[],h=0,d=c.length;h<d;++h)i(c[h],f);return f.length<2&&f.push(f[0]),f}function s(c){for(var f=a(c);f.length<4;)f.push(f[0]);return f}function u(c){return c.map(s)}function l(c){var f=c.type,h;switch(f){case"GeometryCollection":return{type:f,geometries:c.geometries.map(l)};case"Point":h=o(c.coordinates);break;case"MultiPoint":h=c.coordinates.map(o);break;case"LineString":h=a(c.arcs);break;case"MultiLineString":h=c.arcs.map(a);break;case"Polygon":h=u(c.arcs);break;case"MultiPolygon":h=c.arcs.map(u);break;default:return null}return{type:f,coordinates:h}}return l(t)}function ES(e,t){var n={},r={},i={},o=[],a=-1;t.forEach(function(l,c){var f=e.arcs[l<0?~l:l],h;f.length<3&&!f[1][0]&&!f[1][1]&&(h=t[++a],t[a]=l,t[c]=h)}),t.forEach(function(l){var c=s(l),f=c[0],h=c[1],d,p;if(d=i[f])if(delete i[d.end],d.push(l),d.end=h,p=r[h]){delete r[p.start];var m=p===d?d:d.concat(p);r[m.start=d.start]=i[m.end=p.end]=m}else r[d.start]=i[d.end]=d;else if(d=r[h])if(delete r[d.start],d.unshift(l),d.start=f,p=i[f]){delete i[p.end];var y=p===d?d:p.concat(d);r[y.start=p.start]=i[y.end=d.end]=y}else r[d.start]=i[d.end]=d;else d=[l],r[d.start=f]=i[d.end=h]=d});function s(l){var c=e.arcs[l<0?~l:l],f=c[0],h;return e.transform?(h=[0,0],c.forEach(function(d){h[0]+=d[0],h[1]+=d[1]})):h=c[c.length-1],l<0?[h,f]:[f,h]}function u(l,c){for(var f in l){var h=l[f];delete c[h.start],delete h.start,delete h.end,h.forEach(function(d){n[d<0?~d:d]=1}),o.push(h)}}return u(i,r),u(r,i),t.forEach(function(l){n[l<0?~l:l]||o.push([l])}),o}function _S(e){return c1(e,SS.apply(this,arguments))}function SS(e,t,n){var r,i,o;if(arguments.length>1)r=CS(e,t,n);else for(i=0,r=new Array(o=e.arcs.length);i<o;++i)r[i]=i;return{type:"MultiLineString",arcs:ES(e,r)}}function CS(e,t,n){var r=[],i=[],o;function a(f){var h=f<0?~f:f;(i[h]||(i[h]=[])).push({i:f,g:o})}function s(f){f.forEach(a)}function u(f){f.forEach(s)}function l(f){f.forEach(u)}function c(f){switch(o=f,f.type){case"GeometryCollection":f.geometries.forEach(c);break;case"LineString":s(f.arcs);break;case"MultiLineString":case"Polygon":u(f.arcs);break;case"MultiPolygon":l(f.arcs);break}}return c(t),i.forEach(n==null?function(f){r.push(f[0].i)}:function(f){n(f[0].g,f[f.length-1].g)&&r.push(f[0].i)}),r}function fs(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function kS(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function No(e){let t,n,r;e.length!==2?(t=fs,n=(s,u)=>fs(e(s),u),r=(s,u)=>e(s)-u):(t=e===fs||e===kS?e:TS,n=e,r=e);function i(s,u,l=0,c=s.length){if(l<c){if(t(u,u)!==0)return c;do{const f=l+c>>>1;n(s[f],u)<0?l=f+1:c=f}while(l<c)}return l}function o(s,u,l=0,c=s.length){if(l<c){if(t(u,u)!==0)return c;do{const f=l+c>>>1;n(s[f],u)<=0?l=f+1:c=f}while(l<c)}return l}function a(s,u,l=0,c=s.length){const f=i(s,u,l,c-1);return f>l&&r(s[f-1],u)>-r(s[f],u)?f-1:f}return{left:i,center:a,right:o}}function TS(){return 0}function f1(e){return e===null?NaN:+e}const h1=No(fs),Fr=h1.right;h1.left,No(f1).center;function IS(e,t){let n,r;if(t===void 0)for(const i of e)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let o of e)(o=t(o,++i,e))!=null&&(n===void 0?o>=o&&(n=r=o):(n>o&&(n=o),r<o&&(r=o)))}return[n,r]}class or extends Map{constructor(t,n=RS){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,i]of t)this.set(r,i)}get(t){return super.get(d1(this,t))}has(t){return super.has(d1(this,t))}set(t,n){return super.set(BS(this,t),n)}delete(t){return super.delete(DS(this,t))}}function d1({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function BS({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function DS({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function RS(e){return e!==null&&typeof e=="object"?e.valueOf():e}function nd(e){return e}function rc(e,...t){return p1(e,nd,nd,t)}function FS(e,...t){return p1(e,Array.from,nd,t)}function p1(e,t,n,r){return function i(o,a){if(a>=r.length)return n(o);const s=new or,u=r[a++];let l=-1;for(const c of o){const f=u(c,++l,o),h=s.get(f);h?h.push(c):s.set(f,[c])}for(const[c,f]of s)s.set(c,i(f,a));return t(s)}(e,0)}const MS=Math.sqrt(50),PS=Math.sqrt(10),LS=Math.sqrt(2);function ic(e,t,n){const r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),o=r/Math.pow(10,i),a=o>=MS?10:o>=PS?5:o>=LS?2:1;let s,u,l;return i<0?(l=Math.pow(10,-i)/a,s=Math.round(e*l),u=Math.round(t*l),s/l<e&&++s,u/l>t&&--u,l=-l):(l=Math.pow(10,i)*a,s=Math.round(e/l),u=Math.round(t/l),s*l<e&&++s,u*l>t&&--u),u<s&&.5<=n&&n<2?ic(e,t,n*2):[s,u,l]}function oc(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];const r=t<e,[i,o,a]=r?ic(t,e,n):ic(e,t,n);if(!(o>=i))return[];const s=o-i+1,u=new Array(s);if(r)if(a<0)for(let l=0;l<s;++l)u[l]=(o-l)/-a;else for(let l=0;l<s;++l)u[l]=(o-l)*a;else if(a<0)for(let l=0;l<s;++l)u[l]=(i+l)/-a;else for(let l=0;l<s;++l)u[l]=(i+l)*a;return u}function rd(e,t,n){return t=+t,e=+e,n=+n,ic(e,t,n)[2]}function Mr(e,t,n){t=+t,e=+e,n=+n;const r=t<e,i=r?rd(t,e,n):rd(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function g1(e,t,n=f1){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,o=Math.floor(i),a=+n(e[o],o,e),s=+n(e[o+1],o+1,e);return a+(s-a)*(i-o)}}function hs(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,o=new Array(i);++r<i;)o[r]=e+r*n;return o}function ac(e,t){let n=0;if(t===void 0)for(let r of e)(r=+r)&&(n+=r);else{let r=-1;for(let i of e)(i=+t(i,++r,e))&&(n+=i)}return n}function NS(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function sc(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function Oo(e){return e=sc(Math.abs(e)),e?e[1]:NaN}function OS(e,t){return function(n,r){for(var i=n.length,o=[],a=0,s=e[0],u=0;i>0&&s>0&&(u+s+1>r&&(s=Math.max(1,r-u)),o.push(n.substring(i-=s,i+s)),!((u+=s+1)>r));)s=e[a=(a+1)%e.length];return o.reverse().join(t)}}function zS(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var US=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Pr(e){if(!(t=US.exec(e)))throw new Error("invalid format: "+e);var t;return new id({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Pr.prototype=id.prototype;function id(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}id.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function GS(e){e:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+e[n])break e;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var m1;function HS(e,t){var n=sc(e,t);if(!n)return e+"";var r=n[0],i=n[1],o=i-(m1=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+sc(e,Math.max(0,t+o-1))[0]}function b1(e,t){var n=sc(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const y1={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:NS,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>b1(e*100,t),r:b1,s:HS,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function w1(e){return e}var v1=Array.prototype.map,x1=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function VS(e){var t=e.grouping===void 0||e.thousands===void 0?w1:OS(v1.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",o=e.numerals===void 0?w1:zS(v1.call(e.numerals,String)),a=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",u=e.nan===void 0?"NaN":e.nan+"";function l(f){f=Pr(f);var h=f.fill,d=f.align,p=f.sign,m=f.symbol,y=f.zero,w=f.width,A=f.comma,S=f.precision,_=f.trim,k=f.type;k==="n"?(A=!0,k="g"):y1[k]||(S===void 0&&(S=12),_=!0,k="g"),(y||h==="0"&&d==="=")&&(y=!0,h="0",d="=");var B=m==="$"?n:m==="#"&&/[boxX]/.test(k)?"0"+k.toLowerCase():"",I=m==="$"?r:/[%p]/.test(k)?a:"",D=y1[k],M=/[defgprs%]/.test(k);S=S===void 0?6:/[gprs]/.test(k)?Math.max(1,Math.min(21,S)):Math.max(0,Math.min(20,S));function G(N){var ne=B,ie=I,he,me,Re;if(k==="c")ie=D(N)+ie,N="";else{N=+N;var Ae=N<0||1/N<0;if(N=isNaN(N)?u:D(Math.abs(N),S),_&&(N=GS(N)),Ae&&+N==0&&p!=="+"&&(Ae=!1),ne=(Ae?p==="("?p:s:p==="-"||p==="("?"":p)+ne,ie=(k==="s"?x1[8+m1/3]:"")+ie+(Ae&&p==="("?")":""),M){for(he=-1,me=N.length;++he<me;)if(Re=N.charCodeAt(he),48>Re||Re>57){ie=(Re===46?i+N.slice(he+1):N.slice(he))+ie,N=N.slice(0,he);break}}}A&&!y&&(N=t(N,1/0));var Le=ne.length+N.length+ie.length,Oe=Le<w?new Array(w-Le+1).join(h):"";switch(A&&y&&(N=t(Oe+N,Oe.length?w-ie.length:1/0),Oe=""),d){case"<":N=ne+N+ie+Oe;break;case"=":N=ne+Oe+N+ie;break;case"^":N=Oe.slice(0,Le=Oe.length>>1)+ne+N+ie+Oe.slice(Le);break;default:N=Oe+ne+N+ie;break}return o(N)}return G.toString=function(){return f+""},G}function c(f,h){var d=l((f=Pr(f),f.type="f",f)),p=Math.max(-8,Math.min(8,Math.floor(Oo(h)/3)))*3,m=Math.pow(10,-p),y=x1[8+p/3];return function(w){return d(m*w)+y}}return{format:l,formatPrefix:c}}var lc,mt,od;jS({thousands:",",grouping:[3],currency:["$",""]});function jS(e){return lc=VS(e),mt=lc.format,od=lc.formatPrefix,lc}function A1(e){return Math.max(0,-Oo(Math.abs(e)))}function E1(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Oo(t)/3)))*3-Oo(Math.abs(e)))}function _1(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Oo(t)-Oo(e))+1}const ad=new Date,sd=new Date;function ot(e,t,n,r){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=o=>(e(o=new Date(+o)),o),i.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),i.round=o=>{const a=i(o),s=i.ceil(o);return o-a<s-o?a:s},i.offset=(o,a)=>(t(o=new Date(+o),a==null?1:Math.floor(a)),o),i.range=(o,a,s)=>{const u=[];if(o=i.ceil(o),s=s==null?1:Math.floor(s),!(o<a)||!(s>0))return u;let l;do u.push(l=new Date(+o)),t(o,s),e(o);while(l<o&&o<a);return u},i.filter=o=>ot(a=>{if(a>=a)for(;e(a),!o(a);)a.setTime(a-1)},(a,s)=>{if(a>=a)if(s<0)for(;++s<=0;)for(;t(a,-1),!o(a););else for(;--s>=0;)for(;t(a,1),!o(a););}),n&&(i.count=(o,a)=>(ad.setTime(+o),sd.setTime(+a),e(ad),e(sd),Math.floor(n(ad,sd))),i.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?a=>r(a)%o===0:a=>i.count(0,a)%o===0):i)),i}const zo=ot(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);zo.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?ot(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):zo),zo.range;const ar=1e3,nn=ar*60,sr=nn*60,lr=sr*24,ld=lr*7,S1=lr*30,ud=lr*365,ur=ot(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*ar)},(e,t)=>(t-e)/ar,e=>e.getUTCSeconds());ur.range;const uc=ot(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*ar)},(e,t)=>{e.setTime(+e+t*nn)},(e,t)=>(t-e)/nn,e=>e.getMinutes());uc.range;const cc=ot(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*nn)},(e,t)=>(t-e)/nn,e=>e.getUTCMinutes());cc.range;const fc=ot(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*ar-e.getMinutes()*nn)},(e,t)=>{e.setTime(+e+t*sr)},(e,t)=>(t-e)/sr,e=>e.getHours());fc.range;const hc=ot(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*sr)},(e,t)=>(t-e)/sr,e=>e.getUTCHours());hc.range;const Lr=ot(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*nn)/lr,e=>e.getDate()-1);Lr.range;const Fi=ot(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/lr,e=>e.getUTCDate()-1);Fi.range;const C1=ot(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/lr,e=>Math.floor(e/lr));C1.range;function Mi(e){return ot(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*nn)/ld)}const ds=Mi(0),dc=Mi(1),$S=Mi(2),qS=Mi(3),Uo=Mi(4),WS=Mi(5),ZS=Mi(6);ds.range,dc.range,$S.range,qS.range,Uo.range,WS.range,ZS.range;function Pi(e){return ot(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/ld)}const ps=Pi(0),pc=Pi(1),YS=Pi(2),QS=Pi(3),Go=Pi(4),XS=Pi(5),KS=Pi(6);ps.range,pc.range,YS.range,QS.range,Go.range,XS.range,KS.range;const gs=ot(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());gs.range;const ms=ot(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());ms.range;const Pn=ot(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());Pn.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:ot(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)}),Pn.range;const Ln=ot(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());Ln.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:ot(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)}),Ln.range;function k1(e,t,n,r,i,o){const a=[[ur,1,ar],[ur,5,5*ar],[ur,15,15*ar],[ur,30,30*ar],[o,1,nn],[o,5,5*nn],[o,15,15*nn],[o,30,30*nn],[i,1,sr],[i,3,3*sr],[i,6,6*sr],[i,12,12*sr],[r,1,lr],[r,2,2*lr],[n,1,ld],[t,1,S1],[t,3,3*S1],[e,1,ud]];function s(l,c,f){const h=c<l;h&&([l,c]=[c,l]);const d=f&&typeof f.range=="function"?f:u(l,c,f),p=d?d.range(l,+c+1):[];return h?p.reverse():p}function u(l,c,f){const h=Math.abs(c-l)/f,d=No(([,,y])=>y).right(a,h);if(d===a.length)return e.every(Mr(l/ud,c/ud,f));if(d===0)return zo.every(Math.max(Mr(l,c,f),1));const[p,m]=a[h/a[d-1][2]<a[d][2]/h?d-1:d];return p.every(m)}return[s,u]}const[JS,eC]=k1(Ln,ms,ps,C1,hc,cc),[tC,nC]=k1(Pn,gs,ds,Lr,fc,uc),bs="year",ys="quarter",ws="month",vs="week",xs="date",gc="day",cd="dayofyear",As="hours",Es="minutes",_s="seconds",mc="milliseconds";[bs,ys,ws,vs,xs,gc,cd,As,Es,_s,mc].reduce((e,t,n)=>(e[t]=1+n,e),{});const rC={[bs]:Pn,[ys]:gs.every(3),[ws]:gs,[vs]:ds,[xs]:Lr,[gc]:Lr,[cd]:Lr,[As]:fc,[Es]:uc,[_s]:ur,[mc]:zo},iC={[bs]:Ln,[ys]:ms.every(3),[ws]:ms,[vs]:ps,[xs]:Fi,[gc]:Fi,[cd]:Fi,[As]:hc,[Es]:cc,[_s]:ur,[mc]:zo};function oC(e){return rC[e]}function aC(e){return iC[e]}function fd(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function hd(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Ss(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function T1(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,o=e.days,a=e.shortDays,s=e.months,u=e.shortMonths,l=Cs(i),c=ks(i),f=Cs(o),h=ks(o),d=Cs(a),p=ks(a),m=Cs(s),y=ks(s),w=Cs(u),A=ks(u),S={a:Ae,A:Le,b:Oe,B:et,c:null,d:M1,e:M1,f:IC,g:zC,G:GC,H:CC,I:kC,j:TC,L:P1,m:BC,M:DC,p:Ce,q:ke,Q:G1,s:H1,S:RC,u:FC,U:MC,V:PC,w:LC,W:NC,x:null,X:null,y:OC,Y:UC,Z:HC,"%":U1},_={a:gt,A:$t,b:He,B:L,c:null,d:N1,e:N1,f:qC,g:n6,G:i6,H:VC,I:jC,j:$C,L:O1,m:WC,M:ZC,p:P,q,Q:G1,s:H1,S:YC,u:QC,U:XC,V:KC,w:JC,W:e6,x:null,X:null,y:t6,Y:r6,Z:o6,"%":U1},k={a:G,A:N,b:ne,B:ie,c:he,d:R1,e:R1,f:AC,g:D1,G:B1,H:F1,I:F1,j:yC,L:xC,m:bC,M:wC,p:M,q:mC,Q:_C,s:SC,S:vC,u:fC,U:hC,V:dC,w:cC,W:pC,x:me,X:Re,y:D1,Y:B1,Z:gC,"%":EC};S.x=B(n,S),S.X=B(r,S),S.c=B(t,S),_.x=B(n,_),_.X=B(r,_),_.c=B(t,_);function B(j,Y){return function(C){var x=[],V=-1,W=0,ue=j.length,te,ce,qt;for(C instanceof Date||(C=new Date(+C));++V<ue;)j.charCodeAt(V)===37&&(x.push(j.slice(W,V)),(ce=I1[te=j.charAt(++V)])!=null?te=j.charAt(++V):ce=te==="e"?" ":"0",(qt=Y[te])&&(te=qt(C,ce)),x.push(te),W=V+1);return x.push(j.slice(W,V)),x.join("")}}function I(j,Y){return function(C){var x=Ss(1900,void 0,1),V=D(x,j,C+="",0),W,ue;if(V!=C.length)return null;if("Q"in x)return new Date(x.Q);if("s"in x)return new Date(x.s*1e3+("L"in x?x.L:0));if(Y&&!("Z"in x)&&(x.Z=0),"p"in x&&(x.H=x.H%12+x.p*12),x.m===void 0&&(x.m="q"in x?x.q:0),"V"in x){if(x.V<1||x.V>53)return null;"w"in x||(x.w=1),"Z"in x?(W=hd(Ss(x.y,0,1)),ue=W.getUTCDay(),W=ue>4||ue===0?pc.ceil(W):pc(W),W=Fi.offset(W,(x.V-1)*7),x.y=W.getUTCFullYear(),x.m=W.getUTCMonth(),x.d=W.getUTCDate()+(x.w+6)%7):(W=fd(Ss(x.y,0,1)),ue=W.getDay(),W=ue>4||ue===0?dc.ceil(W):dc(W),W=Lr.offset(W,(x.V-1)*7),x.y=W.getFullYear(),x.m=W.getMonth(),x.d=W.getDate()+(x.w+6)%7)}else("W"in x||"U"in x)&&("w"in x||(x.w="u"in x?x.u%7:"W"in x?1:0),ue="Z"in x?hd(Ss(x.y,0,1)).getUTCDay():fd(Ss(x.y,0,1)).getDay(),x.m=0,x.d="W"in x?(x.w+6)%7+x.W*7-(ue+5)%7:x.w+x.U*7-(ue+6)%7);return"Z"in x?(x.H+=x.Z/100|0,x.M+=x.Z%100,hd(x)):fd(x)}}function D(j,Y,C,x){for(var V=0,W=Y.length,ue=C.length,te,ce;V<W;){if(x>=ue)return-1;if(te=Y.charCodeAt(V++),te===37){if(te=Y.charAt(V++),ce=k[te in I1?Y.charAt(V++):te],!ce||(x=ce(j,C,x))<0)return-1}else if(te!=C.charCodeAt(x++))return-1}return x}function M(j,Y,C){var x=l.exec(Y.slice(C));return x?(j.p=c.get(x[0].toLowerCase()),C+x[0].length):-1}function G(j,Y,C){var x=d.exec(Y.slice(C));return x?(j.w=p.get(x[0].toLowerCase()),C+x[0].length):-1}function N(j,Y,C){var x=f.exec(Y.slice(C));return x?(j.w=h.get(x[0].toLowerCase()),C+x[0].length):-1}function ne(j,Y,C){var x=w.exec(Y.slice(C));return x?(j.m=A.get(x[0].toLowerCase()),C+x[0].length):-1}function ie(j,Y,C){var x=m.exec(Y.slice(C));return x?(j.m=y.get(x[0].toLowerCase()),C+x[0].length):-1}function he(j,Y,C){return D(j,t,Y,C)}function me(j,Y,C){return D(j,n,Y,C)}function Re(j,Y,C){return D(j,r,Y,C)}function Ae(j){return a[j.getDay()]}function Le(j){return o[j.getDay()]}function Oe(j){return u[j.getMonth()]}function et(j){return s[j.getMonth()]}function Ce(j){return i[+(j.getHours()>=12)]}function ke(j){return 1+~~(j.getMonth()/3)}function gt(j){return a[j.getUTCDay()]}function $t(j){return o[j.getUTCDay()]}function He(j){return u[j.getUTCMonth()]}function L(j){return s[j.getUTCMonth()]}function P(j){return i[+(j.getUTCHours()>=12)]}function q(j){return 1+~~(j.getUTCMonth()/3)}return{format:function(j){var Y=B(j+="",S);return Y.toString=function(){return j},Y},parse:function(j){var Y=I(j+="",!1);return Y.toString=function(){return j},Y},utcFormat:function(j){var Y=B(j+="",_);return Y.toString=function(){return j},Y},utcParse:function(j){var Y=I(j+="",!0);return Y.toString=function(){return j},Y}}}var I1={"-":"",_:" ",0:"0"},ut=/^\s*\d+/,sC=/^%/,lC=/[\\^$*+?|[\]().{}]/g;function we(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",o=i.length;return r+(o<n?new Array(n-o+1).join(t)+i:i)}function uC(e){return e.replace(lC,"\\$&")}function Cs(e){return new RegExp("^(?:"+e.map(uC).join("|")+")","i")}function ks(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function cC(e,t,n){var r=ut.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function fC(e,t,n){var r=ut.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function hC(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function dC(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function pC(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function B1(e,t,n){var r=ut.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function D1(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function gC(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function mC(e,t,n){var r=ut.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function bC(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function R1(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function yC(e,t,n){var r=ut.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function F1(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function wC(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function vC(e,t,n){var r=ut.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function xC(e,t,n){var r=ut.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function AC(e,t,n){var r=ut.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function EC(e,t,n){var r=sC.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function _C(e,t,n){var r=ut.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function SC(e,t,n){var r=ut.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function M1(e,t){return we(e.getDate(),t,2)}function CC(e,t){return we(e.getHours(),t,2)}function kC(e,t){return we(e.getHours()%12||12,t,2)}function TC(e,t){return we(1+Lr.count(Pn(e),e),t,3)}function P1(e,t){return we(e.getMilliseconds(),t,3)}function IC(e,t){return P1(e,t)+"000"}function BC(e,t){return we(e.getMonth()+1,t,2)}function DC(e,t){return we(e.getMinutes(),t,2)}function RC(e,t){return we(e.getSeconds(),t,2)}function FC(e){var t=e.getDay();return t===0?7:t}function MC(e,t){return we(ds.count(Pn(e)-1,e),t,2)}function L1(e){var t=e.getDay();return t>=4||t===0?Uo(e):Uo.ceil(e)}function PC(e,t){return e=L1(e),we(Uo.count(Pn(e),e)+(Pn(e).getDay()===4),t,2)}function LC(e){return e.getDay()}function NC(e,t){return we(dc.count(Pn(e)-1,e),t,2)}function OC(e,t){return we(e.getFullYear()%100,t,2)}function zC(e,t){return e=L1(e),we(e.getFullYear()%100,t,2)}function UC(e,t){return we(e.getFullYear()%1e4,t,4)}function GC(e,t){var n=e.getDay();return e=n>=4||n===0?Uo(e):Uo.ceil(e),we(e.getFullYear()%1e4,t,4)}function HC(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+we(t/60|0,"0",2)+we(t%60,"0",2)}function N1(e,t){return we(e.getUTCDate(),t,2)}function VC(e,t){return we(e.getUTCHours(),t,2)}function jC(e,t){return we(e.getUTCHours()%12||12,t,2)}function $C(e,t){return we(1+Fi.count(Ln(e),e),t,3)}function O1(e,t){return we(e.getUTCMilliseconds(),t,3)}function qC(e,t){return O1(e,t)+"000"}function WC(e,t){return we(e.getUTCMonth()+1,t,2)}function ZC(e,t){return we(e.getUTCMinutes(),t,2)}function YC(e,t){return we(e.getUTCSeconds(),t,2)}function QC(e){var t=e.getUTCDay();return t===0?7:t}function XC(e,t){return we(ps.count(Ln(e)-1,e),t,2)}function z1(e){var t=e.getUTCDay();return t>=4||t===0?Go(e):Go.ceil(e)}function KC(e,t){return e=z1(e),we(Go.count(Ln(e),e)+(Ln(e).getUTCDay()===4),t,2)}function JC(e){return e.getUTCDay()}function e6(e,t){return we(pc.count(Ln(e)-1,e),t,2)}function t6(e,t){return we(e.getUTCFullYear()%100,t,2)}function n6(e,t){return e=z1(e),we(e.getUTCFullYear()%100,t,2)}function r6(e,t){return we(e.getUTCFullYear()%1e4,t,4)}function i6(e,t){var n=e.getUTCDay();return e=n>=4||n===0?Go(e):Go.ceil(e),we(e.getUTCFullYear()%1e4,t,4)}function o6(){return"+0000"}function U1(){return"%"}function G1(e){return+e}function H1(e){return Math.floor(+e/1e3)}var Ho,dd,V1,pd,j1;a6({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function a6(e){return Ho=T1(e),dd=Ho.format,V1=Ho.parse,pd=Ho.utcFormat,j1=Ho.utcParse,Ho}function Ts(e){const t={};return n=>t[n]||(t[n]=e(n))}function s6(e,t){return n=>{const r=e(n),i=r.indexOf(t);if(i<0)return r;let o=l6(r,i);const a=o<r.length?r.slice(o):"";for(;--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+a}}function l6(e,t){let n=e.lastIndexOf("e"),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.charCodeAt(n),r>=48&&r<=57)return n+1}function u6(e){const t=Ts(e.format),n=e.formatPrefix;return{format:t,formatPrefix:n,formatFloat(r){const i=Pr(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return s6(t(i),t(".1f")(1)[1])}else return t(i)},formatSpan(r,i,o,a){a=Pr(a??",f");const s=Mr(r,i,o),u=Math.max(Math.abs(r),Math.abs(i));let l;if(a.precision==null)switch(a.type){case"s":return isNaN(l=E1(s,u))||(a.precision=l),n(a,u);case"":case"e":case"g":case"p":case"r":{isNaN(l=_1(s,u))||(a.precision=l-(a.type==="e"));break}case"f":case"%":{isNaN(l=A1(s))||(a.precision=l-(a.type==="%")*2);break}}return t(a)}}}c6();function c6(){return u6({format:mt,formatPrefix:od})}function $1(e,t,n){n=n||{},kt(n)||Ke(`Invalid time multi-format specifier: ${n}`);const r=t(_s),i=t(Es),o=t(As),a=t(xs),s=t(vs),u=t(ws),l=t(ys),c=t(bs),f=e(n[mc]||".%L"),h=e(n[_s]||":%S"),d=e(n[Es]||"%I:%M"),p=e(n[As]||"%I %p"),m=e(n[xs]||n[gc]||"%a %d"),y=e(n[vs]||"%b %d"),w=e(n[ws]||"%B"),A=e(n[ys]||"%B"),S=e(n[bs]||"%Y");return _=>(r(_)<_?f:i(_)<_?h:o(_)<_?d:a(_)<_?p:u(_)<_?s(_)<_?m:y:c(_)<_?l(_)<_?w:A:S)(_)}function q1(e){const t=Ts(e.format),n=Ts(e.utcFormat);return{timeFormat:r=>Fe(r)?t(r):$1(t,oC,r),utcFormat:r=>Fe(r)?n(r):$1(n,aC,r),timeParse:Ts(e.parse),utcParse:Ts(e.utcParse)}}let gd;f6();function f6(){return gd=q1({format:dd,parse:V1,utcFormat:pd,utcParse:j1})}function h6(e){return q1(T1(e))}function d6(e){return arguments.length?gd=h6(e):gd}const p6=/^(data:|([A-Za-z]+:)?\/\/)/,g6=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,m6=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,W1="file://";function b6(e,t){return n=>({options:n||{},sanitize:w6,load:y6,fileAccess:!!t,file:v6(t),http:A6(e)})}async function y6(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t)}async function w6(e,t){t=Kh({},this.options,t);const n=this.fileAccess,r={href:null};let i,o,a;const s=g6.test(e.replace(m6,""));(e==null||typeof e!="string"||!s)&&Ke("Sanitize failure, invalid URI: "+tc(e));const u=p6.test(e);return(a=t.baseURL)&&!u&&(!e.startsWith("/")&&!a.endsWith("/")&&(e="/"+e),e=a+e),o=(i=e.startsWith(W1))||t.mode==="file"||t.mode!=="http"&&!u&&n,i?e=e.slice(W1.length):e.startsWith("//")&&(t.defaultProtocol==="file"?(e=e.slice(2),o=!0):e=(t.defaultProtocol||"http")+":"+e),Object.defineProperty(r,"localFile",{value:!!o}),r.href=e,t.target&&(r.target=t.target+""),t.rel&&(r.rel=t.rel+""),t.context==="image"&&t.crossOrigin&&(r.crossOrigin=t.crossOrigin+""),r}function v6(e){return e?t=>new Promise((n,r)=>{e.readFile(t,(i,o)=>{i?r(i):n(o)})}):x6}async function x6(){Ke("No file system access.")}function A6(e){return e?async function(t,n){const r=Kh({},this.options.http,n),i=n&&n.response,o=await e(t,r);return o.ok?Zt(o[i])?o[i]():o.text():Ke(o.status+""+o.statusText)}:E6}async function E6(){Ke("No HTTP fetch method available.")}const _6=e=>e!=null&&e===e,S6=e=>e==="true"||e==="false"||e===!0||e===!1,C6=e=>!Number.isNaN(Date.parse(e)),Z1=e=>!Number.isNaN(+e)&&!(e instanceof Date),k6=e=>Z1(e)&&Number.isInteger(+e),Y1={boolean:cS,integer:ls,number:ls,date:hS,string:dS,unknown:Xu},bc=[S6,k6,Z1,C6],T6=["boolean","integer","number","date"];function I6(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=bc.length,i=bc.map((o,a)=>a+1);for(let o=0,a=0,s,u;o<n;++o)for(u=t?e[o][t]:e[o],s=0;s<r;++s)if(i[s]&&_6(u)&&!bc[s](u)&&(i[s]=0,++a,a===bc.length))return"string";return T6[i.reduce((o,a)=>o===0?a:o,0)-1]}function B6(e,t){return t.reduce((n,r)=>(n[r]=I6(e,r),n),{})}function Q1(e){const t=function(n,r){const i={delimiter:e};return md(n,r?Kh(r,i):i)};return t.responseType="text",t}function md(e,t){return t.header&&(e=t.header.map(tc).join(t.delimiter)+`
6
+ `+e),l1(t.delimiter).parse(e+"")}md.responseType="text";function D6(e){return typeof Buffer=="function"&&Zt(Buffer.isBuffer)?Buffer.isBuffer(e):!1}function bd(e,t){const n=t&&t.property?Qu(t.property):Xu;return kt(e)&&!D6(e)?R6(n(e),t):n(JSON.parse(e))}bd.responseType="json";function R6(e,t){return!xt(e)&&lS(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}const F6={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function X1(e,t){let n,r,i,o;return e=bd(e,t),t&&t.feature?(n=AS,i=t.feature):t&&t.mesh?(n=_S,i=t.mesh,o=F6[t.filter]):Ke("Missing TopoJSON feature or mesh parameter."),r=(r=e.objects[i])?n(e,r,o):Ke("Invalid TopoJSON object: "+i),r&&r.features||[r]}X1.responseType="json";const yd={dsv:md,csv:Q1(","),tsv:Q1(" "),json:bd,topojson:X1};function K1(e,t){return arguments.length>1?(yd[e]=t,this):Lo(yd,e)?yd[e]:null}function J1(e,t,n,r){t=t||{};const i=K1(t.type||"json");return i||Ke("Unknown data format type: "+t.type),e=i(e,t),t.parse&&M6(e,t.parse,n,r),Lo(e,"columns")&&delete e.columns,e}function M6(e,t,n,r){if(!e.length)return;const i=d6();n=n||i.timeParse,r=r||i.utcParse;let o=e.columns||Object.keys(e[0]),a,s,u,l,c,f;t==="auto"&&(t=B6(e,o)),o=Object.keys(t);const h=o.map(d=>{const p=t[d];let m,y;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return m=p.split(/:(.+)?/,2),y=m[1],(y[0]==="'"&&y[y.length-1]==="'"||y[0]==='"'&&y[y.length-1]==='"')&&(y=y.slice(1,-1)),(m[0]==="utc"?r:n)(y);if(!Y1[p])throw Error("Illegal format pattern: "+d+":"+p);return Y1[p]});for(u=0,c=e.length,f=o.length;u<c;++u)for(a=e[u],l=0;l<f;++l)s=o[l],a[s]=h[l](a[s])}const yc=b6(typeof fetch<"u"&&fetch,null);/**
7
7
  * @license
8
8
  * Copyright 2019 Google LLC
9
9
  * SPDX-License-Identifier: BSD-3-Clause
10
- */const fc=globalThis,ud=fc.ShadowRoot&&(fc.ShadyCSS===void 0||fc.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,$1=Symbol(),q1=new WeakMap;let m6=class{constructor(t,n,r){if(this._$cssResult$=!0,r!==$1)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=n}get styleSheet(){let t=this.o;const n=this.t;if(ud&&t===void 0){const r=n!==void 0&&n.length===1;r&&(t=q1.get(n)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),r&&q1.set(n,t))}return t}toString(){return this.cssText}};const b6=e=>new m6(typeof e=="string"?e:e+"",void 0,$1),y6=(e,t)=>{if(ud)e.adoptedStyleSheets=t.map(n=>n instanceof CSSStyleSheet?n:n.styleSheet);else for(const n of t){const r=document.createElement("style"),i=fc.litNonce;i!==void 0&&r.setAttribute("nonce",i),r.textContent=n.cssText,e.appendChild(r)}},W1=ud?e=>e:e=>e instanceof CSSStyleSheet?(t=>{let n="";for(const r of t.cssRules)n+=r.cssText;return b6(n)})(e):e;/**
10
+ */const wc=globalThis,wd=wc.ShadowRoot&&(wc.ShadyCSS===void 0||wc.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,eb=Symbol(),tb=new WeakMap;let P6=class{constructor(t,n,r){if(this._$cssResult$=!0,r!==eb)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=n}get styleSheet(){let t=this.o;const n=this.t;if(wd&&t===void 0){const r=n!==void 0&&n.length===1;r&&(t=tb.get(n)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),r&&tb.set(n,t))}return t}toString(){return this.cssText}};const L6=e=>new P6(typeof e=="string"?e:e+"",void 0,eb),N6=(e,t)=>{if(wd)e.adoptedStyleSheets=t.map(n=>n instanceof CSSStyleSheet?n:n.styleSheet);else for(const n of t){const r=document.createElement("style"),i=wc.litNonce;i!==void 0&&r.setAttribute("nonce",i),r.textContent=n.cssText,e.appendChild(r)}},nb=wd?e=>e:e=>e instanceof CSSStyleSheet?(t=>{let n="";for(const r of t.cssRules)n+=r.cssText;return L6(n)})(e):e;/**
11
11
  * @license
12
12
  * Copyright 2017 Google LLC
13
13
  * SPDX-License-Identifier: BSD-3-Clause
14
- */const{is:w6,defineProperty:v6,getOwnPropertyDescriptor:x6,getOwnPropertyNames:A6,getOwnPropertySymbols:E6,getPrototypeOf:_6}=Object,Lr=globalThis,Z1=Lr.trustedTypes,S6=Z1?Z1.emptyScript:"",cd=Lr.reactiveElementPolyfillSupport,_s=(e,t)=>e,fd={toAttribute(e,t){switch(t){case Boolean:e=e?S6:null;break;case Object:case Array:e=e==null?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=e!==null;break;case Number:n=e===null?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch{n=null}}return n}},Y1=(e,t)=>!w6(e,t),Q1={attribute:!0,type:String,converter:fd,reflect:!1,hasChanged:Y1};Symbol.metadata??(Symbol.metadata=Symbol("metadata")),Lr.litPropertyMetadata??(Lr.litPropertyMetadata=new WeakMap);class La extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??(this.l=[])).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,n=Q1){if(n.state&&(n.attribute=!1),this._$Ei(),this.elementProperties.set(t,n),!n.noAccessor){const r=Symbol(),i=this.getPropertyDescriptor(t,r,n);i!==void 0&&v6(this.prototype,t,i)}}static getPropertyDescriptor(t,n,r){const{get:i,set:a}=x6(this.prototype,t)??{get(){return this[n]},set(o){this[n]=o}};return{get(){return i==null?void 0:i.call(this)},set(o){const s=i==null?void 0:i.call(this);a.call(this,o),this.requestUpdate(t,s,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??Q1}static _$Ei(){if(this.hasOwnProperty(_s("elementProperties")))return;const t=_6(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(_s("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(_s("properties"))){const n=this.properties,r=[...A6(n),...E6(n)];for(const i of r)this.createProperty(i,n[i])}const t=this[Symbol.metadata];if(t!==null){const n=litPropertyMetadata.get(t);if(n!==void 0)for(const[r,i]of n)this.elementProperties.set(r,i)}this._$Eh=new Map;for(const[n,r]of this.elementProperties){const i=this._$Eu(n,r);i!==void 0&&this._$Eh.set(i,n)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const n=[];if(Array.isArray(t)){const r=new Set(t.flat(1/0).reverse());for(const i of r)n.unshift(W1(i))}else t!==void 0&&n.push(W1(t));return n}static _$Eu(t,n){const r=n.attribute;return r===!1?void 0:typeof r=="string"?r:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){var t;this._$ES=new Promise(n=>this.enableUpdating=n),this._$AL=new Map,this._$E_(),this.requestUpdate(),(t=this.constructor.l)==null||t.forEach(n=>n(this))}addController(t){var n;(this._$EO??(this._$EO=new Set)).add(t),this.renderRoot!==void 0&&this.isConnected&&((n=t.hostConnected)==null||n.call(t))}removeController(t){var n;(n=this._$EO)==null||n.delete(t)}_$E_(){const t=new Map,n=this.constructor.elementProperties;for(const r of n.keys())this.hasOwnProperty(r)&&(t.set(r,this[r]),delete this[r]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return y6(t,this.constructor.elementStyles),t}connectedCallback(){var t;this.renderRoot??(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(t=this._$EO)==null||t.forEach(n=>{var r;return(r=n.hostConnected)==null?void 0:r.call(n)})}enableUpdating(t){}disconnectedCallback(){var t;(t=this._$EO)==null||t.forEach(n=>{var r;return(r=n.hostDisconnected)==null?void 0:r.call(n)})}attributeChangedCallback(t,n,r){this._$AK(t,r)}_$EC(t,n){var a;const r=this.constructor.elementProperties.get(t),i=this.constructor._$Eu(t,r);if(i!==void 0&&r.reflect===!0){const o=(((a=r.converter)==null?void 0:a.toAttribute)!==void 0?r.converter:fd).toAttribute(n,r.type);this._$Em=t,o==null?this.removeAttribute(i):this.setAttribute(i,o),this._$Em=null}}_$AK(t,n){var a;const r=this.constructor,i=r._$Eh.get(t);if(i!==void 0&&this._$Em!==i){const o=r.getPropertyOptions(i),s=typeof o.converter=="function"?{fromAttribute:o.converter}:((a=o.converter)==null?void 0:a.fromAttribute)!==void 0?o.converter:fd;this._$Em=i,this[i]=s.fromAttribute(n,o.type),this._$Em=null}}requestUpdate(t,n,r){if(t!==void 0){if(r??(r=this.constructor.getPropertyOptions(t)),!(r.hasChanged??Y1)(this[t],n))return;this.P(t,n,r)}this.isUpdatePending===!1&&(this._$ES=this._$ET())}P(t,n,r){this._$AL.has(t)||this._$AL.set(t,n),r.reflect===!0&&this._$Em!==t&&(this._$Ej??(this._$Ej=new Set)).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(n){Promise.reject(n)}const t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var r;if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??(this.renderRoot=this.createRenderRoot()),this._$Ep){for(const[a,o]of this._$Ep)this[a]=o;this._$Ep=void 0}const i=this.constructor.elementProperties;if(i.size>0)for(const[a,o]of i)o.wrapped!==!0||this._$AL.has(a)||this[a]===void 0||this.P(a,this[a],o)}let t=!1;const n=this._$AL;try{t=this.shouldUpdate(n),t?(this.willUpdate(n),(r=this._$EO)==null||r.forEach(i=>{var a;return(a=i.hostUpdate)==null?void 0:a.call(i)}),this.update(n)):this._$EU()}catch(i){throw t=!1,this._$EU(),i}t&&this._$AE(n)}willUpdate(t){}_$AE(t){var n;(n=this._$EO)==null||n.forEach(r=>{var i;return(i=r.hostUpdated)==null?void 0:i.call(r)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&(this._$Ej=this._$Ej.forEach(n=>this._$EC(n,this[n]))),this._$EU()}updated(t){}firstUpdated(t){}}La.elementStyles=[],La.shadowRootOptions={mode:"open"},La[_s("elementProperties")]=new Map,La[_s("finalized")]=new Map,cd==null||cd({ReactiveElement:La}),(Lr.reactiveElementVersions??(Lr.reactiveElementVersions=[])).push("2.0.4");/**
14
+ */const{is:O6,defineProperty:z6,getOwnPropertyDescriptor:U6,getOwnPropertyNames:G6,getOwnPropertySymbols:H6,getPrototypeOf:V6}=Object,Nr=globalThis,rb=Nr.trustedTypes,j6=rb?rb.emptyScript:"",vd=Nr.reactiveElementPolyfillSupport,Is=(e,t)=>e,xd={toAttribute(e,t){switch(t){case Boolean:e=e?j6:null;break;case Object:case Array:e=e==null?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=e!==null;break;case Number:n=e===null?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch{n=null}}return n}},ib=(e,t)=>!O6(e,t),ob={attribute:!0,type:String,converter:xd,reflect:!1,hasChanged:ib};Symbol.metadata??(Symbol.metadata=Symbol("metadata")),Nr.litPropertyMetadata??(Nr.litPropertyMetadata=new WeakMap);class Vo extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??(this.l=[])).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,n=ob){if(n.state&&(n.attribute=!1),this._$Ei(),this.elementProperties.set(t,n),!n.noAccessor){const r=Symbol(),i=this.getPropertyDescriptor(t,r,n);i!==void 0&&z6(this.prototype,t,i)}}static getPropertyDescriptor(t,n,r){const{get:i,set:o}=U6(this.prototype,t)??{get(){return this[n]},set(a){this[n]=a}};return{get(){return i==null?void 0:i.call(this)},set(a){const s=i==null?void 0:i.call(this);o.call(this,a),this.requestUpdate(t,s,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??ob}static _$Ei(){if(this.hasOwnProperty(Is("elementProperties")))return;const t=V6(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(Is("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(Is("properties"))){const n=this.properties,r=[...G6(n),...H6(n)];for(const i of r)this.createProperty(i,n[i])}const t=this[Symbol.metadata];if(t!==null){const n=litPropertyMetadata.get(t);if(n!==void 0)for(const[r,i]of n)this.elementProperties.set(r,i)}this._$Eh=new Map;for(const[n,r]of this.elementProperties){const i=this._$Eu(n,r);i!==void 0&&this._$Eh.set(i,n)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const n=[];if(Array.isArray(t)){const r=new Set(t.flat(1/0).reverse());for(const i of r)n.unshift(nb(i))}else t!==void 0&&n.push(nb(t));return n}static _$Eu(t,n){const r=n.attribute;return r===!1?void 0:typeof r=="string"?r:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){var t;this._$ES=new Promise(n=>this.enableUpdating=n),this._$AL=new Map,this._$E_(),this.requestUpdate(),(t=this.constructor.l)==null||t.forEach(n=>n(this))}addController(t){var n;(this._$EO??(this._$EO=new Set)).add(t),this.renderRoot!==void 0&&this.isConnected&&((n=t.hostConnected)==null||n.call(t))}removeController(t){var n;(n=this._$EO)==null||n.delete(t)}_$E_(){const t=new Map,n=this.constructor.elementProperties;for(const r of n.keys())this.hasOwnProperty(r)&&(t.set(r,this[r]),delete this[r]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return N6(t,this.constructor.elementStyles),t}connectedCallback(){var t;this.renderRoot??(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(t=this._$EO)==null||t.forEach(n=>{var r;return(r=n.hostConnected)==null?void 0:r.call(n)})}enableUpdating(t){}disconnectedCallback(){var t;(t=this._$EO)==null||t.forEach(n=>{var r;return(r=n.hostDisconnected)==null?void 0:r.call(n)})}attributeChangedCallback(t,n,r){this._$AK(t,r)}_$EC(t,n){var o;const r=this.constructor.elementProperties.get(t),i=this.constructor._$Eu(t,r);if(i!==void 0&&r.reflect===!0){const a=(((o=r.converter)==null?void 0:o.toAttribute)!==void 0?r.converter:xd).toAttribute(n,r.type);this._$Em=t,a==null?this.removeAttribute(i):this.setAttribute(i,a),this._$Em=null}}_$AK(t,n){var o;const r=this.constructor,i=r._$Eh.get(t);if(i!==void 0&&this._$Em!==i){const a=r.getPropertyOptions(i),s=typeof a.converter=="function"?{fromAttribute:a.converter}:((o=a.converter)==null?void 0:o.fromAttribute)!==void 0?a.converter:xd;this._$Em=i,this[i]=s.fromAttribute(n,a.type),this._$Em=null}}requestUpdate(t,n,r){if(t!==void 0){if(r??(r=this.constructor.getPropertyOptions(t)),!(r.hasChanged??ib)(this[t],n))return;this.P(t,n,r)}this.isUpdatePending===!1&&(this._$ES=this._$ET())}P(t,n,r){this._$AL.has(t)||this._$AL.set(t,n),r.reflect===!0&&this._$Em!==t&&(this._$Ej??(this._$Ej=new Set)).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(n){Promise.reject(n)}const t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var r;if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??(this.renderRoot=this.createRenderRoot()),this._$Ep){for(const[o,a]of this._$Ep)this[o]=a;this._$Ep=void 0}const i=this.constructor.elementProperties;if(i.size>0)for(const[o,a]of i)a.wrapped!==!0||this._$AL.has(o)||this[o]===void 0||this.P(o,this[o],a)}let t=!1;const n=this._$AL;try{t=this.shouldUpdate(n),t?(this.willUpdate(n),(r=this._$EO)==null||r.forEach(i=>{var o;return(o=i.hostUpdate)==null?void 0:o.call(i)}),this.update(n)):this._$EU()}catch(i){throw t=!1,this._$EU(),i}t&&this._$AE(n)}willUpdate(t){}_$AE(t){var n;(n=this._$EO)==null||n.forEach(r=>{var i;return(i=r.hostUpdated)==null?void 0:i.call(r)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&(this._$Ej=this._$Ej.forEach(n=>this._$EC(n,this[n]))),this._$EU()}updated(t){}firstUpdated(t){}}Vo.elementStyles=[],Vo.shadowRootOptions={mode:"open"},Vo[Is("elementProperties")]=new Map,Vo[Is("finalized")]=new Map,vd==null||vd({ReactiveElement:Vo}),(Nr.reactiveElementVersions??(Nr.reactiveElementVersions=[])).push("2.0.4");/**
15
15
  * @license
16
16
  * Copyright 2017 Google LLC
17
17
  * SPDX-License-Identifier: BSD-3-Clause
18
- */const Ss=globalThis,hc=Ss.trustedTypes,X1=hc?hc.createPolicy("lit-html",{createHTML:e=>e}):void 0,K1="$lit$",Nr=`lit$${(Math.random()+"").slice(9)}$`,J1="?"+Nr,C6=`<${J1}>`,Ri=document,Cs=()=>Ri.createComment(""),ks=e=>e===null||typeof e!="object"&&typeof e!="function",eb=Array.isArray,k6=e=>eb(e)||typeof(e==null?void 0:e[Symbol.iterator])=="function",hd=`[
19
- \f\r]`,Ts=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,tb=/-->/g,nb=/>/g,Fi=RegExp(`>|${hd}(?:([^\\s"'>=/]+)(${hd}*=${hd}*(?:[^
20
- \f\r"'\`<>=]|("|')|))|$)`,"g"),rb=/'/g,ib=/"/g,ab=/^(?:script|style|textarea|title)$/i,T6=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),Xe=T6(1),Mi=Symbol.for("lit-noChange"),rt=Symbol.for("lit-nothing"),ob=new WeakMap,Pi=Ri.createTreeWalker(Ri,129);function sb(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return X1!==void 0?X1.createHTML(t):t}const I6=(e,t)=>{const n=e.length-1,r=[];let i,a=t===2?"<svg>":"",o=Ts;for(let s=0;s<n;s++){const u=e[s];let l,c,f=-1,h=0;for(;h<u.length&&(o.lastIndex=h,c=o.exec(u),c!==null);)h=o.lastIndex,o===Ts?c[1]==="!--"?o=tb:c[1]!==void 0?o=nb:c[2]!==void 0?(ab.test(c[2])&&(i=RegExp("</"+c[2],"g")),o=Fi):c[3]!==void 0&&(o=Fi):o===Fi?c[0]===">"?(o=i??Ts,f=-1):c[1]===void 0?f=-2:(f=o.lastIndex-c[2].length,l=c[1],o=c[3]===void 0?Fi:c[3]==='"'?ib:rb):o===ib||o===rb?o=Fi:o===tb||o===nb?o=Ts:(o=Fi,i=void 0);const d=o===Fi&&e[s+1].startsWith("/>")?" ":"";a+=o===Ts?u+C6:f>=0?(r.push(l),u.slice(0,f)+K1+u.slice(f)+Nr+d):u+Nr+(f===-2?s:d)}return[sb(e,a+(e[n]||"<?>")+(t===2?"</svg>":"")),r]};class Is{constructor({strings:t,_$litType$:n},r){let i;this.parts=[];let a=0,o=0;const s=t.length-1,u=this.parts,[l,c]=I6(t,n);if(this.el=Is.createElement(l,r),Pi.currentNode=this.el.content,n===2){const f=this.el.content.firstChild;f.replaceWith(...f.childNodes)}for(;(i=Pi.nextNode())!==null&&u.length<s;){if(i.nodeType===1){if(i.hasAttributes())for(const f of i.getAttributeNames())if(f.endsWith(K1)){const h=c[o++],d=i.getAttribute(f).split(Nr),p=/([.?@])?(.*)/.exec(h);u.push({type:1,index:a,name:p[2],strings:d,ctor:p[1]==="."?D6:p[1]==="?"?R6:p[1]==="@"?F6:dc}),i.removeAttribute(f)}else f.startsWith(Nr)&&(u.push({type:6,index:a}),i.removeAttribute(f));if(ab.test(i.tagName)){const f=i.textContent.split(Nr),h=f.length-1;if(h>0){i.textContent=hc?hc.emptyScript:"";for(let d=0;d<h;d++)i.append(f[d],Cs()),Pi.nextNode(),u.push({type:2,index:++a});i.append(f[h],Cs())}}}else if(i.nodeType===8)if(i.data===J1)u.push({type:2,index:a});else{let f=-1;for(;(f=i.data.indexOf(Nr,f+1))!==-1;)u.push({type:7,index:a}),f+=Nr.length-1}a++}}static createElement(t,n){const r=Ri.createElement("template");return r.innerHTML=t,r}}function Na(e,t,n=e,r){var o,s;if(t===Mi)return t;let i=r!==void 0?(o=n._$Co)==null?void 0:o[r]:n._$Cl;const a=ks(t)?void 0:t._$litDirective$;return(i==null?void 0:i.constructor)!==a&&((s=i==null?void 0:i._$AO)==null||s.call(i,!1),a===void 0?i=void 0:(i=new a(e),i._$AT(e,n,r)),r!==void 0?(n._$Co??(n._$Co=[]))[r]=i:n._$Cl=i),i!==void 0&&(t=Na(e,i._$AS(e,t.values),i,r)),t}class B6{constructor(t,n){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:n},parts:r}=this._$AD,i=((t==null?void 0:t.creationScope)??Ri).importNode(n,!0);Pi.currentNode=i;let a=Pi.nextNode(),o=0,s=0,u=r[0];for(;u!==void 0;){if(o===u.index){let l;u.type===2?l=new Bs(a,a.nextSibling,this,t):u.type===1?l=new u.ctor(a,u.name,u.strings,this,t):u.type===6&&(l=new M6(a,this,t)),this._$AV.push(l),u=r[++s]}o!==(u==null?void 0:u.index)&&(a=Pi.nextNode(),o++)}return Pi.currentNode=Ri,i}p(t){let n=0;for(const r of this._$AV)r!==void 0&&(r.strings!==void 0?(r._$AI(t,r,n),n+=r.strings.length-2):r._$AI(t[n])),n++}}class Bs{get _$AU(){var t;return((t=this._$AM)==null?void 0:t._$AU)??this._$Cv}constructor(t,n,r,i){this.type=2,this._$AH=rt,this._$AN=void 0,this._$AA=t,this._$AB=n,this._$AM=r,this.options=i,this._$Cv=(i==null?void 0:i.isConnected)??!0}get parentNode(){let t=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&(t==null?void 0:t.nodeType)===11&&(t=n.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,n=this){t=Na(this,t,n),ks(t)?t===rt||t==null||t===""?(this._$AH!==rt&&this._$AR(),this._$AH=rt):t!==this._$AH&&t!==Mi&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):k6(t)?this.k(t):this._(t)}S(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.S(t))}_(t){this._$AH!==rt&&ks(this._$AH)?this._$AA.nextSibling.data=t:this.T(Ri.createTextNode(t)),this._$AH=t}$(t){var a;const{values:n,_$litType$:r}=t,i=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=Is.createElement(sb(r.h,r.h[0]),this.options)),r);if(((a=this._$AH)==null?void 0:a._$AD)===i)this._$AH.p(n);else{const o=new B6(i,this),s=o.u(this.options);o.p(n),this.T(s),this._$AH=o}}_$AC(t){let n=ob.get(t.strings);return n===void 0&&ob.set(t.strings,n=new Is(t)),n}k(t){eb(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let r,i=0;for(const a of t)i===n.length?n.push(r=new Bs(this.S(Cs()),this.S(Cs()),this,this.options)):r=n[i],r._$AI(a),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(t=this._$AA.nextSibling,n){var r;for((r=this._$AP)==null?void 0:r.call(this,!1,!0,n);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var n;this._$AM===void 0&&(this._$Cv=t,(n=this._$AP)==null||n.call(this,t))}}let dc=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,n,r,i,a){this.type=1,this._$AH=rt,this._$AN=void 0,this.element=t,this.name=n,this._$AM=i,this.options=a,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=rt}_$AI(t,n=this,r,i){const a=this.strings;let o=!1;if(a===void 0)t=Na(this,t,n,0),o=!ks(t)||t!==this._$AH&&t!==Mi,o&&(this._$AH=t);else{const s=t;let u,l;for(t=a[0],u=0;u<a.length-1;u++)l=Na(this,s[r+u],n,u),l===Mi&&(l=this._$AH[u]),o||(o=!ks(l)||l!==this._$AH[u]),l===rt?t=rt:t!==rt&&(t+=(l??"")+a[u+1]),this._$AH[u]=l}o&&!i&&this.j(t)}j(t){t===rt?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}};class D6 extends dc{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===rt?void 0:t}}class R6 extends dc{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==rt)}}class F6 extends dc{constructor(t,n,r,i,a){super(t,n,r,i,a),this.type=5}_$AI(t,n=this){if((t=Na(this,t,n,0)??rt)===Mi)return;const r=this._$AH,i=t===rt&&r!==rt||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,a=t!==rt&&(r===rt||i);i&&this.element.removeEventListener(this.name,this,r),a&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var n;typeof this._$AH=="function"?this._$AH.call(((n=this.options)==null?void 0:n.host)??this.element,t):this._$AH.handleEvent(t)}}class M6{constructor(t,n,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=n,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){Na(this,t)}}const dd=Ss.litHtmlPolyfillSupport;dd==null||dd(Is,Bs),(Ss.litHtmlVersions??(Ss.litHtmlVersions=[])).push("3.1.2");const Ds=(e,t,n)=>{const r=(n==null?void 0:n.renderBefore)??t;let i=r._$litPart$;if(i===void 0){const a=(n==null?void 0:n.renderBefore)??null;r._$litPart$=i=new Bs(t.insertBefore(Cs(),a),a,void 0,n??{})}return i._$AI(e),i};/**
18
+ */const Bs=globalThis,vc=Bs.trustedTypes,ab=vc?vc.createPolicy("lit-html",{createHTML:e=>e}):void 0,sb="$lit$",Or=`lit$${(Math.random()+"").slice(9)}$`,lb="?"+Or,$6=`<${lb}>`,Li=document,Ds=()=>Li.createComment(""),Rs=e=>e===null||typeof e!="object"&&typeof e!="function",ub=Array.isArray,q6=e=>ub(e)||typeof(e==null?void 0:e[Symbol.iterator])=="function",Ad=`[
19
+ \f\r]`,Fs=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,cb=/-->/g,fb=/>/g,Ni=RegExp(`>|${Ad}(?:([^\\s"'>=/]+)(${Ad}*=${Ad}*(?:[^
20
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),hb=/'/g,db=/"/g,pb=/^(?:script|style|textarea|title)$/i,W6=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),Je=W6(1),Oi=Symbol.for("lit-noChange"),rt=Symbol.for("lit-nothing"),gb=new WeakMap,zi=Li.createTreeWalker(Li,129);function mb(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return ab!==void 0?ab.createHTML(t):t}const Z6=(e,t)=>{const n=e.length-1,r=[];let i,o=t===2?"<svg>":"",a=Fs;for(let s=0;s<n;s++){const u=e[s];let l,c,f=-1,h=0;for(;h<u.length&&(a.lastIndex=h,c=a.exec(u),c!==null);)h=a.lastIndex,a===Fs?c[1]==="!--"?a=cb:c[1]!==void 0?a=fb:c[2]!==void 0?(pb.test(c[2])&&(i=RegExp("</"+c[2],"g")),a=Ni):c[3]!==void 0&&(a=Ni):a===Ni?c[0]===">"?(a=i??Fs,f=-1):c[1]===void 0?f=-2:(f=a.lastIndex-c[2].length,l=c[1],a=c[3]===void 0?Ni:c[3]==='"'?db:hb):a===db||a===hb?a=Ni:a===cb||a===fb?a=Fs:(a=Ni,i=void 0);const d=a===Ni&&e[s+1].startsWith("/>")?" ":"";o+=a===Fs?u+$6:f>=0?(r.push(l),u.slice(0,f)+sb+u.slice(f)+Or+d):u+Or+(f===-2?s:d)}return[mb(e,o+(e[n]||"<?>")+(t===2?"</svg>":"")),r]};class Ms{constructor({strings:t,_$litType$:n},r){let i;this.parts=[];let o=0,a=0;const s=t.length-1,u=this.parts,[l,c]=Z6(t,n);if(this.el=Ms.createElement(l,r),zi.currentNode=this.el.content,n===2){const f=this.el.content.firstChild;f.replaceWith(...f.childNodes)}for(;(i=zi.nextNode())!==null&&u.length<s;){if(i.nodeType===1){if(i.hasAttributes())for(const f of i.getAttributeNames())if(f.endsWith(sb)){const h=c[a++],d=i.getAttribute(f).split(Or),p=/([.?@])?(.*)/.exec(h);u.push({type:1,index:o,name:p[2],strings:d,ctor:p[1]==="."?Q6:p[1]==="?"?X6:p[1]==="@"?K6:xc}),i.removeAttribute(f)}else f.startsWith(Or)&&(u.push({type:6,index:o}),i.removeAttribute(f));if(pb.test(i.tagName)){const f=i.textContent.split(Or),h=f.length-1;if(h>0){i.textContent=vc?vc.emptyScript:"";for(let d=0;d<h;d++)i.append(f[d],Ds()),zi.nextNode(),u.push({type:2,index:++o});i.append(f[h],Ds())}}}else if(i.nodeType===8)if(i.data===lb)u.push({type:2,index:o});else{let f=-1;for(;(f=i.data.indexOf(Or,f+1))!==-1;)u.push({type:7,index:o}),f+=Or.length-1}o++}}static createElement(t,n){const r=Li.createElement("template");return r.innerHTML=t,r}}function jo(e,t,n=e,r){var a,s;if(t===Oi)return t;let i=r!==void 0?(a=n._$Co)==null?void 0:a[r]:n._$Cl;const o=Rs(t)?void 0:t._$litDirective$;return(i==null?void 0:i.constructor)!==o&&((s=i==null?void 0:i._$AO)==null||s.call(i,!1),o===void 0?i=void 0:(i=new o(e),i._$AT(e,n,r)),r!==void 0?(n._$Co??(n._$Co=[]))[r]=i:n._$Cl=i),i!==void 0&&(t=jo(e,i._$AS(e,t.values),i,r)),t}class Y6{constructor(t,n){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:n},parts:r}=this._$AD,i=((t==null?void 0:t.creationScope)??Li).importNode(n,!0);zi.currentNode=i;let o=zi.nextNode(),a=0,s=0,u=r[0];for(;u!==void 0;){if(a===u.index){let l;u.type===2?l=new Ps(o,o.nextSibling,this,t):u.type===1?l=new u.ctor(o,u.name,u.strings,this,t):u.type===6&&(l=new J6(o,this,t)),this._$AV.push(l),u=r[++s]}a!==(u==null?void 0:u.index)&&(o=zi.nextNode(),a++)}return zi.currentNode=Li,i}p(t){let n=0;for(const r of this._$AV)r!==void 0&&(r.strings!==void 0?(r._$AI(t,r,n),n+=r.strings.length-2):r._$AI(t[n])),n++}}class Ps{get _$AU(){var t;return((t=this._$AM)==null?void 0:t._$AU)??this._$Cv}constructor(t,n,r,i){this.type=2,this._$AH=rt,this._$AN=void 0,this._$AA=t,this._$AB=n,this._$AM=r,this.options=i,this._$Cv=(i==null?void 0:i.isConnected)??!0}get parentNode(){let t=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&(t==null?void 0:t.nodeType)===11&&(t=n.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,n=this){t=jo(this,t,n),Rs(t)?t===rt||t==null||t===""?(this._$AH!==rt&&this._$AR(),this._$AH=rt):t!==this._$AH&&t!==Oi&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):q6(t)?this.k(t):this._(t)}S(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.S(t))}_(t){this._$AH!==rt&&Rs(this._$AH)?this._$AA.nextSibling.data=t:this.T(Li.createTextNode(t)),this._$AH=t}$(t){var o;const{values:n,_$litType$:r}=t,i=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=Ms.createElement(mb(r.h,r.h[0]),this.options)),r);if(((o=this._$AH)==null?void 0:o._$AD)===i)this._$AH.p(n);else{const a=new Y6(i,this),s=a.u(this.options);a.p(n),this.T(s),this._$AH=a}}_$AC(t){let n=gb.get(t.strings);return n===void 0&&gb.set(t.strings,n=new Ms(t)),n}k(t){ub(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let r,i=0;for(const o of t)i===n.length?n.push(r=new Ps(this.S(Ds()),this.S(Ds()),this,this.options)):r=n[i],r._$AI(o),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(t=this._$AA.nextSibling,n){var r;for((r=this._$AP)==null?void 0:r.call(this,!1,!0,n);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var n;this._$AM===void 0&&(this._$Cv=t,(n=this._$AP)==null||n.call(this,t))}}let xc=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,n,r,i,o){this.type=1,this._$AH=rt,this._$AN=void 0,this.element=t,this.name=n,this._$AM=i,this.options=o,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=rt}_$AI(t,n=this,r,i){const o=this.strings;let a=!1;if(o===void 0)t=jo(this,t,n,0),a=!Rs(t)||t!==this._$AH&&t!==Oi,a&&(this._$AH=t);else{const s=t;let u,l;for(t=o[0],u=0;u<o.length-1;u++)l=jo(this,s[r+u],n,u),l===Oi&&(l=this._$AH[u]),a||(a=!Rs(l)||l!==this._$AH[u]),l===rt?t=rt:t!==rt&&(t+=(l??"")+o[u+1]),this._$AH[u]=l}a&&!i&&this.j(t)}j(t){t===rt?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}};class Q6 extends xc{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===rt?void 0:t}}class X6 extends xc{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==rt)}}class K6 extends xc{constructor(t,n,r,i,o){super(t,n,r,i,o),this.type=5}_$AI(t,n=this){if((t=jo(this,t,n,0)??rt)===Oi)return;const r=this._$AH,i=t===rt&&r!==rt||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,o=t!==rt&&(r===rt||i);i&&this.element.removeEventListener(this.name,this,r),o&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var n;typeof this._$AH=="function"?this._$AH.call(((n=this.options)==null?void 0:n.host)??this.element,t):this._$AH.handleEvent(t)}}class J6{constructor(t,n,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=n,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){jo(this,t)}}const Ed=Bs.litHtmlPolyfillSupport;Ed==null||Ed(Ms,Ps),(Bs.litHtmlVersions??(Bs.litHtmlVersions=[])).push("3.1.2");const Ls=(e,t,n)=>{const r=(n==null?void 0:n.renderBefore)??t;let i=r._$litPart$;if(i===void 0){const o=(n==null?void 0:n.renderBefore)??null;r._$litPart$=i=new Ps(t.insertBefore(Ds(),o),o,void 0,n??{})}return i._$AI(e),i};/**
21
21
  * @license
22
22
  * Copyright 2017 Google LLC
23
23
  * SPDX-License-Identifier: BSD-3-Clause
24
- */class pc extends La{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var n;const t=super.createRenderRoot();return(n=this.renderOptions).renderBefore??(n.renderBefore=t.firstChild),t}update(t){const n=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=Ds(n,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),(t=this._$Do)==null||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this._$Do)==null||t.setConnected(!1)}render(){return Mi}}pc._$litElement$=!0,pc.finalized=!0,(X_=globalThis.litElementHydrateSupport)==null||X_.call(globalThis,{LitElement:pc});const pd=globalThis.litElementPolyfillSupport;pd==null||pd({LitElement:pc}),(globalThis.litElementVersions??(globalThis.litElementVersions=[])).push("4.0.4");/**
24
+ */class Ac extends Vo{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var n;const t=super.createRenderRoot();return(n=this.renderOptions).renderBefore??(n.renderBefore=t.firstChild),t}update(t){const n=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=Ls(n,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),(t=this._$Do)==null||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this._$Do)==null||t.setConnected(!1)}render(){return Oi}}Ac._$litElement$=!0,Ac.finalized=!0,(p4=globalThis.litElementHydrateSupport)==null||p4.call(globalThis,{LitElement:Ac});const _d=globalThis.litElementPolyfillSupport;_d==null||_d({LitElement:Ac}),(globalThis.litElementVersions??(globalThis.litElementVersions=[])).push("4.0.4");/**
25
25
  * @license
26
26
  * Copyright 2017 Google LLC
27
27
  * SPDX-License-Identifier: BSD-3-Clause
28
- */const P6={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},L6=e=>(...t)=>({_$litDirective$:e,values:t});let N6=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,r){this._$Ct=t,this._$AM=n,this._$Ci=r}_$AS(t,n){return this.update(t,n)}update(t,n){return this.render(...n)}};/**
28
+ */const e8={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},t8=e=>(...t)=>({_$litDirective$:e,values:t});let n8=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,r){this._$Ct=t,this._$AM=n,this._$Ci=r}_$AS(t,n){return this.update(t,n)}update(t,n){return this.render(...n)}};/**
29
29
  * @license
30
30
  * Copyright 2018 Google LLC
31
31
  * SPDX-License-Identifier: BSD-3-Clause
32
- */const lb="important",O6=" !"+lb,z6=L6(class extends N6{constructor(e){var t;if(super(e),e.type!==P6.ATTRIBUTE||e.name!=="style"||((t=e.strings)==null?void 0:t.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(e){return Object.keys(e).reduce((t,n)=>{const r=e[n];return r==null?t:t+`${n=n.includes("-")?n:n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${r};`},"")}update(e,[t]){const{style:n}=e.element;if(this.ft===void 0)return this.ft=new Set(Object.keys(t)),this.render(t);for(const r of this.ft)t[r]==null&&(this.ft.delete(r),r.includes("-")?n.removeProperty(r):n[r]=null);for(const r in t){const i=t[r];if(i!=null){this.ft.add(r);const a=typeof i=="string"&&i.endsWith(O6);r.includes("-")||a?n.setProperty(r,a?i.slice(0,-11):i,a?lb:""):n[r]=i}}return Mi}}),U6="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cstyle%3e.spinner_ajPY{transform-origin:center;animation:spinner_AtaB%20.75s%20infinite%20linear}@keyframes%20spinner_AtaB{100%25{transform:rotate(360deg)}}%3c/style%3e%3cpath%20d='M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z'%20opacity='.25'/%3e%3cpath%20d='M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z'%20class='spinner_ajPY'/%3e%3c/svg%3e",G6=`
32
+ */const bb="important",r8=" !"+bb,i8=t8(class extends n8{constructor(e){var t;if(super(e),e.type!==e8.ATTRIBUTE||e.name!=="style"||((t=e.strings)==null?void 0:t.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(e){return Object.keys(e).reduce((t,n)=>{const r=e[n];return r==null?t:t+`${n=n.includes("-")?n:n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${r};`},"")}update(e,[t]){const{style:n}=e.element;if(this.ft===void 0)return this.ft=new Set(Object.keys(t)),this.render(t);for(const r of this.ft)t[r]==null&&(this.ft.delete(r),r.includes("-")?n.removeProperty(r):n[r]=null);for(const r in t){const i=t[r];if(i!=null){this.ft.add(r);const o=typeof i=="string"&&i.endsWith(r8);r.includes("-")||o?n.setProperty(r,o?i.slice(0,-11):i,o?bb:""):n[r]=i}}return Oi}}),o8="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cstyle%3e.spinner_ajPY{transform-origin:center;animation:spinner_AtaB%20.75s%20infinite%20linear}@keyframes%20spinner_AtaB{100%25{transform:rotate(360deg)}}%3c/style%3e%3cpath%20d='M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z'%20opacity='.25'/%3e%3cpath%20d='M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z'%20class='spinner_ajPY'/%3e%3c/svg%3e",a8=`
33
33
  .genome-spy {
34
34
  font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
35
35
  position: relative;
@@ -221,11 +221,9 @@
221
221
  font-size: 14px;
222
222
  padding: 10px;
223
223
  }
224
- `;function H6(e,t){var n=e.getBoundingClientRect();return[t.clientX-n.left-e.clientLeft,t.clientY-n.top-e.clientTop]}function gd(e,t){return e.length==t.length&&e.every((n,r)=>e[r]===t[r])}function Ot(e){return Array.isArray(e)?e:typeof e<"u"?[e]:[]}function Rs(e){return e[e.length-1]}class V6{constructor(t){this.container=t,this.element=document.createElement("div"),this.element.className="tooltip",this._visible=!0,this.container.appendChild(this.element),this._previousTooltipDatum=void 0,this.enabledStack=[!0],this._penaltyUntil=0,this._lastCoords=void 0,this._previousMove=0,this.clear()}set visible(t){t!=this._visible&&(this.element.style.display=t?null:"none",this._visible=t)}get visible(){return this._visible}get enabled(){return Rs(this.enabledStack)??!0}pushEnabledState(t){this.enabledStack.push(t),t||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(t){this.mouseCoords=H6(this.container,t);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&j6(this.mouseCoords,this._lastCoords)>20&&(this._penaltyUntil=n+400),this._lastCoords=this.mouseCoords,this.visible&&this.updatePlacement(),this._previousMove=n}updatePlacement(){const[n,r]=this.mouseCoords;let i=n+20;i>this.container.clientWidth-this.element.offsetWidth&&(i=n-20-this.element.offsetWidth),this.element.style.left=i+"px",this.element.style.top=Math.min(r+20,this.container.clientHeight-this.element.offsetHeight)+"px"}setContent(t){if(!t||!this.enabled||this._isPenalty()){this.visible&&(Ds("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}Ds(t,this.element),this.visible=!0,this.updatePlacement()}clear(){this._previousTooltipDatum=void 0,this.setContent(void 0)}updateWithDatum(t,n){t!==this._previousTooltipDatum&&(this._previousTooltipDatum=t,n||(n=r=>Promise.resolve(Xe` ${JSON.stringify(r)} `)),n(t).then(r=>this.setContent(r)).catch(r=>{if(r!=="debounced")throw r}))}_isPenalty(){return this._penaltyUntil&&this._penaltyUntil>performance.now()}}function j6(e,t){let n=0;for(let r=0;r<e.length;r++)n+=(e[r]-t[r])**2;return Math.sqrt(n)}const $6="RawCode",q6="Literal",W6="Property",Z6="Identifier",Y6="ArrayExpression",Q6="BinaryExpression",X6="CallExpression",K6="ConditionalExpression",J6="LogicalExpression",e8="MemberExpression",t8="ObjectExpression",n8="UnaryExpression";function xn(e){this.type=e}xn.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=r8(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};function r8(e){switch(e.type){case Y6:return e.elements;case Q6:case J6:return[e.left,e.right];case X6:return[e.callee].concat(e.arguments);case K6:return[e.test,e.consequent,e.alternate];case e8:return[e.object,e.property];case t8:return e.properties;case W6:return[e.key,e.value];case n8:return[e.argument];case Z6:case q6:case $6:default:return[]}}var Nn,ee,U,At,Ie,gc=1,Fs=2,Li=3,Or=4,mc=5,Ni=6,zt=7,Ms=8,i8=9;Nn={},Nn[gc]="Boolean",Nn[Fs]="<end>",Nn[Li]="Identifier",Nn[Or]="Keyword",Nn[mc]="Null",Nn[Ni]="Numeric",Nn[zt]="Punctuator",Nn[Ms]="String",Nn[i8]="RegularExpression";var a8="ArrayExpression",o8="BinaryExpression",s8="CallExpression",l8="ConditionalExpression",ub="Identifier",u8="Literal",c8="LogicalExpression",f8="MemberExpression",h8="ObjectExpression",d8="Property",p8="UnaryExpression",ct="Unexpected token %0",g8="Unexpected number",m8="Unexpected string",b8="Unexpected identifier",y8="Unexpected reserved word",w8="Unexpected end of input",md="Invalid regular expression",bd="Invalid regular expression: missing /",cb="Octal literals are not allowed in strict mode.",v8="Duplicate data property in object literal not allowed in strict mode",bt="ILLEGAL",Ps="Disabled.",x8=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),A8=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function bc(e,t){if(!e)throw new Error("ASSERT: "+t)}function ur(e){return e>=48&&e<=57}function yd(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function Ls(e){return"01234567".indexOf(e)>=0}function E8(e){return e===32||e===9||e===11||e===12||e===160||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function Ns(e){return e===10||e===13||e===8232||e===8233}function Os(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&x8.test(String.fromCharCode(e))}function yc(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&A8.test(String.fromCharCode(e))}const _8={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function fb(){for(;U<At;){const e=ee.charCodeAt(U);if(E8(e)||Ns(e))++U;else break}}function wd(e){var t,n,r,i=0;for(n=e==="u"?4:2,t=0;t<n;++t)U<At&&yd(ee[U])?(r=ee[U++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):ve({},ct,bt);return String.fromCharCode(i)}function S8(){var e,t,n,r;for(e=ee[U],t=0,e==="}"&&ve({},ct,bt);U<At&&(e=ee[U++],!!yd(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&ve({},ct,bt),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,r=(t-65536&1023)+56320,String.fromCharCode(n,r))}function hb(){var e,t;for(e=ee.charCodeAt(U++),t=String.fromCharCode(e),e===92&&(ee.charCodeAt(U)!==117&&ve({},ct,bt),++U,e=wd("u"),(!e||e==="\\"||!Os(e.charCodeAt(0)))&&ve({},ct,bt),t=e);U<At&&(e=ee.charCodeAt(U),!!yc(e));)++U,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),ee.charCodeAt(U)!==117&&ve({},ct,bt),++U,e=wd("u"),(!e||e==="\\"||!yc(e.charCodeAt(0)))&&ve({},ct,bt),t+=e);return t}function C8(){var e,t;for(e=U++;U<At;){if(t=ee.charCodeAt(U),t===92)return U=e,hb();if(yc(t))++U;else break}return ee.slice(e,U)}function k8(){var e,t,n;return e=U,t=ee.charCodeAt(U)===92?hb():C8(),t.length===1?n=Li:_8.hasOwnProperty(t)?n=Or:t==="null"?n=mc:t==="true"||t==="false"?n=gc:n=Li,{type:n,value:t,start:e,end:U}}function vd(){var e=U,t=ee.charCodeAt(U),n,r=ee[U],i,a,o;switch(t){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++U,{type:zt,value:String.fromCharCode(t),start:e,end:U};default:if(n=ee.charCodeAt(U+1),n===61)switch(t){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return U+=2,{type:zt,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:U};case 33:case 61:return U+=2,ee.charCodeAt(U)===61&&++U,{type:zt,value:ee.slice(e,U),start:e,end:U}}}if(o=ee.substr(U,4),o===">>>=")return U+=4,{type:zt,value:o,start:e,end:U};if(a=o.substr(0,3),a===">>>"||a==="<<="||a===">>=")return U+=3,{type:zt,value:a,start:e,end:U};if(i=a.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return U+=2,{type:zt,value:i,start:e,end:U};if(i==="//"&&ve({},ct,bt),"<>=!+-*%&|^/".indexOf(r)>=0)return++U,{type:zt,value:r,start:e,end:U};ve({},ct,bt)}function T8(e){let t="";for(;U<At&&yd(ee[U]);)t+=ee[U++];return t.length===0&&ve({},ct,bt),Os(ee.charCodeAt(U))&&ve({},ct,bt),{type:Ni,value:parseInt("0x"+t,16),start:e,end:U}}function I8(e){let t="0"+ee[U++];for(;U<At&&Ls(ee[U]);)t+=ee[U++];return(Os(ee.charCodeAt(U))||ur(ee.charCodeAt(U)))&&ve({},ct,bt),{type:Ni,value:parseInt(t,8),octal:!0,start:e,end:U}}function db(){var e,t,n;if(n=ee[U],bc(ur(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=U,e="",n!=="."){if(e=ee[U++],n=ee[U],e==="0"){if(n==="x"||n==="X")return++U,T8(t);if(Ls(n))return I8(t);n&&ur(n.charCodeAt(0))&&ve({},ct,bt)}for(;ur(ee.charCodeAt(U));)e+=ee[U++];n=ee[U]}if(n==="."){for(e+=ee[U++];ur(ee.charCodeAt(U));)e+=ee[U++];n=ee[U]}if(n==="e"||n==="E")if(e+=ee[U++],n=ee[U],(n==="+"||n==="-")&&(e+=ee[U++]),ur(ee.charCodeAt(U)))for(;ur(ee.charCodeAt(U));)e+=ee[U++];else ve({},ct,bt);return Os(ee.charCodeAt(U))&&ve({},ct,bt),{type:Ni,value:parseFloat(e),start:t,end:U}}function B8(){var e="",t,n,r,i,a=!1;for(t=ee[U],bc(t==="'"||t==='"',"String literal must starts with a quote"),n=U,++U;U<At;)if(r=ee[U++],r===t){t="";break}else if(r==="\\")if(r=ee[U++],!r||!Ns(r.charCodeAt(0)))switch(r){case"u":case"x":ee[U]==="{"?(++U,e+=S8()):e+=wd(r);break;case"n":e+=`
225
- `;break;case"r":e+="\r";break;case"t":e+=" ";break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:Ls(r)?(i="01234567".indexOf(r),i!==0&&(a=!0),U<At&&Ls(ee[U])&&(a=!0,i=i*8+"01234567".indexOf(ee[U++]),"0123".indexOf(r)>=0&&U<At&&Ls(ee[U])&&(i=i*8+"01234567".indexOf(ee[U++]))),e+=String.fromCharCode(i)):e+=r;break}else r==="\r"&&ee[U]===`
226
- `&&++U;else{if(Ns(r.charCodeAt(0)))break;e+=r}return t!==""&&ve({},ct,bt),{type:Ms,value:e,octal:a,start:n,end:U}}function D8(e,t){let n=e;t.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(r,i)=>{if(parseInt(i,16)<=1114111)return"x";ve({},md)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{ve({},md)}try{return new RegExp(e,t)}catch{return null}}function R8(){var e,t,n,r,i;for(e=ee[U],bc(e==="/","Regular expression literal must start with a slash"),t=ee[U++],n=!1,r=!1;U<At;)if(e=ee[U++],t+=e,e==="\\")e=ee[U++],Ns(e.charCodeAt(0))&&ve({},bd),t+=e;else if(Ns(e.charCodeAt(0)))ve({},bd);else if(n)e==="]"&&(n=!1);else if(e==="/"){r=!0;break}else e==="["&&(n=!0);return r||ve({},bd),i=t.substr(1,t.length-2),{value:i,literal:t}}function F8(){var e,t,n;for(t="",n="";U<At&&(e=ee[U],!!yc(e.charCodeAt(0)));)++U,e==="\\"&&U<At?ve({},ct,bt):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&ve({},md,n),{value:n,literal:t}}function M8(){var e,t,n,r;return Ie=null,fb(),e=U,t=R8(),n=F8(),r=D8(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:U}}function P8(e){return e.type===Li||e.type===Or||e.type===gc||e.type===mc}function pb(){if(fb(),U>=At)return{type:Fs,start:U,end:U};const e=ee.charCodeAt(U);return Os(e)?k8():e===40||e===41||e===59?vd():e===39||e===34?B8():e===46?ur(ee.charCodeAt(U+1))?db():vd():ur(e)?db():vd()}function Ut(){const e=Ie;return U=e.end,Ie=pb(),U=e.end,e}function gb(){const e=U;Ie=pb(),U=e}function L8(e){const t=new xn(a8);return t.elements=e,t}function mb(e,t,n){const r=new xn(e==="||"||e==="&&"?c8:o8);return r.operator=e,r.left=t,r.right=n,r}function N8(e,t){const n=new xn(s8);return n.callee=e,n.arguments=t,n}function O8(e,t,n){const r=new xn(l8);return r.test=e,r.consequent=t,r.alternate=n,r}function xd(e){const t=new xn(ub);return t.name=e,t}function zs(e){const t=new xn(u8);return t.value=e.value,t.raw=ee.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function bb(e,t,n){const r=new xn(f8);return r.computed=e==="[",r.object=t,r.property=n,r.computed||(n.member=!0),r}function z8(e){const t=new xn(h8);return t.properties=e,t}function yb(e,t,n){const r=new xn(d8);return r.key=t,r.value=n,r.kind=e,r}function U8(e,t){const n=new xn(p8);return n.operator=e,n.argument=t,n.prefix=!0,n}function ve(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,(a,o)=>(bc(o<r.length,"Message reference must be in range"),r[o]));throw n=new Error(i),n.index=U,n.description=i,n}function wc(e){e.type===Fs&&ve(e,w8),e.type===Ni&&ve(e,g8),e.type===Ms&&ve(e,m8),e.type===Li&&ve(e,b8),e.type===Or&&ve(e,y8),ve(e,ct,e.value)}function Et(e){const t=Ut();(t.type!==zt||t.value!==e)&&wc(t)}function Ge(e){return Ie.type===zt&&Ie.value===e}function Ad(e){return Ie.type===Or&&Ie.value===e}function G8(){const e=[];for(U=Ie.start,Et("[");!Ge("]");)Ge(",")?(Ut(),e.push(null)):(e.push(Oi()),Ge("]")||Et(","));return Ut(),L8(e)}function wb(){U=Ie.start;const e=Ut();return e.type===Ms||e.type===Ni?(e.octal&&ve(e,cb),zs(e)):xd(e.value)}function H8(){var e,t,n,r;if(U=Ie.start,e=Ie,e.type===Li)return n=wb(),Et(":"),r=Oi(),yb("init",n,r);if(e.type===Fs||e.type===zt)wc(e);else return t=wb(),Et(":"),r=Oi(),yb("init",t,r)}function V8(){var e=[],t,n,r,i={},a=String;for(U=Ie.start,Et("{");!Ge("}");)t=H8(),t.key.type===ub?n=t.key.name:n=a(t.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?ve({},v8):i[r]=!0,e.push(t),Ge("}")||Et(",");return Et("}"),z8(e)}function j8(){Et("(");const e=Ed();return Et(")"),e}const $8={if:1};function q8(){var e,t,n;if(Ge("("))return j8();if(Ge("["))return G8();if(Ge("{"))return V8();if(e=Ie.type,U=Ie.start,e===Li||$8[Ie.value])n=xd(Ut().value);else if(e===Ms||e===Ni)Ie.octal&&ve(Ie,cb),n=zs(Ut());else{if(e===Or)throw new Error(Ps);e===gc?(t=Ut(),t.value=t.value==="true",n=zs(t)):e===mc?(t=Ut(),t.value=null,n=zs(t)):Ge("/")||Ge("/=")?(n=zs(M8()),gb()):wc(Ut())}return n}function W8(){const e=[];if(Et("("),!Ge(")"))for(;U<At&&(e.push(Oi()),!Ge(")"));)Et(",");return Et(")"),e}function Z8(){U=Ie.start;const e=Ut();return P8(e)||wc(e),xd(e.value)}function Y8(){return Et("."),Z8()}function Q8(){Et("[");const e=Ed();return Et("]"),e}function X8(){var e,t,n;for(e=q8();;)if(Ge("."))n=Y8(),e=bb(".",e,n);else if(Ge("("))t=W8(),e=N8(e,t);else if(Ge("["))n=Q8(),e=bb("[",e,n);else break;return e}function vb(){const e=X8();if(Ie.type===zt&&(Ge("++")||Ge("--")))throw new Error(Ps);return e}function vc(){var e,t;if(Ie.type!==zt&&Ie.type!==Or)t=vb();else{if(Ge("++")||Ge("--"))throw new Error(Ps);if(Ge("+")||Ge("-")||Ge("~")||Ge("!"))e=Ut(),t=vc(),t=U8(e.value,t);else{if(Ad("delete")||Ad("void")||Ad("typeof"))throw new Error(Ps);t=vb()}}return t}function xb(e){let t=0;if(e.type!==zt&&e.type!==Or)return 0;switch(e.value){case"||":t=1;break;case"&&":t=2;break;case"|":t=3;break;case"^":t=4;break;case"&":t=5;break;case"==":case"!=":case"===":case"!==":t=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11;break}return t}function K8(){var e,t,n,r,i,a,o,s,u,l;if(e=Ie,u=vc(),r=Ie,i=xb(r),i===0)return u;for(r.prec=i,Ut(),t=[e,Ie],o=vc(),a=[u,r,o];(i=xb(Ie))>0;){for(;a.length>2&&i<=a[a.length-2].prec;)o=a.pop(),s=a.pop().value,u=a.pop(),t.pop(),n=mb(s,u,o),a.push(n);r=Ut(),r.prec=i,a.push(r),t.push(Ie),n=vc(),a.push(n)}for(l=a.length-1,n=a[l],t.pop();l>1;)t.pop(),n=mb(a[l-1].value,a[l-2],n),l-=2;return n}function Oi(){var e,t,n;return e=K8(),Ge("?")&&(Ut(),t=Oi(),Et(":"),n=Oi(),e=O8(e,t,n)),e}function Ed(){const e=Oi();if(Ge(","))throw new Error(Ps);return e}function J8(e){ee=e,U=0,At=ee.length,Ie=null,gb();const t=Ed();if(Ie.type!==Fs)throw new Error("Unexpect token after expression.");return t}var e5={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function Ab(e){function t(o,s,u,l){let c=e(s[0]);return u&&(c=u+"("+c+")",u.lastIndexOf("new ",0)===0&&(c="("+c+")")),c+"."+o+(l<0?"":l===0?"()":"("+s.slice(1).map(e).join(",")+")")}function n(o,s,u){return l=>t(o,l,s,u)}const r="new Date",i="String",a="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",hypot:"Math.hypot",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(o){o.length<3&&Qe("Missing arguments to clamp function."),o.length>3&&Qe("Too many arguments to clamp function.");const s=o.map(e);return"Math.max("+s[1]+", Math.min("+s[2]+","+s[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:a,test:n("test",a),if:function(o){o.length<3&&Qe("Missing arguments to if function."),o.length>3&&Qe("Too many arguments to if function.");const s=o.map(e);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function t5(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function n5(e){e=e||{};const t=e.allowed?Wu(e.allowed):{},n=e.forbidden?Wu(e.forbidden):{},r=e.constants||e5,i=(e.functions||Ab)(f),a=e.globalvar,o=e.fieldvar,s=Lt(a)?a:p=>`${a}["${p}"]`;let u={},l={},c=0;function f(p){if(Ue(p))return p;const m=h[p.type];return m==null&&Qe("Unsupported type: "+p.type),m(p)}const h={Literal:p=>p.raw,Identifier:p=>{const m=p.name;return c>0?m:Ba(n,m)?Qe("Illegal identifier: "+m):Ba(r,m)?r[m]:Ba(t,m)?m:(u[m]=1,s(m))},MemberExpression:p=>{const m=!p.computed,y=f(p.object);m&&(c+=1);const w=f(p.property);return y===o&&(l[t5(w)]=1),m&&(c-=1),y+(m?"."+w:"["+w+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&Qe("Illegal callee type: "+p.callee.type);const m=p.callee.name,y=p.arguments,w=Ba(i,m)&&i[m];return w||Qe("Unrecognized function: "+m),Lt(w)?w(y):w+"("+y.map(f).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(f).join(",")+"]",BinaryExpression:p=>"("+f(p.left)+" "+p.operator+" "+f(p.right)+")",UnaryExpression:p=>"("+p.operator+f(p.argument)+")",ConditionalExpression:p=>"("+f(p.test)+"?"+f(p.consequent)+":"+f(p.alternate)+")",LogicalExpression:p=>"("+f(p.left)+p.operator+f(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(f).join(",")+"}",Property:p=>{c+=1;const m=f(p.key);return c-=1,m+":"+f(p.value)}};function d(p){const m={code:f(p),globals:Object.keys(u),fields:Object.keys(l)};return u={},l={},m}return d.functions=i,d.constants=r,d}function Eb(e,t,n){return n=(n-e)/(t-e),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}function Oa(e,t=0,n=1){return Math.max(t,Math.min(n,e))}function r5(e,t,n){return Oa((n-e)/(t-e),0,1)}const _b={clamp:Oa,isArray:xt,isBoolean:is,isDefined(e){return e!==void 0},isNumber:Tt,isObject:kt,isRegExp:j4,isString:Ue,isValid(e){return e!=null&&e===e},lerp:Ym,linearstep:r5,smoothstep:Eb};function i5(e){const t=Ab(e);for(const n in _b)t[n]=`this.${n}`;return t}const a5=n5({forbidden:[],allowed:["datum","undefined"],globalvar:"globalObject",fieldvar:"datum",functions:i5});function Sb(e,t={}){try{const n=J8(e),r=a5(n),i=Function("datum","globalObject",`"use strict"; return (${r.code});`).bind(_b),a=o=>i(o,t);return a.fields=r.fields,a.globals=r.globals,a.code=r.code,a}catch(n){throw new Error(`Invalid expression: ${e}, ${n.message}`)}}function On(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function zr(e,t){switch(arguments.length){case 0:break;case 1:{typeof e=="function"?this.interpolator(e):this.range(e);break}default:{this.domain(e),typeof t=="function"?this.interpolator(t):this.range(t);break}}return this}const _d=Symbol("implicit");function Sd(){var e=new ir,t=[],n=[],r=_d;function i(a){let o=e.get(a);if(o===void 0){if(r!==_d)return r;e.set(a,o=t.push(a)-1)}return n[o%n.length]}return i.domain=function(a){if(!arguments.length)return t.slice();t=[],e=new ir;for(const o of a)e.has(o)||e.set(o,t.push(o)-1);return i},i.range=function(a){return arguments.length?(n=Array.from(a),i):n.slice()},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return Sd(t,n).unknown(r)},On.apply(i,arguments),i}function za(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Us(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Ur(){}var zi=.7,Ua=1/zi,Ga="\\s*([+-]?\\d+)\\s*",Gs="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",zn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",o5=/^#([0-9a-f]{3,8})$/,s5=new RegExp(`^rgb\\(${Ga},${Ga},${Ga}\\)$`),l5=new RegExp(`^rgb\\(${zn},${zn},${zn}\\)$`),u5=new RegExp(`^rgba\\(${Ga},${Ga},${Ga},${Gs}\\)$`),c5=new RegExp(`^rgba\\(${zn},${zn},${zn},${Gs}\\)$`),f5=new RegExp(`^hsl\\(${Gs},${zn},${zn}\\)$`),h5=new RegExp(`^hsla\\(${Gs},${zn},${zn},${Gs}\\)$`),Cb={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};za(Ur,Gr,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:kb,formatHex:kb,formatHex8:d5,formatHsl:p5,formatRgb:Tb,toString:Tb});function kb(){return this.rgb().formatHex()}function d5(){return this.rgb().formatHex8()}function p5(){return Fb(this).formatHsl()}function Tb(){return this.rgb().formatRgb()}function Gr(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=o5.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?Ib(t):n===3?new ft(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?xc(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?xc(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=s5.exec(e))?new ft(t[1],t[2],t[3],1):(t=l5.exec(e))?new ft(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=u5.exec(e))?xc(t[1],t[2],t[3],t[4]):(t=c5.exec(e))?xc(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=f5.exec(e))?Rb(t[1],t[2]/100,t[3]/100,1):(t=h5.exec(e))?Rb(t[1],t[2]/100,t[3]/100,t[4]):Cb.hasOwnProperty(e)?Ib(Cb[e]):e==="transparent"?new ft(NaN,NaN,NaN,0):null}function Ib(e){return new ft(e>>16&255,e>>8&255,e&255,1)}function xc(e,t,n,r){return r<=0&&(e=t=n=NaN),new ft(e,t,n,r)}function Cd(e){return e instanceof Ur||(e=Gr(e)),e?(e=e.rgb(),new ft(e.r,e.g,e.b,e.opacity)):new ft}function Ac(e,t,n,r){return arguments.length===1?Cd(e):new ft(e,t,n,r??1)}function ft(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}za(ft,Ac,Us(Ur,{brighter(e){return e=e==null?Ua:Math.pow(Ua,e),new ft(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?zi:Math.pow(zi,e),new ft(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ft(Ui(this.r),Ui(this.g),Ui(this.b),Ec(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Bb,formatHex:Bb,formatHex8:g5,formatRgb:Db,toString:Db}));function Bb(){return`#${Gi(this.r)}${Gi(this.g)}${Gi(this.b)}`}function g5(){return`#${Gi(this.r)}${Gi(this.g)}${Gi(this.b)}${Gi((isNaN(this.opacity)?1:this.opacity)*255)}`}function Db(){const e=Ec(this.opacity);return`${e===1?"rgb(":"rgba("}${Ui(this.r)}, ${Ui(this.g)}, ${Ui(this.b)}${e===1?")":`, ${e})`}`}function Ec(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Ui(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Gi(e){return e=Ui(e),(e<16?"0":"")+e.toString(16)}function Rb(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new An(e,t,n,r)}function Fb(e){if(e instanceof An)return new An(e.h,e.s,e.l,e.opacity);if(e instanceof Ur||(e=Gr(e)),!e)return new An;if(e instanceof An)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,u=(a+i)/2;return s?(t===a?o=(n-r)/s+(n<r)*6:n===a?o=(r-t)/s+2:o=(t-n)/s+4,s/=u<.5?a+i:2-a-i,o*=60):s=u>0&&u<1?0:o,new An(o,s,u,e.opacity)}function kd(e,t,n,r){return arguments.length===1?Fb(e):new An(e,t,n,r??1)}function An(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}za(An,kd,Us(Ur,{brighter(e){return e=e==null?Ua:Math.pow(Ua,e),new An(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?zi:Math.pow(zi,e),new An(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new ft(Td(e>=240?e-240:e+120,i,r),Td(e,i,r),Td(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new An(Mb(this.h),_c(this.s),_c(this.l),Ec(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Ec(this.opacity);return`${e===1?"hsl(":"hsla("}${Mb(this.h)}, ${_c(this.s)*100}%, ${_c(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Mb(e){return e=(e||0)%360,e<0?e+360:e}function _c(e){return Math.max(0,Math.min(1,e||0))}function Td(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const Pb=Math.PI/180,Lb=180/Math.PI,Sc=18,Nb=.96422,Ob=1,zb=.82521,Ub=4/29,Ha=6/29,Gb=3*Ha*Ha,m5=Ha*Ha*Ha;function Hb(e){if(e instanceof Un)return new Un(e.l,e.a,e.b,e.opacity);if(e instanceof cr)return Vb(e);e instanceof ft||(e=Cd(e));var t=Fd(e.r),n=Fd(e.g),r=Fd(e.b),i=Bd((.2225045*t+.7168786*n+.0606169*r)/Ob),a,o;return t===n&&n===r?a=o=i:(a=Bd((.4360747*t+.3850649*n+.1430804*r)/Nb),o=Bd((.0139322*t+.0971045*n+.7141733*r)/zb)),new Un(116*i-16,500*(a-i),200*(i-o),e.opacity)}function Id(e,t,n,r){return arguments.length===1?Hb(e):new Un(e,t,n,r??1)}function Un(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}za(Un,Id,Us(Ur,{brighter(e){return new Un(this.l+Sc*(e??1),this.a,this.b,this.opacity)},darker(e){return new Un(this.l-Sc*(e??1),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return t=Nb*Dd(t),e=Ob*Dd(e),n=zb*Dd(n),new ft(Rd(3.1338561*t-1.6168667*e-.4906146*n),Rd(-.9787684*t+1.9161415*e+.033454*n),Rd(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function Bd(e){return e>m5?Math.pow(e,1/3):e/Gb+Ub}function Dd(e){return e>Ha?e*e*e:Gb*(e-Ub)}function Rd(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function Fd(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function b5(e){if(e instanceof cr)return new cr(e.h,e.c,e.l,e.opacity);if(e instanceof Un||(e=Hb(e)),e.a===0&&e.b===0)return new cr(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*Lb;return new cr(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function Md(e,t,n,r){return arguments.length===1?b5(e):new cr(e,t,n,r??1)}function cr(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function Vb(e){if(isNaN(e.h))return new Un(e.l,0,0,e.opacity);var t=e.h*Pb;return new Un(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}za(cr,Md,Us(Ur,{brighter(e){return new cr(this.h,this.c,this.l+Sc*(e??1),this.opacity)},darker(e){return new cr(this.h,this.c,this.l-Sc*(e??1),this.opacity)},rgb(){return Vb(this).rgb()}}));var jb=-.14861,Pd=1.78277,Ld=-.29227,Cc=-.90649,Hs=1.97294,$b=Hs*Cc,qb=Hs*Pd,Wb=Pd*Ld-Cc*jb;function y5(e){if(e instanceof Hi)return new Hi(e.h,e.s,e.l,e.opacity);e instanceof ft||(e=Cd(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(Wb*r+$b*t-qb*n)/(Wb+$b-qb),a=r-i,o=(Hs*(n-i)-Ld*a)/Cc,s=Math.sqrt(o*o+a*a)/(Hs*i*(1-i)),u=s?Math.atan2(o,a)*Lb-120:NaN;return new Hi(u<0?u+360:u,s,i,e.opacity)}function Nd(e,t,n,r){return arguments.length===1?y5(e):new Hi(e,t,n,r??1)}function Hi(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}za(Hi,Nd,Us(Ur,{brighter(e){return e=e==null?Ua:Math.pow(Ua,e),new Hi(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?zi:Math.pow(zi,e),new Hi(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*Pb,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new ft(255*(t+n*(jb*r+Pd*i)),255*(t+n*(Ld*r+Cc*i)),255*(t+n*(Hs*r)),this.opacity)}}));function Zb(e,t,n,r,i){var a=e*e,o=a*e;return((1-3*e+3*a-o)*t+(4-6*a+3*o)*n+(1+3*e+3*a-3*o)*r+o*i)/6}function Yb(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],a=e[r+1],o=r>0?e[r-1]:2*i-a,s=r<t-1?e[r+2]:2*a-i;return Zb((n-r/t)*t,o,i,a,s)}}function Qb(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),i=e[(r+t-1)%t],a=e[r%t],o=e[(r+1)%t],s=e[(r+2)%t];return Zb((n-r/t)*t,i,a,o,s)}}const kc=e=>()=>e;function Xb(e,t){return function(n){return e+n*t}}function w5(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Tc(e,t){var n=t-e;return n?Xb(e,n>180||n<-180?n-360*Math.round(n/360):n):kc(isNaN(e)?t:e)}function v5(e){return(e=+e)==1?ht:function(t,n){return n-t?w5(t,n,e):kc(isNaN(t)?n:t)}}function ht(e,t){var n=t-e;return n?Xb(e,n):kc(isNaN(e)?t:e)}const Od=function e(t){var n=v5(t);function r(i,a){var o=n((i=Ac(i)).r,(a=Ac(a)).r),s=n(i.g,a.g),u=n(i.b,a.b),l=ht(i.opacity,a.opacity);return function(c){return i.r=o(c),i.g=s(c),i.b=u(c),i.opacity=l(c),i+""}}return r.gamma=e,r}(1);function Kb(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),a=new Array(n),o,s;for(o=0;o<n;++o)s=Ac(t[o]),r[o]=s.r||0,i[o]=s.g||0,a[o]=s.b||0;return r=e(r),i=e(i),a=e(a),s.opacity=1,function(u){return s.r=r(u),s.g=i(u),s.b=a(u),s+""}}}var x5=Kb(Yb),A5=Kb(Qb);function zd(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function Jb(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function E5(e,t){return(Jb(t)?zd:e2)(e,t)}function e2(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),a=new Array(n),o;for(o=0;o<r;++o)i[o]=Hr(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(s){for(o=0;o<r;++o)a[o]=i[o](s);return a}}function t2(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function En(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function n2(e,t){var n={},r={},i;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(i in t)i in e?n[i]=Hr(e[i],t[i]):r[i]=t[i];return function(a){for(i in n)r[i]=n[i](a);return r}}var Ud=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Gd=new RegExp(Ud.source,"g");function _5(e){return function(){return e}}function S5(e){return function(t){return e(t)+""}}function r2(e,t){var n=Ud.lastIndex=Gd.lastIndex=0,r,i,a,o=-1,s=[],u=[];for(e=e+"",t=t+"";(r=Ud.exec(e))&&(i=Gd.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,u.push({i:o,x:En(r,i)})),n=Gd.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?u[0]?S5(u[0].x):_5(t):(t=u.length,function(l){for(var c=0,f;c<t;++c)s[(f=u[c]).i]=f.x(l);return s.join("")})}function Hr(e,t){var n=typeof t,r;return t==null||n==="boolean"?kc(t):(n==="number"?En:n==="string"?(r=Gr(t))?(t=r,Od):r2:t instanceof Gr?Od:t instanceof Date?t2:Jb(t)?zd:Array.isArray(t)?e2:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?n2:En)(e,t)}function C5(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function k5(e,t){var n=Tc(+e,+t);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function Vs(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var i2=180/Math.PI,Hd={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function a2(e,t,n,r,i,a){var o,s,u;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(u=e*n+t*r)&&(n-=e*u,r-=t*u),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,u/=s),e*r<t*n&&(e=-e,t=-t,u=-u,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*i2,skewX:Math.atan(u)*i2,scaleX:o,scaleY:s}}var Ic;function T5(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Hd:a2(t.a,t.b,t.c,t.d,t.e,t.f)}function I5(e){return e==null||(Ic||(Ic=document.createElementNS("http://www.w3.org/2000/svg","g")),Ic.setAttribute("transform",e),!(e=Ic.transform.baseVal.consolidate()))?Hd:(e=e.matrix,a2(e.a,e.b,e.c,e.d,e.e,e.f))}function o2(e,t,n,r){function i(l){return l.length?l.pop()+" ":""}function a(l,c,f,h,d,p){if(l!==f||c!==h){var m=d.push("translate(",null,t,null,n);p.push({i:m-4,x:En(l,f)},{i:m-2,x:En(c,h)})}else(f||h)&&d.push("translate("+f+t+h+n)}function o(l,c,f,h){l!==c?(l-c>180?c+=360:c-l>180&&(l+=360),h.push({i:f.push(i(f)+"rotate(",null,r)-2,x:En(l,c)})):c&&f.push(i(f)+"rotate("+c+r)}function s(l,c,f,h){l!==c?h.push({i:f.push(i(f)+"skewX(",null,r)-2,x:En(l,c)}):c&&f.push(i(f)+"skewX("+c+r)}function u(l,c,f,h,d,p){if(l!==f||c!==h){var m=d.push(i(d)+"scale(",null,",",null,")");p.push({i:m-4,x:En(l,f)},{i:m-2,x:En(c,h)})}else(f!==1||h!==1)&&d.push(i(d)+"scale("+f+","+h+")")}return function(l,c){var f=[],h=[];return l=e(l),c=e(c),a(l.translateX,l.translateY,c.translateX,c.translateY,f,h),o(l.rotate,c.rotate,f,h),s(l.skewX,c.skewX,f,h),u(l.scaleX,l.scaleY,c.scaleX,c.scaleY,f,h),l=c=null,function(d){for(var p=-1,m=h.length,y;++p<m;)f[(y=h[p]).i]=y.x(d);return f.join("")}}}var B5=o2(T5,"px, ","px)","deg)"),D5=o2(I5,", ",")",")"),R5=1e-12;function s2(e){return((e=Math.exp(e))+1/e)/2}function F5(e){return((e=Math.exp(e))-1/e)/2}function M5(e){return((e=Math.exp(2*e))-1)/(e+1)}const P5=function e(t,n,r){function i(a,o){var s=a[0],u=a[1],l=a[2],c=o[0],f=o[1],h=o[2],d=c-s,p=f-u,m=d*d+p*p,y,w;if(m<R5)w=Math.log(h/l)/t,y=function(B){return[s+B*d,u+B*p,l*Math.exp(t*B*w)]};else{var x=Math.sqrt(m),S=(h*h-l*l+r*m)/(2*l*n*x),_=(h*h-l*l-r*m)/(2*h*n*x),T=Math.log(Math.sqrt(S*S+1)-S),I=Math.log(Math.sqrt(_*_+1)-_);w=(I-T)/t,y=function(B){var R=B*w,M=s2(T),H=l/(n*x)*(M*M5(t*R+T)-F5(T));return[s+H*d,u+H*p,l*M/s2(t*R+T)]}}return y.duration=w*1e3*t/Math.SQRT2,y}return i.rho=function(a){var o=Math.max(.001,+a),s=o*o,u=s*s;return e(o,s,u)},i}(Math.SQRT2,2,4);function l2(e){return function(t,n){var r=e((t=kd(t)).h,(n=kd(n)).h),i=ht(t.s,n.s),a=ht(t.l,n.l),o=ht(t.opacity,n.opacity);return function(s){return t.h=r(s),t.s=i(s),t.l=a(s),t.opacity=o(s),t+""}}}const L5=l2(Tc);var N5=l2(ht);function O5(e,t){var n=ht((e=Id(e)).l,(t=Id(t)).l),r=ht(e.a,t.a),i=ht(e.b,t.b),a=ht(e.opacity,t.opacity);return function(o){return e.l=n(o),e.a=r(o),e.b=i(o),e.opacity=a(o),e+""}}function u2(e){return function(t,n){var r=e((t=Md(t)).h,(n=Md(n)).h),i=ht(t.c,n.c),a=ht(t.l,n.l),o=ht(t.opacity,n.opacity);return function(s){return t.h=r(s),t.c=i(s),t.l=a(s),t.opacity=o(s),t+""}}}const z5=u2(Tc);var U5=u2(ht);function c2(e){return function t(n){n=+n;function r(i,a){var o=e((i=Nd(i)).h,(a=Nd(a)).h),s=ht(i.s,a.s),u=ht(i.l,a.l),l=ht(i.opacity,a.opacity);return function(c){return i.h=o(c),i.s=s(c),i.l=u(Math.pow(c,n)),i.opacity=l(c),i+""}}return r.gamma=t,r}(1)}const G5=c2(Tc);var H5=c2(ht);function Vd(e,t){t===void 0&&(t=e,e=Hr);for(var n=0,r=t.length-1,i=t[0],a=new Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return function(o){var s=Math.max(0,Math.min(r-1,Math.floor(o*=r)));return a[s](o-s)}}function V5(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}const j5=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Hr,interpolateArray:E5,interpolateBasis:Yb,interpolateBasisClosed:Qb,interpolateCubehelix:G5,interpolateCubehelixLong:H5,interpolateDate:t2,interpolateDiscrete:C5,interpolateHcl:z5,interpolateHclLong:U5,interpolateHsl:L5,interpolateHslLong:N5,interpolateHue:k5,interpolateLab:O5,interpolateNumber:En,interpolateNumberArray:zd,interpolateObject:n2,interpolateRgb:Od,interpolateRgbBasis:x5,interpolateRgbBasisClosed:A5,interpolateRound:Vs,interpolateString:r2,interpolateTransformCss:B5,interpolateTransformSvg:D5,interpolateZoom:P5,piecewise:Vd,quantize:V5},Symbol.toStringTag,{value:"Module"}));function $5(e){return function(){return e}}function jd(e){return+e}var f2=[0,1];function Gt(e){return e}function $d(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:$5(isNaN(t)?NaN:.5)}function q5(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function W5(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=$d(i,r),a=n(o,a)):(r=$d(r,i),a=n(a,o)),function(s){return a(r(s))}}function Z5(e,t,n){var r=Math.min(e.length,t.length)-1,i=new Array(r),a=new Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)i[o]=$d(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(s){var u=Rr(e,s,1,r)-1;return a[u](i[u](s))}}function js(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Bc(){var e=f2,t=f2,n=Hr,r,i,a,o=Gt,s,u,l;function c(){var h=Math.min(e.length,t.length);return o!==Gt&&(o=q5(e[0],e[h-1])),s=h>2?Z5:W5,u=l=null,f}function f(h){return h==null||isNaN(h=+h)?a:(u||(u=s(e.map(r),t,n)))(r(o(h)))}return f.invert=function(h){return o(i((l||(l=s(t,e.map(r),En)))(h)))},f.domain=function(h){return arguments.length?(e=Array.from(h,jd),c()):e.slice()},f.range=function(h){return arguments.length?(t=Array.from(h),c()):t.slice()},f.rangeRound=function(h){return t=Array.from(h),n=Vs,c()},f.clamp=function(h){return arguments.length?(o=h?!0:Gt,c()):o!==Gt},f.interpolate=function(h){return arguments.length?(n=h,c()):n},f.unknown=function(h){return arguments.length?(a=h,f):a},function(h,d){return r=h,i=d,c()}}function h2(){return Bc()(Gt,Gt)}function d2(e,t,n,r){var i=Fr(e,t,n),a;switch(r=Mr(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=p1(i,o))&&(r.precision=a),Yh(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=g1(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=d1(i))&&(r.precision=a-(r.type==="%")*2);break}}return mt(r)}function Vi(e){var t=e.domain;return e.ticks=function(n){var r=t();return Xu(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return d2(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],u,l,c=10;for(s<o&&(l=o,o=s,s=l,l=i,i=a,a=l);c-- >0;){if(l=Wh(o,s,n),l===u)return r[i]=o,r[a]=s,t(r);if(l>0)o=Math.floor(o/l)*l,s=Math.ceil(s/l)*l;else if(l<0)o=Math.ceil(o*l)/l,s=Math.floor(s*l)/l;else break;u=l}return e},e}function p2(){var e=h2();return e.copy=function(){return js(e,p2())},On.apply(e,arguments),Vi(e)}function g2(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,jd),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return g2(e).unknown(t)},e=arguments.length?Array.from(e,jd):[0,1],Vi(n)}function m2(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return a<i&&(o=n,n=r,r=o,o=i,i=a,a=o),e[n]=t.floor(i),e[r]=t.ceil(a),e}function b2(e){return Math.log(e)}function y2(e){return Math.exp(e)}function Y5(e){return-Math.log(-e)}function Q5(e){return-Math.exp(-e)}function X5(e){return isFinite(e)?+("1e"+e):e<0?0:e}function K5(e){return e===10?X5:e===Math.E?Math.exp:t=>Math.pow(e,t)}function J5(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function w2(e){return(t,n)=>-e(-t,n)}function qd(e){const t=e(b2,y2),n=t.domain;let r=10,i,a;function o(){return i=J5(r),a=K5(r),n()[0]<0?(i=w2(i),a=w2(a),e(Y5,Q5)):e(b2,y2),t}return t.base=function(s){return arguments.length?(r=+s,o()):r},t.domain=function(s){return arguments.length?(n(s),o()):n()},t.ticks=s=>{const u=n();let l=u[0],c=u[u.length-1];const f=c<l;f&&([l,c]=[c,l]);let h=i(l),d=i(c),p,m;const y=s==null?10:+s;let w=[];if(!(r%1)&&d-h<y){if(h=Math.floor(h),d=Math.ceil(d),l>0){for(;h<=d;++h)for(p=1;p<r;++p)if(m=h<0?p/a(-h):p*a(h),!(m<l)){if(m>c)break;w.push(m)}}else for(;h<=d;++h)for(p=r-1;p>=1;--p)if(m=h>0?p/a(-h):p*a(h),!(m<l)){if(m>c)break;w.push(m)}w.length*2<y&&(w=Xu(l,c,y))}else w=Xu(h,d,Math.min(d-h,y)).map(a);return f?w.reverse():w},t.tickFormat=(s,u)=>{if(s==null&&(s=10),u==null&&(u=r===10?"s":","),typeof u!="function"&&(!(r%1)&&(u=Mr(u)).precision==null&&(u.trim=!0),u=mt(u)),s===1/0)return u;const l=Math.max(1,r*s/t.ticks().length);return c=>{let f=c/a(Math.round(i(c)));return f*r<r-.5&&(f*=r),f<=l?u(c):""}},t.nice=()=>n(m2(n(),{floor:s=>a(Math.floor(i(s))),ceil:s=>a(Math.ceil(i(s)))})),t}function Wd(){const e=qd(Bc()).domain([1,10]);return e.copy=()=>js(e,Wd()).base(e.base()),On.apply(e,arguments),e}function v2(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function x2(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Zd(e){var t=1,n=e(v2(t),x2(t));return n.constant=function(r){return arguments.length?e(v2(t=+r),x2(t)):t},Vi(n)}function A2(){var e=Zd(Bc());return e.copy=function(){return js(e,A2()).constant(e.constant())},On.apply(e,arguments)}function E2(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function ek(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function tk(e){return e<0?-e*e:e*e}function Yd(e){var t=e(Gt,Gt),n=1;function r(){return n===1?e(Gt,Gt):n===.5?e(ek,tk):e(E2(n),E2(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},Vi(t)}function Qd(){var e=Yd(Bc());return e.copy=function(){return js(e,Qd()).exponent(e.exponent())},On.apply(e,arguments),e}function nk(){return Qd.apply(null,arguments).exponent(.5)}function _2(){var e=[],t=[],n=[],r;function i(){var o=0,s=Math.max(1,t.length);for(n=new Array(s-1);++o<s;)n[o-1]=o1(e,o/s);return a}function a(o){return o==null||isNaN(o=+o)?r:t[Rr(n,o)]}return a.invertExtent=function(o){var s=t.indexOf(o);return s<0?[NaN,NaN]:[s>0?n[s-1]:e[0],s<n.length?n[s]:e[e.length-1]]},a.domain=function(o){if(!arguments.length)return e.slice();e=[];for(let s of o)s!=null&&!isNaN(s=+s)&&e.push(s);return e.sort(os),i()},a.range=function(o){return arguments.length?(t=Array.from(o),i()):t.slice()},a.unknown=function(o){return arguments.length?(r=o,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return _2().domain(e).range(t).unknown(r)},On.apply(a,arguments)}function S2(){var e=0,t=1,n=1,r=[.5],i=[0,1],a;function o(u){return u!=null&&u<=u?i[Rr(r,u,0,n)]:a}function s(){var u=-1;for(r=new Array(n);++u<n;)r[u]=((u+1)*t-(u-n)*e)/(n+1);return o}return o.domain=function(u){return arguments.length?([e,t]=u,e=+e,t=+t,s()):[e,t]},o.range=function(u){return arguments.length?(n=(i=Array.from(u)).length-1,s()):i.slice()},o.invertExtent=function(u){var l=i.indexOf(u);return l<0?[NaN,NaN]:l<1?[e,r[0]]:l>=n?[r[n-1],t]:[r[l-1],r[l]]},o.unknown=function(u){return arguments.length&&(a=u),o},o.thresholds=function(){return r.slice()},o.copy=function(){return S2().domain([e,t]).range(i).unknown(a)},On.apply(Vi(o),arguments)}function C2(){var e=[.5],t=[0,1],n,r=1;function i(a){return a!=null&&a<=a?t[Rr(e,a,0,r)]:n}return i.domain=function(a){return arguments.length?(e=Array.from(a),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(a){return arguments.length?(t=Array.from(a),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(a){var o=t.indexOf(a);return[e[o-1],e[o]]},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return C2().domain(e).range(t).unknown(n)},On.apply(i,arguments)}function rk(e){return new Date(e)}function ik(e){return e instanceof Date?+e:+new Date(+e)}function Xd(e,t,n,r,i,a,o,s,u,l){var c=h2(),f=c.invert,h=c.domain,d=l(".%L"),p=l(":%S"),m=l("%I:%M"),y=l("%I %p"),w=l("%a %d"),x=l("%b %d"),S=l("%B"),_=l("%Y");function T(I){return(u(I)<I?d:s(I)<I?p:o(I)<I?m:a(I)<I?y:r(I)<I?i(I)<I?w:x:n(I)<I?S:_)(I)}return c.invert=function(I){return new Date(f(I))},c.domain=function(I){return arguments.length?h(Array.from(I,ik)):h().map(rk)},c.ticks=function(I){var B=h();return e(B[0],B[B.length-1],I??10)},c.tickFormat=function(I,B){return B==null?T:l(B)},c.nice=function(I){var B=h();return(!I||typeof I.range!="function")&&(I=t(B[0],B[B.length-1],I??10)),I?h(m2(B,I)):c},c.copy=function(){return js(c,Xd(e,t,n,r,i,a,o,s,u,l))},c}function ak(){return On.apply(Xd(LS,NS,Pn,cs,ls,Pr,rc,tc,lr,rd).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function ok(){return On.apply(Xd(MS,PS,Ln,fs,us,Ii,ic,nc,lr,id).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Dc(){var e=0,t=1,n,r,i,a,o=Gt,s=!1,u;function l(f){return f==null||isNaN(f=+f)?u:o(i===0?.5:(f=(a(f)-n)*i,s?Math.max(0,Math.min(1,f)):f))}l.domain=function(f){return arguments.length?([e,t]=f,n=a(e=+e),r=a(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(f){return arguments.length?(s=!!f,l):s},l.interpolator=function(f){return arguments.length?(o=f,l):o};function c(f){return function(h){var d,p;return arguments.length?([d,p]=h,o=f(d,p),l):[o(0),o(1)]}}return l.range=c(Hr),l.rangeRound=c(Vs),l.unknown=function(f){return arguments.length?(u=f,l):u},function(f){return a=f,n=f(e),r=f(t),i=n===r?0:1/(r-n),l}}function Vr(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function Kd(){var e=Vi(Dc()(Gt));return e.copy=function(){return Vr(e,Kd())},zr.apply(e,arguments)}function k2(){var e=qd(Dc()).domain([1,10]);return e.copy=function(){return Vr(e,k2()).base(e.base())},zr.apply(e,arguments)}function T2(){var e=Zd(Dc());return e.copy=function(){return Vr(e,T2()).constant(e.constant())},zr.apply(e,arguments)}function Jd(){var e=Yd(Dc());return e.copy=function(){return Vr(e,Jd()).exponent(e.exponent())},zr.apply(e,arguments)}function sk(){return Jd.apply(null,arguments).exponent(.5)}function Rc(){var e=0,t=.5,n=1,r=1,i,a,o,s,u,l=Gt,c,f=!1,h;function d(m){return isNaN(m=+m)?h:(m=.5+((m=+c(m))-a)*(r*m<r*a?s:u),l(f?Math.max(0,Math.min(1,m)):m))}d.domain=function(m){return arguments.length?([e,t,n]=m,i=c(e=+e),a=c(t=+t),o=c(n=+n),s=i===a?0:.5/(a-i),u=a===o?0:.5/(o-a),r=a<i?-1:1,d):[e,t,n]},d.clamp=function(m){return arguments.length?(f=!!m,d):f},d.interpolator=function(m){return arguments.length?(l=m,d):l};function p(m){return function(y){var w,x,S;return arguments.length?([w,x,S]=y,l=Vd(m,[w,x,S]),d):[l(0),l(.5),l(1)]}}return d.range=p(Hr),d.rangeRound=p(Vs),d.unknown=function(m){return arguments.length?(h=m,d):h},function(m){return c=m,i=m(e),a=m(t),o=m(n),s=i===a?0:.5/(a-i),u=a===o?0:.5/(o-a),r=a<i?-1:1,d}}function I2(){var e=Vi(Rc()(Gt));return e.copy=function(){return Vr(e,I2())},zr.apply(e,arguments)}function B2(){var e=qd(Rc()).domain([.1,1,10]);return e.copy=function(){return Vr(e,B2()).base(e.base())},zr.apply(e,arguments)}function D2(){var e=Zd(Rc());return e.copy=function(){return Vr(e,D2()).constant(e.constant())},zr.apply(e,arguments)}function e0(){var e=Yd(Rc());return e.copy=function(){return Vr(e,e0()).exponent(e.exponent())},zr.apply(e,arguments)}function lk(){return e0.apply(null,arguments).exponent(.5)}function t0(e,t,n){const r=e-t+n*2;return e?r>0?r:1:0}const uk="identity",Va="linear",jr="log",$s="pow",qs="sqrt",Fc="symlog",R2="time",F2="utc",Gn="sequential",ja="diverging",n0="quantile",M2="quantize",P2="threshold",r0="ordinal",i0="point",L2="band",a0="bin-ordinal",ot="continuous",Ws="discrete",Zs="discretizing",an="interpolating",N2="temporal";function ck(e){return function(t){let n=t[0],r=t[1],i;return r<n&&(i=n,n=r,r=i),[e.invert(n),e.invert(r)]}}function fk(e){return function(t){const n=e.range();let r=t[0],i=t[1],a=-1,o,s,u,l;for(i<r&&(s=r,r=i,i=s),u=0,l=n.length;u<l;++u)n[u]>=r&&n[u]<=i&&(a<0&&(a=u),o=u);if(!(a<0))return r=e.invertExtent(n[a]),i=e.invertExtent(n[o]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function o0(){const e=Sd().unknown(void 0),t=e.domain,n=e.range;let r=[0,1],i,a,o=!1,s=0,u=0,l=.5;delete e.unknown;function c(){const f=t().length,h=r[1]<r[0],d=r[1-h],p=t0(f,s,u);let m=r[h-0];i=(d-m)/(p||1),o&&(i=Math.floor(i)),m+=(d-m-i*(f-s))*l,a=i*(1-s),o&&(m=Math.round(m),a=Math.round(a));const y=ss(f).map(w=>m+i*w);return n(h?y.reverse():y)}return e.domain=function(f){return arguments.length?(t(f),c()):t()},e.range=function(f){return arguments.length?(r=[+f[0],+f[1]],c()):r.slice()},e.rangeRound=function(f){return r=[+f[0],+f[1]],o=!0,c()},e.bandwidth=function(){return a},e.step=function(){return i},e.round=function(f){return arguments.length?(o=!!f,c()):o},e.padding=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),s=u,c()):s},e.paddingInner=function(f){return arguments.length?(s=Math.max(0,Math.min(1,f)),c()):s},e.paddingOuter=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),c()):u},e.align=function(f){return arguments.length?(l=Math.max(0,Math.min(1,f)),c()):l},e.invertRange=function(f){if(f[0]==null||f[1]==null)return;const h=r[1]<r[0],d=h?n().reverse():n(),p=d.length-1;let m=+f[0],y=+f[1],w,x,S;if(!(m!==m||y!==y)&&(y<m&&(S=m,m=y,y=S),!(y<d[0]||m>r[1-h])))return w=Math.max(0,Rr(d,m)-1),x=m===y?w:Rr(d,y)-1,m-d[w]>a+1e-10&&++w,h&&(S=w,w=p-x,x=p-S),w>x?void 0:t().slice(w,x+1)},e.invert=function(f){const h=e.invertRange([f,f]);return h&&h[0]},e.copy=function(){return o0().domain(t()).range(r).round(o).paddingInner(s).paddingOuter(u).align(l)},c()}function O2(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return O2(t())},e}function hk(){return O2(o0().paddingInner(1))}var dk=Array.prototype.map;function pk(e){return dk.call(e,rs)}const gk=Array.prototype.slice;function z2(){let e=[],t=[];function n(r){return r==null||r!==r?void 0:t[(Rr(e,r)-1)%t.length]}return n.domain=function(r){return arguments.length?(e=pk(r),n):e.slice()},n.range=function(r){return arguments.length?(t=gk.call(r),n):t.slice()},n.tickFormat=function(r,i){return d2(e[0],vn(e),r??10,i)},n.copy=function(){return z2().domain(n.domain()).range(n.range())},n}const Mc=new Map,mk=Symbol("vega_scale");function bk(e){return e[mk]=!0,e}function yk(e,t,n){const r=function(){const a=t();return a.invertRange||(a.invertRange=a.invert?ck(a):a.invertExtent?fk(a):void 0),a.type=e,bk(a)};return r.metadata=Wu(Gh(n)),r}function _e(e,t,n){return arguments.length>1?(Mc.set(e,yk(e,t,n)),this):wk(e)?Mc.get(e):void 0}_e(uk,g2),_e(Va,p2,ot),_e(jr,Wd,[ot,jr]),_e($s,Qd,ot),_e(qs,nk,ot),_e(Fc,A2,ot),_e(R2,ak,[ot,N2]),_e(F2,ok,[ot,N2]),_e(Gn,Kd,[ot,an]),_e(`${Gn}-${Va}`,Kd,[ot,an]),_e(`${Gn}-${jr}`,k2,[ot,an,jr]),_e(`${Gn}-${$s}`,Jd,[ot,an]),_e(`${Gn}-${qs}`,sk,[ot,an]),_e(`${Gn}-${Fc}`,T2,[ot,an]),_e(`${ja}-${Va}`,I2,[ot,an]),_e(`${ja}-${jr}`,B2,[ot,an,jr]),_e(`${ja}-${$s}`,e0,[ot,an]),_e(`${ja}-${qs}`,lk,[ot,an]),_e(`${ja}-${Fc}`,D2,[ot,an]),_e(n0,_2,[Zs,n0]),_e(M2,S2,Zs),_e(P2,C2,Zs),_e(a0,z2,[Ws,Zs]),_e(r0,Sd,Ws),_e(L2,o0,Ws),_e(i0,hk,Ws);function wk(e){return Mc.has(e)}function Ys(e,t){const n=Mc.get(e);return n&&n.metadata[t]}function yt(e){return Ys(e,ot)}function Hn(e){return Ys(e,Ws)}function ji(e){return Ys(e,Zs)}function U2(e){return Ys(e,jr)}function Pc(e){return Ys(e,an)}function vk(e,t){const n=t[0],r=vn(t)-n;return function(i){return e(n+i*r)}}function Lc(e,t,n){return Vd(G2(t||"rgb",n),e)}function xk(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}function G2(e,t){const n=j5[Ak(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function Ak(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const Ek={blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"},_k={category10:"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf",category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5",accent:"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666",dark2:"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666",paired:"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928",pastel1:"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2",pastel2:"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc",set1:"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999",set2:"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3",set3:"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"};function H2(e){const t=e.length/6|0,n=new Array(t);for(let r=0;r<t;)n[r]="#"+e.slice(r*6,++r*6);return n}function V2(e,t){for(const n in e)s0(n,t(e[n]))}const j2={};V2(_k,H2),V2(Ek,e=>Lc(H2(e)));function s0(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(j2[e]=t,this):j2[e]}function Sk(){let e=0,t,n=0;const r=new Map,i=a=>(a===t||(n=r.get(a),n===void 0&&(n=e++,r.set(a,n)),t=a),n);return i.addAll=a=>{for(const o of a)i(o)},i.invert=a=>{for(const o of r.entries())if(o[1]==a)return o[0]},i.domain=()=>[...r.keys()],i}function Nc(){const e=t=>t;return e.invert=t=>t,e.copy=Nc,e.invertRange=()=>{},e.type="null",e}class Ck{constructor(t){Y(this,yi,void 0);Pt(this,"paramListeners");Y(this,zo,new Map);Y(this,Uo,new Map);Y(this,su,new Map);Y(this,lu,void 0);de(this,lu,t??(()=>{})),de(this,yi,new Map),this.paramListeners=new Map}registerParam(t){if("value"in t&&"expr"in t)throw new Error("Parameter must not have both value and expr: "+t.name);let n;if("value"in t)n=this.allocateSetter(t.name,t.value);else if("expr"in t){const r=this.createExpression(t.expr),i=this.allocateSetter(t.name,r(null));r.addListener(()=>i(r(null))),n=a=>{}}return G(this,su).set(t.name,t),n}allocateSetter(t,n,r=!1){if(G(this,zo).has(t))throw new Error("Setter already allocated for parameter: "+t);const i=a=>{const o=G(this,yi).get(t);if(a!==o){G(this,yi).set(t,a);const s=this.paramListeners.get(t);if(s&&!r)for(const u of s)u()}};return i(n),G(this,zo).set(t,i),i}getSetter(t){const n=G(this,zo).get(t);if(!n)throw new Error("Setter not found for parameter: "+t);return n}getValue(t){return G(this,yi).get(t)}findValue(t){const n=this.findMediatorForParam(t);return n==null?void 0:n.getValue(t)}get paramConfigs(){return G(this,su)}findMediatorForParam(t){var n;return G(this,yi).has(t)?this:(n=G(this,lu).call(this))==null?void 0:n.findMediatorForParam(t)}createExpression(t){if(G(this,Uo).has(t))return G(this,Uo).get(t);const n={},r=Sb(t,n),i=new Map;for(const o of r.globals){const s=this.findMediatorForParam(o);if(!s)throw new Error(`Unknown variable "${o}" in expression: ${t}`);i.set(o,s),Object.defineProperty(n,o,{enumerable:!0,get(){return s.getValue(o)}})}const a=new Set;return r.addListener=o=>{for(const[s,u]of i){const l=u.paramListeners.get(s)??new Set;u.paramListeners.set(s,l),l.add(o),a.add(o)}},r.invalidate=()=>{var o;for(const[s,u]of i)for(const l of a)(o=u.paramListeners.get(s))==null||o.delete(l)},r.identifier=()=>r.code,G(this,Uo).set(t,r),r}evaluateAndGet(t){return this.createExpression(t)()}}yi=new WeakMap,zo=new WeakMap,Uo=new WeakMap,su=new WeakMap,lu=new WeakMap;function It(e){return typeof e=="object"&&e!=null&&"expr"in e&&Ue(e.expr)}function Yt(e){if(It(e))throw new Error(`ExprRef ${JSON.stringify(e)} not allowed here. Expected a scalar value.`);return e}function Oc(e,t,n){const r={...t},i=[],a=o=>{i.push(o),i.length===1&&queueMicrotask(()=>{n(i.slice()),i.length=0})};for(const[o,s]of Object.entries(t))if(It(s)){const u=e.createExpression(s.expr);n&&u.addListener(()=>a(o)),Object.defineProperty(r,o,{enumerable:!0,get(){return u()}})}else r[o]=s;return r}function kk(e,t){const n={};t||(t=e.encoding);for(const[r,i]of Object.entries(t)){if(!i)continue;const a=((Qt(i)&&i.resolutionChannel)??(qa(r)&&r))||void 0,o=e.unitView.getScaleResolution(a);n[r]=Tk(e,t[r],o==null?void 0:o.scale,e.unitView.getAccessor(r),r)}return n}function Tk(e,t,n,r,i){let a;if(on(t))if(It(t.value)){const o=e.unitView.paramMediator.createExpression(t.value.expr);a=s=>o(null),a.constant=!0,a.constantValue=!1,a.accessor=r}else{const o=t.value;a=s=>o,a.constant=!0,a.constantValue=!0,a.accessor=void 0}else if(r)if(i=="text")a=o=>{},a.accessor=r,a.constant=r.constant;else{if(!n)if(!qa(i))n=Nc();else throw new Error(`Missing scale! "${i}": ${JSON.stringify(t)}`);if(a=o=>n(r(o)),Hn(n.type)){const o=Sk();o.addAll(n.domain()),a.indexer=o}a.constant=r.constant,a.accessor=r,a.scale=n}else throw new Error(`Missing value or accessor (field, expr, datum) on channel "${i}": ${JSON.stringify(t)}`);return a.invert=n?o=>n.invert(o):o=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(t))},a.channelDef=t,a.applyMetadata=o=>{for(const s in a)s in a&&(o[s]=a[s]);return o},a}function on(e){return e&&"value"in e}function $i(e){return e&&"field"in e}function Qs(e){return e&&"datum"in e}function Qt(e){return $i(e)||Qs(e)||zc(e)||$2(e)}function l0(e,t){const n=e.mark.encoding[t];if(Qt(n))return n;throw new Error("Not a channel def with scale!")}function $2(e){return e&&"chrom"in e}function zc(e){return e&&"expr"in e}const $a=["x","y"],Ik=["x2","y2"],Bk=[...$a,...Ik];function q2(e){return $a.includes(e)}function Xs(e){return Bk.includes(e)}const u0={x:"x2",y:"y2"},W2=Object.fromEntries(Object.entries(u0).map(e=>[e[1],e[0]]));function Ks(e){return e in W2}function Dk(e){const t=u0[e];if(t)return t;throw new Error(`${e} has no secondary channel!`)}function qi(e){return W2[e]??e}function $r(e){return["color","fill","stroke"].includes(qi(e))}function Uc(e){return["shape","squeeze"].includes(e)}function qa(e){return["x","y","x2","y2","color","fill","stroke","opacity","fillOpacity","strokeOpacity","strokeWidth","size","shape","angle","dx","dy","sample"].includes(e)}function Rk(e){switch(e){case"shape":return["circle","square","cross","diamond","triangle-up","triangle-right","triangle-down","triangle-left","tick-up","tick-right","tick-down","tick-left"]}}function Z2(e){if(!Uc(e))throw new Error("Not a discrete channel: "+e);const t=new Map(Rk(e).map((n,r)=>[n,r]));return n=>{const r=t.get(n);if(r!==void 0)return r;throw new Error(`Invalid value for "${e}" channel: ${n}`)}}function Me(e,t=e){if(/^[A-Za-z0-9_]+$/.test(e)){const n=new Function("datum",`return datum[${JSON.stringify(e)}]`);return Te(n,[e],t)}else return Gu(e)}class Fk{constructor(){this.accessorCreators=[],this.register(t=>{if($i(t))try{const n=Me(t.field);return n.constant=!1,n.fields=Uu(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(t=>zc(t)?Mk(t.expr):void 0),this.register(t=>{if(Qs(t)){const r=U4(t.datum);return r.constant=!0,r.fields=[],r}})}register(t){this.accessorCreators.push(t)}createAccessor(t){for(const n of this.accessorCreators){const r=n(t);if(r)return r}}}function Mk(e){const n=Sb(e);return n.constant=n.fields.length==0,n}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
224
+ `;function s8(e,t){var n=e.getBoundingClientRect();return[t.clientX-n.left-e.clientLeft,t.clientY-n.top-e.clientTop]}function Sd(e,t){return e.length==t.length&&e.every((n,r)=>e[r]===t[r])}function Nt(e){return Array.isArray(e)?e:typeof e<"u"?[e]:[]}function Ns(e){return e[e.length-1]}class l8{constructor(t){this.container=t,this.element=document.createElement("div"),this.element.className="tooltip",this._visible=!0,this.container.appendChild(this.element),this._previousTooltipDatum=void 0,this.enabledStack=[!0],this._penaltyUntil=0,this._lastCoords=void 0,this._previousMove=0,this.clear()}set visible(t){t!=this._visible&&(this.element.style.display=t?null:"none",this._visible=t)}get visible(){return this._visible}get enabled(){return Ns(this.enabledStack)??!0}pushEnabledState(t){this.enabledStack.push(t),t||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(t){this.mouseCoords=s8(this.container,t);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&u8(this.mouseCoords,this._lastCoords)>20&&(this._penaltyUntil=n+400),this._lastCoords=this.mouseCoords,this.visible&&this.updatePlacement(),this._previousMove=n}updatePlacement(){const[n,r]=this.mouseCoords;let i=n+20;i>this.container.clientWidth-this.element.offsetWidth&&(i=n-20-this.element.offsetWidth),this.element.style.left=i+"px",this.element.style.top=Math.min(r+20,this.container.clientHeight-this.element.offsetHeight)+"px"}setContent(t){if(!t||!this.enabled||this._isPenalty()){this.visible&&(Ls("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}Ls(t,this.element),this.visible=!0,this.updatePlacement()}clear(){this._previousTooltipDatum=void 0,this.setContent(void 0)}updateWithDatum(t,n){t!==this._previousTooltipDatum&&(this._previousTooltipDatum=t,n||(n=r=>Promise.resolve(Je` ${JSON.stringify(r)} `)),n(t).then(r=>this.setContent(r)).catch(r=>{if(r!=="debounced")throw r}))}_isPenalty(){return this._penaltyUntil&&this._penaltyUntil>performance.now()}}function u8(e,t){let n=0;for(let r=0;r<e.length;r++)n+=(e[r]-t[r])**2;return Math.sqrt(n)}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
227
225
  Available via the MIT license.
228
- see: http://github.com/greggman/twgl.js for details */const c0=5120,Js=5121,f0=5122,h0=5123,d0=5124,p0=5125,g0=5126,Pk=32819,Lk=32820,Nk=33635,Ok=5131,zk=33640,Uk=35899,Gk=35902,Hk=36269,Vk=34042,Y2={};{const e=Y2;e[c0]=Int8Array,e[Js]=Uint8Array,e[f0]=Int16Array,e[h0]=Uint16Array,e[d0]=Int32Array,e[p0]=Uint32Array,e[g0]=Float32Array,e[Pk]=Uint16Array,e[Lk]=Uint16Array,e[Nk]=Uint16Array,e[Ok]=Uint16Array,e[zk]=Uint32Array,e[Uk]=Uint32Array,e[Gk]=Uint32Array,e[Hk]=Uint32Array,e[Vk]=Uint32Array}function m0(e){if(e instanceof Int8Array)return c0;if(e instanceof Uint8Array||e instanceof Uint8ClampedArray)return Js;if(e instanceof Int16Array)return f0;if(e instanceof Uint16Array)return h0;if(e instanceof Int32Array)return d0;if(e instanceof Uint32Array)return p0;if(e instanceof Float32Array)return g0;throw new Error("unsupported typed array type")}function jk(e){if(e===Int8Array)return c0;if(e===Uint8Array||e===Uint8ClampedArray)return Js;if(e===Int16Array)return f0;if(e===Uint16Array)return h0;if(e===Int32Array)return d0;if(e===Uint32Array)return p0;if(e===Float32Array)return g0;throw new Error("unsupported typed array type")}function $k(e){const t=Y2[e];if(!t)throw new Error("unknown gl type");return t}const Gc=typeof SharedArrayBuffer<"u"?function(t){return t&&t.buffer&&(t.buffer instanceof ArrayBuffer||t.buffer instanceof SharedArrayBuffer)}:function(t){return t&&t.buffer&&t.buffer instanceof ArrayBuffer};function qk(...e){console.error(...e)}function Q2(...e){console.warn(...e)}function Wk(e,t){return typeof WebGLBuffer<"u"&&t instanceof WebGLBuffer}function X2(e,t){return typeof WebGLRenderbuffer<"u"&&t instanceof WebGLRenderbuffer}function Hc(e,t){return typeof WebGLTexture<"u"&&t instanceof WebGLTexture}function Zk(e,t){return typeof WebGLSampler<"u"&&t instanceof WebGLSampler}const K2=35044,Vn=34962,Yk=34963,Qk=34660,Xk=5120,Kk=5121,Jk=5122,eT=5123,tT=5124,nT=5125,rT=5126,J2={attribPrefix:""};function ey(e,t,n,r,i){e.bindBuffer(t,n),e.bufferData(t,r,i||K2)}function ty(e,t,n,r){if(Wk(e,t))return t;n=n||Vn;const i=e.createBuffer();return ey(e,n,i,t,r),i}function ny(e){return e==="indices"}function iT(e){return e instanceof Int8Array||e instanceof Uint8Array}function aT(e){return e===Int8Array||e===Uint8Array}function oT(e){return e.length?e:e.data}const sT=/coord|texture/i,lT=/color|colour/i;function ry(e,t){let n;if(sT.test(e)?n=2:lT.test(e)?n=4:n=3,t%n>0)throw new Error(`Can not guess numComponents for attribute '${e}'. Tried ${n} but ${t} values is not evenly divisible by ${n}. You should specify it.`);return n}function uT(e,t){return e.numComponents||e.size||ry(t,oT(e).length)}function b0(e,t){if(Gc(e))return e;if(Gc(e.data))return e.data;Array.isArray(e)&&(e={data:e});let n=e.type;return n||(ny(t)?n=Uint16Array:n=Float32Array),new n(e.data)}function cT(e,t){const n={};return Object.keys(t).forEach(function(r){if(!ny(r)){const i=t[r],a=i.attrib||i.name||i.attribName||J2.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!Gc(i.value))throw new Error("array.value is not array or typedarray");n[a]={value:i.value}}else{let o,s,u,l;if(i.buffer&&i.buffer instanceof WebGLBuffer)o=i.buffer,l=i.numComponents||i.size,s=i.type,u=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const c=i.data||i,f=i.type||Float32Array,h=c*f.BYTES_PER_ELEMENT;s=jk(f),u=i.normalize!==void 0?i.normalize:aT(f),l=i.numComponents||i.size||ry(r,c),o=e.createBuffer(),e.bindBuffer(Vn,o),e.bufferData(Vn,h,i.drawType||K2)}else{const c=b0(i,r);o=ty(e,c,void 0,i.drawType),s=m0(c),u=i.normalize!==void 0?i.normalize:iT(c),l=uT(i,r)}n[a]={buffer:o,numComponents:l,type:s,normalize:u,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),e.bindBuffer(Vn,null),n}function fT(e,t,n,r){n=b0(n),r!==void 0?(e.bindBuffer(Vn,t.buffer),e.bufferSubData(Vn,r,n)):ey(e,Vn,t.buffer,n,t.drawType)}function hT(e,t){return t===Xk||t===Kk?1:t===Jk||t===eT?2:t===tT||t===nT||t===rT?4:0}const y0=["position","positions","a_position"];function dT(e,t){let n,r;for(r=0;r<y0.length&&(n=y0[r],!(n in t||(n=J2.attribPrefix+n,n in t)));++r);r===y0.length&&(n=Object.keys(t)[0]);const i=t[n];e.bindBuffer(Vn,i.buffer);const a=e.getBufferParameter(Vn,Qk);e.bindBuffer(Vn,null);const o=hT(e,i.type),s=a/o,u=i.numComponents||i.size,l=s/u;if(l%1!==0)throw new Error(`numComponents ${u} not correct for length ${length}`);return l}function pT(e,t,n){const r=cT(e,t),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const a=t.indices;if(a){const o=b0(a,"indices");i.indices=ty(e,o,Yk),i.numElements=o.length,i.elementType=m0(o)}else i.numElements||(i.numElements=dT(e,i.attribs));return i}function Wa(e){return!!e.texStorage2D}const w0=function(){const e={},t={};function n(r){const i=r.constructor.name;if(!e[i]){for(const a in r)if(typeof r[a]=="number"){const o=t[r[a]];t[r[a]]=o?`${o} | ${a}`:a}e[i]=!0}}return function(i,a){return n(i),t[a]||(typeof a=="number"?`0x${a.toString(16)}`:a)}}(),qr={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},Za=Gc,iy=function(){let e;return function(){return e=e||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),e}}(),ay=6406,jn=6407,Ve=6408,oy=6409,sy=6410,el=6402,ly=34041,Vc=33071,gT=9728,mT=9729,fr=3553,hr=34067,Wr=32879,Zr=35866,jc=34069,bT=34070,yT=34071,wT=34072,vT=34073,xT=34074,v0=10241,x0=10240,$c=10242,qc=10243,uy=32882,AT=33082,ET=33083,_T=33084,ST=33085,A0=3317,cy=3314,fy=32878,hy=3316,dy=3315,py=32877,CT=37443,kT=37441,TT=37440,IT=33321,BT=36756,DT=33325,RT=33326,FT=33330,MT=33329,PT=33338,LT=33337,NT=33340,OT=33339,zT=33323,UT=36757,GT=33327,HT=33328,VT=33336,jT=33335,$T=33332,qT=33331,WT=33334,ZT=33333,YT=32849,QT=35905,XT=36194,KT=36758,JT=35898,eI=35901,tI=34843,nI=34837,rI=36221,iI=36239,aI=36215,oI=36233,sI=36209,lI=36227,uI=32856,cI=35907,fI=36759,hI=32855,dI=32854,pI=32857,gI=34842,mI=34836,bI=36220,yI=36238,wI=36975,vI=36214,xI=36232,AI=36226,EI=36208,_I=33189,SI=33190,CI=36012,kI=36013,TI=35056,Yr=5120,je=5121,Wc=5122,Ya=5123,Zc=5124,Wi=5125,_t=5126,gy=32819,my=32820,by=33635,_n=5131,tl=36193,E0=33640,II=35899,BI=35902,DI=36269,RI=34042,Yc=33319,Qa=33320,Qc=6403,Xa=36244,Ka=36248,Zi=36249;let _0;function Xc(e){if(!_0){const t={};t[ay]={textureFormat:ay,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[je,_n,tl,_t]},t[oy]={textureFormat:oy,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[je,_n,tl,_t]},t[sy]={textureFormat:sy,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[je,_n,tl,_t]},t[jn]={textureFormat:jn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[je,_n,tl,_t,by]},t[Ve]={textureFormat:Ve,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[je,_n,tl,_t,gy,my]},t[el]={textureFormat:el,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Wi,Ya]},t[IT]={textureFormat:Qc,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[je]},t[BT]={textureFormat:Qc,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[Yr]},t[DT]={textureFormat:Qc,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[_t,_n]},t[RT]={textureFormat:Qc,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[_t]},t[FT]={textureFormat:Xa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[je]},t[MT]={textureFormat:Xa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Yr]},t[$T]={textureFormat:Xa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ya]},t[qT]={textureFormat:Xa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Wc]},t[WT]={textureFormat:Xa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Wi]},t[ZT]={textureFormat:Xa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Zc]},t[zT]={textureFormat:Yc,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[je]},t[UT]={textureFormat:Yc,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[Yr]},t[GT]={textureFormat:Yc,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[_t,_n]},t[HT]={textureFormat:Yc,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[_t]},t[VT]={textureFormat:Qa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[je]},t[jT]={textureFormat:Qa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Yr]},t[PT]={textureFormat:Qa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ya]},t[LT]={textureFormat:Qa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Wc]},t[NT]={textureFormat:Qa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Wi]},t[OT]={textureFormat:Qa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Zc]},t[YT]={textureFormat:jn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[je]},t[QT]={textureFormat:jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[je]},t[XT]={textureFormat:jn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[je,by]},t[KT]={textureFormat:jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Yr]},t[JT]={textureFormat:jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[_t,_n,II]},t[eI]={textureFormat:jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[_t,_n,BI]},t[tI]={textureFormat:jn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[_t,_n]},t[nI]={textureFormat:jn,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[_t]},t[rI]={textureFormat:Ka,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[je]},t[iI]={textureFormat:Ka,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Yr]},t[aI]={textureFormat:Ka,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Ya]},t[oI]={textureFormat:Ka,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Wc]},t[sI]={textureFormat:Ka,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Wi]},t[lI]={textureFormat:Ka,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Zc]},t[uI]={textureFormat:Ve,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[je]},t[cI]={textureFormat:Ve,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[je]},t[fI]={textureFormat:Ve,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[Yr]},t[hI]={textureFormat:Ve,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[je,my,E0]},t[dI]={textureFormat:Ve,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[je,gy]},t[pI]={textureFormat:Ve,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[E0]},t[gI]={textureFormat:Ve,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[_t,_n]},t[mI]={textureFormat:Ve,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[_t]},t[bI]={textureFormat:Zi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[je]},t[yI]={textureFormat:Zi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Yr]},t[wI]={textureFormat:Zi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[E0]},t[vI]={textureFormat:Zi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ya]},t[xI]={textureFormat:Zi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Wc]},t[AI]={textureFormat:Zi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Zc]},t[EI]={textureFormat:Zi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Wi]},t[_I]={textureFormat:el,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Ya,Wi]},t[SI]={textureFormat:el,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Wi]},t[CI]={textureFormat:el,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[_t]},t[TI]={textureFormat:ly,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[RI]},t[kI]={textureFormat:ly,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[DI]},Object.keys(t).forEach(function(n){const r=t[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,a){const o=r.type[a];r.bytesPerElementMap[o]=i})}),_0=t}return _0[e]}function FI(e,t){const n=Xc(e);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[t];if(r===void 0)throw"unknown internal format";return r}function Ja(e){const t=Xc(e);if(!t)throw"unknown internal format";return{format:t.textureFormat,type:t.type[0]}}function yy(e){return(e&e-1)===0}function MI(e,t,n,r){if(!Wa(e))return yy(t)&&yy(n);const i=Xc(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function PI(e){const t=Xc(e);if(!t)throw"unknown internal format";return t.textureFilterable}function wy(e,t,n){return Za(t)?m0(t):n||je}function Kc(e,t,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const a=Math.sqrt(i/(t===hr?6:1));a%1===0?(n=a,r=a):(n=i,r=1)}else if(r){if(!n&&(n=i/r,n%1))throw"can't guess dimensions"}else if(r=i/n,r%1)throw"can't guess dimensions";return{width:n,height:r}}function eo(e,t){t.colorspaceConversion!==void 0&&e.pixelStorei(CT,t.colorspaceConversion),t.premultiplyAlpha!==void 0&&e.pixelStorei(kT,t.premultiplyAlpha),t.flipY!==void 0&&e.pixelStorei(TT,t.flipY)}function vy(e){e.pixelStorei(A0,4),Wa(e)&&(e.pixelStorei(cy,0),e.pixelStorei(fy,0),e.pixelStorei(hy,0),e.pixelStorei(dy,0),e.pixelStorei(py,0))}function LI(e,t,n,r){r.minMag&&(n.call(e,t,v0,r.minMag),n.call(e,t,x0,r.minMag)),r.min&&n.call(e,t,v0,r.min),r.mag&&n.call(e,t,x0,r.mag),r.wrap&&(n.call(e,t,$c,r.wrap),n.call(e,t,qc,r.wrap),(t===Wr||Zk(e,t))&&n.call(e,t,uy,r.wrap)),r.wrapR&&n.call(e,t,uy,r.wrapR),r.wrapS&&n.call(e,t,$c,r.wrapS),r.wrapT&&n.call(e,t,qc,r.wrapT),r.minLod&&n.call(e,t,AT,r.minLod),r.maxLod&&n.call(e,t,ET,r.maxLod),r.baseLevel&&n.call(e,t,_T,r.baseLevel),r.maxLevel&&n.call(e,t,ST,r.maxLevel)}function xy(e,t,n){const r=n.target||fr;e.bindTexture(r,t),LI(e,r,e.texParameteri,n)}function NI(e){return e=e||qr.textureColor,Za(e)?e:new Uint8Array([e[0]*255,e[1]*255,e[2]*255,e[3]*255])}function S0(e,t,n,r,i,a){n=n||qr.textureOptions,a=a||Ve;const o=n.target||fr;if(r=r||n.width,i=i||n.height,e.bindTexture(o,t),MI(e,r,i,a))e.generateMipmap(o);else{const s=PI(a)?mT:gT;e.texParameteri(o,v0,s),e.texParameteri(o,x0,s),e.texParameteri(o,$c,Vc),e.texParameteri(o,qc,Vc)}}function nl(e){return e.auto===!0||e.auto===void 0&&e.level===void 0}function C0(e,t){return t=t||{},t.cubeFaceOrder||[jc,bT,yT,wT,vT,xT]}function k0(e,t){const r=C0(e,t).map(function(i,a){return{face:i,ndx:a}});return r.sort(function(i,a){return i.face-a.face}),r}function Ay(e,t,n,r){r=r||qr.textureOptions;const i=r.target||fr,a=r.level||0;let o=n.width,s=n.height;const u=r.internalFormat||r.format||Ve,l=Ja(u),c=r.format||l.format,f=r.type||l.type;if(eo(e,r),e.bindTexture(i,t),i===hr){const h=n.width,d=n.height;let p,m;if(h/6===d)p=d,m=[0,0,1,0,2,0,3,0,4,0,5,0];else if(d/6===h)p=h,m=[0,0,0,1,0,2,0,3,0,4,0,5];else if(h/3===d/2)p=h/3,m=[0,0,1,0,2,0,0,1,1,1,2,1];else if(h/2===d/3)p=h/2,m=[0,0,1,0,0,1,1,1,0,2,1,2];else throw"can't figure out cube map from element: "+(n.src?n.src:n.nodeName);const y=iy();y?(y.canvas.width=p,y.canvas.height=p,o=p,s=p,k0(e,r).forEach(function(w){const x=m[w.ndx*2+0]*p,S=m[w.ndx*2+1]*p;y.drawImage(n,x,S,p,p,0,0,p,p),e.texImage2D(w.face,a,u,c,f,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(o=p,s=p,k0(e,r).forEach(function(w){const x=m[w.ndx*2+0]*p,S=m[w.ndx*2+1]*p;e.texImage2D(w.face,a,u,p,p,0,c,f,null),createImageBitmap(n,x,S,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(_){eo(e,r),e.bindTexture(i,t),e.texImage2D(w.face,a,u,c,f,_),nl(r)&&S0(e,t,r,o,s,u)})}))}else if(i===Wr||i===Zr){const h=Math.min(n.width,n.height),d=Math.max(n.width,n.height),p=d/h;if(p%1!==0)throw"can not compute 3D dimensions of element";const m=n.width===d?1:0,y=n.height===d?1:0;e.pixelStorei(A0,1),e.pixelStorei(cy,n.width),e.pixelStorei(fy,0),e.pixelStorei(py,0),e.texImage3D(i,a,u,h,h,h,0,c,f,null);for(let w=0;w<p;++w){const x=w*h*m,S=w*h*y;e.pixelStorei(hy,x),e.pixelStorei(dy,S),e.texSubImage3D(i,a,0,0,w,h,h,1,c,f,n)}vy(e)}else e.texImage2D(i,a,u,c,f,n);nl(r)&&S0(e,t,r,o,s,u),xy(e,t,r)}function rl(){}function OI(e){if(typeof document<"u"){const t=document.createElement("a");return t.href=e,t.hostname===location.hostname&&t.port===location.port&&t.protocol===location.protocol}else{const t=new URL(location.href).origin;return new URL(e,location.href).origin===t}}function zI(e,t){return t===void 0&&!OI(e)?"anonymous":t}function UI(e,t,n){n=n||rl;let r;if(t=t!==void 0?t:qr.crossOrigin,t=zI(e,t),typeof Image<"u"){r=new Image,t!==void 0&&(r.crossOrigin=t);const i=function(){r.removeEventListener("error",a),r.removeEventListener("load",o),r=null},a=function(){const u="couldn't load image: "+e;qk(u),n(u,r),i()},o=function(){n(null,r),i()};return r.addEventListener("error",a),r.addEventListener("load",o),r.src=e,r}else if(typeof ImageBitmap<"u"){let i,a;const o=function(){n(i,a)},s={};t&&(s.mode="cors"),fetch(e,s).then(function(u){if(!u.ok)throw u;return u.blob()}).then(function(u){return createImageBitmap(u,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(u){a=u,setTimeout(o)}).catch(function(u){i=u,setTimeout(o)}),r=null}return r}function Ey(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof ImageData<"u"&&e instanceof ImageData||typeof HTMLElement<"u"&&e instanceof HTMLElement}function T0(e,t,n){return Ey(e)?(setTimeout(function(){n(null,e)}),e):UI(e,t,n)}function I0(e,t,n){n=n||qr.textureOptions;const r=n.target||fr;if(e.bindTexture(r,t),n.color===!1)return;const i=NI(n.color);if(r===hr)for(let a=0;a<6;++a)e.texImage2D(jc+a,0,Ve,1,1,0,Ve,je,i);else r===Wr||r===Zr?e.texImage3D(r,0,Ve,1,1,1,0,Ve,je,i):e.texImage2D(r,0,Ve,1,1,0,Ve,je,i)}function GI(e,t,n,r){return r=r||rl,n=n||qr.textureOptions,I0(e,t,n),n=Object.assign({},n),T0(n.src,n.crossOrigin,function(a,o){a?r(a,t,o):(Ay(e,t,o,n),r(null,t,o))})}function HI(e,t,n,r){r=r||rl;const i=n.src;if(i.length!==6)throw"there must be 6 urls for a cubemap";const a=n.level||0,o=n.internalFormat||n.format||Ve,s=Ja(o),u=n.format||s.format,l=n.type||je,c=n.target||fr;if(c!==hr)throw"target must be TEXTURE_CUBE_MAP";I0(e,t,n),n=Object.assign({},n);let f=6;const h=[],d=C0(e,n);let p;function m(y){return function(w,x){--f,w?h.push(w):x.width!==x.height?h.push("cubemap face img is not a square: "+x.src):(eo(e,n),e.bindTexture(c,t),f===5?C0().forEach(function(S){e.texImage2D(S,a,o,u,l,x)}):e.texImage2D(y,a,o,u,l,x),nl(n)&&e.generateMipmap(c)),f===0&&r(h.length?h:void 0,t,p)}}p=i.map(function(y,w){return T0(y,n.crossOrigin,m(d[w]))})}function VI(e,t,n,r){r=r||rl;const i=n.src,a=n.internalFormat||n.format||Ve,o=Ja(a),s=n.format||o.format,u=n.type||je,l=n.target||Zr;if(l!==Wr&&l!==Zr)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";I0(e,t,n),n=Object.assign({},n);let c=i.length;const f=[];let h;const d=n.level||0;let p=n.width,m=n.height;const y=i.length;let w=!0;function x(S){return function(_,T){if(--c,_)f.push(_);else{if(eo(e,n),e.bindTexture(l,t),w){w=!1,p=n.width||T.width,m=n.height||T.height,e.texImage3D(l,d,a,p,m,y,0,s,u,null);for(let I=0;I<y;++I)e.texSubImage3D(l,d,0,0,I,p,m,1,s,u,T)}else{let I=T,B;(T.width!==p||T.height!==m)&&(B=iy(),I=B.canvas,B.canvas.width=p,B.canvas.height=m,B.drawImage(T,0,0,p,m)),e.texSubImage3D(l,d,0,0,S,p,m,1,s,u,I),B&&I===B.canvas&&(B.canvas.width=0,B.canvas.height=0)}nl(n)&&e.generateMipmap(l)}c===0&&r(f.length?f:void 0,t,h)}}h=i.map(function(S,_){return T0(S,n.crossOrigin,x(_))})}function _y(e,t,n,r){r=r||qr.textureOptions;const i=r.target||fr;e.bindTexture(i,t);let a=r.width,o=r.height,s=r.depth;const u=r.level||0,l=r.internalFormat||r.format||Ve,c=Ja(l),f=r.format||c.format,h=r.type||wy(e,n,c.type);if(Za(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=$k(h);n=new y(n)}const d=FI(l,h),p=n.byteLength/d;if(p%1)throw"length wrong size for format: "+w0(e,f);let m;if(i===Wr||i===Zr)if(!a&&!o&&!s){const y=Math.cbrt(p);if(y%1!==0)throw"can't guess cube size of array of numElements: "+p;a=y,o=y,s=y}else a&&(!o||!s)?(m=Kc(e,i,o,s,p/a),o=m.width,s=m.height):o&&(!a||!s)?(m=Kc(e,i,a,s,p/o),a=m.width,s=m.height):(m=Kc(e,i,a,o,p/s),a=m.width,o=m.height);else m=Kc(e,i,a,o,p),a=m.width,o=m.height;if(vy(e),e.pixelStorei(A0,r.unpackAlignment||1),eo(e,r),i===hr){const y=d/n.BYTES_PER_ELEMENT,w=p/6*y;k0(e,r).forEach(x=>{const S=w*x.ndx,_=n.subarray(S,S+w);e.texImage2D(x.face,u,l,a,o,0,f,h,_)})}else i===Wr||i===Zr?e.texImage3D(i,u,l,a,o,s,0,f,h,n):e.texImage2D(i,u,l,a,o,0,f,h,n);return{width:a,height:o,depth:s,type:h}}function jI(e,t,n){const r=n.target||fr;e.bindTexture(r,t);const i=n.level||0,a=n.internalFormat||n.format||Ve,o=Ja(a),s=n.format||o.format,u=n.type||o.type;if(eo(e,n),r===hr)for(let l=0;l<6;++l)e.texImage2D(jc+l,i,a,n.width,n.height,0,s,u,null);else r===Wr||r===Zr?e.texImage3D(r,i,a,n.width,n.height,n.depth,0,s,u,null):e.texImage2D(r,i,a,n.width,n.height,0,s,u,null)}function il(e,t,n){n=n||rl,t=t||qr.textureOptions;const r=e.createTexture(),i=t.target||fr;let a=t.width||1,o=t.height||1;const s=t.internalFormat||Ve;e.bindTexture(i,r),i===hr&&(e.texParameteri(i,$c,Vc),e.texParameteri(i,qc,Vc));let u=t.src;if(u)if(typeof u=="function"&&(u=u(e,t)),typeof u=="string")GI(e,r,t,n);else if(Za(u)||Array.isArray(u)&&(typeof u[0]=="number"||Array.isArray(u[0])||Za(u[0]))){const l=_y(e,r,u,t);a=l.width,o=l.height}else Array.isArray(u)&&(typeof u[0]=="string"||Ey(u[0]))?i===hr?HI(e,r,t,n):VI(e,r,t,n):(Ay(e,r,u,t),a=u.width,o=u.height);else jI(e,r,t);return nl(t)&&S0(e,r,t,a,o,s),xy(e,r,t),r}function $I(e,t,n,r,i,a){r=r||n.width,i=i||n.height,a=a||n.depth;const o=n.target||fr;e.bindTexture(o,t);const s=n.level||0,u=n.internalFormat||n.format||Ve,l=Ja(u),c=n.format||l.format;let f;const h=n.src;if(h&&(Za(h)||Array.isArray(h)&&typeof h[0]=="number")?f=n.type||wy(e,h,l.type):f=n.type||l.type,o===hr)for(let d=0;d<6;++d)e.texImage2D(jc+d,s,u,r,i,0,c,f,null);else o===Wr||o===Zr?e.texImage3D(o,s,u,r,i,a,0,c,f,null):e.texImage2D(o,s,u,r,i,0,c,f,null)}const qI=Q2,Jc=33984,WI=35048,ef=34962,ZI=34963,B0=35345,Sy=35718,YI=35721,QI=35971,XI=35382,KI=35396,JI=35398,eB=35392,tB=35395,tf=5126,Cy=35664,ky=35665,Ty=35666,D0=5124,Iy=35667,By=35668,Dy=35669,Ry=35670,Fy=35671,My=35672,Py=35673,Ly=35674,Ny=35675,Oy=35676,nB=35678,rB=35680,iB=35679,aB=35682,oB=35685,sB=35686,lB=35687,uB=35688,cB=35689,fB=35690,hB=36289,dB=36292,pB=36293,R0=5125,zy=36294,Uy=36295,Gy=36296,gB=36298,mB=36299,bB=36300,yB=36303,wB=36306,vB=36307,xB=36308,AB=36311,nf=3553,rf=34067,F0=32879,af=35866,le={};function Hy(e,t){return le[t].bindPoint}function EB(e,t){return function(n){e.uniform1f(t,n)}}function _B(e,t){return function(n){e.uniform1fv(t,n)}}function SB(e,t){return function(n){e.uniform2fv(t,n)}}function CB(e,t){return function(n){e.uniform3fv(t,n)}}function kB(e,t){return function(n){e.uniform4fv(t,n)}}function Vy(e,t){return function(n){e.uniform1i(t,n)}}function jy(e,t){return function(n){e.uniform1iv(t,n)}}function $y(e,t){return function(n){e.uniform2iv(t,n)}}function qy(e,t){return function(n){e.uniform3iv(t,n)}}function Wy(e,t){return function(n){e.uniform4iv(t,n)}}function TB(e,t){return function(n){e.uniform1ui(t,n)}}function IB(e,t){return function(n){e.uniform1uiv(t,n)}}function BB(e,t){return function(n){e.uniform2uiv(t,n)}}function DB(e,t){return function(n){e.uniform3uiv(t,n)}}function RB(e,t){return function(n){e.uniform4uiv(t,n)}}function FB(e,t){return function(n){e.uniformMatrix2fv(t,!1,n)}}function MB(e,t){return function(n){e.uniformMatrix3fv(t,!1,n)}}function PB(e,t){return function(n){e.uniformMatrix4fv(t,!1,n)}}function LB(e,t){return function(n){e.uniformMatrix2x3fv(t,!1,n)}}function NB(e,t){return function(n){e.uniformMatrix3x2fv(t,!1,n)}}function OB(e,t){return function(n){e.uniformMatrix2x4fv(t,!1,n)}}function zB(e,t){return function(n){e.uniformMatrix4x2fv(t,!1,n)}}function UB(e,t){return function(n){e.uniformMatrix3x4fv(t,!1,n)}}function GB(e,t){return function(n){e.uniformMatrix4x3fv(t,!1,n)}}function Bt(e,t,n,r){const i=Hy(e,t);return Wa(e)?function(a){let o,s;Hc(e,a)?(o=a,s=null):(o=a.texture,s=a.sampler),e.uniform1i(r,n),e.activeTexture(Jc+n),e.bindTexture(i,o),e.bindSampler(n,s)}:function(a){e.uniform1i(r,n),e.activeTexture(Jc+n),e.bindTexture(i,a)}}function Dt(e,t,n,r,i){const a=Hy(e,t),o=new Int32Array(i);for(let s=0;s<i;++s)o[s]=n+s;return Wa(e)?function(s){e.uniform1iv(r,o),s.forEach(function(u,l){e.activeTexture(Jc+o[l]);let c,f;Hc(e,u)?(c=u,f=null):(c=u.texture,f=u.sampler),e.bindSampler(n,f),e.bindTexture(a,c)})}:function(s){e.uniform1iv(r,o),s.forEach(function(u,l){e.activeTexture(Jc+o[l]),e.bindTexture(a,u)})}}le[tf]={Type:Float32Array,size:4,setter:EB,arraySetter:_B},le[Cy]={Type:Float32Array,size:8,setter:SB,cols:2},le[ky]={Type:Float32Array,size:12,setter:CB,cols:3},le[Ty]={Type:Float32Array,size:16,setter:kB,cols:4},le[D0]={Type:Int32Array,size:4,setter:Vy,arraySetter:jy},le[Iy]={Type:Int32Array,size:8,setter:$y,cols:2},le[By]={Type:Int32Array,size:12,setter:qy,cols:3},le[Dy]={Type:Int32Array,size:16,setter:Wy,cols:4},le[R0]={Type:Uint32Array,size:4,setter:TB,arraySetter:IB},le[zy]={Type:Uint32Array,size:8,setter:BB,cols:2},le[Uy]={Type:Uint32Array,size:12,setter:DB,cols:3},le[Gy]={Type:Uint32Array,size:16,setter:RB,cols:4},le[Ry]={Type:Uint32Array,size:4,setter:Vy,arraySetter:jy},le[Fy]={Type:Uint32Array,size:8,setter:$y,cols:2},le[My]={Type:Uint32Array,size:12,setter:qy,cols:3},le[Py]={Type:Uint32Array,size:16,setter:Wy,cols:4},le[Ly]={Type:Float32Array,size:32,setter:FB,rows:2,cols:2},le[Ny]={Type:Float32Array,size:48,setter:MB,rows:3,cols:3},le[Oy]={Type:Float32Array,size:64,setter:PB,rows:4,cols:4},le[oB]={Type:Float32Array,size:32,setter:LB,rows:2,cols:3},le[sB]={Type:Float32Array,size:32,setter:OB,rows:2,cols:4},le[lB]={Type:Float32Array,size:48,setter:NB,rows:3,cols:2},le[uB]={Type:Float32Array,size:48,setter:UB,rows:3,cols:4},le[cB]={Type:Float32Array,size:64,setter:zB,rows:4,cols:2},le[fB]={Type:Float32Array,size:64,setter:GB,rows:4,cols:3},le[nB]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:nf},le[rB]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:rf},le[iB]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:F0},le[aB]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:nf},le[hB]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:af},le[dB]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:af},le[pB]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:rf},le[gB]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:nf},le[mB]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:F0},le[bB]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:rf},le[yB]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:af},le[wB]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:nf},le[vB]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:F0},le[xB]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:rf},le[AB]={Type:null,size:0,setter:Bt,arraySetter:Dt,bindPoint:af};function of(e,t){return function(n){if(n.value)switch(e.disableVertexAttribArray(t),n.value.length){case 4:e.vertexAttrib4fv(t,n.value);break;case 3:e.vertexAttrib3fv(t,n.value);break;case 2:e.vertexAttrib2fv(t,n.value);break;case 1:e.vertexAttrib1fv(t,n.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else e.bindBuffer(ef,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribPointer(t,n.numComponents||n.size,n.type||tf,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Qr(e,t){return function(n){if(n.value)if(e.disableVertexAttribArray(t),n.value.length===4)e.vertexAttrib4iv(t,n.value);else throw new Error("The length of an integer constant value must be 4!");else e.bindBuffer(ef,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||D0,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function sf(e,t){return function(n){if(n.value)if(e.disableVertexAttribArray(t),n.value.length===4)e.vertexAttrib4uiv(t,n.value);else throw new Error("The length of an unsigned integer constant value must be 4!");else e.bindBuffer(ef,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||R0,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function M0(e,t,n){const r=n.size,i=n.count;return function(a){e.bindBuffer(ef,a.buffer);const o=a.size||a.numComponents||r,s=o/i,u=a.type||tf,c=le[u].size*o,f=a.normalize||!1,h=a.offset||0,d=c/i;for(let p=0;p<i;++p)e.enableVertexAttribArray(t+p),e.vertexAttribPointer(t+p,s,u,f,c,h+d*p),a.divisor!==void 0&&e.vertexAttribDivisor(t+p,a.divisor)}}const it={};it[tf]={size:4,setter:of},it[Cy]={size:8,setter:of},it[ky]={size:12,setter:of},it[Ty]={size:16,setter:of},it[D0]={size:4,setter:Qr},it[Iy]={size:8,setter:Qr},it[By]={size:12,setter:Qr},it[Dy]={size:16,setter:Qr},it[R0]={size:4,setter:sf},it[zy]={size:8,setter:sf},it[Uy]={size:12,setter:sf},it[Gy]={size:16,setter:sf},it[Ry]={size:4,setter:Qr},it[Fy]={size:8,setter:Qr},it[My]={size:12,setter:Qr},it[Py]={size:16,setter:Qr},it[Ly]={size:4,setter:M0,count:2},it[Ny]={size:9,setter:M0,count:3},it[Oy]={size:16,setter:M0,count:4};function Zy(e){const t=e.name;return t.startsWith("gl_")||t.startsWith("webgl_")}const HB=/(\.|\[|]|\w+)/g,VB=e=>e>="0"&&e<="9";function Yy(e,t,n,r){const i=e.split(HB).filter(s=>s!=="");let a=0,o="";for(;;){const s=i[a++];o+=s;const u=VB(s[0]),l=u?parseInt(s):s;if(u&&(o+=i[a++]),a===i.length){n[l]=t;break}else{const f=i[a++],h=f==="[",d=n[l]||(h?[]:{});n[l]=d,n=d,r[o]=r[o]||function(p){return function(m){ew(p,m)}}(d),o+=f}}}function jB(e,t){let n=0;function r(s,u,l){const c=u.name.endsWith("[0]"),f=u.type,h=le[f];if(!h)throw new Error(`unknown type: 0x${f.toString(16)}`);let d;if(h.bindPoint){const p=n;n+=u.size,c?d=h.arraySetter(e,f,p,l,u.size):d=h.setter(e,f,p,l,u.size)}else h.arraySetter&&c?d=h.arraySetter(e,l):d=h.setter(e,l);return d.location=l,d}const i={},a={},o=e.getProgramParameter(t,Sy);for(let s=0;s<o;++s){const u=e.getActiveUniform(t,s);if(Zy(u))continue;let l=u.name;l.endsWith("[0]")&&(l=l.substr(0,l.length-3));const c=e.getUniformLocation(t,u.name);if(c){const f=r(t,u,c);i[l]=f,Yy(l,f,a,i)}}return i}function $B(e,t){const n={},r=e.getProgramParameter(t,QI);for(let i=0;i<r;++i){const a=e.getTransformFeedbackVarying(t,i);n[a.name]={index:i,type:a.type,size:a.size}}return n}function qB(e,t){const n=e.getProgramParameter(t,Sy),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const u=e.getActiveUniform(t,s);r[s].name=u.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const u=s[0],l=s[1];e.getActiveUniforms(t,i,e[u]).forEach(function(c,f){r[f][l]=c})});const a={},o=e.getProgramParameter(t,XI);for(let s=0;s<o;++s){const u=e.getActiveUniformBlockName(t,s),l={index:e.getUniformBlockIndex(t,u),usedByVertexShader:e.getActiveUniformBlockParameter(t,s,KI),usedByFragmentShader:e.getActiveUniformBlockParameter(t,s,JI),size:e.getActiveUniformBlockParameter(t,s,eB),uniformIndices:e.getActiveUniformBlockParameter(t,s,tB)};l.used=l.usedByVertexShader||l.usedByFragmentShader,a[u]=l}return{blockSpecs:a,uniformData:r}}const Qy=/\[\d+\]\.$/,WB=(e,t)=>((e+(t-1))/t|0)*t;function ZB(e,t,n,r){if(t||n){r=r||1;const a=e.length/4;return function(o){let s=0,u=0;for(let l=0;l<a;++l){for(let c=0;c<r;++c)e[s++]=o[u++];s+=4-r}}}else return function(i){i.length?e.set(i):e[0]=i}}function YB(e,t,n,r){const i=n.blockSpecs,a=n.uniformData,o=i[r];if(!o)return qI("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(o.size),u=e.createBuffer(),l=o.index;e.bindBuffer(B0,u),e.uniformBlockBinding(t,o.index,l);let c=r+".";Qy.test(c)&&(c=c.replace(Qy,"."));const f={},h={},d={};return o.uniformIndices.forEach(function(p){const m=a[p];let y=m.name;y.startsWith(c)&&(y=y.substr(c.length));const w=y.endsWith("[0]");w&&(y=y.substr(0,y.length-3));const x=le[m.type],S=x.Type,_=w?WB(x.size,16)*m.size:x.size*m.size,T=new S(s,m.offset,_/S.BYTES_PER_ELEMENT);f[y]=T;const I=ZB(T,w,x.rows,x.cols);h[y]=I,Yy(y,I,d,h)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:u,uniforms:f,setters:h}}function Xy(e,t,n){return YB(e,t.program,t.uniformBlockSpec,n)}function Ky(e,t,n){const i=(t.uniformBlockSpec||t).blockSpecs[n.name];if(i){const a=i.index;return e.bindBufferRange(B0,a,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function Jy(e,t,n){Ky(e,t,n)&&e.bufferData(B0,n.array,WI)}function al(e,t){const n=e.setters;for(const r in t){const i=n[r];if(i){const a=t[r];i(a)}}}function ew(e,t){for(const n in t){const r=e[n];typeof r=="function"?r(t[n]):ew(e[n],t[n])}}function to(e,...t){const n=e.uniformSetters||e,r=t.length;for(let i=0;i<r;++i){const a=t[i];if(Array.isArray(a)){const o=a.length;for(let s=0;s<o;++s)to(n,a[s])}else for(const o in a){const s=n[o];s&&s(a[o])}}}function QB(e,t){const n={},r=e.getProgramParameter(t,YI);for(let i=0;i<r;++i){const a=e.getActiveAttrib(t,i);if(Zy(a))continue;const o=e.getAttribLocation(t,a.name),s=it[a.type],u=s.setter(e,o,s);u.location=o,n[a.name]=u}return n}function XB(e,t){for(const n in t){const r=e[n];r&&r(t[n])}}function Yi(e,t,n){n.vertexArrayObject?e.bindVertexArray(n.vertexArrayObject):(XB(t.attribSetters||t,n.attribs),n.indices&&e.bindBuffer(ZI,n.indices))}function KB(e,t){const n=jB(e,t),r=QB(e,t),i={program:t,uniformSetters:n,attribSetters:r};return Wa(e)&&(i.uniformBlockSpec=qB(e,t),i.transformFeedbackInfo=$B(e,t)),i}const JB=4,tw=5123;function lf(e,t,n,r,i,a){n=n===void 0?JB:n;const o=t.indices,s=t.elementType,u=r===void 0?t.numElements:r;i=i===void 0?0:i,s||o?a!==void 0?e.drawElementsInstanced(n,u,s===void 0?tw:t.elementType,i,a):e.drawElements(n,u,s===void 0?tw:t.elementType,i):a!==void 0?e.drawArraysInstanced(n,i,u,a):e.drawArrays(n,i,u)}const eD=36160,Qi=36161,tD=3553,nD=5121,rD=6402,iD=6408,aD=33190,oD=36012,sD=35056,lD=36013,uD=32854,cD=32855,fD=36194,nw=33189,rw=6401,iw=36168,P0=34041,hD=36064,uf=36096,aw=36128,L0=33306,N0=33071,O0=9729,ow=[{format:iD,type:nD,min:O0,wrap:N0},{format:P0}],Sn={};Sn[P0]=L0,Sn[rw]=aw,Sn[iw]=aw,Sn[rD]=uf,Sn[nw]=uf,Sn[aD]=uf,Sn[oD]=uf,Sn[sD]=L0,Sn[lD]=L0;function dD(e,t){return Sn[e]||Sn[t]}const Xr={};Xr[uD]=!0,Xr[cD]=!0,Xr[fD]=!0,Xr[P0]=!0,Xr[nw]=!0,Xr[rw]=!0,Xr[iw]=!0;function pD(e){return Xr[e]}function gD(e,t,n,r){const i=eD,a=e.createFramebuffer();e.bindFramebuffer(i,a),n=n||e.drawingBufferWidth,r=r||e.drawingBufferHeight,t=t||ow;let o=0;const s={framebuffer:a,attachments:[],width:n,height:r};return t.forEach(function(u){let l=u.attachment;const c=u.samples,f=u.format;let h=u.attachmentPoint||dD(f,u.internalFormat);if(h||(h=hD+o++),!l)if(c!==void 0||pD(f))l=e.createRenderbuffer(),e.bindRenderbuffer(Qi,l),c>1?e.renderbufferStorageMultisample(Qi,c,f,n,r):e.renderbufferStorage(Qi,f,n,r);else{const d=Object.assign({},u);d.width=n,d.height=r,d.auto===void 0&&(d.auto=!1,d.min=d.min||d.minMag||O0,d.mag=d.mag||d.minMag||O0,d.wrapS=d.wrapS||d.wrap||N0,d.wrapT=d.wrapT||d.wrap||N0),l=il(e,d)}if(X2(e,l))e.framebufferRenderbuffer(i,h,Qi,l);else if(Hc(e,l))u.layer!==void 0?e.framebufferTextureLayer(i,h,l,u.level||0,u.layer):e.framebufferTexture2D(i,h,u.target||tD,l,u.level||0);else throw new Error("unknown attachment type");s.attachments.push(l)}),s}function mD(e,t,n,r,i){r=r||e.drawingBufferWidth,i=i||e.drawingBufferHeight,t.width=r,t.height=i,n=n||ow,n.forEach(function(a,o){const s=t.attachments[o],u=a.format,l=a.samples;if(l!==void 0||X2(e,s))e.bindRenderbuffer(Qi,s),l>1?e.renderbufferStorageMultisample(Qi,l,u,r,i):e.renderbufferStorage(Qi,u,r,i);else if(Hc(e,s))$I(e,s,a,r,i);else throw new Error("unknown attachment type")})}function bD(e,t,n){const r=e.createVertexArray();return e.bindVertexArray(r),t.length||(t=[t]),t.forEach(function(i){Yi(e,i,n)}),e.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const yD=/^(.*?)_/;function wD(e,t){w0(e,0);const n=e.getExtension(t);if(n){const r={},i=yD.exec(t)[1],a="_"+i;for(const o in n){const s=n[o],u=typeof s=="function",l=u?i:a;let c=o;o.endsWith(l)&&(c=o.substring(0,o.length-l.length)),e[c]!==void 0?!u&&e[c]!==s&&Q2(c,e[c],s,o):u?e[c]=function(f){return function(){return f.apply(n,arguments)}}(s):(e[c]=s,r[c]=s)}r.constructor={name:n.constructor.name},w0(r,0)}return n}const sw=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_color_buffer_float","EXT_color_buffer_half_float","EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2","EXT_frag_depth","EXT_sRGB","EXT_shader_texture_lod","EXT_texture_filter_anisotropic","OES_element_index_uint","OES_standard_derivatives","OES_texture_float","OES_texture_float_linear","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_compressed_texture_atc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_pvrtc","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_depth_texture","WEBGL_draw_buffers"];function lw(e){for(let t=0;t<sw.length;++t)wD(e,sw[t])}function vD(e,t){const n=["webgl2","webgl","experimental-webgl"];let r=null;for(let i=0;i<n.length;++i)if(r=e.getContext(n[i],t),r){lw(r);break}return r}function xD(e,t){return vD(e,t)}const AD=`out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out float vHalfStrokeWidth;out vec4 vCornerRadii;
226
+ see: http://github.com/greggman/twgl.js for details */const Cd=5120,Os=5121,kd=5122,Td=5123,Id=5124,Bd=5125,Dd=5126,c8=32819,f8=32820,h8=33635,d8=5131,p8=33640,g8=35899,m8=35902,b8=36269,y8=34042,yb={};{const e=yb;e[Cd]=Int8Array,e[Os]=Uint8Array,e[kd]=Int16Array,e[Td]=Uint16Array,e[Id]=Int32Array,e[Bd]=Uint32Array,e[Dd]=Float32Array,e[c8]=Uint16Array,e[f8]=Uint16Array,e[h8]=Uint16Array,e[d8]=Uint16Array,e[p8]=Uint32Array,e[g8]=Uint32Array,e[m8]=Uint32Array,e[b8]=Uint32Array,e[y8]=Uint32Array}function Rd(e){if(e instanceof Int8Array)return Cd;if(e instanceof Uint8Array||e instanceof Uint8ClampedArray)return Os;if(e instanceof Int16Array)return kd;if(e instanceof Uint16Array)return Td;if(e instanceof Int32Array)return Id;if(e instanceof Uint32Array)return Bd;if(e instanceof Float32Array)return Dd;throw new Error("unsupported typed array type")}function w8(e){if(e===Int8Array)return Cd;if(e===Uint8Array||e===Uint8ClampedArray)return Os;if(e===Int16Array)return kd;if(e===Uint16Array)return Td;if(e===Int32Array)return Id;if(e===Uint32Array)return Bd;if(e===Float32Array)return Dd;throw new Error("unsupported typed array type")}function v8(e){const t=yb[e];if(!t)throw new Error("unknown gl type");return t}const Ec=typeof SharedArrayBuffer<"u"?function(t){return t&&t.buffer&&(t.buffer instanceof ArrayBuffer||t.buffer instanceof SharedArrayBuffer)}:function(t){return t&&t.buffer&&t.buffer instanceof ArrayBuffer};function x8(...e){console.error(...e)}function wb(...e){console.warn(...e)}function A8(e,t){return typeof WebGLBuffer<"u"&&t instanceof WebGLBuffer}function vb(e,t){return typeof WebGLRenderbuffer<"u"&&t instanceof WebGLRenderbuffer}function _c(e,t){return typeof WebGLTexture<"u"&&t instanceof WebGLTexture}function E8(e,t){return typeof WebGLSampler<"u"&&t instanceof WebGLSampler}const xb=35044,Nn=34962,_8=34963,S8=34660,C8=5120,k8=5121,T8=5122,I8=5123,B8=5124,D8=5125,R8=5126,Ab={attribPrefix:""};function Eb(e,t,n,r,i){e.bindBuffer(t,n),e.bufferData(t,r,i||xb)}function _b(e,t,n,r){if(A8(e,t))return t;n=n||Nn;const i=e.createBuffer();return Eb(e,n,i,t,r),i}function Sb(e){return e==="indices"}function F8(e){return e instanceof Int8Array||e instanceof Uint8Array}function M8(e){return e===Int8Array||e===Uint8Array}function P8(e){return e.length?e:e.data}const L8=/coord|texture/i,N8=/color|colour/i;function Cb(e,t){let n;if(L8.test(e)?n=2:N8.test(e)?n=4:n=3,t%n>0)throw new Error(`Can not guess numComponents for attribute '${e}'. Tried ${n} but ${t} values is not evenly divisible by ${n}. You should specify it.`);return n}function O8(e,t){return e.numComponents||e.size||Cb(t,P8(e).length)}function Fd(e,t){if(Ec(e))return e;if(Ec(e.data))return e.data;Array.isArray(e)&&(e={data:e});let n=e.type;return n||(Sb(t)?n=Uint16Array:n=Float32Array),new n(e.data)}function z8(e,t){const n={};return Object.keys(t).forEach(function(r){if(!Sb(r)){const i=t[r],o=i.attrib||i.name||i.attribName||Ab.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!Ec(i.value))throw new Error("array.value is not array or typedarray");n[o]={value:i.value}}else{let a,s,u,l;if(i.buffer&&i.buffer instanceof WebGLBuffer)a=i.buffer,l=i.numComponents||i.size,s=i.type,u=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const c=i.data||i,f=i.type||Float32Array,h=c*f.BYTES_PER_ELEMENT;s=w8(f),u=i.normalize!==void 0?i.normalize:M8(f),l=i.numComponents||i.size||Cb(r,c),a=e.createBuffer(),e.bindBuffer(Nn,a),e.bufferData(Nn,h,i.drawType||xb)}else{const c=Fd(i,r);a=_b(e,c,void 0,i.drawType),s=Rd(c),u=i.normalize!==void 0?i.normalize:F8(c),l=O8(i,r)}n[o]={buffer:a,numComponents:l,type:s,normalize:u,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),e.bindBuffer(Nn,null),n}function U8(e,t,n,r){n=Fd(n),r!==void 0?(e.bindBuffer(Nn,t.buffer),e.bufferSubData(Nn,r,n)):Eb(e,Nn,t.buffer,n,t.drawType)}function G8(e,t){return t===C8||t===k8?1:t===T8||t===I8?2:t===B8||t===D8||t===R8?4:0}const Md=["position","positions","a_position"];function H8(e,t){let n,r;for(r=0;r<Md.length&&(n=Md[r],!(n in t||(n=Ab.attribPrefix+n,n in t)));++r);r===Md.length&&(n=Object.keys(t)[0]);const i=t[n];e.bindBuffer(Nn,i.buffer);const o=e.getBufferParameter(Nn,S8);e.bindBuffer(Nn,null);const a=G8(e,i.type),s=o/a,u=i.numComponents||i.size,l=s/u;if(l%1!==0)throw new Error(`numComponents ${u} not correct for length ${length}`);return l}function V8(e,t,n){const r=z8(e,t),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const o=t.indices;if(o){const a=Fd(o,"indices");i.indices=_b(e,a,_8),i.numElements=a.length,i.elementType=Rd(a)}else i.numElements||(i.numElements=H8(e,i.attribs));return i}function $o(e){return!!e.texStorage2D}const Pd=function(){const e={},t={};function n(r){const i=r.constructor.name;if(!e[i]){for(const o in r)if(typeof r[o]=="number"){const a=t[r[o]];t[r[o]]=a?`${a} | ${o}`:o}e[i]=!0}}return function(i,o){return n(i),t[o]||(typeof o=="number"?`0x${o.toString(16)}`:o)}}(),zr={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},qo=Ec,kb=function(){let e;return function(){return e=e||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),e}}(),Tb=6406,On=6407,qe=6408,Ib=6409,Bb=6410,zs=6402,Db=34041,Sc=33071,j8=9728,$8=9729,cr=3553,fr=34067,Ur=32879,Gr=35866,Cc=34069,q8=34070,W8=34071,Z8=34072,Y8=34073,Q8=34074,Ld=10241,Nd=10240,kc=10242,Tc=10243,Rb=32882,X8=33082,K8=33083,J8=33084,e5=33085,Od=3317,Fb=3314,Mb=32878,Pb=3316,Lb=3315,Nb=32877,t5=37443,n5=37441,r5=37440,i5=33321,o5=36756,a5=33325,s5=33326,l5=33330,u5=33329,c5=33338,f5=33337,h5=33340,d5=33339,p5=33323,g5=36757,m5=33327,b5=33328,y5=33336,w5=33335,v5=33332,x5=33331,A5=33334,E5=33333,_5=32849,S5=35905,C5=36194,k5=36758,T5=35898,I5=35901,B5=34843,D5=34837,R5=36221,F5=36239,M5=36215,P5=36233,L5=36209,N5=36227,O5=32856,z5=35907,U5=36759,G5=32855,H5=32854,V5=32857,j5=34842,$5=34836,q5=36220,W5=36238,Z5=36975,Y5=36214,Q5=36232,X5=36226,K5=36208,J5=33189,ek=33190,tk=36012,nk=36013,rk=35056,Hr=5120,We=5121,Ic=5122,Wo=5123,Bc=5124,Ui=5125,At=5126,Ob=32819,zb=32820,Ub=33635,xn=5131,Us=36193,zd=33640,ik=35899,ok=35902,ak=36269,sk=34042,Dc=33319,Zo=33320,Rc=6403,Yo=36244,Qo=36248,Gi=36249;let Ud;function Fc(e){if(!Ud){const t={};t[Tb]={textureFormat:Tb,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[We,xn,Us,At]},t[Ib]={textureFormat:Ib,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[We,xn,Us,At]},t[Bb]={textureFormat:Bb,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[We,xn,Us,At]},t[On]={textureFormat:On,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[We,xn,Us,At,Ub]},t[qe]={textureFormat:qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[We,xn,Us,At,Ob,zb]},t[zs]={textureFormat:zs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Ui,Wo]},t[i5]={textureFormat:Rc,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[We]},t[o5]={textureFormat:Rc,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[Hr]},t[a5]={textureFormat:Rc,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[At,xn]},t[s5]={textureFormat:Rc,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[At]},t[l5]={textureFormat:Yo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[We]},t[u5]={textureFormat:Yo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Hr]},t[v5]={textureFormat:Yo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Wo]},t[x5]={textureFormat:Yo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ic]},t[A5]={textureFormat:Yo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ui]},t[E5]={textureFormat:Yo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Bc]},t[p5]={textureFormat:Dc,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[We]},t[g5]={textureFormat:Dc,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[Hr]},t[m5]={textureFormat:Dc,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[At,xn]},t[b5]={textureFormat:Dc,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[At]},t[y5]={textureFormat:Zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[We]},t[w5]={textureFormat:Zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Hr]},t[c5]={textureFormat:Zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Wo]},t[f5]={textureFormat:Zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ic]},t[h5]={textureFormat:Zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ui]},t[d5]={textureFormat:Zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Bc]},t[_5]={textureFormat:On,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[We]},t[S5]={textureFormat:On,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[We]},t[C5]={textureFormat:On,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[We,Ub]},t[k5]={textureFormat:On,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Hr]},t[T5]={textureFormat:On,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[At,xn,ik]},t[I5]={textureFormat:On,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[At,xn,ok]},t[B5]={textureFormat:On,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[At,xn]},t[D5]={textureFormat:On,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[At]},t[R5]={textureFormat:Qo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[We]},t[F5]={textureFormat:Qo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Hr]},t[M5]={textureFormat:Qo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Wo]},t[P5]={textureFormat:Qo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Ic]},t[L5]={textureFormat:Qo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Ui]},t[N5]={textureFormat:Qo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Bc]},t[O5]={textureFormat:qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[We]},t[z5]={textureFormat:qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[We]},t[U5]={textureFormat:qe,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[Hr]},t[G5]={textureFormat:qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[We,zb,zd]},t[H5]={textureFormat:qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[We,Ob]},t[V5]={textureFormat:qe,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[zd]},t[j5]={textureFormat:qe,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[At,xn]},t[$5]={textureFormat:qe,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[At]},t[q5]={textureFormat:Gi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[We]},t[W5]={textureFormat:Gi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Hr]},t[Z5]={textureFormat:Gi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[zd]},t[Y5]={textureFormat:Gi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Wo]},t[Q5]={textureFormat:Gi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ic]},t[X5]={textureFormat:Gi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Bc]},t[K5]={textureFormat:Gi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Ui]},t[J5]={textureFormat:zs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Wo,Ui]},t[ek]={textureFormat:zs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ui]},t[tk]={textureFormat:zs,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[At]},t[rk]={textureFormat:Db,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[sk]},t[nk]={textureFormat:Db,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ak]},Object.keys(t).forEach(function(n){const r=t[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,o){const a=r.type[o];r.bytesPerElementMap[a]=i})}),Ud=t}return Ud[e]}function lk(e,t){const n=Fc(e);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[t];if(r===void 0)throw"unknown internal format";return r}function Xo(e){const t=Fc(e);if(!t)throw"unknown internal format";return{format:t.textureFormat,type:t.type[0]}}function Gb(e){return(e&e-1)===0}function uk(e,t,n,r){if(!$o(e))return Gb(t)&&Gb(n);const i=Fc(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function ck(e){const t=Fc(e);if(!t)throw"unknown internal format";return t.textureFilterable}function Hb(e,t,n){return qo(t)?Rd(t):n||We}function Mc(e,t,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const o=Math.sqrt(i/(t===fr?6:1));o%1===0?(n=o,r=o):(n=i,r=1)}else if(r){if(!n&&(n=i/r,n%1))throw"can't guess dimensions"}else if(r=i/n,r%1)throw"can't guess dimensions";return{width:n,height:r}}function Ko(e,t){t.colorspaceConversion!==void 0&&e.pixelStorei(t5,t.colorspaceConversion),t.premultiplyAlpha!==void 0&&e.pixelStorei(n5,t.premultiplyAlpha),t.flipY!==void 0&&e.pixelStorei(r5,t.flipY)}function Vb(e){e.pixelStorei(Od,4),$o(e)&&(e.pixelStorei(Fb,0),e.pixelStorei(Mb,0),e.pixelStorei(Pb,0),e.pixelStorei(Lb,0),e.pixelStorei(Nb,0))}function fk(e,t,n,r){r.minMag&&(n.call(e,t,Ld,r.minMag),n.call(e,t,Nd,r.minMag)),r.min&&n.call(e,t,Ld,r.min),r.mag&&n.call(e,t,Nd,r.mag),r.wrap&&(n.call(e,t,kc,r.wrap),n.call(e,t,Tc,r.wrap),(t===Ur||E8(e,t))&&n.call(e,t,Rb,r.wrap)),r.wrapR&&n.call(e,t,Rb,r.wrapR),r.wrapS&&n.call(e,t,kc,r.wrapS),r.wrapT&&n.call(e,t,Tc,r.wrapT),r.minLod&&n.call(e,t,X8,r.minLod),r.maxLod&&n.call(e,t,K8,r.maxLod),r.baseLevel&&n.call(e,t,J8,r.baseLevel),r.maxLevel&&n.call(e,t,e5,r.maxLevel)}function jb(e,t,n){const r=n.target||cr;e.bindTexture(r,t),fk(e,r,e.texParameteri,n)}function hk(e){return e=e||zr.textureColor,qo(e)?e:new Uint8Array([e[0]*255,e[1]*255,e[2]*255,e[3]*255])}function Gd(e,t,n,r,i,o){n=n||zr.textureOptions,o=o||qe;const a=n.target||cr;if(r=r||n.width,i=i||n.height,e.bindTexture(a,t),uk(e,r,i,o))e.generateMipmap(a);else{const s=ck(o)?$8:j8;e.texParameteri(a,Ld,s),e.texParameteri(a,Nd,s),e.texParameteri(a,kc,Sc),e.texParameteri(a,Tc,Sc)}}function Gs(e){return e.auto===!0||e.auto===void 0&&e.level===void 0}function Hd(e,t){return t=t||{},t.cubeFaceOrder||[Cc,q8,W8,Z8,Y8,Q8]}function Vd(e,t){const r=Hd(e,t).map(function(i,o){return{face:i,ndx:o}});return r.sort(function(i,o){return i.face-o.face}),r}function $b(e,t,n,r){r=r||zr.textureOptions;const i=r.target||cr,o=r.level||0;let a=n.width,s=n.height;const u=r.internalFormat||r.format||qe,l=Xo(u),c=r.format||l.format,f=r.type||l.type;if(Ko(e,r),e.bindTexture(i,t),i===fr){const h=n.width,d=n.height;let p,m;if(h/6===d)p=d,m=[0,0,1,0,2,0,3,0,4,0,5,0];else if(d/6===h)p=h,m=[0,0,0,1,0,2,0,3,0,4,0,5];else if(h/3===d/2)p=h/3,m=[0,0,1,0,2,0,0,1,1,1,2,1];else if(h/2===d/3)p=h/2,m=[0,0,1,0,0,1,1,1,0,2,1,2];else throw"can't figure out cube map from element: "+(n.src?n.src:n.nodeName);const y=kb();y?(y.canvas.width=p,y.canvas.height=p,a=p,s=p,Vd(e,r).forEach(function(w){const A=m[w.ndx*2+0]*p,S=m[w.ndx*2+1]*p;y.drawImage(n,A,S,p,p,0,0,p,p),e.texImage2D(w.face,o,u,c,f,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(a=p,s=p,Vd(e,r).forEach(function(w){const A=m[w.ndx*2+0]*p,S=m[w.ndx*2+1]*p;e.texImage2D(w.face,o,u,p,p,0,c,f,null),createImageBitmap(n,A,S,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(_){Ko(e,r),e.bindTexture(i,t),e.texImage2D(w.face,o,u,c,f,_),Gs(r)&&Gd(e,t,r,a,s,u)})}))}else if(i===Ur||i===Gr){const h=Math.min(n.width,n.height),d=Math.max(n.width,n.height),p=d/h;if(p%1!==0)throw"can not compute 3D dimensions of element";const m=n.width===d?1:0,y=n.height===d?1:0;e.pixelStorei(Od,1),e.pixelStorei(Fb,n.width),e.pixelStorei(Mb,0),e.pixelStorei(Nb,0),e.texImage3D(i,o,u,h,h,h,0,c,f,null);for(let w=0;w<p;++w){const A=w*h*m,S=w*h*y;e.pixelStorei(Pb,A),e.pixelStorei(Lb,S),e.texSubImage3D(i,o,0,0,w,h,h,1,c,f,n)}Vb(e)}else e.texImage2D(i,o,u,c,f,n);Gs(r)&&Gd(e,t,r,a,s,u),jb(e,t,r)}function Hs(){}function dk(e){if(typeof document<"u"){const t=document.createElement("a");return t.href=e,t.hostname===location.hostname&&t.port===location.port&&t.protocol===location.protocol}else{const t=new URL(location.href).origin;return new URL(e,location.href).origin===t}}function pk(e,t){return t===void 0&&!dk(e)?"anonymous":t}function gk(e,t,n){n=n||Hs;let r;if(t=t!==void 0?t:zr.crossOrigin,t=pk(e,t),typeof Image<"u"){r=new Image,t!==void 0&&(r.crossOrigin=t);const i=function(){r.removeEventListener("error",o),r.removeEventListener("load",a),r=null},o=function(){const u="couldn't load image: "+e;x8(u),n(u,r),i()},a=function(){n(null,r),i()};return r.addEventListener("error",o),r.addEventListener("load",a),r.src=e,r}else if(typeof ImageBitmap<"u"){let i,o;const a=function(){n(i,o)},s={};t&&(s.mode="cors"),fetch(e,s).then(function(u){if(!u.ok)throw u;return u.blob()}).then(function(u){return createImageBitmap(u,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(u){o=u,setTimeout(a)}).catch(function(u){i=u,setTimeout(a)}),r=null}return r}function qb(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof ImageData<"u"&&e instanceof ImageData||typeof HTMLElement<"u"&&e instanceof HTMLElement}function jd(e,t,n){return qb(e)?(setTimeout(function(){n(null,e)}),e):gk(e,t,n)}function $d(e,t,n){n=n||zr.textureOptions;const r=n.target||cr;if(e.bindTexture(r,t),n.color===!1)return;const i=hk(n.color);if(r===fr)for(let o=0;o<6;++o)e.texImage2D(Cc+o,0,qe,1,1,0,qe,We,i);else r===Ur||r===Gr?e.texImage3D(r,0,qe,1,1,1,0,qe,We,i):e.texImage2D(r,0,qe,1,1,0,qe,We,i)}function mk(e,t,n,r){return r=r||Hs,n=n||zr.textureOptions,$d(e,t,n),n=Object.assign({},n),jd(n.src,n.crossOrigin,function(o,a){o?r(o,t,a):($b(e,t,a,n),r(null,t,a))})}function bk(e,t,n,r){r=r||Hs;const i=n.src;if(i.length!==6)throw"there must be 6 urls for a cubemap";const o=n.level||0,a=n.internalFormat||n.format||qe,s=Xo(a),u=n.format||s.format,l=n.type||We,c=n.target||cr;if(c!==fr)throw"target must be TEXTURE_CUBE_MAP";$d(e,t,n),n=Object.assign({},n);let f=6;const h=[],d=Hd(e,n);let p;function m(y){return function(w,A){--f,w?h.push(w):A.width!==A.height?h.push("cubemap face img is not a square: "+A.src):(Ko(e,n),e.bindTexture(c,t),f===5?Hd().forEach(function(S){e.texImage2D(S,o,a,u,l,A)}):e.texImage2D(y,o,a,u,l,A),Gs(n)&&e.generateMipmap(c)),f===0&&r(h.length?h:void 0,t,p)}}p=i.map(function(y,w){return jd(y,n.crossOrigin,m(d[w]))})}function yk(e,t,n,r){r=r||Hs;const i=n.src,o=n.internalFormat||n.format||qe,a=Xo(o),s=n.format||a.format,u=n.type||We,l=n.target||Gr;if(l!==Ur&&l!==Gr)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";$d(e,t,n),n=Object.assign({},n);let c=i.length;const f=[];let h;const d=n.level||0;let p=n.width,m=n.height;const y=i.length;let w=!0;function A(S){return function(_,k){if(--c,_)f.push(_);else{if(Ko(e,n),e.bindTexture(l,t),w){w=!1,p=n.width||k.width,m=n.height||k.height,e.texImage3D(l,d,o,p,m,y,0,s,u,null);for(let B=0;B<y;++B)e.texSubImage3D(l,d,0,0,B,p,m,1,s,u,k)}else{let B=k,I;(k.width!==p||k.height!==m)&&(I=kb(),B=I.canvas,I.canvas.width=p,I.canvas.height=m,I.drawImage(k,0,0,p,m)),e.texSubImage3D(l,d,0,0,S,p,m,1,s,u,B),I&&B===I.canvas&&(I.canvas.width=0,I.canvas.height=0)}Gs(n)&&e.generateMipmap(l)}c===0&&r(f.length?f:void 0,t,h)}}h=i.map(function(S,_){return jd(S,n.crossOrigin,A(_))})}function Wb(e,t,n,r){r=r||zr.textureOptions;const i=r.target||cr;e.bindTexture(i,t);let o=r.width,a=r.height,s=r.depth;const u=r.level||0,l=r.internalFormat||r.format||qe,c=Xo(l),f=r.format||c.format,h=r.type||Hb(e,n,c.type);if(qo(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=v8(h);n=new y(n)}const d=lk(l,h),p=n.byteLength/d;if(p%1)throw"length wrong size for format: "+Pd(e,f);let m;if(i===Ur||i===Gr)if(!o&&!a&&!s){const y=Math.cbrt(p);if(y%1!==0)throw"can't guess cube size of array of numElements: "+p;o=y,a=y,s=y}else o&&(!a||!s)?(m=Mc(e,i,a,s,p/o),a=m.width,s=m.height):a&&(!o||!s)?(m=Mc(e,i,o,s,p/a),o=m.width,s=m.height):(m=Mc(e,i,o,a,p/s),o=m.width,a=m.height);else m=Mc(e,i,o,a,p),o=m.width,a=m.height;if(Vb(e),e.pixelStorei(Od,r.unpackAlignment||1),Ko(e,r),i===fr){const y=d/n.BYTES_PER_ELEMENT,w=p/6*y;Vd(e,r).forEach(A=>{const S=w*A.ndx,_=n.subarray(S,S+w);e.texImage2D(A.face,u,l,o,a,0,f,h,_)})}else i===Ur||i===Gr?e.texImage3D(i,u,l,o,a,s,0,f,h,n):e.texImage2D(i,u,l,o,a,0,f,h,n);return{width:o,height:a,depth:s,type:h}}function wk(e,t,n){const r=n.target||cr;e.bindTexture(r,t);const i=n.level||0,o=n.internalFormat||n.format||qe,a=Xo(o),s=n.format||a.format,u=n.type||a.type;if(Ko(e,n),r===fr)for(let l=0;l<6;++l)e.texImage2D(Cc+l,i,o,n.width,n.height,0,s,u,null);else r===Ur||r===Gr?e.texImage3D(r,i,o,n.width,n.height,n.depth,0,s,u,null):e.texImage2D(r,i,o,n.width,n.height,0,s,u,null)}function Vs(e,t,n){n=n||Hs,t=t||zr.textureOptions;const r=e.createTexture(),i=t.target||cr;let o=t.width||1,a=t.height||1;const s=t.internalFormat||qe;e.bindTexture(i,r),i===fr&&(e.texParameteri(i,kc,Sc),e.texParameteri(i,Tc,Sc));let u=t.src;if(u)if(typeof u=="function"&&(u=u(e,t)),typeof u=="string")mk(e,r,t,n);else if(qo(u)||Array.isArray(u)&&(typeof u[0]=="number"||Array.isArray(u[0])||qo(u[0]))){const l=Wb(e,r,u,t);o=l.width,a=l.height}else Array.isArray(u)&&(typeof u[0]=="string"||qb(u[0]))?i===fr?bk(e,r,t,n):yk(e,r,t,n):($b(e,r,u,t),o=u.width,a=u.height);else wk(e,r,t);return Gs(t)&&Gd(e,r,t,o,a,s),jb(e,r,t),r}function vk(e,t,n,r,i,o){r=r||n.width,i=i||n.height,o=o||n.depth;const a=n.target||cr;e.bindTexture(a,t);const s=n.level||0,u=n.internalFormat||n.format||qe,l=Xo(u),c=n.format||l.format;let f;const h=n.src;if(h&&(qo(h)||Array.isArray(h)&&typeof h[0]=="number")?f=n.type||Hb(e,h,l.type):f=n.type||l.type,a===fr)for(let d=0;d<6;++d)e.texImage2D(Cc+d,s,u,r,i,0,c,f,null);else a===Ur||a===Gr?e.texImage3D(a,s,u,r,i,o,0,c,f,null):e.texImage2D(a,s,u,r,i,0,c,f,null)}const xk=wb,Pc=33984,Ak=35048,Lc=34962,Ek=34963,qd=35345,Zb=35718,_k=35721,Sk=35971,Ck=35382,kk=35396,Tk=35398,Ik=35392,Bk=35395,Nc=5126,Yb=35664,Qb=35665,Xb=35666,Wd=5124,Kb=35667,Jb=35668,e2=35669,t2=35670,n2=35671,r2=35672,i2=35673,o2=35674,a2=35675,s2=35676,Dk=35678,Rk=35680,Fk=35679,Mk=35682,Pk=35685,Lk=35686,Nk=35687,Ok=35688,zk=35689,Uk=35690,Gk=36289,Hk=36292,Vk=36293,Zd=5125,l2=36294,u2=36295,c2=36296,jk=36298,$k=36299,qk=36300,Wk=36303,Zk=36306,Yk=36307,Qk=36308,Xk=36311,Oc=3553,zc=34067,Yd=32879,Uc=35866,se={};function f2(e,t){return se[t].bindPoint}function Kk(e,t){return function(n){e.uniform1f(t,n)}}function Jk(e,t){return function(n){e.uniform1fv(t,n)}}function eT(e,t){return function(n){e.uniform2fv(t,n)}}function tT(e,t){return function(n){e.uniform3fv(t,n)}}function nT(e,t){return function(n){e.uniform4fv(t,n)}}function h2(e,t){return function(n){e.uniform1i(t,n)}}function d2(e,t){return function(n){e.uniform1iv(t,n)}}function p2(e,t){return function(n){e.uniform2iv(t,n)}}function g2(e,t){return function(n){e.uniform3iv(t,n)}}function m2(e,t){return function(n){e.uniform4iv(t,n)}}function rT(e,t){return function(n){e.uniform1ui(t,n)}}function iT(e,t){return function(n){e.uniform1uiv(t,n)}}function oT(e,t){return function(n){e.uniform2uiv(t,n)}}function aT(e,t){return function(n){e.uniform3uiv(t,n)}}function sT(e,t){return function(n){e.uniform4uiv(t,n)}}function lT(e,t){return function(n){e.uniformMatrix2fv(t,!1,n)}}function uT(e,t){return function(n){e.uniformMatrix3fv(t,!1,n)}}function cT(e,t){return function(n){e.uniformMatrix4fv(t,!1,n)}}function fT(e,t){return function(n){e.uniformMatrix2x3fv(t,!1,n)}}function hT(e,t){return function(n){e.uniformMatrix3x2fv(t,!1,n)}}function dT(e,t){return function(n){e.uniformMatrix2x4fv(t,!1,n)}}function pT(e,t){return function(n){e.uniformMatrix4x2fv(t,!1,n)}}function gT(e,t){return function(n){e.uniformMatrix3x4fv(t,!1,n)}}function mT(e,t){return function(n){e.uniformMatrix4x3fv(t,!1,n)}}function It(e,t,n,r){const i=f2(e,t);return $o(e)?function(o){let a,s;_c(e,o)?(a=o,s=null):(a=o.texture,s=o.sampler),e.uniform1i(r,n),e.activeTexture(Pc+n),e.bindTexture(i,a),e.bindSampler(n,s)}:function(o){e.uniform1i(r,n),e.activeTexture(Pc+n),e.bindTexture(i,o)}}function Bt(e,t,n,r,i){const o=f2(e,t),a=new Int32Array(i);for(let s=0;s<i;++s)a[s]=n+s;return $o(e)?function(s){e.uniform1iv(r,a),s.forEach(function(u,l){e.activeTexture(Pc+a[l]);let c,f;_c(e,u)?(c=u,f=null):(c=u.texture,f=u.sampler),e.bindSampler(n,f),e.bindTexture(o,c)})}:function(s){e.uniform1iv(r,a),s.forEach(function(u,l){e.activeTexture(Pc+a[l]),e.bindTexture(o,u)})}}se[Nc]={Type:Float32Array,size:4,setter:Kk,arraySetter:Jk},se[Yb]={Type:Float32Array,size:8,setter:eT,cols:2},se[Qb]={Type:Float32Array,size:12,setter:tT,cols:3},se[Xb]={Type:Float32Array,size:16,setter:nT,cols:4},se[Wd]={Type:Int32Array,size:4,setter:h2,arraySetter:d2},se[Kb]={Type:Int32Array,size:8,setter:p2,cols:2},se[Jb]={Type:Int32Array,size:12,setter:g2,cols:3},se[e2]={Type:Int32Array,size:16,setter:m2,cols:4},se[Zd]={Type:Uint32Array,size:4,setter:rT,arraySetter:iT},se[l2]={Type:Uint32Array,size:8,setter:oT,cols:2},se[u2]={Type:Uint32Array,size:12,setter:aT,cols:3},se[c2]={Type:Uint32Array,size:16,setter:sT,cols:4},se[t2]={Type:Uint32Array,size:4,setter:h2,arraySetter:d2},se[n2]={Type:Uint32Array,size:8,setter:p2,cols:2},se[r2]={Type:Uint32Array,size:12,setter:g2,cols:3},se[i2]={Type:Uint32Array,size:16,setter:m2,cols:4},se[o2]={Type:Float32Array,size:32,setter:lT,rows:2,cols:2},se[a2]={Type:Float32Array,size:48,setter:uT,rows:3,cols:3},se[s2]={Type:Float32Array,size:64,setter:cT,rows:4,cols:4},se[Pk]={Type:Float32Array,size:32,setter:fT,rows:2,cols:3},se[Lk]={Type:Float32Array,size:32,setter:dT,rows:2,cols:4},se[Nk]={Type:Float32Array,size:48,setter:hT,rows:3,cols:2},se[Ok]={Type:Float32Array,size:48,setter:gT,rows:3,cols:4},se[zk]={Type:Float32Array,size:64,setter:pT,rows:4,cols:2},se[Uk]={Type:Float32Array,size:64,setter:mT,rows:4,cols:3},se[Dk]={Type:null,size:0,setter:It,arraySetter:Bt,bindPoint:Oc},se[Rk]={Type:null,size:0,setter:It,arraySetter:Bt,bindPoint:zc},se[Fk]={Type:null,size:0,setter:It,arraySetter:Bt,bindPoint:Yd},se[Mk]={Type:null,size:0,setter:It,arraySetter:Bt,bindPoint:Oc},se[Gk]={Type:null,size:0,setter:It,arraySetter:Bt,bindPoint:Uc},se[Hk]={Type:null,size:0,setter:It,arraySetter:Bt,bindPoint:Uc},se[Vk]={Type:null,size:0,setter:It,arraySetter:Bt,bindPoint:zc},se[jk]={Type:null,size:0,setter:It,arraySetter:Bt,bindPoint:Oc},se[$k]={Type:null,size:0,setter:It,arraySetter:Bt,bindPoint:Yd},se[qk]={Type:null,size:0,setter:It,arraySetter:Bt,bindPoint:zc},se[Wk]={Type:null,size:0,setter:It,arraySetter:Bt,bindPoint:Uc},se[Zk]={Type:null,size:0,setter:It,arraySetter:Bt,bindPoint:Oc},se[Yk]={Type:null,size:0,setter:It,arraySetter:Bt,bindPoint:Yd},se[Qk]={Type:null,size:0,setter:It,arraySetter:Bt,bindPoint:zc},se[Xk]={Type:null,size:0,setter:It,arraySetter:Bt,bindPoint:Uc};function Gc(e,t){return function(n){if(n.value)switch(e.disableVertexAttribArray(t),n.value.length){case 4:e.vertexAttrib4fv(t,n.value);break;case 3:e.vertexAttrib3fv(t,n.value);break;case 2:e.vertexAttrib2fv(t,n.value);break;case 1:e.vertexAttrib1fv(t,n.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else e.bindBuffer(Lc,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribPointer(t,n.numComponents||n.size,n.type||Nc,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Vr(e,t){return function(n){if(n.value)if(e.disableVertexAttribArray(t),n.value.length===4)e.vertexAttrib4iv(t,n.value);else throw new Error("The length of an integer constant value must be 4!");else e.bindBuffer(Lc,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||Wd,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Hc(e,t){return function(n){if(n.value)if(e.disableVertexAttribArray(t),n.value.length===4)e.vertexAttrib4uiv(t,n.value);else throw new Error("The length of an unsigned integer constant value must be 4!");else e.bindBuffer(Lc,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||Zd,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Qd(e,t,n){const r=n.size,i=n.count;return function(o){e.bindBuffer(Lc,o.buffer);const a=o.size||o.numComponents||r,s=a/i,u=o.type||Nc,c=se[u].size*a,f=o.normalize||!1,h=o.offset||0,d=c/i;for(let p=0;p<i;++p)e.enableVertexAttribArray(t+p),e.vertexAttribPointer(t+p,s,u,f,c,h+d*p),o.divisor!==void 0&&e.vertexAttribDivisor(t+p,o.divisor)}}const it={};it[Nc]={size:4,setter:Gc},it[Yb]={size:8,setter:Gc},it[Qb]={size:12,setter:Gc},it[Xb]={size:16,setter:Gc},it[Wd]={size:4,setter:Vr},it[Kb]={size:8,setter:Vr},it[Jb]={size:12,setter:Vr},it[e2]={size:16,setter:Vr},it[Zd]={size:4,setter:Hc},it[l2]={size:8,setter:Hc},it[u2]={size:12,setter:Hc},it[c2]={size:16,setter:Hc},it[t2]={size:4,setter:Vr},it[n2]={size:8,setter:Vr},it[r2]={size:12,setter:Vr},it[i2]={size:16,setter:Vr},it[o2]={size:4,setter:Qd,count:2},it[a2]={size:9,setter:Qd,count:3},it[s2]={size:16,setter:Qd,count:4};function b2(e){const t=e.name;return t.startsWith("gl_")||t.startsWith("webgl_")}const bT=/(\.|\[|]|\w+)/g,yT=e=>e>="0"&&e<="9";function y2(e,t,n,r){const i=e.split(bT).filter(s=>s!=="");let o=0,a="";for(;;){const s=i[o++];a+=s;const u=yT(s[0]),l=u?parseInt(s):s;if(u&&(a+=i[o++]),o===i.length){n[l]=t;break}else{const f=i[o++],h=f==="[",d=n[l]||(h?[]:{});n[l]=d,n=d,r[a]=r[a]||function(p){return function(m){E2(p,m)}}(d),a+=f}}}function wT(e,t){let n=0;function r(s,u,l){const c=u.name.endsWith("[0]"),f=u.type,h=se[f];if(!h)throw new Error(`unknown type: 0x${f.toString(16)}`);let d;if(h.bindPoint){const p=n;n+=u.size,c?d=h.arraySetter(e,f,p,l,u.size):d=h.setter(e,f,p,l,u.size)}else h.arraySetter&&c?d=h.arraySetter(e,l):d=h.setter(e,l);return d.location=l,d}const i={},o={},a=e.getProgramParameter(t,Zb);for(let s=0;s<a;++s){const u=e.getActiveUniform(t,s);if(b2(u))continue;let l=u.name;l.endsWith("[0]")&&(l=l.substr(0,l.length-3));const c=e.getUniformLocation(t,u.name);if(c){const f=r(t,u,c);i[l]=f,y2(l,f,o,i)}}return i}function vT(e,t){const n={},r=e.getProgramParameter(t,Sk);for(let i=0;i<r;++i){const o=e.getTransformFeedbackVarying(t,i);n[o.name]={index:i,type:o.type,size:o.size}}return n}function xT(e,t){const n=e.getProgramParameter(t,Zb),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const u=e.getActiveUniform(t,s);r[s].name=u.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const u=s[0],l=s[1];e.getActiveUniforms(t,i,e[u]).forEach(function(c,f){r[f][l]=c})});const o={},a=e.getProgramParameter(t,Ck);for(let s=0;s<a;++s){const u=e.getActiveUniformBlockName(t,s),l={index:e.getUniformBlockIndex(t,u),usedByVertexShader:e.getActiveUniformBlockParameter(t,s,kk),usedByFragmentShader:e.getActiveUniformBlockParameter(t,s,Tk),size:e.getActiveUniformBlockParameter(t,s,Ik),uniformIndices:e.getActiveUniformBlockParameter(t,s,Bk)};l.used=l.usedByVertexShader||l.usedByFragmentShader,o[u]=l}return{blockSpecs:o,uniformData:r}}const w2=/\[\d+\]\.$/,AT=(e,t)=>((e+(t-1))/t|0)*t;function ET(e,t,n,r){if(t||n){r=r||1;const o=e.length/4;return function(a){let s=0,u=0;for(let l=0;l<o;++l){for(let c=0;c<r;++c)e[s++]=a[u++];s+=4-r}}}else return function(i){i.length?e.set(i):e[0]=i}}function _T(e,t,n,r){const i=n.blockSpecs,o=n.uniformData,a=i[r];if(!a)return xk("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(a.size),u=e.createBuffer(),l=a.index;e.bindBuffer(qd,u),e.uniformBlockBinding(t,a.index,l);let c=r+".";w2.test(c)&&(c=c.replace(w2,"."));const f={},h={},d={};return a.uniformIndices.forEach(function(p){const m=o[p];let y=m.name;y.startsWith(c)&&(y=y.substr(c.length));const w=y.endsWith("[0]");w&&(y=y.substr(0,y.length-3));const A=se[m.type],S=A.Type,_=w?AT(A.size,16)*m.size:A.size*m.size,k=new S(s,m.offset,_/S.BYTES_PER_ELEMENT);f[y]=k;const B=ET(k,w,A.rows,A.cols);h[y]=B,y2(y,B,d,h)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:u,uniforms:f,setters:h}}function v2(e,t,n){return _T(e,t.program,t.uniformBlockSpec,n)}function x2(e,t,n){const i=(t.uniformBlockSpec||t).blockSpecs[n.name];if(i){const o=i.index;return e.bindBufferRange(qd,o,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function A2(e,t,n){x2(e,t,n)&&e.bufferData(qd,n.array,Ak)}function js(e,t){const n=e.setters;for(const r in t){const i=n[r];if(i){const o=t[r];i(o)}}}function E2(e,t){for(const n in t){const r=e[n];typeof r=="function"?r(t[n]):E2(e[n],t[n])}}function Jo(e,...t){const n=e.uniformSetters||e,r=t.length;for(let i=0;i<r;++i){const o=t[i];if(Array.isArray(o)){const a=o.length;for(let s=0;s<a;++s)Jo(n,o[s])}else for(const a in o){const s=n[a];s&&s(o[a])}}}function ST(e,t){const n={},r=e.getProgramParameter(t,_k);for(let i=0;i<r;++i){const o=e.getActiveAttrib(t,i);if(b2(o))continue;const a=e.getAttribLocation(t,o.name),s=it[o.type],u=s.setter(e,a,s);u.location=a,n[o.name]=u}return n}function CT(e,t){for(const n in t){const r=e[n];r&&r(t[n])}}function Hi(e,t,n){n.vertexArrayObject?e.bindVertexArray(n.vertexArrayObject):(CT(t.attribSetters||t,n.attribs),n.indices&&e.bindBuffer(Ek,n.indices))}function kT(e,t){const n=wT(e,t),r=ST(e,t),i={program:t,uniformSetters:n,attribSetters:r};return $o(e)&&(i.uniformBlockSpec=xT(e,t),i.transformFeedbackInfo=vT(e,t)),i}const TT=4,_2=5123;function Vc(e,t,n,r,i,o){n=n===void 0?TT:n;const a=t.indices,s=t.elementType,u=r===void 0?t.numElements:r;i=i===void 0?0:i,s||a?o!==void 0?e.drawElementsInstanced(n,u,s===void 0?_2:t.elementType,i,o):e.drawElements(n,u,s===void 0?_2:t.elementType,i):o!==void 0?e.drawArraysInstanced(n,i,u,o):e.drawArrays(n,i,u)}const IT=36160,Vi=36161,BT=3553,DT=5121,RT=6402,FT=6408,MT=33190,PT=36012,LT=35056,NT=36013,OT=32854,zT=32855,UT=36194,S2=33189,C2=6401,k2=36168,Xd=34041,GT=36064,jc=36096,T2=36128,Kd=33306,Jd=33071,e0=9729,I2=[{format:FT,type:DT,min:e0,wrap:Jd},{format:Xd}],An={};An[Xd]=Kd,An[C2]=T2,An[k2]=T2,An[RT]=jc,An[S2]=jc,An[MT]=jc,An[PT]=jc,An[LT]=Kd,An[NT]=Kd;function HT(e,t){return An[e]||An[t]}const jr={};jr[OT]=!0,jr[zT]=!0,jr[UT]=!0,jr[Xd]=!0,jr[S2]=!0,jr[C2]=!0,jr[k2]=!0;function VT(e){return jr[e]}function jT(e,t,n,r){const i=IT,o=e.createFramebuffer();e.bindFramebuffer(i,o),n=n||e.drawingBufferWidth,r=r||e.drawingBufferHeight,t=t||I2;let a=0;const s={framebuffer:o,attachments:[],width:n,height:r};return t.forEach(function(u){let l=u.attachment;const c=u.samples,f=u.format;let h=u.attachmentPoint||HT(f,u.internalFormat);if(h||(h=GT+a++),!l)if(c!==void 0||VT(f))l=e.createRenderbuffer(),e.bindRenderbuffer(Vi,l),c>1?e.renderbufferStorageMultisample(Vi,c,f,n,r):e.renderbufferStorage(Vi,f,n,r);else{const d=Object.assign({},u);d.width=n,d.height=r,d.auto===void 0&&(d.auto=!1,d.min=d.min||d.minMag||e0,d.mag=d.mag||d.minMag||e0,d.wrapS=d.wrapS||d.wrap||Jd,d.wrapT=d.wrapT||d.wrap||Jd),l=Vs(e,d)}if(vb(e,l))e.framebufferRenderbuffer(i,h,Vi,l);else if(_c(e,l))u.layer!==void 0?e.framebufferTextureLayer(i,h,l,u.level||0,u.layer):e.framebufferTexture2D(i,h,u.target||BT,l,u.level||0);else throw new Error("unknown attachment type");s.attachments.push(l)}),s}function $T(e,t,n,r,i){r=r||e.drawingBufferWidth,i=i||e.drawingBufferHeight,t.width=r,t.height=i,n=n||I2,n.forEach(function(o,a){const s=t.attachments[a],u=o.format,l=o.samples;if(l!==void 0||vb(e,s))e.bindRenderbuffer(Vi,s),l>1?e.renderbufferStorageMultisample(Vi,l,u,r,i):e.renderbufferStorage(Vi,u,r,i);else if(_c(e,s))vk(e,s,o,r,i);else throw new Error("unknown attachment type")})}function qT(e,t,n){const r=e.createVertexArray();return e.bindVertexArray(r),t.length||(t=[t]),t.forEach(function(i){Hi(e,i,n)}),e.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const WT=/^(.*?)_/;function ZT(e,t){Pd(e,0);const n=e.getExtension(t);if(n){const r={},i=WT.exec(t)[1],o="_"+i;for(const a in n){const s=n[a],u=typeof s=="function",l=u?i:o;let c=a;a.endsWith(l)&&(c=a.substring(0,a.length-l.length)),e[c]!==void 0?!u&&e[c]!==s&&wb(c,e[c],s,a):u?e[c]=function(f){return function(){return f.apply(n,arguments)}}(s):(e[c]=s,r[c]=s)}r.constructor={name:n.constructor.name},Pd(r,0)}return n}const B2=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_color_buffer_float","EXT_color_buffer_half_float","EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2","EXT_frag_depth","EXT_sRGB","EXT_shader_texture_lod","EXT_texture_filter_anisotropic","OES_element_index_uint","OES_standard_derivatives","OES_texture_float","OES_texture_float_linear","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_compressed_texture_atc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_pvrtc","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_depth_texture","WEBGL_draw_buffers"];function D2(e){for(let t=0;t<B2.length;++t)ZT(e,B2[t])}function YT(e,t){const n=["webgl2","webgl","experimental-webgl"];let r=null;for(let i=0;i<n.length;++i)if(r=e.getContext(n[i],t),r){D2(r);break}return r}function QT(e,t){return YT(e,t)}const XT=`out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out float vHalfStrokeWidth;out vec4 vCornerRadii;
229
227
  #if defined(ROUNDED_CORNERS) || defined(STROKED)
230
228
  out vec2 vPosInPixels;
231
229
  #endif
@@ -233,7 +231,7 @@ out vec2 vHalfSizeInPixels;/***Clamps the minimumSize and returns an opacity tha
233
231
  #if defined(ROUNDED_CORNERS) || defined(STROKED)
234
232
  float aaPadding=1.0/uDevicePixelRatio;float strokeWidth=getScaled_strokeWidth();float strokeOpacity=getScaled_strokeOpacity()*opaFactor;vec2 centeredFrac=frac-0.5;vec2 expand=centeredFrac*(strokeWidth+aaPadding)/uViewportSize;pos+=expand;vec2 sizeInPixels=size*uViewportSize;vPosInPixels=(centeredFrac+expand/size)*sizeInPixels;vHalfSizeInPixels=sizeInPixels/2.0;vCornerRadii=min(cornerRadii,min(vHalfSizeInPixels.x,vHalfSizeInPixels.y));vHalfStrokeWidth=strokeWidth/2.0;vStrokeColor=vec4(getScaled_stroke()*strokeOpacity,strokeOpacity);
235
233
  #endif
236
- gl_Position=unitToNdc(pos);float fillOpacity=getScaled_fillOpacity()*opaFactor;vFillColor=vec4(getScaled_fill()*fillOpacity,fillOpacity);setupPicking();}`,ED=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
234
+ gl_Position=unitToNdc(pos);float fillOpacity=getScaled_fillOpacity()*opaFactor;vFillColor=vec4(getScaled_fill()*fillOpacity,fillOpacity);setupPicking();}`,KT=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
237
235
  in vec2 vPosInPixels;
238
236
  #endif
239
237
  in vec2 vHalfSizeInPixels;in lowp vec4 vFillColor;in lowp vec4 vStrokeColor;in float vHalfStrokeWidth;in vec4 vCornerRadii;out lowp vec4 fragColor;float sdRoundedBox(vec2 p,vec2 b,vec4 r){r.xy=p.x>0.0 ? r.xy : r.zw;r.x=p.y>0.0 ? r.x : r.y;vec2 q=abs(p)-b+r.x;return min(max(q.x,q.y),0.0)+length(max(q,0.0))-r.x;}float sdSharpBox(vec2 p,vec2 b){vec2 q=abs(p)-b;return max(q.x,q.y);}void main(void){
@@ -247,42 +245,60 @@ fragColor=distanceToColor(d,vFillColor,vStrokeColor,vHalfStrokeWidth);if(fragCol
247
245
  #else
248
246
  fragColor=vFillColor;
249
247
  #endif
250
- if(uPickingEnabled){fragColor=vPickingColor;}}`,_D=`layout(std140)uniform Mark{uniform float uMinWidth;uniform float uMinHeight;uniform float uMinOpacity;uniform float uCornerRadiusTopRight;uniform float uCornerRadiusBottomRight;uniform float uCornerRadiusTopLeft;uniform float uCornerRadiusBottomLeft;
248
+ if(uPickingEnabled){fragColor=vPickingColor;}}`,JT=`layout(std140)uniform Mark{uniform float uMinWidth;uniform float uMinHeight;uniform float uMinOpacity;uniform float uCornerRadiusTopRight;uniform float uCornerRadiusBottomRight;uniform float uCornerRadiusTopLeft;uniform float uCornerRadiusBottomLeft;
251
249
  #pragma markUniforms
252
- };`,uw="attr_",SD="uDomain_",CD="range_",cw="scale_",z0="getScaled_",U0="uRangeTexture_",fw=3402823466e29;function kD(e){const t=e.match(/^(?:(\w+)-)?(\w+)$/);if(!t)throw new Error("Not a scale type: "+e);return{family:t[1]||"continuous",transform:t[2]}}function TD(e,t){let n;if(Uc(e))n=Xi(Z2(e)(t));else if(Ue(t))if($r(e))n=DD(t);else throw new Error(`String values are not supported on the "${e}" channel: ${t}`);else if(is(t))n=Xi(t?1:0);else if(t===null)if($r(e))n=Xi([0,0,0]);else throw new Error(`null value is not supported on the "${e}" chanel.`);else n=Xi(t);return`
253
- #define ${e}_DEFINED
254
- ${n.type} ${z0}${e}() {
250
+ };`;function zn(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function $r(e,t){switch(arguments.length){case 0:break;case 1:{typeof e=="function"?this.interpolator(e):this.range(e);break}default:{this.domain(e),typeof t=="function"?this.interpolator(t):this.range(t);break}}return this}const t0=Symbol("implicit");function n0(){var e=new or,t=[],n=[],r=t0;function i(o){let a=e.get(o);if(a===void 0){if(r!==t0)return r;e.set(o,a=t.push(o)-1)}return n[a%n.length]}return i.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new or;for(const a of o)e.has(a)||e.set(a,t.push(a)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return n0(t,n).unknown(r)},zn.apply(i,arguments),i}function ea(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function $s(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function qr(){}var ji=.7,ta=1/ji,na="\\s*([+-]?\\d+)\\s*",qs="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Un="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",eI=/^#([0-9a-f]{3,8})$/,tI=new RegExp(`^rgb\\(${na},${na},${na}\\)$`),nI=new RegExp(`^rgb\\(${Un},${Un},${Un}\\)$`),rI=new RegExp(`^rgba\\(${na},${na},${na},${qs}\\)$`),iI=new RegExp(`^rgba\\(${Un},${Un},${Un},${qs}\\)$`),oI=new RegExp(`^hsl\\(${qs},${Un},${Un}\\)$`),aI=new RegExp(`^hsla\\(${qs},${Un},${Un},${qs}\\)$`),R2={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};ea(qr,Wr,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:F2,formatHex:F2,formatHex8:sI,formatHsl:lI,formatRgb:M2,toString:M2});function F2(){return this.rgb().formatHex()}function sI(){return this.rgb().formatHex8()}function lI(){return z2(this).formatHsl()}function M2(){return this.rgb().formatRgb()}function Wr(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=eI.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?P2(t):n===3?new ct(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?$c(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?$c(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=tI.exec(e))?new ct(t[1],t[2],t[3],1):(t=nI.exec(e))?new ct(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=rI.exec(e))?$c(t[1],t[2],t[3],t[4]):(t=iI.exec(e))?$c(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=oI.exec(e))?O2(t[1],t[2]/100,t[3]/100,1):(t=aI.exec(e))?O2(t[1],t[2]/100,t[3]/100,t[4]):R2.hasOwnProperty(e)?P2(R2[e]):e==="transparent"?new ct(NaN,NaN,NaN,0):null}function P2(e){return new ct(e>>16&255,e>>8&255,e&255,1)}function $c(e,t,n,r){return r<=0&&(e=t=n=NaN),new ct(e,t,n,r)}function r0(e){return e instanceof qr||(e=Wr(e)),e?(e=e.rgb(),new ct(e.r,e.g,e.b,e.opacity)):new ct}function qc(e,t,n,r){return arguments.length===1?r0(e):new ct(e,t,n,r??1)}function ct(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}ea(ct,qc,$s(qr,{brighter(e){return e=e==null?ta:Math.pow(ta,e),new ct(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?ji:Math.pow(ji,e),new ct(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ct($i(this.r),$i(this.g),$i(this.b),Wc(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:L2,formatHex:L2,formatHex8:uI,formatRgb:N2,toString:N2}));function L2(){return`#${qi(this.r)}${qi(this.g)}${qi(this.b)}`}function uI(){return`#${qi(this.r)}${qi(this.g)}${qi(this.b)}${qi((isNaN(this.opacity)?1:this.opacity)*255)}`}function N2(){const e=Wc(this.opacity);return`${e===1?"rgb(":"rgba("}${$i(this.r)}, ${$i(this.g)}, ${$i(this.b)}${e===1?")":`, ${e})`}`}function Wc(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function $i(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function qi(e){return e=$i(e),(e<16?"0":"")+e.toString(16)}function O2(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new En(e,t,n,r)}function z2(e){if(e instanceof En)return new En(e.h,e.s,e.l,e.opacity);if(e instanceof qr||(e=Wr(e)),!e)return new En;if(e instanceof En)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),a=NaN,s=o-i,u=(o+i)/2;return s?(t===o?a=(n-r)/s+(n<r)*6:n===o?a=(r-t)/s+2:a=(t-n)/s+4,s/=u<.5?o+i:2-o-i,a*=60):s=u>0&&u<1?0:a,new En(a,s,u,e.opacity)}function i0(e,t,n,r){return arguments.length===1?z2(e):new En(e,t,n,r??1)}function En(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}ea(En,i0,$s(qr,{brighter(e){return e=e==null?ta:Math.pow(ta,e),new En(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?ji:Math.pow(ji,e),new En(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new ct(o0(e>=240?e-240:e+120,i,r),o0(e,i,r),o0(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new En(U2(this.h),Zc(this.s),Zc(this.l),Wc(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Wc(this.opacity);return`${e===1?"hsl(":"hsla("}${U2(this.h)}, ${Zc(this.s)*100}%, ${Zc(this.l)*100}%${e===1?")":`, ${e})`}`}}));function U2(e){return e=(e||0)%360,e<0?e+360:e}function Zc(e){return Math.max(0,Math.min(1,e||0))}function o0(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const G2=Math.PI/180,H2=180/Math.PI,Yc=18,V2=.96422,j2=1,$2=.82521,q2=4/29,ra=6/29,W2=3*ra*ra,cI=ra*ra*ra;function Z2(e){if(e instanceof Gn)return new Gn(e.l,e.a,e.b,e.opacity);if(e instanceof hr)return Y2(e);e instanceof ct||(e=r0(e));var t=c0(e.r),n=c0(e.g),r=c0(e.b),i=s0((.2225045*t+.7168786*n+.0606169*r)/j2),o,a;return t===n&&n===r?o=a=i:(o=s0((.4360747*t+.3850649*n+.1430804*r)/V2),a=s0((.0139322*t+.0971045*n+.7141733*r)/$2)),new Gn(116*i-16,500*(o-i),200*(i-a),e.opacity)}function a0(e,t,n,r){return arguments.length===1?Z2(e):new Gn(e,t,n,r??1)}function Gn(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}ea(Gn,a0,$s(qr,{brighter(e){return new Gn(this.l+Yc*(e??1),this.a,this.b,this.opacity)},darker(e){return new Gn(this.l-Yc*(e??1),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return t=V2*l0(t),e=j2*l0(e),n=$2*l0(n),new ct(u0(3.1338561*t-1.6168667*e-.4906146*n),u0(-.9787684*t+1.9161415*e+.033454*n),u0(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function s0(e){return e>cI?Math.pow(e,1/3):e/W2+q2}function l0(e){return e>ra?e*e*e:W2*(e-q2)}function u0(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function c0(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function fI(e){if(e instanceof hr)return new hr(e.h,e.c,e.l,e.opacity);if(e instanceof Gn||(e=Z2(e)),e.a===0&&e.b===0)return new hr(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*H2;return new hr(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function f0(e,t,n,r){return arguments.length===1?fI(e):new hr(e,t,n,r??1)}function hr(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function Y2(e){if(isNaN(e.h))return new Gn(e.l,0,0,e.opacity);var t=e.h*G2;return new Gn(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}ea(hr,f0,$s(qr,{brighter(e){return new hr(this.h,this.c,this.l+Yc*(e??1),this.opacity)},darker(e){return new hr(this.h,this.c,this.l-Yc*(e??1),this.opacity)},rgb(){return Y2(this).rgb()}}));var Q2=-.14861,h0=1.78277,d0=-.29227,Qc=-.90649,Ws=1.97294,X2=Ws*Qc,K2=Ws*h0,J2=h0*d0-Qc*Q2;function hI(e){if(e instanceof Wi)return new Wi(e.h,e.s,e.l,e.opacity);e instanceof ct||(e=r0(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(J2*r+X2*t-K2*n)/(J2+X2-K2),o=r-i,a=(Ws*(n-i)-d0*o)/Qc,s=Math.sqrt(a*a+o*o)/(Ws*i*(1-i)),u=s?Math.atan2(a,o)*H2-120:NaN;return new Wi(u<0?u+360:u,s,i,e.opacity)}function p0(e,t,n,r){return arguments.length===1?hI(e):new Wi(e,t,n,r??1)}function Wi(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}ea(Wi,p0,$s(qr,{brighter(e){return e=e==null?ta:Math.pow(ta,e),new Wi(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?ji:Math.pow(ji,e),new Wi(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*G2,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new ct(255*(t+n*(Q2*r+h0*i)),255*(t+n*(d0*r+Qc*i)),255*(t+n*(Ws*r)),this.opacity)}}));function ey(e,t,n,r,i){var o=e*e,a=o*e;return((1-3*e+3*o-a)*t+(4-6*o+3*a)*n+(1+3*e+3*o-3*a)*r+a*i)/6}function ty(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],o=e[r+1],a=r>0?e[r-1]:2*i-o,s=r<t-1?e[r+2]:2*o-i;return ey((n-r/t)*t,a,i,o,s)}}function ny(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),i=e[(r+t-1)%t],o=e[r%t],a=e[(r+1)%t],s=e[(r+2)%t];return ey((n-r/t)*t,i,o,a,s)}}const Xc=e=>()=>e;function ry(e,t){return function(n){return e+n*t}}function dI(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Kc(e,t){var n=t-e;return n?ry(e,n>180||n<-180?n-360*Math.round(n/360):n):Xc(isNaN(e)?t:e)}function pI(e){return(e=+e)==1?ft:function(t,n){return n-t?dI(t,n,e):Xc(isNaN(t)?n:t)}}function ft(e,t){var n=t-e;return n?ry(e,n):Xc(isNaN(e)?t:e)}const g0=function e(t){var n=pI(t);function r(i,o){var a=n((i=qc(i)).r,(o=qc(o)).r),s=n(i.g,o.g),u=n(i.b,o.b),l=ft(i.opacity,o.opacity);return function(c){return i.r=a(c),i.g=s(c),i.b=u(c),i.opacity=l(c),i+""}}return r.gamma=e,r}(1);function iy(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),o=new Array(n),a,s;for(a=0;a<n;++a)s=qc(t[a]),r[a]=s.r||0,i[a]=s.g||0,o[a]=s.b||0;return r=e(r),i=e(i),o=e(o),s.opacity=1,function(u){return s.r=r(u),s.g=i(u),s.b=o(u),s+""}}}var gI=iy(ty),mI=iy(ny);function m0(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(o){for(i=0;i<n;++i)r[i]=e[i]*(1-o)+t[i]*o;return r}}function oy(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function bI(e,t){return(oy(t)?m0:ay)(e,t)}function ay(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),o=new Array(n),a;for(a=0;a<r;++a)i[a]=Zr(e[a],t[a]);for(;a<n;++a)o[a]=t[a];return function(s){for(a=0;a<r;++a)o[a]=i[a](s);return o}}function sy(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function _n(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function ly(e,t){var n={},r={},i;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(i in t)i in e?n[i]=Zr(e[i],t[i]):r[i]=t[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var b0=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,y0=new RegExp(b0.source,"g");function yI(e){return function(){return e}}function wI(e){return function(t){return e(t)+""}}function uy(e,t){var n=b0.lastIndex=y0.lastIndex=0,r,i,o,a=-1,s=[],u=[];for(e=e+"",t=t+"";(r=b0.exec(e))&&(i=y0.exec(t));)(o=i.index)>n&&(o=t.slice(n,o),s[a]?s[a]+=o:s[++a]=o),(r=r[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,u.push({i:a,x:_n(r,i)})),n=y0.lastIndex;return n<t.length&&(o=t.slice(n),s[a]?s[a]+=o:s[++a]=o),s.length<2?u[0]?wI(u[0].x):yI(t):(t=u.length,function(l){for(var c=0,f;c<t;++c)s[(f=u[c]).i]=f.x(l);return s.join("")})}function Zr(e,t){var n=typeof t,r;return t==null||n==="boolean"?Xc(t):(n==="number"?_n:n==="string"?(r=Wr(t))?(t=r,g0):uy:t instanceof Wr?g0:t instanceof Date?sy:oy(t)?m0:Array.isArray(t)?ay:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?ly:_n)(e,t)}function vI(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function xI(e,t){var n=Kc(+e,+t);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function Zs(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var cy=180/Math.PI,w0={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function fy(e,t,n,r,i,o){var a,s,u;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(u=e*n+t*r)&&(n-=e*u,r-=t*u),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,u/=s),e*r<t*n&&(e=-e,t=-t,u=-u,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(t,e)*cy,skewX:Math.atan(u)*cy,scaleX:a,scaleY:s}}var Jc;function AI(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?w0:fy(t.a,t.b,t.c,t.d,t.e,t.f)}function EI(e){return e==null||(Jc||(Jc=document.createElementNS("http://www.w3.org/2000/svg","g")),Jc.setAttribute("transform",e),!(e=Jc.transform.baseVal.consolidate()))?w0:(e=e.matrix,fy(e.a,e.b,e.c,e.d,e.e,e.f))}function hy(e,t,n,r){function i(l){return l.length?l.pop()+" ":""}function o(l,c,f,h,d,p){if(l!==f||c!==h){var m=d.push("translate(",null,t,null,n);p.push({i:m-4,x:_n(l,f)},{i:m-2,x:_n(c,h)})}else(f||h)&&d.push("translate("+f+t+h+n)}function a(l,c,f,h){l!==c?(l-c>180?c+=360:c-l>180&&(l+=360),h.push({i:f.push(i(f)+"rotate(",null,r)-2,x:_n(l,c)})):c&&f.push(i(f)+"rotate("+c+r)}function s(l,c,f,h){l!==c?h.push({i:f.push(i(f)+"skewX(",null,r)-2,x:_n(l,c)}):c&&f.push(i(f)+"skewX("+c+r)}function u(l,c,f,h,d,p){if(l!==f||c!==h){var m=d.push(i(d)+"scale(",null,",",null,")");p.push({i:m-4,x:_n(l,f)},{i:m-2,x:_n(c,h)})}else(f!==1||h!==1)&&d.push(i(d)+"scale("+f+","+h+")")}return function(l,c){var f=[],h=[];return l=e(l),c=e(c),o(l.translateX,l.translateY,c.translateX,c.translateY,f,h),a(l.rotate,c.rotate,f,h),s(l.skewX,c.skewX,f,h),u(l.scaleX,l.scaleY,c.scaleX,c.scaleY,f,h),l=c=null,function(d){for(var p=-1,m=h.length,y;++p<m;)f[(y=h[p]).i]=y.x(d);return f.join("")}}}var _I=hy(AI,"px, ","px)","deg)"),SI=hy(EI,", ",")",")"),CI=1e-12;function dy(e){return((e=Math.exp(e))+1/e)/2}function kI(e){return((e=Math.exp(e))-1/e)/2}function TI(e){return((e=Math.exp(2*e))-1)/(e+1)}const II=function e(t,n,r){function i(o,a){var s=o[0],u=o[1],l=o[2],c=a[0],f=a[1],h=a[2],d=c-s,p=f-u,m=d*d+p*p,y,w;if(m<CI)w=Math.log(h/l)/t,y=function(I){return[s+I*d,u+I*p,l*Math.exp(t*I*w)]};else{var A=Math.sqrt(m),S=(h*h-l*l+r*m)/(2*l*n*A),_=(h*h-l*l-r*m)/(2*h*n*A),k=Math.log(Math.sqrt(S*S+1)-S),B=Math.log(Math.sqrt(_*_+1)-_);w=(B-k)/t,y=function(I){var D=I*w,M=dy(k),G=l/(n*A)*(M*TI(t*D+k)-kI(k));return[s+G*d,u+G*p,l*M/dy(t*D+k)]}}return y.duration=w*1e3*t/Math.SQRT2,y}return i.rho=function(o){var a=Math.max(.001,+o),s=a*a,u=s*s;return e(a,s,u)},i}(Math.SQRT2,2,4);function py(e){return function(t,n){var r=e((t=i0(t)).h,(n=i0(n)).h),i=ft(t.s,n.s),o=ft(t.l,n.l),a=ft(t.opacity,n.opacity);return function(s){return t.h=r(s),t.s=i(s),t.l=o(s),t.opacity=a(s),t+""}}}const BI=py(Kc);var DI=py(ft);function RI(e,t){var n=ft((e=a0(e)).l,(t=a0(t)).l),r=ft(e.a,t.a),i=ft(e.b,t.b),o=ft(e.opacity,t.opacity);return function(a){return e.l=n(a),e.a=r(a),e.b=i(a),e.opacity=o(a),e+""}}function gy(e){return function(t,n){var r=e((t=f0(t)).h,(n=f0(n)).h),i=ft(t.c,n.c),o=ft(t.l,n.l),a=ft(t.opacity,n.opacity);return function(s){return t.h=r(s),t.c=i(s),t.l=o(s),t.opacity=a(s),t+""}}}const FI=gy(Kc);var MI=gy(ft);function my(e){return function t(n){n=+n;function r(i,o){var a=e((i=p0(i)).h,(o=p0(o)).h),s=ft(i.s,o.s),u=ft(i.l,o.l),l=ft(i.opacity,o.opacity);return function(c){return i.h=a(c),i.s=s(c),i.l=u(Math.pow(c,n)),i.opacity=l(c),i+""}}return r.gamma=t,r}(1)}const PI=my(Kc);var LI=my(ft);function v0(e,t){t===void 0&&(t=e,e=Zr);for(var n=0,r=t.length-1,i=t[0],o=new Array(r<0?0:r);n<r;)o[n]=e(i,i=t[++n]);return function(a){var s=Math.max(0,Math.min(r-1,Math.floor(a*=r)));return o[s](a-s)}}function NI(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}const OI=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Zr,interpolateArray:bI,interpolateBasis:ty,interpolateBasisClosed:ny,interpolateCubehelix:PI,interpolateCubehelixLong:LI,interpolateDate:sy,interpolateDiscrete:vI,interpolateHcl:FI,interpolateHclLong:MI,interpolateHsl:BI,interpolateHslLong:DI,interpolateHue:xI,interpolateLab:RI,interpolateNumber:_n,interpolateNumberArray:m0,interpolateObject:ly,interpolateRgb:g0,interpolateRgbBasis:gI,interpolateRgbBasisClosed:mI,interpolateRound:Zs,interpolateString:uy,interpolateTransformCss:_I,interpolateTransformSvg:SI,interpolateZoom:II,piecewise:v0,quantize:NI},Symbol.toStringTag,{value:"Module"}));function zI(e){return function(){return e}}function x0(e){return+e}var by=[0,1];function Ot(e){return e}function A0(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:zI(isNaN(t)?NaN:.5)}function UI(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function GI(e,t,n){var r=e[0],i=e[1],o=t[0],a=t[1];return i<r?(r=A0(i,r),o=n(a,o)):(r=A0(r,i),o=n(o,a)),function(s){return o(r(s))}}function HI(e,t,n){var r=Math.min(e.length,t.length)-1,i=new Array(r),o=new Array(r),a=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++a<r;)i[a]=A0(e[a],e[a+1]),o[a]=n(t[a],t[a+1]);return function(s){var u=Fr(e,s,1,r)-1;return o[u](i[u](s))}}function Ys(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function ef(){var e=by,t=by,n=Zr,r,i,o,a=Ot,s,u,l;function c(){var h=Math.min(e.length,t.length);return a!==Ot&&(a=UI(e[0],e[h-1])),s=h>2?HI:GI,u=l=null,f}function f(h){return h==null||isNaN(h=+h)?o:(u||(u=s(e.map(r),t,n)))(r(a(h)))}return f.invert=function(h){return a(i((l||(l=s(t,e.map(r),_n)))(h)))},f.domain=function(h){return arguments.length?(e=Array.from(h,x0),c()):e.slice()},f.range=function(h){return arguments.length?(t=Array.from(h),c()):t.slice()},f.rangeRound=function(h){return t=Array.from(h),n=Zs,c()},f.clamp=function(h){return arguments.length?(a=h?!0:Ot,c()):a!==Ot},f.interpolate=function(h){return arguments.length?(n=h,c()):n},f.unknown=function(h){return arguments.length?(o=h,f):o},function(h,d){return r=h,i=d,c()}}function yy(){return ef()(Ot,Ot)}function wy(e,t,n,r){var i=Mr(e,t,n),o;switch(r=Pr(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(o=E1(i,a))&&(r.precision=o),od(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=_1(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=A1(i))&&(r.precision=o-(r.type==="%")*2);break}}return mt(r)}function Zi(e){var t=e.domain;return e.ticks=function(n){var r=t();return oc(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return wy(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,o=r.length-1,a=r[i],s=r[o],u,l,c=10;for(s<a&&(l=a,a=s,s=l,l=i,i=o,o=l);c-- >0;){if(l=rd(a,s,n),l===u)return r[i]=a,r[o]=s,t(r);if(l>0)a=Math.floor(a/l)*l,s=Math.ceil(s/l)*l;else if(l<0)a=Math.ceil(a*l)/l,s=Math.floor(s*l)/l;else break;u=l}return e},e}function vy(){var e=yy();return e.copy=function(){return Ys(e,vy())},zn.apply(e,arguments),Zi(e)}function xy(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,x0),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return xy(e).unknown(t)},e=arguments.length?Array.from(e,x0):[0,1],Zi(n)}function Ay(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],o=e[r],a;return o<i&&(a=n,n=r,r=a,a=i,i=o,o=a),e[n]=t.floor(i),e[r]=t.ceil(o),e}function Ey(e){return Math.log(e)}function _y(e){return Math.exp(e)}function VI(e){return-Math.log(-e)}function jI(e){return-Math.exp(-e)}function $I(e){return isFinite(e)?+("1e"+e):e<0?0:e}function qI(e){return e===10?$I:e===Math.E?Math.exp:t=>Math.pow(e,t)}function WI(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function Sy(e){return(t,n)=>-e(-t,n)}function E0(e){const t=e(Ey,_y),n=t.domain;let r=10,i,o;function a(){return i=WI(r),o=qI(r),n()[0]<0?(i=Sy(i),o=Sy(o),e(VI,jI)):e(Ey,_y),t}return t.base=function(s){return arguments.length?(r=+s,a()):r},t.domain=function(s){return arguments.length?(n(s),a()):n()},t.ticks=s=>{const u=n();let l=u[0],c=u[u.length-1];const f=c<l;f&&([l,c]=[c,l]);let h=i(l),d=i(c),p,m;const y=s==null?10:+s;let w=[];if(!(r%1)&&d-h<y){if(h=Math.floor(h),d=Math.ceil(d),l>0){for(;h<=d;++h)for(p=1;p<r;++p)if(m=h<0?p/o(-h):p*o(h),!(m<l)){if(m>c)break;w.push(m)}}else for(;h<=d;++h)for(p=r-1;p>=1;--p)if(m=h>0?p/o(-h):p*o(h),!(m<l)){if(m>c)break;w.push(m)}w.length*2<y&&(w=oc(l,c,y))}else w=oc(h,d,Math.min(d-h,y)).map(o);return f?w.reverse():w},t.tickFormat=(s,u)=>{if(s==null&&(s=10),u==null&&(u=r===10?"s":","),typeof u!="function"&&(!(r%1)&&(u=Pr(u)).precision==null&&(u.trim=!0),u=mt(u)),s===1/0)return u;const l=Math.max(1,r*s/t.ticks().length);return c=>{let f=c/o(Math.round(i(c)));return f*r<r-.5&&(f*=r),f<=l?u(c):""}},t.nice=()=>n(Ay(n(),{floor:s=>o(Math.floor(i(s))),ceil:s=>o(Math.ceil(i(s)))})),t}function _0(){const e=E0(ef()).domain([1,10]);return e.copy=()=>Ys(e,_0()).base(e.base()),zn.apply(e,arguments),e}function Cy(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function ky(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function S0(e){var t=1,n=e(Cy(t),ky(t));return n.constant=function(r){return arguments.length?e(Cy(t=+r),ky(t)):t},Zi(n)}function Ty(){var e=S0(ef());return e.copy=function(){return Ys(e,Ty()).constant(e.constant())},zn.apply(e,arguments)}function Iy(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function ZI(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function YI(e){return e<0?-e*e:e*e}function C0(e){var t=e(Ot,Ot),n=1;function r(){return n===1?e(Ot,Ot):n===.5?e(ZI,YI):e(Iy(n),Iy(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},Zi(t)}function k0(){var e=C0(ef());return e.copy=function(){return Ys(e,k0()).exponent(e.exponent())},zn.apply(e,arguments),e}function QI(){return k0.apply(null,arguments).exponent(.5)}function By(){var e=[],t=[],n=[],r;function i(){var a=0,s=Math.max(1,t.length);for(n=new Array(s-1);++a<s;)n[a-1]=g1(e,a/s);return o}function o(a){return a==null||isNaN(a=+a)?r:t[Fr(n,a)]}return o.invertExtent=function(a){var s=t.indexOf(a);return s<0?[NaN,NaN]:[s>0?n[s-1]:e[0],s<n.length?n[s]:e[e.length-1]]},o.domain=function(a){if(!arguments.length)return e.slice();e=[];for(let s of a)s!=null&&!isNaN(s=+s)&&e.push(s);return e.sort(fs),i()},o.range=function(a){return arguments.length?(t=Array.from(a),i()):t.slice()},o.unknown=function(a){return arguments.length?(r=a,o):r},o.quantiles=function(){return n.slice()},o.copy=function(){return By().domain(e).range(t).unknown(r)},zn.apply(o,arguments)}function Dy(){var e=0,t=1,n=1,r=[.5],i=[0,1],o;function a(u){return u!=null&&u<=u?i[Fr(r,u,0,n)]:o}function s(){var u=-1;for(r=new Array(n);++u<n;)r[u]=((u+1)*t-(u-n)*e)/(n+1);return a}return a.domain=function(u){return arguments.length?([e,t]=u,e=+e,t=+t,s()):[e,t]},a.range=function(u){return arguments.length?(n=(i=Array.from(u)).length-1,s()):i.slice()},a.invertExtent=function(u){var l=i.indexOf(u);return l<0?[NaN,NaN]:l<1?[e,r[0]]:l>=n?[r[n-1],t]:[r[l-1],r[l]]},a.unknown=function(u){return arguments.length&&(o=u),a},a.thresholds=function(){return r.slice()},a.copy=function(){return Dy().domain([e,t]).range(i).unknown(o)},zn.apply(Zi(a),arguments)}function Ry(){var e=[.5],t=[0,1],n,r=1;function i(o){return o!=null&&o<=o?t[Fr(e,o,0,r)]:n}return i.domain=function(o){return arguments.length?(e=Array.from(o),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(o){return arguments.length?(t=Array.from(o),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(o){var a=t.indexOf(o);return[e[a-1],e[a]]},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return Ry().domain(e).range(t).unknown(n)},zn.apply(i,arguments)}function XI(e){return new Date(e)}function KI(e){return e instanceof Date?+e:+new Date(+e)}function T0(e,t,n,r,i,o,a,s,u,l){var c=yy(),f=c.invert,h=c.domain,d=l(".%L"),p=l(":%S"),m=l("%I:%M"),y=l("%I %p"),w=l("%a %d"),A=l("%b %d"),S=l("%B"),_=l("%Y");function k(B){return(u(B)<B?d:s(B)<B?p:a(B)<B?m:o(B)<B?y:r(B)<B?i(B)<B?w:A:n(B)<B?S:_)(B)}return c.invert=function(B){return new Date(f(B))},c.domain=function(B){return arguments.length?h(Array.from(B,KI)):h().map(XI)},c.ticks=function(B){var I=h();return e(I[0],I[I.length-1],B??10)},c.tickFormat=function(B,I){return I==null?k:l(I)},c.nice=function(B){var I=h();return(!B||typeof B.range!="function")&&(B=t(I[0],I[I.length-1],B??10)),B?h(Ay(I,B)):c},c.copy=function(){return Ys(c,T0(e,t,n,r,i,o,a,s,u,l))},c}function JI(){return zn.apply(T0(tC,nC,Pn,gs,ds,Lr,fc,uc,ur,dd).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function eB(){return zn.apply(T0(JS,eC,Ln,ms,ps,Fi,hc,cc,ur,pd).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function tf(){var e=0,t=1,n,r,i,o,a=Ot,s=!1,u;function l(f){return f==null||isNaN(f=+f)?u:a(i===0?.5:(f=(o(f)-n)*i,s?Math.max(0,Math.min(1,f)):f))}l.domain=function(f){return arguments.length?([e,t]=f,n=o(e=+e),r=o(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(f){return arguments.length?(s=!!f,l):s},l.interpolator=function(f){return arguments.length?(a=f,l):a};function c(f){return function(h){var d,p;return arguments.length?([d,p]=h,a=f(d,p),l):[a(0),a(1)]}}return l.range=c(Zr),l.rangeRound=c(Zs),l.unknown=function(f){return arguments.length?(u=f,l):u},function(f){return o=f,n=f(e),r=f(t),i=n===r?0:1/(r-n),l}}function Yr(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function I0(){var e=Zi(tf()(Ot));return e.copy=function(){return Yr(e,I0())},$r.apply(e,arguments)}function Fy(){var e=E0(tf()).domain([1,10]);return e.copy=function(){return Yr(e,Fy()).base(e.base())},$r.apply(e,arguments)}function My(){var e=S0(tf());return e.copy=function(){return Yr(e,My()).constant(e.constant())},$r.apply(e,arguments)}function B0(){var e=C0(tf());return e.copy=function(){return Yr(e,B0()).exponent(e.exponent())},$r.apply(e,arguments)}function tB(){return B0.apply(null,arguments).exponent(.5)}function nf(){var e=0,t=.5,n=1,r=1,i,o,a,s,u,l=Ot,c,f=!1,h;function d(m){return isNaN(m=+m)?h:(m=.5+((m=+c(m))-o)*(r*m<r*o?s:u),l(f?Math.max(0,Math.min(1,m)):m))}d.domain=function(m){return arguments.length?([e,t,n]=m,i=c(e=+e),o=c(t=+t),a=c(n=+n),s=i===o?0:.5/(o-i),u=o===a?0:.5/(a-o),r=o<i?-1:1,d):[e,t,n]},d.clamp=function(m){return arguments.length?(f=!!m,d):f},d.interpolator=function(m){return arguments.length?(l=m,d):l};function p(m){return function(y){var w,A,S;return arguments.length?([w,A,S]=y,l=v0(m,[w,A,S]),d):[l(0),l(.5),l(1)]}}return d.range=p(Zr),d.rangeRound=p(Zs),d.unknown=function(m){return arguments.length?(h=m,d):h},function(m){return c=m,i=m(e),o=m(t),a=m(n),s=i===o?0:.5/(o-i),u=o===a?0:.5/(a-o),r=o<i?-1:1,d}}function Py(){var e=Zi(nf()(Ot));return e.copy=function(){return Yr(e,Py())},$r.apply(e,arguments)}function Ly(){var e=E0(nf()).domain([.1,1,10]);return e.copy=function(){return Yr(e,Ly()).base(e.base())},$r.apply(e,arguments)}function Ny(){var e=S0(nf());return e.copy=function(){return Yr(e,Ny()).constant(e.constant())},$r.apply(e,arguments)}function D0(){var e=C0(nf());return e.copy=function(){return Yr(e,D0()).exponent(e.exponent())},$r.apply(e,arguments)}function nB(){return D0.apply(null,arguments).exponent(.5)}function R0(e,t,n){const r=e-t+n*2;return e?r>0?r:1:0}const rB="identity",ia="linear",Qr="log",Qs="pow",Xs="sqrt",rf="symlog",Oy="time",zy="utc",Hn="sequential",oa="diverging",F0="quantile",Uy="quantize",Gy="threshold",M0="ordinal",P0="point",Hy="band",L0="bin-ordinal",at="continuous",Ks="discrete",Js="discretizing",rn="interpolating",Vy="temporal";function iB(e){return function(t){let n=t[0],r=t[1],i;return r<n&&(i=n,n=r,r=i),[e.invert(n),e.invert(r)]}}function oB(e){return function(t){const n=e.range();let r=t[0],i=t[1],o=-1,a,s,u,l;for(i<r&&(s=r,r=i,i=s),u=0,l=n.length;u<l;++u)n[u]>=r&&n[u]<=i&&(o<0&&(o=u),a=u);if(!(o<0))return r=e.invertExtent(n[o]),i=e.invertExtent(n[a]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function N0(){const e=n0().unknown(void 0),t=e.domain,n=e.range;let r=[0,1],i,o,a=!1,s=0,u=0,l=.5;delete e.unknown;function c(){const f=t().length,h=r[1]<r[0],d=r[1-h],p=R0(f,s,u);let m=r[h-0];i=(d-m)/(p||1),a&&(i=Math.floor(i)),m+=(d-m-i*(f-s))*l,o=i*(1-s),a&&(m=Math.round(m),o=Math.round(o));const y=hs(f).map(w=>m+i*w);return n(h?y.reverse():y)}return e.domain=function(f){return arguments.length?(t(f),c()):t()},e.range=function(f){return arguments.length?(r=[+f[0],+f[1]],c()):r.slice()},e.rangeRound=function(f){return r=[+f[0],+f[1]],a=!0,c()},e.bandwidth=function(){return o},e.step=function(){return i},e.round=function(f){return arguments.length?(a=!!f,c()):a},e.padding=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),s=u,c()):s},e.paddingInner=function(f){return arguments.length?(s=Math.max(0,Math.min(1,f)),c()):s},e.paddingOuter=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),c()):u},e.align=function(f){return arguments.length?(l=Math.max(0,Math.min(1,f)),c()):l},e.invertRange=function(f){if(f[0]==null||f[1]==null)return;const h=r[1]<r[0],d=h?n().reverse():n(),p=d.length-1;let m=+f[0],y=+f[1],w,A,S;if(!(m!==m||y!==y)&&(y<m&&(S=m,m=y,y=S),!(y<d[0]||m>r[1-h])))return w=Math.max(0,Fr(d,m)-1),A=m===y?w:Fr(d,y)-1,m-d[w]>o+1e-10&&++w,h&&(S=w,w=p-A,A=p-S),w>A?void 0:t().slice(w,A+1)},e.invert=function(f){const h=e.invertRange([f,f]);return h&&h[0]},e.copy=function(){return N0().domain(t()).range(r).round(a).paddingInner(s).paddingOuter(u).align(l)},c()}function jy(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return jy(t())},e}function aB(){return jy(N0().paddingInner(1))}var sB=Array.prototype.map;function lB(e){return sB.call(e,ls)}const uB=Array.prototype.slice;function $y(){let e=[],t=[];function n(r){return r==null||r!==r?void 0:t[(Fr(e,r)-1)%t.length]}return n.domain=function(r){return arguments.length?(e=lB(r),n):e.slice()},n.range=function(r){return arguments.length?(t=uB.call(r),n):t.slice()},n.tickFormat=function(r,i){return wy(e[0],vn(e),r??10,i)},n.copy=function(){return $y().domain(n.domain()).range(n.range())},n}const of=new Map,cB=Symbol("vega_scale");function fB(e){return e[cB]=!0,e}function hB(e,t,n){const r=function(){const o=t();return o.invertRange||(o.invertRange=o.invert?iB(o):o.invertExtent?oB(o):void 0),o.type=e,fB(o)};return r.metadata=nc(Xh(n)),r}function Se(e,t,n){return arguments.length>1?(of.set(e,hB(e,t,n)),this):dB(e)?of.get(e):void 0}Se(rB,xy),Se(ia,vy,at),Se(Qr,_0,[at,Qr]),Se(Qs,k0,at),Se(Xs,QI,at),Se(rf,Ty,at),Se(Oy,JI,[at,Vy]),Se(zy,eB,[at,Vy]),Se(Hn,I0,[at,rn]),Se(`${Hn}-${ia}`,I0,[at,rn]),Se(`${Hn}-${Qr}`,Fy,[at,rn,Qr]),Se(`${Hn}-${Qs}`,B0,[at,rn]),Se(`${Hn}-${Xs}`,tB,[at,rn]),Se(`${Hn}-${rf}`,My,[at,rn]),Se(`${oa}-${ia}`,Py,[at,rn]),Se(`${oa}-${Qr}`,Ly,[at,rn,Qr]),Se(`${oa}-${Qs}`,D0,[at,rn]),Se(`${oa}-${Xs}`,nB,[at,rn]),Se(`${oa}-${rf}`,Ny,[at,rn]),Se(F0,By,[Js,F0]),Se(Uy,Dy,Js),Se(Gy,Ry,Js),Se(L0,$y,[Ks,Js]),Se(M0,n0,Ks),Se(Hy,N0,Ks),Se(P0,aB,Ks);function dB(e){return of.has(e)}function el(e,t){const n=of.get(e);return n&&n.metadata[t]}function bt(e){return el(e,at)}function Xr(e){return el(e,Ks)}function Yi(e){return el(e,Js)}function qy(e){return el(e,Qr)}function af(e){return el(e,rn)}function pB(e,t){const n=t[0],r=vn(t)-n;return function(i){return e(n+i*r)}}function sf(e,t,n){return v0(Wy(t||"rgb",n),e)}function gB(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}function Wy(e,t){const n=OI[mB(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function mB(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const bB={blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"},yB={category10:"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf",category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5",accent:"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666",dark2:"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666",paired:"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928",pastel1:"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2",pastel2:"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc",set1:"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999",set2:"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3",set3:"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"};function Zy(e){const t=e.length/6|0,n=new Array(t);for(let r=0;r<t;)n[r]="#"+e.slice(r*6,++r*6);return n}function Yy(e,t){for(const n in e)O0(n,t(e[n]))}const Qy={};Yy(yB,Zy),Yy(bB,e=>sf(Zy(e)));function O0(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(Qy[e]=t,this):Qy[e]}function Me(e,t=e){if(/^[A-Za-z0-9_]+$/.test(e)){const n=new Function("datum",`return datum[${JSON.stringify(e)}]`);return Ie(n,[e],t)}else return Qu(e)}const wB="RawCode",vB="Literal",xB="Property",AB="Identifier",EB="ArrayExpression",_B="BinaryExpression",SB="CallExpression",CB="ConditionalExpression",kB="LogicalExpression",TB="MemberExpression",IB="ObjectExpression",BB="UnaryExpression";function Sn(e){this.type=e}Sn.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=DB(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};function DB(e){switch(e.type){case EB:return e.elements;case _B:case kB:return[e.left,e.right];case SB:return[e.callee].concat(e.arguments);case CB:return[e.test,e.consequent,e.alternate];case TB:return[e.object,e.property];case IB:return e.properties;case xB:return[e.key,e.value];case BB:return[e.argument];case AB:case vB:case wB:default:return[]}}var Vn,ee,H,Et,Be,lf=1,tl=2,Qi=3,Kr=4,uf=5,Xi=6,zt=7,nl=8,RB=9;Vn={},Vn[lf]="Boolean",Vn[tl]="<end>",Vn[Qi]="Identifier",Vn[Kr]="Keyword",Vn[uf]="Null",Vn[Xi]="Numeric",Vn[zt]="Punctuator",Vn[nl]="String",Vn[RB]="RegularExpression";var FB="ArrayExpression",MB="BinaryExpression",PB="CallExpression",LB="ConditionalExpression",Xy="Identifier",NB="Literal",OB="LogicalExpression",zB="MemberExpression",UB="ObjectExpression",GB="Property",HB="UnaryExpression",ht="Unexpected token %0",VB="Unexpected number",jB="Unexpected string",$B="Unexpected identifier",qB="Unexpected reserved word",WB="Unexpected end of input",z0="Invalid regular expression",U0="Invalid regular expression: missing /",Ky="Octal literals are not allowed in strict mode.",ZB="Duplicate data property in object literal not allowed in strict mode",yt="ILLEGAL",rl="Disabled.",YB=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),QB=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function cf(e,t){if(!e)throw new Error("ASSERT: "+t)}function dr(e){return e>=48&&e<=57}function G0(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function il(e){return"01234567".indexOf(e)>=0}function XB(e){return e===32||e===9||e===11||e===12||e===160||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function ol(e){return e===10||e===13||e===8232||e===8233}function al(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&YB.test(String.fromCharCode(e))}function ff(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&QB.test(String.fromCharCode(e))}const KB={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function Jy(){for(;H<Et;){const e=ee.charCodeAt(H);if(XB(e)||ol(e))++H;else break}}function H0(e){var t,n,r,i=0;for(n=e==="u"?4:2,t=0;t<n;++t)H<Et&&G0(ee[H])?(r=ee[H++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):ve({},ht,yt);return String.fromCharCode(i)}function JB(){var e,t,n,r;for(e=ee[H],t=0,e==="}"&&ve({},ht,yt);H<Et&&(e=ee[H++],!!G0(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&ve({},ht,yt),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,r=(t-65536&1023)+56320,String.fromCharCode(n,r))}function ew(){var e,t;for(e=ee.charCodeAt(H++),t=String.fromCharCode(e),e===92&&(ee.charCodeAt(H)!==117&&ve({},ht,yt),++H,e=H0("u"),(!e||e==="\\"||!al(e.charCodeAt(0)))&&ve({},ht,yt),t=e);H<Et&&(e=ee.charCodeAt(H),!!ff(e));)++H,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),ee.charCodeAt(H)!==117&&ve({},ht,yt),++H,e=H0("u"),(!e||e==="\\"||!ff(e.charCodeAt(0)))&&ve({},ht,yt),t+=e);return t}function eD(){var e,t;for(e=H++;H<Et;){if(t=ee.charCodeAt(H),t===92)return H=e,ew();if(ff(t))++H;else break}return ee.slice(e,H)}function tD(){var e,t,n;return e=H,t=ee.charCodeAt(H)===92?ew():eD(),t.length===1?n=Qi:KB.hasOwnProperty(t)?n=Kr:t==="null"?n=uf:t==="true"||t==="false"?n=lf:n=Qi,{type:n,value:t,start:e,end:H}}function V0(){var e=H,t=ee.charCodeAt(H),n,r=ee[H],i,o,a;switch(t){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++H,{type:zt,value:String.fromCharCode(t),start:e,end:H};default:if(n=ee.charCodeAt(H+1),n===61)switch(t){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return H+=2,{type:zt,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:H};case 33:case 61:return H+=2,ee.charCodeAt(H)===61&&++H,{type:zt,value:ee.slice(e,H),start:e,end:H}}}if(a=ee.substr(H,4),a===">>>=")return H+=4,{type:zt,value:a,start:e,end:H};if(o=a.substr(0,3),o===">>>"||o==="<<="||o===">>=")return H+=3,{type:zt,value:o,start:e,end:H};if(i=o.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return H+=2,{type:zt,value:i,start:e,end:H};if(i==="//"&&ve({},ht,yt),"<>=!+-*%&|^/".indexOf(r)>=0)return++H,{type:zt,value:r,start:e,end:H};ve({},ht,yt)}function nD(e){let t="";for(;H<Et&&G0(ee[H]);)t+=ee[H++];return t.length===0&&ve({},ht,yt),al(ee.charCodeAt(H))&&ve({},ht,yt),{type:Xi,value:parseInt("0x"+t,16),start:e,end:H}}function rD(e){let t="0"+ee[H++];for(;H<Et&&il(ee[H]);)t+=ee[H++];return(al(ee.charCodeAt(H))||dr(ee.charCodeAt(H)))&&ve({},ht,yt),{type:Xi,value:parseInt(t,8),octal:!0,start:e,end:H}}function tw(){var e,t,n;if(n=ee[H],cf(dr(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=H,e="",n!=="."){if(e=ee[H++],n=ee[H],e==="0"){if(n==="x"||n==="X")return++H,nD(t);if(il(n))return rD(t);n&&dr(n.charCodeAt(0))&&ve({},ht,yt)}for(;dr(ee.charCodeAt(H));)e+=ee[H++];n=ee[H]}if(n==="."){for(e+=ee[H++];dr(ee.charCodeAt(H));)e+=ee[H++];n=ee[H]}if(n==="e"||n==="E")if(e+=ee[H++],n=ee[H],(n==="+"||n==="-")&&(e+=ee[H++]),dr(ee.charCodeAt(H)))for(;dr(ee.charCodeAt(H));)e+=ee[H++];else ve({},ht,yt);return al(ee.charCodeAt(H))&&ve({},ht,yt),{type:Xi,value:parseFloat(e),start:t,end:H}}function iD(){var e="",t,n,r,i,o=!1;for(t=ee[H],cf(t==="'"||t==='"',"String literal must starts with a quote"),n=H,++H;H<Et;)if(r=ee[H++],r===t){t="";break}else if(r==="\\")if(r=ee[H++],!r||!ol(r.charCodeAt(0)))switch(r){case"u":case"x":ee[H]==="{"?(++H,e+=JB()):e+=H0(r);break;case"n":e+=`
251
+ `;break;case"r":e+="\r";break;case"t":e+=" ";break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:il(r)?(i="01234567".indexOf(r),i!==0&&(o=!0),H<Et&&il(ee[H])&&(o=!0,i=i*8+"01234567".indexOf(ee[H++]),"0123".indexOf(r)>=0&&H<Et&&il(ee[H])&&(i=i*8+"01234567".indexOf(ee[H++]))),e+=String.fromCharCode(i)):e+=r;break}else r==="\r"&&ee[H]===`
252
+ `&&++H;else{if(ol(r.charCodeAt(0)))break;e+=r}return t!==""&&ve({},ht,yt),{type:nl,value:e,octal:o,start:n,end:H}}function oD(e,t){let n=e;t.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(r,i)=>{if(parseInt(i,16)<=1114111)return"x";ve({},z0)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{ve({},z0)}try{return new RegExp(e,t)}catch{return null}}function aD(){var e,t,n,r,i;for(e=ee[H],cf(e==="/","Regular expression literal must start with a slash"),t=ee[H++],n=!1,r=!1;H<Et;)if(e=ee[H++],t+=e,e==="\\")e=ee[H++],ol(e.charCodeAt(0))&&ve({},U0),t+=e;else if(ol(e.charCodeAt(0)))ve({},U0);else if(n)e==="]"&&(n=!1);else if(e==="/"){r=!0;break}else e==="["&&(n=!0);return r||ve({},U0),i=t.substr(1,t.length-2),{value:i,literal:t}}function sD(){var e,t,n;for(t="",n="";H<Et&&(e=ee[H],!!ff(e.charCodeAt(0)));)++H,e==="\\"&&H<Et?ve({},ht,yt):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&ve({},z0,n),{value:n,literal:t}}function lD(){var e,t,n,r;return Be=null,Jy(),e=H,t=aD(),n=sD(),r=oD(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:H}}function uD(e){return e.type===Qi||e.type===Kr||e.type===lf||e.type===uf}function nw(){if(Jy(),H>=Et)return{type:tl,start:H,end:H};const e=ee.charCodeAt(H);return al(e)?tD():e===40||e===41||e===59?V0():e===39||e===34?iD():e===46?dr(ee.charCodeAt(H+1))?tw():V0():dr(e)?tw():V0()}function Ut(){const e=Be;return H=e.end,Be=nw(),H=e.end,e}function rw(){const e=H;Be=nw(),H=e}function cD(e){const t=new Sn(FB);return t.elements=e,t}function iw(e,t,n){const r=new Sn(e==="||"||e==="&&"?OB:MB);return r.operator=e,r.left=t,r.right=n,r}function fD(e,t){const n=new Sn(PB);return n.callee=e,n.arguments=t,n}function hD(e,t,n){const r=new Sn(LB);return r.test=e,r.consequent=t,r.alternate=n,r}function j0(e){const t=new Sn(Xy);return t.name=e,t}function sl(e){const t=new Sn(NB);return t.value=e.value,t.raw=ee.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function ow(e,t,n){const r=new Sn(zB);return r.computed=e==="[",r.object=t,r.property=n,r.computed||(n.member=!0),r}function dD(e){const t=new Sn(UB);return t.properties=e,t}function aw(e,t,n){const r=new Sn(GB);return r.key=t,r.value=n,r.kind=e,r}function pD(e,t){const n=new Sn(HB);return n.operator=e,n.argument=t,n.prefix=!0,n}function ve(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,(o,a)=>(cf(a<r.length,"Message reference must be in range"),r[a]));throw n=new Error(i),n.index=H,n.description=i,n}function hf(e){e.type===tl&&ve(e,WB),e.type===Xi&&ve(e,VB),e.type===nl&&ve(e,jB),e.type===Qi&&ve(e,$B),e.type===Kr&&ve(e,qB),ve(e,ht,e.value)}function _t(e){const t=Ut();(t.type!==zt||t.value!==e)&&hf(t)}function je(e){return Be.type===zt&&Be.value===e}function $0(e){return Be.type===Kr&&Be.value===e}function gD(){const e=[];for(H=Be.start,_t("[");!je("]");)je(",")?(Ut(),e.push(null)):(e.push(Ki()),je("]")||_t(","));return Ut(),cD(e)}function sw(){H=Be.start;const e=Ut();return e.type===nl||e.type===Xi?(e.octal&&ve(e,Ky),sl(e)):j0(e.value)}function mD(){var e,t,n,r;if(H=Be.start,e=Be,e.type===Qi)return n=sw(),_t(":"),r=Ki(),aw("init",n,r);if(e.type===tl||e.type===zt)hf(e);else return t=sw(),_t(":"),r=Ki(),aw("init",t,r)}function bD(){var e=[],t,n,r,i={},o=String;for(H=Be.start,_t("{");!je("}");)t=mD(),t.key.type===Xy?n=t.key.name:n=o(t.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?ve({},ZB):i[r]=!0,e.push(t),je("}")||_t(",");return _t("}"),dD(e)}function yD(){_t("(");const e=q0();return _t(")"),e}const wD={if:1};function vD(){var e,t,n;if(je("("))return yD();if(je("["))return gD();if(je("{"))return bD();if(e=Be.type,H=Be.start,e===Qi||wD[Be.value])n=j0(Ut().value);else if(e===nl||e===Xi)Be.octal&&ve(Be,Ky),n=sl(Ut());else{if(e===Kr)throw new Error(rl);e===lf?(t=Ut(),t.value=t.value==="true",n=sl(t)):e===uf?(t=Ut(),t.value=null,n=sl(t)):je("/")||je("/=")?(n=sl(lD()),rw()):hf(Ut())}return n}function xD(){const e=[];if(_t("("),!je(")"))for(;H<Et&&(e.push(Ki()),!je(")"));)_t(",");return _t(")"),e}function AD(){H=Be.start;const e=Ut();return uD(e)||hf(e),j0(e.value)}function ED(){return _t("."),AD()}function _D(){_t("[");const e=q0();return _t("]"),e}function SD(){var e,t,n;for(e=vD();;)if(je("."))n=ED(),e=ow(".",e,n);else if(je("("))t=xD(),e=fD(e,t);else if(je("["))n=_D(),e=ow("[",e,n);else break;return e}function lw(){const e=SD();if(Be.type===zt&&(je("++")||je("--")))throw new Error(rl);return e}function df(){var e,t;if(Be.type!==zt&&Be.type!==Kr)t=lw();else{if(je("++")||je("--"))throw new Error(rl);if(je("+")||je("-")||je("~")||je("!"))e=Ut(),t=df(),t=pD(e.value,t);else{if($0("delete")||$0("void")||$0("typeof"))throw new Error(rl);t=lw()}}return t}function uw(e){let t=0;if(e.type!==zt&&e.type!==Kr)return 0;switch(e.value){case"||":t=1;break;case"&&":t=2;break;case"|":t=3;break;case"^":t=4;break;case"&":t=5;break;case"==":case"!=":case"===":case"!==":t=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11;break}return t}function CD(){var e,t,n,r,i,o,a,s,u,l;if(e=Be,u=df(),r=Be,i=uw(r),i===0)return u;for(r.prec=i,Ut(),t=[e,Be],a=df(),o=[u,r,a];(i=uw(Be))>0;){for(;o.length>2&&i<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,u=o.pop(),t.pop(),n=iw(s,u,a),o.push(n);r=Ut(),r.prec=i,o.push(r),t.push(Be),n=df(),o.push(n)}for(l=o.length-1,n=o[l],t.pop();l>1;)t.pop(),n=iw(o[l-1].value,o[l-2],n),l-=2;return n}function Ki(){var e,t,n;return e=CD(),je("?")&&(Ut(),t=Ki(),_t(":"),n=Ki(),e=hD(e,t,n)),e}function q0(){const e=Ki();if(je(","))throw new Error(rl);return e}function kD(e){ee=e,H=0,Et=ee.length,Be=null,rw();const t=q0();if(Be.type!==tl)throw new Error("Unexpect token after expression.");return t}var TD={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function cw(e){function t(a,s,u,l){let c=e(s[0]);return u&&(c=u+"("+c+")",u.lastIndexOf("new ",0)===0&&(c="("+c+")")),c+"."+a+(l<0?"":l===0?"()":"("+s.slice(1).map(e).join(",")+")")}function n(a,s,u){return l=>t(a,l,s,u)}const r="new Date",i="String",o="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",hypot:"Math.hypot",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(a){a.length<3&&Ke("Missing arguments to clamp function."),a.length>3&&Ke("Too many arguments to clamp function.");const s=a.map(e);return"Math.max("+s[1]+", Math.min("+s[2]+","+s[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:o,test:n("test",o),if:function(a){a.length<3&&Ke("Missing arguments to if function."),a.length>3&&Ke("Too many arguments to if function.");const s=a.map(e);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function ID(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function BD(e){e=e||{};const t=e.allowed?nc(e.allowed):{},n=e.forbidden?nc(e.forbidden):{},r=e.constants||TD,i=(e.functions||cw)(f),o=e.globalvar,a=e.fieldvar,s=Zt(o)?o:p=>`${o}["${p}"]`;let u={},l={},c=0;function f(p){if(Fe(p))return p;const m=h[p.type];return m==null&&Ke("Unsupported type: "+p.type),m(p)}const h={Literal:p=>p.raw,Identifier:p=>{const m=p.name;return c>0?m:Lo(n,m)?Ke("Illegal identifier: "+m):Lo(r,m)?r[m]:Lo(t,m)?m:(u[m]=1,s(m))},MemberExpression:p=>{const m=!p.computed,y=f(p.object);m&&(c+=1);const w=f(p.property);return y===a&&(l[ID(w)]=1),m&&(c-=1),y+(m?"."+w:"["+w+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&Ke("Illegal callee type: "+p.callee.type);const m=p.callee.name,y=p.arguments,w=Lo(i,m)&&i[m];return w||Ke("Unrecognized function: "+m),Zt(w)?w(y):w+"("+y.map(f).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(f).join(",")+"]",BinaryExpression:p=>"("+f(p.left)+" "+p.operator+" "+f(p.right)+")",UnaryExpression:p=>"("+p.operator+f(p.argument)+")",ConditionalExpression:p=>"("+f(p.test)+"?"+f(p.consequent)+":"+f(p.alternate)+")",LogicalExpression:p=>"("+f(p.left)+p.operator+f(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(f).join(",")+"}",Property:p=>{c+=1;const m=f(p.key);return c-=1,m+":"+f(p.value)}};function d(p){const m={code:f(p),globals:Object.keys(u),fields:Object.keys(l)};return u={},l={},m}return d.functions=i,d.constants=r,d}function fw(e,t,n){return n=(n-e)/(t-e),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}function aa(e,t=0,n=1){return Math.max(t,Math.min(n,e))}function DD(e,t,n){return aa((n-e)/(t-e),0,1)}const jn=1,Jr=2,W0=4;class tt{constructor(t){Z(this,Eo);Pt(this,"paramMediatorProvider",null);this.paramMediatorProvider=t,this.children=[],this.parent=void 0,this.completed=!1}get behavior(){return 0}reset(){this.completed=!1;for(const t of this.children)t.reset()}initialize(){}setParent(t){this.parent=t}addChild(t){if(t.parent)throw new Error("Cannot add the child! It already has a parent.");return this.children.push(t),t.setParent(this),X(this,Eo,Wu).call(this),this}adopt(t){t.parent&&t.parent.removeChild(t),this.addChild(t)}adoptChildrenOf(t){for(const n of t.children)this.adopt(n)}insertAsParent(t){var n;if(this.isRoot())throw new Error("Cannot insert a new parent for a root node!");t.parent=this.parent,this.parent.children[this.parent.children.indexOf(this)]=t,X(n=this.parent,Eo,Wu).call(n),this.parent=void 0,t.addChild(this)}removeChild(t){const n=this.children.indexOf(t);if(n>-1)this.children.splice(n,1),t.parent=void 0,X(this,Eo,Wu).call(this);else throw new Error("Trying to remove an unknown child node!")}excise(){var t;if(this.isRoot())throw new Error("Cannot excise root node!");if(this.isTerminal())this.parent.removeChild(this);else if(this.children.length==1){const n=this.children[0];n.setParent(this.parent),this.parent.children[this.parent.children.indexOf(this)]=n,X(t=this.parent,Eo,Wu).call(t),this.setParent(void 0),this.children.length=0}else throw new Error("Cannot excise a node that has multiple children!")}isRoot(){return!this.parent}isBranching(){return this.children.length>1}isTerminal(){return this.children.length==0}visit(t){t(this);for(const n of this.children)n.visit(t);t.afterChildren&&t.afterChildren(this)}subtreeToString(t=0){const n=this.children.map(r=>r.subtreeToString(t+1)).join("");return`${" ".repeat(t*2)}* ${this.constructor.name}${("identifier"in this&&this.identifier?": "+this.identifier:"")??""}
253
+ ${n}`}handle(t){this._propagate(t)}complete(){this.completed=!0;for(const t of this.children)t.complete()}beginBatch(t){for(const n of this.children)n.beginBatch(t)}get paramMediator(){if(this.paramMediatorProvider)return this.paramMediatorProvider.paramMediator;if(!this.parent)throw new Error("Cannot find paramMediator!");return this.parent.paramMediator}repropagate(){if(this.parent)this.parent.repropagate();else throw new Error("Cannot repropagate data, no FlowNode with stored data found!")}_propagate(t){}}Eo=new WeakSet,Wu=function(){this._propagate=Function("children",hs(this.children.length).map(t=>`const child${t} = children[${t}];`).join(`
254
+ `)+`return function propagate(datum) {${hs(this.children.length).map(t=>`child${t}.handle(datum);`).join(`
255
+ `)}}`)(this.children)};function hw(e){return e.type=="file"}function RD(e){return e.type=="facet"}const ei="_uniqueId",dw=1e4,pw=[null];class Z0 extends tt{get behavior(){return Jr}constructor(t){super(),this.params=t,this.as=t.as??ei,this._blocks=[],this._usedBlocks=0,this._id=-1}initialize(){}reset(){super.reset(),this._usedBlocks=0,this._id=-1}handle(t){t[this.as]=this._nextId(),this._propagate(t)}_nextId(){return++this._id%dw==0&&(this._id=this._getBlock()*dw),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const t=pw.length;return pw[t]=this,this._blocks.push(t),this._usedBlocks++,t}}function gw(e){return{type:"single",datum:e,uniqueId:e==null?void 0:e[ei]}}function FD(e,t,n=!0){if(!e||!t)return!1;if(bw(e))return e.uniqueId==null?n:e.uniqueId===t[ei];if(MD(e))return e.uniqueIds.size==0?n:e.uniqueIds.has(t[ei]);throw new Error("Not a selection: "+JSON.stringify(e))}function mw(e){return`selectionTest(${gf(e.param)}, datum, ${!!(e.empty??!0)})`}function bw(e){return e.type==="single"}function MD(e){return e.type==="multi"}const yw={clamp:aa,isArray:xt,isBoolean:us,isDefined(e){return e!==void 0},isNumber:Tt,isObject:kt,isRegExp:uS,isString:Fe,isValid(e){return e!=null&&e===e},lerp:i1,linearstep:DD,smoothstep:fw,selectionTest:FD};function PD(e){const t=cw(e);for(const n in yw)t[n]=`this.${n}`;return t}const LD=BD({forbidden:[],allowed:["datum","undefined"],globalvar:"globalObject",fieldvar:"datum",functions:PD});function ND(e,t={}){try{const n=kD(e),r=LD(n),i=Function("datum","globalObject",`"use strict";
256
+ try {
257
+ return (${r.code});
258
+ } catch (e) {
259
+ throw new Error("Error evaluating expression: " + ${JSON.stringify(e)} + ", " + e.message, e);
260
+ }`).bind(yw),o=a=>i(a,t);return o.fields=r.fields,o.globals=r.globals,o.code=r.code,o}catch(n){throw new Error(`Invalid expression: ${e}, ${n.message}`)}}class OD{constructor(t){Z(this,Ai,void 0);Pt(this,"paramListeners");Z(this,_o,new Map);Z(this,$a,new Map);Z(this,gu,new Map);Z(this,mu,void 0);le(this,mu,t??(()=>{})),le(this,Ai,new Map),this.paramListeners=new Map}registerParam(t){const n=t.name;if("value"in t&&"expr"in t)throw new Error(`The parameter "${n}" must not have both value and expr properties!`);let r;if(t.push=="outer"){const i=this.findMediatorForParam(n);if(!i)throw new Error(`Parameter "${n}" not found in outer scope!`);const o=i.paramConfigs.get(n);if("expr"in o||"select"in o)throw new Error(`The outer parameter "${n}" must not have expr or select properties!`);r=i.getSetter(n),z(this,_o).set(n,r)}else if("value"in t)r=this.allocateSetter(n,t.value);else if("expr"in t){const i=this.createExpression(t.expr),o=this.allocateSetter(n,i(null));i.addListener(()=>o(i(null))),r=a=>{}}else r=this.allocateSetter(n,null);return"select"in t&&(Fe(t.select)?t.select:t.select.type)=="point"&&r(gw(null)),z(this,gu).set(n,t),r}allocateSetter(t,n,r=!1){if(gf(t),z(this,_o).has(t))throw new Error("Setter already allocated for parameter: "+t);const i=o=>{const a=z(this,Ai).get(t);if(o!==a){z(this,Ai).set(t,o);const s=this.paramListeners.get(t);if(s&&!r)for(const u of s)u()}};return i(n),z(this,_o).set(t,i),i}getSetter(t){const n=z(this,_o).get(t);if(!n)throw new Error("Setter not found for parameter: "+t);return n}getValue(t){return z(this,Ai).get(t)}findValue(t){const n=this.findMediatorForParam(t);return n==null?void 0:n.getValue(t)}get paramConfigs(){return z(this,gu)}findMediatorForParam(t){var n;return z(this,Ai).has(t)?this:(n=z(this,mu).call(this))==null?void 0:n.findMediatorForParam(t)}createExpression(t){if(z(this,$a).has(t))return z(this,$a).get(t);const n={},r=ND(t,n),i=new Map;for(const a of r.globals){const s=this.findMediatorForParam(a);if(!s)throw new Error(`Unknown variable "${a}" in expression: ${t}`);i.set(a,s),Object.defineProperty(n,a,{enumerable:!0,get(){return s.getValue(a)}})}const o=new Set;return r.addListener=a=>{for(const[s,u]of i){const l=u.paramListeners.get(s)??new Set;u.paramListeners.set(s,l),l.add(a),o.add(a)}},r.invalidate=()=>{var a;for(const[s,u]of i)for(const l of o)(a=u.paramListeners.get(s))==null||a.delete(l)},r.identifier=()=>r.code,z(this,$a).set(t,r),r}evaluateAndGet(t){return this.createExpression(t)()}}Ai=new WeakMap,_o=new WeakMap,$a=new WeakMap,gu=new WeakMap,mu=new WeakMap;function Dt(e){return typeof e=="object"&&e!=null&&"expr"in e&&Fe(e.expr)}function Yt(e){if(Dt(e))throw new Error(`ExprRef ${JSON.stringify(e)} not allowed here. Expected a scalar value.`);return e}function zD(e){return("expr"in e||"bind"in e)&&!("select"in e)}function pf(e,t,n){const r={...t},i=[],o=a=>{i.push(a),i.length===1&&queueMicrotask(()=>{n(i.slice()),i.length=0})};for(const[a,s]of Object.entries(t))if(Dt(s)){const u=e.createExpression(s.expr);n&&u.addListener(()=>o(a)),Object.defineProperty(r,a,{enumerable:!0,get(){return u()}})}else r[a]=s;return r}function gf(e){if(!/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(e))throw new Error(`Invalid parameter name: ${e}. Must be a valid JavaScript identifier.`);return e}function UD(e){return Object.assign(()=>e,{addListener:()=>{},invalidate:()=>{},identifier:()=>"constant",fields:[],globals:[],code:JSON.stringify(e)})}function ww(e,t,n){if(!e)return;function r(o){const a=o;return a.fields??(a.fields=[]),a.constant=a.fields.length===0,a.channelDef=t,a.channel=e,a.scaleChannel=((an(t)&&t.resolutionChannel)??(fl(e)&&e))||void 0,"param"in t?(a.predicate=n.createExpression(mw(t)),a.predicate.param=t.param,a.predicate.empty=t.empty??!0):(a.predicate=UD(!0),a.predicate.empty=!1),a.asNumberAccessor=()=>a,a}function i(o){if(Dt(o)){const a=r(n.createExpression(o.expr));if(a.fields.length>0)throw new Error("Expression in DatumDef/ValueDef cannot access data fields: "+o.expr);return a}else{const a=o;return r(()=>a)}}if(ti(t))try{return r(Me(t.field))}catch(o){throw new Error(`Invalid field definition: ${o.message}`)}else{if(ul(t))return r(n.createExpression(t.expr));if(ll(t))return i(t.datum);if(on(t))return i(t.value);throw new Error(`Invalid channel definition: ${JSON.stringify(t)}. Cannot create an accessor for channel ${e}!`)}}function GD(e,t,n){const r=[];if($D(t)||qD(t)){const i=Array.isArray(t.condition)?t.condition:[t.condition];for(const o of i)r.push(ww(e,o,n))}if(r.push(ww(e,t,n)),r.filter(i=>!i.constant).length>1)throw new Error("Only one accessor can be non-constant. Channel: "+e);return r}function HD(e,t){const n={},r=i=>{var o;return(o=e.getScaleResolution(i))==null?void 0:o.scale};for(const[i,o]of Object.entries(t))o&&(n[i]=VD(GD(i,o,e.paramMediator),r));return n}function VD(e,t){if(e.length===1)return vw(e[0],t);const n=e.map(o=>o.predicate),r=e.map(o=>vw(o,t));return Object.assign(o=>{for(let a=0;a<r.length;a++)if(n[a](o))return r[a](o)},{constant:!1,accessors:r.map(o=>o.accessors[0]),dataAccessor:r.map(o=>o.dataAccessor).find(o=>o),scale:r.map(o=>o.scale).find(o=>o),channelDef:e.at(-1).channelDef})}function vw(e,t){const{channel:n,scaleChannel:r,channelDef:i}=e,o=e.scaleChannel?t(r):void 0;if(r&&!o)throw new Error(`Missing scale! "${n}": ${JSON.stringify(i)}`);return Object.assign(o?a=>o(e(a)):a=>e(a),{scale:o,constant:e.constant,accessors:[e],dataAccessor:e.constant?void 0:e,channelDef:i})}function on(e){return e&&"value"in e}function ti(e){return e&&"field"in e}function ll(e){return e&&"datum"in e}function an(e){return ti(e)||ll(e)||ul(e)||xw(e)}function jD(e,t){const n=e.mark.encoding[t];if(an(n))return n;throw new Error("Not a channel def with scale!")}function xw(e){return e&&"chrom"in e}function ul(e){return e&&"expr"in e}function $D(e){return(ti(e)||ll(e))&&"condition"in e}function qD(e){return on(e)&&"condition"in e}const sa=["x","y"],WD=["x2","y2"],ZD=[...sa,...WD];function Aw(e){return sa.includes(e)}function cl(e){return ZD.includes(e)}const Ew={x:"x2",y:"y2"},_w=Object.fromEntries(Object.entries(Ew).map(e=>[e[1],e[0]]));function Sw(e){return e in _w}function YD(e){const t=Ew[e];if(t)return t;throw new Error(`${e} has no secondary channel!`)}function Ji(e){return _w[e]??e}function ni(e){return["color","fill","stroke"].includes(Ji(e))}function mf(e){return["shape"].includes(e)}function fl(e){return["x","y","x2","y2","color","fill","stroke","opacity","fillOpacity","strokeOpacity","strokeWidth","size","shape","angle","dx","dy"].includes(e)}function QD(e){switch(e){case"shape":return["circle","square","cross","diamond","triangle-up","triangle-right","triangle-down","triangle-left","tick-up","tick-right","tick-down","tick-left"]}}function Cw(e){if(!mf(e))throw new Error("Not a discrete channel: "+e);const t=new Map(QD(e).map((n,r)=>[n,r]));return n=>{const r=t.get(n);if(r!==void 0)return r;throw new Error(`Invalid value for "${e}" channel: ${n}`)}}function Y0(){const e=t=>t;return e.invert=t=>t,e.copy=Y0,e.invertRange=()=>{},e.type="null",e}const hl="attr_",XD="uDomain_",KD="range_",JD="accessor_",kw="scale_",eR="getScaled_",Q0="uRangeTexture_",X0="uParam_",Tw=3402823466e29;function tR(e){const t=e.match(/^(?:(\w+)-)?(\w+)$/);if(!t)throw new Error("Not a scale type: "+e);return{family:t[1]||"continuous",transform:t[2]}}function dl(e,t){return`${JD}${e}_${t}`}function nR(e,t,n){let r;if(mf(e))r=eo(Cw(e)(n));else if(Fe(n))if(ni(e))r=sR(n);else throw new Error(`String values are not supported on the "${e}" channel: ${n}`);else if(us(n))r=eo(n?1:0);else if(n===null)if(ni(e))r=eo([0,0,0]);else throw new Error(`null value is not supported on the "${e}" chanel.`);else r=eo(n);const i=dl(e,t),o=`
261
+ ${r.type} ${i}() {
255
262
  // Constant value
256
- return ${n};
257
- }`}function ID(e){let t="float",n=o=>o;$r(e)&&(t="vec3",n=o=>pw(o));const r=`u${PD(e)}`,i=` // Dynamic value
258
- uniform ${t} ${r};`;let a=`
259
- #define ${e}_DEFINED
260
- ${t} ${z0}${e}() {
261
- // Dynamic value
262
263
  return ${r};
263
- }`;return{channel:e,uniformName:r,uniformGlsl:i,scaleGlsl:a,adjuster:n}}function BD(e,t,n,r=[e]){if(on(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);const i=t?t.scale:Nc(),a=qi(e),o=uw+yw(r),s=SD+a,u=CD+a,l=Hn(i.type),c=cf(i.type),h=c&&G0(i.domain())?"uvec2":c||l?"uint":"float",d=i.domain?i.domain().length:void 0;let p;const m=[];m.push(""),m.push("/".repeat(70)),m.push(`// Channel: ${e}`),m.push(""),m.push(`#define ${e}_DEFINED`);const{transform:y}=kD(i.type),w=(te,...me)=>RD.apply(null,[te,"value",...me]);let x;switch(y){case"linear":x=w("scaleLinear","domain",u);break;case"log":x=w("scaleLog","domain",u,i.base());break;case"symlog":x=w("scaleSymlog","domain",u,i.constant());break;case"pow":case"sqrt":x=w("scalePow","domain",u,i.exponent());break;case"index":case"locus":x=w("scaleBandHp","domain",u,i.paddingInner(),i.paddingOuter(),i.align(),n.band??.5);break;case"point":case"band":x=w("scaleBand","domain",u,i.paddingInner(),i.paddingOuter(),i.align(),n.band??.5);break;case"ordinal":case"null":case"identity":x=w("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${i.type}! ${e}: ${JSON.stringify(n)}`)}const S=ww(i,e);let _;if(S&&e==a){const te=i.props.range??[];if(It(te)||te.some(It)){if(S.length<1||S.length>4)throw new Error(`A range with ExprRefs must have 1-4 elements, not ${S.length}! Range: ${JSON.stringify(S)}`);_=` uniform ${dw(S.length)} ${u};`}else if(S.length&&S.every(Tt)){const me=gw(S);m.push(`const ${me.type} ${u} = ${me};`)}}const T=$r(e)?"vec3":"float";let I;if($r(e)){const te=U0+a;if(e==a&&m.push(`uniform sampler2D ${te};`),yt(i.type))I=`getInterpolatedColor(${te}, transformed)`;else if(Hn(i.type)||ji(i.type))I=`getDiscreteColor(${te}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(i.type==="ordinal"||ji(i.type)){const te=U0+a;e==a&&m.push(`uniform sampler2D ${te};`),I=`getDiscreteColor(${te}, int(transformed)).r`}const[B,R]=Qs(n)?[void 0,` uniform highp ${h} ${o};`]:[`in highp ${h} ${o};`,void 0],M=[],H=yt(i.type)&&d>2,O=ji(i.type)||H;if(M.push("int slot = 0;"),O){const te=s;M.push(H?`while (slot < ${te}.length() - 2 && value >= ${te}[slot + 1]) { slot++; }`:`while (slot < ${te}.length() && value >= ${te}[slot]) { slot++; }`)}const re=yt(i.type)||ji(i.type)||["band","point"].includes(i.type);if(x){const te=s;re&&(c?M.push(`vec3 domain = ${te};`):M.push(`vec2 domain = vec2(${te}[slot], ${te}[slot + 1]);`)),M.push(`float transformed = ${x};`),H&&M.push(`transformed = (float(slot) + transformed) / (float(${te}.length() - 1));`)}else M.push("float transformed = float(slot);");"clamp"in i&&i.clamp()&&M.push(`transformed = clampToRange(transformed, ${gw(S)});`),M.push(`return ${I??"transformed"};`),m.push(`
264
- ${T} ${cw}${e}(${h} value) {
265
- ${M.map(te=>` ${te}
264
+ }`;return{channel:e,accessorGlsl:o,accessorFunctionName:i}}function rR(e,t){let n="float",r=u=>u;ni(e)&&(n="vec3",r=u=>Fw(u));const i=`u${hR(e)}_${t}`,o=` // Dynamic value
265
+ uniform ${n} ${i};`,a=dl(e,t);let s=`
266
+ ${n} ${a}() {
267
+ // Dynamic value
268
+ return ${i};
269
+ }`;return{channel:e,uniformName:i,uniformGlsl:o,accessorGlsl:s,accessorFunctionName:a,adjuster:r}}function Iw(e,t,n,r=[e]){const{attributeType:i}=pl(t,e),o=hl+J0(r),a=`in highp ${i} ${o};`,s=dl(e,n),u=`
270
+ ${i} ${s}() {
271
+ return ${o};
272
+ }`;return{channel:e,attributeName:o,attributeGlsl:a,accessorGlsl:u,accessorFunctionName:s}}function iR(e,t,n){const{attributeType:r}=pl(t,e),i=hl+J0(e),o=` uniform highp ${r} ${i};`,a=dl(e,n),s=`
273
+ ${r} ${a}() {
274
+ return ${i};
275
+ }`;return{channel:e,uniformName:i,uniformGlsl:o,accessorGlsl:s,accessorFunctionName:a}}function oR(e,t,n){t??(t=Y0());const r=Ji(e),i=XD+r,o=KD+r,{hp:a,attributeType:s}=pl(t,e),u=t.domain?t.domain().length:void 0;let l;const c=[];c.push(""),c.push("/".repeat(70)),c.push(`// Channel: ${e}`),c.push("");const{transform:f}=tR(t.type),h=(I,...D)=>lR.apply(null,[I,"value",...D]);let d;switch(f){case"linear":d=h("scaleLinear","domain",o);break;case"log":d=h("scaleLog","domain",o,t.base());break;case"symlog":d=h("scaleSymlog","domain",o,t.constant());break;case"pow":case"sqrt":d=h("scalePow","domain",o,t.exponent());break;case"index":case"locus":d=h("scaleBandHp","domain",o,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"point":case"band":d=h("scaleBand","domain",o,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"ordinal":case"null":case"identity":d=h("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${t.type}! ${e}: ${JSON.stringify(n)}`)}const p=Ow(t,e);let m;if(p&&e==r){const I=t.props.range??[];if(Dt(I)||I.some(Dt)){if(p.length<1||p.length>4)throw new Error(`A range with ExprRefs must have 1-4 elements, not ${p.length}! Range: ${JSON.stringify(p)}`);m=` uniform ${Dw(p.length)} ${o};`}else if(p.length&&p.every(Tt)){const D=Mw(p);c.push(`const ${D.type} ${o} = ${D};`)}}const y=Rw(e);let w;if(ni(e)){const I=Q0+r;if(e==r&&c.push(`uniform sampler2D ${I};`),bt(t.type))w=`getInterpolatedColor(${I}, transformed)`;else if(Xr(t.type)||Yi(t.type))w=`getDiscreteColor(${I}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(t.type==="ordinal"||Yi(t.type)){const I=Q0+r;e==r&&c.push(`uniform sampler2D ${I};`),w=`getDiscreteColor(${I}, int(transformed)).r`}const A=[],S=bt(t.type)&&u>2,_=Yi(t.type)||S;if(A.push("int slot = 0;"),_){const I=i;A.push(S?`while (slot < ${I}.length() - 2 && value >= ${I}[slot + 1]) { slot++; }`:`while (slot < ${I}.length() && value >= ${I}[slot]) { slot++; }`)}const k=bt(t.type)||Yi(t.type)||["band","point"].includes(t.type);if(d){const I=i;k&&(a?A.push(`vec3 domain = ${I};`):A.push(`vec2 domain = vec2(${I}[slot], ${I}[slot + 1]);`)),A.push(`float transformed = ${d};`),S&&A.push(`transformed = (float(slot) + transformed) / (float(${I}.length() - 1));`)}else A.push("float transformed = float(slot);");"clamp"in t&&t.clamp()&&A.push(`transformed = clampToRange(transformed, ${Mw(p)});`),A.push(`return ${w??"transformed"};`),c.push(`
276
+ ${y} ${kw}${e}(${s} value) {
277
+ ${A.map(I=>` ${I}
266
278
  `).join("")}
267
- }`),m.push(`
268
- ${T} ${z0}${e}() {
269
- return ${cw}${e}(${o});
270
- }`);const se=m.join(`
271
- `);if(re&&e==a){const te=yt(i.type)||ji(i.type)?d:2;p=c?` highp vec3 ${s};`:` mediump float ${s}[${te}];`}return{attributeName:o,attributeGlsl:B,markUniformGlsl:R,glsl:se,domainUniformName:s,domainUniform:p,rangeName:u,rangeUniform:_}}function hw(e){if(!Tt(e))throw new Error(`Not a number: ${e}`);if(e==1/0)return""+fw;if(e==-1/0)return""+-fw;{let t=`${e}`;return/^(-)?\d+$/.test(t)&&(t+=".0"),t}}function Xi(e){typeof e=="number"&&(e=[e]);const t=e.length;if(t<1||t>4)throw new Error("Invalid number of components: "+t);const n=dw(t),r=`${n}(${e.map(hw).join(", ")})`;return Object.assign(r,{type:n,numComponents:t})}function dw(e){switch(e){case 1:return"float";case 2:return"vec2";case 3:return"vec3";case 4:return"vec4";default:throw new Error("Invalid number of components: "+e)}}function pw(e){const t=Gr(e).rgb();return[t.r,t.g,t.b].map(n=>n/255)}function DD(e){return Xi(pw(e))}function gw(e){return Xi([e[0],Rs(e)])}function RD(e,...t){const n=[];for(const r of t)Tt(r)?n.push(hw(r)):xt(r)?n.push(Xi(r)):n.push(r);return`${e}(${n.join(", ")})`}function cf(e){return e=="index"||e=="locus"}function G0(e){return e[1]>2**32}const H0=2**12;function mw(e,t=[]){const n=e%H0,r=(e-n)/H0;return t[0]=r,t[1]=n,t}function FD(e){const t=e%H0;return[e-t,t]}function MD(e){return[...FD(e[0]),e[1]-e[0]]}function bw(e){const t=new ir([],JSON.stringify);for(const[n,r]of Object.entries(e)){const i=r.channelDef;if($i(i)){const o=[i.field,r.scale?(yt(r.scale.type)||ji(r.scale.type))??!1:!1];t.set(o,[...t.get(o)??[],n])}}return t}function yw(e){return Ot(e).join("_")}function PD(e){return e[0].toUpperCase()+e.slice(1)}const ww=(e,t)=>Pc(e.type)||yt(e.type)&&$r(t)?[0,1]:e.range?e.range():void 0,vw=1e4;class LD{constructor(t){Y(this,xh);Y(this,Ah);Y(this,uu,!1);this.size=t,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}configure(){if(G(this,uu))throw new Error("Already configured!");K(this,xh,d4).call(this),K(this,Ah,p4).call(this),de(this,uu,!0)}addConverter(t,n){const r=this.createUpdater(uw+t,n.numComponents||1,n.targetArrayType??Float32Array,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?a=>r(i(a)):a=>r(i(a)))}createUpdater(t,n,r=Float32Array,i=void 0){if(!Tt(this.size))throw new Error("The number of vertices must be defined!");let a,o,s=0;const u=new r(this.size*n);if(this.arrays[t]={data:u,numComponents:n},n==1){let l=0;const c=f=>{l=+f};a=()=>{u[s++]=l},o=c}else{let l=i??[0];const c=i?f=>{}:f=>{l=f};switch(n){case 1:break;case 2:a=()=>{u[s++]=l[0],u[s++]=l[1]},o=c;break;case 3:a=()=>{u[s++]=l[0],u[s++]=l[1],u[s++]=l[2]},o=c;break;case 4:a=()=>{u[s++]=l[0],u[s++]=l[1],u[s++]=l[2],u[s++]=l[3]},o=c;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(a),o}pushAll(){throw new Error("Call configure() first!")}updateFromDatum(t){throw new Error("Call configure() first!")}pushFromDatum(t){this.updateFromDatum(t),this.pushAll()}}uu=new WeakMap,xh=new WeakSet,d4=function(){if(this.size>vw){const t=this.pushers.map((r,i)=>`const p${i} = that.pushers[${i}];`).join(`
279
+ }`);const B=c.join(`
280
+ `);if(k&&e==r){const I=bt(t.type)||Yi(t.type)?u:2;l=a?` highp vec3 ${i};`:` mediump float ${i}[${I}];`}return{glsl:B,domainUniformName:i,domainUniform:l,rangeUniformName:o,rangeUniform:m}}function aR(e,t){const n=Rw(e),r=[],i=[];for(let o=0;o<t.length;o++){const a=t[o],s=dl(e,o),{param:u,empty:l}=a.predicate,c=X0+gf(u),f=hl+"uniqueId";r.push(u?`${f} == ${c}${l?` || ${c} == uint(0)`:""}`:null),i.push(a.scaleChannel?`return ${kw}${e}(${s}());`:`return ${s}();`)}return`${n} ${eR}${e}() {
281
+ ${dR(r,i)}
282
+ }
283
+
284
+ #define ${e}_DEFINED`}function Bw(e){if(!Tt(e))throw new Error(`Not a number: ${e}`);if(e==1/0)return""+Tw;if(e==-1/0)return""+-Tw;{let t=`${e}`;return/^(-)?\d+$/.test(t)&&(t+=".0"),t}}function eo(e){typeof e=="number"&&(e=[e]);const t=e.length;if(t<1||t>4)throw new Error("Invalid number of components: "+t);const n=Dw(t),r=`${n}(${e.map(Bw).join(", ")})`;return Object.assign(r,{type:n,numComponents:t})}function Dw(e){switch(e){case 1:return"float";case 2:return"vec2";case 3:return"vec3";case 4:return"vec4";default:throw new Error("Invalid number of components: "+e)}}function Rw(e){return ni(e)?"vec3":e=="uniqueId"?"uint":"float"}function Fw(e){const t=Wr(e).rgb();return[t.r,t.g,t.b].map(n=>n/255)}function sR(e){return eo(Fw(e))}function Mw(e){return eo([e[0],Ns(e)])}function lR(e,...t){const n=[];for(const r of t)Tt(r)?n.push(Bw(r)):xt(r)?n.push(eo(r)):n.push(r);return`${e}(${n.join(", ")})`}function pl(e,t){var a;const n=e&&Xr(e.type),r=e&&Pw(e.type),i=r&&uR(e.domain()),o=i?{attributeType:"uvec2",arrayConstructor:Uint32Array}:r?{attributeType:"uint",arrayConstructor:Uint32Array}:n?{attributeType:"uint",arrayConstructor:Uint16Array}:t=="uniqueId"?{attributeType:"uint",arrayConstructor:Uint32Array}:{attributeType:"float",arrayConstructor:Float32Array};return Object.assign(o,{numComponents:+(((a=o.attributeType.match(/^vec([234])$/))==null?void 0:a[1])??1),discrete:n,hp:r,largeHp:i})}function Pw(e){return e=="index"||e=="locus"}function uR(e){return e[1]>2**32}const K0=2**12;function Lw(e,t=[]){const n=e%K0,r=(e-n)/K0;return t[0]=r,t[1]=n,t}function cR(e){const t=e%K0;return[e-t,t]}function fR(e){return[...cR(e[0]),e[1]-e[0]]}function Nw(e){const t=new or([],JSON.stringify);for(const[n,r]of Object.entries(e)){const i=r.channelDef;if(ti(i)){const a=[i.field,r.scale?(bt(r.scale.type)||Yi(r.scale.type))??!1:!1];t.set(a,[...t.get(a)??[],n])}}return t}function J0(e){return Nt(e).join("_")}function hR(e){return e[0].toUpperCase()+e.slice(1)}const Ow=(e,t)=>af(e.type)||bt(e.type)&&ni(t)?[0,1]:e.range?e.range():void 0;function dR(e,t){if(e.length!=t.length)throw new Error("Unequal array lengths");const n=e.length;if(n==0)return"";if(n==1&&e[0]==null)return t[0];const r=[];for(let i=0;i<n;i++){const o=e[i],a=i==0?`if (${o})`:o==null&&i==n-1?"else":`else if (${o})`;r.push(` ${a} {
285
+ ${t[i]}
286
+ }`)}return r.join(`
287
+ `)}const zw=1e4;class pR{constructor(t){Z(this,kh);Z(this,Th);Z(this,bu,!1);this.size=t,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}configure(){if(z(this,bu))throw new Error("Already configured!");X(this,kh,B4).call(this),X(this,Th,D4).call(this),le(this,bu,!0)}addConverter(t,n){const r=this.createUpdater(hl+t,n.numComponents||1,n.targetArrayType??Float32Array,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?o=>r(i(o)):o=>r(i(o)))}createUpdater(t,n,r=Float32Array,i=void 0){if(!Tt(this.size))throw new Error("The number of vertices must be defined!");let o,a,s=0;const u=new r(this.size*n);if(this.arrays[t]={data:u,numComponents:n},n==1){let l=0;const c=f=>{l=+f};o=()=>{u[s++]=l},a=c}else{let l=i??[0];const c=i?f=>{}:f=>{l=f};switch(n){case 1:break;case 2:o=()=>{u[s++]=l[0],u[s++]=l[1]},a=c;break;case 3:o=()=>{u[s++]=l[0],u[s++]=l[1],u[s++]=l[2]},a=c;break;case 4:o=()=>{u[s++]=l[0],u[s++]=l[1],u[s++]=l[2],u[s++]=l[3]},a=c;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(o),a}pushAll(){throw new Error("Call configure() first!")}updateFromDatum(t){throw new Error("Call configure() first!")}pushFromDatum(t){this.updateFromDatum(t),this.pushAll()}}bu=new WeakMap,kh=new WeakSet,B4=function(){if(this.size>zw){const t=this.pushers.map((r,i)=>`const p${i} = that.pushers[${i}];`).join(`
272
288
  `),n=this.pushers.map((r,i)=>` p${i}();`).join(`
273
289
  `);this.pushAll=new Function("that",`${t}
274
290
  return function unrolledPushAll() {
275
291
  ${n}
276
292
  that.vertexCount++;
277
- };`)(this)}else this.pushAll=()=>{for(let t=0;t<this.pushers.length;t++)this.pushers[t]();this.vertexCount++}},Ah=new WeakSet,p4=function(){if(this.size>vw){const t=this.dataUpdaters.map((r,i)=>`const u${i} = that.dataUpdaters[${i}];`).join(`
293
+ };`)(this)}else this.pushAll=()=>{for(let t=0;t<this.pushers.length;t++)this.pushers[t]();this.vertexCount++}},Th=new WeakSet,D4=function(){if(this.size>zw){const t=this.dataUpdaters.map((r,i)=>`const u${i} = that.dataUpdaters[${i}];`).join(`
278
294
  `),n=this.dataUpdaters.map((r,i)=>` u${i}(datum);`).join(`
279
295
  `);this.updateFromDatum=new Function("that","datum",`${t}
280
296
  return function unrolledUpdateFromDatum(datum) {
281
297
  ${n}
282
- };`)(this)}else this.updateFromDatum=t=>{for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](t)}};const no=5,V0=127;function j0(e){const t=[];for(let p=0;p<=V0;p++)t.push(void 0);const n=new Map;for(const p of e.chars)p.id<=V0?t[p.id]=p:n.set(p.id,p);const r=8722;n.has(r)||n.set(r,t["-".charCodeAt(0)]);function i(p){return(p<=V0?t[p]:n.get(p))||t[63]}function a(p){return i(p.charCodeAt(0))}const o=e.common.base,s=a("x"),u=a("X"),l=a("q"),c=s.height-no*2,f=u.height-no*2,h=l.height-s.height+l.yoffset-s.yoffset;function d(p,m=1){let y=0;for(let w=0;w<p.length;w++)y+=i(p.charCodeAt(w)).xadvance;return y/o*m}return{measureWidth:d,getCharByCode:i,getChar:a,xHeight:c,capHeight:f,descent:h,common:e.common}}const xw=2**31-1,ND=-(2**31);function OD(e,t,n,r=n){const i=new Array(e);i.fill(xw);let a=ND,o=-1/0,s=!1;const u=new Array(e);u.fill(0);const l=t[0],f=(t[1]-t[0])/e,h=(w,x)=>{const S=(w-l)/f,_=Math.floor(S);return Oa(x&&_==S?_-1:_,0,e-1)};function d(w,x,S){if(s)return;if(x>a)a=x;else{s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}const _=n(w);if(_<o){s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}o=_;const T=h(_,!1);i[T]>x&&(i[T]=x),u[T]<S&&(u[T]=S)}function p(w,x,S){if(s)return;if(x>a)a=x;else{s=!0,console.debug("Items (vertices) are not ordered properly. Disabling binned index.");return}const _=n(w),T=r(w);if(_<o){s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}else if(T<_){s=!0,console.debug("End index is less than start index. Disabling binned index. Datum: ",w);return}o=_;const I=h(_,!1),B=h(T,!0);for(let R=I;R<=B;R++)i[R]>x&&(i[R]=x),u[R]<S&&(u[R]=S)}const m=(w,x,S=[0,0])=>{const _=h(w,!1),T=h(x,!0),I=i[_],B=Math.max(u[T],I);return S[0]=I,S[1]=B,S},y=()=>{if(s)return;for(let x=1;x<u.length;x++)u[x]<u[x-1]&&(u[x]=u[x-1]);let w=!0;for(let x=i.length-1;x>0;x--)w&&i[x]==xw?(i[x]=u[x],w=!1):i[x-1]>i[x]&&(i[x-1]=i[x]);return m};return d.getIndex=y,p.getIndex=y,n==r?d:p}class ol{constructor({encoders:t,numVertices:n=void 0,attributes:r=[]}){this.encoders=t,this.variableEncoders=Object.fromEntries(Object.entries(t).filter(([a,o])=>r.includes(a)&&o&&o.scale&&!o.constant));const i=[...bw(t).entries()].filter(([a,o])=>a[1]&&o.length>1).map(([a,o])=>o);this.allocatedVertices=n,this.variableBuilder=new LD(n);for(const[a,o]of Object.entries(this.variableEncoders)){const s=i.find(m=>m.find(y=>y==a));if(s&&a!=s[0])continue;const u=o.accessor,l=cf(o.scale.type),c=l&&G0(o.scale.domain()),f=[0,0],h=o.indexer,d=h?m=>h(u(m)):c?m=>mw(u(m),f):u,p=s?yw(s):a;this.variableBuilder.addConverter(p,{f:d,numComponents:c?2:1,arrayReference:c?f:void 0,targetArrayType:Hn(o.scale.type)?Uint16Array:l?Uint32Array:Float32Array})}this.lastOffset=0,this.rangeMap=new ir([],JSON.stringify)}registerBatch(t){var a;const n=this.lastOffset,r=this.variableBuilder.vertexCount,i=r-n;i&&this.rangeMap.set(t,{offset:n,count:i,xIndex:(a=this.xIndexer)==null?void 0:a.getIndex()}),this.lastOffset=r}addBatches(t){for(const[n,r]of t)this.addBatch(n,r)}addBatch(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.pushFromDatum(o),this.addToXIndex(o)}this.registerBatch(t)}prepareXIndexer(t,n=0,r=n+t.length){var l;const i=()=>{this.addToXIndex=c=>{},this.xIndexer=void 0},a=(l=this.encoders.x)==null?void 0:l.channelDef;if(!("buildIndex"in a)||!a.buildIndex||!t.length||r-n<0){i();return}const o=c=>{var f;return c&&yt((f=c.scale)==null?void 0:f.type)&&c},s=o(this.variableEncoders.x),u=o(this.variableEncoders.x2);if(s){const c=s.accessor,f=u?u.accessor:c,h=[c(t[n]),f(t[r-1])];if(h[1]>h[0]){this.xIndexer=OD(50,h,c,f);let d=this.variableBuilder.vertexCount;this.addToXIndex=p=>{let m=this.variableBuilder.vertexCount;this.xIndexer(p,d,m),d=m}}else i()}else i()}addToXIndex(t){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class zD extends ol{constructor({encoders:t,attributes:n,numItems:r}){super({encoders:t,attributes:n,numVertices:r*6}),this.variableBuilder.configure();const i=this.variableBuilder.pushAll;this.pushAllSixTimes=r>500?new Function("pushAll",`return function unrolledPushAllSixTimes() {
298
+ };`)(this)}else this.updateFromDatum=t=>{for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](t)}};const la=5,ep=127;function tp(e){const t=[];for(let p=0;p<=ep;p++)t.push(void 0);const n=new Map;for(const p of e.chars)p.id<=ep?t[p.id]=p:n.set(p.id,p);const r=8722;n.has(r)||n.set(r,t["-".charCodeAt(0)]);function i(p){return(p<=ep?t[p]:n.get(p))||t[63]}function o(p){return i(p.charCodeAt(0))}const a=e.common.base,s=o("x"),u=o("X"),l=o("q"),c=s.height-la*2,f=u.height-la*2,h=l.height-s.height+l.yoffset-s.yoffset;function d(p,m=1){let y=0;for(let w=0;w<p.length;w++)y+=i(p.charCodeAt(w)).xadvance;return y/a*m}return{measureWidth:d,getCharByCode:i,getChar:o,xHeight:c,capHeight:f,descent:h,common:e.common}}const Uw=2**31-1,gR=-(2**31);function mR(e,t,n,r=n){const i=new Array(e);i.fill(Uw);let o=gR,a=-1/0,s=!1;const u=new Array(e);u.fill(0);const l=t[0],f=(t[1]-t[0])/e,h=(w,A)=>{const S=(w-l)/f,_=Math.floor(S);return aa(A&&_==S?_-1:_,0,e-1)};function d(w,A,S){if(s)return;if(A>o)o=A;else{s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}const _=n(w);if(_<a){s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}a=_;const k=h(_,!1);i[k]>A&&(i[k]=A),u[k]<S&&(u[k]=S)}function p(w,A,S){if(s)return;if(A>o)o=A;else{s=!0,console.debug("Items (vertices) are not ordered properly. Disabling binned index.");return}const _=n(w),k=r(w);if(_<a){s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}else if(k<_){s=!0,console.debug("End index is less than start index. Disabling binned index. Datum: ",w);return}a=_;const B=h(_,!1),I=h(k,!0);for(let D=B;D<=I;D++)i[D]>A&&(i[D]=A),u[D]<S&&(u[D]=S)}const m=(w,A,S=[0,0])=>{const _=h(w,!1),k=h(A,!0),B=i[_],I=Math.max(u[k],B);return S[0]=B,S[1]=I,S},y=()=>{if(s)return;for(let A=1;A<u.length;A++)u[A]<u[A-1]&&(u[A]=u[A-1]);let w=!0;for(let A=i.length-1;A>0;A--)w&&i[A]==Uw?(i[A]=u[A],w=!1):i[A-1]>i[A]&&(i[A-1]=i[A]);return m};return d.getIndex=y,p.getIndex=y,n==r?d:p}function bR(){let e=0,t,n=0;const r=new Map,i=o=>(o===t||(n=r.get(o),n===void 0&&(n=e++,r.set(o,n)),t=o),n);return i.addAll=o=>{for(const a of o)i(a)},i.invert=o=>{for(const a of r.entries())if(a[1]==o)return a[0]},i.domain=()=>[...r.keys()],i}class gl{constructor({encoders:t,numVertices:n=void 0,attributes:r=[]}){this.encoders=t,this.variableEncoders=Object.fromEntries(Object.entries(t).filter(([o,a])=>r.includes(o)&&a&&!a.constant));const i=[...Nw(t).entries()].filter(([o,a])=>o[1]&&a.length>1).map(([o,a])=>a);this.allocatedVertices=n,this.variableBuilder=new pR(n);for(const[o,a]of Object.entries(this.variableEncoders)){const s=a.dataAccessor;if(!s)continue;const u=i.find(S=>S.find(_=>_==o));if(u&&o!=u[0])continue;const l=s.asNumberAccessor(),c=a.scale,{largeHp:f,arrayConstructor:h,discrete:d,numComponents:p}=pl(c,o),m=[0,0];let y;c&&d&&"domain"in c&&(y=bR(),y.addAll(c.domain()));const w=y?S=>y(s(S)):f?S=>Lw(l(S),m):l,A=u?J0(u):o;this.variableBuilder.addConverter(A,{f:w,numComponents:p,arrayReference:f?m:void 0,targetArrayType:h})}this.lastOffset=0,this.rangeMap=new or([],JSON.stringify)}registerBatch(t){var o;const n=this.lastOffset,r=this.variableBuilder.vertexCount,i=r-n;i&&this.rangeMap.set(t,{offset:n,count:i,xIndex:(o=this.xIndexer)==null?void 0:o.getIndex()}),this.lastOffset=r}addBatches(t){for(const[n,r]of t)this.addBatch(n,r)}addBatch(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const a=n[o];this.variableBuilder.pushFromDatum(a),this.addToXIndex(a)}this.registerBatch(t)}prepareXIndexer(t,n=0,r=n+t.length){var l;const i=()=>{this.addToXIndex=c=>{},this.xIndexer=void 0},o=(l=this.encoders.x)==null?void 0:l.channelDef;if(!("buildIndex"in o)||!o.buildIndex||!t.length||r-n<0){i();return}const a=c=>{var f;return c&&bt((f=c.scale)==null?void 0:f.type)&&c},s=a(this.variableEncoders.x),u=a(this.variableEncoders.x2);if(s&&!s.constant&&(!u||!u.constant)){const c=s.dataAccessor.asNumberAccessor(),f=u?u.dataAccessor.asNumberAccessor():c,h=[c(t[n]),f(t[r-1])];if(h[1]>h[0]){this.xIndexer=mR(50,h,c,f);let d=this.variableBuilder.vertexCount;this.addToXIndex=p=>{let m=this.variableBuilder.vertexCount;this.xIndexer(p,d,m),d=m}}else i()}else i()}addToXIndex(t){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class yR extends gl{constructor({encoders:t,attributes:n,numItems:r}){super({encoders:t,attributes:n,numVertices:r*6}),this.variableBuilder.configure();const i=this.variableBuilder.pushAll;this.pushAllSixTimes=r>500?new Function("pushAll",`return function unrolledPushAllSixTimes() {
283
299
  pushAll(); pushAll(); pushAll(); pushAll(); pushAll(); pushAll();
284
- };`)(i):function(){i(),i(),i(),i(),i(),i()}}addBatch(t,n,r=0,i=n.length){if(!(i<=r)){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.updateFromDatum(o),this.pushAllSixTimes(),this.addToXIndex(o)}this.registerBatch(t)}}}class UD extends ol{constructor({encoders:t,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:a}){super({encoders:t,attributes:n,numVertices:r==1/0?a*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateSide=this.variableBuilder.createUpdater("side",1),this.updatePos=this.variableBuilder.createUpdater("pos",1),this.variableBuilder.configure()}addBatch(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.updateFromDatum(o),this.updateSide(-.5),this.updatePos(0),this.variableBuilder.pushAll();const s=1;for(let u=0;u<=s;u++)this.updatePos(u/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(o)}this.registerBatch(t)}}class GD extends ol{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r}),this.variableBuilder.configure()}}class HD extends ol{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r}),this.variableBuilder.configure()}toArrays(){const t=this.variableBuilder.arrays;for(let n of Object.values(t))n.divisor=1;return super.toArrays()}}class VD extends ol{constructor({encoders:t,attributes:n,fontMetrics:r,properties:i,numCharacters:a=void 0}){super({encoders:t,attributes:n,numVertices:a*6}),this.metadata=r,this.metrics=r,this.properties=i;const s=t.text.channelDef;this.numberFormat=!on(s)&&"format"in s&&s.format?mt(s.format):u=>u,this.updateVertexCoord=this.variableBuilder.createUpdater("vertexCoord",2),this.updateTextureCoord=this.variableBuilder.createUpdater("textureCoord",2),this.updateWidth=this.variableBuilder.createUpdater("width",1),this.variableBuilder.configure()}addBatch(t,n,r=0,i=n.length){const a=this.properties.align||"left",o=this.properties.logoLetters??!1,s=this.metadata.common.base,u=this.metadata.common.scaleH;let l=-no;switch(this.properties.baseline){case"top":l+=this.metrics.capHeight;break;case"middle":l+=this.metrics.capHeight/2;break;case"bottom":l-=this.metrics.descent;break}const c=this.encoders.text.accessor||this.encoders.text,f=[0,0];this.updateVertexCoord(f);const h=[0,0];this.updateTextureCoord(h),this.prepareXIndexer(n,r,i);for(let d=r;d<i;d++){const p=n[d],m=this.numberFormat(c(p)),y=Ue(m)?m:m===null?"":""+m;if(y.length==0)continue;this.variableBuilder.updateFromDatum(p);const w=o?y.length:this.metrics.measureWidth(y);this.updateWidth(w);let x=a=="right"?-w:a=="center"?-w/2:0;if(!o){const I=this.metrics.getCharByCode(y.charCodeAt(0));x-=(I.width-I.xadvance)/s/2}let S=-.5,_=1,T=1;for(let I=0;I<y.length;I++){const B=this.metrics.getCharByCode(y.charCodeAt(I)),R=o?1:B.xadvance/s;if(B.id==32){x+=R;continue}o?(T=(B.width+no*2)/B.width,x=-T/2,_=(B.height+no*2)/B.height,S=-.5-no/B.height):(_=B.height/s,S=-(B.height+B.yoffset+l)/s,T=B.width/s);const M=B.x,H=B.y;f[0]=x,f[1]=S+_,h[0]=M/u,h[1]=H/u,this.variableBuilder.pushAll(),f[0]=x+T,f[1]=S+_,h[0]=(M+B.width)/u,h[1]=H/u,this.variableBuilder.pushAll(),f[0]=x,f[1]=S,h[0]=M/u,h[1]=(H+B.height)/u,this.variableBuilder.pushAll(),f[0]=x+T,f[1]=S+_,h[0]=(M+B.width)/u,h[1]=H/u,this.variableBuilder.pushAll(),f[0]=x,f[1]=S,h[0]=M/u,h[1]=(H+B.height)/u,this.variableBuilder.pushAll(),f[0]=x+T,f[1]=S,h[0]=(M+B.width)/u,h[1]=(H+B.height)/u,this.variableBuilder.pushAll(),x+=R}this.addToXIndex(p)}this.registerBatch(t)}}const Aw=`#define PI 3.141593
285
- uniform View{mediump vec2 uViewOffset;mediump vec2 uViewScale;mediump vec2 uViewportSize;lowp float uDevicePixelRatio;lowp float uViewOpacity;bool uPickingEnabled;};/***Maps a coordinate on the unit scale to a normalized device coordinate.*(0,0)is at the bottom left corner.*/vec4 unitToNdc(vec2 coord){return vec4((coord*uViewScale+uViewOffset)*2.0-1.0,0.0,1.0);}vec4 unitToNdc(float x,float y){return unitToNdc(vec2(x,y));}vec4 pixelsToNdc(vec2 coord){return unitToNdc(coord/uViewportSize);}vec4 pixelsToNdc(float x,float y){return pixelsToNdc(vec2(x,y));}float linearstep(float edge0,float edge1,float x){return clamp((x-edge0)/(edge1-edge0),0.0,1.0);}/***Specialized linearstep for doing antialiasing*/float distanceToRatio(float d){return clamp(d*uDevicePixelRatio+0.5,0.0,1.0);}vec4 distanceToColor(float d,vec4 fill,vec4 stroke,float halfStrokeWidth){if(halfStrokeWidth>0.0){float sd=abs(d)-halfStrokeWidth;return mix(stroke,d<=0.0 ? fill : vec4(0.0),distanceToRatio(sd));}else{return fill*distanceToRatio(-d);}}`,jD="uniform highp float uZero;vec3 getDiscreteColor(sampler2D s,int index){return texelFetch(s,ivec2(index % textureSize(s,0).x,0),0).rgb;}vec3 getInterpolatedColor(sampler2D s,float unitValue){return texture(s,vec2(unitValue,0.0)).rgb;}float clampToRange(float value,vec2 range){return clamp(value,min(range[0],range[1]),max(range[0],range[1]));}float scaleIdentity(float value){return value;}float scaleIdentity(uint value){return float(value);}float scaleLinear(float value,vec2 domain,vec2 range){float domainSpan=domain[1]-domain[0];float rangeSpan=range[1]-range[0];return(value-domain[0])/domainSpan*rangeSpan+range[0];}float scaleLog(float value,vec2 domain,vec2 range,float base){return scaleLinear(log(value)/log(base),log(domain)/log(base),range);}float symlog(float value,float constant){return sign(value)*log(abs(value/constant)+1.0);}float scaleSymlog(float value,vec2 domain,vec2 range,float constant){return scaleLinear(symlog(value,constant),vec2(symlog(domain[0],constant),symlog(domain[1],constant)),range);}float scalePow(float value,vec2 domain,vec2 range,float exponent){return scaleLinear(pow(abs(value),exponent)*sign(value),pow(abs(domain),vec2(exponent))*sign(domain),range);}float scaleBand(uint value,vec2 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;float n=domainExtent[1]-domainExtent[0];paddingInner=int(n)>1 ? paddingInner : 0.0;float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);return start+(float(value)-domainExtent[0])*step+bandwidth*band;}const int lowBits=12;const float lowDivisor=pow(2.0,float(lowBits));const uint lowMask=uint(lowDivisor-1.0);vec2 splitUint(uint value){uint valueLo=value&lowMask;uint valueHi=value-valueLo;return vec2(float(valueHi),float(valueLo));}/***High precision variant of scaleBand for index/locus scales*/float scaleBandHp(uint value,vec3 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;vec2 domainStart=domainExtent.xy;float n=domainExtent[2];float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);vec2 splitValue=splitUint(value);float inf=1.0/uZero;float hi=max(splitValue[0]-domainStart[0],-inf);float lo=max(splitValue[1]-domainStart[1],-inf);return dot(vec4(start,hi,lo,bandwidth),vec4(1.0,step,step,band));}/***High precision variant of scaleBand for index/locus scales for large*domains where 32bit uints are not sufficient to represent the domain.*/float scaleBandHp(uvec2 value,vec3 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;vec2 domainStart=domainExtent.xy;float n=domainExtent[2];float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);vec2 splitValue=vec2(float(value[0])*lowDivisor,float(value[1]));float inf=1.0/uZero;float hi=max(splitValue[0]-domainStart[0],-inf);float lo=max(splitValue[1]-domainStart[1],-inf);return dot(vec4(start,hi,lo,bandwidth),vec4(1.0,step,step,band));}",$D=`/***Describes where a sample facet should be shown. Interpolating between the*current and target positions/heights allows for transitioning between facet*configurations.*/struct SampleFacetPosition{float pos;float height;float targetPos;float targetHeight;};/***Trasition fraction[0,1]between the current and target configurations.*/uniform float uTransitionOffset;
300
+ };`)(i):function(){i(),i(),i(),i(),i(),i()}}addBatch(t,n,r=0,i=n.length){if(!(i<=r)){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const a=n[o];this.variableBuilder.updateFromDatum(a),this.pushAllSixTimes(),this.addToXIndex(a)}this.registerBatch(t)}}}class wR extends gl{constructor({encoders:t,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:o}){super({encoders:t,attributes:n,numVertices:r==1/0?o*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateSide=this.variableBuilder.createUpdater("side",1),this.updatePos=this.variableBuilder.createUpdater("pos",1),this.variableBuilder.configure()}addBatch(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const a=n[o];this.variableBuilder.updateFromDatum(a),this.updateSide(-.5),this.updatePos(0),this.variableBuilder.pushAll();const s=1;for(let u=0;u<=s;u++)this.updatePos(u/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(a)}this.registerBatch(t)}}class vR extends gl{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r}),this.variableBuilder.configure()}}class xR extends gl{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r}),this.variableBuilder.configure()}toArrays(){const t=this.variableBuilder.arrays;for(let n of Object.values(t))n.divisor=1;return super.toArrays()}}class AR extends gl{constructor({encoders:t,attributes:n,fontMetrics:r,properties:i,numCharacters:o=void 0}){super({encoders:t,attributes:n,numVertices:o*6}),this.metadata=r,this.metrics=r,this.properties=i;const s=t.text.channelDef;this.numberFormat=!on(s)&&"format"in s&&s.format?mt(s.format):u=>u,this.updateVertexCoord=this.variableBuilder.createUpdater("vertexCoord",2),this.updateTextureCoord=this.variableBuilder.createUpdater("textureCoord",2),this.updateWidth=this.variableBuilder.createUpdater("width",1),this.variableBuilder.configure()}addBatch(t,n,r=0,i=n.length){const o=this.properties.align||"left",a=this.properties.logoLetters??!1,s=this.metadata.common.base,u=this.metadata.common.scaleH;let l=-la;switch(this.properties.baseline){case"top":l+=this.metrics.capHeight;break;case"middle":l+=this.metrics.capHeight/2;break;case"bottom":l-=this.metrics.descent;break}const c=this.encoders.text,f=[0,0];this.updateVertexCoord(f);const h=[0,0];this.updateTextureCoord(h),this.prepareXIndexer(n,r,i);for(let d=r;d<i;d++){const p=n[d],m=this.numberFormat(c(p)),y=Fe(m)?m:m===null?"":""+m;if(y.length==0)continue;this.variableBuilder.updateFromDatum(p);const w=a?y.length:this.metrics.measureWidth(y);this.updateWidth(w);let A=o=="right"?-w:o=="center"?-w/2:0;if(!a){const B=this.metrics.getCharByCode(y.charCodeAt(0));A-=(B.width-B.xadvance)/s/2}let S=-.5,_=1,k=1;for(let B=0;B<y.length;B++){const I=this.metrics.getCharByCode(y.charCodeAt(B)),D=a?1:I.xadvance/s;if(I.id==32){A+=D;continue}a?(k=(I.width+la*2)/I.width,A=-k/2,_=(I.height+la*2)/I.height,S=-.5-la/I.height):(_=I.height/s,S=-(I.height+I.yoffset+l)/s,k=I.width/s);const M=I.x,G=I.y;f[0]=A,f[1]=S+_,h[0]=M/u,h[1]=G/u,this.variableBuilder.pushAll(),f[0]=A+k,f[1]=S+_,h[0]=(M+I.width)/u,h[1]=G/u,this.variableBuilder.pushAll(),f[0]=A,f[1]=S,h[0]=M/u,h[1]=(G+I.height)/u,this.variableBuilder.pushAll(),f[0]=A+k,f[1]=S+_,h[0]=(M+I.width)/u,h[1]=G/u,this.variableBuilder.pushAll(),f[0]=A,f[1]=S,h[0]=M/u,h[1]=(G+I.height)/u,this.variableBuilder.pushAll(),f[0]=A+k,f[1]=S,h[0]=(M+I.width)/u,h[1]=(G+I.height)/u,this.variableBuilder.pushAll(),A+=D}this.addToXIndex(p)}this.registerBatch(t)}}const Gw=`#define PI 3.141593
301
+ uniform View{mediump vec2 uViewOffset;mediump vec2 uViewScale;mediump vec2 uViewportSize;lowp float uDevicePixelRatio;lowp float uViewOpacity;bool uPickingEnabled;};/***Maps a coordinate on the unit scale to a normalized device coordinate.*(0,0)is at the bottom left corner.*/vec4 unitToNdc(vec2 coord){return vec4((coord*uViewScale+uViewOffset)*2.0-1.0,0.0,1.0);}vec4 unitToNdc(float x,float y){return unitToNdc(vec2(x,y));}vec4 pixelsToNdc(vec2 coord){return unitToNdc(coord/uViewportSize);}vec4 pixelsToNdc(float x,float y){return pixelsToNdc(vec2(x,y));}float linearstep(float edge0,float edge1,float x){return clamp((x-edge0)/(edge1-edge0),0.0,1.0);}/***Specialized linearstep for doing antialiasing*/float distanceToRatio(float d){return clamp(d*uDevicePixelRatio+0.5,0.0,1.0);}vec4 distanceToColor(float d,vec4 fill,vec4 stroke,float halfStrokeWidth){if(halfStrokeWidth>0.0){float sd=abs(d)-halfStrokeWidth;return mix(stroke,d<=0.0 ? fill : vec4(0.0),distanceToRatio(sd));}else{return fill*distanceToRatio(-d);}}`,ER="uniform highp float uZero;vec3 getDiscreteColor(sampler2D s,int index){return texelFetch(s,ivec2(index % textureSize(s,0).x,0),0).rgb;}vec3 getInterpolatedColor(sampler2D s,float unitValue){return texture(s,vec2(unitValue,0.0)).rgb;}float clampToRange(float value,vec2 range){return clamp(value,min(range[0],range[1]),max(range[0],range[1]));}float scaleIdentity(float value){return value;}float scaleIdentity(uint value){return float(value);}float scaleLinear(float value,vec2 domain,vec2 range){float domainSpan=domain[1]-domain[0];float rangeSpan=range[1]-range[0];return(value-domain[0])/domainSpan*rangeSpan+range[0];}float scaleLog(float value,vec2 domain,vec2 range,float base){return scaleLinear(log(value)/log(base),log(domain)/log(base),range);}float symlog(float value,float constant){return sign(value)*log(abs(value/constant)+1.0);}float scaleSymlog(float value,vec2 domain,vec2 range,float constant){return scaleLinear(symlog(value,constant),vec2(symlog(domain[0],constant),symlog(domain[1],constant)),range);}float scalePow(float value,vec2 domain,vec2 range,float exponent){return scaleLinear(pow(abs(value),exponent)*sign(value),pow(abs(domain),vec2(exponent))*sign(domain),range);}float scaleBand(uint value,vec2 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;float n=domainExtent[1]-domainExtent[0];paddingInner=int(n)>1 ? paddingInner : 0.0;float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);return start+(float(value)-domainExtent[0])*step+bandwidth*band;}const int lowBits=12;const float lowDivisor=pow(2.0,float(lowBits));const uint lowMask=uint(lowDivisor-1.0);vec2 splitUint(uint value){uint valueLo=value&lowMask;uint valueHi=value-valueLo;return vec2(float(valueHi),float(valueLo));}/***High precision variant of scaleBand for index/locus scales*/float scaleBandHp(uint value,vec3 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;vec2 domainStart=domainExtent.xy;float n=domainExtent[2];float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);vec2 splitValue=splitUint(value);float inf=1.0/uZero;float hi=max(splitValue[0]-domainStart[0],-inf);float lo=max(splitValue[1]-domainStart[1],-inf);return dot(vec4(start,hi,lo,bandwidth),vec4(1.0,step,step,band));}/***High precision variant of scaleBand for index/locus scales for large*domains where 32bit uints are not sufficient to represent the domain.*/float scaleBandHp(uvec2 value,vec3 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;vec2 domainStart=domainExtent.xy;float n=domainExtent[2];float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);vec2 splitValue=vec2(float(value[0])*lowDivisor,float(value[1]));float inf=1.0/uZero;float hi=max(splitValue[0]-domainStart[0],-inf);float lo=max(splitValue[1]-domainStart[1],-inf);return dot(vec4(start,hi,lo,bandwidth),vec4(1.0,step,step,band));}",_R=`/***Describes where a sample facet should be shown. Interpolating between the*current and target positions/heights allows for transitioning between facet*configurations.*/struct SampleFacetPosition{float pos;float height;float targetPos;float targetHeight;};/***Trasition fraction[0,1]between the current and target configurations.*/uniform float uTransitionOffset;
286
302
  #if !defined(SAMPLE_FACET_UNIFORM) && !defined(SAMPLE_FACET_TEXTURE)
287
303
  SampleFacetPosition getSampleFacetPos(){return SampleFacetPosition(0.0,1.0,0.0,1.0);}
288
304
  #elif defined(SAMPLE_FACET_UNIFORM)
@@ -290,40 +306,37 @@ SampleFacetPosition getSampleFacetPos(){return SampleFacetPosition(0.0,1.0,0.0,1
290
306
  #elif defined(SAMPLE_FACET_TEXTURE)
291
307
  uniform sampler2D uSampleFacetTexture;SampleFacetPosition getSampleFacetPos(){vec4 texel=texelFetch(uSampleFacetTexture,ivec2(int(attr_facetIndex),0),0);return SampleFacetPosition(1.0-texel.r-texel.g,texel.g,1.0-texel.r-texel.g,texel.g);}
292
308
  #endif
293
- bool isFacetedSamples(SampleFacetPosition facetPos){return facetPos!=SampleFacetPosition(0.0,1.0,0.0,1.0);}bool isFacetedSamples(){return isFacetedSamples(getSampleFacetPos());}bool isInTransit(){return uTransitionOffset>0.0;}float getTransitionFraction(float xPos){return smoothstep(0.0,0.7+uTransitionOffset,(xPos-uTransitionOffset)*2.0);}vec2 applySampleFacet(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return pos;}else if(isInTransit()){vec2 interpolated=mix(vec2(facetPos.pos,facetPos.height),vec2(facetPos.targetPos,facetPos.targetHeight),getTransitionFraction(pos.x));return vec2(pos.x,interpolated[0]+pos.y*interpolated[1]);}else{return vec2(pos.x,facetPos.pos+pos.y*facetPos.height);}}float getSampleFacetHeight(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return 1.0;}else if(isInTransit()){return mix(facetPos.height,facetPos.targetHeight,getTransitionFraction(pos.x));}else{return facetPos.height;}}`,qD=`/**Based on concepts presented at:*https:*https:*/out highp vec4 vPickingColor;/***Passes the unique id to the fragment shader as a color if picking is enabled.*Returns true if picking is enabled.*/bool setupPicking(){if(uPickingEnabled){
309
+ bool isFacetedSamples(SampleFacetPosition facetPos){return facetPos!=SampleFacetPosition(0.0,1.0,0.0,1.0);}bool isFacetedSamples(){return isFacetedSamples(getSampleFacetPos());}bool isInTransit(){return uTransitionOffset>0.0;}float getTransitionFraction(float xPos){return smoothstep(0.0,0.7+uTransitionOffset,(xPos-uTransitionOffset)*2.0);}vec2 applySampleFacet(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return pos;}else if(isInTransit()){vec2 interpolated=mix(vec2(facetPos.pos,facetPos.height),vec2(facetPos.targetPos,facetPos.targetHeight),getTransitionFraction(pos.x));return vec2(pos.x,interpolated[0]+pos.y*interpolated[1]);}else{return vec2(pos.x,facetPos.pos+pos.y*facetPos.height);}}float getSampleFacetHeight(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return 1.0;}else if(isInTransit()){return mix(facetPos.height,facetPos.targetHeight,getTransitionFraction(pos.x));}else{return facetPos.height;}}`,SR=`/**Based on concepts presented at:*https:*https:*/out highp vec4 vPickingColor;/***Passes the unique id to the fragment shader as a color if picking is enabled.*Returns true if picking is enabled.*/bool setupPicking(){if(uPickingEnabled){
294
310
  #ifdef uniqueId_DEFINED
295
- int id=int(getScaled_uniqueId());vPickingColor=vec4(ivec4(id>>0,id>>8,id>>16,0xFF)&0xFF)/float(0xFF);
311
+ uint id=attr_uniqueId;vPickingColor=vec4(ivec4(id>>0,id>>8,id>>16,id>>24)&0xFF)/float(0xFF);
296
312
  #else
297
313
  vPickingColor=vec4(1.0);
298
314
  #endif
299
- return true;}return false;}`,WD="in highp vec4 vPickingColor;",ff=Symbol("cacheMap");function hf(e,t,n){let r=sl(e).get(t);return r===void 0&&(r=n(t),sl(e).set(t,r)),r}function ZD(e,t){sl(e).delete(t)}function df(e,t){const n=sl(e);for(const r of n.keys())r.startsWith(t)&&n.delete(r);sl(e).delete(t)}function Ew(e){e[ff]=new Map}function sl(e){return e[ff]||Ew(e),e[ff]}function YD(e,t,n,r){const i=Ue(e)?e:e.name,a=!Ue(e)&&e.extent||[0,1];if(n===void 0&&!Ue(e)&&(n=e.count),i){const o=s0(i);if(Lt(o)){const s=_w(o,{extent:a,count:n});return pf(t,{minMag:t.LINEAR,format:t.RGB,height:1,wrap:t.CLAMP_TO_EDGE},s,r)}else{if(xt(o))return $0(o,t);throw new Error("Unknown scheme: "+i)}}}function QD(e,t="rgb",n,r){const i=Lc(e,Ue(t)?t:t.type,Ue(t)?void 0:t.gamma),a=_w(i);return pf(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},a,r)}function XD(e,t,n,r){const i=Math.max(e.length,n||0),a=new Float32Array(i);for(let o=0;o<i;o++)a[o]=e[o%e.length];return pf(t,{minMag:t.NEAREST,format:t.RED,internalFormat:t.R32F,height:1},a,r)}function $0(e,t,n,r){const i=Sw(e,n);return pf(t,{minMag:t.NEAREST,format:t.RGB,height:1},i,r)}function _w(e,{extent:t=[0,1],reverse:n=!1,count:r=256}={}){const i=t[0],a=Rs(t)-i,o=ss(r).map(s=>s/(r-1)).map(s=>i+s/a).map(e);return n&&o.reverse(),Sw(o)}function Sw(e,t){const n=Math.max(e.length,t||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const a=Gr(e[i%e.length]).rgb();r[i*3+0]=a.r,r[i*3+1]=a.g,r[i*3+2]=a.b}return r}class KD{constructor(t,n,r,i={}){this._container=t,this._sizeSource=n??(()=>({width:void 0,height:void 0})),this._shaderCache=new Map,this.rangeTextures=new WeakMap;const a=document.createElement("canvas");t.appendChild(a);const o=xD(a,{antialias:!0,depth:!1,premultipliedAlpha:!0,...i});if(!o)throw new Error("Unable to initialize WebGL. Your browser or machine may not support it.");if(!Wa(o))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");if(lw(o),o.blendFunc(o.ONE,o.ONE_MINUS_SRC_ALPHA),this.canvas=a,this.gl=o,this._pickingAttachmentOptions=[{format:o.RGBA,type:o.UNSIGNED_BYTE,minMag:o.LINEAR,wrap:o.CLAMP_TO_EDGE}],this._pickingBufferInfo=gD(o,this._pickingAttachmentOptions),o.bindFramebuffer(o.FRAMEBUFFER,null),this.adjustGl(),this._updateDpr(),this._clearColor=[0,0,0,0],r){const s=Gr(r).rgb();this._clearColor=[s.r/255,s.g/255,s.b/255,s.opacity]}}invalidateSize(){this._logicalCanvasSize=void 0,this._updateDpr(),this.adjustGl()}_updateDpr(){this.dpr=window.devicePixelRatio}compileShader(t,n){const r="#version 300 es",i="precision mediump float;";xt(n)&&(n=n.join(`
315
+ return true;}return false;}`,CR="in highp vec4 vPickingColor;",bf=Symbol("cacheMap");function yf(e,t,n){let r=ml(e).get(t);return r===void 0&&(r=n(t),ml(e).set(t,r)),r}function kR(e,t){ml(e).delete(t)}function wf(e,t){const n=ml(e);for(const r of n.keys())r.startsWith(t)&&n.delete(r);ml(e).delete(t)}function Hw(e){e[bf]=new Map}function ml(e){return e[bf]||Hw(e),e[bf]}function TR(e,t,n,r){const i=Fe(e)?e:e.name,o=!Fe(e)&&e.extent||[0,1];if(n===void 0&&!Fe(e)&&(n=e.count),i){const a=O0(i);if(Zt(a)){const s=Vw(a,{extent:o,count:n});return vf(t,{minMag:t.LINEAR,format:t.RGB,height:1,wrap:t.CLAMP_TO_EDGE},s,r)}else{if(xt(a))return np(a,t);throw new Error("Unknown scheme: "+i)}}}function IR(e,t="rgb",n,r){const i=sf(e,Fe(t)?t:t.type,Fe(t)?void 0:t.gamma),o=Vw(i);return vf(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},o,r)}function BR(e,t,n,r){const i=Math.max(e.length,n||0),o=new Float32Array(i);for(let a=0;a<i;a++)o[a]=e[a%e.length];return vf(t,{minMag:t.NEAREST,format:t.RED,internalFormat:t.R32F,height:1},o,r)}function np(e,t,n,r){const i=jw(e,n);return vf(t,{minMag:t.NEAREST,format:t.RGB,height:1},i,r)}function Vw(e,{extent:t=[0,1],reverse:n=!1,count:r=256}={}){const i=t[0],o=Ns(t)-i,a=hs(r).map(s=>s/(r-1)).map(s=>i+s/o).map(e);return n&&a.reverse(),jw(a)}function jw(e,t){const n=Math.max(e.length,t||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const o=Wr(e[i%e.length]).rgb();r[i*3+0]=o.r,r[i*3+1]=o.g,r[i*3+2]=o.b}return r}class DR{constructor(t,n,r,i={}){this._container=t,this._sizeSource=n??(()=>({width:void 0,height:void 0})),this._shaderCache=new Map,this.rangeTextures=new WeakMap;const o=document.createElement("canvas");t.appendChild(o);const a=QT(o,{antialias:!0,depth:!1,premultipliedAlpha:!0,...i});if(!a)throw new Error("Unable to initialize WebGL. Your browser or machine may not support it.");if(!$o(a))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");if(D2(a),a.blendFunc(a.ONE,a.ONE_MINUS_SRC_ALPHA),this.canvas=o,this.gl=a,this._pickingAttachmentOptions=[{format:a.RGBA,type:a.UNSIGNED_BYTE,minMag:a.LINEAR,wrap:a.CLAMP_TO_EDGE}],this._pickingBufferInfo=jT(a,this._pickingAttachmentOptions),a.bindFramebuffer(a.FRAMEBUFFER,null),this.adjustGl(),this._updateDpr(),this._clearColor=[0,0,0,0],r){const s=Wr(r).rgb();this._clearColor=[s.r/255,s.g/255,s.b/255,s.opacity]}}invalidateSize(){this._logicalCanvasSize=void 0,this._updateDpr(),this.adjustGl()}_updateDpr(){this.dpr=window.devicePixelRatio}compileShader(t,n){const r="#version 300 es",i="precision mediump float;";xt(n)&&(n=n.join(`
300
316
 
301
- `));const a=this.gl,o=n.replaceAll(/ {2,}|^\s*\/\/.*$/gm,"");let s=this._shaderCache.get(o);if(!s){const u=[r,i,n].join(`
317
+ `));const o=this.gl,a=n.replaceAll(/ {2,}|^\s*\/\/.*$/gm,"");let s=this._shaderCache.get(a);if(!s){const u=[r,i,n].join(`
302
318
 
303
- `);s=a.createShader(t),a.shaderSource(s,u),a.compileShader(s),this._shaderCache.set(o,s)}return s}adjustGl(){const t=this.getLogicalCanvasSize();this.canvas.style.width=`${t.width}px`,this.canvas.style.height=`${t.height}px`;const n=this.getPhysicalCanvasSize(t);this.canvas.width=n.width,this.canvas.height=n.height,mD(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this.canvas.remove()}getPhysicalCanvasSize(t){return t=t||this.getLogicalCanvasSize(),{width:t.width*this.dpr,height:t.height*this.dpr}}getLogicalCanvasSize(){if(this._logicalCanvasSize)return this._logicalCanvasSize;const t=this._sizeSource(),n=window.getComputedStyle(this._container,null),r=t.width??this._container.clientWidth-parseFloat(n.paddingLeft)-parseFloat(n.paddingRight),i=t.height??this._container.clientHeight-parseFloat(n.paddingTop)-parseFloat(n.paddingBottom);return this._logicalCanvasSize={width:r,height:i},this._logicalCanvasSize}readPickingPixel(t,n){const r=this.gl;t*=this.dpr,n*=this.dpr;const i=this.getPhysicalCanvasSize().height,a=new Uint8Array(4);return r.bindFramebuffer(r.FRAMEBUFFER,this._pickingBufferInfo.framebuffer),r.readPixels(t,i-n-1,1,1,r.RGBA,r.UNSIGNED_BYTE,a),r.bindFramebuffer(r.FRAMEBUFFER,null),a}clearAll(){const t=this.gl,{width:n,height:r}=this.getPhysicalCanvasSize();t.viewport(0,0,n,r),t.disable(t.SCISSOR_TEST),t.clearColor(...this._clearColor),t.clear(t.COLOR_BUFFER_BIT)}createRangeTexture(t,n=!1){const r=this.rangeTextures.get(t);if(!n&&r)return;function i(o,s){return Hn(s.type)?s.domain().length:s.type=="threshold"?s.domain().length+1:s.type=="quantize"||s.type=="quantile"?o??4:o}const a=t.channel;if($r(a)){const o=t.scale,s=o.props,u=o.range();let l;if(s.scheme)if(o.type=="threshold"&&u)l=$0(u,this.gl,o.domain().length,r);else{let c=Ue(s.scheme)?void 0:s.scheme.count;c=i(c,o),l=YD(s.scheme,this.gl,c,r)}else Pc(o.type)||yt(o.type)&&u.length>1?l=QD(u,s.interpolate,this.gl,r):l=$0(u,this.gl,o.domain().length,r);this.rangeTextures.set(t,l)}else{const o=t.scale;if(o.type==="ordinal"||ji(o.type)){const s=Uc(a)?Z2(a):l=>l,u=o.range();this.rangeTextures.set(t,XD(u.map(s),this.gl,o.domain().length,r))}}}}function JD(e,t="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...t.matchAll(r)],a=new Map(i.map((o,s)=>{const u=parseInt(o[1]),l=i[s+1],c=l?l.index:t.length,f=t.substring(o.index,c);return[u-1,f]}));return e.split(`
304
- `).map((o,s)=>{const u=a.get(s);return`${s+1+n}: ${o}${u?`
319
+ `);s=o.createShader(t),o.shaderSource(s,u),o.compileShader(s),this._shaderCache.set(a,s)}return s}adjustGl(){const t=this.getLogicalCanvasSize();this.canvas.style.width=`${t.width}px`,this.canvas.style.height=`${t.height}px`;const n=this.getPhysicalCanvasSize(t);this.canvas.width=n.width,this.canvas.height=n.height,$T(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this.canvas.remove()}getPhysicalCanvasSize(t){return t=t||this.getLogicalCanvasSize(),{width:t.width*this.dpr,height:t.height*this.dpr}}getLogicalCanvasSize(){if(this._logicalCanvasSize)return this._logicalCanvasSize;const t=this._sizeSource(),n=window.getComputedStyle(this._container,null),r=t.width??this._container.clientWidth-parseFloat(n.paddingLeft)-parseFloat(n.paddingRight),i=t.height??this._container.clientHeight-parseFloat(n.paddingTop)-parseFloat(n.paddingBottom);return this._logicalCanvasSize={width:r,height:i},this._logicalCanvasSize}readPickingPixel(t,n){const r=this.gl;t*=this.dpr,n*=this.dpr;const i=this.getPhysicalCanvasSize().height,o=new Uint8Array(4);return r.bindFramebuffer(r.FRAMEBUFFER,this._pickingBufferInfo.framebuffer),r.readPixels(t,i-n-1,1,1,r.RGBA,r.UNSIGNED_BYTE,o),r.bindFramebuffer(r.FRAMEBUFFER,null),o}clearAll(){const t=this.gl,{width:n,height:r}=this.getPhysicalCanvasSize();t.viewport(0,0,n,r),t.disable(t.SCISSOR_TEST),t.clearColor(...this._clearColor),t.clear(t.COLOR_BUFFER_BIT)}createRangeTexture(t,n=!1){const r=this.rangeTextures.get(t);if(!n&&r)return;function i(a,s){return Xr(s.type)?s.domain().length:s.type=="threshold"?s.domain().length+1:s.type=="quantize"||s.type=="quantile"?a??4:a}const o=t.channel;if(ni(o)){const a=t.scale,s=a.props,u=a.range();let l;if(s.scheme)if(a.type=="threshold"&&u)l=np(u,this.gl,a.domain().length,r);else{let c=Fe(s.scheme)?void 0:s.scheme.count;c=i(c,a),l=TR(s.scheme,this.gl,c,r)}else af(a.type)||bt(a.type)&&u.length>1?l=IR(u,s.interpolate,this.gl,r):l=np(u,this.gl,a.domain().length,r);this.rangeTextures.set(t,l)}else{const a=t.scale;if(a.type==="ordinal"||Yi(a.type)){const s=mf(o)?Cw(o):l=>l,u=a.range();this.rangeTextures.set(t,BR(u.map(s),this.gl,a.domain().length,r))}}}}function RR(e,t="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...t.matchAll(r)],o=new Map(i.map((a,s)=>{const u=parseInt(a[1]),l=i[s+1],c=l?l.index:t.length,f=t.substring(a.index,c);return[u-1,f]}));return e.split(`
320
+ `).map((a,s)=>{const u=o.get(s);return`${s+1+n}: ${a}${u?`
305
321
 
306
322
  ^^^ ${u}`:""}`}).join(`
307
- `)}function eR(e,t,n){const r=e.createProgram();e.attachShader(r,t),e.attachShader(r,n),e.linkProgram(r);function i(){let a,o;if(!e.getProgramParameter(r,e.LINK_STATUS)){a=e.getProgramInfoLog(r);for(const u of[t,n])e.getShaderParameter(u,e.COMPILE_STATUS)||(a=e.getShaderInfoLog(u),o=JD(e.getShaderSource(u),a,0)+`
308
- Error compiling: ${a}`,e.deleteShader(u));e.deleteProgram(r)}if(a)return{message:a,detail:o}}return{program:r,getProgramErrors:i}}function pf(e,t,n,r){return r?_y(e,r,n,t):r=il(e,{...t,src:n}),r}function Cw(...e){const t={get(n,r,i){for(const a of e){const s=a()[r];if(s!==void 0)return s}},has(n,r,i){for(const a of e){const o=a();if(r in o)return!0}return!1}};return new Proxy({},t)}function tR(e){return Ue(e)||Tt(e)||is(e)}class Ki extends Error{constructor(t,n){super(t),this.name="ViewError",this.view=n}}const nR="SAMPLE_FACET_UNIFORM",kw="SAMPLE_FACET_TEXTURE";class ll{constructor(t){Y(this,Ar,[]);this.unitView=t,this.encoders=void 0,this.bufferInfo=void 0,this.bytesPerElement=new Map,this.programInfo=void 0,this.vertexArrayInfo=void 0,this.viewUniformInfo=void 0,this.markUniformInfo=void 0,this.markUniformsAltered=!0,this.rangeMap=new rR,this.defaultProperties={get clip(){return["x","y"].map(n=>t.getScaleResolution(n)).some(n=>(n==null?void 0:n.isZoomable())??!1)},xOffset:0,yOffset:0,minBufferSize:0},this.properties=Cw(typeof this.unitView.spec.mark=="object"?()=>this.unitView.spec.mark:()=>({}),()=>this.defaultProperties)}get opaque(){return!1}getAttributes(){throw new Error("Not implemented!")}getSupportedChannels(){return["sample","facetIndex","x","y","color","opacity","search","uniqueId"]}getDefaultEncoding(){const t={sample:void 0,uniqueId:void 0};return this.isPickingParticipant()&&(t.uniqueId={field:"_uniqueId"}),t}fixEncoding(t){return t}setupExprRefsNeedingGraphicsUpdate(t){const n=this.getSupportedChannels(),r={};for(const a of t){const o=this.properties[a];if(o&&It(o)){const s=this.unitView.paramMediator.createExpression(o.expr);s.addListener(()=>{this.updateGraphicsData(),this.unitView.context.animator.requestRender()}),n.includes(a)||Object.defineProperty(r,a,{get(){return s()}})}}const i=this.properties;this.properties=Cw(()=>r,()=>i)}get encoding(){return hf(this,"encoding",()=>{var o;const t=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=s=>{const u=this.properties[s];return tR(u)||It(u)?{value:u}:void 0},i=Object.fromEntries(this.getSupportedChannels().map(s=>[s,r(s)]).filter(s=>on(s[1]))),a=this.fixEncoding({...t,...i,...n});for(const s of Object.keys(a))this.getSupportedChannels().includes(s)||delete a[s];return a.x&&((o=a.x).buildIndex??(o.buildIndex=!0)),a})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=kk(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return kw;if(this.unitView.getLayoutAncestors().find(t=>"samples"in t.spec))return nR}createAndLinkShaders(t,n,r=[]){const i=this.getAttributes(),a="// view: "+this.unitView.getPathString();let o=[];const s=new Set,u=bw(this.encoders),l=this.getSampleFacetMode();l&&r.push(`#define ${l}`);const c=[];for(const y of i){let w;if(y in this.encoding)w=y;else continue;const x=this.encoding[w];if(x)if(on(x))if(It(x.value)){const{uniformName:S,uniformGlsl:_,scaleGlsl:T,adjuster:I}=ID(w);o.push(T),c.push(_),G(this,Ar).push(()=>{this.registerMarkUniformValue(S,x.value,I)})}else o.push(TD(w,x.value));else{const S=Qt(x)&&x.resolutionChannel||w,_=qa(S)?this.unitView.getScaleResolution(S):null,T=$i(x)?u.get([x.field,!0]):[w],I=BD(w,_,x,T!=null&&T.includes(w)?T:[w]);if(o.push(I.glsl),c.push(I.domainUniform),c.push(I.rangeUniform),s.add(I.attributeGlsl),I.rangeUniform&&G(this,Ar).push(()=>{const B=this.createMarkUniformSetter(I.rangeName),R=()=>B(ww(_.scale,w));_.addEventListener("range",R),R()}),I.markUniformGlsl){if(!Qs(x))throw new Error("Bug!");const B=this.encoders[w],R=B.indexer,H=cf(B.scale.type)&&G0(B.scale.domain()),O=R||(H?mw:re=>+re);c.push(I.markUniformGlsl),G(this,Ar).push(()=>{this.registerMarkUniformValue(I.attributeName,x.datum,O)})}I.domainUniform&&G(this,Ar).push(()=>{const B=this.createMarkUniformSetter(I.domainUniformName),R=_.scale,M=()=>{const H=Hn(R.type)?[0,R.domain().length]:R.domain();B(cf(R.type)?MD(H):H)};_.addEventListener("domain",M),M()})}}const f=`precision highp float;
309
- precision highp int;`,h=y=>y.replace("#pragma markUniforms",c.join(`
310
- `));r=r.map(h),t=h(t),n=h(n);const d=[f,a,...r,Aw,jD,[...s].join(`
311
- `),...o,$D,qD,t],p=[f,a,...r,Aw,WD,n],m=this.gl;this.programStatus=eR(m,this.glHelper.compileShader(m.VERTEX_SHADER,d),this.glHelper.compileShader(m.FRAGMENT_SHADER,p))}finalizeGraphicsInitialization(){const t=this.programStatus.getProgramErrors();if(t){t.detail&&console.warn(t.detail);const n=new Error("Cannot create shader program: "+t.message);throw n.view=this.unitView,n}this.programInfo=KB(this.gl,this.programStatus.program),delete this.programStatus,this.viewUniformInfo=Xy(this.gl,this.programInfo,"View"),this.markUniformInfo=Xy(this.gl,this.programInfo,"Mark"),this.gl.useProgram(this.programInfo.program),to(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0,uZero:0});for(const n of G(this,Ar))n();de(this,Ar,void 0)}createMarkUniformSetter(t){const n=this.markUniformInfo.setters[t];if(!n)throw new Error(`Uniform "${t}" not found int the Mark block!`);return r=>{n(r),this.markUniformsAltered=!0,this.unitView.context.animator.requestRender()}}registerMarkUniformValue(t,n,r=i=>i){const i=this.createMarkUniformSetter(t),a=o=>{if(o==null)throw new Error(`Trying to set null/undefined value for uniform: ${t}${It(n)?`Expr: ${n.expr}`:""}`);i(o)};if(It(n)){const o=this.unitView.paramMediator.createExpression(n.expr),s=()=>a(r(o(null)));o.addListener(s),s()}else a(r(n))}deleteGraphicsData(){const t=this.gl;if(this.vertexArrayInfo&&(this.gl.bindVertexArray(null),t.deleteVertexArray(this.vertexArrayInfo.vertexArrayObject),this.vertexArrayInfo=void 0),this.bufferInfo){for(let n=0;n<8;n++)t.disableVertexAttribArray(n);Object.values(this.bufferInfo.attribs).forEach(n=>this.gl.deleteBuffer(n.buffer)),this.bufferInfo.indices&&this.gl.deleteBuffer(this.bufferInfo.indices),this.bufferInfo=void 0}}updateBufferInfo(t){if(this.gl.bindVertexArray(null),this.bufferInfo&&t.vertexCount<=this.bufferInfo.allocatedVertices)for(const[n,r]of Object.entries(t.arrays))r.data&&fT(this.gl,this.bufferInfo.attribs[n],r.data,0);else{this.deleteGraphicsData(),this.bufferInfo=pT(this.gl,t.arrays,{numElements:t.vertexCount}),this.bufferInfo.allocatedVertices=t.allocatedVertices;for(const[n,r]of Object.entries(t.arrays))this.bytesPerElement.set(n,r.data.BYTES_PER_ELEMENT)}}get glHelper(){return this.getContext().glHelper}get gl(){return this.glHelper.gl}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}isReady(){return this.bufferInfo&&this.programInfo}isPickingParticipant(){if(this.properties.tooltip===null)return!1;for(const t of this.unitView.getLayoutAncestors())if(!t.isPickingSupported())return!1;return!0}bindOrSetMarkUniformBlock(){this.markUniformsAltered?(Jy(this.gl,this.programInfo,this.markUniformInfo),this.markUniformsAltered=!1):Ky(this.gl,this.programInfo,this.markUniformInfo)}prepareRender(t){const n=this.glHelper,r=this.gl,i=[];i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=bD(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)});for(const[o,s]of Object.entries(this.encoding))if(Qt(s)){const u=Qt(s)&&s.resolutionChannel||o;if(qa(u)){const l=this.unitView.getScaleResolution(u),c=n.rangeTextures.get(l);c&&i.push(()=>to(this.programInfo,{[U0+o]:c}))}}this.getSampleFacetMode()==kw&&i.push(()=>{let o;for(const s of this.unitView.getLayoutAncestors())if(o=s.getSampleFacetTexture(),o)break;if(!o)throw new Error("No facet texture available. This is bug.");to(this.programInfo,{uSampleFacetTexture:o})});const a=(t.picking??!1)&&this.isPickingParticipant();return i.push(()=>al(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:a})),this.opaque||t.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(t){const n=t.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,a=n.locSize?n.locSize.size:1;if(i>1||i+a<0)return!1;const o=n.targetLocSize?n.targetLocSize.location:i,s=n.targetLocSize?n.targetLocSize.size:a;this.gl.uniform4f(r.location,i,a,o,s)}return!0}render(t){}createRenderCallback(t,n){var f;if(!this.bufferInfo)throw new Ki(`${this.getType()} mark has no data. This is bug.`,this.unitView);const r=this;let i;const a=(f=this.unitView.getScaleResolution("x"))==null?void 0:f.scale,o=a&&yt(a.type),s=["index","locus"].includes(a==null?void 0:a.type)?-1:0,u=[0,0];i=h=>{if(o&&h.xIndex){const d=a.domain(),p=h.xIndex(d[0]+s,d[1],u),m=p[0],y=p[1]-m;y>0&&t(m,y)}else t(h.offset,h.count)};const l=this.rangeMap.get(void 0).count==0?n.facetId:void 0,c=this.rangeMap.get(l);return n.sampleFacetRenderingOptions?function(){c.count&&r.prepareSampleFacetRendering(n)&&i(c)}:function(){c.count&&i(c)}}setViewport(t,n){t=t.flatten();const r=this.unitView.context.devicePixelRatio,i=this.gl,a=this.properties,o=this.glHelper.getLogicalCanvasSize(),s=.5,u=(a.xOffset??0)+s,l=(a.yOffset??0)+s;let c,f=t;if(a.clip!=="never"&&(a.clip||n)){let h=0,d=0,p;if(n){if(f=t.intersect(n).flatten(),!f.isDefined())return!1;p=[t.width/f.width,t.height/f.height],d=Math.max(0,t.y2-n.y2),h=Math.min(0,t.x-n.x)}else p=[1,1];const m=[f.x,o.height-f.y2,f.width,f.height].map(S=>S*r),y=m.map(S=>Math.round(S)),[w,x]=m.map((S,_)=>S-y[_]);i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),c={uViewOffset:[(u+h+w/r)/f.width,-(l+d-x/r)/f.height],uViewScale:p}}else{if(!t.isDefined())return!1;i.viewport(0,0,o.width*r,o.height*r),i.disable(i.SCISSOR_TEST),c={uViewOffset:[(t.x+u)/o.width,(o.height-t.y-l-t.height)/o.height],uViewScale:[t.width/o.width,t.height/o.height]}}return al(this.viewUniformInfo,{...c,uViewportSize:[t.width,t.height],uDevicePixelRatio:r}),Jy(this.gl,this.programInfo,this.viewUniformInfo),!0}findDatumAt(t,n){}}Ar=new WeakMap;class rR extends ir{constructor(){super([],JSON.stringify)}get(t){let n=super.get(t);return n===void 0&&(n={offset:0,count:0,xIndex:void 0},super.set(t,n)),n}migrateEntries(t){for(const[n,r]of this.entries())t.has(n)||(r.offset=0,r.count=0,r.xIndex=void 0);for(const[n,r]of t.entries())Object.assign(this.get(n),r)}}function q0(e,t){const n=Dk(t);let r=e[t]&&{...e[t]},i=e[n]&&{...e[n]};if(!(on(r)||on(i))){if(r){if(!Qt(e[t]))return;if(i){if(r.type!="quantitative"){const a=(1-(r.band||1))/2;r.band=a,i.band=-a}}else if(r.type=="quantitative")i={datum:0};else{i={...r};const a=(1-(r.band??1))/2;r.band=0+a,i.band=1-a}}else r={value:0},i={value:1};e[t]=r,e[n]=i}}function Tw(e,t){e.stroke||(t?e.stroke={value:null}:e.stroke={resolutionChannel:"color",...e.color}),on(e.stroke)&&e.stroke.value===null&&(e.strokeWidth={value:0}),e.strokeOpacity||(e.strokeOpacity={resolutionChannel:"opacity",...e.opacity})}function Iw(e,t){on(e.fill)&&e.fill.value===null?e.fillOpacity={value:0}:e.fill||(e.fill={resolutionChannel:"color",...e.color},!t&&!e.fillOpacity&&(e.fillOpacity={value:0})),e.fillOpacity||(t?e.fillOpacity={resolutionChannel:"opacity",...e.opacity}:e.fillOpacity={value:0})}class iR extends ll{constructor(n){super(n);Y(this,cu);Y(this,fu);Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,filled:!0,color:"#4c78a8",opacity:1,strokeWidth:3,cornerRadius:0,minWidth:.5,minHeight:.5,minOpacity:1,tessellationZoomThreshold:10,tessellationTiles:35}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}get opaque(){return hf(this,"opaque",()=>!K(this,cu,Cm).call(this)&&!K(this,fu,km).call(this)&&on(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(n){return q0(n,"x"),q0(n,"y"),Tw(n,this.properties.filled),Iw(n,this.properties.filled),delete n.color,delete n.opacity,n}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}async initializeGraphics(){await super.initializeGraphics();const n=[];K(this,cu,Cm).call(this)&&n.push("ROUNDED_CORNERS"),K(this,fu,km).call(this)&&n.push("STROKED"),this.createAndLinkShaders(AD,ED,[_D,...n.map(r=>"#define "+r)])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const n=this.properties;this.registerMarkUniformValue("uMinWidth",n.minWidth),this.registerMarkUniformValue("uMinHeight",n.minHeight),this.registerMarkUniformValue("uMinOpacity",n.minOpacity),this.registerMarkUniformValue("uCornerRadiusTopRight",n.cornerRadiusTopRight??n.cornerRadius??0),this.registerMarkUniformValue("uCornerRadiusBottomRight",n.cornerRadiusBottomRight??n.cornerRadius??0),this.registerMarkUniformValue("uCornerRadiusTopLeft",n.cornerRadiusTopLeft??n.cornerRadius??0),this.registerMarkUniformValue("uCornerRadiusBottomLeft",n.cornerRadiusBottomLeft??n.cornerRadius??0)}updateGraphicsData(){const n=this.unitView.getCollector(),r=n.getItemCount(),i=new zD({encoders:this.encoders,attributes:this.getAttributes(),numItems:r});i.addBatches(n.facetBatches);const a=i.toArrays();this.rangeMap.migrateEntries(a.rangeMap),this.updateBufferInfo(a)}prepareRender(n){const r=super.prepareRender(n);return r.push(()=>this.bindOrSetMarkUniformBlock()),r.push(()=>Yi(this.gl,this.programInfo,this.vertexArrayInfo)),r}render(n){const r=this.gl;return this.createRenderCallback((i,a)=>{lf(r,this.vertexArrayInfo,r.TRIANGLE_STRIP,a,i)},n)}findDatumAt(n,r){n=Ot(n);const i=this.unitView.getCollector().facetBatches.get(n);if(!i)return;const a=this.encoders,o=a.x.scale.type;if(Hn(o)){const s=a.x.accessor;return i.find(u=>r==s(u))}else{const s=a.x.accessor,u=a.x2.accessor;return i.find(l=>r>=s(l)&&r<u(l))}}}cu=new WeakSet,Cm=function(){const n=this.properties;return n.cornerRadius||n.cornerRadiusBottomLeft||n.cornerRadiusBottomRight||n.cornerRadiusTopLeft||n.cornerRadiusTopRight},fu=new WeakSet,km=function(){const n=this.encoding.strokeWidth;return!(on(n)&&!n.value)};const aR=`out float vRadius;out float vRadiusWithPadding;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out lowp float vShape;out lowp float vHalfStrokeWidth;out mat2 vRotationMatrix;const float CIRCLE=0.0;const float SQUARE=1.0;const float CROSS=2.0;const float DIAMOND=3.0;const float TRIANGLE_UP=4.0;const float TRIANGLE_RIGHT=5.0;const float TRIANGLE_DOWN=6.0;const float TRIANGLE_LEFT=7.0;const float TICK_UP=8.0;const float TICK_RIGHT=9.0;const float TICK_DOWN=10.0;const float TICK_LEFT=11.0;float computeSemanticThresholdFactor(){return getScaled_semanticScore()>=uSemanticThreshold ? 1.0 : 0.0;}vec2 getDxDy(){
323
+ `)}function FR(e,t,n){const r=e.createProgram();e.attachShader(r,t),e.attachShader(r,n),e.linkProgram(r);function i(){let o,a;if(!e.getProgramParameter(r,e.LINK_STATUS)){o=e.getProgramInfoLog(r);for(const u of[t,n])e.getShaderParameter(u,e.COMPILE_STATUS)||(o=e.getShaderInfoLog(u),a=RR(e.getShaderSource(u),o,0)+`
324
+ Error compiling: ${o}`,e.deleteShader(u));e.deleteProgram(r)}if(o)return{message:o,detail:a}}return{program:r,getProgramErrors:i}}function vf(e,t,n,r){return r?Wb(e,r,n,t):r=Vs(e,{...t,src:n}),r}function $w(...e){const t={get(n,r,i){for(const o of e){const s=o()[r];if(s!==void 0)return s}},has(n,r,i){for(const o of e){const a=o();if(r in a)return!0}return!1}};return new Proxy({},t)}function MR(e){return Fe(e)||Tt(e)||us(e)}class ri extends Error{constructor(t,n){super(t),this.name="ViewError",this.view=n}}const PR="SAMPLE_FACET_UNIFORM",qw="SAMPLE_FACET_TEXTURE";class bl{constructor(t){Z(this,nr,[]);this.unitView=t,this.encoders=void 0,this.bufferInfo=void 0,this.bytesPerElement=new Map,this.programInfo=void 0,this.vertexArrayInfo=void 0,this.viewUniformInfo=void 0,this.markUniformInfo=void 0,this.markUniformsAltered=!0,this.rangeMap=new LR,this.defaultProperties={get clip(){return["x","y"].map(n=>t.getScaleResolution(n)).some(n=>(n==null?void 0:n.isZoomable())??!1)},xOffset:0,yOffset:0,minBufferSize:0},this.properties=$w(typeof this.unitView.spec.mark=="object"?()=>this.unitView.spec.mark:()=>({}),()=>this.defaultProperties)}get opaque(){return!1}getAttributes(){throw new Error("Not implemented!")}getSupportedChannels(){return["sample","facetIndex","x","y","color","opacity","search","uniqueId"]}getDefaultEncoding(){const t={sample:void 0,uniqueId:void 0};return this.isPickingParticipant()&&(t.uniqueId={field:ei}),t}fixEncoding(t){return t}setupExprRefsNeedingGraphicsUpdate(t){const n=this.getSupportedChannels(),r={};for(const o of t){const a=this.properties[o];if(a&&Dt(a)){const s=this.unitView.paramMediator.createExpression(a.expr);s.addListener(()=>{this.updateGraphicsData(),this.unitView.context.animator.requestRender()}),n.includes(o)||Object.defineProperty(r,o,{get(){return s()}})}}const i=this.properties;this.properties=$w(()=>r,()=>i)}get encoding(){return yf(this,"encoding",()=>{var a;const t=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=s=>{const u=this.properties[s];return MR(u)||Dt(u)?{value:u}:void 0},i=Object.fromEntries(this.getSupportedChannels().map(s=>[s,r(s)]).filter(s=>on(s[1]))),o=this.fixEncoding({...t,...i,...n});for(const s of Object.keys(o))this.getSupportedChannels().includes(s)||delete o[s];return o.x&&((a=o.x).buildIndex??(a.buildIndex=!0)),o})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=HD(this.unitView,this.encoding)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return qw;if(this.unitView.getLayoutAncestors().find(t=>"samples"in t.spec))return PR}createAndLinkShaders(t,n,r=[]){const i=this.getAttributes(),o=this.encoders,a=this.getSampleFacetMode();a&&r.push(`#define ${a}`);const s="// view: "+this.unitView.getPathString();let u=[];const l=new Set,c=Nw(o),f=[],h=Object.values(o).flatMap(k=>k.accessors).map(k=>k.predicate).filter(k=>k.param),d=new Map;for(const k of h){const B=k.param,I=this.unitView.paramMediator.getValue(B);if(!I)throw new Error(`Cannot infer selection type as the parameter "${B}" has no value. Please ensure that the parameter is properly defined!`);if(bw(I)){if(!d.has(B)){const D=X0+gf(B);d.set(B,"single"),f.push(" // Selection parameter"),f.push(` uniform highp uint ${D};`),z(this,nr).push(()=>{this.registerMarkUniformValue(D,{expr:B},M=>M.uniqueId??0)})}}else throw new Error(`Unsupported selection (${B}) in condition: ${JSON.stringify(I)}`)}const p=(k,B,I,D)=>{const M=B.channelDef;if(on(M))if(Dt(M.value)){const{uniformName:G,uniformGlsl:N,accessorGlsl:ne,adjuster:ie}=rR(k,I);u.push(ne),f.push(N),z(this,nr).push(()=>{this.registerMarkUniformValue(G,M.value,ie)})}else u.push(nR(k,I,M.value).accessorGlsl);else if(ll(M)){const{uniformName:G,uniformGlsl:N,accessorGlsl:ne}=iR(k,D,I);f.push(N),u.push(ne);const{largeHp:ie,discrete:he}=pl(D,k),me=he&&"domain"in D?Re=>D.domain().indexOf(Re):ie?Lw:Re=>+Re;z(this,nr).push(()=>{this.registerMarkUniformValue(G,M.datum,me)})}else if(ti(M)){const G=c.get([M.field,!0]),{attributeGlsl:N,accessorGlsl:ne}=Iw(k,D,I,G!=null&&G.includes(k)?G:void 0);l.add(N),u.push(ne)}else if(ul(M)){const{attributeGlsl:G,accessorGlsl:N}=Iw(k,D,I);l.add(G),u.push(N)}else throw new ri(`Unsupported channel definition: ${JSON.stringify(M)}`,this.unitView)};for(const[k,B]of Object.entries(o)){if(!i.includes(k))continue;const{channelDef:I,accessors:D,scale:M}=B;for(let G=0;G<D.length;G++)p(k,D[G],G,M);if(M){const G=an(I)&&I.resolutionChannel||k,N=fl(G)?this.unitView.getScaleResolution(G):null,{glsl:ne,domainUniform:ie,domainUniformName:he,rangeUniform:me,rangeUniformName:Re}=oR(k,M,I);u.push(ne),f.push(ie),f.push(me),me&&z(this,nr).push(()=>{const Ae=this.createMarkUniformSetter(Re),Le=()=>Ae(Ow(M,k));N.addEventListener("range",Le),Le()}),ie&&z(this,nr).push(()=>{const Ae=this.createMarkUniformSetter(he),Le=()=>{const Oe=Xr(M.type)?[0,M.domain().length]:M.domain();Ae(Pw(M.type)?fR(Oe):Oe)};N.addEventListener("domain",Le),Le()})}u.push(aR(k,D))}const m=[...d.entries()].filter(([,k])=>k=="single").map(([k])=>`${X0}${k} == ${hl}uniqueId`);u.push("bool isPointSelected() {",this.encoders.uniqueId&&m.length>0?` return ${m.join(" || ")};`:" return false;","}");const y=`precision highp float;
325
+ precision highp int;`,w=k=>k.replace("#pragma markUniforms",f.join(`
326
+ `));r=r.map(w),t=w(t),n=w(n);const A=[y,s,...r,Gw,ER,[...l].join(`
327
+ `),...u,_R,SR,t],S=[y,s,...r,Gw,CR,n],_=this.gl;this.programStatus=FR(_,this.glHelper.compileShader(_.VERTEX_SHADER,A),this.glHelper.compileShader(_.FRAGMENT_SHADER,S))}finalizeGraphicsInitialization(){const t=this.programStatus.getProgramErrors();if(t){t.detail&&console.warn(t.detail);const n=new Error("Cannot create shader program: "+t.message);throw n.view=this.unitView,n}this.programInfo=kT(this.gl,this.programStatus.program),delete this.programStatus,this.viewUniformInfo=v2(this.gl,this.programInfo,"View"),this.markUniformInfo=v2(this.gl,this.programInfo,"Mark"),this.gl.useProgram(this.programInfo.program),Jo(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0,uZero:0});for(const n of z(this,nr))n();le(this,nr,void 0)}createMarkUniformSetter(t){const n=this.markUniformInfo.setters[t];if(!n)throw new Error(`Uniform "${t}" not found int the Mark block!`);return r=>{n(r),this.markUniformsAltered=!0,this.unitView.context.animator.requestRender()}}registerMarkUniformValue(t,n,r=i=>i){const i=this.createMarkUniformSetter(t),o=a=>{if(a==null)throw new Error(`Trying to set null/undefined value for uniform: ${t}${Dt(n)?`Expr: ${n.expr}`:""}`);i(a)};if(Dt(n)){const a=this.unitView.paramMediator.createExpression(n.expr),s=()=>o(r(a(null)));a.addListener(s),s()}else o(r(n))}deleteGraphicsData(){const t=this.gl;if(this.vertexArrayInfo&&(this.gl.bindVertexArray(null),t.deleteVertexArray(this.vertexArrayInfo.vertexArrayObject),this.vertexArrayInfo=void 0),this.bufferInfo){for(let n=0;n<8;n++)t.disableVertexAttribArray(n);Object.values(this.bufferInfo.attribs).forEach(n=>this.gl.deleteBuffer(n.buffer)),this.bufferInfo.indices&&this.gl.deleteBuffer(this.bufferInfo.indices),this.bufferInfo=void 0}}updateBufferInfo(t){if(this.gl.bindVertexArray(null),this.bufferInfo&&t.vertexCount<=this.bufferInfo.allocatedVertices)for(const[n,r]of Object.entries(t.arrays))r.data&&U8(this.gl,this.bufferInfo.attribs[n],r.data,0);else{this.deleteGraphicsData(),this.bufferInfo=V8(this.gl,t.arrays,{numElements:t.vertexCount}),this.bufferInfo.allocatedVertices=t.allocatedVertices;for(const[n,r]of Object.entries(t.arrays))this.bytesPerElement.set(n,r.data.BYTES_PER_ELEMENT)}}get glHelper(){return this.getContext().glHelper}get gl(){return this.glHelper.gl}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}isReady(){return this.bufferInfo&&this.programInfo}isPickingParticipant(){if(this.properties.tooltip===null)return!1;for(const t of this.unitView.getLayoutAncestors())if(!t.isPickingSupported())return!1;return!0}bindOrSetMarkUniformBlock(){this.markUniformsAltered?(A2(this.gl,this.programInfo,this.markUniformInfo),this.markUniformsAltered=!1):x2(this.gl,this.programInfo,this.markUniformInfo)}prepareRender(t){const n=this.glHelper,r=this.gl,i=[];i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=qT(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)});for(const[a,s]of Object.entries(this.encoding))if(an(s)){const u=an(s)&&s.resolutionChannel||a;if(fl(u)){const l=this.unitView.getScaleResolution(u),c=n.rangeTextures.get(l);c&&i.push(()=>Jo(this.programInfo,{[Q0+a]:c}))}}this.getSampleFacetMode()==qw&&i.push(()=>{let a;for(const s of this.unitView.getLayoutAncestors())if(a=s.getSampleFacetTexture(),a)break;if(!a)throw new Error("No facet texture available. This is bug.");Jo(this.programInfo,{uSampleFacetTexture:a})});const o=(t.picking??!1)&&this.isPickingParticipant();return i.push(()=>js(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:o})),this.opaque||t.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(t){const n=t.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,o=n.locSize?n.locSize.size:1;if(i>1||i+o<0)return!1;const a=n.targetLocSize?n.targetLocSize.location:i,s=n.targetLocSize?n.targetLocSize.size:o;this.gl.uniform4f(r.location,i,o,a,s)}return!0}render(t){}createRenderCallback(t,n){var f;if(!this.bufferInfo)throw new ri(`${this.getType()} mark has no data. This is bug.`,this.unitView);const r=this;let i;const o=(f=this.unitView.getScaleResolution("x"))==null?void 0:f.scale,a=o&&bt(o.type),s=["index","locus"].includes(o==null?void 0:o.type)?-1:0,u=[0,0];i=h=>{if(a&&h.xIndex){const d=o.domain(),p=h.xIndex(d[0]+s,d[1],u),m=p[0],y=p[1]-m;y>0&&t(m,y)}else t(h.offset,h.count)};const l=this.rangeMap.get(void 0).count==0?n.facetId:void 0,c=this.rangeMap.get(l);return n.sampleFacetRenderingOptions?function(){c.count&&r.prepareSampleFacetRendering(n)&&i(c)}:function(){c.count&&i(c)}}setViewport(t,n){t=t.flatten();const r=this.unitView.context.devicePixelRatio,i=this.gl,o=this.properties,a=this.glHelper.getLogicalCanvasSize(),s=.5,u=(o.xOffset??0)+s,l=(o.yOffset??0)+s;let c,f=t;if(o.clip!=="never"&&(o.clip||n)){let h=0,d=0,p;if(n){if(f=t.intersect(n).flatten(),!f.isDefined())return!1;p=[t.width/f.width,t.height/f.height],d=Math.max(0,t.y2-n.y2),h=Math.min(0,t.x-n.x)}else p=[1,1];const m=[f.x,a.height-f.y2,f.width,f.height].map(S=>S*r),y=m.map(S=>Math.round(S)),[w,A]=m.map((S,_)=>S-y[_]);i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),c={uViewOffset:[(u+h+w/r)/f.width,-(l+d-A/r)/f.height],uViewScale:p}}else{if(!t.isDefined())return!1;i.viewport(0,0,a.width*r,a.height*r),i.disable(i.SCISSOR_TEST),c={uViewOffset:[(t.x+u)/a.width,(a.height-t.y-l-t.height)/a.height],uViewScale:[t.width/a.width,t.height/a.height]}}return js(this.viewUniformInfo,{...c,uViewportSize:[t.width,t.height],uDevicePixelRatio:r}),A2(this.gl,this.programInfo,this.viewUniformInfo),!0}findDatumAt(t,n){}}nr=new WeakMap;class LR extends or{constructor(){super([],JSON.stringify)}get(t){let n=super.get(t);return n===void 0&&(n={offset:0,count:0,xIndex:void 0},super.set(t,n)),n}migrateEntries(t){for(const[n,r]of this.entries())t.has(n)||(r.offset=0,r.count=0,r.xIndex=void 0);for(const[n,r]of t.entries())Object.assign(this.get(n),r)}}function rp(e,t){const n=YD(t);let r=e[t]&&{...e[t]},i=e[n]&&{...e[n]};if(!(on(r)||on(i))){if(r){if(!an(e[t]))return;if(i){if(r.type!="quantitative"){const o=(1-(r.band||1))/2;r.band=o,i.band=-o}}else if(r.type=="quantitative")i={datum:0};else{i={...r};const o=(1-(r.band??1))/2;r.band=0+o,i.band=1-o}}else r={value:0},i={value:1};e[t]=r,e[n]=i}}function Ww(e,t){e.stroke||(t?e.stroke={value:null}:e.stroke={resolutionChannel:"color",...e.color}),on(e.stroke)&&e.stroke.value===null&&(e.strokeWidth={value:0}),e.strokeOpacity||(e.strokeOpacity={resolutionChannel:"opacity",...e.opacity})}function Zw(e,t){on(e.fill)&&e.fill.value===null?e.fillOpacity={value:0}:e.fill||(e.fill={resolutionChannel:"color",...e.color},!t&&!e.fillOpacity&&(e.fillOpacity={value:0})),e.fillOpacity||(t?e.fillOpacity={resolutionChannel:"opacity",...e.opacity}:e.fillOpacity={value:0})}class NR extends bl{constructor(n){super(n);Z(this,yu);Z(this,wu);Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,filled:!0,color:"#4c78a8",opacity:1,strokeWidth:3,cornerRadius:0,minWidth:.5,minHeight:.5,minOpacity:1,tessellationZoomThreshold:10,tessellationTiles:35}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}get opaque(){return yf(this,"opaque",()=>!X(this,yu,Mm).call(this)&&!X(this,wu,Pm).call(this)&&on(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(n){return rp(n,"x"),rp(n,"y"),Ww(n,this.properties.filled),Zw(n,this.properties.filled),delete n.color,delete n.opacity,n}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}async initializeGraphics(){await super.initializeGraphics();const n=[];X(this,yu,Mm).call(this)&&n.push("ROUNDED_CORNERS"),X(this,wu,Pm).call(this)&&n.push("STROKED"),this.createAndLinkShaders(XT,KT,[JT,...n.map(r=>"#define "+r)])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const n=this.properties;this.registerMarkUniformValue("uMinWidth",n.minWidth),this.registerMarkUniformValue("uMinHeight",n.minHeight),this.registerMarkUniformValue("uMinOpacity",n.minOpacity),this.registerMarkUniformValue("uCornerRadiusTopRight",n.cornerRadiusTopRight??n.cornerRadius??0),this.registerMarkUniformValue("uCornerRadiusBottomRight",n.cornerRadiusBottomRight??n.cornerRadius??0),this.registerMarkUniformValue("uCornerRadiusTopLeft",n.cornerRadiusTopLeft??n.cornerRadius??0),this.registerMarkUniformValue("uCornerRadiusBottomLeft",n.cornerRadiusBottomLeft??n.cornerRadius??0)}updateGraphicsData(){const n=this.unitView.getCollector();if(!n){console.debug("No collector");return}const r=n.getItemCount(),i=new yR({encoders:this.encoders,attributes:this.getAttributes(),numItems:r});i.addBatches(n.facetBatches);const o=i.toArrays();this.rangeMap.migrateEntries(o.rangeMap),this.updateBufferInfo(o)}prepareRender(n){const r=super.prepareRender(n);return r.push(()=>this.bindOrSetMarkUniformBlock()),r.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),r}render(n){const r=this.gl;return this.createRenderCallback((i,o)=>{Vc(r,this.vertexArrayInfo,r.TRIANGLE_STRIP,o,i)},n)}findDatumAt(n,r){n=Nt(n);const i=this.unitView.getCollector().facetBatches.get(n);if(!i)return;const o=this.encoders,a=o.x.scale.type;if(Xr(a)){const s=o.x.dataAccessor;return i.find(u=>r==s(u))}else{const s=o.x.dataAccessor,u=o.x2.dataAccessor;return i.find(l=>r>=s(l)&&r<u(l))}}}yu=new WeakSet,Mm=function(){const n=this.properties;return n.cornerRadius||n.cornerRadiusBottomLeft||n.cornerRadiusBottomRight||n.cornerRadiusTopLeft||n.cornerRadiusTopRight},wu=new WeakSet,Pm=function(){const n=this.encoding.strokeWidth;return!(on(n)&&!n.value)||"condition"in n};const OR=`out float vRadius;out float vRadiusWithPadding;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out lowp float vShape;out lowp float vHalfStrokeWidth;out mat2 vRotationMatrix;const float CIRCLE=0.0;const float SQUARE=1.0;const float CROSS=2.0;const float DIAMOND=3.0;const float TRIANGLE_UP=4.0;const float TRIANGLE_RIGHT=5.0;const float TRIANGLE_DOWN=6.0;const float TRIANGLE_LEFT=7.0;const float TICK_UP=8.0;const float TICK_RIGHT=9.0;const float TICK_DOWN=10.0;const float TICK_LEFT=11.0;float computeSemanticThresholdFactor(){return getScaled_semanticScore()>=uSemanticThreshold ? 1.0 : 0.0;}vec2 getDxDy(){
312
328
  #if defined(dx_DEFINED) || defined(dy_DEFINED)
313
329
  return vec2(getScaled_dx(),getScaled_dy())/uViewportSize;
314
330
  #else
315
331
  return vec2(0.0,0.0);
316
332
  #endif
317
- }void main(void){float shapeAngle=0.0;float semanticThresholdFactor=computeSemanticThresholdFactor();if(semanticThresholdFactor<=0.0){gl_PointSize=0.0;gl_Position=vec4(100.0,0.0,0.0,0.0);return;}float size=getScaled_size();vec2 pos=vec2(getScaled_x(),getScaled_y())+getDxDy();gl_Position=unitToNdc(applySampleFacet(pos));float strokeWidth=getScaled_strokeWidth();float diameter=sqrt(size)*uScaleFactor*semanticThresholdFactor;float opacity=uViewOpacity;if(strokeWidth<=0.0||uInwardStroke){float minDiameter=1.0/uDevicePixelRatio;if(diameter<minDiameter){opacity*=pow(diameter/minDiameter,2.5);diameter=minDiameter;}}float fillOpa=getScaled_fillOpacity()*opacity;float strokeOpa=getScaled_strokeOpacity()*opacity;vShape=getScaled_shape();bool circle=vShape==0.0;if(vShape>TICK_UP&&vShape<=TICK_LEFT){shapeAngle=(vShape-TICK_UP)*90.0;vShape=TICK_UP;}else if(vShape>TRIANGLE_UP&&vShape<=TRIANGLE_LEFT){shapeAngle=(vShape-TRIANGLE_UP)*90.0;vShape=TRIANGLE_UP;}float angleInDegrees=getScaled_angle();float angle=-(shapeAngle+angleInDegrees)*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);vRotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);float roomForRotation=circle ? 1.0 : sin(mod(angle,PI/2.0)+PI/4.0)/sin(PI/4.0);float aaPadding=1.0/uDevicePixelRatio;float rotationPadding=(diameter*roomForRotation)-diameter;float strokePadding=uInwardStroke ? 0.0 : strokeWidth*(circle ? 1.0 : sqrt(3.0));float padding=rotationPadding+strokePadding+aaPadding;gl_PointSize=(diameter+padding)*uDevicePixelRatio;vRadius=diameter/2.0;vRadiusWithPadding=vRadius+padding/2.0;vHalfStrokeWidth=strokeWidth/2.0;vFillColor=vec4(getScaled_fill()*fillOpa,fillOpa);vStrokeColor=vec4(getScaled_stroke()*strokeOpa,strokeOpa);setupPicking();}`,oR="const lowp vec4 white=vec4(1.0);const lowp vec4 black=vec4(0.0,0.0,0.0,1.0);in float vRadius;in float vRadiusWithPadding;in lowp vec4 vFillColor;in lowp vec4 vStrokeColor;in lowp float vShape;in lowp float vHalfStrokeWidth;in mat2 vRotationMatrix;out lowp vec4 fragColor;const float CIRCLE=0.0;const float SQUARE=1.0;const float CROSS=2.0;const float DIAMOND=3.0;const float TRIANGLE_UP=4.0;const float TICK_UP=8.0;float circle(vec2 p,float r){return length(p)-r;}float square(vec2 p,float r){p=abs(p);return max(p.x,p.y)-r;}float tickUp(vec2 p,float r){float halfR=r*0.5;p.y+=halfR;p=abs(p);return max(p.x-r*0.15,p.y-halfR);}float equilateralTriangle(vec2 p,float r){p.y=-p.y;float k=sqrt(3.0);float kr=k*r;p.y-=kr/2.0;return max((abs(p.x)*k+p.y)/2.0,-p.y-kr);}float crossShape(vec2 p,float r){p=abs(p);vec2 b=vec2(0.4,1.0)*r;vec2 v=abs(p)-b.xy;vec2 h=abs(p)-b.yx;return min(max(v.x,v.y),max(h.x,h.y));}float diamond(vec2 p,float r){p=abs(p);return(max(abs(p.x-p.y),abs(p.x+p.y))-r)/sqrt(2.0);}void main(){float d;vec2 p=vRotationMatrix*(2.0*gl_PointCoord-1.0)*vRadiusWithPadding;float r=vRadius;if(vShape==CIRCLE){d=circle(p,r);}else if(vShape==SQUARE){d=square(p,r);}else if(vShape==CROSS){d=crossShape(p,r);}else if(vShape==DIAMOND){d=diamond(p,r);}else if(vShape==TRIANGLE_UP){d=equilateralTriangle(p,r);}else if(vShape==TICK_UP){d=tickUp(p,r);}else{d=0.0;}if(!uPickingEnabled){lowp vec4 fillColor=mix(vFillColor,white,-d*uGradientStrength/vRadius);fragColor=distanceToColor(d+(uInwardStroke ? vHalfStrokeWidth : 0.0),fillColor,vStrokeColor,vHalfStrokeWidth);}else if(d-vHalfStrokeWidth<=0.0){fragColor=vPickingColor;}else{discard;}}",sR=`layout(std140)uniform Mark{/***The stroke should only grow inwards,e.g,the diameter/outline is not affected by the stroke width.*Thus,a point that has a zero size has no visible stroke. This allows strokes to be used with*geometric zoom,etc.*/uniform bool uInwardStroke;uniform mediump float uScaleFactor;uniform mediump float uZoomLevel;uniform highp float uSemanticThreshold;uniform mediump float uGradientStrength;
333
+ }void main(void){float shapeAngle=0.0;float semanticThresholdFactor=computeSemanticThresholdFactor();if(semanticThresholdFactor<=0.0){gl_PointSize=0.0;gl_Position=vec4(100.0,0.0,0.0,0.0);return;}float size=getScaled_size();vec2 pos=vec2(getScaled_x(),getScaled_y())+getDxDy();gl_Position=unitToNdc(applySampleFacet(pos));float strokeWidth=getScaled_strokeWidth();float diameter=sqrt(size)*uScaleFactor*semanticThresholdFactor;float opacity=uViewOpacity;if(strokeWidth<=0.0||uInwardStroke){float minDiameter=1.0/uDevicePixelRatio;if(diameter<minDiameter){opacity*=pow(diameter/minDiameter,2.5);diameter=minDiameter;}}float fillOpa=getScaled_fillOpacity()*opacity;float strokeOpa=getScaled_strokeOpacity()*opacity;vShape=getScaled_shape();bool circle=vShape==0.0;if(vShape>TICK_UP&&vShape<=TICK_LEFT){shapeAngle=(vShape-TICK_UP)*90.0;vShape=TICK_UP;}else if(vShape>TRIANGLE_UP&&vShape<=TRIANGLE_LEFT){shapeAngle=(vShape-TRIANGLE_UP)*90.0;vShape=TRIANGLE_UP;}float angleInDegrees=getScaled_angle();float angle=-(shapeAngle+angleInDegrees)*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);vRotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);float roomForRotation=circle ? 1.0 : sin(mod(angle,PI/2.0)+PI/4.0)/sin(PI/4.0);float aaPadding=1.0/uDevicePixelRatio;float rotationPadding=(diameter*roomForRotation)-diameter;float strokePadding=uInwardStroke ? 0.0 : strokeWidth*(circle ? 1.0 : sqrt(3.0));float padding=rotationPadding+strokePadding+aaPadding;gl_PointSize=(diameter+padding)*uDevicePixelRatio;vRadius=diameter/2.0;vRadiusWithPadding=vRadius+padding/2.0;vHalfStrokeWidth=strokeWidth/2.0;vFillColor=vec4(getScaled_fill()*fillOpa,fillOpa);vStrokeColor=vec4(getScaled_stroke()*strokeOpa,strokeOpa);setupPicking();}`,zR="const lowp vec4 white=vec4(1.0);const lowp vec4 black=vec4(0.0,0.0,0.0,1.0);in float vRadius;in float vRadiusWithPadding;in lowp vec4 vFillColor;in lowp vec4 vStrokeColor;in lowp float vShape;in lowp float vHalfStrokeWidth;in mat2 vRotationMatrix;out lowp vec4 fragColor;const float CIRCLE=0.0;const float SQUARE=1.0;const float CROSS=2.0;const float DIAMOND=3.0;const float TRIANGLE_UP=4.0;const float TICK_UP=8.0;float circle(vec2 p,float r){return length(p)-r;}float square(vec2 p,float r){p=abs(p);return max(p.x,p.y)-r;}float tickUp(vec2 p,float r){float halfR=r*0.5;p.y+=halfR;p=abs(p);return max(p.x-r*0.15,p.y-halfR);}float equilateralTriangle(vec2 p,float r){p.y=-p.y;float k=sqrt(3.0);float kr=k*r;p.y-=kr/2.0;return max((abs(p.x)*k+p.y)/2.0,-p.y-kr);}float crossShape(vec2 p,float r){p=abs(p);vec2 b=vec2(0.4,1.0)*r;vec2 v=abs(p)-b.xy;vec2 h=abs(p)-b.yx;return min(max(v.x,v.y),max(h.x,h.y));}float diamond(vec2 p,float r){p=abs(p);return(max(abs(p.x-p.y),abs(p.x+p.y))-r)/sqrt(2.0);}void main(){float d;vec2 p=vRotationMatrix*(2.0*gl_PointCoord-1.0)*vRadiusWithPadding;float r=vRadius;if(vShape==CIRCLE){d=circle(p,r);}else if(vShape==SQUARE){d=square(p,r);}else if(vShape==CROSS){d=crossShape(p,r);}else if(vShape==DIAMOND){d=diamond(p,r);}else if(vShape==TRIANGLE_UP){d=equilateralTriangle(p,r);}else if(vShape==TICK_UP){d=tickUp(p,r);}else{d=0.0;}if(!uPickingEnabled){lowp vec4 fillColor=mix(vFillColor,white,-d*uGradientStrength/vRadius);fragColor=distanceToColor(d+(uInwardStroke ? vHalfStrokeWidth : 0.0),fillColor,vStrokeColor,vHalfStrokeWidth);}else if(d-vHalfStrokeWidth<=0.0){fragColor=vPickingColor;}else{discard;}}",UR=`layout(std140)uniform Mark{/***The stroke should only grow inwards,e.g,the diameter/outline is not affected by the stroke width.*Thus,a point that has a zero size has no visible stroke. This allows strokes to be used with*geometric zoom,etc.*/uniform bool uInwardStroke;uniform mediump float uScaleFactor;uniform mediump float uZoomLevel;uniform highp float uSemanticThreshold;uniform mediump float uGradientStrength;
318
334
  #pragma markUniforms
319
- };`,$n=1,Kr=2,W0=4;class tt{constructor(t){Y(this,va);Pt(this,"paramMediatorProvider",null);this.paramMediatorProvider=t,this.children=[],this.parent=void 0,this.completed=!1}get behavior(){return 0}reset(){this.completed=!1;for(const t of this.children)t.reset()}initialize(){}setParent(t){this.parent=t}addChild(t){if(t.parent)throw new Error("Cannot add the child! It already has a parent.");return this.children.push(t),t.setParent(this),K(this,va,Nu).call(this),this}adopt(t){t.parent&&t.parent.removeChild(t),this.addChild(t)}adoptChildrenOf(t){for(const n of t.children)this.adopt(n)}insertAsParent(t){var n;if(this.isRoot())throw new Error("Cannot insert a new parent for a root node!");t.parent=this.parent,this.parent.children[this.parent.children.indexOf(this)]=t,K(n=this.parent,va,Nu).call(n),this.parent=void 0,t.addChild(this)}removeChild(t){const n=this.children.indexOf(t);if(n>-1)this.children.splice(n,1),t.parent=void 0,K(this,va,Nu).call(this);else throw new Error("Trying to remove an unknown child node!")}excise(){var t;if(this.isRoot())throw new Error("Cannot excise root node!");if(this.isTerminal())this.parent.removeChild(this);else if(this.children.length==1){const n=this.children[0];n.setParent(this.parent),this.parent.children[this.parent.children.indexOf(this)]=n,K(t=this.parent,va,Nu).call(t),this.setParent(void 0),this.children.length=0}else throw new Error("Cannot excise a node that has multiple children!")}isRoot(){return!this.parent}isBranching(){return this.children.length>1}isTerminal(){return this.children.length==0}visit(t){t(this);for(const n of this.children)n.visit(t);t.afterChildren&&t.afterChildren(this)}subtreeToString(t=0){const n=this.children.map(r=>r.subtreeToString(t+1)).join("");return`${" ".repeat(t*2)}* ${this.constructor.name}${("identifier"in this&&this.identifier?": "+this.identifier:"")??""}
320
- ${n}`}handle(t){this._propagate(t)}complete(){this.completed=!0;for(const t of this.children)t.complete()}beginBatch(t){for(const n of this.children)n.beginBatch(t)}get paramMediator(){if(this.paramMediatorProvider)return this.paramMediatorProvider.paramMediator;if(!this.parent)throw new Error("Cannot find paramMediator!");return this.parent.paramMediator}repropagate(){if(this.parent)this.parent.repropagate();else throw new Error("Cannot repropagate data, no FlowNode with stored data found!")}_propagate(t){}}va=new WeakSet,Nu=function(){this._propagate=Function("children",ss(this.children.length).map(t=>`const child${t} = children[${t}];`).join(`
321
- `)+`return function propagate(datum) {${ss(this.children.length).map(t=>`child${t}.handle(datum);`).join(`
322
- `)}}`)(this.children)};function Bw(e){return e.type=="file"}function lR(e){return e.type=="facet"}class Dw extends tt{constructor(t){super(),this.k=t.size||500,this.reset()}reset(){super.reset(),this.reservoir=[],this.W=void 0,this.ingester=this._initialIngester}_initialIngester(t){this.reservoir.push(t),this.reservoir.length==this.k&&(this.W=Math.exp(Math.log(Math.random())/this.k),this.i=this.k,this.next=this.i,this.ingester=this._finalIngester,this._setNextStop())}_finalIngester(t){++this.i==this.next&&(this.reservoir[Math.floor(Math.random()*this.k)]=t,this.W*=Math.exp(Math.log(Math.random())/this.k),this._setNextStop())}_setNextStop(){this.next+=Math.floor(Math.log(Math.random())/Math.log(1-this.W))+1}handle(t){this.ingester(t)}complete(){for(const t of this.reservoir)this._propagate(t);super.complete()}}function uR(e,t,n){const r=new Dw({type:"sample",size:e});for(const i of t)r.handle(n(i));return r.complete(),r.reservoir}const cR={};class fR extends ll{constructor(n){super(n);Y(this,Eh);Y(this,Go,()=>0);Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,color:"#4c78a8",filled:!0,opacity:1,size:100,semanticScore:0,shape:"circle",strokeWidth:2,fillGradientStrength:0,dx:0,dy:0,angle:0,sampleFacetPadding:.1,semanticZoomFraction:.02}));const r=this.properties.semanticZoomFraction;if(r!=null)if(It(r)){const i=this.unitView.paramMediator.createExpression(r.expr);i.addListener(()=>this.getContext().animator.requestRender()),de(this,Go,i)}else de(this,Go,()=>r)}getAttributes(){return["inwardStroke","uniqueId","facetIndex","x","y","size","semanticScore","shape","strokeWidth","gradientStrength","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"size","semanticScore","shape","strokeWidth","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getDefaultEncoding(){return{...super.getDefaultEncoding(),...cR}}fixEncoding(n){return Tw(n,this.properties.filled),Iw(n,this.properties.filled),delete n.color,delete n.opacity,n}initializeData(){super.initializeData();const n=this.unitView.getAccessor("semanticScore");n&&(this.sampledSemanticScores=Float32Array.from(uR(1e4,this.unitView.getCollector().getData(),n)),this.sampledSemanticScores.sort((r,i)=>r-i))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(aR,oR,[sR])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const n=this.properties;this.registerMarkUniformValue("uInwardStroke",n.inwardStroke,r=>!!r),this.registerMarkUniformValue("uGradientStrength",n.fillGradientStrength)}updateGraphicsData(){const n=this.unitView.getCollector(),r=n.getItemCount(),i=new GD({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(r,this.properties.minBufferSize||0)});i.addBatches(n.facetBatches);const a=i.toArrays();this.rangeMap.migrateEntries(a.rangeMap),this.updateBufferInfo(a)}getSemanticThreshold(){if(this.sampledSemanticScores){const n=Math.max(0,1-G(this,Go).call(this)*this.unitView.getZoomLevel());if(n<=0)return-1/0;if(n>=1)return 1/0;{const r=this.sampledSemanticScores;return o1(r,n)}}else return-1}prepareRender(n){const r=super.prepareRender(n);return r.push(()=>{al(this.markUniformInfo,{uScaleFactor:K(this,Eh,g4).call(this),uSemanticThreshold:this.getSemanticThreshold()}),this.markUniformsAltered=!0}),r.push(()=>this.bindOrSetMarkUniformBlock()),r.push(()=>Yi(this.gl,this.programInfo,this.vertexArrayInfo)),r}render(n){const r=this.gl;return this.createRenderCallback((i,a)=>{a&&lf(r,this.vertexArrayInfo,r.POINTS,a,i)},n)}}Go=new WeakMap,Eh=new WeakSet,g4=function(){const n=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/n),1/3)};const hR="const int BUTT=0;const int SQUARE=1;const int ROUND=2;in float pos;in float side;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;out highp vec2 vPosInPixels;void main(void){float pixelSize=1.0/uDevicePixelRatio;float size=getScaled_size();float opacity=getScaled_opacity()*uViewOpacity;if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()));vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()));vec2 tangent=b-a;float offset=0.0;float relativeDiff=0.0;if(uMinLength>0.0||uStrokeCap!=BUTT){float len=length(tangent*uViewportSize);float diff=max(0.0,uMinLength-len);if(uStrokeCap!=BUTT){diff+=size;}relativeDiff=diff/len;offset=relativeDiff*(pos-0.5);}vec2 p=pos<1.0? a+tangent*(pos+offset): b+tangent*offset;float aaPadding=pixelSize;vec2 normal=normalize(vec2(-tangent.y,tangent.x)/uViewportSize);p+=normal*side*(size+aaPadding)/uViewportSize;gl_Position=unitToNdc(p);vColor=vec4(getScaled_color()*opacity,opacity);vSize=size;vNormalLengthInPixels=side*(size+aaPadding);vPosInPixels=vec2(pos,(1.0-pos))*(1.0+relativeDiff)*length(tangent*uViewportSize)-vec2(uStrokeCap!=BUTT ? size/2.0 : 0.0);setupPicking();}",dR="const int BUTT=0;const int SQUARE=1;const int ROUND=2;uniform sampler2D uDashTexture;in vec4 vColor;in float vSize;in vec2 vPosInPixels;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distanceFromEnd=-min(vPosInPixels[0],vPosInPixels[1]);float distance;if(distanceFromEnd>0.0&&uStrokeCap==ROUND){distance=length(vec2(distanceFromEnd,vNormalLengthInPixels));}else{distance=abs(vNormalLengthInPixels);}float opacity=clamp(((vSize/2.0-distance)*dpr),-0.5,0.5)+0.5;if(uDashTextureSize>0.0){float pos=(vPosInPixels[0]+uStrokeDashOffset)*dpr;float floored=floor(pos);vec2 texelPositions=(floored+vec2(0.5,1.5))/dpr/uDashTextureSize;opacity*=mix(texture(uDashTexture,vec2(texelPositions[0],0)).r,texture(uDashTexture,vec2(texelPositions[1],0)).r,clamp((pos-floored),0.0,1.0));}fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}",pR=`layout(std140)uniform Mark{uniform mediump float uMinLength;uniform mediump float uDashTextureSize;uniform lowp int uStrokeCap;uniform mediump float uStrokeDashOffset;
335
+ };`;class Yw extends tt{constructor(t){super(),this.k=t.size||500,this.reset()}reset(){super.reset(),this.reservoir=[],this.W=void 0,this.ingester=this._initialIngester}_initialIngester(t){this.reservoir.push(t),this.reservoir.length==this.k&&(this.W=Math.exp(Math.log(Math.random())/this.k),this.i=this.k,this.next=this.i,this.ingester=this._finalIngester,this._setNextStop())}_finalIngester(t){++this.i==this.next&&(this.reservoir[Math.floor(Math.random()*this.k)]=t,this.W*=Math.exp(Math.log(Math.random())/this.k),this._setNextStop())}_setNextStop(){this.next+=Math.floor(Math.log(Math.random())/Math.log(1-this.W))+1}handle(t){this.ingester(t)}complete(){for(const t of this.reservoir)this._propagate(t);super.complete()}}function GR(e,t,n){const r=new Yw({type:"sample",size:e});for(const i of t)r.handle(n(i));return r.complete(),r.reservoir}const HR={};class VR extends bl{constructor(n){super(n);Z(this,Ih);Z(this,qa,()=>0);Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,color:"#4c78a8",filled:!0,opacity:1,size:100,semanticScore:0,shape:"circle",strokeWidth:2,fillGradientStrength:0,dx:0,dy:0,angle:0,sampleFacetPadding:.1,semanticZoomFraction:.02}));const r=this.properties.semanticZoomFraction;if(r!=null)if(Dt(r)){const i=this.unitView.paramMediator.createExpression(r.expr);i.addListener(()=>this.getContext().animator.requestRender()),le(this,qa,i)}else le(this,qa,()=>r)}getAttributes(){return["inwardStroke","uniqueId","facetIndex","x","y","size","semanticScore","shape","strokeWidth","gradientStrength","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"size","semanticScore","shape","strokeWidth","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getDefaultEncoding(){return{...super.getDefaultEncoding(),...HR}}fixEncoding(n){return Ww(n,this.properties.filled),Zw(n,this.properties.filled),delete n.color,delete n.opacity,n}initializeData(){var r,i;super.initializeData();const n=(i=(r=this.encoders.semanticScore)==null?void 0:r.dataAccessor)==null?void 0:i.asNumberAccessor();n&&(this.sampledSemanticScores=Float32Array.from(GR(1e4,this.unitView.getCollector().getData(),n)),this.sampledSemanticScores.sort((o,a)=>o-a))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(OR,zR,[UR])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const n=this.properties;this.registerMarkUniformValue("uInwardStroke",n.inwardStroke,r=>!!r),this.registerMarkUniformValue("uGradientStrength",n.fillGradientStrength)}updateGraphicsData(){const n=this.unitView.getCollector();if(!n){console.debug("No collector");return}const r=n.getItemCount(),i=new vR({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(r,this.properties.minBufferSize||0)});i.addBatches(n.facetBatches);const o=i.toArrays();this.rangeMap.migrateEntries(o.rangeMap),this.updateBufferInfo(o)}getSemanticThreshold(){if(this.sampledSemanticScores){const n=Math.max(0,1-z(this,qa).call(this)*this.unitView.getZoomLevel());if(n<=0)return-1/0;if(n>=1)return 1/0;{const r=this.sampledSemanticScores;return g1(r,n)}}else return-1}prepareRender(n){const r=super.prepareRender(n);return r.push(()=>{js(this.markUniformInfo,{uScaleFactor:X(this,Ih,R4).call(this),uSemanticThreshold:this.getSemanticThreshold()}),this.markUniformsAltered=!0}),r.push(()=>this.bindOrSetMarkUniformBlock()),r.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),r}render(n){const r=this.gl;return this.createRenderCallback((i,o)=>{o&&Vc(r,this.vertexArrayInfo,r.POINTS,o,i)},n)}}qa=new WeakMap,Ih=new WeakSet,R4=function(){const n=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/n),1/3)};const jR="const int BUTT=0;const int SQUARE=1;const int ROUND=2;in float pos;in float side;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;out highp vec2 vPosInPixels;void main(void){float pixelSize=1.0/uDevicePixelRatio;float size=getScaled_size();float opacity=getScaled_opacity()*uViewOpacity;if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()));vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()));vec2 tangent=b-a;float offset=0.0;float relativeDiff=0.0;if(uMinLength>0.0||uStrokeCap!=BUTT){float len=length(tangent*uViewportSize);float diff=max(0.0,uMinLength-len);if(uStrokeCap!=BUTT){diff+=size;}relativeDiff=diff/len;offset=relativeDiff*(pos-0.5);}vec2 p=pos<1.0? a+tangent*(pos+offset): b+tangent*offset;float aaPadding=pixelSize;vec2 normal=normalize(vec2(-tangent.y,tangent.x)/uViewportSize);p+=normal*side*(size+aaPadding)/uViewportSize;gl_Position=unitToNdc(p);vColor=vec4(getScaled_color()*opacity,opacity);vSize=size;vNormalLengthInPixels=side*(size+aaPadding);vPosInPixels=vec2(pos,(1.0-pos))*(1.0+relativeDiff)*length(tangent*uViewportSize)-vec2(uStrokeCap!=BUTT ? size/2.0 : 0.0);setupPicking();}",$R="const int BUTT=0;const int SQUARE=1;const int ROUND=2;uniform sampler2D uDashTexture;in vec4 vColor;in float vSize;in vec2 vPosInPixels;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distanceFromEnd=-min(vPosInPixels[0],vPosInPixels[1]);float distance;if(distanceFromEnd>0.0&&uStrokeCap==ROUND){distance=length(vec2(distanceFromEnd,vNormalLengthInPixels));}else{distance=abs(vNormalLengthInPixels);}float opacity=clamp(((vSize/2.0-distance)*dpr),-0.5,0.5)+0.5;if(uDashTextureSize>0.0){float pos=(vPosInPixels[0]+uStrokeDashOffset)*dpr;float floored=floor(pos);vec2 texelPositions=(floored+vec2(0.5,1.5))/dpr/uDashTextureSize;opacity*=mix(texture(uDashTexture,vec2(texelPositions[0],0)).r,texture(uDashTexture,vec2(texelPositions[1],0)).r,clamp((pos-floored),0.0,1.0));}fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}",qR=`layout(std140)uniform Mark{uniform mediump float uMinLength;uniform mediump float uDashTextureSize;uniform lowp int uStrokeCap;uniform mediump float uStrokeDashOffset;
323
336
  #pragma markUniforms
324
- };`;class gR extends ll{constructor(t){super(t),this.dashTextureSize=0,Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,size:1,color:"black",opacity:1,minLength:0,strokeDash:null,strokeDashOffset:0,strokeCap:"butt"}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(t){if(!(t.x&&t.y&&t.x2&&t.y2))if(t.x&&t.x2&&!t.y)t.y={value:.5},t.y2=t.y;else if(t.y&&t.y2&&!t.x)t.x={value:.5},t.x2=t.x;else if(t.x&&!t.y)t.y={value:0},t.y2={value:1},t.x2=t.x;else if(t.y&&!t.x)t.x={value:0},t.x2={value:1},t.y2=t.y;else if(t.x&&t.y&&t.y2)t.x2=t.x;else if(t.y&&t.x&&t.x2)t.y2=t.y;else if(t.y&&t.x)if(!t.x2&&Qt(t.y)&&t.y.type=="quantitative")t.x2=t.x,t.y2={datum:0};else if(!t.y2&&Qt(t.x)&&t.x.type=="quantitative")t.y2=t.y,t.x2={datum:0};else throw new Error("A bug!");else throw new Error("Invalid x and y encodings for rule mark: "+JSON.stringify(t));return t}async initializeGraphics(){if(await super.initializeGraphics(),this.properties.strokeDash){const t=this.gl,n=mR(this.properties.strokeDash);this.dashTexture=il(t,{mag:t.NEAREST,min:t.NEAREST,internalFormat:t.R8,format:t.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(hR,dR,[pR])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniformValue("uMinLength",t.minLength),this.registerMarkUniformValue("uStrokeCap",t.strokeCap??"butt",n=>["butt","square","round"].indexOf(n)),al(this.markUniformInfo,{uDashTextureSize:+this.dashTextureSize}),this.markUniformsAltered=!0}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new UD({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>this.bindOrSetMarkUniformBlock()),this.dashTexture&&n.push(()=>to(this.programInfo,{uDashTexture:this.dashTexture})),n.push(()=>Yi(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>lf(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),t)}}function mR(e){if(e.length==0||e.length%2||e.findIndex(a=>Math.round(a)!=a||a<1||a>1e3)>=0)throw new Error("Invalid stroke dash pattern: "+JSON.stringify(e));const t=e.reduce((a,o)=>a+o),n=new Uint8Array(t);let r=!0,i=0;for(let a of e){for(;a;)n[i++]=r&&255||0,a--;r=!r}return n}const bR="out vec4 vColor;out float vSize;out float vNormalLengthInPixels;const int SHAPE_ARC=0;const int SHAPE_DOME=1;const int SHAPE_DIAGONAL=2;const int SHAPE_LINE=3;const int ORIENT_VERTICAL=0;const int ORIENT_HORIZONTAL=1;float distanceFromLine(vec2 pointOnLine1,vec2 pointOnLine2,vec2 point){vec2 a=point-pointOnLine1;vec2 b=pointOnLine2-pointOnLine1;vec2 proj=dot(a,b)/dot(b,b)*b;return length(a-proj);}bool isInsideViewport(vec2 point,float marginFactor){vec2 margin=uViewportSize*vec2(marginFactor);return point.x>=-margin.x&&point.x<=uViewportSize.x+margin.x&&point.y>=-margin.y&&point.y<=uViewportSize.y+margin.y;}void main(void){float pixelSize=1.0/uDevicePixelRatio;float opacity=getScaled_opacity()*uViewOpacity;vec2 p1,p2,p3,p4;vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()))*uViewportSize;vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()))*uViewportSize;if(uShape<=SHAPE_DOME){if(uShape==SHAPE_DOME){vec2 height=vec2(0.0);if(uOrient==ORIENT_VERTICAL){p1=vec2(min(a.x,b.x),b.y);p4=vec2(max(a.x,b.x),b.y);height=vec2(0.0,a.y-b.y);if(uClampApex){if(p4.x>0.0){p1.x=max(p1.x,-p4.x);}if(p1.x<uViewportSize.x){p4.x=min(p4.x,2.0*uViewportSize.x-p1.x);}}}else{p1=vec2(b.x,min(a.y,b.y));p4=vec2(b.x,max(a.y,b.y));height=vec2(a.x-b.x,0.0);if(uClampApex){if(p4.y>0.0){p1.y=max(p1.y,-p4.y);}if(p1.y<uViewportSize.y){p4.y=min(p4.y,2.0*uViewportSize.y-p1.y);}}}vec2 controlOffset=height/0.75;p2=p1+controlOffset;p3=p4+controlOffset;}if(uShape==SHAPE_ARC){p1=a;p4=b;vec2 chordVector=p4-p1;vec2 unitChordVector=normalize(chordVector);vec2 chordNormal=vec2(-unitChordVector.y,unitChordVector.x);float chordLength=length(chordVector);if(chordLength>uMaxChordLength){if(isInsideViewport(p1,2.0)){chordLength=uMaxChordLength;p4=p1+unitChordVector*uMaxChordLength;}else if(isInsideViewport(p4,2.0)){chordLength=uMaxChordLength;p1=p4-unitChordVector*uMaxChordLength;}}float height=max(chordLength/2.0*uArcHeightFactor,uMinArcHeight);vec2 controlOffset=chordNormal*height/0.75;p2=p1+controlOffset;p3=p4+controlOffset;}}else if(uShape==SHAPE_DIAGONAL){if(uOrient==ORIENT_VERTICAL){p1=a;p2=vec2(a.x,(a.y+b.y)/2.0);p3=vec2(b.x,(a.y+b.y)/2.0);p4=b;}else{p1=a;p2=vec2((a.x+b.x)/2.0,a.y);p3=vec2((a.x+b.x)/2.0,b.y);p4=b;}}else if(uShape==SHAPE_LINE){p1=a;p2=(a+b)/2.0;p3=p2;p4=b;}vec2 strip=vec2(float(gl_VertexID/2)/float(uSegmentBreaks),float(gl_VertexID % 2)-0.5);float t=smoothstep(0.0,1.0,strip.x);vec2 C1=p4-3.0*p3+3.0*p2-p1;vec2 C2=3.0*p3-6.0*p2+3.0*p1;vec2 C3=3.0*p2-3.0*p1;vec2 C4=p1;vec2 p;if(t==0.0){p=p1;}else if(t==1.0){p=p4;}else{p=C1*t*t*t+C2*t*t+C3*t+C4;}vec2 tangent=normalize(3.0*C1*t*t+2.0*C2*t+C3);vec2 normal=vec2(-tangent.y,tangent.x);float size=getScaled_size();if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}float paddedSize=uPickingEnabled? max(size,uMinPickingSize): size+pixelSize;vNormalLengthInPixels=strip.y*paddedSize;if(uShape==SHAPE_ARC&&uArcFadingDistance[0]>0.0&&uArcFadingDistance[1]>0.0){float d=distanceFromLine(p1,p4,p);float distanceOpacity=smoothstep(uArcFadingDistance[1],uArcFadingDistance[0],d);opacity*=distanceOpacity;if(distanceOpacity<=0.0){vNormalLengthInPixels=0.0;}}p+=normal*vNormalLengthInPixels;gl_Position=pixelsToNdc(p);vec3 color=getScaled_color();vColor=vec4(color*opacity,opacity);vSize=paddedSize;setupPicking();}",yR="in vec4 vColor;in float vSize;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distance=abs(vNormalLengthInPixels);float opacity=clamp(((vSize/2.0-distance)*dpr),0.0,1.0);fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}",wR=`layout(std140)uniform Mark{uniform float uArcHeightFactor;uniform float uMinArcHeight;uniform float uMinPickingSize;uniform int uShape;uniform int uOrient;uniform bool uClampApex;uniform float uMaxChordLength;uniform vec2 uArcFadingDistance;uniform int uSegmentBreaks;
337
+ };`;class WR extends bl{constructor(t){super(t),this.dashTextureSize=0,Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,size:1,color:"black",opacity:1,minLength:0,strokeDash:null,strokeDashOffset:0,strokeCap:"butt"}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(t){if(!(t.x&&t.y&&t.x2&&t.y2))if(t.x&&t.x2&&!t.y)t.y={value:.5},t.y2=t.y;else if(t.y&&t.y2&&!t.x)t.x={value:.5},t.x2=t.x;else if(t.x&&!t.y)t.y={value:0},t.y2={value:1},t.x2=t.x;else if(t.y&&!t.x)t.x={value:0},t.x2={value:1},t.y2=t.y;else if(t.x&&t.y&&t.y2)t.x2=t.x;else if(t.y&&t.x&&t.x2)t.y2=t.y;else if(t.y&&t.x)if(!t.x2&&an(t.y)&&t.y.type=="quantitative")t.x2=t.x,t.y2={datum:0};else if(!t.y2&&an(t.x)&&t.x.type=="quantitative")t.y2=t.y,t.x2={datum:0};else throw new Error("A bug!");else throw new Error("Invalid x and y encodings for rule mark: "+JSON.stringify(t));return t}async initializeGraphics(){if(await super.initializeGraphics(),this.properties.strokeDash){const t=this.gl,n=ZR(this.properties.strokeDash);this.dashTexture=Vs(t,{mag:t.NEAREST,min:t.NEAREST,internalFormat:t.R8,format:t.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(jR,$R,[qR])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniformValue("uMinLength",t.minLength),this.registerMarkUniformValue("uStrokeCap",t.strokeCap??"butt",n=>["butt","square","round"].indexOf(n)),js(this.markUniformInfo,{uDashTextureSize:+this.dashTextureSize}),this.markUniformsAltered=!0}updateGraphicsData(){const t=this.unitView.getCollector();if(!t){console.debug("No collector");return}const n=t.getItemCount(),r=new wR({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>this.bindOrSetMarkUniformBlock()),this.dashTexture&&n.push(()=>Jo(this.programInfo,{uDashTexture:this.dashTexture})),n.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>Vc(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),t)}}function ZR(e){if(e.length==0||e.length%2||e.findIndex(o=>Math.round(o)!=o||o<1||o>1e3)>=0)throw new Error("Invalid stroke dash pattern: "+JSON.stringify(e));const t=e.reduce((o,a)=>o+a),n=new Uint8Array(t);let r=!0,i=0;for(let o of e){for(;o;)n[i++]=r&&255||0,o--;r=!r}return n}const YR="out vec4 vColor;out float vSize;out float vNormalLengthInPixels;const int SHAPE_ARC=0;const int SHAPE_DOME=1;const int SHAPE_DIAGONAL=2;const int SHAPE_LINE=3;const int ORIENT_VERTICAL=0;const int ORIENT_HORIZONTAL=1;float distanceFromLine(vec2 pointOnLine1,vec2 pointOnLine2,vec2 point){vec2 a=point-pointOnLine1;vec2 b=pointOnLine2-pointOnLine1;vec2 proj=dot(a,b)/dot(b,b)*b;return length(a-proj);}bool isInsideViewport(vec2 point,float marginFactor){vec2 margin=uViewportSize*vec2(marginFactor);return point.x>=-margin.x&&point.x<=uViewportSize.x+margin.x&&point.y>=-margin.y&&point.y<=uViewportSize.y+margin.y;}void main(void){float pixelSize=1.0/uDevicePixelRatio;float opacity=getScaled_opacity()*uViewOpacity;vec2 p1,p2,p3,p4;vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()))*uViewportSize;vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()))*uViewportSize;if(uShape<=SHAPE_DOME){if(uShape==SHAPE_DOME){vec2 height=vec2(0.0);if(uOrient==ORIENT_VERTICAL){p1=vec2(min(a.x,b.x),b.y);p4=vec2(max(a.x,b.x),b.y);height=vec2(0.0,a.y-b.y);if(uClampApex){if(p4.x>0.0){p1.x=max(p1.x,-p4.x);}if(p1.x<uViewportSize.x){p4.x=min(p4.x,2.0*uViewportSize.x-p1.x);}}}else{p1=vec2(b.x,min(a.y,b.y));p4=vec2(b.x,max(a.y,b.y));height=vec2(a.x-b.x,0.0);if(uClampApex){if(p4.y>0.0){p1.y=max(p1.y,-p4.y);}if(p1.y<uViewportSize.y){p4.y=min(p4.y,2.0*uViewportSize.y-p1.y);}}}vec2 controlOffset=height/0.75;p2=p1+controlOffset;p3=p4+controlOffset;}if(uShape==SHAPE_ARC){p1=a;p4=b;vec2 chordVector=p4-p1;vec2 unitChordVector=normalize(chordVector);vec2 chordNormal=vec2(-unitChordVector.y,unitChordVector.x);float chordLength=length(chordVector);if(chordLength>uMaxChordLength){if(isInsideViewport(p1,2.0)){chordLength=uMaxChordLength;p4=p1+unitChordVector*uMaxChordLength;}else if(isInsideViewport(p4,2.0)){chordLength=uMaxChordLength;p1=p4-unitChordVector*uMaxChordLength;}}float height=max(chordLength/2.0*uArcHeightFactor,uMinArcHeight);vec2 controlOffset=chordNormal*height/0.75;p2=p1+controlOffset;p3=p4+controlOffset;}}else if(uShape==SHAPE_DIAGONAL){if(uOrient==ORIENT_VERTICAL){p1=a;p2=vec2(a.x,(a.y+b.y)/2.0);p3=vec2(b.x,(a.y+b.y)/2.0);p4=b;}else{p1=a;p2=vec2((a.x+b.x)/2.0,a.y);p3=vec2((a.x+b.x)/2.0,b.y);p4=b;}}else if(uShape==SHAPE_LINE){p1=a;p2=(a+b)/2.0;p3=p2;p4=b;}vec2 strip=vec2(float(gl_VertexID/2)/float(uSegmentBreaks),float(gl_VertexID % 2)-0.5);float t=smoothstep(0.0,1.0,strip.x);vec2 C1=p4-3.0*p3+3.0*p2-p1;vec2 C2=3.0*p3-6.0*p2+3.0*p1;vec2 C3=3.0*p2-3.0*p1;vec2 C4=p1;vec2 p;if(t==0.0){p=p1;}else if(t==1.0){p=p4;}else{p=C1*t*t*t+C2*t*t+C3*t+C4;}vec2 tangent=normalize(3.0*C1*t*t+2.0*C2*t+C3);vec2 normal=vec2(-tangent.y,tangent.x);float size=getScaled_size();if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}float paddedSize=uPickingEnabled? max(size,uMinPickingSize): size+pixelSize;vNormalLengthInPixels=strip.y*paddedSize;if(uShape==SHAPE_ARC&&uArcFadingDistance[0]>0.0&&uArcFadingDistance[1]>0.0&&(!uNoFadingOnPointSelection||!isPointSelected())){float d=distanceFromLine(p1,p4,p);float distanceOpacity=smoothstep(uArcFadingDistance[1],uArcFadingDistance[0],d);opacity*=distanceOpacity;if(distanceOpacity<=0.0){vNormalLengthInPixels=0.0;}}p+=normal*vNormalLengthInPixels;gl_Position=pixelsToNdc(p);vec3 color=getScaled_color();vColor=vec4(color*opacity,opacity);vSize=paddedSize;setupPicking();}",QR="in vec4 vColor;in float vSize;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distance=abs(vNormalLengthInPixels);float opacity=clamp(((vSize/2.0-distance)*dpr),0.0,1.0);fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}",XR=`layout(std140)uniform Mark{uniform float uArcHeightFactor;uniform float uMinArcHeight;uniform float uMinPickingSize;uniform int uShape;uniform int uOrient;uniform bool uClampApex;uniform float uMaxChordLength;uniform vec2 uArcFadingDistance;uniform bool uNoFadingOnPointSelection;uniform int uSegmentBreaks;
325
338
  #pragma markUniforms
326
- };`,vR=["arc","dome","diagonal","line"],xR=["vertical","horizontal"];class AR extends ll{constructor(t){super(t),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:0,x2:void 0,y:0,y2:void 0,size:1,color:"black",opacity:1,segments:101,arcHeightFactor:1,minArcHeight:1.5,minPickingSize:3,clampApex:!1,maxChordLength:5e4,arcFadingDistance:!1,linkShape:"arc",orient:"vertical"})),this._baseInstanceExt=this.gl.getExtension("WEBGL_draw_instanced_base_vertex_base_instance")}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","height","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(t){return t.x2||(Qt(t.x)?t.x2={datum:0}:t.x2=t.x),t.y2||(Qt(t.y)?t.y2={datum:0}:t.y2=t.y),t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(bR,yR,[wR])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniformValue("uArcFadingDistance",t.arcFadingDistance,n=>n||[0,0]),this.registerMarkUniformValue("uArcHeightFactor",t.arcHeightFactor),this.registerMarkUniformValue("uMinArcHeight",t.minArcHeight),this.registerMarkUniformValue("uMinPickingSize",t.minPickingSize),this.registerMarkUniformValue("uShape",t.linkShape,n=>vR.indexOf(n)),this.registerMarkUniformValue("uOrient",t.orient,n=>xR.indexOf(n)),this.registerMarkUniformValue("uClampApex",t.clampApex,n=>!!n),this.registerMarkUniformValue("uMaxChordLength",t.maxChordLength),this.registerMarkUniformValue("uSegmentBreaks",t.segments,n=>n+1)}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new HD({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.arrays=Object.fromEntries(Object.entries(i.arrays).map(([a,o])=>[a,{...o,data:void 0}])),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>this.bindOrSetMarkUniformBlock()),this._baseInstanceExt?n.push(()=>Yi(this.gl,this.programInfo,this.vertexArrayInfo)):n.push(()=>this.gl.bindVertexArray(null)),n}render(t){const n=this.gl;return this._baseInstanceExt?this.createRenderCallback((r,i)=>{this._baseInstanceExt.drawArraysInstancedBaseInstanceWEBGL(n.TRIANGLE_STRIP,0,this.markUniformInfo.uniforms.uSegmentBreaks[0]*2,i,r)},t):this.createRenderCallback((r,i)=>{for(const a of Object.entries(this.bufferInfo.attribs)){const[o,s]=a;s.buffer&&s.numComponents&&s.divisor&&(s.offset=r*this.arrays[o].numComponents*this.bytesPerElement.get(o))}Yi(n,this.programInfo,this.bufferInfo),n.drawArraysInstanced(n.TRIANGLE_STRIP,0,this.markUniformInfo.uniforms.uSegmentBreaks[0]*2,i)},t)}}const ER=`in mediump vec2 vertexCoord;in lowp vec2 textureCoord;in float width;out vec2 vTexCoord;out vec4 vColor;out float vSlope;out float vEdgeFadeOpacity;struct RangeResult{float pos;float scale;};float minValue(vec4 v){return min(min(v.x,v.y),min(v.z,v.w));}float maxValue(vec4 v){return max(max(v.x,v.y),max(v.z,v.w));}/***All measures are in[0,1]*/RangeResult positionInsideRange(float a,float b,float width,float padding,int align,bool flush){float span=b-a;float paddedWidth=width+2.0*padding;if(a>1.0||b<0.0){return RangeResult(0.0,0.0);}float extra=max(0.0,span-paddedWidth);float pos;if(align==0){float centre=a+b;if(flush){float leftOver=max(0.0,paddedWidth-centre);centre+=min(leftOver,extra);float rightOver=max(0.0,paddedWidth+centre-2.0);centre-=min(rightOver,extra);}pos=centre/2.0;}else if(align<0){float edge=a;if(flush){float over=max(0.0,-edge);edge+=min(over,extra);}pos=edge+padding;}else{float edge=b;if(flush){float over=max(0.0,edge-1.0);edge-=min(over,extra);}pos=edge-padding;}float scale=clamp((span-padding)/paddedWidth,0.0,1.0);return RangeResult(pos,scale);}vec2 calculateRotatedDimensions(float width,mat2 rotationMatrix){vec2 a=abs(rotationMatrix*vec2(width/2.0,0.5));vec2 b=abs(rotationMatrix*vec2(width/2.0,-0.5));return vec2(max(a.x,b.x),max(a.y,b.y))*2.0;}ivec2 fixAlignForAngle(ivec2 align,float angleInDegrees){float a=mod(angleInDegrees+45.0,360.0);int x=align.x;int y=-align.y;if(a<90.0){return ivec2(x,y);}else if(a<180.0){return ivec2(y,-x);}else if(a<270.0){return ivec2(-x,y);}else{return ivec2(-y,x);}}void main(void){float opacity=getScaled_opacity()*uViewOpacity;vec2 size=vec2(getScaled_size());float x=getScaled_x();float y=getScaled_y();float scale=1.0;float angleInDegrees=getScaled_angle();float angle=-angleInDegrees*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);mat2 rotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);vec2 flushSize=calculateRotatedDimensions(width,rotationMatrix);
339
+ };`,KR=["arc","dome","diagonal","line"],JR=["vertical","horizontal"];class e9 extends bl{constructor(t){super(t),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:0,x2:void 0,y:0,y2:void 0,size:1,color:"black",opacity:1,segments:101,arcHeightFactor:1,minArcHeight:1.5,minPickingSize:3,clampApex:!1,maxChordLength:5e4,arcFadingDistance:!1,noFadingOnPointSelection:!0,linkShape:"arc",orient:"vertical"})),this._baseInstanceExt=this.gl.getExtension("WEBGL_draw_instanced_base_vertex_base_instance")}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","height","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(t){return t.x2||(an(t.x)?t.x2={datum:0}:t.x2=t.x),t.y2||(an(t.y)?t.y2={datum:0}:t.y2=t.y),t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(YR,QR,[XR])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniformValue("uArcFadingDistance",t.arcFadingDistance,n=>n||[0,0]),this.registerMarkUniformValue("uArcHeightFactor",t.arcHeightFactor),this.registerMarkUniformValue("uMinArcHeight",t.minArcHeight),this.registerMarkUniformValue("uMinPickingSize",t.minPickingSize),this.registerMarkUniformValue("uShape",t.linkShape,n=>KR.indexOf(n)),this.registerMarkUniformValue("uOrient",t.orient,n=>JR.indexOf(n)),this.registerMarkUniformValue("uClampApex",t.clampApex,n=>!!n),this.registerMarkUniformValue("uMaxChordLength",t.maxChordLength),this.registerMarkUniformValue("uSegmentBreaks",t.segments,n=>n+1),this.registerMarkUniformValue("uNoFadingOnPointSelection",t.noFadingOnPointSelection,n=>!!n)}updateGraphicsData(){const t=this.unitView.getCollector();if(!t){console.debug("No collector");return}const n=t.getItemCount(),r=new xR({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.arrays=Object.fromEntries(Object.entries(i.arrays).map(([o,a])=>[o,{...a,data:void 0}])),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>this.bindOrSetMarkUniformBlock()),this._baseInstanceExt?n.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)):n.push(()=>this.gl.bindVertexArray(null)),n}render(t){const n=this.gl;return this._baseInstanceExt?this.createRenderCallback((r,i)=>{this._baseInstanceExt.drawArraysInstancedBaseInstanceWEBGL(n.TRIANGLE_STRIP,0,this.markUniformInfo.uniforms.uSegmentBreaks[0]*2,i,r)},t):this.createRenderCallback((r,i)=>{for(const o of Object.entries(this.bufferInfo.attribs)){const[a,s]=o;s.buffer&&s.numComponents&&s.divisor&&(s.offset=r*this.arrays[a].numComponents*this.bytesPerElement.get(a))}Hi(n,this.programInfo,this.bufferInfo),n.drawArraysInstanced(n.TRIANGLE_STRIP,0,this.markUniformInfo.uniforms.uSegmentBreaks[0]*2,i)},t)}}const t9=`in mediump vec2 vertexCoord;in lowp vec2 textureCoord;in float width;out vec2 vTexCoord;out vec4 vColor;out float vSlope;out float vEdgeFadeOpacity;struct RangeResult{float pos;float scale;};float minValue(vec4 v){return min(min(v.x,v.y),min(v.z,v.w));}float maxValue(vec4 v){return max(max(v.x,v.y),max(v.z,v.w));}/***All measures are in[0,1]*/RangeResult positionInsideRange(float a,float b,float width,float padding,int align,bool flush){float span=b-a;float paddedWidth=width+2.0*padding;if(a>1.0||b<0.0){return RangeResult(0.0,0.0);}float extra=max(0.0,span-paddedWidth);float pos;if(align==0){float centre=a+b;if(flush){float leftOver=max(0.0,paddedWidth-centre);centre+=min(leftOver,extra);float rightOver=max(0.0,paddedWidth+centre-2.0);centre-=min(rightOver,extra);}pos=centre/2.0;}else if(align<0){float edge=a;if(flush){float over=max(0.0,-edge);edge+=min(over,extra);}pos=edge+padding;}else{float edge=b;if(flush){float over=max(0.0,edge-1.0);edge-=min(over,extra);}pos=edge-padding;}float scale=clamp((span-padding)/paddedWidth,0.0,1.0);return RangeResult(pos,scale);}vec2 calculateRotatedDimensions(float width,mat2 rotationMatrix){vec2 a=abs(rotationMatrix*vec2(width/2.0,0.5));vec2 b=abs(rotationMatrix*vec2(width/2.0,-0.5));return vec2(max(a.x,b.x),max(a.y,b.y))*2.0;}ivec2 fixAlignForAngle(ivec2 align,float angleInDegrees){float a=mod(angleInDegrees+45.0,360.0);int x=align.x;int y=-align.y;if(a<90.0){return ivec2(x,y);}else if(a<180.0){return ivec2(y,-x);}else if(a<270.0){return ivec2(-x,y);}else{return ivec2(-y,x);}}void main(void){float opacity=getScaled_opacity()*uViewOpacity;vec2 size=vec2(getScaled_size());float x=getScaled_x();float y=getScaled_y();float scale=1.0;float angleInDegrees=getScaled_angle();float angle=-angleInDegrees*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);mat2 rotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);vec2 flushSize=calculateRotatedDimensions(width,rotationMatrix);
327
340
  #if defined(x2_DEFINED) || defined(y2_DEFINED)
328
341
  ivec2 align=fixAlignForAngle(uAlign,angleInDegrees);
329
342
  #else
@@ -336,9 +349,9 @@ vec2 pos=applySampleFacet(vec2(x,y));
336
349
  #ifdef y2_DEFINED
337
350
  float y2=getScaled_y2();vec2 pos2=applySampleFacet(vec2(x,y2));if(uLogoLetter){size.y=(pos2.y-pos.y)*uViewportSize.y;pos.y+=(pos2.y-pos.y)/2.0;}else{RangeResult result=positionInsideRange(min(pos.y,pos2.y),max(pos.y,pos2.y),size.y*scale*flushSize.y/uViewportSize.y,uPaddingY/uViewportSize.y,align.y,uFlushY);pos.y=result.pos;scale*=result.scale;}
338
351
  #endif
339
- if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scaleFadeExtent[0]){gl_Position=vec4(0.0);return;}size*=scale;opacity*=linearstep(scaleFadeExtent[0],scaleFadeExtent[1],scale);}else if(scale<1.0){gl_Position=vec4(0.0);return;}}vec2 charPos=rotationMatrix*(vertexCoord*size+uD);vec2 unitPos=pos+charPos/uViewportSize;gl_Position=unitToNdc(unitPos);vSlope=max(1.0,min(size.x,size.y)/uSdfNumerator);vColor=vec4(getScaled_color()*opacity,opacity);vTexCoord=textureCoord;if(maxValue(uViewportEdgeFadeDistance)>-pow(10.0,10.0)){vEdgeFadeOpacity=minValue(((vec4(1.0,1.0,0.0,0.0)+vec4(-1.0,-1.0,1.0,1.0)*unitPos.yxyx)*uViewportSize.yxyx-uViewportEdgeFadeDistance)/uViewportEdgeFadeWidth);}else{vEdgeFadeOpacity=1.0;}setupPicking();}`,_R="uniform sampler2D uTexture;in vec2 vTexCoord;in float vEdgeFadeOpacity;in vec4 vColor;in float vSlope;out lowp vec4 fragColor;float median(float r,float g,float b){return max(min(r,g),min(max(r,g),b));}void main(){vec3 c=texture(uTexture,vTexCoord).rgb;float sigDist=1.0-median(c.r,c.g,c.b);float slope=uLogoLetter? 0.7/length(vec2(dFdy(sigDist),dFdx(sigDist))): vSlope;float opa=clamp((sigDist-0.5)*slope+0.5,0.0,1.0);opa*=pow(clamp(vEdgeFadeOpacity,0.0,1.0),2.2);fragColor=vColor*opa;if(uPickingEnabled){fragColor=vPickingColor;}}",SR=`layout(std140)uniform Mark{uniform mediump float uSdfNumerator;uniform mediump vec2 uD;uniform mediump vec4 uViewportEdgeFadeWidth;uniform mediump vec4 uViewportEdgeFadeDistance;uniform bool uSqueeze;uniform bool uLogoLetter;uniform lowp ivec2 uAlign;uniform mediump float uPaddingX;uniform bool uFlushX;uniform mediump float uPaddingY;uniform bool uFlushY;
352
+ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scaleFadeExtent[0]){gl_Position=vec4(0.0);return;}size*=scale;opacity*=linearstep(scaleFadeExtent[0],scaleFadeExtent[1],scale);}else if(scale<1.0){gl_Position=vec4(0.0);return;}}vec2 charPos=rotationMatrix*(vertexCoord*size+uD);vec2 unitPos=pos+charPos/uViewportSize;gl_Position=unitToNdc(unitPos);vSlope=max(1.0,min(size.x,size.y)/uSdfNumerator);vColor=vec4(getScaled_color()*opacity,opacity);vTexCoord=textureCoord;if(maxValue(uViewportEdgeFadeDistance)>-pow(10.0,10.0)){vEdgeFadeOpacity=minValue(((vec4(1.0,1.0,0.0,0.0)+vec4(-1.0,-1.0,1.0,1.0)*unitPos.yxyx)*uViewportSize.yxyx-uViewportEdgeFadeDistance)/uViewportEdgeFadeWidth);}else{vEdgeFadeOpacity=1.0;}setupPicking();}`,n9="uniform sampler2D uTexture;in vec2 vTexCoord;in float vEdgeFadeOpacity;in vec4 vColor;in float vSlope;out lowp vec4 fragColor;float median(float r,float g,float b){return max(min(r,g),min(max(r,g),b));}void main(){vec3 c=texture(uTexture,vTexCoord).rgb;float sigDist=1.0-median(c.r,c.g,c.b);float slope=uLogoLetter? 0.7/length(vec2(dFdy(sigDist),dFdx(sigDist))): vSlope;float opa=clamp((sigDist-0.5)*slope+0.5,0.0,1.0);opa*=pow(clamp(vEdgeFadeOpacity,0.0,1.0),2.2);fragColor=vColor*opa;if(uPickingEnabled){fragColor=vPickingColor;}}",r9=`layout(std140)uniform Mark{uniform mediump float uSdfNumerator;uniform mediump vec2 uD;uniform mediump vec4 uViewportEdgeFadeWidth;uniform mediump vec4 uViewportEdgeFadeDistance;uniform bool uSqueeze;uniform bool uLogoLetter;uniform lowp ivec2 uAlign;uniform mediump float uPaddingX;uniform bool uFlushX;uniform mediump float uPaddingY;uniform bool uFlushY;
340
353
  #pragma markUniforms
341
- };`,CR={left:-1,center:0,right:1},kR={top:-1,middle:0,bottom:1,alphabetic:1};class TR extends ll{constructor(t){super(t),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,x2:void 0,y2:void 0,text:"",size:11,color:"black",opacity:1,font:void 0,fontStyle:void 0,fontWeight:void 0,align:"center",baseline:"middle",dx:0,dy:0,angle:0,fitToBand:!1,squeeze:!0,paddingX:0,paddingY:0,flushX:!0,flushY:!0,logoLetters:!1,viewportEdgeFadeWidthTop:0,viewportEdgeFadeWidthRight:0,viewportEdgeFadeWidthBottom:0,viewportEdgeFadeWidthLeft:0,viewportEdgeFadeDistanceTop:-1/0,viewportEdgeFadeDistanceRight:-1/0,viewportEdgeFadeDistanceBottom:-1/0,viewportEdgeFadeDistanceLeft:-1/0})),this.font=this.properties.font?t.context.fontManager.getFont(this.properties.font,this.properties.fontStyle,this.properties.fontWeight):t.context.fontManager.getDefaultFont(),this.setupExprRefsNeedingGraphicsUpdate(["text","fitToBand","logoLetters"])}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","color","size","opacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size","text","angle"]}fixEncoding(t){for(const n of $a)this.properties.fitToBand&&q0(t,n);return t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(ER,_R,[SR])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniformValue("uSdfNumerator",{expr:"devicePixelRatio"},n=>{let r=.35;return this.properties.logoLetters&&(r/=2),this.font.metrics.common.base/(n/r)}),this.registerMarkUniformValue("uPaddingX",t.paddingX),this.registerMarkUniformValue("uPaddingY",t.paddingY),this.registerMarkUniformValue("uFlushX",t.flushX,n=>!!n),this.registerMarkUniformValue("uFlushY",t.flushY,n=>!!n),this.registerMarkUniformValue("uSqueeze",t.squeeze,n=>!!n),al(this.markUniformInfo,{uAlign:[CR[t.align],kR[t.baseline]],uD:[t.dx,-t.dy],uLogoLetter:!!t.logoLetters,uViewportEdgeFadeWidth:[t.viewportEdgeFadeWidthTop,t.viewportEdgeFadeWidthRight,t.viewportEdgeFadeWidthBottom,t.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[t.viewportEdgeFadeDistanceTop,t.viewportEdgeFadeDistanceRight,t.viewportEdgeFadeDistanceBottom,t.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getData(),r=this.encoding,i=this.encoders.text.accessor||this.encoders.text;let a=0;const o="format"in r.text?mt(r.text.format):l=>l;for(const l of n){const c=o(i(l)),f=Ue(c)?c:c===null?"":""+c;a+=f&&f.length||0}const s=new VD({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(a,this.properties.minBufferSize||1024)});s.addBatches(t.facetBatches);const u=s.toArrays();this.rangeMap.migrateEntries(u.rangeMap),this.updateBufferInfo(u)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>{to(this.programInfo,{uTexture:this.font.texture})}),n.push(()=>this.bindOrSetMarkUniformBlock()),n.push(()=>Yi(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>lf(n,this.vertexArrayInfo,n.TRIANGLES,i,r),t)}}const Rw=1;function Z0(){let e=[0,1],t=[0,1],n=1,r=1,i=0,a=0,o=.5,s=0;const l=c=>(c+o-e[0])/n*r+t[0];return l.invert=c=>(c-t[0])/r*n+e[0]-o,l.domain=function(c){if(arguments.length){e=cS(c),n=e[1]-e[0];const f=e[0]===0&&e[0]===0;if(n<Rw&&!f){n=Rw;const h=(e[0]+e[1])/2;e[0]=h-n/2,e[1]=h+n/2}return l}else return e.slice()},l.range=function(c){return arguments.length?(t=[...c],r=t[1]-t[0],l):t},l.numberingOffset=function(c){return arguments.length?(s=c,l):s},l.padding=function(c){return arguments.length?(a=c,i=Math.min(1,c),l):i},l.paddingInner=function(c){return arguments.length?(i=Math.min(1,c),l):i},l.paddingOuter=function(c){return arguments.length?(a=c,l):a},l.align=function(c){return arguments.length?(o=Math.max(0,Math.min(1,c)),l):o},l.step=()=>r/n,l.bandwidth=()=>l.step(),l.ticks=c=>{const f=l.align(),h=l.numberingOffset();return Xu(e[0]-f+h,e[1]-f+h,Math.min(c,Math.ceil(n))).filter(Number.isInteger).map(d=>d-s)},l.tickFormat=(c,f)=>{if(f)throw new Error("Index scale's tickFormat does not support a specifier!");const d=Fr(e[0],e[1],Math.min(c,Math.ceil(n)))<1e5?mt(","):mt(".3s");return p=>d(p+s)},l.copy=()=>Z0().domain(e).range(t).paddingInner(i).paddingOuter(a).numberingOffset(s),l}function IR(){const e=Z0().numberingOffset(1);let t;e.genome=function(r){return arguments.length?(t=r,e):t},e.ticks=r=>{if(!t)return[];const i=e.domain(),a=e.numberingOffset(),[o,s]=[Math.max(i[0],0),Math.min(i[1],t.totalSize-1)].map(c=>t.toChromosome(c)),u=Math.max(1,Fr(i[0],i[1],r)),l=[];for(let c=o.index;c<=s.index;c++){const f=t.chromosomes[c],h=Math.max(f.continuousStart+u,i[0]-(i[0]-f.continuousStart)%u),d=Math.min(f.continuousEnd-u/4,i[1]+1);for(let p=h;p<=d;p+=u){const m=p-a;m>=i[0]&&m<i[1]&&l.push(m)}}return l},e.tickFormat=(r,i)=>{if(!t)return;if(i)throw new Error("Locus scale's tickFormat does not support a specifier!");const a=e.domain(),o=a[1]-a[0],s=e.numberingOffset(),l=Fr(a[0],a[1],Math.min(r,Math.ceil(o)))<1e6?mt(","):mt(".3s"),c=f=>f-t.toChromosome(f).continuousStart;return f=>l(c(f)+s)};const n=e.copy;return e.copy=()=>n().genome(t),e}function BR(e){return e.type=="locus"}function gf(e,t,n){if(n=n||[],e.some(o=>o===null)){if(e.every(o=>o===null))return null;throw console.warn(e),new Error("Cannot merge objects with nulls!")}const r={},i=(o,s)=>o===s||ro(o)&&ro(s)||ro(o)&&s===!0||o===!0&&kt(s),a=o=>{for(let s in o){const u=o[s];if(!n.includes(s)&&u!==void 0)if(r[s]!==void 0&&!i(r[s],u))console.warn(`Conflicting property ${s} of ${t}: (${JSON.stringify(r[s])} and ${JSON.stringify(o[s])}). Using ${JSON.stringify(r[s])}.`);else{const l=r[s];if(ro(l))ro(u)&&(r[s]=gf([l,u],s));else if(ro(u)){if(!(l===!0||l===void 0))throw new Error("Bug in merge! Target is: "+l);r[s]=gf([{},u],s)}else r[s]=u}}};for(const o of e)a(o);return r}function ro(e){return kt(e)&&!Array.isArray(e)}/*!
354
+ };`,i9={left:-1,center:0,right:1},o9={top:-1,middle:0,bottom:1,alphabetic:1};class a9 extends bl{constructor(t){super(t),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,x2:void 0,y2:void 0,text:"",size:11,color:"black",opacity:1,font:void 0,fontStyle:void 0,fontWeight:void 0,align:"center",baseline:"middle",dx:0,dy:0,angle:0,fitToBand:!1,squeeze:!0,paddingX:0,paddingY:0,flushX:!0,flushY:!0,logoLetters:!1,viewportEdgeFadeWidthTop:0,viewportEdgeFadeWidthRight:0,viewportEdgeFadeWidthBottom:0,viewportEdgeFadeWidthLeft:0,viewportEdgeFadeDistanceTop:-1/0,viewportEdgeFadeDistanceRight:-1/0,viewportEdgeFadeDistanceBottom:-1/0,viewportEdgeFadeDistanceLeft:-1/0})),this.font=this.properties.font?t.context.fontManager.getFont(this.properties.font,this.properties.fontStyle,this.properties.fontWeight):t.context.fontManager.getDefaultFont(),this.setupExprRefsNeedingGraphicsUpdate(["text","fitToBand","logoLetters"])}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","color","size","opacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size","text","angle"]}fixEncoding(t){for(const n of sa)this.properties.fitToBand&&rp(t,n);return t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(t9,n9,[r9])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniformValue("uSdfNumerator",{expr:"devicePixelRatio"},n=>{let r=.35;return this.properties.logoLetters&&(r/=2),this.font.metrics.common.base/(n/r)}),this.registerMarkUniformValue("uPaddingX",t.paddingX),this.registerMarkUniformValue("uPaddingY",t.paddingY),this.registerMarkUniformValue("uFlushX",t.flushX,n=>!!n),this.registerMarkUniformValue("uFlushY",t.flushY,n=>!!n),this.registerMarkUniformValue("uSqueeze",t.squeeze,n=>!!n),js(this.markUniformInfo,{uAlign:[i9[t.align],o9[t.baseline]],uD:[t.dx,-t.dy],uLogoLetter:!!t.logoLetters,uViewportEdgeFadeWidth:[t.viewportEdgeFadeWidthTop,t.viewportEdgeFadeWidthRight,t.viewportEdgeFadeWidthBottom,t.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[t.viewportEdgeFadeDistanceTop,t.viewportEdgeFadeDistanceRight,t.viewportEdgeFadeDistanceBottom,t.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const t=this.unitView.getCollector();if(!t){console.debug("No collector");return}const n=t.getData(),r=this.encoding,i=this.encoders.text;let o=0;const a="format"in r.text?mt(r.text.format):l=>l;for(const l of n){const c=a(i(l)),f=Fe(c)?c:c===null?"":""+c;o+=f&&f.length||0}const s=new AR({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(o,this.properties.minBufferSize||1024)});s.addBatches(t.facetBatches);const u=s.toArrays();this.rangeMap.migrateEntries(u.rangeMap),this.updateBufferInfo(u)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>{Jo(this.programInfo,{uTexture:this.font.texture})}),n.push(()=>this.bindOrSetMarkUniformBlock()),n.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>Vc(n,this.vertexArrayInfo,n.TRIANGLES,i,r),t)}}const Qw=1;function ip(){let e=[0,1],t=[0,1],n=1,r=1,i=0,o=0,a=.5,s=0;const l=c=>(c+a-e[0])/n*r+t[0];return l.invert=c=>(c-t[0])/r*n+e[0]-a,l.domain=function(c){if(arguments.length){e=IS(c),n=e[1]-e[0];const f=e[0]===0&&e[0]===0;if(n<Qw&&!f){n=Qw;const h=(e[0]+e[1])/2;e[0]=h-n/2,e[1]=h+n/2}return l}else return e.slice()},l.range=function(c){return arguments.length?(t=[...c],r=t[1]-t[0],l):t},l.numberingOffset=function(c){return arguments.length?(s=c,l):s},l.padding=function(c){return arguments.length?(o=c,i=Math.min(1,c),l):i},l.paddingInner=function(c){return arguments.length?(i=Math.min(1,c),l):i},l.paddingOuter=function(c){return arguments.length?(o=c,l):o},l.align=function(c){return arguments.length?(a=Math.max(0,Math.min(1,c)),l):a},l.step=()=>r/n,l.bandwidth=()=>l.step(),l.ticks=c=>{const f=l.align(),h=l.numberingOffset();return oc(e[0]-f+h,e[1]-f+h,Math.min(c,Math.ceil(n))).filter(Number.isInteger).map(d=>d-s)},l.tickFormat=(c,f)=>{if(f)throw new Error("Index scale's tickFormat does not support a specifier!");const d=Mr(e[0],e[1],Math.min(c,Math.ceil(n)))<1e5?mt(","):mt(".3s");return p=>d(p+s)},l.copy=()=>ip().domain(e).range(t).paddingInner(i).paddingOuter(o).numberingOffset(s),l}function s9(){const e=ip().numberingOffset(1);let t;e.genome=function(r){return arguments.length?(t=r,e):t},e.ticks=r=>{if(!t)return[];const i=e.domain(),o=e.numberingOffset(),[a,s]=[Math.max(i[0],0),Math.min(i[1],t.totalSize-1)].map(c=>t.toChromosome(c)),u=Math.max(1,Mr(i[0],i[1],r)),l=[];for(let c=a.index;c<=s.index;c++){const f=t.chromosomes[c],h=Math.max(f.continuousStart+u,i[0]-(i[0]-f.continuousStart)%u),d=Math.min(f.continuousEnd-u/4,i[1]+1);for(let p=h;p<=d;p+=u){const m=p-o;m>=i[0]&&m<i[1]&&l.push(m)}}return l},e.tickFormat=(r,i)=>{if(!t)return;if(i)throw new Error("Locus scale's tickFormat does not support a specifier!");const o=e.domain(),a=o[1]-o[0],s=e.numberingOffset(),l=Mr(o[0],o[1],Math.min(r,Math.ceil(a)))<1e6?mt(","):mt(".3s"),c=f=>f-t.toChromosome(f).continuousStart;return f=>l(c(f)+s)};const n=e.copy;return e.copy=()=>n().genome(t),e}function l9(e){return e.type=="locus"}function xf(e,t,n){if(n=n||[],e.some(a=>a===null)){if(e.every(a=>a===null))return null;throw console.warn(e),new Error("Cannot merge objects with nulls!")}const r={},i=(a,s)=>a===s||ua(a)&&ua(s)||ua(a)&&s===!0||a===!0&&kt(s),o=a=>{for(let s in a){const u=a[s];if(!n.includes(s)&&u!==void 0)if(r[s]!==void 0&&!i(r[s],u))console.warn(`Conflicting property ${s} of ${t}: (${JSON.stringify(r[s])} and ${JSON.stringify(a[s])}). Using ${JSON.stringify(r[s])}.`);else{const l=r[s];if(ua(l))ua(u)&&(r[s]=xf([l,u],s));else if(ua(u)){if(!(l===!0||l===void 0))throw new Error("Bug in merge! Target is: "+l);r[s]=xf([{},u],s)}else r[s]=u}}};for(const a of e)o(a);return r}function ua(e){return kt(e)&&!Array.isArray(e)}/*!
342
355
  * Adapted from vega-encode:
343
356
  * https://github.com/vega/vega/blob/master/packages/vega-encode/src/ticks.js
344
357
  *
@@ -346,7 +359,7 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
346
359
  * All rights reserved.
347
360
  *
348
361
  * BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
349
- */function Fw(e,t,n){return Tt(t)&&n!=null&&(t=Math.min(t,~~($u(e.domain())/n)||1)),kt(t)&&(t.step,t=t.interval),t}function Mw(e,t,n){var r=e.range(),i=Math.floor(r[0]),a=Math.ceil(vn(r));if(i>a&&(r=a,a=i,i=r),t=t.filter(function(s){return s=e(s),i<=s&&s<=a}),n>0&&t.length>1){for(var o=[t[0],vn(t)];t.length>n&&t.length>=3;)t=t.filter(function(s,u){return!(u%2)});t.length<3&&(t=o)}return t}function DR(e,t){return e.bins?Mw(e,RR(e.bins,t)):e.ticks?e.ticks(t):e.domain()}function RR(e,t){var n=e.length,r=~~(n/(t||n));return r<2?e.slice():e.filter(function(i,a){return!(a%r)})}function FR(e,t,n){var r=e.tickFormat?e.tickFormat(t,n):n?mt(n):String;if(U2(e.type)){var i=PR(n);r=e.bins?i:MR(r,i)}return r}function MR(e,t){return function(n){return e(n)?t(n):""}}function PR(e){var t=Mr(e||",");if(t.precision==null){switch(t.precision=12,t.type){case"%":t.precision-=2;break;case"e":t.precision-=1;break}return LR(mt(t),mt(".1f")(1)[1])}else return mt(t)}function LR(e,t){return function(n){var r=e(n),i=r.indexOf(t),a,o;if(i<0)return r;for(a=NR(r,i),o=a<r.length?r.slice(a):"";--a>i;)if(r[a]!=="0"){++a;break}return r.slice(0,a)+o}}function NR(e,t){var n=e.lastIndexOf("e"),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.charCodeAt(n),r>=48&&r<=57)return n+1}/*!
362
+ */function Xw(e,t,n){return Tt(t)&&n!=null&&(t=Math.min(t,~~(ec(e.domain())/n)||1)),kt(t)&&(t.step,t=t.interval),t}function Kw(e,t,n){var r=e.range(),i=Math.floor(r[0]),o=Math.ceil(vn(r));if(i>o&&(r=o,o=i,i=r),t=t.filter(function(s){return s=e(s),i<=s&&s<=o}),n>0&&t.length>1){for(var a=[t[0],vn(t)];t.length>n&&t.length>=3;)t=t.filter(function(s,u){return!(u%2)});t.length<3&&(t=a)}return t}function u9(e,t){return e.bins?Kw(e,c9(e.bins,t)):e.ticks?e.ticks(t):e.domain()}function c9(e,t){var n=e.length,r=~~(n/(t||n));return r<2?e.slice():e.filter(function(i,o){return!(o%r)})}function f9(e,t,n){var r=e.tickFormat?e.tickFormat(t,n):n?mt(n):String;if(qy(e.type)){var i=d9(n);r=e.bins?i:h9(r,i)}return r}function h9(e,t){return function(n){return e(n)?t(n):""}}function d9(e){var t=Pr(e||",");if(t.precision==null){switch(t.precision=12,t.type){case"%":t.precision-=2;break;case"e":t.precision-=1;break}return p9(mt(t),mt(".1f")(1)[1])}else return mt(t)}function p9(e,t){return function(n){var r=e(n),i=r.indexOf(t),o,a;if(i<0)return r;for(o=g9(r,i),a=o<r.length?r.slice(o):"";--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+a}}function g9(e,t){var n=e.lastIndexOf("e"),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.charCodeAt(n),r>=48&&r<=57)return n+1}/*!
350
363
  * Adapted from vega-encode:
351
364
  * https://github.com/vega/vega/blob/master/packages/vega-encode/src/Scale.js
352
365
  *
@@ -354,11 +367,11 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
354
367
  * All rights reserved.
355
368
  *
356
369
  * BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
357
- */const OR="locus",zR="index";var UR=5;function GR(e){const t=e.type;return!e.bins&&(t===Va||t===$s||t===qs)}function Pw(e){return yt(e)&&![Gn,zR,OR].includes(e)}function Lw(e){return e||{warn:(t,...n)=>console.warn(t,...n)}}var HR=Wu(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma","zoom","fp64","name"]);function Nw(e,t,n){n=Lw(n);for(const r in e)if(!HR[r]){if(r==="padding"&&Pw(t.type))continue;Lt(t[r])?t[r](e[r]):n.warn("Unsupported scale property: "+r)}QR(t,e,YR(t,e,qR(t,e,n)))}function VR(e,t){const n=jR(e),r=_e(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return!e.domain&&yt(i.type)&&(e.domain=[0,0]),Nw(e,i,t),i}function jR(e){var t=e.type,n="",r;return t===Gn?Gn+"-"+Va:($R(e)&&(r=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=r===2?Gn+"-":r===3?ja+"-":""),(n+t||Va).toLowerCase())}function $R(e){const t=e.type;return yt(t)&&t!==R2&&t!==F2&&(e.scheme||e.range&&e.range.length&&e.range.every(Ue))}function qR(e,t,n){if(!e.domain)return 0;n=Lw(n);var r=WR(e,t.domainRaw,n);if(r>-1)return r;var i=t.domain,a=e.type,o=t.zero||t.zero===void 0&&GR(e),s,u;return i?(Pw(a)&&t.padding&&i[0]!==vn(i)&&(i=ZR(a,i,t.range,t.padding,t.exponent,t.constant)),(o||t.domainMin!=null||t.domainMax!=null||t.domainMid!=null)&&(s=(i=i.slice()).length-1||1,o&&(i[0]>0&&(i[0]=0),i[s]<0&&(i[s]=0)),t.domainMin!=null&&(i[0]=t.domainMin),t.domainMax!=null&&(i[s]=t.domainMax),t.domainMid!=null&&(u=t.domainMid,(u<i[0]||u>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",u),i.splice(s,0,u))),e.domain(Ow(a,i,n)),a===r0&&e.unknown(t.domainImplicit?_d:void 0),t.nice&&e.nice&&e.nice(t.nice!==!0&&Fw(e,t.nice)||null),i.length):0}function WR(e,t,n){return t?(e.domain(Ow(e.type,t,n)),t.length):-1}function ZR(e,t,n,r,i,a){n??(n=[0,1]);var o=Math.abs(vn(n)-n[0]),s=o/(o-2*r),u=e===jr?qm(t,null,s):e===qs?Uh(t,null,s,.5):e===$s?Uh(t,null,s,i||1):e===Fc?M4(t,null,s,a||1):$m(t,null,s);return t=t.slice(),t[0]=u[0],t[t.length-1]=u[1],t}function Ow(e,t,n){if(U2(e)){var r=Math.abs(t.reduce(function(i,a){return i+(a<0?-1:a>0?1:0)},0));r!==t.length&&n.warn("Log scale domain includes zero: "+qu(t))}return t}function YR(e,t,n){let r=t.bins;if(r&&!xt(r)){const i=(r.start==null||r.stop==null)&&e.domain(),a=r.start==null?i[0]:r.start,o=r.stop==null?vn(i):r.stop,s=r.step;s||Qe("Scale bins parameter missing step property."),r=ss(a,o+s,s)}return r?e.bins=r:e.bins&&delete e.bins,e.type===a0&&(r?!t.domain&&!t.domainRaw&&(e.domain(r),n=r.length):e.bins=e.domain()),n}function QR(e,t,n){var r=e.type,i=t.round||!1,a=t.range;if(t.rangeStep!=null)a=XR(r,t,n);else if(t.scheme&&(a=KR(r,t,n),Lt(a))){if(e.interpolator)return e.interpolator(a);Qe(`Scale type ${r} does not support interpolating color schemes.`)}if(a&&Pc(r))return e.interpolator(Lc(Y0(a,t.reverse),t.interpolate,t.interpolateGamma));a&&t.interpolate&&e.interpolate?e.interpolate(G2(t.interpolate,t.interpolateGamma)):Lt(e.round)?e.round(i):Lt(e.rangeRound)&&e.interpolate(i?Vs:Hr),a&&e.range(Y0(a,t.reverse))}function XR(e,t,n){e!==L2&&e!==i0&&Qe("Only band and point scales support rangeStep.");var r=(t.paddingOuter!=null?t.paddingOuter:t.padding)||0,i=e===i0?1:(t.paddingInner!=null?t.paddingInner:t.padding)||0;return[0,t.rangeStep*t0(n,i,r)]}function KR(e,t,n){var r=t.schemeExtent,i,a;return xt(t.scheme)?a=Lc(t.scheme,t.interpolate,t.interpolateGamma):(i=t.scheme.toLowerCase(),a=s0(i),a||Qe(`Unrecognized scheme name: ${t.scheme}`)),n=e===P2?n+1:e===a0?n-1:e===n0||e===M2?+t.schemeCount||UR:n,Pc(e)?zw(a,r,t.reverse):Lt(a)?xk(zw(a,r),n):e===r0?a:a.slice(0,n)}function zw(e,t,n){return Lt(e)&&(t||n)?vk(e,Y0(t||[0,1],n)):e}function Y0(e,t){return t?e.slice().reverse():e}const Uw=mt(",d");function JR(e,t){return e.chrom+":"+Uw(Math.floor(e.pos+1))+"-"+(e.chrom!=t.chrom?t.chrom+":":"")+Uw(Math.ceil(t.pos))}const e9="https://genomespy.app/data/genomes/";class t9{constructor(t){if(this.config=t,!this.config.contigs&&typeof this.config.name!="string")throw new Error("No name has been defined for the genome assembly!");this.chromosomes=[],this.cumulativeChromPositions=new Map,this.chromosomesByName=new Map,this.startByIndex=[],this.totalSize=0,this.config.contigs&&this.setChromSizes(this.config.contigs)}get name(){return this.config.name}async load(t){if(!this.config.contigs){this.config.baseUrl?this.baseUrl=/^http(s)?/.test(this.config.baseUrl)?this.config.baseUrl:t+"/"+this.config.baseUrl:this.baseUrl=e9;try{this.setChromSizes(n9(await cc({baseURL:this.baseUrl}).load(`${this.config.name}/${this.name}.chrom.sizes`)))}catch(n){throw new Error(`Could not load chrom sizes: ${n.message}`)}}}hasChrPrefix(){return this.chromosomes.some(t=>t.name.startsWith("chr"))}setChromSizes(t){let n=0;this.startByIndex=[0];for(let r=0;r<t.length;r++){this.startByIndex.push(n);const i=t[r].size,a={...t[r],continuousStart:n,continuousEnd:n+i,continuousInterval:[n,n+i],index:r,number:r+1,odd:!(r&1)};this.chromosomes.push(a);const o=a.name.replace(/^chr/i,"");for(const s of["chr"+o,"CHR"+o,"Chr"+o,a.number,""+a.number,o,a.name])this.cumulativeChromPositions.set(s,n),this.chromosomesByName.set(s,a);n+=a.size}this.totalSize=n}getExtent(){return[0,this.totalSize]}toContinuous(t,n){let r=this.cumulativeChromPositions.get(t);if(r===void 0)throw new Error("Unknown chromosome/contig: "+t);return r+ +n}toChromosome(t){if(t>this.totalSize)return;t=Math.floor(t);const n=Rr(this.startByIndex,t)-1;if(n>0&&n<=this.chromosomes.length)return this.chromosomes[n-1]}toChromosomal(t){const n=this.toChromosome(t);if(n)return{chrom:n.name,pos:Math.floor(t)-n.continuousStart}}getChromosome(t){return this.chromosomesByName.get(t)}formatInterval(t){return JR(...this.toChromosomalInterval(t))}toChromosomalInterval(t){const n=this.toChromosomal(t[0]+.5),r=this.toChromosomal(t[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(t){var i;let[n,r]=t;return r||(r=n),[this.toContinuous(n.chrom,n.pos??0),this.toContinuous(r.chrom,r.pos??((i=this.chromosomesByName.get(r.chrom))==null?void 0:i.size))]}toDiscreteChromosomeIntervals(t){const n=t[0],r=t[1],i=[];if(n.chrom===r.chrom)i.push({chrom:n.chrom,startPos:n.pos,endPos:r.pos});else{const a=this.chromosomes.findIndex(s=>s.name===n.chrom),o=this.chromosomes.findIndex(s=>s.name===r.chrom);i.push({chrom:n.chrom,startPos:n.pos,endPos:this.chromosomes[a].size});for(let s=a+1;s<o;s++)i.push({chrom:this.chromosomes[s].name,startPos:0,endPos:this.chromosomes[s].size});i.push({chrom:r.chrom,startPos:0,endPos:r.pos})}return i}continuousToDiscreteChromosomeIntervals(t){return this.toDiscreteChromosomeIntervals([this.toChromosomal(t[0]),this.toChromosomal(t[1])])}parseInterval(t){const n=t.match(/^(chr[0-9A-Z]+)(?::([0-9,]+)(?:-(?:(chr[0-9A-Z]+):)?([0-9,]+))?)?$/);if(n){const r=n[1];if(n.slice(2).every(s=>s===void 0)){const s=this.getChromosome(r);return s?[s.continuousStart,s.continuousEnd]:void 0}const i=n[3]||r,a=parseInt(n[2].replace(/,/g,"")),o=n[4]!==void 0?parseInt(n[4].replace(/,/g,"")):a;return[this.toContinuous(r,a-1),this.toContinuous(i,o)]}}}function n9(e){return J4(e).filter(t=>/^chr[0-9A-Z]+$/.test(t[0])).map(([t,n])=>({name:t,size:parseInt(n)}))}function Gw(e){return kt(e)&&"chrom"in e}function r9(e){return e.every(Gw)}class ul extends Array{constructor(){super(),this.type=void 0}extend(t){return this}extendAll(t){if(t instanceof ul&&t.type!=this.type)throw new Error(`Cannot combine different types of domains: ${this.type} and ${t.type}`);for(const n of t)this.extend(n);return this}extendAllWithAccessor(t,n){for(const r of t)this.extend(n(r));return this}}class Q0 extends ul{constructor(){super(),this.type="quantitative"}extend(t){return t==null||Number.isNaN(t)?this:(t=+t,this.length?t<this[0]?this[0]=t:t>this[1]&&(this[1]=t):(this.push(t),this.push(t)),this)}}class Hw extends ul{constructor(){super(),this.type="ordinal",this.uniqueValues=new Set}extend(t){return t==null||Number.isNaN(t)?this:(this.uniqueValues.has(t)||(this.uniqueValues.add(t),this.push(t)),this)}}class Vw extends Hw{constructor(){super(),this.type="nominal"}}class i9 extends ul{constructor(t){super();let n=0;for(let r=1;r<t.length;r++)n+=Math.sign(t[r]-t[r-1]);if(Math.abs(n)!=t.length-1)throw new Error("Piecewise domain must be strictly increasing or decreasing: "+JSON.stringify(t));t.forEach(r=>this.push(r))}extend(t){if(this.includes(t))return this;throw new Error("Piecewise domains are immutable and cannot be unioned!")}}const jw={quantitative:Q0,index:Q0,locus:Q0,nominal:Vw,ordinal:Hw};function $w(e,t){if(e=="quantitative"&&a9(t)){const n=new i9(t);return n.type=e,n}else if(jw[e]){const n=new jw[e];return n.type=e,t&&n.extendAll(t),n}throw new Error("Unknown type: "+e)}function a9(e){return e&&e.length>0&&e.length!=2&&e.every(t=>typeof t=="number")}function o9(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}function s9(e,t,n){return e*Math.pow(t/e,n)}_e("index",Z0,["continuous"]),_e("locus",IR,["continuous"]),_e("null",Nc,[]);const qw="quantitative",Ww="ordinal",Zw="nominal",Yw="locus",l9="index";class u9{constructor(t){Y(this,du);Y(this,wm);Y(this,Dn);Y(this,pu);Y(this,_h);Y(this,Sh);Y(this,gu);Y(this,mu);Y(this,Vo);Y(this,_r);Y(this,bu);Y(this,Ch);Y(this,vm);Y(this,yu);Y(this,Er,void 0);Y(this,Ho,{domain:new Set,range:new Set});Y(this,tn,void 0);Y(this,hu,new Set);this.channel=t,this.members=[],this.type=null,this.name=void 0}addEventListener(t,n){G(this,Ho)[t].add(n)}removeEventListener(t,n){G(this,Ho)[t].delete(n)}pushUnitView(t,n){var o;const r=l0(t,n),i=r.type,a=(o=r==null?void 0:r.scale)==null?void 0:o.name;if(a){if(this.name!==void 0&&a!=this.name)throw new Error(`Shared scales have conflicting names: "${a}" vs. "${this.name}"!`);this.name=a}if(!this.type)this.type=i;else if(i!==this.type&&!Ks(n))throw new Error(`Can not use shared scale for different data types: ${this.type} vs. ${i}. Use "resolve: independent" for channel ${this.channel}`);this.members.push({view:t,channel:n})}getConfiguredDomain(){return K(this,yu,Fm).call(this,t=>Ks(t.channel)?void 0:t.view.getConfiguredDomain(t.channel))}getDataDomain(){return K(this,yu,Fm).call(this,t=>Ks(t.channel)?void 0:t.view.extractDataDomain(t.channel))}reconfigure(){const t=G(this,tn);if(!t||t.type=="null")return;const n=K(this,_h,m4).call(this),r=t.domain(),i=K(this,gu,Bm).call(this);if(Nw({...i,range:void 0},t),t.props=i,K(this,mu,Dm).call(this),yt(t.type)&&de(this,Er,K(this,bu,Rm).call(this)),!n){K(this,Dn,Dr).call(this,"domain");return}const a=t.domain();gd(a,r)||(this.isZoomable()?t.domain(r):K(this,_r,ka).call(this)?(t.domain(r),this.zoomTo(a,500)):K(this,Dn,Dr).call(this,"domain"))}get scale(){if(G(this,tn))return G(this,tn);const t=K(this,gu,Bm).call(this),n=VR({...t,range:void 0});n.props=t,de(this,tn,n),K(this,mu,Dm).call(this),BR(n)&&n.genome(this.getGenome()),yt(n.type)&&de(this,Er,K(this,bu,Rm).call(this));const r=n.range;if(r){const i=()=>K(this,Dn,Dr).call(this,"range");n.range=function(a){if(arguments.length)r(a),i();else return r()},i()}return n}getDomain(){return this.scale.domain()}getComplexDomain(){var t;return((t=this.getGenome())==null?void 0:t.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return K(this,_r,ka).call(this)&&gd(K(this,Vo,Lh).call(this),this.getDomain())}isZoomable(){return K(this,_r,ka).call(this)&&!!this.scale.props.zoom}zoom(t,n,r){if(!K(this,_r,ka).call(this))return!1;const i=this.scale,a=i.domain();let o=[...a],s=i.invert(n);switch(i.props.reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":o=D4(o,r||0),o=$m(o,s,t);break;case"log":o=R4(o,r||0),o=qm(o,s,t);break;case"pow":case"sqrt":{const u=i;o=F4(o,r||0,u.exponent()),o=Uh(o,s,t,u.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return G(this,Er)&&(o=P4(o,G(this,Er)[0],G(this,Er)[1])),[0,1].some(u=>o[u]!=a[u])?(i.domain(o),K(this,Dn,Dr).call(this,"domain"),!0):!1}async zoomTo(t,n=!1){var s;if(is(n)&&(n=n?700:0),!K(this,_r,ka).call(this))throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(t),i=(s=this.members[0])==null?void 0:s.view.context.animator,a=this.scale,o=a.domain();if(n>0&&o.length==2){const u=o[1]-o[0],l=o[0]+u/2,c=r[1]-r[0],f=r[0]+c/2;await i.transition({duration:n,easingFunction:o9,onUpdate:h=>{const d=s9(u,c,h),p=(u-d)/(u-c),m=p*f+(1-p)*l;a.domain([m-d/2,m+d/2]),K(this,Dn,Dr).call(this,"domain")}}),a.domain(r),K(this,Dn,Dr).call(this,"domain")}else a.domain(r),i==null||i.requestRender(),K(this,Dn,Dr).call(this,"domain")}resetZoom(){if(!K(this,_r,ka).call(this))throw new Error("Not a zoomable scale!");const t=this.getDomain(),n=K(this,Vo,Lh).call(this);return[0,1].some(r=>n[r]!=t[r])?(G(this,tn).domain(n),K(this,Dn,Dr).call(this,"domain"),!0):!1}getZoomLevel(){return this.isZoomable()?$u(G(this,Er))/$u(this.scale.domain()):1}getGenome(){var n;if(this.type!=="locus")return;const t=(n=this.members[0].view.context.genomeStore)==null?void 0:n.getGenome();if(!t)throw new Error("No genome has been defined!");return t}invertToComplex(t){const n=this.scale;if("invert"in n){const r=n.invert(t);return this.toComplex(r)}else throw new Error("The scale does not support inverting!")}toComplex(t){const n=this.getGenome();return n?n.toChromosomal(t):t}fromComplex(t){return Gw(t)?this.getGenome().toContinuous(t.chrom,t.pos):t}fromComplexInterval(t){return this.type==="locus"&&r9(t)?this.getGenome().toContinuousInterval(t):t}}Er=new WeakMap,Ho=new WeakMap,tn=new WeakMap,hu=new WeakMap,du=new WeakSet,Tm=function(){return this.members[0].view},wm=new WeakSet,yG=function(){return G(this,du,Tm).context},Dn=new WeakSet,Dr=function(t){for(const n of G(this,Ho)[t].values())n({type:t,scaleResolution:this})},pu=new WeakSet,Im=function(){return!!this.getConfiguredDomain()},_h=new WeakSet,m4=function(){const t=G(this,tn);if(!t)return!1;const n=t.domain();return yt(t.type)?n.length>2||n.length==2&&(n[0]!==0||n[1]!==0):n.length>0},Sh=new WeakSet,b4=function(){const t=this.members.map(n=>l0(n.view,n.channel).scale).filter(n=>n!==void 0);return gf(t,"scale",["domain"])},gu=new WeakSet,Bm=function(){const t=K(this,Sh,b4).call(this);if(t===null||t.type=="null")return{type:"null"};const n={...K(this,Ch,y4).call(this,this.type),...t};n.type||(n.type=c9(this.channel,this.type));const r=K(this,Vo,Lh).call(this);return r&&r.length>0?n.domain=r:Hn(n.type)&&(n.domain=new Vw),!n.domain&&n.domainMid!==void 0&&(n.domain=[n.domainMin??0,n.domainMax??1]),this.channel=="y"&&Hn(n.type)&&n.reverse==null&&(n.reverse=!0),n.range&&n.scheme&&delete n.scheme,!("zoom"in n)&&["index","locus"].includes(n.type)&&(n.zoom=!0),f9(n,this.channel),n},mu=new WeakSet,Dm=function(){const t=G(this,tn).props,n=t.range;if(G(this,hu).forEach(i=>i.invalidate()),!n||!xt(n))return;const r=(i,a)=>a?i.slice().reverse():i;if(n.some(It)){let i;const a=()=>{G(this,tn).range(r(i.map(o=>o()),t.reverse))};i=n.map(o=>{if(It(o)){const s=G(this,du,Tm).paramMediator.createExpression(o.expr);return s.addListener(a),G(this,hu).add(s),()=>s(null)}else return()=>o}),a()}else G(this,tn).range(r(n,t.reverse))},Vo=new WeakSet,Lh=function(){return this.getConfiguredDomain()??(this.type==Yw?this.getGenome().getExtent():this.getDataDomain())},_r=new WeakSet,ka=function(){const t=this.scale.type;return yt(t)},bu=new WeakSet,Rm=function(){const t=this.scale.props,n=t.zoom;if(h9(n)&&xt(n.extent))return this.fromComplexInterval(n.extent);if(n)return t.type=="locus"?this.getGenome().getExtent():G(this,tn).domain()},Ch=new WeakSet,y4=function(t){const n=this.channel,r={};return K(this,pu,Im).call(this)&&(r.zero=!1),Xs(n)?r.nice=!K(this,pu,Im).call(this):$r(n)?r.scheme=t==Zw?"tableau10":t==Ww?"blues":"viridis":Uc(n)?r.range=n=="shape"?["circle","square","triangle-up","cross","diamond"]:[]:n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r},vm=new WeakSet,wG=function(){return this.members.map(t=>t.view.getPathString()).join(", ")},yu=new WeakSet,Fm=function(t){const n=this.members.filter(r=>!r.view.getLayoutAncestors().some(i=>!i.options.contributesToScaleDomain)).map(t).filter(r=>!!r);if(n.length)return n.reduce((r,i)=>r.extendAll(i))};function c9(e,t){if(t==l9||t==Yw){if(q2(e))return t;throw new Error(`${e} does not support ${t} data type. Only positional channels do.`)}const n={x:["band","band","linear"],y:["band","band","linear"],size:[void 0,"point","linear"],opacity:[void 0,"point","linear"],fillOpacity:[void 0,"point","linear"],strokeOpacity:[void 0,"point","linear"],color:["ordinal","ordinal","linear"],fill:["ordinal","ordinal","linear"],stroke:["ordinal","ordinal","linear"],strokeWidth:[void 0,void 0,"linear"],shape:["ordinal","ordinal",void 0],dx:[void 0,void 0,"null"],dy:[void 0,void 0,"null"],angle:[void 0,void 0,"linear"]},i=["sample"].includes(e)?"null":n[e]?n[e][[Zw,Ww,qw].indexOf(t)]:t==qw?"linear":"ordinal";if(i===void 0)throw new Error(`Channel "${e}" is not compatible with "${t}" data type. Use of a proper scale may be needed.`);return i}function f9(e,t){Xs(t)&&e.type!=="ordinal"&&(e.range=[0,1]),t=="opacity"&&yt(e.type)&&(e.clamp=!0)}function h9(e){return kt(e)}function X0(e){const t=new Set;function n(r){for(const i of Object.values(r.resolutions.scale))t.add(i)}for(const r of Ot(e)){r.visit(n);for(const i of r.getDataAncestors()){if(!i.options.contributesToScaleDomain)break;n(i)}}t.forEach(r=>r.reconfigure())}function K0(...e){for(const t of e)if(t!==void 0)return t}class d9{constructor(t){this.channel=t,this.members=[]}get scaleResolution(){var t;return(t=Rs(this.members))==null?void 0:t.view.getScaleResolution(this.channel)}pushUnitView(t,n){const r=t.getScaleResolution(this.channel);if(!r)throw new Error("Cannot find a scale resolution!");if(this.scaleResolution&&r!==this.scaleResolution)throw new Error("Shared axes must have a shared scale!");this.members.push({view:t,channel:n})}getAxisProps(){return hf(this,"axisProps",()=>{const t=this.members.map(n=>{const r=n.view.mark.encoding[n.channel];return"axis"in r&&r.axis});return t.length>0&&t.some(n=>n===null)?null:gf(t.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const t=a=>{var s;const o=l0(a.view,a.channel);if(!on(o))return{member:a,explicitTitle:K0("axis"in o?(s=o.axis)==null?void 0:s.title:void 0,o.title),implicitTitle:K0($i(o)?o.field:void 0,zc(o)?o.expr:void 0)}},n=this.members.map(t),r=n.filter(a=>{var o;if(Ks(a.member.channel)&&!a.explicitTitle){const s=qi(a.member.channel);return((o=n.find(u=>u.member.view==a.member.view&&u.member.channel==s))==null?void 0:o.explicitTitle)===void 0}return!0}),i=new Set(r.map(a=>K0(a.explicitTitle,a.implicitTitle)).filter(Ue));return i.size?[...i].join(", "):null}}function Qw(e,t,{spacing:n,devicePixelRatio:r,offset:i,reverse:a}={}){n=n||0,i=i||0;let o=0,s=0;for(const p of e)o+=mf(p.px)+(J0(p)?0:n),s+=mf(p.grow);o-=n;const u=Math.max(0,t-o),l=r!==void 0?p=>Math.round(p*r)/r:p=>p,c=[],f=[],h=p=>{const m=c.length;if(!m)return;const y=(p?n:0)*(a?-1:1);d-=y;for(let w=0;w<m;w++)f.push({location:d+(w+1)/(m+1)*y,size:0});d+=y,c.length=0};let d=a?Math.max(t,o):0+i;if(e.length==1&&J0(e[0]))return[{location:d,size:0}];for(let p=0;p<e.length;p++){const m=e[p];if(J0(m))c.push(m);else{h(f.length>0);const y=mf(m.px)+(s?mf(m.grow)/s*u:0);a&&(d-=y),f.push({location:l(d),size:l(y)}),a?d-=n:d+=y+n}}return d+=a?n:-n,h(!1),f}function p9(e){let t=0,n=0;for(const r of e)t=Math.max(t,r.px??0),n=Math.max(n,r.grow??0);return{px:t,grow:n}}const xm=class xm{constructor(t,n){Y(this,wu);this.width=t,this.height=n}addPadding(t){return K(this,wu,Mm).call(this,t.width,t.height)}subtractPadding(t){return K(this,wu,Mm).call(this,-t.width,-t.height)}};wu=new WeakSet,Mm=function(t,n){return new xm({px:(this.width.px??0)+t,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};let Jr=xm;const cl=Object.freeze({px:0,grow:0}),Xw=new Jr(cl,cl);function J0(e){return!e.px&&!e.grow}function mf(e){return e||0}function g9(e){return e&&(Tt(e.px)||Tt(e.grow))}function Kw(e){if(tv(e))throw new Error("parseSizeDef does not accept step-based sizes.");if(g9(e))return e;if(Tt(e))return{px:e,grow:0};if(e==="container")return{px:0,grow:1};if(!e)return{px:0,grow:1};throw new Error(`Invalid sizeDef: ${e}`)}class St{constructor(t,n,r,i){this.top=t||0,this.right=n||0,this.bottom=r||0,this.left=i||0}get width(){return this.left+this.right}get height(){return this.top+this.bottom}expand(t){return t<=0?this:new St(this.top+t,this.right+t,this.bottom+t,this.left+t)}add(t){return new St(this.top+t.top,this.right+t.right,this.bottom+t.bottom,this.left+t.left)}subtract(t){return new St(this.top-t.top,this.right-t.right,this.bottom-t.bottom,this.left-t.left)}union(t){return new St(Math.max(this.top,t.top),Math.max(this.right,t.right),Math.max(this.bottom,t.bottom),Math.max(this.left,t.left))}getHorizontal(){return new St(0,this.right,0,this.left)}getVertical(){return new St(this.top,0,this.bottom,0)}get horizontalTotal(){return this.left+this.right}get verticalTotal(){return this.top+this.bottom}static createFromConfig(t){return typeof t=="number"?this.createUniformPadding(t):t?this.createFromRecord(t):ep}static createFromRecord(t){return new St(t.top,t.right,t.bottom,t.left)}static zero(){return ep}static createUniformPadding(t){return new St(t,t,t,t)}}const ep=St.createUniformPadding(0);Object.freeze(ep);const m9=/^([A-Za-z]+:)?\/\//;function b9(e,t){if(t&&m9.test(t))return t;const n=e();return n&&t?n.endsWith("/")?n+t:n+"/"+t:n??t}const y9="VISIT_SKIP",fl="VISIT_STOP",Jw=e=>e;class ev{constructor(t,n,r,i,a,o={}){Y(this,xa);Y(this,Au);Y(this,jo,{});Y(this,vu,{});Y(this,xu,{});Pt(this,"opacityFunction",Jw);Pt(this,"facetCoords",new ir([],JSON.stringify));if(!t)throw new Error("View spec must be defined!");if(this.context=n,this.layoutParent=r,this.dataParent=i,this.name=t.name||a,this.spec=t,this.resolutions={scale:{},axis:{}},Ew(this),this.options={blockEncodingInheritance:!1,contributesToScaleDomain:!0,...o},this.needsAxes={x:!1,y:!1},this.paramMediator=new Ck(()=>{var s;return(s=this.dataParent)==null?void 0:s.paramMediator}),t.params)for(const s of t.params)this.paramMediator.registerParam(s)}get coords(){return this.facetCoords.values().next().value}getPadding(){return this._cache("size/padding",()=>St.createFromConfig(this.spec.padding))}getOverhang(){return St.zero()}isScrollable(){return this.spec.viewportWidth!=null||this.spec.viewportHeight!=null}getSize(){return this._cache("size/size",()=>this.isConfiguredVisible()?new Jr(K(this,xa,Ou).call(this,"width"),K(this,xa,Ou).call(this,"height")):Xw)}getViewportSize(){if(!this.isScrollable())return this.getSize();if(!this.isConfiguredVisible())return Xw;const t=this.getSize();return new Jr(K(this,xa,Ou).call(this,"viewportWidth")??t.width,K(this,xa,Ou).call(this,"viewportHeight")??t.height)}isConfiguredVisible(){return this.context.isViewConfiguredVisible(this)}isVisibleInSpec(){return this.spec.visible??!0}isVisible(){return this.getLayoutAncestors().every(t=>t.isConfiguredVisible())}getEffectiveOpacity(){var t;return this.opacityFunction(((t=this.layoutParent)==null?void 0:t.getEffectiveOpacity())??1)}getPathString(){return this.getLayoutAncestors().map(t=>t.name).reverse().join("/")}getLayoutAncestors(){return K(this,Au,Pm).call(this,"layoutParent")}getDataAncestors(){return K(this,Au,Pm).call(this,"dataParent")}handleBroadcast(t){for(const n of G(this,jo)[t.type]||[])n(t)}_addBroadcastHandler(t,n){let r=G(this,jo)[t];r||(r=[],G(this,jo)[t]=r),r.push(n)}handleInteractionEvent(t,n,r){const i=r?G(this,vu):G(this,xu);for(const a of i[n.type]||[])a(t,n)}addInteractionEventListener(t,n,r){const i=r?G(this,vu):G(this,xu);let a=i[t];a||(a=[],i[t]=a),a.push(n)}visit(t){try{const n=t(this);if(t.postOrder&&t.postOrder(this),n!==fl)return n}catch(n){throw n.view=this,n}}getDescendants(){const t=[];return this.visit(n=>{t.push(n)}),t}configureViewOpacity(){(!this.opacityFunction||this.opacityFunction===Jw)&&(this.opacityFunction=v9(this))}onBeforeRender(){}render(t,n,r={}){r.firstFacet&&this.facetCoords.clear(),this.facetCoords.set(r.facetId,r.clipRect?n.intersect(r.clipRect):n)}getEncoding(){const t=this.dataParent&&!this.options.blockEncodingInheritance?this.dataParent.getEncoding():{},n=this.spec.encoding||{},r={...t,...n};for(const[i,a]of Object.entries(r))a===null&&delete r[i];return r}getFacetAccessor(t){if(this.layoutParent)return this.layoutParent.getFacetAccessor(this)}getFacetFields(t){var r;const n=this.getEncoding().sample;return $i(n)?[n.field]:(r=this.layoutParent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}getScaleResolution(t){const n=qi(t);return this.getDataAncestors().map(r=>r.resolutions.scale[n]).find(r=>r)}getAxisResolution(t){const n=qi(t);return this.getDataAncestors().map(r=>r.resolutions.axis[n]).find(r=>r)}getConfiguredResolution(t,n){var r,i;return(i=(r=this.spec.resolve)==null?void 0:r[n])==null?void 0:i[t]}getConfiguredOrDefaultResolution(t,n){return this.getConfiguredResolution(t,n)??this.getConfiguredResolution("default",n)??this.getDefaultResolution(t,n)}getDefaultResolution(t,n){return"independent"}getBaseUrl(){return b9(()=>{var t;return(t=this.dataParent)==null?void 0:t.getBaseUrl()},this.spec.baseUrl)}isPickingSupported(){return!0}getTitleText(){const t=this.spec.title;if(t)return Ue(t)?t:It(t.text)?this.paramMediator.evaluateAndGet(t.text.expr):t.text}_cache(t,n){return hf(this,t,n)}_invalidateCacheByPrefix(t,n="self"){switch(n){case"self":df(this,t);break;case"ancestors":for(const r of this.getLayoutAncestors())df(r,t);break;case"progeny":this.visit(r=>df(r,t));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(t){}}jo=new WeakMap,vu=new WeakMap,xu=new WeakMap,xa=new WeakSet,Ou=function(t){var i;let n=this.spec[t];const r=t=="viewportWidth"||t=="viewportHeight";if(tv(n)){if(r)throw new Ki(`Cannot use step-based size with "${t}"!`,this);const a=n.step,o=(i=this.getScaleResolution(t=="width"?"x":"y"))==null?void 0:i.scale;if(o){let s=0;if(Hn(o.type))s=o.domain().length;else if(["locus","index"].includes(o.type)){const l=o.domain();s=Rs(l)-l[0]}else throw new Ki(`Cannot use step-based size with "${o.type}" scale!`,this);const u=o;return s=t0(s,u.paddingInner(),u.paddingOuter()),{px:s*a,grow:0}}else throw new Ki("Cannot use 'step' size with missing scale!",this)}else return(n&&Kw(n))??(r?void 0:{px:0,grow:1})},Au=new WeakSet,Pm=function(t){const n=[];let r=this;do n.push(r),r=r[t];while(r);return n};function w9(e){return"unitsPerPixel"in e}function v9(e){const t=e.spec.opacity;if(t!==void 0){if(Tt(t))return n=>n*t;if(w9(t)){const n=a=>{var s;const o=(s=e.getScaleResolution(a))==null?void 0:s.scale;if(["linear","index","locus"].includes(o==null?void 0:o.type))return o},r=t.channel?n(t.channel):n("x")??n("y");if(!r)throw new Ki("Cannot find a resolved quantitative scale for dynamic opacity!",e);const i=Wd().domain(t.unitsPerPixel).range(t.values).clamp(!0);return a=>{const s=$u(r.domain())/1e3;return i(s)*a}}else if(It(t)){const n=e.paramMediator.createExpression(t.expr);return n.addListener(()=>e.context.animator.requestRender()),r=>n(null)*r}}return n=>n}const tv=e=>!!(e!=null&&e.step),x9={point:fR,rect:iR,rule:gR,link:AR,text:TR};class Xt extends ev{constructor(n,r,i,a,o,s){super(n,r,i,a,o,s);Y(this,_u);Y(this,Eu,void 0);this.spec=n;const u=x9[this.getMarkType()];if(u)this.mark=new u(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.resolve(),de(this,Eu,this.paramMediator.allocateSetter("zoomLevel",1)),["x","y"].forEach(l=>{var c;return(c=this.getScaleResolution(l))==null?void 0:c.addEventListener("domain",()=>G(this,Eu).call(this,Math.sqrt(this.getZoomLevel())))}),this.needsAxes={x:!0,y:!0}}render(n,r,i={}){super.render(n,r,i),this.isConfiguredVisible()&&(n.pushView(this,r),n.renderMark(this.mark,i),n.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(n){n||(this.resolve("scale"),this.resolve("axis"));const r=this.mark.encoding;for(const[i,a]of Object.entries(r)){if(!Qt(a))continue;const o=qi(a.resolutionChannel??i);if(!qa(o)||n=="axis"&&!Xs(o))continue;let s=this;for(;(s.getConfiguredOrDefaultResolution(o,n)=="forced"||s.dataParent&&["shared","excluded","forced"].includes(s.dataParent.getConfiguredOrDefaultResolution(o,n)))&&s.getConfiguredOrDefaultResolution(o,n)!="excluded";)s=s.dataParent;if(n=="axis"&&Xs(i)&&q2(o))s.resolutions[n][o]||(s.resolutions[n][o]=new d9(o)),s.resolutions[n][o].pushUnitView(this,i);else if(n=="scale"&&qa(i)){if(!s.resolutions[n][o]){const u=new u9(o);s.resolutions[n][o]=u,u.addEventListener("range",l=>{var c;(c=this.context.glHelper)==null||c.createRangeTexture(l.scaleResolution,!0)})}s.resolutions[n][o].pushUnitView(this,i)}}}getAccessor(n){return this._cache("accessor/"+n,()=>{const r=this.mark.encoding;if(r&&r[n])return this.context.accessorFactory.createAccessor(r[n])})}getFacetAccessor(n){const r=this.getAccessor("sample");return r||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}getConfiguredDomain(n){const r=K(this,_u,Lm).call(this,n),i=r&&r.scale&&r.scale.domain;if(i){const a=this.getScaleResolution(r.resolutionChannel??n);return $w(r.type??"nominal",a.fromComplexInterval(i))}}extractDataDomain(n){const i=K(this,_u,Lm).call(this,n).type??"nominal",a=u=>{let l;const c=this.mark.encoding[u];if(c){const f=this.context.accessorFactory.createAccessor(c);if(f)if(l=$w(i),f.constant)l.extend(f({}));else{const h=this.getCollector();h!=null&&h.completed&&h.visitData(d=>l.extend(f(d)))}}return l};let o=a(n);const s=u0[n];if(s){const u=a(s);u&&o.extendAll(u)}return o}getZoomLevel(){const n=r=>{var i;return((i=this.getScaleResolution(r))==null?void 0:i.getZoomLevel())??1};return $a.map(n).reduce((r,i)=>r*i,1)}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0),n.target=this,!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return n=="x"?"shared":"independent"}}Eu=new WeakMap,_u=new WeakSet,Lm=function(n){if(Ks(n))throw new Error(`getDomain(${n}), must only be called for primary channels!`);const r=this.mark.encoding[n];if(!Qt(r))throw new Error("The channel has no scale, cannot get domain!");return r};function*tp(e,t=[]){for(const[n,r]of e.entries())if(r instanceof Map)for(const i of tp(r,[...t,n]))yield i;else yield[[...t,n],r]}class nv extends tt{constructor(n){super();Y(this,Su);this.params=n??{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}get behavior(){return W0}_init(){this._data=[],this.facetBatches=new ir([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(n){this._data.push(n)}beginBatch(n){lR(n)&&(this._data=[],this.facetBatches.set(Ot(n.facetId),this._data))}complete(){var a,o;const n=(a=this.params)==null?void 0:a.sort,r=n?Wm(n.field,n.order):void 0,i=s=>{r&&s.sort(r)};if((o=this.params.groupby)!=null&&o.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const s=this.params.groupby.map(l=>Me(l)),u=s.length>1?Yu(this._data,...s):A9(this._data,s[0]);this.facetBatches.clear();for(const[l,c]of tp(u))this.facetBatches.set(l,c)}for(const s of this.facetBatches.values())i(s);K(this,Su,Nm).call(this),super.complete();for(const s of this.observers)s(this)}repropagate(){for(const n of this.children)n.reset();K(this,Su,Nm).call(this);for(const n of this.children)n.complete()}getData(){switch(this._checkStatus(),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const n=this.facetBatches;return{[Symbol.iterator]:function*(){for(const i of n.values())for(let a=0;a<i.length;a++)yield i[a]}}}}}visitData(n){this._checkStatus();for(const r of this.facetBatches.values())for(let i=0;i<r.length;i++)n(r[i])}getItemCount(){let n=0;for(const r of this.facetBatches.values())n+=r.length;return n}_checkStatus(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")}}Su=new WeakSet,Nm=function(){if(this.children.length)for(const[n,r]of this.facetBatches.entries()){if(n){const i={type:"facet",facetId:n};for(const a of this.children)a.beginBatch(i)}for(const i of r)this._propagate(i)}};function A9(e,t){const n=new Map;for(let r=0,i=e.length;r<i;r++){const a=e[r],o=t(a);let s=n.get(o);s||(s=[],n.set(o,s)),s.push(a)}return n}class bf{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(t,n){let r=this.length++;for(;r>0;){const i=r-1>>1,a=this.values[i];if(n>=a)break;this.ids[r]=this.ids[i],this.values[r]=a,r=i}this.ids[r]=t,this.values[r]=n}pop(){if(this.length===0)return;const t=this.ids[0];if(this.length--,this.length>0){const n=this.ids[0]=this.ids[this.length],r=this.values[0]=this.values[this.length],i=this.length>>1;let a=0;for(;a<i;){let o=(a<<1)+1;const s=o+1;let u=this.ids[o],l=this.values[o];const c=this.values[s];if(s<this.length&&c<l&&(o=s,u=this.ids[s],l=c),l>=r)break;this.ids[a]=u,this.values[a]=l,a=o}this.ids[a]=n,this.values[a]=r}return t}peek(){if(this.length!==0)return this.ids[0]}peekValue(){if(this.length!==0)return this.values[0]}shrink(){this.ids.length=this.values.length=this.length}}class E9 extends tt{get behavior(){return $n}constructor(t){super(),this.params=t,this.startAccessor=Me(t.start),this.endAccessor=Me(t.end),this.chromAccessor=t.chrom?Me(t.chrom):n=>{},this.weightAccessor=t.weight?Me(t.weight):n=>1,this.as={coverage:t.as??"coverage",start:t.asStart??t.start,end:t.asEnd??t.end,chrom:t.asChrom??t.chrom},this.createSegment=new Function("start","end","coverage","chrom","return {"+Object.entries(this.as).filter(([n,r])=>r).map(([n,r])=>`${JSON.stringify(r)}: ${n}`).join(", ")+"};"),this.ends=new bf}reset(){super.reset(),this.initialize()}initialize(){const t=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,a=this.endAccessor,o=this.chromAccessor,s=this.weightAccessor;let u,l,c,f=0,h=NaN;const d=this.ends;d.clear();const p=w=>{this._propagate(w),u=null},m=(w,x,S)=>{if(w==x)return;let _=!1;u&&(u[t]===S?(u[n]=x,_=!0):u[t]!=0&&p(u)),_||(u=this.createSegment(w,x,S,c))},y=()=>{let w=0;for(;(w=d.peekValue())!==void 0;)m(h,w,f),h=w,f-=d.pop();h=NaN,u&&p(u)};this.handle=w=>{const x=i(w);let S=0;for(;(S=d.peekValue())!==void 0&&S<x;)m(h,S,f),h=S,f-=d.pop();if(r){let T=o(w);T!==l&&(y(),c=T,l=c)}isNaN(h)||m(h,x,f),h=x;const _=s(w);f+=_,d.push(_,a(w))},this.complete=()=>{y(),super.complete()},this.beginBatch=w=>{y(),l=null,super.beginBatch(w)}}}function _9(e,t,n=0,r=e.length){const i=new bf,a=r-n;let o;for(o=0;o<t&&o<a;o++)i.push(o,e[n+o]);for(;o<a;o++){const l=e[n+o];l>=i.peekValue()&&(i.push(o,l),i.pop())}const s=[];let u;for(;(u=i.pop())!==void 0;)s.push(n+u);return s.reverse()}class S9{constructor(t,n=-1/0,r=1/0){this.maxSize=t,this.lowerLimit=n,this.upperLimit=r;const i=this.maxSize*2+1;this.lowerLimits=new Float64Array(i),this.upperLimits=new Float64Array(i),this.lowerChildren=new Int32Array(i),this.upperChildren=new Int32Array(i),this.reset()}reset(){this.lowerLimits.fill(0),this.upperLimits.fill(0),this.lowerChildren.fill(0),this.upperChildren.fill(0),this.n=1,this.lowerLimits[0]=this.lowerLimit,this.upperLimits[0]=this.upperLimit}_findSlot(t,n,r=0){if(t>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const a=this._findSlot(t,n,i);return a>=0?a:this._findSlot(t,n,this.upperChildren[r])}else return r}else return-1}reserve(t,n){if(n-t<=0)throw new Error("Cannot reserve an empty or negative-size slot!");if(this.n+1>this.lowerLimits.length)return!1;const r=this._findSlot(t,n);if(r<0)return!1;const i=this.n++,a=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=t,this.lowerLimits[a]=n,this.upperLimits[a]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=a,!0}}class C9 extends tt{get behavior(){return W0}constructor(t,n){if(super(),this.params=t,this._data=[],this.channel=t.channel??"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=Me(this.params.pos),this.posBisector=Zu(this.posAccessor),this.scoreAccessor=Me(this.params.score),this.widthAccessor=Me(this.params.width),this.laneAccessor=this.params.lane?Me(this.params.lane):i=>0,this.padding=this.params.padding??0,this.reservationMaps=new Map,this.resolution=n.getScaleResolution(this.channel);const r=()=>this._filterAndPropagate();this.schedule=()=>n.context.animator.requestTransition(r),this.resolution.addEventListener("domain",i=>this.schedule()),n._addBroadcastHandler("layoutComputed",()=>this.schedule())}complete(){const t=this.posAccessor;this._data.sort((n,r)=>t(n)-t(r)),this._scores=this._data.map(this.scoreAccessor);for(const n of new Set(this._data.map(this.laneAccessor)))this.reservationMaps.set(n,new S9(200));this.schedule(),super.complete()}_filterAndPropagate(){var o;super.reset();const t=this.resolution.scale,n=(o=this.resolution.members[0].view.coords)==null?void 0:o[this.channel=="x"?"width":"height"];if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=t.domain(),i=70,a=_9(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of a){const u=this._data[s],l=t(this.posAccessor(u))*n,c=this.widthAccessor(u)/2+this.padding;this.reservationMaps.get(this.laneAccessor(u)).reserve(l-c,l+c)&&this._propagate(u)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(t){this._data.push(t)}}class k9 extends tt{constructor(t,n){super(n),this.params=t,this.predicate=void 0}initialize(){this.predicate=this.paramMediator.createExpression(this.params.expr),this.predicate.addListener(()=>this.repropagate())}handle(t){this.predicate(t)&&this._propagate(t)}}class T9 extends tt{get behavior(){return $n}constructor(t){super();const n=t.index;if(t.fields){const r=Ot(t.fields).map(a=>Me(a)),i=Ot(t.as||t.fields);if(r.length!==i.length)throw new Error(`Lengths of "fields" (${r.length}), and "as" (${i.length}) do not match!`);this.handle=a=>{const o=r.map((u,l)=>u(a)??[]),s=o[0].length;for(let u=0;u<s;u++){const l=Object.assign({},a);for(let c=0;c<r.length;c++)l[i[c]]=u<o[c].length?o[c][u]:null;n&&(l[n]=u),this._propagate(l)}}}else this.handle=r=>{for(let i=0;i<r.length;i++){const a=Object.assign({},r[i]);n&&(a[n]=i),this._propagate(a)}}}}const I9="0".charCodeAt(0);function*B9(e,t=","){const n=t.charCodeAt(0);let r=0;for(let i=0;i<e.length;i++){const a=e.charCodeAt(i);a==n?(yield r,r=0):r=r*10+a-I9}yield r}class D9 extends tt{get behavior(){return $n}constructor(t){super();const n=Me(t.exons??"exons"),r=Me(t.start??"start"),[i,a]=t.as||["exonStart","exonEnd"];this.handle=o=>{let s=r(o),u=s,l=!0;const c=n(o);for(const f of B9(c)){if(l)u=s+f;else{s=u+f;const h=Object.assign({},o);h[i]=u,h[a]=s,this._propagate(h)}l=!l}}}}class R9 extends tt{get behavior(){return $n}constructor(t){super();const n=Ot(t.field).map(a=>Me(a)),r=Ot(t.separator),i=Ot(t.as||t.field);if(n.length!==r.length||n.length!==i.length)throw new Error(`Lengths of "separator" (${r.length}), "fields" (${n.length}), and "as" (${i.length}) do not match!`);this.handle=a=>{if(n.some(u=>!u(a)))return;const o=n.map((u,l)=>u(a).split(r[l]));F9(o,a);const s=o[0].length;for(let u=0;u<s;u++){const l=Object.assign({},a);for(let c=0;c<n.length;c++)l[i[c]]=o[c][u];this._propagate(l)}}}}function F9(e,t){const n=e.map(r=>r.length);if(!n.every(r=>r==n[0]))throw new Error("Mismatching number of elements in the fields to be split: "+JSON.stringify(t))}class M9 extends tt{get behavior(){return Kr}constructor(t,n){super(n),this.params=t,this.as=t.as,this.fn=void 0}initialize(){this.fn=this.paramMediator.createExpression(this.params.expr),this.fn.addListener(()=>this.repropagate())}handle(t){t[this.as]=this.fn(t),this._propagate(t)}}class rv extends tt{get behavior(){return Kr}constructor(t,n){super();const r=t.channel??"x";if(!["x","y"].includes(r))throw new Error("Invalid channel: "+r);const i=n.getScaleResolution(r).getGenome();if(!i)throw new Error("LinearizeGenomicCoordinate transform requires a locus scale!");const a=Me(t.chrom),o=Ot(t.pos).map(p=>Me(p)),s=Ot(t.as);if(o.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const u=Ot(t.offset);let l;if(u.length==0)l=new Array(o.length).fill(0);else if(u.length==1)l=new Array(o.length).fill(u[0]);else if(u.length==o.length)l=u;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(t.offset)}!`);const c=new Function("datum","chromOffset","posAccessors",s.map((p,m)=>`datum[${JSON.stringify(p)}] = chromOffset + +posAccessors[${m}](datum) - ${l[m]};`).join(`
358
- `));let f,h=0;const d=p=>{if(p!==f){if(h=i.cumulativeChromPositions.get(p),h===void 0)throw new Error("Unknown chromosome/contig: "+p);f=p}return h};this.handle=p=>{c(p,d(a(p)),o),this._propagate(p)}}}const iv={pages:["Lato-Regular.png"],chars:[{id:87,width:53,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:43.491,chnl:15,x:0,y:0,page:0},{id:124,width:17,height:50,xoffset:0,yoffset:-32.193000000000005,xadvance:10.521,chnl:15,x:0,y:42,page:0},{id:40,width:20,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:94,page:0},{id:41,width:19,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:145,page:0},{id:36,width:32,height:49,xoffset:0,yoffset:-34.419000000000004,xadvance:24.360000000000003,chnl:15,x:0,y:196,page:0},{id:125,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:247,page:0},{id:91,width:22,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:297,page:0},{id:93,width:19,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:347,page:0},{id:123,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:397,page:0},{id:106,width:19,height:48,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:0,y:447,page:0},{id:81,width:43,height:47,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:21,y:447,page:0},{id:77,width:45,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:38.997,chnl:15,x:66,y:447,page:0},{id:64,width:43,height:44,xoffset:0,yoffset:-28.539,xadvance:35.133,chnl:15,x:23,y:397,page:0},{id:92,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:68,y:397,page:0},{id:47,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:98,y:397,page:0},{id:109,width:42,height:32,xoffset:0,yoffset:-21.609,xadvance:34.545,chnl:15,x:113,y:447,page:0},{id:119,width:42,height:31,xoffset:0,yoffset:-21.315,xadvance:32.991,chnl:15,x:157,y:447,page:0},{id:42,width:25,height:42,xoffset:0,yoffset:-31.626,xadvance:17.85,chnl:15,x:128,y:397,page:0},{id:37,width:42,height:41,xoffset:0,yoffset:-30.387,xadvance:33.663000000000004,chnl:15,x:155,y:397,page:0},{id:79,width:42,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:199,y:397,page:0},{id:102,width:24,height:41,xoffset:0,yoffset:-30.534000000000002,xadvance:14.721,chnl:15,x:243,y:397,page:0},{id:100,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:269,y:397,page:0},{id:98,width:32,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:302,y:397,page:0},{id:56,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:336,y:397,page:0},{id:38,width:40,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:29.904000000000003,chnl:15,x:370,y:397,page:0},{id:108,width:17,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:9.912,chnl:15,x:412,y:397,page:0},{id:107,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:21.336000000000002,chnl:15,x:431,y:397,page:0},{id:48,width:33,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:464,y:397,page:0},{id:71,width:38,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:30.681,chnl:15,x:21,y:347,page:0},{id:83,width:31,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:22.785,chnl:15,x:61,y:347,page:0},{id:63,width:27,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:18.795,chnl:15,x:94,y:347,page:0},{id:105,width:18,height:41,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:123,y:347,page:0},{id:51,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:143,y:347,page:0},{id:104,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.436,chnl:15,x:177,y:347,page:0},{id:67,width:37,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:28.056,chnl:15,x:210,y:347,page:0},{id:88,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.258000000000003,chnl:15,x:249,y:347,page:0},{id:68,width:40,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:31.941000000000003,chnl:15,x:288,y:347,page:0},{id:70,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:23.751,chnl:15,x:330,y:347,page:0},{id:34,width:23,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:15.561000000000002,chnl:15,x:364,y:347,page:0},{id:72,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:389,y:347,page:0},{id:73,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.760000000000002,chnl:15,x:429,y:347,page:0},{id:74,width:24,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:17.745,chnl:15,x:449,y:347,page:0},{id:75,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.825000000000003,chnl:15,x:24,y:297,page:0},{id:76,width:31,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:21.567,chnl:15,x:475,y:347,page:0},{id:66,width:35,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.153000000000002,chnl:15,x:64,y:297,page:0},{id:78,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:101,y:297,page:0},{id:33,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.298,chnl:15,x:141,y:297,page:0},{id:80,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.221,chnl:15,x:161,y:297,page:0},{id:65,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:197,y:297,page:0},{id:82,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.313000000000002,chnl:15,x:237,y:297,page:0},{id:35,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:275,y:297,page:0},{id:84,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.801000000000002,chnl:15,x:310,y:297,page:0},{id:85,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:30.891000000000002,chnl:15,x:346,y:297,page:0},{id:86,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:385,y:297,page:0},{id:39,width:16,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:8.568000000000001,chnl:15,x:425,y:297,page:0},{id:69,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.255000000000003,chnl:15,x:443,y:297,page:0},{id:89,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.208000000000002,chnl:15,x:23,y:247,page:0},{id:90,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.284000000000002,chnl:15,x:477,y:297,page:0},{id:49,width:31,height:40,xoffset:0,yoffset:-30.156000000000002,xadvance:24.360000000000003,chnl:15,x:61,y:247,page:0},{id:50,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:94,y:247,page:0},{id:57,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:128,y:247,page:0},{id:94,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:162,y:247,page:0},{id:96,width:21,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:16.8,chnl:15,x:196,y:247,page:0},{id:55,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:219,y:247,page:0},{id:54,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:254,y:247,page:0},{id:53,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:289,y:247,page:0},{id:52,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:323,y:247,page:0},{id:103,width:31,height:39,xoffset:0,yoffset:-21.630000000000003,xadvance:21.84,chnl:15,x:358,y:247,page:0},{id:112,width:32,height:39,xoffset:0,yoffset:-21.651,xadvance:23.541,chnl:15,x:391,y:247,page:0},{id:113,width:31,height:39,xoffset:0,yoffset:-21.651,xadvance:23.520000000000003,chnl:15,x:425,y:247,page:0},{id:116,width:25,height:39,xoffset:0,yoffset:-28.182000000000002,xadvance:15.057,chnl:15,x:458,y:247,page:0},{id:121,width:31,height:38,xoffset:0,yoffset:-21.273,xadvance:21.651,chnl:15,x:34,y:196,page:0},{id:59,width:18,height:36,xoffset:0,yoffset:-20.706,xadvance:10.983,chnl:15,x:485,y:247,page:0},{id:43,width:32,height:34,xoffset:0,yoffset:-24.486,xadvance:24.360000000000003,chnl:15,x:67,y:196,page:0},{id:60,width:30,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:101,y:196,page:0},{id:62,width:31,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:133,y:196,page:0},{id:117,width:30,height:32,xoffset:0,yoffset:-21.273,xadvance:23.415000000000003,chnl:15,x:166,y:196,page:0},{id:99,width:29,height:32,xoffset:0,yoffset:-21.609,xadvance:20.055,chnl:15,x:198,y:196,page:0},{id:110,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:23.436,chnl:15,x:229,y:196,page:0},{id:111,width:32,height:32,xoffset:0,yoffset:-21.609,xadvance:23.814,chnl:15,x:262,y:196,page:0},{id:126,width:32,height:26,xoffset:0,yoffset:-16.128,xadvance:24.360000000000003,chnl:15,x:201,y:447,page:0},{id:101,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:22.176000000000002,chnl:15,x:296,y:196,page:0},{id:114,width:25,height:32,xoffset:0,yoffset:-21.651,xadvance:15.288,chnl:15,x:329,y:196,page:0},{id:115,width:27,height:32,xoffset:0,yoffset:-21.609,xadvance:18.186,chnl:15,x:356,y:196,page:0},{id:97,width:28,height:32,xoffset:0,yoffset:-21.651,xadvance:20.874000000000002,chnl:15,x:385,y:196,page:0},{id:118,width:31,height:31,xoffset:0,yoffset:-21.273,xadvance:21.672,chnl:15,x:415,y:196,page:0},{id:61,width:31,height:29,xoffset:0,yoffset:-19.089000000000002,xadvance:24.360000000000003,chnl:15,x:448,y:196,page:0},{id:120,width:30,height:31,xoffset:0,yoffset:-21.273,xadvance:20.916,chnl:15,x:21,y:145,page:0},{id:58,width:18,height:31,xoffset:0,yoffset:-20.706,xadvance:10.5,chnl:15,x:53,y:145,page:0},{id:122,width:28,height:31,xoffset:0,yoffset:-21.273,xadvance:18.984,chnl:15,x:73,y:145,page:0},{id:95,width:28,height:16,xoffset:0,yoffset:0,xadvance:19.278000000000002,chnl:15,x:235,y:447,page:0},{id:45,width:23,height:24,xoffset:0,yoffset:-14.175,xadvance:15.603000000000002,chnl:15,x:481,y:196,page:0},{id:44,width:17,height:21,xoffset:0,yoffset:-4.956,xadvance:9.534,chnl:15,x:103,y:145,page:0},{id:46,width:18,height:15,xoffset:0,yoffset:-4.956,xadvance:9.912,chnl:15,x:0,y:497,page:0},{id:32,width:0,height:0,xoffset:0,yoffset:0,xadvance:10.752,chnl:15,x:20,y:497,page:0}],info:{face:"Lato Regular",size:42,bold:0,italic:0,charset:[" ","!",'"',"#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~"],unicode:1,stretchH:100,smooth:1,aa:1,padding:[0,0,0,0],spacing:[2,2]},common:{lineHeight:50.400000000000006,base:41.454,scaleW:512,scaleH:512,pages:1,packed:0,alphaChnl:0,redChnl:0,greenChnl:0,blueChnl:0},kernings:[]};class P9 extends tt{get behavior(){return Kr}constructor(t){super();const n=j0(iv),r=Me(t.field),i=t.as,a=t.fontSize;this.handle=o=>{const s=r(o);s!==void 0?o[i]=n.measureWidth(s,a):o[i]=0,this._propagate(o)}}}const L9=65536;class N9 extends tt{get behavior(){return Kr}constructor(t){super(),this.params=t}reset(){super.reset(),this.initialize()}initialize(){const t=this.params,n=t.as||"lane",r=Tt(t.spacing)?t.spacing:1,i=Me(t.start),a=Me(t.end);if(!t.preference!=!t.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(t.preference){const o=new Float64Array(L9),s=Me(t.preference),u=t.preferredOrder;let l=1/0;this.handle=c=>{const f=i(c);f<l&&o.fill(-1/0),l=f;const h=u.indexOf(s(c));let d=-1;if(h>=0&&o[h]<f)d=h;else{const p=i(c);for(d=0;d<o.length&&!(o[d]<p);d++);if(d>=o.length)throw new Error("Out of lanes!")}o[d]=a(c)+r,c[n]=d,this._propagate(c)}}else{const o=new bf,s=new bf;let u=-1/0,l=0;this.handle=c=>{const f=i(c);for(;o.length&&(o.peekValue()<=f||f<u);){const d=o.pop();s.push(d,d)}u=f;let h=s.pop();h===void 0&&(h=l++),c[n]=h,this._propagate(c),o.push(h,a(c)+r)}}}}class O9 extends tt{get behavior(){return $n}constructor(t){if(super(),t.as&&t.as.length!=t.fields.length)throw new Error('"fields" and "as" have unequal lengths!');const n=t.fields.map(i=>Me(i)),r=t.as?t.as:n.map(Ia);this.handle=i=>{const a={};for(let o=0;o<n.length;o++)a[r[o]]=n[o](i);this._propagate(a)}}}class z9 extends tt{get behavior(){return Kr}constructor(t){super();const n=new RegExp(t.regex),r=typeof t.as=="string"?[t.as]:t.as,i=Me(t.field);this.handle=a=>{const o=i(a);if(Ue(o)){const s=o.match(n);if(s){if(s.length-1!=r.length)throw new Error('The number of RegEx groups and the length of "as" do not match!');for(let u=0;u<r.length;u++)a[r[u]]=s[u+1]}else if(t.skipInvalidInput)for(let u=0;u<r.length;u++)a[r[u]]=void 0;else throw new Error(`"${o}" does not match the given regex: ${n.toString()}`)}else if(!t.skipInvalidInput)throw new Error(`Trying to match a non-string field. Encountered type: ${typeof o}, field content: "${o}".`);this._propagate(a)}}}class U9 extends tt{get behavior(){return $n}constructor(t){super();const n=Ot(t.columnRegex).map(h=>new RegExp(h)),r=Ot(t.asValue);if(n.length!=r.length)throw new Error('Lengths of "columnRegex" and "as" are not equal!');const i=t.skipRegex?new RegExp(t.skipRegex):void 0,a=t.asKey||"sample";let o,s,u;const l=h=>{var y;const d=Object.keys(h);for(const w of n)if(!d.some(x=>w.test(x)))throw new Error(`No columns matching the regex ${w.toString()} found in the data!`);const p=new Map;for(const[w,x]of n.entries())for(const S of d){const _=(y=x.exec(S))==null?void 0:y[1];if(_!==void 0){let T=p.get(_);T||(T=[],p.set(_,T)),T[w]=S}}o=[...p.entries()],s=d.filter(w=>!n.some(x=>x.test(w))&&!(i&&i.test(w)));const m=[...s.map(w=>JSON.stringify(w)+": datum["+JSON.stringify(w)+"]"),JSON.stringify(a)+": sampleId",...r.map((w,x)=>JSON.stringify(w)+`: datum[attrs[${x}]]`)];u=new Function("datum","sampleId","attrs",`return {
370
+ */const m9="locus",b9="index";var y9=5;function w9(e){const t=e.type;return!e.bins&&(t===ia||t===Qs||t===Xs)}function Jw(e){return bt(e)&&![Hn,b9,m9].includes(e)}function ev(e){return e||{warn:(t,...n)=>console.warn(t,...n)}}var v9=nc(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma","zoom","fp64","name"]);function tv(e,t,n){n=ev(n);for(const r in e)if(!v9[r]){if(r==="padding"&&Jw(t.type))continue;Zt(t[r])?t[r](e[r]):n.warn("Unsupported scale property: "+r)}T9(t,e,k9(t,e,_9(t,e,n)))}function x9(e,t){const n=A9(e),r=Se(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return!e.domain&&bt(i.type)&&(e.domain=[0,0]),tv(e,i,t),i}function A9(e){var t=e.type,n="",r;return t===Hn?Hn+"-"+ia:(E9(e)&&(r=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=r===2?Hn+"-":r===3?oa+"-":""),(n+t||ia).toLowerCase())}function E9(e){const t=e.type;return bt(t)&&t!==Oy&&t!==zy&&(e.scheme||e.range&&e.range.length&&e.range.every(Fe))}function _9(e,t,n){if(!e.domain)return 0;n=ev(n);var r=S9(e,t.domainRaw,n);if(r>-1)return r;var i=t.domain,o=e.type,a=t.zero||t.zero===void 0&&w9(e),s,u;return i?(Jw(o)&&t.padding&&i[0]!==vn(i)&&(i=C9(o,i,t.range,t.padding,t.exponent,t.constant)),(a||t.domainMin!=null||t.domainMax!=null||t.domainMid!=null)&&(s=(i=i.slice()).length-1||1,a&&(i[0]>0&&(i[0]=0),i[s]<0&&(i[s]=0)),t.domainMin!=null&&(i[0]=t.domainMin),t.domainMax!=null&&(i[s]=t.domainMax),t.domainMid!=null&&(u=t.domainMid,(u<i[0]||u>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",u),i.splice(s,0,u))),e.domain(nv(o,i,n)),o===M0&&e.unknown(t.domainImplicit?t0:void 0),t.nice&&e.nice&&e.nice(t.nice!==!0&&Xw(e,t.nice)||null),i.length):0}function S9(e,t,n){return t?(e.domain(nv(e.type,t,n)),t.length):-1}function C9(e,t,n,r,i,o){n??(n=[0,1]);var a=Math.abs(vn(n)-n[0]),s=a/(a-2*r),u=e===Qr?t1(t,null,s):e===Xs?Qh(t,null,s,.5):e===Qs?Qh(t,null,s,i||1):e===rf?eS(t,null,s,o||1):e1(t,null,s);return t=t.slice(),t[0]=u[0],t[t.length-1]=u[1],t}function nv(e,t,n){if(qy(e)){var r=Math.abs(t.reduce(function(i,o){return i+(o<0?-1:o>0?1:0)},0));r!==t.length&&n.warn("Log scale domain includes zero: "+tc(t))}return t}function k9(e,t,n){let r=t.bins;if(r&&!xt(r)){const i=(r.start==null||r.stop==null)&&e.domain(),o=r.start==null?i[0]:r.start,a=r.stop==null?vn(i):r.stop,s=r.step;s||Ke("Scale bins parameter missing step property."),r=hs(o,a+s,s)}return r?e.bins=r:e.bins&&delete e.bins,e.type===L0&&(r?!t.domain&&!t.domainRaw&&(e.domain(r),n=r.length):e.bins=e.domain()),n}function T9(e,t,n){var r=e.type,i=t.round||!1,o=t.range;if(t.rangeStep!=null)o=I9(r,t,n);else if(t.scheme&&(o=B9(r,t,n),Zt(o))){if(e.interpolator)return e.interpolator(o);Ke(`Scale type ${r} does not support interpolating color schemes.`)}if(o&&af(r))return e.interpolator(sf(op(o,t.reverse),t.interpolate,t.interpolateGamma));o&&t.interpolate&&e.interpolate?e.interpolate(Wy(t.interpolate,t.interpolateGamma)):Zt(e.round)?e.round(i):Zt(e.rangeRound)&&e.interpolate(i?Zs:Zr),o&&e.range(op(o,t.reverse))}function I9(e,t,n){e!==Hy&&e!==P0&&Ke("Only band and point scales support rangeStep.");var r=(t.paddingOuter!=null?t.paddingOuter:t.padding)||0,i=e===P0?1:(t.paddingInner!=null?t.paddingInner:t.padding)||0;return[0,t.rangeStep*R0(n,i,r)]}function B9(e,t,n){var r=t.schemeExtent,i,o;return xt(t.scheme)?o=sf(t.scheme,t.interpolate,t.interpolateGamma):(i=t.scheme.toLowerCase(),o=O0(i),o||Ke(`Unrecognized scheme name: ${t.scheme}`)),n=e===Gy?n+1:e===L0?n-1:e===F0||e===Uy?+t.schemeCount||y9:n,af(e)?rv(o,r,t.reverse):Zt(o)?gB(rv(o,r),n):e===M0?o:o.slice(0,n)}function rv(e,t,n){return Zt(e)&&(t||n)?pB(e,op(t||[0,1],n)):e}function op(e,t){return t?e.slice().reverse():e}const iv=mt(",d");function D9(e,t){return e.chrom+":"+iv(Math.floor(e.pos+1))+"-"+(e.chrom!=t.chrom?t.chrom+":":"")+iv(Math.ceil(t.pos))}const R9="https://genomespy.app/data/genomes/";class F9{constructor(t){if(this.config=t,!this.config.contigs&&typeof this.config.name!="string")throw new Error("No name has been defined for the genome assembly!");this.chromosomes=[],this.cumulativeChromPositions=new Map,this.chromosomesByName=new Map,this.startByIndex=[],this.totalSize=0,this.config.contigs&&this.setChromSizes(this.config.contigs)}get name(){return this.config.name}async load(t){if(!this.config.contigs){this.config.baseUrl?this.baseUrl=/^http(s)?/.test(this.config.baseUrl)?this.config.baseUrl:t+"/"+this.config.baseUrl:this.baseUrl=R9;try{this.setChromSizes(M9(await yc({baseURL:this.baseUrl}).load(`${this.config.name}/${this.name}.chrom.sizes`)))}catch(n){throw new Error(`Could not load chrom sizes: ${n.message}`)}}}hasChrPrefix(){return this.chromosomes.some(t=>t.name.startsWith("chr"))}setChromSizes(t){let n=0;this.startByIndex=[0];for(let r=0;r<t.length;r++){this.startByIndex.push(n);const i=t[r].size,o={...t[r],continuousStart:n,continuousEnd:n+i,continuousInterval:[n,n+i],index:r,number:r+1,odd:!(r&1)};this.chromosomes.push(o);const a=o.name.replace(/^chr/i,"");for(const s of["chr"+a,"CHR"+a,"Chr"+a,o.number,""+o.number,a,o.name])this.cumulativeChromPositions.set(s,n),this.chromosomesByName.set(s,o);n+=o.size}this.totalSize=n}getExtent(){return[0,this.totalSize]}toContinuous(t,n){let r=this.cumulativeChromPositions.get(t);if(r===void 0)throw new Error("Unknown chromosome/contig: "+t);return r+ +n}toChromosome(t){if(t>this.totalSize)return;t=Math.floor(t);const n=Fr(this.startByIndex,t)-1;if(n>0&&n<=this.chromosomes.length)return this.chromosomes[n-1]}toChromosomal(t){const n=this.toChromosome(t);if(n)return{chrom:n.name,pos:Math.floor(t)-n.continuousStart}}getChromosome(t){return this.chromosomesByName.get(t)}formatInterval(t){return D9(...this.toChromosomalInterval(t))}toChromosomalInterval(t){const n=this.toChromosomal(t[0]+.5),r=this.toChromosomal(t[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(t){var i;let[n,r]=t;return r||(r=n),[this.toContinuous(n.chrom,n.pos??0),this.toContinuous(r.chrom,r.pos??((i=this.chromosomesByName.get(r.chrom))==null?void 0:i.size))]}toDiscreteChromosomeIntervals(t){const n=t[0],r=t[1],i=[];if(n.chrom===r.chrom)i.push({chrom:n.chrom,startPos:n.pos,endPos:r.pos});else{const o=this.chromosomes.findIndex(s=>s.name===n.chrom),a=this.chromosomes.findIndex(s=>s.name===r.chrom);i.push({chrom:n.chrom,startPos:n.pos,endPos:this.chromosomes[o].size});for(let s=o+1;s<a;s++)i.push({chrom:this.chromosomes[s].name,startPos:0,endPos:this.chromosomes[s].size});i.push({chrom:r.chrom,startPos:0,endPos:r.pos})}return i}continuousToDiscreteChromosomeIntervals(t){return this.toDiscreteChromosomeIntervals([this.toChromosomal(t[0]),this.toChromosomal(t[1])])}parseInterval(t){const n=t.match(/^(chr[0-9A-Z]+)(?::([0-9,]+)(?:-(?:(chr[0-9A-Z]+):)?([0-9,]+))?)?$/);if(n){const r=n[1];if(n.slice(2).every(s=>s===void 0)){const s=this.getChromosome(r);return s?[s.continuousStart,s.continuousEnd]:void 0}const i=n[3]||r,o=parseInt(n[2].replace(/,/g,"")),a=n[4]!==void 0?parseInt(n[4].replace(/,/g,"")):o;return[this.toContinuous(r,o-1),this.toContinuous(i,a)]}}}function M9(e){return yS(e).filter(t=>/^chr[0-9A-Z]+$/.test(t[0])).map(([t,n])=>({name:t,size:parseInt(n)}))}function ov(e){return kt(e)&&"chrom"in e}function P9(e){return e.every(ov)}class yl extends Array{constructor(){super(),this.type=void 0}extend(t){return this}extendAll(t){if(t instanceof yl&&t.type!=this.type)throw new Error(`Cannot combine different types of domains: ${this.type} and ${t.type}`);for(const n of t)this.extend(n);return this}extendAllWithAccessor(t,n){for(const r of t)this.extend(n(r));return this}}class ap extends yl{constructor(){super(),this.type="quantitative"}extend(t){return t==null||Number.isNaN(t)?this:(t=+t,this.length?t<this[0]?this[0]=t:t>this[1]&&(this[1]=t):(this.push(t),this.push(t)),this)}}class av extends yl{constructor(){super(),this.type="ordinal",this.uniqueValues=new Set}extend(t){return t==null||Number.isNaN(t)?this:(this.uniqueValues.has(t)||(this.uniqueValues.add(t),this.push(t)),this)}}class sv extends av{constructor(){super(),this.type="nominal"}}class L9 extends yl{constructor(t){super();let n=0;for(let r=1;r<t.length;r++)n+=Math.sign(t[r]-t[r-1]);if(Math.abs(n)!=t.length-1)throw new Error("Piecewise domain must be strictly increasing or decreasing: "+JSON.stringify(t));t.forEach(r=>this.push(r))}extend(t){if(this.includes(t))return this;throw new Error("Piecewise domains are immutable and cannot be unioned!")}}const lv={quantitative:ap,index:ap,locus:ap,nominal:sv,ordinal:av};function uv(e,t){if(e=="quantitative"&&N9(t)){const n=new L9(t);return n.type=e,n}else if(lv[e]){const n=new lv[e];return n.type=e,t&&n.extendAll(t),n}throw new Error("Unknown type: "+e)}function N9(e){return e&&e.length>0&&e.length!=2&&e.every(t=>typeof t=="number")}function O9(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}function z9(e,t,n){return e*Math.pow(t/e,n)}Se("index",ip,["continuous"]),Se("locus",s9,["continuous"]),Se("null",Y0,[]);const cv="quantitative",fv="ordinal",hv="nominal",dv="locus",U9="index";class G9{constructor(t){Z(this,xu);Z(this,Au);Z(this,Dn);Z(this,Eu);Z(this,Bh);Z(this,Dh);Z(this,_u);Z(this,Su);Z(this,Za);Z(this,_r);Z(this,Cu);Z(this,Rh);Z(this,Fh);Z(this,Er,void 0);Z(this,Wa,{domain:new Set,range:new Set});Z(this,en,void 0);Z(this,vu,new Set);this.channel=t,this.members=[],this.type=null,this.name=void 0}addEventListener(t,n){z(this,Wa)[t].add(n)}removeEventListener(t,n){z(this,Wa)[t].delete(n)}pushUnitView(t){var a;const{channel:n,channelDef:r}=t,i=r.type,o=(a=r==null?void 0:r.scale)==null?void 0:a.name;if(o){if(this.name!==void 0&&o!=this.name)throw new Error(`Shared scales have conflicting names: "${o}" vs. "${this.name}"!`);this.name=o}if(!this.type)this.type=i;else if(i!==this.type&&!Sw(n))throw new Error(`Can not use shared scale for different data types: ${this.type} vs. ${i}. Use "resolve: independent" for channel ${this.channel}`);this.members.push(t)}getConfiguredDomain(){const t=this.members.map(n=>n.channelDef).filter(n=>{var r;return(r=n.scale)==null?void 0:r.domain}).map(n=>uv(n.type,this.fromComplexInterval(n.scale.domain)));if(t.length>0)return t.reduce((n,r)=>n.extendAll(r))}getDataDomain(){return X(this,Fh,L4).call(this,t=>t.dataDomainSource(t.channel,this.type))}reconfigure(){const t=z(this,en);if(!t||t.type=="null")return;const n=X(this,Bh,F4).call(this),r=t.domain(),i=X(this,_u,zm).call(this,!0);if(tv({...i,range:void 0},t),t.props=i,X(this,Su,Um).call(this),bt(t.type)&&le(this,Er,X(this,Cu,Gm).call(this)),!n){X(this,Dn,Rr).call(this,"domain");return}const o=t.domain();Sd(o,r)||(this.isZoomable()?t.domain(r):X(this,_r,Fo).call(this)?(t.domain(r),this.zoomTo(o,500)):X(this,Dn,Rr).call(this,"domain"))}get scale(){if(z(this,en))return z(this,en);const t=X(this,_u,zm).call(this),n=x9({...t,range:void 0});n.props=t,"unknown"in n&&n.unknown(null),le(this,en,n),X(this,Su,Um).call(this),l9(n)&&n.genome(this.getGenome()),bt(n.type)&&le(this,Er,X(this,Cu,Gm).call(this));const r=n.range;if(r){const i=()=>X(this,Dn,Rr).call(this,"range");n.range=function(o){if(arguments.length)r(o),i();else return r()},i()}return n}getDomain(){return this.scale.domain()}getComplexDomain(){var t;return((t=this.getGenome())==null?void 0:t.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return X(this,_r,Fo).call(this)&&Sd(X(this,Za,$h).call(this),this.getDomain())}isZoomable(){return X(this,_r,Fo).call(this)&&!!this.scale.props.zoom}zoom(t,n,r){if(!X(this,_r,Fo).call(this))return!1;const i=this.scale,o=i.domain();let a=[...o],s=i.invert(n);switch(i.props.reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":a=X4(a,r||0),a=e1(a,s,t);break;case"log":a=K4(a,r||0),a=t1(a,s,t);break;case"pow":case"sqrt":{const u=i;a=J4(a,r||0,u.exponent()),a=Qh(a,s,t,u.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return z(this,Er)&&(a=tS(a,z(this,Er)[0],z(this,Er)[1])),[0,1].some(u=>a[u]!=o[u])?(i.domain(a),X(this,Dn,Rr).call(this,"domain"),!0):!1}async zoomTo(t,n=!1){if(us(n)&&(n=n?700:0),!X(this,_r,Fo).call(this))throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(t),i=z(this,Au,Nm).animator,o=this.scale,a=o.domain();if(n>0&&a.length==2){const s=a[1]-a[0],u=a[0]+s/2,l=r[1]-r[0],c=r[0]+l/2;await i.transition({duration:n,easingFunction:O9,onUpdate:f=>{const h=z9(s,l,f),d=(s-h)/(s-l),p=d*c+(1-d)*u;o.domain([p-h/2,p+h/2]),X(this,Dn,Rr).call(this,"domain")}}),o.domain(r),X(this,Dn,Rr).call(this,"domain")}else o.domain(r),i==null||i.requestRender(),X(this,Dn,Rr).call(this,"domain")}resetZoom(){if(!X(this,_r,Fo).call(this))throw new Error("Not a zoomable scale!");const t=this.getDomain(),n=X(this,Za,$h).call(this);return[0,1].some(r=>n[r]!=t[r])?(z(this,en).domain(n),X(this,Dn,Rr).call(this,"domain"),!0):!1}getZoomLevel(){return this.isZoomable()?ec(z(this,Er))/ec(this.scale.domain()):1}getGenome(){var n;if(this.type!=="locus")return;const t=(n=z(this,Au,Nm).genomeStore)==null?void 0:n.getGenome();if(!t)throw new Error("No genome has been defined!");return t}invertToComplex(t){const n=this.scale;if("invert"in n){const r=n.invert(t);return this.toComplex(r)}else throw new Error("The scale does not support inverting!")}toComplex(t){const n=this.getGenome();return n?n.toChromosomal(t):t}fromComplex(t){return ov(t)?this.getGenome().toContinuous(t.chrom,t.pos):t}fromComplexInterval(t){return this.type==="locus"&&P9(t)?this.getGenome().toContinuousInterval(t):t}}Er=new WeakMap,Wa=new WeakMap,en=new WeakMap,vu=new WeakMap,xu=new WeakSet,Lm=function(){return this.members[0].view},Au=new WeakSet,Nm=function(){return z(this,xu,Lm).context},Dn=new WeakSet,Rr=function(t){for(const n of z(this,Wa)[t].values())n({type:t,scaleResolution:this})},Eu=new WeakSet,Om=function(){return!!this.getConfiguredDomain()},Bh=new WeakSet,F4=function(){const t=z(this,en);if(!t)return!1;const n=t.domain();return bt(t.type)?n.length>2||n.length==2&&(n[0]!==0||n[1]!==0):n.length>0},Dh=new WeakSet,M4=function(){const t=this.members.map(n=>n.channelDef.scale).filter(n=>n!==void 0);return xf(t,"scale",["domain"])},_u=new WeakSet,zm=function(t=!1){const n=X(this,Dh,M4).call(this);if(n===null||n.type=="null")return{type:"null"};const r={...X(this,Rh,P4).call(this,this.type),...n};r.type||(r.type=H9(this.channel,this.type));const i=X(this,Za,$h).call(this,t);return i&&i.length>0?r.domain=i:Xr(r.type)&&(r.domain=new sv),!r.domain&&r.domainMid!==void 0&&(r.domain=[r.domainMin??0,r.domainMax??1]),this.channel=="y"&&Xr(r.type)&&r.reverse==null&&(r.reverse=!0),r.range&&r.scheme&&delete r.scheme,!("zoom"in r)&&["index","locus"].includes(r.type)&&(r.zoom=!0),V9(r,this.channel),r},Su=new WeakSet,Um=function(){const t=z(this,en).props,n=t.range;if(z(this,vu).forEach(i=>i.invalidate()),!n||!xt(n))return;const r=(i,o)=>o?i.slice().reverse():i;if(n.some(Dt)){let i;const o=()=>{z(this,en).range(r(i.map(a=>a()),t.reverse))};i=n.map(a=>{if(Dt(a)){const s=z(this,xu,Lm).paramMediator.createExpression(a.expr);return s.addListener(o),z(this,vu).add(s),()=>s(null)}else return()=>a}),o()}else z(this,en).range(r(n,t.reverse))},Za=new WeakSet,$h=function(t=!1){return this.getConfiguredDomain()??(this.type==dv?this.getGenome().getExtent():t?this.getDataDomain():[])},_r=new WeakSet,Fo=function(){const t=this.scale.type;return bt(t)},Cu=new WeakSet,Gm=function(){const t=this.scale.props,n=t.zoom;if(j9(n)&&xt(n.extent))return this.fromComplexInterval(n.extent);if(n)return t.type=="locus"?this.getGenome().getExtent():z(this,en).domain()},Rh=new WeakSet,P4=function(t){const n=this.channel,r={};return X(this,Eu,Om).call(this)&&(r.zero=!1),cl(n)?r.nice=!X(this,Eu,Om).call(this):ni(n)?r.scheme=t==hv?"tableau10":t==fv?"blues":"viridis":mf(n)?r.range=n=="shape"?["circle","square","triangle-up","cross","diamond"]:[]:n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r},Fh=new WeakSet,L4=function(t){const n=this.members.filter(r=>!r.view||!r.view.getLayoutAncestors().some(i=>!i.options.contributesToScaleDomain)).map(t).filter(r=>!!r);if(n.length)return n.reduce((r,i)=>r.extendAll(i))};function H9(e,t){if(t==U9||t==dv){if(Aw(e))return t;throw new Error(`${e} does not support ${t} data type. Only positional channels do.`)}const n={x:["band","band","linear"],y:["band","band","linear"],size:[void 0,"point","linear"],opacity:[void 0,"point","linear"],fillOpacity:[void 0,"point","linear"],strokeOpacity:[void 0,"point","linear"],color:["ordinal","ordinal","linear"],fill:["ordinal","ordinal","linear"],stroke:["ordinal","ordinal","linear"],strokeWidth:[void 0,void 0,"linear"],shape:["ordinal","ordinal",void 0],dx:[void 0,void 0,"null"],dy:[void 0,void 0,"null"],angle:[void 0,void 0,"linear"]},i=["sample"].includes(e)?"null":n[e]?n[e][[hv,fv,cv].indexOf(t)]:t==cv?"linear":"ordinal";if(i===void 0)throw new Error(`Channel "${e}" is not compatible with "${t}" data type. Use of a proper scale may be needed.`);return i}function V9(e,t){cl(t)&&e.type!=="ordinal"&&(e.range=[0,1]),t=="opacity"&&bt(e.type)&&(e.clamp=!0)}function j9(e){return kt(e)}function sp(e){const t=new Set;function n(r){for(const i of Object.values(r.resolutions.scale))t.add(i)}for(const r of Nt(e)){r.visit(n);for(const i of r.getDataAncestors()){if(!i.options.contributesToScaleDomain)break;n(i)}}t.forEach(r=>r.reconfigure())}function lp(...e){for(const t of e)if(t!==void 0)return t}class $9{constructor(t){this.channel=t,this.members=[]}get scaleResolution(){var t;return(t=Ns(this.members))==null?void 0:t.view.getScaleResolution(this.channel)}pushUnitView(t){const{view:n}=t,r=n.getScaleResolution(this.channel);if(!r)throw new Error("Cannot find a scale resolution!");if(this.scaleResolution&&r!==this.scaleResolution)throw new Error("Shared axes must have a shared scale!");this.members.push(t)}getAxisProps(){return yf(this,"axisProps",()=>{const t=this.members.map(n=>{const r=n.view.mark.encoding[n.channel];return"axis"in r&&r.axis});return t.length>0&&t.some(n=>n===null)?null:xf(t.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const t=o=>{var s;const a=jD(o.view,o.channel);if(!on(a))return{member:o,explicitTitle:lp("axis"in a?(s=a.axis)==null?void 0:s.title:void 0,a.title),implicitTitle:lp(ti(a)?a.field:void 0,ul(a)?a.expr:void 0)}},n=this.members.map(t),r=n.filter(o=>{var a;if(Sw(o.member.channel)&&!o.explicitTitle){const s=Ji(o.member.channel);return((a=n.find(u=>u.member.view==o.member.view&&u.member.channel==s))==null?void 0:a.explicitTitle)===void 0}return!0}),i=new Set(r.map(o=>lp(o.explicitTitle,o.implicitTitle)).filter(Fe));return i.size?[...i].join(", "):null}}function pv(e,t,{spacing:n,devicePixelRatio:r,offset:i,reverse:o}={}){n=n||0,i=i||0;let a=0,s=0;for(const p of e)a+=Af(p.px)+(up(p)?0:n),s+=Af(p.grow);a-=n;const u=Math.max(0,t-a),l=r!==void 0?p=>Math.round(p*r)/r:p=>p,c=[],f=[],h=p=>{const m=c.length;if(!m)return;const y=(p?n:0)*(o?-1:1);d-=y;for(let w=0;w<m;w++)f.push({location:d+(w+1)/(m+1)*y,size:0});d+=y,c.length=0};let d=o?Math.max(t,a):0+i;if(e.length==1&&up(e[0]))return[{location:d,size:0}];for(let p=0;p<e.length;p++){const m=e[p];if(up(m))c.push(m);else{h(f.length>0);const y=Af(m.px)+(s?Af(m.grow)/s*u:0);o&&(d-=y),f.push({location:l(d),size:l(y)}),o?d-=n:d+=y+n}}return d+=o?n:-n,h(!1),f}function q9(e){let t=0,n=0;for(const r of e)t=Math.max(t,r.px??0),n=Math.max(n,r.grow??0);return{px:t,grow:n}}const Im=class Im{constructor(t,n){Z(this,ku);this.width=t,this.height=n}addPadding(t){return X(this,ku,Hm).call(this,t.width,t.height)}subtractPadding(t){return X(this,ku,Hm).call(this,-t.width,-t.height)}};ku=new WeakSet,Hm=function(t,n){return new Im({px:(this.width.px??0)+t,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};let ii=Im;const wl=Object.freeze({px:0,grow:0}),gv=new ii(wl,wl);function up(e){return!e.px&&!e.grow}function Af(e){return e||0}function W9(e){return e&&(Tt(e.px)||Tt(e.grow))}function mv(e){if(wv(e))throw new Error("parseSizeDef does not accept step-based sizes.");if(W9(e))return e;if(Tt(e))return{px:e,grow:0};if(e==="container")return{px:0,grow:1};if(!e)return{px:0,grow:1};throw new Error(`Invalid sizeDef: ${e}`)}class St{constructor(t,n,r,i){this.top=t||0,this.right=n||0,this.bottom=r||0,this.left=i||0}get width(){return this.left+this.right}get height(){return this.top+this.bottom}expand(t){return t<=0?this:new St(this.top+t,this.right+t,this.bottom+t,this.left+t)}add(t){return new St(this.top+t.top,this.right+t.right,this.bottom+t.bottom,this.left+t.left)}subtract(t){return new St(this.top-t.top,this.right-t.right,this.bottom-t.bottom,this.left-t.left)}union(t){return new St(Math.max(this.top,t.top),Math.max(this.right,t.right),Math.max(this.bottom,t.bottom),Math.max(this.left,t.left))}getHorizontal(){return new St(0,this.right,0,this.left)}getVertical(){return new St(this.top,0,this.bottom,0)}get horizontalTotal(){return this.left+this.right}get verticalTotal(){return this.top+this.bottom}static createFromConfig(t){return typeof t=="number"?this.createUniformPadding(t):t?this.createFromRecord(t):cp}static createFromRecord(t){return new St(t.top,t.right,t.bottom,t.left)}static zero(){return cp}static createUniformPadding(t){return new St(t,t,t,t)}}const cp=St.createUniformPadding(0);Object.freeze(cp);const Z9=/^([A-Za-z]+:)?\/\//;function Y9(e,t){if(t&&Z9.test(t))return t;const n=e();return n&&t?n.endsWith("/")?n+t:n+"/"+t:n??t}const Q9="VISIT_SKIP",vl="VISIT_STOP",bv=e=>e;class yv{constructor(t,n,r,i,o,a={}){Z(this,So);Z(this,Bu);Z(this,Ya,{});Z(this,Tu,{});Z(this,Iu,{});Pt(this,"opacityFunction",bv);Pt(this,"facetCoords",new or([],JSON.stringify));if(!t)throw new Error("View spec must be defined!");if(this.context=n,this.layoutParent=r,this.dataParent=i,this.name=t.name||o,this.spec=t,this.resolutions={scale:{},axis:{}},Hw(this),this.options={blockEncodingInheritance:!1,contributesToScaleDomain:!0,...a},this.needsAxes={x:!1,y:!1},this.paramMediator=new OD(()=>{var s;return(s=this.dataParent)==null?void 0:s.paramMediator}),t.params)for(const s of t.params)this.paramMediator.registerParam(s)}get coords(){return this.facetCoords.values().next().value}getPadding(){return this._cache("size/padding",()=>St.createFromConfig(this.spec.padding))}getOverhang(){return St.zero()}isScrollable(){return this.spec.viewportWidth!=null||this.spec.viewportHeight!=null}getSize(){return this._cache("size/size",()=>this.isConfiguredVisible()?new ii(X(this,So,Zu).call(this,"width"),X(this,So,Zu).call(this,"height")):gv)}getViewportSize(){if(!this.isScrollable())return this.getSize();if(!this.isConfiguredVisible())return gv;const t=this.getSize();return new ii(X(this,So,Zu).call(this,"viewportWidth")??t.width,X(this,So,Zu).call(this,"viewportHeight")??t.height)}isConfiguredVisible(){return this.context.isViewConfiguredVisible(this)}isVisibleInSpec(){return this.spec.visible??!0}isVisible(){return this.getLayoutAncestors().every(t=>t.isConfiguredVisible())}getEffectiveOpacity(){var t;return this.opacityFunction(((t=this.layoutParent)==null?void 0:t.getEffectiveOpacity())??1)}getPathString(){return this.getLayoutAncestors().map(t=>t.name).reverse().join("/")}getLayoutAncestors(){return X(this,Bu,Vm).call(this,"layoutParent")}getDataAncestors(){return X(this,Bu,Vm).call(this,"dataParent")}handleBroadcast(t){for(const n of z(this,Ya)[t.type]||[])n(t)}_addBroadcastHandler(t,n){let r=z(this,Ya)[t];r||(r=[],z(this,Ya)[t]=r),r.push(n)}handleInteractionEvent(t,n,r){const i=r?z(this,Tu):z(this,Iu);for(const o of i[n.type]||[])o(t,n)}addInteractionEventListener(t,n,r){const i=r?z(this,Tu):z(this,Iu);let o=i[t];o||(o=[],i[t]=o),o.push(n)}visit(t){try{const n=t(this);if(t.postOrder&&t.postOrder(this),n!==vl)return n}catch(n){throw n.view=this,n}}getDescendants(){const t=[];return this.visit(n=>{t.push(n)}),t}configureViewOpacity(){(!this.opacityFunction||this.opacityFunction===bv)&&(this.opacityFunction=K9(this))}onBeforeRender(){}render(t,n,r={}){r.firstFacet&&this.facetCoords.clear(),this.facetCoords.set(r.facetId,r.clipRect?n.intersect(r.clipRect):n)}getEncoding(){const t=this.dataParent&&!this.options.blockEncodingInheritance?this.dataParent.getEncoding():{},n=this.spec.encoding||{},r={...t,...n};for(const[i,o]of Object.entries(r))o===null&&delete r[i];return r}getFacetAccessor(t){if(this.layoutParent)return this.layoutParent.getFacetAccessor(this)}getFacetFields(t){var r;const n=this.getEncoding().sample;return ti(n)?[n.field]:(r=this.layoutParent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}getScaleResolution(t){const n=Ji(t);return this.getDataAncestors().map(r=>r.resolutions.scale[n]).find(r=>r)}getAxisResolution(t){const n=Ji(t);return this.getDataAncestors().map(r=>r.resolutions.axis[n]).find(r=>r)}getConfiguredResolution(t,n){var r,i;return(i=(r=this.spec.resolve)==null?void 0:r[n])==null?void 0:i[t]}getConfiguredOrDefaultResolution(t,n){return this.getConfiguredResolution(t,n)??this.getConfiguredResolution("default",n)??this.getDefaultResolution(t,n)}getDefaultResolution(t,n){return"independent"}getBaseUrl(){return Y9(()=>{var t;return(t=this.dataParent)==null?void 0:t.getBaseUrl()},this.spec.baseUrl)}isPickingSupported(){return!0}getTitleText(){const t=this.spec.title;if(t)return Fe(t)?t:Dt(t.text)?this.paramMediator.evaluateAndGet(t.text.expr):t.text}_cache(t,n){return yf(this,t,n)}_invalidateCacheByPrefix(t,n="self"){switch(n){case"self":wf(this,t);break;case"ancestors":for(const r of this.getLayoutAncestors())wf(r,t);break;case"progeny":this.visit(r=>wf(r,t));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(t){}}Ya=new WeakMap,Tu=new WeakMap,Iu=new WeakMap,So=new WeakSet,Zu=function(t){var i;let n=this.spec[t];const r=t=="viewportWidth"||t=="viewportHeight";if(wv(n)){if(r)throw new ri(`Cannot use step-based size with "${t}"!`,this);const o=n.step,a=(i=this.getScaleResolution(t=="width"?"x":"y"))==null?void 0:i.scale;if(a){let s=0;if(Xr(a.type))s=a.domain().length;else if(["locus","index"].includes(a.type)){const l=a.domain();s=Ns(l)-l[0]}else throw new ri(`Cannot use step-based size with "${a.type}" scale!`,this);const u=a;return s=R0(s,u.paddingInner(),u.paddingOuter()),{px:s*o,grow:0}}else throw new ri("Cannot use 'step' size with missing scale!",this)}else return(n&&mv(n))??(r?void 0:{px:0,grow:1})},Bu=new WeakSet,Vm=function(t){const n=[];let r=this;do n.push(r),r=r[t];while(r);return n};function X9(e){return"unitsPerPixel"in e}function K9(e){const t=e.spec.opacity;if(t!==void 0){if(Tt(t))return n=>n*t;if(X9(t)){const n=o=>{var s;const a=(s=e.getScaleResolution(o))==null?void 0:s.scale;if(["linear","index","locus"].includes(a==null?void 0:a.type))return a},r=t.channel?n(t.channel):n("x")??n("y");if(!r)throw new ri("Cannot find a resolved quantitative scale for dynamic opacity!",e);const i=_0().domain(t.unitsPerPixel).range(t.values).clamp(!0);return o=>{const s=ec(r.domain())/1e3;return i(s)*o}}else if(Dt(t)){const n=e.paramMediator.createExpression(t.expr);return n.addListener(()=>e.context.animator.requestRender()),r=>n(null)*r}}return n=>n}const wv=e=>!!(e!=null&&e.step),J9={point:VR,rect:NR,rule:WR,link:e9,text:a9};class Qt extends yv{constructor(n,r,i,o,a,s){super(n,r,i,o,a,s);Z(this,Mh);Z(this,Du,void 0);this.spec=n;const u=J9[this.getMarkType()];if(u)this.mark=new u(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.resolve(),le(this,Du,this.paramMediator.allocateSetter("zoomLevel",1)),["x","y"].forEach(l=>{var c;return(c=this.getScaleResolution(l))==null?void 0:c.addEventListener("domain",()=>z(this,Du).call(this,Math.sqrt(this.getZoomLevel())))}),this.needsAxes={x:!0,y:!0},X(this,Mh,N4).call(this)}render(n,r,i={}){super.render(n,r,i),this.isConfiguredVisible()&&(n.pushView(this,r),n.renderMark(this.mark,i),n.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(n){n||(this.resolve("scale"),this.resolve("axis"));const r=this.mark.encoding;for(const[i,o]of Object.entries(r)){if(!an(o))continue;const a=Ji(o.resolutionChannel??i);if(!fl(a)||n=="axis"&&!cl(a))continue;let s=this;for(;(s.getConfiguredOrDefaultResolution(a,n)=="forced"||s.dataParent&&["shared","excluded","forced"].includes(s.dataParent.getConfiguredOrDefaultResolution(a,n)))&&s.getConfiguredOrDefaultResolution(a,n)!="excluded";)s=s.dataParent;if(n=="axis"&&cl(i)&&Aw(a))s.resolutions[n][a]||(s.resolutions[n][a]=new $9(a)),s.resolutions[n][a].pushUnitView({view:this,channel:i,channelDef:o});else if(n=="scale"&&fl(i)){if(!s.resolutions[n][a]){const u=new G9(a);s.resolutions[n][a]=u,u.addEventListener("range",l=>{var c;(c=this.context.glHelper)==null||c.createRangeTexture(l.scaleResolution,!0)})}s.resolutions[n][a].pushUnitView({view:this,channel:i,channelDef:o,dataDomainSource:this.extractDataDomain.bind(this)})}}}getDataAccessor(n){var r;return(r=this.mark.encoders[n])==null?void 0:r.dataAccessor}getFacetAccessor(n){const r=this.getDataAccessor("sample");return r||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}extractDataDomain(n,r){var o;let i=uv(r);return(((o=this.mark.encoders[n])==null?void 0:o.accessors)??[]).filter(a=>a.scaleChannel).forEach(a=>{if(a.constant)i.extend(a({}));else{const s=this.getCollector();s!=null&&s.completed&&s.visitData(u=>i.extend(a(u)))}}),i}getZoomLevel(){const n=r=>{var i;return((i=this.getScaleResolution(r))==null?void 0:i.getZoomLevel())??1};return sa.map(n).reduce((r,i)=>r*i,1)}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0),n.target=this,!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return n=="x"?"shared":"independent"}}Du=new WeakMap,Mh=new WeakSet,N4=function(){for(const[n,r]of this.paramMediator.paramConfigs){if(!("select"in r))continue;const i=r.select;if((Fe(i)?i:i.type)==="point"){let s=-1;const u=this.paramMediator.getSetter(n),l=()=>{var h;const f=this.context.getCurrentHover();return((h=f==null?void 0:f.mark)==null?void 0:h.unitView)===this?f.datum:null},c=!Fe(i)&&"on"in i?i.on:"click";this.addInteractionEventListener(["mouseover","pointerover"].includes(c)?"mousemove":"click",(f,h)=>{const d=l(),p=d?d[ei]:-1;if(p!=s){s=p;const m=gw(l());u(m)}})}}};function*fp(e,t=[]){for(const[n,r]of e.entries())if(r instanceof Map)for(const i of fp(r,[...t,n]))yield i;else yield[[...t,n],r]}const vv=2147483647,eF=xv([vv]);function xv(e){let t=0;for(let n=0,r=e.length;n<r;n++)t=Math.max(t,e[n]);return Math.floor(Math.log2(t)/4)+1}function tF(e){const t=xv(e);let n=Array.from({length:e.length},(o,a)=>a),r=new Array(e.length);const i=new Array(16);for(let o=0;o<t;o++){i.fill(0);const a=o*4,s=Math.pow(16,o),u=l=>{const c=e[n[l]];return o>=eF?c>vv?Math.floor(c/s)%16:0:c>>a&15};for(let l=0;l<e.length;l++)i[u(l)]++;for(let l=1;l<16;l++)i[l]+=i[l-1];for(let l=e.length-1;l>=0;l--)r[--i[u(l)]]=n[l];[n,r]=[r,n]}return n}class Av extends tt{constructor(n){super();Z(this,Fu);Z(this,Mu);Z(this,Pu);Z(this,Ph);Z(this,Sr,[]);Z(this,Ru,Me(ei));Z(this,Co,[]);Z(this,ko,void 0);this.params=n??{type:"collect"},this.observers=[],this.facetBatches=new or([],JSON.stringify),X(this,Fu,jm).call(this)}get behavior(){return W0}reset(){super.reset(),X(this,Fu,jm).call(this)}handle(n){z(this,Sr).push(n)}beginBatch(n){RD(n)&&(le(this,Sr,[]),this.facetBatches.set(Nt(n.facetId),z(this,Sr)))}complete(){var o,a;le(this,Sr,[]);const n=(o=this.params)==null?void 0:o.sort,r=n?n1(n.field,n.order):void 0,i=s=>{r&&s.sort(r)};if((a=this.params.groupby)!=null&&a.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const s=this.facetBatches.get(void 0),u=this.params.groupby.map(c=>Me(c)),l=u.length>1?rc(s,...u):nF(s,u[0]);this.facetBatches.clear();for(const[c,f]of fp(l))this.facetBatches.set(c,f)}for(const s of this.facetBatches.values())i(s);X(this,Ph,O4).call(this),X(this,Mu,$m).call(this),super.complete();for(const s of this.observers)s(this)}repropagate(){for(const n of this.children)n.reset();X(this,Mu,$m).call(this);for(const n of this.children)n.complete()}getData(){switch(X(this,Pu,qm).call(this),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const n=this.facetBatches;return{[Symbol.iterator]:function*(){for(const i of n.values())yield*i}}}}}visitData(n){X(this,Pu,qm).call(this);for(const r of this.facetBatches.values())for(let i=0;i<r.length;i++)n(r[i])}getItemCount(){let n=0;for(const r of this.facetBatches.values())n+=r.length;return n}findDatumByUniqueId(n){if(!z(this,Co).length)return;const r=No(u=>u.start).right,i=z(this,Ru),o=No(u=>i(a(u))).left,a=u=>{const l=r(z(this,ko),u),c=z(this,ko)[l-1];return!c||u>=c.stop?void 0:this.facetBatches.get(c.facetId)[u-c.start]},s=o(z(this,Co),n);if(s>=0){const u=a(z(this,Co)[s]);if(u&&i(u)===n)return u}}}Sr=new WeakMap,Ru=new WeakMap,Co=new WeakMap,ko=new WeakMap,Fu=new WeakSet,jm=function(){le(this,Sr,[]),this.facetBatches.clear(),this.facetBatches.set(void 0,z(this,Sr))},Mu=new WeakSet,$m=function(){if(this.children.length)for(const[n,r]of this.facetBatches.entries()){if(n){const i={type:"facet",facetId:n};for(const o of this.children)o.beginBatch(i)}for(let i=0,o=r.length;i<o;i++)this._propagate(r[i])}},Pu=new WeakSet,qm=function(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")},Ph=new WeakSet,O4=function(){var a;le(this,ko,[]);const n=(a=this.facetBatches.values().next().value)==null?void 0:a[0];if(n==null||!(ei in n))return;let r=0;const i=[],o=z(this,Ru);for(const[s,u]of this.facetBatches){z(this,ko).push({start:r,stop:r+u.length,facetId:s}),r+=u.length;for(let l=0,c=u.length;l<c;l++)i.push(o(u[l]))}le(this,Co,tF(i))};function nF(e,t){const n=new Map;for(let r=0,i=e.length;r<i;r++){const o=e[r],a=t(o);let s=n.get(a);s||(s=[],n.set(a,s)),s.push(o)}return n}class Ef{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(t,n){let r=this.length++;for(;r>0;){const i=r-1>>1,o=this.values[i];if(n>=o)break;this.ids[r]=this.ids[i],this.values[r]=o,r=i}this.ids[r]=t,this.values[r]=n}pop(){if(this.length===0)return;const t=this.ids[0];if(this.length--,this.length>0){const n=this.ids[0]=this.ids[this.length],r=this.values[0]=this.values[this.length],i=this.length>>1;let o=0;for(;o<i;){let a=(o<<1)+1;const s=a+1;let u=this.ids[a],l=this.values[a];const c=this.values[s];if(s<this.length&&c<l&&(a=s,u=this.ids[s],l=c),l>=r)break;this.ids[o]=u,this.values[o]=l,o=a}this.ids[o]=n,this.values[o]=r}return t}peek(){if(this.length!==0)return this.ids[0]}peekValue(){if(this.length!==0)return this.values[0]}shrink(){this.ids.length=this.values.length=this.length}}class rF extends tt{get behavior(){return jn}constructor(t){super(),this.params=t,this.startAccessor=Me(t.start),this.endAccessor=Me(t.end),this.chromAccessor=t.chrom?Me(t.chrom):n=>{},this.weightAccessor=t.weight?Me(t.weight):n=>1,this.as={coverage:t.as??"coverage",start:t.asStart??t.start,end:t.asEnd??t.end,chrom:t.asChrom??t.chrom},this.createSegment=new Function("start","end","coverage","chrom","return {"+Object.entries(this.as).filter(([n,r])=>r).map(([n,r])=>`${JSON.stringify(r)}: ${n}`).join(", ")+"};"),this.ends=new Ef}reset(){super.reset(),this.initialize()}initialize(){const t=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,o=this.endAccessor,a=this.chromAccessor,s=this.weightAccessor;let u,l,c,f=0,h=NaN;const d=this.ends;d.clear();const p=w=>{this._propagate(w),u=null},m=(w,A,S)=>{if(w==A)return;let _=!1;u&&(u[t]===S?(u[n]=A,_=!0):u[t]!=0&&p(u)),_||(u=this.createSegment(w,A,S,c))},y=()=>{let w=0;for(;(w=d.peekValue())!==void 0;)m(h,w,f),h=w,f-=d.pop();h=NaN,u&&p(u)};this.handle=w=>{const A=i(w);let S=0;for(;(S=d.peekValue())!==void 0&&S<A;)m(h,S,f),h=S,f-=d.pop();if(r){let k=a(w);k!==l&&(y(),c=k,l=c)}isNaN(h)||m(h,A,f),h=A;const _=s(w);f+=_,d.push(_,o(w))},this.complete=()=>{y(),super.complete()},this.beginBatch=w=>{y(),l=null,super.beginBatch(w)}}}function iF(e,t,n=0,r=e.length){const i=new Ef,o=r-n;let a;for(a=0;a<t&&a<o;a++)i.push(a,e[n+a]);for(;a<o;a++){const l=e[n+a];l>=i.peekValue()&&(i.push(a,l),i.pop())}const s=[];let u;for(;(u=i.pop())!==void 0;)s.push(n+u);return s.reverse()}class oF{constructor(t,n=-1/0,r=1/0){this.maxSize=t,this.lowerLimit=n,this.upperLimit=r;const i=this.maxSize*2+1;this.lowerLimits=new Float64Array(i),this.upperLimits=new Float64Array(i),this.lowerChildren=new Int32Array(i),this.upperChildren=new Int32Array(i),this.reset()}reset(){this.lowerLimits.fill(0),this.upperLimits.fill(0),this.lowerChildren.fill(0),this.upperChildren.fill(0),this.n=1,this.lowerLimits[0]=this.lowerLimit,this.upperLimits[0]=this.upperLimit}_findSlot(t,n,r=0){if(t>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const o=this._findSlot(t,n,i);return o>=0?o:this._findSlot(t,n,this.upperChildren[r])}else return r}else return-1}reserve(t,n){if(n-t<=0)throw new Error("Cannot reserve an empty or negative-size slot!");if(this.n+1>this.lowerLimits.length)return!1;const r=this._findSlot(t,n);if(r<0)return!1;const i=this.n++,o=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=t,this.lowerLimits[o]=n,this.upperLimits[o]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=o,!0}}class aF extends tt{get behavior(){return W0}constructor(t,n){if(super(),this.params=t,this._data=[],this.channel=t.channel??"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=Me(this.params.pos),this.posBisector=No(this.posAccessor),this.scoreAccessor=Me(this.params.score),this.widthAccessor=Me(this.params.width),this.laneAccessor=this.params.lane?Me(this.params.lane):i=>0,this.padding=this.params.padding??0,this.reservationMaps=new Map,this.resolution=n.getScaleResolution(this.channel);const r=()=>this._filterAndPropagate();this.schedule=()=>n.context.animator.requestTransition(r),this.resolution.addEventListener("domain",i=>this.schedule()),n._addBroadcastHandler("layoutComputed",()=>this.schedule())}complete(){const t=this.posAccessor;this._data.sort((n,r)=>t(n)-t(r)),this._scores=this._data.map(this.scoreAccessor);for(const n of new Set(this._data.map(this.laneAccessor)))this.reservationMaps.set(n,new oF(200));this.schedule(),super.complete()}_filterAndPropagate(){var a;super.reset();const t=this.resolution.scale,n=(a=this.resolution.members[0].view.coords)==null?void 0:a[this.channel=="x"?"width":"height"];if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=t.domain(),i=70,o=iF(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of o){const u=this._data[s],l=t(this.posAccessor(u))*n,c=this.widthAccessor(u)/2+this.padding;this.reservationMaps.get(this.laneAccessor(u)).reserve(l-c,l+c)&&this._propagate(u)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(t){this._data.push(t)}}class sF extends tt{constructor(t,n){super(n),this.params=t,this.predicate=void 0}initialize(){let t="";if(lF(this.params))t=this.params.expr;else if(uF(this.params))t=mw(this.params);else throw new Error("Invalid filter params: "+JSON.stringify(this.params));this.predicate=this.paramMediator.createExpression(t),this.predicate.addListener(()=>this.repropagate())}handle(t){this.predicate(t)&&this._propagate(t)}}function lF(e){return"expr"in e}function uF(e){return"param"in e}class cF extends tt{get behavior(){return jn}constructor(t){super();const n=t.index;if(t.fields){const r=Nt(t.fields).map(o=>Me(o)),i=Nt(t.as||t.fields);if(r.length!==i.length)throw new Error(`Lengths of "fields" (${r.length}), and "as" (${i.length}) do not match!`);this.handle=o=>{const a=r.map((u,l)=>u(o)??[]),s=a[0].length;for(let u=0;u<s;u++){const l=Object.assign({},o);for(let c=0;c<r.length;c++)l[i[c]]=u<a[c].length?a[c][u]:null;n&&(l[n]=u),this._propagate(l)}}}else this.handle=r=>{for(let i=0;i<r.length;i++){const o=Object.assign({},r[i]);n&&(o[n]=i),this._propagate(o)}}}}const fF="0".charCodeAt(0);function*hF(e,t=","){const n=t.charCodeAt(0);let r=0;for(let i=0;i<e.length;i++){const o=e.charCodeAt(i);o==n?(yield r,r=0):r=r*10+o-fF}yield r}class dF extends tt{get behavior(){return jn}constructor(t){super();const n=Me(t.exons??"exons"),r=Me(t.start??"start"),[i,o]=t.as||["exonStart","exonEnd"];this.handle=a=>{let s=r(a),u=s,l=!0;const c=n(a);for(const f of hF(c)){if(l)u=s+f;else{s=u+f;const h=Object.assign({},a);h[i]=u,h[o]=s,this._propagate(h)}l=!l}}}}class pF extends tt{get behavior(){return jn}constructor(t){super();const n=Nt(t.field).map(o=>Me(o)),r=Nt(t.separator),i=Nt(t.as||t.field);if(n.length!==r.length||n.length!==i.length)throw new Error(`Lengths of "separator" (${r.length}), "fields" (${n.length}), and "as" (${i.length}) do not match!`);this.handle=o=>{if(n.some(u=>!u(o)))return;const a=n.map((u,l)=>u(o).split(r[l]));gF(a,o);const s=a[0].length;for(let u=0;u<s;u++){const l=Object.assign({},o);for(let c=0;c<n.length;c++)l[i[c]]=a[c][u];this._propagate(l)}}}}function gF(e,t){const n=e.map(r=>r.length);if(!n.every(r=>r==n[0]))throw new Error("Mismatching number of elements in the fields to be split: "+JSON.stringify(t))}class mF extends tt{get behavior(){return Jr}constructor(t,n){super(n),this.params=t,this.as=t.as,this.fn=void 0}initialize(){this.fn=this.paramMediator.createExpression(this.params.expr),this.fn.addListener(()=>this.repropagate())}handle(t){t[this.as]=this.fn(t),this._propagate(t)}}class Ev extends tt{get behavior(){return Jr}constructor(t,n){super();const r=t.channel??"x";if(!["x","y"].includes(r))throw new Error("Invalid channel: "+r);const i=n.getScaleResolution(r).getGenome();if(!i)throw new Error("LinearizeGenomicCoordinate transform requires a locus scale!");const o=Me(t.chrom),a=Nt(t.pos).map(p=>Me(p)),s=Nt(t.as);if(a.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const u=Nt(t.offset);let l;if(u.length==0)l=new Array(a.length).fill(0);else if(u.length==1)l=new Array(a.length).fill(u[0]);else if(u.length==a.length)l=u;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(t.offset)}!`);const c=new Function("datum","chromOffset","posAccessors",s.map((p,m)=>`datum[${JSON.stringify(p)}] = chromOffset + +posAccessors[${m}](datum) - ${l[m]};`).join(`
371
+ `));let f,h=0;const d=p=>{if(p!==f){if(h=i.cumulativeChromPositions.get(p),h===void 0)throw new Error("Unknown chromosome/contig: "+p);f=p}return h};this.handle=p=>{c(p,d(o(p)),a),this._propagate(p)}}}const _v={pages:["Lato-Regular.png"],chars:[{id:87,width:53,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:43.491,chnl:15,x:0,y:0,page:0},{id:124,width:17,height:50,xoffset:0,yoffset:-32.193000000000005,xadvance:10.521,chnl:15,x:0,y:42,page:0},{id:40,width:20,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:94,page:0},{id:41,width:19,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:145,page:0},{id:36,width:32,height:49,xoffset:0,yoffset:-34.419000000000004,xadvance:24.360000000000003,chnl:15,x:0,y:196,page:0},{id:125,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:247,page:0},{id:91,width:22,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:297,page:0},{id:93,width:19,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:347,page:0},{id:123,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:397,page:0},{id:106,width:19,height:48,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:0,y:447,page:0},{id:81,width:43,height:47,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:21,y:447,page:0},{id:77,width:45,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:38.997,chnl:15,x:66,y:447,page:0},{id:64,width:43,height:44,xoffset:0,yoffset:-28.539,xadvance:35.133,chnl:15,x:23,y:397,page:0},{id:92,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:68,y:397,page:0},{id:47,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:98,y:397,page:0},{id:109,width:42,height:32,xoffset:0,yoffset:-21.609,xadvance:34.545,chnl:15,x:113,y:447,page:0},{id:119,width:42,height:31,xoffset:0,yoffset:-21.315,xadvance:32.991,chnl:15,x:157,y:447,page:0},{id:42,width:25,height:42,xoffset:0,yoffset:-31.626,xadvance:17.85,chnl:15,x:128,y:397,page:0},{id:37,width:42,height:41,xoffset:0,yoffset:-30.387,xadvance:33.663000000000004,chnl:15,x:155,y:397,page:0},{id:79,width:42,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:199,y:397,page:0},{id:102,width:24,height:41,xoffset:0,yoffset:-30.534000000000002,xadvance:14.721,chnl:15,x:243,y:397,page:0},{id:100,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:269,y:397,page:0},{id:98,width:32,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:302,y:397,page:0},{id:56,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:336,y:397,page:0},{id:38,width:40,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:29.904000000000003,chnl:15,x:370,y:397,page:0},{id:108,width:17,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:9.912,chnl:15,x:412,y:397,page:0},{id:107,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:21.336000000000002,chnl:15,x:431,y:397,page:0},{id:48,width:33,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:464,y:397,page:0},{id:71,width:38,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:30.681,chnl:15,x:21,y:347,page:0},{id:83,width:31,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:22.785,chnl:15,x:61,y:347,page:0},{id:63,width:27,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:18.795,chnl:15,x:94,y:347,page:0},{id:105,width:18,height:41,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:123,y:347,page:0},{id:51,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:143,y:347,page:0},{id:104,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.436,chnl:15,x:177,y:347,page:0},{id:67,width:37,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:28.056,chnl:15,x:210,y:347,page:0},{id:88,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.258000000000003,chnl:15,x:249,y:347,page:0},{id:68,width:40,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:31.941000000000003,chnl:15,x:288,y:347,page:0},{id:70,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:23.751,chnl:15,x:330,y:347,page:0},{id:34,width:23,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:15.561000000000002,chnl:15,x:364,y:347,page:0},{id:72,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:389,y:347,page:0},{id:73,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.760000000000002,chnl:15,x:429,y:347,page:0},{id:74,width:24,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:17.745,chnl:15,x:449,y:347,page:0},{id:75,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.825000000000003,chnl:15,x:24,y:297,page:0},{id:76,width:31,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:21.567,chnl:15,x:475,y:347,page:0},{id:66,width:35,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.153000000000002,chnl:15,x:64,y:297,page:0},{id:78,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:101,y:297,page:0},{id:33,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.298,chnl:15,x:141,y:297,page:0},{id:80,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.221,chnl:15,x:161,y:297,page:0},{id:65,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:197,y:297,page:0},{id:82,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.313000000000002,chnl:15,x:237,y:297,page:0},{id:35,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:275,y:297,page:0},{id:84,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.801000000000002,chnl:15,x:310,y:297,page:0},{id:85,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:30.891000000000002,chnl:15,x:346,y:297,page:0},{id:86,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:385,y:297,page:0},{id:39,width:16,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:8.568000000000001,chnl:15,x:425,y:297,page:0},{id:69,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.255000000000003,chnl:15,x:443,y:297,page:0},{id:89,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.208000000000002,chnl:15,x:23,y:247,page:0},{id:90,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.284000000000002,chnl:15,x:477,y:297,page:0},{id:49,width:31,height:40,xoffset:0,yoffset:-30.156000000000002,xadvance:24.360000000000003,chnl:15,x:61,y:247,page:0},{id:50,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:94,y:247,page:0},{id:57,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:128,y:247,page:0},{id:94,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:162,y:247,page:0},{id:96,width:21,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:16.8,chnl:15,x:196,y:247,page:0},{id:55,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:219,y:247,page:0},{id:54,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:254,y:247,page:0},{id:53,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:289,y:247,page:0},{id:52,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:323,y:247,page:0},{id:103,width:31,height:39,xoffset:0,yoffset:-21.630000000000003,xadvance:21.84,chnl:15,x:358,y:247,page:0},{id:112,width:32,height:39,xoffset:0,yoffset:-21.651,xadvance:23.541,chnl:15,x:391,y:247,page:0},{id:113,width:31,height:39,xoffset:0,yoffset:-21.651,xadvance:23.520000000000003,chnl:15,x:425,y:247,page:0},{id:116,width:25,height:39,xoffset:0,yoffset:-28.182000000000002,xadvance:15.057,chnl:15,x:458,y:247,page:0},{id:121,width:31,height:38,xoffset:0,yoffset:-21.273,xadvance:21.651,chnl:15,x:34,y:196,page:0},{id:59,width:18,height:36,xoffset:0,yoffset:-20.706,xadvance:10.983,chnl:15,x:485,y:247,page:0},{id:43,width:32,height:34,xoffset:0,yoffset:-24.486,xadvance:24.360000000000003,chnl:15,x:67,y:196,page:0},{id:60,width:30,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:101,y:196,page:0},{id:62,width:31,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:133,y:196,page:0},{id:117,width:30,height:32,xoffset:0,yoffset:-21.273,xadvance:23.415000000000003,chnl:15,x:166,y:196,page:0},{id:99,width:29,height:32,xoffset:0,yoffset:-21.609,xadvance:20.055,chnl:15,x:198,y:196,page:0},{id:110,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:23.436,chnl:15,x:229,y:196,page:0},{id:111,width:32,height:32,xoffset:0,yoffset:-21.609,xadvance:23.814,chnl:15,x:262,y:196,page:0},{id:126,width:32,height:26,xoffset:0,yoffset:-16.128,xadvance:24.360000000000003,chnl:15,x:201,y:447,page:0},{id:101,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:22.176000000000002,chnl:15,x:296,y:196,page:0},{id:114,width:25,height:32,xoffset:0,yoffset:-21.651,xadvance:15.288,chnl:15,x:329,y:196,page:0},{id:115,width:27,height:32,xoffset:0,yoffset:-21.609,xadvance:18.186,chnl:15,x:356,y:196,page:0},{id:97,width:28,height:32,xoffset:0,yoffset:-21.651,xadvance:20.874000000000002,chnl:15,x:385,y:196,page:0},{id:118,width:31,height:31,xoffset:0,yoffset:-21.273,xadvance:21.672,chnl:15,x:415,y:196,page:0},{id:61,width:31,height:29,xoffset:0,yoffset:-19.089000000000002,xadvance:24.360000000000003,chnl:15,x:448,y:196,page:0},{id:120,width:30,height:31,xoffset:0,yoffset:-21.273,xadvance:20.916,chnl:15,x:21,y:145,page:0},{id:58,width:18,height:31,xoffset:0,yoffset:-20.706,xadvance:10.5,chnl:15,x:53,y:145,page:0},{id:122,width:28,height:31,xoffset:0,yoffset:-21.273,xadvance:18.984,chnl:15,x:73,y:145,page:0},{id:95,width:28,height:16,xoffset:0,yoffset:0,xadvance:19.278000000000002,chnl:15,x:235,y:447,page:0},{id:45,width:23,height:24,xoffset:0,yoffset:-14.175,xadvance:15.603000000000002,chnl:15,x:481,y:196,page:0},{id:44,width:17,height:21,xoffset:0,yoffset:-4.956,xadvance:9.534,chnl:15,x:103,y:145,page:0},{id:46,width:18,height:15,xoffset:0,yoffset:-4.956,xadvance:9.912,chnl:15,x:0,y:497,page:0},{id:32,width:0,height:0,xoffset:0,yoffset:0,xadvance:10.752,chnl:15,x:20,y:497,page:0}],info:{face:"Lato Regular",size:42,bold:0,italic:0,charset:[" ","!",'"',"#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~"],unicode:1,stretchH:100,smooth:1,aa:1,padding:[0,0,0,0],spacing:[2,2]},common:{lineHeight:50.400000000000006,base:41.454,scaleW:512,scaleH:512,pages:1,packed:0,alphaChnl:0,redChnl:0,greenChnl:0,blueChnl:0},kernings:[]};class bF extends tt{get behavior(){return Jr}constructor(t){super();const n=tp(_v),r=Me(t.field),i=t.as,o=t.fontSize;this.handle=a=>{const s=r(a);s!==void 0?a[i]=n.measureWidth(s,o):a[i]=0,this._propagate(a)}}}const yF=65536;class wF extends tt{get behavior(){return Jr}constructor(t){super(),this.params=t}reset(){super.reset(),this.initialize()}initialize(){const t=this.params,n=t.as||"lane",r=Tt(t.spacing)?t.spacing:1,i=Me(t.start),o=Me(t.end);if(!t.preference!=!t.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(t.preference){const a=new Float64Array(yF),s=Me(t.preference),u=t.preferredOrder;let l=1/0;this.handle=c=>{const f=i(c);f<l&&a.fill(-1/0),l=f;const h=u.indexOf(s(c));let d=-1;if(h>=0&&a[h]<f)d=h;else{const p=i(c);for(d=0;d<a.length&&!(a[d]<p);d++);if(d>=a.length)throw new Error("Out of lanes!")}a[d]=o(c)+r,c[n]=d,this._propagate(c)}}else{const a=new Ef,s=new Ef;let u=-1/0,l=0;this.handle=c=>{const f=i(c);for(;a.length&&(a.peekValue()<=f||f<u);){const d=a.pop();s.push(d,d)}u=f;let h=s.pop();h===void 0&&(h=l++),c[n]=h,this._propagate(c),a.push(h,o(c)+r)}}}}class vF extends tt{get behavior(){return jn}constructor(t){if(super(),t.as&&t.as.length!=t.fields.length)throw new Error('"fields" and "as" have unequal lengths!');const n=t.fields.map(i=>Me(i)),r=t.as?t.as:n.map(Po);this.handle=i=>{const o={};for(let a=0;a<n.length;a++)o[r[a]]=n[a](i);this._propagate(o)}}}class xF extends tt{get behavior(){return Jr}constructor(t){super();const n=new RegExp(t.regex),r=typeof t.as=="string"?[t.as]:t.as,i=Me(t.field);this.handle=o=>{const a=i(o);if(Fe(a)){const s=a.match(n);if(s){if(s.length-1!=r.length)throw new Error('The number of RegEx groups and the length of "as" do not match!');for(let u=0;u<r.length;u++)o[r[u]]=s[u+1]}else if(t.skipInvalidInput)for(let u=0;u<r.length;u++)o[r[u]]=void 0;else throw new Error(`"${a}" does not match the given regex: ${n.toString()}`)}else if(!t.skipInvalidInput)throw new Error(`Trying to match a non-string field. Encountered type: ${typeof a}, field content: "${a}".`);this._propagate(o)}}}class AF extends tt{get behavior(){return jn}constructor(t){super();const n=Nt(t.columnRegex).map(h=>new RegExp(h)),r=Nt(t.asValue);if(n.length!=r.length)throw new Error('Lengths of "columnRegex" and "as" are not equal!');const i=t.skipRegex?new RegExp(t.skipRegex):void 0,o=t.asKey||"sample";let a,s,u;const l=h=>{var y;const d=Object.keys(h);for(const w of n)if(!d.some(A=>w.test(A)))throw new Error(`No columns matching the regex ${w.toString()} found in the data!`);const p=new Map;for(const[w,A]of n.entries())for(const S of d){const _=(y=A.exec(S))==null?void 0:y[1];if(_!==void 0){let k=p.get(_);k||(k=[],p.set(_,k)),k[w]=S}}a=[...p.entries()],s=d.filter(w=>!n.some(A=>A.test(w))&&!(i&&i.test(w)));const m=[...s.map(w=>JSON.stringify(w)+": datum["+JSON.stringify(w)+"]"),JSON.stringify(o)+": sampleId",...r.map((w,A)=>JSON.stringify(w)+`: datum[attrs[${A}]]`)];u=new Function("datum","sampleId","attrs",`return {
359
372
  `+m.join(`,
360
373
  `)+`
361
- };`)},c=h=>{o||l(h);for(let d=0;d<o.length;d++){const[p,m]=o[d],y=u(h,p,m);this._propagate(y)}},f=h=>{l(h),c(h),this.handle=c};this.handle=f,this.beginBatch=h=>{Bw(h)&&(this.handle=f),super.beginBatch(h)}}}class G9 extends tt{get behavior(){return Kr}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const t=this.params,n=t.as||["y0","y1"],r=t.sort?Wm(t.sort.field,t.sort.order):void 0,i=t.field?Me(t.field):()=>1,a=t.groupby.map(c=>Me(c)),o=pS(this.buffer,c=>a.map(f=>f(c)).join()).map(c=>c[1]);let s=c=>!0;if(t.baseField){const c=Me(t.baseField);s=f=>c(f)!==null}let u,l;switch(t.offset){case"normalize":u=(c,f)=>c/f,l=(c,f)=>Ku(c,f);break;case"center":u=(c,f)=>c-f/2,l=(c,f)=>Ku(c,f);break;case"information":{const c=Math.log2(t.cardinality??4);u=(f,h)=>f/h,l=(f,h)=>{const p=Ku(f,x=>+!s(x)),m=Ku(f,h),y=m-p;let w=0;for(let x=0;x<f.length;x++){const S=f[x];if(s(S)){const _=h(S)/y;w-=_*Math.log2(_)}}return y/(c-(w+0))*(y/m)}}break;default:u=(c,f)=>c,l=(c,f)=>1}for(const c of o){r&&c.sort(r);const f=l(c,i);let h=0;for(const d of c){const p=h+i(d);s(d)&&(d[n[0]]=u(h,f),d[n[1]]=u(p,f),this._propagate(d),h=p)}}super.complete()}}class H9 extends tt{get behavior(){return $n}constructor(t){super();const n=Me(t.field??"sequence"),[r,i]=t.as??["pos","sequence"];this.handle=a=>{const o=Object.assign({},a,{[i]:"",[r]:0}),s=n(a);for(let u=0;u<s.length;u++){const l=Object.assign({},o);l[r]=u,l[i]=s.charAt(u),this._propagate(l)}}}}class V9 extends tt{get behavior(){return $n}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const n=this.params.groupby,r=n.map(a=>Me(a)),i=Yu(this.buffer,...r);for(const[a,o]of tp(i)){const s={count:o.length};for(let u=0;u<n.length;u++)s[n[u]]=a[u];this._propagate(s)}super.complete()}}const j9="_uniqueId",av=1e4,ov=[null];class sv extends tt{get behavior(){return Kr}constructor(t){super(),this.params=t,this.as=t.as??j9,this._blocks=[],this._usedBlocks=0,this._id=-1}initialize(){}reset(){super.reset(),this._usedBlocks=0,this._id=-1}handle(t){t[this.as]=this._nextId(),this._propagate(t)}_nextId(){return++this._id%av==0&&(this._id=this._getBlock()*av),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const t=ov.length;return ov[t]=this,this._blocks.push(t),this._usedBlocks++,t}}const $9={aggregate:V9,collect:nv,coverage:E9,filterScoredLabels:C9,filter:k9,flatten:T9,flattenCompressedExons:D9,flattenDelimited:R9,flattenSequence:H9,formula:M9,identifier:sv,linearizeGenomicCoordinate:rv,measureText:P9,pileup:N9,project:O9,regexExtract:z9,regexFold:U9,sample:Dw,stack:G9};function q9(e,t){const n=$9[e.type];if(n)return new n(e,t);throw new Error("Unknown transform: "+e.type)}function lv(e){if(!fv(e)&&!cv(e))return;const t={...e.format};if(t.type??(t.type=cv(e)&&W9(Yt(e.url))),t.parse??(t.parse="auto"),!t.type)throw new Error("Format for the data source was not defined and it could not be inferred: "+JSON.stringify(e));return t}function W9(e){var t;if(Array.isArray(e)&&(e=e[0]),e)return(t=e.match(/\.(csv|tsv|json)/))==null?void 0:t[1]}const uv=e=>typeof e!="object"?Z9:Y9,Z9=e=>({data:e}),Y9=e=>e;function cv(e){return"url"in e}class hl extends tt{constructor(n){super();Pt(this,"view");this.view=n}get identifier(){}setLoadingStatus(n,r){this.view.context.setDataLoadingStatus(this.view,n,r)}get paramMediator(){return this.view.paramMediator}handle(n){throw new Error("Source does not handle incoming data!")}async load(){}repropagate(){this.load()}}function fv(e){return"values"in e}class Q9 extends hl{constructor(t,n){var r;if(super(n),this.params=t,typeof t.values=="string"&&!((r=t==null?void 0:t.format)!=null&&r.type))throw new Error("Data format type (csv, dsv, ...) must be specified if a string is provided!")}loadSynchronously(){const t=this.params.values;let n=[],r=i=>i;if(Array.isArray(t))t.length>0&&(n=t,r=uv(t[0]));else if(typeof t=="object")n=[t];else if(typeof t=="string")n=j1(t,lv(this.params));else throw new Error('"values" in data configuration is not an array, object, or a string!');this.reset(),this.beginBatch({type:"file"});for(const i of n)this._propagate(r(i));this.complete()}async load(){this.loadSynchronously()}}function X9(e){return"url"in e}class K9 extends hl{constructor(t,n){super(n),this.params=Oc(n.paramMediator,t,()=>this.load()),this.baseUrl=n==null?void 0:n.getBaseUrl()}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const t=Yt(this.params.url),n=Array.isArray(t)?t:[t];if(n.length===0||!n[0]){this.reset(),this.complete();return}const r=async a=>cc({baseURL:this.baseUrl}).load(a).catch(o=>{throw new Error(`${a}: ${o.message}`)}),i=(a,o)=>{try{const s=j1(a,lv(this.params));this.beginBatch({type:"file",url:o});for(const u of s)this._propagate(u)}catch(s){throw new Error(`Cannot parse: ${o}: ${s.message}`)}};this.setLoadingStatus("loading"),this.reset();try{await Promise.all(n.map(a=>r(a).then(i))),this.setLoadingStatus("complete")}catch(a){this.setLoadingStatus("error",a.message)}this.complete()}}function J9(e){return"sequence"in e}class eF extends hl{constructor(t,n){if(super(n),this.sequence=Oc(n.paramMediator,t.sequence,()=>this.loadSynchronously()),!("start"in this.sequence))throw new Error("'start' is missing from sequence parameters!");if(!("stop"in this.sequence))throw new Error("'stop' is missing from sequence parameters!")}loadSynchronously(){const t=Yt(this.sequence.as)??"data",n=Yt(this.sequence.start)??0,r=Yt(this.sequence.step)??1,i=Yt(this.sequence.stop);this.reset(),this.beginBatch({type:"file"});for(let a=n;a<i;a+=r)this._propagate({[t]:a});this.complete()}async load(){this.loadSynchronously()}}class np extends hl{constructor(n,r){super(n);Pt(this,"initializedPromise",Promise.resolve());if(r){if(r!=="x"&&r!=="y")throw new Error(`Invalid channel specified for the lazy data source: ${r}. Must be either "x" or "y"`)}else throw new Error('No channel has been specified for the lazy data source. Must be either "x" or "y".');if(this.channel=r,this.scaleResolution=this.view.getScaleResolution(r),!this.scaleResolution){const a=[`The lazy data source cannot find a resolved scale for channel "${r}".`];throw this.view instanceof Xt||a.push('Make sure the view has a "shared" scale resolution as it is not a unit view.'),new Error(a.join(" "))}const i=()=>{this.view.isVisible()&&this.onDomainChanged(this.scaleResolution.getDomain(),this.scaleResolution.getComplexDomain())};this.scaleResolution.addEventListener("domain",i),this.view.context.addBroadcastListener("layoutComputed",i)}getAxisLength(){const n=this.scaleResolution.members.map(r=>{var i;return(i=r.view.coords)==null?void 0:i[this.channel==="x"?"width":"height"]}).filter(r=>r>0);return n.length?n.reduce((r,i)=>Math.min(r,i),1e4):0}get genome(){return this.scaleResolution.getGenome()}onDomainChanged(n,r){}requestRender(){this.view.context.animator.requestRender()}async load(){this.reset(),this.complete()}publishData(n){this.reset(),this.beginBatch({type:"file"});for(const r of n)for(const i of r)this._propagate(i);this.complete(),X0(this.view)}}class tF extends np{constructor(n,r){const i={axis:{},...n};super(r,i.channel);Pt(this,"ticks",[]);this.params=n}onDomainChanged(){const n=this.scaleResolution.scale,r=this.params.axis,i=this.getAxisLength(),a=l=>25+60*Eb(100,700,l),o=Tt(r.tickCount)?r.tickCount:Math.round(i/a(i)),s=Fw(n,o,r.tickMinStep),u=r.values?Mw(n,r.values,s):DR(n,s);if(!gd(u,this.ticks)){this.ticks=u;const l=FR(n,o,r.format);this.publishData([u.map(c=>({value:c,label:l(c)}))])}}}class nF extends np{constructor(t,n){super(n,t.channel)}async load(){this.publishData([this.genome.chromosomes])}}function dl(e,t){return!t||/^(data:|([A-Za-z]+:)?\/\/)/.test(e)||e.startsWith("/")?e:(t.endsWith("/")||(t+="/"),t+e)}function yf(e,t,n=!0){let r,i=o=>{};return function(...s){return new Promise((u,l)=>{const c=()=>{clearTimeout(r),i=f=>{},u(e(...s))};n&&i("debounced"),clearTimeout(r),i=l,r=window.setTimeout(c,typeof t=="function"?t():t)})}}class pl extends np{constructor(){super(...arguments);Y(this,$o,new AbortController);Y(this,qo,[0,0]);Y(this,Wo,[0,0]);Y(this,Cu,0);Pt(this,"params")}setupDebouncing(n){const r=()=>Yt(n.debounce),i=n.debounceMode;if(i=="domain")this.onDomainChanged=yf(this.onDomainChanged.bind(this),r,!1);else if(i=="window")this.loadInterval=yf(this.loadInterval.bind(this),r,!1);else throw new Error("Invalid debounceMode: "+i)}onDomainChanged(n){var i;de(this,Wo,n);const r=Yt((i=this.params)==null?void 0:i.windowSize)??-1;n[1]-n[0]>r||this.callIfWindowsChanged(n,r,async a=>{await this.initializedPromise,this.loadInterval(a)})}reloadLastDomain(){const n=G(this,Wo);de(this,Wo,[0,0]),de(this,qo,[0,0]),this.onDomainChanged(n)}async loadInterval(n){}async discretizeAndLoad(n,r){G(this,$o).abort(),this.setLoadingStatus("loading"),de(this,$o,new AbortController);const i=G(this,$o).signal,a=this.genome.continuousToDiscreteChromosomeIntervals(n);try{const o=await Promise.all(a.map(async s=>r(s,i)));if(!i.aborted)return this.setLoadingStatus("complete"),o}catch(o){if(!i.aborted)throw this.setLoadingStatus("error",o.message),o}}callIfWindowsChanged(n,r,i){const a=[Math.max(Math.floor(n[0]/r)*r,0),Math.min(Math.ceil(n[1]/r)*r,this.genome.totalSize)],o=G(this,qo);(r!==G(this,Cu)||a[0]<o[0]||a[1]>o[1])&&(de(this,qo,a),de(this,Cu,r),i(a))}}$o=new WeakMap,qo=new WeakMap,Wo=new WeakMap,Cu=new WeakMap;class rF extends pl{constructor(t,n){const r={channel:"x",windowSize:7e3,debounce:200,debounceMode:"window",...t};if(super(n,r.channel),this.params=r,!this.params.url)throw new Error("No URL provided for IndexedFastaSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(i=>{Promise.all([Promise.resolve().then(()=>zv),Promise.resolve().then(()=>ZP),Promise.resolve().then(()=>yl)]).then(([{Buffer:a},{IndexedFasta:o},{RemoteFile:s}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=a));const u=l=>new s(dl(l,this.view.getBaseUrl()));this.fasta=new o({fasta:u(this.params.url),fai:u(this.params.indexUrl??this.params.url+".fai")}),i()})})}async loadInterval(t){const n=await this.discretizeAndLoad(t,async(r,i)=>this.fasta.getSequence(r.chrom,r.startPos,r.endPos,{signal:i}).then(a=>({chrom:r.chrom,start:r.startPos,sequence:a})));n&&this.publishData([n])}}class iF extends pl{constructor(n,r){const i={pixelsPerBin:2,channel:"x",debounce:200,debounceMode:"window",...n},a=Oc(r.paramMediator,i,o=>{o.includes("url")?K(this,ku,Om).call(this).then(()=>this.reloadLastDomain()):o.includes("pixelsPerBin")&&this.reloadLastDomain()});super(r,a.channel);Y(this,ku);Y(this,Zo,[]);Y(this,Yo,void 0);if(this.params=a,!this.params.url)throw new Error("No URL provided for BigWigSource");this.setupDebouncing(this.params),K(this,ku,Om).call(this)}async onDomainChanged(n){await this.initializedPromise;const r=this.getAxisLength()||700,i=aF(n,r,G(this,Zo)),a=Math.max(i*r,5e3);this.callIfWindowsChanged(n,a,o=>this.loadInterval(o,i))}async loadInterval(n,r){const i=.5/r/Yt(this.params.pixelsPerBin),a=await this.discretizeAndLoad(n,(o,s)=>G(this,Yo).getFeatures(o.chrom,o.startPos,o.endPos,{scale:i,signal:s}).then(u=>u.map(l=>({chrom:o.chrom,start:l.start,end:l.end,score:l.score}))));a&&this.publishData(a)}}Zo=new WeakMap,Yo=new WeakMap,ku=new WeakSet,Om=function(){return this.initializedPromise=new Promise((n,r)=>{Promise.all([Promise.resolve().then(()=>NE),Promise.resolve().then(()=>yl)]).then(([{BigWig:i},{RemoteFile:a}])=>{de(this,Yo,new i({filehandle:new a(dl(Yt(this.params.url),this.view.getBaseUrl()))})),this.setLoadingStatus("loading"),G(this,Yo).getHeader().then(o=>{de(this,Zo,o.zoomLevels.map(s=>s.reductionLevel).reverse()),G(this,Zo).push(1),this.setLoadingStatus("complete"),n()}).catch(o=>{this.load(),this.setLoadingStatus("error",`${Yt(this.params.url)}: ${o.message}`),r(o)})})}),this.initializedPromise};function aF(e,t,n){const r=(e[1]-e[0])/t;return n.find(i=>i<r)??n.at(-1)}class oF extends pl{constructor(n,r){const i={channel:"x",windowSize:1e6,debounce:200,debounceMode:"window",...n},a=Oc(r.paramMediator,i,o=>{o.includes("url")?K(this,Tu,zm).call(this).then(()=>this.reloadLastDomain()):o.includes("windowSize")&&this.reloadLastDomain()});super(r,a.channel);Y(this,Tu);Pt(this,"parser");Pt(this,"bbi");Pt(this,"parseLine");if(this.params=a,!this.params.url)throw new Error("No URL provided for BigBedSource");this.setupDebouncing(this.params),K(this,Tu,zm).call(this)}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,a)=>this.bbi.getFeatures(i.chrom,i.startPos,i.endPos,{signal:a}).then(o=>o.map(s=>this.parseLine(i.chrom,s))));r&&this.publishData(r)}}Tu=new WeakSet,zm=function(){return this.initializedPromise=new Promise((n,r)=>{Promise.all([Promise.resolve().then(()=>Vz),Promise.resolve().then(()=>NE),Promise.resolve().then(()=>yl)]).then(([i,{BigBed:a},{RemoteFile:o}])=>{const s=i.default;this.bbi=new a({filehandle:new o(dl(Yt(this.params.url),this.view.getBaseUrl()))}),this.setLoadingStatus("loading"),this.bbi.getHeader().then(async u=>{this.parser=new s({autoSql:u.autoSql});try{const l=sF(this.parser);this.parseLine=(c,f)=>l(c,f.start,f.end,f.rest)}catch{this.parseLine=(c,f)=>this.parser.parseLine(`${c} ${f.start} ${f.end} ${f.rest}`)}this.setLoadingStatus("complete"),n()}).catch(u=>{this.load(),this.setLoadingStatus("error",`${Yt(this.params.url)}: ${u.message}`),r(u)})})}),this.initializedPromise};function sF(e){const t=e.autoSql.fields.filter(x=>x.type).slice(3);let n=0,r="",i=0,a={};const o=" ",s=o.charCodeAt(0),u="0".charCodeAt(0),l="-".charCodeAt(0);function c(){let x=r.indexOf(o,n);x<0&&(x=i);const S=r.substring(n,x);return n=x+1,S}function f(){let x=0,S=r.charCodeAt(n),_=1;S===l&&(_=-1,n++,S=r.charCodeAt(n));do{if(S===s){n++;break}x=x*10+S-u,S=r.charCodeAt(++n)}while(n<i);return x*_}const h=t.map(x=>`${JSON.stringify(x.name)}: ${x.isNumeric?"0":"emptyString"}`),d=new Function(`
374
+ };`)},c=h=>{a||l(h);for(let d=0;d<a.length;d++){const[p,m]=a[d],y=u(h,p,m);this._propagate(y)}},f=h=>{l(h),c(h),this.handle=c};this.handle=f,this.beginBatch=h=>{hw(h)&&(this.handle=f),super.beginBatch(h)}}}class EF extends tt{get behavior(){return Jr}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const t=this.params,n=t.as||["y0","y1"],r=t.sort?n1(t.sort.field,t.sort.order):void 0,i=t.field?Me(t.field):()=>1,o=t.groupby.map(c=>Me(c)),a=FS(this.buffer,c=>o.map(f=>f(c)).join()).map(c=>c[1]);let s=c=>!0;if(t.baseField){const c=Me(t.baseField);s=f=>c(f)!==null}let u,l;switch(t.offset){case"normalize":u=(c,f)=>c/f,l=(c,f)=>ac(c,f);break;case"center":u=(c,f)=>c-f/2,l=(c,f)=>ac(c,f);break;case"information":{const c=Math.log2(t.cardinality??4);u=(f,h)=>f/h,l=(f,h)=>{const p=ac(f,A=>+!s(A)),m=ac(f,h),y=m-p;let w=0;for(let A=0;A<f.length;A++){const S=f[A];if(s(S)){const _=h(S)/y;w-=_*Math.log2(_)}}return y/(c-(w+0))*(y/m)}}break;default:u=(c,f)=>c,l=(c,f)=>1}for(const c of a){r&&c.sort(r);const f=l(c,i);let h=0;for(const d of c){const p=h+i(d);s(d)&&(d[n[0]]=u(h,f),d[n[1]]=u(p,f),this._propagate(d),h=p)}}super.complete()}}class _F extends tt{get behavior(){return jn}constructor(t){super();const n=Me(t.field??"sequence"),[r,i]=t.as??["pos","sequence"];this.handle=o=>{const a=Object.assign({},o,{[i]:"",[r]:0}),s=n(o);for(let u=0;u<s.length;u++){const l=Object.assign({},a);l[r]=u,l[i]=s.charAt(u),this._propagate(l)}}}}class SF extends tt{get behavior(){return jn}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const n=this.params.groupby,r=n.map(o=>Me(o)),i=rc(this.buffer,...r);for(const[o,a]of fp(i)){const s={count:a.length};for(let u=0;u<n.length;u++)s[n[u]]=o[u];this._propagate(s)}super.complete()}}const CF={aggregate:SF,collect:Av,coverage:rF,filterScoredLabels:aF,filter:sF,flatten:cF,flattenCompressedExons:dF,flattenDelimited:pF,flattenSequence:_F,formula:mF,identifier:Z0,linearizeGenomicCoordinate:Ev,measureText:bF,pileup:wF,project:vF,regexExtract:xF,regexFold:AF,sample:Yw,stack:EF};function kF(e,t){const n=CF[e.type];if(n)return new n(e,t);throw new Error("Unknown transform: "+e.type)}function Sv(e){if(!Tv(e)&&!kv(e))return;const t={...e.format};if(t.type??(t.type=kv(e)&&TF(Yt(e.url))),t.parse??(t.parse="auto"),!t.type)throw new Error("Format for the data source was not defined and it could not be inferred: "+JSON.stringify(e));return t}function TF(e){var t;if(Array.isArray(e)&&(e=e[0]),e)return(t=e.match(/\.(csv|tsv|json)/))==null?void 0:t[1]}const Cv=e=>typeof e!="object"?IF:BF,IF=e=>({data:e}),BF=e=>e;function kv(e){return"url"in e}class ca extends tt{constructor(n){super();Pt(this,"view");this.view=n}get identifier(){}setLoadingStatus(n,r){this.view.context.setDataLoadingStatus(this.view,n,r)}get paramMediator(){return this.view.paramMediator}handle(n){throw new Error("Source does not handle incoming data!")}async load(){}repropagate(){this.load()}}function Tv(e){return"values"in e}class DF extends ca{constructor(t,n){var r;if(super(n),this.params=t,typeof t.values=="string"&&!((r=t==null?void 0:t.format)!=null&&r.type))throw new Error("Data format type (csv, dsv, ...) must be specified if a string is provided!")}loadSynchronously(){const t=this.params.values;let n=[],r=i=>i;if(Array.isArray(t))t.length>0&&(n=t,r=Cv(t[0]));else if(typeof t=="object")n=[t];else if(typeof t=="string")n=J1(t,Sv(this.params));else throw new Error('"values" in data configuration is not an array, object, or a string!');this.reset(),this.beginBatch({type:"file"});for(const i of n)this._propagate(r(i));this.complete()}async load(){this.loadSynchronously()}}function RF(e){return"url"in e}class FF extends ca{constructor(t,n){super(n),this.params=pf(n.paramMediator,t,()=>this.load()),this.baseUrl=n==null?void 0:n.getBaseUrl()}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const t=Yt(this.params.url),n=Array.isArray(t)?t:[t];if(n.length===0||!n[0]){this.reset(),this.complete();return}const r=async o=>yc({baseURL:this.baseUrl}).load(o).catch(a=>{throw new Error(`${o}: ${a.message}`)}),i=(o,a)=>{try{const s=J1(o,Sv(this.params));this.beginBatch({type:"file",url:a});for(const u of s)this._propagate(u)}catch(s){throw new Error(`Cannot parse: ${a}: ${s.message}`)}};this.setLoadingStatus("loading"),this.reset();try{await Promise.all(n.map(o=>r(o).then(i))),this.setLoadingStatus("complete")}catch(o){this.setLoadingStatus("error",o.message)}this.complete()}}function MF(e){return"sequence"in e}class PF extends ca{constructor(t,n){if(super(n),this.sequence=pf(n.paramMediator,t.sequence,()=>this.loadSynchronously()),!("start"in this.sequence))throw new Error("'start' is missing from sequence parameters!");if(!("stop"in this.sequence))throw new Error("'stop' is missing from sequence parameters!")}loadSynchronously(){const t=Yt(this.sequence.as)??"data",n=Yt(this.sequence.start)??0,r=Yt(this.sequence.step)??1,i=Yt(this.sequence.stop);this.reset(),this.beginBatch({type:"file"});for(let o=n;o<i;o+=r)this._propagate({[t]:o});this.complete()}async load(){this.loadSynchronously()}}class hp extends ca{constructor(n,r){super(n);Pt(this,"initializedPromise",Promise.resolve());if(r){if(r!=="x"&&r!=="y")throw new Error(`Invalid channel specified for the lazy data source: ${r}. Must be either "x" or "y"`)}else throw new Error('No channel has been specified for the lazy data source. Must be either "x" or "y".');if(this.channel=r,this.scaleResolution=this.view.getScaleResolution(r),!this.scaleResolution){const o=[`The lazy data source cannot find a resolved scale for channel "${r}".`];throw this.view instanceof Qt||o.push('Make sure the view has a "shared" scale resolution as it is not a unit view.'),new Error(o.join(" "))}const i=()=>{this.view.isVisible()&&this.onDomainChanged(this.scaleResolution.getDomain(),this.scaleResolution.getComplexDomain())};this.scaleResolution.addEventListener("domain",i),this.view.context.addBroadcastListener("layoutComputed",i)}getAxisLength(){const n=this.scaleResolution.members.map(r=>{var i;return(i=r.view.coords)==null?void 0:i[this.channel==="x"?"width":"height"]}).filter(r=>r>0);return n.length?n.reduce((r,i)=>Math.min(r,i),1e4):0}get genome(){return this.scaleResolution.getGenome()}onDomainChanged(n,r){}requestRender(){this.view.context.animator.requestRender()}async load(){this.reset(),this.complete()}publishData(n){this.reset(),this.beginBatch({type:"file"});for(const r of n)for(const i of r)this._propagate(i);this.complete(),sp(this.view)}}class LF extends hp{constructor(n,r){const i={axis:{},...n};super(r,i.channel);Pt(this,"ticks",[]);this.params=n}onDomainChanged(){const n=this.scaleResolution.scale,r=this.params.axis,i=this.getAxisLength(),o=l=>25+60*fw(100,700,l),a=Tt(r.tickCount)?r.tickCount:Math.round(i/o(i)),s=Xw(n,a,r.tickMinStep),u=r.values?Kw(n,r.values,s):u9(n,s);if(!Sd(u,this.ticks)){this.ticks=u;const l=f9(n,a,r.format);this.publishData([u.map(c=>({value:c,label:l(c)}))])}}}class NF extends hp{constructor(t,n){super(n,t.channel)}async load(){this.publishData([this.genome.chromosomes])}}function xl(e,t){return!t||/^(data:|([A-Za-z]+:)?\/\/)/.test(e)||e.startsWith("/")?e:(t.endsWith("/")||(t+="/"),t+e)}function _f(e,t,n=!0){let r,i=a=>{};return function(...s){return new Promise((u,l)=>{const c=()=>{clearTimeout(r),i=f=>{},u(e(...s))};n&&i("debounced"),clearTimeout(r),i=l,r=window.setTimeout(c,typeof t=="function"?t():t)})}}class Al extends hp{constructor(){super(...arguments);Z(this,Qa,new AbortController);Z(this,Xa,[0,0]);Z(this,Ka,[0,0]);Z(this,Lu,0);Pt(this,"params")}setupDebouncing(n){const r=()=>Yt(n.debounce),i=n.debounceMode;if(i=="domain")this.onDomainChanged=_f(this.onDomainChanged.bind(this),r,!1);else if(i=="window")this.loadInterval=_f(this.loadInterval.bind(this),r,!1);else throw new Error("Invalid debounceMode: "+i)}onDomainChanged(n){var i;le(this,Ka,n);const r=Yt((i=this.params)==null?void 0:i.windowSize)??-1;n[1]-n[0]>r||this.callIfWindowsChanged(n,r,async o=>{await this.initializedPromise,this.loadInterval(o)})}reloadLastDomain(){const n=z(this,Ka);le(this,Ka,[0,0]),le(this,Xa,[0,0]),this.onDomainChanged(n)}async loadInterval(n){}async discretizeAndLoad(n,r){z(this,Qa).abort(),this.setLoadingStatus("loading"),le(this,Qa,new AbortController);const i=z(this,Qa).signal,o=this.genome.continuousToDiscreteChromosomeIntervals(n);try{const a=await Promise.all(o.map(async s=>r(s,i)));if(!i.aborted)return this.setLoadingStatus("complete"),a}catch(a){if(!i.aborted)throw this.setLoadingStatus("error",a.message),a}}callIfWindowsChanged(n,r,i){const o=[Math.max(Math.floor(n[0]/r)*r,0),Math.min(Math.ceil(n[1]/r)*r,this.genome.totalSize)],a=z(this,Xa);(r!==z(this,Lu)||o[0]<a[0]||o[1]>a[1])&&(le(this,Xa,o),le(this,Lu,r),i(o))}}Qa=new WeakMap,Xa=new WeakMap,Ka=new WeakMap,Lu=new WeakMap;class OF extends Al{constructor(t,n){const r={channel:"x",windowSize:7e3,debounce:200,debounceMode:"window",...t};if(super(n,r.channel),this.params=r,!this.params.url)throw new Error("No URL provided for IndexedFastaSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(i=>{Promise.all([Promise.resolve().then(()=>nx),Promise.resolve().then(()=>IL),Promise.resolve().then(()=>Cl)]).then(([{Buffer:o},{IndexedFasta:a},{RemoteFile:s}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=o));const u=l=>new s(xl(l,this.view.getBaseUrl()));this.fasta=new a({fasta:u(this.params.url),fai:u(this.params.indexUrl??this.params.url+".fai")}),i()})})}async loadInterval(t){const n=await this.discretizeAndLoad(t,async(r,i)=>this.fasta.getSequence(r.chrom,r.startPos,r.endPos,{signal:i}).then(o=>({chrom:r.chrom,start:r.startPos,sequence:o})));n&&this.publishData([n])}}class zF extends Al{constructor(n,r){const i={pixelsPerBin:2,channel:"x",debounce:200,debounceMode:"window",...n},o=pf(r.paramMediator,i,a=>{a.includes("url")?X(this,Nu,Wm).call(this).then(()=>this.reloadLastDomain()):a.includes("pixelsPerBin")&&this.reloadLastDomain()});super(r,o.channel);Z(this,Nu);Z(this,Ja,[]);Z(this,es,void 0);if(this.params=o,!this.params.url)throw new Error("No URL provided for BigWigSource");this.setupDebouncing(this.params),X(this,Nu,Wm).call(this)}async onDomainChanged(n){await this.initializedPromise;const r=this.getAxisLength()||700,i=UF(n,r,z(this,Ja)),o=Math.max(i*r,5e3);this.callIfWindowsChanged(n,o,a=>this.loadInterval(a,i))}async loadInterval(n,r){const i=.5/r/Yt(this.params.pixelsPerBin),o=await this.discretizeAndLoad(n,(a,s)=>z(this,es).getFeatures(a.chrom,a.startPos,a.endPos,{scale:i,signal:s}).then(u=>u.map(l=>({chrom:a.chrom,start:l.start,end:l.end,score:l.score}))));o&&this.publishData(o)}}Ja=new WeakMap,es=new WeakMap,Nu=new WeakSet,Wm=function(){return this.initializedPromise=new Promise((n,r)=>{Promise.all([Promise.resolve().then(()=>e_),Promise.resolve().then(()=>Cl)]).then(([{BigWig:i},{RemoteFile:o}])=>{le(this,es,new i({filehandle:new o(xl(Yt(this.params.url),this.view.getBaseUrl()))})),this.setLoadingStatus("loading"),z(this,es).getHeader().then(a=>{le(this,Ja,a.zoomLevels.map(s=>s.reductionLevel).reverse()),z(this,Ja).push(1),this.setLoadingStatus("complete"),n()}).catch(a=>{this.load(),this.setLoadingStatus("error",`${Yt(this.params.url)}: ${a.message}`),r(a)})})}),this.initializedPromise};function UF(e,t,n){const r=(e[1]-e[0])/t;return n.find(i=>i<r)??n.at(-1)}class GF extends Al{constructor(n,r){const i={channel:"x",windowSize:1e6,debounce:200,debounceMode:"window",...n},o=pf(r.paramMediator,i,a=>{a.includes("url")?X(this,Ou,Zm).call(this).then(()=>this.reloadLastDomain()):a.includes("windowSize")&&this.reloadLastDomain()});super(r,o.channel);Z(this,Ou);Pt(this,"parser");Pt(this,"bbi");Pt(this,"parseLine");if(this.params=o,!this.params.url)throw new Error("No URL provided for BigBedSource");this.setupDebouncing(this.params),X(this,Ou,Zm).call(this)}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,o)=>this.bbi.getFeatures(i.chrom,i.startPos,i.endPos,{signal:o}).then(a=>a.map(s=>this.parseLine(i.chrom,s))));r&&this.publishData(r)}}Ou=new WeakSet,Zm=function(){return this.initializedPromise=new Promise((n,r)=>{Promise.all([Promise.resolve().then(()=>_U),Promise.resolve().then(()=>e_),Promise.resolve().then(()=>Cl)]).then(([i,{BigBed:o},{RemoteFile:a}])=>{const s=i.default;this.bbi=new o({filehandle:new a(xl(Yt(this.params.url),this.view.getBaseUrl()))}),this.setLoadingStatus("loading"),this.bbi.getHeader().then(async u=>{this.parser=new s({autoSql:u.autoSql});try{const l=HF(this.parser);this.parseLine=(c,f)=>l(c,f.start,f.end,f.rest)}catch{this.parseLine=(c,f)=>this.parser.parseLine(`${c} ${f.start} ${f.end} ${f.rest}`)}this.setLoadingStatus("complete"),n()}).catch(u=>{this.load(),this.setLoadingStatus("error",`${Yt(this.params.url)}: ${u.message}`),r(u)})})}),this.initializedPromise};function HF(e){const t=e.autoSql.fields.filter(A=>A.type).slice(3);let n=0,r="",i=0,o={};const a=" ",s=a.charCodeAt(0),u="0".charCodeAt(0),l="-".charCodeAt(0);function c(){let A=r.indexOf(a,n);A<0&&(A=i);const S=r.substring(n,A);return n=A+1,S}function f(){let A=0,S=r.charCodeAt(n),_=1;S===l&&(_=-1,n++,S=r.charCodeAt(n));do{if(S===s){n++;break}A=A*10+S-u,S=r.charCodeAt(++n)}while(n<i);return A*_}const h=t.map(A=>`${JSON.stringify(A.name)}: ${A.isNumeric?"0":"emptyString"}`),d=new Function(`
362
375
  const emptyString = "";
363
376
  return function makeTemplate(chrom, chromStart, chromEnd) {
364
377
  return {
@@ -368,79 +381,79 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
368
381
  ${h.join(`,
369
382
  `)}
370
383
  }
371
- };`)(),p=t.map(x=>{const S=x.type,_=JSON.stringify(x.name);if(["ubyte","int","uint"].includes(S))return`d[${_}] = parseInt();`;if(x.isNumeric)return`d[${_}] = Number(parseString());`;if(["char","string","lstring"].includes(S))return`d[${_}] = parseString();`;throw new Error("Unsupported type: "+S)}),m=lF(p,50).map((x,S)=>Function("parseInt","parseString",`return function parseFieldChunk${S}(d) {
372
- ${x.join(`
384
+ };`)(),p=t.map(A=>{const S=A.type,_=JSON.stringify(A.name);if(["ubyte","int","uint"].includes(S))return`d[${_}] = parseInt();`;if(A.isNumeric)return`d[${_}] = Number(parseString());`;if(["char","string","lstring"].includes(S))return`d[${_}] = parseString();`;throw new Error("Unsupported type: "+S)}),m=VF(p,50).map((A,S)=>Function("parseInt","parseString",`return function parseFieldChunk${S}(d) {
385
+ ${A.join(`
373
386
  `)}
374
- }`)(f,c));function y(x){r=x,i=x.length,n=0}function w(x,S,_,T){y(T),a=d(x,S,_);for(const I of m)I(a);return a}return w}function lF(e,t){return Array.from({length:Math.ceil(e.length/t)},(n,r)=>e.slice(r*t,r*t+t))}class uF extends pl{constructor(n,r){const i={channel:"x",windowSize:2e4,debounce:200,debounceMode:"domain",...n};super(r,i.channel);Y(this,Aa,void 0);Pt(this,"chrPrefixFixer",n=>n);if(this.params=i,!this.params.url)throw new Error("No URL provided for BamSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(a=>{Promise.all([Promise.resolve().then(()=>uU),Promise.resolve().then(()=>yl)]).then(([{BamFile:o},{RemoteFile:s}])=>{const u=l=>new s(dl(l,this.view.getBaseUrl()));de(this,Aa,new o({bamFilehandle:u(this.params.url),baiFilehandle:u(this.params.indexUrl??this.params.url+".bai")})),G(this,Aa).getHeader().then(l=>{var h,d;const c=this.genome.hasChrPrefix(),f=(d=(h=G(this,Aa).indexToChr)==null?void 0:h[0])==null?void 0:d.refName.startsWith("chr");c&&!f?this.chrPrefixFixer=p=>p.replace("chr",""):!c&&f&&(this.chrPrefixFixer=p=>"chr"+p),a()})})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,a)=>G(this,Aa).getRecordsForRange(this.chrPrefixFixer(i.chrom),i.startPos,i.endPos,{signal:a}).then(o=>o.map(s=>({chrom:i.chrom,start:s.get("start"),end:s.get("end"),name:s.get("name"),MD:s.get("MD"),cigar:s.get("cigar"),mapq:s.get("mq"),strand:s.get("strand")===1?"+":"-"}))));r&&this.publishData(r)}}Aa=new WeakMap;class cF extends pl{constructor(n,r){const i={channel:"x",windowSize:3e6,debounce:200,debounceMode:"domain",...n};super(r,i.channel);Y(this,Iu,void 0);if(this.params=i,!this.params.url)throw new Error("No URL provided for TabixSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(a=>{Promise.all([Promise.resolve().then(()=>zv),Promise.resolve().then(()=>wU),Promise.resolve().then(()=>yl)]).then(([{Buffer:o},{TabixIndexedFile:s},{RemoteFile:u}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=o));const l=c=>new u(dl(c,this.view.getBaseUrl()));de(this,Iu,new s({filehandle:l(this.params.url),tbiFilehandle:l(this.params.indexUrl??this.params.url+".tbi")})),a()})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,a)=>{const o=[];return await G(this,Iu).getLines(i.chrom,i.startPos,i.endPos,{lineCallback:s=>{o.push(s)},signal:a}),this._parseFeatures(o)});r&&this.publishData(r)}_parseFeatures(n){return[]}}Iu=new WeakMap;class fF extends cF{constructor(n,r){super(n,r);Y(this,Bu,void 0);Promise.resolve().then(()=>rG).then(i=>{de(this,Bu,i.default)})}_parseFeatures(n){var i;return(i=G(this,Bu))==null?void 0:i.parseStringSync(n.join(`
375
- `),{parseSequences:!1})}}Bu=new WeakMap;function hF(e,t){if(fv(e))return new Q9(e,t);if(X9(e))return new K9(e,t);if(J9(e))return new eF(e,t);if(dF(e))return xF(e.lazy,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function dF(e){return"lazy"in e}function pF(e){return(e==null?void 0:e.type)=="axisTicks"}function gF(e){return(e==null?void 0:e.type)=="axisGenome"}function mF(e){return(e==null?void 0:e.type)=="indexedFasta"}function bF(e){return(e==null?void 0:e.type)=="bigwig"}function yF(e){return(e==null?void 0:e.type)=="bigbed"}function wF(e){return(e==null?void 0:e.type)=="bam"}function vF(e){return(e==null?void 0:e.type)=="gff3"}function xF(e,t){if(pF(e))return new tF(e,t);if(gF(e))return new nF(e,t);if(mF(e))return new rF(e,t);if(bF(e))return new iF(e,t);if(yF(e))return new oF(e,t);if(wF(e))return new uF(e,t);if(vF(e))return new fF(e,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function AF(e){const t=Object.keys(e).filter(r=>typeof r=="string"),n=new Function("source","return { "+t.map(r=>JSON.stringify(r)).map(r=>`${r}: source[${r}]`).join(`,
376
- `)+" };");return n.properties=t,n}class wf extends tt{get behavior(){return $n}constructor(){super();const t=n=>{const r=AF(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=t,this.beginBatch=n=>{Bw(n)&&(this.handle=t),super.beginBatch(n)}}}function EF(e){return"name"in e}class hv extends hl{constructor(n,r,i){super(r);Y(this,Du,void 0);this.provider=i,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){de(this,Du,n),this.loadSynchronously()}loadSynchronously(){const n=G(this,Du)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=uv(n[0]));else throw new Error(`Named data "${this.params.name}" is not an array!`);this.reset(),this.beginBatch({type:"file"});for(const i of n)this._propagate(r(i));this.complete()}async load(){this.loadSynchronously()}}Du=new WeakMap;class dv{constructor(){this._dataSourcesByHost=new Map,this._collectorsByHost=new Map,this._observers=new Map}get dataSources(){return[...new Set(this._dataSourcesByHost.values()).values()]}get collectors(){return[...this._collectorsByHost.values()]}addObserver(t,n){let r=this._observers.get(n);r||(r=[],this._observers.set(n,r)),r.push(t)}_relayObserverCallback(t,n){const r=this._observers.get(n);if(r)for(const i of r)i(t)}addDataSource(t,n){this._dataSourcesByHost.set(n,t)}findDataSourceByKey(t){return this._dataSourcesByHost.get(t)}findNamedDataSource(t){let n,r=[];for(const[i,a]of this._dataSourcesByHost.entries())if(a instanceof hv&&t==a.identifier){if(n&&n!==a)throw new Error(`Found multiple instances of named data: ${t}. Data flow optimization is broken (it's a bug).`);n=a,r.push(i)}if(n)return{dataSource:n,hosts:r}}addCollector(t,n){this._collectorsByHost.set(n,t),t.observers.push(r=>this._relayObserverCallback(r,n))}findCollectorByKey(t){return this._collectorsByHost.get(t)}initialize(){for(const t of this.dataSources)t.visit(n=>n.initialize())}}function _F(e,t){const n=new Map,r=[];for(const i of e)n.set(i,{ref:i,children:[]});for(const i of n.values()){const a=n.get(t(i.ref));a?a.children.push(i):r.push(i)}return r}function pv(e,t,n){var i,a;const r=(i=t.preOrder)==null?void 0:i.call(t,e);if(r)return r;for(const o of n(e)){const s=pv(o,t,n);if(s==="stop")return s}return(a=t.postOrder)==null?void 0:a.call(t,e)}function SF(e,t){return pv(e,t,n=>n.children)}function CF(e,t){const n=[];let r;const i=t??new dv,a=[];function o(f,h=()=>{}){if(!r)throw h()||new Error("Cannot append data flow node, no parent exist!");return r.addChild(f),r=f,f}function s(f,h){return o(f,()=>new Error(`Cannot append a transform because no (inherited) data are available! ${h?JSON.stringify(h):""}`))}function u(f,h){for(const d of f){let p;try{p=q9(d,h)}catch(m){throw console.warn(m),new Error(`Cannot initialize "${d.type}" transform: ${m}`)}p.behavior&Kr&&s(new wf),s(p)}}const l=f=>{if(n.push(r),f.spec.data){const h=EF(f.spec.data)?new hv(f.spec.data,f,f.context.getNamedDataFromProvider):hF(f.spec.data,f);r=h,i.addDataSource(h,f)}if(f.spec.transform&&u(f.spec.transform,f),f instanceof Xt){if(!r)throw new Error(`A unit view (${f.getPathString()}) has no (inherited) data source`);const h=kF(f);if(h){a.push(h.rewrite);for(const p of h.transforms)s(p)}f.mark.isPickingParticipant()&&(s(new wf),s(new sv({type:"identifier"})));const d=new nv({type:"collect",groupby:f.getFacetFields(),sort:TF(f,h==null?void 0:h.rewrittenEncoding)});o(d),i.addCollector(d,f)}},c=_F(e.getDescendants(),f=>f.dataParent);for(const f of c)SF(f,{preOrder:h=>l(h.ref),postOrder:()=>{r=n.pop()}});return a.forEach(f=>f()),i}function kF(e){var a;const t=[],n={},r=[];for(const[o,s]of Object.entries(e.getEncoding())){const u=o;Xs(u)&&$2(s)&&r.push({channel:u,chromPosDef:s})}const i=Yu(r,o=>qi(o.channel),o=>o.chromPosDef.chrom);for(const[o,s]of i.entries())for(const[u,l]of s.entries()){const c=[],f=[],h=[];for(const{channel:d,chromPosDef:p}of l){const m=x=>x.replace(/[^A-Za-z0-9_]/g,""),y=["_linearized_",m(p.chrom),"_",m(p.pos)].join(""),w={...((a=e.spec.encoding)==null?void 0:a[d])??e.getEncoding()[d]??{},field:y};delete w.chrom,delete w.pos,!w.type&&p.type&&(w.type=p.type),n[d]=w,c.push(p.pos),h.push(p.offset??0),f.push(y)}t.push(new wf),t.push(new rv({type:"linearizeGenomicCoordinate",channel:o,chrom:u,pos:c,offset:h,as:f},e))}return t.length?{transforms:t,rewrittenEncoding:n,rewrite:()=>{e.spec.encoding={...e.spec.encoding,...n},ZD(e.mark,"encoding")}}:void 0}function TF(e,t){var r;const n={...e.getEncoding(),...t}.x;if(Qt(n)&&(r=e.getScaleResolution("x"))!=null&&r.isZoomable()){if($i(n))return"buildIndex"in n&&n.buildIndex?{field:n.field}:null;if(!Qs(n)){if(zc(n))throw new Error("A zoomable x channel must be mapped to a field.")}}}function gv(e,t=void 0){if(e.parent!==t)return!1;for(const n of e.children)if(!gv(n,e))return!1;return!0}function rp(e,t=!1){if(e.behavior&W0&&(t=!0),e instanceof wf)if(t)t=!1;else{const n=e.children[0];e.excise(),n&&rp(n,t);return}e.behavior&$n&&(t=!1);for(let n=0,r=e.children.length;n<r;n++)rp(e.children[n],t||r>1)}function IF(e){const t=[...e._dataSourcesByHost.entries()],n=new Map;for(const r of t){const i=r[1];i.identifier&&!n.has(i.identifier)&&n.set(i.identifier,i)}e._dataSourcesByHost.clear();for(let[r,i]of t){const a=n.get(i.identifier);a&&(a.adoptChildrenOf(i),i=a),e.addDataSource(i,r)}}function BF(e){if(rp(e),!gv(e))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function DF(e){for(const t of e.dataSources)BF(t);IF(e)}function RF(e){const t=new Set;e.visit(n=>{for(const r of Object.values(n.resolutions.scale)){const i=r.name;if(i&&t.has(i))throw new Error(`The same scale name "${i}" occurs in multiple scale resolutions!`);t.add(i)}})}function FF(e){for(const t of $a){const n=e.getScaleResolution(t);n&&!n.name&&n.isZoomable()&&(n.name=`${t}_at_root`)}}async function MF(e,t,n){var i;const r=e.import;if("url"in r){const a=cc({baseURL:t}),o=r.url,s=JSON.parse(await a.load(o).catch(u=>{throw new Error(`Could not load imported view spec: ${o}
377
- Reason: ${u.message}`)}));if(n.isViewSpec(s))return s.baseUrl=(i=o.match(/^[^?#]*\//))==null?void 0:i[0],s;throw new Error(`The imported spec "${o}" is not a view spec: ${JSON.stringify(e)}`)}else throw new Error("Not an url import: "+JSON.stringify(r))}function mv(e){return e.getSize().addPadding(e.getOverhang())}function PF(e){const t=n=>n.grow>0?void 0:n.px;return{width:t(e.width),height:t(e.height)}}function dr(e){return()=>e}const Rn=class Rn{static create(t,n,r,i){return new Rn(dr(t),dr(n),dr(r),dr(i))}_offset(t,n){const r=this["_"+t];if(n===0)return r;switch(typeof n){case"number":return()=>r()+n;case"function":return()=>r()+n();default:throw new Error("Not a number of function")}}_passThrough(t){return this._offset(t,0)}constructor(t,n,r,i){this._x=t,this._y=n,this._width=r,this._height=i}get x(){return this._x()}get y(){return this._y()}get width(){return this._width()}get height(){return this._height()}get x2(){return this._x()+this._width()}get y2(){return this._y()+this._height()}equals(t){return t?this===t||this.x===t.x&&this.y===t.y&&this.width===t.width&&this.height===t.height:!1}modify(t){if(!Object.keys(t).length)return this;const n=r=>{const i=t[r];return typeof i=="number"?dr(i):typeof i=="function"?i:this._passThrough(r)};return new Rn(n("x"),n("y"),n("width"),n("height"))}translate(t,n){return t===0&&n===0?this:new Rn(this._offset("x",t),this._offset("y",n),this._passThrough("width"),this._passThrough("height"))}translateBy(t){return this.translate(t.x,t.y)}expand(t,n=1){return t.left==0&&t.top==0&&t.right==0&&t.bottom==0?this:new Rn(t.left?this._offset("x",-t.left*n):this._passThrough("x"),t.top?this._offset("y",-t.top*n):this._passThrough("y"),t.width?this._offset("width",t.width*n):this._passThrough("width"),t.height?this._offset("height",t.height*n):this._passThrough("height"))}shrink(t){return this.expand(t,-1)}intersect(t){return this===t||t==null?this:new Rn(()=>Math.max(this.x,t.x),()=>Math.max(this.y,t.y),()=>Math.min(this.x2,t.x2)-Math.max(this.x,t.x),()=>Math.min(this.y2,t.y2)-Math.max(this.y,t.y))}union(t){return this===t||t==null?this:new Rn(()=>Math.min(this.x,t.x),()=>Math.min(this.y,t.y),()=>Math.max(this.x2,t.x2)-Math.min(this.x,t.x),()=>Math.max(this.y2,t.y2)-Math.min(this.y,t.y))}isDefined(){return this.width>=0&&this.height>=0}flatten(){return new Rn(dr(this.x),dr(this.y),dr(this.width),dr(this.height))}containsPoint(t,n){return t>=this.x&&t<this.x2&&n>=this.y&&n<this.y2}normalizePoint(t,n){return{x:(t-this.x)/this.width,y:(n-this.y)/this.height}}toString(){return`Rectangle: x: ${this.x}, y: ${this.y}, width: ${this.width}, height: ${this.height}`}toRoundedString(){return`Rectangle: x: ${Math.round(this.x)}, y: ${Math.round(this.y)}, width: ${Math.round(this.width)}, height: ${Math.round(this.height)}`}};Pt(Rn,"ZERO",Rn.create(0,0,0,0));let pr=Rn;class bv{constructor(t){this.globalOptions=t}pushView(t,n){}popView(t){}renderMark(t,n){}}class yv extends bv{constructor(t,n){super(t),this.webGLHelper=n,this.buffer=[],this.coords=void 0,this.views=new Set}pushView(t,n){this.views.add(t),this.coords=n}renderMark(t,n){if(this.globalOptions.picking&&!t.isPickingParticipant())return;const r=t.render(n);r&&this.buffer.push({mark:t,callback:r,coords:this.coords,clipRect:n.clipRect})}render(){if(this.batch||this._buildBatch(),this.batch.length==0)return;const t=this.webGLHelper.gl,n=this.globalOptions.picking;t.bindFramebuffer(t.FRAMEBUFFER,n?this.webGLHelper._pickingBufferInfo.framebuffer:null),this.webGLHelper.clearAll();for(const r of this.views)r.onBeforeRender();for(const r of this.batch)r();n&&t.bindFramebuffer(t.FRAMEBUFFER,null)}_buildBatch(){this.batch=[];let t=!0,n=!0;const r=o=>()=>{t&&o()},i=o=>()=>{t&&n&&o()},a=Yu(this.buffer.reverse(),o=>o.mark);for(const[o,s]of[...a.entries()].reverse()){if(!o.isReady())continue;this.batch.push(()=>{t=o.unitView.getEffectiveOpacity()>0}),this.batch.push(...o.prepareRender(this.globalOptions).map(l=>r(l)));let u;for(const l of s){const c=l.coords;c.equals(u)||this.batch.push(r(()=>{n=o.setViewport(c,l.clipRect)})),this.batch.push(i(l.callback)),u=l.coords}}}}class LF extends bv{constructor(...t){super({}),this.contexts=t}pushView(t,n){for(const r of this.contexts)r.pushView(t,n)}popView(t){for(const n of this.contexts)n.popView(t)}renderMark(t,n){for(const r of this.contexts)r.renderMark(t,n)}}class NF{constructor(t,n){this.point=t,this.uiEvent=n,this.stopped=!1,this.target=void 0}stopPropagation(){this.stopped=!0}get type(){return this.uiEvent.type}}class ei{static fromMouseEvent(t){return new ei(t.clientX,t.clientY)}constructor(t,n){this.x=t,this.y=n}subtract(t){return new ei(this.x-t.x,this.y-t.y)}add(t){return new ei(this.x-t.x,this.y-t.y)}multiply(t){return new ei(this.x*t,this.y*t)}get length(){return Math.sqrt(this.x**2+this.y**2)}equals(t){return t?t===this||t.x===this.x&&t.y===this.y:!1}}const OF=e=>new Promise(t=>setTimeout(t,e));function zF(e){const t=e.requestAnimationFrame||window.requestAnimationFrame,n=e.signal,r=()=>new Promise((i,a)=>{if(n!=null&&n.aborted)return a("aborted");const o=performance.now(),s=o+(e.duration||1e3),u=typeof e.from=="number"?e.from:0,l=typeof e.to=="number"?e.to:1,c=e.easingFunction||(m=>m),f=m=>(m-o)/(s-o),h=m=>m*(l-u)+u,d=m=>Math.max(0,Math.min(1,m)),p=m=>{n!=null&&n.aborted?a("aborted"):(e.onUpdate(h(c(d(f(m))))),m<s?t(p):(e.onUpdate(h(c(1))),i()))};t(p)});return e.delay?n!=null&&n.aborted?Promise.reject("aborted"):OF(e.delay).then(r):r()}class UF{constructor(t){this._renderCallback=t,this._renderRequested=!1,this._warn=!1,this.transitions=[]}requestTransition(t){this.cancelTransition(t),this.transitions.push(t),this.requestRender()}cancelTransition(t){const n=this.transitions.indexOf(t);n>=0&&this.transitions.splice(n,1)}requestRender(){this._renderRequested?this._warn&&console.warn("Render already requested!"):(this._renderRequested=!0,window.requestAnimationFrame(t=>{this._renderRequested=!1;const n=this.transitions;this.transitions=[];let r;for(;r=n.shift();)r(t);this._renderCallback(t)}))}transition(t){return zF({requestAnimationFrame:n=>this.requestTransition(n),...t})}}function ip(e,t,n,r,i){let a=0,o=!0,s=structuredClone(i),u=s;function l(h,d,p,m){return d+(h-d)*Math.pow(2,-p/m)}function c(h){if(o)return;const d=h-a;a=h;for(const m of Object.keys(u))s[m]=l(s[m],u[m],d,n);t(s);let p=-1/0;for(const m of Object.keys(u))p=Math.max(p,Math.abs(u[m]-s[m]));p<r?(s=u,t(s),o=!0,e.requestRender()):e.requestTransition(m=>c(m))}function f(h){u=h,o&&(o=!1,a=+document.timeline.currentTime,c(a))}return f.stop=()=>{o=!0},f}class GF{constructor(t){this.genomes=new Map,this.baseUrl=t}async initialize(t){const n=new t9(t);return this.genomes.set(n.name,n),Promise.all([...this.genomes.values()].map(r=>r.load(this.baseUrl)))}getGenome(t){if(!this.genomes.size)throw new Error("No genomes have been configured!");if(t){const n=this.genomes.get(t);if(!n)throw new Error(`No genome with the name ${t} has been configured!`);return n}else{if(this.genomes.size>1)throw new Error("Cannot pick a default genome! More than one have been configured!");return this.genomes.values().next().value}}}const HF="data:image/png;base64,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",VF={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class jF{constructor(t){this._webGLHelper=t,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new ir([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:j0(iv),texture:t?this._createTextureNow(HF):void 0}}async waitUntilReady(){await Promise.all(this._promises)}getFont(t,n="normal",r="regular"){if(Ue(r)&&(r=VF[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:t,style:n,weight:r};let a=this._fonts.get(i);return a||(a={metrics:void 0,texture:void 0},this._fonts.set(i,a),this._promises.push(this._loadFontEntry(a,i))),a}async _loadFontEntry(t,n){try{const r=await this._loadMetadata(n.family),i=qF(r,n),a=this.fontRepository+wv(n.family)+"/"+i.replace(/\.\w+/,""),o=this._createTexture(a+".png"),s=this._loadFont(a+".json");t.texture=await o,t.metrics=await s}catch(r){console.log("Cannot load font. Using default.",r),t.metrics=this._defaultFontEntry.metrics,t.texture=this._defaultFontEntry.texture}}_loadFont(t){let n=this._fontPromises.get(t);return n||(n=fetch(t).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>j0(r)),this._fontPromises.set(t,n)),n}_loadMetadata(t){const n=wv(t);let r=this._metadataPromises.get(n);return r||(r=fetch(this.fontRepository+n+"/METADATA.pb").then(i=>{if(!i.ok)throw new Error("Could not load font metadata: "+i.status);return i}).then(i=>i.text()).then(i=>$F(i)).catch(i=>{console.warn(i)}),this._metadataPromises.set(n,r)),r}getDefaultFont(){return this._defaultFontEntry}_createTexture(t){const n=this._webGLHelper.gl;return new Promise((r,i)=>{il(n,{src:t,min:n.LINEAR},(a,o,s)=>{a?i(a):r(o)})})}_createTextureNow(t){const n=this._webGLHelper.gl;let r;const i=new Promise((a,o)=>{r=il(n,{src:t,min:n.LINEAR},(s,u,l)=>{s?o(s):a(u)})});return this._promises.push(i),r}}function wv(e){return e.toLowerCase().replaceAll(/[^\w]/g,"")}function $F(e){const t=e.split(`
378
- `),n=[];let r;for(const i of t)if(i.startsWith("fonts {")&&(r={name:void 0,style:void 0,weight:void 0,filename:void 0,post_script_name:void 0,full_name:void 0,copyright:void 0}),i.startsWith("}")&&(n.push(r),r=void 0),r){let a=i.match(/^\s*([A-Za-z_]+):[ ]?"(.*)"$/);if(a){const o=a[1];r[o]=a[2]}if(a=i.match(/^\s*([A-Za-z_]+):[ ]?(\d+)$/),a){const o=a[1];r[o]=+a[2]}}return n}function qF(e,t){let n,r=Number.POSITIVE_INFINITY;for(const i of e)if(t.family.localeCompare(i.name,void 0,{sensitivity:"accent"})==0&&t.style==i.style){const a=Math.abs(t.weight-i.weight);a<r&&(r=a,n=i)}return n==null?void 0:n.filename}function WF(e,t){const n=[];let r;for(const i of e.split(`
379
- `))if(i.startsWith(">"))r={identifier:i.match(/>(\S+)/)[1],sequence:""},n.push(r);else if(r)r.sequence+=i.trim();else throw new Error("Invalid fasta file!");return n}class ZF{constructor(t,n){this.animator=t,this.disabled=!!n,this.maxDistance=500,this.callback=null,this.targetValue=0,this.lastValue=0,this.smoother=ip(t,r=>{var a;const i=r.x-this.lastValue;this.lastValue=r.x,(a=this.callback)==null||a.call(this,i)},40,.1,{x:0})}cancel(){this.targetValue=Ym([this.lastValue,this.targetValue],.3),this.smoother({x:this.targetValue})}setMomentum(t,n){if(this.disabled){n(t);return}this.callback=n;const r=Oa(this.targetValue+t-this.lastValue,-this.maxDistance,this.maxDistance);this.targetValue=this.lastValue+r,this.smoother({x:this.targetValue})}}function YF(e){const t={},n=["string","number","boolean"],r=["wheelDelta","wheelDeltaX","wheelDeltaY"];for(const i in e){const a=i;!r.includes(i)&&n.includes(typeof e[a])&&(t[a]=e[a])}return t}const vv=new Map;async function QF(e,t,n){const r=e.symbol;let i=vv.get(r)??await JF(e.symbol);return i?(vv.set(r,i),Xe`
387
+ }`)(f,c));function y(A){r=A,i=A.length,n=0}function w(A,S,_,k){y(k),o=d(A,S,_);for(const B of m)B(o);return o}return w}function VF(e,t){return Array.from({length:Math.ceil(e.length/t)},(n,r)=>e.slice(r*t,r*t+t))}class jF extends Al{constructor(n,r){const i={channel:"x",windowSize:2e4,debounce:200,debounceMode:"domain",...n};super(r,i.channel);Z(this,To,void 0);Pt(this,"chrPrefixFixer",n=>n);if(this.params=i,!this.params.url)throw new Error("No URL provided for BamSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(o=>{Promise.all([Promise.resolve().then(()=>jU),Promise.resolve().then(()=>Cl)]).then(([{BamFile:a},{RemoteFile:s}])=>{const u=l=>new s(xl(l,this.view.getBaseUrl()));le(this,To,new a({bamFilehandle:u(this.params.url),baiFilehandle:u(this.params.indexUrl??this.params.url+".bai")})),z(this,To).getHeader().then(l=>{var h,d;const c=this.genome.hasChrPrefix(),f=(d=(h=z(this,To).indexToChr)==null?void 0:h[0])==null?void 0:d.refName.startsWith("chr");c&&!f?this.chrPrefixFixer=p=>p.replace("chr",""):!c&&f&&(this.chrPrefixFixer=p=>"chr"+p),o()})})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,o)=>z(this,To).getRecordsForRange(this.chrPrefixFixer(i.chrom),i.startPos,i.endPos,{signal:o}).then(a=>a.map(s=>({chrom:i.chrom,start:s.get("start"),end:s.get("end"),name:s.get("name"),MD:s.get("MD"),cigar:s.get("cigar"),mapq:s.get("mq"),strand:s.get("strand")===1?"+":"-"}))));r&&this.publishData(r)}}To=new WeakMap;class $F extends Al{constructor(n,r){const i={channel:"x",windowSize:3e6,debounce:200,debounceMode:"domain",...n};super(r,i.channel);Z(this,zu,void 0);if(this.params=i,!this.params.url)throw new Error("No URL provided for TabixSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(o=>{Promise.all([Promise.resolve().then(()=>nx),Promise.resolve().then(()=>eG),Promise.resolve().then(()=>Cl)]).then(([{Buffer:a},{TabixIndexedFile:s},{RemoteFile:u}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=a));const l=c=>new u(xl(c,this.view.getBaseUrl()));le(this,zu,new s({filehandle:l(this.params.url),tbiFilehandle:l(this.params.indexUrl??this.params.url+".tbi")})),o()})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,o)=>{const a=[];return await z(this,zu).getLines(i.chrom,i.startPos,i.endPos,{lineCallback:s=>{a.push(s)},signal:o}),this._parseFeatures(a)});r&&this.publishData(r)}_parseFeatures(n){return[]}}zu=new WeakMap;class qF extends $F{constructor(n,r){super(n,r);Z(this,Uu,void 0);Promise.resolve().then(()=>OG).then(i=>{le(this,Uu,i.default)})}_parseFeatures(n){var i;return(i=z(this,Uu))==null?void 0:i.parseStringSync(n.join(`
388
+ `),{parseSequences:!1})}}Uu=new WeakMap;function WF(e,t){if(Tv(e))return new DF(e,t);if(RF(e))return new FF(e,t);if(MF(e))return new PF(e,t);if(ZF(e))return n7(e.lazy,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function ZF(e){return"lazy"in e}function YF(e){return(e==null?void 0:e.type)=="axisTicks"}function QF(e){return(e==null?void 0:e.type)=="axisGenome"}function XF(e){return(e==null?void 0:e.type)=="indexedFasta"}function KF(e){return(e==null?void 0:e.type)=="bigwig"}function JF(e){return(e==null?void 0:e.type)=="bigbed"}function e7(e){return(e==null?void 0:e.type)=="bam"}function t7(e){return(e==null?void 0:e.type)=="gff3"}function n7(e,t){if(YF(e))return new LF(e,t);if(QF(e))return new NF(e,t);if(XF(e))return new OF(e,t);if(KF(e))return new zF(e,t);if(JF(e))return new GF(e,t);if(e7(e))return new jF(e,t);if(t7(e))return new qF(e,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function r7(e){const t=Object.keys(e).filter(r=>typeof r=="string"),n=new Function("source","return { "+t.map(r=>JSON.stringify(r)).map(r=>`${r}: source[${r}]`).join(`,
389
+ `)+" };");return n.properties=t,n}class Sf extends tt{get behavior(){return jn}constructor(){super();const t=n=>{const r=r7(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=t,this.beginBatch=n=>{hw(n)&&(this.handle=t),super.beginBatch(n)}}}function i7(e){return"name"in e}class Iv extends ca{constructor(n,r,i){super(r);Z(this,Gu,void 0);this.provider=i,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){le(this,Gu,n),this.loadSynchronously()}loadSynchronously(){const n=z(this,Gu)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=Cv(n[0]));else throw new Error(`Named data "${this.params.name}" is not an array!`);this.reset(),this.beginBatch({type:"file"});for(const i of n)this._propagate(r(i));this.complete()}async load(){this.loadSynchronously()}}Gu=new WeakMap;class Bv{constructor(){this._dataSourcesByHost=new Map,this._collectorsByHost=new Map,this._observers=new Map}get dataSources(){return[...new Set(this._dataSourcesByHost.values()).values()]}get collectors(){return[...this._collectorsByHost.values()]}addObserver(t,n){let r=this._observers.get(n);r||(r=[],this._observers.set(n,r)),r.push(t)}_relayObserverCallback(t,n){const r=this._observers.get(n);if(r)for(const i of r)i(t)}addDataSource(t,n){this._dataSourcesByHost.set(n,t)}findDataSourceByKey(t){return this._dataSourcesByHost.get(t)}findNamedDataSource(t){let n,r=[];for(const[i,o]of this._dataSourcesByHost.entries())if(o instanceof Iv&&t==o.identifier){if(n&&n!==o)throw new Error(`Found multiple instances of named data: ${t}. Data flow optimization is broken (it's a bug).`);n=o,r.push(i)}if(n)return{dataSource:n,hosts:r}}addCollector(t,n){this._collectorsByHost.set(n,t),t.observers.push(r=>this._relayObserverCallback(r,n))}findCollectorByKey(t){return this._collectorsByHost.get(t)}initialize(){for(const t of this.dataSources)t.visit(n=>n.initialize())}}function o7(e,t){const n=new Map,r=[];for(const i of e)n.set(i,{ref:i,children:[]});for(const i of n.values()){const o=n.get(t(i.ref));o?o.children.push(i):r.push(i)}return r}function Dv(e,t,n){var i,o;const r=(i=t.preOrder)==null?void 0:i.call(t,e);if(r)return r;for(const a of n(e)){const s=Dv(a,t,n);if(s==="stop")return s}return(o=t.postOrder)==null?void 0:o.call(t,e)}function a7(e,t){return Dv(e,t,n=>n.children)}function s7(e,t){const n=[],r=[];let i;const o=t??new Bv,a=[];function s(d,p=()=>{}){if(!i)throw p()||new Error("Cannot append data flow node, no parent exist!");return i.addChild(d),i=d,n.push(d),d}function u(d,p){return s(d,()=>new Error(`Cannot append a transform because no (inherited) data are available! ${p?JSON.stringify(p):""}`))}function l(d,p){for(const m of d){let y;try{y=kF(m,p)}catch(w){throw console.warn(w),new Error(`Cannot initialize "${m.type}" transform: ${w}`)}y.behavior&Jr&&u(new Sf),u(y)}}function c(){return n.findLastIndex(d=>d instanceof Z0)>n.findLastIndex(d=>d instanceof ca)}const f=d=>{if(d.spec.data){const p=i7(d.spec.data)?new Iv(d.spec.data,d,d.context.getNamedDataFromProvider):WF(d.spec.data,d);i=p,n.push(p),o.addDataSource(p,d)}if(d.spec.transform&&l(d.spec.transform,d),d instanceof Qt){if(!i)throw new Error(`A unit view (${d.getPathString()}) has no (inherited) data source`);const p=l7(d);if(p){a.push(p.rewrite);for(const y of p.transforms)u(y)}d.mark.isPickingParticipant()&&!c()&&(u(new Sf),u(new Z0({type:"identifier"})));const m=new Av({type:"collect",groupby:d.getFacetFields(),sort:u7(d,p==null?void 0:p.rewrittenEncoding)});s(m),o.addCollector(m,d)}},h=o7(e.getDescendants(),d=>d.dataParent);for(const d of h)a7(d,{preOrder:p=>{r.push({view:p.ref,nodeStackDepth:n.length}),f(p.ref)},postOrder:()=>{const{nodeStackDepth:p}=r.pop();n.length=p,i=n.at(-1)}});return a.forEach(d=>d()),o}function l7(e){var o;const t=[],n={},r=[];for(const[a,s]of Object.entries(e.getEncoding())){const u=a;cl(u)&&xw(s)&&r.push({channel:u,chromPosDef:s})}const i=rc(r,a=>Ji(a.channel),a=>a.chromPosDef.chrom);for(const[a,s]of i.entries())for(const[u,l]of s.entries()){const c=[],f=[],h=[];for(const{channel:d,chromPosDef:p}of l){const m=A=>A.replace(/[^A-Za-z0-9_]/g,""),y=["_linearized_",m(p.chrom),"_",m(p.pos)].join(""),w={...((o=e.spec.encoding)==null?void 0:o[d])??e.getEncoding()[d]??{},field:y};delete w.chrom,delete w.pos,!w.type&&p.type&&(w.type=p.type),n[d]=w,c.push(p.pos),h.push(p.offset??0),f.push(y)}t.push(new Sf),t.push(new Ev({type:"linearizeGenomicCoordinate",channel:a,chrom:u,pos:c,offset:h,as:f},e))}return t.length?{transforms:t,rewrittenEncoding:n,rewrite:()=>{e.spec.encoding={...e.spec.encoding,...n},kR(e.mark,"encoding")}}:void 0}function u7(e,t){var r;const n={...e.getEncoding(),...t}.x;if(an(n)&&(r=e.getScaleResolution("x"))!=null&&r.isZoomable()){if(ti(n))return"buildIndex"in n&&n.buildIndex?{field:n.field}:null;if(!ll(n)){if(ul(n))throw new Error("A zoomable x channel must be mapped to a field.")}}}function Rv(e,t=void 0){if(e.parent!==t)return!1;for(const n of e.children)if(!Rv(n,e))return!1;return!0}function dp(e,t=!1){if(e.behavior&W0&&(t=!0),e instanceof Sf)if(t)t=!1;else{const n=e.children[0];e.excise(),n&&dp(n,t);return}e.behavior&jn&&(t=!1);for(let n=0,r=e.children.length;n<r;n++)dp(e.children[n],t||r>1)}function c7(e){const t=[...e._dataSourcesByHost.entries()],n=new Map;for(const r of t){const i=r[1];i.identifier&&!n.has(i.identifier)&&n.set(i.identifier,i)}e._dataSourcesByHost.clear();for(let[r,i]of t){const o=n.get(i.identifier);o&&(o.adoptChildrenOf(i),i=o),e.addDataSource(i,r)}}function f7(e){if(dp(e),!Rv(e))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function h7(e){for(const t of e.dataSources)f7(t);c7(e)}function d7(e){const t=new Set;e.visit(n=>{for(const r of Object.values(n.resolutions.scale)){const i=r.name;if(i&&t.has(i))throw new Error(`The same scale name "${i}" occurs in multiple scale resolutions!`);t.add(i)}})}function p7(e){for(const t of sa){const n=e.getScaleResolution(t);n&&!n.name&&n.isZoomable()&&(n.name=`${t}_at_root`)}}async function g7(e,t,n){var i;const r=e.import;if("url"in r){const o=yc({baseURL:t}),a=r.url,s=JSON.parse(await o.load(a).catch(u=>{throw new Error(`Could not load imported view spec: ${a}
390
+ Reason: ${u.message}`)}));if(n.isViewSpec(s))return s.baseUrl=(i=a.match(/^[^?#]*\//))==null?void 0:i[0],s;throw new Error(`The imported spec "${a}" is not a view spec: ${JSON.stringify(e)}`)}else throw new Error("Not an url import: "+JSON.stringify(r))}function Fv(e){return e.getSize().addPadding(e.getOverhang())}function m7(e){const t=n=>n.grow>0?void 0:n.px;return{width:t(e.width),height:t(e.height)}}function pr(e){return()=>e}const Rn=class Rn{static create(t,n,r,i){return new Rn(pr(t),pr(n),pr(r),pr(i))}_offset(t,n){const r=this["_"+t];if(n===0)return r;switch(typeof n){case"number":return()=>r()+n;case"function":return()=>r()+n();default:throw new Error("Not a number of function")}}_passThrough(t){return this._offset(t,0)}constructor(t,n,r,i){this._x=t,this._y=n,this._width=r,this._height=i}get x(){return this._x()}get y(){return this._y()}get width(){return this._width()}get height(){return this._height()}get x2(){return this._x()+this._width()}get y2(){return this._y()+this._height()}equals(t){return t?this===t||this.x===t.x&&this.y===t.y&&this.width===t.width&&this.height===t.height:!1}modify(t){if(!Object.keys(t).length)return this;const n=r=>{const i=t[r];return typeof i=="number"?pr(i):typeof i=="function"?i:this._passThrough(r)};return new Rn(n("x"),n("y"),n("width"),n("height"))}translate(t,n){return t===0&&n===0?this:new Rn(this._offset("x",t),this._offset("y",n),this._passThrough("width"),this._passThrough("height"))}translateBy(t){return this.translate(t.x,t.y)}expand(t,n=1){return t.left==0&&t.top==0&&t.right==0&&t.bottom==0?this:new Rn(t.left?this._offset("x",-t.left*n):this._passThrough("x"),t.top?this._offset("y",-t.top*n):this._passThrough("y"),t.width?this._offset("width",t.width*n):this._passThrough("width"),t.height?this._offset("height",t.height*n):this._passThrough("height"))}shrink(t){return this.expand(t,-1)}intersect(t){return this===t||t==null?this:new Rn(()=>Math.max(this.x,t.x),()=>Math.max(this.y,t.y),()=>Math.min(this.x2,t.x2)-Math.max(this.x,t.x),()=>Math.min(this.y2,t.y2)-Math.max(this.y,t.y))}union(t){return this===t||t==null?this:new Rn(()=>Math.min(this.x,t.x),()=>Math.min(this.y,t.y),()=>Math.max(this.x2,t.x2)-Math.min(this.x,t.x),()=>Math.max(this.y2,t.y2)-Math.min(this.y,t.y))}isDefined(){return this.width>=0&&this.height>=0}flatten(){return new Rn(pr(this.x),pr(this.y),pr(this.width),pr(this.height))}containsPoint(t,n){return t>=this.x&&t<this.x2&&n>=this.y&&n<this.y2}normalizePoint(t,n){return{x:(t-this.x)/this.width,y:(n-this.y)/this.height}}toString(){return`Rectangle: x: ${this.x}, y: ${this.y}, width: ${this.width}, height: ${this.height}`}toRoundedString(){return`Rectangle: x: ${Math.round(this.x)}, y: ${Math.round(this.y)}, width: ${Math.round(this.width)}, height: ${Math.round(this.height)}`}};Pt(Rn,"ZERO",Rn.create(0,0,0,0));let gr=Rn;class Mv{constructor(t){this.globalOptions=t}pushView(t,n){}popView(t){}renderMark(t,n){}}class Pv extends Mv{constructor(t,n){super(t),this.webGLHelper=n,this.buffer=[],this.coords=void 0,this.views=new Set}pushView(t,n){this.views.add(t),this.coords=n}renderMark(t,n){if(this.globalOptions.picking&&!t.isPickingParticipant())return;const r=t.render(n);r&&this.buffer.push({mark:t,callback:r,coords:this.coords,clipRect:n.clipRect})}render(){if(this.batch||this._buildBatch(),this.batch.length==0)return;const t=this.webGLHelper.gl,n=this.globalOptions.picking;t.bindFramebuffer(t.FRAMEBUFFER,n?this.webGLHelper._pickingBufferInfo.framebuffer:null),this.webGLHelper.clearAll();for(const r of this.views)r.onBeforeRender();for(const r of this.batch)r();n&&t.bindFramebuffer(t.FRAMEBUFFER,null)}_buildBatch(){this.batch=[];let t=!0,n=!0;const r=a=>()=>{t&&a()},i=a=>()=>{t&&n&&a()},o=rc(this.buffer.reverse(),a=>a.mark);for(const[a,s]of[...o.entries()].reverse()){if(!a.isReady())continue;this.batch.push(()=>{t=a.unitView.getEffectiveOpacity()>0}),this.batch.push(...a.prepareRender(this.globalOptions).map(l=>r(l)));let u;for(const l of s){const c=l.coords;c.equals(u)||this.batch.push(r(()=>{n=a.setViewport(c,l.clipRect)})),this.batch.push(i(l.callback)),u=l.coords}}}}class b7 extends Mv{constructor(...t){super({}),this.contexts=t}pushView(t,n){for(const r of this.contexts)r.pushView(t,n)}popView(t){for(const n of this.contexts)n.popView(t)}renderMark(t,n){for(const r of this.contexts)r.renderMark(t,n)}}class y7{constructor(t,n){this.point=t,this.uiEvent=n,this.stopped=!1,this.target=void 0}stopPropagation(){this.stopped=!0}get type(){return this.uiEvent.type}}class $n{static fromMouseEvent(t){return new $n(t.clientX,t.clientY)}constructor(t,n){this.x=t,this.y=n}subtract(t){return new $n(this.x-t.x,this.y-t.y)}add(t){return new $n(this.x-t.x,this.y-t.y)}multiply(t){return new $n(this.x*t,this.y*t)}get length(){return Math.sqrt(this.x**2+this.y**2)}equals(t){return t?t===this||t.x===this.x&&t.y===this.y:!1}}const w7=e=>new Promise(t=>setTimeout(t,e));function v7(e){const t=e.requestAnimationFrame||window.requestAnimationFrame,n=e.signal,r=()=>new Promise((i,o)=>{if(n!=null&&n.aborted)return o("aborted");const a=performance.now(),s=a+(e.duration||1e3),u=typeof e.from=="number"?e.from:0,l=typeof e.to=="number"?e.to:1,c=e.easingFunction||(m=>m),f=m=>(m-a)/(s-a),h=m=>m*(l-u)+u,d=m=>Math.max(0,Math.min(1,m)),p=m=>{n!=null&&n.aborted?o("aborted"):(e.onUpdate(h(c(d(f(m))))),m<s?t(p):(e.onUpdate(h(c(1))),i()))};t(p)});return e.delay?n!=null&&n.aborted?Promise.reject("aborted"):w7(e.delay).then(r):r()}class x7{constructor(t){this._renderCallback=t,this._renderRequested=!1,this._warn=!1,this.transitions=[]}requestTransition(t){this.cancelTransition(t),this.transitions.push(t),this.requestRender()}cancelTransition(t){const n=this.transitions.indexOf(t);n>=0&&this.transitions.splice(n,1)}requestRender(){this._renderRequested?this._warn&&console.warn("Render already requested!"):(this._renderRequested=!0,window.requestAnimationFrame(t=>{this._renderRequested=!1;const n=this.transitions;this.transitions=[];let r;for(;r=n.shift();)r(t);this._renderCallback(t)}))}transition(t){return v7({requestAnimationFrame:n=>this.requestTransition(n),...t})}}function pp(e,t,n,r,i){let o=0,a=!0,s=structuredClone(i),u=s;function l(h,d,p,m){return d+(h-d)*Math.pow(2,-p/m)}function c(h){if(a)return;const d=h-o;o=h;for(const m of Object.keys(u))s[m]=l(s[m],u[m],d,n);t(s);let p=-1/0;for(const m of Object.keys(u))p=Math.max(p,Math.abs(u[m]-s[m]));p<r?(s=u,t(s),a=!0,p!=0&&e.requestRender()):e.requestTransition(m=>c(m))}function f(h){u=h,a&&(a=!1,o=+document.timeline.currentTime,c(o))}return f.stop=()=>{a=!0},f}class A7{constructor(t){this.genomes=new Map,this.baseUrl=t}async initialize(t){const n=new F9(t);return this.genomes.set(n.name,n),Promise.all([...this.genomes.values()].map(r=>r.load(this.baseUrl)))}getGenome(t){if(!this.genomes.size)throw new Error("No genomes have been configured!");if(t){const n=this.genomes.get(t);if(!n)throw new Error(`No genome with the name ${t} has been configured!`);return n}else{if(this.genomes.size>1)throw new Error("Cannot pick a default genome! More than one have been configured!");return this.genomes.values().next().value}}}const E7="data:image/png;base64,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",_7={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class S7{constructor(t){this._webGLHelper=t,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new or([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:tp(_v),texture:t?this._createTextureNow(E7):void 0}}async waitUntilReady(){await Promise.all(this._promises)}getFont(t,n="normal",r="regular"){if(Fe(r)&&(r=_7[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:t,style:n,weight:r};let o=this._fonts.get(i);return o||(o={metrics:void 0,texture:void 0},this._fonts.set(i,o),this._promises.push(this._loadFontEntry(o,i))),o}async _loadFontEntry(t,n){try{const r=await this._loadMetadata(n.family),i=k7(r,n),o=this.fontRepository+Lv(n.family)+"/"+i.replace(/\.\w+/,""),a=this._createTexture(o+".png"),s=this._loadFont(o+".json");t.texture=await a,t.metrics=await s}catch{console.warn(`Cannot load font: "${n.family}". Using the embedded default font.`),t.metrics=this._defaultFontEntry.metrics,t.texture=this._defaultFontEntry.texture}}_loadFont(t){let n=this._fontPromises.get(t);return n||(n=fetch(t).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>tp(r)),this._fontPromises.set(t,n)),n}_loadMetadata(t){const n=Lv(t);let r=this._metadataPromises.get(n);if(!r){const i=this.fontRepository+n+"/METADATA.pb";r=fetch(i).then(o=>{if(!o.ok)throw new Error("Could not load font metadata. Response status: "+o.status+", url: "+i);return o}).then(o=>o.text()).then(o=>C7(o)).catch(o=>{console.warn(o.message)}),this._metadataPromises.set(n,r)}return r}getDefaultFont(){return this._defaultFontEntry}_createTexture(t){const n=this._webGLHelper.gl;return new Promise((r,i)=>{Vs(n,{src:t,min:n.LINEAR},(o,a,s)=>{o?i(o):r(a)})})}_createTextureNow(t){const n=this._webGLHelper.gl;let r;const i=new Promise((o,a)=>{r=Vs(n,{src:t,min:n.LINEAR},(s,u,l)=>{s?a(s):o(u)})});return this._promises.push(i),r}}function Lv(e){return e.toLowerCase().replaceAll(/[^\w]/g,"")}function C7(e){const t=e.split(`
391
+ `),n=[];let r;for(const i of t)if(i.startsWith("fonts {")&&(r={name:void 0,style:void 0,weight:void 0,filename:void 0,post_script_name:void 0,full_name:void 0,copyright:void 0}),i.startsWith("}")&&(n.push(r),r=void 0),r){let o=i.match(/^\s*([A-Za-z_]+):[ ]?"(.*)"$/);if(o){const a=o[1];r[a]=o[2]}if(o=i.match(/^\s*([A-Za-z_]+):[ ]?(\d+)$/),o){const a=o[1];r[a]=+o[2]}}return n}function k7(e,t){let n,r=Number.POSITIVE_INFINITY;for(const i of e)if(t.family.localeCompare(i.name,void 0,{sensitivity:"accent"})==0&&t.style==i.style){const o=Math.abs(t.weight-i.weight);o<r&&(r=o,n=i)}return n==null?void 0:n.filename}function T7(e,t){const n=[];let r;for(const i of e.split(`
392
+ `))if(i.startsWith(">"))r={identifier:i.match(/>(\S+)/)[1],sequence:""},n.push(r);else if(r)r.sequence+=i.trim();else throw new Error("Invalid fasta file!");return n}class I7{constructor(t,n){this.animator=t,this.disabled=!!n,this.maxDistance=500,this.callback=null,this.targetValue=0,this.lastValue=0,this.smoother=pp(t,r=>{var o;const i=r.x-this.lastValue;this.lastValue=r.x,(o=this.callback)==null||o.call(this,i)},40,.1,{x:0})}cancel(){this.lastValue!==this.targetValue&&(this.targetValue=i1([this.lastValue,this.targetValue],.3),this.smoother({x:this.targetValue}))}setMomentum(t,n){if(this.disabled){n(t);return}this.callback=n;const r=aa(this.targetValue+t-this.lastValue,-this.maxDistance,this.maxDistance);this.targetValue=this.lastValue+r,this.smoother({x:this.targetValue})}}function B7(e){const t={},n=["string","number","boolean"],r=["wheelDelta","wheelDeltaX","wheelDeltaY"];for(const i in e){const o=i;!r.includes(i)&&n.includes(typeof e[o])&&(t[o]=e[o])}return t}const Nv=new Map;async function D7(e,t,n){const r=e.symbol;let i=Nv.get(r)??await M7(e.symbol);return i?(Nv.set(r,i),Je`
380
393
  <div class="title">
381
394
  <strong>${i.name}</strong>
382
395
  ${i.description}
383
396
  </div>
384
397
  <p class="summary">${i.summary}</p>
385
398
  <p class="source">Source: NCBI RefSeq Gene</p>
386
- `):null}async function XF(e){console.log("Searching: "+e);const t={mode:"cors"},r=(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=gene&term=${e}[GENE]&sort=relevance&retmode=json`,t).then(i=>i.json())).esearchresult.idlist[0];return r?(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=gene&id=${r}&retmode=json`,t).then(o=>o.json())).result[r]:null}const KF=yf(XF,500);function JF(e){return KF(e)}const e7=mt(".4~r"),t7=mt(".4~e");function xv(e){return e==null?Xe` <span class="na">NA</span> `:Ue(e)?e.substring(0,30):Number.isInteger(e)?""+e:Tt(e)?Math.abs(e)>Math.pow(10,8)||Math.abs(e)<Math.pow(10,-8)?t7(e):e7(e):is(e)?e?"True":"False":xt(e)?Xe`${e.map((t,n)=>[xv(t),n<e.length-1?", ":rt])}`:"?"+typeof e+" "+e}async function n7(e,t,n){const r=(u,l)=>{var c;for(const[f,h]of Object.entries(t.encoders))if((c=h==null?void 0:h.accessor)!=null&&c.fields.includes(u))switch(f){case"color":case"fill":case"stroke":return Xe`
399
+ `):null}async function R7(e){console.log("Searching: "+e);const t={mode:"cors"},r=(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=gene&term=${e}[GENE]&sort=relevance&retmode=json`,t).then(i=>i.json())).esearchresult.idlist[0];return r?(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=gene&id=${r}&retmode=json`,t).then(a=>a.json())).result[r]:null}const F7=_f(R7,500);function M7(e){return F7(e)}const P7=mt(".4~r"),L7=mt(".4~e");function Ov(e){return e==null?Je` <span class="na">NA</span> `:Fe(e)?e.substring(0,30):Number.isInteger(e)?""+e:Tt(e)?Math.abs(e)>Math.pow(10,8)||Math.abs(e)<Math.pow(10,-8)?L7(e):P7(e):us(e)?e?"True":"False":xt(e)?Je`${e.map((t,n)=>[Ov(t),n<e.length-1?", ":rt])}`:"?"+typeof e+" "+e}async function N7(e,t,n){const r=(u,l)=>{var c;for(const[f,h]of Object.entries(t.encoders))if((c=h==null?void 0:h.dataAccessor)!=null&&c.fields.includes(u))switch(f){case"color":case"fill":case"stroke":return Je`
387
400
  <span
388
401
  class="color-legend"
389
402
  style=${`background-color: ${h(l)}`}
390
403
  ></span>
391
- `}return""},i=Object.entries(e).filter(([u,l])=>!u.startsWith("_"));if(i.length===0)return;const a=Xe`
404
+ `}return""},i=Object.entries(e).filter(([u,l])=>!u.startsWith("_"));if(i.length===0)return;const o=Je`
392
405
  <table class="attributes">
393
- ${i.map(([u,l])=>Xe`
406
+ ${i.map(([u,l])=>Je`
394
407
  <tr>
395
408
  <th>${u}</th>
396
- <td>${xv(l)} ${r(u,e)}</td>
409
+ <td>${Ov(l)} ${r(u,e)}</td>
397
410
  </tr>
398
411
  `)}
399
412
  </table>
400
- `,o=t.unitView.getTitleText(),s=o?Xe`
413
+ `,a=t.unitView.getTitleText(),s=a?Je`
401
414
  <div class="title">
402
- <strong>${o}</strong>
415
+ <strong>${a}</strong>
403
416
  </div>
404
- `:"";return Xe`${s}${a}`}class gl extends ev{constructor(t,n,r,i,a,o){super(t,n,r,i,a,o),this.spec=t}async initializeChildren(){}*[Symbol.iterator](){}replaceChild(t,n){throw new Error("Not implemented")}visit(t){let n;try{n=t(this)}catch(r){throw r.view=this,r}if(n===fl)return n;if(n!==y9){t.beforeChildren&&t.beforeChildren(this);for(const r of this){const i=r.visit(t);if(i===fl)return i}t.afterChildren&&t.afterChildren(this),t.postOrder&&t.postOrder(this)}}findDescendantByPath(t){for(const n of this)if(n.name===t[0]){if(t.length==1)return n;if(n instanceof gl)return n.findDescendantByPath(t.slice(1))}}findChildByName(t){for(const n of this)if(n.name===t)return n}findDescendantByName(t){let n;return this.visit(r=>{if(r.name==t)return n=r,fl}),n}getDefaultResolution(t,n){return"shared"}}class ml extends gl{constructor(n,r,i,a,o,s){super(n,r,i,a,o,s);Y(this,Sr,[]);this.spec=n,this.needsAxes={x:!0,y:!0}}async initializeChildren(){de(this,Sr,await Promise.all(this.spec.layer.map((n,r)=>this.context.createOrImportView(n,this,this,"grid"+r,i=>{if(!cp(i)&&!up(i))throw new Ki("LayerView accepts only unit or layer specs as children!",this)}))))}get children(){return G(this,Sr).slice()}*[Symbol.iterator](){for(const n of G(this,Sr))yield n}render(n,r,i={}){if(super.render(n,r,i),!!this.isConfiguredVisible()){n.pushView(this,r);for(const a of G(this,Sr))a.render(n,r,i);n.popView(this)}}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0);for(let r=G(this,Sr).length-1;r>=0;r--)if(G(this,Sr)[r].propagateInteractionEvent(n),n.stopped)return;this.handleInteractionEvent(void 0,n,!1)}}Sr=new WeakMap;class Av{constructor(t,n){this.n=t,this.maxCols=n??1/0}get nRows(){return this.maxCols==1/0?1:Math.ceil(this.n/this.maxCols)}get nCols(){return Math.min(this.n,this.maxCols)}get rowIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const a=[];t.push(a);for(let o=0;o<n;o++){const s=i*n+o;s<this.n&&a.push(s)}}return t}get colIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const a=[];t.push(a);for(let o=0;o<r;o++){const s=o*n+i;s<this.n&&a.push(s)}}return t}getCellIndex(t,n){let r=0;if(this.maxCols==1/0)r=n==0?t:void 0;else{if(t>=this.maxCols)return;r=n*this.nCols+t}return r<this.n?r:void 0}getCellCoords(t){if(!(t<0||t>=this.n))return[t%this.nCols,Math.floor(t/this.nCols)]}}const r7="chromosome_ticks_and_labels",i7={x:"width",y:"height"};function ap(e){return e=="x"?"y":"x"}const vf={x:["bottom","top"],y:["left","right"]},op=Object.fromEntries(Object.entries(vf).map(([e,t])=>t.map(n=>[n,e])).flat(1));function ti(e){return op[e]}class Ev extends ml{constructor(t,n,r,i,a,o){const s=n=="locus",u={...s?o7:_v,...a7(n,t),...t};super(s?s7(u,n):Sv(u,n),r,i,a,`axis_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...o}),this.axisProps=u}getSize(){const t={px:this.getPerpendicularSize()},n={grow:1};return op[this.axisProps.orient]=="x"?new Jr(n,t):new Jr(t,n)}getPerpendicularSize(){return sp(this.axisProps)}isPickingSupported(){return!1}}function sp(e){const t=ti(e.orient);let n=e.ticks&&e.tickSize||0;return e.labels&&(n+=e.labelPadding,t=="x"?n+=e.labelFontSize:n+=30),e.title&&(n+=e.titlePadding+e.titleFontSize),n=Math.min(e.maxExtent||1/0,Math.max(e.minExtent||0,n)),n}const _v={values:null,minExtent:20,maxExtent:1/0,offset:0,domain:!0,domainWidth:1,domainColor:"gray",domainDash:null,domainDashOffset:0,domainCap:"square",ticks:!0,tickSize:5,tickWidth:1,tickColor:"gray",tickDash:null,tickDashOffset:0,tickCap:"square",tickCount:null,tickMinStep:null,labels:!0,labelAlign:"center",labelBaseline:"middle",labelPadding:4,labelFontSize:10,labelLimit:180,labelColor:"black",format:null,titleColor:"black",titleFont:"sans-serif",titleFontSize:10,titlePadding:3};function a7(e,t){const n=t.orient,r=e=="nominal"||e=="ordinal";let i="center",a="middle",o=t.labelAngle??((n=="top"||n=="bottom")&&r?-90:0);switch(n){case"left":i="right";break;case"right":i="left";break;case"top":case"bottom":Math.abs(o)>30?(i=o>0==(n=="bottom")?"left":"right",a="middle"):a=n=="top"?"alphabetic":"top";break}return{labelAlign:i,labelAngle:o,labelBaseline:a}}function Sv(e,t){const n={...e,extent:sp(e)},r=ti(n.orient),i=ap(r),a=n.orient=="bottom"||n.orient=="right"?1:-1,o=n.orient=="bottom"||n.orient=="left"?1:0,s=()=>({name:"domain",data:{values:[0]},mark:{type:"rule",clip:!1,strokeDash:n.domainDash,strokeCap:n.domainCap,color:n.domainColor,[i]:o,size:n.domainWidth}}),u=()=>({name:"labels",mark:{type:"text",clip:!1,align:n.labelAlign,angle:n.labelAngle,baseline:n.labelBaseline,[i+"Offset"]:(n.tickSize+n.labelPadding)*a,[i]:o,size:n.labelFontSize,color:n.labelColor,minBufferSize:1500},encoding:{[r]:{field:"value",type:t},text:{field:"label"}}}),l=()=>({name:"ticks",mark:{type:"rule",clip:!1,strokeDash:n.tickDash,strokeCap:n.tickCap,color:n.tickColor,size:n.tickWidth,minBufferSize:300},encoding:{[i]:{value:o},[i+"2"]:{value:o-n.tickSize/n.extent*(o?1:-1)}}}),c=()=>({name:"title",data:{values:[0]},mark:{type:"text",clip:!1,align:"center",baseline:n.orient=="bottom"?"bottom":"top",angle:[0,90,0,-90][["top","right","bottom","left"].indexOf(n.orient)],text:n.title,color:n.titleColor,[r]:.5,[i]:1-o}}),f=()=>{const d={name:"ticks_and_labels",encoding:{[r]:{field:"value",type:t}},layer:[]};return n.ticks&&d.layer.push(l()),n.labels&&d.layer.push(u()),d},h={resolve:{scale:{[r]:"forced"}},[i7[ap(r)]]:n.extent,data:{lazy:{type:"axisTicks",channel:r,axis:e}},layer:[]};return n.domain&&h.layer.push(s()),(n.ticks||n.labels)&&h.layer.push(f()),n.title&&h.layer.push(c()),h}const o7={..._v,chromTicks:!0,chromTickSize:18,chromTickWidth:1,chromTickColor:"#989898",chromTickDash:[4,2],chromTickDashOffset:1,chromLabels:!0,chromLabelFontSize:13,chromLabelFontWeight:"normal",chromLabelFontStyle:"normal",chromLabelColor:"black",chromLabelAlign:"left",chromLabelPadding:7};function s7(e,t){const n={...e,extent:sp(e)},r=ti(n.orient),i=ap(r),a=n.orient=="bottom"||n.orient=="left"?1:0,o=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:e.chromTickDash,strokeDashOffset:e.chromTickDashOffset,[i]:a,[i+"2"]:a-n.chromTickSize/n.extent*(a?1:-1),color:e.chromTickColor,size:n.chromTickWidth}}),s=()=>{let c;switch(n.orient){case"top":c={y:0,angle:0,paddingX:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":c={y:1,angle:0,paddingX:4,dy:n.chromLabelPadding+n.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":c={x:1,angle:-90,paddingY:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":c={x:0,angle:90,align:"right",paddingY:4,dy:-n.chromLabelPadding};break;default:c={}}return{name:"chromosome_labels",mark:{type:"text",size:n.chromLabelFontSize,font:n.chromLabelFont,fontWeight:n.chromLabelFontWeight,fontStyle:n.chromLabelFontStyle,color:n.chromLabelColor,align:e.chromLabelAlign,baseline:"alphabetic",clip:!1,...c},encoding:{[r+"2"]:{field:"continuousEnd",type:t},text:{field:"name"}}}};let u;switch(n.orient){case"bottom":case"top":u={};break;case"left":u={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":u={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:u={}}const l=Sv({...e,...u},t);if(e.chromTicks||e.chromLabels){const c={name:r7,data:{lazy:{type:"axisGenome",channel:ti(n.orient)}},encoding:{[r]:{field:"continuousStart",type:t,band:0}},layer:[]};if(e.chromTicks&&c.layer.push(o()),e.chromLabels){c.layer.push(s());let f;l.layer.filter(h=>h.name=="ticks_and_labels").forEach(h=>h.layer.filter(d=>d.name=="labels").forEach(d=>{f=d.mark})),f&&(n.orient=="top"||n.orient=="bottom"?(f.viewportEdgeFadeWidthLeft=30,f.viewportEdgeFadeDistanceLeft=40):(f.viewportEdgeFadeWidthBottom=30,f.viewportEdgeFadeDistanceBottom=40))}l.layer.push(c)}return l}class l7 extends ml{constructor(t,n,r,i,a,o){const u={...n=="locus"?u7:Cv,...t};super(d7(u,n),r,i,a,`axisGrid_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...o}),this.axisProps=u}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const Cv={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},u7={...Cv,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function c7(e,t){const n=e,r=ti(n.orient);return{name:"grid_lines",data:{lazy:{type:"axisTicks",channel:r,axis:e}},mark:{type:"rule",strokeDash:n.gridDash,strokeCap:n.gridCap,color:n.gridColor,size:n.gridWidth,opacity:n.gridOpacity,minBufferSize:300},encoding:{[r]:{field:"value",type:t}}}}function f7(e,t){const n=e,r=ti(n.orient);return{name:"chromosome_lines",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rule",strokeDash:n.chromGridDash,strokeCap:n.chromGridCap,color:n.chromGridColor,size:n.chromGridWidth,opacity:n.chromGridOpacity},encoding:{[r]:{field:"continuousStart",type:t,band:0}}}}function h7(e,t){const n=e,r=ti(n.orient);return{name:"chromosome_fill",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rect"},encoding:{[r]:{field:"continuousStart",type:t,band:0},[r+"2"]:{field:"continuousEnd",band:0},fill:{field:"odd",type:"nominal",scale:{domain:[!1,!0],range:[n.chromGridFillEven??"white",n.chromGridFillOdd??"white"]}},opacity:{field:"odd",type:"nominal",scale:{type:"ordinal",domain:[!1,!0],range:[n.chromGridFillEven?1:0,n.chromGridFillOdd?1:0]}}}}}function d7(e,t){const n={...e},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(h7(n,t)),n.chromGrid&&n.chromGridOpacity>0&&r.push(f7(n,t)),n.grid&&n.gridOpacity>0&&r.push(c7(n,t)),{name:"grid_layers",configurableVisibility:!1,resolve:{scale:{[ti(e.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const kv={anchor:"middle",frame:"group",offset:10,orient:"top",align:void 0,angle:0,baseline:"alphabetic",dx:0,dy:0,color:void 0,font:void 0,fontSize:12,fontStyle:"normal",fontWeight:"normal"},p7={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},g7={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},m7={start:0,middle:.5,end:1},b7={start:"left",middle:"center",end:"right"};function y7(e){if(!e)return;const t=Ue(e)?{text:e}:e;if(!t.text||t.orient=="none")return;const n={"track-title":p7,overlay:g7}[t.style]??{},r={...kv,...n,...t};let i={},a={x:0,y:0};const o=m7[r.anchor??"middle"];switch(r.orient){case"top":a={x:o,y:1},i={baseline:"alphabetic",angle:0};break;case"right":a={x:1,y:1-o},i={baseline:"alphabetic",angle:90};break;case"bottom":a={x:o,y:0},i={baseline:"top",angle:0};break;case"left":a={x:0,y:o},i={baseline:"alphabetic",angle:-90};break}const s={...kv,...i,...n,...t},u={xOffset:0,yOffset:0};switch(r.orient){case"top":u.yOffset=-s.offset;break;case"right":u.xOffset=s.offset;break;case"bottom":u.yOffset=s.offset;break;case"left":u.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...a,...u,text:s.text,align:s.align??b7[s.anchor],angle:s.angle,baseline:s.baseline,dx:s.dx,dy:s.dy,color:s.color,font:s.font,size:s.fontSize,fontStyle:s.fontStyle,fontWeight:s.fontWeight}}}class w7{constructor(t){Y(this,Ea,void 0);Y(this,wi,0);Y(this,vi,0);de(this,Ea,new Array(t))}push(t){G(this,Ea)[G(this,wi)]=t,de(this,wi,(G(this,wi)+1)%this.size),de(this,vi,Math.min(G(this,vi)+1,this.size))}get(){const t=G(this,Ea);return G(this,vi)<this.size?t.slice(0,G(this,vi)):t.slice(G(this,wi),this.size).concat(t.slice(0,G(this,wi)))}get size(){return G(this,Ea).length}get length(){return G(this,vi)}}Ea=new WeakMap,wi=new WeakMap,vi=new WeakMap;let Ji,Tv=0;function Iv(){return performance.now()-Tv<50}function v7(e){return function(...t){Tv=performance.now(),e(...t)}}function x7(e,t,n,r,i){if(n=v7(n),e.type=="wheel"){e.uiEvent.preventDefault();const a=e.uiEvent,o=a.deltaMode?120:1;if(!a.deltaX&&!a.deltaY)return;Ji==null||Ji.stop();let{x:s,y:u}=e.point;if(r){const l=r.mark.encoders;l.x&&!l.x2&&!l.x.constantValue&&(s=+l.x(r.datum)*t.width+t.x),l.y&&!l.y2&&!l.y.constantValue&&(u=(1-+l.y(r.datum))*t.height+t.y)}Math.abs(a.deltaX)<Math.abs(a.deltaY)?n({x:s,y:u,xDelta:0,yDelta:0,zDelta:a.deltaY*o/300}):n({x:s,y:u,xDelta:-a.deltaX*o,yDelta:0,zDelta:0})}else if(e.type=="mousedown"&&e.uiEvent.button===0){Ji&&Ji.stop();const a=new w7(30),o=e.uiEvent;o.preventDefault();let s=ei.fromMouseEvent(o);const u=f=>{const h=ei.fromMouseEvent(f);a.push({point:h,timestamp:performance.now()});const d=h.subtract(s);n({x:s.x,y:s.y,xDelta:d.x,yDelta:d.y,zDelta:0}),s=h},l=()=>{const h=performance.now(),d=a.get().filter(S=>h-S.timestamp<160);if(d.length<5||!i||A7(d))return;const p=d.at(-1),m=d[0],y=p.point.subtract(m.point).multiply(1/(p.timestamp-m.timestamp));let w=s.x,x=s.y;Ji=ip(i,S=>{n({x:S.x,y:S.y,xDelta:w-S.x,yDelta:x-S.y,zDelta:0}),w=S.x,x=S.y},150,.5,{x:w,y:x}),Ji({x:s.x-y.x*250,y:s.y-y.y*250})},c=()=>{document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",c),l()};document.addEventListener("mouseup",c,!1),document.addEventListener("mousemove",u,!1)}}function A7(e){const t=e[Math.floor(e.length/2)],n=t.point.subtract(e[0].point).multiply(t.timestamp-e[0].timestamp),r=e.at(-1).point.subtract(t.point).multiply(e.at(-1).timestamp-t.timestamp),i=n.length,a=r.length,o=.4;return a/i<o}class E7 extends gl{constructor(n,r,i,a,o,s,u){super(n,r,i,a,o,u);Y(this,Cr);Y(this,kh);Y(this,Sa);Y(this,Ru);Y(this,Fu);Y(this,Mu);Y(this,Th);Y(this,Jo);Y(this,Ih);Y(this,Qo,1/0);Y(this,Xo,10);Y(this,nn,[]);Y(this,_a,{});Y(this,Ko,0);this.spec=n,de(this,Xo,n.spacing??10),de(this,Qo,s),de(this,nn,[]),this.wrappingFacet=!1}appendChild(n){n.layoutParent??(n.layoutParent=this),G(this,nn).push(new Dv(n,this,G(this,Ko))),h4(this,Ko)._++}setChildren(n){de(this,nn,[]);for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=G(this,nn).findIndex(a=>a.view==n);if(i>=0)G(this,nn)[i]=new Dv(r,this,G(this,Ko));else throw new Error("Not my child view!")}get children(){return G(this,nn).map(n=>n.view)}get childCount(){return G(this,nn).length}async createAxes(){const n=[];for(const r of $a){const i=this.resolutions.axis[r];if(i){const a=i.getAxisProps();if(a){const o={title:i.getTitle(),orient:vf[r][0],...a},s=new Ev(o,i.scaleResolution.type,this.context,this,this);n.push(s.initializeChildren()),G(this,_a)[r]=s}}}return Promise.all([...n,...G(this,nn).map(r=>r.createAxes())])}*[Symbol.iterator](){for(const n of G(this,nn))yield*n.getChildren();for(const n of Object.values(G(this,_a)))yield n}getOverhang(){return K(this,Th,v4).call(this).union(K(this,Jo,Nh).call(this))}getSize(){return this._cache("size",()=>new Jr(K(this,Fu,Gm).call(this,"column"),K(this,Fu,Gm).call(this,"row")).addPadding(K(this,Jo,Nh).call(this)))}render(n,r,i={}){if(super.render(n,r,i),!this.isConfiguredVisible())return;this.layoutParent||(r=r.shrink(this.getPadding())),r=r.shrink(K(this,Jo,Nh).call(this)),n.pushView(this,r);const a={devicePixelRatio:this.context.devicePixelRatio},o=Qw(K(this,Ru,Um).call(this,"column"),r.width,a),s=Qw(K(this,Ru,Um).call(this,"row"),r.height,a),u=new Av(G(this,Cr,Ta).length,G(this,Qo)??1/0),l=c=>Math.round(c*devicePixelRatio)/devicePixelRatio;for(const[c,f]of G(this,Cr,Ta).entries()){const{view:h,axes:d,gridLines:p,background:m,backgroundStroke:y,title:w}=f,[x,S]=u.getCellCoords(c),_=o[K(this,Mu,Hm).call(this,"column",x)],T=s[K(this,Mu,Hm).call(this,"row",S)],I=h.getViewportSize(),B=h.getSize(),R=h.getOverhang(),M=_.location-R.left,H=T.location-R.top,O=(Oe,L)=>(Oe[L].grow?(L=="width"?_:T).size:Oe[L].px)+R[L],re=O(I,"width"),se=O(I,"height"),te=O(B,"width"),me=O(B,"height"),Ke=f.scrollbars.horizontal,Re=f.scrollbars.vertical,Je=Ke?()=>l(Ke.viewportOffset):()=>0,We=Re?()=>l(Re.viewportOffset):()=>0,et=new pr(()=>r.x+M,()=>r.y+H,()=>re,()=>se),Se=h.isScrollable(),Ce=Se?new pr(()=>r.x+M-Je(),()=>r.y+H-We(),()=>te,()=>me):et;f.coords=et;const gt=i.clipRect?et.intersect(i.clipRect):et;m==null||m.render(n,gt,{...i,clipRect:void 0});for(const Oe of Object.values(p))Oe.render(n,et,i);const qt=k7(h)||Se;qt&&h.render(n,Ce,{...i,clipRect:gt}),y==null||y.render(n,gt,{...i,clipRect:void 0});for(const[Oe,L]of Object.entries(d)){const P=Oe=="left"||Oe=="right"?"vertical":"horizontal",q=f.scrollbars[P],j=q?et.modify(P=="vertical"?{y:()=>Ce.y,height:me}:{x:()=>Ce.x,width:te}):et,Z=Bv(j,Oe,L);let C=i.clipRect;q&&(C=Z.intersect(C).intersect(q?et.modify(P=="vertical"?{x:-1e5,width:2e5}:{y:-1e5,height:2e5}):void 0)),L.render(n,Z,{...i,clipRect:C})}for(const Oe of Object.values(G(this,_a))){const P=Oe.axisProps.orient;(P=="left"&&x==0||P=="right"&&x==u.nCols-1||P=="top"&&S==0||P=="bottom"&&S==u.nRows-1)&&Oe.render(n,Bv(et.shrink(f.view.getOverhang()),P,Oe),i)}qt||h.render(n,Ce,i);for(const Oe of Object.values(f.scrollbars))Oe.updateScrollbar(et,Ce),Oe.render(n,r,i);w==null||w.render(n,et,i)}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=G(this,Cr,Ta).find(a=>a.coords.containsPoint(n.point.x,n.point.y));for(const a of Object.values((r==null?void 0:r.scrollbars)??{}))if(a.coords.containsPoint(n.point.x,n.point.y)&&(a.propagateInteractionEvent(n),n.stopped))return;const i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof Xt||i instanceof ml)&&x7(n,r.coords,a=>K(this,Ih,x4).call(this,r.coords,r.view,a),this.context.getCurrentHover(),this.context.animator)),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}Qo=new WeakMap,Xo=new WeakMap,nn=new WeakMap,_a=new WeakMap,Ko=new WeakMap,Cr=new WeakSet,Ta=function(){return G(this,nn).filter(n=>n.view.isConfiguredVisible())},kh=new WeakSet,w4=function(){return new Av(G(this,Cr,Ta).length,G(this,Qo)??1/0)},Sa=new WeakSet,zu=function(n){const r=n=="column"?"width":"height",i=(a,o)=>a.map(s=>{const l=G(this,Cr,Ta)[s].getOverhangAndPadding();return n=="column"?o?l.right:l.left:o?l.bottom:l.top}).reduce((s,u)=>Math.max(s,u),0);return this._cache(`size/directionSizes/${n}`,()=>G(this,kh,w4)[n=="column"?"colIndices":"rowIndices"].map(a=>({axisBefore:i(a,0),axisAfter:i(a,1),view:p9(a.map(o=>G(this,Cr,Ta)[o].view.getViewportSize()[r]))})))},Ru=new WeakSet,Um=function(n){const r=K(this,Sa,zu).call(this,n),i=[];i.push(cl);for(const[a,o]of r.entries())a>0&&i.push({px:G(this,Xo),grow:0}),(a==0||this.wrappingFacet)&&i.push(cl),i.push({px:o.axisBefore,grow:0}),i.push(o.view),i.push({px:o.axisAfter,grow:0}),(a==r.length-1||this.wrappingFacet)&&i.push(cl);return i},Fu=new WeakSet,Gm=function(n){let r=0,i=0;const a=n=="row"?this.spec.height:this.spec.width;if(a||a===0)return Kw(a);const o=K(this,Sa,zu).call(this,n);for(const[s,u]of o.entries())s>0&&(i+=G(this,Xo)),(s==0||this.wrappingFacet)&&(i+=0),i+=u.axisBefore,i+=u.view.px??0,r+=u.view.grow??0,i+=u.axisAfter,(s==o.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},Mu=new WeakSet,Hm=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},Th=new WeakSet,v4=function(){const n=K(this,Sa,zu).call(this,"column"),r=K(this,Sa,zu).call(this,"row");return!n.length||!r.length?St.zero():new St(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)},Jo=new WeakSet,Nh=function(){const n=r=>{const i=op[r],a=G(this,_a)[i];return(a==null?void 0:a.axisProps.orient)!==r?0:Math.max(a.getPerpendicularSize()+a.axisProps.offset,0)};return new St(n("top"),n("right"),n("bottom"),n("left"))},Ih=new WeakSet,x4=function(n,r,i){for(const[a,o]of Object.entries(C7(r))){if(o.size<=0)continue;const s=n.normalizePoint(i.x,i.y),u=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),l={x:u.x-s.x,y:u.y-s.y};for(const c of o)c.zoom(2**i.zDelta,a=="y"?1-s[a]:s[a],a=="x"?l.x:-l.y)}this.context.animator.requestRender()};function _7(e){if(!(!e||!e.fill||e.fillOpacity===0))return{configurableVisibility:!1,data:{values:[{}]},mark:{color:e.fill,opacity:e.fillOpacity??1,type:"rect",clip:!1,tooltip:null,minHeight:1,minOpacity:0}}}function S7(e){if(!(!e||!e.stroke||e.strokeWidth===0||e.strokeOpacity===0))return{configurableVisibility:!1,resolve:{scale:{x:"excluded",y:"excluded"},axis:{x:"excluded",y:"excluded"}},data:{values:[{x:0,y:0,x2:1,y2:0},{x:1,y:0,x2:1,y2:1},{x:1,y:1,x2:0,y2:1},{x:0,y:1,x2:0,y2:0}]},mark:{size:e.strokeWidth??1,color:e.stroke??"lightgray",strokeCap:"square",strokeOpacity:e.strokeOpacity??1,type:"rule",clip:!1,tooltip:null},encoding:{x:{field:"x",type:"quantitative",scale:null},y:{field:"y",type:"quantitative",scale:null},x2:{field:"x2"},y2:{field:"y2"}}}}function C7(e){const t={x:new Set,y:new Set};return e.visit(n=>{for(const[r,i]of Object.entries(t)){const a=n.getScaleResolution(r);a&&a.isZoomable()&&i.add(a)}}),t}function k7(e){let t=!0;return e.visit(n=>{n instanceof Xt&&t&&(t=n.mark.properties.clip===!0)}),t}function Bv(e,t,n){const r=n.axisProps,i=n.getPerpendicularSize();if(t=="bottom")return e.translate(0,e.height+r.offset).modify({height:i});if(t=="top")return e.translate(0,-i-r.offset).modify({height:i});if(t=="left")return e.translate(-i-r.offset,0).modify({width:i});if(t=="right")return e.translate(e.width+r.offset,0).modify({width:i})}class Dv{constructor(t,n,r){if(this.layoutParent=n,this.view=t,this.serial=r,this.background=void 0,this.backgroundStroke=void 0,this.axes={},this.gridLines={},this.scrollbars={},this.title=void 0,this.coords=pr.ZERO,t.needsAxes.x||t.needsAxes.y){const i=t.spec,a="view"in i?i==null?void 0:i.view:void 0,o=_7(a);o&&(this.background=new Xt(o,n.context,n,t,"background"+r,{blockEncodingInheritance:!0}));const s=S7(a);s&&(this.backgroundStroke=new Xt(s,n.context,n,t,"backgroundStroke"+r,{blockEncodingInheritance:!0}));const u=y7(t.spec.title);if(u){const l=new Xt(u,n.context,n,t,"title"+r,{blockEncodingInheritance:!0});this.title=l}}t.spec.viewportWidth!=null&&(this.scrollbars.horizontal=new Rv(this,"horizontal")),t.spec.viewportHeight!=null&&(this.scrollbars.vertical=new Rv(this,"vertical"))}*getChildren(){this.background&&(yield this.background),this.backgroundStroke&&(yield this.backgroundStroke),this.title&&(yield this.title),yield*Object.values(this.axes),yield*Object.values(this.gridLines),yield this.view,yield*Object.values(this.scrollbars)}async createAxes(){const{view:t,axes:n,gridLines:r}=this,i=(s,u)=>{const l=s.getAxisProps();if(l===null)return;const c=l?{...l}:{};if(!c.orient){for(const f of vf[u])if(!n[f]){c.orient=f;break}if(!c.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(c.title??(c.title=s.getTitle()),!vf[u].includes(c.orient))throw new Error(`Invalid axis orientation "${c.orient}" on channel "${u}"!`);return c},a=async(s,u,l)=>{const c=i(s,u);if(c){if(n[c.orient])throw new Error(`An axis with the orient "${c.orient}" already exists!`);const f=new Ev(c,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);n[c.orient]=f,await f.initializeChildren()}},o=async(s,u,l)=>{const c=i(s,u);if(c&&(c.grid||c.chromGrid)){const f=new l7(c,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);r[c.orient]=f,await f.initializeChildren()}};for(const s of["x","y"])if(t.needsAxes[s]){const u=t.resolutions.axis[s];if(!u)continue;await a(u,s,t)}for(const s of["x","y"])if(t.needsAxes[s]){const u=t.getAxisResolution(s);if(!u)continue;await o(u,s,t)}if(t instanceof ml){for(const s of t)for(const[u,l]of Object.entries(s.resolutions.axis)){const c=l.getAxisProps();c&&c.orient&&await a(l,u,s)}for(const s of t)for(const[u,l]of Object.entries(s.resolutions.axis)){const c=l.getAxisProps();c&&!c.orient&&await a(l,u,s)}}[...Object.values(n),...Object.values(r)].forEach(s=>s.visit(u=>{u instanceof Xt&&u.resolve("scale")}))}getOverhang(){const t=n=>{const r=this.axes[n];return r?Math.max(r.getPerpendicularSize()+r.axisProps.offset,0):0};return new St(t("top"),t("right"),t("bottom"),t("left")).add(this.view.getOverhang())}getOverhangAndPadding(){return this.getOverhang().add(this.view.getPadding())}}class Rv extends Xt{constructor(n,r){const i={scrollbarSize:8,scrollbarPadding:2};super({data:{values:[{}]},mark:{type:"rect",fill:"#b0b0b0",fillOpacity:.6,stroke:"white",strokeWidth:1,strokeOpacity:1,cornerRadius:5,clip:!1},configurableVisibility:!1},n.layoutParent.context,n.layoutParent,n.view,"scrollbar-"+r,{blockEncodingInheritance:!0});Y(this,es,void 0);Y(this,Pu,pr.ZERO);Y(this,xi,0);Y(this,Ca,0);Pt(this,"viewportOffset",0);this.config=i,de(this,es,r),this.interpolateViewportOffset=ip(this.context.animator,a=>{this.viewportOffset=a.x},50,.4,{x:this.viewportOffset}),this.addInteractionEventListener("mousedown",(a,o)=>{if(o.stopPropagation(),G(this,xi)<=0)return;const s=d=>r=="vertical"?d.clientY:d.clientX,u=o.uiEvent;u.preventDefault();const l=this.scrollOffset,c=s(u),f=d=>{const p=Oa(s(d)-c+l,0,G(this,xi));this.interpolateViewportOffset({x:p/G(this,xi)*G(this,Ca)})},h=()=>{document.removeEventListener("mousemove",f),document.removeEventListener("mouseup",h)};document.addEventListener("mouseup",h,!1),document.addEventListener("mousemove",f,!1)})}get scrollOffset(){return this.viewportOffset/G(this,Ca)*G(this,xi)}render(n,r,i){super.render(n,G(this,Pu),i)}updateScrollbar(n,r){const i=this.config.scrollbarPadding,a=this.config.scrollbarSize,o=G(this,es)=="horizontal"?"width":"height",s=Math.min(1,n[o]/r[o]),u=n[o]-2*i,l=s*u;de(this,xi,u-l),de(this,Ca,r[o]-n[o]),this.viewportOffset=Oa(this.viewportOffset,0,G(this,Ca)),de(this,Pu,G(this,es)=="vertical"?new pr(()=>n.x+n.width-a-i,()=>n.y+i+this.scrollOffset,()=>a,()=>l):new pr(()=>n.x+i+this.scrollOffset,()=>n.y+n.height-a-i,()=>l,()=>a))}}es=new WeakMap,Pu=new WeakMap,xi=new WeakMap,Ca=new WeakMap;class lp extends E7{constructor(t,n,r,i,a){super(t,n,r,i,a,fp(t)?t.columns:xf(t)?1:1/0),this.spec=t}async initializeChildren(){const t=this.spec,n=fp(t)?t.concat:xf(t)?t.vconcat:t.hconcat;this.setChildren(await Promise.all(n.map((r,i)=>this.context.createOrImportView(r,this,this,"grid"+i)))),await this.createAxes()}getDefaultResolution(t,n){return n=="axis"?"independent":xf(this.spec)&&t==="x"||Pv(this.spec)&&t==="y"?"shared":"independent"}}const Fv="viewRoot";class T7{constructor(t={}){Y(this,ts,new Map);this.options={allowImport:!0,wrapRoot:!0,...t};const n=r=>(i,a,o,s,u)=>new r(i,a,o,s,i.name??u);this.addViewType(cp,n(ml)),this.addViewType(up,n(Xt)),this.addViewType(xf,n(lp)),this.addViewType(Pv,n(lp)),this.addViewType(fp,n(lp)),this.addViewType(D7,()=>{throw new Error("SampleView is not supported by the @genome-spy/core package. Use @genome-spy/app instead!")})}addViewType(t,n){G(this,ts).set(t,n)}createView(t,n,r,i,a){for(const[o,s]of G(this,ts))if(o(t))return s(t,n,r,i,a);throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(t)]))}isViewSpec(t){const n=[...G(this,ts).keys()].filter(r=>r(t));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}async createOrImportView(t,n,r,i,a,o){let s;if(B7(t)){let l;if("url"in t.import)if(this.options.allowImport)l=await MF(t,i.getBaseUrl(),n);else throw new Ki("Importing views is not allowed!",r);else if("template"in t.import)l=Mv(t.import.template,i);else throw new Error("Invalid import: "+JSON.stringify(t));o==null||o(l),I7(l,t),s=l}else s=t;!i&&this.options.wrapRoot&&(up(s)||cp(s))&&a===Fv&&(s={name:"implicitRoot",vconcat:[s]});const u=this.createView(s,n,r,i,a);return u instanceof gl&&await u.initializeChildren(),u}}ts=new WeakMap;function Mv(e,t){var r,i;const n=(i=(r=t.spec)==null?void 0:r.templates)==null?void 0:i[e];if(n)return structuredClone(n);if(t.dataParent)return Mv(e,t.dataParent);throw new Error(`Cannot find template "${e}" in current view or its ancestors!`)}function I7(e,t){t.name!=null&&(e.name=t.name);const n=xt(t.params)?t.params:kt(t.params)?Object.entries(t.params).map(([r,i])=>({name:r,value:i})):[];if(n.length){e.params??(e.params=[]);for(const r of n){const i=e.params.findIndex(a=>a.name==r.name);i>=0&&(e.params[i]=r)}for(const r of n)e.params.some(i=>i.name==r.name)||e.params.push(r)}}function up(e){return"mark"in e&&(Ue(e.mark)||kt(e.mark))}function cp(e){return"layer"in e&&kt(e.layer)}function B7(e){return"import"in e}function xf(e){return"vconcat"in e&&xt(e.vconcat)}function Pv(e){return"hconcat"in e&&xt(e.hconcat)}function fp(e){return"concat"in e&&xt(e.concat)}function D7(e){return"samples"in e&&kt(e.samples)&&"spec"in e&&kt(e.spec)}function R7(e){const t=Math.floor(Math.random()*16777215).toString(16),n=[];for(const r of e.paramConfigs.values()){const i=r.bind;if(!i||!("input"in i))continue;const a=r.name,o=e.getSetter(a),s=e.getValue(a),u=i.name??a,l=i.debounce?yf(o,i.debounce,!1):o,c=`${t}-param-${a}`;if(i.input=="range")n.push(Xe`<label for=${c}>${u}</label>
417
+ `:"";return Je`${s}${o}`}class El extends yv{constructor(t,n,r,i,o,a){super(t,n,r,i,o,a),this.spec=t}async initializeChildren(){}*[Symbol.iterator](){}replaceChild(t,n){throw new Error("Not implemented")}visit(t){let n;try{n=t(this)}catch(r){throw r.view=this,r}if(n===vl)return n;if(n!==Q9){t.beforeChildren&&t.beforeChildren(this);for(const r of this){const i=r.visit(t);if(i===vl)return i}t.afterChildren&&t.afterChildren(this),t.postOrder&&t.postOrder(this)}}findDescendantByPath(t){for(const n of this)if(n.name===t[0]){if(t.length==1)return n;if(n instanceof El)return n.findDescendantByPath(t.slice(1))}}findChildByName(t){for(const n of this)if(n.name===t)return n}findDescendantByName(t){let n;return this.visit(r=>{if(r.name==t)return n=r,vl}),n}getDefaultResolution(t,n){return"shared"}}class _l extends El{constructor(n,r,i,o,a,s){super(n,r,i,o,a,s);Z(this,Cr,[]);this.spec=n,this.needsAxes={x:!0,y:!0}}async initializeChildren(){le(this,Cr,await Promise.all(this.spec.layer.map((n,r)=>this.context.createOrImportView(n,this,this,"grid"+r,i=>{if(!vp(i)&&!wp(i))throw new ri("LayerView accepts only unit or layer specs as children!",this)}))))}get children(){return z(this,Cr).slice()}*[Symbol.iterator](){for(const n of z(this,Cr))yield n}render(n,r,i={}){if(super.render(n,r,i),!!this.isConfiguredVisible()){n.pushView(this,r);for(const o of z(this,Cr))o.render(n,r,i);n.popView(this)}}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0);for(let r=z(this,Cr).length-1;r>=0;r--)if(z(this,Cr)[r].propagateInteractionEvent(n),n.stopped)return;this.handleInteractionEvent(void 0,n,!1)}}Cr=new WeakMap;class zv{constructor(t,n){this.n=t,this.maxCols=n??1/0}get nRows(){return this.maxCols==1/0?1:Math.ceil(this.n/this.maxCols)}get nCols(){return Math.min(this.n,this.maxCols)}get rowIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const o=[];t.push(o);for(let a=0;a<n;a++){const s=i*n+a;s<this.n&&o.push(s)}}return t}get colIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const o=[];t.push(o);for(let a=0;a<r;a++){const s=a*n+i;s<this.n&&o.push(s)}}return t}getCellIndex(t,n){let r=0;if(this.maxCols==1/0)r=n==0?t:void 0;else{if(t>=this.maxCols)return;r=n*this.nCols+t}return r<this.n?r:void 0}getCellCoords(t){if(!(t<0||t>=this.n))return[t%this.nCols,Math.floor(t/this.nCols)]}}const O7="chromosome_ticks_and_labels",z7={x:"width",y:"height"};function gp(e){return e=="x"?"y":"x"}const Cf={x:["bottom","top"],y:["left","right"]},mp=Object.fromEntries(Object.entries(Cf).map(([e,t])=>t.map(n=>[n,e])).flat(1));function oi(e){return mp[e]}class Uv extends _l{constructor(t,n,r,i,o,a){const s=n=="locus",u={...s?G7:Gv,...U7(n,t),...t};super(s?H7(u,n):Hv(u,n),r,i,o,`axis_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...a}),this.axisProps=u}getSize(){const t={px:this.getPerpendicularSize()},n={grow:1};return mp[this.axisProps.orient]=="x"?new ii(n,t):new ii(t,n)}getPerpendicularSize(){return bp(this.axisProps)}isPickingSupported(){return!1}}function bp(e){const t=oi(e.orient);let n=e.ticks&&e.tickSize||0;return e.labels&&(n+=e.labelPadding,t=="x"?n+=e.labelFontSize:n+=30),e.title&&(n+=e.titlePadding+e.titleFontSize),n=Math.min(e.maxExtent||1/0,Math.max(e.minExtent||0,n)),n}const Gv={values:null,minExtent:20,maxExtent:1/0,offset:0,domain:!0,domainWidth:1,domainColor:"gray",domainDash:null,domainDashOffset:0,domainCap:"square",ticks:!0,tickSize:5,tickWidth:1,tickColor:"gray",tickDash:null,tickDashOffset:0,tickCap:"square",tickCount:null,tickMinStep:null,labels:!0,labelAlign:"center",labelBaseline:"middle",labelPadding:4,labelFontSize:10,labelLimit:180,labelColor:"black",format:null,titleColor:"black",titleFont:"sans-serif",titleFontSize:10,titlePadding:3};function U7(e,t){const n=t.orient,r=e=="nominal"||e=="ordinal";let i="center",o="middle",a=t.labelAngle??((n=="top"||n=="bottom")&&r?-90:0);switch(n){case"left":i="right";break;case"right":i="left";break;case"top":case"bottom":Math.abs(a)>30?(i=a>0==(n=="bottom")?"left":"right",o="middle"):o=n=="top"?"alphabetic":"top";break}return{labelAlign:i,labelAngle:a,labelBaseline:o}}function Hv(e,t){const n={...e,extent:bp(e)},r=oi(n.orient),i=gp(r),o=n.orient=="bottom"||n.orient=="right"?1:-1,a=n.orient=="bottom"||n.orient=="left"?1:0,s=()=>({name:"domain",data:{values:[0]},mark:{type:"rule",clip:!1,strokeDash:n.domainDash,strokeCap:n.domainCap,color:n.domainColor,[i]:a,size:n.domainWidth}}),u=()=>({name:"labels",mark:{type:"text",clip:!1,align:n.labelAlign,angle:n.labelAngle,baseline:n.labelBaseline,[i+"Offset"]:(n.tickSize+n.labelPadding)*o,[i]:a,size:n.labelFontSize,color:n.labelColor,minBufferSize:1500},encoding:{[r]:{field:"value",type:t},text:{field:"label"}}}),l=()=>({name:"ticks",mark:{type:"rule",clip:!1,strokeDash:n.tickDash,strokeCap:n.tickCap,color:n.tickColor,size:n.tickWidth,minBufferSize:300},encoding:{[i]:{value:a},[i+"2"]:{value:a-n.tickSize/n.extent*(a?1:-1)}}}),c=()=>({name:"title",data:{values:[0]},mark:{type:"text",clip:!1,align:"center",baseline:n.orient=="bottom"?"bottom":"top",angle:[0,90,0,-90][["top","right","bottom","left"].indexOf(n.orient)],text:n.title,color:n.titleColor,[r]:.5,[i]:1-a}}),f=()=>{const d={name:"ticks_and_labels",encoding:{[r]:{field:"value",type:t}},layer:[]};return n.ticks&&d.layer.push(l()),n.labels&&d.layer.push(u()),d},h={resolve:{scale:{[r]:"forced"}},[z7[gp(r)]]:n.extent,data:{lazy:{type:"axisTicks",channel:r,axis:e}},layer:[]};return n.domain&&h.layer.push(s()),(n.ticks||n.labels)&&h.layer.push(f()),n.title&&h.layer.push(c()),h}const G7={...Gv,chromTicks:!0,chromTickSize:18,chromTickWidth:1,chromTickColor:"#989898",chromTickDash:[4,2],chromTickDashOffset:1,chromLabels:!0,chromLabelFontSize:13,chromLabelFontWeight:"normal",chromLabelFontStyle:"normal",chromLabelColor:"black",chromLabelAlign:"left",chromLabelPadding:7};function H7(e,t){const n={...e,extent:bp(e)},r=oi(n.orient),i=gp(r),o=n.orient=="bottom"||n.orient=="left"?1:0,a=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:e.chromTickDash,strokeDashOffset:e.chromTickDashOffset,[i]:o,[i+"2"]:o-n.chromTickSize/n.extent*(o?1:-1),color:e.chromTickColor,size:n.chromTickWidth}}),s=()=>{let c;switch(n.orient){case"top":c={y:0,angle:0,paddingX:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":c={y:1,angle:0,paddingX:4,dy:n.chromLabelPadding+n.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":c={x:1,angle:-90,paddingY:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":c={x:0,angle:90,align:"right",paddingY:4,dy:-n.chromLabelPadding};break;default:c={}}return{name:"chromosome_labels",mark:{type:"text",size:n.chromLabelFontSize,font:n.chromLabelFont,fontWeight:n.chromLabelFontWeight,fontStyle:n.chromLabelFontStyle,color:n.chromLabelColor,align:e.chromLabelAlign,baseline:"alphabetic",clip:!1,...c},encoding:{[r+"2"]:{field:"continuousEnd",type:t},text:{field:"name"}}}};let u;switch(n.orient){case"bottom":case"top":u={};break;case"left":u={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":u={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:u={}}const l=Hv({...e,...u},t);if(e.chromTicks||e.chromLabels){const c={name:O7,data:{lazy:{type:"axisGenome",channel:oi(n.orient)}},encoding:{[r]:{field:"continuousStart",type:t,band:0}},layer:[]};if(e.chromTicks&&c.layer.push(a()),e.chromLabels){c.layer.push(s());let f;l.layer.filter(h=>h.name=="ticks_and_labels").forEach(h=>h.layer.filter(d=>d.name=="labels").forEach(d=>{f=d.mark})),f&&(n.orient=="top"||n.orient=="bottom"?(f.viewportEdgeFadeWidthLeft=30,f.viewportEdgeFadeDistanceLeft=40):(f.viewportEdgeFadeWidthBottom=30,f.viewportEdgeFadeDistanceBottom=40))}l.layer.push(c)}return l}class V7 extends _l{constructor(t,n,r,i,o,a){const u={...n=="locus"?j7:Vv,...t};super(Z7(u,n),r,i,o,`axisGrid_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...a}),this.axisProps=u}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const Vv={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},j7={...Vv,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function $7(e,t){const n=e,r=oi(n.orient);return{name:"grid_lines",data:{lazy:{type:"axisTicks",channel:r,axis:e}},mark:{type:"rule",strokeDash:n.gridDash,strokeCap:n.gridCap,color:n.gridColor,size:n.gridWidth,opacity:n.gridOpacity,minBufferSize:300},encoding:{[r]:{field:"value",type:t}}}}function q7(e,t){const n=e,r=oi(n.orient);return{name:"chromosome_lines",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rule",strokeDash:n.chromGridDash,strokeCap:n.chromGridCap,color:n.chromGridColor,size:n.chromGridWidth,opacity:n.chromGridOpacity},encoding:{[r]:{field:"continuousStart",type:t,band:0}}}}function W7(e,t){const n=e,r=oi(n.orient);return{name:"chromosome_fill",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rect"},encoding:{[r]:{field:"continuousStart",type:t,band:0},[r+"2"]:{field:"continuousEnd",band:0},fill:{field:"odd",type:"nominal",scale:{domain:[!1,!0],range:[n.chromGridFillEven??"white",n.chromGridFillOdd??"white"]}},opacity:{field:"odd",type:"nominal",scale:{type:"ordinal",domain:[!1,!0],range:[n.chromGridFillEven?1:0,n.chromGridFillOdd?1:0]}}}}}function Z7(e,t){const n={...e},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(W7(n,t)),n.chromGrid&&n.chromGridOpacity>0&&r.push(q7(n,t)),n.grid&&n.gridOpacity>0&&r.push($7(n,t)),{name:"grid_layers",configurableVisibility:!1,resolve:{scale:{[oi(e.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const jv={anchor:"middle",frame:"group",offset:10,orient:"top",align:void 0,angle:0,baseline:"alphabetic",dx:0,dy:0,color:void 0,font:void 0,fontSize:12,fontStyle:"normal",fontWeight:"normal"},Y7={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},Q7={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},X7={start:0,middle:.5,end:1},K7={start:"left",middle:"center",end:"right"};function J7(e){if(!e)return;const t=Fe(e)?{text:e}:e;if(!t.text||t.orient=="none")return;const n={"track-title":Y7,overlay:Q7}[t.style]??{},r={...jv,...n,...t};let i={},o={x:0,y:0};const a=X7[r.anchor??"middle"];switch(r.orient){case"top":o={x:a,y:1},i={baseline:"alphabetic",angle:0};break;case"right":o={x:1,y:1-a},i={baseline:"alphabetic",angle:90};break;case"bottom":o={x:a,y:0},i={baseline:"top",angle:0};break;case"left":o={x:0,y:a},i={baseline:"alphabetic",angle:-90};break}const s={...jv,...i,...n,...t},u={xOffset:0,yOffset:0};switch(r.orient){case"top":u.yOffset=-s.offset;break;case"right":u.xOffset=s.offset;break;case"bottom":u.yOffset=s.offset;break;case"left":u.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...o,...u,text:s.text,align:s.align??K7[s.anchor],angle:s.angle,baseline:s.baseline,dx:s.dx,dy:s.dy,color:s.color,font:s.font,size:s.fontSize,fontStyle:s.fontStyle,fontWeight:s.fontWeight}}}class eM{constructor(t){Z(this,Io,void 0);Z(this,Ei,0);Z(this,_i,0);le(this,Io,new Array(t))}push(t){z(this,Io)[z(this,Ei)]=t,le(this,Ei,(z(this,Ei)+1)%this.size),le(this,_i,Math.min(z(this,_i)+1,this.size))}get(){const t=z(this,Io);return z(this,_i)<this.size?t.slice(0,z(this,_i)):t.slice(z(this,Ei),this.size).concat(t.slice(0,z(this,Ei)))}get size(){return z(this,Io).length}get length(){return z(this,_i)}}Io=new WeakMap,Ei=new WeakMap,_i=new WeakMap;let to,$v=0;function qv(){return performance.now()-$v<50}function tM(e){return function(...t){$v=performance.now(),e(...t)}}function nM(e,t,n,r,i){if(n=tM(n),e.type=="wheel"){e.uiEvent.preventDefault();const o=e.uiEvent,a=o.deltaMode?120:1;if(!o.deltaX&&!o.deltaY)return;to==null||to.stop();let{x:s,y:u}=e.point;if(r){const l=r.mark.encoders;l.x&&!l.x2&&!l.x.constant&&(s=+l.x(r.datum)*t.width+t.x),l.y&&!l.y2&&!l.y.constant&&(u=(1-+l.y(r.datum))*t.height+t.y)}Math.abs(o.deltaX)<Math.abs(o.deltaY)?n({x:s,y:u,xDelta:0,yDelta:0,zDelta:o.deltaY*a/300}):n({x:s,y:u,xDelta:-o.deltaX*a,yDelta:0,zDelta:0})}else if(e.type=="mousedown"&&e.uiEvent.button===0){to&&to.stop();const o=new eM(30),a=e.uiEvent;a.preventDefault();let s=$n.fromMouseEvent(a);const u=f=>{const h=$n.fromMouseEvent(f);o.push({point:h,timestamp:performance.now()});const d=h.subtract(s);n({x:s.x,y:s.y,xDelta:d.x,yDelta:d.y,zDelta:0}),s=h},l=()=>{const h=performance.now(),d=o.get().filter(S=>h-S.timestamp<160);if(d.length<5||!i||rM(d))return;const p=d.at(-1),m=d[0],y=p.point.subtract(m.point).multiply(1/(p.timestamp-m.timestamp));let w=s.x,A=s.y;to=pp(i,S=>{n({x:S.x,y:S.y,xDelta:w-S.x,yDelta:A-S.y,zDelta:0}),w=S.x,A=S.y},150,.5,{x:w,y:A}),to({x:s.x-y.x*250,y:s.y-y.y*250})},c=()=>{document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",c),l()};document.addEventListener("mouseup",c,!1),document.addEventListener("mousemove",u,!1)}}function rM(e){const t=e[Math.floor(e.length/2)],n=t.point.subtract(e[0].point).multiply(t.timestamp-e[0].timestamp),r=e.at(-1).point.subtract(t.point).multiply(e.at(-1).timestamp-t.timestamp),i=n.length,o=r.length,a=.4;return o/i<a}class iM extends El{constructor(n,r,i,o,a,s,u){super(n,r,i,o,a,u);Z(this,kr);Z(this,Lh);Z(this,Do);Z(this,Hu);Z(this,Vu);Z(this,ju);Z(this,Nh);Z(this,is);Z(this,Oh);Z(this,ts,1/0);Z(this,ns,10);Z(this,tn,[]);Z(this,Bo,{});Z(this,rs,0);this.spec=n,le(this,ns,n.spacing??10),le(this,ts,s),le(this,tn,[]),this.wrappingFacet=!1}appendChild(n){n.layoutParent??(n.layoutParent=this),z(this,tn).push(new Zv(n,this,z(this,rs))),I4(this,rs)._++}setChildren(n){le(this,tn,[]);for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=z(this,tn).findIndex(o=>o.view==n);if(i>=0)z(this,tn)[i]=new Zv(r,this,z(this,rs));else throw new Error("Not my child view!")}get children(){return z(this,tn).map(n=>n.view)}get childCount(){return z(this,tn).length}async createAxes(){const n=[];for(const r of sa){const i=this.resolutions.axis[r];if(i){const o=i.getAxisProps();if(o){const a={title:i.getTitle(),orient:Cf[r][0],...o},s=new Uv(a,i.scaleResolution.type,this.context,this,this);n.push(s.initializeChildren()),z(this,Bo)[r]=s}}}return Promise.all([...n,...z(this,tn).map(r=>r.createAxes())])}*[Symbol.iterator](){for(const n of z(this,tn))yield*n.getChildren();for(const n of Object.values(z(this,Bo)))yield n}getOverhang(){return X(this,Nh,U4).call(this).union(X(this,is,qh).call(this))}getSize(){return this._cache("size",()=>new ii(X(this,Vu,Qm).call(this,"column"),X(this,Vu,Qm).call(this,"row")).addPadding(X(this,is,qh).call(this)))}render(n,r,i={}){if(super.render(n,r,i),!this.isConfiguredVisible())return;this.layoutParent||(r=r.shrink(this.getPadding())),r=r.shrink(X(this,is,qh).call(this)),n.pushView(this,r);const o={devicePixelRatio:this.context.devicePixelRatio},a=pv(X(this,Hu,Ym).call(this,"column"),r.width,o),s=pv(X(this,Hu,Ym).call(this,"row"),r.height,o),u=new zv(z(this,kr,Mo).length,z(this,ts)??1/0),l=c=>Math.round(c*devicePixelRatio)/devicePixelRatio;for(const[c,f]of z(this,kr,Mo).entries()){const{view:h,axes:d,gridLines:p,background:m,backgroundStroke:y,title:w}=f,[A,S]=u.getCellCoords(c),_=a[X(this,ju,Xm).call(this,"column",A)],k=s[X(this,ju,Xm).call(this,"row",S)],B=h.getViewportSize(),I=h.getSize(),D=h.getOverhang(),M=_.location-D.left,G=k.location-D.top,N=(He,L)=>(He[L].grow?(L=="width"?_:k).size:He[L].px)+D[L],ne=N(B,"width"),ie=N(B,"height"),he=N(I,"width"),me=N(I,"height"),Re=f.scrollbars.horizontal,Ae=f.scrollbars.vertical,Le=Re?()=>l(Re.viewportOffset):()=>0,Oe=Ae?()=>l(Ae.viewportOffset):()=>0,et=new gr(()=>r.x+M,()=>r.y+G,()=>ne,()=>ie),Ce=h.isScrollable(),ke=Ce?new gr(()=>r.x+M-Le(),()=>r.y+G-Oe(),()=>he,()=>me):et;f.coords=et;const gt=i.clipRect?et.intersect(i.clipRect):et;m==null||m.render(n,gt,{...i,clipRect:void 0});for(const He of Object.values(p))He.render(n,et,i);const $t=lM(h)||Ce;$t&&h.render(n,ke,{...i,clipRect:gt}),y==null||y.render(n,gt,{...i,clipRect:void 0});for(const[He,L]of Object.entries(d)){const P=He=="left"||He=="right"?"vertical":"horizontal",q=f.scrollbars[P],j=q?et.modify(P=="vertical"?{y:()=>ke.y,height:me}:{x:()=>ke.x,width:he}):et,Y=Wv(j,He,L);let C=i.clipRect;q&&(C=Y.intersect(C).intersect(q?et.modify(P=="vertical"?{x:-1e5,width:2e5}:{y:-1e5,height:2e5}):void 0)),L.render(n,Y,{...i,clipRect:C})}for(const He of Object.values(z(this,Bo))){const P=He.axisProps.orient;(P=="left"&&A==0||P=="right"&&A==u.nCols-1||P=="top"&&S==0||P=="bottom"&&S==u.nRows-1)&&He.render(n,Wv(et.shrink(f.view.getOverhang()),P,He),i)}$t||h.render(n,ke,i);for(const He of Object.values(f.scrollbars))He.updateScrollbar(et,ke),He.render(n,r,i);w==null||w.render(n,et,i)}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=z(this,kr,Mo).find(o=>o.coords.containsPoint(n.point.x,n.point.y));for(const o of Object.values((r==null?void 0:r.scrollbars)??{}))if(o.coords.containsPoint(n.point.x,n.point.y)&&(o.propagateInteractionEvent(n),n.stopped))return;const i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof Qt||i instanceof _l)&&nM(n,r.coords,o=>X(this,Oh,G4).call(this,r.coords,r.view,o),this.context.getCurrentHover(),this.context.animator)),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}ts=new WeakMap,ns=new WeakMap,tn=new WeakMap,Bo=new WeakMap,rs=new WeakMap,kr=new WeakSet,Mo=function(){return z(this,tn).filter(n=>n.view.isConfiguredVisible())},Lh=new WeakSet,z4=function(){return new zv(z(this,kr,Mo).length,z(this,ts)??1/0)},Do=new WeakSet,Yu=function(n){const r=n=="column"?"width":"height",i=(o,a)=>o.map(s=>{const l=z(this,kr,Mo)[s].getOverhangAndPadding();return n=="column"?a?l.right:l.left:a?l.bottom:l.top}).reduce((s,u)=>Math.max(s,u),0);return this._cache(`size/directionSizes/${n}`,()=>z(this,Lh,z4)[n=="column"?"colIndices":"rowIndices"].map(o=>({axisBefore:i(o,0),axisAfter:i(o,1),view:q9(o.map(a=>z(this,kr,Mo)[a].view.getViewportSize()[r]))})))},Hu=new WeakSet,Ym=function(n){const r=X(this,Do,Yu).call(this,n),i=[];i.push(wl);for(const[o,a]of r.entries())o>0&&i.push({px:z(this,ns),grow:0}),(o==0||this.wrappingFacet)&&i.push(wl),i.push({px:a.axisBefore,grow:0}),i.push(a.view),i.push({px:a.axisAfter,grow:0}),(o==r.length-1||this.wrappingFacet)&&i.push(wl);return i},Vu=new WeakSet,Qm=function(n){let r=0,i=0;const o=n=="row"?this.spec.height:this.spec.width;if(o||o===0)return mv(o);const a=X(this,Do,Yu).call(this,n);for(const[s,u]of a.entries())s>0&&(i+=z(this,ns)),(s==0||this.wrappingFacet)&&(i+=0),i+=u.axisBefore,i+=u.view.px??0,r+=u.view.grow??0,i+=u.axisAfter,(s==a.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},ju=new WeakSet,Xm=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},Nh=new WeakSet,U4=function(){const n=X(this,Do,Yu).call(this,"column"),r=X(this,Do,Yu).call(this,"row");return!n.length||!r.length?St.zero():new St(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)},is=new WeakSet,qh=function(){const n=r=>{const i=mp[r],o=z(this,Bo)[i];return(o==null?void 0:o.axisProps.orient)!==r?0:Math.max(o.getPerpendicularSize()+o.axisProps.offset,0)};return new St(n("top"),n("right"),n("bottom"),n("left"))},Oh=new WeakSet,G4=function(n,r,i){for(const[o,a]of Object.entries(sM(r))){if(a.size<=0)continue;const s=n.normalizePoint(i.x,i.y),u=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),l={x:u.x-s.x,y:u.y-s.y};for(const c of a)c.zoom(2**i.zDelta,o=="y"?1-s[o]:s[o],o=="x"?l.x:-l.y)}this.context.animator.requestRender()};function oM(e){if(!(!e||!e.fill||e.fillOpacity===0))return{configurableVisibility:!1,data:{values:[{}]},mark:{color:e.fill,opacity:e.fillOpacity??1,type:"rect",clip:!1,tooltip:null,minHeight:1,minOpacity:0}}}function aM(e){if(!(!e||!e.stroke||e.strokeWidth===0||e.strokeOpacity===0))return{configurableVisibility:!1,resolve:{scale:{x:"excluded",y:"excluded"},axis:{x:"excluded",y:"excluded"}},data:{values:[{x:0,y:0,x2:1,y2:0},{x:1,y:0,x2:1,y2:1},{x:1,y:1,x2:0,y2:1},{x:0,y:1,x2:0,y2:0}]},mark:{size:e.strokeWidth??1,color:e.stroke??"lightgray",strokeCap:"square",strokeOpacity:e.strokeOpacity??1,type:"rule",clip:!1,tooltip:null},encoding:{x:{field:"x",type:"quantitative",scale:null},y:{field:"y",type:"quantitative",scale:null},x2:{field:"x2"},y2:{field:"y2"}}}}function sM(e){const t={x:new Set,y:new Set};return e.visit(n=>{for(const[r,i]of Object.entries(t)){const o=n.getScaleResolution(r);o&&o.isZoomable()&&i.add(o)}}),t}function lM(e){let t=!0;return e.visit(n=>{n instanceof Qt&&t&&(t=n.mark.properties.clip===!0)}),t}function Wv(e,t,n){const r=n.axisProps,i=n.getPerpendicularSize();if(t=="bottom")return e.translate(0,e.height+r.offset).modify({height:i});if(t=="top")return e.translate(0,-i-r.offset).modify({height:i});if(t=="left")return e.translate(-i-r.offset,0).modify({width:i});if(t=="right")return e.translate(e.width+r.offset,0).modify({width:i})}class Zv{constructor(t,n,r){if(this.layoutParent=n,this.view=t,this.serial=r,this.background=void 0,this.backgroundStroke=void 0,this.axes={},this.gridLines={},this.scrollbars={},this.title=void 0,this.coords=gr.ZERO,t.needsAxes.x||t.needsAxes.y){const i=t.spec,o="view"in i?i==null?void 0:i.view:void 0,a=oM(o);a&&(this.background=new Qt(a,n.context,n,t,"background"+r,{blockEncodingInheritance:!0}));const s=aM(o);s&&(this.backgroundStroke=new Qt(s,n.context,n,t,"backgroundStroke"+r,{blockEncodingInheritance:!0}));const u=J7(t.spec.title);if(u){const l=new Qt(u,n.context,n,t,"title"+r,{blockEncodingInheritance:!0});this.title=l}}t.spec.viewportWidth!=null&&(this.scrollbars.horizontal=new Yv(this,"horizontal")),t.spec.viewportHeight!=null&&(this.scrollbars.vertical=new Yv(this,"vertical"))}*getChildren(){this.background&&(yield this.background),this.backgroundStroke&&(yield this.backgroundStroke),this.title&&(yield this.title),yield*Object.values(this.axes),yield*Object.values(this.gridLines),yield this.view,yield*Object.values(this.scrollbars)}async createAxes(){const{view:t,axes:n,gridLines:r}=this,i=(s,u)=>{const l=s.getAxisProps();if(l===null)return;const c=l?{...l}:{};if(!c.orient){for(const f of Cf[u])if(!n[f]){c.orient=f;break}if(!c.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(c.title??(c.title=s.getTitle()),!Cf[u].includes(c.orient))throw new Error(`Invalid axis orientation "${c.orient}" on channel "${u}"!`);return c},o=async(s,u,l)=>{const c=i(s,u);if(c){if(n[c.orient])throw new Error(`An axis with the orient "${c.orient}" already exists!`);const f=new Uv(c,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);n[c.orient]=f,await f.initializeChildren()}},a=async(s,u,l)=>{const c=i(s,u);if(c&&(c.grid||c.chromGrid)){const f=new V7(c,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);r[c.orient]=f,await f.initializeChildren()}};for(const s of["x","y"])if(t.needsAxes[s]){const u=t.resolutions.axis[s];if(!u)continue;await o(u,s,t)}for(const s of["x","y"])if(t.needsAxes[s]){const u=t.getAxisResolution(s);if(!u)continue;await a(u,s,t)}if(t instanceof _l){for(const s of t)for(const[u,l]of Object.entries(s.resolutions.axis)){const c=l.getAxisProps();c&&c.orient&&await o(l,u,s)}for(const s of t)for(const[u,l]of Object.entries(s.resolutions.axis)){const c=l.getAxisProps();c&&!c.orient&&await o(l,u,s)}}[...Object.values(n),...Object.values(r)].forEach(s=>s.visit(u=>{u instanceof Qt&&u.resolve("scale")}))}getOverhang(){const t=n=>{const r=this.axes[n];return r?Math.max(r.getPerpendicularSize()+r.axisProps.offset,0):0};return new St(t("top"),t("right"),t("bottom"),t("left")).add(this.view.getOverhang())}getOverhangAndPadding(){return this.getOverhang().add(this.view.getPadding())}}class Yv extends Qt{constructor(n,r){const i={scrollbarSize:8,scrollbarPadding:2};super({data:{values:[{}]},mark:{type:"rect",fill:"#b0b0b0",fillOpacity:.6,stroke:"white",strokeWidth:1,strokeOpacity:1,cornerRadius:5,clip:!1},configurableVisibility:!1},n.layoutParent.context,n.layoutParent,n.view,"scrollbar-"+r,{blockEncodingInheritance:!0});Z(this,os,void 0);Z(this,$u,gr.ZERO);Z(this,Si,0);Z(this,Ro,0);Pt(this,"viewportOffset",0);this.config=i,le(this,os,r),this.interpolateViewportOffset=pp(this.context.animator,o=>{this.viewportOffset=o.x},50,.4,{x:this.viewportOffset}),this.addInteractionEventListener("mousedown",(o,a)=>{if(a.stopPropagation(),z(this,Si)<=0)return;const s=d=>r=="vertical"?d.clientY:d.clientX,u=a.uiEvent;u.preventDefault();const l=this.scrollOffset,c=s(u),f=d=>{const p=aa(s(d)-c+l,0,z(this,Si));this.interpolateViewportOffset({x:p/z(this,Si)*z(this,Ro)})},h=()=>{document.removeEventListener("mousemove",f),document.removeEventListener("mouseup",h)};document.addEventListener("mouseup",h,!1),document.addEventListener("mousemove",f,!1)})}get scrollOffset(){return this.viewportOffset/z(this,Ro)*z(this,Si)}render(n,r,i){super.render(n,z(this,$u),i)}updateScrollbar(n,r){const i=this.config.scrollbarPadding,o=this.config.scrollbarSize,a=z(this,os)=="horizontal"?"width":"height",s=Math.min(1,n[a]/r[a]),u=n[a]-2*i,l=s*u;le(this,Si,u-l),le(this,Ro,r[a]-n[a]),this.viewportOffset=aa(this.viewportOffset,0,z(this,Ro)),le(this,$u,z(this,os)=="vertical"?new gr(()=>n.x+n.width-o-i,()=>n.y+i+this.scrollOffset,()=>o,()=>l):new gr(()=>n.x+i+this.scrollOffset,()=>n.y+n.height-o-i,()=>l,()=>o))}}os=new WeakMap,$u=new WeakMap,Si=new WeakMap,Ro=new WeakMap;class yp extends iM{constructor(t,n,r,i,o){super(t,n,r,i,o,xp(t)?t.columns:kf(t)?1:1/0),this.spec=t}async initializeChildren(){const t=this.spec,n=xp(t)?t.concat:kf(t)?t.vconcat:t.hconcat;this.setChildren(await Promise.all(n.map((r,i)=>this.context.createOrImportView(r,this,this,"grid"+i)))),await this.createAxes()}getDefaultResolution(t,n){return n=="axis"?"independent":kf(this.spec)&&t==="x"||Kv(this.spec)&&t==="y"?"shared":"independent"}}const Qv="viewRoot";class uM{constructor(t={}){Z(this,as,new Map);this.options={allowImport:!0,wrapRoot:!0,...t};const n=r=>(i,o,a,s,u)=>new r(i,o,a,s,i.name??u);this.addViewType(vp,n(_l)),this.addViewType(wp,n(Qt)),this.addViewType(kf,n(yp)),this.addViewType(Kv,n(yp)),this.addViewType(xp,n(yp)),this.addViewType(hM,()=>{throw new Error("SampleView is not supported by the @genome-spy/core package. Use @genome-spy/app instead!")})}addViewType(t,n){z(this,as).set(t,n)}createView(t,n,r,i,o){for(const[a,s]of z(this,as))if(a(t))return s(t,n,r,i,o);throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(t)]))}isViewSpec(t){const n=[...z(this,as).keys()].filter(r=>r(t));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}async createOrImportView(t,n,r,i,o,a){let s;if(fM(t)){let l;if("url"in t.import)if(this.options.allowImport)l=await g7(t,i.getBaseUrl(),n);else throw new ri("Importing views is not allowed!",r);else if("template"in t.import)l=Xv(t.import.template,i);else throw new Error("Invalid import: "+JSON.stringify(t));a==null||a(l),cM(l,t),s=l}else s=t;!i&&this.options.wrapRoot&&(wp(s)||vp(s))&&o===Qv&&(s={name:"implicitRoot",vconcat:[s]});const u=this.createView(s,n,r,i,o);return u instanceof El&&await u.initializeChildren(),u}}as=new WeakMap;function Xv(e,t){var r,i;const n=(i=(r=t.spec)==null?void 0:r.templates)==null?void 0:i[e];if(n)return structuredClone(n);if(t.dataParent)return Xv(e,t.dataParent);throw new Error(`Cannot find template "${e}" in current view or its ancestors!`)}function cM(e,t){t.name!=null&&(e.name=t.name);const n=xt(t.params)?t.params:kt(t.params)?Object.entries(t.params).map(([r,i])=>({name:r,value:i})):[];if(n.length){e.params??(e.params=[]);for(const r of n){const i=e.params.findIndex(o=>o.name==r.name);i>=0&&(e.params[i]=r)}for(const r of n)e.params.some(i=>i.name==r.name)||e.params.push(r)}}function wp(e){return"mark"in e&&(Fe(e.mark)||kt(e.mark))}function vp(e){return"layer"in e&&kt(e.layer)}function fM(e){return"import"in e}function kf(e){return"vconcat"in e&&xt(e.vconcat)}function Kv(e){return"hconcat"in e&&xt(e.hconcat)}function xp(e){return"concat"in e&&xt(e.concat)}function hM(e){return"samples"in e&&kt(e.samples)&&"spec"in e&&kt(e.spec)}function dM(e){const t=Math.floor(Math.random()*16777215).toString(16),n=[];for(const r of e.paramConfigs.values()){if(!zD(r))continue;const i=r.bind;if(!i||!("input"in i))continue;const o=r.name,a=e.getSetter(o),s=e.getValue(o),u=i.name??o,l=i.debounce?_f(a,i.debounce,!1):a,c=`${t}-param-${o}`;if(i.input=="range")n.push(Je`<label for=${c}>${u}</label>
405
418
  <div>
406
419
  <input
407
420
  id=${c}
408
421
  type="range"
409
422
  min=${i.min??0}
410
423
  max=${i.max??100}
411
- step=${i.step??Fr(i.min,i.max,100)}
424
+ step=${i.step??Mr(i.min,i.max,100)}
412
425
  .value=${s}
413
426
  @input=${f=>{l(f.target.valueAsNumber),f.target.nextElementSibling.textContent=f.target.valueAsNumber}}
414
427
  /><span>${s}</span>
415
- </div>`);else if(i.input=="checkbox")n.push(Xe`<label for=${c}>${u}</label>
428
+ </div>`);else if(i.input=="checkbox")n.push(Je`<label for=${c}>${u}</label>
416
429
  <input
417
430
  id=${c}
418
431
  type="checkbox"
419
432
  ?checked=${s}
420
433
  @input=${f=>l(f.target.checked)}
421
- />`);else if(i.input=="radio")n.push(Xe`<span class="label">${u}</span>
434
+ />`);else if(i.input=="radio")n.push(Je`<span class="label">${u}</span>
422
435
  <div class="radio-group">
423
- ${i.options.map((f,h)=>{var d;return Xe`<label>
436
+ ${i.options.map((f,h)=>{var d;return Je`<label>
424
437
  <input
425
438
  type="radio"
426
- name=${a}
439
+ name=${o}
427
440
  value=${f}
428
441
  .checked=${s==f}
429
442
  @input=${p=>l(p.target.value)}
430
443
  />${((d=i.labels)==null?void 0:d[h])??f}</label
431
444
  >`})}
432
- </div>`);else if(i.input=="select")n.push(Xe`<label for=${c}>${u}</label>
445
+ </div>`);else if(i.input=="select")n.push(Je`<label for=${c}>${u}</label>
433
446
  <select
434
447
  id=${c}
435
448
  @input=${f=>l(f.target.value)}
436
449
  >
437
- ${i.options.map((f,h)=>{var d;return Xe`<option
450
+ ${i.options.map((f,h)=>{var d;return Je`<option
438
451
  value=${f}
439
452
  ?selected=${s==f}
440
453
  >
441
454
  ${((d=i.labels)==null?void 0:d[h])??f}
442
455
  </option>`})}
443
- </select> `);else if(i.input=="text"||i.input=="number"||i.input=="color")n.push(Xe`<label for=${c}>${u}</label>
456
+ </select> `);else if(i.input=="text"||i.input=="number"||i.input=="color")n.push(Je`<label for=${c}>${u}</label>
444
457
  <div>
445
458
  <input
446
459
  id=${c}
@@ -451,28 +464,28 @@ Reason: ${u.message}`)}));if(n.isViewSpec(s))return s.baseUrl=(i=o.match(/^[^?#]
451
464
  @focus=${f=>f.target.select()}
452
465
  @input=${f=>{l(i.input=="number"?f.target.valueAsNumber:f.target.value)}}
453
466
  />
454
- </div>`);else throw new Error("Unsupported input type: "+i.input);i.description&&n.push(Xe`<div class="description">${i.description}</div>`)}return n}V1("fasta",WF);class Lv{constructor(t,n,r={}){Y(this,ns);Y(this,Bh);Y(this,Dh);Y(this,Rh);this.container=t,this.options=r,r.inputBindingContainer??(r.inputBindingContainer="default"),this._destructionCallbacks=[],this.spec=n,this.accessorFactory=new Fk,this.viewFactory=new T7,this.namedDataProviders=[],this.animator=new UF(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=i=>i.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new ZF(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this._extraBroadcastListeners=new Map,this.tooltipHandlers={default:n7,refseqgene:QF,...r.tooltipHandlers??{}},this.viewRoot=void 0,this._loadingViews=new Map,this._inputBindingContainer=void 0}registerNamedDataProvider(t){this.namedDataProviders.unshift(t)}getNamedDataFromProvider(t){for(const n of this.namedDataProviders){const r=n(t);if(r)return r}}updateNamedData(t,n){const r=this.viewRoot.context.dataFlow.findNamedDataSource(t);if(!r)throw new Error("No such named data source: "+t);r.dataSource.updateDynamicData(n),X0(r.hosts),this.animator.requestRender()}broadcast(t,n){var i;const r={type:t,payload:n};this.viewRoot.visit(a=>a.handleBroadcast(r)),(i=this._extraBroadcastListeners.get(t))==null||i.forEach(a=>a(r))}_updateLoadingIndicators(){const t=[],n=()=>[...this._loadingViews.values()].some(r=>r.status=="loading"||r.status=="error");for(const[r,i]of this._loadingViews){const a=r.coords;if(a){const o={left:`${a.x}px`,top:`${a.y}px`,width:`${a.width}px`,height:`${a.height}px`};t.push(Xe`<div style=${z6(o)}>
467
+ </div>`);else throw new Error("Unsupported input type: "+i.input);i.description&&n.push(Je`<div class="description">${i.description}</div>`)}return n}K1("fasta",T7);class Jv{constructor(t,n,r={}){Z(this,ss);Z(this,zh);Z(this,Uh);Z(this,Gh);this.container=t,this.options=r,r.inputBindingContainer??(r.inputBindingContainer="default"),this._destructionCallbacks=[],this.spec=n,this.viewFactory=new uM,this.namedDataProviders=[],this.animator=new x7(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=i=>i.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new I7(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this._extraBroadcastListeners=new Map,this.tooltipHandlers={default:N7,refseqgene:D7,...r.tooltipHandlers??{}},this.viewRoot=void 0,this._loadingViews=new Map,this._inputBindingContainer=void 0,this._mouseDownCoords=void 0}registerNamedDataProvider(t){this.namedDataProviders.unshift(t)}getNamedDataFromProvider(t){for(const n of this.namedDataProviders){const r=n(t);if(r)return r}}updateNamedData(t,n){const r=this.viewRoot.context.dataFlow.findNamedDataSource(t);if(!r)throw new Error("No such named data source: "+t);r.dataSource.updateDynamicData(n),sp(r.hosts),this.animator.requestRender()}broadcast(t,n){var i;const r={type:t,payload:n};this.viewRoot.visit(o=>o.handleBroadcast(r)),(i=this._extraBroadcastListeners.get(t))==null||i.forEach(o=>o(r))}_updateLoadingIndicators(){const t=[],n=()=>[...this._loadingViews.values()].some(r=>r.status=="loading"||r.status=="error");for(const[r,i]of this._loadingViews){const o=r.coords;if(o){const a={left:`${o.x}px`,top:`${o.y}px`,width:`${o.width}px`,height:`${o.height}px`};t.push(Je`<div style=${i8(a)}>
455
468
  <div class=${i.status}>
456
- ${i.status=="error"?Xe`<span
469
+ ${i.status=="error"?Je`<span
457
470
  >Loading
458
- failed${i.detail?Xe`: ${i.detail}`:rt}</span
459
- >`:Xe`
460
- <img src="${U6}" alt="" />
471
+ failed${i.detail?Je`: ${i.detail}`:rt}</span
472
+ >`:Je`
473
+ <img src="${o8}" alt="" />
461
474
  <span>Loading...</span>
462
475
  `}
463
476
  </div>
464
- </div>`)}}n()?this.loadingIndicatorsElement.style.display="block":setTimeout(()=>{n()||(this.loadingIndicatorsElement.style.display="none")},3e3),Ds(t,this.loadingIndicatorsElement)}destroy(){var n;const t=G(this,ns,Oh);this.container.classList.remove("genome-spy"),t.classList.remove("loading");for(const[r,i]of this._keyboardListeners)for(const a of i)document.removeEventListener(r,a);for(this._destructionCallbacks.forEach(r=>r()),this._glHelper.finalize(),(n=this._inputBindingContainer)==null||n.remove();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new GF(this.spec.baseUrl),await this.genomeStore.initialize(this.spec.genome));const t=this,n={dataFlow:new dv,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new jF(this._glHelper),get devicePixelRatio(){return t._glHelper.dpr},requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,setDataLoadingStatus:(u,l,c)=>{this._loadingViews.set(u,{status:l,detail:c}),this._updateLoadingIndicators()},addKeyboardListener:(u,l)=>{document.addEventListener(u,l);let c=this._keyboardListeners.get(u);c||(c=[],this._keyboardListeners.set(u,c)),c.push(l)},addBroadcastListener(u,l){const c=t._extraBroadcastListeners;let f=c.get(u);f||(f=new Set,c.set(u,f)),f.add(l)},removeBroadcastListener(u,l){var f;(f=t._extraBroadcastListeners.get(u))==null||f.delete(l)},isViewConfiguredVisible:t.viewVisibilityPredicate,isViewSpec:u=>t.viewFactory.isViewSpec(u),createView:function(u,l,c,f){return t.viewFactory.createView(u,n,l,c,f)},createOrImportView:async function(u,l,c,f,h){return t.viewFactory.createOrImportView(u,n,l,c,f,h)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(u=>r.datasets[u]),this.viewRoot=await n.createOrImportView(r,null,null,Fv),G(this,ns,Oh).style.flexGrow=mv(this.viewRoot).height.grow>0?"1":"0",K(this,Bh,A4).call(this),RF(this.viewRoot),FF(this.viewRoot);const i=this.viewRoot.getDescendants();i.forEach(u=>u.configureViewOpacity()),this._glHelper.invalidateSize(),K(this,Dh,E4).call(this);const a=i.filter(u=>u instanceof Xt),o=CF(this.viewRoot,n.dataFlow);DF(o),this.broadcast("dataFlowBuilt",o),a.forEach(u=>u.mark.initializeEncoders());const s=Promise.all(a.map(u=>u.mark.initializeGraphics()));for(const u of a)o.addObserver(l=>{u.mark.initializeData(),u.mark.updateGraphicsData(),n.animator.requestRender()},u);await n.fontManager.waitUntilReady(),o.initialize(),await Promise.all(o.dataSources.map(u=>u.load())),X0(this.viewRoot),this.broadcast("dataLoaded"),await s;for(const u of a)u.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(u=>df(u,"size")),this._glHelper.invalidateSize()}async launch(){try{return K(this,Rh,_4).call(this),await this._prepareViewsAndData(),this.registerMouseEvents(),this.computeLayout(),this.animator.requestRender(),!0}catch(t){const n=`${t.view?`At "${t.view.getPathString()}": `:""}${t.toString()}`;return console.error(t.stack),F7(this.container,n),!1}finally{G(this,ns,Oh).classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const t=this._glHelper.canvas;let n=performance.now();const r=i=>{var s;const a=performance.now(),o=a-n<200;if(i instanceof MouseEvent){const u=t.getBoundingClientRect(),l=new ei(i.clientX-u.left-t.clientLeft,i.clientY-u.top-t.clientTop);i.type=="mousemove"&&!o&&(this.tooltip.handleMouseMove(i),this._tooltipUpdateRequested=!1,i.buttons==0&&!Iv()&&(this.renderPickingFramebuffer(),this._handlePicking(l.x,l.y)));const c=f=>{this.viewRoot.propagateInteractionEvent(new NF(l,f)),this._tooltipUpdateRequested||this.tooltip.clear()};if(i.type!="wheel"&&this._wheelInertia.cancel(),(i.type=="mousedown"||i.type=="mouseup")&&!Iv())this.renderPickingFramebuffer();else if(i.type=="wheel"){n=a,this._tooltipUpdateRequested=!1;const f=i;if(Math.abs(f.deltaX)>Math.abs(f.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const h=YF(f);this._wheelInertia.setMomentum(f.deltaY*(f.deltaMode?80:1),d=>{const p=new WheelEvent("wheel",{...h,deltaMode:0,deltaX:0,deltaY:d});c(p)}),f.preventDefault();return}}if(i.type=="click"){const f=this._currentHover?{type:i.type,viewPath:this._currentHover.mark.unitView.getLayoutAncestors().map(h=>h.name).reverse(),datum:this._currentHover.datum}:{type:i.type,viewPath:null,datum:null};(s=this._eventListeners.get("click"))==null||s.forEach(h=>h(f))}c(i)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(i=>t.addEventListener(i,r)),t.addEventListener("mousedown",()=>{document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),t.addEventListener("dragstart",i=>i.stopPropagation())}_handlePicking(t,n){var a;const r=this._glHelper.readPickingPixel(t,n),i=r[0]|r[1]<<8|r[2]<<16;if(i==0){this._currentHover=null;return}if(i!==((a=this._currentHover)==null?void 0:a.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(o=>{if(o instanceof Xt){if(o.mark.isPickingParticipant()&&[...o.facetCoords.values()].some(s=>s.containsPoint(t,n))){const s=o.mark.encoders.uniqueId.accessor;o.getCollector().visitData(u=>{s(u)==i&&(this._currentHover={mark:o.mark,datum:u,uniqueId:i})})}if(this._currentHover)return fl}}),this._currentHover){const o=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{if(!o.isPickingParticipant())return;const u=o.properties.tooltip;if(u!==null){const l=(u==null?void 0:u.handler)??"default",c=this.tooltipHandlers[l];if(!c)throw new Error("No such tooltip handler: "+l);return c(s,o,u==null?void 0:u.params)}})}}updateTooltip(t,n){if(!this._tooltipUpdateRequested||!t)this.tooltip.updateWithDatum(t,n),this._tooltipUpdateRequested=!0;else throw new Error("Tooltip has already been updated! Duplicate event handler?")}computeLayout(){const t=this.viewRoot;if(!t)return;this.broadcast("layout");const n=this._glHelper.getLogicalCanvasSize();if(isNaN(n.width)||isNaN(n.height)){console.log(`NaN in canvas size: ${n.width}x${n.height}. Skipping computeLayout().`);return}this._renderingContext=new yv({picking:!1},this._glHelper),this._pickingContext=new yv({picking:!0},this._glHelper),t.render(new LF(this._renderingContext,this._pickingContext),pr.create(0,0,n.width,n.height)),this._updateLoadingIndicators(),this.broadcast("layoutComputed")}renderAll(){var t;(t=this._renderingContext)==null||t.render(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){this._dirtyPickingBuffer&&(this._pickingContext.render(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const t=[];return this.viewRoot.visit(n=>{n instanceof Xt&&n.getAccessor("search")&&t.push(n)}),t}getNamedScaleResolutions(){const t=new Map;return this.viewRoot.visit(n=>{for(const r of Object.values(n.resolutions.scale))r.name&&t.set(r.name,r)}),t}}ns=new WeakSet,Oh=function(){return this.container.querySelector(".canvas-wrapper")},Bh=new WeakSet,A4=function(){const t=[];this.viewRoot.visit(r=>{const i=r.paramMediator;t.push(...R7(i))});const n=this.options.inputBindingContainer;if(!(!n||n=="none"||!t.length)){if(this._inputBindingContainer=Af("div",{className:"gs-input-bindings"}),n=="default")this.container.appendChild(this._inputBindingContainer);else if(n instanceof HTMLElement)n.appendChild(this._inputBindingContainer);else throw new Error("Invalid inputBindingContainer");t.length&&Ds(Xe`<div class="gs-input-binding">${t}</div>`,this._inputBindingContainer)}},Dh=new WeakSet,E4=function(){const t=this.viewRoot.paramMediator.allocateSetter("devicePixelRatio",window.devicePixelRatio),n=()=>{this._glHelper.invalidateSize(),t(window.devicePixelRatio),this.computeLayout(),this.renderAll()},r=new ResizeObserver(n);r.observe(this.container),this._destructionCallbacks.push(()=>r.disconnect());let i=null;const a=()=>{i!=null&&(i(),n());const o=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);o.addEventListener("change",a),i=()=>{o.removeEventListener("change",a)}};a(),i&&this._destructionCallbacks.push(i)},Rh=new WeakSet,_4=function(){this.container.classList.add("genome-spy");const t=document.createElement("style");t.innerHTML=G6,this.container.appendChild(t);const n=Af("div",{class:"canvas-wrapper"});this.container.appendChild(n),n.classList.add("loading"),this._glHelper=new KD(n,()=>this.viewRoot?PF(mv(this.viewRoot)):{width:void 0,height:void 0},this.spec.background,{powerPreference:this.options.powerPreference??"default"}),this.loadingMessageElement=Af("div",{class:"loading-message",innerHTML:'<div class="message">Loading<span class="ellipsis">...</span></div>'}),n.appendChild(this.loadingMessageElement),this.loadingIndicatorsElement=Af("div",{class:"loading-indicators"}),n.appendChild(this.loadingIndicatorsElement),this.tooltip=new V6(n),this.loadingMessageElement.querySelector(".message").addEventListener("transitionend",()=>{this.loadingMessageElement.style.display="none"})};function F7(e,t){const n=document.createElement("div");n.className="message-box";const r=document.createElement("div");r.textContent=t,n.appendChild(r),e.appendChild(n)}function Af(e,t){const n=document.createElement(e);for(const[r,i]of Object.entries(t))["innerHTML","innerText","className"].includes(r)&&(n[r]=i),n.setAttribute(r,i);return n}const M7="data:image/svg+xml,%3csvg%20viewBox='0%200%2032%2032'%20xmlns='http://www.w3.org/2000/svg'%20fill-rule='evenodd'%20clip-rule='evenodd'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-miterlimit='1.5'%3e%3cpath%20d='M4.7%2021.2s.4%202.3%201.3%203.6C7%2026%209.8%2028%209.8%2028s3.4-2.6%206.4-8.5c0%200%201%20.1%201.9-.4.9-.6.8-.4%201-1.2%200%200%202.9.5%206.6%200%202.1-.3%204.3-1%206.2-2.5%200%200-1.1-1.7-2.5-5.1-.5-1.3-2-1.8-4.6-4.6l-8.2%208.6-11.9%206.9z'%20fill-opacity='.1'/%3e%3cpath%20d='M12.7%2014.8s-4-1.8-12%202.7c0%200%201%203.7%202.5%205.3%201.4%201.5%202.3%203.6%204.6%204.6%200%200%204.7-3%206.9-9.2l3-2s4.7%202.8%2012.6-1.6c0%200-.6-3.3-3-6-2.6-3-3.8-4.7-3.8-4.7s-4.1%202.3-7.5%209.3l-3.3%201.6z'%20fill='%237fbbdd'/%3e%3cpath%20d='M12.4%2015.5c-.7-.5-2.4-.8-4.4-.4-2%20.4-4%201.3-4.8%201.8-.5.3-1.2%201-1.2%201.4%200%20.7.3%201.8.8%202.4.3.3.7.5%201.4.6.8%200%202.5-1.4%203.5-2%201-.6%201.6-.8%202.7-1.2l-2.9%202.4c-1.3%201.2-2.2%201.5-2.4%202.3%200%20.5%200%201.4.5%201.8.4.5.6.8%201.6.8.6%200%201%200%202.6-1.5.9-.9%202.3-3%202.7-3.7.6-1.1%201-2.2.7-3-.2-1-.4-1.4-.8-1.7zM17.4%2014.2c-.3-.5-.9-1.2-.2-2.5l1.9-3c.5-.8%202-2.3%202.6-2.6.6-.4%201.5-.6%202-.2.6.4%201%201%201.3%201.5.4.6.7%201.3.2%202-.7%201-1.6.9-2.8%201.7-1.2.8-1.9%201.2-2.5%201.9l3.8-1.8c1.3-.6%202.7-1.1%203.4-.7.8.5.8.7%201%201.4.3%201-.2%201.9-.8%202.4-.5.6-1.5.9-2.6%201.2-1.4.4-4.5%201-5.8.5-1.3-.5-1.3-1.4-1.5-1.8z'%20fill='%23fff'/%3e%3cpath%20d='M12.7%2014.8s-4-1.8-12%202.7c0%200%201%203.7%202.5%205.3%201.4%201.5%202.3%203.6%204.6%204.6%200%200%204.7-3%206.9-9.2l3-2s4.7%202.8%2012.6-1.6c0%200-.6-3.3-3-6-2.6-3-3.8-4.7-3.8-4.7s-4.1%202.3-7.5%209.3l-3.3%201.6z'%20fill='none'%20stroke='%23000'%20stroke-width='.5'/%3e%3cpath%20d='M12.4%2014.9s2.1-2%203-2c1.1%200%202.3%202.7%202.3%203.5%200%20.8-2.1%202.4-3.1%202.3%200%200%200-1.2-.7-2.6-.8-1.3-1.5-1.2-1.5-1.2z'%20fill='%237fbbdd'/%3e%3cpath%20d='M13.8%2015.3c.9.8.6%202%201.4%201.8%201-.2%201.4-.8%201.3-1.5%200-.7%200-.8-.4-1.6-.3-.7-1-1.1-2-.5-.7.5-1.4%201.3-1.4%201.3s.2-.3%201.1.5z'%20fill='%23fff'/%3e%3cpath%20d='M12.4%2014.9s2.1-2%203-2c1.1%200%202.3%202.7%202.3%203.5%200%20.8-2.1%202.4-3.1%202.3%200%200%200-1.2-.7-2.6-.8-1.3-1.5-1.2-1.5-1.2z'%20fill='none'%20stroke='%23000'%20stroke-width='.5'/%3e%3c/svg%3e",P7="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2064%2064'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;'%3e%3cg%20transform='matrix(0.10221,0.00683825,-0.0067136,0.100347,-8.03424,-13.2222)'%3e%3cpath%20d='M208.629,548.17C208.629,548.17%20219.768,594.389%20239.814,619.222C259.86,644.055%20319.119,680.831%20319.119,680.831C319.119,680.831%20385.557,622.915%20437.87,498.346C437.87,498.346%20456.021,499.236%20473.808,486.446C491.594,473.656%20490.239,478.534%20494.883,461.62C494.883,461.62%20551.848,467.937%20625.826,451.863C667.634,442.778%20710.238,425.649%20747.382,393.142C747.382,393.142%20721.992,360.244%20689.422,291.45C677.029,265.275%20647.518,257.098%20590.747,203.309L438.083,391.273L208.629,548.17Z'%20style='fill-opacity:0.11;'/%3e%3c/g%3e%3cg%20transform='matrix(0.081985,-0.0582493,0.0582493,0.081985,-40.4754,34.7668)'%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'%20style='fill:rgb(127,187,221);'/%3e%3cclipPath%20id='_clip1'%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23_clip1)'%3e%3cg%20transform='matrix(0.758637,0.45892,-0.45892,0.758637,425.635,-121.213)'%3e%3cpath%20d='M386.873,397.241C371.345,383.628%20335.138,374.782%20290.644,380.543C246.149,386.304%20196.827,402.266%20178.802,412.065C168.202,417.828%20151.494,429.354%20150.682,439.334C149.527,453.528%20153.593,477.066%20165.625,491.284C171.69,498.451%20179.927,503.445%20193.838,505.423C211.701,507.963%20252.714,480.627%20275.399,469.22C299.332,457.187%20313.981,454.56%20338.386,447.014C338.386,447.014%20291.346,478.587%20270.205,494.393C239.61,517.268%20218.575,522.444%20212.859,539.897C209.766,549.34%20212.237,567.767%20220.354,577.538C229.427,588.461%20233.197,595.069%20254.591,597.624C267.303,599.143%20276.685,598.802%20314.37,568.95C336.06,551.767%20370.297,509.817%20381.412,494.616C397.581,472.506%20405.165,451.462%20402.656,435.04C399.045,411.391%20394.259,403.716%20386.873,397.241Z'%20style='fill:white;'/%3e%3c/g%3e%3cg%20transform='matrix(0.752145,0.454993,-0.454993,0.752145,468.36,-108.293)'%3e%3cpath%20d='M484.733,378.934C479.33,367.886%20467.092,350.452%20483.886,325.205C502.172,297.717%20514.898,280.938%20528.117,264.632C541.335,248.326%20574.793,218.447%20587.739,212.53C600.684,206.613%20621.026,203.852%20631.889,212.841C642.874,221.93%20648.416,233.377%20654.92,245.478C662.331,259.267%20667.318,274.808%20656.518,288.278C641.093,307.515%20622.242,305.294%20594.912,319.844C567.244,334.573%20552.644,342.943%20539.244,355.703C539.244,355.703%20591.431,334.114%20621.229,324.474C651.027,314.833%20680.952,304.461%20695.995,315.975C711.038,327.49%20710.631,331.463%20714.425,347.187C719.107,366.59%20707.231,385.165%20694.294,395.838C681.356,406.51%20659.958,411.756%20636.875,416.852C606.42,423.576%20540.278,431.917%20512.819,419.366C485.361,406.815%20488.488,386.613%20484.733,378.934Z'%20style='fill:white;'/%3e%3c/g%3e%3c/g%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'%20style='fill:none;stroke:black;stroke-width:16.57px;'/%3e%3c/g%3e%3cg%20transform='matrix(0.100298,-0.00740488,0.00740488,0.100298,-15.7457,-5.17528)'%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'%20style='fill:rgb(127,187,221);'/%3e%3cclipPath%20id='_clip2'%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23_clip2)'%3e%3cg%20transform='matrix(0.909069,3.67641e-17,-3.79818e-17,0.85852,37.051,52.1829)'%3e%3cpath%20d='M413.282,402.697C430.77,421.58%20423.307,448.426%20441.683,446.137C463.409,443.431%20472.604,430.356%20473.316,413.402C474.028,396.448%20472.245,393.911%20466.172,375.321C460.099,356.731%20447.953,352.176%20422.842,357.179C401.957,361.339%20405.039,360.215%20398.735,367.228C392.43,374.242%20384.315,393.182%20384.315,393.182C384.315,393.182%20392.715,380.492%20413.282,402.697Z'%20style='fill:white;'/%3e%3c/g%3e%3c/g%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'%20style='fill:none;stroke:black;stroke-width:16.57px;'/%3e%3c/g%3e%3c/svg%3e";async function L7(e,t,n={}){let r;if(Ue(e)){if(r=document.querySelector(e),!r)throw new Error(`No such element: ${e}`)}else if(e instanceof HTMLElement)r=e;else throw new Error(`Invalid element: ${e}`);let i;try{const a=kt(t)?t:await Nv(t);if(a.baseUrl??(a.baseUrl=""),a.width??(a.width="container"),a.padding??(a.padding=10),r==document.body){const o=document.createElement("div");o.style.position="fixed",o.style.inset="0",o.style.overflow="hidden",r.appendChild(o),r=o}i=new Lv(r,a,n),N7(i,n),await i.launch()}catch(a){r.innerText=a.toString(),console.error(a)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(a,o){const s=i._eventListeners;let u=s.get(a);u||(u=new Set,s.set(a,u)),u.add(o)},removeEventListener(a,o){var u;(u=i._eventListeners.get(a))==null||u.delete(o)},getScaleResolutionByName(a){return i.getNamedScaleResolutions().get(a)},updateNamedData:i.updateNamedData.bind(i)}}function N7(e,t){t.namedDataProvider&&e.registerNamedDataProvider(t.namedDataProvider)}async function Nv(e){let t;try{t=JSON.parse(await cc().load(e))}catch(n){throw new Error(`Could not load or parse configuration: ${e}, reason: ${n.message}`)}if(!t.baseUrl){const n=e.match(/^[^?#]*\//);t.baseUrl=n&&n[0]||"./"}return t}var Ef=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function bl(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function O7(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}),n}var be={},_f={};_f.byteLength=G7,_f.toByteArray=V7,_f.fromByteArray=q7;for(var qn=[],sn=[],z7=typeof Uint8Array<"u"?Uint8Array:Array,hp="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",io=0,U7=hp.length;io<U7;++io)qn[io]=hp[io],sn[hp.charCodeAt(io)]=io;sn["-".charCodeAt(0)]=62,sn["_".charCodeAt(0)]=63;function Ov(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");n===-1&&(n=t);var r=n===t?0:4-n%4;return[n,r]}function G7(e){var t=Ov(e),n=t[0],r=t[1];return(n+r)*3/4-r}function H7(e,t,n){return(t+n)*3/4-n}function V7(e){var t,n=Ov(e),r=n[0],i=n[1],a=new z7(H7(e,r,i)),o=0,s=i>0?r-4:r,u;for(u=0;u<s;u+=4)t=sn[e.charCodeAt(u)]<<18|sn[e.charCodeAt(u+1)]<<12|sn[e.charCodeAt(u+2)]<<6|sn[e.charCodeAt(u+3)],a[o++]=t>>16&255,a[o++]=t>>8&255,a[o++]=t&255;return i===2&&(t=sn[e.charCodeAt(u)]<<2|sn[e.charCodeAt(u+1)]>>4,a[o++]=t&255),i===1&&(t=sn[e.charCodeAt(u)]<<10|sn[e.charCodeAt(u+1)]<<4|sn[e.charCodeAt(u+2)]>>2,a[o++]=t>>8&255,a[o++]=t&255),a}function j7(e){return qn[e>>18&63]+qn[e>>12&63]+qn[e>>6&63]+qn[e&63]}function $7(e,t,n){for(var r,i=[],a=t;a<n;a+=3)r=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(e[a+2]&255),i.push(j7(r));return i.join("")}function q7(e){for(var t,n=e.length,r=n%3,i=[],a=16383,o=0,s=n-r;o<s;o+=a)i.push($7(e,o,o+a>s?s:o+a));return r===1?(t=e[n-1],i.push(qn[t>>2]+qn[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(qn[t>>10]+qn[t>>4&63]+qn[t<<2&63]+"=")),i.join("")}var dp={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */dp.read=function(e,t,n,r,i){var a,o,s=i*8-r-1,u=(1<<s)-1,l=u>>1,c=-7,f=n?i-1:0,h=n?-1:1,d=e[t+f];for(f+=h,a=d&(1<<-c)-1,d>>=-c,c+=s;c>0;a=a*256+e[t+f],f+=h,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=r;c>0;o=o*256+e[t+f],f+=h,c-=8);if(a===0)a=1-l;else{if(a===u)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,r),a=a-l}return(d?-1:1)*o*Math.pow(2,a-r)},dp.write=function(e,t,n,r,i,a){var o,s,u,l=a*8-i-1,c=(1<<l)-1,f=c>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:a-1,p=r?1:-1,m=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=c):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+f>=1?t+=h/u:t+=h*Math.pow(2,1-f),t*u>=2&&(o++,u/=2),o+f>=c?(s=0,o=c):o+f>=1?(s=(t*u-1)*Math.pow(2,i),o=o+f):(s=t*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;e[n+d]=s&255,d+=p,s/=256,i-=8);for(o=o<<i|s,l+=i;l>0;e[n+d]=o&255,d+=p,o/=256,l-=8);e[n+d-p]|=m*128};/*!
477
+ </div>`)}}n()?this.loadingIndicatorsElement.style.display="block":setTimeout(()=>{n()||(this.loadingIndicatorsElement.style.display="none")},3e3),Ls(t,this.loadingIndicatorsElement)}destroy(){var n;const t=z(this,ss,Wh);this.container.classList.remove("genome-spy"),t.classList.remove("loading");for(const[r,i]of this._keyboardListeners)for(const o of i)document.removeEventListener(r,o);for(this._destructionCallbacks.forEach(r=>r()),this._glHelper.finalize(),(n=this._inputBindingContainer)==null||n.remove();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new A7(this.spec.baseUrl),await this.genomeStore.initialize(this.spec.genome));const t=this,n={dataFlow:new Bv,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new S7(this._glHelper),get devicePixelRatio(){return t._glHelper.dpr},requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,setDataLoadingStatus:(u,l,c)=>{this._loadingViews.set(u,{status:l,detail:c}),this._updateLoadingIndicators()},addKeyboardListener:(u,l)=>{document.addEventListener(u,l);let c=this._keyboardListeners.get(u);c||(c=[],this._keyboardListeners.set(u,c)),c.push(l)},addBroadcastListener(u,l){const c=t._extraBroadcastListeners;let f=c.get(u);f||(f=new Set,c.set(u,f)),f.add(l)},removeBroadcastListener(u,l){var f;(f=t._extraBroadcastListeners.get(u))==null||f.delete(l)},isViewConfiguredVisible:t.viewVisibilityPredicate,isViewSpec:u=>t.viewFactory.isViewSpec(u),createView:function(u,l,c,f){return t.viewFactory.createView(u,n,l,c,f)},createOrImportView:async function(u,l,c,f,h){return t.viewFactory.createOrImportView(u,n,l,c,f,h)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(u=>r.datasets[u]),this.viewRoot=await n.createOrImportView(r,null,null,Qv),z(this,ss,Wh).style.flexGrow=Fv(this.viewRoot).height.grow>0?"1":"0",X(this,zh,H4).call(this),d7(this.viewRoot),p7(this.viewRoot);const i=this.viewRoot.getDescendants();i.forEach(u=>u.configureViewOpacity()),this._glHelper.invalidateSize(),X(this,Uh,V4).call(this);const o=i.filter(u=>u instanceof Qt),a=s7(this.viewRoot,n.dataFlow);h7(a),this.broadcast("dataFlowBuilt",a),o.forEach(u=>u.mark.initializeEncoders());const s=Promise.all(o.map(u=>u.mark.initializeGraphics()));for(const u of o)a.addObserver(l=>{u.mark.initializeData(),u.mark.updateGraphicsData(),n.animator.requestRender()},u);await n.fontManager.waitUntilReady(),a.initialize(),await Promise.all(a.dataSources.map(u=>u.load())),sp(this.viewRoot),this.broadcast("dataLoaded"),await s;for(const u of o)u.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(u=>wf(u,"size")),this._glHelper.invalidateSize()}async launch(){try{return X(this,Gh,j4).call(this),await this._prepareViewsAndData(),this.registerMouseEvents(),this.computeLayout(),this.animator.requestRender(),!0}catch(t){const n=`${t.view?`At "${t.view.getPathString()}": `:""}${t.toString()}`;return console.error(t.stack),pM(this.container,n),!1}finally{z(this,ss,Wh).classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const t=this._glHelper.canvas;let n=performance.now();const r=i=>{var s,u;const o=performance.now(),a=o-n<200;if(i instanceof MouseEvent){const l=t.getBoundingClientRect(),c=new $n(i.clientX-l.left-t.clientLeft,i.clientY-l.top-t.clientTop);i.type=="mousemove"&&!a&&(this.tooltip.handleMouseMove(i),this._tooltipUpdateRequested=!1,i.buttons==0&&!qv()&&(this.renderPickingFramebuffer(),this._handlePicking(c.x,c.y)));const f=h=>{this.viewRoot.propagateInteractionEvent(new y7(c,h)),this._tooltipUpdateRequested||this.tooltip.clear()};if(i.type!="wheel"&&this._wheelInertia.cancel(),(i.type=="mousedown"||i.type=="mouseup")&&!qv())this.renderPickingFramebuffer();else if(i.type=="wheel"){n=o,this._tooltipUpdateRequested=!1;const h=i;if(Math.abs(h.deltaX)>Math.abs(h.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const d=B7(h);this._wheelInertia.setMomentum(h.deltaY*(h.deltaMode?80:1),p=>{const m=new WheelEvent("wheel",{...d,deltaMode:0,deltaX:0,deltaY:p});f(m)}),h.preventDefault();return}}if(i.type=="click"){const h=this._currentHover?{type:i.type,viewPath:this._currentHover.mark.unitView.getLayoutAncestors().map(d=>d.name).reverse(),datum:this._currentHover.datum}:{type:i.type,viewPath:null,datum:null};(s=this._eventListeners.get("click"))==null||s.forEach(d=>d(h))}(i.type!="click"||((u=this._mouseDownCoords)==null?void 0:u.subtract($n.fromMouseEvent(i)).length)<3)&&f(i)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(i=>t.addEventListener(i,r)),t.addEventListener("mousedown",i=>{this._mouseDownCoords=$n.fromMouseEvent(i),document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),t.addEventListener("dragstart",i=>i.stopPropagation())}_handlePicking(t,n){var o;const r=this._glHelper.readPickingPixel(t,n),i=r[0]|r[1]<<8|r[2]<<16|r[3]<<24;if(i==0){this._currentHover=null;return}if(i!==((o=this._currentHover)==null?void 0:o.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(a=>{if(a instanceof Qt){if(a.mark.isPickingParticipant()&&[...a.facetCoords.values()].some(s=>s.containsPoint(t,n))){const s=a.getCollector().findDatumByUniqueId(i);s&&(this._currentHover={mark:a.mark,datum:s,uniqueId:i})}if(this._currentHover)return vl}}),this._currentHover){const a=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{if(!a.isPickingParticipant())return;const u=a.properties.tooltip;if(u!==null){const l=(u==null?void 0:u.handler)??"default",c=this.tooltipHandlers[l];if(!c)throw new Error("No such tooltip handler: "+l);return c(s,a,u==null?void 0:u.params)}})}}updateTooltip(t,n){if(!this._tooltipUpdateRequested||!t)this.tooltip.updateWithDatum(t,n),this._tooltipUpdateRequested=!0;else throw new Error("Tooltip has already been updated! Duplicate event handler?")}computeLayout(){const t=this.viewRoot;if(!t)return;this.broadcast("layout");const n=this._glHelper.getLogicalCanvasSize();if(isNaN(n.width)||isNaN(n.height)){console.log(`NaN in canvas size: ${n.width}x${n.height}. Skipping computeLayout().`);return}this._renderingContext=new Pv({picking:!1},this._glHelper),this._pickingContext=new Pv({picking:!0},this._glHelper),t.render(new b7(this._renderingContext,this._pickingContext),gr.create(0,0,n.width,n.height)),this._updateLoadingIndicators(),this.broadcast("layoutComputed")}renderAll(){var t;(t=this._renderingContext)==null||t.render(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){this._dirtyPickingBuffer&&(this._pickingContext.render(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const t=[];return this.viewRoot.visit(n=>{n instanceof Qt&&n.getDataAccessor("search")&&t.push(n)}),t}getNamedScaleResolutions(){const t=new Map;return this.viewRoot.visit(n=>{for(const r of Object.values(n.resolutions.scale))r.name&&t.set(r.name,r)}),t}}ss=new WeakSet,Wh=function(){return this.container.querySelector(".canvas-wrapper")},zh=new WeakSet,H4=function(){const t=[];this.viewRoot.visit(r=>{const i=r.paramMediator;t.push(...dM(i))});const n=this.options.inputBindingContainer;if(!(!n||n=="none"||!t.length)){if(this._inputBindingContainer=Tf("div",{className:"gs-input-bindings"}),n=="default")this.container.appendChild(this._inputBindingContainer);else if(n instanceof HTMLElement)n.appendChild(this._inputBindingContainer);else throw new Error("Invalid inputBindingContainer");t.length&&Ls(Je`<div class="gs-input-binding">${t}</div>`,this._inputBindingContainer)}},Uh=new WeakSet,V4=function(){const t=this.viewRoot.paramMediator.allocateSetter("devicePixelRatio",window.devicePixelRatio),n=()=>{this._glHelper.invalidateSize(),t(window.devicePixelRatio),this.computeLayout(),this.renderAll()},r=new ResizeObserver(n);r.observe(this.container),this._destructionCallbacks.push(()=>r.disconnect());let i=null;const o=()=>{i!=null&&(i(),n());const a=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);a.addEventListener("change",o),i=()=>{a.removeEventListener("change",o)}};o(),i&&this._destructionCallbacks.push(i)},Gh=new WeakSet,j4=function(){this.container.classList.add("genome-spy");const t=document.createElement("style");t.innerHTML=a8,this.container.appendChild(t);const n=Tf("div",{class:"canvas-wrapper"});this.container.appendChild(n),n.classList.add("loading"),this._glHelper=new DR(n,()=>this.viewRoot?m7(Fv(this.viewRoot)):{width:void 0,height:void 0},this.spec.background,{powerPreference:this.options.powerPreference??"default"}),this.loadingMessageElement=Tf("div",{class:"loading-message",innerHTML:'<div class="message">Loading<span class="ellipsis">...</span></div>'}),n.appendChild(this.loadingMessageElement),this.loadingIndicatorsElement=Tf("div",{class:"loading-indicators"}),n.appendChild(this.loadingIndicatorsElement),this.tooltip=new l8(n),this.loadingMessageElement.querySelector(".message").addEventListener("transitionend",()=>{this.loadingMessageElement.style.display="none"})};function pM(e,t){const n=document.createElement("div");n.className="message-box";const r=document.createElement("div");r.textContent=t,n.appendChild(r),e.appendChild(n)}function Tf(e,t){const n=document.createElement(e);for(const[r,i]of Object.entries(t))["innerHTML","innerText","className"].includes(r)&&(n[r]=i),n.setAttribute(r,i);return n}const gM="data:image/svg+xml,%3csvg%20viewBox='0%200%2032%2032'%20xmlns='http://www.w3.org/2000/svg'%20fill-rule='evenodd'%20clip-rule='evenodd'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-miterlimit='1.5'%3e%3cpath%20d='M4.7%2021.2s.4%202.3%201.3%203.6C7%2026%209.8%2028%209.8%2028s3.4-2.6%206.4-8.5c0%200%201%20.1%201.9-.4.9-.6.8-.4%201-1.2%200%200%202.9.5%206.6%200%202.1-.3%204.3-1%206.2-2.5%200%200-1.1-1.7-2.5-5.1-.5-1.3-2-1.8-4.6-4.6l-8.2%208.6-11.9%206.9z'%20fill-opacity='.1'/%3e%3cpath%20d='M12.7%2014.8s-4-1.8-12%202.7c0%200%201%203.7%202.5%205.3%201.4%201.5%202.3%203.6%204.6%204.6%200%200%204.7-3%206.9-9.2l3-2s4.7%202.8%2012.6-1.6c0%200-.6-3.3-3-6-2.6-3-3.8-4.7-3.8-4.7s-4.1%202.3-7.5%209.3l-3.3%201.6z'%20fill='%237fbbdd'/%3e%3cpath%20d='M12.4%2015.5c-.7-.5-2.4-.8-4.4-.4-2%20.4-4%201.3-4.8%201.8-.5.3-1.2%201-1.2%201.4%200%20.7.3%201.8.8%202.4.3.3.7.5%201.4.6.8%200%202.5-1.4%203.5-2%201-.6%201.6-.8%202.7-1.2l-2.9%202.4c-1.3%201.2-2.2%201.5-2.4%202.3%200%20.5%200%201.4.5%201.8.4.5.6.8%201.6.8.6%200%201%200%202.6-1.5.9-.9%202.3-3%202.7-3.7.6-1.1%201-2.2.7-3-.2-1-.4-1.4-.8-1.7zM17.4%2014.2c-.3-.5-.9-1.2-.2-2.5l1.9-3c.5-.8%202-2.3%202.6-2.6.6-.4%201.5-.6%202-.2.6.4%201%201%201.3%201.5.4.6.7%201.3.2%202-.7%201-1.6.9-2.8%201.7-1.2.8-1.9%201.2-2.5%201.9l3.8-1.8c1.3-.6%202.7-1.1%203.4-.7.8.5.8.7%201%201.4.3%201-.2%201.9-.8%202.4-.5.6-1.5.9-2.6%201.2-1.4.4-4.5%201-5.8.5-1.3-.5-1.3-1.4-1.5-1.8z'%20fill='%23fff'/%3e%3cpath%20d='M12.7%2014.8s-4-1.8-12%202.7c0%200%201%203.7%202.5%205.3%201.4%201.5%202.3%203.6%204.6%204.6%200%200%204.7-3%206.9-9.2l3-2s4.7%202.8%2012.6-1.6c0%200-.6-3.3-3-6-2.6-3-3.8-4.7-3.8-4.7s-4.1%202.3-7.5%209.3l-3.3%201.6z'%20fill='none'%20stroke='%23000'%20stroke-width='.5'/%3e%3cpath%20d='M12.4%2014.9s2.1-2%203-2c1.1%200%202.3%202.7%202.3%203.5%200%20.8-2.1%202.4-3.1%202.3%200%200%200-1.2-.7-2.6-.8-1.3-1.5-1.2-1.5-1.2z'%20fill='%237fbbdd'/%3e%3cpath%20d='M13.8%2015.3c.9.8.6%202%201.4%201.8%201-.2%201.4-.8%201.3-1.5%200-.7%200-.8-.4-1.6-.3-.7-1-1.1-2-.5-.7.5-1.4%201.3-1.4%201.3s.2-.3%201.1.5z'%20fill='%23fff'/%3e%3cpath%20d='M12.4%2014.9s2.1-2%203-2c1.1%200%202.3%202.7%202.3%203.5%200%20.8-2.1%202.4-3.1%202.3%200%200%200-1.2-.7-2.6-.8-1.3-1.5-1.2-1.5-1.2z'%20fill='none'%20stroke='%23000'%20stroke-width='.5'/%3e%3c/svg%3e",mM="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2064%2064'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;'%3e%3cg%20transform='matrix(0.10221,0.00683825,-0.0067136,0.100347,-8.03424,-13.2222)'%3e%3cpath%20d='M208.629,548.17C208.629,548.17%20219.768,594.389%20239.814,619.222C259.86,644.055%20319.119,680.831%20319.119,680.831C319.119,680.831%20385.557,622.915%20437.87,498.346C437.87,498.346%20456.021,499.236%20473.808,486.446C491.594,473.656%20490.239,478.534%20494.883,461.62C494.883,461.62%20551.848,467.937%20625.826,451.863C667.634,442.778%20710.238,425.649%20747.382,393.142C747.382,393.142%20721.992,360.244%20689.422,291.45C677.029,265.275%20647.518,257.098%20590.747,203.309L438.083,391.273L208.629,548.17Z'%20style='fill-opacity:0.11;'/%3e%3c/g%3e%3cg%20transform='matrix(0.081985,-0.0582493,0.0582493,0.081985,-40.4754,34.7668)'%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'%20style='fill:rgb(127,187,221);'/%3e%3cclipPath%20id='_clip1'%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23_clip1)'%3e%3cg%20transform='matrix(0.758637,0.45892,-0.45892,0.758637,425.635,-121.213)'%3e%3cpath%20d='M386.873,397.241C371.345,383.628%20335.138,374.782%20290.644,380.543C246.149,386.304%20196.827,402.266%20178.802,412.065C168.202,417.828%20151.494,429.354%20150.682,439.334C149.527,453.528%20153.593,477.066%20165.625,491.284C171.69,498.451%20179.927,503.445%20193.838,505.423C211.701,507.963%20252.714,480.627%20275.399,469.22C299.332,457.187%20313.981,454.56%20338.386,447.014C338.386,447.014%20291.346,478.587%20270.205,494.393C239.61,517.268%20218.575,522.444%20212.859,539.897C209.766,549.34%20212.237,567.767%20220.354,577.538C229.427,588.461%20233.197,595.069%20254.591,597.624C267.303,599.143%20276.685,598.802%20314.37,568.95C336.06,551.767%20370.297,509.817%20381.412,494.616C397.581,472.506%20405.165,451.462%20402.656,435.04C399.045,411.391%20394.259,403.716%20386.873,397.241Z'%20style='fill:white;'/%3e%3c/g%3e%3cg%20transform='matrix(0.752145,0.454993,-0.454993,0.752145,468.36,-108.293)'%3e%3cpath%20d='M484.733,378.934C479.33,367.886%20467.092,350.452%20483.886,325.205C502.172,297.717%20514.898,280.938%20528.117,264.632C541.335,248.326%20574.793,218.447%20587.739,212.53C600.684,206.613%20621.026,203.852%20631.889,212.841C642.874,221.93%20648.416,233.377%20654.92,245.478C662.331,259.267%20667.318,274.808%20656.518,288.278C641.093,307.515%20622.242,305.294%20594.912,319.844C567.244,334.573%20552.644,342.943%20539.244,355.703C539.244,355.703%20591.431,334.114%20621.229,324.474C651.027,314.833%20680.952,304.461%20695.995,315.975C711.038,327.49%20710.631,331.463%20714.425,347.187C719.107,366.59%20707.231,385.165%20694.294,395.838C681.356,406.51%20659.958,411.756%20636.875,416.852C606.42,423.576%20540.278,431.917%20512.819,419.366C485.361,406.815%20488.488,386.613%20484.733,378.934Z'%20style='fill:white;'/%3e%3c/g%3e%3c/g%3e%3cpath%20d='M561.588,349.155C561.588,349.155%20516.297,271.341%20328.841,252.044C328.841,252.044%20302.342,325.189%20307.686,368.056C313.031,410.922%20303.001,456.147%20329.132,501.174C329.132,501.174%20443.114,506.743%20554.649,428.469L629.204,432.112C629.204,432.112%20673.755,534.351%20856.964,554.375C856.964,554.375%20886.717,491.768%20879.193,417.478C871.211,338.673%20871.716,293.443%20871.716,293.443C871.716,293.443%20775.485,283.928%20635.418,361.795L561.588,349.155Z'%20style='fill:none;stroke:black;stroke-width:16.57px;'/%3e%3c/g%3e%3cg%20transform='matrix(0.100298,-0.00740488,0.00740488,0.100298,-15.7457,-5.17528)'%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'%20style='fill:rgb(127,187,221);'/%3e%3cclipPath%20id='_clip2'%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23_clip2)'%3e%3cg%20transform='matrix(0.909069,3.67641e-17,-3.79818e-17,0.85852,37.051,52.1829)'%3e%3cpath%20d='M413.282,402.697C430.77,421.58%20423.307,448.426%20441.683,446.137C463.409,443.431%20472.604,430.356%20473.316,413.402C474.028,396.448%20472.245,393.911%20466.172,375.321C460.099,356.731%20447.953,352.176%20422.842,357.179C401.957,361.339%20405.039,360.215%20398.735,367.228C392.43,374.242%20384.315,393.182%20384.315,393.182C384.315,393.182%20392.715,380.492%20413.282,402.697Z'%20style='fill:white;'/%3e%3c/g%3e%3c/g%3e%3cpath%20d='M384.916,385.459C384.916,385.459%20430.781,347.868%20450.027,350.093C471.685,352.596%20490.49,407.747%20490.208,424.416C489.927,441.085%20442.948,469.866%20422.537,466.24C422.537,466.24%20425.525,442.129%20412.114,413.335C398.702,384.54%20384.916,385.459%20384.916,385.459Z'%20style='fill:none;stroke:black;stroke-width:16.57px;'/%3e%3c/g%3e%3c/svg%3e";async function bM(e,t,n={}){let r;if(Fe(e)){if(r=document.querySelector(e),!r)throw new Error(`No such element: ${e}`)}else if(e instanceof HTMLElement)r=e;else throw new Error(`Invalid element: ${e}`);let i;try{const o=kt(t)?t:await ex(t);if(o.baseUrl??(o.baseUrl=""),o.width??(o.width="container"),o.padding??(o.padding=10),r==document.body){const a=document.createElement("div");a.style.position="fixed",a.style.inset="0",a.style.overflow="hidden",r.appendChild(a),r=a}i=new Jv(r,o,n),yM(i,n),await i.launch()}catch(o){r.innerText=o.toString(),console.error(o)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(o,a){const s=i._eventListeners;let u=s.get(o);u||(u=new Set,s.set(o,u)),u.add(a)},removeEventListener(o,a){var u;(u=i._eventListeners.get(o))==null||u.delete(a)},getScaleResolutionByName(o){return i.getNamedScaleResolutions().get(o)},updateNamedData:i.updateNamedData.bind(i)}}function yM(e,t){t.namedDataProvider&&e.registerNamedDataProvider(t.namedDataProvider)}async function ex(e){let t;try{t=JSON.parse(await yc().load(e))}catch(n){throw new Error(`Could not load or parse configuration: ${e}, reason: ${n.message}`)}if(!t.baseUrl){const n=e.match(/^[^?#]*\//);t.baseUrl=n&&n[0]||"./"}return t}var If=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function Sl(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function wM(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}),n}var be={},Bf={};Bf.byteLength=AM,Bf.toByteArray=_M,Bf.fromByteArray=kM;for(var qn=[],sn=[],vM=typeof Uint8Array<"u"?Uint8Array:Array,Ap="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fa=0,xM=Ap.length;fa<xM;++fa)qn[fa]=Ap[fa],sn[Ap.charCodeAt(fa)]=fa;sn["-".charCodeAt(0)]=62,sn["_".charCodeAt(0)]=63;function tx(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");n===-1&&(n=t);var r=n===t?0:4-n%4;return[n,r]}function AM(e){var t=tx(e),n=t[0],r=t[1];return(n+r)*3/4-r}function EM(e,t,n){return(t+n)*3/4-n}function _M(e){var t,n=tx(e),r=n[0],i=n[1],o=new vM(EM(e,r,i)),a=0,s=i>0?r-4:r,u;for(u=0;u<s;u+=4)t=sn[e.charCodeAt(u)]<<18|sn[e.charCodeAt(u+1)]<<12|sn[e.charCodeAt(u+2)]<<6|sn[e.charCodeAt(u+3)],o[a++]=t>>16&255,o[a++]=t>>8&255,o[a++]=t&255;return i===2&&(t=sn[e.charCodeAt(u)]<<2|sn[e.charCodeAt(u+1)]>>4,o[a++]=t&255),i===1&&(t=sn[e.charCodeAt(u)]<<10|sn[e.charCodeAt(u+1)]<<4|sn[e.charCodeAt(u+2)]>>2,o[a++]=t>>8&255,o[a++]=t&255),o}function SM(e){return qn[e>>18&63]+qn[e>>12&63]+qn[e>>6&63]+qn[e&63]}function CM(e,t,n){for(var r,i=[],o=t;o<n;o+=3)r=(e[o]<<16&16711680)+(e[o+1]<<8&65280)+(e[o+2]&255),i.push(SM(r));return i.join("")}function kM(e){for(var t,n=e.length,r=n%3,i=[],o=16383,a=0,s=n-r;a<s;a+=o)i.push(CM(e,a,a+o>s?s:a+o));return r===1?(t=e[n-1],i.push(qn[t>>2]+qn[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(qn[t>>10]+qn[t>>4&63]+qn[t<<2&63]+"=")),i.join("")}var Ep={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */Ep.read=function(e,t,n,r,i){var o,a,s=i*8-r-1,u=(1<<s)-1,l=u>>1,c=-7,f=n?i-1:0,h=n?-1:1,d=e[t+f];for(f+=h,o=d&(1<<-c)-1,d>>=-c,c+=s;c>0;o=o*256+e[t+f],f+=h,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=r;c>0;a=a*256+e[t+f],f+=h,c-=8);if(o===0)o=1-l;else{if(o===u)return a?NaN:(d?-1:1)*(1/0);a=a+Math.pow(2,r),o=o-l}return(d?-1:1)*a*Math.pow(2,o-r)},Ep.write=function(e,t,n,r,i,o){var a,s,u,l=o*8-i-1,c=(1<<l)-1,f=c>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,p=r?1:-1,m=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=c):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),a+f>=1?t+=h/u:t+=h*Math.pow(2,1-f),t*u>=2&&(a++,u/=2),a+f>=c?(s=0,a=c):a+f>=1?(s=(t*u-1)*Math.pow(2,i),a=a+f):(s=t*Math.pow(2,f-1)*Math.pow(2,i),a=0));i>=8;e[n+d]=s&255,d+=p,s/=256,i-=8);for(a=a<<i|s,l+=i;l>0;e[n+d]=a&255,d+=p,a/=256,l-=8);e[n+d-p]|=m*128};/*!
465
478
  * The buffer module from node.js, for the browser.
466
479
  *
467
480
  * @author Feross Aboukhadijeh <https://feross.org>
468
481
  * @license MIT
469
- */(function(e){const t=_f,n=dp,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=s,e.SlowBuffer=x,e.INSPECT_MAX_BYTES=50;const i=2147483647;e.kMaxLength=i,s.TYPED_ARRAY_SUPPORT=a(),!s.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function a(){try{const v=new Uint8Array(1),g={foo:function(){return 42}};return Object.setPrototypeOf(g,Uint8Array.prototype),Object.setPrototypeOf(v,g),v.foo()===42}catch{return!1}}Object.defineProperty(s.prototype,"parent",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,"offset",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}});function o(v){if(v>i)throw new RangeError('The value "'+v+'" is invalid for option "size"');const g=new Uint8Array(v);return Object.setPrototypeOf(g,s.prototype),g}function s(v,g,b){if(typeof v=="number"){if(typeof g=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return f(v)}return u(v,g,b)}s.poolSize=8192;function u(v,g,b){if(typeof v=="string")return h(v,g);if(ArrayBuffer.isView(v))return p(v);if(v==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof v);if(Ct(v,ArrayBuffer)||v&&Ct(v.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Ct(v,SharedArrayBuffer)||v&&Ct(v.buffer,SharedArrayBuffer)))return m(v,g,b);if(typeof v=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const k=v.valueOf&&v.valueOf();if(k!=null&&k!==v)return s.from(k,g,b);const F=y(v);if(F)return F;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof v[Symbol.toPrimitive]=="function")return s.from(v[Symbol.toPrimitive]("string"),g,b);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof v)}s.from=function(v,g,b){return u(v,g,b)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array);function l(v){if(typeof v!="number")throw new TypeError('"size" argument must be of type number');if(v<0)throw new RangeError('The value "'+v+'" is invalid for option "size"')}function c(v,g,b){return l(v),v<=0?o(v):g!==void 0?typeof b=="string"?o(v).fill(g,b):o(v).fill(g):o(v)}s.alloc=function(v,g,b){return c(v,g,b)};function f(v){return l(v),o(v<0?0:w(v)|0)}s.allocUnsafe=function(v){return f(v)},s.allocUnsafeSlow=function(v){return f(v)};function h(v,g){if((typeof g!="string"||g==="")&&(g="utf8"),!s.isEncoding(g))throw new TypeError("Unknown encoding: "+g);const b=S(v,g)|0;let k=o(b);const F=k.write(v,g);return F!==b&&(k=k.slice(0,F)),k}function d(v){const g=v.length<0?0:w(v.length)|0,b=o(g);for(let k=0;k<g;k+=1)b[k]=v[k]&255;return b}function p(v){if(Ct(v,Uint8Array)){const g=new Uint8Array(v);return m(g.buffer,g.byteOffset,g.byteLength)}return d(v)}function m(v,g,b){if(g<0||v.byteLength<g)throw new RangeError('"offset" is outside of buffer bounds');if(v.byteLength<g+(b||0))throw new RangeError('"length" is outside of buffer bounds');let k;return g===void 0&&b===void 0?k=new Uint8Array(v):b===void 0?k=new Uint8Array(v,g):k=new Uint8Array(v,g,b),Object.setPrototypeOf(k,s.prototype),k}function y(v){if(s.isBuffer(v)){const g=w(v.length)|0,b=o(g);return b.length===0||v.copy(b,0,0,g),b}if(v.length!==void 0)return typeof v.length!="number"||kr(v.length)?o(0):d(v);if(v.type==="Buffer"&&Array.isArray(v.data))return d(v.data)}function w(v){if(v>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return v|0}function x(v){return+v!=v&&(v=0),s.alloc(+v)}s.isBuffer=function(g){return g!=null&&g._isBuffer===!0&&g!==s.prototype},s.compare=function(g,b){if(Ct(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),Ct(b,Uint8Array)&&(b=s.from(b,b.offset,b.byteLength)),!s.isBuffer(g)||!s.isBuffer(b))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(g===b)return 0;let k=g.length,F=b.length;for(let N=0,$=Math.min(k,F);N<$;++N)if(g[N]!==b[N]){k=g[N],F=b[N];break}return k<F?-1:F<k?1:0},s.isEncoding=function(g){switch(String(g).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(g,b){if(!Array.isArray(g))throw new TypeError('"list" argument must be an Array of Buffers');if(g.length===0)return s.alloc(0);let k;if(b===void 0)for(b=0,k=0;k<g.length;++k)b+=g[k].length;const F=s.allocUnsafe(b);let N=0;for(k=0;k<g.length;++k){let $=g[k];if(Ct($,Uint8Array))N+$.length>F.length?(s.isBuffer($)||($=s.from($)),$.copy(F,N)):Uint8Array.prototype.set.call(F,$,N);else if(s.isBuffer($))$.copy(F,N);else throw new TypeError('"list" argument must be an Array of Buffers');N+=$.length}return F};function S(v,g){if(s.isBuffer(v))return v.length;if(ArrayBuffer.isView(v)||Ct(v,ArrayBuffer))return v.byteLength;if(typeof v!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof v);const b=v.length,k=arguments.length>2&&arguments[2]===!0;if(!k&&b===0)return 0;let F=!1;for(;;)switch(g){case"ascii":case"latin1":case"binary":return b;case"utf8":case"utf-8":return ce(v).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return b*2;case"hex":return b>>>1;case"base64":return Ei(v).length;default:if(F)return k?-1:ce(v).length;g=(""+g).toLowerCase(),F=!0}}s.byteLength=S;function _(v,g,b){let k=!1;if((g===void 0||g<0)&&(g=0),g>this.length||((b===void 0||b>this.length)&&(b=this.length),b<=0)||(b>>>=0,g>>>=0,b<=g))return"";for(v||(v="utf8");;)switch(v){case"hex":return We(this,g,b);case"utf8":case"utf-8":return te(this,g,b);case"ascii":return Re(this,g,b);case"latin1":case"binary":return Je(this,g,b);case"base64":return se(this,g,b);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return et(this,g,b);default:if(k)throw new TypeError("Unknown encoding: "+v);v=(v+"").toLowerCase(),k=!0}}s.prototype._isBuffer=!0;function T(v,g,b){const k=v[g];v[g]=v[b],v[b]=k}s.prototype.swap16=function(){const g=this.length;if(g%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let b=0;b<g;b+=2)T(this,b,b+1);return this},s.prototype.swap32=function(){const g=this.length;if(g%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let b=0;b<g;b+=4)T(this,b,b+3),T(this,b+1,b+2);return this},s.prototype.swap64=function(){const g=this.length;if(g%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let b=0;b<g;b+=8)T(this,b,b+7),T(this,b+1,b+6),T(this,b+2,b+5),T(this,b+3,b+4);return this},s.prototype.toString=function(){const g=this.length;return g===0?"":arguments.length===0?te(this,0,g):_.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(g){if(!s.isBuffer(g))throw new TypeError("Argument must be a Buffer");return this===g?!0:s.compare(this,g)===0},s.prototype.inspect=function(){let g="";const b=e.INSPECT_MAX_BYTES;return g=this.toString("hex",0,b).replace(/(.{2})/g,"$1 ").trim(),this.length>b&&(g+=" ... "),"<Buffer "+g+">"},r&&(s.prototype[r]=s.prototype.inspect),s.prototype.compare=function(g,b,k,F,N){if(Ct(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),!s.isBuffer(g))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof g);if(b===void 0&&(b=0),k===void 0&&(k=g?g.length:0),F===void 0&&(F=0),N===void 0&&(N=this.length),b<0||k>g.length||F<0||N>this.length)throw new RangeError("out of range index");if(F>=N&&b>=k)return 0;if(F>=N)return-1;if(b>=k)return 1;if(b>>>=0,k>>>=0,F>>>=0,N>>>=0,this===g)return 0;let $=N-F,fe=k-b;const He=Math.min($,fe),Pe=this.slice(F,N),Ze=g.slice(b,k);for(let ke=0;ke<He;++ke)if(Pe[ke]!==Ze[ke]){$=Pe[ke],fe=Ze[ke];break}return $<fe?-1:fe<$?1:0};function I(v,g,b,k,F){if(v.length===0)return-1;if(typeof b=="string"?(k=b,b=0):b>2147483647?b=2147483647:b<-2147483648&&(b=-2147483648),b=+b,kr(b)&&(b=F?0:v.length-1),b<0&&(b=v.length+b),b>=v.length){if(F)return-1;b=v.length-1}else if(b<0)if(F)b=0;else return-1;if(typeof g=="string"&&(g=s.from(g,k)),s.isBuffer(g))return g.length===0?-1:B(v,g,b,k,F);if(typeof g=="number")return g=g&255,typeof Uint8Array.prototype.indexOf=="function"?F?Uint8Array.prototype.indexOf.call(v,g,b):Uint8Array.prototype.lastIndexOf.call(v,g,b):B(v,[g],b,k,F);throw new TypeError("val must be string, number or Buffer")}function B(v,g,b,k,F){let N=1,$=v.length,fe=g.length;if(k!==void 0&&(k=String(k).toLowerCase(),k==="ucs2"||k==="ucs-2"||k==="utf16le"||k==="utf-16le")){if(v.length<2||g.length<2)return-1;N=2,$/=2,fe/=2,b/=2}function He(Ze,ke){return N===1?Ze[ke]:Ze.readUInt16BE(ke*N)}let Pe;if(F){let Ze=-1;for(Pe=b;Pe<$;Pe++)if(He(v,Pe)===He(g,Ze===-1?0:Pe-Ze)){if(Ze===-1&&(Ze=Pe),Pe-Ze+1===fe)return Ze*N}else Ze!==-1&&(Pe-=Pe-Ze),Ze=-1}else for(b+fe>$&&(b=$-fe),Pe=b;Pe>=0;Pe--){let Ze=!0;for(let ke=0;ke<fe;ke++)if(He(v,Pe+ke)!==He(g,ke)){Ze=!1;break}if(Ze)return Pe}return-1}s.prototype.includes=function(g,b,k){return this.indexOf(g,b,k)!==-1},s.prototype.indexOf=function(g,b,k){return I(this,g,b,k,!0)},s.prototype.lastIndexOf=function(g,b,k){return I(this,g,b,k,!1)};function R(v,g,b,k){b=Number(b)||0;const F=v.length-b;k?(k=Number(k),k>F&&(k=F)):k=F;const N=g.length;k>N/2&&(k=N/2);let $;for($=0;$<k;++$){const fe=parseInt(g.substr($*2,2),16);if(kr(fe))return $;v[b+$]=fe}return $}function M(v,g,b,k){return _i(ce(g,v.length-b),v,b,k)}function H(v,g,b,k){return _i(Wt(g),v,b,k)}function O(v,g,b,k){return _i(Ei(g),v,b,k)}function re(v,g,b,k){return _i(Ai(g,v.length-b),v,b,k)}s.prototype.write=function(g,b,k,F){if(b===void 0)F="utf8",k=this.length,b=0;else if(k===void 0&&typeof b=="string")F=b,k=this.length,b=0;else if(isFinite(b))b=b>>>0,isFinite(k)?(k=k>>>0,F===void 0&&(F="utf8")):(F=k,k=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const N=this.length-b;if((k===void 0||k>N)&&(k=N),g.length>0&&(k<0||b<0)||b>this.length)throw new RangeError("Attempt to write outside buffer bounds");F||(F="utf8");let $=!1;for(;;)switch(F){case"hex":return R(this,g,b,k);case"utf8":case"utf-8":return M(this,g,b,k);case"ascii":case"latin1":case"binary":return H(this,g,b,k);case"base64":return O(this,g,b,k);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return re(this,g,b,k);default:if($)throw new TypeError("Unknown encoding: "+F);F=(""+F).toLowerCase(),$=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function se(v,g,b){return g===0&&b===v.length?t.fromByteArray(v):t.fromByteArray(v.slice(g,b))}function te(v,g,b){b=Math.min(v.length,b);const k=[];let F=g;for(;F<b;){const N=v[F];let $=null,fe=N>239?4:N>223?3:N>191?2:1;if(F+fe<=b){let He,Pe,Ze,ke;switch(fe){case 1:N<128&&($=N);break;case 2:He=v[F+1],(He&192)===128&&(ke=(N&31)<<6|He&63,ke>127&&($=ke));break;case 3:He=v[F+1],Pe=v[F+2],(He&192)===128&&(Pe&192)===128&&(ke=(N&15)<<12|(He&63)<<6|Pe&63,ke>2047&&(ke<55296||ke>57343)&&($=ke));break;case 4:He=v[F+1],Pe=v[F+2],Ze=v[F+3],(He&192)===128&&(Pe&192)===128&&(Ze&192)===128&&(ke=(N&15)<<18|(He&63)<<12|(Pe&63)<<6|Ze&63,ke>65535&&ke<1114112&&($=ke))}}$===null?($=65533,fe=1):$>65535&&($-=65536,k.push($>>>10&1023|55296),$=56320|$&1023),k.push($),F+=fe}return Ke(k)}const me=4096;function Ke(v){const g=v.length;if(g<=me)return String.fromCharCode.apply(String,v);let b="",k=0;for(;k<g;)b+=String.fromCharCode.apply(String,v.slice(k,k+=me));return b}function Re(v,g,b){let k="";b=Math.min(v.length,b);for(let F=g;F<b;++F)k+=String.fromCharCode(v[F]&127);return k}function Je(v,g,b){let k="";b=Math.min(v.length,b);for(let F=g;F<b;++F)k+=String.fromCharCode(v[F]);return k}function We(v,g,b){const k=v.length;(!g||g<0)&&(g=0),(!b||b<0||b>k)&&(b=k);let F="";for(let N=g;N<b;++N)F+=Si[v[N]];return F}function et(v,g,b){const k=v.slice(g,b);let F="";for(let N=0;N<k.length-1;N+=2)F+=String.fromCharCode(k[N]+k[N+1]*256);return F}s.prototype.slice=function(g,b){const k=this.length;g=~~g,b=b===void 0?k:~~b,g<0?(g+=k,g<0&&(g=0)):g>k&&(g=k),b<0?(b+=k,b<0&&(b=0)):b>k&&(b=k),b<g&&(b=g);const F=this.subarray(g,b);return Object.setPrototypeOf(F,s.prototype),F};function Se(v,g,b){if(v%1!==0||v<0)throw new RangeError("offset is not uint");if(v+g>b)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(g,b,k){g=g>>>0,b=b>>>0,k||Se(g,b,this.length);let F=this[g],N=1,$=0;for(;++$<b&&(N*=256);)F+=this[g+$]*N;return F},s.prototype.readUintBE=s.prototype.readUIntBE=function(g,b,k){g=g>>>0,b=b>>>0,k||Se(g,b,this.length);let F=this[g+--b],N=1;for(;b>0&&(N*=256);)F+=this[g+--b]*N;return F},s.prototype.readUint8=s.prototype.readUInt8=function(g,b){return g=g>>>0,b||Se(g,1,this.length),this[g]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(g,b){return g=g>>>0,b||Se(g,2,this.length),this[g]|this[g+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(g,b){return g=g>>>0,b||Se(g,2,this.length),this[g]<<8|this[g+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(g,b){return g=g>>>0,b||Se(g,4,this.length),(this[g]|this[g+1]<<8|this[g+2]<<16)+this[g+3]*16777216},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(g,b){return g=g>>>0,b||Se(g,4,this.length),this[g]*16777216+(this[g+1]<<16|this[g+2]<<8|this[g+3])},s.prototype.readBigUInt64LE=Zt(function(g){g=g>>>0,V(g,"offset");const b=this[g],k=this[g+7];(b===void 0||k===void 0)&&W(g,this.length-8);const F=b+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24,N=this[++g]+this[++g]*2**8+this[++g]*2**16+k*2**24;return BigInt(F)+(BigInt(N)<<BigInt(32))}),s.prototype.readBigUInt64BE=Zt(function(g){g=g>>>0,V(g,"offset");const b=this[g],k=this[g+7];(b===void 0||k===void 0)&&W(g,this.length-8);const F=b*2**24+this[++g]*2**16+this[++g]*2**8+this[++g],N=this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+k;return(BigInt(F)<<BigInt(32))+BigInt(N)}),s.prototype.readIntLE=function(g,b,k){g=g>>>0,b=b>>>0,k||Se(g,b,this.length);let F=this[g],N=1,$=0;for(;++$<b&&(N*=256);)F+=this[g+$]*N;return N*=128,F>=N&&(F-=Math.pow(2,8*b)),F},s.prototype.readIntBE=function(g,b,k){g=g>>>0,b=b>>>0,k||Se(g,b,this.length);let F=b,N=1,$=this[g+--F];for(;F>0&&(N*=256);)$+=this[g+--F]*N;return N*=128,$>=N&&($-=Math.pow(2,8*b)),$},s.prototype.readInt8=function(g,b){return g=g>>>0,b||Se(g,1,this.length),this[g]&128?(255-this[g]+1)*-1:this[g]},s.prototype.readInt16LE=function(g,b){g=g>>>0,b||Se(g,2,this.length);const k=this[g]|this[g+1]<<8;return k&32768?k|4294901760:k},s.prototype.readInt16BE=function(g,b){g=g>>>0,b||Se(g,2,this.length);const k=this[g+1]|this[g]<<8;return k&32768?k|4294901760:k},s.prototype.readInt32LE=function(g,b){return g=g>>>0,b||Se(g,4,this.length),this[g]|this[g+1]<<8|this[g+2]<<16|this[g+3]<<24},s.prototype.readInt32BE=function(g,b){return g=g>>>0,b||Se(g,4,this.length),this[g]<<24|this[g+1]<<16|this[g+2]<<8|this[g+3]},s.prototype.readBigInt64LE=Zt(function(g){g=g>>>0,V(g,"offset");const b=this[g],k=this[g+7];(b===void 0||k===void 0)&&W(g,this.length-8);const F=this[g+4]+this[g+5]*2**8+this[g+6]*2**16+(k<<24);return(BigInt(F)<<BigInt(32))+BigInt(b+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24)}),s.prototype.readBigInt64BE=Zt(function(g){g=g>>>0,V(g,"offset");const b=this[g],k=this[g+7];(b===void 0||k===void 0)&&W(g,this.length-8);const F=(b<<24)+this[++g]*2**16+this[++g]*2**8+this[++g];return(BigInt(F)<<BigInt(32))+BigInt(this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+k)}),s.prototype.readFloatLE=function(g,b){return g=g>>>0,b||Se(g,4,this.length),n.read(this,g,!0,23,4)},s.prototype.readFloatBE=function(g,b){return g=g>>>0,b||Se(g,4,this.length),n.read(this,g,!1,23,4)},s.prototype.readDoubleLE=function(g,b){return g=g>>>0,b||Se(g,8,this.length),n.read(this,g,!0,52,8)},s.prototype.readDoubleBE=function(g,b){return g=g>>>0,b||Se(g,8,this.length),n.read(this,g,!1,52,8)};function Ce(v,g,b,k,F,N){if(!s.isBuffer(v))throw new TypeError('"buffer" argument must be a Buffer instance');if(g>F||g<N)throw new RangeError('"value" argument is out of bounds');if(b+k>v.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(g,b,k,F){if(g=+g,b=b>>>0,k=k>>>0,!F){const fe=Math.pow(2,8*k)-1;Ce(this,g,b,k,fe,0)}let N=1,$=0;for(this[b]=g&255;++$<k&&(N*=256);)this[b+$]=g/N&255;return b+k},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(g,b,k,F){if(g=+g,b=b>>>0,k=k>>>0,!F){const fe=Math.pow(2,8*k)-1;Ce(this,g,b,k,fe,0)}let N=k-1,$=1;for(this[b+N]=g&255;--N>=0&&($*=256);)this[b+N]=g/$&255;return b+k},s.prototype.writeUint8=s.prototype.writeUInt8=function(g,b,k){return g=+g,b=b>>>0,k||Ce(this,g,b,1,255,0),this[b]=g&255,b+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(g,b,k){return g=+g,b=b>>>0,k||Ce(this,g,b,2,65535,0),this[b]=g&255,this[b+1]=g>>>8,b+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(g,b,k){return g=+g,b=b>>>0,k||Ce(this,g,b,2,65535,0),this[b]=g>>>8,this[b+1]=g&255,b+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(g,b,k){return g=+g,b=b>>>0,k||Ce(this,g,b,4,4294967295,0),this[b+3]=g>>>24,this[b+2]=g>>>16,this[b+1]=g>>>8,this[b]=g&255,b+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(g,b,k){return g=+g,b=b>>>0,k||Ce(this,g,b,4,4294967295,0),this[b]=g>>>24,this[b+1]=g>>>16,this[b+2]=g>>>8,this[b+3]=g&255,b+4};function gt(v,g,b,k,F){A(g,k,F,v,b,7);let N=Number(g&BigInt(4294967295));v[b++]=N,N=N>>8,v[b++]=N,N=N>>8,v[b++]=N,N=N>>8,v[b++]=N;let $=Number(g>>BigInt(32)&BigInt(4294967295));return v[b++]=$,$=$>>8,v[b++]=$,$=$>>8,v[b++]=$,$=$>>8,v[b++]=$,b}function qt(v,g,b,k,F){A(g,k,F,v,b,7);let N=Number(g&BigInt(4294967295));v[b+7]=N,N=N>>8,v[b+6]=N,N=N>>8,v[b+5]=N,N=N>>8,v[b+4]=N;let $=Number(g>>BigInt(32)&BigInt(4294967295));return v[b+3]=$,$=$>>8,v[b+2]=$,$=$>>8,v[b+1]=$,$=$>>8,v[b]=$,b+8}s.prototype.writeBigUInt64LE=Zt(function(g,b=0){return gt(this,g,b,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=Zt(function(g,b=0){return qt(this,g,b,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(g,b,k,F){if(g=+g,b=b>>>0,!F){const He=Math.pow(2,8*k-1);Ce(this,g,b,k,He-1,-He)}let N=0,$=1,fe=0;for(this[b]=g&255;++N<k&&($*=256);)g<0&&fe===0&&this[b+N-1]!==0&&(fe=1),this[b+N]=(g/$>>0)-fe&255;return b+k},s.prototype.writeIntBE=function(g,b,k,F){if(g=+g,b=b>>>0,!F){const He=Math.pow(2,8*k-1);Ce(this,g,b,k,He-1,-He)}let N=k-1,$=1,fe=0;for(this[b+N]=g&255;--N>=0&&($*=256);)g<0&&fe===0&&this[b+N+1]!==0&&(fe=1),this[b+N]=(g/$>>0)-fe&255;return b+k},s.prototype.writeInt8=function(g,b,k){return g=+g,b=b>>>0,k||Ce(this,g,b,1,127,-128),g<0&&(g=255+g+1),this[b]=g&255,b+1},s.prototype.writeInt16LE=function(g,b,k){return g=+g,b=b>>>0,k||Ce(this,g,b,2,32767,-32768),this[b]=g&255,this[b+1]=g>>>8,b+2},s.prototype.writeInt16BE=function(g,b,k){return g=+g,b=b>>>0,k||Ce(this,g,b,2,32767,-32768),this[b]=g>>>8,this[b+1]=g&255,b+2},s.prototype.writeInt32LE=function(g,b,k){return g=+g,b=b>>>0,k||Ce(this,g,b,4,2147483647,-2147483648),this[b]=g&255,this[b+1]=g>>>8,this[b+2]=g>>>16,this[b+3]=g>>>24,b+4},s.prototype.writeInt32BE=function(g,b,k){return g=+g,b=b>>>0,k||Ce(this,g,b,4,2147483647,-2147483648),g<0&&(g=4294967295+g+1),this[b]=g>>>24,this[b+1]=g>>>16,this[b+2]=g>>>8,this[b+3]=g&255,b+4},s.prototype.writeBigInt64LE=Zt(function(g,b=0){return gt(this,g,b,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=Zt(function(g,b=0){return qt(this,g,b,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Oe(v,g,b,k,F,N){if(b+k>v.length)throw new RangeError("Index out of range");if(b<0)throw new RangeError("Index out of range")}function L(v,g,b,k,F){return g=+g,b=b>>>0,F||Oe(v,g,b,4),n.write(v,g,b,k,23,4),b+4}s.prototype.writeFloatLE=function(g,b,k){return L(this,g,b,!0,k)},s.prototype.writeFloatBE=function(g,b,k){return L(this,g,b,!1,k)};function P(v,g,b,k,F){return g=+g,b=b>>>0,F||Oe(v,g,b,8),n.write(v,g,b,k,52,8),b+8}s.prototype.writeDoubleLE=function(g,b,k){return P(this,g,b,!0,k)},s.prototype.writeDoubleBE=function(g,b,k){return P(this,g,b,!1,k)},s.prototype.copy=function(g,b,k,F){if(!s.isBuffer(g))throw new TypeError("argument should be a Buffer");if(k||(k=0),!F&&F!==0&&(F=this.length),b>=g.length&&(b=g.length),b||(b=0),F>0&&F<k&&(F=k),F===k||g.length===0||this.length===0)return 0;if(b<0)throw new RangeError("targetStart out of bounds");if(k<0||k>=this.length)throw new RangeError("Index out of range");if(F<0)throw new RangeError("sourceEnd out of bounds");F>this.length&&(F=this.length),g.length-b<F-k&&(F=g.length-b+k);const N=F-k;return this===g&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(b,k,F):Uint8Array.prototype.set.call(g,this.subarray(k,F),b),N},s.prototype.fill=function(g,b,k,F){if(typeof g=="string"){if(typeof b=="string"?(F=b,b=0,k=this.length):typeof k=="string"&&(F=k,k=this.length),F!==void 0&&typeof F!="string")throw new TypeError("encoding must be a string");if(typeof F=="string"&&!s.isEncoding(F))throw new TypeError("Unknown encoding: "+F);if(g.length===1){const $=g.charCodeAt(0);(F==="utf8"&&$<128||F==="latin1")&&(g=$)}}else typeof g=="number"?g=g&255:typeof g=="boolean"&&(g=Number(g));if(b<0||this.length<b||this.length<k)throw new RangeError("Out of range index");if(k<=b)return this;b=b>>>0,k=k===void 0?this.length:k>>>0,g||(g=0);let N;if(typeof g=="number")for(N=b;N<k;++N)this[N]=g;else{const $=s.isBuffer(g)?g:s.from(g,F),fe=$.length;if(fe===0)throw new TypeError('The value "'+g+'" is invalid for argument "value"');for(N=0;N<k-b;++N)this[N+b]=$[N%fe]}return this};const q={};function j(v,g,b){q[v]=class extends b{constructor(){super(),Object.defineProperty(this,"message",{value:g.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${v}]`,this.stack,delete this.name}get code(){return v}set code(F){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:F,writable:!0})}toString(){return`${this.name} [${v}]: ${this.message}`}}}j("ERR_BUFFER_OUT_OF_BOUNDS",function(v){return v?`${v} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),j("ERR_INVALID_ARG_TYPE",function(v,g){return`The "${v}" argument must be of type number. Received type ${typeof g}`},TypeError),j("ERR_OUT_OF_RANGE",function(v,g,b){let k=`The value of "${v}" is out of range.`,F=b;return Number.isInteger(b)&&Math.abs(b)>2**32?F=Z(String(b)):typeof b=="bigint"&&(F=String(b),(b>BigInt(2)**BigInt(32)||b<-(BigInt(2)**BigInt(32)))&&(F=Z(F)),F+="n"),k+=` It must be ${g}. Received ${F}`,k},RangeError);function Z(v){let g="",b=v.length;const k=v[0]==="-"?1:0;for(;b>=k+4;b-=3)g=`_${v.slice(b-3,b)}${g}`;return`${v.slice(0,b)}${g}`}function C(v,g,b){V(g,"offset"),(v[g]===void 0||v[g+b]===void 0)&&W(g,v.length-(b+1))}function A(v,g,b,k,F,N){if(v>b||v<g){const $=typeof g=="bigint"?"n":"";let fe;throw N>3?g===0||g===BigInt(0)?fe=`>= 0${$} and < 2${$} ** ${(N+1)*8}${$}`:fe=`>= -(2${$} ** ${(N+1)*8-1}${$}) and < 2 ** ${(N+1)*8-1}${$}`:fe=`>= ${g}${$} and <= ${b}${$}`,new q.ERR_OUT_OF_RANGE("value",fe,v)}C(k,F,N)}function V(v,g){if(typeof v!="number")throw new q.ERR_INVALID_ARG_TYPE(g,"number",v)}function W(v,g,b){throw Math.floor(v)!==v?(V(v,b),new q.ERR_OUT_OF_RANGE(b||"offset","an integer",v)):g<0?new q.ERR_BUFFER_OUT_OF_BOUNDS:new q.ERR_OUT_OF_RANGE(b||"offset",`>= ${b?1:0} and <= ${g}`,v)}const ue=/[^+/0-9A-Za-z-_]/g;function ne(v){if(v=v.split("=")[0],v=v.trim().replace(ue,""),v.length<2)return"";for(;v.length%4!==0;)v=v+"=";return v}function ce(v,g){g=g||1/0;let b;const k=v.length;let F=null;const N=[];for(let $=0;$<k;++$){if(b=v.charCodeAt($),b>55295&&b<57344){if(!F){if(b>56319){(g-=3)>-1&&N.push(239,191,189);continue}else if($+1===k){(g-=3)>-1&&N.push(239,191,189);continue}F=b;continue}if(b<56320){(g-=3)>-1&&N.push(239,191,189),F=b;continue}b=(F-55296<<10|b-56320)+65536}else F&&(g-=3)>-1&&N.push(239,191,189);if(F=null,b<128){if((g-=1)<0)break;N.push(b)}else if(b<2048){if((g-=2)<0)break;N.push(b>>6|192,b&63|128)}else if(b<65536){if((g-=3)<0)break;N.push(b>>12|224,b>>6&63|128,b&63|128)}else if(b<1114112){if((g-=4)<0)break;N.push(b>>18|240,b>>12&63|128,b>>6&63|128,b&63|128)}else throw new Error("Invalid code point")}return N}function Wt(v){const g=[];for(let b=0;b<v.length;++b)g.push(v.charCodeAt(b)&255);return g}function Ai(v,g){let b,k,F;const N=[];for(let $=0;$<v.length&&!((g-=2)<0);++$)b=v.charCodeAt($),k=b>>8,F=b%256,N.push(F),N.push(k);return N}function Ei(v){return t.toByteArray(ne(v))}function _i(v,g,b,k){let F;for(F=0;F<k&&!(F+b>=g.length||F>=v.length);++F)g[F+b]=v[F];return F}function Ct(v,g){return v instanceof g||v!=null&&v.constructor!=null&&v.constructor.name!=null&&v.constructor.name===g.name}function kr(v){return v!==v}const Si=function(){const v="0123456789abcdef",g=new Array(256);for(let b=0;b<16;++b){const k=b*16;for(let F=0;F<16;++F)g[k+F]=v[b]+v[F]}return g}();function Zt(v){return typeof BigInt>"u"?nr:v}function nr(){throw new Error("BigInt not supported")}})(be);const zv=Ae({__proto__:null,default:bl(be)},[be]),dt={},W7=Object.freeze(Object.defineProperty({__proto__:null,default:dt},Symbol.toStringTag,{value:"Module"})),pp=typeof window<"u"?window:typeof self<"u"?self:{fetch:void 0};class ea{async getBufferFromResponse(t){if(typeof t.buffer=="function")return t.buffer();if(typeof t.arrayBuffer=="function"){const n=await t.arrayBuffer();return be.Buffer.from(n)}else throw new TypeError("invalid HTTP response object, has no buffer method, and no arrayBuffer method")}constructor(t,n={}){this.baseOverrides={},this.url=t;const r=n.fetch||pp.fetch&&pp.fetch.bind(pp);if(!r)throw new TypeError("no fetch function supplied, and none found in global environment");n.overrides&&(this.baseOverrides=n.overrides),this.fetchImplementation=r}async fetch(t,n){let r;try{r=await this.fetchImplementation(t,n)}catch(i){if(`${i}`.includes("Failed to fetch"))console.warn(`generic-filehandle: refetching ${t} to attempt to work around chrome CORS header caching bug`),r=await this.fetchImplementation(t,{...n,cache:"reload"});else throw i}return r}async read(t,n=0,r,i=0,a={}){const{headers:o={},signal:s,overrides:u={}}=a;r<1/0?o.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(o.range=`bytes=${i}-`);const l={...this.baseOverrides,...u,headers:{...o,...u.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:s},c=await this.fetch(this.url,l);if(!c.ok)throw new Error(`HTTP ${c.status} ${c.statusText} ${this.url}`);if(c.status===200&&i===0||c.status===206){const f=await this.getBufferFromResponse(c),h=f.copy(t,n,0,Math.min(r,f.length)),d=c.headers.get("content-range"),p=/\/(\d+)$/.exec(d||"");return p&&p[1]&&(this._stat={size:parseInt(p[1],10)}),{bytesRead:h,buffer:t}}throw c.status===200?new Error("${this.url} fetch returned status 200, expected 206"):new Error(`HTTP ${c.status} fetching ${this.url}`)}async readFile(t={}){let n,r;typeof t=="string"?(n=t,r={}):(n=t.encoding,r=t,delete r.encoding);const{headers:i={},signal:a,overrides:o={}}=r,s={headers:i,method:"GET",redirect:"follow",mode:"cors",signal:a,...this.baseOverrides,...o},u=await this.fetch(this.url,s);if(!u)throw new Error("generic-filehandle failed to fetch");if(u.status!==200)throw Object.assign(new Error(`HTTP ${u.status} fetching ${this.url}`),{status:u.status});if(n==="utf8")return u.text();if(n)throw new Error(`unsupported encoding: ${n}`);return this.getBufferFromResponse(u)}async stat(){if(!this._stat){const t=be.Buffer.allocUnsafe(10);if(await this.read(t,0,10,0),!this._stat)throw new Error(`unable to determine size of file at ${this.url}`)}return this._stat}async close(){}}function Uv(e){const t=new FileReader;return new Promise((n,r)=>{t.onerror=()=>{t.abort(),r(new Error("problem reading blob"))},t.onabort=()=>{r(new Error("blob reading was aborted"))},t.onload=()=>{t.result&&typeof t.result!="string"?n(t.result):r(new Error("unknown error reading blob"))},t.readAsArrayBuffer(e)})}function Z7(e){const t=new FileReader;return new Promise((n,r)=>{t.onerror=()=>{t.abort(),r(new Error("problem reading blob"))},t.onabort=()=>{r(new Error("blob reading was aborted"))},t.onload=()=>{t.result&&typeof t.result=="string"?n(t.result):r(new Error("unknown error reading blob"))},t.readAsText(e)})}class Y7{constructor(t){this.blob=t,this.size=t.size}async read(t,n=0,r,i=0){if(!r)return{bytesRead:0,buffer:t};const a=i,o=a+r,s=await Uv(this.blob.slice(a,o)),u=be.Buffer.from(s);return{bytesRead:u.copy(t,n),buffer:u}}async readFile(t){let n;if(typeof t=="string"?n=t:n=t&&t.encoding,n==="utf8")return Z7(this.blob);if(n)throw new Error(`unsupported encoding: ${n}`);const r=await Uv(this.blob);return be.Buffer.from(r)}async stat(){return{size:this.size}}async close(){}}function Gv(e,t={}){return new ea(e,t)}function Q7(e,t,n,r={}){if(n!==void 0)return n;if(e!==void 0)return Gv(e,r);if(t!==void 0)return new dt(t,r);throw new Error("no url, path, or filehandle provided, cannot open")}const yl=Object.freeze(Object.defineProperty({__proto__:null,BlobFile:Y7,LocalFile:dt,RemoteFile:ea,fromUrl:Gv,open:Q7},Symbol.toStringTag,{value:"Module"}));var gr={};(function(e){var t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function n(a,o){return Object.prototype.hasOwnProperty.call(a,o)}e.assign=function(a){for(var o=Array.prototype.slice.call(arguments,1);o.length;){var s=o.shift();if(s){if(typeof s!="object")throw new TypeError(s+"must be non-object");for(var u in s)n(s,u)&&(a[u]=s[u])}}return a},e.shrinkBuf=function(a,o){return a.length===o?a:a.subarray?a.subarray(0,o):(a.length=o,a)};var r={arraySet:function(a,o,s,u,l){if(o.subarray&&a.subarray){a.set(o.subarray(s,s+u),l);return}for(var c=0;c<u;c++)a[l+c]=o[s+c]},flattenChunks:function(a){var o,s,u,l,c,f;for(u=0,o=0,s=a.length;o<s;o++)u+=a[o].length;for(f=new Uint8Array(u),l=0,o=0,s=a.length;o<s;o++)c=a[o],f.set(c,l),l+=c.length;return f}},i={arraySet:function(a,o,s,u,l){for(var c=0;c<u;c++)a[l+c]=o[s+c]},flattenChunks:function(a){return[].concat.apply([],a)}};e.setTyped=function(a){a?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,r)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,i))},e.setTyped(t)})(gr);var wl={},Wn={},ao={},X7=gr,K7=4,Hv=0,Vv=1,J7=2;function oo(e){for(var t=e.length;--t>=0;)e[t]=0}var eM=0,jv=1,tM=2,nM=3,rM=258,gp=29,vl=256,xl=vl+1+gp,so=30,mp=19,$v=2*xl+1,ta=15,bp=16,iM=7,yp=256,qv=16,Wv=17,Zv=18,wp=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Sf=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],aM=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Yv=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],oM=512,mr=new Array((xl+2)*2);oo(mr);var Al=new Array(so*2);oo(Al);var El=new Array(oM);oo(El);var _l=new Array(rM-nM+1);oo(_l);var vp=new Array(gp);oo(vp);var Cf=new Array(so);oo(Cf);function xp(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}var Qv,Xv,Kv;function Ap(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function Jv(e){return e<256?El[e]:El[256+(e>>>7)]}function Sl(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function Ht(e,t,n){e.bi_valid>bp-n?(e.bi_buf|=t<<e.bi_valid&65535,Sl(e,e.bi_buf),e.bi_buf=t>>bp-e.bi_valid,e.bi_valid+=n-bp):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function Zn(e,t,n){Ht(e,n[t*2],n[t*2+1])}function ex(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function sM(e){e.bi_valid===16?(Sl(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function lM(e,t){var n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,u=t.stat_desc.max_length,l,c,f,h,d,p,m=0;for(h=0;h<=ta;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<$v;l++)c=e.heap[l],h=n[n[c*2+1]*2+1]+1,h>u&&(h=u,m++),n[c*2+1]=h,!(c>r)&&(e.bl_count[h]++,d=0,c>=s&&(d=o[c-s]),p=n[c*2],e.opt_len+=p*(h+d),a&&(e.static_len+=p*(i[c*2+1]+d)));if(m!==0){do{for(h=u-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[u]--,m-=2}while(m>0);for(h=u;h!==0;h--)for(c=e.bl_count[h];c!==0;)f=e.heap[--l],!(f>r)&&(n[f*2+1]!==h&&(e.opt_len+=(h-n[f*2+1])*n[f*2],n[f*2+1]=h),c--)}}function tx(e,t,n){var r=new Array(ta+1),i=0,a,o;for(a=1;a<=ta;a++)r[a]=i=i+n[a-1]<<1;for(o=0;o<=t;o++){var s=e[o*2+1];s!==0&&(e[o*2]=ex(r[s]++,s))}}function uM(){var e,t,n,r,i,a=new Array(ta+1);for(n=0,r=0;r<gp-1;r++)for(vp[r]=n,e=0;e<1<<wp[r];e++)_l[n++]=r;for(_l[n-1]=r,i=0,r=0;r<16;r++)for(Cf[r]=i,e=0;e<1<<Sf[r];e++)El[i++]=r;for(i>>=7;r<so;r++)for(Cf[r]=i<<7,e=0;e<1<<Sf[r]-7;e++)El[256+i++]=r;for(t=0;t<=ta;t++)a[t]=0;for(e=0;e<=143;)mr[e*2+1]=8,e++,a[8]++;for(;e<=255;)mr[e*2+1]=9,e++,a[9]++;for(;e<=279;)mr[e*2+1]=7,e++,a[7]++;for(;e<=287;)mr[e*2+1]=8,e++,a[8]++;for(tx(mr,xl+1,a),e=0;e<so;e++)Al[e*2+1]=5,Al[e*2]=ex(e,5);Qv=new xp(mr,wp,vl+1,xl,ta),Xv=new xp(Al,Sf,0,so,ta),Kv=new xp(new Array(0),aM,0,mp,iM)}function nx(e){var t;for(t=0;t<xl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<so;t++)e.dyn_dtree[t*2]=0;for(t=0;t<mp;t++)e.bl_tree[t*2]=0;e.dyn_ltree[yp*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function rx(e){e.bi_valid>8?Sl(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function cM(e,t,n,r){rx(e),r&&(Sl(e,n),Sl(e,~n)),X7.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function ix(e,t,n,r){var i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]}function Ep(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&ix(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!ix(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function ax(e,t,n){var r,i,a=0,o,s;if(e.last_lit!==0)do r=e.pending_buf[e.d_buf+a*2]<<8|e.pending_buf[e.d_buf+a*2+1],i=e.pending_buf[e.l_buf+a],a++,r===0?Zn(e,i,t):(o=_l[i],Zn(e,o+vl+1,t),s=wp[o],s!==0&&(i-=vp[o],Ht(e,i,s)),r--,o=Jv(r),Zn(e,o,n),s=Sf[o],s!==0&&(r-=Cf[o],Ht(e,r,s)));while(a<e.last_lit);Zn(e,yp,t)}function _p(e,t){var n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems,o,s,u=-1,l;for(e.heap_len=0,e.heap_max=$v,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=u=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=u,o=e.heap_len>>1;o>=1;o--)Ep(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Ep(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,Ep(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],lM(e,t),tx(n,u,e.bl_count)}function ox(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)&&(s<l?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[qv*2]++):s<=10?e.bl_tree[Wv*2]++:e.bl_tree[Zv*2]++,s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4))}function sx(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)){if(s<l)do Zn(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(Zn(e,a,e.bl_tree),s--),Zn(e,qv,e.bl_tree),Ht(e,s-3,2)):s<=10?(Zn(e,Wv,e.bl_tree),Ht(e,s-3,3)):(Zn(e,Zv,e.bl_tree),Ht(e,s-11,7));s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4)}}function fM(e){var t;for(ox(e,e.dyn_ltree,e.l_desc.max_code),ox(e,e.dyn_dtree,e.d_desc.max_code),_p(e,e.bl_desc),t=mp-1;t>=3&&e.bl_tree[Yv[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function hM(e,t,n,r){var i;for(Ht(e,t-257,5),Ht(e,n-1,5),Ht(e,r-4,4),i=0;i<r;i++)Ht(e,e.bl_tree[Yv[i]*2+1],3);sx(e,e.dyn_ltree,t-1),sx(e,e.dyn_dtree,n-1)}function dM(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Hv;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Vv;for(n=32;n<vl;n++)if(e.dyn_ltree[n*2]!==0)return Vv;return Hv}var lx=!1;function pM(e){lx||(uM(),lx=!0),e.l_desc=new Ap(e.dyn_ltree,Qv),e.d_desc=new Ap(e.dyn_dtree,Xv),e.bl_desc=new Ap(e.bl_tree,Kv),e.bi_buf=0,e.bi_valid=0,nx(e)}function ux(e,t,n,r){Ht(e,(eM<<1)+(r?1:0),3),cM(e,t,n,!0)}function gM(e){Ht(e,jv<<1,3),Zn(e,yp,mr),sM(e)}function mM(e,t,n,r){var i,a,o=0;e.level>0?(e.strm.data_type===J7&&(e.strm.data_type=dM(e)),_p(e,e.l_desc),_p(e,e.d_desc),o=fM(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&t!==-1?ux(e,t,n,r):e.strategy===K7||a===i?(Ht(e,(jv<<1)+(r?1:0),3),ax(e,mr,Al)):(Ht(e,(tM<<1)+(r?1:0),3),hM(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),ax(e,e.dyn_ltree,e.dyn_dtree)),nx(e),r&&rx(e)}function bM(e,t,n){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=n&255,e.last_lit++,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(_l[n]+vl+1)*2]++,e.dyn_dtree[Jv(t)*2]++),e.last_lit===e.lit_bufsize-1}ao._tr_init=pM,ao._tr_stored_block=ux,ao._tr_flush_block=mM,ao._tr_tally=bM,ao._tr_align=gM;function yM(e,t,n,r){for(var i=e&65535|0,a=e>>>16&65535|0,o=0;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0}var cx=yM;function wM(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t}var vM=wM();function xM(e,t,n,r){var i=vM,a=r+n;e^=-1;for(var o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1}var fx=xM,Sp={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"},Rt=gr,ln=ao,hx=cx,ni=fx,AM=Sp,na=0,EM=1,_M=3,ri=4,dx=5,Yn=0,px=1,un=-2,SM=-3,Cp=-5,CM=-1,kM=1,kf=2,TM=3,IM=4,BM=0,DM=2,Tf=8,RM=9,FM=15,MM=8,PM=29,LM=256,kp=LM+1+PM,NM=30,OM=19,zM=2*kp+1,UM=15,pe=3,ii=258,Cn=ii+pe+1,GM=32,If=42,Tp=69,Bf=73,Df=91,Rf=103,ra=113,Cl=666,st=1,kl=2,ia=3,lo=4,HM=3;function ai(e,t){return e.msg=AM[t],t}function gx(e){return(e<<1)-(e>4?9:0)}function oi(e){for(var t=e.length;--t>=0;)e[t]=0}function si(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(Rt.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))}function wt(e,t){ln._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,si(e.strm)}function xe(e,t){e.pending_buf[e.pending++]=t}function Tl(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function VM(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,Rt.arraySet(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=hx(e.adler,t,i,n):e.state.wrap===2&&(e.adler=ni(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function mx(e,t){var n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match,u=e.strstart>e.w_size-Cn?e.strstart-(e.w_size-Cn):0,l=e.window,c=e.w_mask,f=e.prev,h=e.strstart+ii,d=l[r+o-1],p=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(l[i+o]!==p||l[i+o-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(a=ii-(h-r),r=h-ii,a>o){if(e.match_start=t,o=a,a>=s)break;d=l[r+o-1],p=l[r+o]}}while((t=f[t&c])>u&&--n!==0);return o<=e.lookahead?o:e.lookahead}function aa(e){var t=e.w_size,n,r,i,a,o;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Cn)){Rt.arraySet(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,r=e.hash_size,n=r;do i=e.head[--n],e.head[n]=i>=t?i-t:0;while(--r);r=t,n=r;do i=e.prev[--n],e.prev[n]=i>=t?i-t:0;while(--r);a+=t}if(e.strm.avail_in===0)break;if(r=VM(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=r,e.lookahead+e.insert>=pe)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+pe-1])&e.hash_mask,e.prev[o&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=o,o++,e.insert--,!(e.lookahead+e.insert<pe)););}while(e.lookahead<Cn&&e.strm.avail_in!==0)}function jM(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(aa(e),e.lookahead===0&&t===na)return st;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((e.strstart===0||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,wt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-Cn&&(wt(e,!1),e.strm.avail_out===0))return st}return e.insert=0,t===ri?(wt(e,!0),e.strm.avail_out===0?ia:lo):(e.strstart>e.block_start&&(wt(e,!1),e.strm.avail_out===0),st)}function Ip(e,t){for(var n,r;;){if(e.lookahead<Cn){if(aa(e),e.lookahead<Cn&&t===na)return st;if(e.lookahead===0)break}if(n=0,e.lookahead>=pe&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+pe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-Cn&&(e.match_length=mx(e,n)),e.match_length>=pe)if(r=ln._tr_tally(e,e.strstart-e.match_start,e.match_length-pe),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=pe){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+pe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else r=ln._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(wt(e,!1),e.strm.avail_out===0))return st}return e.insert=e.strstart<pe-1?e.strstart:pe-1,t===ri?(wt(e,!0),e.strm.avail_out===0?ia:lo):e.last_lit&&(wt(e,!1),e.strm.avail_out===0)?st:kl}function uo(e,t){for(var n,r,i;;){if(e.lookahead<Cn){if(aa(e),e.lookahead<Cn&&t===na)return st;if(e.lookahead===0)break}if(n=0,e.lookahead>=pe&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+pe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=pe-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Cn&&(e.match_length=mx(e,n),e.match_length<=5&&(e.strategy===kM||e.match_length===pe&&e.strstart-e.match_start>4096)&&(e.match_length=pe-1)),e.prev_length>=pe&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-pe,r=ln._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-pe),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+pe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=pe-1,e.strstart++,r&&(wt(e,!1),e.strm.avail_out===0))return st}else if(e.match_available){if(r=ln._tr_tally(e,0,e.window[e.strstart-1]),r&&wt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return st}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=ln._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<pe-1?e.strstart:pe-1,t===ri?(wt(e,!0),e.strm.avail_out===0?ia:lo):e.last_lit&&(wt(e,!1),e.strm.avail_out===0)?st:kl}function $M(e,t){for(var n,r,i,a,o=e.window;;){if(e.lookahead<=ii){if(aa(e),e.lookahead<=ii&&t===na)return st;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=pe&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+ii;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=ii-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=pe?(n=ln._tr_tally(e,1,e.match_length-pe),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=ln._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(wt(e,!1),e.strm.avail_out===0))return st}return e.insert=0,t===ri?(wt(e,!0),e.strm.avail_out===0?ia:lo):e.last_lit&&(wt(e,!1),e.strm.avail_out===0)?st:kl}function qM(e,t){for(var n;;){if(e.lookahead===0&&(aa(e),e.lookahead===0)){if(t===na)return st;break}if(e.match_length=0,n=ln._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(wt(e,!1),e.strm.avail_out===0))return st}return e.insert=0,t===ri?(wt(e,!0),e.strm.avail_out===0?ia:lo):e.last_lit&&(wt(e,!1),e.strm.avail_out===0)?st:kl}function Qn(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}var co;co=[new Qn(0,0,0,0,jM),new Qn(4,4,8,4,Ip),new Qn(4,5,16,8,Ip),new Qn(4,6,32,32,Ip),new Qn(4,4,16,16,uo),new Qn(8,16,32,32,uo),new Qn(8,16,128,128,uo),new Qn(8,32,128,256,uo),new Qn(32,128,258,1024,uo),new Qn(32,258,258,4096,uo)];function WM(e){e.window_size=2*e.w_size,oi(e.head),e.max_lazy_match=co[e.level].max_lazy,e.good_match=co[e.level].good_length,e.nice_match=co[e.level].nice_length,e.max_chain_length=co[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=pe-1,e.match_available=0,e.ins_h=0}function ZM(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Tf,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Rt.Buf16(zM*2),this.dyn_dtree=new Rt.Buf16((2*NM+1)*2),this.bl_tree=new Rt.Buf16((2*OM+1)*2),oi(this.dyn_ltree),oi(this.dyn_dtree),oi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Rt.Buf16(UM+1),this.heap=new Rt.Buf16(2*kp+1),oi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Rt.Buf16(2*kp+1),oi(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function bx(e){var t;return!e||!e.state?ai(e,un):(e.total_in=e.total_out=0,e.data_type=DM,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?If:ra,e.adler=t.wrap===2?0:1,t.last_flush=na,ln._tr_init(t),Yn)}function yx(e){var t=bx(e);return t===Yn&&WM(e.state),t}function YM(e,t){return!e||!e.state||e.state.wrap!==2?un:(e.state.gzhead=t,Yn)}function wx(e,t,n,r,i,a){if(!e)return un;var o=1;if(t===CM&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>RM||n!==Tf||r<8||r>15||t<0||t>9||a<0||a>IM)return ai(e,un);r===8&&(r=9);var s=new ZM;return e.state=s,s.strm=e,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+pe-1)/pe),s.window=new Rt.Buf8(s.w_size*2),s.head=new Rt.Buf16(s.hash_size),s.prev=new Rt.Buf16(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Rt.Buf8(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=(1+2)*s.lit_bufsize,s.level=t,s.strategy=a,s.method=n,yx(e)}function QM(e,t){return wx(e,t,Tf,FM,MM,BM)}function XM(e,t){var n,r,i,a;if(!e||!e.state||t>dx||t<0)return e?ai(e,un):un;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===Cl&&t!==ri)return ai(e,e.avail_out===0?Cp:un);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===If)if(r.wrap===2)e.adler=0,xe(r,31),xe(r,139),xe(r,8),r.gzhead?(xe(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),xe(r,r.gzhead.time&255),xe(r,r.gzhead.time>>8&255),xe(r,r.gzhead.time>>16&255),xe(r,r.gzhead.time>>24&255),xe(r,r.level===9?2:r.strategy>=kf||r.level<2?4:0),xe(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(xe(r,r.gzhead.extra.length&255),xe(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=ni(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=Tp):(xe(r,0),xe(r,0),xe(r,0),xe(r,0),xe(r,0),xe(r,r.level===9?2:r.strategy>=kf||r.level<2?4:0),xe(r,HM),r.status=ra);else{var o=Tf+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=kf||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,o|=s<<6,r.strstart!==0&&(o|=GM),o+=31-o%31,r.status=ra,Tl(r,o),r.strstart!==0&&(Tl(r,e.adler>>>16),Tl(r,e.adler&65535)),e.adler=1}if(r.status===Tp)if(r.gzhead.extra){for(i=r.pending;r.gzindex<(r.gzhead.extra.length&65535)&&!(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=ni(e.adler,r.pending_buf,r.pending-i,i)),si(e),i=r.pending,r.pending===r.pending_buf_size));)xe(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=ni(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=Bf)}else r.status=Bf;if(r.status===Bf)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=ni(e.adler,r.pending_buf,r.pending-i,i)),si(e),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.name.length?a=r.gzhead.name.charCodeAt(r.gzindex++)&255:a=0,xe(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=ni(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.gzindex=0,r.status=Df)}else r.status=Df;if(r.status===Df)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=ni(e.adler,r.pending_buf,r.pending-i,i)),si(e),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.comment.length?a=r.gzhead.comment.charCodeAt(r.gzindex++)&255:a=0,xe(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=ni(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.status=Rf)}else r.status=Rf;if(r.status===Rf&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&si(e),r.pending+2<=r.pending_buf_size&&(xe(r,e.adler&255),xe(r,e.adler>>8&255),e.adler=0,r.status=ra)):r.status=ra),r.pending!==0){if(si(e),e.avail_out===0)return r.last_flush=-1,Yn}else if(e.avail_in===0&&gx(t)<=gx(n)&&t!==ri)return ai(e,Cp);if(r.status===Cl&&e.avail_in!==0)return ai(e,Cp);if(e.avail_in!==0||r.lookahead!==0||t!==na&&r.status!==Cl){var u=r.strategy===kf?qM(r,t):r.strategy===TM?$M(r,t):co[r.level].func(r,t);if((u===ia||u===lo)&&(r.status=Cl),u===st||u===ia)return e.avail_out===0&&(r.last_flush=-1),Yn;if(u===kl&&(t===EM?ln._tr_align(r):t!==dx&&(ln._tr_stored_block(r,0,0,!1),t===_M&&(oi(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),si(e),e.avail_out===0))return r.last_flush=-1,Yn}return t!==ri?Yn:r.wrap<=0?px:(r.wrap===2?(xe(r,e.adler&255),xe(r,e.adler>>8&255),xe(r,e.adler>>16&255),xe(r,e.adler>>24&255),xe(r,e.total_in&255),xe(r,e.total_in>>8&255),xe(r,e.total_in>>16&255),xe(r,e.total_in>>24&255)):(Tl(r,e.adler>>>16),Tl(r,e.adler&65535)),si(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?Yn:px)}function KM(e){var t;return!e||!e.state?un:(t=e.state.status,t!==If&&t!==Tp&&t!==Bf&&t!==Df&&t!==Rf&&t!==ra&&t!==Cl?ai(e,un):(e.state=null,t===ra?ai(e,SM):Yn))}function JM(e,t){var n=t.length,r,i,a,o,s,u,l,c;if(!e||!e.state||(r=e.state,o=r.wrap,o===2||o===1&&r.status!==If||r.lookahead))return un;for(o===1&&(e.adler=hx(e.adler,t,n,0)),r.wrap=0,n>=r.w_size&&(o===0&&(oi(r.head),r.strstart=0,r.block_start=0,r.insert=0),c=new Rt.Buf8(r.w_size),Rt.arraySet(c,t,n-r.w_size,r.w_size,0),t=c,n=r.w_size),s=e.avail_in,u=e.next_in,l=e.input,e.avail_in=n,e.next_in=0,e.input=t,aa(r);r.lookahead>=pe;){i=r.strstart,a=r.lookahead-(pe-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+pe-1])&r.hash_mask,r.prev[i&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=i,i++;while(--a);r.strstart=i,r.lookahead=pe-1,aa(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=pe-1,r.match_available=0,e.next_in=u,e.input=l,e.avail_in=s,r.wrap=o,Yn}Wn.deflateInit=QM,Wn.deflateInit2=wx,Wn.deflateReset=yx,Wn.deflateResetKeep=bx,Wn.deflateSetHeader=YM,Wn.deflate=XM,Wn.deflateEnd=KM,Wn.deflateSetDictionary=JM,Wn.deflateInfo="pako deflate (from Nodeca project)";var oa={},Ff=gr,vx=!0,xx=!0;try{String.fromCharCode.apply(null,[0])}catch{vx=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{xx=!1}for(var Il=new Ff.Buf8(256),li=0;li<256;li++)Il[li]=li>=252?6:li>=248?5:li>=240?4:li>=224?3:li>=192?2:1;Il[254]=Il[254]=1,oa.string2buf=function(e){var t,n,r,i,a,o=e.length,s=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Ff.Buf8(s),a=0,i=0;a<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t};function Ax(e,t){if(t<65534&&(e.subarray&&xx||!e.subarray&&vx))return String.fromCharCode.apply(null,Ff.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}oa.buf2binstring=function(e){return Ax(e,e.length)},oa.binstring2buf=function(e){for(var t=new Ff.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},oa.buf2string=function(e,t){var n,r,i,a,o=t||e.length,s=new Array(o*2);for(r=0,n=0;n<o;){if(i=e[n++],i<128){s[r++]=i;continue}if(a=Il[i],a>4){s[r++]=65533,n+=a-1;continue}for(i&=a===2?31:a===3?15:7;a>1&&n<o;)i=i<<6|e[n++]&63,a--;if(a>1){s[r++]=65533;continue}i<65536?s[r++]=i:(i-=65536,s[r++]=55296|i>>10&1023,s[r++]=56320|i&1023)}return Ax(s,r)},oa.utf8border=function(e,t){var n;for(t=t||e.length,t>e.length&&(t=e.length),n=t-1;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+Il[e[n]]>t?n:t};function eP(){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}var Ex=eP,Bl=Wn,Dl=gr,Bp=oa,Dp=Sp,tP=Ex,_x=Object.prototype.toString,nP=0,Rp=4,fo=0,Sx=1,Cx=2,rP=-1,iP=0,aP=8;function sa(e){if(!(this instanceof sa))return new sa(e);this.options=Dl.assign({level:rP,method:aP,chunkSize:16384,windowBits:15,memLevel:8,strategy:iP,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new tP,this.strm.avail_out=0;var n=Bl.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==fo)throw new Error(Dp[n]);if(t.header&&Bl.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(typeof t.dictionary=="string"?r=Bp.string2buf(t.dictionary):_x.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=Bl.deflateSetDictionary(this.strm,r),n!==fo)throw new Error(Dp[n]);this._dict_set=!0}}sa.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i,a;if(this.ended)return!1;a=t===~~t?t:t===!0?Rp:nP,typeof e=="string"?n.input=Bp.string2buf(e):_x.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new Dl.Buf8(r),n.next_out=0,n.avail_out=r),i=Bl.deflate(n,a),i!==Sx&&i!==fo)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(a===Rp||a===Cx))&&(this.options.to==="string"?this.onData(Bp.buf2binstring(Dl.shrinkBuf(n.output,n.next_out))):this.onData(Dl.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==Sx);return a===Rp?(i=Bl.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===fo):(a===Cx&&(this.onEnd(fo),n.avail_out=0),!0)},sa.prototype.onData=function(e){this.chunks.push(e)},sa.prototype.onEnd=function(e){e===fo&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Dl.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Fp(e,t){var n=new sa(t);if(n.push(e,!0),n.err)throw n.msg||Dp[n.err];return n.result}function oP(e,t){return t=t||{},t.raw=!0,Fp(e,t)}function sP(e,t){return t=t||{},t.gzip=!0,Fp(e,t)}wl.Deflate=sa,wl.deflate=Fp,wl.deflateRaw=oP,wl.gzip=sP;var Rl={},kn={},Mf=30,lP=12,uP=function(t,n){var r,i,a,o,s,u,l,c,f,h,d,p,m,y,w,x,S,_,T,I,B,R,M,H,O;r=t.state,i=t.next_in,H=t.input,a=i+(t.avail_in-5),o=t.next_out,O=t.output,s=o-(n-t.avail_out),u=o+(t.avail_out-257),l=r.dmax,c=r.wsize,f=r.whave,h=r.wnext,d=r.window,p=r.hold,m=r.bits,y=r.lencode,w=r.distcode,x=(1<<r.lenbits)-1,S=(1<<r.distbits)-1;e:do{m<15&&(p+=H[i++]<<m,m+=8,p+=H[i++]<<m,m+=8),_=y[p&x];t:for(;;){if(T=_>>>24,p>>>=T,m-=T,T=_>>>16&255,T===0)O[o++]=_&65535;else if(T&16){I=_&65535,T&=15,T&&(m<T&&(p+=H[i++]<<m,m+=8),I+=p&(1<<T)-1,p>>>=T,m-=T),m<15&&(p+=H[i++]<<m,m+=8,p+=H[i++]<<m,m+=8),_=w[p&S];n:for(;;){if(T=_>>>24,p>>>=T,m-=T,T=_>>>16&255,T&16){if(B=_&65535,T&=15,m<T&&(p+=H[i++]<<m,m+=8,m<T&&(p+=H[i++]<<m,m+=8)),B+=p&(1<<T)-1,B>l){t.msg="invalid distance too far back",r.mode=Mf;break e}if(p>>>=T,m-=T,T=o-s,B>T){if(T=B-T,T>f&&r.sane){t.msg="invalid distance too far back",r.mode=Mf;break e}if(R=0,M=d,h===0){if(R+=c-T,T<I){I-=T;do O[o++]=d[R++];while(--T);R=o-B,M=O}}else if(h<T){if(R+=c+h-T,T-=h,T<I){I-=T;do O[o++]=d[R++];while(--T);if(R=0,h<I){T=h,I-=T;do O[o++]=d[R++];while(--T);R=o-B,M=O}}}else if(R+=h-T,T<I){I-=T;do O[o++]=d[R++];while(--T);R=o-B,M=O}for(;I>2;)O[o++]=M[R++],O[o++]=M[R++],O[o++]=M[R++],I-=3;I&&(O[o++]=M[R++],I>1&&(O[o++]=M[R++]))}else{R=o-B;do O[o++]=O[R++],O[o++]=O[R++],O[o++]=O[R++],I-=3;while(I>2);I&&(O[o++]=O[R++],I>1&&(O[o++]=O[R++]))}}else if(T&64){t.msg="invalid distance code",r.mode=Mf;break e}else{_=w[(_&65535)+(p&(1<<T)-1)];continue n}break}}else if(T&64)if(T&32){r.mode=lP;break e}else{t.msg="invalid literal/length code",r.mode=Mf;break e}else{_=y[(_&65535)+(p&(1<<T)-1)];continue t}break}}while(i<a&&o<u);I=m>>3,i-=I,m-=I<<3,p&=(1<<m)-1,t.next_in=i,t.next_out=o,t.avail_in=i<a?5+(a-i):5-(i-a),t.avail_out=o<u?257+(u-o):257-(o-u),r.hold=p,r.bits=m},kx=gr,ho=15,Tx=852,Ix=592,Bx=0,Mp=1,Dx=2,cP=[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],fP=[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],hP=[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],dP=[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],pP=function(t,n,r,i,a,o,s,u){var l=u.bits,c=0,f=0,h=0,d=0,p=0,m=0,y=0,w=0,x=0,S=0,_,T,I,B,R,M=null,H=0,O,re=new kx.Buf16(ho+1),se=new kx.Buf16(ho+1),te=null,me=0,Ke,Re,Je;for(c=0;c<=ho;c++)re[c]=0;for(f=0;f<i;f++)re[n[r+f]]++;for(p=l,d=ho;d>=1&&re[d]===0;d--);if(p>d&&(p=d),d===0)return a[o++]=1<<24|64<<16|0,a[o++]=1<<24|64<<16|0,u.bits=1,0;for(h=1;h<d&&re[h]===0;h++);for(p<h&&(p=h),w=1,c=1;c<=ho;c++)if(w<<=1,w-=re[c],w<0)return-1;if(w>0&&(t===Bx||d!==1))return-1;for(se[1]=0,c=1;c<ho;c++)se[c+1]=se[c]+re[c];for(f=0;f<i;f++)n[r+f]!==0&&(s[se[n[r+f]]++]=f);if(t===Bx?(M=te=s,O=19):t===Mp?(M=cP,H-=257,te=fP,me-=257,O=256):(M=hP,te=dP,O=-1),S=0,f=0,c=h,R=o,m=p,y=0,I=-1,x=1<<p,B=x-1,t===Mp&&x>Tx||t===Dx&&x>Ix)return 1;for(;;){Ke=c-y,s[f]<O?(Re=0,Je=s[f]):s[f]>O?(Re=te[me+s[f]],Je=M[H+s[f]]):(Re=32+64,Je=0),_=1<<c-y,T=1<<m,h=T;do T-=_,a[R+(S>>y)+T]=Ke<<24|Re<<16|Je|0;while(T!==0);for(_=1<<c-1;S&_;)_>>=1;if(_!==0?(S&=_-1,S+=_):S=0,f++,--re[c]===0){if(c===d)break;c=n[r+s[f]]}if(c>p&&(S&B)!==I){for(y===0&&(y=p),R+=h,m=c-y,w=1<<m;m+y<d&&(w-=re[m+y],!(w<=0));)m++,w<<=1;if(x+=1<<m,t===Mp&&x>Tx||t===Dx&&x>Ix)return 1;I=S&B,a[I]=p<<24|m<<16|R-o|0}}return S!==0&&(a[R+S]=c-y<<24|64<<16|0),u.bits=p,0},Kt=gr,Pp=cx,Xn=fx,gP=uP,Fl=pP,mP=0,Rx=1,Fx=2,Mx=4,bP=5,Pf=6,la=0,yP=1,wP=2,cn=-2,Px=-3,Lx=-4,vP=-5,Nx=8,Ox=1,zx=2,Ux=3,Gx=4,Hx=5,Vx=6,jx=7,$x=8,qx=9,Wx=10,Lf=11,br=12,Lp=13,Zx=14,Np=15,Yx=16,Qx=17,Xx=18,Kx=19,Nf=20,Of=21,Jx=22,eA=23,tA=24,nA=25,rA=26,Op=27,iA=28,aA=29,$e=30,oA=31,xP=32,AP=852,EP=592,_P=15,SP=_P;function sA(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function CP(){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 Kt.Buf16(320),this.work=new Kt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function lA(e){var t;return!e||!e.state?cn:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Ox,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Kt.Buf32(AP),t.distcode=t.distdyn=new Kt.Buf32(EP),t.sane=1,t.back=-1,la)}function uA(e){var t;return!e||!e.state?cn:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,lA(e))}function cA(e,t){var n,r;return!e||!e.state||(r=e.state,t<0?(n=0,t=-t):(n=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?cn:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,uA(e))}function fA(e,t){var n,r;return e?(r=new CP,e.state=r,r.window=null,n=cA(e,t),n!==la&&(e.state=null),n):cn}function kP(e){return fA(e,SP)}var hA=!0,zp,Up;function TP(e){if(hA){var t;for(zp=new Kt.Buf32(512),Up=new Kt.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Fl(Rx,e.lens,0,288,zp,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Fl(Fx,e.lens,0,32,Up,0,e.work,{bits:5}),hA=!1}e.lencode=zp,e.lenbits=9,e.distcode=Up,e.distbits=5}function dA(e,t,n,r){var i,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Kt.Buf8(a.wsize)),r>=a.wsize?(Kt.arraySet(a.window,t,n-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),Kt.arraySet(a.window,t,n-r,i,a.wnext),r-=i,r?(Kt.arraySet(a.window,t,n-r,r,0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0}function IP(e,t){var n,r,i,a,o,s,u,l,c,f,h,d,p,m,y=0,w,x,S,_,T,I,B,R,M=new Kt.Buf8(4),H,O,re=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return cn;n=e.state,n.mode===br&&(n.mode=Lp),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,c=n.bits,f=s,h=u,R=la;e:for(;;)switch(n.mode){case Ox:if(n.wrap===0){n.mode=Lp;break}for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(n.wrap&2&&l===35615){n.check=0,M[0]=l&255,M[1]=l>>>8&255,n.check=Xn(n.check,M,2,0),l=0,c=0,n.mode=zx;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",n.mode=$e;break}if((l&15)!==Nx){e.msg="unknown compression method",n.mode=$e;break}if(l>>>=4,c-=4,B=(l&15)+8,n.wbits===0)n.wbits=B;else if(B>n.wbits){e.msg="invalid window size",n.mode=$e;break}n.dmax=1<<B,e.adler=n.check=1,n.mode=l&512?Wx:br,l=0,c=0;break;case zx:for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(n.flags=l,(n.flags&255)!==Nx){e.msg="unknown compression method",n.mode=$e;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=$e;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=Xn(n.check,M,2,0)),l=0,c=0,n.mode=Ux;case Ux:for(;c<32;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.head&&(n.head.time=l),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,M[2]=l>>>16&255,M[3]=l>>>24&255,n.check=Xn(n.check,M,4,0)),l=0,c=0,n.mode=Gx;case Gx:for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=Xn(n.check,M,2,0)),l=0,c=0,n.mode=Hx;case Hx:if(n.flags&1024){for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=Xn(n.check,M,2,0)),l=0,c=0}else n.head&&(n.head.extra=null);n.mode=Vx;case Vx:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(B=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),Kt.arraySet(n.head.extra,r,a,d,B)),n.flags&512&&(n.check=Xn(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=jx;case jx:if(n.flags&2048){if(s===0)break e;d=0;do B=r[a+d++],n.head&&B&&n.length<65536&&(n.head.name+=String.fromCharCode(B));while(B&&d<s);if(n.flags&512&&(n.check=Xn(n.check,r,d,a)),s-=d,a+=d,B)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=$x;case $x:if(n.flags&4096){if(s===0)break e;d=0;do B=r[a+d++],n.head&&B&&n.length<65536&&(n.head.comment+=String.fromCharCode(B));while(B&&d<s);if(n.flags&512&&(n.check=Xn(n.check,r,d,a)),s-=d,a+=d,B)break e}else n.head&&(n.head.comment=null);n.mode=qx;case qx:if(n.flags&512){for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=$e;break}l=0,c=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=br;break;case Wx:for(;c<32;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}e.adler=n.check=sA(l),l=0,c=0,n.mode=Lf;case Lf:if(n.havedict===0)return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=c,wP;e.adler=n.check=1,n.mode=br;case br:if(t===bP||t===Pf)break e;case Lp:if(n.last){l>>>=c&7,c-=c&7,n.mode=Op;break}for(;c<3;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}switch(n.last=l&1,l>>>=1,c-=1,l&3){case 0:n.mode=Zx;break;case 1:if(TP(n),n.mode=Nf,t===Pf){l>>>=2,c-=2;break e}break;case 2:n.mode=Qx;break;case 3:e.msg="invalid block type",n.mode=$e}l>>>=2,c-=2;break;case Zx:for(l>>>=c&7,c-=c&7;c<32;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=$e;break}if(n.length=l&65535,l=0,c=0,n.mode=Np,t===Pf)break e;case Np:n.mode=Yx;case Yx:if(d=n.length,d){if(d>s&&(d=s),d>u&&(d=u),d===0)break e;Kt.arraySet(i,r,a,d,o),s-=d,a+=d,u-=d,o+=d,n.length-=d;break}n.mode=br;break;case Qx:for(;c<14;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(n.nlen=(l&31)+257,l>>>=5,c-=5,n.ndist=(l&31)+1,l>>>=5,c-=5,n.ncode=(l&15)+4,l>>>=4,c-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=$e;break}n.have=0,n.mode=Xx;case Xx:for(;n.have<n.ncode;){for(;c<3;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.lens[re[n.have++]]=l&7,l>>>=3,c-=3}for(;n.have<19;)n.lens[re[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,H={bits:n.lenbits},R=Fl(mP,n.lens,0,19,n.lencode,0,n.work,H),n.lenbits=H.bits,R){e.msg="invalid code lengths set",n.mode=$e;break}n.have=0,n.mode=Kx;case Kx:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,x=y>>>16&255,S=y&65535,!(w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(S<16)l>>>=w,c-=w,n.lens[n.have++]=S;else{if(S===16){for(O=w+2;c<O;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(l>>>=w,c-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=$e;break}B=n.lens[n.have-1],d=3+(l&3),l>>>=2,c-=2}else if(S===17){for(O=w+3;c<O;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}l>>>=w,c-=w,B=0,d=3+(l&7),l>>>=3,c-=3}else{for(O=w+7;c<O;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}l>>>=w,c-=w,B=0,d=11+(l&127),l>>>=7,c-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=$e;break}for(;d--;)n.lens[n.have++]=B}}if(n.mode===$e)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=$e;break}if(n.lenbits=9,H={bits:n.lenbits},R=Fl(Rx,n.lens,0,n.nlen,n.lencode,0,n.work,H),n.lenbits=H.bits,R){e.msg="invalid literal/lengths set",n.mode=$e;break}if(n.distbits=6,n.distcode=n.distdyn,H={bits:n.distbits},R=Fl(Fx,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,H),n.distbits=H.bits,R){e.msg="invalid distances set",n.mode=$e;break}if(n.mode=Nf,t===Pf)break e;case Nf:n.mode=Of;case Of:if(s>=6&&u>=258){e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=c,gP(e,h),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,c=n.bits,n.mode===br&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,x=y>>>16&255,S=y&65535,!(w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(x&&!(x&240)){for(_=w,T=x,I=S;y=n.lencode[I+((l&(1<<_+T)-1)>>_)],w=y>>>24,x=y>>>16&255,S=y&65535,!(_+w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,n.length=S,x===0){n.mode=rA;break}if(x&32){n.back=-1,n.mode=br;break}if(x&64){e.msg="invalid literal/length code",n.mode=$e;break}n.extra=x&15,n.mode=Jx;case Jx:if(n.extra){for(O=n.extra;c<O;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=eA;case eA:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,x=y>>>16&255,S=y&65535,!(w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(!(x&240)){for(_=w,T=x,I=S;y=n.distcode[I+((l&(1<<_+T)-1)>>_)],w=y>>>24,x=y>>>16&255,S=y&65535,!(_+w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,x&64){e.msg="invalid distance code",n.mode=$e;break}n.offset=S,n.extra=x&15,n.mode=tA;case tA:if(n.extra){for(O=n.extra;c<O;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=$e;break}n.mode=nA;case nA:if(u===0)break e;if(d=h-u,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=$e;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),m=n.window}else m=i,p=o-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[o++]=m[p++];while(--d);n.length===0&&(n.mode=Of);break;case rA:if(u===0)break e;i[o++]=n.length,u--,n.mode=Of;break;case Op:if(n.wrap){for(;c<32;){if(s===0)break e;s--,l|=r[a++]<<c,c+=8}if(h-=u,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?Xn(n.check,i,h,o-h):Pp(n.check,i,h,o-h)),h=u,(n.flags?l:sA(l))!==n.check){e.msg="incorrect data check",n.mode=$e;break}l=0,c=0}n.mode=iA;case iA:if(n.wrap&&n.flags){for(;c<32;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=$e;break}l=0,c=0}n.mode=aA;case aA:R=yP;break e;case $e:R=Px;break e;case oA:return Lx;case xP:default:return cn}return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=c,(n.wsize||h!==e.avail_out&&n.mode<$e&&(n.mode<Op||t!==Mx))&&dA(e,e.output,e.next_out,h-e.avail_out),f-=e.avail_in,h-=e.avail_out,e.total_in+=f,e.total_out+=h,n.total+=h,n.wrap&&h&&(e.adler=n.check=n.flags?Xn(n.check,i,h,e.next_out-h):Pp(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===br?128:0)+(n.mode===Nf||n.mode===Np?256:0),(f===0&&h===0||t===Mx)&&R===la&&(R=vP),R}function BP(e){if(!e||!e.state)return cn;var t=e.state;return t.window&&(t.window=null),e.state=null,la}function DP(e,t){var n;return!e||!e.state||(n=e.state,!(n.wrap&2))?cn:(n.head=t,t.done=!1,la)}function RP(e,t){var n=t.length,r,i,a;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==Lf)?cn:r.mode===Lf&&(i=1,i=Pp(i,t,n,0),i!==r.check)?Px:(a=dA(e,t,n,n),a?(r.mode=oA,Lx):(r.havedict=1,la))}kn.inflateReset=uA,kn.inflateReset2=cA,kn.inflateResetKeep=lA,kn.inflateInit=kP,kn.inflateInit2=fA,kn.inflate=IP,kn.inflateEnd=BP,kn.inflateGetHeader=DP,kn.inflateSetDictionary=RP,kn.inflateInfo="pako inflate (from Nodeca project)";var pA={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_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};function FP(){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}var MP=FP,po=kn,Ml=gr,zf=oa,nt=pA,Gp=Sp,PP=Ex,LP=MP,gA=Object.prototype.toString;function ua(e){if(!(this instanceof ua))return new ua(e);this.options=Ml.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new PP,this.strm.avail_out=0;var n=po.inflateInit2(this.strm,t.windowBits);if(n!==nt.Z_OK)throw new Error(Gp[n]);if(this.header=new LP,po.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=zf.string2buf(t.dictionary):gA.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=po.inflateSetDictionary(this.strm,t.dictionary),n!==nt.Z_OK)))throw new Error(Gp[n])}ua.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,a,o,s,u,l,c=!1;if(this.ended)return!1;o=t===~~t?t:t===!0?nt.Z_FINISH:nt.Z_NO_FLUSH,typeof e=="string"?n.input=zf.binstring2buf(e):gA.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new Ml.Buf8(r),n.next_out=0,n.avail_out=r),a=po.inflate(n,nt.Z_NO_FLUSH),a===nt.Z_NEED_DICT&&i&&(a=po.inflateSetDictionary(this.strm,i)),a===nt.Z_BUF_ERROR&&c===!0&&(a=nt.Z_OK,c=!1),a!==nt.Z_STREAM_END&&a!==nt.Z_OK)return this.onEnd(a),this.ended=!0,!1;n.next_out&&(n.avail_out===0||a===nt.Z_STREAM_END||n.avail_in===0&&(o===nt.Z_FINISH||o===nt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=zf.utf8border(n.output,n.next_out),u=n.next_out-s,l=zf.buf2string(n.output,s),n.next_out=u,n.avail_out=r-u,u&&Ml.arraySet(n.output,n.output,s,u,0),this.onData(l)):this.onData(Ml.shrinkBuf(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(c=!0)}while((n.avail_in>0||n.avail_out===0)&&a!==nt.Z_STREAM_END);return a===nt.Z_STREAM_END&&(o=nt.Z_FINISH),o===nt.Z_FINISH?(a=po.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===nt.Z_OK):(o===nt.Z_SYNC_FLUSH&&(this.onEnd(nt.Z_OK),n.avail_out=0),!0)},ua.prototype.onData=function(e){this.chunks.push(e)},ua.prototype.onEnd=function(e){e===nt.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Ml.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Hp(e,t){var n=new ua(t);if(n.push(e,!0),n.err)throw n.msg||Gp[n.err];return n.result}function NP(e,t){return t=t||{},t.raw=!0,Hp(e,t)}Rl.Inflate=ua,Rl.inflate=Hp,Rl.inflateRaw=NP,Rl.ungzip=Hp;var OP=gr.assign,zP=wl,UP=Rl,GP=pA,mA={};OP(mA,zP,UP,GP);var Uf=mA;async function ui(e){try{let t,n=0,r=0;const i=[];let a=0,o;do{const u=e.subarray(n);if(o=new Uf.Inflate,{strm:t}=o,o.push(u,Uf.Z_SYNC_FLUSH),o.err)throw new Error(o.msg);n+=t.next_in,i[r]=o.result,a+=i[r].length,r+=1}while(t.avail_in);const s=new Uint8Array(a);for(let u=0,l=0;u<i.length;u++)s.set(i[u],l),l+=i[u].length;return be.Buffer.from(s)}catch(t){throw`${t}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):t}}async function bA(e,t){try{let n;const{minv:r,maxv:i}=t;let a=r.blockPosition,o=r.dataPosition;const s=[],u=[],l=[];let c=0,f=0;do{const p=e.subarray(a-r.blockPosition),m=new Uf.Inflate;if({strm:n}=m,m.push(p,Uf.Z_SYNC_FLUSH),m.err)throw new Error(m.msg);const y=m.result;s.push(y);let w=y.length;u.push(a),l.push(o),s.length===1&&r.dataPosition&&(s[0]=s[0].subarray(r.dataPosition),w=s[0].length);const x=a;if(a+=n.next_in,o+=w,x>=i.blockPosition){s[f]=s[f].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),u.push(a),l.push(o),c+=s[f].length;break}c+=s[f].length,f++}while(n.avail_in);const h=new Uint8Array(c);for(let p=0,m=0;p<s.length;p++)h.set(s[p],m),m+=s[p].length;return{buffer:be.Buffer.from(h),cpositions:u,dpositions:l}}catch(n){throw`${n}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):n}}var HP=Le,fn=null;try{fn=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Le(e,t,n){this.low=e|0,this.high=t|0,this.unsigned=!!n}Le.prototype.__isLong__,Object.defineProperty(Le.prototype,"__isLong__",{value:!0});function Vt(e){return(e&&e.__isLong__)===!0}Le.isLong=Vt;var yA={},wA={};function ca(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=wA[e],r)?r:(n=Ne(e,(e|0)<0?-1:0,!0),i&&(wA[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=yA[e],r)?r:(n=Ne(e,e<0?-1:0,!1),i&&(yA[e]=n),n))}Le.fromInt=ca;function hn(e,t){if(isNaN(e))return t?fa:dn;if(t){if(e<0)return fa;if(e>=xA)return CA}else{if(e<=-AA)return jt;if(e+1>=AA)return SA}return e<0?hn(-e,t).neg():Ne(e%go|0,e/go|0,t)}Le.fromNumber=hn;function Ne(e,t,n){return new Le(e,t,n)}Le.fromBits=Ne;var Gf=Math.pow;function Vp(e,t,n){if(e.length===0)throw Error("empty string");if(e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return dn;if(typeof t=="number"?(n=t,t=!1):t=!!t,n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=e.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return Vp(e.substring(1),t,n).neg();for(var i=hn(Gf(n,8)),a=dn,o=0;o<e.length;o+=8){var s=Math.min(8,e.length-o),u=parseInt(e.substring(o,o+s),n);if(s<8){var l=hn(Gf(n,s));a=a.mul(l).add(hn(u))}else a=a.mul(i),a=a.add(hn(u))}return a.unsigned=t,a}Le.fromString=Vp;function Tn(e,t){return typeof e=="number"?hn(e,t):typeof e=="string"?Vp(e,t):Ne(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}Le.fromValue=Tn;var vA=65536,VP=1<<24,go=vA*vA,xA=go*go,AA=xA/2,EA=ca(VP),dn=ca(0);Le.ZERO=dn;var fa=ca(0,!0);Le.UZERO=fa;var mo=ca(1);Le.ONE=mo;var _A=ca(1,!0);Le.UONE=_A;var jp=ca(-1);Le.NEG_ONE=jp;var SA=Ne(-1,2147483647,!1);Le.MAX_VALUE=SA;var CA=Ne(-1,-1,!0);Le.MAX_UNSIGNED_VALUE=CA;var jt=Ne(0,-2147483648,!1);Le.MIN_VALUE=jt;var Q=Le.prototype;Q.toInt=function(){return this.unsigned?this.low>>>0:this.low},Q.toNumber=function(){return this.unsigned?(this.high>>>0)*go+(this.low>>>0):this.high*go+(this.low>>>0)},Q.toString=function(t){if(t=t||10,t<2||36<t)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(jt)){var n=hn(t),r=this.div(n),i=r.mul(n).sub(this);return r.toString(t)+i.toInt().toString(t)}else return"-"+this.neg().toString(t);for(var a=hn(Gf(t,6),this.unsigned),o=this,s="";;){var u=o.div(a),l=o.sub(u.mul(a)).toInt()>>>0,c=l.toString(t);if(o=u,o.isZero())return c+s;for(;c.length<6;)c="0"+c;s=""+c+s}},Q.getHighBits=function(){return this.high},Q.getHighBitsUnsigned=function(){return this.high>>>0},Q.getLowBits=function(){return this.low},Q.getLowBitsUnsigned=function(){return this.low>>>0},Q.getNumBitsAbs=function(){if(this.isNegative())return this.eq(jt)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,n=31;n>0&&!(t&1<<n);n--);return this.high!=0?n+33:n+1},Q.isZero=function(){return this.high===0&&this.low===0},Q.eqz=Q.isZero,Q.isNegative=function(){return!this.unsigned&&this.high<0},Q.isPositive=function(){return this.unsigned||this.high>=0},Q.isOdd=function(){return(this.low&1)===1},Q.isEven=function(){return(this.low&1)===0},Q.equals=function(t){return Vt(t)||(t=Tn(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},Q.eq=Q.equals,Q.notEquals=function(t){return!this.eq(t)},Q.neq=Q.notEquals,Q.ne=Q.notEquals,Q.lessThan=function(t){return this.comp(t)<0},Q.lt=Q.lessThan,Q.lessThanOrEqual=function(t){return this.comp(t)<=0},Q.lte=Q.lessThanOrEqual,Q.le=Q.lessThanOrEqual,Q.greaterThan=function(t){return this.comp(t)>0},Q.gt=Q.greaterThan,Q.greaterThanOrEqual=function(t){return this.comp(t)>=0},Q.gte=Q.greaterThanOrEqual,Q.ge=Q.greaterThanOrEqual,Q.compare=function(t){if(Vt(t)||(t=Tn(t)),this.eq(t))return 0;var n=this.isNegative(),r=t.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1},Q.comp=Q.compare,Q.negate=function(){return!this.unsigned&&this.eq(jt)?jt:this.not().add(mo)},Q.neg=Q.negate,Q.add=function(t){Vt(t)||(t=Tn(t));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,a=this.low&65535,o=t.high>>>16,s=t.high&65535,u=t.low>>>16,l=t.low&65535,c=0,f=0,h=0,d=0;return d+=a+l,h+=d>>>16,d&=65535,h+=i+u,f+=h>>>16,h&=65535,f+=r+s,c+=f>>>16,f&=65535,c+=n+o,c&=65535,Ne(h<<16|d,c<<16|f,this.unsigned)},Q.subtract=function(t){return Vt(t)||(t=Tn(t)),this.add(t.neg())},Q.sub=Q.subtract,Q.multiply=function(t){if(this.isZero())return dn;if(Vt(t)||(t=Tn(t)),fn){var n=fn.mul(this.low,this.high,t.low,t.high);return Ne(n,fn.get_high(),this.unsigned)}if(t.isZero())return dn;if(this.eq(jt))return t.isOdd()?jt:dn;if(t.eq(jt))return this.isOdd()?jt:dn;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(EA)&&t.lt(EA))return hn(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=t.high>>>16,u=t.high&65535,l=t.low>>>16,c=t.low&65535,f=0,h=0,d=0,p=0;return p+=o*c,d+=p>>>16,p&=65535,d+=a*c,h+=d>>>16,d&=65535,d+=o*l,h+=d>>>16,d&=65535,h+=i*c,f+=h>>>16,h&=65535,h+=a*l,f+=h>>>16,h&=65535,h+=o*u,f+=h>>>16,h&=65535,f+=r*c+i*l+a*u+o*s,f&=65535,Ne(d<<16|p,f<<16|h,this.unsigned)},Q.mul=Q.multiply,Q.divide=function(t){if(Vt(t)||(t=Tn(t)),t.isZero())throw Error("division by zero");if(fn){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?fn.div_u:fn.div_s)(this.low,this.high,t.low,t.high);return Ne(n,fn.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?fa:dn;var r,i,a;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return fa;if(t.gt(this.shru(1)))return _A;a=fa}else{if(this.eq(jt)){if(t.eq(mo)||t.eq(jp))return jt;if(t.eq(jt))return mo;var o=this.shr(1);return r=o.div(t).shl(1),r.eq(dn)?t.isNegative()?mo:jp:(i=this.sub(t.mul(r)),a=r.add(i.div(t)),a)}else if(t.eq(jt))return this.unsigned?fa:dn;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();a=dn}for(i=this;i.gte(t);){r=Math.max(1,Math.floor(i.toNumber()/t.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),u=s<=48?1:Gf(2,s-48),l=hn(r),c=l.mul(t);c.isNegative()||c.gt(i);)r-=u,l=hn(r,this.unsigned),c=l.mul(t);l.isZero()&&(l=mo),a=a.add(l),i=i.sub(c)}return a},Q.div=Q.divide,Q.modulo=function(t){if(Vt(t)||(t=Tn(t)),fn){var n=(this.unsigned?fn.rem_u:fn.rem_s)(this.low,this.high,t.low,t.high);return Ne(n,fn.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},Q.mod=Q.modulo,Q.rem=Q.modulo,Q.not=function(){return Ne(~this.low,~this.high,this.unsigned)},Q.and=function(t){return Vt(t)||(t=Tn(t)),Ne(this.low&t.low,this.high&t.high,this.unsigned)},Q.or=function(t){return Vt(t)||(t=Tn(t)),Ne(this.low|t.low,this.high|t.high,this.unsigned)},Q.xor=function(t){return Vt(t)||(t=Tn(t)),Ne(this.low^t.low,this.high^t.high,this.unsigned)},Q.shiftLeft=function(t){return Vt(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Ne(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):Ne(0,this.low<<t-32,this.unsigned)},Q.shl=Q.shiftLeft,Q.shiftRight=function(t){return Vt(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Ne(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):Ne(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},Q.shr=Q.shiftRight,Q.shiftRightUnsigned=function(t){if(Vt(t)&&(t=t.toInt()),t&=63,t===0)return this;var n=this.high;if(t<32){var r=this.low;return Ne(r>>>t|n<<32-t,n>>>t,this.unsigned)}else return t===32?Ne(n,0,this.unsigned):Ne(n>>>t-32,0,this.unsigned)},Q.shru=Q.shiftRightUnsigned,Q.shr_u=Q.shiftRightUnsigned,Q.toSigned=function(){return this.unsigned?Ne(this.low,this.high,!1):this},Q.toUnsigned=function(){return this.unsigned?this:Ne(this.low,this.high,!0)},Q.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},Q.toBytesLE=function(){var t=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]},Q.toBytesBE=function(){var t=this.high,n=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},Le.fromBytes=function(t,n,r){return r?Le.fromBytesLE(t,n):Le.fromBytesBE(t,n)},Le.fromBytesLE=function(t,n){return new Le(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n)},Le.fromBytesBE=function(t,n){return new Le(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],n)};const Hf=bl(HP),Vf=1;class jP{constructor({filehandle:t,path:n}){if(t)this.filehandle=t;else if(n)this.filehandle=new dt(n);else throw new TypeError("either filehandle or path must be defined")}_readLongWithOverflow(t,n=0,r=!0){const i=Hf.fromBytesLE(t.slice(n,n+8),r);if(i.greaterThan(Number.MAX_SAFE_INTEGER)||i.lessThan(Number.MIN_SAFE_INTEGER))throw new TypeError("integer overflow");return i.toNumber()}_getIndex(){return this.index||(this.index=this._readIndex()),this.index}async _readIndex(){let t=be.Buffer.allocUnsafe(8);await this.filehandle.read(t,0,8,0);const n=this._readLongWithOverflow(t,0,!0);if(!n)return[[0,0]];const r=new Array(n+1);r[0]=[0,0];const i=8*2*n;if(i>Number.MAX_SAFE_INTEGER)throw new TypeError("integer overflow");t=be.Buffer.allocUnsafe(i),await this.filehandle.read(t,0,i,8);for(let a=0;a<n;a+=1){const o=this._readLongWithOverflow(t,a*16),s=this._readLongWithOverflow(t,a*16+8);r[a+1]=[o,s]}return r}async getLastBlock(){const t=await this._getIndex();if(t.length)return t[t.length-1]}async getRelevantBlocksForRead(t,n){const r=n+t;if(t===0)return[];const i=await this._getIndex(),a=[],o=(h,d)=>{const p=h[Vf],m=d?d[Vf]:1/0;return p<=n&&m>n?0:p<n?-1:1};let s=0,u=i.length-1,l=Math.floor(i.length/2),c=o(i[l],i[l+1]);for(;c!==0;)c>0?u=l-1:c<0&&(s=l+1),l=Math.ceil((u-s)/2)+s,c=o(i[l],i[l+1]);a.push(i[l]);let f=l+1;for(;f<i.length&&(a.push(i[f]),!(i[f][Vf]>=r));f+=1);return a[a.length-1][Vf]<r&&a.push([]),a}}class kA{constructor({filehandle:t,path:n,gziFilehandle:r,gziPath:i}){if(t)this.filehandle=t;else if(n)this.filehandle=new dt(n);else throw new TypeError("either filehandle or path must be defined");if(!r&&!i&&!n)throw new TypeError("either gziFilehandle or gziPath must be defined");this.gzi=new jP({filehandle:r,path:!r&&!i&&n?i:`${n}.gzi`})}async stat(){const t=await this.filehandle.stat();return Object.assign(t,{size:await this.getUncompressedFileSize(),blocks:void 0,blksize:void 0})}async getUncompressedFileSize(){const[,t]=await this.gzi.getLastBlock(),{size:n}=await this.filehandle.stat(),r=be.Buffer.allocUnsafe(4),{bytesRead:i}=await this.filehandle.read(r,0,4,n-28-4);if(i!==4)throw new Error("read error");const a=r.readUInt32LE(0);return t+a}async _readAndUncompressBlock(t,[n],[r]){let i=r;i||(i=(await this.filehandle.stat()).size);const a=i-n;return await this.filehandle.read(t,0,a,n),await ui(t.slice(0,a))}async read(t,n,r,i){const a=await this.gzi.getRelevantBlocksForRead(r,i),o=be.Buffer.allocUnsafe(32768*2);let s=n,u=0;for(let l=0;l<a.length-1;l+=1){const c=await this._readAndUncompressBlock(o,a[l],a[l+1]),[,f]=a[l],h=f>=i?0:i-f,d=Math.min(i+r,f+c.length)-f;h>=0&&h<c.length&&(c.copy(t,s,h,d),s+=d-h,u+=d-h)}return{bytesRead:u,buffer:t}}}function TA(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}async function $P(e,t){const n=await e.readFile(t);if(!(n&&n.length))throw new Error("No data read from FASTA index (FAI) file");let r=0,i;const a=n.toString("utf8").split(/\r?\n/).filter(o=>/\S/.test(o)).map(o=>o.split(" ")).filter(o=>o[0]!=="").map(o=>((!i||i.name!==o[0])&&(i={name:o[0],id:r},r+=1),{id:i.id,name:o[0],length:+o[1],start:0,end:+o[1],offset:+o[2],lineLength:+o[3],lineBytes:+o[4]}));return{name:Object.fromEntries(a.map(o=>[o.name,o])),id:Object.fromEntries(a.map(o=>[o.id,o]))}}class IA{constructor({fasta:t,fai:n,path:r,faiPath:i,chunkSizeLimit:a=1e6}){if(t)this.fasta=t;else if(r)this.fasta=new dt(r);else throw new Error("Need to pass filehandle for fasta or path to localfile");if(n)this.fai=n;else if(i)this.fai=new dt(i);else if(r)this.fai=new dt(`${r}.fai`);else throw new Error("Need to pass filehandle for or path to localfile");this.chunkSizeLimit=a}async _getIndexes(t){return this.indexes||(this.indexes=$P(this.fai,t)),this.indexes}async getSequenceNames(t){return Object.keys((await this._getIndexes(t)).name)}async getSequenceSizes(t){const n={},r=await this._getIndexes(t),i=Object.values(r.id);for(let a=0;a<i.length;a+=1)n[i[a].name]=i[a].length;return n}async getSequenceSize(t,n){var r;return(r=(await this._getIndexes(n)).name[t])===null||r===void 0?void 0:r.length}async hasReferenceSequence(t,n){return!!(await this._getIndexes(n)).name[t]}async getResiduesById(t,n,r,i){const a=(await this._getIndexes(i)).id[t];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getResiduesByName(t,n,r,i){const a=(await this._getIndexes(i)).name[t];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getSequence(t,n,r,i){return this.getResiduesByName(t,n,r,i)}async _fetchFromIndexEntry(t,n=0,r,i){let a=r;if(n<0)throw new TypeError("regionStart cannot be less than 0");if((a===void 0||a>t.length)&&(a=t.length),n>=a)return"";const o=TA(t,n),s=TA(t,a)-o;if(s>this.chunkSizeLimit)throw new Error(`data size of ${s.toLocaleString()} bytes exceeded chunk size limit of ${this.chunkSizeLimit.toLocaleString()} bytes`);const u=Buffer.allocUnsafe(s);return await this.fasta.read(u,0,s,o,i),u.toString("utf8").replace(/\s+/g,"")}}class qP extends IA{constructor({fasta:t,path:n,fai:r,faiPath:i,gzi:a,gziPath:o,chunkSizeLimit:s}){super({fasta:t,path:n,fai:r,faiPath:i,chunkSizeLimit:s}),t&&a?this.fasta=new kA({filehandle:t,gziFilehandle:a}):n&&o&&(this.fasta=new kA({path:n,gziPath:o}))}}function BA(e){return e.split(">").filter(t=>/\S/.test(t)).map(t=>{const[n,...r]=t.split(`
470
- `),[i,...a]=n.split(" "),o=r.join("").replace(/\s/g,"");return{id:i,description:a.join(" "),sequence:o}})}class WP{constructor({fasta:t,path:n}){if(t)this.fasta=t;else if(n)this.fasta=new dt(n);else throw new Error("Need to pass fasta or path");this.data=this.fasta.readFile().then(r=>{const i=r.toString("utf8");return BA(i)})}async fetch(t,n,r){const a=(await this.data).find(s=>s.id===t),o=r-n;if(!a)throw new Error(`no sequence with id ${t} exists`);return a.sequence.substr(n,o)}async getSequenceNames(){return(await this.data).map(n=>n.id)}}const ZP=Object.freeze(Object.defineProperty({__proto__:null,BgzipIndexedFasta:qP,FetchableSmallFasta:WP,IndexedFasta:IA,parseSmallFasta:BA},Symbol.toStringTag,{value:"Module"})),jf=BigInt(32);function YP(e,t,n){const r=+!!n,i=+!n;return BigInt(e.getInt32(t,n)*i+e.getInt32(t+4,n)*r)<<jf|BigInt(e.getUint32(t,n)*r+e.getUint32(t+4,n)*i)}function QP(e,t,n){const r=e.getUint32(t,n),i=e.getUint32(t+4,n),a=+!!n,o=+!n;return BigInt(r*o+i*a)<<jf|BigInt(r*a+i*o)}function XP(e,t,n,r){const i=Number(n>>jf),a=Number(n&BigInt(4294967295));r?(e.setInt32(t+4,i,r),e.setUint32(t,a,r)):(e.setInt32(t,i,r),e.setUint32(t+4,a,r))}function KP(e,t,n,r){const i=Number(n>>jf),a=Number(n&BigInt(4294967295));r?(e.setUint32(t+4,i,r),e.setUint32(t,a,r)):(e.setUint32(t,i,r),e.setUint32(t+4,a,r))}"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(e,t){return YP(this,e,t)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(e,t){return QP(this,e,t)}),"setBigInt64"in DataView||(DataView.prototype.setBigInt64=function(e,t,n){XP(this,e,t,n)}),"setBigUint64"in DataView||(DataView.prototype.setBigUint64=function(e,t,n){KP(this,e,t,n)});class JP{constructor(t,n){this.code="",this.scopes=[["vars"]],this.bitFields=[],this.tmpVariableCount=0,this.references=new Map,this.imports=[],this.reverseImports=new Map,this.useContextVariables=!1,this.importPath=t,this.useContextVariables=n}generateVariable(t){const n=[...this.scopes[this.scopes.length-1]];return t&&n.push(t),n.join(".")}generateOption(t){switch(typeof t){case"number":return t.toString();case"string":return this.generateVariable(t);case"function":return`${this.addImport(t)}.call(${this.generateVariable()}, vars)`}}generateError(t){this.pushCode(`throw new Error(${t});`)}generateTmpVariable(){return"$tmp"+this.tmpVariableCount++}pushCode(t){this.code+=t+`
471
- `}pushPath(t){t&&this.scopes[this.scopes.length-1].push(t)}popPath(t){t&&this.scopes[this.scopes.length-1].pop()}pushScope(t){this.scopes.push([t])}popScope(){this.scopes.pop()}addImport(t){if(!this.importPath)return`(${t})`;let n=this.reverseImports.get(t);return n||(n=this.imports.push(t)-1,this.reverseImports.set(t,n)),`${this.importPath}[${n}]`}addReference(t){this.references.has(t)||this.references.set(t,{resolved:!1,requested:!1})}markResolved(t){const n=this.references.get(t);n&&(n.resolved=!0)}markRequested(t){t.forEach(n=>{const r=this.references.get(n);r&&(r.requested=!0)})}getUnresolvedReferences(){return Array.from(this.references).filter(([t,n])=>!n.resolved&&!n.requested).map(([t,n])=>t)}}const In=new Map,ha="___parser_",Bn={uint8:1,uint16le:2,uint16be:2,uint32le:4,uint32be:4,int8:1,int16le:2,int16be:2,int32le:4,int32be:4,int64be:8,int64le:8,uint64be:8,uint64le:8,floatle:4,floatbe:4,doublele:8,doublebe:8},$f={uint8:"Uint8",uint16le:"Uint16",uint16be:"Uint16",uint32le:"Uint32",uint32be:"Uint32",int8:"Int8",int16le:"Int16",int16be:"Int16",int32le:"Int32",int32be:"Int32",int64be:"BigInt64",int64le:"BigInt64",uint64be:"BigUint64",uint64le:"BigUint64",floatle:"Float32",floatbe:"Float32",doublele:"Float64",doublebe:"Float64"},qf={uint8:!1,uint16le:!0,uint16be:!1,uint32le:!0,uint32be:!1,int8:!1,int16le:!0,int16be:!1,int32le:!0,int32be:!1,int64be:!1,int64le:!0,uint64be:!1,uint64le:!0,floatle:!0,floatbe:!1,doublele:!0,doublebe:!1};let Be=class Mn{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new Mn}primitiveGenerateN(t,n){const r=$f[t],i=qf[t];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${Bn[t]};`)}primitiveN(t,n,r){return this.setNextParser(t,n,r)}useThisEndian(t){return t+this.endian.toLowerCase()}uint8(t,n={}){return this.primitiveN("uint8",t,n)}uint16(t,n={}){return this.primitiveN(this.useThisEndian("uint16"),t,n)}uint16le(t,n={}){return this.primitiveN("uint16le",t,n)}uint16be(t,n={}){return this.primitiveN("uint16be",t,n)}uint32(t,n={}){return this.primitiveN(this.useThisEndian("uint32"),t,n)}uint32le(t,n={}){return this.primitiveN("uint32le",t,n)}uint32be(t,n={}){return this.primitiveN("uint32be",t,n)}int8(t,n={}){return this.primitiveN("int8",t,n)}int16(t,n={}){return this.primitiveN(this.useThisEndian("int16"),t,n)}int16le(t,n={}){return this.primitiveN("int16le",t,n)}int16be(t,n={}){return this.primitiveN("int16be",t,n)}int32(t,n={}){return this.primitiveN(this.useThisEndian("int32"),t,n)}int32le(t,n={}){return this.primitiveN("int32le",t,n)}int32be(t,n={}){return this.primitiveN("int32be",t,n)}bigIntVersionCheck(){if(!DataView.prototype.getBigInt64)throw new Error("BigInt64 is unsupported on this runtime")}int64(t,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("int64"),t,n)}int64be(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64be",t,n)}int64le(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64le",t,n)}uint64(t,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("uint64"),t,n)}uint64be(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64be",t,n)}uint64le(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64le",t,n)}floatle(t,n={}){return this.primitiveN("floatle",t,n)}floatbe(t,n={}){return this.primitiveN("floatbe",t,n)}doublele(t,n={}){return this.primitiveN("doublele",t,n)}doublebe(t,n={}){return this.primitiveN("doublebe",t,n)}bitN(t,n,r){return r.length=t,this.setNextParser("bit",n,r)}bit1(t,n={}){return this.bitN(1,t,n)}bit2(t,n={}){return this.bitN(2,t,n)}bit3(t,n={}){return this.bitN(3,t,n)}bit4(t,n={}){return this.bitN(4,t,n)}bit5(t,n={}){return this.bitN(5,t,n)}bit6(t,n={}){return this.bitN(6,t,n)}bit7(t,n={}){return this.bitN(7,t,n)}bit8(t,n={}){return this.bitN(8,t,n)}bit9(t,n={}){return this.bitN(9,t,n)}bit10(t,n={}){return this.bitN(10,t,n)}bit11(t,n={}){return this.bitN(11,t,n)}bit12(t,n={}){return this.bitN(12,t,n)}bit13(t,n={}){return this.bitN(13,t,n)}bit14(t,n={}){return this.bitN(14,t,n)}bit15(t,n={}){return this.bitN(15,t,n)}bit16(t,n={}){return this.bitN(16,t,n)}bit17(t,n={}){return this.bitN(17,t,n)}bit18(t,n={}){return this.bitN(18,t,n)}bit19(t,n={}){return this.bitN(19,t,n)}bit20(t,n={}){return this.bitN(20,t,n)}bit21(t,n={}){return this.bitN(21,t,n)}bit22(t,n={}){return this.bitN(22,t,n)}bit23(t,n={}){return this.bitN(23,t,n)}bit24(t,n={}){return this.bitN(24,t,n)}bit25(t,n={}){return this.bitN(25,t,n)}bit26(t,n={}){return this.bitN(26,t,n)}bit27(t,n={}){return this.bitN(27,t,n)}bit28(t,n={}){return this.bitN(28,t,n)}bit29(t,n={}){return this.bitN(29,t,n)}bit30(t,n={}){return this.bitN(30,t,n)}bit31(t,n={}){return this.bitN(31,t,n)}bit32(t,n={}){return this.bitN(32,t,n)}namely(t){return In.set(t,this),this.alias=t,this}skip(t,n={}){return this.seek(t,n)}seek(t,n={}){if(n.assert)throw new Error("assert option on seek is not allowed.");return this.setNextParser("seek","",{length:t})}string(t,n){if(!n.zeroTerminated&&!n.length&&!n.greedy)throw new Error("One of length, zeroTerminated, or greedy must be defined for string.");if((n.zeroTerminated||n.length)&&n.greedy)throw new Error("greedy is mutually exclusive with length and zeroTerminated for string.");if(n.stripNull&&!(n.length||n.greedy))throw new Error("length or greedy must be defined if stripNull is enabled.");return n.encoding=n.encoding||"utf8",this.setNextParser("string",t,n)}buffer(t,n){if(!n.length&&!n.readUntil)throw new Error("length or readUntil must be defined for buffer.");return this.setNextParser("buffer",t,n)}wrapped(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n||!n.wrapper||!n.type)throw new Error("Both wrapper and type must be defined for wrapped.");if(!n.length&&!n.readUntil)throw new Error("length or readUntil must be defined for wrapped.");return this.setNextParser("wrapper",t,n)}array(t,n){if(!n.readUntil&&!n.length&&!n.lengthInBytes)throw new Error("One of readUntil, length and lengthInBytes must be defined for array.");if(!n.type)throw new Error("type is required for array.");if(typeof n.type=="string"&&!In.has(n.type)&&!(n.type in Bn))throw new Error(`Array element type "${n.type}" is unkown.`);return this.setNextParser("array",t,n)}choice(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n)throw new Error("tag and choices are are required for choice.");if(!n.tag)throw new Error("tag is requird for choice.");if(!n.choices)throw new Error("choices is required for choice.");for(const r in n.choices){const i=parseInt(r,10),a=n.choices[i];if(isNaN(i))throw new Error(`Choice key "${r}" is not a number.`);if(typeof a=="string"&&!In.has(a)&&!(a in Bn))throw new Error(`Choice type "${a}" is unkown.`)}return this.setNextParser("choice",t,n)}nest(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n||!n.type)throw new Error("type is required for nest.");if(!(n.type instanceof Mn)&&!In.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof Mn)&&!t)throw new Error("type must be a Parser object if the variable name is omitted.");return this.setNextParser("nest",t,n)}pointer(t,n){if(!n.offset)throw new Error("offset is required for pointer.");if(!n.type)throw new Error("type is required for pointer.");if(typeof n.type=="string"&&!(n.type in Bn)&&!In.has(n.type))throw new Error(`Pointer type "${n.type}" is unkown.`);return this.setNextParser("pointer",t,n)}saveOffset(t,n={}){return this.setNextParser("saveOffset",t,n)}endianness(t){switch(t.toLowerCase()){case"little":this.endian="le";break;case"big":this.endian="be";break;default:throw new Error('endianness must be one of "little" or "big"')}return this}endianess(t){return this.endianness(t)}useContextVars(t=!0){return this.useContextVariables=t,this}create(t){if(!(t instanceof Function))throw new Error("Constructor must be a Function object.");return this.constructorFn=t,this}getContext(t){const n=new JP(t,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${ha+this.alias}(0).result;`)):this.addRawCode(n),n}getCode(){const t="imports";return this.getContext(t).code}addRawCode(t){t.pushCode("var offset = 0;"),t.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),t.pushCode("vars.$parent = null;"),t.pushCode("vars.$root = vars;"),this.generate(t),this.resolveReferences(t),t.pushCode("delete vars.$parent;"),t.pushCode("delete vars.$root;"),t.pushCode("return vars;")}addAliasedCode(t){return t.pushCode(`function ${ha+this.alias}(offset, context) {`),t.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),t.pushCode("var ctx = Object.assign({$parent: null, $root: vars}, context || {});"),t.pushCode("vars = Object.assign(vars, ctx);"),this.generate(t),t.markResolved(this.alias),this.resolveReferences(t),t.pushCode("Object.keys(ctx).forEach(function (item) { delete vars[item]; });"),t.pushCode("return { offset: offset, result: vars };"),t.pushCode("}"),t}resolveReferences(t){const n=t.getUnresolvedReferences();t.markRequested(n),n.forEach(r=>{var i;(i=In.get(r))===null||i===void 0||i.addAliasedCode(t)})}compile(){const t="imports",n=this.getContext(t);this.compiled=new Function(t,"TextDecoder",`return function (buffer, constructorFn) { ${n.code} };`)(n.imports,TextDecoder)}sizeOf(){let t=NaN;if(Object.keys(Bn).indexOf(this.type)>=0)t=Bn[this.type];else if(this.type==="string"&&typeof this.options.length=="number")t=this.options.length;else if(this.type==="buffer"&&typeof this.options.length=="number")t=this.options.length;else if(this.type==="array"&&typeof this.options.length=="number"){let n=NaN;typeof this.options.type=="string"?n=Bn[this.options.type]:this.options.type instanceof Mn&&(n=this.options.type.sizeOf()),t=this.options.length*n}else this.type==="seek"?t=this.options.length:this.type==="nest"?t=this.options.type.sizeOf():this.type||(t=0);return this.next&&(t+=this.next.sizeOf()),t}parse(t){return this.compiled||this.compile(),this.compiled(t,this.constructorFn)}setNextParser(t,n,r){const i=new Mn;return i.type=t,i.varName=n,i.options=r,i.endian=this.endian,this.head?this.head.next=i:this.next=i,this.head=i,this}generate(t){if(this.type){switch(this.type){case"uint8":case"uint16le":case"uint16be":case"uint32le":case"uint32be":case"int8":case"int16le":case"int16be":case"int32le":case"int32be":case"int64be":case"int64le":case"uint64be":case"uint64le":case"floatle":case"floatbe":case"doublele":case"doublebe":this.primitiveGenerateN(this.type,t);break;case"bit":this.generateBit(t);break;case"string":this.generateString(t);break;case"buffer":this.generateBuffer(t);break;case"seek":this.generateSeek(t);break;case"nest":this.generateNest(t);break;case"array":this.generateArray(t);break;case"choice":this.generateChoice(t);break;case"pointer":this.generatePointer(t);break;case"saveOffset":this.generateSaveOffset(t);break;case"wrapper":this.generateWrapper(t);break}this.type!=="bit"&&this.generateAssert(t)}const n=t.generateVariable(this.varName);return this.options.formatter&&this.type!=="bit"&&this.generateFormatter(t,n,this.options.formatter),this.generateNext(t)}generateAssert(t){if(!this.options.assert)return;const n=t.generateVariable(this.varName);switch(typeof this.options.assert){case"function":{const r=t.addImport(this.options.assert);t.pushCode(`if (!${r}.call(vars, ${n})) {`)}break;case"number":t.pushCode(`if (${this.options.assert} !== ${n}) {`);break;case"string":t.pushCode(`if (${JSON.stringify(this.options.assert)} !== ${n}) {`);break;default:throw new Error("assert option must be a string, number or a function.")}t.generateError(`"Assertion error: ${n} is " + ${JSON.stringify(this.options.assert.toString())}`),t.pushCode("}")}generateNext(t){return this.next&&(t=this.next.generate(t)),t}generateBit(t){const n=JSON.parse(JSON.stringify(this));if(n.options=this.options,n.generateAssert=this.generateAssert.bind(this),n.generateFormatter=this.generateFormatter.bind(this),n.varName=t.generateVariable(n.varName),t.bitFields.push(n),!this.next||this.next&&["bit","nest"].indexOf(this.next.type)<0){const r=t.generateTmpVariable();t.pushCode(`var ${r} = 0;`);const i=(c=0)=>{let f=0;for(let h=c;h<t.bitFields.length;h++){const d=t.bitFields[h].options.length;if(f+d>32)break;f+=d}return f},a=c=>(c<=8?(t.pushCode(`${r} = dataView.getUint8(offset);`),c=8):c<=16?(t.pushCode(`${r} = dataView.getUint16(offset);`),c=16):c<=24?(t.pushCode(`${r} = (dataView.getUint16(offset) << 8) | dataView.getUint8(offset + 2);`),c=24):(t.pushCode(`${r} = dataView.getUint32(offset);`),c=32),t.pushCode(`offset += ${c/8};`),c);let o=0;const s=this.endian==="be";let u=0,l=0;t.bitFields.forEach((c,f)=>{let h=c.options.length;if(h>l){if(l){const m=-1>>>32-l;t.pushCode(`${c.varName} = (${r} & 0x${m.toString(16)}) << ${h-l};`),h-=l}o=0,l=u=a(i(f)-l)}const d=s?u-o-h:o,p=-1>>>32-h;t.pushCode(`${c.varName} ${h<c.options.length?"|=":"="} ${r} >> ${d} & 0x${p.toString(16)};`),c.options.length===32&&t.pushCode(`${c.varName} >>>= 0`),c.options.assert&&c.generateAssert(t),c.options.formatter&&c.generateFormatter(t,c.varName,c.options.formatter),o+=h,l-=h}),t.bitFields=[]}}generateSeek(t){const n=t.generateOption(this.options.length);t.pushCode(`offset += ${n};`)}generateString(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable(),i=this.options.encoding,a=i.toLowerCase()==="hex",o='b => b.toString(16).padStart(2, "0")';if(this.options.length&&this.options.zeroTerminated){const s=this.options.length;t.pushCode(`var ${r} = offset;`),t.pushCode(`while(dataView.getUint8(offset++) !== 0 && offset - ${r} < ${s});`);const u=`offset - ${r} < ${s} ? offset - 1 : offset`;t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, ${u}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${u}));`)}else if(this.options.length){const s=t.generateOption(this.options.length);t.pushCode(a?`${n} = Array.from(buffer.subarray(offset, offset + ${s}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(offset, offset + ${s}));`),t.pushCode(`offset += ${s};`)}else this.options.zeroTerminated?(t.pushCode(`var ${r} = offset;`),t.pushCode("while(dataView.getUint8(offset++) !== 0);"),t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset - 1), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset - 1));`)):this.options.greedy&&(t.pushCode(`var ${r} = offset;`),t.pushCode("while(buffer.length > offset++);"),t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset));`));this.options.stripNull&&t.pushCode(`${n} = ${n}.replace(/\\x00+$/g, '')`)}generateBuffer(t){const n=t.generateVariable(this.varName);if(typeof this.options.readUntil=="function"){const r=this.options.readUntil,i=t.generateTmpVariable(),a=t.generateTmpVariable();t.pushCode(`var ${i} = offset;`),t.pushCode(`var ${a} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${a} = dataView.getUint8(offset);`);const o=t.addImport(r);t.pushCode(`if (${o}.call(${t.generateVariable()}, ${a}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${n} = buffer.subarray(${i}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${n} = buffer.subarray(offset);`);else{const r=t.generateOption(this.options.length);t.pushCode(`${n} = buffer.subarray(offset, offset + ${r});`),t.pushCode(`offset += ${r};`)}this.options.clone&&t.pushCode(`${n} = buffer.constructor.from(${n});`)}generateArray(t){const n=t.generateOption(this.options.length),r=t.generateOption(this.options.lengthInBytes),i=this.options.type,a=t.generateTmpVariable(),o=t.generateVariable(this.varName),s=t.generateTmpVariable(),u=this.options.key,l=typeof u=="string";if(l?t.pushCode(`${o} = {};`):t.pushCode(`${o} = [];`),typeof this.options.readUntil=="function"?t.pushCode("do {"):this.options.readUntil==="eof"?t.pushCode(`for (var ${a} = 0; offset < buffer.length; ${a}++) {`):r!==void 0?t.pushCode(`for (var ${a} = offset + ${r}; offset < ${a}; ) {`):t.pushCode(`for (var ${a} = ${n}; ${a} > 0; ${a}--) {`),typeof i=="string")if(In.get(i)){const c=t.generateTmpVariable();if(t.pushCode(`var ${c} = ${ha+i}(offset, {`),t.useContextVariables){const f=t.generateVariable();t.pushCode(`$parent: ${f},`),t.pushCode(`$root: ${f}.$root,`),!this.options.readUntil&&r===void 0&&t.pushCode(`$index: ${n} - ${a},`)}t.pushCode("});"),t.pushCode(`var ${s} = ${c}.result; offset = ${c}.offset;`),i!==this.alias&&t.addReference(i)}else{const c=$f[i],f=qf[i];t.pushCode(`var ${s} = dataView.get${c}(offset, ${f});`),t.pushCode(`offset += ${Bn[i]};`)}else if(i instanceof Mn){t.pushCode(`var ${s} = {};`);const c=t.generateVariable();t.pushScope(s),t.useContextVariables&&(t.pushCode(`${s}.$parent = ${c};`),t.pushCode(`${s}.$root = ${c}.$root;`),!this.options.readUntil&&r===void 0&&t.pushCode(`${s}.$index = ${n} - ${a};`)),i.generate(t),t.useContextVariables&&(t.pushCode(`delete ${s}.$parent;`),t.pushCode(`delete ${s}.$root;`),t.pushCode(`delete ${s}.$index;`)),t.popScope()}if(l?t.pushCode(`${o}[${s}.${u}] = ${s};`):t.pushCode(`${o}.push(${s});`),t.pushCode("}"),typeof this.options.readUntil=="function"){const c=this.options.readUntil,f=t.addImport(c);t.pushCode(`while (!${f}.call(${t.generateVariable()}, ${s}, buffer.subarray(offset)));`)}}generateChoiceCase(t,n,r){if(typeof r=="string"){const i=t.generateVariable(this.varName);if(In.has(r)){const a=t.generateTmpVariable();t.pushCode(`var ${a} = ${ha+r}(offset, {`),t.useContextVariables&&(t.pushCode(`$parent: ${i}.$parent,`),t.pushCode(`$root: ${i}.$root,`)),t.pushCode("});"),t.pushCode(`${i} = ${a}.result; offset = ${a}.offset;`),r!==this.alias&&t.addReference(r)}else{const a=$f[r],o=qf[r];t.pushCode(`${i} = dataView.get${a}(offset, ${o});`),t.pushCode(`offset += ${Bn[r]}`)}}else r instanceof Mn&&(t.pushPath(n),r.generate(t),t.popPath(n))}generateChoice(t){const n=t.generateOption(this.options.tag),r=t.generateVariable(this.varName);if(this.varName&&(t.pushCode(`${r} = {};`),t.useContextVariables)){const i=t.generateVariable();t.pushCode(`${r}.$parent = ${i};`),t.pushCode(`${r}.$root = ${i}.$root;`)}t.pushCode(`switch(${n}) {`);for(const i in this.options.choices){const a=parseInt(i,10),o=this.options.choices[a];t.pushCode(`case ${a}:`),this.generateChoiceCase(t,this.varName,o),t.pushCode("break;")}t.pushCode("default:"),this.options.defaultChoice?this.generateChoiceCase(t,this.varName,this.options.defaultChoice):t.generateError(`"Met undefined tag value " + ${n} + " at choice"`),t.pushCode("}"),this.varName&&t.useContextVariables&&(t.pushCode(`delete ${r}.$parent;`),t.pushCode(`delete ${r}.$root;`))}generateNest(t){const n=t.generateVariable(this.varName);if(this.options.type instanceof Mn){if(this.varName&&(t.pushCode(`${n} = {};`),t.useContextVariables)){const r=t.generateVariable();t.pushCode(`${n}.$parent = ${r};`),t.pushCode(`${n}.$root = ${r}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),this.varName&&t.useContextVariables&&t.useContextVariables&&(t.pushCode(`delete ${n}.$parent;`),t.pushCode(`delete ${n}.$root;`))}else if(In.has(this.options.type)){const r=t.generateTmpVariable();if(t.pushCode(`var ${r} = ${ha+this.options.type}(offset, {`),t.useContextVariables){const i=t.generateVariable();t.pushCode(`$parent: ${i},`),t.pushCode(`$root: ${i}.$root,`)}t.pushCode("});"),t.pushCode(`${n} = ${r}.result; offset = ${r}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}}generateWrapper(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable();if(typeof this.options.readUntil=="function"){const u=this.options.readUntil,l=t.generateTmpVariable(),c=t.generateTmpVariable();t.pushCode(`var ${l} = offset;`),t.pushCode(`var ${c} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${c} = dataView.getUint8(offset);`);const f=t.addImport(u);t.pushCode(`if (${f}.call(${t.generateVariable()}, ${c}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${r} = buffer.subarray(${l}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${r} = buffer.subarray(offset);`);else{const u=t.generateOption(this.options.length);t.pushCode(`${r} = buffer.subarray(offset, offset + ${u});`),t.pushCode(`offset += ${u};`)}this.options.clone&&t.pushCode(`${r} = buffer.constructor.from(${r});`);const i=t.generateTmpVariable(),a=t.generateTmpVariable(),o=t.generateTmpVariable(),s=t.addImport(this.options.wrapper);if(t.pushCode(`${r} = ${s}.call(this, ${r}).subarray(0);`),t.pushCode(`var ${i} = buffer;`),t.pushCode(`var ${a} = offset;`),t.pushCode(`var ${o} = dataView;`),t.pushCode(`buffer = ${r};`),t.pushCode("offset = 0;"),t.pushCode("dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.options.type instanceof Mn)this.varName&&t.pushCode(`${n} = {};`),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(In.has(this.options.type)){const u=t.generateTmpVariable();t.pushCode(`var ${u} = ${ha+this.options.type}(0);`),t.pushCode(`${n} = ${u}.result;`),this.options.type!==this.alias&&t.addReference(this.options.type)}t.pushCode(`buffer = ${i};`),t.pushCode(`dataView = ${o};`),t.pushCode(`offset = ${a};`)}generateFormatter(t,n,r){if(typeof r=="function"){const i=t.addImport(r);t.pushCode(`${n} = ${i}.call(${t.generateVariable()}, ${n});`)}}generatePointer(t){const n=this.options.type,r=t.generateOption(this.options.offset),i=t.generateTmpVariable(),a=t.generateVariable(this.varName);if(t.pushCode(`var ${i} = offset;`),t.pushCode(`offset = ${r};`),this.options.type instanceof Mn){if(t.pushCode(`${a} = {};`),t.useContextVariables){const o=t.generateVariable();t.pushCode(`${a}.$parent = ${o};`),t.pushCode(`${a}.$root = ${o}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),t.useContextVariables&&(t.pushCode(`delete ${a}.$parent;`),t.pushCode(`delete ${a}.$root;`))}else if(In.has(this.options.type)){const o=t.generateTmpVariable();if(t.pushCode(`var ${o} = ${ha+this.options.type}(offset, {`),t.useContextVariables){const s=t.generateVariable();t.pushCode(`$parent: ${s},`),t.pushCode(`$root: ${s}.$root,`)}t.pushCode("});"),t.pushCode(`${a} = ${o}.result; offset = ${o}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}else if(Object.keys(Bn).indexOf(this.options.type)>=0){const o=$f[n],s=qf[n];t.pushCode(`${a} = dataView.get${o}(offset, ${s});`),t.pushCode(`offset += ${Bn[n]};`)}t.pushCode(`offset = ${i};`)}generateSaveOffset(t){const n=t.generateVariable(this.varName);t.pushCode(`${n} = offset`)}};var DA={},$p={},da={},Pl={};Object.defineProperty(Pl,"__esModule",{value:!0});function qp(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function RA(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Wp(e,t,n){return t&&RA(e.prototype,t),n&&RA(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function eL(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Zp(e,t)}function bo(e){return bo=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},bo(e)}function Zp(e,t){return Zp=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Zp(e,t)}function tL(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Ll(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function nL(e,t){if(t&&(typeof t=="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ll(e)}function rL(e){var t=tL();return function(){var r=bo(e),i;if(t){var a=bo(this).constructor;i=Reflect.construct(r,arguments,a)}else i=r.apply(this,arguments);return nL(this,i)}}function iL(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=bo(e),e!==null););return e}function Wf(){return typeof Reflect<"u"&&Reflect.get?Wf=Reflect.get.bind():Wf=function(t,n,r){var i=iL(t,n);if(i){var a=Object.getOwnPropertyDescriptor(i,n);return a.get?a.get.call(arguments.length<3?t:r):a.value}},Wf.apply(this,arguments)}var FA=function(){function e(){qp(this,e),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return Wp(e,[{key:"addEventListener",value:function(n,r,i){n in this.listeners||(this.listeners[n]=[]),this.listeners[n].push({callback:r,options:i})}},{key:"removeEventListener",value:function(n,r){if(n in this.listeners){for(var i=this.listeners[n],a=0,o=i.length;a<o;a++)if(i[a].callback===r){i.splice(a,1);return}}}},{key:"dispatchEvent",value:function(n){if(n.type in this.listeners){for(var r=this.listeners[n.type],i=r.slice(),a=0,o=i.length;a<o;a++){var s=i[a];try{s.callback.call(this,n)}catch(u){Promise.resolve().then(function(){throw u})}s.options&&s.options.once&&this.removeEventListener(n.type,s.callback)}return!n.defaultPrevented}}}]),e}(),Yp=function(e){eL(n,e);var t=rL(n);function n(){var r;return qp(this,n),r=t.call(this),r.listeners||FA.call(Ll(r)),Object.defineProperty(Ll(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(Ll(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(Ll(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return Wp(n,[{key:"toString",value:function(){return"[object AbortSignal]"}},{key:"dispatchEvent",value:function(i){i.type==="abort"&&(this.aborted=!0,typeof this.onabort=="function"&&this.onabort.call(this,i)),Wf(bo(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(FA),MA=function(){function e(){qp(this,e),Object.defineProperty(this,"signal",{value:new Yp,writable:!0,configurable:!0})}return Wp(e,[{key:"abort",value:function(n){var r;try{r=new Event("abort")}catch{typeof document<"u"?document.createEvent?(r=document.createEvent("Event"),r.initEvent("abort",!1,!1)):(r=document.createEventObject(),r.type="abort"):r={type:"abort",bubbles:!1,cancelable:!1}}var i=n;if(i===void 0)if(typeof document>"u")i=new Error("This operation was aborted"),i.name="AbortError";else try{i=new DOMException("signal is aborted without reason")}catch{i=new Error("This operation was aborted"),i.name="AbortError"}this.signal.reason=i,this.signal.dispatchEvent(r)}},{key:"toString",value:function(){return"[object AbortController]"}}]),e}();typeof Symbol<"u"&&Symbol.toStringTag&&(MA.prototype[Symbol.toStringTag]="AbortController",Yp.prototype[Symbol.toStringTag]="AbortSignal");function aL(e){return e.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof e.Request=="function"&&!e.Request.prototype.hasOwnProperty("signal")||!e.AbortController}function oL(e){typeof e=="function"&&(e={fetch:e});var t=e,n=t.fetch,r=t.Request,i=r===void 0?n.Request:r,a=t.AbortController,o=t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,s=o===void 0?!1:o;if(!aL({fetch:n,Request:i,AbortController:a,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:s}))return{fetch:n,Request:u};var u=i;(u&&!u.prototype.hasOwnProperty("signal")||s)&&(u=function(h,d){var p;d&&d.signal&&(p=d.signal,delete d.signal);var m=new i(h,d);return p&&Object.defineProperty(m,"signal",{writable:!1,enumerable:!1,configurable:!0,value:p}),m},u.prototype=i.prototype);var l=n,c=function(h,d){var p=u&&u.prototype.isPrototypeOf(h)?h.signal:d?d.signal:void 0;if(p){var m;try{m=new DOMException("Aborted","AbortError")}catch{m=new Error("Aborted"),m.name="AbortError"}if(p.aborted)return Promise.reject(m);var y=new Promise(function(w,x){p.addEventListener("abort",function(){return x(m)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([y,l(h,d)])}return l(h,d)};return{fetch:c,Request:u}}Pl.AbortController=MA,Pl.AbortSignal=Yp,Pl.abortableFetch=oL,Object.defineProperty(da,"__esModule",{value:!0}),da.AbortSignal=da.AbortController=void 0;const PA=Pl;var Zf=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof globalThis<"u")return globalThis;throw new Error("unable to locate global object")};let sL=typeof Zf().AbortController>"u"?PA.AbortController:Zf().AbortController;da.AbortController=sL;let lL=typeof Zf().AbortController>"u"?PA.AbortSignal:Zf().AbortSignal;da.AbortSignal=lL;var Qp={};Object.defineProperty(Qp,"__esModule",{value:!0});const uL=da;class cL{}class fL{constructor(){this.signals=new Set,this.abortController=new uL.AbortController}addSignal(t=new cL){if(this.signal.aborted)throw new Error("cannot add a signal, already aborted!");this.signals.add(t),t.aborted?this.handleAborted(t):typeof t.addEventListener=="function"&&t.addEventListener("abort",()=>{this.handleAborted(t)})}handleAborted(t){this.signals.delete(t),this.signals.size===0&&this.abortController.abort()}get signal(){return this.abortController.signal}abort(){this.abortController.abort()}}Qp.default=fL;var Xp={};Object.defineProperty(Xp,"__esModule",{value:!0});class hL{constructor(){this.callbacks=new Set}addCallback(t=()=>{}){this.callbacks.add(t),t(this.currentMessage)}callback(t){this.currentMessage=t,this.callbacks.forEach(n=>{n(t)})}}Xp.default=hL;var LA=Ef&&Ef.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty($p,"__esModule",{value:!0});const dL=da,pL=LA(Qp),gL=LA(Xp);class Yf{constructor({fill:t,cache:n}){if(typeof t!="function")throw new TypeError("must pass a fill function");if(typeof n!="object")throw new TypeError("must pass a cache object");if(typeof n.get!="function"||typeof n.set!="function"||typeof n.delete!="function")throw new TypeError("cache must implement get(key), set(key, val), and and delete(key)");this.cache=n,this.fillCallback=t}static isAbortException(t){return t.name==="AbortError"||t.code==="ERR_ABORTED"||t.message==="AbortError: aborted"||t.message==="Error: aborted"}evict(t,n){this.cache.get(t)===n&&this.cache.delete(t)}fill(t,n,r,i){const a=new pL.default,o=new gL.default;o.addCallback(i);const s={aborter:a,promise:this.fillCallback(n,a.signal,u=>{o.callback(u)}),settled:!1,statusReporter:o,get aborted(){return this.aborter.signal.aborted}};s.aborter.addSignal(r),s.aborter.signal.addEventListener("abort",()=>{s.settled||this.evict(t,s)}),s.promise.then(()=>{s.settled=!0},()=>{s.settled=!0,this.evict(t,s)}).catch(u=>{throw console.error(u),u}),this.cache.set(t,s)}static checkSinglePromise(t,n){function r(){if(n&&n.aborted)throw Object.assign(new Error("aborted"),{code:"ERR_ABORTED"})}return t.then(i=>(r(),i),i=>{throw r(),i})}has(t){return this.cache.has(t)}get(t,n,r,i){if(!r&&n instanceof dL.AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const a=this.cache.get(t);return a?a.aborted&&!a.settled?(this.evict(t,a),this.get(t,n,r,i)):a.settled?a.promise:(a.aborter.addSignal(r),a.statusReporter.addCallback(i),Yf.checkSinglePromise(a.promise,r)):(this.fill(t,n,r,i),Yf.checkSinglePromise(this.cache.get(t).promise,r))}delete(t){const n=this.cache.get(t);n&&(n.settled||n.aborter.abort(),this.cache.delete(t))}clear(){const t=this.cache.keys();let n=0;for(let r=t.next();!r.done;r=t.next())this.delete(r.value),n+=1;return n}}$p.default=Yf;var mL=Ef&&Ef.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(DA,"__esModule",{value:!0});const bL=mL($p);var Qf=DA.default=bL.default;class yL{constructor(t={}){if(!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=t.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(t,n){this.cache.set(t,n),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map)}get(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t)){const n=this.oldCache.get(t);return this.oldCache.delete(t),this._set(t,n),n}}set(t,n){return this.cache.has(t)?this.cache.set(t,n):this._set(t,n),this}has(t){return this.cache.has(t)||this.oldCache.has(t)}peek(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t))return this.oldCache.get(t)}delete(t){const n=this.cache.delete(t);return n&&this._size--,this.oldCache.delete(t)||n}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[t]of this)yield t}*values(){for(const[,t]of this)yield t}*[Symbol.iterator](){for(const t of this.cache)yield t;for(const t of this.oldCache){const[n]=t;this.cache.has(n)||(yield t)}}get size(){let t=0;for(const n of this.oldCache.keys())this.cache.has(n)||t++;return this._size+t}}var wL=yL;const Xf=bl(wL);class ci{constructor(t,n){this.ranges=arguments.length===2?[{min:t,max:n}]:0 in t?Object.assign({},t):[t]}min(){return this.ranges[0].min}max(){return this.ranges[this.ranges.length-1].max}contains(t){for(let n=0;n<this.ranges.length;n+=1){const r=this.ranges[n];if(r.min<=t&&r.max>=t)return!0}return!1}isContiguous(){return this.ranges.length>1}getRanges(){return this.ranges.map(t=>new ci(t.min,t.max))}toString(){return this.ranges.map(t=>`[${t.min}-${t.max}]`).join(",")}union(t){const n=this.getRanges().concat(t.getRanges()).sort(this.rangeOrder),r=[];let i=n[0];for(let a=1;a<n.length;a+=1){const o=n[a];o.min()>i.max()+1?(r.push(i),i=o):o.max()>i.max()&&(i=new ci(i.min(),o.max()))}return r.push(i),r.length===1?r[0]:new ci(r)}intersection(t){let n=this,r=t;const i=this.ranges(),a=r.ranges(),o=i.length,s=a.length;let u=0,l=0;const c=[];for(;u<o&&l<s;){n=i[u],r=a[l];const f=Math.max(n.min(),r.min()),h=Math.min(n.max(),r.max());h>=f&&c.push(new ci(f,h)),n.max()>r.max()?l+=1:u+=1}if(c.length===0)throw new Error("found range of length 0");return c.length===1?c[0]:new ci(c)}coverage(){let t=0;const n=this.ranges();for(const r of n)t+=r.max()-r.min()+1;return t}rangeOrder(t,n){let r=t,i=n;return arguments.length<2&&(i=r,r=this),r.min()<i.min()?-1:r.min()>i.min()?1:r.max()<i.max()?-1:i.max()>r.max()?1:0}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const vL=4,NA=0,OA=1,xL=2;function yo(e){let t=e.length;for(;--t>=0;)e[t]=0}const AL=0,zA=1,EL=2,_L=3,SL=258,Kp=29,Nl=256,Ol=Nl+1+Kp,wo=30,Jp=19,UA=2*Ol+1,pa=15,eg=16,CL=7,tg=256,GA=16,HA=17,VA=18,ng=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Kf=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),kL=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),jA=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),TL=512,yr=new Array((Ol+2)*2);yo(yr);const zl=new Array(wo*2);yo(zl);const Ul=new Array(TL);yo(Ul);const Gl=new Array(SL-_L+1);yo(Gl);const rg=new Array(Kp);yo(rg);const Jf=new Array(wo);yo(Jf);function ig(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}let $A,qA,WA;function ag(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const ZA=e=>e<256?Ul[e]:Ul[256+(e>>>7)],Hl=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},$t=(e,t,n)=>{e.bi_valid>eg-n?(e.bi_buf|=t<<e.bi_valid&65535,Hl(e,e.bi_buf),e.bi_buf=t>>eg-e.bi_valid,e.bi_valid+=n-eg):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},Kn=(e,t,n)=>{$t(e,n[t*2],n[t*2+1])},YA=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},IL=e=>{e.bi_valid===16?(Hl(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},BL=(e,t)=>{const n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,u=t.stat_desc.max_length;let l,c,f,h,d,p,m=0;for(h=0;h<=pa;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<UA;l++)c=e.heap[l],h=n[n[c*2+1]*2+1]+1,h>u&&(h=u,m++),n[c*2+1]=h,!(c>r)&&(e.bl_count[h]++,d=0,c>=s&&(d=o[c-s]),p=n[c*2],e.opt_len+=p*(h+d),a&&(e.static_len+=p*(i[c*2+1]+d)));if(m!==0){do{for(h=u-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[u]--,m-=2}while(m>0);for(h=u;h!==0;h--)for(c=e.bl_count[h];c!==0;)f=e.heap[--l],!(f>r)&&(n[f*2+1]!==h&&(e.opt_len+=(h-n[f*2+1])*n[f*2],n[f*2+1]=h),c--)}},QA=(e,t,n)=>{const r=new Array(pa+1);let i=0,a,o;for(a=1;a<=pa;a++)i=i+n[a-1]<<1,r[a]=i;for(o=0;o<=t;o++){let s=e[o*2+1];s!==0&&(e[o*2]=YA(r[s]++,s))}},DL=()=>{let e,t,n,r,i;const a=new Array(pa+1);for(n=0,r=0;r<Kp-1;r++)for(rg[r]=n,e=0;e<1<<ng[r];e++)Gl[n++]=r;for(Gl[n-1]=r,i=0,r=0;r<16;r++)for(Jf[r]=i,e=0;e<1<<Kf[r];e++)Ul[i++]=r;for(i>>=7;r<wo;r++)for(Jf[r]=i<<7,e=0;e<1<<Kf[r]-7;e++)Ul[256+i++]=r;for(t=0;t<=pa;t++)a[t]=0;for(e=0;e<=143;)yr[e*2+1]=8,e++,a[8]++;for(;e<=255;)yr[e*2+1]=9,e++,a[9]++;for(;e<=279;)yr[e*2+1]=7,e++,a[7]++;for(;e<=287;)yr[e*2+1]=8,e++,a[8]++;for(QA(yr,Ol+1,a),e=0;e<wo;e++)zl[e*2+1]=5,zl[e*2]=YA(e,5);$A=new ig(yr,ng,Nl+1,Ol,pa),qA=new ig(zl,Kf,0,wo,pa),WA=new ig(new Array(0),kL,0,Jp,CL)},XA=e=>{let t;for(t=0;t<Ol;t++)e.dyn_ltree[t*2]=0;for(t=0;t<wo;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Jp;t++)e.bl_tree[t*2]=0;e.dyn_ltree[tg*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},KA=e=>{e.bi_valid>8?Hl(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},JA=(e,t,n,r)=>{const i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]},og=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&JA(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!JA(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},e3=(e,t,n)=>{let r,i,a=0,o,s;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+a++]&255,r+=(e.pending_buf[e.sym_buf+a++]&255)<<8,i=e.pending_buf[e.sym_buf+a++],r===0?Kn(e,i,t):(o=Gl[i],Kn(e,o+Nl+1,t),s=ng[o],s!==0&&(i-=rg[o],$t(e,i,s)),r--,o=ZA(r),Kn(e,o,n),s=Kf[o],s!==0&&(r-=Jf[o],$t(e,r,s)));while(a<e.sym_next);Kn(e,tg,t)},sg=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems;let o,s,u=-1,l;for(e.heap_len=0,e.heap_max=UA,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=u=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=u,o=e.heap_len>>1;o>=1;o--)og(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],og(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,og(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],BL(e,t),QA(n,u,e.bl_count)},t3=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)&&(s<l?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[GA*2]++):s<=10?e.bl_tree[HA*2]++:e.bl_tree[VA*2]++,s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4))},n3=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)){if(s<l)do Kn(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(Kn(e,a,e.bl_tree),s--),Kn(e,GA,e.bl_tree),$t(e,s-3,2)):s<=10?(Kn(e,HA,e.bl_tree),$t(e,s-3,3)):(Kn(e,VA,e.bl_tree),$t(e,s-11,7));s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4)}},RL=e=>{let t;for(t3(e,e.dyn_ltree,e.l_desc.max_code),t3(e,e.dyn_dtree,e.d_desc.max_code),sg(e,e.bl_desc),t=Jp-1;t>=3&&e.bl_tree[jA[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},FL=(e,t,n,r)=>{let i;for($t(e,t-257,5),$t(e,n-1,5),$t(e,r-4,4),i=0;i<r;i++)$t(e,e.bl_tree[jA[i]*2+1],3);n3(e,e.dyn_ltree,t-1),n3(e,e.dyn_dtree,n-1)},ML=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return NA;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return OA;for(n=32;n<Nl;n++)if(e.dyn_ltree[n*2]!==0)return OA;return NA};let r3=!1;const PL=e=>{r3||(DL(),r3=!0),e.l_desc=new ag(e.dyn_ltree,$A),e.d_desc=new ag(e.dyn_dtree,qA),e.bl_desc=new ag(e.bl_tree,WA),e.bi_buf=0,e.bi_valid=0,XA(e)},i3=(e,t,n,r)=>{$t(e,(AL<<1)+(r?1:0),3),KA(e),Hl(e,n),Hl(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},LL=e=>{$t(e,zA<<1,3),Kn(e,tg,yr),IL(e)},NL=(e,t,n,r)=>{let i,a,o=0;e.level>0?(e.strm.data_type===xL&&(e.strm.data_type=ML(e)),sg(e,e.l_desc),sg(e,e.d_desc),o=RL(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&t!==-1?i3(e,t,n,r):e.strategy===vL||a===i?($t(e,(zA<<1)+(r?1:0),3),e3(e,yr,zl)):($t(e,(EL<<1)+(r?1:0),3),FL(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),e3(e,e.dyn_ltree,e.dyn_dtree)),XA(e),r&&KA(e)},OL=(e,t,n)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=n,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(Gl[n]+Nl+1)*2]++,e.dyn_dtree[ZA(t)*2]++),e.sym_next===e.sym_end);var zL=PL,UL=i3,GL=NL,HL=OL,VL=LL,jL={_tr_init:zL,_tr_stored_block:UL,_tr_flush_block:GL,_tr_tally:HL,_tr_align:VL},Vl=(e,t,n,r)=>{let i=e&65535|0,a=e>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0};const $L=()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t},qL=new Uint32Array($L());var pt=(e,t,n,r)=>{const i=qL,a=r+n;e^=-1;for(let o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1},vo={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"},jl={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:WL,_tr_stored_block:lg,_tr_flush_block:ZL,_tr_tally:fi,_tr_align:YL}=jL,{Z_NO_FLUSH:hi,Z_PARTIAL_FLUSH:QL,Z_FULL_FLUSH:XL,Z_FINISH:pn,Z_BLOCK:a3,Z_OK:vt,Z_STREAM_END:o3,Z_STREAM_ERROR:Jn,Z_DATA_ERROR:KL,Z_BUF_ERROR:ug,Z_DEFAULT_COMPRESSION:JL,Z_FILTERED:eN,Z_HUFFMAN_ONLY:eh,Z_RLE:tN,Z_FIXED:nN,Z_DEFAULT_STRATEGY:rN,Z_UNKNOWN:iN,Z_DEFLATED:th}=jl,aN=9,oN=15,sN=8,lN=29,cg=256+1+lN,uN=30,cN=19,fN=2*cg+1,hN=15,ge=3,di=258,er=di+ge+1,dN=32,xo=42,fg=57,hg=69,dg=73,pg=91,gg=103,ga=113,$l=666,Ft=1,Ao=2,ma=3,Eo=4,pN=3,ba=(e,t)=>(e.msg=vo[t],t),s3=e=>e*2-(e>4?9:0),pi=e=>{let t=e.length;for(;--t>=0;)e[t]=0},gN=e=>{let t,n,r,i=e.w_size;t=e.hash_size,r=t;do n=e.head[--r],e.head[r]=n>=i?n-i:0;while(--t);t=i,r=t;do n=e.prev[--r],e.prev[r]=n>=i?n-i:0;while(--t)};let gi=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const Jt=e=>{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},en=(e,t)=>{ZL(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Jt(e.strm)},Ee=(e,t)=>{e.pending_buf[e.pending++]=t},ql=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},mg=(e,t,n,r)=>{let i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),n),e.state.wrap===1?e.adler=Vl(e.adler,t,i,n):e.state.wrap===2&&(e.adler=pt(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},l3=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match;const u=e.strstart>e.w_size-er?e.strstart-(e.w_size-er):0,l=e.window,c=e.w_mask,f=e.prev,h=e.strstart+di;let d=l[r+o-1],p=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(l[i+o]!==p||l[i+o-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(a=di-(h-r),r=h-di,a>o){if(e.match_start=t,o=a,a>=s)break;d=l[r+o-1],p=l[r+o]}}while((t=f[t&c])>u&&--n!==0);return o<=e.lookahead?o:e.lookahead},_o=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-er)&&(e.window.set(e.window.subarray(t,t+t-r),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),gN(e),r+=t),e.strm.avail_in===0)break;if(n=mg(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=ge)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=gi(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=gi(e,e.ins_h,e.window[i+ge-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<ge)););}while(e.lookahead<er&&e.strm.avail_in!==0)},u3=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,a,o=0,s=e.strm.avail_in;do{if(r=65535,a=e.bi_valid+42>>3,e.strm.avail_out<a||(a=e.strm.avail_out-a,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>a&&(r=a),r<n&&(r===0&&t!==pn||t===hi||r!==i+e.strm.avail_in)))break;o=t===pn&&r===i+e.strm.avail_in?1:0,lg(e,0,0,o),e.pending_buf[e.pending-4]=r,e.pending_buf[e.pending-3]=r>>8,e.pending_buf[e.pending-2]=~r,e.pending_buf[e.pending-1]=~r>>8,Jt(e.strm),i&&(i>r&&(i=r),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,r-=i),r&&(mg(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(o===0);return s-=e.strm.avail_in,s&&(s>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=s&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-s,e.strm.next_in),e.strstart),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),o?Eo:t!==hi&&t!==pn&&e.strm.avail_in===0&&e.strstart===e.block_start?Ao:(a=e.window_size-e.strstart,e.strm.avail_in>a&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,a+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),a>e.strm.avail_in&&(a=e.strm.avail_in),a&&(mg(e.strm,e.window,e.strstart,a),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.high_water<e.strstart&&(e.high_water=e.strstart),a=e.bi_valid+42>>3,a=e.pending_buf_size-a>65535?65535:e.pending_buf_size-a,n=a>e.w_size?e.w_size:a,i=e.strstart-e.block_start,(i>=n||(i||t===pn)&&t!==hi&&e.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=t===pn&&e.strm.avail_in===0&&r===i?1:0,lg(e,e.block_start,r,o),e.block_start+=r,Jt(e.strm)),o?ma:Ft)},bg=(e,t)=>{let n,r;for(;;){if(e.lookahead<er){if(_o(e),e.lookahead<er&&t===hi)return Ft;if(e.lookahead===0)break}if(n=0,e.lookahead>=ge&&(e.ins_h=gi(e,e.ins_h,e.window[e.strstart+ge-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-er&&(e.match_length=l3(e,n)),e.match_length>=ge)if(r=fi(e,e.strstart-e.match_start,e.match_length-ge),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=ge){e.match_length--;do e.strstart++,e.ins_h=gi(e,e.ins_h,e.window[e.strstart+ge-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=gi(e,e.ins_h,e.window[e.strstart+1]);else r=fi(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(en(e,!1),e.strm.avail_out===0))return Ft}return e.insert=e.strstart<ge-1?e.strstart:ge-1,t===pn?(en(e,!0),e.strm.avail_out===0?ma:Eo):e.sym_next&&(en(e,!1),e.strm.avail_out===0)?Ft:Ao},So=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<er){if(_o(e),e.lookahead<er&&t===hi)return Ft;if(e.lookahead===0)break}if(n=0,e.lookahead>=ge&&(e.ins_h=gi(e,e.ins_h,e.window[e.strstart+ge-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=ge-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-er&&(e.match_length=l3(e,n),e.match_length<=5&&(e.strategy===eN||e.match_length===ge&&e.strstart-e.match_start>4096)&&(e.match_length=ge-1)),e.prev_length>=ge&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-ge,r=fi(e,e.strstart-1-e.prev_match,e.prev_length-ge),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=gi(e,e.ins_h,e.window[e.strstart+ge-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=ge-1,e.strstart++,r&&(en(e,!1),e.strm.avail_out===0))return Ft}else if(e.match_available){if(r=fi(e,0,e.window[e.strstart-1]),r&&en(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Ft}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=fi(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<ge-1?e.strstart:ge-1,t===pn?(en(e,!0),e.strm.avail_out===0?ma:Eo):e.sym_next&&(en(e,!1),e.strm.avail_out===0)?Ft:Ao},mN=(e,t)=>{let n,r,i,a;const o=e.window;for(;;){if(e.lookahead<=di){if(_o(e),e.lookahead<=di&&t===hi)return Ft;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=ge&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+di;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=di-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=ge?(n=fi(e,1,e.match_length-ge),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=fi(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(en(e,!1),e.strm.avail_out===0))return Ft}return e.insert=0,t===pn?(en(e,!0),e.strm.avail_out===0?ma:Eo):e.sym_next&&(en(e,!1),e.strm.avail_out===0)?Ft:Ao},bN=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(_o(e),e.lookahead===0)){if(t===hi)return Ft;break}if(e.match_length=0,n=fi(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(en(e,!1),e.strm.avail_out===0))return Ft}return e.insert=0,t===pn?(en(e,!0),e.strm.avail_out===0?ma:Eo):e.sym_next&&(en(e,!1),e.strm.avail_out===0)?Ft:Ao};function tr(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}const Wl=[new tr(0,0,0,0,u3),new tr(4,4,8,4,bg),new tr(4,5,16,8,bg),new tr(4,6,32,32,bg),new tr(4,4,16,16,So),new tr(8,16,32,32,So),new tr(8,16,128,128,So),new tr(8,32,128,256,So),new tr(32,128,258,1024,So),new tr(32,258,258,4096,So)],yN=e=>{e.window_size=2*e.w_size,pi(e.head),e.max_lazy_match=Wl[e.level].max_lazy,e.good_match=Wl[e.level].good_length,e.nice_match=Wl[e.level].nice_length,e.max_chain_length=Wl[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=ge-1,e.match_available=0,e.ins_h=0};function wN(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=th,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(fN*2),this.dyn_dtree=new Uint16Array((2*uN+1)*2),this.bl_tree=new Uint16Array((2*cN+1)*2),pi(this.dyn_ltree),pi(this.dyn_dtree),pi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(hN+1),this.heap=new Uint16Array(2*cg+1),pi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*cg+1),pi(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Zl=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==xo&&t.status!==fg&&t.status!==hg&&t.status!==dg&&t.status!==pg&&t.status!==gg&&t.status!==ga&&t.status!==$l?1:0},c3=e=>{if(Zl(e))return ba(e,Jn);e.total_in=e.total_out=0,e.data_type=iN;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?fg:t.wrap?xo:ga,e.adler=t.wrap===2?0:1,t.last_flush=-2,WL(t),vt},f3=e=>{const t=c3(e);return t===vt&&yN(e.state),t},vN=(e,t)=>Zl(e)||e.state.wrap!==2?Jn:(e.state.gzhead=t,vt),h3=(e,t,n,r,i,a)=>{if(!e)return Jn;let o=1;if(t===JL&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>aN||n!==th||r<8||r>15||t<0||t>9||a<0||a>nN||r===8&&o!==1)return ba(e,Jn);r===8&&(r=9);const s=new wN;return e.state=s,s.strm=e,s.status=xo,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+ge-1)/ge),s.window=new Uint8Array(s.w_size*2),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=(s.lit_bufsize-1)*3,s.level=t,s.strategy=a,s.method=n,f3(e)},xN=(e,t)=>h3(e,t,th,oN,sN,rN),AN=(e,t)=>{if(Zl(e)||t>a3||t<0)return e?ba(e,Jn):Jn;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===$l&&t!==pn)return ba(e,e.avail_out===0?ug:Jn);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(Jt(e),e.avail_out===0)return n.last_flush=-1,vt}else if(e.avail_in===0&&s3(t)<=s3(r)&&t!==pn)return ba(e,ug);if(n.status===$l&&e.avail_in!==0)return ba(e,ug);if(n.status===xo&&n.wrap===0&&(n.status=ga),n.status===xo){let i=th+(n.w_bits-8<<4)<<8,a=-1;if(n.strategy>=eh||n.level<2?a=0:n.level<6?a=1:n.level===6?a=2:a=3,i|=a<<6,n.strstart!==0&&(i|=dN),i+=31-i%31,ql(n,i),n.strstart!==0&&(ql(n,e.adler>>>16),ql(n,e.adler&65535)),e.adler=1,n.status=ga,Jt(e),n.pending!==0)return n.last_flush=-1,vt}if(n.status===fg){if(e.adler=0,Ee(n,31),Ee(n,139),Ee(n,8),n.gzhead)Ee(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),Ee(n,n.gzhead.time&255),Ee(n,n.gzhead.time>>8&255),Ee(n,n.gzhead.time>>16&255),Ee(n,n.gzhead.time>>24&255),Ee(n,n.level===9?2:n.strategy>=eh||n.level<2?4:0),Ee(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(Ee(n,n.gzhead.extra.length&255),Ee(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=pt(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=hg;else if(Ee(n,0),Ee(n,0),Ee(n,0),Ee(n,0),Ee(n,0),Ee(n,n.level===9?2:n.strategy>=eh||n.level<2?4:0),Ee(n,pN),n.status=ga,Jt(e),n.pending!==0)return n.last_flush=-1,vt}if(n.status===hg){if(n.gzhead.extra){let i=n.pending,a=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+a>n.pending_buf_size;){let s=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(e.adler=pt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,Jt(e),n.pending!==0)return n.last_flush=-1,vt;i=0,a-=s}let o=new Uint8Array(n.gzhead.extra);n.pending_buf.set(o.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending+=a,n.gzhead.hcrc&&n.pending>i&&(e.adler=pt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=dg}if(n.status===dg){if(n.gzhead.name){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=pt(e.adler,n.pending_buf,n.pending-i,i)),Jt(e),n.pending!==0)return n.last_flush=-1,vt;i=0}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,Ee(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=pt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=pg}if(n.status===pg){if(n.gzhead.comment){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=pt(e.adler,n.pending_buf,n.pending-i,i)),Jt(e),n.pending!==0)return n.last_flush=-1,vt;i=0}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,Ee(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=pt(e.adler,n.pending_buf,n.pending-i,i))}n.status=gg}if(n.status===gg){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(Jt(e),n.pending!==0))return n.last_flush=-1,vt;Ee(n,e.adler&255),Ee(n,e.adler>>8&255),e.adler=0}if(n.status=ga,Jt(e),n.pending!==0)return n.last_flush=-1,vt}if(e.avail_in!==0||n.lookahead!==0||t!==hi&&n.status!==$l){let i=n.level===0?u3(n,t):n.strategy===eh?bN(n,t):n.strategy===tN?mN(n,t):Wl[n.level].func(n,t);if((i===ma||i===Eo)&&(n.status=$l),i===Ft||i===ma)return e.avail_out===0&&(n.last_flush=-1),vt;if(i===Ao&&(t===QL?YL(n):t!==a3&&(lg(n,0,0,!1),t===XL&&(pi(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),Jt(e),e.avail_out===0))return n.last_flush=-1,vt}return t!==pn?vt:n.wrap<=0?o3:(n.wrap===2?(Ee(n,e.adler&255),Ee(n,e.adler>>8&255),Ee(n,e.adler>>16&255),Ee(n,e.adler>>24&255),Ee(n,e.total_in&255),Ee(n,e.total_in>>8&255),Ee(n,e.total_in>>16&255),Ee(n,e.total_in>>24&255)):(ql(n,e.adler>>>16),ql(n,e.adler&65535)),Jt(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?vt:o3)},EN=e=>{if(Zl(e))return Jn;const t=e.state.status;return e.state=null,t===ga?ba(e,KL):vt},_N=(e,t)=>{let n=t.length;if(Zl(e))return Jn;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==xo||r.lookahead)return Jn;if(i===1&&(e.adler=Vl(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(pi(r.head),r.strstart=0,r.block_start=0,r.insert=0);let u=new Uint8Array(r.w_size);u.set(t.subarray(n-r.w_size,n),0),t=u,n=r.w_size}const a=e.avail_in,o=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,_o(r);r.lookahead>=ge;){let u=r.strstart,l=r.lookahead-(ge-1);do r.ins_h=gi(r,r.ins_h,r.window[u+ge-1]),r.prev[u&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=u,u++;while(--l);r.strstart=u,r.lookahead=ge-1,_o(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=ge-1,r.match_available=0,e.next_in=o,e.input=s,e.avail_in=a,r.wrap=i,vt};var SN=xN,CN=h3,kN=f3,TN=c3,IN=vN,BN=AN,DN=EN,RN=_N,FN="pako deflate (from Nodeca project)",Yl={deflateInit:SN,deflateInit2:CN,deflateReset:kN,deflateResetKeep:TN,deflateSetHeader:IN,deflate:BN,deflateEnd:DN,deflateSetDictionary:RN,deflateInfo:FN};const MN=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var PN=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)MN(n,r)&&(e[r]=n[r])}}return e},LN=e=>{let t=0;for(let r=0,i=e.length;r<i;r++)t+=e[r].length;const n=new Uint8Array(t);for(let r=0,i=0,a=e.length;r<a;r++){let o=e[r];n.set(o,i),i+=o.length}return n},nh={assign:PN,flattenChunks:LN};let d3=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{d3=!1}const Ql=new Uint8Array(256);for(let e=0;e<256;e++)Ql[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Ql[254]=Ql[254]=1;var NN=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,a,o=e.length,s=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(s),a=0,i=0;a<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t};const ON=(e,t)=>{if(t<65534&&e.subarray&&d3)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n};var zN=(e,t)=>{const n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let r,i;const a=new Array(n*2);for(i=0,r=0;r<n;){let o=e[r++];if(o<128){a[i++]=o;continue}let s=Ql[o];if(s>4){a[i++]=65533,r+=s-1;continue}for(o&=s===2?31:s===3?15:7;s>1&&r<n;)o=o<<6|e[r++]&63,s--;if(s>1){a[i++]=65533;continue}o<65536?a[i++]=o:(o-=65536,a[i++]=55296|o>>10&1023,a[i++]=56320|o&1023)}return ON(a,i)},UN=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let n=t-1;for(;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+Ql[e[n]]>t?n:t},Xl={string2buf:NN,buf2string:zN,utf8border:UN};function GN(){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}var p3=GN;const g3=Object.prototype.toString,{Z_NO_FLUSH:HN,Z_SYNC_FLUSH:VN,Z_FULL_FLUSH:jN,Z_FINISH:$N,Z_OK:rh,Z_STREAM_END:qN,Z_DEFAULT_COMPRESSION:WN,Z_DEFAULT_STRATEGY:ZN,Z_DEFLATED:YN}=jl;function yg(e){this.options=nh.assign({level:WN,method:YN,chunkSize:16384,windowBits:15,memLevel:8,strategy:ZN},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new p3,this.strm.avail_out=0;let n=Yl.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==rh)throw new Error(vo[n]);if(t.header&&Yl.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=Xl.string2buf(t.dictionary):g3.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=Yl.deflateSetDictionary(this.strm,r),n!==rh)throw new Error(vo[n]);this._dict_set=!0}}yg.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let i,a;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?$N:HN,typeof e=="string"?n.input=Xl.string2buf(e):g3.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(a===VN||a===jN)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=Yl.deflate(n,a),i===qN)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=Yl.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===rh;if(n.avail_out===0){this.onData(n.output);continue}if(a>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0},yg.prototype.onData=function(e){this.chunks.push(e)},yg.prototype.onEnd=function(e){e===rh&&(this.result=nh.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const ih=16209,QN=16191;var XN=function(t,n){let r,i,a,o,s,u,l,c,f,h,d,p,m,y,w,x,S,_,T,I,B,R,M,H;const O=t.state;r=t.next_in,M=t.input,i=r+(t.avail_in-5),a=t.next_out,H=t.output,o=a-(n-t.avail_out),s=a+(t.avail_out-257),u=O.dmax,l=O.wsize,c=O.whave,f=O.wnext,h=O.window,d=O.hold,p=O.bits,m=O.lencode,y=O.distcode,w=(1<<O.lenbits)-1,x=(1<<O.distbits)-1;e:do{p<15&&(d+=M[r++]<<p,p+=8,d+=M[r++]<<p,p+=8),S=m[d&w];t:for(;;){if(_=S>>>24,d>>>=_,p-=_,_=S>>>16&255,_===0)H[a++]=S&65535;else if(_&16){T=S&65535,_&=15,_&&(p<_&&(d+=M[r++]<<p,p+=8),T+=d&(1<<_)-1,d>>>=_,p-=_),p<15&&(d+=M[r++]<<p,p+=8,d+=M[r++]<<p,p+=8),S=y[d&x];n:for(;;){if(_=S>>>24,d>>>=_,p-=_,_=S>>>16&255,_&16){if(I=S&65535,_&=15,p<_&&(d+=M[r++]<<p,p+=8,p<_&&(d+=M[r++]<<p,p+=8)),I+=d&(1<<_)-1,I>u){t.msg="invalid distance too far back",O.mode=ih;break e}if(d>>>=_,p-=_,_=a-o,I>_){if(_=I-_,_>c&&O.sane){t.msg="invalid distance too far back",O.mode=ih;break e}if(B=0,R=h,f===0){if(B+=l-_,_<T){T-=_;do H[a++]=h[B++];while(--_);B=a-I,R=H}}else if(f<_){if(B+=l+f-_,_-=f,_<T){T-=_;do H[a++]=h[B++];while(--_);if(B=0,f<T){_=f,T-=_;do H[a++]=h[B++];while(--_);B=a-I,R=H}}}else if(B+=f-_,_<T){T-=_;do H[a++]=h[B++];while(--_);B=a-I,R=H}for(;T>2;)H[a++]=R[B++],H[a++]=R[B++],H[a++]=R[B++],T-=3;T&&(H[a++]=R[B++],T>1&&(H[a++]=R[B++]))}else{B=a-I;do H[a++]=H[B++],H[a++]=H[B++],H[a++]=H[B++],T-=3;while(T>2);T&&(H[a++]=H[B++],T>1&&(H[a++]=H[B++]))}}else if(_&64){t.msg="invalid distance code",O.mode=ih;break e}else{S=y[(S&65535)+(d&(1<<_)-1)];continue n}break}}else if(_&64)if(_&32){O.mode=QN;break e}else{t.msg="invalid literal/length code",O.mode=ih;break e}else{S=m[(S&65535)+(d&(1<<_)-1)];continue t}break}}while(r<i&&a<s);T=p>>3,r-=T,p-=T<<3,d&=(1<<p)-1,t.next_in=r,t.next_out=a,t.avail_in=r<i?5+(i-r):5-(r-i),t.avail_out=a<s?257+(s-a):257-(a-s),O.hold=d,O.bits=p};const Co=15,m3=852,b3=592,y3=0,wg=1,w3=2,KN=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]),JN=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]),eO=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]),tO=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var Kl=(e,t,n,r,i,a,o,s)=>{const u=s.bits;let l=0,c=0,f=0,h=0,d=0,p=0,m=0,y=0,w=0,x=0,S,_,T,I,B,R=null,M;const H=new Uint16Array(Co+1),O=new Uint16Array(Co+1);let re=null,se,te,me;for(l=0;l<=Co;l++)H[l]=0;for(c=0;c<r;c++)H[t[n+c]]++;for(d=u,h=Co;h>=1&&H[h]===0;h--);if(d>h&&(d=h),h===0)return i[a++]=1<<24|64<<16|0,i[a++]=1<<24|64<<16|0,s.bits=1,0;for(f=1;f<h&&H[f]===0;f++);for(d<f&&(d=f),y=1,l=1;l<=Co;l++)if(y<<=1,y-=H[l],y<0)return-1;if(y>0&&(e===y3||h!==1))return-1;for(O[1]=0,l=1;l<Co;l++)O[l+1]=O[l]+H[l];for(c=0;c<r;c++)t[n+c]!==0&&(o[O[t[n+c]]++]=c);if(e===y3?(R=re=o,M=20):e===wg?(R=KN,re=JN,M=257):(R=eO,re=tO,M=0),x=0,c=0,l=f,B=a,p=d,m=0,T=-1,w=1<<d,I=w-1,e===wg&&w>m3||e===w3&&w>b3)return 1;for(;;){se=l-m,o[c]+1<M?(te=0,me=o[c]):o[c]>=M?(te=re[o[c]-M],me=R[o[c]-M]):(te=32+64,me=0),S=1<<l-m,_=1<<p,f=_;do _-=S,i[B+(x>>m)+_]=se<<24|te<<16|me|0;while(_!==0);for(S=1<<l-1;x&S;)S>>=1;if(S!==0?(x&=S-1,x+=S):x=0,c++,--H[l]===0){if(l===h)break;l=t[n+o[c]]}if(l>d&&(x&I)!==T){for(m===0&&(m=d),B+=f,p=l-m,y=1<<p;p+m<h&&(y-=H[p+m],!(y<=0));)p++,y<<=1;if(w+=1<<p,e===wg&&w>m3||e===w3&&w>b3)return 1;T=x&I,i[T]=d<<24|p<<16|B-a|0}}return x!==0&&(i[B+x]=l-m<<24|64<<16|0),s.bits=d,0};const nO=0,v3=1,x3=2,{Z_FINISH:A3,Z_BLOCK:rO,Z_TREES:ah,Z_OK:ya,Z_STREAM_END:iO,Z_NEED_DICT:aO,Z_STREAM_ERROR:gn,Z_DATA_ERROR:E3,Z_MEM_ERROR:_3,Z_BUF_ERROR:oO,Z_DEFLATED:S3}=jl,oh=16180,C3=16181,k3=16182,T3=16183,I3=16184,B3=16185,D3=16186,R3=16187,F3=16188,M3=16189,sh=16190,wr=16191,vg=16192,P3=16193,xg=16194,L3=16195,N3=16196,O3=16197,z3=16198,lh=16199,uh=16200,U3=16201,G3=16202,H3=16203,V3=16204,j3=16205,Ag=16206,$3=16207,q3=16208,qe=16209,W3=16210,Z3=16211,sO=852,lO=592,uO=15,Y3=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function cO(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const wa=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<oh||t.mode>Z3?1:0},Q3=e=>{if(wa(e))return gn;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=oh,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(sO),t.distcode=t.distdyn=new Int32Array(lO),t.sane=1,t.back=-1,ya},X3=e=>{if(wa(e))return gn;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Q3(e)},K3=(e,t)=>{let n;if(wa(e))return gn;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?gn:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,X3(e))},J3=(e,t)=>{if(!e)return gn;const n=new cO;e.state=n,n.strm=e,n.window=null,n.mode=oh;const r=K3(e,t);return r!==ya&&(e.state=null),r},fO=e=>J3(e,uO);let eE=!0,Eg,_g;const hO=e=>{if(eE){Eg=new Int32Array(512),_g=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Kl(v3,e.lens,0,288,Eg,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Kl(x3,e.lens,0,32,_g,0,e.work,{bits:5}),eE=!1}e.lencode=Eg,e.lenbits=9,e.distcode=_g,e.distbits=5},tE=(e,t,n,r)=>{let i;const a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),r>=a.wsize?(a.window.set(t.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),a.window.set(t.subarray(n-r,n-r+i),a.wnext),r-=i,r?(a.window.set(t.subarray(n-r,n),0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0},dO=(e,t)=>{let n,r,i,a,o,s,u,l,c,f,h,d,p,m,y=0,w,x,S,_,T,I,B,R;const M=new Uint8Array(4);let H,O;const re=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(wa(e)||!e.output||!e.input&&e.avail_in!==0)return gn;n=e.state,n.mode===wr&&(n.mode=vg),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,c=n.bits,f=s,h=u,R=ya;e:for(;;)switch(n.mode){case oh:if(n.wrap===0){n.mode=vg;break}for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(n.wrap&2&&l===35615){n.wbits===0&&(n.wbits=15),n.check=0,M[0]=l&255,M[1]=l>>>8&255,n.check=pt(n.check,M,2,0),l=0,c=0,n.mode=C3;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",n.mode=qe;break}if((l&15)!==S3){e.msg="unknown compression method",n.mode=qe;break}if(l>>>=4,c-=4,B=(l&15)+8,n.wbits===0&&(n.wbits=B),B>15||B>n.wbits){e.msg="invalid window size",n.mode=qe;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=l&512?M3:wr,l=0,c=0;break;case C3:for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(n.flags=l,(n.flags&255)!==S3){e.msg="unknown compression method",n.mode=qe;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=qe;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=pt(n.check,M,2,0)),l=0,c=0,n.mode=k3;case k3:for(;c<32;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.head&&(n.head.time=l),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,M[2]=l>>>16&255,M[3]=l>>>24&255,n.check=pt(n.check,M,4,0)),l=0,c=0,n.mode=T3;case T3:for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=pt(n.check,M,2,0)),l=0,c=0,n.mode=I3;case I3:if(n.flags&1024){for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=pt(n.check,M,2,0)),l=0,c=0}else n.head&&(n.head.extra=null);n.mode=B3;case B3:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(B=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(a,a+d),B)),n.flags&512&&n.wrap&4&&(n.check=pt(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=D3;case D3:if(n.flags&2048){if(s===0)break e;d=0;do B=r[a+d++],n.head&&B&&n.length<65536&&(n.head.name+=String.fromCharCode(B));while(B&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=pt(n.check,r,d,a)),s-=d,a+=d,B)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=R3;case R3:if(n.flags&4096){if(s===0)break e;d=0;do B=r[a+d++],n.head&&B&&n.length<65536&&(n.head.comment+=String.fromCharCode(B));while(B&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=pt(n.check,r,d,a)),s-=d,a+=d,B)break e}else n.head&&(n.head.comment=null);n.mode=F3;case F3:if(n.flags&512){for(;c<16;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(n.wrap&4&&l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=qe;break}l=0,c=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=wr;break;case M3:for(;c<32;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}e.adler=n.check=Y3(l),l=0,c=0,n.mode=sh;case sh:if(n.havedict===0)return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=c,aO;e.adler=n.check=1,n.mode=wr;case wr:if(t===rO||t===ah)break e;case vg:if(n.last){l>>>=c&7,c-=c&7,n.mode=Ag;break}for(;c<3;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}switch(n.last=l&1,l>>>=1,c-=1,l&3){case 0:n.mode=P3;break;case 1:if(hO(n),n.mode=lh,t===ah){l>>>=2,c-=2;break e}break;case 2:n.mode=N3;break;case 3:e.msg="invalid block type",n.mode=qe}l>>>=2,c-=2;break;case P3:for(l>>>=c&7,c-=c&7;c<32;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=qe;break}if(n.length=l&65535,l=0,c=0,n.mode=xg,t===ah)break e;case xg:n.mode=L3;case L3:if(d=n.length,d){if(d>s&&(d=s),d>u&&(d=u),d===0)break e;i.set(r.subarray(a,a+d),o),s-=d,a+=d,u-=d,o+=d,n.length-=d;break}n.mode=wr;break;case N3:for(;c<14;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(n.nlen=(l&31)+257,l>>>=5,c-=5,n.ndist=(l&31)+1,l>>>=5,c-=5,n.ncode=(l&15)+4,l>>>=4,c-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=qe;break}n.have=0,n.mode=O3;case O3:for(;n.have<n.ncode;){for(;c<3;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.lens[re[n.have++]]=l&7,l>>>=3,c-=3}for(;n.have<19;)n.lens[re[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,H={bits:n.lenbits},R=Kl(nO,n.lens,0,19,n.lencode,0,n.work,H),n.lenbits=H.bits,R){e.msg="invalid code lengths set",n.mode=qe;break}n.have=0,n.mode=z3;case z3:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,x=y>>>16&255,S=y&65535,!(w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(S<16)l>>>=w,c-=w,n.lens[n.have++]=S;else{if(S===16){for(O=w+2;c<O;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(l>>>=w,c-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=qe;break}B=n.lens[n.have-1],d=3+(l&3),l>>>=2,c-=2}else if(S===17){for(O=w+3;c<O;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}l>>>=w,c-=w,B=0,d=3+(l&7),l>>>=3,c-=3}else{for(O=w+7;c<O;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}l>>>=w,c-=w,B=0,d=11+(l&127),l>>>=7,c-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=qe;break}for(;d--;)n.lens[n.have++]=B}}if(n.mode===qe)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=qe;break}if(n.lenbits=9,H={bits:n.lenbits},R=Kl(v3,n.lens,0,n.nlen,n.lencode,0,n.work,H),n.lenbits=H.bits,R){e.msg="invalid literal/lengths set",n.mode=qe;break}if(n.distbits=6,n.distcode=n.distdyn,H={bits:n.distbits},R=Kl(x3,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,H),n.distbits=H.bits,R){e.msg="invalid distances set",n.mode=qe;break}if(n.mode=lh,t===ah)break e;case lh:n.mode=uh;case uh:if(s>=6&&u>=258){e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=c,XN(e,h),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,c=n.bits,n.mode===wr&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,x=y>>>16&255,S=y&65535,!(w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(x&&!(x&240)){for(_=w,T=x,I=S;y=n.lencode[I+((l&(1<<_+T)-1)>>_)],w=y>>>24,x=y>>>16&255,S=y&65535,!(_+w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,n.length=S,x===0){n.mode=j3;break}if(x&32){n.back=-1,n.mode=wr;break}if(x&64){e.msg="invalid literal/length code",n.mode=qe;break}n.extra=x&15,n.mode=U3;case U3:if(n.extra){for(O=n.extra;c<O;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=G3;case G3:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,x=y>>>16&255,S=y&65535,!(w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(!(x&240)){for(_=w,T=x,I=S;y=n.distcode[I+((l&(1<<_+T)-1)>>_)],w=y>>>24,x=y>>>16&255,S=y&65535,!(_+w<=c);){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,x&64){e.msg="invalid distance code",n.mode=qe;break}n.offset=S,n.extra=x&15,n.mode=H3;case H3:if(n.extra){for(O=n.extra;c<O;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=qe;break}n.mode=V3;case V3:if(u===0)break e;if(d=h-u,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=qe;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),m=n.window}else m=i,p=o-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[o++]=m[p++];while(--d);n.length===0&&(n.mode=uh);break;case j3:if(u===0)break e;i[o++]=n.length,u--,n.mode=uh;break;case Ag:if(n.wrap){for(;c<32;){if(s===0)break e;s--,l|=r[a++]<<c,c+=8}if(h-=u,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?pt(n.check,i,h,o-h):Vl(n.check,i,h,o-h)),h=u,n.wrap&4&&(n.flags?l:Y3(l))!==n.check){e.msg="incorrect data check",n.mode=qe;break}l=0,c=0}n.mode=$3;case $3:if(n.wrap&&n.flags){for(;c<32;){if(s===0)break e;s--,l+=r[a++]<<c,c+=8}if(n.wrap&4&&l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=qe;break}l=0,c=0}n.mode=q3;case q3:R=iO;break e;case qe:R=E3;break e;case W3:return _3;case Z3:default:return gn}return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=c,(n.wsize||h!==e.avail_out&&n.mode<qe&&(n.mode<Ag||t!==A3))&&tE(e,e.output,e.next_out,h-e.avail_out),f-=e.avail_in,h-=e.avail_out,e.total_in+=f,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?pt(n.check,i,h,e.next_out-h):Vl(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===wr?128:0)+(n.mode===lh||n.mode===xg?256:0),(f===0&&h===0||t===A3)&&R===ya&&(R=oO),R},pO=e=>{if(wa(e))return gn;let t=e.state;return t.window&&(t.window=null),e.state=null,ya},gO=(e,t)=>{if(wa(e))return gn;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,ya):gn},mO=(e,t)=>{const n=t.length;let r,i,a;return wa(e)||(r=e.state,r.wrap!==0&&r.mode!==sh)?gn:r.mode===sh&&(i=1,i=Vl(i,t,n,0),i!==r.check)?E3:(a=tE(e,t,n,n),a?(r.mode=W3,_3):(r.havedict=1,ya))};var bO=X3,yO=K3,wO=Q3,vO=fO,xO=J3,AO=dO,EO=pO,_O=gO,SO=mO,CO="pako inflate (from Nodeca project)",vr={inflateReset:bO,inflateReset2:yO,inflateResetKeep:wO,inflateInit:vO,inflateInit2:xO,inflate:AO,inflateEnd:EO,inflateGetHeader:_O,inflateSetDictionary:SO,inflateInfo:CO};function kO(){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}var TO=kO;const nE=Object.prototype.toString,{Z_NO_FLUSH:IO,Z_FINISH:BO,Z_OK:Jl,Z_STREAM_END:Sg,Z_NEED_DICT:Cg,Z_STREAM_ERROR:DO,Z_DATA_ERROR:rE,Z_MEM_ERROR:RO}=jl;function eu(e){this.options=nh.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new p3,this.strm.avail_out=0;let n=vr.inflateInit2(this.strm,t.windowBits);if(n!==Jl)throw new Error(vo[n]);if(this.header=new TO,vr.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Xl.string2buf(t.dictionary):nE.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=vr.inflateSetDictionary(this.strm,t.dictionary),n!==Jl)))throw new Error(vo[n])}eu.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let a,o,s;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?BO:IO,nE.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),a=vr.inflate(n,o),a===Cg&&i&&(a=vr.inflateSetDictionary(n,i),a===Jl?a=vr.inflate(n,o):a===rE&&(a=Cg));n.avail_in>0&&a===Sg&&n.state.wrap>0&&e[n.next_in]!==0;)vr.inflateReset(n),a=vr.inflate(n,o);switch(a){case DO:case rE:case Cg:case RO:return this.onEnd(a),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||a===Sg))if(this.options.to==="string"){let u=Xl.utf8border(n.output,n.next_out),l=n.next_out-u,c=Xl.buf2string(n.output,u);n.next_out=l,n.avail_out=r-l,l&&n.output.set(n.output.subarray(u,u+l),0),this.onData(c)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(a===Jl&&s===0)){if(a===Sg)return a=vr.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},eu.prototype.onData=function(e){this.chunks.push(e)},eu.prototype.onEnd=function(e){e===Jl&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=nh.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function kg(e,t){const n=new eu(t);if(n.push(e),n.err)throw n.msg||vo[n.err];return n.result}function FO(e,t){return t=t||{},t.raw=!0,kg(e,t)}var MO=eu,PO=kg,LO=FO,NO=kg,OO=jl,zO={Inflate:MO,inflate:PO,inflateRaw:LO,ungzip:NO,constants:OO};const{Inflate:MG,inflate:PG,inflateRaw:UO,ungzip:LG}=zO;var GO=UO;function HO(e){return GO(e.subarray(2))}let VO=class extends Error{constructor(t){super(t),this.code="ERR_ABORTED"}};function jO(e){e.sort((i,a)=>Number(i.offset)-Number(a.offset));const t=[];let n,r;for(const i of e)n&&r&&Number(i.offset)-r<=2e3?(n.length=BigInt(Number(n.length)+Number(i.length)-r+Number(i.offset)),n.blocks.push(i)):t.push(n={blocks:[i],length:i.length,offset:i.offset}),r=Number(n.offset)+Number(n.length);return t}function ch(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new VO("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}const $O=1,qO=2,WO=3;function Tg(e,t,n,r){return e<r&&t>=n}function ZO(e){const t=e?"big":"little",n=new Be().endianess(t).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new Be().endianess(t).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new Be().endianess(t).array("blocksToFetch",{length:"cnt",type:new Be().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new Be().array("recurOffsets",{length:"cnt",type:new Be().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new Be().endianess(t).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new Be().endianess(t).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[WO]:new Be().array("items",{length:"itemCount",type:new Be().floatle("score")}),[qO]:new Be().array("items",{length:"itemCount",type:new Be().endianess(t).int32("start").floatle("score")}),[$O]:new Be().array("items",{length:"itemCount",type:new Be().endianess(t).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class iE{constructor(t,n,r,i,a,o){if(this.bbi=t,this.refsByName=n,this.cirTreeOffset=r,this.isBigEndian=i,this.isCompressed=a,this.blockType=o,this.featureCache=new Qf({cache:new Xf({maxSize:1e3}),fill:async(u,l)=>{const c=Number(u.length),f=Number(u.offset),{buffer:h}=await this.bbi.read(be.Buffer.alloc(c),0,c,f,{signal:l});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const s=ZO(i);this.leafParser=s.leafParser,this.bigBedParser=s.bigBedParser}async readWigData(t,n,r,i,a){try{const{refsByName:o,bbi:s,cirTreeOffset:u,isBigEndian:l}=this,c=o[t];c===void 0&&i.complete();const f={chrId:c,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=s.read(be.Buffer.alloc(48),0,48,Number(u),a));const{buffer:h}=await this.cirTreePromise,d=l?h.readUInt32BE(4):h.readUInt32LE(4);let p=[],m=0;const y=(_,T,I)=>{try{const B=_.subarray(T),R=this.leafParser.parse(B);if(R.blocksToFetch&&(p=p.concat(R.blocksToFetch.filter(M=>w(M)).map(M=>({offset:M.blockOffset,length:M.blockSize})))),R.recurOffsets){const M=R.recurOffsets.filter(H=>w(H)).map(H=>Number(H.blockOffset));M.length>0&&S(M,I+1)}}catch(B){i.error(B)}},w=_=>{const{startChrom:T,startBase:I,endChrom:B,endBase:R}=_;return(T<c||T===c&&I<=r)&&(B>c||B===c&&R>=n)},x=async(_,T,I)=>{try{const B=T.max()-T.min(),R=T.min(),M=await this.featureCache.get(`${B}_${R}`,{length:B,offset:R},a==null?void 0:a.signal);for(const H of _)T.contains(H)&&(y(M,H-R,I),m-=1,m===0&&this.readFeatures(i,p,{...a,request:f}))}catch(B){i.error(B)}},S=(_,T)=>{try{m+=_.length;const I=4+Number(d)*32;let B=new ci(_[0],_[0]+I);for(let R=1;R<_.length;R+=1){const M=new ci(_[R],_[R]+I);B=B.union(M)}B.getRanges().map(R=>x(_,R,T))}catch(I){i.error(I)}};return S([Number(u)+48],1)}catch(o){i.error(o)}}parseSummaryBlock(t,n,r){const i=[];let a=n;const o=new DataView(t.buffer,t.byteOffset,t.length);for(;a<t.byteLength;){const s=o.getUint32(a,!0);a+=4;const u=o.getUint32(a,!0);a+=4;const l=o.getUint32(a,!0);a+=4;const c=o.getUint32(a,!0);a+=4;const f=o.getFloat32(a,!0);a+=4;const h=o.getFloat32(a,!0);a+=4;const d=o.getFloat32(a,!0);a+=4,a+=4,(!r||s===r.chrId&&Tg(u,l,r.start,r.end))&&i.push({start:u,end:l,maxScore:h,minScore:f,summary:!0,score:d/(c||1)})}return i}parseBigBedBlock(t,n,r,i){const a=[];let o=n;for(;o<t.byteLength;){const s=this.bigBedParser.parse(t.subarray(o));s.uniqueId=`bb-${r+o}`,a.push(s),o+=s.offset}return i?a.filter(s=>Tg(s.start,s.end,i.start,i.end)):a}parseBigWigBlock(t,n,r){const i=t.subarray(n),a=new DataView(i.buffer,i.byteOffset,i.length);let o=0;o+=4;const s=a.getInt32(o,!0);o+=8;const u=a.getUint32(o,!0);o+=4;const l=a.getUint32(o,!0);o+=4;const c=a.getUint8(o);o+=2;const f=a.getUint16(o,!0);o+=2;const h=new Array(f);switch(c){case 1:{for(let d=0;d<f;d++){const p=a.getInt32(o,!0);o+=4;const m=a.getInt32(o,!0);o+=4;const y=a.getFloat32(o,!0);o+=4,h[d]={start:p,end:m,score:y}}break}case 2:{for(let d=0;d<f;d++){const p=a.getInt32(o,!0);o+=4;const m=a.getFloat32(o,!0);o+=4,h[d]={score:m,start:p,end:p+l}}break}case 3:{for(let d=0;d<f;d++){const p=a.getFloat32(o,!0);o+=4;const m=s+d*u;h[d]={score:p,start:m,end:m+l}}break}}return r?h.filter(d=>Tg(d.start,d.end,r.start,r.end)):h}async readFeatures(t,n,r={}){try{const{blockType:i,isCompressed:a}=this,{signal:o,request:s}=r,u=jO(n);ch(o),await Promise.all(u.map(async l=>{ch(o);const{length:c,offset:f}=l,h=await this.featureCache.get(`${c}_${f}`,l,o);for(const d of l.blocks){ch(o);let p=Number(d.offset)-Number(l.offset),m=h;switch(a&&(m=HO(h.subarray(p)),p=0),ch(o),i){case"summary":{t.next(this.parseSummaryBlock(m,p,s));break}case"bigwig":{t.next(this.parseBigWigBlock(m,p,s));break}case"bigbed":{t.next(this.parseBigBedBlock(m,p,Number(d.offset)*256,s));break}default:console.warn(`Don't know what to do with ${i}`)}}})),t.complete()}catch(i){t.error(i)}}}var Ig=function(e,t){return Ig=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[i]=r[i])},Ig(e,t)};function Bg(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Ig(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function YO(e,t,n,r){function i(a){return a instanceof n?a:new n(function(o){o(a)})}return new(n||(n=Promise))(function(a,o){function s(c){try{l(r.next(c))}catch(f){o(f)}}function u(c){try{l(r.throw(c))}catch(f){o(f)}}function l(c){c.done?a(c.value):i(c.value).then(s,u)}l((r=r.apply(e,t||[])).next())})}function aE(e,t){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,i,a,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(l){return function(c){return u([l,c])}}function u(l){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(n=0)),n;)try{if(r=1,i&&(a=l[0]&2?i.return:l[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,l[1])).done)return a;switch(i=0,a&&(l=[l[0]&2,a.value]),l[0]){case 0:case 1:a=l;break;case 4:return n.label++,{value:l[1],done:!1};case 5:n.label++,i=l[1],l=[0];continue;case 7:l=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(l[0]===6||l[0]===2)){n=0;continue}if(l[0]===3&&(!a||l[1]>a[0]&&l[1]<a[3])){n.label=l[1];break}if(l[0]===6&&n.label<a[1]){n.label=a[1],a=l;break}if(a&&n.label<a[2]){n.label=a[2],n.ops.push(l);break}a[2]&&n.ops.pop(),n.trys.pop();continue}l=t.call(e,n)}catch(c){l=[6,c],i=0}finally{r=a=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function tu(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Dg(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,a=[],o;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)a.push(i.value)}catch(s){o={error:s}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a}function Rg(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||(a=Array.prototype.slice.call(t,0,r)),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}function ko(e){return this instanceof ko?(this.v=e,this):new ko(e)}function QO(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),i,a=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(h){r[h]&&(i[h]=function(d){return new Promise(function(p,m){a.push([h,d,p,m])>1||s(h,d)})})}function s(h,d){try{u(r[h](d))}catch(p){f(a[0][3],p)}}function u(h){h.value instanceof ko?Promise.resolve(h.value.v).then(l,c):f(a[0][2],h)}function l(h){s("next",h)}function c(h){s("throw",h)}function f(h,d){h(d),a.shift(),a.length&&s(a[0][0],a[0][1])}}function XO(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof tu=="function"?tu(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(a){n[a]=e[a]&&function(o){return new Promise(function(s,u){o=e[a](o),i(s,u,o.done,o.value)})}}function i(a,o,s,u){Promise.resolve(u).then(function(l){a({value:l,done:s})},o)}}typeof SuppressedError=="function"&&SuppressedError;function lt(e){return typeof e=="function"}function oE(e){var t=function(r){Error.call(r),r.stack=new Error().stack},n=e(t);return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var Fg=oE(function(e){return function(n){e(this),this.message=n?n.length+` errors occurred during unsubscription:
482
+ */(function(e){const t=Bf,n=Ep,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=s,e.SlowBuffer=A,e.INSPECT_MAX_BYTES=50;const i=2147483647;e.kMaxLength=i,s.TYPED_ARRAY_SUPPORT=o(),!s.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function o(){try{const v=new Uint8Array(1),g={foo:function(){return 42}};return Object.setPrototypeOf(g,Uint8Array.prototype),Object.setPrototypeOf(v,g),v.foo()===42}catch{return!1}}Object.defineProperty(s.prototype,"parent",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,"offset",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}});function a(v){if(v>i)throw new RangeError('The value "'+v+'" is invalid for option "size"');const g=new Uint8Array(v);return Object.setPrototypeOf(g,s.prototype),g}function s(v,g,b){if(typeof v=="number"){if(typeof g=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return f(v)}return u(v,g,b)}s.poolSize=8192;function u(v,g,b){if(typeof v=="string")return h(v,g);if(ArrayBuffer.isView(v))return p(v);if(v==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof v);if(Ct(v,ArrayBuffer)||v&&Ct(v.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Ct(v,SharedArrayBuffer)||v&&Ct(v.buffer,SharedArrayBuffer)))return m(v,g,b);if(typeof v=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const T=v.valueOf&&v.valueOf();if(T!=null&&T!==v)return s.from(T,g,b);const F=y(v);if(F)return F;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof v[Symbol.toPrimitive]=="function")return s.from(v[Symbol.toPrimitive]("string"),g,b);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof v)}s.from=function(v,g,b){return u(v,g,b)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array);function l(v){if(typeof v!="number")throw new TypeError('"size" argument must be of type number');if(v<0)throw new RangeError('The value "'+v+'" is invalid for option "size"')}function c(v,g,b){return l(v),v<=0?a(v):g!==void 0?typeof b=="string"?a(v).fill(g,b):a(v).fill(g):a(v)}s.alloc=function(v,g,b){return c(v,g,b)};function f(v){return l(v),a(v<0?0:w(v)|0)}s.allocUnsafe=function(v){return f(v)},s.allocUnsafeSlow=function(v){return f(v)};function h(v,g){if((typeof g!="string"||g==="")&&(g="utf8"),!s.isEncoding(g))throw new TypeError("Unknown encoding: "+g);const b=S(v,g)|0;let T=a(b);const F=T.write(v,g);return F!==b&&(T=T.slice(0,F)),T}function d(v){const g=v.length<0?0:w(v.length)|0,b=a(g);for(let T=0;T<g;T+=1)b[T]=v[T]&255;return b}function p(v){if(Ct(v,Uint8Array)){const g=new Uint8Array(v);return m(g.buffer,g.byteOffset,g.byteLength)}return d(v)}function m(v,g,b){if(g<0||v.byteLength<g)throw new RangeError('"offset" is outside of buffer bounds');if(v.byteLength<g+(b||0))throw new RangeError('"length" is outside of buffer bounds');let T;return g===void 0&&b===void 0?T=new Uint8Array(v):b===void 0?T=new Uint8Array(v,g):T=new Uint8Array(v,g,b),Object.setPrototypeOf(T,s.prototype),T}function y(v){if(s.isBuffer(v)){const g=w(v.length)|0,b=a(g);return b.length===0||v.copy(b,0,0,g),b}if(v.length!==void 0)return typeof v.length!="number"||Tr(v.length)?a(0):d(v);if(v.type==="Buffer"&&Array.isArray(v.data))return d(v.data)}function w(v){if(v>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return v|0}function A(v){return+v!=v&&(v=0),s.alloc(+v)}s.isBuffer=function(g){return g!=null&&g._isBuffer===!0&&g!==s.prototype},s.compare=function(g,b){if(Ct(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),Ct(b,Uint8Array)&&(b=s.from(b,b.offset,b.byteLength)),!s.isBuffer(g)||!s.isBuffer(b))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(g===b)return 0;let T=g.length,F=b.length;for(let O=0,$=Math.min(T,F);O<$;++O)if(g[O]!==b[O]){T=g[O],F=b[O];break}return T<F?-1:F<T?1:0},s.isEncoding=function(g){switch(String(g).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(g,b){if(!Array.isArray(g))throw new TypeError('"list" argument must be an Array of Buffers');if(g.length===0)return s.alloc(0);let T;if(b===void 0)for(b=0,T=0;T<g.length;++T)b+=g[T].length;const F=s.allocUnsafe(b);let O=0;for(T=0;T<g.length;++T){let $=g[T];if(Ct($,Uint8Array))O+$.length>F.length?(s.isBuffer($)||($=s.from($)),$.copy(F,O)):Uint8Array.prototype.set.call(F,$,O);else if(s.isBuffer($))$.copy(F,O);else throw new TypeError('"list" argument must be an Array of Buffers');O+=$.length}return F};function S(v,g){if(s.isBuffer(v))return v.length;if(ArrayBuffer.isView(v)||Ct(v,ArrayBuffer))return v.byteLength;if(typeof v!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof v);const b=v.length,T=arguments.length>2&&arguments[2]===!0;if(!T&&b===0)return 0;let F=!1;for(;;)switch(g){case"ascii":case"latin1":case"binary":return b;case"utf8":case"utf-8":return ce(v).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return b*2;case"hex":return b>>>1;case"base64":return ki(v).length;default:if(F)return T?-1:ce(v).length;g=(""+g).toLowerCase(),F=!0}}s.byteLength=S;function _(v,g,b){let T=!1;if((g===void 0||g<0)&&(g=0),g>this.length||((b===void 0||b>this.length)&&(b=this.length),b<=0)||(b>>>=0,g>>>=0,b<=g))return"";for(v||(v="utf8");;)switch(v){case"hex":return Oe(this,g,b);case"utf8":case"utf-8":return he(this,g,b);case"ascii":return Ae(this,g,b);case"latin1":case"binary":return Le(this,g,b);case"base64":return ie(this,g,b);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return et(this,g,b);default:if(T)throw new TypeError("Unknown encoding: "+v);v=(v+"").toLowerCase(),T=!0}}s.prototype._isBuffer=!0;function k(v,g,b){const T=v[g];v[g]=v[b],v[b]=T}s.prototype.swap16=function(){const g=this.length;if(g%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let b=0;b<g;b+=2)k(this,b,b+1);return this},s.prototype.swap32=function(){const g=this.length;if(g%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let b=0;b<g;b+=4)k(this,b,b+3),k(this,b+1,b+2);return this},s.prototype.swap64=function(){const g=this.length;if(g%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let b=0;b<g;b+=8)k(this,b,b+7),k(this,b+1,b+6),k(this,b+2,b+5),k(this,b+3,b+4);return this},s.prototype.toString=function(){const g=this.length;return g===0?"":arguments.length===0?he(this,0,g):_.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(g){if(!s.isBuffer(g))throw new TypeError("Argument must be a Buffer");return this===g?!0:s.compare(this,g)===0},s.prototype.inspect=function(){let g="";const b=e.INSPECT_MAX_BYTES;return g=this.toString("hex",0,b).replace(/(.{2})/g,"$1 ").trim(),this.length>b&&(g+=" ... "),"<Buffer "+g+">"},r&&(s.prototype[r]=s.prototype.inspect),s.prototype.compare=function(g,b,T,F,O){if(Ct(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),!s.isBuffer(g))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof g);if(b===void 0&&(b=0),T===void 0&&(T=g?g.length:0),F===void 0&&(F=0),O===void 0&&(O=this.length),b<0||T>g.length||F<0||O>this.length)throw new RangeError("out of range index");if(F>=O&&b>=T)return 0;if(F>=O)return-1;if(b>=T)return 1;if(b>>>=0,T>>>=0,F>>>=0,O>>>=0,this===g)return 0;let $=O-F,fe=T-b;const $e=Math.min($,fe),ze=this.slice(F,O),Qe=g.slice(b,T);for(let Te=0;Te<$e;++Te)if(ze[Te]!==Qe[Te]){$=ze[Te],fe=Qe[Te];break}return $<fe?-1:fe<$?1:0};function B(v,g,b,T,F){if(v.length===0)return-1;if(typeof b=="string"?(T=b,b=0):b>2147483647?b=2147483647:b<-2147483648&&(b=-2147483648),b=+b,Tr(b)&&(b=F?0:v.length-1),b<0&&(b=v.length+b),b>=v.length){if(F)return-1;b=v.length-1}else if(b<0)if(F)b=0;else return-1;if(typeof g=="string"&&(g=s.from(g,T)),s.isBuffer(g))return g.length===0?-1:I(v,g,b,T,F);if(typeof g=="number")return g=g&255,typeof Uint8Array.prototype.indexOf=="function"?F?Uint8Array.prototype.indexOf.call(v,g,b):Uint8Array.prototype.lastIndexOf.call(v,g,b):I(v,[g],b,T,F);throw new TypeError("val must be string, number or Buffer")}function I(v,g,b,T,F){let O=1,$=v.length,fe=g.length;if(T!==void 0&&(T=String(T).toLowerCase(),T==="ucs2"||T==="ucs-2"||T==="utf16le"||T==="utf-16le")){if(v.length<2||g.length<2)return-1;O=2,$/=2,fe/=2,b/=2}function $e(Qe,Te){return O===1?Qe[Te]:Qe.readUInt16BE(Te*O)}let ze;if(F){let Qe=-1;for(ze=b;ze<$;ze++)if($e(v,ze)===$e(g,Qe===-1?0:ze-Qe)){if(Qe===-1&&(Qe=ze),ze-Qe+1===fe)return Qe*O}else Qe!==-1&&(ze-=ze-Qe),Qe=-1}else for(b+fe>$&&(b=$-fe),ze=b;ze>=0;ze--){let Qe=!0;for(let Te=0;Te<fe;Te++)if($e(v,ze+Te)!==$e(g,Te)){Qe=!1;break}if(Qe)return ze}return-1}s.prototype.includes=function(g,b,T){return this.indexOf(g,b,T)!==-1},s.prototype.indexOf=function(g,b,T){return B(this,g,b,T,!0)},s.prototype.lastIndexOf=function(g,b,T){return B(this,g,b,T,!1)};function D(v,g,b,T){b=Number(b)||0;const F=v.length-b;T?(T=Number(T),T>F&&(T=F)):T=F;const O=g.length;T>O/2&&(T=O/2);let $;for($=0;$<T;++$){const fe=parseInt(g.substr($*2,2),16);if(Tr(fe))return $;v[b+$]=fe}return $}function M(v,g,b,T){return Ti(ce(g,v.length-b),v,b,T)}function G(v,g,b,T){return Ti(qt(g),v,b,T)}function N(v,g,b,T){return Ti(ki(g),v,b,T)}function ne(v,g,b,T){return Ti(Ci(g,v.length-b),v,b,T)}s.prototype.write=function(g,b,T,F){if(b===void 0)F="utf8",T=this.length,b=0;else if(T===void 0&&typeof b=="string")F=b,T=this.length,b=0;else if(isFinite(b))b=b>>>0,isFinite(T)?(T=T>>>0,F===void 0&&(F="utf8")):(F=T,T=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const O=this.length-b;if((T===void 0||T>O)&&(T=O),g.length>0&&(T<0||b<0)||b>this.length)throw new RangeError("Attempt to write outside buffer bounds");F||(F="utf8");let $=!1;for(;;)switch(F){case"hex":return D(this,g,b,T);case"utf8":case"utf-8":return M(this,g,b,T);case"ascii":case"latin1":case"binary":return G(this,g,b,T);case"base64":return N(this,g,b,T);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ne(this,g,b,T);default:if($)throw new TypeError("Unknown encoding: "+F);F=(""+F).toLowerCase(),$=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function ie(v,g,b){return g===0&&b===v.length?t.fromByteArray(v):t.fromByteArray(v.slice(g,b))}function he(v,g,b){b=Math.min(v.length,b);const T=[];let F=g;for(;F<b;){const O=v[F];let $=null,fe=O>239?4:O>223?3:O>191?2:1;if(F+fe<=b){let $e,ze,Qe,Te;switch(fe){case 1:O<128&&($=O);break;case 2:$e=v[F+1],($e&192)===128&&(Te=(O&31)<<6|$e&63,Te>127&&($=Te));break;case 3:$e=v[F+1],ze=v[F+2],($e&192)===128&&(ze&192)===128&&(Te=(O&15)<<12|($e&63)<<6|ze&63,Te>2047&&(Te<55296||Te>57343)&&($=Te));break;case 4:$e=v[F+1],ze=v[F+2],Qe=v[F+3],($e&192)===128&&(ze&192)===128&&(Qe&192)===128&&(Te=(O&15)<<18|($e&63)<<12|(ze&63)<<6|Qe&63,Te>65535&&Te<1114112&&($=Te))}}$===null?($=65533,fe=1):$>65535&&($-=65536,T.push($>>>10&1023|55296),$=56320|$&1023),T.push($),F+=fe}return Re(T)}const me=4096;function Re(v){const g=v.length;if(g<=me)return String.fromCharCode.apply(String,v);let b="",T=0;for(;T<g;)b+=String.fromCharCode.apply(String,v.slice(T,T+=me));return b}function Ae(v,g,b){let T="";b=Math.min(v.length,b);for(let F=g;F<b;++F)T+=String.fromCharCode(v[F]&127);return T}function Le(v,g,b){let T="";b=Math.min(v.length,b);for(let F=g;F<b;++F)T+=String.fromCharCode(v[F]);return T}function Oe(v,g,b){const T=v.length;(!g||g<0)&&(g=0),(!b||b<0||b>T)&&(b=T);let F="";for(let O=g;O<b;++O)F+=Ii[v[O]];return F}function et(v,g,b){const T=v.slice(g,b);let F="";for(let O=0;O<T.length-1;O+=2)F+=String.fromCharCode(T[O]+T[O+1]*256);return F}s.prototype.slice=function(g,b){const T=this.length;g=~~g,b=b===void 0?T:~~b,g<0?(g+=T,g<0&&(g=0)):g>T&&(g=T),b<0?(b+=T,b<0&&(b=0)):b>T&&(b=T),b<g&&(b=g);const F=this.subarray(g,b);return Object.setPrototypeOf(F,s.prototype),F};function Ce(v,g,b){if(v%1!==0||v<0)throw new RangeError("offset is not uint");if(v+g>b)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(g,b,T){g=g>>>0,b=b>>>0,T||Ce(g,b,this.length);let F=this[g],O=1,$=0;for(;++$<b&&(O*=256);)F+=this[g+$]*O;return F},s.prototype.readUintBE=s.prototype.readUIntBE=function(g,b,T){g=g>>>0,b=b>>>0,T||Ce(g,b,this.length);let F=this[g+--b],O=1;for(;b>0&&(O*=256);)F+=this[g+--b]*O;return F},s.prototype.readUint8=s.prototype.readUInt8=function(g,b){return g=g>>>0,b||Ce(g,1,this.length),this[g]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(g,b){return g=g>>>0,b||Ce(g,2,this.length),this[g]|this[g+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(g,b){return g=g>>>0,b||Ce(g,2,this.length),this[g]<<8|this[g+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(g,b){return g=g>>>0,b||Ce(g,4,this.length),(this[g]|this[g+1]<<8|this[g+2]<<16)+this[g+3]*16777216},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(g,b){return g=g>>>0,b||Ce(g,4,this.length),this[g]*16777216+(this[g+1]<<16|this[g+2]<<8|this[g+3])},s.prototype.readBigUInt64LE=Wt(function(g){g=g>>>0,V(g,"offset");const b=this[g],T=this[g+7];(b===void 0||T===void 0)&&W(g,this.length-8);const F=b+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24,O=this[++g]+this[++g]*2**8+this[++g]*2**16+T*2**24;return BigInt(F)+(BigInt(O)<<BigInt(32))}),s.prototype.readBigUInt64BE=Wt(function(g){g=g>>>0,V(g,"offset");const b=this[g],T=this[g+7];(b===void 0||T===void 0)&&W(g,this.length-8);const F=b*2**24+this[++g]*2**16+this[++g]*2**8+this[++g],O=this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+T;return(BigInt(F)<<BigInt(32))+BigInt(O)}),s.prototype.readIntLE=function(g,b,T){g=g>>>0,b=b>>>0,T||Ce(g,b,this.length);let F=this[g],O=1,$=0;for(;++$<b&&(O*=256);)F+=this[g+$]*O;return O*=128,F>=O&&(F-=Math.pow(2,8*b)),F},s.prototype.readIntBE=function(g,b,T){g=g>>>0,b=b>>>0,T||Ce(g,b,this.length);let F=b,O=1,$=this[g+--F];for(;F>0&&(O*=256);)$+=this[g+--F]*O;return O*=128,$>=O&&($-=Math.pow(2,8*b)),$},s.prototype.readInt8=function(g,b){return g=g>>>0,b||Ce(g,1,this.length),this[g]&128?(255-this[g]+1)*-1:this[g]},s.prototype.readInt16LE=function(g,b){g=g>>>0,b||Ce(g,2,this.length);const T=this[g]|this[g+1]<<8;return T&32768?T|4294901760:T},s.prototype.readInt16BE=function(g,b){g=g>>>0,b||Ce(g,2,this.length);const T=this[g+1]|this[g]<<8;return T&32768?T|4294901760:T},s.prototype.readInt32LE=function(g,b){return g=g>>>0,b||Ce(g,4,this.length),this[g]|this[g+1]<<8|this[g+2]<<16|this[g+3]<<24},s.prototype.readInt32BE=function(g,b){return g=g>>>0,b||Ce(g,4,this.length),this[g]<<24|this[g+1]<<16|this[g+2]<<8|this[g+3]},s.prototype.readBigInt64LE=Wt(function(g){g=g>>>0,V(g,"offset");const b=this[g],T=this[g+7];(b===void 0||T===void 0)&&W(g,this.length-8);const F=this[g+4]+this[g+5]*2**8+this[g+6]*2**16+(T<<24);return(BigInt(F)<<BigInt(32))+BigInt(b+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24)}),s.prototype.readBigInt64BE=Wt(function(g){g=g>>>0,V(g,"offset");const b=this[g],T=this[g+7];(b===void 0||T===void 0)&&W(g,this.length-8);const F=(b<<24)+this[++g]*2**16+this[++g]*2**8+this[++g];return(BigInt(F)<<BigInt(32))+BigInt(this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+T)}),s.prototype.readFloatLE=function(g,b){return g=g>>>0,b||Ce(g,4,this.length),n.read(this,g,!0,23,4)},s.prototype.readFloatBE=function(g,b){return g=g>>>0,b||Ce(g,4,this.length),n.read(this,g,!1,23,4)},s.prototype.readDoubleLE=function(g,b){return g=g>>>0,b||Ce(g,8,this.length),n.read(this,g,!0,52,8)},s.prototype.readDoubleBE=function(g,b){return g=g>>>0,b||Ce(g,8,this.length),n.read(this,g,!1,52,8)};function ke(v,g,b,T,F,O){if(!s.isBuffer(v))throw new TypeError('"buffer" argument must be a Buffer instance');if(g>F||g<O)throw new RangeError('"value" argument is out of bounds');if(b+T>v.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(g,b,T,F){if(g=+g,b=b>>>0,T=T>>>0,!F){const fe=Math.pow(2,8*T)-1;ke(this,g,b,T,fe,0)}let O=1,$=0;for(this[b]=g&255;++$<T&&(O*=256);)this[b+$]=g/O&255;return b+T},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(g,b,T,F){if(g=+g,b=b>>>0,T=T>>>0,!F){const fe=Math.pow(2,8*T)-1;ke(this,g,b,T,fe,0)}let O=T-1,$=1;for(this[b+O]=g&255;--O>=0&&($*=256);)this[b+O]=g/$&255;return b+T},s.prototype.writeUint8=s.prototype.writeUInt8=function(g,b,T){return g=+g,b=b>>>0,T||ke(this,g,b,1,255,0),this[b]=g&255,b+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(g,b,T){return g=+g,b=b>>>0,T||ke(this,g,b,2,65535,0),this[b]=g&255,this[b+1]=g>>>8,b+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(g,b,T){return g=+g,b=b>>>0,T||ke(this,g,b,2,65535,0),this[b]=g>>>8,this[b+1]=g&255,b+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(g,b,T){return g=+g,b=b>>>0,T||ke(this,g,b,4,4294967295,0),this[b+3]=g>>>24,this[b+2]=g>>>16,this[b+1]=g>>>8,this[b]=g&255,b+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(g,b,T){return g=+g,b=b>>>0,T||ke(this,g,b,4,4294967295,0),this[b]=g>>>24,this[b+1]=g>>>16,this[b+2]=g>>>8,this[b+3]=g&255,b+4};function gt(v,g,b,T,F){x(g,T,F,v,b,7);let O=Number(g&BigInt(4294967295));v[b++]=O,O=O>>8,v[b++]=O,O=O>>8,v[b++]=O,O=O>>8,v[b++]=O;let $=Number(g>>BigInt(32)&BigInt(4294967295));return v[b++]=$,$=$>>8,v[b++]=$,$=$>>8,v[b++]=$,$=$>>8,v[b++]=$,b}function $t(v,g,b,T,F){x(g,T,F,v,b,7);let O=Number(g&BigInt(4294967295));v[b+7]=O,O=O>>8,v[b+6]=O,O=O>>8,v[b+5]=O,O=O>>8,v[b+4]=O;let $=Number(g>>BigInt(32)&BigInt(4294967295));return v[b+3]=$,$=$>>8,v[b+2]=$,$=$>>8,v[b+1]=$,$=$>>8,v[b]=$,b+8}s.prototype.writeBigUInt64LE=Wt(function(g,b=0){return gt(this,g,b,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=Wt(function(g,b=0){return $t(this,g,b,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(g,b,T,F){if(g=+g,b=b>>>0,!F){const $e=Math.pow(2,8*T-1);ke(this,g,b,T,$e-1,-$e)}let O=0,$=1,fe=0;for(this[b]=g&255;++O<T&&($*=256);)g<0&&fe===0&&this[b+O-1]!==0&&(fe=1),this[b+O]=(g/$>>0)-fe&255;return b+T},s.prototype.writeIntBE=function(g,b,T,F){if(g=+g,b=b>>>0,!F){const $e=Math.pow(2,8*T-1);ke(this,g,b,T,$e-1,-$e)}let O=T-1,$=1,fe=0;for(this[b+O]=g&255;--O>=0&&($*=256);)g<0&&fe===0&&this[b+O+1]!==0&&(fe=1),this[b+O]=(g/$>>0)-fe&255;return b+T},s.prototype.writeInt8=function(g,b,T){return g=+g,b=b>>>0,T||ke(this,g,b,1,127,-128),g<0&&(g=255+g+1),this[b]=g&255,b+1},s.prototype.writeInt16LE=function(g,b,T){return g=+g,b=b>>>0,T||ke(this,g,b,2,32767,-32768),this[b]=g&255,this[b+1]=g>>>8,b+2},s.prototype.writeInt16BE=function(g,b,T){return g=+g,b=b>>>0,T||ke(this,g,b,2,32767,-32768),this[b]=g>>>8,this[b+1]=g&255,b+2},s.prototype.writeInt32LE=function(g,b,T){return g=+g,b=b>>>0,T||ke(this,g,b,4,2147483647,-2147483648),this[b]=g&255,this[b+1]=g>>>8,this[b+2]=g>>>16,this[b+3]=g>>>24,b+4},s.prototype.writeInt32BE=function(g,b,T){return g=+g,b=b>>>0,T||ke(this,g,b,4,2147483647,-2147483648),g<0&&(g=4294967295+g+1),this[b]=g>>>24,this[b+1]=g>>>16,this[b+2]=g>>>8,this[b+3]=g&255,b+4},s.prototype.writeBigInt64LE=Wt(function(g,b=0){return gt(this,g,b,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=Wt(function(g,b=0){return $t(this,g,b,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function He(v,g,b,T,F,O){if(b+T>v.length)throw new RangeError("Index out of range");if(b<0)throw new RangeError("Index out of range")}function L(v,g,b,T,F){return g=+g,b=b>>>0,F||He(v,g,b,4),n.write(v,g,b,T,23,4),b+4}s.prototype.writeFloatLE=function(g,b,T){return L(this,g,b,!0,T)},s.prototype.writeFloatBE=function(g,b,T){return L(this,g,b,!1,T)};function P(v,g,b,T,F){return g=+g,b=b>>>0,F||He(v,g,b,8),n.write(v,g,b,T,52,8),b+8}s.prototype.writeDoubleLE=function(g,b,T){return P(this,g,b,!0,T)},s.prototype.writeDoubleBE=function(g,b,T){return P(this,g,b,!1,T)},s.prototype.copy=function(g,b,T,F){if(!s.isBuffer(g))throw new TypeError("argument should be a Buffer");if(T||(T=0),!F&&F!==0&&(F=this.length),b>=g.length&&(b=g.length),b||(b=0),F>0&&F<T&&(F=T),F===T||g.length===0||this.length===0)return 0;if(b<0)throw new RangeError("targetStart out of bounds");if(T<0||T>=this.length)throw new RangeError("Index out of range");if(F<0)throw new RangeError("sourceEnd out of bounds");F>this.length&&(F=this.length),g.length-b<F-T&&(F=g.length-b+T);const O=F-T;return this===g&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(b,T,F):Uint8Array.prototype.set.call(g,this.subarray(T,F),b),O},s.prototype.fill=function(g,b,T,F){if(typeof g=="string"){if(typeof b=="string"?(F=b,b=0,T=this.length):typeof T=="string"&&(F=T,T=this.length),F!==void 0&&typeof F!="string")throw new TypeError("encoding must be a string");if(typeof F=="string"&&!s.isEncoding(F))throw new TypeError("Unknown encoding: "+F);if(g.length===1){const $=g.charCodeAt(0);(F==="utf8"&&$<128||F==="latin1")&&(g=$)}}else typeof g=="number"?g=g&255:typeof g=="boolean"&&(g=Number(g));if(b<0||this.length<b||this.length<T)throw new RangeError("Out of range index");if(T<=b)return this;b=b>>>0,T=T===void 0?this.length:T>>>0,g||(g=0);let O;if(typeof g=="number")for(O=b;O<T;++O)this[O]=g;else{const $=s.isBuffer(g)?g:s.from(g,F),fe=$.length;if(fe===0)throw new TypeError('The value "'+g+'" is invalid for argument "value"');for(O=0;O<T-b;++O)this[O+b]=$[O%fe]}return this};const q={};function j(v,g,b){q[v]=class extends b{constructor(){super(),Object.defineProperty(this,"message",{value:g.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${v}]`,this.stack,delete this.name}get code(){return v}set code(F){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:F,writable:!0})}toString(){return`${this.name} [${v}]: ${this.message}`}}}j("ERR_BUFFER_OUT_OF_BOUNDS",function(v){return v?`${v} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),j("ERR_INVALID_ARG_TYPE",function(v,g){return`The "${v}" argument must be of type number. Received type ${typeof g}`},TypeError),j("ERR_OUT_OF_RANGE",function(v,g,b){let T=`The value of "${v}" is out of range.`,F=b;return Number.isInteger(b)&&Math.abs(b)>2**32?F=Y(String(b)):typeof b=="bigint"&&(F=String(b),(b>BigInt(2)**BigInt(32)||b<-(BigInt(2)**BigInt(32)))&&(F=Y(F)),F+="n"),T+=` It must be ${g}. Received ${F}`,T},RangeError);function Y(v){let g="",b=v.length;const T=v[0]==="-"?1:0;for(;b>=T+4;b-=3)g=`_${v.slice(b-3,b)}${g}`;return`${v.slice(0,b)}${g}`}function C(v,g,b){V(g,"offset"),(v[g]===void 0||v[g+b]===void 0)&&W(g,v.length-(b+1))}function x(v,g,b,T,F,O){if(v>b||v<g){const $=typeof g=="bigint"?"n":"";let fe;throw O>3?g===0||g===BigInt(0)?fe=`>= 0${$} and < 2${$} ** ${(O+1)*8}${$}`:fe=`>= -(2${$} ** ${(O+1)*8-1}${$}) and < 2 ** ${(O+1)*8-1}${$}`:fe=`>= ${g}${$} and <= ${b}${$}`,new q.ERR_OUT_OF_RANGE("value",fe,v)}C(T,F,O)}function V(v,g){if(typeof v!="number")throw new q.ERR_INVALID_ARG_TYPE(g,"number",v)}function W(v,g,b){throw Math.floor(v)!==v?(V(v,b),new q.ERR_OUT_OF_RANGE(b||"offset","an integer",v)):g<0?new q.ERR_BUFFER_OUT_OF_BOUNDS:new q.ERR_OUT_OF_RANGE(b||"offset",`>= ${b?1:0} and <= ${g}`,v)}const ue=/[^+/0-9A-Za-z-_]/g;function te(v){if(v=v.split("=")[0],v=v.trim().replace(ue,""),v.length<2)return"";for(;v.length%4!==0;)v=v+"=";return v}function ce(v,g){g=g||1/0;let b;const T=v.length;let F=null;const O=[];for(let $=0;$<T;++$){if(b=v.charCodeAt($),b>55295&&b<57344){if(!F){if(b>56319){(g-=3)>-1&&O.push(239,191,189);continue}else if($+1===T){(g-=3)>-1&&O.push(239,191,189);continue}F=b;continue}if(b<56320){(g-=3)>-1&&O.push(239,191,189),F=b;continue}b=(F-55296<<10|b-56320)+65536}else F&&(g-=3)>-1&&O.push(239,191,189);if(F=null,b<128){if((g-=1)<0)break;O.push(b)}else if(b<2048){if((g-=2)<0)break;O.push(b>>6|192,b&63|128)}else if(b<65536){if((g-=3)<0)break;O.push(b>>12|224,b>>6&63|128,b&63|128)}else if(b<1114112){if((g-=4)<0)break;O.push(b>>18|240,b>>12&63|128,b>>6&63|128,b&63|128)}else throw new Error("Invalid code point")}return O}function qt(v){const g=[];for(let b=0;b<v.length;++b)g.push(v.charCodeAt(b)&255);return g}function Ci(v,g){let b,T,F;const O=[];for(let $=0;$<v.length&&!((g-=2)<0);++$)b=v.charCodeAt($),T=b>>8,F=b%256,O.push(F),O.push(T);return O}function ki(v){return t.toByteArray(te(v))}function Ti(v,g,b,T){let F;for(F=0;F<T&&!(F+b>=g.length||F>=v.length);++F)g[F+b]=v[F];return F}function Ct(v,g){return v instanceof g||v!=null&&v.constructor!=null&&v.constructor.name!=null&&v.constructor.name===g.name}function Tr(v){return v!==v}const Ii=function(){const v="0123456789abcdef",g=new Array(256);for(let b=0;b<16;++b){const T=b*16;for(let F=0;F<16;++F)g[T+F]=v[b]+v[F]}return g}();function Wt(v){return typeof BigInt>"u"?rr:v}function rr(){throw new Error("BigInt not supported")}})(be);const nx=Ee({__proto__:null,default:Sl(be)},[be]),dt={},TM=Object.freeze(Object.defineProperty({__proto__:null,default:dt},Symbol.toStringTag,{value:"Module"})),_p=typeof window<"u"?window:typeof self<"u"?self:{fetch:void 0};class no{async getBufferFromResponse(t){if(typeof t.buffer=="function")return t.buffer();if(typeof t.arrayBuffer=="function"){const n=await t.arrayBuffer();return be.Buffer.from(n)}else throw new TypeError("invalid HTTP response object, has no buffer method, and no arrayBuffer method")}constructor(t,n={}){this.baseOverrides={},this.url=t;const r=n.fetch||_p.fetch&&_p.fetch.bind(_p);if(!r)throw new TypeError("no fetch function supplied, and none found in global environment");n.overrides&&(this.baseOverrides=n.overrides),this.fetchImplementation=r}async fetch(t,n){let r;try{r=await this.fetchImplementation(t,n)}catch(i){if(`${i}`.includes("Failed to fetch"))console.warn(`generic-filehandle: refetching ${t} to attempt to work around chrome CORS header caching bug`),r=await this.fetchImplementation(t,{...n,cache:"reload"});else throw i}return r}async read(t,n=0,r,i=0,o={}){const{headers:a={},signal:s,overrides:u={}}=o;r<1/0?a.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(a.range=`bytes=${i}-`);const l={...this.baseOverrides,...u,headers:{...a,...u.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:s},c=await this.fetch(this.url,l);if(!c.ok)throw new Error(`HTTP ${c.status} ${c.statusText} ${this.url}`);if(c.status===200&&i===0||c.status===206){const f=await this.getBufferFromResponse(c),h=f.copy(t,n,0,Math.min(r,f.length)),d=c.headers.get("content-range"),p=/\/(\d+)$/.exec(d||"");return p&&p[1]&&(this._stat={size:parseInt(p[1],10)}),{bytesRead:h,buffer:t}}throw c.status===200?new Error("${this.url} fetch returned status 200, expected 206"):new Error(`HTTP ${c.status} fetching ${this.url}`)}async readFile(t={}){let n,r;typeof t=="string"?(n=t,r={}):(n=t.encoding,r=t,delete r.encoding);const{headers:i={},signal:o,overrides:a={}}=r,s={headers:i,method:"GET",redirect:"follow",mode:"cors",signal:o,...this.baseOverrides,...a},u=await this.fetch(this.url,s);if(!u)throw new Error("generic-filehandle failed to fetch");if(u.status!==200)throw Object.assign(new Error(`HTTP ${u.status} fetching ${this.url}`),{status:u.status});if(n==="utf8")return u.text();if(n)throw new Error(`unsupported encoding: ${n}`);return this.getBufferFromResponse(u)}async stat(){if(!this._stat){const t=be.Buffer.allocUnsafe(10);if(await this.read(t,0,10,0),!this._stat)throw new Error(`unable to determine size of file at ${this.url}`)}return this._stat}async close(){}}function rx(e){const t=new FileReader;return new Promise((n,r)=>{t.onerror=()=>{t.abort(),r(new Error("problem reading blob"))},t.onabort=()=>{r(new Error("blob reading was aborted"))},t.onload=()=>{t.result&&typeof t.result!="string"?n(t.result):r(new Error("unknown error reading blob"))},t.readAsArrayBuffer(e)})}function IM(e){const t=new FileReader;return new Promise((n,r)=>{t.onerror=()=>{t.abort(),r(new Error("problem reading blob"))},t.onabort=()=>{r(new Error("blob reading was aborted"))},t.onload=()=>{t.result&&typeof t.result=="string"?n(t.result):r(new Error("unknown error reading blob"))},t.readAsText(e)})}class BM{constructor(t){this.blob=t,this.size=t.size}async read(t,n=0,r,i=0){if(!r)return{bytesRead:0,buffer:t};const o=i,a=o+r,s=await rx(this.blob.slice(o,a)),u=be.Buffer.from(s);return{bytesRead:u.copy(t,n),buffer:u}}async readFile(t){let n;if(typeof t=="string"?n=t:n=t&&t.encoding,n==="utf8")return IM(this.blob);if(n)throw new Error(`unsupported encoding: ${n}`);const r=await rx(this.blob);return be.Buffer.from(r)}async stat(){return{size:this.size}}async close(){}}function ix(e,t={}){return new no(e,t)}function DM(e,t,n,r={}){if(n!==void 0)return n;if(e!==void 0)return ix(e,r);if(t!==void 0)return new dt(t,r);throw new Error("no url, path, or filehandle provided, cannot open")}const Cl=Object.freeze(Object.defineProperty({__proto__:null,BlobFile:BM,LocalFile:dt,RemoteFile:no,fromUrl:ix,open:DM},Symbol.toStringTag,{value:"Module"}));var mr={};(function(e){var t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function n(o,a){return Object.prototype.hasOwnProperty.call(o,a)}e.assign=function(o){for(var a=Array.prototype.slice.call(arguments,1);a.length;){var s=a.shift();if(s){if(typeof s!="object")throw new TypeError(s+"must be non-object");for(var u in s)n(s,u)&&(o[u]=s[u])}}return o},e.shrinkBuf=function(o,a){return o.length===a?o:o.subarray?o.subarray(0,a):(o.length=a,o)};var r={arraySet:function(o,a,s,u,l){if(a.subarray&&o.subarray){o.set(a.subarray(s,s+u),l);return}for(var c=0;c<u;c++)o[l+c]=a[s+c]},flattenChunks:function(o){var a,s,u,l,c,f;for(u=0,a=0,s=o.length;a<s;a++)u+=o[a].length;for(f=new Uint8Array(u),l=0,a=0,s=o.length;a<s;a++)c=o[a],f.set(c,l),l+=c.length;return f}},i={arraySet:function(o,a,s,u,l){for(var c=0;c<u;c++)o[l+c]=a[s+c]},flattenChunks:function(o){return[].concat.apply([],o)}};e.setTyped=function(o){o?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,r)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,i))},e.setTyped(t)})(mr);var kl={},Wn={},ha={},RM=mr,FM=4,ox=0,ax=1,MM=2;function da(e){for(var t=e.length;--t>=0;)e[t]=0}var PM=0,sx=1,LM=2,NM=3,OM=258,Sp=29,Tl=256,Il=Tl+1+Sp,pa=30,Cp=19,lx=2*Il+1,ro=15,kp=16,zM=7,Tp=256,ux=16,cx=17,fx=18,Ip=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Df=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],UM=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],hx=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],GM=512,br=new Array((Il+2)*2);da(br);var Bl=new Array(pa*2);da(Bl);var Dl=new Array(GM);da(Dl);var Rl=new Array(OM-NM+1);da(Rl);var Bp=new Array(Sp);da(Bp);var Rf=new Array(pa);da(Rf);function Dp(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}var dx,px,gx;function Rp(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function mx(e){return e<256?Dl[e]:Dl[256+(e>>>7)]}function Fl(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function Gt(e,t,n){e.bi_valid>kp-n?(e.bi_buf|=t<<e.bi_valid&65535,Fl(e,e.bi_buf),e.bi_buf=t>>kp-e.bi_valid,e.bi_valid+=n-kp):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function Zn(e,t,n){Gt(e,n[t*2],n[t*2+1])}function bx(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function HM(e){e.bi_valid===16?(Fl(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function VM(e,t){var n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,o=t.stat_desc.has_stree,a=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,u=t.stat_desc.max_length,l,c,f,h,d,p,m=0;for(h=0;h<=ro;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<lx;l++)c=e.heap[l],h=n[n[c*2+1]*2+1]+1,h>u&&(h=u,m++),n[c*2+1]=h,!(c>r)&&(e.bl_count[h]++,d=0,c>=s&&(d=a[c-s]),p=n[c*2],e.opt_len+=p*(h+d),o&&(e.static_len+=p*(i[c*2+1]+d)));if(m!==0){do{for(h=u-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[u]--,m-=2}while(m>0);for(h=u;h!==0;h--)for(c=e.bl_count[h];c!==0;)f=e.heap[--l],!(f>r)&&(n[f*2+1]!==h&&(e.opt_len+=(h-n[f*2+1])*n[f*2],n[f*2+1]=h),c--)}}function yx(e,t,n){var r=new Array(ro+1),i=0,o,a;for(o=1;o<=ro;o++)r[o]=i=i+n[o-1]<<1;for(a=0;a<=t;a++){var s=e[a*2+1];s!==0&&(e[a*2]=bx(r[s]++,s))}}function jM(){var e,t,n,r,i,o=new Array(ro+1);for(n=0,r=0;r<Sp-1;r++)for(Bp[r]=n,e=0;e<1<<Ip[r];e++)Rl[n++]=r;for(Rl[n-1]=r,i=0,r=0;r<16;r++)for(Rf[r]=i,e=0;e<1<<Df[r];e++)Dl[i++]=r;for(i>>=7;r<pa;r++)for(Rf[r]=i<<7,e=0;e<1<<Df[r]-7;e++)Dl[256+i++]=r;for(t=0;t<=ro;t++)o[t]=0;for(e=0;e<=143;)br[e*2+1]=8,e++,o[8]++;for(;e<=255;)br[e*2+1]=9,e++,o[9]++;for(;e<=279;)br[e*2+1]=7,e++,o[7]++;for(;e<=287;)br[e*2+1]=8,e++,o[8]++;for(yx(br,Il+1,o),e=0;e<pa;e++)Bl[e*2+1]=5,Bl[e*2]=bx(e,5);dx=new Dp(br,Ip,Tl+1,Il,ro),px=new Dp(Bl,Df,0,pa,ro),gx=new Dp(new Array(0),UM,0,Cp,zM)}function wx(e){var t;for(t=0;t<Il;t++)e.dyn_ltree[t*2]=0;for(t=0;t<pa;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Cp;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Tp*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function vx(e){e.bi_valid>8?Fl(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function $M(e,t,n,r){vx(e),r&&(Fl(e,n),Fl(e,~n)),RM.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function xx(e,t,n,r){var i=t*2,o=n*2;return e[i]<e[o]||e[i]===e[o]&&r[t]<=r[n]}function Fp(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&xx(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!xx(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function Ax(e,t,n){var r,i,o=0,a,s;if(e.last_lit!==0)do r=e.pending_buf[e.d_buf+o*2]<<8|e.pending_buf[e.d_buf+o*2+1],i=e.pending_buf[e.l_buf+o],o++,r===0?Zn(e,i,t):(a=Rl[i],Zn(e,a+Tl+1,t),s=Ip[a],s!==0&&(i-=Bp[a],Gt(e,i,s)),r--,a=mx(r),Zn(e,a,n),s=Df[a],s!==0&&(r-=Rf[a],Gt(e,r,s)));while(o<e.last_lit);Zn(e,Tp,t)}function Mp(e,t){var n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,o=t.stat_desc.elems,a,s,u=-1,l;for(e.heap_len=0,e.heap_max=lx,a=0;a<o;a++)n[a*2]!==0?(e.heap[++e.heap_len]=u=a,e.depth[a]=0):n[a*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=u,a=e.heap_len>>1;a>=1;a--)Fp(e,n,a);l=o;do a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Fp(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=s,n[l*2]=n[a*2]+n[s*2],e.depth[l]=(e.depth[a]>=e.depth[s]?e.depth[a]:e.depth[s])+1,n[a*2+1]=n[s*2+1]=l,e.heap[1]=l++,Fp(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],VM(e,t),yx(n,u,e.bl_count)}function Ex(e,t,n){var r,i=-1,o,a=t[0*2+1],s=0,u=7,l=4;for(a===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)o=a,a=t[(r+1)*2+1],!(++s<u&&o===a)&&(s<l?e.bl_tree[o*2]+=s:o!==0?(o!==i&&e.bl_tree[o*2]++,e.bl_tree[ux*2]++):s<=10?e.bl_tree[cx*2]++:e.bl_tree[fx*2]++,s=0,i=o,a===0?(u=138,l=3):o===a?(u=6,l=3):(u=7,l=4))}function _x(e,t,n){var r,i=-1,o,a=t[0*2+1],s=0,u=7,l=4;for(a===0&&(u=138,l=3),r=0;r<=n;r++)if(o=a,a=t[(r+1)*2+1],!(++s<u&&o===a)){if(s<l)do Zn(e,o,e.bl_tree);while(--s!==0);else o!==0?(o!==i&&(Zn(e,o,e.bl_tree),s--),Zn(e,ux,e.bl_tree),Gt(e,s-3,2)):s<=10?(Zn(e,cx,e.bl_tree),Gt(e,s-3,3)):(Zn(e,fx,e.bl_tree),Gt(e,s-11,7));s=0,i=o,a===0?(u=138,l=3):o===a?(u=6,l=3):(u=7,l=4)}}function qM(e){var t;for(Ex(e,e.dyn_ltree,e.l_desc.max_code),Ex(e,e.dyn_dtree,e.d_desc.max_code),Mp(e,e.bl_desc),t=Cp-1;t>=3&&e.bl_tree[hx[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function WM(e,t,n,r){var i;for(Gt(e,t-257,5),Gt(e,n-1,5),Gt(e,r-4,4),i=0;i<r;i++)Gt(e,e.bl_tree[hx[i]*2+1],3);_x(e,e.dyn_ltree,t-1),_x(e,e.dyn_dtree,n-1)}function ZM(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return ox;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return ax;for(n=32;n<Tl;n++)if(e.dyn_ltree[n*2]!==0)return ax;return ox}var Sx=!1;function YM(e){Sx||(jM(),Sx=!0),e.l_desc=new Rp(e.dyn_ltree,dx),e.d_desc=new Rp(e.dyn_dtree,px),e.bl_desc=new Rp(e.bl_tree,gx),e.bi_buf=0,e.bi_valid=0,wx(e)}function Cx(e,t,n,r){Gt(e,(PM<<1)+(r?1:0),3),$M(e,t,n,!0)}function QM(e){Gt(e,sx<<1,3),Zn(e,Tp,br),HM(e)}function XM(e,t,n,r){var i,o,a=0;e.level>0?(e.strm.data_type===MM&&(e.strm.data_type=ZM(e)),Mp(e,e.l_desc),Mp(e,e.d_desc),a=qM(e),i=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=i&&(i=o)):i=o=n+5,n+4<=i&&t!==-1?Cx(e,t,n,r):e.strategy===FM||o===i?(Gt(e,(sx<<1)+(r?1:0),3),Ax(e,br,Bl)):(Gt(e,(LM<<1)+(r?1:0),3),WM(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),Ax(e,e.dyn_ltree,e.dyn_dtree)),wx(e),r&&vx(e)}function KM(e,t,n){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=n&255,e.last_lit++,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(Rl[n]+Tl+1)*2]++,e.dyn_dtree[mx(t)*2]++),e.last_lit===e.lit_bufsize-1}ha._tr_init=YM,ha._tr_stored_block=Cx,ha._tr_flush_block=XM,ha._tr_tally=KM,ha._tr_align=QM;function JM(e,t,n,r){for(var i=e&65535|0,o=e>>>16&65535|0,a=0;n!==0;){a=n>2e3?2e3:n,n-=a;do i=i+t[r++]|0,o=o+i|0;while(--a);i%=65521,o%=65521}return i|o<<16|0}var kx=JM;function eP(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t}var tP=eP();function nP(e,t,n,r){var i=tP,o=r+n;e^=-1;for(var a=r;a<o;a++)e=e>>>8^i[(e^t[a])&255];return e^-1}var Tx=nP,Pp={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"},Rt=mr,ln=ha,Ix=kx,ai=Tx,rP=Pp,io=0,iP=1,oP=3,si=4,Bx=5,Yn=0,Dx=1,un=-2,aP=-3,Lp=-5,sP=-1,lP=1,Ff=2,uP=3,cP=4,fP=0,hP=2,Mf=8,dP=9,pP=15,gP=8,mP=29,bP=256,Np=bP+1+mP,yP=30,wP=19,vP=2*Np+1,xP=15,pe=3,li=258,Cn=li+pe+1,AP=32,Pf=42,Op=69,Lf=73,Nf=91,Of=103,oo=113,Ml=666,st=1,Pl=2,ao=3,ga=4,EP=3;function ui(e,t){return e.msg=rP[t],t}function Rx(e){return(e<<1)-(e>4?9:0)}function ci(e){for(var t=e.length;--t>=0;)e[t]=0}function fi(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(Rt.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))}function wt(e,t){ln._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,fi(e.strm)}function xe(e,t){e.pending_buf[e.pending++]=t}function Ll(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function _P(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,Rt.arraySet(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=Ix(e.adler,t,i,n):e.state.wrap===2&&(e.adler=ai(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function Fx(e,t){var n=e.max_chain_length,r=e.strstart,i,o,a=e.prev_length,s=e.nice_match,u=e.strstart>e.w_size-Cn?e.strstart-(e.w_size-Cn):0,l=e.window,c=e.w_mask,f=e.prev,h=e.strstart+li,d=l[r+a-1],p=l[r+a];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(l[i+a]!==p||l[i+a-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(o=li-(h-r),r=h-li,o>a){if(e.match_start=t,a=o,o>=s)break;d=l[r+a-1],p=l[r+a]}}while((t=f[t&c])>u&&--n!==0);return a<=e.lookahead?a:e.lookahead}function so(e){var t=e.w_size,n,r,i,o,a;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Cn)){Rt.arraySet(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,r=e.hash_size,n=r;do i=e.head[--n],e.head[n]=i>=t?i-t:0;while(--r);r=t,n=r;do i=e.prev[--n],e.prev[n]=i>=t?i-t:0;while(--r);o+=t}if(e.strm.avail_in===0)break;if(r=_P(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=r,e.lookahead+e.insert>=pe)for(a=e.strstart-e.insert,e.ins_h=e.window[a],e.ins_h=(e.ins_h<<e.hash_shift^e.window[a+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[a+pe-1])&e.hash_mask,e.prev[a&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=a,a++,e.insert--,!(e.lookahead+e.insert<pe)););}while(e.lookahead<Cn&&e.strm.avail_in!==0)}function SP(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(so(e),e.lookahead===0&&t===io)return st;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((e.strstart===0||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,wt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-Cn&&(wt(e,!1),e.strm.avail_out===0))return st}return e.insert=0,t===si?(wt(e,!0),e.strm.avail_out===0?ao:ga):(e.strstart>e.block_start&&(wt(e,!1),e.strm.avail_out===0),st)}function zp(e,t){for(var n,r;;){if(e.lookahead<Cn){if(so(e),e.lookahead<Cn&&t===io)return st;if(e.lookahead===0)break}if(n=0,e.lookahead>=pe&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+pe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-Cn&&(e.match_length=Fx(e,n)),e.match_length>=pe)if(r=ln._tr_tally(e,e.strstart-e.match_start,e.match_length-pe),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=pe){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+pe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else r=ln._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(wt(e,!1),e.strm.avail_out===0))return st}return e.insert=e.strstart<pe-1?e.strstart:pe-1,t===si?(wt(e,!0),e.strm.avail_out===0?ao:ga):e.last_lit&&(wt(e,!1),e.strm.avail_out===0)?st:Pl}function ma(e,t){for(var n,r,i;;){if(e.lookahead<Cn){if(so(e),e.lookahead<Cn&&t===io)return st;if(e.lookahead===0)break}if(n=0,e.lookahead>=pe&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+pe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=pe-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Cn&&(e.match_length=Fx(e,n),e.match_length<=5&&(e.strategy===lP||e.match_length===pe&&e.strstart-e.match_start>4096)&&(e.match_length=pe-1)),e.prev_length>=pe&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-pe,r=ln._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-pe),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+pe-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=pe-1,e.strstart++,r&&(wt(e,!1),e.strm.avail_out===0))return st}else if(e.match_available){if(r=ln._tr_tally(e,0,e.window[e.strstart-1]),r&&wt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return st}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=ln._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<pe-1?e.strstart:pe-1,t===si?(wt(e,!0),e.strm.avail_out===0?ao:ga):e.last_lit&&(wt(e,!1),e.strm.avail_out===0)?st:Pl}function CP(e,t){for(var n,r,i,o,a=e.window;;){if(e.lookahead<=li){if(so(e),e.lookahead<=li&&t===io)return st;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=pe&&e.strstart>0&&(i=e.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){o=e.strstart+li;do;while(r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&i<o);e.match_length=li-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=pe?(n=ln._tr_tally(e,1,e.match_length-pe),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=ln._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(wt(e,!1),e.strm.avail_out===0))return st}return e.insert=0,t===si?(wt(e,!0),e.strm.avail_out===0?ao:ga):e.last_lit&&(wt(e,!1),e.strm.avail_out===0)?st:Pl}function kP(e,t){for(var n;;){if(e.lookahead===0&&(so(e),e.lookahead===0)){if(t===io)return st;break}if(e.match_length=0,n=ln._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(wt(e,!1),e.strm.avail_out===0))return st}return e.insert=0,t===si?(wt(e,!0),e.strm.avail_out===0?ao:ga):e.last_lit&&(wt(e,!1),e.strm.avail_out===0)?st:Pl}function Qn(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}var ba;ba=[new Qn(0,0,0,0,SP),new Qn(4,4,8,4,zp),new Qn(4,5,16,8,zp),new Qn(4,6,32,32,zp),new Qn(4,4,16,16,ma),new Qn(8,16,32,32,ma),new Qn(8,16,128,128,ma),new Qn(8,32,128,256,ma),new Qn(32,128,258,1024,ma),new Qn(32,258,258,4096,ma)];function TP(e){e.window_size=2*e.w_size,ci(e.head),e.max_lazy_match=ba[e.level].max_lazy,e.good_match=ba[e.level].good_length,e.nice_match=ba[e.level].nice_length,e.max_chain_length=ba[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=pe-1,e.match_available=0,e.ins_h=0}function IP(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Mf,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Rt.Buf16(vP*2),this.dyn_dtree=new Rt.Buf16((2*yP+1)*2),this.bl_tree=new Rt.Buf16((2*wP+1)*2),ci(this.dyn_ltree),ci(this.dyn_dtree),ci(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Rt.Buf16(xP+1),this.heap=new Rt.Buf16(2*Np+1),ci(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Rt.Buf16(2*Np+1),ci(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function Mx(e){var t;return!e||!e.state?ui(e,un):(e.total_in=e.total_out=0,e.data_type=hP,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Pf:oo,e.adler=t.wrap===2?0:1,t.last_flush=io,ln._tr_init(t),Yn)}function Px(e){var t=Mx(e);return t===Yn&&TP(e.state),t}function BP(e,t){return!e||!e.state||e.state.wrap!==2?un:(e.state.gzhead=t,Yn)}function Lx(e,t,n,r,i,o){if(!e)return un;var a=1;if(t===sP&&(t=6),r<0?(a=0,r=-r):r>15&&(a=2,r-=16),i<1||i>dP||n!==Mf||r<8||r>15||t<0||t>9||o<0||o>cP)return ui(e,un);r===8&&(r=9);var s=new IP;return e.state=s,s.strm=e,s.wrap=a,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+pe-1)/pe),s.window=new Rt.Buf8(s.w_size*2),s.head=new Rt.Buf16(s.hash_size),s.prev=new Rt.Buf16(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Rt.Buf8(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=(1+2)*s.lit_bufsize,s.level=t,s.strategy=o,s.method=n,Px(e)}function DP(e,t){return Lx(e,t,Mf,pP,gP,fP)}function RP(e,t){var n,r,i,o;if(!e||!e.state||t>Bx||t<0)return e?ui(e,un):un;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===Ml&&t!==si)return ui(e,e.avail_out===0?Lp:un);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===Pf)if(r.wrap===2)e.adler=0,xe(r,31),xe(r,139),xe(r,8),r.gzhead?(xe(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),xe(r,r.gzhead.time&255),xe(r,r.gzhead.time>>8&255),xe(r,r.gzhead.time>>16&255),xe(r,r.gzhead.time>>24&255),xe(r,r.level===9?2:r.strategy>=Ff||r.level<2?4:0),xe(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(xe(r,r.gzhead.extra.length&255),xe(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=ai(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=Op):(xe(r,0),xe(r,0),xe(r,0),xe(r,0),xe(r,0),xe(r,r.level===9?2:r.strategy>=Ff||r.level<2?4:0),xe(r,EP),r.status=oo);else{var a=Mf+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=Ff||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,a|=s<<6,r.strstart!==0&&(a|=AP),a+=31-a%31,r.status=oo,Ll(r,a),r.strstart!==0&&(Ll(r,e.adler>>>16),Ll(r,e.adler&65535)),e.adler=1}if(r.status===Op)if(r.gzhead.extra){for(i=r.pending;r.gzindex<(r.gzhead.extra.length&65535)&&!(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=ai(e.adler,r.pending_buf,r.pending-i,i)),fi(e),i=r.pending,r.pending===r.pending_buf_size));)xe(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=ai(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=Lf)}else r.status=Lf;if(r.status===Lf)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=ai(e.adler,r.pending_buf,r.pending-i,i)),fi(e),i=r.pending,r.pending===r.pending_buf_size)){o=1;break}r.gzindex<r.gzhead.name.length?o=r.gzhead.name.charCodeAt(r.gzindex++)&255:o=0,xe(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=ai(e.adler,r.pending_buf,r.pending-i,i)),o===0&&(r.gzindex=0,r.status=Nf)}else r.status=Nf;if(r.status===Nf)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=ai(e.adler,r.pending_buf,r.pending-i,i)),fi(e),i=r.pending,r.pending===r.pending_buf_size)){o=1;break}r.gzindex<r.gzhead.comment.length?o=r.gzhead.comment.charCodeAt(r.gzindex++)&255:o=0,xe(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=ai(e.adler,r.pending_buf,r.pending-i,i)),o===0&&(r.status=Of)}else r.status=Of;if(r.status===Of&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&fi(e),r.pending+2<=r.pending_buf_size&&(xe(r,e.adler&255),xe(r,e.adler>>8&255),e.adler=0,r.status=oo)):r.status=oo),r.pending!==0){if(fi(e),e.avail_out===0)return r.last_flush=-1,Yn}else if(e.avail_in===0&&Rx(t)<=Rx(n)&&t!==si)return ui(e,Lp);if(r.status===Ml&&e.avail_in!==0)return ui(e,Lp);if(e.avail_in!==0||r.lookahead!==0||t!==io&&r.status!==Ml){var u=r.strategy===Ff?kP(r,t):r.strategy===uP?CP(r,t):ba[r.level].func(r,t);if((u===ao||u===ga)&&(r.status=Ml),u===st||u===ao)return e.avail_out===0&&(r.last_flush=-1),Yn;if(u===Pl&&(t===iP?ln._tr_align(r):t!==Bx&&(ln._tr_stored_block(r,0,0,!1),t===oP&&(ci(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),fi(e),e.avail_out===0))return r.last_flush=-1,Yn}return t!==si?Yn:r.wrap<=0?Dx:(r.wrap===2?(xe(r,e.adler&255),xe(r,e.adler>>8&255),xe(r,e.adler>>16&255),xe(r,e.adler>>24&255),xe(r,e.total_in&255),xe(r,e.total_in>>8&255),xe(r,e.total_in>>16&255),xe(r,e.total_in>>24&255)):(Ll(r,e.adler>>>16),Ll(r,e.adler&65535)),fi(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?Yn:Dx)}function FP(e){var t;return!e||!e.state?un:(t=e.state.status,t!==Pf&&t!==Op&&t!==Lf&&t!==Nf&&t!==Of&&t!==oo&&t!==Ml?ui(e,un):(e.state=null,t===oo?ui(e,aP):Yn))}function MP(e,t){var n=t.length,r,i,o,a,s,u,l,c;if(!e||!e.state||(r=e.state,a=r.wrap,a===2||a===1&&r.status!==Pf||r.lookahead))return un;for(a===1&&(e.adler=Ix(e.adler,t,n,0)),r.wrap=0,n>=r.w_size&&(a===0&&(ci(r.head),r.strstart=0,r.block_start=0,r.insert=0),c=new Rt.Buf8(r.w_size),Rt.arraySet(c,t,n-r.w_size,r.w_size,0),t=c,n=r.w_size),s=e.avail_in,u=e.next_in,l=e.input,e.avail_in=n,e.next_in=0,e.input=t,so(r);r.lookahead>=pe;){i=r.strstart,o=r.lookahead-(pe-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+pe-1])&r.hash_mask,r.prev[i&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=i,i++;while(--o);r.strstart=i,r.lookahead=pe-1,so(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=pe-1,r.match_available=0,e.next_in=u,e.input=l,e.avail_in=s,r.wrap=a,Yn}Wn.deflateInit=DP,Wn.deflateInit2=Lx,Wn.deflateReset=Px,Wn.deflateResetKeep=Mx,Wn.deflateSetHeader=BP,Wn.deflate=RP,Wn.deflateEnd=FP,Wn.deflateSetDictionary=MP,Wn.deflateInfo="pako deflate (from Nodeca project)";var lo={},zf=mr,Nx=!0,Ox=!0;try{String.fromCharCode.apply(null,[0])}catch{Nx=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Ox=!1}for(var Nl=new zf.Buf8(256),hi=0;hi<256;hi++)Nl[hi]=hi>=252?6:hi>=248?5:hi>=240?4:hi>=224?3:hi>=192?2:1;Nl[254]=Nl[254]=1,lo.string2buf=function(e){var t,n,r,i,o,a=e.length,s=0;for(i=0;i<a;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<a&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new zf.Buf8(s),o=0,i=0;o<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<a&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[o++]=n:n<2048?(t[o++]=192|n>>>6,t[o++]=128|n&63):n<65536?(t[o++]=224|n>>>12,t[o++]=128|n>>>6&63,t[o++]=128|n&63):(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63,t[o++]=128|n>>>6&63,t[o++]=128|n&63);return t};function zx(e,t){if(t<65534&&(e.subarray&&Ox||!e.subarray&&Nx))return String.fromCharCode.apply(null,zf.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}lo.buf2binstring=function(e){return zx(e,e.length)},lo.binstring2buf=function(e){for(var t=new zf.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},lo.buf2string=function(e,t){var n,r,i,o,a=t||e.length,s=new Array(a*2);for(r=0,n=0;n<a;){if(i=e[n++],i<128){s[r++]=i;continue}if(o=Nl[i],o>4){s[r++]=65533,n+=o-1;continue}for(i&=o===2?31:o===3?15:7;o>1&&n<a;)i=i<<6|e[n++]&63,o--;if(o>1){s[r++]=65533;continue}i<65536?s[r++]=i:(i-=65536,s[r++]=55296|i>>10&1023,s[r++]=56320|i&1023)}return zx(s,r)},lo.utf8border=function(e,t){var n;for(t=t||e.length,t>e.length&&(t=e.length),n=t-1;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+Nl[e[n]]>t?n:t};function PP(){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}var Ux=PP,Ol=Wn,zl=mr,Up=lo,Gp=Pp,LP=Ux,Gx=Object.prototype.toString,NP=0,Hp=4,ya=0,Hx=1,Vx=2,OP=-1,zP=0,UP=8;function uo(e){if(!(this instanceof uo))return new uo(e);this.options=zl.assign({level:OP,method:UP,chunkSize:16384,windowBits:15,memLevel:8,strategy:zP,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new LP,this.strm.avail_out=0;var n=Ol.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==ya)throw new Error(Gp[n]);if(t.header&&Ol.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(typeof t.dictionary=="string"?r=Up.string2buf(t.dictionary):Gx.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=Ol.deflateSetDictionary(this.strm,r),n!==ya)throw new Error(Gp[n]);this._dict_set=!0}}uo.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i,o;if(this.ended)return!1;o=t===~~t?t:t===!0?Hp:NP,typeof e=="string"?n.input=Up.string2buf(e):Gx.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new zl.Buf8(r),n.next_out=0,n.avail_out=r),i=Ol.deflate(n,o),i!==Hx&&i!==ya)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(o===Hp||o===Vx))&&(this.options.to==="string"?this.onData(Up.buf2binstring(zl.shrinkBuf(n.output,n.next_out))):this.onData(zl.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==Hx);return o===Hp?(i=Ol.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===ya):(o===Vx&&(this.onEnd(ya),n.avail_out=0),!0)},uo.prototype.onData=function(e){this.chunks.push(e)},uo.prototype.onEnd=function(e){e===ya&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=zl.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Vp(e,t){var n=new uo(t);if(n.push(e,!0),n.err)throw n.msg||Gp[n.err];return n.result}function GP(e,t){return t=t||{},t.raw=!0,Vp(e,t)}function HP(e,t){return t=t||{},t.gzip=!0,Vp(e,t)}kl.Deflate=uo,kl.deflate=Vp,kl.deflateRaw=GP,kl.gzip=HP;var Ul={},kn={},Uf=30,VP=12,jP=function(t,n){var r,i,o,a,s,u,l,c,f,h,d,p,m,y,w,A,S,_,k,B,I,D,M,G,N;r=t.state,i=t.next_in,G=t.input,o=i+(t.avail_in-5),a=t.next_out,N=t.output,s=a-(n-t.avail_out),u=a+(t.avail_out-257),l=r.dmax,c=r.wsize,f=r.whave,h=r.wnext,d=r.window,p=r.hold,m=r.bits,y=r.lencode,w=r.distcode,A=(1<<r.lenbits)-1,S=(1<<r.distbits)-1;e:do{m<15&&(p+=G[i++]<<m,m+=8,p+=G[i++]<<m,m+=8),_=y[p&A];t:for(;;){if(k=_>>>24,p>>>=k,m-=k,k=_>>>16&255,k===0)N[a++]=_&65535;else if(k&16){B=_&65535,k&=15,k&&(m<k&&(p+=G[i++]<<m,m+=8),B+=p&(1<<k)-1,p>>>=k,m-=k),m<15&&(p+=G[i++]<<m,m+=8,p+=G[i++]<<m,m+=8),_=w[p&S];n:for(;;){if(k=_>>>24,p>>>=k,m-=k,k=_>>>16&255,k&16){if(I=_&65535,k&=15,m<k&&(p+=G[i++]<<m,m+=8,m<k&&(p+=G[i++]<<m,m+=8)),I+=p&(1<<k)-1,I>l){t.msg="invalid distance too far back",r.mode=Uf;break e}if(p>>>=k,m-=k,k=a-s,I>k){if(k=I-k,k>f&&r.sane){t.msg="invalid distance too far back",r.mode=Uf;break e}if(D=0,M=d,h===0){if(D+=c-k,k<B){B-=k;do N[a++]=d[D++];while(--k);D=a-I,M=N}}else if(h<k){if(D+=c+h-k,k-=h,k<B){B-=k;do N[a++]=d[D++];while(--k);if(D=0,h<B){k=h,B-=k;do N[a++]=d[D++];while(--k);D=a-I,M=N}}}else if(D+=h-k,k<B){B-=k;do N[a++]=d[D++];while(--k);D=a-I,M=N}for(;B>2;)N[a++]=M[D++],N[a++]=M[D++],N[a++]=M[D++],B-=3;B&&(N[a++]=M[D++],B>1&&(N[a++]=M[D++]))}else{D=a-I;do N[a++]=N[D++],N[a++]=N[D++],N[a++]=N[D++],B-=3;while(B>2);B&&(N[a++]=N[D++],B>1&&(N[a++]=N[D++]))}}else if(k&64){t.msg="invalid distance code",r.mode=Uf;break e}else{_=w[(_&65535)+(p&(1<<k)-1)];continue n}break}}else if(k&64)if(k&32){r.mode=VP;break e}else{t.msg="invalid literal/length code",r.mode=Uf;break e}else{_=y[(_&65535)+(p&(1<<k)-1)];continue t}break}}while(i<o&&a<u);B=m>>3,i-=B,m-=B<<3,p&=(1<<m)-1,t.next_in=i,t.next_out=a,t.avail_in=i<o?5+(o-i):5-(i-o),t.avail_out=a<u?257+(u-a):257-(a-u),r.hold=p,r.bits=m},jx=mr,wa=15,$x=852,qx=592,Wx=0,jp=1,Zx=2,$P=[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],qP=[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],WP=[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],ZP=[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],YP=function(t,n,r,i,o,a,s,u){var l=u.bits,c=0,f=0,h=0,d=0,p=0,m=0,y=0,w=0,A=0,S=0,_,k,B,I,D,M=null,G=0,N,ne=new jx.Buf16(wa+1),ie=new jx.Buf16(wa+1),he=null,me=0,Re,Ae,Le;for(c=0;c<=wa;c++)ne[c]=0;for(f=0;f<i;f++)ne[n[r+f]]++;for(p=l,d=wa;d>=1&&ne[d]===0;d--);if(p>d&&(p=d),d===0)return o[a++]=1<<24|64<<16|0,o[a++]=1<<24|64<<16|0,u.bits=1,0;for(h=1;h<d&&ne[h]===0;h++);for(p<h&&(p=h),w=1,c=1;c<=wa;c++)if(w<<=1,w-=ne[c],w<0)return-1;if(w>0&&(t===Wx||d!==1))return-1;for(ie[1]=0,c=1;c<wa;c++)ie[c+1]=ie[c]+ne[c];for(f=0;f<i;f++)n[r+f]!==0&&(s[ie[n[r+f]]++]=f);if(t===Wx?(M=he=s,N=19):t===jp?(M=$P,G-=257,he=qP,me-=257,N=256):(M=WP,he=ZP,N=-1),S=0,f=0,c=h,D=a,m=p,y=0,B=-1,A=1<<p,I=A-1,t===jp&&A>$x||t===Zx&&A>qx)return 1;for(;;){Re=c-y,s[f]<N?(Ae=0,Le=s[f]):s[f]>N?(Ae=he[me+s[f]],Le=M[G+s[f]]):(Ae=32+64,Le=0),_=1<<c-y,k=1<<m,h=k;do k-=_,o[D+(S>>y)+k]=Re<<24|Ae<<16|Le|0;while(k!==0);for(_=1<<c-1;S&_;)_>>=1;if(_!==0?(S&=_-1,S+=_):S=0,f++,--ne[c]===0){if(c===d)break;c=n[r+s[f]]}if(c>p&&(S&I)!==B){for(y===0&&(y=p),D+=h,m=c-y,w=1<<m;m+y<d&&(w-=ne[m+y],!(w<=0));)m++,w<<=1;if(A+=1<<m,t===jp&&A>$x||t===Zx&&A>qx)return 1;B=S&I,o[B]=p<<24|m<<16|D-a|0}}return S!==0&&(o[D+S]=c-y<<24|64<<16|0),u.bits=p,0},Xt=mr,$p=kx,Xn=Tx,QP=jP,Gl=YP,XP=0,Yx=1,Qx=2,Xx=4,KP=5,Gf=6,co=0,JP=1,eL=2,cn=-2,Kx=-3,Jx=-4,tL=-5,eA=8,tA=1,nA=2,rA=3,iA=4,oA=5,aA=6,sA=7,lA=8,uA=9,cA=10,Hf=11,yr=12,qp=13,fA=14,Wp=15,hA=16,dA=17,pA=18,gA=19,Vf=20,jf=21,mA=22,bA=23,yA=24,wA=25,vA=26,Zp=27,xA=28,AA=29,Ze=30,EA=31,nL=32,rL=852,iL=592,oL=15,aL=oL;function _A(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function sL(){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 Xt.Buf16(320),this.work=new Xt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function SA(e){var t;return!e||!e.state?cn:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=tA,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Xt.Buf32(rL),t.distcode=t.distdyn=new Xt.Buf32(iL),t.sane=1,t.back=-1,co)}function CA(e){var t;return!e||!e.state?cn:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,SA(e))}function kA(e,t){var n,r;return!e||!e.state||(r=e.state,t<0?(n=0,t=-t):(n=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?cn:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,CA(e))}function TA(e,t){var n,r;return e?(r=new sL,e.state=r,r.window=null,n=kA(e,t),n!==co&&(e.state=null),n):cn}function lL(e){return TA(e,aL)}var IA=!0,Yp,Qp;function uL(e){if(IA){var t;for(Yp=new Xt.Buf32(512),Qp=new Xt.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Gl(Yx,e.lens,0,288,Yp,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Gl(Qx,e.lens,0,32,Qp,0,e.work,{bits:5}),IA=!1}e.lencode=Yp,e.lenbits=9,e.distcode=Qp,e.distbits=5}function BA(e,t,n,r){var i,o=e.state;return o.window===null&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Xt.Buf8(o.wsize)),r>=o.wsize?(Xt.arraySet(o.window,t,n-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),Xt.arraySet(o.window,t,n-r,i,o.wnext),r-=i,r?(Xt.arraySet(o.window,t,n-r,r,0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=i))),0}function cL(e,t){var n,r,i,o,a,s,u,l,c,f,h,d,p,m,y=0,w,A,S,_,k,B,I,D,M=new Xt.Buf8(4),G,N,ne=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return cn;n=e.state,n.mode===yr&&(n.mode=qp),a=e.next_out,i=e.output,u=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,l=n.hold,c=n.bits,f=s,h=u,D=co;e:for(;;)switch(n.mode){case tA:if(n.wrap===0){n.mode=qp;break}for(;c<16;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if(n.wrap&2&&l===35615){n.check=0,M[0]=l&255,M[1]=l>>>8&255,n.check=Xn(n.check,M,2,0),l=0,c=0,n.mode=nA;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",n.mode=Ze;break}if((l&15)!==eA){e.msg="unknown compression method",n.mode=Ze;break}if(l>>>=4,c-=4,I=(l&15)+8,n.wbits===0)n.wbits=I;else if(I>n.wbits){e.msg="invalid window size",n.mode=Ze;break}n.dmax=1<<I,e.adler=n.check=1,n.mode=l&512?cA:yr,l=0,c=0;break;case nA:for(;c<16;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if(n.flags=l,(n.flags&255)!==eA){e.msg="unknown compression method",n.mode=Ze;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=Ze;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=Xn(n.check,M,2,0)),l=0,c=0,n.mode=rA;case rA:for(;c<32;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}n.head&&(n.head.time=l),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,M[2]=l>>>16&255,M[3]=l>>>24&255,n.check=Xn(n.check,M,4,0)),l=0,c=0,n.mode=iA;case iA:for(;c<16;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=Xn(n.check,M,2,0)),l=0,c=0,n.mode=oA;case oA:if(n.flags&1024){for(;c<16;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=Xn(n.check,M,2,0)),l=0,c=0}else n.head&&(n.head.extra=null);n.mode=aA;case aA:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(I=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),Xt.arraySet(n.head.extra,r,o,d,I)),n.flags&512&&(n.check=Xn(n.check,r,d,o)),s-=d,o+=d,n.length-=d),n.length))break e;n.length=0,n.mode=sA;case sA:if(n.flags&2048){if(s===0)break e;d=0;do I=r[o+d++],n.head&&I&&n.length<65536&&(n.head.name+=String.fromCharCode(I));while(I&&d<s);if(n.flags&512&&(n.check=Xn(n.check,r,d,o)),s-=d,o+=d,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=lA;case lA:if(n.flags&4096){if(s===0)break e;d=0;do I=r[o+d++],n.head&&I&&n.length<65536&&(n.head.comment+=String.fromCharCode(I));while(I&&d<s);if(n.flags&512&&(n.check=Xn(n.check,r,d,o)),s-=d,o+=d,I)break e}else n.head&&(n.head.comment=null);n.mode=uA;case uA:if(n.flags&512){for(;c<16;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if(l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=Ze;break}l=0,c=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=yr;break;case cA:for(;c<32;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}e.adler=n.check=_A(l),l=0,c=0,n.mode=Hf;case Hf:if(n.havedict===0)return e.next_out=a,e.avail_out=u,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=c,eL;e.adler=n.check=1,n.mode=yr;case yr:if(t===KP||t===Gf)break e;case qp:if(n.last){l>>>=c&7,c-=c&7,n.mode=Zp;break}for(;c<3;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}switch(n.last=l&1,l>>>=1,c-=1,l&3){case 0:n.mode=fA;break;case 1:if(uL(n),n.mode=Vf,t===Gf){l>>>=2,c-=2;break e}break;case 2:n.mode=dA;break;case 3:e.msg="invalid block type",n.mode=Ze}l>>>=2,c-=2;break;case fA:for(l>>>=c&7,c-=c&7;c<32;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=Ze;break}if(n.length=l&65535,l=0,c=0,n.mode=Wp,t===Gf)break e;case Wp:n.mode=hA;case hA:if(d=n.length,d){if(d>s&&(d=s),d>u&&(d=u),d===0)break e;Xt.arraySet(i,r,o,d,a),s-=d,o+=d,u-=d,a+=d,n.length-=d;break}n.mode=yr;break;case dA:for(;c<14;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if(n.nlen=(l&31)+257,l>>>=5,c-=5,n.ndist=(l&31)+1,l>>>=5,c-=5,n.ncode=(l&15)+4,l>>>=4,c-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=Ze;break}n.have=0,n.mode=pA;case pA:for(;n.have<n.ncode;){for(;c<3;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}n.lens[ne[n.have++]]=l&7,l>>>=3,c-=3}for(;n.have<19;)n.lens[ne[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,G={bits:n.lenbits},D=Gl(XP,n.lens,0,19,n.lencode,0,n.work,G),n.lenbits=G.bits,D){e.msg="invalid code lengths set",n.mode=Ze;break}n.have=0,n.mode=gA;case gA:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,A=y>>>16&255,S=y&65535,!(w<=c);){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if(S<16)l>>>=w,c-=w,n.lens[n.have++]=S;else{if(S===16){for(N=w+2;c<N;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if(l>>>=w,c-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=Ze;break}I=n.lens[n.have-1],d=3+(l&3),l>>>=2,c-=2}else if(S===17){for(N=w+3;c<N;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}l>>>=w,c-=w,I=0,d=3+(l&7),l>>>=3,c-=3}else{for(N=w+7;c<N;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}l>>>=w,c-=w,I=0,d=11+(l&127),l>>>=7,c-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=Ze;break}for(;d--;)n.lens[n.have++]=I}}if(n.mode===Ze)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=Ze;break}if(n.lenbits=9,G={bits:n.lenbits},D=Gl(Yx,n.lens,0,n.nlen,n.lencode,0,n.work,G),n.lenbits=G.bits,D){e.msg="invalid literal/lengths set",n.mode=Ze;break}if(n.distbits=6,n.distcode=n.distdyn,G={bits:n.distbits},D=Gl(Qx,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,G),n.distbits=G.bits,D){e.msg="invalid distances set",n.mode=Ze;break}if(n.mode=Vf,t===Gf)break e;case Vf:n.mode=jf;case jf:if(s>=6&&u>=258){e.next_out=a,e.avail_out=u,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=c,QP(e,h),a=e.next_out,i=e.output,u=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,l=n.hold,c=n.bits,n.mode===yr&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,A=y>>>16&255,S=y&65535,!(w<=c);){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if(A&&!(A&240)){for(_=w,k=A,B=S;y=n.lencode[B+((l&(1<<_+k)-1)>>_)],w=y>>>24,A=y>>>16&255,S=y&65535,!(_+w<=c);){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,n.length=S,A===0){n.mode=vA;break}if(A&32){n.back=-1,n.mode=yr;break}if(A&64){e.msg="invalid literal/length code",n.mode=Ze;break}n.extra=A&15,n.mode=mA;case mA:if(n.extra){for(N=n.extra;c<N;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=bA;case bA:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,A=y>>>16&255,S=y&65535,!(w<=c);){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if(!(A&240)){for(_=w,k=A,B=S;y=n.distcode[B+((l&(1<<_+k)-1)>>_)],w=y>>>24,A=y>>>16&255,S=y&65535,!(_+w<=c);){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,A&64){e.msg="invalid distance code",n.mode=Ze;break}n.offset=S,n.extra=A&15,n.mode=yA;case yA:if(n.extra){for(N=n.extra;c<N;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=Ze;break}n.mode=wA;case wA:if(u===0)break e;if(d=h-u,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=Ze;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),m=n.window}else m=i,p=a-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[a++]=m[p++];while(--d);n.length===0&&(n.mode=jf);break;case vA:if(u===0)break e;i[a++]=n.length,u--,n.mode=jf;break;case Zp:if(n.wrap){for(;c<32;){if(s===0)break e;s--,l|=r[o++]<<c,c+=8}if(h-=u,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?Xn(n.check,i,h,a-h):$p(n.check,i,h,a-h)),h=u,(n.flags?l:_A(l))!==n.check){e.msg="incorrect data check",n.mode=Ze;break}l=0,c=0}n.mode=xA;case xA:if(n.wrap&&n.flags){for(;c<32;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if(l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=Ze;break}l=0,c=0}n.mode=AA;case AA:D=JP;break e;case Ze:D=Kx;break e;case EA:return Jx;case nL:default:return cn}return e.next_out=a,e.avail_out=u,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=c,(n.wsize||h!==e.avail_out&&n.mode<Ze&&(n.mode<Zp||t!==Xx))&&BA(e,e.output,e.next_out,h-e.avail_out),f-=e.avail_in,h-=e.avail_out,e.total_in+=f,e.total_out+=h,n.total+=h,n.wrap&&h&&(e.adler=n.check=n.flags?Xn(n.check,i,h,e.next_out-h):$p(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===yr?128:0)+(n.mode===Vf||n.mode===Wp?256:0),(f===0&&h===0||t===Xx)&&D===co&&(D=tL),D}function fL(e){if(!e||!e.state)return cn;var t=e.state;return t.window&&(t.window=null),e.state=null,co}function hL(e,t){var n;return!e||!e.state||(n=e.state,!(n.wrap&2))?cn:(n.head=t,t.done=!1,co)}function dL(e,t){var n=t.length,r,i,o;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==Hf)?cn:r.mode===Hf&&(i=1,i=$p(i,t,n,0),i!==r.check)?Kx:(o=BA(e,t,n,n),o?(r.mode=EA,Jx):(r.havedict=1,co))}kn.inflateReset=CA,kn.inflateReset2=kA,kn.inflateResetKeep=SA,kn.inflateInit=lL,kn.inflateInit2=TA,kn.inflate=cL,kn.inflateEnd=fL,kn.inflateGetHeader=hL,kn.inflateSetDictionary=dL,kn.inflateInfo="pako inflate (from Nodeca project)";var DA={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_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};function pL(){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}var gL=pL,va=kn,Hl=mr,$f=lo,nt=DA,Xp=Pp,mL=Ux,bL=gL,RA=Object.prototype.toString;function fo(e){if(!(this instanceof fo))return new fo(e);this.options=Hl.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new mL,this.strm.avail_out=0;var n=va.inflateInit2(this.strm,t.windowBits);if(n!==nt.Z_OK)throw new Error(Xp[n]);if(this.header=new bL,va.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=$f.string2buf(t.dictionary):RA.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=va.inflateSetDictionary(this.strm,t.dictionary),n!==nt.Z_OK)))throw new Error(Xp[n])}fo.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,o,a,s,u,l,c=!1;if(this.ended)return!1;a=t===~~t?t:t===!0?nt.Z_FINISH:nt.Z_NO_FLUSH,typeof e=="string"?n.input=$f.binstring2buf(e):RA.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new Hl.Buf8(r),n.next_out=0,n.avail_out=r),o=va.inflate(n,nt.Z_NO_FLUSH),o===nt.Z_NEED_DICT&&i&&(o=va.inflateSetDictionary(this.strm,i)),o===nt.Z_BUF_ERROR&&c===!0&&(o=nt.Z_OK,c=!1),o!==nt.Z_STREAM_END&&o!==nt.Z_OK)return this.onEnd(o),this.ended=!0,!1;n.next_out&&(n.avail_out===0||o===nt.Z_STREAM_END||n.avail_in===0&&(a===nt.Z_FINISH||a===nt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=$f.utf8border(n.output,n.next_out),u=n.next_out-s,l=$f.buf2string(n.output,s),n.next_out=u,n.avail_out=r-u,u&&Hl.arraySet(n.output,n.output,s,u,0),this.onData(l)):this.onData(Hl.shrinkBuf(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(c=!0)}while((n.avail_in>0||n.avail_out===0)&&o!==nt.Z_STREAM_END);return o===nt.Z_STREAM_END&&(a=nt.Z_FINISH),a===nt.Z_FINISH?(o=va.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,o===nt.Z_OK):(a===nt.Z_SYNC_FLUSH&&(this.onEnd(nt.Z_OK),n.avail_out=0),!0)},fo.prototype.onData=function(e){this.chunks.push(e)},fo.prototype.onEnd=function(e){e===nt.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Hl.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Kp(e,t){var n=new fo(t);if(n.push(e,!0),n.err)throw n.msg||Xp[n.err];return n.result}function yL(e,t){return t=t||{},t.raw=!0,Kp(e,t)}Ul.Inflate=fo,Ul.inflate=Kp,Ul.inflateRaw=yL,Ul.ungzip=Kp;var wL=mr.assign,vL=kl,xL=Ul,AL=DA,FA={};wL(FA,vL,xL,AL);var qf=FA;async function di(e){try{let t,n=0,r=0;const i=[];let o=0,a;do{const u=e.subarray(n);if(a=new qf.Inflate,{strm:t}=a,a.push(u,qf.Z_SYNC_FLUSH),a.err)throw new Error(a.msg);n+=t.next_in,i[r]=a.result,o+=i[r].length,r+=1}while(t.avail_in);const s=new Uint8Array(o);for(let u=0,l=0;u<i.length;u++)s.set(i[u],l),l+=i[u].length;return be.Buffer.from(s)}catch(t){throw`${t}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):t}}async function MA(e,t){try{let n;const{minv:r,maxv:i}=t;let o=r.blockPosition,a=r.dataPosition;const s=[],u=[],l=[];let c=0,f=0;do{const p=e.subarray(o-r.blockPosition),m=new qf.Inflate;if({strm:n}=m,m.push(p,qf.Z_SYNC_FLUSH),m.err)throw new Error(m.msg);const y=m.result;s.push(y);let w=y.length;u.push(o),l.push(a),s.length===1&&r.dataPosition&&(s[0]=s[0].subarray(r.dataPosition),w=s[0].length);const A=o;if(o+=n.next_in,a+=w,A>=i.blockPosition){s[f]=s[f].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),u.push(o),l.push(a),c+=s[f].length;break}c+=s[f].length,f++}while(n.avail_in);const h=new Uint8Array(c);for(let p=0,m=0;p<s.length;p++)h.set(s[p],m),m+=s[p].length;return{buffer:be.Buffer.from(h),cpositions:u,dpositions:l}}catch(n){throw`${n}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):n}}var EL=Ue,fn=null;try{fn=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Ue(e,t,n){this.low=e|0,this.high=t|0,this.unsigned=!!n}Ue.prototype.__isLong__,Object.defineProperty(Ue.prototype,"__isLong__",{value:!0});function Ht(e){return(e&&e.__isLong__)===!0}Ue.isLong=Ht;var PA={},LA={};function ho(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=LA[e],r)?r:(n=Ge(e,(e|0)<0?-1:0,!0),i&&(LA[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=PA[e],r)?r:(n=Ge(e,e<0?-1:0,!1),i&&(PA[e]=n),n))}Ue.fromInt=ho;function hn(e,t){if(isNaN(e))return t?po:dn;if(t){if(e<0)return po;if(e>=OA)return VA}else{if(e<=-zA)return Vt;if(e+1>=zA)return HA}return e<0?hn(-e,t).neg():Ge(e%xa|0,e/xa|0,t)}Ue.fromNumber=hn;function Ge(e,t,n){return new Ue(e,t,n)}Ue.fromBits=Ge;var Wf=Math.pow;function Jp(e,t,n){if(e.length===0)throw Error("empty string");if(e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return dn;if(typeof t=="number"?(n=t,t=!1):t=!!t,n=n||10,n<2||36<n)throw RangeError("radix");var r;if((r=e.indexOf("-"))>0)throw Error("interior hyphen");if(r===0)return Jp(e.substring(1),t,n).neg();for(var i=hn(Wf(n,8)),o=dn,a=0;a<e.length;a+=8){var s=Math.min(8,e.length-a),u=parseInt(e.substring(a,a+s),n);if(s<8){var l=hn(Wf(n,s));o=o.mul(l).add(hn(u))}else o=o.mul(i),o=o.add(hn(u))}return o.unsigned=t,o}Ue.fromString=Jp;function Tn(e,t){return typeof e=="number"?hn(e,t):typeof e=="string"?Jp(e,t):Ge(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}Ue.fromValue=Tn;var NA=65536,_L=1<<24,xa=NA*NA,OA=xa*xa,zA=OA/2,UA=ho(_L),dn=ho(0);Ue.ZERO=dn;var po=ho(0,!0);Ue.UZERO=po;var Aa=ho(1);Ue.ONE=Aa;var GA=ho(1,!0);Ue.UONE=GA;var eg=ho(-1);Ue.NEG_ONE=eg;var HA=Ge(-1,2147483647,!1);Ue.MAX_VALUE=HA;var VA=Ge(-1,-1,!0);Ue.MAX_UNSIGNED_VALUE=VA;var Vt=Ge(0,-2147483648,!1);Ue.MIN_VALUE=Vt;var Q=Ue.prototype;Q.toInt=function(){return this.unsigned?this.low>>>0:this.low},Q.toNumber=function(){return this.unsigned?(this.high>>>0)*xa+(this.low>>>0):this.high*xa+(this.low>>>0)},Q.toString=function(t){if(t=t||10,t<2||36<t)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(Vt)){var n=hn(t),r=this.div(n),i=r.mul(n).sub(this);return r.toString(t)+i.toInt().toString(t)}else return"-"+this.neg().toString(t);for(var o=hn(Wf(t,6),this.unsigned),a=this,s="";;){var u=a.div(o),l=a.sub(u.mul(o)).toInt()>>>0,c=l.toString(t);if(a=u,a.isZero())return c+s;for(;c.length<6;)c="0"+c;s=""+c+s}},Q.getHighBits=function(){return this.high},Q.getHighBitsUnsigned=function(){return this.high>>>0},Q.getLowBits=function(){return this.low},Q.getLowBitsUnsigned=function(){return this.low>>>0},Q.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Vt)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,n=31;n>0&&!(t&1<<n);n--);return this.high!=0?n+33:n+1},Q.isZero=function(){return this.high===0&&this.low===0},Q.eqz=Q.isZero,Q.isNegative=function(){return!this.unsigned&&this.high<0},Q.isPositive=function(){return this.unsigned||this.high>=0},Q.isOdd=function(){return(this.low&1)===1},Q.isEven=function(){return(this.low&1)===0},Q.equals=function(t){return Ht(t)||(t=Tn(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},Q.eq=Q.equals,Q.notEquals=function(t){return!this.eq(t)},Q.neq=Q.notEquals,Q.ne=Q.notEquals,Q.lessThan=function(t){return this.comp(t)<0},Q.lt=Q.lessThan,Q.lessThanOrEqual=function(t){return this.comp(t)<=0},Q.lte=Q.lessThanOrEqual,Q.le=Q.lessThanOrEqual,Q.greaterThan=function(t){return this.comp(t)>0},Q.gt=Q.greaterThan,Q.greaterThanOrEqual=function(t){return this.comp(t)>=0},Q.gte=Q.greaterThanOrEqual,Q.ge=Q.greaterThanOrEqual,Q.compare=function(t){if(Ht(t)||(t=Tn(t)),this.eq(t))return 0;var n=this.isNegative(),r=t.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1},Q.comp=Q.compare,Q.negate=function(){return!this.unsigned&&this.eq(Vt)?Vt:this.not().add(Aa)},Q.neg=Q.negate,Q.add=function(t){Ht(t)||(t=Tn(t));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,o=this.low&65535,a=t.high>>>16,s=t.high&65535,u=t.low>>>16,l=t.low&65535,c=0,f=0,h=0,d=0;return d+=o+l,h+=d>>>16,d&=65535,h+=i+u,f+=h>>>16,h&=65535,f+=r+s,c+=f>>>16,f&=65535,c+=n+a,c&=65535,Ge(h<<16|d,c<<16|f,this.unsigned)},Q.subtract=function(t){return Ht(t)||(t=Tn(t)),this.add(t.neg())},Q.sub=Q.subtract,Q.multiply=function(t){if(this.isZero())return dn;if(Ht(t)||(t=Tn(t)),fn){var n=fn.mul(this.low,this.high,t.low,t.high);return Ge(n,fn.get_high(),this.unsigned)}if(t.isZero())return dn;if(this.eq(Vt))return t.isOdd()?Vt:dn;if(t.eq(Vt))return this.isOdd()?Vt:dn;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(UA)&&t.lt(UA))return hn(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,o=this.low>>>16,a=this.low&65535,s=t.high>>>16,u=t.high&65535,l=t.low>>>16,c=t.low&65535,f=0,h=0,d=0,p=0;return p+=a*c,d+=p>>>16,p&=65535,d+=o*c,h+=d>>>16,d&=65535,d+=a*l,h+=d>>>16,d&=65535,h+=i*c,f+=h>>>16,h&=65535,h+=o*l,f+=h>>>16,h&=65535,h+=a*u,f+=h>>>16,h&=65535,f+=r*c+i*l+o*u+a*s,f&=65535,Ge(d<<16|p,f<<16|h,this.unsigned)},Q.mul=Q.multiply,Q.divide=function(t){if(Ht(t)||(t=Tn(t)),t.isZero())throw Error("division by zero");if(fn){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?fn.div_u:fn.div_s)(this.low,this.high,t.low,t.high);return Ge(n,fn.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?po:dn;var r,i,o;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return po;if(t.gt(this.shru(1)))return GA;o=po}else{if(this.eq(Vt)){if(t.eq(Aa)||t.eq(eg))return Vt;if(t.eq(Vt))return Aa;var a=this.shr(1);return r=a.div(t).shl(1),r.eq(dn)?t.isNegative()?Aa:eg:(i=this.sub(t.mul(r)),o=r.add(i.div(t)),o)}else if(t.eq(Vt))return this.unsigned?po:dn;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();o=dn}for(i=this;i.gte(t);){r=Math.max(1,Math.floor(i.toNumber()/t.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),u=s<=48?1:Wf(2,s-48),l=hn(r),c=l.mul(t);c.isNegative()||c.gt(i);)r-=u,l=hn(r,this.unsigned),c=l.mul(t);l.isZero()&&(l=Aa),o=o.add(l),i=i.sub(c)}return o},Q.div=Q.divide,Q.modulo=function(t){if(Ht(t)||(t=Tn(t)),fn){var n=(this.unsigned?fn.rem_u:fn.rem_s)(this.low,this.high,t.low,t.high);return Ge(n,fn.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},Q.mod=Q.modulo,Q.rem=Q.modulo,Q.not=function(){return Ge(~this.low,~this.high,this.unsigned)},Q.and=function(t){return Ht(t)||(t=Tn(t)),Ge(this.low&t.low,this.high&t.high,this.unsigned)},Q.or=function(t){return Ht(t)||(t=Tn(t)),Ge(this.low|t.low,this.high|t.high,this.unsigned)},Q.xor=function(t){return Ht(t)||(t=Tn(t)),Ge(this.low^t.low,this.high^t.high,this.unsigned)},Q.shiftLeft=function(t){return Ht(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Ge(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):Ge(0,this.low<<t-32,this.unsigned)},Q.shl=Q.shiftLeft,Q.shiftRight=function(t){return Ht(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Ge(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):Ge(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},Q.shr=Q.shiftRight,Q.shiftRightUnsigned=function(t){if(Ht(t)&&(t=t.toInt()),t&=63,t===0)return this;var n=this.high;if(t<32){var r=this.low;return Ge(r>>>t|n<<32-t,n>>>t,this.unsigned)}else return t===32?Ge(n,0,this.unsigned):Ge(n>>>t-32,0,this.unsigned)},Q.shru=Q.shiftRightUnsigned,Q.shr_u=Q.shiftRightUnsigned,Q.toSigned=function(){return this.unsigned?Ge(this.low,this.high,!1):this},Q.toUnsigned=function(){return this.unsigned?this:Ge(this.low,this.high,!0)},Q.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},Q.toBytesLE=function(){var t=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]},Q.toBytesBE=function(){var t=this.high,n=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},Ue.fromBytes=function(t,n,r){return r?Ue.fromBytesLE(t,n):Ue.fromBytesBE(t,n)},Ue.fromBytesLE=function(t,n){return new Ue(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n)},Ue.fromBytesBE=function(t,n){return new Ue(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],n)};const Zf=Sl(EL),Yf=1;class SL{constructor({filehandle:t,path:n}){if(t)this.filehandle=t;else if(n)this.filehandle=new dt(n);else throw new TypeError("either filehandle or path must be defined")}_readLongWithOverflow(t,n=0,r=!0){const i=Zf.fromBytesLE(t.slice(n,n+8),r);if(i.greaterThan(Number.MAX_SAFE_INTEGER)||i.lessThan(Number.MIN_SAFE_INTEGER))throw new TypeError("integer overflow");return i.toNumber()}_getIndex(){return this.index||(this.index=this._readIndex()),this.index}async _readIndex(){let t=be.Buffer.allocUnsafe(8);await this.filehandle.read(t,0,8,0);const n=this._readLongWithOverflow(t,0,!0);if(!n)return[[0,0]];const r=new Array(n+1);r[0]=[0,0];const i=8*2*n;if(i>Number.MAX_SAFE_INTEGER)throw new TypeError("integer overflow");t=be.Buffer.allocUnsafe(i),await this.filehandle.read(t,0,i,8);for(let o=0;o<n;o+=1){const a=this._readLongWithOverflow(t,o*16),s=this._readLongWithOverflow(t,o*16+8);r[o+1]=[a,s]}return r}async getLastBlock(){const t=await this._getIndex();if(t.length)return t[t.length-1]}async getRelevantBlocksForRead(t,n){const r=n+t;if(t===0)return[];const i=await this._getIndex(),o=[],a=(h,d)=>{const p=h[Yf],m=d?d[Yf]:1/0;return p<=n&&m>n?0:p<n?-1:1};let s=0,u=i.length-1,l=Math.floor(i.length/2),c=a(i[l],i[l+1]);for(;c!==0;)c>0?u=l-1:c<0&&(s=l+1),l=Math.ceil((u-s)/2)+s,c=a(i[l],i[l+1]);o.push(i[l]);let f=l+1;for(;f<i.length&&(o.push(i[f]),!(i[f][Yf]>=r));f+=1);return o[o.length-1][Yf]<r&&o.push([]),o}}class jA{constructor({filehandle:t,path:n,gziFilehandle:r,gziPath:i}){if(t)this.filehandle=t;else if(n)this.filehandle=new dt(n);else throw new TypeError("either filehandle or path must be defined");if(!r&&!i&&!n)throw new TypeError("either gziFilehandle or gziPath must be defined");this.gzi=new SL({filehandle:r,path:!r&&!i&&n?i:`${n}.gzi`})}async stat(){const t=await this.filehandle.stat();return Object.assign(t,{size:await this.getUncompressedFileSize(),blocks:void 0,blksize:void 0})}async getUncompressedFileSize(){const[,t]=await this.gzi.getLastBlock(),{size:n}=await this.filehandle.stat(),r=be.Buffer.allocUnsafe(4),{bytesRead:i}=await this.filehandle.read(r,0,4,n-28-4);if(i!==4)throw new Error("read error");const o=r.readUInt32LE(0);return t+o}async _readAndUncompressBlock(t,[n],[r]){let i=r;i||(i=(await this.filehandle.stat()).size);const o=i-n;return await this.filehandle.read(t,0,o,n),await di(t.slice(0,o))}async read(t,n,r,i){const o=await this.gzi.getRelevantBlocksForRead(r,i),a=be.Buffer.allocUnsafe(32768*2);let s=n,u=0;for(let l=0;l<o.length-1;l+=1){const c=await this._readAndUncompressBlock(a,o[l],o[l+1]),[,f]=o[l],h=f>=i?0:i-f,d=Math.min(i+r,f+c.length)-f;h>=0&&h<c.length&&(c.copy(t,s,h,d),s+=d-h,u+=d-h)}return{bytesRead:u,buffer:t}}}function $A(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}async function CL(e,t){const n=await e.readFile(t);if(!(n&&n.length))throw new Error("No data read from FASTA index (FAI) file");let r=0,i;const o=n.toString("utf8").split(/\r?\n/).filter(a=>/\S/.test(a)).map(a=>a.split(" ")).filter(a=>a[0]!=="").map(a=>((!i||i.name!==a[0])&&(i={name:a[0],id:r},r+=1),{id:i.id,name:a[0],length:+a[1],start:0,end:+a[1],offset:+a[2],lineLength:+a[3],lineBytes:+a[4]}));return{name:Object.fromEntries(o.map(a=>[a.name,a])),id:Object.fromEntries(o.map(a=>[a.id,a]))}}class qA{constructor({fasta:t,fai:n,path:r,faiPath:i,chunkSizeLimit:o=1e6}){if(t)this.fasta=t;else if(r)this.fasta=new dt(r);else throw new Error("Need to pass filehandle for fasta or path to localfile");if(n)this.fai=n;else if(i)this.fai=new dt(i);else if(r)this.fai=new dt(`${r}.fai`);else throw new Error("Need to pass filehandle for or path to localfile");this.chunkSizeLimit=o}async _getIndexes(t){return this.indexes||(this.indexes=CL(this.fai,t)),this.indexes}async getSequenceNames(t){return Object.keys((await this._getIndexes(t)).name)}async getSequenceSizes(t){const n={},r=await this._getIndexes(t),i=Object.values(r.id);for(let o=0;o<i.length;o+=1)n[i[o].name]=i[o].length;return n}async getSequenceSize(t,n){var r;return(r=(await this._getIndexes(n)).name[t])===null||r===void 0?void 0:r.length}async hasReferenceSequence(t,n){return!!(await this._getIndexes(n)).name[t]}async getResiduesById(t,n,r,i){const o=(await this._getIndexes(i)).id[t];if(o)return this._fetchFromIndexEntry(o,n,r,i)}async getResiduesByName(t,n,r,i){const o=(await this._getIndexes(i)).name[t];if(o)return this._fetchFromIndexEntry(o,n,r,i)}async getSequence(t,n,r,i){return this.getResiduesByName(t,n,r,i)}async _fetchFromIndexEntry(t,n=0,r,i){let o=r;if(n<0)throw new TypeError("regionStart cannot be less than 0");if((o===void 0||o>t.length)&&(o=t.length),n>=o)return"";const a=$A(t,n),s=$A(t,o)-a;if(s>this.chunkSizeLimit)throw new Error(`data size of ${s.toLocaleString()} bytes exceeded chunk size limit of ${this.chunkSizeLimit.toLocaleString()} bytes`);const u=Buffer.allocUnsafe(s);return await this.fasta.read(u,0,s,a,i),u.toString("utf8").replace(/\s+/g,"")}}class kL extends qA{constructor({fasta:t,path:n,fai:r,faiPath:i,gzi:o,gziPath:a,chunkSizeLimit:s}){super({fasta:t,path:n,fai:r,faiPath:i,chunkSizeLimit:s}),t&&o?this.fasta=new jA({filehandle:t,gziFilehandle:o}):n&&a&&(this.fasta=new jA({path:n,gziPath:a}))}}function WA(e){return e.split(">").filter(t=>/\S/.test(t)).map(t=>{const[n,...r]=t.split(`
483
+ `),[i,...o]=n.split(" "),a=r.join("").replace(/\s/g,"");return{id:i,description:o.join(" "),sequence:a}})}class TL{constructor({fasta:t,path:n}){if(t)this.fasta=t;else if(n)this.fasta=new dt(n);else throw new Error("Need to pass fasta or path");this.data=this.fasta.readFile().then(r=>{const i=r.toString("utf8");return WA(i)})}async fetch(t,n,r){const o=(await this.data).find(s=>s.id===t),a=r-n;if(!o)throw new Error(`no sequence with id ${t} exists`);return o.sequence.substr(n,a)}async getSequenceNames(){return(await this.data).map(n=>n.id)}}const IL=Object.freeze(Object.defineProperty({__proto__:null,BgzipIndexedFasta:kL,FetchableSmallFasta:TL,IndexedFasta:qA,parseSmallFasta:WA},Symbol.toStringTag,{value:"Module"})),Qf=BigInt(32);function BL(e,t,n){const r=+!!n,i=+!n;return BigInt(e.getInt32(t,n)*i+e.getInt32(t+4,n)*r)<<Qf|BigInt(e.getUint32(t,n)*r+e.getUint32(t+4,n)*i)}function DL(e,t,n){const r=e.getUint32(t,n),i=e.getUint32(t+4,n),o=+!!n,a=+!n;return BigInt(r*a+i*o)<<Qf|BigInt(r*o+i*a)}function RL(e,t,n,r){const i=Number(n>>Qf),o=Number(n&BigInt(4294967295));r?(e.setInt32(t+4,i,r),e.setUint32(t,o,r)):(e.setInt32(t,i,r),e.setUint32(t+4,o,r))}function FL(e,t,n,r){const i=Number(n>>Qf),o=Number(n&BigInt(4294967295));r?(e.setUint32(t+4,i,r),e.setUint32(t,o,r)):(e.setUint32(t,i,r),e.setUint32(t+4,o,r))}"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(e,t){return BL(this,e,t)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(e,t){return DL(this,e,t)}),"setBigInt64"in DataView||(DataView.prototype.setBigInt64=function(e,t,n){RL(this,e,t,n)}),"setBigUint64"in DataView||(DataView.prototype.setBigUint64=function(e,t,n){FL(this,e,t,n)});class ML{constructor(t,n){this.code="",this.scopes=[["vars"]],this.bitFields=[],this.tmpVariableCount=0,this.references=new Map,this.imports=[],this.reverseImports=new Map,this.useContextVariables=!1,this.importPath=t,this.useContextVariables=n}generateVariable(t){const n=[...this.scopes[this.scopes.length-1]];return t&&n.push(t),n.join(".")}generateOption(t){switch(typeof t){case"number":return t.toString();case"string":return this.generateVariable(t);case"function":return`${this.addImport(t)}.call(${this.generateVariable()}, vars)`}}generateError(t){this.pushCode(`throw new Error(${t});`)}generateTmpVariable(){return"$tmp"+this.tmpVariableCount++}pushCode(t){this.code+=t+`
484
+ `}pushPath(t){t&&this.scopes[this.scopes.length-1].push(t)}popPath(t){t&&this.scopes[this.scopes.length-1].pop()}pushScope(t){this.scopes.push([t])}popScope(){this.scopes.pop()}addImport(t){if(!this.importPath)return`(${t})`;let n=this.reverseImports.get(t);return n||(n=this.imports.push(t)-1,this.reverseImports.set(t,n)),`${this.importPath}[${n}]`}addReference(t){this.references.has(t)||this.references.set(t,{resolved:!1,requested:!1})}markResolved(t){const n=this.references.get(t);n&&(n.resolved=!0)}markRequested(t){t.forEach(n=>{const r=this.references.get(n);r&&(r.requested=!0)})}getUnresolvedReferences(){return Array.from(this.references).filter(([t,n])=>!n.resolved&&!n.requested).map(([t,n])=>t)}}const In=new Map,go="___parser_",Bn={uint8:1,uint16le:2,uint16be:2,uint32le:4,uint32be:4,int8:1,int16le:2,int16be:2,int32le:4,int32be:4,int64be:8,int64le:8,uint64be:8,uint64le:8,floatle:4,floatbe:4,doublele:8,doublebe:8},Xf={uint8:"Uint8",uint16le:"Uint16",uint16be:"Uint16",uint32le:"Uint32",uint32be:"Uint32",int8:"Int8",int16le:"Int16",int16be:"Int16",int32le:"Int32",int32be:"Int32",int64be:"BigInt64",int64le:"BigInt64",uint64be:"BigUint64",uint64le:"BigUint64",floatle:"Float32",floatbe:"Float32",doublele:"Float64",doublebe:"Float64"},Kf={uint8:!1,uint16le:!0,uint16be:!1,uint32le:!0,uint32be:!1,int8:!1,int16le:!0,int16be:!1,int32le:!0,int32be:!1,int64be:!1,int64le:!0,uint64be:!1,uint64le:!0,floatle:!0,floatbe:!1,doublele:!0,doublebe:!1};let De=class Mn{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new Mn}primitiveGenerateN(t,n){const r=Xf[t],i=Kf[t];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${Bn[t]};`)}primitiveN(t,n,r){return this.setNextParser(t,n,r)}useThisEndian(t){return t+this.endian.toLowerCase()}uint8(t,n={}){return this.primitiveN("uint8",t,n)}uint16(t,n={}){return this.primitiveN(this.useThisEndian("uint16"),t,n)}uint16le(t,n={}){return this.primitiveN("uint16le",t,n)}uint16be(t,n={}){return this.primitiveN("uint16be",t,n)}uint32(t,n={}){return this.primitiveN(this.useThisEndian("uint32"),t,n)}uint32le(t,n={}){return this.primitiveN("uint32le",t,n)}uint32be(t,n={}){return this.primitiveN("uint32be",t,n)}int8(t,n={}){return this.primitiveN("int8",t,n)}int16(t,n={}){return this.primitiveN(this.useThisEndian("int16"),t,n)}int16le(t,n={}){return this.primitiveN("int16le",t,n)}int16be(t,n={}){return this.primitiveN("int16be",t,n)}int32(t,n={}){return this.primitiveN(this.useThisEndian("int32"),t,n)}int32le(t,n={}){return this.primitiveN("int32le",t,n)}int32be(t,n={}){return this.primitiveN("int32be",t,n)}bigIntVersionCheck(){if(!DataView.prototype.getBigInt64)throw new Error("BigInt64 is unsupported on this runtime")}int64(t,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("int64"),t,n)}int64be(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64be",t,n)}int64le(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("int64le",t,n)}uint64(t,n={}){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("uint64"),t,n)}uint64be(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64be",t,n)}uint64le(t,n={}){return this.bigIntVersionCheck(),this.primitiveN("uint64le",t,n)}floatle(t,n={}){return this.primitiveN("floatle",t,n)}floatbe(t,n={}){return this.primitiveN("floatbe",t,n)}doublele(t,n={}){return this.primitiveN("doublele",t,n)}doublebe(t,n={}){return this.primitiveN("doublebe",t,n)}bitN(t,n,r){return r.length=t,this.setNextParser("bit",n,r)}bit1(t,n={}){return this.bitN(1,t,n)}bit2(t,n={}){return this.bitN(2,t,n)}bit3(t,n={}){return this.bitN(3,t,n)}bit4(t,n={}){return this.bitN(4,t,n)}bit5(t,n={}){return this.bitN(5,t,n)}bit6(t,n={}){return this.bitN(6,t,n)}bit7(t,n={}){return this.bitN(7,t,n)}bit8(t,n={}){return this.bitN(8,t,n)}bit9(t,n={}){return this.bitN(9,t,n)}bit10(t,n={}){return this.bitN(10,t,n)}bit11(t,n={}){return this.bitN(11,t,n)}bit12(t,n={}){return this.bitN(12,t,n)}bit13(t,n={}){return this.bitN(13,t,n)}bit14(t,n={}){return this.bitN(14,t,n)}bit15(t,n={}){return this.bitN(15,t,n)}bit16(t,n={}){return this.bitN(16,t,n)}bit17(t,n={}){return this.bitN(17,t,n)}bit18(t,n={}){return this.bitN(18,t,n)}bit19(t,n={}){return this.bitN(19,t,n)}bit20(t,n={}){return this.bitN(20,t,n)}bit21(t,n={}){return this.bitN(21,t,n)}bit22(t,n={}){return this.bitN(22,t,n)}bit23(t,n={}){return this.bitN(23,t,n)}bit24(t,n={}){return this.bitN(24,t,n)}bit25(t,n={}){return this.bitN(25,t,n)}bit26(t,n={}){return this.bitN(26,t,n)}bit27(t,n={}){return this.bitN(27,t,n)}bit28(t,n={}){return this.bitN(28,t,n)}bit29(t,n={}){return this.bitN(29,t,n)}bit30(t,n={}){return this.bitN(30,t,n)}bit31(t,n={}){return this.bitN(31,t,n)}bit32(t,n={}){return this.bitN(32,t,n)}namely(t){return In.set(t,this),this.alias=t,this}skip(t,n={}){return this.seek(t,n)}seek(t,n={}){if(n.assert)throw new Error("assert option on seek is not allowed.");return this.setNextParser("seek","",{length:t})}string(t,n){if(!n.zeroTerminated&&!n.length&&!n.greedy)throw new Error("One of length, zeroTerminated, or greedy must be defined for string.");if((n.zeroTerminated||n.length)&&n.greedy)throw new Error("greedy is mutually exclusive with length and zeroTerminated for string.");if(n.stripNull&&!(n.length||n.greedy))throw new Error("length or greedy must be defined if stripNull is enabled.");return n.encoding=n.encoding||"utf8",this.setNextParser("string",t,n)}buffer(t,n){if(!n.length&&!n.readUntil)throw new Error("length or readUntil must be defined for buffer.");return this.setNextParser("buffer",t,n)}wrapped(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n||!n.wrapper||!n.type)throw new Error("Both wrapper and type must be defined for wrapped.");if(!n.length&&!n.readUntil)throw new Error("length or readUntil must be defined for wrapped.");return this.setNextParser("wrapper",t,n)}array(t,n){if(!n.readUntil&&!n.length&&!n.lengthInBytes)throw new Error("One of readUntil, length and lengthInBytes must be defined for array.");if(!n.type)throw new Error("type is required for array.");if(typeof n.type=="string"&&!In.has(n.type)&&!(n.type in Bn))throw new Error(`Array element type "${n.type}" is unkown.`);return this.setNextParser("array",t,n)}choice(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n)throw new Error("tag and choices are are required for choice.");if(!n.tag)throw new Error("tag is requird for choice.");if(!n.choices)throw new Error("choices is required for choice.");for(const r in n.choices){const i=parseInt(r,10),o=n.choices[i];if(isNaN(i))throw new Error(`Choice key "${r}" is not a number.`);if(typeof o=="string"&&!In.has(o)&&!(o in Bn))throw new Error(`Choice type "${o}" is unkown.`)}return this.setNextParser("choice",t,n)}nest(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n||!n.type)throw new Error("type is required for nest.");if(!(n.type instanceof Mn)&&!In.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof Mn)&&!t)throw new Error("type must be a Parser object if the variable name is omitted.");return this.setNextParser("nest",t,n)}pointer(t,n){if(!n.offset)throw new Error("offset is required for pointer.");if(!n.type)throw new Error("type is required for pointer.");if(typeof n.type=="string"&&!(n.type in Bn)&&!In.has(n.type))throw new Error(`Pointer type "${n.type}" is unkown.`);return this.setNextParser("pointer",t,n)}saveOffset(t,n={}){return this.setNextParser("saveOffset",t,n)}endianness(t){switch(t.toLowerCase()){case"little":this.endian="le";break;case"big":this.endian="be";break;default:throw new Error('endianness must be one of "little" or "big"')}return this}endianess(t){return this.endianness(t)}useContextVars(t=!0){return this.useContextVariables=t,this}create(t){if(!(t instanceof Function))throw new Error("Constructor must be a Function object.");return this.constructorFn=t,this}getContext(t){const n=new ML(t,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${go+this.alias}(0).result;`)):this.addRawCode(n),n}getCode(){const t="imports";return this.getContext(t).code}addRawCode(t){t.pushCode("var offset = 0;"),t.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),t.pushCode("vars.$parent = null;"),t.pushCode("vars.$root = vars;"),this.generate(t),this.resolveReferences(t),t.pushCode("delete vars.$parent;"),t.pushCode("delete vars.$root;"),t.pushCode("return vars;")}addAliasedCode(t){return t.pushCode(`function ${go+this.alias}(offset, context) {`),t.pushCode(`var vars = ${this.constructorFn?"new constructorFn()":"{}"};`),t.pushCode("var ctx = Object.assign({$parent: null, $root: vars}, context || {});"),t.pushCode("vars = Object.assign(vars, ctx);"),this.generate(t),t.markResolved(this.alias),this.resolveReferences(t),t.pushCode("Object.keys(ctx).forEach(function (item) { delete vars[item]; });"),t.pushCode("return { offset: offset, result: vars };"),t.pushCode("}"),t}resolveReferences(t){const n=t.getUnresolvedReferences();t.markRequested(n),n.forEach(r=>{var i;(i=In.get(r))===null||i===void 0||i.addAliasedCode(t)})}compile(){const t="imports",n=this.getContext(t);this.compiled=new Function(t,"TextDecoder",`return function (buffer, constructorFn) { ${n.code} };`)(n.imports,TextDecoder)}sizeOf(){let t=NaN;if(Object.keys(Bn).indexOf(this.type)>=0)t=Bn[this.type];else if(this.type==="string"&&typeof this.options.length=="number")t=this.options.length;else if(this.type==="buffer"&&typeof this.options.length=="number")t=this.options.length;else if(this.type==="array"&&typeof this.options.length=="number"){let n=NaN;typeof this.options.type=="string"?n=Bn[this.options.type]:this.options.type instanceof Mn&&(n=this.options.type.sizeOf()),t=this.options.length*n}else this.type==="seek"?t=this.options.length:this.type==="nest"?t=this.options.type.sizeOf():this.type||(t=0);return this.next&&(t+=this.next.sizeOf()),t}parse(t){return this.compiled||this.compile(),this.compiled(t,this.constructorFn)}setNextParser(t,n,r){const i=new Mn;return i.type=t,i.varName=n,i.options=r,i.endian=this.endian,this.head?this.head.next=i:this.next=i,this.head=i,this}generate(t){if(this.type){switch(this.type){case"uint8":case"uint16le":case"uint16be":case"uint32le":case"uint32be":case"int8":case"int16le":case"int16be":case"int32le":case"int32be":case"int64be":case"int64le":case"uint64be":case"uint64le":case"floatle":case"floatbe":case"doublele":case"doublebe":this.primitiveGenerateN(this.type,t);break;case"bit":this.generateBit(t);break;case"string":this.generateString(t);break;case"buffer":this.generateBuffer(t);break;case"seek":this.generateSeek(t);break;case"nest":this.generateNest(t);break;case"array":this.generateArray(t);break;case"choice":this.generateChoice(t);break;case"pointer":this.generatePointer(t);break;case"saveOffset":this.generateSaveOffset(t);break;case"wrapper":this.generateWrapper(t);break}this.type!=="bit"&&this.generateAssert(t)}const n=t.generateVariable(this.varName);return this.options.formatter&&this.type!=="bit"&&this.generateFormatter(t,n,this.options.formatter),this.generateNext(t)}generateAssert(t){if(!this.options.assert)return;const n=t.generateVariable(this.varName);switch(typeof this.options.assert){case"function":{const r=t.addImport(this.options.assert);t.pushCode(`if (!${r}.call(vars, ${n})) {`)}break;case"number":t.pushCode(`if (${this.options.assert} !== ${n}) {`);break;case"string":t.pushCode(`if (${JSON.stringify(this.options.assert)} !== ${n}) {`);break;default:throw new Error("assert option must be a string, number or a function.")}t.generateError(`"Assertion error: ${n} is " + ${JSON.stringify(this.options.assert.toString())}`),t.pushCode("}")}generateNext(t){return this.next&&(t=this.next.generate(t)),t}generateBit(t){const n=JSON.parse(JSON.stringify(this));if(n.options=this.options,n.generateAssert=this.generateAssert.bind(this),n.generateFormatter=this.generateFormatter.bind(this),n.varName=t.generateVariable(n.varName),t.bitFields.push(n),!this.next||this.next&&["bit","nest"].indexOf(this.next.type)<0){const r=t.generateTmpVariable();t.pushCode(`var ${r} = 0;`);const i=(c=0)=>{let f=0;for(let h=c;h<t.bitFields.length;h++){const d=t.bitFields[h].options.length;if(f+d>32)break;f+=d}return f},o=c=>(c<=8?(t.pushCode(`${r} = dataView.getUint8(offset);`),c=8):c<=16?(t.pushCode(`${r} = dataView.getUint16(offset);`),c=16):c<=24?(t.pushCode(`${r} = (dataView.getUint16(offset) << 8) | dataView.getUint8(offset + 2);`),c=24):(t.pushCode(`${r} = dataView.getUint32(offset);`),c=32),t.pushCode(`offset += ${c/8};`),c);let a=0;const s=this.endian==="be";let u=0,l=0;t.bitFields.forEach((c,f)=>{let h=c.options.length;if(h>l){if(l){const m=-1>>>32-l;t.pushCode(`${c.varName} = (${r} & 0x${m.toString(16)}) << ${h-l};`),h-=l}a=0,l=u=o(i(f)-l)}const d=s?u-a-h:a,p=-1>>>32-h;t.pushCode(`${c.varName} ${h<c.options.length?"|=":"="} ${r} >> ${d} & 0x${p.toString(16)};`),c.options.length===32&&t.pushCode(`${c.varName} >>>= 0`),c.options.assert&&c.generateAssert(t),c.options.formatter&&c.generateFormatter(t,c.varName,c.options.formatter),a+=h,l-=h}),t.bitFields=[]}}generateSeek(t){const n=t.generateOption(this.options.length);t.pushCode(`offset += ${n};`)}generateString(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable(),i=this.options.encoding,o=i.toLowerCase()==="hex",a='b => b.toString(16).padStart(2, "0")';if(this.options.length&&this.options.zeroTerminated){const s=this.options.length;t.pushCode(`var ${r} = offset;`),t.pushCode(`while(dataView.getUint8(offset++) !== 0 && offset - ${r} < ${s});`);const u=`offset - ${r} < ${s} ? offset - 1 : offset`;t.pushCode(o?`${n} = Array.from(buffer.subarray(${r}, ${u}), ${a}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${u}));`)}else if(this.options.length){const s=t.generateOption(this.options.length);t.pushCode(o?`${n} = Array.from(buffer.subarray(offset, offset + ${s}), ${a}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(offset, offset + ${s}));`),t.pushCode(`offset += ${s};`)}else this.options.zeroTerminated?(t.pushCode(`var ${r} = offset;`),t.pushCode("while(dataView.getUint8(offset++) !== 0);"),t.pushCode(o?`${n} = Array.from(buffer.subarray(${r}, offset - 1), ${a}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset - 1));`)):this.options.greedy&&(t.pushCode(`var ${r} = offset;`),t.pushCode("while(buffer.length > offset++);"),t.pushCode(o?`${n} = Array.from(buffer.subarray(${r}, offset), ${a}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset));`));this.options.stripNull&&t.pushCode(`${n} = ${n}.replace(/\\x00+$/g, '')`)}generateBuffer(t){const n=t.generateVariable(this.varName);if(typeof this.options.readUntil=="function"){const r=this.options.readUntil,i=t.generateTmpVariable(),o=t.generateTmpVariable();t.pushCode(`var ${i} = offset;`),t.pushCode(`var ${o} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${o} = dataView.getUint8(offset);`);const a=t.addImport(r);t.pushCode(`if (${a}.call(${t.generateVariable()}, ${o}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${n} = buffer.subarray(${i}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${n} = buffer.subarray(offset);`);else{const r=t.generateOption(this.options.length);t.pushCode(`${n} = buffer.subarray(offset, offset + ${r});`),t.pushCode(`offset += ${r};`)}this.options.clone&&t.pushCode(`${n} = buffer.constructor.from(${n});`)}generateArray(t){const n=t.generateOption(this.options.length),r=t.generateOption(this.options.lengthInBytes),i=this.options.type,o=t.generateTmpVariable(),a=t.generateVariable(this.varName),s=t.generateTmpVariable(),u=this.options.key,l=typeof u=="string";if(l?t.pushCode(`${a} = {};`):t.pushCode(`${a} = [];`),typeof this.options.readUntil=="function"?t.pushCode("do {"):this.options.readUntil==="eof"?t.pushCode(`for (var ${o} = 0; offset < buffer.length; ${o}++) {`):r!==void 0?t.pushCode(`for (var ${o} = offset + ${r}; offset < ${o}; ) {`):t.pushCode(`for (var ${o} = ${n}; ${o} > 0; ${o}--) {`),typeof i=="string")if(In.get(i)){const c=t.generateTmpVariable();if(t.pushCode(`var ${c} = ${go+i}(offset, {`),t.useContextVariables){const f=t.generateVariable();t.pushCode(`$parent: ${f},`),t.pushCode(`$root: ${f}.$root,`),!this.options.readUntil&&r===void 0&&t.pushCode(`$index: ${n} - ${o},`)}t.pushCode("});"),t.pushCode(`var ${s} = ${c}.result; offset = ${c}.offset;`),i!==this.alias&&t.addReference(i)}else{const c=Xf[i],f=Kf[i];t.pushCode(`var ${s} = dataView.get${c}(offset, ${f});`),t.pushCode(`offset += ${Bn[i]};`)}else if(i instanceof Mn){t.pushCode(`var ${s} = {};`);const c=t.generateVariable();t.pushScope(s),t.useContextVariables&&(t.pushCode(`${s}.$parent = ${c};`),t.pushCode(`${s}.$root = ${c}.$root;`),!this.options.readUntil&&r===void 0&&t.pushCode(`${s}.$index = ${n} - ${o};`)),i.generate(t),t.useContextVariables&&(t.pushCode(`delete ${s}.$parent;`),t.pushCode(`delete ${s}.$root;`),t.pushCode(`delete ${s}.$index;`)),t.popScope()}if(l?t.pushCode(`${a}[${s}.${u}] = ${s};`):t.pushCode(`${a}.push(${s});`),t.pushCode("}"),typeof this.options.readUntil=="function"){const c=this.options.readUntil,f=t.addImport(c);t.pushCode(`while (!${f}.call(${t.generateVariable()}, ${s}, buffer.subarray(offset)));`)}}generateChoiceCase(t,n,r){if(typeof r=="string"){const i=t.generateVariable(this.varName);if(In.has(r)){const o=t.generateTmpVariable();t.pushCode(`var ${o} = ${go+r}(offset, {`),t.useContextVariables&&(t.pushCode(`$parent: ${i}.$parent,`),t.pushCode(`$root: ${i}.$root,`)),t.pushCode("});"),t.pushCode(`${i} = ${o}.result; offset = ${o}.offset;`),r!==this.alias&&t.addReference(r)}else{const o=Xf[r],a=Kf[r];t.pushCode(`${i} = dataView.get${o}(offset, ${a});`),t.pushCode(`offset += ${Bn[r]}`)}}else r instanceof Mn&&(t.pushPath(n),r.generate(t),t.popPath(n))}generateChoice(t){const n=t.generateOption(this.options.tag),r=t.generateVariable(this.varName);if(this.varName&&(t.pushCode(`${r} = {};`),t.useContextVariables)){const i=t.generateVariable();t.pushCode(`${r}.$parent = ${i};`),t.pushCode(`${r}.$root = ${i}.$root;`)}t.pushCode(`switch(${n}) {`);for(const i in this.options.choices){const o=parseInt(i,10),a=this.options.choices[o];t.pushCode(`case ${o}:`),this.generateChoiceCase(t,this.varName,a),t.pushCode("break;")}t.pushCode("default:"),this.options.defaultChoice?this.generateChoiceCase(t,this.varName,this.options.defaultChoice):t.generateError(`"Met undefined tag value " + ${n} + " at choice"`),t.pushCode("}"),this.varName&&t.useContextVariables&&(t.pushCode(`delete ${r}.$parent;`),t.pushCode(`delete ${r}.$root;`))}generateNest(t){const n=t.generateVariable(this.varName);if(this.options.type instanceof Mn){if(this.varName&&(t.pushCode(`${n} = {};`),t.useContextVariables)){const r=t.generateVariable();t.pushCode(`${n}.$parent = ${r};`),t.pushCode(`${n}.$root = ${r}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),this.varName&&t.useContextVariables&&t.useContextVariables&&(t.pushCode(`delete ${n}.$parent;`),t.pushCode(`delete ${n}.$root;`))}else if(In.has(this.options.type)){const r=t.generateTmpVariable();if(t.pushCode(`var ${r} = ${go+this.options.type}(offset, {`),t.useContextVariables){const i=t.generateVariable();t.pushCode(`$parent: ${i},`),t.pushCode(`$root: ${i}.$root,`)}t.pushCode("});"),t.pushCode(`${n} = ${r}.result; offset = ${r}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}}generateWrapper(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable();if(typeof this.options.readUntil=="function"){const u=this.options.readUntil,l=t.generateTmpVariable(),c=t.generateTmpVariable();t.pushCode(`var ${l} = offset;`),t.pushCode(`var ${c} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${c} = dataView.getUint8(offset);`);const f=t.addImport(u);t.pushCode(`if (${f}.call(${t.generateVariable()}, ${c}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${r} = buffer.subarray(${l}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${r} = buffer.subarray(offset);`);else{const u=t.generateOption(this.options.length);t.pushCode(`${r} = buffer.subarray(offset, offset + ${u});`),t.pushCode(`offset += ${u};`)}this.options.clone&&t.pushCode(`${r} = buffer.constructor.from(${r});`);const i=t.generateTmpVariable(),o=t.generateTmpVariable(),a=t.generateTmpVariable(),s=t.addImport(this.options.wrapper);if(t.pushCode(`${r} = ${s}.call(this, ${r}).subarray(0);`),t.pushCode(`var ${i} = buffer;`),t.pushCode(`var ${o} = offset;`),t.pushCode(`var ${a} = dataView;`),t.pushCode(`buffer = ${r};`),t.pushCode("offset = 0;"),t.pushCode("dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.options.type instanceof Mn)this.varName&&t.pushCode(`${n} = {};`),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(In.has(this.options.type)){const u=t.generateTmpVariable();t.pushCode(`var ${u} = ${go+this.options.type}(0);`),t.pushCode(`${n} = ${u}.result;`),this.options.type!==this.alias&&t.addReference(this.options.type)}t.pushCode(`buffer = ${i};`),t.pushCode(`dataView = ${a};`),t.pushCode(`offset = ${o};`)}generateFormatter(t,n,r){if(typeof r=="function"){const i=t.addImport(r);t.pushCode(`${n} = ${i}.call(${t.generateVariable()}, ${n});`)}}generatePointer(t){const n=this.options.type,r=t.generateOption(this.options.offset),i=t.generateTmpVariable(),o=t.generateVariable(this.varName);if(t.pushCode(`var ${i} = offset;`),t.pushCode(`offset = ${r};`),this.options.type instanceof Mn){if(t.pushCode(`${o} = {};`),t.useContextVariables){const a=t.generateVariable();t.pushCode(`${o}.$parent = ${a};`),t.pushCode(`${o}.$root = ${a}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),t.useContextVariables&&(t.pushCode(`delete ${o}.$parent;`),t.pushCode(`delete ${o}.$root;`))}else if(In.has(this.options.type)){const a=t.generateTmpVariable();if(t.pushCode(`var ${a} = ${go+this.options.type}(offset, {`),t.useContextVariables){const s=t.generateVariable();t.pushCode(`$parent: ${s},`),t.pushCode(`$root: ${s}.$root,`)}t.pushCode("});"),t.pushCode(`${o} = ${a}.result; offset = ${a}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}else if(Object.keys(Bn).indexOf(this.options.type)>=0){const a=Xf[n],s=Kf[n];t.pushCode(`${o} = dataView.get${a}(offset, ${s});`),t.pushCode(`offset += ${Bn[n]};`)}t.pushCode(`offset = ${i};`)}generateSaveOffset(t){const n=t.generateVariable(this.varName);t.pushCode(`${n} = offset`)}};var ZA={},tg={},mo={},Vl={};Object.defineProperty(Vl,"__esModule",{value:!0});function ng(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function YA(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function rg(e,t,n){return t&&YA(e.prototype,t),n&&YA(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function PL(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&ig(e,t)}function Ea(e){return Ea=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Ea(e)}function ig(e,t){return ig=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},ig(e,t)}function LL(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function jl(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function NL(e,t){if(t&&(typeof t=="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return jl(e)}function OL(e){var t=LL();return function(){var r=Ea(e),i;if(t){var o=Ea(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return NL(this,i)}}function zL(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=Ea(e),e!==null););return e}function Jf(){return typeof Reflect<"u"&&Reflect.get?Jf=Reflect.get.bind():Jf=function(t,n,r){var i=zL(t,n);if(i){var o=Object.getOwnPropertyDescriptor(i,n);return o.get?o.get.call(arguments.length<3?t:r):o.value}},Jf.apply(this,arguments)}var QA=function(){function e(){ng(this,e),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return rg(e,[{key:"addEventListener",value:function(n,r,i){n in this.listeners||(this.listeners[n]=[]),this.listeners[n].push({callback:r,options:i})}},{key:"removeEventListener",value:function(n,r){if(n in this.listeners){for(var i=this.listeners[n],o=0,a=i.length;o<a;o++)if(i[o].callback===r){i.splice(o,1);return}}}},{key:"dispatchEvent",value:function(n){if(n.type in this.listeners){for(var r=this.listeners[n.type],i=r.slice(),o=0,a=i.length;o<a;o++){var s=i[o];try{s.callback.call(this,n)}catch(u){Promise.resolve().then(function(){throw u})}s.options&&s.options.once&&this.removeEventListener(n.type,s.callback)}return!n.defaultPrevented}}}]),e}(),og=function(e){PL(n,e);var t=OL(n);function n(){var r;return ng(this,n),r=t.call(this),r.listeners||QA.call(jl(r)),Object.defineProperty(jl(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(jl(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(jl(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return rg(n,[{key:"toString",value:function(){return"[object AbortSignal]"}},{key:"dispatchEvent",value:function(i){i.type==="abort"&&(this.aborted=!0,typeof this.onabort=="function"&&this.onabort.call(this,i)),Jf(Ea(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(QA),XA=function(){function e(){ng(this,e),Object.defineProperty(this,"signal",{value:new og,writable:!0,configurable:!0})}return rg(e,[{key:"abort",value:function(n){var r;try{r=new Event("abort")}catch{typeof document<"u"?document.createEvent?(r=document.createEvent("Event"),r.initEvent("abort",!1,!1)):(r=document.createEventObject(),r.type="abort"):r={type:"abort",bubbles:!1,cancelable:!1}}var i=n;if(i===void 0)if(typeof document>"u")i=new Error("This operation was aborted"),i.name="AbortError";else try{i=new DOMException("signal is aborted without reason")}catch{i=new Error("This operation was aborted"),i.name="AbortError"}this.signal.reason=i,this.signal.dispatchEvent(r)}},{key:"toString",value:function(){return"[object AbortController]"}}]),e}();typeof Symbol<"u"&&Symbol.toStringTag&&(XA.prototype[Symbol.toStringTag]="AbortController",og.prototype[Symbol.toStringTag]="AbortSignal");function UL(e){return e.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof e.Request=="function"&&!e.Request.prototype.hasOwnProperty("signal")||!e.AbortController}function GL(e){typeof e=="function"&&(e={fetch:e});var t=e,n=t.fetch,r=t.Request,i=r===void 0?n.Request:r,o=t.AbortController,a=t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,s=a===void 0?!1:a;if(!UL({fetch:n,Request:i,AbortController:o,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:s}))return{fetch:n,Request:u};var u=i;(u&&!u.prototype.hasOwnProperty("signal")||s)&&(u=function(h,d){var p;d&&d.signal&&(p=d.signal,delete d.signal);var m=new i(h,d);return p&&Object.defineProperty(m,"signal",{writable:!1,enumerable:!1,configurable:!0,value:p}),m},u.prototype=i.prototype);var l=n,c=function(h,d){var p=u&&u.prototype.isPrototypeOf(h)?h.signal:d?d.signal:void 0;if(p){var m;try{m=new DOMException("Aborted","AbortError")}catch{m=new Error("Aborted"),m.name="AbortError"}if(p.aborted)return Promise.reject(m);var y=new Promise(function(w,A){p.addEventListener("abort",function(){return A(m)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([y,l(h,d)])}return l(h,d)};return{fetch:c,Request:u}}Vl.AbortController=XA,Vl.AbortSignal=og,Vl.abortableFetch=GL,Object.defineProperty(mo,"__esModule",{value:!0}),mo.AbortSignal=mo.AbortController=void 0;const KA=Vl;var eh=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof globalThis<"u")return globalThis;throw new Error("unable to locate global object")};let HL=typeof eh().AbortController>"u"?KA.AbortController:eh().AbortController;mo.AbortController=HL;let VL=typeof eh().AbortController>"u"?KA.AbortSignal:eh().AbortSignal;mo.AbortSignal=VL;var ag={};Object.defineProperty(ag,"__esModule",{value:!0});const jL=mo;class $L{}class qL{constructor(){this.signals=new Set,this.abortController=new jL.AbortController}addSignal(t=new $L){if(this.signal.aborted)throw new Error("cannot add a signal, already aborted!");this.signals.add(t),t.aborted?this.handleAborted(t):typeof t.addEventListener=="function"&&t.addEventListener("abort",()=>{this.handleAborted(t)})}handleAborted(t){this.signals.delete(t),this.signals.size===0&&this.abortController.abort()}get signal(){return this.abortController.signal}abort(){this.abortController.abort()}}ag.default=qL;var sg={};Object.defineProperty(sg,"__esModule",{value:!0});class WL{constructor(){this.callbacks=new Set}addCallback(t=()=>{}){this.callbacks.add(t),t(this.currentMessage)}callback(t){this.currentMessage=t,this.callbacks.forEach(n=>{n(t)})}}sg.default=WL;var JA=If&&If.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(tg,"__esModule",{value:!0});const ZL=mo,YL=JA(ag),QL=JA(sg);class th{constructor({fill:t,cache:n}){if(typeof t!="function")throw new TypeError("must pass a fill function");if(typeof n!="object")throw new TypeError("must pass a cache object");if(typeof n.get!="function"||typeof n.set!="function"||typeof n.delete!="function")throw new TypeError("cache must implement get(key), set(key, val), and and delete(key)");this.cache=n,this.fillCallback=t}static isAbortException(t){return t.name==="AbortError"||t.code==="ERR_ABORTED"||t.message==="AbortError: aborted"||t.message==="Error: aborted"}evict(t,n){this.cache.get(t)===n&&this.cache.delete(t)}fill(t,n,r,i){const o=new YL.default,a=new QL.default;a.addCallback(i);const s={aborter:o,promise:this.fillCallback(n,o.signal,u=>{a.callback(u)}),settled:!1,statusReporter:a,get aborted(){return this.aborter.signal.aborted}};s.aborter.addSignal(r),s.aborter.signal.addEventListener("abort",()=>{s.settled||this.evict(t,s)}),s.promise.then(()=>{s.settled=!0},()=>{s.settled=!0,this.evict(t,s)}).catch(u=>{throw console.error(u),u}),this.cache.set(t,s)}static checkSinglePromise(t,n){function r(){if(n&&n.aborted)throw Object.assign(new Error("aborted"),{code:"ERR_ABORTED"})}return t.then(i=>(r(),i),i=>{throw r(),i})}has(t){return this.cache.has(t)}get(t,n,r,i){if(!r&&n instanceof ZL.AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const o=this.cache.get(t);return o?o.aborted&&!o.settled?(this.evict(t,o),this.get(t,n,r,i)):o.settled?o.promise:(o.aborter.addSignal(r),o.statusReporter.addCallback(i),th.checkSinglePromise(o.promise,r)):(this.fill(t,n,r,i),th.checkSinglePromise(this.cache.get(t).promise,r))}delete(t){const n=this.cache.get(t);n&&(n.settled||n.aborter.abort(),this.cache.delete(t))}clear(){const t=this.cache.keys();let n=0;for(let r=t.next();!r.done;r=t.next())this.delete(r.value),n+=1;return n}}tg.default=th;var XL=If&&If.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ZA,"__esModule",{value:!0});const KL=XL(tg);var nh=ZA.default=KL.default;class JL{constructor(t={}){if(!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=t.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(t,n){this.cache.set(t,n),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map)}get(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t)){const n=this.oldCache.get(t);return this.oldCache.delete(t),this._set(t,n),n}}set(t,n){return this.cache.has(t)?this.cache.set(t,n):this._set(t,n),this}has(t){return this.cache.has(t)||this.oldCache.has(t)}peek(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t))return this.oldCache.get(t)}delete(t){const n=this.cache.delete(t);return n&&this._size--,this.oldCache.delete(t)||n}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[t]of this)yield t}*values(){for(const[,t]of this)yield t}*[Symbol.iterator](){for(const t of this.cache)yield t;for(const t of this.oldCache){const[n]=t;this.cache.has(n)||(yield t)}}get size(){let t=0;for(const n of this.oldCache.keys())this.cache.has(n)||t++;return this._size+t}}var eN=JL;const rh=Sl(eN);class pi{constructor(t,n){this.ranges=arguments.length===2?[{min:t,max:n}]:0 in t?Object.assign({},t):[t]}min(){return this.ranges[0].min}max(){return this.ranges[this.ranges.length-1].max}contains(t){for(let n=0;n<this.ranges.length;n+=1){const r=this.ranges[n];if(r.min<=t&&r.max>=t)return!0}return!1}isContiguous(){return this.ranges.length>1}getRanges(){return this.ranges.map(t=>new pi(t.min,t.max))}toString(){return this.ranges.map(t=>`[${t.min}-${t.max}]`).join(",")}union(t){const n=this.getRanges().concat(t.getRanges()).sort(this.rangeOrder),r=[];let i=n[0];for(let o=1;o<n.length;o+=1){const a=n[o];a.min()>i.max()+1?(r.push(i),i=a):a.max()>i.max()&&(i=new pi(i.min(),a.max()))}return r.push(i),r.length===1?r[0]:new pi(r)}intersection(t){let n=this,r=t;const i=this.ranges(),o=r.ranges(),a=i.length,s=o.length;let u=0,l=0;const c=[];for(;u<a&&l<s;){n=i[u],r=o[l];const f=Math.max(n.min(),r.min()),h=Math.min(n.max(),r.max());h>=f&&c.push(new pi(f,h)),n.max()>r.max()?l+=1:u+=1}if(c.length===0)throw new Error("found range of length 0");return c.length===1?c[0]:new pi(c)}coverage(){let t=0;const n=this.ranges();for(const r of n)t+=r.max()-r.min()+1;return t}rangeOrder(t,n){let r=t,i=n;return arguments.length<2&&(i=r,r=this),r.min()<i.min()?-1:r.min()>i.min()?1:r.max()<i.max()?-1:i.max()>r.max()?1:0}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const tN=4,e3=0,t3=1,nN=2;function _a(e){let t=e.length;for(;--t>=0;)e[t]=0}const rN=0,n3=1,iN=2,oN=3,aN=258,lg=29,$l=256,ql=$l+1+lg,Sa=30,ug=19,r3=2*ql+1,bo=15,cg=16,sN=7,fg=256,i3=16,o3=17,a3=18,hg=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),ih=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),lN=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),s3=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),uN=512,wr=new Array((ql+2)*2);_a(wr);const Wl=new Array(Sa*2);_a(Wl);const Zl=new Array(uN);_a(Zl);const Yl=new Array(aN-oN+1);_a(Yl);const dg=new Array(lg);_a(dg);const oh=new Array(Sa);_a(oh);function pg(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}let l3,u3,c3;function gg(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const f3=e=>e<256?Zl[e]:Zl[256+(e>>>7)],Ql=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},jt=(e,t,n)=>{e.bi_valid>cg-n?(e.bi_buf|=t<<e.bi_valid&65535,Ql(e,e.bi_buf),e.bi_buf=t>>cg-e.bi_valid,e.bi_valid+=n-cg):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},Kn=(e,t,n)=>{jt(e,n[t*2],n[t*2+1])},h3=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},cN=e=>{e.bi_valid===16?(Ql(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},fN=(e,t)=>{const n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,o=t.stat_desc.has_stree,a=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,u=t.stat_desc.max_length;let l,c,f,h,d,p,m=0;for(h=0;h<=bo;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<r3;l++)c=e.heap[l],h=n[n[c*2+1]*2+1]+1,h>u&&(h=u,m++),n[c*2+1]=h,!(c>r)&&(e.bl_count[h]++,d=0,c>=s&&(d=a[c-s]),p=n[c*2],e.opt_len+=p*(h+d),o&&(e.static_len+=p*(i[c*2+1]+d)));if(m!==0){do{for(h=u-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[u]--,m-=2}while(m>0);for(h=u;h!==0;h--)for(c=e.bl_count[h];c!==0;)f=e.heap[--l],!(f>r)&&(n[f*2+1]!==h&&(e.opt_len+=(h-n[f*2+1])*n[f*2],n[f*2+1]=h),c--)}},d3=(e,t,n)=>{const r=new Array(bo+1);let i=0,o,a;for(o=1;o<=bo;o++)i=i+n[o-1]<<1,r[o]=i;for(a=0;a<=t;a++){let s=e[a*2+1];s!==0&&(e[a*2]=h3(r[s]++,s))}},hN=()=>{let e,t,n,r,i;const o=new Array(bo+1);for(n=0,r=0;r<lg-1;r++)for(dg[r]=n,e=0;e<1<<hg[r];e++)Yl[n++]=r;for(Yl[n-1]=r,i=0,r=0;r<16;r++)for(oh[r]=i,e=0;e<1<<ih[r];e++)Zl[i++]=r;for(i>>=7;r<Sa;r++)for(oh[r]=i<<7,e=0;e<1<<ih[r]-7;e++)Zl[256+i++]=r;for(t=0;t<=bo;t++)o[t]=0;for(e=0;e<=143;)wr[e*2+1]=8,e++,o[8]++;for(;e<=255;)wr[e*2+1]=9,e++,o[9]++;for(;e<=279;)wr[e*2+1]=7,e++,o[7]++;for(;e<=287;)wr[e*2+1]=8,e++,o[8]++;for(d3(wr,ql+1,o),e=0;e<Sa;e++)Wl[e*2+1]=5,Wl[e*2]=h3(e,5);l3=new pg(wr,hg,$l+1,ql,bo),u3=new pg(Wl,ih,0,Sa,bo),c3=new pg(new Array(0),lN,0,ug,sN)},p3=e=>{let t;for(t=0;t<ql;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Sa;t++)e.dyn_dtree[t*2]=0;for(t=0;t<ug;t++)e.bl_tree[t*2]=0;e.dyn_ltree[fg*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},g3=e=>{e.bi_valid>8?Ql(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},m3=(e,t,n,r)=>{const i=t*2,o=n*2;return e[i]<e[o]||e[i]===e[o]&&r[t]<=r[n]},mg=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&m3(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!m3(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},b3=(e,t,n)=>{let r,i,o=0,a,s;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+o++]&255,r+=(e.pending_buf[e.sym_buf+o++]&255)<<8,i=e.pending_buf[e.sym_buf+o++],r===0?Kn(e,i,t):(a=Yl[i],Kn(e,a+$l+1,t),s=hg[a],s!==0&&(i-=dg[a],jt(e,i,s)),r--,a=f3(r),Kn(e,a,n),s=ih[a],s!==0&&(r-=oh[a],jt(e,r,s)));while(o<e.sym_next);Kn(e,fg,t)},bg=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,o=t.stat_desc.elems;let a,s,u=-1,l;for(e.heap_len=0,e.heap_max=r3,a=0;a<o;a++)n[a*2]!==0?(e.heap[++e.heap_len]=u=a,e.depth[a]=0):n[a*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=u,a=e.heap_len>>1;a>=1;a--)mg(e,n,a);l=o;do a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],mg(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=s,n[l*2]=n[a*2]+n[s*2],e.depth[l]=(e.depth[a]>=e.depth[s]?e.depth[a]:e.depth[s])+1,n[a*2+1]=n[s*2+1]=l,e.heap[1]=l++,mg(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],fN(e,t),d3(n,u,e.bl_count)},y3=(e,t,n)=>{let r,i=-1,o,a=t[0*2+1],s=0,u=7,l=4;for(a===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)o=a,a=t[(r+1)*2+1],!(++s<u&&o===a)&&(s<l?e.bl_tree[o*2]+=s:o!==0?(o!==i&&e.bl_tree[o*2]++,e.bl_tree[i3*2]++):s<=10?e.bl_tree[o3*2]++:e.bl_tree[a3*2]++,s=0,i=o,a===0?(u=138,l=3):o===a?(u=6,l=3):(u=7,l=4))},w3=(e,t,n)=>{let r,i=-1,o,a=t[0*2+1],s=0,u=7,l=4;for(a===0&&(u=138,l=3),r=0;r<=n;r++)if(o=a,a=t[(r+1)*2+1],!(++s<u&&o===a)){if(s<l)do Kn(e,o,e.bl_tree);while(--s!==0);else o!==0?(o!==i&&(Kn(e,o,e.bl_tree),s--),Kn(e,i3,e.bl_tree),jt(e,s-3,2)):s<=10?(Kn(e,o3,e.bl_tree),jt(e,s-3,3)):(Kn(e,a3,e.bl_tree),jt(e,s-11,7));s=0,i=o,a===0?(u=138,l=3):o===a?(u=6,l=3):(u=7,l=4)}},dN=e=>{let t;for(y3(e,e.dyn_ltree,e.l_desc.max_code),y3(e,e.dyn_dtree,e.d_desc.max_code),bg(e,e.bl_desc),t=ug-1;t>=3&&e.bl_tree[s3[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},pN=(e,t,n,r)=>{let i;for(jt(e,t-257,5),jt(e,n-1,5),jt(e,r-4,4),i=0;i<r;i++)jt(e,e.bl_tree[s3[i]*2+1],3);w3(e,e.dyn_ltree,t-1),w3(e,e.dyn_dtree,n-1)},gN=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return e3;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return t3;for(n=32;n<$l;n++)if(e.dyn_ltree[n*2]!==0)return t3;return e3};let v3=!1;const mN=e=>{v3||(hN(),v3=!0),e.l_desc=new gg(e.dyn_ltree,l3),e.d_desc=new gg(e.dyn_dtree,u3),e.bl_desc=new gg(e.bl_tree,c3),e.bi_buf=0,e.bi_valid=0,p3(e)},x3=(e,t,n,r)=>{jt(e,(rN<<1)+(r?1:0),3),g3(e),Ql(e,n),Ql(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},bN=e=>{jt(e,n3<<1,3),Kn(e,fg,wr),cN(e)},yN=(e,t,n,r)=>{let i,o,a=0;e.level>0?(e.strm.data_type===nN&&(e.strm.data_type=gN(e)),bg(e,e.l_desc),bg(e,e.d_desc),a=dN(e),i=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=i&&(i=o)):i=o=n+5,n+4<=i&&t!==-1?x3(e,t,n,r):e.strategy===tN||o===i?(jt(e,(n3<<1)+(r?1:0),3),b3(e,wr,Wl)):(jt(e,(iN<<1)+(r?1:0),3),pN(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),b3(e,e.dyn_ltree,e.dyn_dtree)),p3(e),r&&g3(e)},wN=(e,t,n)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=n,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(Yl[n]+$l+1)*2]++,e.dyn_dtree[f3(t)*2]++),e.sym_next===e.sym_end);var vN=mN,xN=x3,AN=yN,EN=wN,_N=bN,SN={_tr_init:vN,_tr_stored_block:xN,_tr_flush_block:AN,_tr_tally:EN,_tr_align:_N},Xl=(e,t,n,r)=>{let i=e&65535|0,o=e>>>16&65535|0,a=0;for(;n!==0;){a=n>2e3?2e3:n,n-=a;do i=i+t[r++]|0,o=o+i|0;while(--a);i%=65521,o%=65521}return i|o<<16|0};const CN=()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t},kN=new Uint32Array(CN());var pt=(e,t,n,r)=>{const i=kN,o=r+n;e^=-1;for(let a=r;a<o;a++)e=e>>>8^i[(e^t[a])&255];return e^-1},Ca={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"},Kl={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:TN,_tr_stored_block:yg,_tr_flush_block:IN,_tr_tally:gi,_tr_align:BN}=SN,{Z_NO_FLUSH:mi,Z_PARTIAL_FLUSH:DN,Z_FULL_FLUSH:RN,Z_FINISH:pn,Z_BLOCK:A3,Z_OK:vt,Z_STREAM_END:E3,Z_STREAM_ERROR:Jn,Z_DATA_ERROR:FN,Z_BUF_ERROR:wg,Z_DEFAULT_COMPRESSION:MN,Z_FILTERED:PN,Z_HUFFMAN_ONLY:ah,Z_RLE:LN,Z_FIXED:NN,Z_DEFAULT_STRATEGY:ON,Z_UNKNOWN:zN,Z_DEFLATED:sh}=Kl,UN=9,GN=15,HN=8,VN=29,vg=256+1+VN,jN=30,$N=19,qN=2*vg+1,WN=15,ge=3,bi=258,er=bi+ge+1,ZN=32,ka=42,xg=57,Ag=69,Eg=73,_g=91,Sg=103,yo=113,Jl=666,Ft=1,Ta=2,wo=3,Ia=4,YN=3,vo=(e,t)=>(e.msg=Ca[t],t),_3=e=>e*2-(e>4?9:0),yi=e=>{let t=e.length;for(;--t>=0;)e[t]=0},QN=e=>{let t,n,r,i=e.w_size;t=e.hash_size,r=t;do n=e.head[--r],e.head[r]=n>=i?n-i:0;while(--t);t=i,r=t;do n=e.prev[--r],e.prev[r]=n>=i?n-i:0;while(--t)};let wi=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const Kt=e=>{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},Jt=(e,t)=>{IN(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Kt(e.strm)},_e=(e,t)=>{e.pending_buf[e.pending++]=t},eu=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},Cg=(e,t,n,r)=>{let i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),n),e.state.wrap===1?e.adler=Xl(e.adler,t,i,n):e.state.wrap===2&&(e.adler=pt(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},S3=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,o,a=e.prev_length,s=e.nice_match;const u=e.strstart>e.w_size-er?e.strstart-(e.w_size-er):0,l=e.window,c=e.w_mask,f=e.prev,h=e.strstart+bi;let d=l[r+a-1],p=l[r+a];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(l[i+a]!==p||l[i+a-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(o=bi-(h-r),r=h-bi,o>a){if(e.match_start=t,a=o,o>=s)break;d=l[r+a-1],p=l[r+a]}}while((t=f[t&c])>u&&--n!==0);return a<=e.lookahead?a:e.lookahead},Ba=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-er)&&(e.window.set(e.window.subarray(t,t+t-r),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),QN(e),r+=t),e.strm.avail_in===0)break;if(n=Cg(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=ge)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=wi(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=wi(e,e.ins_h,e.window[i+ge-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<ge)););}while(e.lookahead<er&&e.strm.avail_in!==0)},C3=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,o,a=0,s=e.strm.avail_in;do{if(r=65535,o=e.bi_valid+42>>3,e.strm.avail_out<o||(o=e.strm.avail_out-o,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>o&&(r=o),r<n&&(r===0&&t!==pn||t===mi||r!==i+e.strm.avail_in)))break;a=t===pn&&r===i+e.strm.avail_in?1:0,yg(e,0,0,a),e.pending_buf[e.pending-4]=r,e.pending_buf[e.pending-3]=r>>8,e.pending_buf[e.pending-2]=~r,e.pending_buf[e.pending-1]=~r>>8,Kt(e.strm),i&&(i>r&&(i=r),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,r-=i),r&&(Cg(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(a===0);return s-=e.strm.avail_in,s&&(s>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=s&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-s,e.strm.next_in),e.strstart),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),a?Ia:t!==mi&&t!==pn&&e.strm.avail_in===0&&e.strstart===e.block_start?Ta:(o=e.window_size-e.strstart,e.strm.avail_in>o&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,o+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),o>e.strm.avail_in&&(o=e.strm.avail_in),o&&(Cg(e.strm,e.window,e.strstart,o),e.strstart+=o,e.insert+=o>e.w_size-e.insert?e.w_size-e.insert:o),e.high_water<e.strstart&&(e.high_water=e.strstart),o=e.bi_valid+42>>3,o=e.pending_buf_size-o>65535?65535:e.pending_buf_size-o,n=o>e.w_size?e.w_size:o,i=e.strstart-e.block_start,(i>=n||(i||t===pn)&&t!==mi&&e.strm.avail_in===0&&i<=o)&&(r=i>o?o:i,a=t===pn&&e.strm.avail_in===0&&r===i?1:0,yg(e,e.block_start,r,a),e.block_start+=r,Kt(e.strm)),a?wo:Ft)},kg=(e,t)=>{let n,r;for(;;){if(e.lookahead<er){if(Ba(e),e.lookahead<er&&t===mi)return Ft;if(e.lookahead===0)break}if(n=0,e.lookahead>=ge&&(e.ins_h=wi(e,e.ins_h,e.window[e.strstart+ge-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-er&&(e.match_length=S3(e,n)),e.match_length>=ge)if(r=gi(e,e.strstart-e.match_start,e.match_length-ge),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=ge){e.match_length--;do e.strstart++,e.ins_h=wi(e,e.ins_h,e.window[e.strstart+ge-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=wi(e,e.ins_h,e.window[e.strstart+1]);else r=gi(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(Jt(e,!1),e.strm.avail_out===0))return Ft}return e.insert=e.strstart<ge-1?e.strstart:ge-1,t===pn?(Jt(e,!0),e.strm.avail_out===0?wo:Ia):e.sym_next&&(Jt(e,!1),e.strm.avail_out===0)?Ft:Ta},Da=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<er){if(Ba(e),e.lookahead<er&&t===mi)return Ft;if(e.lookahead===0)break}if(n=0,e.lookahead>=ge&&(e.ins_h=wi(e,e.ins_h,e.window[e.strstart+ge-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=ge-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-er&&(e.match_length=S3(e,n),e.match_length<=5&&(e.strategy===PN||e.match_length===ge&&e.strstart-e.match_start>4096)&&(e.match_length=ge-1)),e.prev_length>=ge&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-ge,r=gi(e,e.strstart-1-e.prev_match,e.prev_length-ge),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=wi(e,e.ins_h,e.window[e.strstart+ge-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=ge-1,e.strstart++,r&&(Jt(e,!1),e.strm.avail_out===0))return Ft}else if(e.match_available){if(r=gi(e,0,e.window[e.strstart-1]),r&&Jt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Ft}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=gi(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<ge-1?e.strstart:ge-1,t===pn?(Jt(e,!0),e.strm.avail_out===0?wo:Ia):e.sym_next&&(Jt(e,!1),e.strm.avail_out===0)?Ft:Ta},XN=(e,t)=>{let n,r,i,o;const a=e.window;for(;;){if(e.lookahead<=bi){if(Ba(e),e.lookahead<=bi&&t===mi)return Ft;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=ge&&e.strstart>0&&(i=e.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){o=e.strstart+bi;do;while(r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&i<o);e.match_length=bi-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=ge?(n=gi(e,1,e.match_length-ge),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=gi(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(Jt(e,!1),e.strm.avail_out===0))return Ft}return e.insert=0,t===pn?(Jt(e,!0),e.strm.avail_out===0?wo:Ia):e.sym_next&&(Jt(e,!1),e.strm.avail_out===0)?Ft:Ta},KN=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(Ba(e),e.lookahead===0)){if(t===mi)return Ft;break}if(e.match_length=0,n=gi(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(Jt(e,!1),e.strm.avail_out===0))return Ft}return e.insert=0,t===pn?(Jt(e,!0),e.strm.avail_out===0?wo:Ia):e.sym_next&&(Jt(e,!1),e.strm.avail_out===0)?Ft:Ta};function tr(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}const tu=[new tr(0,0,0,0,C3),new tr(4,4,8,4,kg),new tr(4,5,16,8,kg),new tr(4,6,32,32,kg),new tr(4,4,16,16,Da),new tr(8,16,32,32,Da),new tr(8,16,128,128,Da),new tr(8,32,128,256,Da),new tr(32,128,258,1024,Da),new tr(32,258,258,4096,Da)],JN=e=>{e.window_size=2*e.w_size,yi(e.head),e.max_lazy_match=tu[e.level].max_lazy,e.good_match=tu[e.level].good_length,e.nice_match=tu[e.level].nice_length,e.max_chain_length=tu[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=ge-1,e.match_available=0,e.ins_h=0};function eO(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=sh,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(qN*2),this.dyn_dtree=new Uint16Array((2*jN+1)*2),this.bl_tree=new Uint16Array((2*$N+1)*2),yi(this.dyn_ltree),yi(this.dyn_dtree),yi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(WN+1),this.heap=new Uint16Array(2*vg+1),yi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*vg+1),yi(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const nu=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==ka&&t.status!==xg&&t.status!==Ag&&t.status!==Eg&&t.status!==_g&&t.status!==Sg&&t.status!==yo&&t.status!==Jl?1:0},k3=e=>{if(nu(e))return vo(e,Jn);e.total_in=e.total_out=0,e.data_type=zN;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?xg:t.wrap?ka:yo,e.adler=t.wrap===2?0:1,t.last_flush=-2,TN(t),vt},T3=e=>{const t=k3(e);return t===vt&&JN(e.state),t},tO=(e,t)=>nu(e)||e.state.wrap!==2?Jn:(e.state.gzhead=t,vt),I3=(e,t,n,r,i,o)=>{if(!e)return Jn;let a=1;if(t===MN&&(t=6),r<0?(a=0,r=-r):r>15&&(a=2,r-=16),i<1||i>UN||n!==sh||r<8||r>15||t<0||t>9||o<0||o>NN||r===8&&a!==1)return vo(e,Jn);r===8&&(r=9);const s=new eO;return e.state=s,s.strm=e,s.status=ka,s.wrap=a,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+ge-1)/ge),s.window=new Uint8Array(s.w_size*2),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=(s.lit_bufsize-1)*3,s.level=t,s.strategy=o,s.method=n,T3(e)},nO=(e,t)=>I3(e,t,sh,GN,HN,ON),rO=(e,t)=>{if(nu(e)||t>A3||t<0)return e?vo(e,Jn):Jn;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===Jl&&t!==pn)return vo(e,e.avail_out===0?wg:Jn);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(Kt(e),e.avail_out===0)return n.last_flush=-1,vt}else if(e.avail_in===0&&_3(t)<=_3(r)&&t!==pn)return vo(e,wg);if(n.status===Jl&&e.avail_in!==0)return vo(e,wg);if(n.status===ka&&n.wrap===0&&(n.status=yo),n.status===ka){let i=sh+(n.w_bits-8<<4)<<8,o=-1;if(n.strategy>=ah||n.level<2?o=0:n.level<6?o=1:n.level===6?o=2:o=3,i|=o<<6,n.strstart!==0&&(i|=ZN),i+=31-i%31,eu(n,i),n.strstart!==0&&(eu(n,e.adler>>>16),eu(n,e.adler&65535)),e.adler=1,n.status=yo,Kt(e),n.pending!==0)return n.last_flush=-1,vt}if(n.status===xg){if(e.adler=0,_e(n,31),_e(n,139),_e(n,8),n.gzhead)_e(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),_e(n,n.gzhead.time&255),_e(n,n.gzhead.time>>8&255),_e(n,n.gzhead.time>>16&255),_e(n,n.gzhead.time>>24&255),_e(n,n.level===9?2:n.strategy>=ah||n.level<2?4:0),_e(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(_e(n,n.gzhead.extra.length&255),_e(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=pt(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Ag;else if(_e(n,0),_e(n,0),_e(n,0),_e(n,0),_e(n,0),_e(n,n.level===9?2:n.strategy>=ah||n.level<2?4:0),_e(n,YN),n.status=yo,Kt(e),n.pending!==0)return n.last_flush=-1,vt}if(n.status===Ag){if(n.gzhead.extra){let i=n.pending,o=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+o>n.pending_buf_size;){let s=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(e.adler=pt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,Kt(e),n.pending!==0)return n.last_flush=-1,vt;i=0,o-=s}let a=new Uint8Array(n.gzhead.extra);n.pending_buf.set(a.subarray(n.gzindex,n.gzindex+o),n.pending),n.pending+=o,n.gzhead.hcrc&&n.pending>i&&(e.adler=pt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=Eg}if(n.status===Eg){if(n.gzhead.name){let i=n.pending,o;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=pt(e.adler,n.pending_buf,n.pending-i,i)),Kt(e),n.pending!==0)return n.last_flush=-1,vt;i=0}n.gzindex<n.gzhead.name.length?o=n.gzhead.name.charCodeAt(n.gzindex++)&255:o=0,_e(n,o)}while(o!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=pt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=_g}if(n.status===_g){if(n.gzhead.comment){let i=n.pending,o;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=pt(e.adler,n.pending_buf,n.pending-i,i)),Kt(e),n.pending!==0)return n.last_flush=-1,vt;i=0}n.gzindex<n.gzhead.comment.length?o=n.gzhead.comment.charCodeAt(n.gzindex++)&255:o=0,_e(n,o)}while(o!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=pt(e.adler,n.pending_buf,n.pending-i,i))}n.status=Sg}if(n.status===Sg){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(Kt(e),n.pending!==0))return n.last_flush=-1,vt;_e(n,e.adler&255),_e(n,e.adler>>8&255),e.adler=0}if(n.status=yo,Kt(e),n.pending!==0)return n.last_flush=-1,vt}if(e.avail_in!==0||n.lookahead!==0||t!==mi&&n.status!==Jl){let i=n.level===0?C3(n,t):n.strategy===ah?KN(n,t):n.strategy===LN?XN(n,t):tu[n.level].func(n,t);if((i===wo||i===Ia)&&(n.status=Jl),i===Ft||i===wo)return e.avail_out===0&&(n.last_flush=-1),vt;if(i===Ta&&(t===DN?BN(n):t!==A3&&(yg(n,0,0,!1),t===RN&&(yi(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),Kt(e),e.avail_out===0))return n.last_flush=-1,vt}return t!==pn?vt:n.wrap<=0?E3:(n.wrap===2?(_e(n,e.adler&255),_e(n,e.adler>>8&255),_e(n,e.adler>>16&255),_e(n,e.adler>>24&255),_e(n,e.total_in&255),_e(n,e.total_in>>8&255),_e(n,e.total_in>>16&255),_e(n,e.total_in>>24&255)):(eu(n,e.adler>>>16),eu(n,e.adler&65535)),Kt(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?vt:E3)},iO=e=>{if(nu(e))return Jn;const t=e.state.status;return e.state=null,t===yo?vo(e,FN):vt},oO=(e,t)=>{let n=t.length;if(nu(e))return Jn;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==ka||r.lookahead)return Jn;if(i===1&&(e.adler=Xl(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(yi(r.head),r.strstart=0,r.block_start=0,r.insert=0);let u=new Uint8Array(r.w_size);u.set(t.subarray(n-r.w_size,n),0),t=u,n=r.w_size}const o=e.avail_in,a=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,Ba(r);r.lookahead>=ge;){let u=r.strstart,l=r.lookahead-(ge-1);do r.ins_h=wi(r,r.ins_h,r.window[u+ge-1]),r.prev[u&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=u,u++;while(--l);r.strstart=u,r.lookahead=ge-1,Ba(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=ge-1,r.match_available=0,e.next_in=a,e.input=s,e.avail_in=o,r.wrap=i,vt};var aO=nO,sO=I3,lO=T3,uO=k3,cO=tO,fO=rO,hO=iO,dO=oO,pO="pako deflate (from Nodeca project)",ru={deflateInit:aO,deflateInit2:sO,deflateReset:lO,deflateResetKeep:uO,deflateSetHeader:cO,deflate:fO,deflateEnd:hO,deflateSetDictionary:dO,deflateInfo:pO};const gO=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var mO=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)gO(n,r)&&(e[r]=n[r])}}return e},bO=e=>{let t=0;for(let r=0,i=e.length;r<i;r++)t+=e[r].length;const n=new Uint8Array(t);for(let r=0,i=0,o=e.length;r<o;r++){let a=e[r];n.set(a,i),i+=a.length}return n},lh={assign:mO,flattenChunks:bO};let B3=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{B3=!1}const iu=new Uint8Array(256);for(let e=0;e<256;e++)iu[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;iu[254]=iu[254]=1;var yO=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,o,a=e.length,s=0;for(i=0;i<a;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<a&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(s),o=0,i=0;o<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<a&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[o++]=n:n<2048?(t[o++]=192|n>>>6,t[o++]=128|n&63):n<65536?(t[o++]=224|n>>>12,t[o++]=128|n>>>6&63,t[o++]=128|n&63):(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63,t[o++]=128|n>>>6&63,t[o++]=128|n&63);return t};const wO=(e,t)=>{if(t<65534&&e.subarray&&B3)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n};var vO=(e,t)=>{const n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let r,i;const o=new Array(n*2);for(i=0,r=0;r<n;){let a=e[r++];if(a<128){o[i++]=a;continue}let s=iu[a];if(s>4){o[i++]=65533,r+=s-1;continue}for(a&=s===2?31:s===3?15:7;s>1&&r<n;)a=a<<6|e[r++]&63,s--;if(s>1){o[i++]=65533;continue}a<65536?o[i++]=a:(a-=65536,o[i++]=55296|a>>10&1023,o[i++]=56320|a&1023)}return wO(o,i)},xO=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let n=t-1;for(;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+iu[e[n]]>t?n:t},ou={string2buf:yO,buf2string:vO,utf8border:xO};function AO(){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}var D3=AO;const R3=Object.prototype.toString,{Z_NO_FLUSH:EO,Z_SYNC_FLUSH:_O,Z_FULL_FLUSH:SO,Z_FINISH:CO,Z_OK:uh,Z_STREAM_END:kO,Z_DEFAULT_COMPRESSION:TO,Z_DEFAULT_STRATEGY:IO,Z_DEFLATED:BO}=Kl;function Tg(e){this.options=lh.assign({level:TO,method:BO,chunkSize:16384,windowBits:15,memLevel:8,strategy:IO},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new D3,this.strm.avail_out=0;let n=ru.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==uh)throw new Error(Ca[n]);if(t.header&&ru.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=ou.string2buf(t.dictionary):R3.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=ru.deflateSetDictionary(this.strm,r),n!==uh)throw new Error(Ca[n]);this._dict_set=!0}}Tg.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let i,o;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?CO:EO,typeof e=="string"?n.input=ou.string2buf(e):R3.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(o===_O||o===SO)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=ru.deflate(n,o),i===kO)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=ru.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===uh;if(n.avail_out===0){this.onData(n.output);continue}if(o>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0},Tg.prototype.onData=function(e){this.chunks.push(e)},Tg.prototype.onEnd=function(e){e===uh&&(this.result=lh.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const ch=16209,DO=16191;var RO=function(t,n){let r,i,o,a,s,u,l,c,f,h,d,p,m,y,w,A,S,_,k,B,I,D,M,G;const N=t.state;r=t.next_in,M=t.input,i=r+(t.avail_in-5),o=t.next_out,G=t.output,a=o-(n-t.avail_out),s=o+(t.avail_out-257),u=N.dmax,l=N.wsize,c=N.whave,f=N.wnext,h=N.window,d=N.hold,p=N.bits,m=N.lencode,y=N.distcode,w=(1<<N.lenbits)-1,A=(1<<N.distbits)-1;e:do{p<15&&(d+=M[r++]<<p,p+=8,d+=M[r++]<<p,p+=8),S=m[d&w];t:for(;;){if(_=S>>>24,d>>>=_,p-=_,_=S>>>16&255,_===0)G[o++]=S&65535;else if(_&16){k=S&65535,_&=15,_&&(p<_&&(d+=M[r++]<<p,p+=8),k+=d&(1<<_)-1,d>>>=_,p-=_),p<15&&(d+=M[r++]<<p,p+=8,d+=M[r++]<<p,p+=8),S=y[d&A];n:for(;;){if(_=S>>>24,d>>>=_,p-=_,_=S>>>16&255,_&16){if(B=S&65535,_&=15,p<_&&(d+=M[r++]<<p,p+=8,p<_&&(d+=M[r++]<<p,p+=8)),B+=d&(1<<_)-1,B>u){t.msg="invalid distance too far back",N.mode=ch;break e}if(d>>>=_,p-=_,_=o-a,B>_){if(_=B-_,_>c&&N.sane){t.msg="invalid distance too far back",N.mode=ch;break e}if(I=0,D=h,f===0){if(I+=l-_,_<k){k-=_;do G[o++]=h[I++];while(--_);I=o-B,D=G}}else if(f<_){if(I+=l+f-_,_-=f,_<k){k-=_;do G[o++]=h[I++];while(--_);if(I=0,f<k){_=f,k-=_;do G[o++]=h[I++];while(--_);I=o-B,D=G}}}else if(I+=f-_,_<k){k-=_;do G[o++]=h[I++];while(--_);I=o-B,D=G}for(;k>2;)G[o++]=D[I++],G[o++]=D[I++],G[o++]=D[I++],k-=3;k&&(G[o++]=D[I++],k>1&&(G[o++]=D[I++]))}else{I=o-B;do G[o++]=G[I++],G[o++]=G[I++],G[o++]=G[I++],k-=3;while(k>2);k&&(G[o++]=G[I++],k>1&&(G[o++]=G[I++]))}}else if(_&64){t.msg="invalid distance code",N.mode=ch;break e}else{S=y[(S&65535)+(d&(1<<_)-1)];continue n}break}}else if(_&64)if(_&32){N.mode=DO;break e}else{t.msg="invalid literal/length code",N.mode=ch;break e}else{S=m[(S&65535)+(d&(1<<_)-1)];continue t}break}}while(r<i&&o<s);k=p>>3,r-=k,p-=k<<3,d&=(1<<p)-1,t.next_in=r,t.next_out=o,t.avail_in=r<i?5+(i-r):5-(r-i),t.avail_out=o<s?257+(s-o):257-(o-s),N.hold=d,N.bits=p};const Ra=15,F3=852,M3=592,P3=0,Ig=1,L3=2,FO=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]),MO=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]),PO=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]),LO=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var au=(e,t,n,r,i,o,a,s)=>{const u=s.bits;let l=0,c=0,f=0,h=0,d=0,p=0,m=0,y=0,w=0,A=0,S,_,k,B,I,D=null,M;const G=new Uint16Array(Ra+1),N=new Uint16Array(Ra+1);let ne=null,ie,he,me;for(l=0;l<=Ra;l++)G[l]=0;for(c=0;c<r;c++)G[t[n+c]]++;for(d=u,h=Ra;h>=1&&G[h]===0;h--);if(d>h&&(d=h),h===0)return i[o++]=1<<24|64<<16|0,i[o++]=1<<24|64<<16|0,s.bits=1,0;for(f=1;f<h&&G[f]===0;f++);for(d<f&&(d=f),y=1,l=1;l<=Ra;l++)if(y<<=1,y-=G[l],y<0)return-1;if(y>0&&(e===P3||h!==1))return-1;for(N[1]=0,l=1;l<Ra;l++)N[l+1]=N[l]+G[l];for(c=0;c<r;c++)t[n+c]!==0&&(a[N[t[n+c]]++]=c);if(e===P3?(D=ne=a,M=20):e===Ig?(D=FO,ne=MO,M=257):(D=PO,ne=LO,M=0),A=0,c=0,l=f,I=o,p=d,m=0,k=-1,w=1<<d,B=w-1,e===Ig&&w>F3||e===L3&&w>M3)return 1;for(;;){ie=l-m,a[c]+1<M?(he=0,me=a[c]):a[c]>=M?(he=ne[a[c]-M],me=D[a[c]-M]):(he=32+64,me=0),S=1<<l-m,_=1<<p,f=_;do _-=S,i[I+(A>>m)+_]=ie<<24|he<<16|me|0;while(_!==0);for(S=1<<l-1;A&S;)S>>=1;if(S!==0?(A&=S-1,A+=S):A=0,c++,--G[l]===0){if(l===h)break;l=t[n+a[c]]}if(l>d&&(A&B)!==k){for(m===0&&(m=d),I+=f,p=l-m,y=1<<p;p+m<h&&(y-=G[p+m],!(y<=0));)p++,y<<=1;if(w+=1<<p,e===Ig&&w>F3||e===L3&&w>M3)return 1;k=A&B,i[k]=d<<24|p<<16|I-o|0}}return A!==0&&(i[I+A]=l-m<<24|64<<16|0),s.bits=d,0};const NO=0,N3=1,O3=2,{Z_FINISH:z3,Z_BLOCK:OO,Z_TREES:fh,Z_OK:xo,Z_STREAM_END:zO,Z_NEED_DICT:UO,Z_STREAM_ERROR:gn,Z_DATA_ERROR:U3,Z_MEM_ERROR:G3,Z_BUF_ERROR:GO,Z_DEFLATED:H3}=Kl,hh=16180,V3=16181,j3=16182,$3=16183,q3=16184,W3=16185,Z3=16186,Y3=16187,Q3=16188,X3=16189,dh=16190,vr=16191,Bg=16192,K3=16193,Dg=16194,J3=16195,eE=16196,tE=16197,nE=16198,ph=16199,gh=16200,rE=16201,iE=16202,oE=16203,aE=16204,sE=16205,Rg=16206,lE=16207,uE=16208,Ye=16209,cE=16210,fE=16211,HO=852,VO=592,jO=15,hE=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function $O(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Ao=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<hh||t.mode>fE?1:0},dE=e=>{if(Ao(e))return gn;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=hh,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(HO),t.distcode=t.distdyn=new Int32Array(VO),t.sane=1,t.back=-1,xo},pE=e=>{if(Ao(e))return gn;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,dE(e)},gE=(e,t)=>{let n;if(Ao(e))return gn;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?gn:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,pE(e))},mE=(e,t)=>{if(!e)return gn;const n=new $O;e.state=n,n.strm=e,n.window=null,n.mode=hh;const r=gE(e,t);return r!==xo&&(e.state=null),r},qO=e=>mE(e,jO);let bE=!0,Fg,Mg;const WO=e=>{if(bE){Fg=new Int32Array(512),Mg=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(au(N3,e.lens,0,288,Fg,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;au(O3,e.lens,0,32,Mg,0,e.work,{bits:5}),bE=!1}e.lencode=Fg,e.lenbits=9,e.distcode=Mg,e.distbits=5},yE=(e,t,n,r)=>{let i;const o=e.state;return o.window===null&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Uint8Array(o.wsize)),r>=o.wsize?(o.window.set(t.subarray(n-o.wsize,n),0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),o.window.set(t.subarray(n-r,n-r+i),o.wnext),r-=i,r?(o.window.set(t.subarray(n-r,n),0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=i))),0},ZO=(e,t)=>{let n,r,i,o,a,s,u,l,c,f,h,d,p,m,y=0,w,A,S,_,k,B,I,D;const M=new Uint8Array(4);let G,N;const ne=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Ao(e)||!e.output||!e.input&&e.avail_in!==0)return gn;n=e.state,n.mode===vr&&(n.mode=Bg),a=e.next_out,i=e.output,u=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,l=n.hold,c=n.bits,f=s,h=u,D=xo;e:for(;;)switch(n.mode){case hh:if(n.wrap===0){n.mode=Bg;break}for(;c<16;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if(n.wrap&2&&l===35615){n.wbits===0&&(n.wbits=15),n.check=0,M[0]=l&255,M[1]=l>>>8&255,n.check=pt(n.check,M,2,0),l=0,c=0,n.mode=V3;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",n.mode=Ye;break}if((l&15)!==H3){e.msg="unknown compression method",n.mode=Ye;break}if(l>>>=4,c-=4,I=(l&15)+8,n.wbits===0&&(n.wbits=I),I>15||I>n.wbits){e.msg="invalid window size",n.mode=Ye;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=l&512?X3:vr,l=0,c=0;break;case V3:for(;c<16;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if(n.flags=l,(n.flags&255)!==H3){e.msg="unknown compression method",n.mode=Ye;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=Ye;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=pt(n.check,M,2,0)),l=0,c=0,n.mode=j3;case j3:for(;c<32;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}n.head&&(n.head.time=l),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,M[2]=l>>>16&255,M[3]=l>>>24&255,n.check=pt(n.check,M,4,0)),l=0,c=0,n.mode=$3;case $3:for(;c<16;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=pt(n.check,M,2,0)),l=0,c=0,n.mode=q3;case q3:if(n.flags&1024){for(;c<16;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=pt(n.check,M,2,0)),l=0,c=0}else n.head&&(n.head.extra=null);n.mode=W3;case W3:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(I=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(o,o+d),I)),n.flags&512&&n.wrap&4&&(n.check=pt(n.check,r,d,o)),s-=d,o+=d,n.length-=d),n.length))break e;n.length=0,n.mode=Z3;case Z3:if(n.flags&2048){if(s===0)break e;d=0;do I=r[o+d++],n.head&&I&&n.length<65536&&(n.head.name+=String.fromCharCode(I));while(I&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=pt(n.check,r,d,o)),s-=d,o+=d,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=Y3;case Y3:if(n.flags&4096){if(s===0)break e;d=0;do I=r[o+d++],n.head&&I&&n.length<65536&&(n.head.comment+=String.fromCharCode(I));while(I&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=pt(n.check,r,d,o)),s-=d,o+=d,I)break e}else n.head&&(n.head.comment=null);n.mode=Q3;case Q3:if(n.flags&512){for(;c<16;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if(n.wrap&4&&l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=Ye;break}l=0,c=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=vr;break;case X3:for(;c<32;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}e.adler=n.check=hE(l),l=0,c=0,n.mode=dh;case dh:if(n.havedict===0)return e.next_out=a,e.avail_out=u,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=c,UO;e.adler=n.check=1,n.mode=vr;case vr:if(t===OO||t===fh)break e;case Bg:if(n.last){l>>>=c&7,c-=c&7,n.mode=Rg;break}for(;c<3;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}switch(n.last=l&1,l>>>=1,c-=1,l&3){case 0:n.mode=K3;break;case 1:if(WO(n),n.mode=ph,t===fh){l>>>=2,c-=2;break e}break;case 2:n.mode=eE;break;case 3:e.msg="invalid block type",n.mode=Ye}l>>>=2,c-=2;break;case K3:for(l>>>=c&7,c-=c&7;c<32;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=Ye;break}if(n.length=l&65535,l=0,c=0,n.mode=Dg,t===fh)break e;case Dg:n.mode=J3;case J3:if(d=n.length,d){if(d>s&&(d=s),d>u&&(d=u),d===0)break e;i.set(r.subarray(o,o+d),a),s-=d,o+=d,u-=d,a+=d,n.length-=d;break}n.mode=vr;break;case eE:for(;c<14;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if(n.nlen=(l&31)+257,l>>>=5,c-=5,n.ndist=(l&31)+1,l>>>=5,c-=5,n.ncode=(l&15)+4,l>>>=4,c-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=Ye;break}n.have=0,n.mode=tE;case tE:for(;n.have<n.ncode;){for(;c<3;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}n.lens[ne[n.have++]]=l&7,l>>>=3,c-=3}for(;n.have<19;)n.lens[ne[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,G={bits:n.lenbits},D=au(NO,n.lens,0,19,n.lencode,0,n.work,G),n.lenbits=G.bits,D){e.msg="invalid code lengths set",n.mode=Ye;break}n.have=0,n.mode=nE;case nE:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,A=y>>>16&255,S=y&65535,!(w<=c);){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if(S<16)l>>>=w,c-=w,n.lens[n.have++]=S;else{if(S===16){for(N=w+2;c<N;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if(l>>>=w,c-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=Ye;break}I=n.lens[n.have-1],d=3+(l&3),l>>>=2,c-=2}else if(S===17){for(N=w+3;c<N;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}l>>>=w,c-=w,I=0,d=3+(l&7),l>>>=3,c-=3}else{for(N=w+7;c<N;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}l>>>=w,c-=w,I=0,d=11+(l&127),l>>>=7,c-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=Ye;break}for(;d--;)n.lens[n.have++]=I}}if(n.mode===Ye)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=Ye;break}if(n.lenbits=9,G={bits:n.lenbits},D=au(N3,n.lens,0,n.nlen,n.lencode,0,n.work,G),n.lenbits=G.bits,D){e.msg="invalid literal/lengths set",n.mode=Ye;break}if(n.distbits=6,n.distcode=n.distdyn,G={bits:n.distbits},D=au(O3,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,G),n.distbits=G.bits,D){e.msg="invalid distances set",n.mode=Ye;break}if(n.mode=ph,t===fh)break e;case ph:n.mode=gh;case gh:if(s>=6&&u>=258){e.next_out=a,e.avail_out=u,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=c,RO(e,h),a=e.next_out,i=e.output,u=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,l=n.hold,c=n.bits,n.mode===vr&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,A=y>>>16&255,S=y&65535,!(w<=c);){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if(A&&!(A&240)){for(_=w,k=A,B=S;y=n.lencode[B+((l&(1<<_+k)-1)>>_)],w=y>>>24,A=y>>>16&255,S=y&65535,!(_+w<=c);){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,n.length=S,A===0){n.mode=sE;break}if(A&32){n.back=-1,n.mode=vr;break}if(A&64){e.msg="invalid literal/length code",n.mode=Ye;break}n.extra=A&15,n.mode=rE;case rE:if(n.extra){for(N=n.extra;c<N;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=iE;case iE:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,A=y>>>16&255,S=y&65535,!(w<=c);){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if(!(A&240)){for(_=w,k=A,B=S;y=n.distcode[B+((l&(1<<_+k)-1)>>_)],w=y>>>24,A=y>>>16&255,S=y&65535,!(_+w<=c);){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,A&64){e.msg="invalid distance code",n.mode=Ye;break}n.offset=S,n.extra=A&15,n.mode=oE;case oE:if(n.extra){for(N=n.extra;c<N;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=Ye;break}n.mode=aE;case aE:if(u===0)break e;if(d=h-u,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=Ye;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),m=n.window}else m=i,p=a-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[a++]=m[p++];while(--d);n.length===0&&(n.mode=gh);break;case sE:if(u===0)break e;i[a++]=n.length,u--,n.mode=gh;break;case Rg:if(n.wrap){for(;c<32;){if(s===0)break e;s--,l|=r[o++]<<c,c+=8}if(h-=u,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?pt(n.check,i,h,a-h):Xl(n.check,i,h,a-h)),h=u,n.wrap&4&&(n.flags?l:hE(l))!==n.check){e.msg="incorrect data check",n.mode=Ye;break}l=0,c=0}n.mode=lE;case lE:if(n.wrap&&n.flags){for(;c<32;){if(s===0)break e;s--,l+=r[o++]<<c,c+=8}if(n.wrap&4&&l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=Ye;break}l=0,c=0}n.mode=uE;case uE:D=zO;break e;case Ye:D=U3;break e;case cE:return G3;case fE:default:return gn}return e.next_out=a,e.avail_out=u,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=c,(n.wsize||h!==e.avail_out&&n.mode<Ye&&(n.mode<Rg||t!==z3))&&yE(e,e.output,e.next_out,h-e.avail_out),f-=e.avail_in,h-=e.avail_out,e.total_in+=f,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?pt(n.check,i,h,e.next_out-h):Xl(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===vr?128:0)+(n.mode===ph||n.mode===Dg?256:0),(f===0&&h===0||t===z3)&&D===xo&&(D=GO),D},YO=e=>{if(Ao(e))return gn;let t=e.state;return t.window&&(t.window=null),e.state=null,xo},QO=(e,t)=>{if(Ao(e))return gn;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,xo):gn},XO=(e,t)=>{const n=t.length;let r,i,o;return Ao(e)||(r=e.state,r.wrap!==0&&r.mode!==dh)?gn:r.mode===dh&&(i=1,i=Xl(i,t,n,0),i!==r.check)?U3:(o=yE(e,t,n,n),o?(r.mode=cE,G3):(r.havedict=1,xo))};var KO=pE,JO=gE,ez=dE,tz=qO,nz=mE,rz=ZO,iz=YO,oz=QO,az=XO,sz="pako inflate (from Nodeca project)",xr={inflateReset:KO,inflateReset2:JO,inflateResetKeep:ez,inflateInit:tz,inflateInit2:nz,inflate:rz,inflateEnd:iz,inflateGetHeader:oz,inflateSetDictionary:az,inflateInfo:sz};function lz(){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}var uz=lz;const wE=Object.prototype.toString,{Z_NO_FLUSH:cz,Z_FINISH:fz,Z_OK:su,Z_STREAM_END:Pg,Z_NEED_DICT:Lg,Z_STREAM_ERROR:hz,Z_DATA_ERROR:vE,Z_MEM_ERROR:dz}=Kl;function lu(e){this.options=lh.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new D3,this.strm.avail_out=0;let n=xr.inflateInit2(this.strm,t.windowBits);if(n!==su)throw new Error(Ca[n]);if(this.header=new uz,xr.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=ou.string2buf(t.dictionary):wE.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=xr.inflateSetDictionary(this.strm,t.dictionary),n!==su)))throw new Error(Ca[n])}lu.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let o,a,s;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?fz:cz,wE.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),o=xr.inflate(n,a),o===Lg&&i&&(o=xr.inflateSetDictionary(n,i),o===su?o=xr.inflate(n,a):o===vE&&(o=Lg));n.avail_in>0&&o===Pg&&n.state.wrap>0&&e[n.next_in]!==0;)xr.inflateReset(n),o=xr.inflate(n,a);switch(o){case hz:case vE:case Lg:case dz:return this.onEnd(o),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||o===Pg))if(this.options.to==="string"){let u=ou.utf8border(n.output,n.next_out),l=n.next_out-u,c=ou.buf2string(n.output,u);n.next_out=l,n.avail_out=r-l,l&&n.output.set(n.output.subarray(u,u+l),0),this.onData(c)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(o===su&&s===0)){if(o===Pg)return o=xr.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},lu.prototype.onData=function(e){this.chunks.push(e)},lu.prototype.onEnd=function(e){e===su&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=lh.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Ng(e,t){const n=new lu(t);if(n.push(e),n.err)throw n.msg||Ca[n.err];return n.result}function pz(e,t){return t=t||{},t.raw=!0,Ng(e,t)}var gz=lu,mz=Ng,bz=pz,yz=Ng,wz=Kl,vz={Inflate:gz,inflate:mz,inflateRaw:bz,ungzip:yz,constants:wz};const{Inflate:dH,inflate:pH,inflateRaw:xz,ungzip:gH}=vz;var Az=xz;function Ez(e){return Az(e.subarray(2))}let _z=class extends Error{constructor(t){super(t),this.code="ERR_ABORTED"}};function Sz(e){e.sort((i,o)=>Number(i.offset)-Number(o.offset));const t=[];let n,r;for(const i of e)n&&r&&Number(i.offset)-r<=2e3?(n.length=BigInt(Number(n.length)+Number(i.length)-r+Number(i.offset)),n.blocks.push(i)):t.push(n={blocks:[i],length:i.length,offset:i.offset}),r=Number(n.offset)+Number(n.length);return t}function mh(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new _z("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}const Cz=1,kz=2,Tz=3;function Og(e,t,n,r){return e<r&&t>=n}function Iz(e){const t=e?"big":"little",n=new De().endianess(t).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new De().endianess(t).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new De().endianess(t).array("blocksToFetch",{length:"cnt",type:new De().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new De().array("recurOffsets",{length:"cnt",type:new De().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new De().endianess(t).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new De().endianess(t).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[Tz]:new De().array("items",{length:"itemCount",type:new De().floatle("score")}),[kz]:new De().array("items",{length:"itemCount",type:new De().endianess(t).int32("start").floatle("score")}),[Cz]:new De().array("items",{length:"itemCount",type:new De().endianess(t).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class xE{constructor(t,n,r,i,o,a){if(this.bbi=t,this.refsByName=n,this.cirTreeOffset=r,this.isBigEndian=i,this.isCompressed=o,this.blockType=a,this.featureCache=new nh({cache:new rh({maxSize:1e3}),fill:async(u,l)=>{const c=Number(u.length),f=Number(u.offset),{buffer:h}=await this.bbi.read(be.Buffer.alloc(c),0,c,f,{signal:l});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const s=Iz(i);this.leafParser=s.leafParser,this.bigBedParser=s.bigBedParser}async readWigData(t,n,r,i,o){try{const{refsByName:a,bbi:s,cirTreeOffset:u,isBigEndian:l}=this,c=a[t];c===void 0&&i.complete();const f={chrId:c,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=s.read(be.Buffer.alloc(48),0,48,Number(u),o));const{buffer:h}=await this.cirTreePromise,d=l?h.readUInt32BE(4):h.readUInt32LE(4);let p=[],m=0;const y=(_,k,B)=>{try{const I=_.subarray(k),D=this.leafParser.parse(I);if(D.blocksToFetch&&(p=p.concat(D.blocksToFetch.filter(M=>w(M)).map(M=>({offset:M.blockOffset,length:M.blockSize})))),D.recurOffsets){const M=D.recurOffsets.filter(G=>w(G)).map(G=>Number(G.blockOffset));M.length>0&&S(M,B+1)}}catch(I){i.error(I)}},w=_=>{const{startChrom:k,startBase:B,endChrom:I,endBase:D}=_;return(k<c||k===c&&B<=r)&&(I>c||I===c&&D>=n)},A=async(_,k,B)=>{try{const I=k.max()-k.min(),D=k.min(),M=await this.featureCache.get(`${I}_${D}`,{length:I,offset:D},o==null?void 0:o.signal);for(const G of _)k.contains(G)&&(y(M,G-D,B),m-=1,m===0&&this.readFeatures(i,p,{...o,request:f}))}catch(I){i.error(I)}},S=(_,k)=>{try{m+=_.length;const B=4+Number(d)*32;let I=new pi(_[0],_[0]+B);for(let D=1;D<_.length;D+=1){const M=new pi(_[D],_[D]+B);I=I.union(M)}I.getRanges().map(D=>A(_,D,k))}catch(B){i.error(B)}};return S([Number(u)+48],1)}catch(a){i.error(a)}}parseSummaryBlock(t,n,r){const i=[];let o=n;const a=new DataView(t.buffer,t.byteOffset,t.length);for(;o<t.byteLength;){const s=a.getUint32(o,!0);o+=4;const u=a.getUint32(o,!0);o+=4;const l=a.getUint32(o,!0);o+=4;const c=a.getUint32(o,!0);o+=4;const f=a.getFloat32(o,!0);o+=4;const h=a.getFloat32(o,!0);o+=4;const d=a.getFloat32(o,!0);o+=4,o+=4,(!r||s===r.chrId&&Og(u,l,r.start,r.end))&&i.push({start:u,end:l,maxScore:h,minScore:f,summary:!0,score:d/(c||1)})}return i}parseBigBedBlock(t,n,r,i){const o=[];let a=n;for(;a<t.byteLength;){const s=this.bigBedParser.parse(t.subarray(a));s.uniqueId=`bb-${r+a}`,o.push(s),a+=s.offset}return i?o.filter(s=>Og(s.start,s.end,i.start,i.end)):o}parseBigWigBlock(t,n,r){const i=t.subarray(n),o=new DataView(i.buffer,i.byteOffset,i.length);let a=0;a+=4;const s=o.getInt32(a,!0);a+=8;const u=o.getUint32(a,!0);a+=4;const l=o.getUint32(a,!0);a+=4;const c=o.getUint8(a);a+=2;const f=o.getUint16(a,!0);a+=2;const h=new Array(f);switch(c){case 1:{for(let d=0;d<f;d++){const p=o.getInt32(a,!0);a+=4;const m=o.getInt32(a,!0);a+=4;const y=o.getFloat32(a,!0);a+=4,h[d]={start:p,end:m,score:y}}break}case 2:{for(let d=0;d<f;d++){const p=o.getInt32(a,!0);a+=4;const m=o.getFloat32(a,!0);a+=4,h[d]={score:m,start:p,end:p+l}}break}case 3:{for(let d=0;d<f;d++){const p=o.getFloat32(a,!0);a+=4;const m=s+d*u;h[d]={score:p,start:m,end:m+l}}break}}return r?h.filter(d=>Og(d.start,d.end,r.start,r.end)):h}async readFeatures(t,n,r={}){try{const{blockType:i,isCompressed:o}=this,{signal:a,request:s}=r,u=Sz(n);mh(a),await Promise.all(u.map(async l=>{mh(a);const{length:c,offset:f}=l,h=await this.featureCache.get(`${c}_${f}`,l,a);for(const d of l.blocks){mh(a);let p=Number(d.offset)-Number(l.offset),m=h;switch(o&&(m=Ez(h.subarray(p)),p=0),mh(a),i){case"summary":{t.next(this.parseSummaryBlock(m,p,s));break}case"bigwig":{t.next(this.parseBigWigBlock(m,p,s));break}case"bigbed":{t.next(this.parseBigBedBlock(m,p,Number(d.offset)*256,s));break}default:console.warn(`Don't know what to do with ${i}`)}}})),t.complete()}catch(i){t.error(i)}}}var zg=function(e,t){return zg=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[i]=r[i])},zg(e,t)};function Ug(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");zg(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function Bz(e,t,n,r){function i(o){return o instanceof n?o:new n(function(a){a(o)})}return new(n||(n=Promise))(function(o,a){function s(c){try{l(r.next(c))}catch(f){a(f)}}function u(c){try{l(r.throw(c))}catch(f){a(f)}}function l(c){c.done?o(c.value):i(c.value).then(s,u)}l((r=r.apply(e,t||[])).next())})}function AE(e,t){var n={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},r,i,o,a;return a={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function s(l){return function(c){return u([l,c])}}function u(l){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(n=0)),n;)try{if(r=1,i&&(o=l[0]&2?i.return:l[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,l[1])).done)return o;switch(i=0,o&&(l=[l[0]&2,o.value]),l[0]){case 0:case 1:o=l;break;case 4:return n.label++,{value:l[1],done:!1};case 5:n.label++,i=l[1],l=[0];continue;case 7:l=n.ops.pop(),n.trys.pop();continue;default:if(o=n.trys,!(o=o.length>0&&o[o.length-1])&&(l[0]===6||l[0]===2)){n=0;continue}if(l[0]===3&&(!o||l[1]>o[0]&&l[1]<o[3])){n.label=l[1];break}if(l[0]===6&&n.label<o[1]){n.label=o[1],o=l;break}if(o&&n.label<o[2]){n.label=o[2],n.ops.push(l);break}o[2]&&n.ops.pop(),n.trys.pop();continue}l=t.call(e,n)}catch(c){l=[6,c],i=0}finally{r=o=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function uu(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Gg(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,o=[],a;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)o.push(i.value)}catch(s){a={error:s}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(a)throw a.error}}return o}function Hg(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,o;r<i;r++)(o||!(r in t))&&(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return e.concat(o||Array.prototype.slice.call(t))}function Fa(e){return this instanceof Fa?(this.v=e,this):new Fa(e)}function Dz(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),i,o=[];return i={},a("next"),a("throw"),a("return"),i[Symbol.asyncIterator]=function(){return this},i;function a(h){r[h]&&(i[h]=function(d){return new Promise(function(p,m){o.push([h,d,p,m])>1||s(h,d)})})}function s(h,d){try{u(r[h](d))}catch(p){f(o[0][3],p)}}function u(h){h.value instanceof Fa?Promise.resolve(h.value.v).then(l,c):f(o[0][2],h)}function l(h){s("next",h)}function c(h){s("throw",h)}function f(h,d){h(d),o.shift(),o.length&&s(o[0][0],o[0][1])}}function Rz(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof uu=="function"?uu(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(o){n[o]=e[o]&&function(a){return new Promise(function(s,u){a=e[o](a),i(s,u,a.done,a.value)})}}function i(o,a,s,u){Promise.resolve(u).then(function(l){o({value:l,done:s})},a)}}typeof SuppressedError=="function"&&SuppressedError;function lt(e){return typeof e=="function"}function EE(e){var t=function(r){Error.call(r),r.stack=new Error().stack},n=e(t);return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var Vg=EE(function(e){return function(n){e(this),this.message=n?n.length+` errors occurred during unsubscription:
472
485
  `+n.map(function(r,i){return i+1+") "+r.toString()}).join(`
473
- `):"",this.name="UnsubscriptionError",this.errors=n}});function sE(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var Mg=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,n,r,i,a;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var s=tu(o),u=s.next();!u.done;u=s.next()){var l=u.value;l.remove(this)}}catch(m){t={error:m}}finally{try{u&&!u.done&&(n=s.return)&&n.call(s)}finally{if(t)throw t.error}}else o.remove(this);var c=this.initialTeardown;if(lt(c))try{c()}catch(m){a=m instanceof Fg?m.errors:[m]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var h=tu(f),d=h.next();!d.done;d=h.next()){var p=d.value;try{uE(p)}catch(m){a=a??[],m instanceof Fg?a=Rg(Rg([],Dg(a)),Dg(m.errors)):a.push(m)}}}catch(m){r={error:m}}finally{try{d&&!d.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}}if(a)throw new Fg(a)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)uE(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(t)}},e.prototype._hasParent=function(t){var n=this._parentage;return n===t||Array.isArray(n)&&n.includes(t)},e.prototype._addParent=function(t){var n=this._parentage;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t},e.prototype._removeParent=function(t){var n=this._parentage;n===t?this._parentage=null:Array.isArray(n)&&sE(n,t)},e.prototype.remove=function(t){var n=this._finalizers;n&&sE(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();Mg.EMPTY;function lE(e){return e instanceof Mg||e&&"closed"in e&&lt(e.remove)&&lt(e.add)&&lt(e.unsubscribe)}function uE(e){lt(e)?e():e.unsubscribe()}var cE={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},fE={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return setTimeout.apply(void 0,Rg([e,t],Dg(n)))},clearTimeout:function(e){var t=fE.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function hE(e){fE.setTimeout(function(){throw e})}function dE(){}function KO(e){e()}var Pg=function(e){Bg(t,e);function t(n){var r=e.call(this)||this;return r.isStopped=!1,n?(r.destination=n,lE(n)&&n.add(r)):r.destination=nz,r}return t.create=function(n,r,i){return new fh(n,r,i)},t.prototype.next=function(n){this.isStopped||this._next(n)},t.prototype.error=function(n){this.isStopped||(this.isStopped=!0,this._error(n))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(n){this.destination.next(n)},t.prototype._error=function(n){try{this.destination.error(n)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(Mg),JO=Function.prototype.bind;function Lg(e,t){return JO.call(e,t)}var ez=function(){function e(t){this.partialObserver=t}return e.prototype.next=function(t){var n=this.partialObserver;if(n.next)try{n.next(t)}catch(r){hh(r)}},e.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(r){hh(r)}else hh(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(n){hh(n)}},e}(),fh=function(e){Bg(t,e);function t(n,r,i){var a=e.call(this)||this,o;if(lt(n)||!n)o={next:n??void 0,error:r??void 0,complete:i??void 0};else{var s;a&&cE.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return a.unsubscribe()},o={next:n.next&&Lg(n.next,s),error:n.error&&Lg(n.error,s),complete:n.complete&&Lg(n.complete,s)}):o=n}return a.destination=new ez(o),a}return t}(Pg);function hh(e){hE(e)}function tz(e){throw e}var nz={closed:!0,next:dE,error:tz,complete:dE},Ng=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function pE(e){return e}function rz(e){return e.length===0?pE:e.length===1?e[0]:function(n){return e.reduce(function(r,i){return i(r)},n)}}var mn=function(){function e(t){t&&(this._subscribe=t)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(t,n,r){var i=this,a=az(t)?t:new fh(t,n,r);return KO(function(){var o=i,s=o.operator,u=o.source;a.add(s?s.call(a,u):u?i._subscribe(a):i._trySubscribe(a))}),a},e.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(n){t.error(n)}},e.prototype.forEach=function(t,n){var r=this;return n=gE(n),new n(function(i,a){var o=new fh({next:function(s){try{t(s)}catch(u){a(u),o.unsubscribe()}},error:a,complete:i});r.subscribe(o)})},e.prototype._subscribe=function(t){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(t)},e.prototype[Ng]=function(){return this},e.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return rz(t)(this)},e.prototype.toPromise=function(t){var n=this;return t=gE(t),new t(function(r,i){var a;n.subscribe(function(o){return a=o},function(o){return i(o)},function(){return r(a)})})},e.create=function(t){return new e(t)},e}();function gE(e){var t;return(t=e??cE.Promise)!==null&&t!==void 0?t:Promise}function iz(e){return e&&lt(e.next)&&lt(e.error)&&lt(e.complete)}function az(e){return e&&e instanceof Pg||iz(e)&&lE(e)}function oz(e){return lt(e==null?void 0:e.lift)}function To(e){return function(t){if(oz(t))return t.lift(function(n){try{return e(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function nu(e,t,n,r,i){return new sz(e,t,n,r,i)}var sz=function(e){Bg(t,e);function t(n,r,i,a,o,s){var u=e.call(this,n)||this;return u.onFinalize=o,u.shouldUnsubscribe=s,u._next=r?function(l){try{r(l)}catch(c){n.error(c)}}:e.prototype._next,u._error=a?function(l){try{a(l)}catch(c){n.error(c)}finally{this.unsubscribe()}}:e.prototype._error,u._complete=i?function(){try{i()}catch(l){n.error(l)}finally{this.unsubscribe()}}:e.prototype._complete,u}return t.prototype.unsubscribe=function(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;e.prototype.unsubscribe.call(this),!r&&((n=this.onFinalize)===null||n===void 0||n.call(this))}},t}(Pg),lz=new mn(function(e){return e.complete()});function uz(e){return e&&lt(e.schedule)}function mE(e){return e[e.length-1]}function cz(e){return uz(mE(e))?e.pop():void 0}function fz(e,t){return typeof mE(e)=="number"?e.pop():t}var bE=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function yE(e){return lt(e==null?void 0:e.then)}function wE(e){return lt(e[Ng])}function vE(e){return Symbol.asyncIterator&&lt(e==null?void 0:e[Symbol.asyncIterator])}function xE(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function hz(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var AE=hz();function EE(e){return lt(e==null?void 0:e[AE])}function _E(e){return QO(this,arguments,function(){var n,r,i,a;return aE(this,function(o){switch(o.label){case 0:n=e.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,ko(n.read())];case 3:return r=o.sent(),i=r.value,a=r.done,a?[4,ko(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,ko(i)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function SE(e){return lt(e==null?void 0:e.getReader)}function Io(e){if(e instanceof mn)return e;if(e!=null){if(wE(e))return dz(e);if(bE(e))return pz(e);if(yE(e))return gz(e);if(vE(e))return CE(e);if(EE(e))return mz(e);if(SE(e))return bz(e)}throw xE(e)}function dz(e){return new mn(function(t){var n=e[Ng]();if(lt(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function pz(e){return new mn(function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()})}function gz(e){return new mn(function(t){e.then(function(n){t.closed||(t.next(n),t.complete())},function(n){return t.error(n)}).then(null,hE)})}function mz(e){return new mn(function(t){var n,r;try{for(var i=tu(e),a=i.next();!a.done;a=i.next()){var o=a.value;if(t.next(o),t.closed)return}}catch(s){n={error:s}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}t.complete()})}function CE(e){return new mn(function(t){yz(e,t).catch(function(n){return t.error(n)})})}function bz(e){return CE(_E(e))}function yz(e,t){var n,r,i,a;return YO(this,void 0,void 0,function(){var o,s;return aE(this,function(u){switch(u.label){case 0:u.trys.push([0,5,6,11]),n=XO(e),u.label=1;case 1:return[4,n.next()];case 2:if(r=u.sent(),!!r.done)return[3,4];if(o=r.value,t.next(o),t.closed)return[2];u.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return s=u.sent(),i={error:s},[3,11];case 6:return u.trys.push([6,,9,10]),r&&!r.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:u.sent(),u.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})}function mi(e,t,n,r,i){r===void 0&&(r=0),i===void 0&&(i=!1);var a=t.schedule(function(){n(),i?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(a),!i)return a}function kE(e,t){return t===void 0&&(t=0),To(function(n,r){n.subscribe(nu(r,function(i){return mi(r,e,function(){return r.next(i)},t)},function(){return mi(r,e,function(){return r.complete()},t)},function(i){return mi(r,e,function(){return r.error(i)},t)}))})}function TE(e,t){return t===void 0&&(t=0),To(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function wz(e,t){return Io(e).pipe(TE(t),kE(t))}function vz(e,t){return Io(e).pipe(TE(t),kE(t))}function xz(e,t){return new mn(function(n){var r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function Az(e,t){return new mn(function(n){var r;return mi(n,t,function(){r=e[AE](),mi(n,t,function(){var i,a,o;try{i=r.next(),a=i.value,o=i.done}catch(s){n.error(s);return}o?n.complete():n.next(a)},0,!0)}),function(){return lt(r==null?void 0:r.return)&&r.return()}})}function IE(e,t){if(!e)throw new Error("Iterable cannot be null");return new mn(function(n){mi(n,t,function(){var r=e[Symbol.asyncIterator]();mi(n,t,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function Ez(e,t){return IE(_E(e),t)}function _z(e,t){if(e!=null){if(wE(e))return wz(e,t);if(bE(e))return xz(e,t);if(yE(e))return vz(e,t);if(vE(e))return IE(e,t);if(EE(e))return Az(e,t);if(SE(e))return Ez(e,t)}throw xE(e)}function Sz(e,t){return t?_z(e,t):Io(e)}var Cz=oE(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function BE(e,t){var n=typeof t=="object";return new Promise(function(r,i){var a=new fh({next:function(o){r(o),a.unsubscribe()},error:i,complete:function(){n?r(t.defaultValue):i(new Cz)}});e.subscribe(a)})}function DE(e,t){return To(function(n,r){var i=0;n.subscribe(nu(r,function(a){r.next(e.call(t,a,i++))}))})}function kz(e,t,n,r,i,a,o,s){var u=[],l=0,c=0,f=!1,h=function(){f&&!u.length&&!l&&t.complete()},d=function(m){return l<r?p(m):u.push(m)},p=function(m){a&&t.next(m),l++;var y=!1;Io(n(m,c++)).subscribe(nu(t,function(w){i==null||i(w),a?d(w):t.next(w)},function(){y=!0},void 0,function(){if(y)try{l--;for(var w=function(){var x=u.shift();o?mi(t,o,function(){return p(x)}):p(x)};u.length&&l<r;)w();h()}catch(x){t.error(x)}}))};return e.subscribe(nu(t,d,function(){f=!0,h()})),function(){s==null||s()}}function RE(e,t,n){return n===void 0&&(n=1/0),lt(t)?RE(function(r,i){return DE(function(a,o){return t(r,a,i,o)})(Io(e(r,i)))},n):(typeof t=="number"&&(n=t),To(function(r,i){return kz(r,i,e,n)}))}function Tz(e){return e===void 0&&(e=1/0),RE(pE,e)}function Iz(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=cz(e),r=fz(e,1/0),i=e;return i.length?i.length===1?Io(i[0]):Tz(r)(Sz(i,n)):lz}function Bz(e,t,n,r,i){return function(a,o){var s=n,u=t,l=0;a.subscribe(nu(o,function(c){var f=l++;u=s?e(u,c,f):(s=!0,c),r&&o.next(u)},i&&function(){s&&o.next(u),o.complete()}))}}function FE(e,t){return To(Bz(e,t,arguments.length>=2,!1,!0))}var Dz=function(e,t){return e.push(t),e};function Rz(){return To(function(e,t){FE(Dz,[])(e).subscribe(t)})}const ME=-2003829722,Og=-2021002517;function Fz(e){return new TextDecoder().decode(e)}function PE(e){const t=e?"big":"little",n=new Be().endianess(t).int32("magic").uint16("version").uint16("numZoomLevels").uint64("chromTreeOffset").uint64("unzoomedDataOffset").uint64("unzoomedIndexOffset").uint16("fieldCount").uint16("definedFieldCount").uint64("asOffset").uint64("totalSummaryOffset").uint32("uncompressBufSize").uint64("extHeaderOffset").array("zoomLevels",{length:"numZoomLevels",type:new Be().endianess(t).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new Be().endianess(t).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new Be().endianess(t).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),a=new Be().endianess(t).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:a}}class LE{getHeader(t){return this.headerP||(this.headerP=this._getHeader(t).catch(n=>{throw this.headerP=void 0,n})),this.headerP}constructor(t){const{filehandle:n,renameRefSeqs:r=o=>o,path:i,url:a}=t;if(this.renameRefSeqs=r,n)this.bbi=n;else if(a)this.bbi=new ea(a);else if(i)this.bbi=new dt(i);else throw new Error("no file given")}async _getHeader(t){const n=await this._getMainHeader(t),r=await this._readChromTree(n,t);return{...n,...r}}async _getMainHeader(t,n=2e3){const{buffer:r}=await this.bbi.read(be.Buffer.alloc(n),0,n,0,t),i=this._isBigEndian(r),a=PE(i),o=a.headerParser.parse(r),{magic:s,asOffset:u,totalSummaryOffset:l}=o;if(o.fileType=s===Og?"bigbed":"bigwig",u>n||l>n)return this._getMainHeader(t,n*2);if(u){const c=Number(o.asOffset);o.autoSql=Fz(r.subarray(c,r.indexOf(0,c)))}if(o.totalSummaryOffset>n-8*5)return this._getMainHeader(t,n*2);if(o.totalSummaryOffset){const c=r.subarray(Number(o.totalSummaryOffset)),f=a.totalSummaryParser.parse(c);o.totalSummary={...f,basesCovered:Number(f.basesCovered)}}return{...o,isBigEndian:i}}_isBigEndian(t){let n=t.readInt32LE(0);if(n===ME||n===Og)return!1;if(n=t.readInt32BE(0),n===ME||n===Og)return!0;throw new Error("not a BigWig/BigBed file")}async _readChromTree(t,n){const r=t.isBigEndian,i=r?"big":"little",a=[],o={};let s=Number(t.unzoomedDataOffset);const u=Number(t.chromTreeOffset);for(;s%4!==0;)s+=1;const l=s-u,{buffer:c}=await this.bbi.read(be.Buffer.alloc(l),0,l,Number(u),n),f=PE(r),{keySize:h}=f.chromTreeParser.parse(c),d=new Be().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),p=new Be().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),m=32,y=async w=>{let x=w;if(x>=c.length)throw new Error("reading beyond end of buffer");const S=f.isLeafNode.parse(c.subarray(x)),{isLeafNode:_,cnt:T}=S;if(x+=S.offset,_)for(let I=0;I<T;I+=1){const B=d.parse(c.subarray(x));x+=B.offset;const{key:R,refId:M,refSize:H}=B,O={name:R,id:M,length:H};o[this.renameRefSeqs(R)]=M,a[M]=O}else{const I=[];for(let B=0;B<T;B+=1){const R=p.parse(c.subarray(x)),{childOffset:M}=R;x+=R.offset,I.push(y(Number(M)-Number(u)))}await Promise.all(I)}};return await y(m),{refsByName:o,refsByNumber:a}}async getUnzoomedView(t){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:a,fileType:o}=await this.getHeader(t);return new iE(this.bbi,r,n,a,i>0,o)}async getFeatureStream(t,n,r,i){await this.getHeader(i);const a=this.renameRefSeqs(t);let o;const{basesPerSpan:s,scale:u}=i||{};return s?o=await this.getView(1/s,i):u?o=await this.getView(u,i):o=await this.getView(1,i),new mn(l=>{o.readWigData(a,n,r,l,i)})}async getFeatures(t,n,r,i){const a=await this.getFeatureStream(t,n,r,i);return(await BE(a.pipe(Rz()))).flat()}}class Mz extends LE{async getView(t,n){const{zoomLevels:r,refsByName:i,fileSize:a,isBigEndian:o,uncompressBufSize:s}=await this.getHeader(n),u=1/t;let l=r.length;a||(l-=1);for(let c=l;c>=0;c-=1){const f=r[c];if(f&&f.reductionLevel<=2*u){const h=Number(f.indexOffset);return new iE(this.bbi,i,h,o,s>0,"summary")}}return this.getUnzoomedView(n)}}function Pz(e){return e.filter(t=>!!t)}class Lz extends LE{constructor(){super(...arguments),this.readIndicesCache=new Qf({cache:new Xf({maxSize:1}),fill:(t,n)=>this._readIndices({...t,signal:n})})}readIndices(t={}){const{signal:n,...r}=t;return this.readIndicesCache.get(JSON.stringify(r),t,n)}async getView(t,n){return this.getUnzoomedView(n)}async _readIndices(t){const{extHeaderOffset:n,isBigEndian:r}=await this.getHeader(t),{buffer:i}=await this.bbi.read(be.Buffer.alloc(64),0,64,Number(n)),a=r?"big":"little",o=new Be().endianess(a).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:u}=o;if(s===0)return[];const l=20,c=l*s,{buffer:f}=await this.bbi.read(be.Buffer.alloc(c),0,c,Number(u)),h=new Be().endianess(a).int16("type").int16("fieldcount").uint64("offset").skip(4).int16("field"),d=[];for(let p=0;p<s;p+=1)d.push(h.parse(f.subarray(p*l)));return d}async searchExtraIndexBlocks(t,n={}){const{isBigEndian:r}=await this.getHeader(n),i=await this.readIndices(n);if(i.length===0)return[];const a=i.map(async o=>{const{offset:s,field:u}=o,{buffer:l}=await this.bbi.read(be.Buffer.alloc(32),0,32,Number(s),n),c=r?"big":"little",f=new Be().endianess(c).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:p}=f.parse(l),m=new Be().endianess(c).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new Be().array("leafkeys",{length:"cnt",type:new Be().endianess(c).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new Be().array("keys",{length:"cnt",type:new Be().endianess(c).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),y=async x=>{const S=Number(x),_=4+h*(d+p),{buffer:T}=await this.bbi.read(be.Buffer.alloc(_),0,_,S,n),I=m.parse(T);if(I.leafkeys){let B;for(let R=0;R<I.leafkeys.length;R+=1){const{key:M}=I.leafkeys[R];if(t.localeCompare(M)<0&&B)return y(B);B=I.leafkeys[R].offset}return y(B)}for(let B=0;B<I.keys.length;B+=1)if(I.keys[B].key===t)return{...I.keys[B],field:u}},w=32;return y(Number(s)+w)});return Pz(await Promise.all(a))}async searchExtraIndex(t,n={}){const r=await this.searchExtraIndexBlocks(t,n);if(r.length===0)return[];const i=await this.getUnzoomedView(n),a=r.map(s=>new mn(u=>{i.readFeatures(u,[s],n)}).pipe(FE((u,l)=>u.concat(l)),DE(u=>{for(const l of u)l.field=s.field;return u})));return(await BE(Iz(...a))).filter(s=>{var u;return((u=s.rest)===null||u===void 0?void 0:u.split(" ")[(s.field||0)-3])===t})}}const NE=Object.freeze(Object.defineProperty({__proto__:null,BigBed:Lz,BigWig:Mz},Symbol.toStringTag,{value:"Module"}));function Nz(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function Bo(e,t,n,r){this.message=e,this.expected=t,this.found=n,this.location=r,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Bo)}Nz(Bo,Error),Bo.buildMessage=function(e,t){var n={literal:function(l){return'"'+i(l.text)+'"'},class:function(l){var c="",f;for(f=0;f<l.parts.length;f++)c+=l.parts[f]instanceof Array?a(l.parts[f][0])+"-"+a(l.parts[f][1]):a(l.parts[f]);return"["+(l.inverted?"^":"")+c+"]"},any:function(l){return"any character"},end:function(l){return"end of input"},other:function(l){return l.description}};function r(l){return l.charCodeAt(0).toString(16).toUpperCase()}function i(l){return l.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(c){return"\\x0"+r(c)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(c){return"\\x"+r(c)})}function a(l){return l.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(c){return"\\x0"+r(c)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(c){return"\\x"+r(c)})}function o(l){return n[l.type](l)}function s(l){var c=new Array(l.length),f,h;for(f=0;f<l.length;f++)c[f]=o(l[f]);if(c.sort(),c.length>0){for(f=1,h=1;f<c.length;f++)c[f-1]!==c[f]&&(c[h]=c[f],h++);c.length=h}switch(c.length){case 1:return c[0];case 2:return c[0]+" or "+c[1];default:return c.slice(0,-1).join(", ")+", or "+c[c.length-1]}}function u(l){return l?'"'+i(l)+'"':"end of input"}return"Expected "+s(e)+" but "+u(t)+" found."};function Oz(e,t){t=t!==void 0?t:{};var n={},r={declaration:s4},i=s4,a="(",o=Fe("(",!1),s=")",u=Fe(")",!1),l=function(E,z,X,J){return{type:E,name:z,comment:X,fields:J}},c="simple",f=Fe("simple",!1),h="object",d=Fe("object",!1),p="table",m=Fe("table",!1),y="auto",w=Fe("auto",!1),x="primary",S=Fe("primary",!1),_="index",T=Fe("index",!1),I="unique",B=Fe("unique",!1),R=function(E,z){return z},M=function(E,z){return E.name&&z.unshift(E),z},H="#",O=Fe("#",!1),re=";",se=Fe(";",!1),te=function(E,z,X){return{type:E,name:z,comment:X}},me="[",Ke=Fe("[",!1),Re="]",Je=Fe("]",!1),We=function(E,z,X,J){return{type:E,size:z,name:X,comment:J}},et=function(E,z,X,J){return{type:E,vals:z,name:X,comment:J}},Se=",",Ce=Fe(",",!1),gt=function(E,z){return z.unshift(E),z},qt="int",Oe=Fe("int",!1),L="uint",P=Fe("uint",!1),q="short",j=Fe("short",!1),Z="ushort",C=Fe("ushort",!1),A="byte",V=Fe("byte",!1),W="ubyte",ue=Fe("ubyte",!1),ne="float",ce=Fe("float",!1),Wt="char",Ai=Fe("char",!1),Ei="string",_i=Fe("string",!1),Ct="lstring",kr=Fe("lstring",!1),Si="enum",Zt=Fe("enum",!1),nr="double",v=Fe("double",!1),g="bigint",b=Fe("bigint",!1),k="set",F=Fe("set",!1),N=function(E,z){return E+" "+z},$=/^[a-zA-Z_]/,fe=Lu([["a","z"],["A","Z"],"_"],!1,!1),He=/^[a-zA-Z0-9_]/,Pe=Lu([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),Ze=function(E){return r4()},ke=/^[^\n\r]/,K_=Lu([`
474
- `,"\r"],!0,!1),iG=function(E){return E.join("").replace(/^"/,"").replace(/"$/,"")},aG=i4("integer"),J_=/^[0-9]/,e4=Lu([["0","9"]],!1,!1),oG=function(){return parseInt(r4(),10)},sG=i4("whitespace"),t4=/^[ \t\n\r]/,n4=Lu([" "," ",`
475
- `,"\r"],!1,!1),D=0,Mt=0,Fh=[{line:1,column:1}],rr=0,Am=[],ae=0,Mh;if("startRule"in t){if(!(t.startRule in r))throw new Error(`Can't start parsing from rule "`+t.startRule+'".');i=r[t.startRule]}function r4(){return e.substring(Mt,D)}function Fe(E,z){return{type:"literal",text:E,ignoreCase:z}}function Lu(E,z,X){return{type:"class",parts:E,inverted:z,ignoreCase:X}}function lG(){return{type:"end"}}function i4(E){return{type:"other",description:E}}function a4(E){var z=Fh[E],X;if(z)return z;for(X=E-1;!Fh[X];)X--;for(z=Fh[X],z={line:z.line,column:z.column};X<E;)e.charCodeAt(X)===10?(z.line++,z.column=1):z.column++,X++;return Fh[E]=z,z}function o4(E,z){var X=a4(E),J=a4(z);return{start:{offset:E,line:X.line,column:X.column},end:{offset:z,line:J.line,column:J.column}}}function oe(E){D<rr||(D>rr&&(rr=D,Am=[]),Am.push(E))}function uG(E,z,X){return new Bo(Bo.buildMessage(E,z),E,z,X)}function s4(){var E,z,X,J,ie,ze,Ye,wn,Ci,Tr,ki,Ir,Ti,Br;return E=D,z=ye(),z!==n?(X=l4(),X!==n?(J=ye(),J!==n?(ie=u4(),ie!==n?(ze=ye(),ze!==n?(Ye=Ph(),Ye!==n?(wn=ye(),wn!==n?(e.charCodeAt(D)===40?(Ci=a,D++):(Ci=n,ae===0&&oe(o)),Ci!==n?(Tr=ye(),Tr!==n?(ki=cG(),ki!==n?(Ir=ye(),Ir!==n?(e.charCodeAt(D)===41?(Ti=s,D++):(Ti=n,ae===0&&oe(u)),Ti!==n?(Br=ye(),Br!==n?(Mt=E,z=l(X,ie,Ye,ki),E=z):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n),E}function l4(){var E;return e.substr(D,6)===c?(E=c,D+=6):(E=n,ae===0&&oe(f)),E===n&&(e.substr(D,6)===h?(E=h,D+=6):(E=n,ae===0&&oe(d)),E===n&&(e.substr(D,5)===p?(E=p,D+=5):(E=n,ae===0&&oe(m)))),E}function u4(){var E,z,X,J;return E=Fn(),E===n&&(E=D,z=Fn(),z!==n?(X=c4(),X!==n?(z=[z,X],E=z):(D=E,E=n)):(D=E,E=n),E===n&&(E=D,z=Fn(),z!==n?(e.substr(D,4)===y?(X=y,D+=4):(X=n,ae===0&&oe(w)),X!==n?(z=[z,X],E=z):(D=E,E=n)):(D=E,E=n),E===n&&(E=D,z=Fn(),z!==n?(X=c4(),X!==n?(e.substr(D,4)===y?(J=y,D+=4):(J=n,ae===0&&oe(w)),J!==n?(z=[z,X,J],E=z):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)))),E}function c4(){var E;return e.substr(D,7)===x?(E=x,D+=7):(E=n,ae===0&&oe(S)),E===n&&(e.substr(D,5)===_?(E=_,D+=5):(E=n,ae===0&&oe(T)),E===n&&(e.substr(D,6)===I?(E=I,D+=6):(E=n,ae===0&&oe(B)))),E}function Ph(){var E;return E=f4(),E===n&&(E=ye()),E}function cG(){var E,z,X,J,ie,ze,Ye;if(E=D,z=Em(),z!==n)if(X=ye(),X!==n){for(J=[],ie=D,ze=ye(),ze!==n?(Ye=Em(),Ye!==n?(Mt=ie,ze=R(z,Ye),ie=ze):(D=ie,ie=n)):(D=ie,ie=n);ie!==n;)J.push(ie),ie=D,ze=ye(),ze!==n?(Ye=Em(),Ye!==n?(Mt=ie,ze=R(z,Ye),ie=ze):(D=ie,ie=n)):(D=ie,ie=n);J!==n?(ie=ye(),ie!==n?(Mt=E,z=M(z,J),E=z):(D=E,E=n)):(D=E,E=n)}else D=E,E=n;else D=E,E=n;return E}function fG(){var E;return e.charCodeAt(D)===35?(E=H,D++):(E=n,ae===0&&oe(O)),E}function hG(){var E,z,X,J,ie;return E=D,z=ye(),z!==n?(X=fG(),X!==n?(J=f4(),J!==n?(ie=ye(),ie!==n?(z=[z,X,J,ie],E=z):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n),E}function Em(){var E,z,X,J,ie,ze,Ye,wn,Ci,Tr,ki,Ir,Ti,Br;return E=D,z=_m(),z!==n?(X=ye(),X!==n?(J=Fn(),J!==n?(ie=ye(),ie!==n?(e.charCodeAt(D)===59?(ze=re,D++):(ze=n,ae===0&&oe(se)),ze!==n?(Ye=ye(),Ye!==n?(wn=Ph(),wn!==n?(Mt=E,z=te(z,J,wn),E=z):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n),E===n&&(E=D,z=_m(),z!==n?(X=ye(),X!==n?(e.charCodeAt(D)===91?(J=me,D++):(J=n,ae===0&&oe(Ke)),J!==n?(ie=ye(),ie!==n?(ze=pG(),ze!==n?(Ye=ye(),Ye!==n?(e.charCodeAt(D)===93?(wn=Re,D++):(wn=n,ae===0&&oe(Je)),wn!==n?(Ci=ye(),Ci!==n?(Tr=Fn(),Tr!==n?(ki=ye(),ki!==n?(e.charCodeAt(D)===59?(Ir=re,D++):(Ir=n,ae===0&&oe(se)),Ir!==n?(Ti=ye(),Ti!==n?(Br=Ph(),Br!==n?(Mt=E,z=We(z,ze,Tr,Br),E=z):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n),E===n&&(E=D,z=_m(),z!==n?(X=ye(),X!==n?(e.charCodeAt(D)===40?(J=a,D++):(J=n,ae===0&&oe(o)),J!==n?(ie=ye(),ie!==n?(ze=dG(),ze!==n?(Ye=ye(),Ye!==n?(e.charCodeAt(D)===41?(wn=s,D++):(wn=n,ae===0&&oe(u)),wn!==n?(Ci=ye(),Ci!==n?(Tr=Fn(),Tr!==n?(ki=ye(),ki!==n?(e.charCodeAt(D)===59?(Ir=re,D++):(Ir=n,ae===0&&oe(se)),Ir!==n?(Ti=ye(),Ti!==n?(Br=Ph(),Br!==n?(Mt=E,z=et(z,ze,Tr,Br),E=z):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n)):(D=E,E=n),E===n&&(E=hG()))),E}function dG(){var E,z,X,J,ie,ze,Ye;if(E=D,z=Fn(),z!==n){for(X=[],J=D,e.charCodeAt(D)===44?(ie=Se,D++):(ie=n,ae===0&&oe(Ce)),ie!==n?(ze=ye(),ze!==n?(Ye=Fn(),Ye!==n?(Mt=J,ie=R(z,Ye),J=ie):(D=J,J=n)):(D=J,J=n)):(D=J,J=n);J!==n;)X.push(J),J=D,e.charCodeAt(D)===44?(ie=Se,D++):(ie=n,ae===0&&oe(Ce)),ie!==n?(ze=ye(),ze!==n?(Ye=Fn(),Ye!==n?(Mt=J,ie=R(z,Ye),J=ie):(D=J,J=n)):(D=J,J=n)):(D=J,J=n);X!==n?(Mt=E,z=gt(z,X),E=z):(D=E,E=n)}else D=E,E=n;return E}function _m(){var E,z,X,J;return e.substr(D,3)===qt?(E=qt,D+=3):(E=n,ae===0&&oe(Oe)),E===n&&(e.substr(D,4)===L?(E=L,D+=4):(E=n,ae===0&&oe(P)),E===n&&(e.substr(D,5)===q?(E=q,D+=5):(E=n,ae===0&&oe(j)),E===n&&(e.substr(D,6)===Z?(E=Z,D+=6):(E=n,ae===0&&oe(C)),E===n&&(e.substr(D,4)===A?(E=A,D+=4):(E=n,ae===0&&oe(V)),E===n&&(e.substr(D,5)===W?(E=W,D+=5):(E=n,ae===0&&oe(ue)),E===n&&(e.substr(D,5)===ne?(E=ne,D+=5):(E=n,ae===0&&oe(ce)),E===n&&(e.substr(D,4)===Wt?(E=Wt,D+=4):(E=n,ae===0&&oe(Ai)),E===n&&(e.substr(D,6)===Ei?(E=Ei,D+=6):(E=n,ae===0&&oe(_i)),E===n&&(e.substr(D,7)===Ct?(E=Ct,D+=7):(E=n,ae===0&&oe(kr)),E===n&&(e.substr(D,4)===Si?(E=Si,D+=4):(E=n,ae===0&&oe(Zt)),E===n&&(e.substr(D,6)===nr?(E=nr,D+=6):(E=n,ae===0&&oe(v)),E===n&&(e.substr(D,6)===g?(E=g,D+=6):(E=n,ae===0&&oe(b)),E===n&&(e.substr(D,3)===k?(E=k,D+=3):(E=n,ae===0&&oe(F)),E===n&&(E=D,z=l4(),z!==n?(X=ye(),X!==n?(J=u4(),J!==n?(Mt=E,z=N(z,J),E=z):(D=E,E=n)):(D=E,E=n)):(D=E,E=n))))))))))))))),E}function pG(){var E;return E=gG(),E===n&&(E=Fn()),E}function Fn(){var E,z,X,J,ie;if(E=D,z=D,$.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,ae===0&&oe(fe)),X!==n){for(J=[],He.test(e.charAt(D))?(ie=e.charAt(D),D++):(ie=n,ae===0&&oe(Pe));ie!==n;)J.push(ie),He.test(e.charAt(D))?(ie=e.charAt(D),D++):(ie=n,ae===0&&oe(Pe));J!==n?(X=[X,J],z=X):(D=z,z=n)}else D=z,z=n;return z!==n&&(Mt=E,z=Ze()),E=z,E}function f4(){var E,z,X;for(E=D,z=[],ke.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,ae===0&&oe(K_));X!==n;)z.push(X),ke.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,ae===0&&oe(K_));return z!==n&&(Mt=E,z=iG(z)),E=z,E}function gG(){var E,z,X,J;if(ae++,E=D,z=ye(),z!==n){if(X=[],J_.test(e.charAt(D))?(J=e.charAt(D),D++):(J=n,ae===0&&oe(e4)),J!==n)for(;J!==n;)X.push(J),J_.test(e.charAt(D))?(J=e.charAt(D),D++):(J=n,ae===0&&oe(e4));else X=n;X!==n?(Mt=E,z=oG(),E=z):(D=E,E=n)}else D=E,E=n;return ae--,E===n&&(z=n,ae===0&&oe(aG)),E}function ye(){var E,z;for(ae++,E=[],t4.test(e.charAt(D))?(z=e.charAt(D),D++):(z=n,ae===0&&oe(n4));z!==n;)E.push(z),t4.test(e.charAt(D))?(z=e.charAt(D),D++):(z=n,ae===0&&oe(n4));return ae--,E===n&&(z=n,ae===0&&oe(sG)),E}if(Mh=i(),Mh!==n&&D===e.length)return Mh;throw Mh!==n&&D<e.length&&oe(lG()),uG(Am,rr<e.length?e.charAt(rr):null,rr<e.length?o4(rr,rr+1):o4(rr,rr))}var OE={SyntaxError:Bo,parse:Oz};const zz=bl(OE),zg=Object.fromEntries(Object.entries(Object.freeze(Object.defineProperty({__proto__:null,bigChain:`table bigChain
486
+ `):"",this.name="UnsubscriptionError",this.errors=n}});function _E(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var jg=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,n,r,i,o;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var s=uu(a),u=s.next();!u.done;u=s.next()){var l=u.value;l.remove(this)}}catch(m){t={error:m}}finally{try{u&&!u.done&&(n=s.return)&&n.call(s)}finally{if(t)throw t.error}}else a.remove(this);var c=this.initialTeardown;if(lt(c))try{c()}catch(m){o=m instanceof Vg?m.errors:[m]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var h=uu(f),d=h.next();!d.done;d=h.next()){var p=d.value;try{CE(p)}catch(m){o=o??[],m instanceof Vg?o=Hg(Hg([],Gg(o)),Gg(m.errors)):o.push(m)}}}catch(m){r={error:m}}finally{try{d&&!d.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}}if(o)throw new Vg(o)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)CE(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(t)}},e.prototype._hasParent=function(t){var n=this._parentage;return n===t||Array.isArray(n)&&n.includes(t)},e.prototype._addParent=function(t){var n=this._parentage;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t},e.prototype._removeParent=function(t){var n=this._parentage;n===t?this._parentage=null:Array.isArray(n)&&_E(n,t)},e.prototype.remove=function(t){var n=this._finalizers;n&&_E(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();jg.EMPTY;function SE(e){return e instanceof jg||e&&"closed"in e&&lt(e.remove)&&lt(e.add)&&lt(e.unsubscribe)}function CE(e){lt(e)?e():e.unsubscribe()}var kE={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},TE={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return setTimeout.apply(void 0,Hg([e,t],Gg(n)))},clearTimeout:function(e){var t=TE.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function IE(e){TE.setTimeout(function(){throw e})}function BE(){}function Fz(e){e()}var $g=function(e){Ug(t,e);function t(n){var r=e.call(this)||this;return r.isStopped=!1,n?(r.destination=n,SE(n)&&n.add(r)):r.destination=Nz,r}return t.create=function(n,r,i){return new bh(n,r,i)},t.prototype.next=function(n){this.isStopped||this._next(n)},t.prototype.error=function(n){this.isStopped||(this.isStopped=!0,this._error(n))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(n){this.destination.next(n)},t.prototype._error=function(n){try{this.destination.error(n)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(jg),Mz=Function.prototype.bind;function qg(e,t){return Mz.call(e,t)}var Pz=function(){function e(t){this.partialObserver=t}return e.prototype.next=function(t){var n=this.partialObserver;if(n.next)try{n.next(t)}catch(r){yh(r)}},e.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(r){yh(r)}else yh(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(n){yh(n)}},e}(),bh=function(e){Ug(t,e);function t(n,r,i){var o=e.call(this)||this,a;if(lt(n)||!n)a={next:n??void 0,error:r??void 0,complete:i??void 0};else{var s;o&&kE.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return o.unsubscribe()},a={next:n.next&&qg(n.next,s),error:n.error&&qg(n.error,s),complete:n.complete&&qg(n.complete,s)}):a=n}return o.destination=new Pz(a),o}return t}($g);function yh(e){IE(e)}function Lz(e){throw e}var Nz={closed:!0,next:BE,error:Lz,complete:BE},Wg=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function DE(e){return e}function Oz(e){return e.length===0?DE:e.length===1?e[0]:function(n){return e.reduce(function(r,i){return i(r)},n)}}var mn=function(){function e(t){t&&(this._subscribe=t)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(t,n,r){var i=this,o=Uz(t)?t:new bh(t,n,r);return Fz(function(){var a=i,s=a.operator,u=a.source;o.add(s?s.call(o,u):u?i._subscribe(o):i._trySubscribe(o))}),o},e.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(n){t.error(n)}},e.prototype.forEach=function(t,n){var r=this;return n=RE(n),new n(function(i,o){var a=new bh({next:function(s){try{t(s)}catch(u){o(u),a.unsubscribe()}},error:o,complete:i});r.subscribe(a)})},e.prototype._subscribe=function(t){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(t)},e.prototype[Wg]=function(){return this},e.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return Oz(t)(this)},e.prototype.toPromise=function(t){var n=this;return t=RE(t),new t(function(r,i){var o;n.subscribe(function(a){return o=a},function(a){return i(a)},function(){return r(o)})})},e.create=function(t){return new e(t)},e}();function RE(e){var t;return(t=e??kE.Promise)!==null&&t!==void 0?t:Promise}function zz(e){return e&&lt(e.next)&&lt(e.error)&&lt(e.complete)}function Uz(e){return e&&e instanceof $g||zz(e)&&SE(e)}function Gz(e){return lt(e==null?void 0:e.lift)}function Ma(e){return function(t){if(Gz(t))return t.lift(function(n){try{return e(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function cu(e,t,n,r,i){return new Hz(e,t,n,r,i)}var Hz=function(e){Ug(t,e);function t(n,r,i,o,a,s){var u=e.call(this,n)||this;return u.onFinalize=a,u.shouldUnsubscribe=s,u._next=r?function(l){try{r(l)}catch(c){n.error(c)}}:e.prototype._next,u._error=o?function(l){try{o(l)}catch(c){n.error(c)}finally{this.unsubscribe()}}:e.prototype._error,u._complete=i?function(){try{i()}catch(l){n.error(l)}finally{this.unsubscribe()}}:e.prototype._complete,u}return t.prototype.unsubscribe=function(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;e.prototype.unsubscribe.call(this),!r&&((n=this.onFinalize)===null||n===void 0||n.call(this))}},t}($g),Vz=new mn(function(e){return e.complete()});function jz(e){return e&&lt(e.schedule)}function FE(e){return e[e.length-1]}function $z(e){return jz(FE(e))?e.pop():void 0}function qz(e,t){return typeof FE(e)=="number"?e.pop():t}var ME=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function PE(e){return lt(e==null?void 0:e.then)}function LE(e){return lt(e[Wg])}function NE(e){return Symbol.asyncIterator&&lt(e==null?void 0:e[Symbol.asyncIterator])}function OE(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Wz(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var zE=Wz();function UE(e){return lt(e==null?void 0:e[zE])}function GE(e){return Dz(this,arguments,function(){var n,r,i,o;return AE(this,function(a){switch(a.label){case 0:n=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,Fa(n.read())];case 3:return r=a.sent(),i=r.value,o=r.done,o?[4,Fa(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,Fa(i)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function HE(e){return lt(e==null?void 0:e.getReader)}function Pa(e){if(e instanceof mn)return e;if(e!=null){if(LE(e))return Zz(e);if(ME(e))return Yz(e);if(PE(e))return Qz(e);if(NE(e))return VE(e);if(UE(e))return Xz(e);if(HE(e))return Kz(e)}throw OE(e)}function Zz(e){return new mn(function(t){var n=e[Wg]();if(lt(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Yz(e){return new mn(function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()})}function Qz(e){return new mn(function(t){e.then(function(n){t.closed||(t.next(n),t.complete())},function(n){return t.error(n)}).then(null,IE)})}function Xz(e){return new mn(function(t){var n,r;try{for(var i=uu(e),o=i.next();!o.done;o=i.next()){var a=o.value;if(t.next(a),t.closed)return}}catch(s){n={error:s}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}t.complete()})}function VE(e){return new mn(function(t){Jz(e,t).catch(function(n){return t.error(n)})})}function Kz(e){return VE(GE(e))}function Jz(e,t){var n,r,i,o;return Bz(this,void 0,void 0,function(){var a,s;return AE(this,function(u){switch(u.label){case 0:u.trys.push([0,5,6,11]),n=Rz(e),u.label=1;case 1:return[4,n.next()];case 2:if(r=u.sent(),!!r.done)return[3,4];if(a=r.value,t.next(a),t.closed)return[2];u.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return s=u.sent(),i={error:s},[3,11];case 6:return u.trys.push([6,,9,10]),r&&!r.done&&(o=n.return)?[4,o.call(n)]:[3,8];case 7:u.sent(),u.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})}function vi(e,t,n,r,i){r===void 0&&(r=0),i===void 0&&(i=!1);var o=t.schedule(function(){n(),i?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(o),!i)return o}function jE(e,t){return t===void 0&&(t=0),Ma(function(n,r){n.subscribe(cu(r,function(i){return vi(r,e,function(){return r.next(i)},t)},function(){return vi(r,e,function(){return r.complete()},t)},function(i){return vi(r,e,function(){return r.error(i)},t)}))})}function $E(e,t){return t===void 0&&(t=0),Ma(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function eU(e,t){return Pa(e).pipe($E(t),jE(t))}function tU(e,t){return Pa(e).pipe($E(t),jE(t))}function nU(e,t){return new mn(function(n){var r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function rU(e,t){return new mn(function(n){var r;return vi(n,t,function(){r=e[zE](),vi(n,t,function(){var i,o,a;try{i=r.next(),o=i.value,a=i.done}catch(s){n.error(s);return}a?n.complete():n.next(o)},0,!0)}),function(){return lt(r==null?void 0:r.return)&&r.return()}})}function qE(e,t){if(!e)throw new Error("Iterable cannot be null");return new mn(function(n){vi(n,t,function(){var r=e[Symbol.asyncIterator]();vi(n,t,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function iU(e,t){return qE(GE(e),t)}function oU(e,t){if(e!=null){if(LE(e))return eU(e,t);if(ME(e))return nU(e,t);if(PE(e))return tU(e,t);if(NE(e))return qE(e,t);if(UE(e))return rU(e,t);if(HE(e))return iU(e,t)}throw OE(e)}function aU(e,t){return t?oU(e,t):Pa(e)}var sU=EE(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function WE(e,t){var n=typeof t=="object";return new Promise(function(r,i){var o=new bh({next:function(a){r(a),o.unsubscribe()},error:i,complete:function(){n?r(t.defaultValue):i(new sU)}});e.subscribe(o)})}function ZE(e,t){return Ma(function(n,r){var i=0;n.subscribe(cu(r,function(o){r.next(e.call(t,o,i++))}))})}function lU(e,t,n,r,i,o,a,s){var u=[],l=0,c=0,f=!1,h=function(){f&&!u.length&&!l&&t.complete()},d=function(m){return l<r?p(m):u.push(m)},p=function(m){o&&t.next(m),l++;var y=!1;Pa(n(m,c++)).subscribe(cu(t,function(w){i==null||i(w),o?d(w):t.next(w)},function(){y=!0},void 0,function(){if(y)try{l--;for(var w=function(){var A=u.shift();a?vi(t,a,function(){return p(A)}):p(A)};u.length&&l<r;)w();h()}catch(A){t.error(A)}}))};return e.subscribe(cu(t,d,function(){f=!0,h()})),function(){s==null||s()}}function YE(e,t,n){return n===void 0&&(n=1/0),lt(t)?YE(function(r,i){return ZE(function(o,a){return t(r,o,i,a)})(Pa(e(r,i)))},n):(typeof t=="number"&&(n=t),Ma(function(r,i){return lU(r,i,e,n)}))}function uU(e){return e===void 0&&(e=1/0),YE(DE,e)}function cU(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=$z(e),r=qz(e,1/0),i=e;return i.length?i.length===1?Pa(i[0]):uU(r)(aU(i,n)):Vz}function fU(e,t,n,r,i){return function(o,a){var s=n,u=t,l=0;o.subscribe(cu(a,function(c){var f=l++;u=s?e(u,c,f):(s=!0,c),r&&a.next(u)},i&&function(){s&&a.next(u),a.complete()}))}}function QE(e,t){return Ma(fU(e,t,arguments.length>=2,!1,!0))}var hU=function(e,t){return e.push(t),e};function dU(){return Ma(function(e,t){QE(hU,[])(e).subscribe(t)})}const XE=-2003829722,Zg=-2021002517;function pU(e){return new TextDecoder().decode(e)}function KE(e){const t=e?"big":"little",n=new De().endianess(t).int32("magic").uint16("version").uint16("numZoomLevels").uint64("chromTreeOffset").uint64("unzoomedDataOffset").uint64("unzoomedIndexOffset").uint16("fieldCount").uint16("definedFieldCount").uint64("asOffset").uint64("totalSummaryOffset").uint32("uncompressBufSize").uint64("extHeaderOffset").array("zoomLevels",{length:"numZoomLevels",type:new De().endianess(t).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new De().endianess(t).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new De().endianess(t).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),o=new De().endianess(t).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:o}}class JE{getHeader(t){return this.headerP||(this.headerP=this._getHeader(t).catch(n=>{throw this.headerP=void 0,n})),this.headerP}constructor(t){const{filehandle:n,renameRefSeqs:r=a=>a,path:i,url:o}=t;if(this.renameRefSeqs=r,n)this.bbi=n;else if(o)this.bbi=new no(o);else if(i)this.bbi=new dt(i);else throw new Error("no file given")}async _getHeader(t){const n=await this._getMainHeader(t),r=await this._readChromTree(n,t);return{...n,...r}}async _getMainHeader(t,n=2e3){const{buffer:r}=await this.bbi.read(be.Buffer.alloc(n),0,n,0,t),i=this._isBigEndian(r),o=KE(i),a=o.headerParser.parse(r),{magic:s,asOffset:u,totalSummaryOffset:l}=a;if(a.fileType=s===Zg?"bigbed":"bigwig",u>n||l>n)return this._getMainHeader(t,n*2);if(u){const c=Number(a.asOffset);a.autoSql=pU(r.subarray(c,r.indexOf(0,c)))}if(a.totalSummaryOffset>n-8*5)return this._getMainHeader(t,n*2);if(a.totalSummaryOffset){const c=r.subarray(Number(a.totalSummaryOffset)),f=o.totalSummaryParser.parse(c);a.totalSummary={...f,basesCovered:Number(f.basesCovered)}}return{...a,isBigEndian:i}}_isBigEndian(t){let n=t.readInt32LE(0);if(n===XE||n===Zg)return!1;if(n=t.readInt32BE(0),n===XE||n===Zg)return!0;throw new Error("not a BigWig/BigBed file")}async _readChromTree(t,n){const r=t.isBigEndian,i=r?"big":"little",o=[],a={};let s=Number(t.unzoomedDataOffset);const u=Number(t.chromTreeOffset);for(;s%4!==0;)s+=1;const l=s-u,{buffer:c}=await this.bbi.read(be.Buffer.alloc(l),0,l,Number(u),n),f=KE(r),{keySize:h}=f.chromTreeParser.parse(c),d=new De().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),p=new De().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),m=32,y=async w=>{let A=w;if(A>=c.length)throw new Error("reading beyond end of buffer");const S=f.isLeafNode.parse(c.subarray(A)),{isLeafNode:_,cnt:k}=S;if(A+=S.offset,_)for(let B=0;B<k;B+=1){const I=d.parse(c.subarray(A));A+=I.offset;const{key:D,refId:M,refSize:G}=I,N={name:D,id:M,length:G};a[this.renameRefSeqs(D)]=M,o[M]=N}else{const B=[];for(let I=0;I<k;I+=1){const D=p.parse(c.subarray(A)),{childOffset:M}=D;A+=D.offset,B.push(y(Number(M)-Number(u)))}await Promise.all(B)}};return await y(m),{refsByName:a,refsByNumber:o}}async getUnzoomedView(t){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:o,fileType:a}=await this.getHeader(t);return new xE(this.bbi,r,n,o,i>0,a)}async getFeatureStream(t,n,r,i){await this.getHeader(i);const o=this.renameRefSeqs(t);let a;const{basesPerSpan:s,scale:u}=i||{};return s?a=await this.getView(1/s,i):u?a=await this.getView(u,i):a=await this.getView(1,i),new mn(l=>{a.readWigData(o,n,r,l,i)})}async getFeatures(t,n,r,i){const o=await this.getFeatureStream(t,n,r,i);return(await WE(o.pipe(dU()))).flat()}}class gU extends JE{async getView(t,n){const{zoomLevels:r,refsByName:i,fileSize:o,isBigEndian:a,uncompressBufSize:s}=await this.getHeader(n),u=1/t;let l=r.length;o||(l-=1);for(let c=l;c>=0;c-=1){const f=r[c];if(f&&f.reductionLevel<=2*u){const h=Number(f.indexOffset);return new xE(this.bbi,i,h,a,s>0,"summary")}}return this.getUnzoomedView(n)}}function mU(e){return e.filter(t=>!!t)}class bU extends JE{constructor(){super(...arguments),this.readIndicesCache=new nh({cache:new rh({maxSize:1}),fill:(t,n)=>this._readIndices({...t,signal:n})})}readIndices(t={}){const{signal:n,...r}=t;return this.readIndicesCache.get(JSON.stringify(r),t,n)}async getView(t,n){return this.getUnzoomedView(n)}async _readIndices(t){const{extHeaderOffset:n,isBigEndian:r}=await this.getHeader(t),{buffer:i}=await this.bbi.read(be.Buffer.alloc(64),0,64,Number(n)),o=r?"big":"little",a=new De().endianess(o).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:u}=a;if(s===0)return[];const l=20,c=l*s,{buffer:f}=await this.bbi.read(be.Buffer.alloc(c),0,c,Number(u)),h=new De().endianess(o).int16("type").int16("fieldcount").uint64("offset").skip(4).int16("field"),d=[];for(let p=0;p<s;p+=1)d.push(h.parse(f.subarray(p*l)));return d}async searchExtraIndexBlocks(t,n={}){const{isBigEndian:r}=await this.getHeader(n),i=await this.readIndices(n);if(i.length===0)return[];const o=i.map(async a=>{const{offset:s,field:u}=a,{buffer:l}=await this.bbi.read(be.Buffer.alloc(32),0,32,Number(s),n),c=r?"big":"little",f=new De().endianess(c).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:p}=f.parse(l),m=new De().endianess(c).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new De().array("leafkeys",{length:"cnt",type:new De().endianess(c).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new De().array("keys",{length:"cnt",type:new De().endianess(c).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),y=async A=>{const S=Number(A),_=4+h*(d+p),{buffer:k}=await this.bbi.read(be.Buffer.alloc(_),0,_,S,n),B=m.parse(k);if(B.leafkeys){let I;for(let D=0;D<B.leafkeys.length;D+=1){const{key:M}=B.leafkeys[D];if(t.localeCompare(M)<0&&I)return y(I);I=B.leafkeys[D].offset}return y(I)}for(let I=0;I<B.keys.length;I+=1)if(B.keys[I].key===t)return{...B.keys[I],field:u}},w=32;return y(Number(s)+w)});return mU(await Promise.all(o))}async searchExtraIndex(t,n={}){const r=await this.searchExtraIndexBlocks(t,n);if(r.length===0)return[];const i=await this.getUnzoomedView(n),o=r.map(s=>new mn(u=>{i.readFeatures(u,[s],n)}).pipe(QE((u,l)=>u.concat(l)),ZE(u=>{for(const l of u)l.field=s.field;return u})));return(await WE(cU(...o))).filter(s=>{var u;return((u=s.rest)===null||u===void 0?void 0:u.split(" ")[(s.field||0)-3])===t})}}const e_=Object.freeze(Object.defineProperty({__proto__:null,BigBed:bU,BigWig:gU},Symbol.toStringTag,{value:"Module"}));function yU(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function La(e,t,n,r){this.message=e,this.expected=t,this.found=n,this.location=r,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,La)}yU(La,Error),La.buildMessage=function(e,t){var n={literal:function(l){return'"'+i(l.text)+'"'},class:function(l){var c="",f;for(f=0;f<l.parts.length;f++)c+=l.parts[f]instanceof Array?o(l.parts[f][0])+"-"+o(l.parts[f][1]):o(l.parts[f]);return"["+(l.inverted?"^":"")+c+"]"},any:function(l){return"any character"},end:function(l){return"end of input"},other:function(l){return l.description}};function r(l){return l.charCodeAt(0).toString(16).toUpperCase()}function i(l){return l.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(c){return"\\x0"+r(c)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(c){return"\\x"+r(c)})}function o(l){return l.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(c){return"\\x0"+r(c)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(c){return"\\x"+r(c)})}function a(l){return n[l.type](l)}function s(l){var c=new Array(l.length),f,h;for(f=0;f<l.length;f++)c[f]=a(l[f]);if(c.sort(),c.length>0){for(f=1,h=1;f<c.length;f++)c[f-1]!==c[f]&&(c[h]=c[f],h++);c.length=h}switch(c.length){case 1:return c[0];case 2:return c[0]+" or "+c[1];default:return c.slice(0,-1).join(", ")+", or "+c[c.length-1]}}function u(l){return l?'"'+i(l)+'"':"end of input"}return"Expected "+s(e)+" but "+u(t)+" found."};function wU(e,t){t=t!==void 0?t:{};var n={},r={declaration:_4},i=_4,o="(",a=Ne("(",!1),s=")",u=Ne(")",!1),l=function(E,U,K,J){return{type:E,name:U,comment:K,fields:J}},c="simple",f=Ne("simple",!1),h="object",d=Ne("object",!1),p="table",m=Ne("table",!1),y="auto",w=Ne("auto",!1),A="primary",S=Ne("primary",!1),_="index",k=Ne("index",!1),B="unique",I=Ne("unique",!1),D=function(E,U){return U},M=function(E,U){return E.name&&U.unshift(E),U},G="#",N=Ne("#",!1),ne=";",ie=Ne(";",!1),he=function(E,U,K){return{type:E,name:U,comment:K}},me="[",Re=Ne("[",!1),Ae="]",Le=Ne("]",!1),Oe=function(E,U,K,J){return{type:E,size:U,name:K,comment:J}},et=function(E,U,K,J){return{type:E,vals:U,name:K,comment:J}},Ce=",",ke=Ne(",",!1),gt=function(E,U){return U.unshift(E),U},$t="int",He=Ne("int",!1),L="uint",P=Ne("uint",!1),q="short",j=Ne("short",!1),Y="ushort",C=Ne("ushort",!1),x="byte",V=Ne("byte",!1),W="ubyte",ue=Ne("ubyte",!1),te="float",ce=Ne("float",!1),qt="char",Ci=Ne("char",!1),ki="string",Ti=Ne("string",!1),Ct="lstring",Tr=Ne("lstring",!1),Ii="enum",Wt=Ne("enum",!1),rr="double",v=Ne("double",!1),g="bigint",b=Ne("bigint",!1),T="set",F=Ne("set",!1),O=function(E,U){return E+" "+U},$=/^[a-zA-Z_]/,fe=qu([["a","z"],["A","Z"],"_"],!1,!1),$e=/^[a-zA-Z0-9_]/,ze=qu([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),Qe=function(E){return v4()},Te=/^[^\n\r]/,g4=qu([`
487
+ `,"\r"],!0,!1),zG=function(E){return E.join("").replace(/^"/,"").replace(/"$/,"")},UG=x4("integer"),m4=/^[0-9]/,b4=qu([["0","9"]],!1,!1),GG=function(){return parseInt(v4(),10)},HG=x4("whitespace"),y4=/^[ \t\n\r]/,w4=qu([" "," ",`
488
+ `,"\r"],!1,!1),R=0,Mt=0,Hh=[{line:1,column:1}],ir=0,Bm=[],oe=0,Vh;if("startRule"in t){if(!(t.startRule in r))throw new Error(`Can't start parsing from rule "`+t.startRule+'".');i=r[t.startRule]}function v4(){return e.substring(Mt,R)}function Ne(E,U){return{type:"literal",text:E,ignoreCase:U}}function qu(E,U,K){return{type:"class",parts:E,inverted:U,ignoreCase:K}}function VG(){return{type:"end"}}function x4(E){return{type:"other",description:E}}function A4(E){var U=Hh[E],K;if(U)return U;for(K=E-1;!Hh[K];)K--;for(U=Hh[K],U={line:U.line,column:U.column};K<E;)e.charCodeAt(K)===10?(U.line++,U.column=1):U.column++,K++;return Hh[E]=U,U}function E4(E,U){var K=A4(E),J=A4(U);return{start:{offset:E,line:K.line,column:K.column},end:{offset:U,line:J.line,column:J.column}}}function ae(E){R<ir||(R>ir&&(ir=R,Bm=[]),Bm.push(E))}function jG(E,U,K){return new La(La.buildMessage(E,U),E,U,K)}function _4(){var E,U,K,J,re,Ve,Xe,wn,Bi,Ir,Di,Br,Ri,Dr;return E=R,U=ye(),U!==n?(K=S4(),K!==n?(J=ye(),J!==n?(re=C4(),re!==n?(Ve=ye(),Ve!==n?(Xe=jh(),Xe!==n?(wn=ye(),wn!==n?(e.charCodeAt(R)===40?(Bi=o,R++):(Bi=n,oe===0&&ae(a)),Bi!==n?(Ir=ye(),Ir!==n?(Di=$G(),Di!==n?(Br=ye(),Br!==n?(e.charCodeAt(R)===41?(Ri=s,R++):(Ri=n,oe===0&&ae(u)),Ri!==n?(Dr=ye(),Dr!==n?(Mt=E,U=l(K,re,Xe,Di),E=U):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n),E}function S4(){var E;return e.substr(R,6)===c?(E=c,R+=6):(E=n,oe===0&&ae(f)),E===n&&(e.substr(R,6)===h?(E=h,R+=6):(E=n,oe===0&&ae(d)),E===n&&(e.substr(R,5)===p?(E=p,R+=5):(E=n,oe===0&&ae(m)))),E}function C4(){var E,U,K,J;return E=Fn(),E===n&&(E=R,U=Fn(),U!==n?(K=k4(),K!==n?(U=[U,K],E=U):(R=E,E=n)):(R=E,E=n),E===n&&(E=R,U=Fn(),U!==n?(e.substr(R,4)===y?(K=y,R+=4):(K=n,oe===0&&ae(w)),K!==n?(U=[U,K],E=U):(R=E,E=n)):(R=E,E=n),E===n&&(E=R,U=Fn(),U!==n?(K=k4(),K!==n?(e.substr(R,4)===y?(J=y,R+=4):(J=n,oe===0&&ae(w)),J!==n?(U=[U,K,J],E=U):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)))),E}function k4(){var E;return e.substr(R,7)===A?(E=A,R+=7):(E=n,oe===0&&ae(S)),E===n&&(e.substr(R,5)===_?(E=_,R+=5):(E=n,oe===0&&ae(k)),E===n&&(e.substr(R,6)===B?(E=B,R+=6):(E=n,oe===0&&ae(I)))),E}function jh(){var E;return E=T4(),E===n&&(E=ye()),E}function $G(){var E,U,K,J,re,Ve,Xe;if(E=R,U=Dm(),U!==n)if(K=ye(),K!==n){for(J=[],re=R,Ve=ye(),Ve!==n?(Xe=Dm(),Xe!==n?(Mt=re,Ve=D(U,Xe),re=Ve):(R=re,re=n)):(R=re,re=n);re!==n;)J.push(re),re=R,Ve=ye(),Ve!==n?(Xe=Dm(),Xe!==n?(Mt=re,Ve=D(U,Xe),re=Ve):(R=re,re=n)):(R=re,re=n);J!==n?(re=ye(),re!==n?(Mt=E,U=M(U,J),E=U):(R=E,E=n)):(R=E,E=n)}else R=E,E=n;else R=E,E=n;return E}function qG(){var E;return e.charCodeAt(R)===35?(E=G,R++):(E=n,oe===0&&ae(N)),E}function WG(){var E,U,K,J,re;return E=R,U=ye(),U!==n?(K=qG(),K!==n?(J=T4(),J!==n?(re=ye(),re!==n?(U=[U,K,J,re],E=U):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n),E}function Dm(){var E,U,K,J,re,Ve,Xe,wn,Bi,Ir,Di,Br,Ri,Dr;return E=R,U=Rm(),U!==n?(K=ye(),K!==n?(J=Fn(),J!==n?(re=ye(),re!==n?(e.charCodeAt(R)===59?(Ve=ne,R++):(Ve=n,oe===0&&ae(ie)),Ve!==n?(Xe=ye(),Xe!==n?(wn=jh(),wn!==n?(Mt=E,U=he(U,J,wn),E=U):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n),E===n&&(E=R,U=Rm(),U!==n?(K=ye(),K!==n?(e.charCodeAt(R)===91?(J=me,R++):(J=n,oe===0&&ae(Re)),J!==n?(re=ye(),re!==n?(Ve=YG(),Ve!==n?(Xe=ye(),Xe!==n?(e.charCodeAt(R)===93?(wn=Ae,R++):(wn=n,oe===0&&ae(Le)),wn!==n?(Bi=ye(),Bi!==n?(Ir=Fn(),Ir!==n?(Di=ye(),Di!==n?(e.charCodeAt(R)===59?(Br=ne,R++):(Br=n,oe===0&&ae(ie)),Br!==n?(Ri=ye(),Ri!==n?(Dr=jh(),Dr!==n?(Mt=E,U=Oe(U,Ve,Ir,Dr),E=U):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n),E===n&&(E=R,U=Rm(),U!==n?(K=ye(),K!==n?(e.charCodeAt(R)===40?(J=o,R++):(J=n,oe===0&&ae(a)),J!==n?(re=ye(),re!==n?(Ve=ZG(),Ve!==n?(Xe=ye(),Xe!==n?(e.charCodeAt(R)===41?(wn=s,R++):(wn=n,oe===0&&ae(u)),wn!==n?(Bi=ye(),Bi!==n?(Ir=Fn(),Ir!==n?(Di=ye(),Di!==n?(e.charCodeAt(R)===59?(Br=ne,R++):(Br=n,oe===0&&ae(ie)),Br!==n?(Ri=ye(),Ri!==n?(Dr=jh(),Dr!==n?(Mt=E,U=et(U,Ve,Ir,Dr),E=U):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n),E===n&&(E=WG()))),E}function ZG(){var E,U,K,J,re,Ve,Xe;if(E=R,U=Fn(),U!==n){for(K=[],J=R,e.charCodeAt(R)===44?(re=Ce,R++):(re=n,oe===0&&ae(ke)),re!==n?(Ve=ye(),Ve!==n?(Xe=Fn(),Xe!==n?(Mt=J,re=D(U,Xe),J=re):(R=J,J=n)):(R=J,J=n)):(R=J,J=n);J!==n;)K.push(J),J=R,e.charCodeAt(R)===44?(re=Ce,R++):(re=n,oe===0&&ae(ke)),re!==n?(Ve=ye(),Ve!==n?(Xe=Fn(),Xe!==n?(Mt=J,re=D(U,Xe),J=re):(R=J,J=n)):(R=J,J=n)):(R=J,J=n);K!==n?(Mt=E,U=gt(U,K),E=U):(R=E,E=n)}else R=E,E=n;return E}function Rm(){var E,U,K,J;return e.substr(R,3)===$t?(E=$t,R+=3):(E=n,oe===0&&ae(He)),E===n&&(e.substr(R,4)===L?(E=L,R+=4):(E=n,oe===0&&ae(P)),E===n&&(e.substr(R,5)===q?(E=q,R+=5):(E=n,oe===0&&ae(j)),E===n&&(e.substr(R,6)===Y?(E=Y,R+=6):(E=n,oe===0&&ae(C)),E===n&&(e.substr(R,4)===x?(E=x,R+=4):(E=n,oe===0&&ae(V)),E===n&&(e.substr(R,5)===W?(E=W,R+=5):(E=n,oe===0&&ae(ue)),E===n&&(e.substr(R,5)===te?(E=te,R+=5):(E=n,oe===0&&ae(ce)),E===n&&(e.substr(R,4)===qt?(E=qt,R+=4):(E=n,oe===0&&ae(Ci)),E===n&&(e.substr(R,6)===ki?(E=ki,R+=6):(E=n,oe===0&&ae(Ti)),E===n&&(e.substr(R,7)===Ct?(E=Ct,R+=7):(E=n,oe===0&&ae(Tr)),E===n&&(e.substr(R,4)===Ii?(E=Ii,R+=4):(E=n,oe===0&&ae(Wt)),E===n&&(e.substr(R,6)===rr?(E=rr,R+=6):(E=n,oe===0&&ae(v)),E===n&&(e.substr(R,6)===g?(E=g,R+=6):(E=n,oe===0&&ae(b)),E===n&&(e.substr(R,3)===T?(E=T,R+=3):(E=n,oe===0&&ae(F)),E===n&&(E=R,U=S4(),U!==n?(K=ye(),K!==n?(J=C4(),J!==n?(Mt=E,U=O(U,J),E=U):(R=E,E=n)):(R=E,E=n)):(R=E,E=n))))))))))))))),E}function YG(){var E;return E=QG(),E===n&&(E=Fn()),E}function Fn(){var E,U,K,J,re;if(E=R,U=R,$.test(e.charAt(R))?(K=e.charAt(R),R++):(K=n,oe===0&&ae(fe)),K!==n){for(J=[],$e.test(e.charAt(R))?(re=e.charAt(R),R++):(re=n,oe===0&&ae(ze));re!==n;)J.push(re),$e.test(e.charAt(R))?(re=e.charAt(R),R++):(re=n,oe===0&&ae(ze));J!==n?(K=[K,J],U=K):(R=U,U=n)}else R=U,U=n;return U!==n&&(Mt=E,U=Qe()),E=U,E}function T4(){var E,U,K;for(E=R,U=[],Te.test(e.charAt(R))?(K=e.charAt(R),R++):(K=n,oe===0&&ae(g4));K!==n;)U.push(K),Te.test(e.charAt(R))?(K=e.charAt(R),R++):(K=n,oe===0&&ae(g4));return U!==n&&(Mt=E,U=zG(U)),E=U,E}function QG(){var E,U,K,J;if(oe++,E=R,U=ye(),U!==n){if(K=[],m4.test(e.charAt(R))?(J=e.charAt(R),R++):(J=n,oe===0&&ae(b4)),J!==n)for(;J!==n;)K.push(J),m4.test(e.charAt(R))?(J=e.charAt(R),R++):(J=n,oe===0&&ae(b4));else K=n;K!==n?(Mt=E,U=GG(),E=U):(R=E,E=n)}else R=E,E=n;return oe--,E===n&&(U=n,oe===0&&ae(UG)),E}function ye(){var E,U;for(oe++,E=[],y4.test(e.charAt(R))?(U=e.charAt(R),R++):(U=n,oe===0&&ae(w4));U!==n;)E.push(U),y4.test(e.charAt(R))?(U=e.charAt(R),R++):(U=n,oe===0&&ae(w4));return oe--,E===n&&(U=n,oe===0&&ae(HG)),E}if(Vh=i(),Vh!==n&&R===e.length)return Vh;throw Vh!==n&&R<e.length&&ae(VG()),jG(Bm,ir<e.length?e.charAt(ir):null,ir<e.length?E4(ir,ir+1):E4(ir,ir))}var t_={SyntaxError:La,parse:wU};const vU=Sl(t_),Yg=Object.fromEntries(Object.entries(Object.freeze(Object.defineProperty({__proto__:null,bigChain:`table bigChain
476
489
  "bigChain pairwise alignment"
477
490
  (
478
491
  string chrom; "Reference sequence chromosome or scaffold"
@@ -631,17 +644,17 @@ Reason: ${u.message}`)}));if(n.isViewSpec(s))return s.baseUrl=(i=o.match(/^[^?#]
631
644
  float score; "Floating point score."
632
645
  char[1] leftStatus; "Gap/break annotation for preceding block"
633
646
  char[1] rightStatus; "Gap/break annotation for following block"
634
- )`},Symbol.toStringTag,{value:"Module"}))).map(([e,t])=>[e,OE.parse(t.trim())]));function Ug(e){const t=["uint","int","float","long"];return{...e,fields:e.fields.map(n=>({...n,isArray:n.size&&n.type!=="char",arrayIsNumeric:n.size&&t.includes(n.type),isNumeric:!n.size&&t.includes(n.type)}))}}const Uz={".":0,"-":-1,"+":1};function Gz(e){var t;return e.length>=12&&!Number.isNaN(parseInt(e[9],10))&&((t=e[10])===null||t===void 0?void 0:t.split(",").filter(n=>!!n).length)===parseInt(e[9],10)}class Hz{constructor(t={}){if(t.autoSql)this.autoSql=Ug(zz.parse(t.autoSql));else if(t.type){if(!zg[t.type])throw new Error("Type not found");this.autoSql=Ug(zg[t.type])}else this.autoSql=Ug(zg.defaultBedSchema),this.attemptDefaultBed=!0}parseLine(t,n={}){const{autoSql:r}=this,{uniqueId:i}=n,a=Array.isArray(t)?t:t.split(" ");let o={};if(!this.attemptDefaultBed||this.attemptDefaultBed&&Gz(a))for(let s=0;s<r.fields.length;s++){const u=r.fields[s];let l=a[s];const{isNumeric:c,isArray:f,arrayIsNumeric:h,name:d}=u;if(l==null)break;if(l!=="."){if(c){const p=Number(l);l=Number.isNaN(p)?l:p}else f&&(l=l.split(","),l[l.length-1]===""&&l.pop(),h&&(l=l.map(p=>Number(p))));o[d]=l}}else{const s=["chrom","chromStart","chromEnd","name"];o=Object.fromEntries(a.map((u,l)=>[s[l]||"field"+l,u])),o.chromStart=+o.chromStart,o.chromEnd=+o.chromEnd,Number.isNaN(Number.parseFloat(o.field4))||(o.score=+o.field4,delete o.field4),(o.field5==="+"||o.field5==="-")&&(o.strand=o.field5,delete o.field5)}return i&&(o.uniqueId=i),o.strand=Uz[o.strand]||0,o.chrom=decodeURIComponent(o.chrom),o}}const Vz=Object.freeze(Object.defineProperty({__proto__:null,default:Hz},Symbol.toStringTag,{value:"Module"}));let zE=class{constructor(t,n){this.blockPosition=t,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(t){return this.blockPosition-t.blockPosition||this.dataPosition-t.dataPosition}static min(...t){let n,r=0;for(;!n;r+=1)n=t[r];for(;r<t.length;r+=1)n.compareTo(t[r])>0&&(n=t[r]);return n}};function Do(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new zE(e[t+7]*1099511627776+e[t+6]*4294967296+e[t+5]*16777216+e[t+4]*65536+e[t+3]*256+e[t+2],e[t+1]<<8|e[t])}let UE=class{constructor(t,n,r,i){this.minv=t,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(t){return this.minv.compareTo(t.minv)||this.maxv.compareTo(t.maxv)||this.bin-t.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+65536-this.minv.blockPosition}};function jz(e){return new Promise(t=>setTimeout(t,e))}function $z(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}function qz(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new Error("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}function Wz(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function Zz(e={}){return"aborted"in e?{signal:e}:e}function GE(e,t){const n=[];let r;if(e.length===0)return e;e.sort((i,a)=>{const o=i.minv.blockPosition-a.minv.blockPosition;return o===0?i.minv.dataPosition-a.minv.dataPosition:o});for(const i of e)(!t||i.maxv.compareTo(t)>0)&&(r===void 0?(n.push(i),r=i):Wz(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i));return n}function HE(e,t){return{lineCount:$z(Hf.fromBytesLE(Array.prototype.slice.call(e,t,t+8),!0))}}function dh(e,t){return e?e.compareTo(t)>0?t:e:t}function Yz(e,t=n=>n){let n=0,r=0;const i=[],a={};for(let o=0;o<e.length;o+=1)if(!e[o]){if(r<o){let s=e.toString("utf8",r,o);s=t(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}let VE=class{constructor({filehandle:t,renameRefSeq:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}};const Qz=21578050;function Xz(e,t){return e-e%t}function Kz(e,t){return e-e%t+t}function Jz(e,t){return t-=1,[[0,0],[1+(e>>26),1+(t>>26)],[9+(e>>23),9+(t>>23)],[73+(e>>20),73+(t>>20)],[585+(e>>17),585+(t>>17)],[4681+(e>>14),4681+(t>>14)]]}class Ro extends VE{async lineCount(t,n){var r,i;return((i=(r=(await this.parse(n)).indices[t])===null||r===void 0?void 0:r.stats)===null||i===void 0?void 0:i.lineCount)||0}async _parse(t){const n=await this.filehandle.readFile(t);if(n.readUInt32LE(0)!==Qz)throw new Error("Not a BAI file");const r=n.readInt32LE(4),a=((1<<(5+1)*3)-1)/7;let o=8,s;const u=new Array(r);for(let l=0;l<r;l++){const c=n.readInt32LE(o);let f;o+=4;const h={};for(let m=0;m<c;m+=1){const y=n.readUInt32LE(o);if(o+=4,y===a+1)o+=4,f=HE(n,o+16),o+=32;else{if(y>a+1)throw new Error("bai index contains too many bins, please use CSI");{const w=n.readInt32LE(o);o+=4;const x=new Array(w);for(let S=0;S<w;S++){const _=Do(n,o);o+=8;const T=Do(n,o);o+=8,s=dh(s,_),x[S]=new UE(_,T,y)}h[y]=x}}}const d=n.readInt32LE(o);o+=4;const p=new Array(d);for(let m=0;m<d;m++){const y=Do(n,o);o+=8,s=dh(s,y),p[m]=y}u[l]={binIndex:h,linearIndex:p,stats:f}}return{bai:!0,firstDataLine:s,maxBlockSize:65536,indices:u,refCount:r}}async indexCov(t,n,r,i={}){const o=n!==void 0,u=(await this.parse(i)).indices[t];if(!u)return[];const{linearIndex:l=[],stats:c}=u;if(l.length===0)return[];const f=r===void 0?(l.length-1)*16384:Kz(r,16384),h=n===void 0?0:Xz(n,16384),d=o?new Array((f-h)/16384):new Array(l.length-1),p=l[l.length-1].blockPosition;if(f>(l.length-1)*16384)throw new Error("query outside of range of linear index");let m=l[h/16384].blockPosition;for(let y=h/16384,w=0;y<f/16384;y++,w++)d[w]={score:l[y+1].blockPosition-m,start:y*16384,end:y*16384+16384},m=l[y+1].blockPosition;return d.map(y=>({...y,score:y.score*((c==null?void 0:c.lineCount)||0)/p}))}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.indices[t];if(!o)return[];const s=Jz(n,r),u=[];for(const[d,p]of s)for(let m=d;m<=p;m++)if(o.binIndex[m]){const y=o.binIndex[m];for(const w of y)u.push(w)}const l=o.linearIndex.length;let c;const f=Math.min(n>>14,l-1),h=Math.min(r>>14,l-1);for(let d=f;d<=h;++d){const p=o.linearIndex[d];p&&(!c||p.compareTo(c)<0)&&(c=p)}return GE(u,c)}async parse(t={}){return this.setupP||(this.setupP=this._parse(t).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}}var bi=be.Buffer,Gg=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];typeof Int32Array<"u"&&(Gg=new Int32Array(Gg));function jE(e){if(bi.isBuffer(e))return e;var t=typeof bi.alloc=="function"&&typeof bi.from=="function";if(typeof e=="number")return t?bi.alloc(e):new bi(e);if(typeof e=="string")return t?bi.from(e):new bi(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function eU(e){var t=jE(4);return t.writeInt32BE(e,0),t}function Hg(e,t){e=jE(e),bi.isBuffer(t)&&(t=t.readUInt32BE(0));for(var n=~~t^-1,r=0;r<e.length;r++)n=Gg[(n^e[r])&255]^n>>>8;return n^-1}function Vg(){return eU(Hg.apply(null,arguments))}Vg.signed=function(){return Hg.apply(null,arguments)},Vg.unsigned=function(){return Hg.apply(null,arguments)>>>0};var tU=Vg;const nU=bl(tU),rU=21582659,iU=38359875;function aU(e,t){return e*2**t}function $E(e,t){return Math.floor(e/2**t)}let ph=class extends VE{constructor(){super(...arguments),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n){var r,i;return((i=(r=(await this.parse(n)).indices[t])===null||r===void 0?void 0:r.stats)===null||i===void 0?void 0:i.lineCount)||0}async indexCov(){return[]}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",a={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!a)throw new Error(`invalid Tabix preset format flags ${r}`);const o={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},s=t.readInt32LE(n+16),u=s?String.fromCharCode(s):"",l=t.readInt32LE(n+20),c=t.readInt32LE(n+24);return{columnNumbers:o,coordinateType:i,metaValue:s,metaChar:u,skipLines:l,format:a,formatFlags:r,...Yz(t.subarray(n+28,n+28+c),this.renameRefSeq)}}async _parse(t){const n=await this.filehandle.readFile(t),r=await ui(n);let i;if(r.readUInt32LE(0)===rU)i=1;else if(r.readUInt32LE(0)===iU)i=2;else throw new Error("Not a CSI file");this.minShift=r.readInt32LE(4),this.depth=r.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const a=r.readInt32LE(12),o=a>=30?this.parseAuxData(r,16):void 0,s=r.readInt32LE(16+a);let u=16+a+4,l;const c=new Array(s);for(let f=0;f<s;f++){const h=r.readInt32LE(u);u+=4;const d={};let p;for(let m=0;m<h;m++){const y=r.readUInt32LE(u);if(u+=4,y>this.maxBinNumber)p=HE(r,u+28),u+=28+16;else{l=dh(l,Do(r,u)),u+=8;const w=r.readInt32LE(u);u+=4;const x=new Array(w);for(let S=0;S<w;S+=1){const _=Do(r,u);u+=8;const T=Do(r,u);u+=8,l=dh(l,_),x[S]=new UE(_,T,y)}d[y]=x}}c[f]={binIndex:d,stats:p}}return{csiVersion:i,firstDataLine:l,indices:c,refCount:s,csi:!0,maxBlockSize:65536,...o}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i),o=a==null?void 0:a.indices[t];if(!o)return[];const s=this.reg2bins(n,r);if(s.length===0)return[];const u=[];for(const[l,c]of s)for(let f=l;f<=c;f++)if(o.binIndex[f]){const h=o.binIndex[f];for(const d of h)u.push(d)}return GE(u,new zE(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,a=this.minShift+this.depth*3;const o=[];for(;r<=this.depth;a-=3,i+=aU(1,r*3),r+=1){const s=i+$E(t,a),u=i+$E(n,a);if(u-s+o.length>this.maxBinNumber)throw new Error(`query ${t}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);o.push([s,u])}return o}async parse(t={}){return this.setupP||(this.setupP=this._parse(t).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}};const bn={BAM_FPAIRED:1,BAM_FPROPER_PAIR:2,BAM_FUNMAP:4,BAM_FMUNMAP:8,BAM_FREVERSE:16,BAM_FMREVERSE:32,BAM_FREAD1:64,BAM_FREAD2:128,BAM_FSECONDARY:256,BAM_FQCFAIL:512,BAM_FDUP:1024,BAM_FSUPPLEMENTARY:2048},qE="=ACMGRSVTWYHKDBN".split(""),ru="MIDNSHP=X???????".split("");class WE{constructor(t){this.data={},this._tagList=[],this._allTagsParsed=!1;const{bytes:n,fileOffset:r}=t,{byteArray:i,start:a}=n;this.data={},this.bytes=n,this._id=r,this._refID=i.readInt32LE(a+4),this.data.start=i.readInt32LE(a+8),this.flags=(i.readInt32LE(a+16)&4294901760)>>16}get(t){return this[t]?this.data[t]?this.data[t]:(this.data[t]=this[t](),this.data[t]):this._get(t.toLowerCase())}end(){return this.get("start")+this.get("length_on_ref")}seq_id(){return this._refID}_get(t){return t in this.data?this.data[t]:(this.data[t]=this._parseTag(t),this.data[t])}_tags(){this._parseAllTags();let t=["seq"];this.isSegmentUnmapped()||t.push("start","end","strand","score","qual","MQ","CIGAR","length_on_ref","template_length"),this.isPaired()&&t.push("next_segment_position","pair_orientation"),t=t.concat(this._tagList||[]);for(const r of Object.keys(this.data))r[0]!=="_"&&r!=="next_seq_id"&&t.push(r);const n={};return t.filter(r=>{if(r in this.data&&this.data[r]===void 0||r==="CG"||r==="cg")return!1;const i=r.toLowerCase(),a=n[i];return n[i]=!0,!a})}parent(){}children(){return this.get("subfeatures")}id(){return this._id}mq(){const t=(this.get("_bin_mq_nl")&65280)>>8;return t===255?void 0:t}score(){return this.get("mq")}qual(){var t;return(t=this.qualRaw())===null||t===void 0?void 0:t.join(" ")}qualRaw(){if(this.isSegmentUnmapped())return;const{start:t,byteArray:n}=this.bytes,r=t+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes"),i=this.get("seq_length");return n.subarray(r,r+i)}strand(){return this.isReverseComplemented()?-1:1}multi_segment_next_segment_strand(){if(!this.isMateUnmapped())return this.isMateReverseComplemented()?-1:1}name(){return this.get("_read_name")}_read_name(){const t=this.get("_l_read_name"),{byteArray:n,start:r}=this.bytes;return n.toString("ascii",r+36,r+36+t-1)}_parseTag(t){if(this._allTagsParsed)return;const{byteArray:n,start:r}=this.bytes;let i=this._tagOffset||r+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes")+this.get("seq_length");const a=this.bytes.end;let o;for(;i<a&&o!==t;){const s=String.fromCharCode(n[i],n[i+1]);o=s.toLowerCase();const u=String.fromCharCode(n[i+2]);i+=3;let l;switch(u){case"A":{l=String.fromCharCode(n[i]),i+=1;break}case"i":{l=n.readInt32LE(i),i+=4;break}case"I":{l=n.readUInt32LE(i),i+=4;break}case"c":{l=n.readInt8(i),i+=1;break}case"C":{l=n.readUInt8(i),i+=1;break}case"s":{l=n.readInt16LE(i),i+=2;break}case"S":{l=n.readUInt16LE(i),i+=2;break}case"f":{l=n.readFloatLE(i),i+=4;break}case"Z":case"H":{for(l="";i<=a;){const c=n[i++];if(c===0)break;l+=String.fromCharCode(c)}break}case"B":{l="";const c=n[i++],f=String.fromCharCode(c),h=n.readInt32LE(i);if(i+=4,f==="i")if(s==="CG")for(let d=0;d<h;d++){const p=n.readInt32LE(i),m=p>>4,y=ru[p&15];l+=m+y,i+=4}else for(let d=0;d<h;d++)l+=n.readInt32LE(i),d+1<h&&(l+=","),i+=4;if(f==="I")if(s==="CG")for(let d=0;d<h;d++){const p=n.readUInt32LE(i),m=p>>4,y=ru[p&15];l+=m+y,i+=4}else for(let d=0;d<h;d++)l+=n.readUInt32LE(i),d+1<h&&(l+=","),i+=4;if(f==="s")for(let d=0;d<h;d++)l+=n.readInt16LE(i),d+1<h&&(l+=","),i+=2;if(f==="S")for(let d=0;d<h;d++)l+=n.readUInt16LE(i),d+1<h&&(l+=","),i+=2;if(f==="c")for(let d=0;d<h;d++)l+=n.readInt8(i),d+1<h&&(l+=","),i+=1;if(f==="C")for(let d=0;d<h;d++)l+=n.readUInt8(i),d+1<h&&(l+=","),i+=1;if(f==="f")for(let d=0;d<h;d++)l+=n.readFloatLE(i),d+1<h&&(l+=","),i+=4;break}default:console.warn(`Unknown BAM tag type '${u}', tags may be incomplete`),l=void 0,i=a}if(this._tagOffset=i,this._tagList.push(s),o===t)return l;this.data[o]=l}this._allTagsParsed=!0}_parseAllTags(){this._parseTag("")}_parseCigar(t){return t.match(/\d+\D/g).map(n=>[n.match(/\D/)[0].toUpperCase(),Number.parseInt(n,10)])}isPaired(){return!!(this.flags&bn.BAM_FPAIRED)}isProperlyPaired(){return!!(this.flags&bn.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return!!(this.flags&bn.BAM_FUNMAP)}isMateUnmapped(){return!!(this.flags&bn.BAM_FMUNMAP)}isReverseComplemented(){return!!(this.flags&bn.BAM_FREVERSE)}isMateReverseComplemented(){return!!(this.flags&bn.BAM_FMREVERSE)}isRead1(){return!!(this.flags&bn.BAM_FREAD1)}isRead2(){return!!(this.flags&bn.BAM_FREAD2)}isSecondary(){return!!(this.flags&bn.BAM_FSECONDARY)}isFailedQc(){return!!(this.flags&bn.BAM_FQCFAIL)}isDuplicate(){return!!(this.flags&bn.BAM_FDUP)}isSupplementary(){return!!(this.flags&bn.BAM_FSUPPLEMENTARY)}cigar(){if(this.isSegmentUnmapped())return;const{byteArray:t,start:n}=this.bytes,r=this.get("_n_cigar_op");let i=n+36+this.get("_l_read_name");const a=this.get("seq_length");let o="",s=0,u=t.readInt32LE(i),l=u>>4,c=ru[u&15];if(c==="S"&&l===a)return i+=4,u=t.readInt32LE(i),l=u>>4,c=ru[u&15],c!=="N"&&console.warn("CG tag with no N tag"),this.data.length_on_ref=l,this.get("CG");for(let f=0;f<r;++f)u=t.readInt32LE(i),l=u>>4,c=ru[u&15],o+=l+c,c!=="H"&&c!=="S"&&c!=="I"&&(s+=l),i+=4;return this.data.length_on_ref=s,o}_flags(){}length_on_ref(){return this.data.length_on_ref?this.data.length_on_ref:(this.get("cigar"),this.data.length_on_ref)}_n_cigar_op(){return this.get("_flag_nc")&65535}_l_read_name(){return this.get("_bin_mq_nl")&255}_seq_bytes(){return this.get("seq_length")+1>>1}getReadBases(){return this.seq()}seq(){const{byteArray:t,start:n}=this.bytes,r=n+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4,i=this.get("_seq_bytes"),a=this.get("seq_length");let o="",s=0;for(let u=0;u<i;++u){const l=t[r+u];o+=qE[(l&240)>>4],s++,s<a&&(o+=qE[l&15],s++)}return o}getPairOrientation(){if(!this.isSegmentUnmapped()&&!this.isMateUnmapped()&&this._refID===this._next_refid()){const t=this.isReverseComplemented()?"R":"F",n=this.isMateReverseComplemented()?"R":"F";let r=" ",i=" ";this.isRead1()?(r="1",i="2"):this.isRead2()&&(r="2",i="1");const a=[];return this.template_length()>0?(a[0]=t,a[1]=r,a[2]=n,a[3]=i):(a[2]=t,a[3]=r,a[0]=n,a[1]=i),a.join("")}return""}_bin_mq_nl(){return this.bytes.byteArray.readInt32LE(this.bytes.start+12)}_flag_nc(){return this.bytes.byteArray.readInt32LE(this.bytes.start+16)}seq_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+20)}_next_refid(){return this.bytes.byteArray.readInt32LE(this.bytes.start+24)}_next_pos(){return this.bytes.byteArray.readInt32LE(this.bytes.start+28)}template_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+32)}toJSON(){const t={};for(const n of Object.keys(this))n.charAt(0)==="_"||n==="bytes"||(t[n]=this[n]);return t}}function ZE(e){const t=e.split(/\r?\n/),n=[];for(const r of t){const[i,...a]=r.split(/\t/);i&&n.push({tag:i.slice(1),data:a.map(o=>{const[s,u]=o.split(":",2);return{tag:s,value:u}})})}return n}const YE=21840194,QE=65536;async function oU(e){let t=[];for await(const n of e)t=t.concat(n);return t}class sU{read(){throw new Error("never called")}stat(){throw new Error("never called")}readFile(){throw new Error("never called")}close(){throw new Error("never called")}}class XE{constructor({bamFilehandle:t,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:a,baiUrl:o,csiPath:s,csiFilehandle:u,csiUrl:l,htsget:c,yieldThreadTime:f=100,renameRefSeqs:h=d=>d}){if(this.htsget=!1,this.featureCache=new Qf({cache:new Xf({maxSize:50}),fill:async(d,p)=>{const{chunk:m,opts:y}=d,{data:w,cpositions:x,dpositions:S}=await this._readChunk({chunk:m,opts:{...y,signal:p}});return this.readBamFeatures(w,x,S,m)}}),this.renameRefSeq=h,t)this.bam=t;else if(n)this.bam=new dt(n);else if(r)this.bam=new ea(r);else if(c)this.htsget=!0,this.bam=new sU;else throw new Error("unable to initialize bam");if(u)this.index=new ph({filehandle:u});else if(s)this.index=new ph({filehandle:new dt(s)});else if(l)this.index=new ph({filehandle:new ea(l)});else if(a)this.index=new Ro({filehandle:a});else if(i)this.index=new Ro({filehandle:new dt(i)});else if(o)this.index=new Ro({filehandle:new ea(o)});else if(n)this.index=new Ro({filehandle:new dt(`${n}.bai`)});else if(r)this.index=new Ro({filehandle:new ea(`${r}.bai`)});else if(c)this.htsget=!0;else throw new Error("unable to infer index format");this.yieldThreadTime=f}async getHeaderPre(t){const n=Zz(t);if(!this.index)return;const r=await this.index.parse(n),i=r.firstDataLine?r.firstDataLine.blockPosition+65535:void 0;let a;if(i){const c=i+QE,f=await this.bam.read(be.Buffer.alloc(c),0,c,0,n);if(!f.bytesRead)throw new Error("Error reading header");a=f.buffer.subarray(0,Math.min(f.bytesRead,i))}else a=await this.bam.readFile(n);const o=await ui(a);if(o.readInt32LE(0)!==YE)throw new Error("Not a BAM file");const s=o.readInt32LE(4);this.header=o.toString("utf8",8,8+s);const{chrToIndex:u,indexToChr:l}=await this._readRefSeqs(s+8,65535,n);return this.chrToIndex=u,this.indexToChr=l,ZE(this.header)}getHeader(t){return this.headerP||(this.headerP=this.getHeaderPre(t).catch(n=>{throw this.headerP=void 0,n})),this.headerP}async getHeaderText(t={}){return await this.getHeader(t),this.header}async _readRefSeqs(t,n,r){if(t>n)return this._readRefSeqs(t,n*2,r);const i=n+QE,{bytesRead:a,buffer:o}=await this.bam.read(be.Buffer.alloc(i),0,n,0,r);if(!a)throw new Error("Error reading refseqs from header");const s=await ui(o.subarray(0,Math.min(a,n))),u=s.readInt32LE(t);let l=t+4;const c={},f=[];for(let h=0;h<u;h+=1){const d=s.readInt32LE(l),p=this.renameRefSeq(s.toString("utf8",l+4,l+4+d-1)),m=s.readInt32LE(l+d+4);if(c[p]=h,f.push({refName:p,length:m}),l=l+8+d,l>s.length)return console.warn(`BAM header is very big. Re-fetching ${n} bytes.`),this._readRefSeqs(t,n*2,r)}return{chrToIndex:c,indexToChr:f}}async getRecordsForRange(t,n,r,i){return oU(this.streamRecordsForRange(t,n,r,i))}async*streamRecordsForRange(t,n,r,i){var a;await this.getHeader(i);const o=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];if(o===void 0||!this.index)yield[];else{const s=await this.index.blocksForRange(o,n-1,r,i);yield*this._fetchChunkFeatures(s,o,n,r,i)}}async*_fetchChunkFeatures(t,n,r,i,a={}){const{viewAsPairs:o}=a,s=[];let u=!1;for(const l of t){const c=await this.featureCache.get(l.toString(),{chunk:l,opts:a},a.signal),f=[];for(const h of c)if(h.seq_id()===n)if(h.get("start")>=i){u=!0;break}else h.get("end")>=r&&f.push(h);if(s.push(f),yield f,u)break}qz(a.signal),o&&(yield this.fetchPairs(n,s,a))}async fetchPairs(t,n,r){const{pairAcrossChr:i,maxInsertSize:a=2e5}=r,o={},s={};n.map(h=>{const d={};for(const p of h){const m=p.name(),y=p.id();d[m]||(d[m]=0),d[m]++,s[y]=1}for(const[p,m]of Object.entries(d))m===1&&(o[p]=!0)});const u=[];n.map(h=>{for(const d of h){const p=d.name(),m=d.get("start"),y=d._next_pos(),w=d._next_refid();this.index&&o[p]&&(i||w===t&&Math.abs(m-y)<a)&&u.push(this.index.blocksForRange(w,y,y+1,r))}});const l=new Map,c=await Promise.all(u);for(const h of c.flat())l.has(h.toString())||l.set(h.toString(),h);return(await Promise.all([...l.values()].map(async h=>{const{data:d,cpositions:p,dpositions:m,chunk:y}=await this._readChunk({chunk:h,opts:r}),w=[];for(const x of await this.readBamFeatures(d,p,m,y))o[x.get("name")]&&!s[x.id()]&&w.push(x);return w}))).flat()}async _readRegion(t,n,r={}){const{bytesRead:i,buffer:a}=await this.bam.read(be.Buffer.alloc(n),0,n,t,r);return a.subarray(0,Math.min(i,n))}async _readChunk({chunk:t,opts:n}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n),{buffer:i,cpositions:a,dpositions:o}=await bA(r,t);return{data:i,cpositions:a,dpositions:o,chunk:t}}async readBamFeatures(t,n,r,i){let a=0;const o=[];let s=0,u=+Date.now();for(;a+4<t.length;){const l=t.readInt32LE(a),c=a+4+l-1;if(r){for(;a+i.minv.dataPosition>=r[s++];);s--}if(c<t.length){const f=new WE({bytes:{byteArray:t,start:a,end:c},fileOffset:n.length>0?n[s]*256+(a-r[s])+i.minv.dataPosition+1:nU.signed(t.slice(a,c))});o.push(f),this.yieldThreadTime&&+Date.now()-u>this.yieldThreadTime&&(await jz(1),u=+Date.now())}a=c+1}return o}async hasRefSeq(t){var n,r;const i=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return i===void 0?!1:(r=this.index)===null||r===void 0?void 0:r.hasRefSeq(i)}async lineCount(t){var n;const r=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return r===void 0||!this.index?0:this.index.lineCount(r)}async indexCov(t,n,r){var i;if(!this.index)return[];await this.index.parse();const a=(i=this.chrToIndex)===null||i===void 0?void 0:i[t];return a===void 0?[]:this.index.indexCov(a,n,r)}async blocksForRange(t,n,r,i){var a;if(!this.index)return[];await this.index.parse();const o=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];return o===void 0?[]:this.index.blocksForRange(o,n,r,i)}}async function KE(e,t){const n=await Promise.all(e.map(async r=>{const{url:i,headers:a}=r;if(i.startsWith("data:"))return be.Buffer.from(i.split(",")[1],"base64");{const{referer:o,...s}=a,u=await fetch(i,{...t,headers:{...t==null?void 0:t.headers,...s}});if(!u.ok)throw new Error(`HTTP ${u.status} fetching ${i}: ${await u.text()}`);return be.Buffer.from(await u.arrayBuffer())}}));return be.Buffer.concat(await Promise.all(n.map(r=>ui(r))))}class lU extends XE{constructor(t){super({htsget:!0}),this.baseUrl=t.baseUrl,this.trackId=t.trackId}async*streamRecordsForRange(t,n,r,i){var a;const s=`${`${this.baseUrl}/${this.trackId}`}?referenceName=${t}&start=${n}&end=${r}&format=BAM`,u=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];if(u===void 0)yield[];else{const l=await fetch(s,{...i});if(!l.ok)throw new Error(`HTTP ${l.status} fetching ${s}: ${await l.text()}`);const c=await l.json(),f=await KE(c.htsget.urls.slice(1),i);yield*this._fetchChunkFeatures([{buffer:f,_fetchedSize:void 0,bin:0,compareTo(){return 0},toUniqueString(){return`${t}_${n}_${r}`},fetchedSize(){return 0},minv:{dataPosition:0,blockPosition:0,compareTo:()=>0},maxv:{dataPosition:Number.MAX_SAFE_INTEGER,blockPosition:0,compareTo:()=>0},toString(){return`${t}_${n}_${r}`}}],u,n,r,i)}}async _readChunk({chunk:t}){if(!t.buffer)throw new Error("expected chunk.buffer in htsget");return{data:t.buffer,cpositions:[],dpositions:[],chunk:t}}async getHeader(t={}){const n=`${this.baseUrl}/${this.trackId}?referenceName=na&class=header`,r=await fetch(n,t);if(!r.ok)throw new Error(`HTTP ${r.status} fetching ${n}: ${await r.text()}`);const i=await r.json(),a=await KE(i.htsget.urls,t);if(a.readInt32LE(0)!==YE)throw new Error("Not a BAM file");const o=a.readInt32LE(4),s=a.toString("utf8",8,8+o),u=ZE(s),l=[],c={},f=u.filter(h=>h.tag==="SQ");for(const[h,d]of f.entries()){let p="",m=0;for(const y of d.data)y.tag==="SN"?p=y.value:y.tag==="LN"&&(m=+y.value);c[p]=h,l[h]={refName:p,length:m}}return this.chrToIndex=c,this.indexToChr=l,u}}const uU=Object.freeze(Object.defineProperty({__proto__:null,BAI:Ro,BamFile:XE,BamRecord:WE,CSI:ph,HtsgetFile:lU},Symbol.toStringTag,{value:"Module"}));function JE(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}class cU extends Error{}function Fo(e){if(e&&e.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const t=new cU("aborted");throw t.code="ERR_ABORTED",t}}}function fU(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function e_(e,t){const n=[];let r=null;return e.length===0?e:(e.sort(function(i,a){const o=i.minv.blockPosition-a.minv.blockPosition;return o!==0?o:i.minv.dataPosition-a.minv.dataPosition}),e.forEach(i=>{(!t||i.maxv.compareTo(t)>0)&&(r===null?(n.push(i),r=i):fU(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}class jg{constructor(t,n){this.blockPosition=t,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(t){return this.blockPosition-t.blockPosition||this.dataPosition-t.dataPosition}static min(...t){let n,r=0;for(;!n;r+=1)n=t[r];for(;r<t.length;r+=1)n.compareTo(t[r])>0&&(n=t[r]);return n}}function Mo(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new jg(e[t+7]*1099511627776+e[t+6]*4294967296+e[t+5]*16777216+e[t+4]*65536+e[t+3]*256+e[t+2],e[t+1]<<8|e[t])}class gh{constructor(t,n,r,i=void 0){this.minv=t,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(t){return this.minv.compareTo(t.minv)||this.maxv.compareTo(t.maxv)||this.bin-t.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+65536-this.minv.blockPosition}}class t_{constructor({filehandle:t,renameRefSeqs:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}async getMetadata(t={}){const{indices:n,...r}=await this.parse(t);return r}_findFirstData(t,n){return t?t.compareTo(n)>0?n:t:n}async parse(t={}){return this.parseP||(this.parseP=this._parse(t).catch(n=>{throw this.parseP=void 0,n})),this.parseP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}}const hU=21578324,n_=14;function dU(e,t){return e+=1,t-=1,[[0,0],[1+(e>>26),1+(t>>26)],[9+(e>>23),9+(t>>23)],[73+(e>>20),73+(t>>20)],[585+(e>>17),585+(t>>17)],[4681+(e>>14),4681+(t>>14)]]}class mh extends t_{async lineCount(t,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[t];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}async _parse(t={}){const n=await this.filehandle.readFile(t),r=await ui(n);if(Fo(t.signal),r.readUInt32LE(0)!==hU)throw new Error("Not a TBI file");const i=r.readInt32LE(4),a=r.readInt32LE(8),o=a&65536?"zero-based-half-open":"1-based-closed",u={0:"generic",1:"SAM",2:"VCF"}[a&15];if(!u)throw new Error(`invalid Tabix preset format flags ${a}`);const l={ref:r.readInt32LE(12),start:r.readInt32LE(16),end:r.readInt32LE(20)},c=r.readInt32LE(24),f=5,h=((1<<(f+1)*3)-1)/7,d=2**(14+f*3),p=c?String.fromCharCode(c):null,m=r.readInt32LE(28),y=r.readInt32LE(32),{refNameToId:w,refIdToName:x}=this._parseNameBytes(r.slice(36,36+y));let S=36+y,_;return{indices:new Array(i).fill(0).map(()=>{const I=r.readInt32LE(S);S+=4;const B={};let R;for(let O=0;O<I;O+=1){const re=r.readUInt32LE(S);if(S+=4,re>h+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(re===h+1){const se=r.readInt32LE(S);S+=4,se===2&&(R=this.parsePseudoBin(r,S)),S+=16*se}else{const se=r.readInt32LE(S);S+=4;const te=new Array(se);for(let me=0;me<se;me+=1){const Ke=Mo(r,S),Re=Mo(r,S+8);S+=16,_=this._findFirstData(_,Ke),te[me]=new gh(Ke,Re,re)}B[re]=te}}const M=r.readInt32LE(S);S+=4;const H=new Array(M);for(let O=0;O<M;O+=1)H[O]=Mo(r,S),S+=8,_=this._findFirstData(_,H[O]);return{binIndex:B,linearIndex:H,stats:R}}),metaChar:p,maxBinNumber:h,maxRefLength:d,skipLines:m,firstDataLine:_,columnNumbers:l,coordinateType:o,format:u,refIdToName:x,refNameToId:w,maxBlockSize:65536}}parsePseudoBin(t,n){return{lineCount:JE(Hf.fromBytesLE(t.slice(n+16,n+24),!0))}}_parseNameBytes(t){let n=0,r=0;const i=[],a={};for(let o=0;o<t.length;o+=1)if(!t[o]){if(r<o){let s=t.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[t],s=a.indices[o];if(!s)return[];(s.linearIndex.length?s.linearIndex[n>>n_>=s.linearIndex.length?s.linearIndex.length-1:n>>n_]:new jg(0,0))||console.warn("querying outside of possible tabix range");const l=dU(n,r),c=[];for(const[m,y]of l)for(let w=m;w<=y;w++)if(s.binIndex[w])for(const x of s.binIndex[w])c.push(new gh(x.minv,x.maxv,w));const f=s.linearIndex.length;let h=null;const d=Math.min(n>>14,f-1),p=Math.min(r>>14,f-1);for(let m=d;m<=p;++m){const y=s.linearIndex[m];y&&(!h||y.compareTo(h)<0)&&(h=y)}return e_(c,h)}}const pU=21582659,gU=38359875;function mU(e,t){return e*2**t}function r_(e,t){return Math.floor(e/2**t)}class $g extends t_{constructor(t){super(t),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[t];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}indexCov(){throw new Error("CSI indexes do not support indexcov")}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",a={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!a)throw new Error(`invalid Tabix preset format flags ${r}`);const o={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},s=t.readInt32LE(n+16),u=s?String.fromCharCode(s):null,l=t.readInt32LE(n+20),c=t.readInt32LE(n+24),{refIdToName:f,refNameToId:h}=this._parseNameBytes(t.slice(n+28,n+28+c));return{refIdToName:f,refNameToId:h,skipLines:l,metaChar:u,columnNumbers:o,format:a,coordinateType:i}}_parseNameBytes(t){let n=0,r=0;const i=[],a={};for(let o=0;o<t.length;o+=1)if(!t[o]){if(r<o){let s=t.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async _parse(t={}){const n=await ui(await this.filehandle.readFile(t));let r;if(n.readUInt32LE(0)===pU)r=1;else if(n.readUInt32LE(0)===gU)r=2;else throw new Error("Not a CSI file");this.minShift=n.readInt32LE(4),this.depth=n.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const i=2**(this.minShift+this.depth*3),a=n.readInt32LE(12),o=a&&a>=30?this.parseAuxData(n,16):{refIdToName:[],refNameToId:{},metaChar:null,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},s=n.readInt32LE(16+a);let u,l=16+a+4;const c=new Array(s).fill(0).map(()=>{const f=n.readInt32LE(l);l+=4;const h={};let d;for(let p=0;p<f;p+=1){const m=n.readUInt32LE(l);if(m>this.maxBinNumber)d=this.parsePseudoBin(n,l+4),l+=4+8+4+16+16;else{const y=Mo(n,l+4);u=this._findFirstData(u,y);const w=n.readInt32LE(l+12);l+=16;const x=new Array(w);for(let S=0;S<w;S+=1){const _=Mo(n,l),T=Mo(n,l+8);l+=16,x[S]=new gh(_,T,m)}h[m]=x}}return{binIndex:h,stats:d}});return{...o,csi:!0,refCount:s,maxBlockSize:65536,firstDataLine:u,csiVersion:r,indices:c,depth:this.depth,maxBinNumber:this.maxBinNumber,maxRefLength:i}}parsePseudoBin(t,n){return{lineCount:JE(Hf.fromBytesLE(t.slice(n+28,n+36),!0))}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[t],s=a.indices[o];if(!s)return[];const u=this.reg2bins(n,r),l=[];for(const[c,f]of u)for(let h=c;h<=f;h++)if(s.binIndex[h])for(const d of s.binIndex[h])l.push(new gh(d.minv,d.maxv,h));return e_(l,new jg(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,a=this.minShift+this.depth*3;const o=[];for(;r<=this.depth;a-=3,i+=mU(1,r*3),r+=1){const s=i+r_(t,a),u=i+r_(n,a);if(u-s+o.length>this.maxBinNumber)throw new Error(`query ${t}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);o.push([s,u])}return o}}const qg=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function bU(e){return new Promise(t=>setTimeout(t,e))}class yU{constructor({path:t,filehandle:n,tbiPath:r,tbiFilehandle:i,csiPath:a,csiFilehandle:o,yieldTime:s=500,chunkSizeLimit:u=5e7,renameRefSeqs:l=f=>f,chunkCacheSize:c=5*2**20}){if(n)this.filehandle=n;else if(t)this.filehandle=new dt(t);else throw new TypeError("must provide either filehandle or path");if(i)this.index=new mh({filehandle:i,renameRefSeqs:l});else if(o)this.index=new $g({filehandle:o,renameRefSeqs:l});else if(r)this.index=new mh({filehandle:new dt(r),renameRefSeqs:l});else if(a)this.index=new $g({filehandle:new dt(a),renameRefSeqs:l});else if(t)this.index=new mh({filehandle:new dt(`${t}.tbi`),renameRefSeqs:l});else throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, or csiPath");this.chunkSizeLimit=u,this.renameRefSeq=l,this.yieldTime=s,this.chunkCache=new Qf({cache:new Xf({maxSize:Math.floor(c/65536)}),fill:(f,h)=>this.readChunk(f,{signal:h})})}async getLines(t,n,r,i){var a;let o,s={},u;if(i===void 0)throw new TypeError("line callback must be provided");if(typeof i=="function"?u=i:(s=i,u=i.lineCallback,o=i.signal),t===void 0)throw new TypeError("must provide a reference sequence name");if(!u)throw new TypeError("line callback must be provided");const l=await this.index.getMetadata(s);Fo(o);const c=n??0,f=r??l.maxRefLength;if(!(c<=f))throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(c===f)return;const h=await this.index.blocksForRange(t,c,f,s);Fo(o);for(const p of h){const m=p.fetchedSize();if(m>this.chunkSizeLimit)throw new Error(`Too much data. Chunk size ${m.toLocaleString()} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit.toLocaleString()}.`)}let d=Date.now();for(const p of h){let m;const{buffer:y,cpositions:w,dpositions:x}=await this.chunkCache.get(p.toString(),p,o);Fo(o);let S=0,_=0;for(;S<y.length;){const T=y.indexOf(`
635
- `,S);if(T===-1)break;const I=y.slice(S,T),B=(a=qg==null?void 0:qg.decode(I))!==null&&a!==void 0?a:I.toString();if(x){for(;S+p.minv.dataPosition>=x[_++];);_--}const{startCoordinate:R,overlaps:M}=this.checkLine(l,t,c,f,B);if(m!==void 0&&R!==void 0&&m>R)throw new Error(`Lines not sorted by start coordinate (${m} > ${R}), this file is not usable with Tabix.`);if(m=R,M)u(B.trim(),w[_]*256+(S-x[_])+p.minv.dataPosition+1);else if(R!==void 0&&R>=f)return;this.yieldTime&&d-Date.now()>this.yieldTime&&(d=Date.now(),Fo(o),await bU(1)),S=T+1}}}async getMetadata(t={}){return this.index.getMetadata(t)}async getHeaderBuffer(t={}){const{firstDataLine:n,metaChar:r,maxBlockSize:i}=await this.getMetadata(t);Fo(t.signal);const a=((n==null?void 0:n.blockPosition)||0)+i,o=await this._readRegion(0,a,t),s=await ui(o);if(r){let u=-1;const l=`
636
- `.charCodeAt(0),c=r.charCodeAt(0);for(let f=0;f<s.length&&!(f===u+1&&s[f]!==c);f+=1)s[f]===l&&(u=f);return s.slice(0,u+1)}return s}async getHeader(t={}){return(await this.getHeaderBuffer(t)).toString("utf8")}async getReferenceSequenceNames(t={}){return(await this.getMetadata(t)).refIdToName}checkLine(t,n,r,i,a){const{columnNumbers:o,metaChar:s,coordinateType:u,format:l}=t;if(s&&a.startsWith(s))return{overlaps:!1};let{ref:c,start:f,end:h}=o;c||(c=0),f||(f=0),h||(h=0),l==="VCF"&&(h=8);const d=Math.max(c,f,h);let p=1,m=0,y="",w=-1/0;for(let x=0;x<a.length+1;x+=1)if(a[x]===" "||x===a.length){if(p===c){if(this.renameRefSeq(a.slice(m,x))!==n)return{overlaps:!1}}else if(p===f){if(w=parseInt(a.slice(m,x),10),u==="1-based-closed"&&(w-=1),w>=i)return{startCoordinate:w,overlaps:!1};if((h===0||h===f)&&w+1<=r)return{startCoordinate:w,overlaps:!1}}else if(l==="VCF"&&p===4)y=a.slice(m,x);else if(p===h&&(l==="VCF"?this._getVcfEnd(w,y,a.slice(m,x)):parseInt(a.slice(m,x),10))<=r)return{overlaps:!1};if(m=x+1,p+=1,p>d)break}return{startCoordinate:w,overlaps:!0}}_getVcfEnd(t,n,r){let i=t+n.length;const a=r.includes("SVTYPE=TRA");if(r[0]!=="."&&!a){let o=";";for(let s=0;s<r.length;s+=1){if(o===";"&&r.slice(s,s+4)==="END="){let u=r.indexOf(";",s);u===-1&&(u=r.length),i=parseInt(r.slice(s+4,u),10);break}o=r[s]}}else if(a)return t+1;return i}async lineCount(t,n={}){return this.index.lineCount(t,n)}async _readRegion(t,n,r={}){const i=be.Buffer.alloc(n),{bytesRead:a,buffer:o}=await this.filehandle.read(i,0,n,t,r);return o.slice(0,a)}async readChunk(t,n={}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n);return bA(r,t)}}const wU=Object.freeze(Object.defineProperty({__proto__:null,CSI:$g,TBI:mh,TabixIndexedFile:yU},Symbol.toStringTag,{value:"Module"}));var Wg={exports:{}},Po=typeof Reflect=="object"?Reflect:null,i_=Po&&typeof Po.apply=="function"?Po.apply:function(t,n,r){return Function.prototype.apply.call(t,n,r)},bh;Po&&typeof Po.ownKeys=="function"?bh=Po.ownKeys:Object.getOwnPropertySymbols?bh=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:bh=function(t){return Object.getOwnPropertyNames(t)};function vU(e){console&&console.warn&&console.warn(e)}var a_=Number.isNaN||function(t){return t!==t};function De(){De.init.call(this)}Wg.exports=De,Wg.exports.once=_U,De.EventEmitter=De,De.prototype._events=void 0,De.prototype._eventsCount=0,De.prototype._maxListeners=void 0;var o_=10;function yh(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(De,"defaultMaxListeners",{enumerable:!0,get:function(){return o_},set:function(e){if(typeof e!="number"||e<0||a_(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");o_=e}}),De.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},De.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||a_(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function s_(e){return e._maxListeners===void 0?De.defaultMaxListeners:e._maxListeners}De.prototype.getMaxListeners=function(){return s_(this)},De.prototype.emit=function(t){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=t==="error",a=this._events;if(a!==void 0)i=i&&a.error===void 0;else if(!i)return!1;if(i){var o;if(n.length>0&&(o=n[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var u=a[t];if(u===void 0)return!1;if(typeof u=="function")i_(u,this,n);else for(var l=u.length,c=h_(u,l),r=0;r<l;++r)i_(c[r],this,n);return!0};function l_(e,t,n,r){var i,a,o;if(yh(n),a=e._events,a===void 0?(a=e._events=Object.create(null),e._eventsCount=0):(a.newListener!==void 0&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),o=a[t]),o===void 0)o=a[t]=n,++e._eventsCount;else if(typeof o=="function"?o=a[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),i=s_(e),i>0&&o.length>i&&!o.warned){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=o.length,vU(s)}return e}De.prototype.addListener=function(t,n){return l_(this,t,n,!1)},De.prototype.on=De.prototype.addListener,De.prototype.prependListener=function(t,n){return l_(this,t,n,!0)};function xU(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function u_(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=xU.bind(r);return i.listener=n,r.wrapFn=i,i}De.prototype.once=function(t,n){return yh(n),this.on(t,u_(this,t,n)),this},De.prototype.prependOnceListener=function(t,n){return yh(n),this.prependListener(t,u_(this,t,n)),this},De.prototype.removeListener=function(t,n){var r,i,a,o,s;if(yh(n),i=this._events,i===void 0)return this;if(r=i[t],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,r.listener||n));else if(typeof r!="function"){for(a=-1,o=r.length-1;o>=0;o--)if(r[o]===n||r[o].listener===n){s=r[o].listener,a=o;break}if(a<0)return this;a===0?r.shift():AU(r,a),r.length===1&&(i[t]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",t,s||n)}return this},De.prototype.off=De.prototype.removeListener,De.prototype.removeAllListeners=function(t){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[t]),this;if(arguments.length===0){var a=Object.keys(r),o;for(i=0;i<a.length;++i)o=a[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[t],typeof n=="function")this.removeListener(t,n);else if(n!==void 0)for(i=n.length-1;i>=0;i--)this.removeListener(t,n[i]);return this};function c_(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?EU(i):h_(i,i.length)}De.prototype.listeners=function(t){return c_(this,t,!0)},De.prototype.rawListeners=function(t){return c_(this,t,!1)},De.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):f_.call(e,t)},De.prototype.listenerCount=f_;function f_(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}De.prototype.eventNames=function(){return this._eventsCount>0?bh(this._events):[]};function h_(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function AU(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function EU(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function _U(e,t){return new Promise(function(n,r){function i(o){e.removeListener(t,a),r(o)}function a(){typeof e.removeListener=="function"&&e.removeListener("error",i),n([].slice.call(arguments))}d_(e,t,a,{once:!0}),t!=="error"&&SU(e,i,{once:!0})})}function SU(e,t,n){typeof e.on=="function"&&d_(e,"error",t,n)}function d_(e,t,n,r){if(typeof e.on=="function")r.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(a){r.once&&e.removeEventListener(t,i),n(a)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var Zg=Wg.exports,Yg={exports:{}};typeof Object.create=="function"?Yg.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:Yg.exports=function(t,n){if(n){t.super_=n;var r=function(){};r.prototype=n.prototype,t.prototype=new r,t.prototype.constructor=t}};var Lo=Yg.exports,Qg,p_;function g_(){return p_||(p_=1,Qg=Zg.EventEmitter),Qg}const m_=O7(W7);var Xg,b_;function CU(){if(b_)return Xg;b_=1;function e(p,m){var y=Object.keys(p);if(Object.getOwnPropertySymbols){var w=Object.getOwnPropertySymbols(p);m&&(w=w.filter(function(x){return Object.getOwnPropertyDescriptor(p,x).enumerable})),y.push.apply(y,w)}return y}function t(p){for(var m=1;m<arguments.length;m++){var y=arguments[m]!=null?arguments[m]:{};m%2?e(Object(y),!0).forEach(function(w){n(p,w,y[w])}):Object.getOwnPropertyDescriptors?Object.defineProperties(p,Object.getOwnPropertyDescriptors(y)):e(Object(y)).forEach(function(w){Object.defineProperty(p,w,Object.getOwnPropertyDescriptor(y,w))})}return p}function n(p,m,y){return m=o(m),m in p?Object.defineProperty(p,m,{value:y,enumerable:!0,configurable:!0,writable:!0}):p[m]=y,p}function r(p,m){if(!(p instanceof m))throw new TypeError("Cannot call a class as a function")}function i(p,m){for(var y=0;y<m.length;y++){var w=m[y];w.enumerable=w.enumerable||!1,w.configurable=!0,"value"in w&&(w.writable=!0),Object.defineProperty(p,o(w.key),w)}}function a(p,m,y){return m&&i(p.prototype,m),y&&i(p,y),Object.defineProperty(p,"prototype",{writable:!1}),p}function o(p){var m=s(p,"string");return typeof m=="symbol"?m:String(m)}function s(p,m){if(typeof p!="object"||p===null)return p;var y=p[Symbol.toPrimitive];if(y!==void 0){var w=y.call(p,m||"default");if(typeof w!="object")return w;throw new TypeError("@@toPrimitive must return a primitive value.")}return(m==="string"?String:Number)(p)}var u=be,l=u.Buffer,c=m_,f=c.inspect,h=f&&f.custom||"inspect";function d(p,m,y){l.prototype.copy.call(p,m,y)}return Xg=function(){function p(){r(this,p),this.head=null,this.tail=null,this.length=0}return a(p,[{key:"push",value:function(y){var w={data:y,next:null};this.length>0?this.tail.next=w:this.head=w,this.tail=w,++this.length}},{key:"unshift",value:function(y){var w={data:y,next:this.head};this.length===0&&(this.tail=w),this.head=w,++this.length}},{key:"shift",value:function(){if(this.length!==0){var y=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,y}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(y){if(this.length===0)return"";for(var w=this.head,x=""+w.data;w=w.next;)x+=y+w.data;return x}},{key:"concat",value:function(y){if(this.length===0)return l.alloc(0);for(var w=l.allocUnsafe(y>>>0),x=this.head,S=0;x;)d(x.data,w,S),S+=x.data.length,x=x.next;return w}},{key:"consume",value:function(y,w){var x;return y<this.head.data.length?(x=this.head.data.slice(0,y),this.head.data=this.head.data.slice(y)):y===this.head.data.length?x=this.shift():x=w?this._getString(y):this._getBuffer(y),x}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(y){var w=this.head,x=1,S=w.data;for(y-=S.length;w=w.next;){var _=w.data,T=y>_.length?_.length:y;if(T===_.length?S+=_:S+=_.slice(0,y),y-=T,y===0){T===_.length?(++x,w.next?this.head=w.next:this.head=this.tail=null):(this.head=w,w.data=_.slice(T));break}++x}return this.length-=x,S}},{key:"_getBuffer",value:function(y){var w=l.allocUnsafe(y),x=this.head,S=1;for(x.data.copy(w),y-=x.data.length;x=x.next;){var _=x.data,T=y>_.length?_.length:y;if(_.copy(w,w.length-y,0,T),y-=T,y===0){T===_.length?(++S,x.next?this.head=x.next:this.head=this.tail=null):(this.head=x,x.data=_.slice(T));break}++S}return this.length-=S,w}},{key:h,value:function(y,w){return f(this,t(t({},w),{},{depth:0,customInspect:!1}))}}]),p}(),Xg}var Kg,y_;function w_(){if(y_)return Kg;y_=1;function e(o,s){var u=this,l=this._readableState&&this._readableState.destroyed,c=this._writableState&&this._writableState.destroyed;return l||c?(s?s(o):o&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(i,this,o)):process.nextTick(i,this,o)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(o||null,function(f){!s&&f?u._writableState?u._writableState.errorEmitted?process.nextTick(n,u):(u._writableState.errorEmitted=!0,process.nextTick(t,u,f)):process.nextTick(t,u,f):s?(process.nextTick(n,u),s(f)):process.nextTick(n,u)}),this)}function t(o,s){i(o,s),n(o)}function n(o){o._writableState&&!o._writableState.emitClose||o._readableState&&!o._readableState.emitClose||o.emit("close")}function r(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function i(o,s){o.emit("error",s)}function a(o,s){var u=o._readableState,l=o._writableState;u&&u.autoDestroy||l&&l.autoDestroy?o.destroy(s):o.emit("error",s)}return Kg={destroy:e,undestroy:r,errorOrDestroy:a},Kg}var Jg={},v_;function No(){if(v_)return Jg;v_=1;function e(s,u){s.prototype=Object.create(u.prototype),s.prototype.constructor=s,s.__proto__=u}var t={};function n(s,u,l){l||(l=Error);function c(h,d,p){return typeof u=="string"?u:u(h,d,p)}var f=function(h){e(d,h);function d(p,m,y){return h.call(this,c(p,m,y))||this}return d}(l);f.prototype.name=l.name,f.prototype.code=s,t[s]=f}function r(s,u){if(Array.isArray(s)){var l=s.length;return s=s.map(function(c){return String(c)}),l>2?"one of ".concat(u," ").concat(s.slice(0,l-1).join(", "),", or ")+s[l-1]:l===2?"one of ".concat(u," ").concat(s[0]," or ").concat(s[1]):"of ".concat(u," ").concat(s[0])}else return"of ".concat(u," ").concat(String(s))}function i(s,u,l){return s.substr(!l||l<0?0:+l,u.length)===u}function a(s,u,l){return(l===void 0||l>s.length)&&(l=s.length),s.substring(l-u.length,l)===u}function o(s,u,l){return typeof l!="number"&&(l=0),l+u.length>s.length?!1:s.indexOf(u,l)!==-1}return n("ERR_INVALID_OPT_VALUE",function(s,u){return'The value "'+u+'" is invalid for option "'+s+'"'},TypeError),n("ERR_INVALID_ARG_TYPE",function(s,u,l){var c;typeof u=="string"&&i(u,"not ")?(c="must not be",u=u.replace(/^not /,"")):c="must be";var f;if(a(s," argument"))f="The ".concat(s," ").concat(c," ").concat(r(u,"type"));else{var h=o(s,".")?"property":"argument";f='The "'.concat(s,'" ').concat(h," ").concat(c," ").concat(r(u,"type"))}return f+=". Received type ".concat(typeof l),f},TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",function(s){return"The "+s+" method is not implemented"}),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",function(s){return"Cannot call "+s+" after a stream was destroyed"}),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",function(s){return"Unknown encoding: "+s},TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),Jg.codes=t,Jg}var em,x_;function A_(){if(x_)return em;x_=1;var e=No().codes.ERR_INVALID_OPT_VALUE;function t(r,i,a){return r.highWaterMark!=null?r.highWaterMark:i?r[a]:null}function n(r,i,a,o){var s=t(i,o,a);if(s!=null){if(!(isFinite(s)&&Math.floor(s)===s)||s<0){var u=o?a:"highWaterMark";throw new e(u,s)}return Math.floor(s)}return r.objectMode?16:16*1024}return em={getHighWaterMark:n},em}var tm,E_;function kU(){if(E_)return tm;E_=1,tm=e;function e(n,r){if(t("noDeprecation"))return n;var i=!1;function a(){if(!i){if(t("throwDeprecation"))throw new Error(r);t("traceDeprecation")?console.trace(r):console.warn(r),i=!0}return n.apply(this,arguments)}return a}function t(n){try{if(!globalThis.localStorage)return!1}catch{return!1}var r=globalThis.localStorage[n];return r==null?!1:String(r).toLowerCase()==="true"}return tm}var nm,__;function S_(){if(__)return nm;__=1,nm=R;function e(L){var P=this;this.next=null,this.entry=null,this.finish=function(){Oe(P,L)}}var t;R.WritableState=I;var n={deprecate:kU()},r=g_(),i=be.Buffer,a=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function o(L){return i.from(L)}function s(L){return i.isBuffer(L)||L instanceof a}var u=w_(),l=A_(),c=l.getHighWaterMark,f=No().codes,h=f.ERR_INVALID_ARG_TYPE,d=f.ERR_METHOD_NOT_IMPLEMENTED,p=f.ERR_MULTIPLE_CALLBACK,m=f.ERR_STREAM_CANNOT_PIPE,y=f.ERR_STREAM_DESTROYED,w=f.ERR_STREAM_NULL_VALUES,x=f.ERR_STREAM_WRITE_AFTER_END,S=f.ERR_UNKNOWN_ENCODING,_=u.errorOrDestroy;Lo(R,r);function T(){}function I(L,P,q){t=t||Oo(),L=L||{},typeof q!="boolean"&&(q=P instanceof t),this.objectMode=!!L.objectMode,q&&(this.objectMode=this.objectMode||!!L.writableObjectMode),this.highWaterMark=c(this,L,"writableHighWaterMark",q),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var j=L.decodeStrings===!1;this.decodeStrings=!j,this.defaultEncoding=L.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Z){Ke(P,Z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=L.emitClose!==!1,this.autoDestroy=!!L.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}I.prototype.getBuffer=function(){for(var P=this.bufferedRequest,q=[];P;)q.push(P),P=P.next;return q},function(){try{Object.defineProperty(I.prototype,"buffer",{get:n.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var B;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(B=Function.prototype[Symbol.hasInstance],Object.defineProperty(R,Symbol.hasInstance,{value:function(P){return B.call(this,P)?!0:this!==R?!1:P&&P._writableState instanceof I}})):B=function(P){return P instanceof this};function R(L){t=t||Oo();var P=this instanceof t;if(!P&&!B.call(R,this))return new R(L);this._writableState=new I(L,this,P),this.writable=!0,L&&(typeof L.write=="function"&&(this._write=L.write),typeof L.writev=="function"&&(this._writev=L.writev),typeof L.destroy=="function"&&(this._destroy=L.destroy),typeof L.final=="function"&&(this._final=L.final)),r.call(this)}R.prototype.pipe=function(){_(this,new m)};function M(L,P){var q=new x;_(L,q),process.nextTick(P,q)}function H(L,P,q,j){var Z;return q===null?Z=new w:typeof q!="string"&&!P.objectMode&&(Z=new h("chunk",["string","Buffer"],q)),Z?(_(L,Z),process.nextTick(j,Z),!1):!0}R.prototype.write=function(L,P,q){var j=this._writableState,Z=!1,C=!j.objectMode&&s(L);return C&&!i.isBuffer(L)&&(L=o(L)),typeof P=="function"&&(q=P,P=null),C?P="buffer":P||(P=j.defaultEncoding),typeof q!="function"&&(q=T),j.ending?M(this,q):(C||H(this,j,L,q))&&(j.pendingcb++,Z=re(this,j,C,L,P,q)),Z},R.prototype.cork=function(){this._writableState.corked++},R.prototype.uncork=function(){var L=this._writableState;L.corked&&(L.corked--,!L.writing&&!L.corked&&!L.bufferProcessing&&L.bufferedRequest&&We(this,L))},R.prototype.setDefaultEncoding=function(P){if(typeof P=="string"&&(P=P.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((P+"").toLowerCase())>-1))throw new S(P);return this._writableState.defaultEncoding=P,this},Object.defineProperty(R.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function O(L,P,q){return!L.objectMode&&L.decodeStrings!==!1&&typeof P=="string"&&(P=i.from(P,q)),P}Object.defineProperty(R.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function re(L,P,q,j,Z,C){if(!q){var A=O(P,j,Z);j!==A&&(q=!0,Z="buffer",j=A)}var V=P.objectMode?1:j.length;P.length+=V;var W=P.length<P.highWaterMark;if(W||(P.needDrain=!0),P.writing||P.corked){var ue=P.lastBufferedRequest;P.lastBufferedRequest={chunk:j,encoding:Z,isBuf:q,callback:C,next:null},ue?ue.next=P.lastBufferedRequest:P.bufferedRequest=P.lastBufferedRequest,P.bufferedRequestCount+=1}else se(L,P,!1,V,j,Z,C);return W}function se(L,P,q,j,Z,C,A){P.writelen=j,P.writecb=A,P.writing=!0,P.sync=!0,P.destroyed?P.onwrite(new y("write")):q?L._writev(Z,P.onwrite):L._write(Z,C,P.onwrite),P.sync=!1}function te(L,P,q,j,Z){--P.pendingcb,q?(process.nextTick(Z,j),process.nextTick(gt,L,P),L._writableState.errorEmitted=!0,_(L,j)):(Z(j),L._writableState.errorEmitted=!0,_(L,j),gt(L,P))}function me(L){L.writing=!1,L.writecb=null,L.length-=L.writelen,L.writelen=0}function Ke(L,P){var q=L._writableState,j=q.sync,Z=q.writecb;if(typeof Z!="function")throw new p;if(me(q),P)te(L,q,j,P,Z);else{var C=et(q)||L.destroyed;!C&&!q.corked&&!q.bufferProcessing&&q.bufferedRequest&&We(L,q),j?process.nextTick(Re,L,q,C,Z):Re(L,q,C,Z)}}function Re(L,P,q,j){q||Je(L,P),P.pendingcb--,j(),gt(L,P)}function Je(L,P){P.length===0&&P.needDrain&&(P.needDrain=!1,L.emit("drain"))}function We(L,P){P.bufferProcessing=!0;var q=P.bufferedRequest;if(L._writev&&q&&q.next){var j=P.bufferedRequestCount,Z=new Array(j),C=P.corkedRequestsFree;C.entry=q;for(var A=0,V=!0;q;)Z[A]=q,q.isBuf||(V=!1),q=q.next,A+=1;Z.allBuffers=V,se(L,P,!0,P.length,Z,"",C.finish),P.pendingcb++,P.lastBufferedRequest=null,C.next?(P.corkedRequestsFree=C.next,C.next=null):P.corkedRequestsFree=new e(P),P.bufferedRequestCount=0}else{for(;q;){var W=q.chunk,ue=q.encoding,ne=q.callback,ce=P.objectMode?1:W.length;if(se(L,P,!1,ce,W,ue,ne),q=q.next,P.bufferedRequestCount--,P.writing)break}q===null&&(P.lastBufferedRequest=null)}P.bufferedRequest=q,P.bufferProcessing=!1}R.prototype._write=function(L,P,q){q(new d("_write()"))},R.prototype._writev=null,R.prototype.end=function(L,P,q){var j=this._writableState;return typeof L=="function"?(q=L,L=null,P=null):typeof P=="function"&&(q=P,P=null),L!=null&&this.write(L,P),j.corked&&(j.corked=1,this.uncork()),j.ending||qt(this,j,q),this},Object.defineProperty(R.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function et(L){return L.ending&&L.length===0&&L.bufferedRequest===null&&!L.finished&&!L.writing}function Se(L,P){L._final(function(q){P.pendingcb--,q&&_(L,q),P.prefinished=!0,L.emit("prefinish"),gt(L,P)})}function Ce(L,P){!P.prefinished&&!P.finalCalled&&(typeof L._final=="function"&&!P.destroyed?(P.pendingcb++,P.finalCalled=!0,process.nextTick(Se,L,P)):(P.prefinished=!0,L.emit("prefinish")))}function gt(L,P){var q=et(P);if(q&&(Ce(L,P),P.pendingcb===0&&(P.finished=!0,L.emit("finish"),P.autoDestroy))){var j=L._readableState;(!j||j.autoDestroy&&j.endEmitted)&&L.destroy()}return q}function qt(L,P,q){P.ending=!0,gt(L,P),q&&(P.finished?process.nextTick(q):L.once("finish",q)),P.ended=!0,L.writable=!1}function Oe(L,P,q){var j=L.entry;for(L.entry=null;j;){var Z=j.callback;P.pendingcb--,Z(q),j=j.next}P.corkedRequestsFree.next=L}return Object.defineProperty(R.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(P){this._writableState&&(this._writableState.destroyed=P)}}),R.prototype.destroy=u.destroy,R.prototype._undestroy=u.undestroy,R.prototype._destroy=function(L,P){P(L)},nm}var rm,C_;function Oo(){if(C_)return rm;C_=1;var e=Object.keys||function(l){var c=[];for(var f in l)c.push(f);return c};rm=o;var t=R_(),n=S_();Lo(o,t);for(var r=e(n.prototype),i=0;i<r.length;i++){var a=r[i];o.prototype[a]||(o.prototype[a]=n.prototype[a])}function o(l){if(!(this instanceof o))return new o(l);t.call(this,l),n.call(this,l),this.allowHalfOpen=!0,l&&(l.readable===!1&&(this.readable=!1),l.writable===!1&&(this.writable=!1),l.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",s)))}Object.defineProperty(o.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(o.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(o.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(){this._writableState.ended||process.nextTick(u,this)}function u(l){l.end()}return Object.defineProperty(o.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(c){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=c,this._writableState.destroyed=c)}}),rm}var im={},am={exports:{}};(function(e,t){var n=be,r=n.Buffer;function i(o,s){for(var u in o)s[u]=o[u]}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?e.exports=n:(i(n,t),t.Buffer=a);function a(o,s,u){return r(o,s,u)}i(r,a),a.from=function(o,s,u){if(typeof o=="number")throw new TypeError("Argument must not be a number");return r(o,s,u)},a.alloc=function(o,s,u){if(typeof o!="number")throw new TypeError("Argument must be a number");var l=r(o);return s!==void 0?typeof u=="string"?l.fill(s,u):l.fill(s):l.fill(0),l},a.allocUnsafe=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return r(o)},a.allocUnsafeSlow=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return n.SlowBuffer(o)}})(am,am.exports);var TU=am.exports,om=TU.Buffer,k_=om.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function IU(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function BU(e){var t=IU(e);if(typeof t!="string"&&(om.isEncoding===k_||!k_(e)))throw new Error("Unknown encoding: "+e);return t||e}var DU=im.StringDecoder=iu;function iu(e){this.encoding=BU(e);var t;switch(this.encoding){case"utf16le":this.text=NU,this.end=OU,t=4;break;case"utf8":this.fillLast=MU,t=4;break;case"base64":this.text=zU,this.end=UU,t=3;break;default:this.write=GU,this.end=HU;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=om.allocUnsafe(t)}iu.prototype.write=function(e){if(e.length===0)return"";var t,n;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},iu.prototype.end=LU,iu.prototype.text=PU,iu.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length};function sm(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function RU(e,t,n){var r=t.length-1;if(r<n)return 0;var i=sm(t[r]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--r<n||i===-2?0:(i=sm(t[r]),i>=0?(i>0&&(e.lastNeed=i-2),i):--r<n||i===-2?0:(i=sm(t[r]),i>=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function FU(e,t,n){if((t[0]&192)!==128)return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"�"}}function MU(e){var t=this.lastTotal-this.lastNeed,n=FU(this,e);if(n!==void 0)return n;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function PU(e,t){var n=RU(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function LU(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function NU(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function OU(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function zU(e,t){var n=(e.length-t)%3;return n===0?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,n===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function UU(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function GU(e){return e.toString(this.encoding)}function HU(e){return e&&e.length?this.write(e):""}var lm,T_;function um(){if(T_)return lm;T_=1;var e=No().codes.ERR_STREAM_PREMATURE_CLOSE;function t(a){var o=!1;return function(){if(!o){o=!0;for(var s=arguments.length,u=new Array(s),l=0;l<s;l++)u[l]=arguments[l];a.apply(this,u)}}}function n(){}function r(a){return a.setHeader&&typeof a.abort=="function"}function i(a,o,s){if(typeof o=="function")return i(a,null,o);o||(o={}),s=t(s||n);var u=o.readable||o.readable!==!1&&a.readable,l=o.writable||o.writable!==!1&&a.writable,c=function(){a.writable||h()},f=a._writableState&&a._writableState.finished,h=function(){l=!1,f=!0,u||s.call(a)},d=a._readableState&&a._readableState.endEmitted,p=function(){u=!1,d=!0,l||s.call(a)},m=function(S){s.call(a,S)},y=function(){var S;if(u&&!d)return(!a._readableState||!a._readableState.ended)&&(S=new e),s.call(a,S);if(l&&!f)return(!a._writableState||!a._writableState.ended)&&(S=new e),s.call(a,S)},w=function(){a.req.on("finish",h)};return r(a)?(a.on("complete",h),a.on("abort",y),a.req?w():a.on("request",w)):l&&!a._writableState&&(a.on("end",c),a.on("close",c)),a.on("end",p),a.on("finish",h),o.error!==!1&&a.on("error",m),a.on("close",y),function(){a.removeListener("complete",h),a.removeListener("abort",y),a.removeListener("request",w),a.req&&a.req.removeListener("finish",h),a.removeListener("end",c),a.removeListener("close",c),a.removeListener("finish",h),a.removeListener("end",p),a.removeListener("error",m),a.removeListener("close",y)}}return lm=i,lm}var cm,I_;function VU(){if(I_)return cm;I_=1;var e;function t(S,_,T){return _=n(_),_ in S?Object.defineProperty(S,_,{value:T,enumerable:!0,configurable:!0,writable:!0}):S[_]=T,S}function n(S){var _=r(S,"string");return typeof _=="symbol"?_:String(_)}function r(S,_){if(typeof S!="object"||S===null)return S;var T=S[Symbol.toPrimitive];if(T!==void 0){var I=T.call(S,_||"default");if(typeof I!="object")return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_==="string"?String:Number)(S)}var i=um(),a=Symbol("lastResolve"),o=Symbol("lastReject"),s=Symbol("error"),u=Symbol("ended"),l=Symbol("lastPromise"),c=Symbol("handlePromise"),f=Symbol("stream");function h(S,_){return{value:S,done:_}}function d(S){var _=S[a];if(_!==null){var T=S[f].read();T!==null&&(S[l]=null,S[a]=null,S[o]=null,_(h(T,!1)))}}function p(S){process.nextTick(d,S)}function m(S,_){return function(T,I){S.then(function(){if(_[u]){T(h(void 0,!0));return}_[c](T,I)},I)}}var y=Object.getPrototypeOf(function(){}),w=Object.setPrototypeOf((e={get stream(){return this[f]},next:function(){var _=this,T=this[s];if(T!==null)return Promise.reject(T);if(this[u])return Promise.resolve(h(void 0,!0));if(this[f].destroyed)return new Promise(function(M,H){process.nextTick(function(){_[s]?H(_[s]):M(h(void 0,!0))})});var I=this[l],B;if(I)B=new Promise(m(I,this));else{var R=this[f].read();if(R!==null)return Promise.resolve(h(R,!1));B=new Promise(this[c])}return this[l]=B,B}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var _=this;return new Promise(function(T,I){_[f].destroy(null,function(B){if(B){I(B);return}T(h(void 0,!0))})})}),e),y),x=function(_){var T,I=Object.create(w,(T={},t(T,f,{value:_,writable:!0}),t(T,a,{value:null,writable:!0}),t(T,o,{value:null,writable:!0}),t(T,s,{value:null,writable:!0}),t(T,u,{value:_._readableState.endEmitted,writable:!0}),t(T,c,{value:function(R,M){var H=I[f].read();H?(I[l]=null,I[a]=null,I[o]=null,R(h(H,!1))):(I[a]=R,I[o]=M)},writable:!0}),T));return I[l]=null,i(_,function(B){if(B&&B.code!=="ERR_STREAM_PREMATURE_CLOSE"){var R=I[o];R!==null&&(I[l]=null,I[a]=null,I[o]=null,R(B)),I[s]=B;return}var M=I[a];M!==null&&(I[l]=null,I[a]=null,I[o]=null,M(h(void 0,!0))),I[u]=!0}),_.on("readable",p.bind(null,I)),I};return cm=x,cm}var fm,B_;function jU(){return B_||(B_=1,fm=function(){throw new Error("Readable.from is not available in the browser")}),fm}var hm,D_;function R_(){if(D_)return hm;D_=1,hm=M;var e;M.ReadableState=R,Zg.EventEmitter;var t=function(A,V){return A.listeners(V).length},n=g_(),r=be.Buffer,i=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function a(C){return r.from(C)}function o(C){return r.isBuffer(C)||C instanceof i}var s=m_,u;s&&s.debuglog?u=s.debuglog("stream"):u=function(){};var l=CU(),c=w_(),f=A_(),h=f.getHighWaterMark,d=No().codes,p=d.ERR_INVALID_ARG_TYPE,m=d.ERR_STREAM_PUSH_AFTER_EOF,y=d.ERR_METHOD_NOT_IMPLEMENTED,w=d.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,x,S,_;Lo(M,n);var T=c.errorOrDestroy,I=["error","close","destroy","pause","resume"];function B(C,A,V){if(typeof C.prependListener=="function")return C.prependListener(A,V);!C._events||!C._events[A]?C.on(A,V):Array.isArray(C._events[A])?C._events[A].unshift(V):C._events[A]=[V,C._events[A]]}function R(C,A,V){e=e||Oo(),C=C||{},typeof V!="boolean"&&(V=A instanceof e),this.objectMode=!!C.objectMode,V&&(this.objectMode=this.objectMode||!!C.readableObjectMode),this.highWaterMark=h(this,C,"readableHighWaterMark",V),this.buffer=new l,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=C.emitClose!==!1,this.autoDestroy=!!C.autoDestroy,this.destroyed=!1,this.defaultEncoding=C.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,C.encoding&&(x||(x=im.StringDecoder),this.decoder=new x(C.encoding),this.encoding=C.encoding)}function M(C){if(e=e||Oo(),!(this instanceof M))return new M(C);var A=this instanceof e;this._readableState=new R(C,this,A),this.readable=!0,C&&(typeof C.read=="function"&&(this._read=C.read),typeof C.destroy=="function"&&(this._destroy=C.destroy)),n.call(this)}Object.defineProperty(M.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(A){this._readableState&&(this._readableState.destroyed=A)}}),M.prototype.destroy=c.destroy,M.prototype._undestroy=c.undestroy,M.prototype._destroy=function(C,A){A(C)},M.prototype.push=function(C,A){var V=this._readableState,W;return V.objectMode?W=!0:typeof C=="string"&&(A=A||V.defaultEncoding,A!==V.encoding&&(C=r.from(C,A),A=""),W=!0),H(this,C,A,!1,W)},M.prototype.unshift=function(C){return H(this,C,null,!0,!1)};function H(C,A,V,W,ue){u("readableAddChunk",A);var ne=C._readableState;if(A===null)ne.reading=!1,Ke(C,ne);else{var ce;if(ue||(ce=re(ne,A)),ce)T(C,ce);else if(ne.objectMode||A&&A.length>0)if(typeof A!="string"&&!ne.objectMode&&Object.getPrototypeOf(A)!==r.prototype&&(A=a(A)),W)ne.endEmitted?T(C,new w):O(C,ne,A,!0);else if(ne.ended)T(C,new m);else{if(ne.destroyed)return!1;ne.reading=!1,ne.decoder&&!V?(A=ne.decoder.write(A),ne.objectMode||A.length!==0?O(C,ne,A,!1):We(C,ne)):O(C,ne,A,!1)}else W||(ne.reading=!1,We(C,ne))}return!ne.ended&&(ne.length<ne.highWaterMark||ne.length===0)}function O(C,A,V,W){A.flowing&&A.length===0&&!A.sync?(A.awaitDrain=0,C.emit("data",V)):(A.length+=A.objectMode?1:V.length,W?A.buffer.unshift(V):A.buffer.push(V),A.needReadable&&Re(C)),We(C,A)}function re(C,A){var V;return!o(A)&&typeof A!="string"&&A!==void 0&&!C.objectMode&&(V=new p("chunk",["string","Buffer","Uint8Array"],A)),V}M.prototype.isPaused=function(){return this._readableState.flowing===!1},M.prototype.setEncoding=function(C){x||(x=im.StringDecoder);var A=new x(C);this._readableState.decoder=A,this._readableState.encoding=this._readableState.decoder.encoding;for(var V=this._readableState.buffer.head,W="";V!==null;)W+=A.write(V.data),V=V.next;return this._readableState.buffer.clear(),W!==""&&this._readableState.buffer.push(W),this._readableState.length=W.length,this};var se=1073741824;function te(C){return C>=se?C=se:(C--,C|=C>>>1,C|=C>>>2,C|=C>>>4,C|=C>>>8,C|=C>>>16,C++),C}function me(C,A){return C<=0||A.length===0&&A.ended?0:A.objectMode?1:C!==C?A.flowing&&A.length?A.buffer.head.data.length:A.length:(C>A.highWaterMark&&(A.highWaterMark=te(C)),C<=A.length?C:A.ended?A.length:(A.needReadable=!0,0))}M.prototype.read=function(C){u("read",C),C=parseInt(C,10);var A=this._readableState,V=C;if(C!==0&&(A.emittedReadable=!1),C===0&&A.needReadable&&((A.highWaterMark!==0?A.length>=A.highWaterMark:A.length>0)||A.ended))return u("read: emitReadable",A.length,A.ended),A.length===0&&A.ended?q(this):Re(this),null;if(C=me(C,A),C===0&&A.ended)return A.length===0&&q(this),null;var W=A.needReadable;u("need readable",W),(A.length===0||A.length-C<A.highWaterMark)&&(W=!0,u("length less than watermark",W)),A.ended||A.reading?(W=!1,u("reading or ended",W)):W&&(u("do read"),A.reading=!0,A.sync=!0,A.length===0&&(A.needReadable=!0),this._read(A.highWaterMark),A.sync=!1,A.reading||(C=me(V,A)));var ue;return C>0?ue=P(C,A):ue=null,ue===null?(A.needReadable=A.length<=A.highWaterMark,C=0):(A.length-=C,A.awaitDrain=0),A.length===0&&(A.ended||(A.needReadable=!0),V!==C&&A.ended&&q(this)),ue!==null&&this.emit("data",ue),ue};function Ke(C,A){if(u("onEofChunk"),!A.ended){if(A.decoder){var V=A.decoder.end();V&&V.length&&(A.buffer.push(V),A.length+=A.objectMode?1:V.length)}A.ended=!0,A.sync?Re(C):(A.needReadable=!1,A.emittedReadable||(A.emittedReadable=!0,Je(C)))}}function Re(C){var A=C._readableState;u("emitReadable",A.needReadable,A.emittedReadable),A.needReadable=!1,A.emittedReadable||(u("emitReadable",A.flowing),A.emittedReadable=!0,process.nextTick(Je,C))}function Je(C){var A=C._readableState;u("emitReadable_",A.destroyed,A.length,A.ended),!A.destroyed&&(A.length||A.ended)&&(C.emit("readable"),A.emittedReadable=!1),A.needReadable=!A.flowing&&!A.ended&&A.length<=A.highWaterMark,L(C)}function We(C,A){A.readingMore||(A.readingMore=!0,process.nextTick(et,C,A))}function et(C,A){for(;!A.reading&&!A.ended&&(A.length<A.highWaterMark||A.flowing&&A.length===0);){var V=A.length;if(u("maybeReadMore read 0"),C.read(0),V===A.length)break}A.readingMore=!1}M.prototype._read=function(C){T(this,new y("_read()"))},M.prototype.pipe=function(C,A){var V=this,W=this._readableState;switch(W.pipesCount){case 0:W.pipes=C;break;case 1:W.pipes=[W.pipes,C];break;default:W.pipes.push(C);break}W.pipesCount+=1,u("pipe count=%d opts=%j",W.pipesCount,A);var ue=(!A||A.end!==!1)&&C!==process.stdout&&C!==process.stderr,ne=ue?Wt:nr;W.endEmitted?process.nextTick(ne):V.once("end",ne),C.on("unpipe",ce);function ce(v,g){u("onunpipe"),v===V&&g&&g.hasUnpiped===!1&&(g.hasUnpiped=!0,_i())}function Wt(){u("onend"),C.end()}var Ai=Se(V);C.on("drain",Ai);var Ei=!1;function _i(){u("cleanup"),C.removeListener("close",Si),C.removeListener("finish",Zt),C.removeListener("drain",Ai),C.removeListener("error",kr),C.removeListener("unpipe",ce),V.removeListener("end",Wt),V.removeListener("end",nr),V.removeListener("data",Ct),Ei=!0,W.awaitDrain&&(!C._writableState||C._writableState.needDrain)&&Ai()}V.on("data",Ct);function Ct(v){u("ondata");var g=C.write(v);u("dest.write",g),g===!1&&((W.pipesCount===1&&W.pipes===C||W.pipesCount>1&&Z(W.pipes,C)!==-1)&&!Ei&&(u("false write response, pause",W.awaitDrain),W.awaitDrain++),V.pause())}function kr(v){u("onerror",v),nr(),C.removeListener("error",kr),t(C,"error")===0&&T(C,v)}B(C,"error",kr);function Si(){C.removeListener("finish",Zt),nr()}C.once("close",Si);function Zt(){u("onfinish"),C.removeListener("close",Si),nr()}C.once("finish",Zt);function nr(){u("unpipe"),V.unpipe(C)}return C.emit("pipe",V),W.flowing||(u("pipe resume"),V.resume()),C};function Se(C){return function(){var V=C._readableState;u("pipeOnDrain",V.awaitDrain),V.awaitDrain&&V.awaitDrain--,V.awaitDrain===0&&t(C,"data")&&(V.flowing=!0,L(C))}}M.prototype.unpipe=function(C){var A=this._readableState,V={hasUnpiped:!1};if(A.pipesCount===0)return this;if(A.pipesCount===1)return C&&C!==A.pipes?this:(C||(C=A.pipes),A.pipes=null,A.pipesCount=0,A.flowing=!1,C&&C.emit("unpipe",this,V),this);if(!C){var W=A.pipes,ue=A.pipesCount;A.pipes=null,A.pipesCount=0,A.flowing=!1;for(var ne=0;ne<ue;ne++)W[ne].emit("unpipe",this,{hasUnpiped:!1});return this}var ce=Z(A.pipes,C);return ce===-1?this:(A.pipes.splice(ce,1),A.pipesCount-=1,A.pipesCount===1&&(A.pipes=A.pipes[0]),C.emit("unpipe",this,V),this)},M.prototype.on=function(C,A){var V=n.prototype.on.call(this,C,A),W=this._readableState;return C==="data"?(W.readableListening=this.listenerCount("readable")>0,W.flowing!==!1&&this.resume()):C==="readable"&&!W.endEmitted&&!W.readableListening&&(W.readableListening=W.needReadable=!0,W.flowing=!1,W.emittedReadable=!1,u("on readable",W.length,W.reading),W.length?Re(this):W.reading||process.nextTick(gt,this)),V},M.prototype.addListener=M.prototype.on,M.prototype.removeListener=function(C,A){var V=n.prototype.removeListener.call(this,C,A);return C==="readable"&&process.nextTick(Ce,this),V},M.prototype.removeAllListeners=function(C){var A=n.prototype.removeAllListeners.apply(this,arguments);return(C==="readable"||C===void 0)&&process.nextTick(Ce,this),A};function Ce(C){var A=C._readableState;A.readableListening=C.listenerCount("readable")>0,A.resumeScheduled&&!A.paused?A.flowing=!0:C.listenerCount("data")>0&&C.resume()}function gt(C){u("readable nexttick read 0"),C.read(0)}M.prototype.resume=function(){var C=this._readableState;return C.flowing||(u("resume"),C.flowing=!C.readableListening,qt(this,C)),C.paused=!1,this};function qt(C,A){A.resumeScheduled||(A.resumeScheduled=!0,process.nextTick(Oe,C,A))}function Oe(C,A){u("resume",A.reading),A.reading||C.read(0),A.resumeScheduled=!1,C.emit("resume"),L(C),A.flowing&&!A.reading&&C.read(0)}M.prototype.pause=function(){return u("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(u("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function L(C){var A=C._readableState;for(u("flow",A.flowing);A.flowing&&C.read()!==null;);}M.prototype.wrap=function(C){var A=this,V=this._readableState,W=!1;C.on("end",function(){if(u("wrapped end"),V.decoder&&!V.ended){var ce=V.decoder.end();ce&&ce.length&&A.push(ce)}A.push(null)}),C.on("data",function(ce){if(u("wrapped data"),V.decoder&&(ce=V.decoder.write(ce)),!(V.objectMode&&ce==null)&&!(!V.objectMode&&(!ce||!ce.length))){var Wt=A.push(ce);Wt||(W=!0,C.pause())}});for(var ue in C)this[ue]===void 0&&typeof C[ue]=="function"&&(this[ue]=function(Wt){return function(){return C[Wt].apply(C,arguments)}}(ue));for(var ne=0;ne<I.length;ne++)C.on(I[ne],this.emit.bind(this,I[ne]));return this._read=function(ce){u("wrapped _read",ce),W&&(W=!1,C.resume())},this},typeof Symbol=="function"&&(M.prototype[Symbol.asyncIterator]=function(){return S===void 0&&(S=VU()),S(this)}),Object.defineProperty(M.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(M.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(M.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(A){this._readableState&&(this._readableState.flowing=A)}}),M._fromList=P,Object.defineProperty(M.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function P(C,A){if(A.length===0)return null;var V;return A.objectMode?V=A.buffer.shift():!C||C>=A.length?(A.decoder?V=A.buffer.join(""):A.buffer.length===1?V=A.buffer.first():V=A.buffer.concat(A.length),A.buffer.clear()):V=A.buffer.consume(C,A.decoder),V}function q(C){var A=C._readableState;u("endReadable",A.endEmitted),A.endEmitted||(A.ended=!0,process.nextTick(j,A,C))}function j(C,A){if(u("endReadableNT",C.endEmitted,C.length),!C.endEmitted&&C.length===0&&(C.endEmitted=!0,A.readable=!1,A.emit("end"),C.autoDestroy)){var V=A._writableState;(!V||V.autoDestroy&&V.finished)&&A.destroy()}}typeof Symbol=="function"&&(M.from=function(C,A){return _===void 0&&(_=jU()),_(M,C,A)});function Z(C,A){for(var V=0,W=C.length;V<W;V++)if(C[V]===A)return V;return-1}return hm}var dm,F_;function M_(){if(F_)return dm;F_=1,dm=s;var e=No().codes,t=e.ERR_METHOD_NOT_IMPLEMENTED,n=e.ERR_MULTIPLE_CALLBACK,r=e.ERR_TRANSFORM_ALREADY_TRANSFORMING,i=e.ERR_TRANSFORM_WITH_LENGTH_0,a=Oo();Lo(s,a);function o(c,f){var h=this._transformState;h.transforming=!1;var d=h.writecb;if(d===null)return this.emit("error",new n);h.writechunk=null,h.writecb=null,f!=null&&this.push(f),d(c);var p=this._readableState;p.reading=!1,(p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}function s(c){if(!(this instanceof s))return new s(c);a.call(this,c),this._transformState={afterTransform:o.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,c&&(typeof c.transform=="function"&&(this._transform=c.transform),typeof c.flush=="function"&&(this._flush=c.flush)),this.on("prefinish",u)}function u(){var c=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(f,h){l(c,f,h)}):l(this,null,null)}s.prototype.push=function(c,f){return this._transformState.needTransform=!1,a.prototype.push.call(this,c,f)},s.prototype._transform=function(c,f,h){h(new t("_transform()"))},s.prototype._write=function(c,f,h){var d=this._transformState;if(d.writecb=h,d.writechunk=c,d.writeencoding=f,!d.transforming){var p=this._readableState;(d.needTransform||p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}},s.prototype._read=function(c){var f=this._transformState;f.writechunk!==null&&!f.transforming?(f.transforming=!0,this._transform(f.writechunk,f.writeencoding,f.afterTransform)):f.needTransform=!0},s.prototype._destroy=function(c,f){a.prototype._destroy.call(this,c,function(h){f(h)})};function l(c,f,h){if(f)return c.emit("error",f);if(h!=null&&c.push(h),c._writableState.length)throw new i;if(c._transformState.transforming)throw new r;return c.push(null)}return dm}var pm,P_;function $U(){if(P_)return pm;P_=1,pm=t;var e=M_();Lo(t,e);function t(n){if(!(this instanceof t))return new t(n);e.call(this,n)}return t.prototype._transform=function(n,r,i){i(null,n)},pm}var gm,L_;function qU(){if(L_)return gm;L_=1;var e;function t(h){var d=!1;return function(){d||(d=!0,h.apply(void 0,arguments))}}var n=No().codes,r=n.ERR_MISSING_ARGS,i=n.ERR_STREAM_DESTROYED;function a(h){if(h)throw h}function o(h){return h.setHeader&&typeof h.abort=="function"}function s(h,d,p,m){m=t(m);var y=!1;h.on("close",function(){y=!0}),e===void 0&&(e=um()),e(h,{readable:d,writable:p},function(x){if(x)return m(x);y=!0,m()});var w=!1;return function(x){if(!y&&!w){if(w=!0,o(h))return h.abort();if(typeof h.destroy=="function")return h.destroy();m(x||new i("pipe"))}}}function u(h){h()}function l(h,d){return h.pipe(d)}function c(h){return!h.length||typeof h[h.length-1]!="function"?a:h.pop()}function f(){for(var h=arguments.length,d=new Array(h),p=0;p<h;p++)d[p]=arguments[p];var m=c(d);if(Array.isArray(d[0])&&(d=d[0]),d.length<2)throw new r("streams");var y,w=d.map(function(x,S){var _=S<d.length-1,T=S>0;return s(x,_,T,function(I){y||(y=I),I&&w.forEach(u),!_&&(w.forEach(u),m(y))})});return d.reduce(l)}return gm=f,gm}var N_=yn,mm=Zg.EventEmitter,WU=Lo;WU(yn,mm),yn.Readable=R_(),yn.Writable=S_(),yn.Duplex=Oo(),yn.Transform=M_(),yn.PassThrough=$U(),yn.finished=um(),yn.pipeline=qU(),yn.Stream=yn;function yn(){mm.call(this)}yn.prototype.pipe=function(e,t){var n=this;function r(c){e.writable&&e.write(c)===!1&&n.pause&&n.pause()}n.on("data",r);function i(){n.readable&&n.resume&&n.resume()}e.on("drain",i),!e._isStdio&&(!t||t.end!==!1)&&(n.on("end",o),n.on("close",s));var a=!1;function o(){a||(a=!0,e.end())}function s(){a||(a=!0,typeof e.destroy=="function"&&e.destroy())}function u(c){if(l(),mm.listenerCount(this,"error")===0)throw c}n.on("error",u),e.on("error",u);function l(){n.removeListener("data",r),e.removeListener("drain",i),n.removeListener("end",o),n.removeListener("close",s),n.removeListener("error",u),e.removeListener("error",u),n.removeListener("end",l),n.removeListener("close",l),e.removeListener("close",l)}return n.on("end",l),n.on("close",l),e.on("close",l),e.emit("pipe",n),e};function au(e){return e.replace(/%([0-9A-Fa-f]{2})/g,(t,n)=>String.fromCharCode(parseInt(n,16)))}function O_(e,t){return String(t).replace(e,n=>`%${n.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function ou(e){return O_(/[\n;\r\t=%&,\x00-\x1f\x7f-\xff]/g,e)}function xr(e){return O_(/[\n\r\t%\x00-\x1f\x7f-\xff]/g,e)}function z_(e){if(!(e&&e.length)||e===".")return{};const t={};return e.replace(/\r?\n$/,"").split(";").forEach(n=>{const r=n.split("=",2);if(!(r[1]&&r[1].length))return;r[0]=r[0].trim();let i=t[r[0].trim()];i||(i=[],t[r[0]]=i),i.push(...r[1].split(",").map(a=>a.trim()).map(au))}),t}function U_(e){const t=e.split(" ").map(r=>r==="."||r===""?null:r);return{seq_id:t[0]&&au(t[0]),source:t[1]&&au(t[1]),type:t[2]&&au(t[2]),start:t[3]===null?null:parseInt(t[3],10),end:t[4]===null?null:parseInt(t[4],10),score:t[5]===null?null:parseFloat(t[5]),strand:t[6],phase:t[7],attributes:t[8]===null?null:z_(t[8])}}function G_(e){const t=/^\s*##\s*(\S+)\s*(.*)/.exec(e);if(!t)return null;const[,n]=t;let[,,r]=t;const i={directive:n};if(r.length&&(r=r.replace(/\r?\n$/,""),i.value=r),n==="sequence-region"){const a=r.split(/\s+/,3);return{...i,seq_id:a[0],start:a[1]&&a[1].replace(/\D/g,""),end:a[2]&&a[2].replace(/\D/g,"")}}else if(n==="genome-build"){const[a,o]=r.split(/\s+/,2);return{...i,source:a,buildName:o}}return i}function H_(e){const t=[];return Object.entries(e).forEach(([n,r])=>{if(!r)return;let i;r.hasOwnProperty("toString")?i=ou(r.toString()):Array.isArray(r)?i=r.map(ou).join(","):i=ou(r),t.push(`${ou(n)}=${i}`)}),t.length?t.join(";"):"."}function ZU(e,t){const n=e.attributes===null||e.attributes===void 0?".":H_(e.attributes),i=`${[e.seq_id===null?".":xr(e.seq_id),e.source===null?".":xr(e.source),e.type===null?".":xr(e.type),e.start===null?".":xr(e.start),e.end===null?".":xr(e.end),e.score===null?".":xr(e.score),e.strand===null?".":xr(e.strand),e.phase===null?".":xr(e.phase),n].join(" ")}
637
- `;return t[i]?"":(t[i]=!0,i)}function wh(e,t){if(Array.isArray(e))return e.map(r=>wh(r,t)).join("");const n=[ZU(e,t)];return YU(e)&&n.push(...e.child_features.map(r=>wh(r,t)),...e.derived_features.map(r=>wh(r,t))),n.join("")}function V_(e){return wh(e,{})}function j_(e){let t=`##${e.directive}`;return e.value&&(t+=` ${e.value}`),t+=`
638
- `,t}function $_(e){return`# ${e.comment}
639
- `}function bm(e){return`>${e.id}${e.description?` ${e.description}`:""}
647
+ )`},Symbol.toStringTag,{value:"Module"}))).map(([e,t])=>[e,t_.parse(t.trim())]));function Qg(e){const t=["uint","int","float","long"];return{...e,fields:e.fields.map(n=>({...n,isArray:n.size&&n.type!=="char",arrayIsNumeric:n.size&&t.includes(n.type),isNumeric:!n.size&&t.includes(n.type)}))}}const xU={".":0,"-":-1,"+":1};function AU(e){var t;return e.length>=12&&!Number.isNaN(parseInt(e[9],10))&&((t=e[10])===null||t===void 0?void 0:t.split(",").filter(n=>!!n).length)===parseInt(e[9],10)}class EU{constructor(t={}){if(t.autoSql)this.autoSql=Qg(vU.parse(t.autoSql));else if(t.type){if(!Yg[t.type])throw new Error("Type not found");this.autoSql=Qg(Yg[t.type])}else this.autoSql=Qg(Yg.defaultBedSchema),this.attemptDefaultBed=!0}parseLine(t,n={}){const{autoSql:r}=this,{uniqueId:i}=n,o=Array.isArray(t)?t:t.split(" ");let a={};if(!this.attemptDefaultBed||this.attemptDefaultBed&&AU(o))for(let s=0;s<r.fields.length;s++){const u=r.fields[s];let l=o[s];const{isNumeric:c,isArray:f,arrayIsNumeric:h,name:d}=u;if(l==null)break;if(l!=="."){if(c){const p=Number(l);l=Number.isNaN(p)?l:p}else f&&(l=l.split(","),l[l.length-1]===""&&l.pop(),h&&(l=l.map(p=>Number(p))));a[d]=l}}else{const s=["chrom","chromStart","chromEnd","name"];a=Object.fromEntries(o.map((u,l)=>[s[l]||"field"+l,u])),a.chromStart=+a.chromStart,a.chromEnd=+a.chromEnd,Number.isNaN(Number.parseFloat(a.field4))||(a.score=+a.field4,delete a.field4),(a.field5==="+"||a.field5==="-")&&(a.strand=a.field5,delete a.field5)}return i&&(a.uniqueId=i),a.strand=xU[a.strand]||0,a.chrom=decodeURIComponent(a.chrom),a}}const _U=Object.freeze(Object.defineProperty({__proto__:null,default:EU},Symbol.toStringTag,{value:"Module"}));let n_=class{constructor(t,n){this.blockPosition=t,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(t){return this.blockPosition-t.blockPosition||this.dataPosition-t.dataPosition}static min(...t){let n,r=0;for(;!n;r+=1)n=t[r];for(;r<t.length;r+=1)n.compareTo(t[r])>0&&(n=t[r]);return n}};function Na(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new n_(e[t+7]*1099511627776+e[t+6]*4294967296+e[t+5]*16777216+e[t+4]*65536+e[t+3]*256+e[t+2],e[t+1]<<8|e[t])}let r_=class{constructor(t,n,r,i){this.minv=t,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(t){return this.minv.compareTo(t.minv)||this.maxv.compareTo(t.maxv)||this.bin-t.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+65536-this.minv.blockPosition}};function SU(e){return new Promise(t=>setTimeout(t,e))}function CU(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}function kU(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new Error("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}function TU(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function IU(e={}){return"aborted"in e?{signal:e}:e}function i_(e,t){const n=[];let r;if(e.length===0)return e;e.sort((i,o)=>{const a=i.minv.blockPosition-o.minv.blockPosition;return a===0?i.minv.dataPosition-o.minv.dataPosition:a});for(const i of e)(!t||i.maxv.compareTo(t)>0)&&(r===void 0?(n.push(i),r=i):TU(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i));return n}function o_(e,t){return{lineCount:CU(Zf.fromBytesLE(Array.prototype.slice.call(e,t,t+8),!0))}}function wh(e,t){return e?e.compareTo(t)>0?t:e:t}function BU(e,t=n=>n){let n=0,r=0;const i=[],o={};for(let a=0;a<e.length;a+=1)if(!e[a]){if(r<a){let s=e.toString("utf8",r,a);s=t(s),i[n]=s,o[s]=n}r=a+1,n+=1}return{refNameToId:o,refIdToName:i}}let a_=class{constructor({filehandle:t,renameRefSeq:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}};const DU=21578050;function RU(e,t){return e-e%t}function FU(e,t){return e-e%t+t}function MU(e,t){return t-=1,[[0,0],[1+(e>>26),1+(t>>26)],[9+(e>>23),9+(t>>23)],[73+(e>>20),73+(t>>20)],[585+(e>>17),585+(t>>17)],[4681+(e>>14),4681+(t>>14)]]}class Oa extends a_{async lineCount(t,n){var r,i;return((i=(r=(await this.parse(n)).indices[t])===null||r===void 0?void 0:r.stats)===null||i===void 0?void 0:i.lineCount)||0}async _parse(t){const n=await this.filehandle.readFile(t);if(n.readUInt32LE(0)!==DU)throw new Error("Not a BAI file");const r=n.readInt32LE(4),o=((1<<(5+1)*3)-1)/7;let a=8,s;const u=new Array(r);for(let l=0;l<r;l++){const c=n.readInt32LE(a);let f;a+=4;const h={};for(let m=0;m<c;m+=1){const y=n.readUInt32LE(a);if(a+=4,y===o+1)a+=4,f=o_(n,a+16),a+=32;else{if(y>o+1)throw new Error("bai index contains too many bins, please use CSI");{const w=n.readInt32LE(a);a+=4;const A=new Array(w);for(let S=0;S<w;S++){const _=Na(n,a);a+=8;const k=Na(n,a);a+=8,s=wh(s,_),A[S]=new r_(_,k,y)}h[y]=A}}}const d=n.readInt32LE(a);a+=4;const p=new Array(d);for(let m=0;m<d;m++){const y=Na(n,a);a+=8,s=wh(s,y),p[m]=y}u[l]={binIndex:h,linearIndex:p,stats:f}}return{bai:!0,firstDataLine:s,maxBlockSize:65536,indices:u,refCount:r}}async indexCov(t,n,r,i={}){const a=n!==void 0,u=(await this.parse(i)).indices[t];if(!u)return[];const{linearIndex:l=[],stats:c}=u;if(l.length===0)return[];const f=r===void 0?(l.length-1)*16384:FU(r,16384),h=n===void 0?0:RU(n,16384),d=a?new Array((f-h)/16384):new Array(l.length-1),p=l[l.length-1].blockPosition;if(f>(l.length-1)*16384)throw new Error("query outside of range of linear index");let m=l[h/16384].blockPosition;for(let y=h/16384,w=0;y<f/16384;y++,w++)d[w]={score:l[y+1].blockPosition-m,start:y*16384,end:y*16384+16384},m=l[y+1].blockPosition;return d.map(y=>({...y,score:y.score*((c==null?void 0:c.lineCount)||0)/p}))}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const o=await this.parse(i);if(!o)return[];const a=o.indices[t];if(!a)return[];const s=MU(n,r),u=[];for(const[d,p]of s)for(let m=d;m<=p;m++)if(a.binIndex[m]){const y=a.binIndex[m];for(const w of y)u.push(w)}const l=a.linearIndex.length;let c;const f=Math.min(n>>14,l-1),h=Math.min(r>>14,l-1);for(let d=f;d<=h;++d){const p=a.linearIndex[d];p&&(!c||p.compareTo(c)<0)&&(c=p)}return i_(u,c)}async parse(t={}){return this.setupP||(this.setupP=this._parse(t).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}}var xi=be.Buffer,Xg=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];typeof Int32Array<"u"&&(Xg=new Int32Array(Xg));function s_(e){if(xi.isBuffer(e))return e;var t=typeof xi.alloc=="function"&&typeof xi.from=="function";if(typeof e=="number")return t?xi.alloc(e):new xi(e);if(typeof e=="string")return t?xi.from(e):new xi(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function PU(e){var t=s_(4);return t.writeInt32BE(e,0),t}function Kg(e,t){e=s_(e),xi.isBuffer(t)&&(t=t.readUInt32BE(0));for(var n=~~t^-1,r=0;r<e.length;r++)n=Xg[(n^e[r])&255]^n>>>8;return n^-1}function Jg(){return PU(Kg.apply(null,arguments))}Jg.signed=function(){return Kg.apply(null,arguments)},Jg.unsigned=function(){return Kg.apply(null,arguments)>>>0};var LU=Jg;const NU=Sl(LU),OU=21582659,zU=38359875;function UU(e,t){return e*2**t}function l_(e,t){return Math.floor(e/2**t)}let vh=class extends a_{constructor(){super(...arguments),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n){var r,i;return((i=(r=(await this.parse(n)).indices[t])===null||r===void 0?void 0:r.stats)===null||i===void 0?void 0:i.lineCount)||0}async indexCov(){return[]}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",o={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!o)throw new Error(`invalid Tabix preset format flags ${r}`);const a={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},s=t.readInt32LE(n+16),u=s?String.fromCharCode(s):"",l=t.readInt32LE(n+20),c=t.readInt32LE(n+24);return{columnNumbers:a,coordinateType:i,metaValue:s,metaChar:u,skipLines:l,format:o,formatFlags:r,...BU(t.subarray(n+28,n+28+c),this.renameRefSeq)}}async _parse(t){const n=await this.filehandle.readFile(t),r=await di(n);let i;if(r.readUInt32LE(0)===OU)i=1;else if(r.readUInt32LE(0)===zU)i=2;else throw new Error("Not a CSI file");this.minShift=r.readInt32LE(4),this.depth=r.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const o=r.readInt32LE(12),a=o>=30?this.parseAuxData(r,16):void 0,s=r.readInt32LE(16+o);let u=16+o+4,l;const c=new Array(s);for(let f=0;f<s;f++){const h=r.readInt32LE(u);u+=4;const d={};let p;for(let m=0;m<h;m++){const y=r.readUInt32LE(u);if(u+=4,y>this.maxBinNumber)p=o_(r,u+28),u+=28+16;else{l=wh(l,Na(r,u)),u+=8;const w=r.readInt32LE(u);u+=4;const A=new Array(w);for(let S=0;S<w;S+=1){const _=Na(r,u);u+=8;const k=Na(r,u);u+=8,l=wh(l,_),A[S]=new r_(_,k,y)}d[y]=A}}c[f]={binIndex:d,stats:p}}return{csiVersion:i,firstDataLine:l,indices:c,refCount:s,csi:!0,maxBlockSize:65536,...a}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const o=await this.parse(i),a=o==null?void 0:o.indices[t];if(!a)return[];const s=this.reg2bins(n,r);if(s.length===0)return[];const u=[];for(const[l,c]of s)for(let f=l;f<=c;f++)if(a.binIndex[f]){const h=a.binIndex[f];for(const d of h)u.push(d)}return i_(u,new n_(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,o=this.minShift+this.depth*3;const a=[];for(;r<=this.depth;o-=3,i+=UU(1,r*3),r+=1){const s=i+l_(t,o),u=i+l_(n,o);if(u-s+a.length>this.maxBinNumber)throw new Error(`query ${t}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);a.push([s,u])}return a}async parse(t={}){return this.setupP||(this.setupP=this._parse(t).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}};const bn={BAM_FPAIRED:1,BAM_FPROPER_PAIR:2,BAM_FUNMAP:4,BAM_FMUNMAP:8,BAM_FREVERSE:16,BAM_FMREVERSE:32,BAM_FREAD1:64,BAM_FREAD2:128,BAM_FSECONDARY:256,BAM_FQCFAIL:512,BAM_FDUP:1024,BAM_FSUPPLEMENTARY:2048},u_="=ACMGRSVTWYHKDBN".split(""),fu="MIDNSHP=X???????".split("");class c_{constructor(t){this.data={},this._tagList=[],this._allTagsParsed=!1;const{bytes:n,fileOffset:r}=t,{byteArray:i,start:o}=n;this.data={},this.bytes=n,this._id=r,this._refID=i.readInt32LE(o+4),this.data.start=i.readInt32LE(o+8),this.flags=(i.readInt32LE(o+16)&4294901760)>>16}get(t){return this[t]?this.data[t]?this.data[t]:(this.data[t]=this[t](),this.data[t]):this._get(t.toLowerCase())}end(){return this.get("start")+this.get("length_on_ref")}seq_id(){return this._refID}_get(t){return t in this.data?this.data[t]:(this.data[t]=this._parseTag(t),this.data[t])}_tags(){this._parseAllTags();let t=["seq"];this.isSegmentUnmapped()||t.push("start","end","strand","score","qual","MQ","CIGAR","length_on_ref","template_length"),this.isPaired()&&t.push("next_segment_position","pair_orientation"),t=t.concat(this._tagList||[]);for(const r of Object.keys(this.data))r[0]!=="_"&&r!=="next_seq_id"&&t.push(r);const n={};return t.filter(r=>{if(r in this.data&&this.data[r]===void 0||r==="CG"||r==="cg")return!1;const i=r.toLowerCase(),o=n[i];return n[i]=!0,!o})}parent(){}children(){return this.get("subfeatures")}id(){return this._id}mq(){const t=(this.get("_bin_mq_nl")&65280)>>8;return t===255?void 0:t}score(){return this.get("mq")}qual(){var t;return(t=this.qualRaw())===null||t===void 0?void 0:t.join(" ")}qualRaw(){if(this.isSegmentUnmapped())return;const{start:t,byteArray:n}=this.bytes,r=t+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes"),i=this.get("seq_length");return n.subarray(r,r+i)}strand(){return this.isReverseComplemented()?-1:1}multi_segment_next_segment_strand(){if(!this.isMateUnmapped())return this.isMateReverseComplemented()?-1:1}name(){return this.get("_read_name")}_read_name(){const t=this.get("_l_read_name"),{byteArray:n,start:r}=this.bytes;return n.toString("ascii",r+36,r+36+t-1)}_parseTag(t){if(this._allTagsParsed)return;const{byteArray:n,start:r}=this.bytes;let i=this._tagOffset||r+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes")+this.get("seq_length");const o=this.bytes.end;let a;for(;i<o&&a!==t;){const s=String.fromCharCode(n[i],n[i+1]);a=s.toLowerCase();const u=String.fromCharCode(n[i+2]);i+=3;let l;switch(u){case"A":{l=String.fromCharCode(n[i]),i+=1;break}case"i":{l=n.readInt32LE(i),i+=4;break}case"I":{l=n.readUInt32LE(i),i+=4;break}case"c":{l=n.readInt8(i),i+=1;break}case"C":{l=n.readUInt8(i),i+=1;break}case"s":{l=n.readInt16LE(i),i+=2;break}case"S":{l=n.readUInt16LE(i),i+=2;break}case"f":{l=n.readFloatLE(i),i+=4;break}case"Z":case"H":{for(l="";i<=o;){const c=n[i++];if(c===0)break;l+=String.fromCharCode(c)}break}case"B":{l="";const c=n[i++],f=String.fromCharCode(c),h=n.readInt32LE(i);if(i+=4,f==="i")if(s==="CG")for(let d=0;d<h;d++){const p=n.readInt32LE(i),m=p>>4,y=fu[p&15];l+=m+y,i+=4}else for(let d=0;d<h;d++)l+=n.readInt32LE(i),d+1<h&&(l+=","),i+=4;if(f==="I")if(s==="CG")for(let d=0;d<h;d++){const p=n.readUInt32LE(i),m=p>>4,y=fu[p&15];l+=m+y,i+=4}else for(let d=0;d<h;d++)l+=n.readUInt32LE(i),d+1<h&&(l+=","),i+=4;if(f==="s")for(let d=0;d<h;d++)l+=n.readInt16LE(i),d+1<h&&(l+=","),i+=2;if(f==="S")for(let d=0;d<h;d++)l+=n.readUInt16LE(i),d+1<h&&(l+=","),i+=2;if(f==="c")for(let d=0;d<h;d++)l+=n.readInt8(i),d+1<h&&(l+=","),i+=1;if(f==="C")for(let d=0;d<h;d++)l+=n.readUInt8(i),d+1<h&&(l+=","),i+=1;if(f==="f")for(let d=0;d<h;d++)l+=n.readFloatLE(i),d+1<h&&(l+=","),i+=4;break}default:console.warn(`Unknown BAM tag type '${u}', tags may be incomplete`),l=void 0,i=o}if(this._tagOffset=i,this._tagList.push(s),a===t)return l;this.data[a]=l}this._allTagsParsed=!0}_parseAllTags(){this._parseTag("")}_parseCigar(t){return t.match(/\d+\D/g).map(n=>[n.match(/\D/)[0].toUpperCase(),Number.parseInt(n,10)])}isPaired(){return!!(this.flags&bn.BAM_FPAIRED)}isProperlyPaired(){return!!(this.flags&bn.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return!!(this.flags&bn.BAM_FUNMAP)}isMateUnmapped(){return!!(this.flags&bn.BAM_FMUNMAP)}isReverseComplemented(){return!!(this.flags&bn.BAM_FREVERSE)}isMateReverseComplemented(){return!!(this.flags&bn.BAM_FMREVERSE)}isRead1(){return!!(this.flags&bn.BAM_FREAD1)}isRead2(){return!!(this.flags&bn.BAM_FREAD2)}isSecondary(){return!!(this.flags&bn.BAM_FSECONDARY)}isFailedQc(){return!!(this.flags&bn.BAM_FQCFAIL)}isDuplicate(){return!!(this.flags&bn.BAM_FDUP)}isSupplementary(){return!!(this.flags&bn.BAM_FSUPPLEMENTARY)}cigar(){if(this.isSegmentUnmapped())return;const{byteArray:t,start:n}=this.bytes,r=this.get("_n_cigar_op");let i=n+36+this.get("_l_read_name");const o=this.get("seq_length");let a="",s=0,u=t.readInt32LE(i),l=u>>4,c=fu[u&15];if(c==="S"&&l===o)return i+=4,u=t.readInt32LE(i),l=u>>4,c=fu[u&15],c!=="N"&&console.warn("CG tag with no N tag"),this.data.length_on_ref=l,this.get("CG");for(let f=0;f<r;++f)u=t.readInt32LE(i),l=u>>4,c=fu[u&15],a+=l+c,c!=="H"&&c!=="S"&&c!=="I"&&(s+=l),i+=4;return this.data.length_on_ref=s,a}_flags(){}length_on_ref(){return this.data.length_on_ref?this.data.length_on_ref:(this.get("cigar"),this.data.length_on_ref)}_n_cigar_op(){return this.get("_flag_nc")&65535}_l_read_name(){return this.get("_bin_mq_nl")&255}_seq_bytes(){return this.get("seq_length")+1>>1}getReadBases(){return this.seq()}seq(){const{byteArray:t,start:n}=this.bytes,r=n+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4,i=this.get("_seq_bytes"),o=this.get("seq_length");let a="",s=0;for(let u=0;u<i;++u){const l=t[r+u];a+=u_[(l&240)>>4],s++,s<o&&(a+=u_[l&15],s++)}return a}getPairOrientation(){if(!this.isSegmentUnmapped()&&!this.isMateUnmapped()&&this._refID===this._next_refid()){const t=this.isReverseComplemented()?"R":"F",n=this.isMateReverseComplemented()?"R":"F";let r=" ",i=" ";this.isRead1()?(r="1",i="2"):this.isRead2()&&(r="2",i="1");const o=[];return this.template_length()>0?(o[0]=t,o[1]=r,o[2]=n,o[3]=i):(o[2]=t,o[3]=r,o[0]=n,o[1]=i),o.join("")}return""}_bin_mq_nl(){return this.bytes.byteArray.readInt32LE(this.bytes.start+12)}_flag_nc(){return this.bytes.byteArray.readInt32LE(this.bytes.start+16)}seq_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+20)}_next_refid(){return this.bytes.byteArray.readInt32LE(this.bytes.start+24)}_next_pos(){return this.bytes.byteArray.readInt32LE(this.bytes.start+28)}template_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+32)}toJSON(){const t={};for(const n of Object.keys(this))n.charAt(0)==="_"||n==="bytes"||(t[n]=this[n]);return t}}function f_(e){const t=e.split(/\r?\n/),n=[];for(const r of t){const[i,...o]=r.split(/\t/);i&&n.push({tag:i.slice(1),data:o.map(a=>{const[s,u]=a.split(":",2);return{tag:s,value:u}})})}return n}const h_=21840194,d_=65536;async function GU(e){let t=[];for await(const n of e)t=t.concat(n);return t}class HU{read(){throw new Error("never called")}stat(){throw new Error("never called")}readFile(){throw new Error("never called")}close(){throw new Error("never called")}}class p_{constructor({bamFilehandle:t,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:o,baiUrl:a,csiPath:s,csiFilehandle:u,csiUrl:l,htsget:c,yieldThreadTime:f=100,renameRefSeqs:h=d=>d}){if(this.htsget=!1,this.featureCache=new nh({cache:new rh({maxSize:50}),fill:async(d,p)=>{const{chunk:m,opts:y}=d,{data:w,cpositions:A,dpositions:S}=await this._readChunk({chunk:m,opts:{...y,signal:p}});return this.readBamFeatures(w,A,S,m)}}),this.renameRefSeq=h,t)this.bam=t;else if(n)this.bam=new dt(n);else if(r)this.bam=new no(r);else if(c)this.htsget=!0,this.bam=new HU;else throw new Error("unable to initialize bam");if(u)this.index=new vh({filehandle:u});else if(s)this.index=new vh({filehandle:new dt(s)});else if(l)this.index=new vh({filehandle:new no(l)});else if(o)this.index=new Oa({filehandle:o});else if(i)this.index=new Oa({filehandle:new dt(i)});else if(a)this.index=new Oa({filehandle:new no(a)});else if(n)this.index=new Oa({filehandle:new dt(`${n}.bai`)});else if(r)this.index=new Oa({filehandle:new no(`${r}.bai`)});else if(c)this.htsget=!0;else throw new Error("unable to infer index format");this.yieldThreadTime=f}async getHeaderPre(t){const n=IU(t);if(!this.index)return;const r=await this.index.parse(n),i=r.firstDataLine?r.firstDataLine.blockPosition+65535:void 0;let o;if(i){const c=i+d_,f=await this.bam.read(be.Buffer.alloc(c),0,c,0,n);if(!f.bytesRead)throw new Error("Error reading header");o=f.buffer.subarray(0,Math.min(f.bytesRead,i))}else o=await this.bam.readFile(n);const a=await di(o);if(a.readInt32LE(0)!==h_)throw new Error("Not a BAM file");const s=a.readInt32LE(4);this.header=a.toString("utf8",8,8+s);const{chrToIndex:u,indexToChr:l}=await this._readRefSeqs(s+8,65535,n);return this.chrToIndex=u,this.indexToChr=l,f_(this.header)}getHeader(t){return this.headerP||(this.headerP=this.getHeaderPre(t).catch(n=>{throw this.headerP=void 0,n})),this.headerP}async getHeaderText(t={}){return await this.getHeader(t),this.header}async _readRefSeqs(t,n,r){if(t>n)return this._readRefSeqs(t,n*2,r);const i=n+d_,{bytesRead:o,buffer:a}=await this.bam.read(be.Buffer.alloc(i),0,n,0,r);if(!o)throw new Error("Error reading refseqs from header");const s=await di(a.subarray(0,Math.min(o,n))),u=s.readInt32LE(t);let l=t+4;const c={},f=[];for(let h=0;h<u;h+=1){const d=s.readInt32LE(l),p=this.renameRefSeq(s.toString("utf8",l+4,l+4+d-1)),m=s.readInt32LE(l+d+4);if(c[p]=h,f.push({refName:p,length:m}),l=l+8+d,l>s.length)return console.warn(`BAM header is very big. Re-fetching ${n} bytes.`),this._readRefSeqs(t,n*2,r)}return{chrToIndex:c,indexToChr:f}}async getRecordsForRange(t,n,r,i){return GU(this.streamRecordsForRange(t,n,r,i))}async*streamRecordsForRange(t,n,r,i){var o;await this.getHeader(i);const a=(o=this.chrToIndex)===null||o===void 0?void 0:o[t];if(a===void 0||!this.index)yield[];else{const s=await this.index.blocksForRange(a,n-1,r,i);yield*this._fetchChunkFeatures(s,a,n,r,i)}}async*_fetchChunkFeatures(t,n,r,i,o={}){const{viewAsPairs:a}=o,s=[];let u=!1;for(const l of t){const c=await this.featureCache.get(l.toString(),{chunk:l,opts:o},o.signal),f=[];for(const h of c)if(h.seq_id()===n)if(h.get("start")>=i){u=!0;break}else h.get("end")>=r&&f.push(h);if(s.push(f),yield f,u)break}kU(o.signal),a&&(yield this.fetchPairs(n,s,o))}async fetchPairs(t,n,r){const{pairAcrossChr:i,maxInsertSize:o=2e5}=r,a={},s={};n.map(h=>{const d={};for(const p of h){const m=p.name(),y=p.id();d[m]||(d[m]=0),d[m]++,s[y]=1}for(const[p,m]of Object.entries(d))m===1&&(a[p]=!0)});const u=[];n.map(h=>{for(const d of h){const p=d.name(),m=d.get("start"),y=d._next_pos(),w=d._next_refid();this.index&&a[p]&&(i||w===t&&Math.abs(m-y)<o)&&u.push(this.index.blocksForRange(w,y,y+1,r))}});const l=new Map,c=await Promise.all(u);for(const h of c.flat())l.has(h.toString())||l.set(h.toString(),h);return(await Promise.all([...l.values()].map(async h=>{const{data:d,cpositions:p,dpositions:m,chunk:y}=await this._readChunk({chunk:h,opts:r}),w=[];for(const A of await this.readBamFeatures(d,p,m,y))a[A.get("name")]&&!s[A.id()]&&w.push(A);return w}))).flat()}async _readRegion(t,n,r={}){const{bytesRead:i,buffer:o}=await this.bam.read(be.Buffer.alloc(n),0,n,t,r);return o.subarray(0,Math.min(i,n))}async _readChunk({chunk:t,opts:n}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n),{buffer:i,cpositions:o,dpositions:a}=await MA(r,t);return{data:i,cpositions:o,dpositions:a,chunk:t}}async readBamFeatures(t,n,r,i){let o=0;const a=[];let s=0,u=+Date.now();for(;o+4<t.length;){const l=t.readInt32LE(o),c=o+4+l-1;if(r){for(;o+i.minv.dataPosition>=r[s++];);s--}if(c<t.length){const f=new c_({bytes:{byteArray:t,start:o,end:c},fileOffset:n.length>0?n[s]*256+(o-r[s])+i.minv.dataPosition+1:NU.signed(t.slice(o,c))});a.push(f),this.yieldThreadTime&&+Date.now()-u>this.yieldThreadTime&&(await SU(1),u=+Date.now())}o=c+1}return a}async hasRefSeq(t){var n,r;const i=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return i===void 0?!1:(r=this.index)===null||r===void 0?void 0:r.hasRefSeq(i)}async lineCount(t){var n;const r=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return r===void 0||!this.index?0:this.index.lineCount(r)}async indexCov(t,n,r){var i;if(!this.index)return[];await this.index.parse();const o=(i=this.chrToIndex)===null||i===void 0?void 0:i[t];return o===void 0?[]:this.index.indexCov(o,n,r)}async blocksForRange(t,n,r,i){var o;if(!this.index)return[];await this.index.parse();const a=(o=this.chrToIndex)===null||o===void 0?void 0:o[t];return a===void 0?[]:this.index.blocksForRange(a,n,r,i)}}async function g_(e,t){const n=await Promise.all(e.map(async r=>{const{url:i,headers:o}=r;if(i.startsWith("data:"))return be.Buffer.from(i.split(",")[1],"base64");{const{referer:a,...s}=o,u=await fetch(i,{...t,headers:{...t==null?void 0:t.headers,...s}});if(!u.ok)throw new Error(`HTTP ${u.status} fetching ${i}: ${await u.text()}`);return be.Buffer.from(await u.arrayBuffer())}}));return be.Buffer.concat(await Promise.all(n.map(r=>di(r))))}class VU extends p_{constructor(t){super({htsget:!0}),this.baseUrl=t.baseUrl,this.trackId=t.trackId}async*streamRecordsForRange(t,n,r,i){var o;const s=`${`${this.baseUrl}/${this.trackId}`}?referenceName=${t}&start=${n}&end=${r}&format=BAM`,u=(o=this.chrToIndex)===null||o===void 0?void 0:o[t];if(u===void 0)yield[];else{const l=await fetch(s,{...i});if(!l.ok)throw new Error(`HTTP ${l.status} fetching ${s}: ${await l.text()}`);const c=await l.json(),f=await g_(c.htsget.urls.slice(1),i);yield*this._fetchChunkFeatures([{buffer:f,_fetchedSize:void 0,bin:0,compareTo(){return 0},toUniqueString(){return`${t}_${n}_${r}`},fetchedSize(){return 0},minv:{dataPosition:0,blockPosition:0,compareTo:()=>0},maxv:{dataPosition:Number.MAX_SAFE_INTEGER,blockPosition:0,compareTo:()=>0},toString(){return`${t}_${n}_${r}`}}],u,n,r,i)}}async _readChunk({chunk:t}){if(!t.buffer)throw new Error("expected chunk.buffer in htsget");return{data:t.buffer,cpositions:[],dpositions:[],chunk:t}}async getHeader(t={}){const n=`${this.baseUrl}/${this.trackId}?referenceName=na&class=header`,r=await fetch(n,t);if(!r.ok)throw new Error(`HTTP ${r.status} fetching ${n}: ${await r.text()}`);const i=await r.json(),o=await g_(i.htsget.urls,t);if(o.readInt32LE(0)!==h_)throw new Error("Not a BAM file");const a=o.readInt32LE(4),s=o.toString("utf8",8,8+a),u=f_(s),l=[],c={},f=u.filter(h=>h.tag==="SQ");for(const[h,d]of f.entries()){let p="",m=0;for(const y of d.data)y.tag==="SN"?p=y.value:y.tag==="LN"&&(m=+y.value);c[p]=h,l[h]={refName:p,length:m}}return this.chrToIndex=c,this.indexToChr=l,u}}const jU=Object.freeze(Object.defineProperty({__proto__:null,BAI:Oa,BamFile:p_,BamRecord:c_,CSI:vh,HtsgetFile:VU},Symbol.toStringTag,{value:"Module"}));function m_(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}class $U extends Error{}function za(e){if(e&&e.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const t=new $U("aborted");throw t.code="ERR_ABORTED",t}}}function qU(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function b_(e,t){const n=[];let r=null;return e.length===0?e:(e.sort(function(i,o){const a=i.minv.blockPosition-o.minv.blockPosition;return a!==0?a:i.minv.dataPosition-o.minv.dataPosition}),e.forEach(i=>{(!t||i.maxv.compareTo(t)>0)&&(r===null?(n.push(i),r=i):qU(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}class em{constructor(t,n){this.blockPosition=t,this.dataPosition=n}toString(){return`${this.blockPosition}:${this.dataPosition}`}compareTo(t){return this.blockPosition-t.blockPosition||this.dataPosition-t.dataPosition}static min(...t){let n,r=0;for(;!n;r+=1)n=t[r];for(;r<t.length;r+=1)n.compareTo(t[r])>0&&(n=t[r]);return n}}function Ua(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new em(e[t+7]*1099511627776+e[t+6]*4294967296+e[t+5]*16777216+e[t+4]*65536+e[t+3]*256+e[t+2],e[t+1]<<8|e[t])}class xh{constructor(t,n,r,i=void 0){this.minv=t,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`}toString(){return this.toUniqueString()}compareTo(t){return this.minv.compareTo(t.minv)||this.maxv.compareTo(t.maxv)||this.bin-t.bin}fetchedSize(){return this._fetchedSize!==void 0?this._fetchedSize:this.maxv.blockPosition+65536-this.minv.blockPosition}}class y_{constructor({filehandle:t,renameRefSeqs:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}async getMetadata(t={}){const{indices:n,...r}=await this.parse(t);return r}_findFirstData(t,n){return t?t.compareTo(n)>0?n:t:n}async parse(t={}){return this.parseP||(this.parseP=this._parse(t).catch(n=>{throw this.parseP=void 0,n})),this.parseP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}}const WU=21578324,w_=14;function ZU(e,t){return e+=1,t-=1,[[0,0],[1+(e>>26),1+(t>>26)],[9+(e>>23),9+(t>>23)],[73+(e>>20),73+(t>>20)],[585+(e>>17),585+(t>>17)],[4681+(e>>14),4681+(t>>14)]]}class Ah extends y_{async lineCount(t,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[t];if(!r.indices[i])return-1;const{stats:a}=r.indices[i];return a?a.lineCount:-1}async _parse(t={}){const n=await this.filehandle.readFile(t),r=await di(n);if(za(t.signal),r.readUInt32LE(0)!==WU)throw new Error("Not a TBI file");const i=r.readInt32LE(4),o=r.readInt32LE(8),a=o&65536?"zero-based-half-open":"1-based-closed",u={0:"generic",1:"SAM",2:"VCF"}[o&15];if(!u)throw new Error(`invalid Tabix preset format flags ${o}`);const l={ref:r.readInt32LE(12),start:r.readInt32LE(16),end:r.readInt32LE(20)},c=r.readInt32LE(24),f=5,h=((1<<(f+1)*3)-1)/7,d=2**(14+f*3),p=c?String.fromCharCode(c):null,m=r.readInt32LE(28),y=r.readInt32LE(32),{refNameToId:w,refIdToName:A}=this._parseNameBytes(r.slice(36,36+y));let S=36+y,_;return{indices:new Array(i).fill(0).map(()=>{const B=r.readInt32LE(S);S+=4;const I={};let D;for(let N=0;N<B;N+=1){const ne=r.readUInt32LE(S);if(S+=4,ne>h+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(ne===h+1){const ie=r.readInt32LE(S);S+=4,ie===2&&(D=this.parsePseudoBin(r,S)),S+=16*ie}else{const ie=r.readInt32LE(S);S+=4;const he=new Array(ie);for(let me=0;me<ie;me+=1){const Re=Ua(r,S),Ae=Ua(r,S+8);S+=16,_=this._findFirstData(_,Re),he[me]=new xh(Re,Ae,ne)}I[ne]=he}}const M=r.readInt32LE(S);S+=4;const G=new Array(M);for(let N=0;N<M;N+=1)G[N]=Ua(r,S),S+=8,_=this._findFirstData(_,G[N]);return{binIndex:I,linearIndex:G,stats:D}}),metaChar:p,maxBinNumber:h,maxRefLength:d,skipLines:m,firstDataLine:_,columnNumbers:l,coordinateType:a,format:u,refIdToName:A,refNameToId:w,maxBlockSize:65536}}parsePseudoBin(t,n){return{lineCount:m_(Zf.fromBytesLE(t.slice(n+16,n+24),!0))}}_parseNameBytes(t){let n=0,r=0;const i=[],o={};for(let a=0;a<t.length;a+=1)if(!t[a]){if(r<a){let s=t.toString("utf8",r,a);s=this.renameRefSeq(s),i[n]=s,o[s]=n}r=a+1,n+=1}return{refNameToId:o,refIdToName:i}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const o=await this.parse(i);if(!o)return[];const a=o.refNameToId[t],s=o.indices[a];if(!s)return[];(s.linearIndex.length?s.linearIndex[n>>w_>=s.linearIndex.length?s.linearIndex.length-1:n>>w_]:new em(0,0))||console.warn("querying outside of possible tabix range");const l=ZU(n,r),c=[];for(const[m,y]of l)for(let w=m;w<=y;w++)if(s.binIndex[w])for(const A of s.binIndex[w])c.push(new xh(A.minv,A.maxv,w));const f=s.linearIndex.length;let h=null;const d=Math.min(n>>14,f-1),p=Math.min(r>>14,f-1);for(let m=d;m<=p;++m){const y=s.linearIndex[m];y&&(!h||y.compareTo(h)<0)&&(h=y)}return b_(c,h)}}const YU=21582659,QU=38359875;function XU(e,t){return e*2**t}function v_(e,t){return Math.floor(e/2**t)}class tm extends y_{constructor(t){super(t),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[t];if(!r.indices[i])return-1;const{stats:a}=r.indices[i];return a?a.lineCount:-1}indexCov(){throw new Error("CSI indexes do not support indexcov")}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",o={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!o)throw new Error(`invalid Tabix preset format flags ${r}`);const a={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},s=t.readInt32LE(n+16),u=s?String.fromCharCode(s):null,l=t.readInt32LE(n+20),c=t.readInt32LE(n+24),{refIdToName:f,refNameToId:h}=this._parseNameBytes(t.slice(n+28,n+28+c));return{refIdToName:f,refNameToId:h,skipLines:l,metaChar:u,columnNumbers:a,format:o,coordinateType:i}}_parseNameBytes(t){let n=0,r=0;const i=[],o={};for(let a=0;a<t.length;a+=1)if(!t[a]){if(r<a){let s=t.toString("utf8",r,a);s=this.renameRefSeq(s),i[n]=s,o[s]=n}r=a+1,n+=1}return{refNameToId:o,refIdToName:i}}async _parse(t={}){const n=await di(await this.filehandle.readFile(t));let r;if(n.readUInt32LE(0)===YU)r=1;else if(n.readUInt32LE(0)===QU)r=2;else throw new Error("Not a CSI file");this.minShift=n.readInt32LE(4),this.depth=n.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const i=2**(this.minShift+this.depth*3),o=n.readInt32LE(12),a=o&&o>=30?this.parseAuxData(n,16):{refIdToName:[],refNameToId:{},metaChar:null,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},s=n.readInt32LE(16+o);let u,l=16+o+4;const c=new Array(s).fill(0).map(()=>{const f=n.readInt32LE(l);l+=4;const h={};let d;for(let p=0;p<f;p+=1){const m=n.readUInt32LE(l);if(m>this.maxBinNumber)d=this.parsePseudoBin(n,l+4),l+=4+8+4+16+16;else{const y=Ua(n,l+4);u=this._findFirstData(u,y);const w=n.readInt32LE(l+12);l+=16;const A=new Array(w);for(let S=0;S<w;S+=1){const _=Ua(n,l),k=Ua(n,l+8);l+=16,A[S]=new xh(_,k,m)}h[m]=A}}return{binIndex:h,stats:d}});return{...a,csi:!0,refCount:s,maxBlockSize:65536,firstDataLine:u,csiVersion:r,indices:c,depth:this.depth,maxBinNumber:this.maxBinNumber,maxRefLength:i}}parsePseudoBin(t,n){return{lineCount:m_(Zf.fromBytesLE(t.slice(n+28,n+36),!0))}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const o=await this.parse(i);if(!o)return[];const a=o.refNameToId[t],s=o.indices[a];if(!s)return[];const u=this.reg2bins(n,r),l=[];for(const[c,f]of u)for(let h=c;h<=f;h++)if(s.binIndex[h])for(const d of s.binIndex[h])l.push(new xh(d.minv,d.maxv,h));return b_(l,new em(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,o=this.minShift+this.depth*3;const a=[];for(;r<=this.depth;o-=3,i+=XU(1,r*3),r+=1){const s=i+v_(t,o),u=i+v_(n,o);if(u-s+a.length>this.maxBinNumber)throw new Error(`query ${t}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);a.push([s,u])}return a}}const nm=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function KU(e){return new Promise(t=>setTimeout(t,e))}class JU{constructor({path:t,filehandle:n,tbiPath:r,tbiFilehandle:i,csiPath:o,csiFilehandle:a,yieldTime:s=500,chunkSizeLimit:u=5e7,renameRefSeqs:l=f=>f,chunkCacheSize:c=5*2**20}){if(n)this.filehandle=n;else if(t)this.filehandle=new dt(t);else throw new TypeError("must provide either filehandle or path");if(i)this.index=new Ah({filehandle:i,renameRefSeqs:l});else if(a)this.index=new tm({filehandle:a,renameRefSeqs:l});else if(r)this.index=new Ah({filehandle:new dt(r),renameRefSeqs:l});else if(o)this.index=new tm({filehandle:new dt(o),renameRefSeqs:l});else if(t)this.index=new Ah({filehandle:new dt(`${t}.tbi`),renameRefSeqs:l});else throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, or csiPath");this.chunkSizeLimit=u,this.renameRefSeq=l,this.yieldTime=s,this.chunkCache=new nh({cache:new rh({maxSize:Math.floor(c/65536)}),fill:(f,h)=>this.readChunk(f,{signal:h})})}async getLines(t,n,r,i){var o;let a,s={},u;if(i===void 0)throw new TypeError("line callback must be provided");if(typeof i=="function"?u=i:(s=i,u=i.lineCallback,a=i.signal),t===void 0)throw new TypeError("must provide a reference sequence name");if(!u)throw new TypeError("line callback must be provided");const l=await this.index.getMetadata(s);za(a);const c=n??0,f=r??l.maxRefLength;if(!(c<=f))throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(c===f)return;const h=await this.index.blocksForRange(t,c,f,s);za(a);for(const p of h){const m=p.fetchedSize();if(m>this.chunkSizeLimit)throw new Error(`Too much data. Chunk size ${m.toLocaleString()} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit.toLocaleString()}.`)}let d=Date.now();for(const p of h){let m;const{buffer:y,cpositions:w,dpositions:A}=await this.chunkCache.get(p.toString(),p,a);za(a);let S=0,_=0;for(;S<y.length;){const k=y.indexOf(`
648
+ `,S);if(k===-1)break;const B=y.slice(S,k),I=(o=nm==null?void 0:nm.decode(B))!==null&&o!==void 0?o:B.toString();if(A){for(;S+p.minv.dataPosition>=A[_++];);_--}const{startCoordinate:D,overlaps:M}=this.checkLine(l,t,c,f,I);if(m!==void 0&&D!==void 0&&m>D)throw new Error(`Lines not sorted by start coordinate (${m} > ${D}), this file is not usable with Tabix.`);if(m=D,M)u(I.trim(),w[_]*256+(S-A[_])+p.minv.dataPosition+1);else if(D!==void 0&&D>=f)return;this.yieldTime&&d-Date.now()>this.yieldTime&&(d=Date.now(),za(a),await KU(1)),S=k+1}}}async getMetadata(t={}){return this.index.getMetadata(t)}async getHeaderBuffer(t={}){const{firstDataLine:n,metaChar:r,maxBlockSize:i}=await this.getMetadata(t);za(t.signal);const o=((n==null?void 0:n.blockPosition)||0)+i,a=await this._readRegion(0,o,t),s=await di(a);if(r){let u=-1;const l=`
649
+ `.charCodeAt(0),c=r.charCodeAt(0);for(let f=0;f<s.length&&!(f===u+1&&s[f]!==c);f+=1)s[f]===l&&(u=f);return s.slice(0,u+1)}return s}async getHeader(t={}){return(await this.getHeaderBuffer(t)).toString("utf8")}async getReferenceSequenceNames(t={}){return(await this.getMetadata(t)).refIdToName}checkLine(t,n,r,i,o){const{columnNumbers:a,metaChar:s,coordinateType:u,format:l}=t;if(s&&o.startsWith(s))return{overlaps:!1};let{ref:c,start:f,end:h}=a;c||(c=0),f||(f=0),h||(h=0),l==="VCF"&&(h=8);const d=Math.max(c,f,h);let p=1,m=0,y="",w=-1/0;for(let A=0;A<o.length+1;A+=1)if(o[A]===" "||A===o.length){if(p===c){if(this.renameRefSeq(o.slice(m,A))!==n)return{overlaps:!1}}else if(p===f){if(w=parseInt(o.slice(m,A),10),u==="1-based-closed"&&(w-=1),w>=i)return{startCoordinate:w,overlaps:!1};if((h===0||h===f)&&w+1<=r)return{startCoordinate:w,overlaps:!1}}else if(l==="VCF"&&p===4)y=o.slice(m,A);else if(p===h&&(l==="VCF"?this._getVcfEnd(w,y,o.slice(m,A)):parseInt(o.slice(m,A),10))<=r)return{overlaps:!1};if(m=A+1,p+=1,p>d)break}return{startCoordinate:w,overlaps:!0}}_getVcfEnd(t,n,r){let i=t+n.length;const o=r.includes("SVTYPE=TRA");if(r[0]!=="."&&!o){let a=";";for(let s=0;s<r.length;s+=1){if(a===";"&&r.slice(s,s+4)==="END="){let u=r.indexOf(";",s);u===-1&&(u=r.length),i=parseInt(r.slice(s+4,u),10);break}a=r[s]}}else if(o)return t+1;return i}async lineCount(t,n={}){return this.index.lineCount(t,n)}async _readRegion(t,n,r={}){const i=be.Buffer.alloc(n),{bytesRead:o,buffer:a}=await this.filehandle.read(i,0,n,t,r);return a.slice(0,o)}async readChunk(t,n={}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n);return MA(r,t)}}const eG=Object.freeze(Object.defineProperty({__proto__:null,CSI:tm,TBI:Ah,TabixIndexedFile:JU},Symbol.toStringTag,{value:"Module"}));var rm={exports:{}},Ga=typeof Reflect=="object"?Reflect:null,x_=Ga&&typeof Ga.apply=="function"?Ga.apply:function(t,n,r){return Function.prototype.apply.call(t,n,r)},Eh;Ga&&typeof Ga.ownKeys=="function"?Eh=Ga.ownKeys:Object.getOwnPropertySymbols?Eh=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Eh=function(t){return Object.getOwnPropertyNames(t)};function tG(e){console&&console.warn&&console.warn(e)}var A_=Number.isNaN||function(t){return t!==t};function Pe(){Pe.init.call(this)}rm.exports=Pe,rm.exports.once=oG,Pe.EventEmitter=Pe,Pe.prototype._events=void 0,Pe.prototype._eventsCount=0,Pe.prototype._maxListeners=void 0;var E_=10;function _h(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(Pe,"defaultMaxListeners",{enumerable:!0,get:function(){return E_},set:function(e){if(typeof e!="number"||e<0||A_(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");E_=e}}),Pe.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Pe.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||A_(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function __(e){return e._maxListeners===void 0?Pe.defaultMaxListeners:e._maxListeners}Pe.prototype.getMaxListeners=function(){return __(this)},Pe.prototype.emit=function(t){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=t==="error",o=this._events;if(o!==void 0)i=i&&o.error===void 0;else if(!i)return!1;if(i){var a;if(n.length>0&&(a=n[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var u=o[t];if(u===void 0)return!1;if(typeof u=="function")x_(u,this,n);else for(var l=u.length,c=I_(u,l),r=0;r<l;++r)x_(c[r],this,n);return!0};function S_(e,t,n,r){var i,o,a;if(_h(n),o=e._events,o===void 0?(o=e._events=Object.create(null),e._eventsCount=0):(o.newListener!==void 0&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),a=o[t]),a===void 0)a=o[t]=n,++e._eventsCount;else if(typeof a=="function"?a=o[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),i=__(e),i>0&&a.length>i&&!a.warned){a.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=a.length,tG(s)}return e}Pe.prototype.addListener=function(t,n){return S_(this,t,n,!1)},Pe.prototype.on=Pe.prototype.addListener,Pe.prototype.prependListener=function(t,n){return S_(this,t,n,!0)};function nG(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function C_(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=nG.bind(r);return i.listener=n,r.wrapFn=i,i}Pe.prototype.once=function(t,n){return _h(n),this.on(t,C_(this,t,n)),this},Pe.prototype.prependOnceListener=function(t,n){return _h(n),this.prependListener(t,C_(this,t,n)),this},Pe.prototype.removeListener=function(t,n){var r,i,o,a,s;if(_h(n),i=this._events,i===void 0)return this;if(r=i[t],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,r.listener||n));else if(typeof r!="function"){for(o=-1,a=r.length-1;a>=0;a--)if(r[a]===n||r[a].listener===n){s=r[a].listener,o=a;break}if(o<0)return this;o===0?r.shift():rG(r,o),r.length===1&&(i[t]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",t,s||n)}return this},Pe.prototype.off=Pe.prototype.removeListener,Pe.prototype.removeAllListeners=function(t){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[t]),this;if(arguments.length===0){var o=Object.keys(r),a;for(i=0;i<o.length;++i)a=o[i],a!=="removeListener"&&this.removeAllListeners(a);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[t],typeof n=="function")this.removeListener(t,n);else if(n!==void 0)for(i=n.length-1;i>=0;i--)this.removeListener(t,n[i]);return this};function k_(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?iG(i):I_(i,i.length)}Pe.prototype.listeners=function(t){return k_(this,t,!0)},Pe.prototype.rawListeners=function(t){return k_(this,t,!1)},Pe.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):T_.call(e,t)},Pe.prototype.listenerCount=T_;function T_(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}Pe.prototype.eventNames=function(){return this._eventsCount>0?Eh(this._events):[]};function I_(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function rG(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function iG(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function oG(e,t){return new Promise(function(n,r){function i(a){e.removeListener(t,o),r(a)}function o(){typeof e.removeListener=="function"&&e.removeListener("error",i),n([].slice.call(arguments))}B_(e,t,o,{once:!0}),t!=="error"&&aG(e,i,{once:!0})})}function aG(e,t,n){typeof e.on=="function"&&B_(e,"error",t,n)}function B_(e,t,n,r){if(typeof e.on=="function")r.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(o){r.once&&e.removeEventListener(t,i),n(o)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var im=rm.exports,om={exports:{}};typeof Object.create=="function"?om.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:om.exports=function(t,n){if(n){t.super_=n;var r=function(){};r.prototype=n.prototype,t.prototype=new r,t.prototype.constructor=t}};var Ha=om.exports,am,D_;function R_(){return D_||(D_=1,am=im.EventEmitter),am}const F_=wM(TM);var sm,M_;function sG(){if(M_)return sm;M_=1;function e(p,m){var y=Object.keys(p);if(Object.getOwnPropertySymbols){var w=Object.getOwnPropertySymbols(p);m&&(w=w.filter(function(A){return Object.getOwnPropertyDescriptor(p,A).enumerable})),y.push.apply(y,w)}return y}function t(p){for(var m=1;m<arguments.length;m++){var y=arguments[m]!=null?arguments[m]:{};m%2?e(Object(y),!0).forEach(function(w){n(p,w,y[w])}):Object.getOwnPropertyDescriptors?Object.defineProperties(p,Object.getOwnPropertyDescriptors(y)):e(Object(y)).forEach(function(w){Object.defineProperty(p,w,Object.getOwnPropertyDescriptor(y,w))})}return p}function n(p,m,y){return m=a(m),m in p?Object.defineProperty(p,m,{value:y,enumerable:!0,configurable:!0,writable:!0}):p[m]=y,p}function r(p,m){if(!(p instanceof m))throw new TypeError("Cannot call a class as a function")}function i(p,m){for(var y=0;y<m.length;y++){var w=m[y];w.enumerable=w.enumerable||!1,w.configurable=!0,"value"in w&&(w.writable=!0),Object.defineProperty(p,a(w.key),w)}}function o(p,m,y){return m&&i(p.prototype,m),y&&i(p,y),Object.defineProperty(p,"prototype",{writable:!1}),p}function a(p){var m=s(p,"string");return typeof m=="symbol"?m:String(m)}function s(p,m){if(typeof p!="object"||p===null)return p;var y=p[Symbol.toPrimitive];if(y!==void 0){var w=y.call(p,m||"default");if(typeof w!="object")return w;throw new TypeError("@@toPrimitive must return a primitive value.")}return(m==="string"?String:Number)(p)}var u=be,l=u.Buffer,c=F_,f=c.inspect,h=f&&f.custom||"inspect";function d(p,m,y){l.prototype.copy.call(p,m,y)}return sm=function(){function p(){r(this,p),this.head=null,this.tail=null,this.length=0}return o(p,[{key:"push",value:function(y){var w={data:y,next:null};this.length>0?this.tail.next=w:this.head=w,this.tail=w,++this.length}},{key:"unshift",value:function(y){var w={data:y,next:this.head};this.length===0&&(this.tail=w),this.head=w,++this.length}},{key:"shift",value:function(){if(this.length!==0){var y=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,y}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(y){if(this.length===0)return"";for(var w=this.head,A=""+w.data;w=w.next;)A+=y+w.data;return A}},{key:"concat",value:function(y){if(this.length===0)return l.alloc(0);for(var w=l.allocUnsafe(y>>>0),A=this.head,S=0;A;)d(A.data,w,S),S+=A.data.length,A=A.next;return w}},{key:"consume",value:function(y,w){var A;return y<this.head.data.length?(A=this.head.data.slice(0,y),this.head.data=this.head.data.slice(y)):y===this.head.data.length?A=this.shift():A=w?this._getString(y):this._getBuffer(y),A}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(y){var w=this.head,A=1,S=w.data;for(y-=S.length;w=w.next;){var _=w.data,k=y>_.length?_.length:y;if(k===_.length?S+=_:S+=_.slice(0,y),y-=k,y===0){k===_.length?(++A,w.next?this.head=w.next:this.head=this.tail=null):(this.head=w,w.data=_.slice(k));break}++A}return this.length-=A,S}},{key:"_getBuffer",value:function(y){var w=l.allocUnsafe(y),A=this.head,S=1;for(A.data.copy(w),y-=A.data.length;A=A.next;){var _=A.data,k=y>_.length?_.length:y;if(_.copy(w,w.length-y,0,k),y-=k,y===0){k===_.length?(++S,A.next?this.head=A.next:this.head=this.tail=null):(this.head=A,A.data=_.slice(k));break}++S}return this.length-=S,w}},{key:h,value:function(y,w){return f(this,t(t({},w),{},{depth:0,customInspect:!1}))}}]),p}(),sm}var lm,P_;function L_(){if(P_)return lm;P_=1;function e(a,s){var u=this,l=this._readableState&&this._readableState.destroyed,c=this._writableState&&this._writableState.destroyed;return l||c?(s?s(a):a&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(i,this,a)):process.nextTick(i,this,a)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(a||null,function(f){!s&&f?u._writableState?u._writableState.errorEmitted?process.nextTick(n,u):(u._writableState.errorEmitted=!0,process.nextTick(t,u,f)):process.nextTick(t,u,f):s?(process.nextTick(n,u),s(f)):process.nextTick(n,u)}),this)}function t(a,s){i(a,s),n(a)}function n(a){a._writableState&&!a._writableState.emitClose||a._readableState&&!a._readableState.emitClose||a.emit("close")}function r(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function i(a,s){a.emit("error",s)}function o(a,s){var u=a._readableState,l=a._writableState;u&&u.autoDestroy||l&&l.autoDestroy?a.destroy(s):a.emit("error",s)}return lm={destroy:e,undestroy:r,errorOrDestroy:o},lm}var um={},N_;function Va(){if(N_)return um;N_=1;function e(s,u){s.prototype=Object.create(u.prototype),s.prototype.constructor=s,s.__proto__=u}var t={};function n(s,u,l){l||(l=Error);function c(h,d,p){return typeof u=="string"?u:u(h,d,p)}var f=function(h){e(d,h);function d(p,m,y){return h.call(this,c(p,m,y))||this}return d}(l);f.prototype.name=l.name,f.prototype.code=s,t[s]=f}function r(s,u){if(Array.isArray(s)){var l=s.length;return s=s.map(function(c){return String(c)}),l>2?"one of ".concat(u," ").concat(s.slice(0,l-1).join(", "),", or ")+s[l-1]:l===2?"one of ".concat(u," ").concat(s[0]," or ").concat(s[1]):"of ".concat(u," ").concat(s[0])}else return"of ".concat(u," ").concat(String(s))}function i(s,u,l){return s.substr(!l||l<0?0:+l,u.length)===u}function o(s,u,l){return(l===void 0||l>s.length)&&(l=s.length),s.substring(l-u.length,l)===u}function a(s,u,l){return typeof l!="number"&&(l=0),l+u.length>s.length?!1:s.indexOf(u,l)!==-1}return n("ERR_INVALID_OPT_VALUE",function(s,u){return'The value "'+u+'" is invalid for option "'+s+'"'},TypeError),n("ERR_INVALID_ARG_TYPE",function(s,u,l){var c;typeof u=="string"&&i(u,"not ")?(c="must not be",u=u.replace(/^not /,"")):c="must be";var f;if(o(s," argument"))f="The ".concat(s," ").concat(c," ").concat(r(u,"type"));else{var h=a(s,".")?"property":"argument";f='The "'.concat(s,'" ').concat(h," ").concat(c," ").concat(r(u,"type"))}return f+=". Received type ".concat(typeof l),f},TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",function(s){return"The "+s+" method is not implemented"}),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",function(s){return"Cannot call "+s+" after a stream was destroyed"}),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",function(s){return"Unknown encoding: "+s},TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),um.codes=t,um}var cm,O_;function z_(){if(O_)return cm;O_=1;var e=Va().codes.ERR_INVALID_OPT_VALUE;function t(r,i,o){return r.highWaterMark!=null?r.highWaterMark:i?r[o]:null}function n(r,i,o,a){var s=t(i,a,o);if(s!=null){if(!(isFinite(s)&&Math.floor(s)===s)||s<0){var u=a?o:"highWaterMark";throw new e(u,s)}return Math.floor(s)}return r.objectMode?16:16*1024}return cm={getHighWaterMark:n},cm}var fm,U_;function lG(){if(U_)return fm;U_=1,fm=e;function e(n,r){if(t("noDeprecation"))return n;var i=!1;function o(){if(!i){if(t("throwDeprecation"))throw new Error(r);t("traceDeprecation")?console.trace(r):console.warn(r),i=!0}return n.apply(this,arguments)}return o}function t(n){try{if(!globalThis.localStorage)return!1}catch{return!1}var r=globalThis.localStorage[n];return r==null?!1:String(r).toLowerCase()==="true"}return fm}var hm,G_;function H_(){if(G_)return hm;G_=1,hm=D;function e(L){var P=this;this.next=null,this.entry=null,this.finish=function(){He(P,L)}}var t;D.WritableState=B;var n={deprecate:lG()},r=R_(),i=be.Buffer,o=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function a(L){return i.from(L)}function s(L){return i.isBuffer(L)||L instanceof o}var u=L_(),l=z_(),c=l.getHighWaterMark,f=Va().codes,h=f.ERR_INVALID_ARG_TYPE,d=f.ERR_METHOD_NOT_IMPLEMENTED,p=f.ERR_MULTIPLE_CALLBACK,m=f.ERR_STREAM_CANNOT_PIPE,y=f.ERR_STREAM_DESTROYED,w=f.ERR_STREAM_NULL_VALUES,A=f.ERR_STREAM_WRITE_AFTER_END,S=f.ERR_UNKNOWN_ENCODING,_=u.errorOrDestroy;Ha(D,r);function k(){}function B(L,P,q){t=t||ja(),L=L||{},typeof q!="boolean"&&(q=P instanceof t),this.objectMode=!!L.objectMode,q&&(this.objectMode=this.objectMode||!!L.writableObjectMode),this.highWaterMark=c(this,L,"writableHighWaterMark",q),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var j=L.decodeStrings===!1;this.decodeStrings=!j,this.defaultEncoding=L.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Y){Re(P,Y)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=L.emitClose!==!1,this.autoDestroy=!!L.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}B.prototype.getBuffer=function(){for(var P=this.bufferedRequest,q=[];P;)q.push(P),P=P.next;return q},function(){try{Object.defineProperty(B.prototype,"buffer",{get:n.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var I;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(I=Function.prototype[Symbol.hasInstance],Object.defineProperty(D,Symbol.hasInstance,{value:function(P){return I.call(this,P)?!0:this!==D?!1:P&&P._writableState instanceof B}})):I=function(P){return P instanceof this};function D(L){t=t||ja();var P=this instanceof t;if(!P&&!I.call(D,this))return new D(L);this._writableState=new B(L,this,P),this.writable=!0,L&&(typeof L.write=="function"&&(this._write=L.write),typeof L.writev=="function"&&(this._writev=L.writev),typeof L.destroy=="function"&&(this._destroy=L.destroy),typeof L.final=="function"&&(this._final=L.final)),r.call(this)}D.prototype.pipe=function(){_(this,new m)};function M(L,P){var q=new A;_(L,q),process.nextTick(P,q)}function G(L,P,q,j){var Y;return q===null?Y=new w:typeof q!="string"&&!P.objectMode&&(Y=new h("chunk",["string","Buffer"],q)),Y?(_(L,Y),process.nextTick(j,Y),!1):!0}D.prototype.write=function(L,P,q){var j=this._writableState,Y=!1,C=!j.objectMode&&s(L);return C&&!i.isBuffer(L)&&(L=a(L)),typeof P=="function"&&(q=P,P=null),C?P="buffer":P||(P=j.defaultEncoding),typeof q!="function"&&(q=k),j.ending?M(this,q):(C||G(this,j,L,q))&&(j.pendingcb++,Y=ne(this,j,C,L,P,q)),Y},D.prototype.cork=function(){this._writableState.corked++},D.prototype.uncork=function(){var L=this._writableState;L.corked&&(L.corked--,!L.writing&&!L.corked&&!L.bufferProcessing&&L.bufferedRequest&&Oe(this,L))},D.prototype.setDefaultEncoding=function(P){if(typeof P=="string"&&(P=P.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((P+"").toLowerCase())>-1))throw new S(P);return this._writableState.defaultEncoding=P,this},Object.defineProperty(D.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function N(L,P,q){return!L.objectMode&&L.decodeStrings!==!1&&typeof P=="string"&&(P=i.from(P,q)),P}Object.defineProperty(D.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function ne(L,P,q,j,Y,C){if(!q){var x=N(P,j,Y);j!==x&&(q=!0,Y="buffer",j=x)}var V=P.objectMode?1:j.length;P.length+=V;var W=P.length<P.highWaterMark;if(W||(P.needDrain=!0),P.writing||P.corked){var ue=P.lastBufferedRequest;P.lastBufferedRequest={chunk:j,encoding:Y,isBuf:q,callback:C,next:null},ue?ue.next=P.lastBufferedRequest:P.bufferedRequest=P.lastBufferedRequest,P.bufferedRequestCount+=1}else ie(L,P,!1,V,j,Y,C);return W}function ie(L,P,q,j,Y,C,x){P.writelen=j,P.writecb=x,P.writing=!0,P.sync=!0,P.destroyed?P.onwrite(new y("write")):q?L._writev(Y,P.onwrite):L._write(Y,C,P.onwrite),P.sync=!1}function he(L,P,q,j,Y){--P.pendingcb,q?(process.nextTick(Y,j),process.nextTick(gt,L,P),L._writableState.errorEmitted=!0,_(L,j)):(Y(j),L._writableState.errorEmitted=!0,_(L,j),gt(L,P))}function me(L){L.writing=!1,L.writecb=null,L.length-=L.writelen,L.writelen=0}function Re(L,P){var q=L._writableState,j=q.sync,Y=q.writecb;if(typeof Y!="function")throw new p;if(me(q),P)he(L,q,j,P,Y);else{var C=et(q)||L.destroyed;!C&&!q.corked&&!q.bufferProcessing&&q.bufferedRequest&&Oe(L,q),j?process.nextTick(Ae,L,q,C,Y):Ae(L,q,C,Y)}}function Ae(L,P,q,j){q||Le(L,P),P.pendingcb--,j(),gt(L,P)}function Le(L,P){P.length===0&&P.needDrain&&(P.needDrain=!1,L.emit("drain"))}function Oe(L,P){P.bufferProcessing=!0;var q=P.bufferedRequest;if(L._writev&&q&&q.next){var j=P.bufferedRequestCount,Y=new Array(j),C=P.corkedRequestsFree;C.entry=q;for(var x=0,V=!0;q;)Y[x]=q,q.isBuf||(V=!1),q=q.next,x+=1;Y.allBuffers=V,ie(L,P,!0,P.length,Y,"",C.finish),P.pendingcb++,P.lastBufferedRequest=null,C.next?(P.corkedRequestsFree=C.next,C.next=null):P.corkedRequestsFree=new e(P),P.bufferedRequestCount=0}else{for(;q;){var W=q.chunk,ue=q.encoding,te=q.callback,ce=P.objectMode?1:W.length;if(ie(L,P,!1,ce,W,ue,te),q=q.next,P.bufferedRequestCount--,P.writing)break}q===null&&(P.lastBufferedRequest=null)}P.bufferedRequest=q,P.bufferProcessing=!1}D.prototype._write=function(L,P,q){q(new d("_write()"))},D.prototype._writev=null,D.prototype.end=function(L,P,q){var j=this._writableState;return typeof L=="function"?(q=L,L=null,P=null):typeof P=="function"&&(q=P,P=null),L!=null&&this.write(L,P),j.corked&&(j.corked=1,this.uncork()),j.ending||$t(this,j,q),this},Object.defineProperty(D.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function et(L){return L.ending&&L.length===0&&L.bufferedRequest===null&&!L.finished&&!L.writing}function Ce(L,P){L._final(function(q){P.pendingcb--,q&&_(L,q),P.prefinished=!0,L.emit("prefinish"),gt(L,P)})}function ke(L,P){!P.prefinished&&!P.finalCalled&&(typeof L._final=="function"&&!P.destroyed?(P.pendingcb++,P.finalCalled=!0,process.nextTick(Ce,L,P)):(P.prefinished=!0,L.emit("prefinish")))}function gt(L,P){var q=et(P);if(q&&(ke(L,P),P.pendingcb===0&&(P.finished=!0,L.emit("finish"),P.autoDestroy))){var j=L._readableState;(!j||j.autoDestroy&&j.endEmitted)&&L.destroy()}return q}function $t(L,P,q){P.ending=!0,gt(L,P),q&&(P.finished?process.nextTick(q):L.once("finish",q)),P.ended=!0,L.writable=!1}function He(L,P,q){var j=L.entry;for(L.entry=null;j;){var Y=j.callback;P.pendingcb--,Y(q),j=j.next}P.corkedRequestsFree.next=L}return Object.defineProperty(D.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(P){this._writableState&&(this._writableState.destroyed=P)}}),D.prototype.destroy=u.destroy,D.prototype._undestroy=u.undestroy,D.prototype._destroy=function(L,P){P(L)},hm}var dm,V_;function ja(){if(V_)return dm;V_=1;var e=Object.keys||function(l){var c=[];for(var f in l)c.push(f);return c};dm=a;var t=Y_(),n=H_();Ha(a,t);for(var r=e(n.prototype),i=0;i<r.length;i++){var o=r[i];a.prototype[o]||(a.prototype[o]=n.prototype[o])}function a(l){if(!(this instanceof a))return new a(l);t.call(this,l),n.call(this,l),this.allowHalfOpen=!0,l&&(l.readable===!1&&(this.readable=!1),l.writable===!1&&(this.writable=!1),l.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",s)))}Object.defineProperty(a.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(a.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(a.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(){this._writableState.ended||process.nextTick(u,this)}function u(l){l.end()}return Object.defineProperty(a.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(c){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=c,this._writableState.destroyed=c)}}),dm}var pm={},gm={exports:{}};(function(e,t){var n=be,r=n.Buffer;function i(a,s){for(var u in a)s[u]=a[u]}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?e.exports=n:(i(n,t),t.Buffer=o);function o(a,s,u){return r(a,s,u)}i(r,o),o.from=function(a,s,u){if(typeof a=="number")throw new TypeError("Argument must not be a number");return r(a,s,u)},o.alloc=function(a,s,u){if(typeof a!="number")throw new TypeError("Argument must be a number");var l=r(a);return s!==void 0?typeof u=="string"?l.fill(s,u):l.fill(s):l.fill(0),l},o.allocUnsafe=function(a){if(typeof a!="number")throw new TypeError("Argument must be a number");return r(a)},o.allocUnsafeSlow=function(a){if(typeof a!="number")throw new TypeError("Argument must be a number");return n.SlowBuffer(a)}})(gm,gm.exports);var uG=gm.exports,mm=uG.Buffer,j_=mm.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function cG(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function fG(e){var t=cG(e);if(typeof t!="string"&&(mm.isEncoding===j_||!j_(e)))throw new Error("Unknown encoding: "+e);return t||e}var hG=pm.StringDecoder=hu;function hu(e){this.encoding=fG(e);var t;switch(this.encoding){case"utf16le":this.text=yG,this.end=wG,t=4;break;case"utf8":this.fillLast=gG,t=4;break;case"base64":this.text=vG,this.end=xG,t=3;break;default:this.write=AG,this.end=EG;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=mm.allocUnsafe(t)}hu.prototype.write=function(e){if(e.length===0)return"";var t,n;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},hu.prototype.end=bG,hu.prototype.text=mG,hu.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length};function bm(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function dG(e,t,n){var r=t.length-1;if(r<n)return 0;var i=bm(t[r]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--r<n||i===-2?0:(i=bm(t[r]),i>=0?(i>0&&(e.lastNeed=i-2),i):--r<n||i===-2?0:(i=bm(t[r]),i>=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function pG(e,t,n){if((t[0]&192)!==128)return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"�"}}function gG(e){var t=this.lastTotal-this.lastNeed,n=pG(this,e);if(n!==void 0)return n;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function mG(e,t){var n=dG(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function bG(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function yG(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function wG(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function vG(e,t){var n=(e.length-t)%3;return n===0?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,n===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function xG(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function AG(e){return e.toString(this.encoding)}function EG(e){return e&&e.length?this.write(e):""}var ym,$_;function wm(){if($_)return ym;$_=1;var e=Va().codes.ERR_STREAM_PREMATURE_CLOSE;function t(o){var a=!1;return function(){if(!a){a=!0;for(var s=arguments.length,u=new Array(s),l=0;l<s;l++)u[l]=arguments[l];o.apply(this,u)}}}function n(){}function r(o){return o.setHeader&&typeof o.abort=="function"}function i(o,a,s){if(typeof a=="function")return i(o,null,a);a||(a={}),s=t(s||n);var u=a.readable||a.readable!==!1&&o.readable,l=a.writable||a.writable!==!1&&o.writable,c=function(){o.writable||h()},f=o._writableState&&o._writableState.finished,h=function(){l=!1,f=!0,u||s.call(o)},d=o._readableState&&o._readableState.endEmitted,p=function(){u=!1,d=!0,l||s.call(o)},m=function(S){s.call(o,S)},y=function(){var S;if(u&&!d)return(!o._readableState||!o._readableState.ended)&&(S=new e),s.call(o,S);if(l&&!f)return(!o._writableState||!o._writableState.ended)&&(S=new e),s.call(o,S)},w=function(){o.req.on("finish",h)};return r(o)?(o.on("complete",h),o.on("abort",y),o.req?w():o.on("request",w)):l&&!o._writableState&&(o.on("end",c),o.on("close",c)),o.on("end",p),o.on("finish",h),a.error!==!1&&o.on("error",m),o.on("close",y),function(){o.removeListener("complete",h),o.removeListener("abort",y),o.removeListener("request",w),o.req&&o.req.removeListener("finish",h),o.removeListener("end",c),o.removeListener("close",c),o.removeListener("finish",h),o.removeListener("end",p),o.removeListener("error",m),o.removeListener("close",y)}}return ym=i,ym}var vm,q_;function _G(){if(q_)return vm;q_=1;var e;function t(S,_,k){return _=n(_),_ in S?Object.defineProperty(S,_,{value:k,enumerable:!0,configurable:!0,writable:!0}):S[_]=k,S}function n(S){var _=r(S,"string");return typeof _=="symbol"?_:String(_)}function r(S,_){if(typeof S!="object"||S===null)return S;var k=S[Symbol.toPrimitive];if(k!==void 0){var B=k.call(S,_||"default");if(typeof B!="object")return B;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_==="string"?String:Number)(S)}var i=wm(),o=Symbol("lastResolve"),a=Symbol("lastReject"),s=Symbol("error"),u=Symbol("ended"),l=Symbol("lastPromise"),c=Symbol("handlePromise"),f=Symbol("stream");function h(S,_){return{value:S,done:_}}function d(S){var _=S[o];if(_!==null){var k=S[f].read();k!==null&&(S[l]=null,S[o]=null,S[a]=null,_(h(k,!1)))}}function p(S){process.nextTick(d,S)}function m(S,_){return function(k,B){S.then(function(){if(_[u]){k(h(void 0,!0));return}_[c](k,B)},B)}}var y=Object.getPrototypeOf(function(){}),w=Object.setPrototypeOf((e={get stream(){return this[f]},next:function(){var _=this,k=this[s];if(k!==null)return Promise.reject(k);if(this[u])return Promise.resolve(h(void 0,!0));if(this[f].destroyed)return new Promise(function(M,G){process.nextTick(function(){_[s]?G(_[s]):M(h(void 0,!0))})});var B=this[l],I;if(B)I=new Promise(m(B,this));else{var D=this[f].read();if(D!==null)return Promise.resolve(h(D,!1));I=new Promise(this[c])}return this[l]=I,I}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var _=this;return new Promise(function(k,B){_[f].destroy(null,function(I){if(I){B(I);return}k(h(void 0,!0))})})}),e),y),A=function(_){var k,B=Object.create(w,(k={},t(k,f,{value:_,writable:!0}),t(k,o,{value:null,writable:!0}),t(k,a,{value:null,writable:!0}),t(k,s,{value:null,writable:!0}),t(k,u,{value:_._readableState.endEmitted,writable:!0}),t(k,c,{value:function(D,M){var G=B[f].read();G?(B[l]=null,B[o]=null,B[a]=null,D(h(G,!1))):(B[o]=D,B[a]=M)},writable:!0}),k));return B[l]=null,i(_,function(I){if(I&&I.code!=="ERR_STREAM_PREMATURE_CLOSE"){var D=B[a];D!==null&&(B[l]=null,B[o]=null,B[a]=null,D(I)),B[s]=I;return}var M=B[o];M!==null&&(B[l]=null,B[o]=null,B[a]=null,M(h(void 0,!0))),B[u]=!0}),_.on("readable",p.bind(null,B)),B};return vm=A,vm}var xm,W_;function SG(){return W_||(W_=1,xm=function(){throw new Error("Readable.from is not available in the browser")}),xm}var Am,Z_;function Y_(){if(Z_)return Am;Z_=1,Am=M;var e;M.ReadableState=D,im.EventEmitter;var t=function(x,V){return x.listeners(V).length},n=R_(),r=be.Buffer,i=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function o(C){return r.from(C)}function a(C){return r.isBuffer(C)||C instanceof i}var s=F_,u;s&&s.debuglog?u=s.debuglog("stream"):u=function(){};var l=sG(),c=L_(),f=z_(),h=f.getHighWaterMark,d=Va().codes,p=d.ERR_INVALID_ARG_TYPE,m=d.ERR_STREAM_PUSH_AFTER_EOF,y=d.ERR_METHOD_NOT_IMPLEMENTED,w=d.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,A,S,_;Ha(M,n);var k=c.errorOrDestroy,B=["error","close","destroy","pause","resume"];function I(C,x,V){if(typeof C.prependListener=="function")return C.prependListener(x,V);!C._events||!C._events[x]?C.on(x,V):Array.isArray(C._events[x])?C._events[x].unshift(V):C._events[x]=[V,C._events[x]]}function D(C,x,V){e=e||ja(),C=C||{},typeof V!="boolean"&&(V=x instanceof e),this.objectMode=!!C.objectMode,V&&(this.objectMode=this.objectMode||!!C.readableObjectMode),this.highWaterMark=h(this,C,"readableHighWaterMark",V),this.buffer=new l,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=C.emitClose!==!1,this.autoDestroy=!!C.autoDestroy,this.destroyed=!1,this.defaultEncoding=C.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,C.encoding&&(A||(A=pm.StringDecoder),this.decoder=new A(C.encoding),this.encoding=C.encoding)}function M(C){if(e=e||ja(),!(this instanceof M))return new M(C);var x=this instanceof e;this._readableState=new D(C,this,x),this.readable=!0,C&&(typeof C.read=="function"&&(this._read=C.read),typeof C.destroy=="function"&&(this._destroy=C.destroy)),n.call(this)}Object.defineProperty(M.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(x){this._readableState&&(this._readableState.destroyed=x)}}),M.prototype.destroy=c.destroy,M.prototype._undestroy=c.undestroy,M.prototype._destroy=function(C,x){x(C)},M.prototype.push=function(C,x){var V=this._readableState,W;return V.objectMode?W=!0:typeof C=="string"&&(x=x||V.defaultEncoding,x!==V.encoding&&(C=r.from(C,x),x=""),W=!0),G(this,C,x,!1,W)},M.prototype.unshift=function(C){return G(this,C,null,!0,!1)};function G(C,x,V,W,ue){u("readableAddChunk",x);var te=C._readableState;if(x===null)te.reading=!1,Re(C,te);else{var ce;if(ue||(ce=ne(te,x)),ce)k(C,ce);else if(te.objectMode||x&&x.length>0)if(typeof x!="string"&&!te.objectMode&&Object.getPrototypeOf(x)!==r.prototype&&(x=o(x)),W)te.endEmitted?k(C,new w):N(C,te,x,!0);else if(te.ended)k(C,new m);else{if(te.destroyed)return!1;te.reading=!1,te.decoder&&!V?(x=te.decoder.write(x),te.objectMode||x.length!==0?N(C,te,x,!1):Oe(C,te)):N(C,te,x,!1)}else W||(te.reading=!1,Oe(C,te))}return!te.ended&&(te.length<te.highWaterMark||te.length===0)}function N(C,x,V,W){x.flowing&&x.length===0&&!x.sync?(x.awaitDrain=0,C.emit("data",V)):(x.length+=x.objectMode?1:V.length,W?x.buffer.unshift(V):x.buffer.push(V),x.needReadable&&Ae(C)),Oe(C,x)}function ne(C,x){var V;return!a(x)&&typeof x!="string"&&x!==void 0&&!C.objectMode&&(V=new p("chunk",["string","Buffer","Uint8Array"],x)),V}M.prototype.isPaused=function(){return this._readableState.flowing===!1},M.prototype.setEncoding=function(C){A||(A=pm.StringDecoder);var x=new A(C);this._readableState.decoder=x,this._readableState.encoding=this._readableState.decoder.encoding;for(var V=this._readableState.buffer.head,W="";V!==null;)W+=x.write(V.data),V=V.next;return this._readableState.buffer.clear(),W!==""&&this._readableState.buffer.push(W),this._readableState.length=W.length,this};var ie=1073741824;function he(C){return C>=ie?C=ie:(C--,C|=C>>>1,C|=C>>>2,C|=C>>>4,C|=C>>>8,C|=C>>>16,C++),C}function me(C,x){return C<=0||x.length===0&&x.ended?0:x.objectMode?1:C!==C?x.flowing&&x.length?x.buffer.head.data.length:x.length:(C>x.highWaterMark&&(x.highWaterMark=he(C)),C<=x.length?C:x.ended?x.length:(x.needReadable=!0,0))}M.prototype.read=function(C){u("read",C),C=parseInt(C,10);var x=this._readableState,V=C;if(C!==0&&(x.emittedReadable=!1),C===0&&x.needReadable&&((x.highWaterMark!==0?x.length>=x.highWaterMark:x.length>0)||x.ended))return u("read: emitReadable",x.length,x.ended),x.length===0&&x.ended?q(this):Ae(this),null;if(C=me(C,x),C===0&&x.ended)return x.length===0&&q(this),null;var W=x.needReadable;u("need readable",W),(x.length===0||x.length-C<x.highWaterMark)&&(W=!0,u("length less than watermark",W)),x.ended||x.reading?(W=!1,u("reading or ended",W)):W&&(u("do read"),x.reading=!0,x.sync=!0,x.length===0&&(x.needReadable=!0),this._read(x.highWaterMark),x.sync=!1,x.reading||(C=me(V,x)));var ue;return C>0?ue=P(C,x):ue=null,ue===null?(x.needReadable=x.length<=x.highWaterMark,C=0):(x.length-=C,x.awaitDrain=0),x.length===0&&(x.ended||(x.needReadable=!0),V!==C&&x.ended&&q(this)),ue!==null&&this.emit("data",ue),ue};function Re(C,x){if(u("onEofChunk"),!x.ended){if(x.decoder){var V=x.decoder.end();V&&V.length&&(x.buffer.push(V),x.length+=x.objectMode?1:V.length)}x.ended=!0,x.sync?Ae(C):(x.needReadable=!1,x.emittedReadable||(x.emittedReadable=!0,Le(C)))}}function Ae(C){var x=C._readableState;u("emitReadable",x.needReadable,x.emittedReadable),x.needReadable=!1,x.emittedReadable||(u("emitReadable",x.flowing),x.emittedReadable=!0,process.nextTick(Le,C))}function Le(C){var x=C._readableState;u("emitReadable_",x.destroyed,x.length,x.ended),!x.destroyed&&(x.length||x.ended)&&(C.emit("readable"),x.emittedReadable=!1),x.needReadable=!x.flowing&&!x.ended&&x.length<=x.highWaterMark,L(C)}function Oe(C,x){x.readingMore||(x.readingMore=!0,process.nextTick(et,C,x))}function et(C,x){for(;!x.reading&&!x.ended&&(x.length<x.highWaterMark||x.flowing&&x.length===0);){var V=x.length;if(u("maybeReadMore read 0"),C.read(0),V===x.length)break}x.readingMore=!1}M.prototype._read=function(C){k(this,new y("_read()"))},M.prototype.pipe=function(C,x){var V=this,W=this._readableState;switch(W.pipesCount){case 0:W.pipes=C;break;case 1:W.pipes=[W.pipes,C];break;default:W.pipes.push(C);break}W.pipesCount+=1,u("pipe count=%d opts=%j",W.pipesCount,x);var ue=(!x||x.end!==!1)&&C!==process.stdout&&C!==process.stderr,te=ue?qt:rr;W.endEmitted?process.nextTick(te):V.once("end",te),C.on("unpipe",ce);function ce(v,g){u("onunpipe"),v===V&&g&&g.hasUnpiped===!1&&(g.hasUnpiped=!0,Ti())}function qt(){u("onend"),C.end()}var Ci=Ce(V);C.on("drain",Ci);var ki=!1;function Ti(){u("cleanup"),C.removeListener("close",Ii),C.removeListener("finish",Wt),C.removeListener("drain",Ci),C.removeListener("error",Tr),C.removeListener("unpipe",ce),V.removeListener("end",qt),V.removeListener("end",rr),V.removeListener("data",Ct),ki=!0,W.awaitDrain&&(!C._writableState||C._writableState.needDrain)&&Ci()}V.on("data",Ct);function Ct(v){u("ondata");var g=C.write(v);u("dest.write",g),g===!1&&((W.pipesCount===1&&W.pipes===C||W.pipesCount>1&&Y(W.pipes,C)!==-1)&&!ki&&(u("false write response, pause",W.awaitDrain),W.awaitDrain++),V.pause())}function Tr(v){u("onerror",v),rr(),C.removeListener("error",Tr),t(C,"error")===0&&k(C,v)}I(C,"error",Tr);function Ii(){C.removeListener("finish",Wt),rr()}C.once("close",Ii);function Wt(){u("onfinish"),C.removeListener("close",Ii),rr()}C.once("finish",Wt);function rr(){u("unpipe"),V.unpipe(C)}return C.emit("pipe",V),W.flowing||(u("pipe resume"),V.resume()),C};function Ce(C){return function(){var V=C._readableState;u("pipeOnDrain",V.awaitDrain),V.awaitDrain&&V.awaitDrain--,V.awaitDrain===0&&t(C,"data")&&(V.flowing=!0,L(C))}}M.prototype.unpipe=function(C){var x=this._readableState,V={hasUnpiped:!1};if(x.pipesCount===0)return this;if(x.pipesCount===1)return C&&C!==x.pipes?this:(C||(C=x.pipes),x.pipes=null,x.pipesCount=0,x.flowing=!1,C&&C.emit("unpipe",this,V),this);if(!C){var W=x.pipes,ue=x.pipesCount;x.pipes=null,x.pipesCount=0,x.flowing=!1;for(var te=0;te<ue;te++)W[te].emit("unpipe",this,{hasUnpiped:!1});return this}var ce=Y(x.pipes,C);return ce===-1?this:(x.pipes.splice(ce,1),x.pipesCount-=1,x.pipesCount===1&&(x.pipes=x.pipes[0]),C.emit("unpipe",this,V),this)},M.prototype.on=function(C,x){var V=n.prototype.on.call(this,C,x),W=this._readableState;return C==="data"?(W.readableListening=this.listenerCount("readable")>0,W.flowing!==!1&&this.resume()):C==="readable"&&!W.endEmitted&&!W.readableListening&&(W.readableListening=W.needReadable=!0,W.flowing=!1,W.emittedReadable=!1,u("on readable",W.length,W.reading),W.length?Ae(this):W.reading||process.nextTick(gt,this)),V},M.prototype.addListener=M.prototype.on,M.prototype.removeListener=function(C,x){var V=n.prototype.removeListener.call(this,C,x);return C==="readable"&&process.nextTick(ke,this),V},M.prototype.removeAllListeners=function(C){var x=n.prototype.removeAllListeners.apply(this,arguments);return(C==="readable"||C===void 0)&&process.nextTick(ke,this),x};function ke(C){var x=C._readableState;x.readableListening=C.listenerCount("readable")>0,x.resumeScheduled&&!x.paused?x.flowing=!0:C.listenerCount("data")>0&&C.resume()}function gt(C){u("readable nexttick read 0"),C.read(0)}M.prototype.resume=function(){var C=this._readableState;return C.flowing||(u("resume"),C.flowing=!C.readableListening,$t(this,C)),C.paused=!1,this};function $t(C,x){x.resumeScheduled||(x.resumeScheduled=!0,process.nextTick(He,C,x))}function He(C,x){u("resume",x.reading),x.reading||C.read(0),x.resumeScheduled=!1,C.emit("resume"),L(C),x.flowing&&!x.reading&&C.read(0)}M.prototype.pause=function(){return u("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(u("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function L(C){var x=C._readableState;for(u("flow",x.flowing);x.flowing&&C.read()!==null;);}M.prototype.wrap=function(C){var x=this,V=this._readableState,W=!1;C.on("end",function(){if(u("wrapped end"),V.decoder&&!V.ended){var ce=V.decoder.end();ce&&ce.length&&x.push(ce)}x.push(null)}),C.on("data",function(ce){if(u("wrapped data"),V.decoder&&(ce=V.decoder.write(ce)),!(V.objectMode&&ce==null)&&!(!V.objectMode&&(!ce||!ce.length))){var qt=x.push(ce);qt||(W=!0,C.pause())}});for(var ue in C)this[ue]===void 0&&typeof C[ue]=="function"&&(this[ue]=function(qt){return function(){return C[qt].apply(C,arguments)}}(ue));for(var te=0;te<B.length;te++)C.on(B[te],this.emit.bind(this,B[te]));return this._read=function(ce){u("wrapped _read",ce),W&&(W=!1,C.resume())},this},typeof Symbol=="function"&&(M.prototype[Symbol.asyncIterator]=function(){return S===void 0&&(S=_G()),S(this)}),Object.defineProperty(M.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(M.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(M.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(x){this._readableState&&(this._readableState.flowing=x)}}),M._fromList=P,Object.defineProperty(M.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function P(C,x){if(x.length===0)return null;var V;return x.objectMode?V=x.buffer.shift():!C||C>=x.length?(x.decoder?V=x.buffer.join(""):x.buffer.length===1?V=x.buffer.first():V=x.buffer.concat(x.length),x.buffer.clear()):V=x.buffer.consume(C,x.decoder),V}function q(C){var x=C._readableState;u("endReadable",x.endEmitted),x.endEmitted||(x.ended=!0,process.nextTick(j,x,C))}function j(C,x){if(u("endReadableNT",C.endEmitted,C.length),!C.endEmitted&&C.length===0&&(C.endEmitted=!0,x.readable=!1,x.emit("end"),C.autoDestroy)){var V=x._writableState;(!V||V.autoDestroy&&V.finished)&&x.destroy()}}typeof Symbol=="function"&&(M.from=function(C,x){return _===void 0&&(_=SG()),_(M,C,x)});function Y(C,x){for(var V=0,W=C.length;V<W;V++)if(C[V]===x)return V;return-1}return Am}var Em,Q_;function X_(){if(Q_)return Em;Q_=1,Em=s;var e=Va().codes,t=e.ERR_METHOD_NOT_IMPLEMENTED,n=e.ERR_MULTIPLE_CALLBACK,r=e.ERR_TRANSFORM_ALREADY_TRANSFORMING,i=e.ERR_TRANSFORM_WITH_LENGTH_0,o=ja();Ha(s,o);function a(c,f){var h=this._transformState;h.transforming=!1;var d=h.writecb;if(d===null)return this.emit("error",new n);h.writechunk=null,h.writecb=null,f!=null&&this.push(f),d(c);var p=this._readableState;p.reading=!1,(p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}function s(c){if(!(this instanceof s))return new s(c);o.call(this,c),this._transformState={afterTransform:a.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,c&&(typeof c.transform=="function"&&(this._transform=c.transform),typeof c.flush=="function"&&(this._flush=c.flush)),this.on("prefinish",u)}function u(){var c=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(f,h){l(c,f,h)}):l(this,null,null)}s.prototype.push=function(c,f){return this._transformState.needTransform=!1,o.prototype.push.call(this,c,f)},s.prototype._transform=function(c,f,h){h(new t("_transform()"))},s.prototype._write=function(c,f,h){var d=this._transformState;if(d.writecb=h,d.writechunk=c,d.writeencoding=f,!d.transforming){var p=this._readableState;(d.needTransform||p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}},s.prototype._read=function(c){var f=this._transformState;f.writechunk!==null&&!f.transforming?(f.transforming=!0,this._transform(f.writechunk,f.writeencoding,f.afterTransform)):f.needTransform=!0},s.prototype._destroy=function(c,f){o.prototype._destroy.call(this,c,function(h){f(h)})};function l(c,f,h){if(f)return c.emit("error",f);if(h!=null&&c.push(h),c._writableState.length)throw new i;if(c._transformState.transforming)throw new r;return c.push(null)}return Em}var _m,K_;function CG(){if(K_)return _m;K_=1,_m=t;var e=X_();Ha(t,e);function t(n){if(!(this instanceof t))return new t(n);e.call(this,n)}return t.prototype._transform=function(n,r,i){i(null,n)},_m}var Sm,J_;function kG(){if(J_)return Sm;J_=1;var e;function t(h){var d=!1;return function(){d||(d=!0,h.apply(void 0,arguments))}}var n=Va().codes,r=n.ERR_MISSING_ARGS,i=n.ERR_STREAM_DESTROYED;function o(h){if(h)throw h}function a(h){return h.setHeader&&typeof h.abort=="function"}function s(h,d,p,m){m=t(m);var y=!1;h.on("close",function(){y=!0}),e===void 0&&(e=wm()),e(h,{readable:d,writable:p},function(A){if(A)return m(A);y=!0,m()});var w=!1;return function(A){if(!y&&!w){if(w=!0,a(h))return h.abort();if(typeof h.destroy=="function")return h.destroy();m(A||new i("pipe"))}}}function u(h){h()}function l(h,d){return h.pipe(d)}function c(h){return!h.length||typeof h[h.length-1]!="function"?o:h.pop()}function f(){for(var h=arguments.length,d=new Array(h),p=0;p<h;p++)d[p]=arguments[p];var m=c(d);if(Array.isArray(d[0])&&(d=d[0]),d.length<2)throw new r("streams");var y,w=d.map(function(A,S){var _=S<d.length-1,k=S>0;return s(A,_,k,function(B){y||(y=B),B&&w.forEach(u),!_&&(w.forEach(u),m(y))})});return d.reduce(l)}return Sm=f,Sm}var e4=yn,Cm=im.EventEmitter,TG=Ha;TG(yn,Cm),yn.Readable=Y_(),yn.Writable=H_(),yn.Duplex=ja(),yn.Transform=X_(),yn.PassThrough=CG(),yn.finished=wm(),yn.pipeline=kG(),yn.Stream=yn;function yn(){Cm.call(this)}yn.prototype.pipe=function(e,t){var n=this;function r(c){e.writable&&e.write(c)===!1&&n.pause&&n.pause()}n.on("data",r);function i(){n.readable&&n.resume&&n.resume()}e.on("drain",i),!e._isStdio&&(!t||t.end!==!1)&&(n.on("end",a),n.on("close",s));var o=!1;function a(){o||(o=!0,e.end())}function s(){o||(o=!0,typeof e.destroy=="function"&&e.destroy())}function u(c){if(l(),Cm.listenerCount(this,"error")===0)throw c}n.on("error",u),e.on("error",u);function l(){n.removeListener("data",r),e.removeListener("drain",i),n.removeListener("end",a),n.removeListener("close",s),n.removeListener("error",u),e.removeListener("error",u),n.removeListener("end",l),n.removeListener("close",l),e.removeListener("close",l)}return n.on("end",l),n.on("close",l),e.on("close",l),e.emit("pipe",n),e};function du(e){return e.replace(/%([0-9A-Fa-f]{2})/g,(t,n)=>String.fromCharCode(parseInt(n,16)))}function t4(e,t){return String(t).replace(e,n=>`%${n.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function pu(e){return t4(/[\n;\r\t=%&,\x00-\x1f\x7f-\xff]/g,e)}function Ar(e){return t4(/[\n\r\t%\x00-\x1f\x7f-\xff]/g,e)}function n4(e){if(!(e&&e.length)||e===".")return{};const t={};return e.replace(/\r?\n$/,"").split(";").forEach(n=>{const r=n.split("=",2);if(!(r[1]&&r[1].length))return;r[0]=r[0].trim();let i=t[r[0].trim()];i||(i=[],t[r[0]]=i),i.push(...r[1].split(",").map(o=>o.trim()).map(du))}),t}function r4(e){const t=e.split(" ").map(r=>r==="."||r===""?null:r);return{seq_id:t[0]&&du(t[0]),source:t[1]&&du(t[1]),type:t[2]&&du(t[2]),start:t[3]===null?null:parseInt(t[3],10),end:t[4]===null?null:parseInt(t[4],10),score:t[5]===null?null:parseFloat(t[5]),strand:t[6],phase:t[7],attributes:t[8]===null?null:n4(t[8])}}function i4(e){const t=/^\s*##\s*(\S+)\s*(.*)/.exec(e);if(!t)return null;const[,n]=t;let[,,r]=t;const i={directive:n};if(r.length&&(r=r.replace(/\r?\n$/,""),i.value=r),n==="sequence-region"){const o=r.split(/\s+/,3);return{...i,seq_id:o[0],start:o[1]&&o[1].replace(/\D/g,""),end:o[2]&&o[2].replace(/\D/g,"")}}else if(n==="genome-build"){const[o,a]=r.split(/\s+/,2);return{...i,source:o,buildName:a}}return i}function o4(e){const t=[];return Object.entries(e).forEach(([n,r])=>{if(!r)return;let i;r.hasOwnProperty("toString")?i=pu(r.toString()):Array.isArray(r)?i=r.map(pu).join(","):i=pu(r),t.push(`${pu(n)}=${i}`)}),t.length?t.join(";"):"."}function IG(e,t){const n=e.attributes===null||e.attributes===void 0?".":o4(e.attributes),i=`${[e.seq_id===null?".":Ar(e.seq_id),e.source===null?".":Ar(e.source),e.type===null?".":Ar(e.type),e.start===null?".":Ar(e.start),e.end===null?".":Ar(e.end),e.score===null?".":Ar(e.score),e.strand===null?".":Ar(e.strand),e.phase===null?".":Ar(e.phase),n].join(" ")}
650
+ `;return t[i]?"":(t[i]=!0,i)}function Sh(e,t){if(Array.isArray(e))return e.map(r=>Sh(r,t)).join("");const n=[IG(e,t)];return BG(e)&&n.push(...e.child_features.map(r=>Sh(r,t)),...e.derived_features.map(r=>Sh(r,t))),n.join("")}function a4(e){return Sh(e,{})}function s4(e){let t=`##${e.directive}`;return e.value&&(t+=` ${e.value}`),t+=`
651
+ `,t}function l4(e){return`# ${e.comment}
652
+ `}function km(e){return`>${e.id}${e.description?` ${e.description}`:""}
640
653
  ${e.sequence}
641
- `}function vh(e){function t(n){return"attributes"in n?V_(n):"directive"in n?j_(n):"sequence"in n?bm(n):"comment"in n?$_(n):`# (invalid item found during format)
642
- `}return Array.isArray(e)?e.map(t):t(e)}function YU(e){return e.child_features!==void 0&&e.derived_features!==void 0}const QU=Object.freeze(Object.defineProperty({__proto__:null,escape:ou,escapeColumn:xr,formatAttributes:H_,formatComment:$_,formatDirective:j_,formatFeature:V_,formatItem:vh,formatSequence:bm,parseAttributes:z_,parseDirective:G_,parseFeature:U_,unescape:au},Symbol.toStringTag,{value:"Module"})),q_={Parent:"child_features",Derives_from:"derived_features"};class W_{constructor(t){this.seqCallback=t,this.currentSequence=void 0}addLine(t){const n=/^>\s*(\S+)\s*(.*)/.exec(t);n?(this._flush(),this.currentSequence={id:n[1],sequence:""},n[2]&&(this.currentSequence.description=n[2].trim())):this.currentSequence&&/\S/.test(t)&&(this.currentSequence.sequence+=t.replace(/\s/g,""))}_flush(){this.currentSequence&&this.seqCallback(this.currentSequence)}finish(){this._flush()}}class Z_{constructor(t){this.fastaParser=void 0,this.eof=!1,this.lineNumber=0,this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},this._underConstructionOrphans={};const n=()=>{};this.featureCallback=t.featureCallback||n,this.endCallback=t.endCallback||n,this.commentCallback=t.commentCallback||n,this.errorCallback=t.errorCallback||n,this.directiveCallback=t.directiveCallback||n,this.sequenceCallback=t.sequenceCallback||n,this.disableDerivesFromReferences=t.disableDerivesFromReferences||!1,this.bufferSize=t.bufferSize===void 0?1e3:t.bufferSize}addLine(t){if(this.fastaParser){this.fastaParser.addLine(t);return}if(this.eof)return;if(this.lineNumber+=1,/^\s*[^#\s>]/.test(t)){this._bufferLine(t);return}const n=/^\s*(#+)(.*)/.exec(t);if(n){const[,r]=n;let[,,i]=n;if(r.length===3)this._emitAllUnderConstructionFeatures();else if(r.length===2){const a=G_(t);a&&(a.directive==="FASTA"?(this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new W_(this.sequenceCallback)):this._emitItem(a))}else i=i.replace(/\s*/,""),this._emitItem({comment:i})}else if(!/^\s*$/.test(t))if(/^\s*>/.test(t))this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new W_(this.sequenceCallback),this.fastaParser.addLine(t);else{const r=t.replace(/\r?\n?$/g,"");throw new Error(`GFF3 parse error. Cannot parse '${r}'.`)}}finish(){this._emitAllUnderConstructionFeatures(),this.fastaParser&&this.fastaParser.finish(),this.endCallback()}_emitItem(t){Array.isArray(t)?this.featureCallback(t):"directive"in t?this.directiveCallback(t):"comment"in t&&this.commentCallback(t)}_enforceBufferSizeLimit(t=0){const n=r=>{r&&Array.isArray(r)&&r[0].attributes&&r[0].attributes.ID&&r[0].attributes.ID[0]&&(r[0].attributes.ID.forEach(a=>{delete this._underConstructionById[a],delete this._completedReferences[a]}),r.forEach(a=>{a.child_features&&a.child_features.forEach(o=>n(o)),a.derived_features&&a.derived_features.forEach(o=>n(o))}))};for(;this._underConstructionTopLevel.length+t>this.bufferSize;){const r=this._underConstructionTopLevel.shift();r&&(this._emitItem(r),n(r))}}_emitAllUnderConstructionFeatures(){if(this._underConstructionTopLevel.forEach(this._emitItem.bind(this)),this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},Array.from(Object.values(this._underConstructionOrphans)).length)throw new Error(`some features reference other features that do not exist in the file (or in the same '###' scope). ${Object.keys(this._underConstructionOrphans)}`)}_bufferLine(t){var n,r,i;const o={...U_(t),child_features:[],derived_features:[]},s=((n=o.attributes)===null||n===void 0?void 0:n.ID)||[],u=((r=o.attributes)===null||r===void 0?void 0:r.Parent)||[],l=this.disableDerivesFromReferences?[]:((i=o.attributes)===null||i===void 0?void 0:i.Derives_from)||[];if(!s.length&&!u.length&&!l.length){this._emitItem([o]);return}let c;s.forEach(f=>{const h=this._underConstructionById[f];h?(h[h.length-1].type!==o.type&&this._parseError(`multi-line feature "${f}" has inconsistent types: "${o.type}", "${h[h.length-1].type}"`),h.push(o),c=h):(c=[o],this._enforceBufferSizeLimit(1),!u.length&&!l.length&&this._underConstructionTopLevel.push(c),this._underConstructionById[f]=c,this._resolveReferencesTo(c,f))}),this._resolveReferencesFrom(c||[o],{Parent:u,Derives_from:l},s)}_resolveReferencesTo(t,n){const r=this._underConstructionOrphans[n];r&&(t.forEach(i=>{i.child_features.push(...r.Parent)}),t.forEach(i=>{i.derived_features.push(...r.Derives_from)}),delete this._underConstructionOrphans[n])}_parseError(t){this.eof=!0,this.errorCallback(`${this.lineNumber}: ${t}`)}_resolveReferencesFrom(t,n,r){function i(a,o,s){let u=a[o];u||(u={},a[o]=u);const l=u[s]||!1;return u[s]=!0,l}n.Parent.forEach(a=>{const o=this._underConstructionById[a];if(o){const s=q_.Parent;r.filter(u=>i(this._completedReferences,u,`Parent,${a}`)).length||o.forEach(u=>{u[s].push(t)})}else{let s=this._underConstructionOrphans[a];s||(s={Parent:[],Derives_from:[]},this._underConstructionOrphans[a]=s),s.Parent.push(t)}}),n.Derives_from.forEach(a=>{const o=this._underConstructionById[a];if(o){const s=q_.Derives_from;r.filter(u=>i(this._completedReferences,u,`Derives_from,${a}`)).length||o.forEach(u=>{u[s].push(t)})}else{let s=this._underConstructionOrphans[a];s||(s={Parent:[],Derives_from:[]},this._underConstructionOrphans[a]=s),s.Derives_from.push(t)}})}}function ym(e){process&&process.nextTick?process.nextTick(e):e()}function Y_(e){const t={encoding:"utf8",parseFeatures:!0,parseDirectives:!1,parseSequences:!0,parseComments:!1,bufferSize:1e3,disableDerivesFromReferences:!1,...e};return e.parseAll&&(t.parseFeatures=!0,t.parseDirectives=!0,t.parseComments=!0,t.parseSequences=!0),t}class XU extends N_.Transform{constructor(t={}){super({objectMode:!0}),this.textBuffer="";const n=Y_(t);this.encoding=t.encoding||"utf8",this.decoder=new DU;const r=this.push.bind(this);this.parser=new Z_({featureCallback:n.parseFeatures?r:void 0,directiveCallback:n.parseDirectives?r:void 0,commentCallback:n.parseComments?r:void 0,sequenceCallback:n.parseSequences?r:void 0,errorCallback:i=>this.emit("error",i),bufferSize:n.bufferSize,disableDerivesFromReferences:n.disableDerivesFromReferences})}_addLine(t){t&&this.parser.addLine(t)}_nextText(t){const n=(this.textBuffer+t).split(/\r?\n/);this.textBuffer=n.pop()||"",n.forEach(r=>this._addLine(r))}_transform(t,n,r){this._nextText(this.decoder.write(t)),ym(r)}_flush(t){this.decoder.end&&this._nextText(this.decoder.end()),this.textBuffer!=null&&this._addLine(this.textBuffer),this.parser.finish(),ym(t)}}function KU(e={}){return new XU(e)}function JU(e,t={}){if(!e)return[];const n=Y_(t),r=[],i=r.push.bind(r),a=new Z_({featureCallback:n.parseFeatures?i:void 0,directiveCallback:n.parseDirectives?i:void 0,commentCallback:n.parseComments?i:void 0,sequenceCallback:n.parseSequences?i:void 0,disableDerivesFromReferences:n.disableDerivesFromReferences||!1,bufferSize:1/0,errorCallback:o=>{throw o}});return e.split(/\r?\n/).forEach(a.addLine.bind(a)),a.finish(),r}function eG(e){const t=[],n=[];e.forEach(i=>{"sequence"in i?n.push(i):t.push(i)});let r=t.map(vh).join("");return n.length&&(r+=`##FASTA
643
- `,r+=n.map(bm).join("")),r}class Q_ extends N_.Transform{constructor(t={}){super(Object.assign(t,{objectMode:!0})),this.linesSinceLastSyncMark=0,this.haveWeEmittedData=!1,this.fastaMode=!1,this.minLinesBetweenSyncMarks=t.minSyncLines||100,this.insertVersionDirective=t.insertVersionDirective||!1}_transform(t,n,r){let i;if(!this.haveWeEmittedData&&this.insertVersionDirective){const a=Array.isArray(t)?t[0]:t;"directive"in a&&a.directive!=="gff-version"&&this.push(`##gff-version 3
654
+ `}function Ch(e){function t(n){return"attributes"in n?a4(n):"directive"in n?s4(n):"sequence"in n?km(n):"comment"in n?l4(n):`# (invalid item found during format)
655
+ `}return Array.isArray(e)?e.map(t):t(e)}function BG(e){return e.child_features!==void 0&&e.derived_features!==void 0}const DG=Object.freeze(Object.defineProperty({__proto__:null,escape:pu,escapeColumn:Ar,formatAttributes:o4,formatComment:l4,formatDirective:s4,formatFeature:a4,formatItem:Ch,formatSequence:km,parseAttributes:n4,parseDirective:i4,parseFeature:r4,unescape:du},Symbol.toStringTag,{value:"Module"})),u4={Parent:"child_features",Derives_from:"derived_features"};class c4{constructor(t){this.seqCallback=t,this.currentSequence=void 0}addLine(t){const n=/^>\s*(\S+)\s*(.*)/.exec(t);n?(this._flush(),this.currentSequence={id:n[1],sequence:""},n[2]&&(this.currentSequence.description=n[2].trim())):this.currentSequence&&/\S/.test(t)&&(this.currentSequence.sequence+=t.replace(/\s/g,""))}_flush(){this.currentSequence&&this.seqCallback(this.currentSequence)}finish(){this._flush()}}class f4{constructor(t){this.fastaParser=void 0,this.eof=!1,this.lineNumber=0,this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},this._underConstructionOrphans={};const n=()=>{};this.featureCallback=t.featureCallback||n,this.endCallback=t.endCallback||n,this.commentCallback=t.commentCallback||n,this.errorCallback=t.errorCallback||n,this.directiveCallback=t.directiveCallback||n,this.sequenceCallback=t.sequenceCallback||n,this.disableDerivesFromReferences=t.disableDerivesFromReferences||!1,this.bufferSize=t.bufferSize===void 0?1e3:t.bufferSize}addLine(t){if(this.fastaParser){this.fastaParser.addLine(t);return}if(this.eof)return;if(this.lineNumber+=1,/^\s*[^#\s>]/.test(t)){this._bufferLine(t);return}const n=/^\s*(#+)(.*)/.exec(t);if(n){const[,r]=n;let[,,i]=n;if(r.length===3)this._emitAllUnderConstructionFeatures();else if(r.length===2){const o=i4(t);o&&(o.directive==="FASTA"?(this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new c4(this.sequenceCallback)):this._emitItem(o))}else i=i.replace(/\s*/,""),this._emitItem({comment:i})}else if(!/^\s*$/.test(t))if(/^\s*>/.test(t))this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new c4(this.sequenceCallback),this.fastaParser.addLine(t);else{const r=t.replace(/\r?\n?$/g,"");throw new Error(`GFF3 parse error. Cannot parse '${r}'.`)}}finish(){this._emitAllUnderConstructionFeatures(),this.fastaParser&&this.fastaParser.finish(),this.endCallback()}_emitItem(t){Array.isArray(t)?this.featureCallback(t):"directive"in t?this.directiveCallback(t):"comment"in t&&this.commentCallback(t)}_enforceBufferSizeLimit(t=0){const n=r=>{r&&Array.isArray(r)&&r[0].attributes&&r[0].attributes.ID&&r[0].attributes.ID[0]&&(r[0].attributes.ID.forEach(o=>{delete this._underConstructionById[o],delete this._completedReferences[o]}),r.forEach(o=>{o.child_features&&o.child_features.forEach(a=>n(a)),o.derived_features&&o.derived_features.forEach(a=>n(a))}))};for(;this._underConstructionTopLevel.length+t>this.bufferSize;){const r=this._underConstructionTopLevel.shift();r&&(this._emitItem(r),n(r))}}_emitAllUnderConstructionFeatures(){if(this._underConstructionTopLevel.forEach(this._emitItem.bind(this)),this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},Array.from(Object.values(this._underConstructionOrphans)).length)throw new Error(`some features reference other features that do not exist in the file (or in the same '###' scope). ${Object.keys(this._underConstructionOrphans)}`)}_bufferLine(t){var n,r,i;const a={...r4(t),child_features:[],derived_features:[]},s=((n=a.attributes)===null||n===void 0?void 0:n.ID)||[],u=((r=a.attributes)===null||r===void 0?void 0:r.Parent)||[],l=this.disableDerivesFromReferences?[]:((i=a.attributes)===null||i===void 0?void 0:i.Derives_from)||[];if(!s.length&&!u.length&&!l.length){this._emitItem([a]);return}let c;s.forEach(f=>{const h=this._underConstructionById[f];h?(h[h.length-1].type!==a.type&&this._parseError(`multi-line feature "${f}" has inconsistent types: "${a.type}", "${h[h.length-1].type}"`),h.push(a),c=h):(c=[a],this._enforceBufferSizeLimit(1),!u.length&&!l.length&&this._underConstructionTopLevel.push(c),this._underConstructionById[f]=c,this._resolveReferencesTo(c,f))}),this._resolveReferencesFrom(c||[a],{Parent:u,Derives_from:l},s)}_resolveReferencesTo(t,n){const r=this._underConstructionOrphans[n];r&&(t.forEach(i=>{i.child_features.push(...r.Parent)}),t.forEach(i=>{i.derived_features.push(...r.Derives_from)}),delete this._underConstructionOrphans[n])}_parseError(t){this.eof=!0,this.errorCallback(`${this.lineNumber}: ${t}`)}_resolveReferencesFrom(t,n,r){function i(o,a,s){let u=o[a];u||(u={},o[a]=u);const l=u[s]||!1;return u[s]=!0,l}n.Parent.forEach(o=>{const a=this._underConstructionById[o];if(a){const s=u4.Parent;r.filter(u=>i(this._completedReferences,u,`Parent,${o}`)).length||a.forEach(u=>{u[s].push(t)})}else{let s=this._underConstructionOrphans[o];s||(s={Parent:[],Derives_from:[]},this._underConstructionOrphans[o]=s),s.Parent.push(t)}}),n.Derives_from.forEach(o=>{const a=this._underConstructionById[o];if(a){const s=u4.Derives_from;r.filter(u=>i(this._completedReferences,u,`Derives_from,${o}`)).length||a.forEach(u=>{u[s].push(t)})}else{let s=this._underConstructionOrphans[o];s||(s={Parent:[],Derives_from:[]},this._underConstructionOrphans[o]=s),s.Derives_from.push(t)}})}}function Tm(e){process&&process.nextTick?process.nextTick(e):e()}function h4(e){const t={encoding:"utf8",parseFeatures:!0,parseDirectives:!1,parseSequences:!0,parseComments:!1,bufferSize:1e3,disableDerivesFromReferences:!1,...e};return e.parseAll&&(t.parseFeatures=!0,t.parseDirectives=!0,t.parseComments=!0,t.parseSequences=!0),t}class RG extends e4.Transform{constructor(t={}){super({objectMode:!0}),this.textBuffer="";const n=h4(t);this.encoding=t.encoding||"utf8",this.decoder=new hG;const r=this.push.bind(this);this.parser=new f4({featureCallback:n.parseFeatures?r:void 0,directiveCallback:n.parseDirectives?r:void 0,commentCallback:n.parseComments?r:void 0,sequenceCallback:n.parseSequences?r:void 0,errorCallback:i=>this.emit("error",i),bufferSize:n.bufferSize,disableDerivesFromReferences:n.disableDerivesFromReferences})}_addLine(t){t&&this.parser.addLine(t)}_nextText(t){const n=(this.textBuffer+t).split(/\r?\n/);this.textBuffer=n.pop()||"",n.forEach(r=>this._addLine(r))}_transform(t,n,r){this._nextText(this.decoder.write(t)),Tm(r)}_flush(t){this.decoder.end&&this._nextText(this.decoder.end()),this.textBuffer!=null&&this._addLine(this.textBuffer),this.parser.finish(),Tm(t)}}function FG(e={}){return new RG(e)}function MG(e,t={}){if(!e)return[];const n=h4(t),r=[],i=r.push.bind(r),o=new f4({featureCallback:n.parseFeatures?i:void 0,directiveCallback:n.parseDirectives?i:void 0,commentCallback:n.parseComments?i:void 0,sequenceCallback:n.parseSequences?i:void 0,disableDerivesFromReferences:n.disableDerivesFromReferences||!1,bufferSize:1/0,errorCallback:a=>{throw a}});return e.split(/\r?\n/).forEach(o.addLine.bind(o)),o.finish(),r}function PG(e){const t=[],n=[];e.forEach(i=>{"sequence"in i?n.push(i):t.push(i)});let r=t.map(Ch).join("");return n.length&&(r+=`##FASTA
656
+ `,r+=n.map(km).join("")),r}class d4 extends e4.Transform{constructor(t={}){super(Object.assign(t,{objectMode:!0})),this.linesSinceLastSyncMark=0,this.haveWeEmittedData=!1,this.fastaMode=!1,this.minLinesBetweenSyncMarks=t.minSyncLines||100,this.insertVersionDirective=t.insertVersionDirective||!1}_transform(t,n,r){let i;if(!this.haveWeEmittedData&&this.insertVersionDirective){const o=Array.isArray(t)?t[0]:t;"directive"in o&&o.directive!=="gff-version"&&this.push(`##gff-version 3
644
657
  `)}if("sequence"in t&&!this.fastaMode&&(this.push(`##FASTA
645
- `),this.fastaMode=!0),Array.isArray(t)?i=t.map(vh).join(""):i=vh(t),this.push(i),this.linesSinceLastSyncMark>=this.minLinesBetweenSyncMarks)this.push(`###
646
- `),this.linesSinceLastSyncMark=0;else{let a=0;for(let o=0;o<i.length;o+=1)i[o]===`
647
- `&&(a+=1);this.linesSinceLastSyncMark+=a}this.haveWeEmittedData=!0,ym(r)}}function tG(e={}){return new Q_(e)}function nG(e,t,n={}){const r={insertVersionDirective:!0,...n};return new Promise((i,a)=>{e.pipe(new Q_(r)).on("end",()=>i(null)).on("error",a).pipe(t)})}const rG=Object.freeze(Object.defineProperty({__proto__:null,default:{parseStream:KU,parseStringSync:JU,formatSync:eG,formatStream:tG,formatFile:nG,util:QU}},Symbol.toStringTag,{value:"Module"}));he.GenomeSpy=Lv,he.embed=L7,he.favIcon=P7,he.html=Xe,he.icon=M7,he.loadSpec=Nv,Object.defineProperty(he,Symbol.toStringTag,{value:"Module"})});
658
+ `),this.fastaMode=!0),Array.isArray(t)?i=t.map(Ch).join(""):i=Ch(t),this.push(i),this.linesSinceLastSyncMark>=this.minLinesBetweenSyncMarks)this.push(`###
659
+ `),this.linesSinceLastSyncMark=0;else{let o=0;for(let a=0;a<i.length;a+=1)i[a]===`
660
+ `&&(o+=1);this.linesSinceLastSyncMark+=o}this.haveWeEmittedData=!0,Tm(r)}}function LG(e={}){return new d4(e)}function NG(e,t,n={}){const r={insertVersionDirective:!0,...n};return new Promise((i,o)=>{e.pipe(new d4(r)).on("end",()=>i(null)).on("error",o).pipe(t)})}const OG=Object.freeze(Object.defineProperty({__proto__:null,default:{parseStream:FG,parseStringSync:MG,formatSync:PG,formatStream:LG,formatFile:NG,util:DG}},Symbol.toStringTag,{value:"Module"}));de.GenomeSpy=Jv,de.embed=bM,de.favIcon=mM,de.html=Je,de.icon=gM,de.loadSpec=ex,Object.defineProperty(de,Symbol.toStringTag,{value:"Module"})});