@genome-spy/core 0.41.0 → 0.42.1

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 (117) hide show
  1. package/dist/bundle/index--cKb-dKG.js +615 -0
  2. package/dist/bundle/{index-gn8bhQ8w.js → index-d7k3kkin.js} +365 -366
  3. package/dist/bundle/index.es.js +4225 -4040
  4. package/dist/bundle/index.js +122 -79
  5. package/dist/schema.json +58 -6
  6. package/dist/src/data/sources/dynamic/axisGenomeSource.js +1 -1
  7. package/dist/src/data/sources/dynamic/axisTickSource.js +3 -3
  8. package/dist/src/data/sources/dynamic/bamSource.d.ts +3 -21
  9. package/dist/src/data/sources/dynamic/bamSource.d.ts.map +1 -1
  10. package/dist/src/data/sources/dynamic/bamSource.js +38 -55
  11. package/dist/src/data/sources/dynamic/bigBedSource.d.ts +2 -38
  12. package/dist/src/data/sources/dynamic/bigBedSource.d.ts.map +1 -1
  13. package/dist/src/data/sources/dynamic/bigBedSource.js +14 -71
  14. package/dist/src/data/sources/dynamic/bigWigSource.d.ts +4 -42
  15. package/dist/src/data/sources/dynamic/bigWigSource.d.ts.map +1 -1
  16. package/dist/src/data/sources/dynamic/bigWigSource.js +23 -60
  17. package/dist/src/data/sources/dynamic/gff3Source.d.ts.map +1 -1
  18. package/dist/src/data/sources/dynamic/gff3Source.js +1 -0
  19. package/dist/src/data/sources/dynamic/indexedFastaSource.d.ts +2 -20
  20. package/dist/src/data/sources/dynamic/indexedFastaSource.d.ts.map +1 -1
  21. package/dist/src/data/sources/dynamic/indexedFastaSource.js +23 -41
  22. package/dist/src/data/sources/dynamic/singleAxisLazySource.d.ts +23 -4
  23. package/dist/src/data/sources/dynamic/singleAxisLazySource.d.ts.map +1 -1
  24. package/dist/src/data/sources/dynamic/singleAxisLazySource.js +29 -4
  25. package/dist/src/data/sources/dynamic/singleAxisWindowedSource.d.ts +60 -0
  26. package/dist/src/data/sources/dynamic/singleAxisWindowedSource.d.ts.map +1 -0
  27. package/dist/src/data/sources/dynamic/singleAxisWindowedSource.js +152 -0
  28. package/dist/src/data/sources/dynamic/tabixSource.d.ts +6 -40
  29. package/dist/src/data/sources/dynamic/tabixSource.d.ts.map +1 -1
  30. package/dist/src/data/sources/dynamic/tabixSource.js +29 -78
  31. package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
  32. package/dist/src/data/transforms/regexFold.js +8 -0
  33. package/dist/src/data/transforms/regexFold.test.js +28 -0
  34. package/dist/src/encoder/encoder.d.ts +6 -1
  35. package/dist/src/encoder/encoder.d.ts.map +1 -1
  36. package/dist/src/encoder/encoder.js +10 -0
  37. package/dist/src/genomeSpy.d.ts +14 -0
  38. package/dist/src/genomeSpy.d.ts.map +1 -1
  39. package/dist/src/genomeSpy.js +114 -8
  40. package/dist/src/gl/arrayBuilder.js +1 -1
  41. package/dist/src/gl/colorUtils.d.ts.map +1 -0
  42. package/dist/src/{scale → gl}/colorUtils.js +1 -1
  43. package/dist/src/gl/dataToVertices.d.ts +1 -9
  44. package/dist/src/gl/dataToVertices.d.ts.map +1 -1
  45. package/dist/src/gl/dataToVertices.js +33 -73
  46. package/dist/src/{scale → gl}/glslScaleGenerator.d.ts +23 -1
  47. package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -0
  48. package/dist/src/{scale → gl}/glslScaleGenerator.js +59 -8
  49. package/dist/src/gl/webGLHelper.d.ts +6 -21
  50. package/dist/src/gl/webGLHelper.d.ts.map +1 -1
  51. package/dist/src/gl/webGLHelper.js +8 -39
  52. package/dist/src/img/90-ring-with-bg.svg +1 -0
  53. package/dist/src/img/README.md +5 -0
  54. package/dist/src/marks/link.d.ts +7 -0
  55. package/dist/src/marks/link.d.ts.map +1 -1
  56. package/dist/src/marks/link.js +74 -39
  57. package/dist/src/marks/mark.d.ts +2 -1
  58. package/dist/src/marks/mark.d.ts.map +1 -1
  59. package/dist/src/marks/mark.js +31 -2
  60. package/dist/src/marks/{pointMark.d.ts → point.d.ts} +1 -1
  61. package/dist/src/marks/point.d.ts.map +1 -0
  62. package/dist/src/marks/{pointMark.js → point.js} +3 -3
  63. package/dist/src/marks/{rectMark.d.ts → rect.d.ts} +1 -1
  64. package/dist/src/marks/rect.d.ts.map +1 -0
  65. package/dist/src/marks/{rectMark.js → rect.js} +2 -3
  66. package/dist/src/marks/rect.vertex.glsl.js +2 -0
  67. package/dist/src/marks/rule.js +3 -3
  68. package/dist/src/marks/text.d.ts.map +1 -1
  69. package/dist/src/marks/text.js +19 -20
  70. package/dist/src/spec/data.d.ts +28 -13
  71. package/dist/src/spec/mark.d.ts +0 -8
  72. package/dist/src/styles/genome-spy.css.d.ts +1 -1
  73. package/dist/src/styles/genome-spy.css.d.ts.map +1 -1
  74. package/dist/src/styles/genome-spy.css.js +33 -4
  75. package/dist/src/styles/genome-spy.scss +40 -4
  76. package/dist/src/types/viewContext.d.ts +9 -0
  77. package/dist/src/utils/binnedIndex.d.ts +2 -0
  78. package/dist/src/utils/binnedIndex.d.ts.map +1 -1
  79. package/dist/src/utils/binnedIndex.js +59 -10
  80. package/dist/src/utils/binnedIndex.test.js +46 -0
  81. package/dist/src/utils/indexer.d.ts.map +1 -1
  82. package/dist/src/utils/indexer.js +10 -1
  83. package/dist/src/utils/indexer.test.js +2 -0
  84. package/dist/src/view/gridView.d.ts.map +1 -1
  85. package/dist/src/view/gridView.js +2 -0
  86. package/dist/src/view/layerView.d.ts.map +1 -1
  87. package/dist/src/view/layerView.js +2 -0
  88. package/dist/src/view/unitView.d.ts +1 -7
  89. package/dist/src/view/unitView.d.ts.map +1 -1
  90. package/dist/src/view/unitView.js +4 -11
  91. package/dist/src/view/view.d.ts +6 -0
  92. package/dist/src/view/view.d.ts.map +1 -1
  93. package/dist/src/view/view.js +11 -0
  94. package/dist/src/view/view.test.js +1 -1
  95. package/package.json +3 -3
  96. package/dist/bundle/index-Cbz74kpR.js +0 -638
  97. package/dist/src/data/sources/dynamic/windowedMixin.d.ts +0 -32
  98. package/dist/src/data/sources/dynamic/windowedMixin.d.ts.map +0 -1
  99. package/dist/src/data/sources/dynamic/windowedMixin.js +0 -53
  100. package/dist/src/gl/rect.vertex.glsl.js +0 -2
  101. package/dist/src/marks/pointMark.d.ts.map +0 -1
  102. package/dist/src/marks/rectMark.d.ts.map +0 -1
  103. package/dist/src/scale/colorUtils.d.ts.map +0 -1
  104. package/dist/src/scale/glslScaleGenerator.d.ts.map +0 -1
  105. /package/dist/src/{scale → gl}/colorUtils.d.ts +0 -0
  106. /package/dist/src/{gl → marks}/link.fragment.glsl.js +0 -0
  107. /package/dist/src/{gl → marks}/link.vertex.glsl.js +0 -0
  108. /package/dist/src/{gl → marks}/point.common.glsl.js +0 -0
  109. /package/dist/src/{gl → marks}/point.fragment.glsl.js +0 -0
  110. /package/dist/src/{gl → marks}/point.vertex.glsl.js +0 -0
  111. /package/dist/src/{gl → marks}/rect.fragment.glsl.js +0 -0
  112. /package/dist/src/{gl → marks}/rule.common.glsl.js +0 -0
  113. /package/dist/src/{gl → marks}/rule.fragment.glsl.js +0 -0
  114. /package/dist/src/{gl → marks}/rule.vertex.glsl.js +0 -0
  115. /package/dist/src/{gl → marks}/text.common.glsl.js +0 -0
  116. /package/dist/src/{gl → marks}/text.fragment.glsl.js +0 -0
  117. /package/dist/src/{gl → marks}/text.vertex.glsl.js +0 -0
@@ -1,15 +1,23 @@
1
- (function(ce,ve){typeof exports=="object"&&typeof module<"u"?ve(exports):typeof define=="function"&&define.amd?define(["exports"],ve):(ce=typeof globalThis<"u"?globalThis:ce||self,ve(ce.genomeSpyEmbed={}))})(this,function(ce){"use strict";var wz=Object.defineProperty;var vz=(ce,ve,Ce)=>ve in ce?wz(ce,ve,{enumerable:!0,configurable:!0,writable:!0,value:Ce}):ce[ve]=Ce;var St=(ce,ve,Ce)=>(vz(ce,typeof ve!="symbol"?ve+"":ve,Ce),Ce),Tg=(ce,ve,Ce)=>{if(!ve.has(ce))throw TypeError("Cannot "+Ce)};var $=(ce,ve,Ce)=>(Tg(ce,ve,"read from private field"),Ce?Ce.call(ce):ve.get(ce)),se=(ce,ve,Ce)=>{if(ve.has(ce))throw TypeError("Cannot add the same private member more than once");ve instanceof WeakSet?ve.add(ce):ve.set(ce,Ce)},Ct=(ce,ve,Ce,vo)=>(Tg(ce,ve,"write to private field"),vo?vo.call(ce,Ce):ve.set(ce,Ce),Ce);var $E=(ce,ve,Ce,vo)=>({set _(ef){Ct(ce,ve,ef,Ce)},get _(){return $(ce,ve,vo)}}),te=(ce,ve,Ce)=>(Tg(ce,ve,"access private method"),Ce);var Nl,Bg,Ol,Dg,zl,Rg,Ca,Ul,Gl,ho,Kl,Hl,Fg,pr,ka,yt,Xn,di,Bc,KE,Ia,Oc,gr,yo,Vl,Mg,Dc,JE,Sg,xz,jl,Pg,ql,Zl,mr,Ta,Ba,Jt,po,Da,br,wo,Rc,e_,go,Jl,Wl,Lg,Yl,Ng,Ql,Og,Fc,t_,Ra,zc,Mc,n_,Fa,Ma,mo,Xl,bo;function ve(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 Ce(e,t,n){return e.fields=t||[],e.fname=n,e}function vo(e){return e==null?null:e.fname}function ef(e){return e==null?null:e.fields}function r_(e){return e.length===1?i_(e[0]):o_(e)}const i_=e=>function(t){return t[e]},o_=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 a_(e){const t=[],n=e.length;let r=null,i=0,o="",a,s,f;e=e+"";function l(){t.push(o+e.substring(a,s)),o="",a=s+1}for(a=s=0;s<n;++s)if(f=e[s],f==="\\")o+=e.substring(a,s),o+=e.substring(++s,++s),a=s;else if(f===r)l(),r=null,i=-1;else{if(r)continue;a===i&&f==='"'||a===i&&f==="'"?(a=s+1,r=f):f==="."&&!i?s>a?l():a=s+1:f==="["?(s>a&&l(),i=a=s+1):f==="]"&&(i||Qe("Access path missing open bracket: "+e),i>0&&l(),i=0,a=s+1)}return i&&Qe("Access path missing closing bracket: "+e),r&&Qe("Access path missing closing quote: "+e),s>a&&(s++,l()),t}function tf(e,t,n){const r=a_(e);return e=r.length===1?r[0]:e,Ce((n&&n.get||r_)(r),[e],t||e)}tf("id");const nf=Ce(e=>e,[],"identity");Ce(()=>0,[],"zero"),Ce(()=>1,[],"one"),Ce(()=>!0,[],"true"),Ce(()=>!1,[],"false");var Ft=Array.isArray;function Mt(e){return e===Object(e)}function mn(e){return e[e.length-1]}function Pa(e){return e==null||e===""?null:+e}const zg=e=>t=>e*Math.exp(t),Ug=e=>t=>Math.log(e*t),s_=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),l_=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,rf=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function Uc(e,t,n,r){const i=n(e[0]),o=n(mn(e)),a=(o-i)*t;return[r(i-a),r(o-a)]}function f_(e,t){return Uc(e,t,Pa,nf)}function u_(e,t){var n=Math.sign(e[0]);return Uc(e,t,Ug(n),zg(n))}function c_(e,t,n){return Uc(e,t,rf(n),rf(1/n))}function of(e,t,n,r,i){const o=r(e[0]),a=r(mn(e)),s=t!=null?r(t):(o+a)/2;return[i(s+(o-s)*n),i(s+(a-s)*n)]}function Gg(e,t,n){return of(e,t,n,Pa,nf)}function Hg(e,t,n){const r=Math.sign(e[0]);return of(e,t,n,Ug(r),zg(r))}function Gc(e,t,n,r){return of(e,t,n,rf(r),rf(1/r))}function h_(e,t,n,r){return of(e,t,n,s_(r),l_(r))}function Hc(e){return e!=null?Ft(e)?e:[e]:[]}function d_(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 Pt(e){return typeof e=="function"}const p_="descending";function Vg(e,t,n){n=n||{},t=Hc(t)||[];const r=[],i=[],o={},a=n.comparator||g_;return Hc(e).forEach((s,f)=>{s!=null&&(r.push(t[f]===p_?-1:1),i.push(s=Pt(s)?s:tf(s,null,n)),(ef(s)||[]).forEach(l=>o[l]=1))}),i.length===0?null:Ce(a(i,r),Object.keys(o))}const jg=(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),g_=(e,t)=>e.length===1?m_(e[0],t[0]):b_(e,t,e.length),m_=(e,t)=>function(n,r){return jg(e(n),e(r))*t},b_=(e,t,n)=>(t.push(0),function(r,i){let o,a=0,s=-1;for(;a===0&&++s<n;)o=e[s],a=jg(o(r),o(i));return a*t[s]});function y_(e){return Pt(e)?e:()=>e}function Vc(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 w_=Object.prototype.hasOwnProperty;function pi(e,t){return w_.call(e,t)}function La(e){return typeof e=="boolean"}function v_(e){return Object.prototype.toString.call(e)==="[object Date]"}function x_(e){return e&&Pt(e[Symbol.iterator])}function kt(e){return typeof e=="number"}function A_(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function Pe(e){return typeof e=="string"}function qg(e,t){const n=e[0],r=mn(e),i=+t;return i?i===1?r:n+i*(r-n):n}function af(e){return e&&mn(e)-e[0]||0}function sf(e){return Ft(e)?"["+e.map(sf)+"]":Mt(e)||Pe(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function E_(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const __=e=>kt(e)||v_(e)?e:Date.parse(e);function S_(e,t){return t=t||__,e==null||e===""?null:t(e)}function C_(e){return e==null||e===""?null:e+""}function lf(e){const t={},n=e.length;for(let r=0;r<n;++r)t[e[r]]=!0;return t}var Zg={},jc={},qc=34,Na=10,Zc=13;function Wg(e){return new Function("d","return {"+e.map(function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'}).join(",")+"}")}function k_(e,t){var n=Wg(e);return function(r,i){return t(n(r),i,e)}}function Yg(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 I_(e){return e<0?"-"+Lt(-e,6):e>9999?"+"+Lt(e,6):Lt(e,4)}function T_(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),r=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":I_(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 Qg(e){var t=new RegExp('["'+e+`
2
- \r]`),n=e.charCodeAt(0);function r(c,h){var d,p,b=i(c,function(y,w){if(d)return d(y,w-1);p=y,d=h?k_(y,h):Wg(y)});return b.columns=p||[],b}function i(c,h){var d=[],p=c.length,b=0,y=0,w,_=p<=0,C=!1;c.charCodeAt(p-1)===Na&&--p,c.charCodeAt(p-1)===Zc&&--p;function S(){if(_)return jc;if(C)return C=!1,Zg;var B,I=b,F;if(c.charCodeAt(I)===qc){for(;b++<p&&c.charCodeAt(b)!==qc||c.charCodeAt(++b)===qc;);return(B=b)>=p?_=!0:(F=c.charCodeAt(b++))===Na?C=!0:F===Zc&&(C=!0,c.charCodeAt(b)===Na&&++b),c.slice(I+1,B-1).replace(/""/g,'"')}for(;b<p;){if((F=c.charCodeAt(B=b++))===Na)C=!0;else if(F===Zc)C=!0,c.charCodeAt(b)===Na&&++b;else if(F!==n)continue;return c.slice(I,B)}return _=!0,c.slice(I,p)}for(;(w=S())!==jc;){for(var T=[];w!==Zg&&w!==jc;)T.push(w),w=S();h&&(T=h(T,y++))==null||d.push(T)}return d}function o(c,h){return c.map(function(d){return h.map(function(p){return u(d[p])}).join(e)})}function a(c,h){return h==null&&(h=Yg(c)),[h.map(u).join(e)].concat(o(c,h)).join(`
3
- `)}function s(c,h){return h==null&&(h=Yg(c)),o(c,h).join(`
4
- `)}function f(c){return c.map(l).join(`
5
- `)}function l(c){return c.map(u).join(e)}function u(c){return c==null?"":c instanceof Date?T_(c):t.test(c+="")?'"'+c.replace(/"/g,'""')+'"':c}return{parse:r,parseRows:i,format:a,formatBody:s,formatRows:f,formatRow:l,formatValue:u}}var B_=Qg(" "),D_=B_.parseRows;function R_(e){return e}function F_(e){if(e==null)return R_;var t,n,r=e.scale[0],i=e.scale[1],o=e.translate[0],a=e.translate[1];return function(s,f){f||(t=n=0);var l=2,u=s.length,c=new Array(u);for(c[0]=(t+=s[0])*r+o,c[1]=(n+=s[1])*i+a;l<u;)c[l]=s[l],++l;return c}}function M_(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}function P_(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return Xg(e,n)})}:Xg(e,t)}function Xg(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,o=$g(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 $g(e,t){var n=F_(e.transform),r=e.arcs;function i(u,c){c.length&&c.pop();for(var h=r[u<0?~u:u],d=0,p=h.length;d<p;++d)c.push(n(h[d],d));u<0&&M_(c,p)}function o(u){return n(u)}function a(u){for(var c=[],h=0,d=u.length;h<d;++h)i(u[h],c);return c.length<2&&c.push(c[0]),c}function s(u){for(var c=a(u);c.length<4;)c.push(c[0]);return c}function f(u){return u.map(s)}function l(u){var c=u.type,h;switch(c){case"GeometryCollection":return{type:c,geometries:u.geometries.map(l)};case"Point":h=o(u.coordinates);break;case"MultiPoint":h=u.coordinates.map(o);break;case"LineString":h=a(u.arcs);break;case"MultiLineString":h=u.arcs.map(a);break;case"Polygon":h=f(u.arcs);break;case"MultiPolygon":h=u.arcs.map(f);break;default:return null}return{type:c,coordinates:h}}return l(t)}function L_(e,t){var n={},r={},i={},o=[],a=-1;t.forEach(function(l,u){var c=e.arcs[l<0?~l:l],h;c.length<3&&!c[1][0]&&!c[1][1]&&(h=t[++a],t[a]=l,t[u]=h)}),t.forEach(function(l){var u=s(l),c=u[0],h=u[1],d,p;if(d=i[c])if(delete i[d.end],d.push(l),d.end=h,p=r[h]){delete r[p.start];var b=p===d?d:d.concat(p);r[b.start=d.start]=i[b.end=p.end]=b}else r[d.start]=i[d.end]=d;else if(d=r[h])if(delete r[d.start],d.unshift(l),d.start=c,p=i[c]){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=c]=i[d.end=h]=d});function s(l){var u=e.arcs[l<0?~l:l],c=u[0],h;return e.transform?(h=[0,0],u.forEach(function(d){h[0]+=d[0],h[1]+=d[1]})):h=u[u.length-1],l<0?[h,c]:[c,h]}function f(l,u){for(var c in l){var h=l[c];delete u[h.start],delete h.start,delete h.end,h.forEach(function(d){n[d<0?~d:d]=1}),o.push(h)}}return f(i,r),f(r,i),t.forEach(function(l){n[l<0?~l:l]||o.push([l])}),o}function N_(e){return $g(e,O_.apply(this,arguments))}function O_(e,t,n){var r,i,o;if(arguments.length>1)r=z_(e,t,n);else for(i=0,r=new Array(o=e.arcs.length);i<o;++i)r[i]=i;return{type:"MultiLineString",arcs:L_(e,r)}}function z_(e,t,n){var r=[],i=[],o;function a(c){var h=c<0?~c:c;(i[h]||(i[h]=[])).push({i:c,g:o})}function s(c){c.forEach(a)}function f(c){c.forEach(s)}function l(c){c.forEach(f)}function u(c){switch(o=c,c.type){case"GeometryCollection":c.geometries.forEach(u);break;case"LineString":s(c.arcs);break;case"MultiLineString":case"Polygon":f(c.arcs);break;case"MultiPolygon":l(c.arcs);break}}return u(t),i.forEach(n==null?function(c){r.push(c[0].i)}:function(c){n(c[0].g,c[c.length-1].g)&&r.push(c[0].i)}),r}function Oa(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function U_(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function ff(e){let t,n,r;e.length!==2?(t=Oa,n=(s,f)=>Oa(e(s),f),r=(s,f)=>e(s)-f):(t=e===Oa||e===U_?e:G_,n=e,r=e);function i(s,f,l=0,u=s.length){if(l<u){if(t(f,f)!==0)return u;do{const c=l+u>>>1;n(s[c],f)<0?l=c+1:u=c}while(l<u)}return l}function o(s,f,l=0,u=s.length){if(l<u){if(t(f,f)!==0)return u;do{const c=l+u>>>1;n(s[c],f)<=0?l=c+1:u=c}while(l<u)}return l}function a(s,f,l=0,u=s.length){const c=i(s,f,l,u-1);return c>l&&r(s[c-1],f)>-r(s[c],f)?c-1:c}return{left:i,center:a,right:o}}function G_(){return 0}function Kg(e){return e===null?NaN:+e}const Jg=ff(Oa),Wc=Jg.right;Jg.left,ff(Kg).center;const xo=Wc;function H_(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 gi extends Map{constructor(t,n=q_){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(em(this,t))}has(t){return super.has(em(this,t))}set(t,n){return super.set(V_(this,t),n)}delete(t){return super.delete(j_(this,t))}}function em({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function V_({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function j_({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function q_(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Yc(e){return e}function uf(e,...t){return tm(e,Yc,Yc,t)}function Z_(e,...t){return tm(e,Array.from,Yc,t)}function tm(e,t,n,r){return function i(o,a){if(a>=r.length)return n(o);const s=new gi,f=r[a++];let l=-1;for(const u of o){const c=f(u,++l,o),h=s.get(c);h?h.push(u):s.set(c,[u])}for(const[u,c]of s)s.set(u,i(c,a));return t(s)}(e,0)}var Qc=Math.sqrt(50),Xc=Math.sqrt(10),$c=Math.sqrt(2);function cf(e,t,n){var r,i=-1,o,a,s;if(t=+t,e=+e,n=+n,e===t&&n>0)return[e];if((r=t<e)&&(o=e,e=t,t=o),(s=nm(e,t,n))===0||!isFinite(s))return[];if(s>0){let f=Math.round(e/s),l=Math.round(t/s);for(f*s<e&&++f,l*s>t&&--l,a=new Array(o=l-f+1);++i<o;)a[i]=(f+i)*s}else{s=-s;let f=Math.round(e*s),l=Math.round(t*s);for(f/s<e&&++f,l/s>t&&--l,a=new Array(o=l-f+1);++i<o;)a[i]=(f+i)/s}return r&&a.reverse(),a}function nm(e,t,n){var r=(t-e)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),o=r/Math.pow(10,i);return i>=0?(o>=Qc?10:o>=Xc?5:o>=$c?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=Qc?10:o>=Xc?5:o>=$c?2:1)}function mi(e,t,n){var r=Math.abs(t-e)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=Qc?i*=10:o>=Xc?i*=5:o>=$c&&(i*=2),t<e?-i:i}function rm(e,t,n=Kg){if(r=e.length){if((t=+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 za(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 hf(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 W_(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function df(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 Ao(e){return e=df(Math.abs(e)),e?e[1]:NaN}function Y_(e,t){return function(n,r){for(var i=n.length,o=[],a=0,s=e[0],f=0;i>0&&s>0&&(f+s+1>r&&(s=Math.max(1,r-f)),o.push(n.substring(i-=s,i+s)),!((f+=s+1)>r));)s=e[a=(a+1)%e.length];return o.reverse().join(t)}}function Q_(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var X_=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Ar(e){if(!(t=X_.exec(e)))throw new Error("invalid format: "+e);var t;return new Kc({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]})}Ar.prototype=Kc.prototype;function Kc(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+""}Kc.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 $_(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 im;function K_(e,t){var n=df(e,t);if(!n)return e+"";var r=n[0],i=n[1],o=i-(im=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")+df(e,Math.max(0,t+o-1))[0]}function om(e,t){var n=df(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 am={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:W_,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)=>om(e*100,t),r:om,s:K_,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function sm(e){return e}var lm=Array.prototype.map,fm=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function J_(e){var t=e.grouping===void 0||e.thousands===void 0?sm:Y_(lm.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?sm:Q_(lm.call(e.numerals,String)),a=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",f=e.nan===void 0?"NaN":e.nan+"";function l(c){c=Ar(c);var h=c.fill,d=c.align,p=c.sign,b=c.symbol,y=c.zero,w=c.width,_=c.comma,C=c.precision,S=c.trim,T=c.type;T==="n"?(_=!0,T="g"):am[T]||(C===void 0&&(C=12),S=!0,T="g"),(y||h==="0"&&d==="=")&&(y=!0,h="0",d="=");var B=b==="$"?n:b==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",I=b==="$"?r:/[%p]/.test(T)?a:"",F=am[T],P=/[defgprs%]/.test(T);C=C===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,C)):Math.max(0,Math.min(20,C));function j(O){var re=B,ae=I,pe,Te,Xe;if(T==="c")ae=F(O)+ae,O="";else{O=+O;var De=O<0||1/O<0;if(O=isNaN(O)?f:F(Math.abs(O),C),S&&(O=$_(O)),De&&+O==0&&p!=="+"&&(De=!1),re=(De?p==="("?p:s:p==="-"||p==="("?"":p)+re,ae=(T==="s"?fm[8+im/3]:"")+ae+(De&&p==="("?")":""),P){for(pe=-1,Te=O.length;++pe<Te;)if(Xe=O.charCodeAt(pe),48>Xe||Xe>57){ae=(Xe===46?i+O.slice(pe+1):O.slice(pe))+ae,O=O.slice(0,pe);break}}}_&&!y&&(O=t(O,1/0));var $e=re.length+O.length+ae.length,Ze=$e<w?new Array(w-$e+1).join(h):"";switch(_&&y&&(O=t(Ze+O,Ze.length?w-ae.length:1/0),Ze=""),d){case"<":O=re+O+ae+Ze;break;case"=":O=re+Ze+O+ae;break;case"^":O=Ze.slice(0,$e=Ze.length>>1)+re+O+ae+Ze.slice($e);break;default:O=Ze+re+O+ae;break}return o(O)}return j.toString=function(){return c+""},j}function u(c,h){var d=l((c=Ar(c),c.type="f",c)),p=Math.max(-8,Math.min(8,Math.floor(Ao(h)/3)))*3,b=Math.pow(10,-p),y=fm[8+p/3];return function(w){return d(b*w)+y}}return{format:l,formatPrefix:u}}var pf,pt,Jc;e4({thousands:",",grouping:[3],currency:["$",""]});function e4(e){return pf=J_(e),pt=pf.format,Jc=pf.formatPrefix,pf}function um(e){return Math.max(0,-Ao(Math.abs(e)))}function cm(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ao(t)/3)))*3-Ao(Math.abs(e)))}function hm(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Ao(t)-Ao(e))+1}var eh=new Date,th=new Date;function at(e,t,n,r){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=function(o){return e(o=new Date(+o)),o},i.ceil=function(o){return e(o=new Date(o-1)),t(o,1),e(o),o},i.round=function(o){var a=i(o),s=i.ceil(o);return o-a<s-o?a:s},i.offset=function(o,a){return t(o=new Date(+o),a==null?1:Math.floor(a)),o},i.range=function(o,a,s){var f=[],l;if(o=i.ceil(o),s=s==null?1:Math.floor(s),!(o<a)||!(s>0))return f;do f.push(l=new Date(+o)),t(o,s),e(o);while(l<o&&o<a);return f},i.filter=function(o){return at(function(a){if(a>=a)for(;e(a),!o(a);)a.setTime(a-1)},function(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=function(o,a){return eh.setTime(+o),th.setTime(+a),e(eh),e(th),Math.floor(n(eh,th))},i.every=function(o){return o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?function(a){return r(a)%o===0}:function(a){return i.count(0,a)%o===0}):i}),i}var gf=at(function(){},function(e,t){e.setTime(+e+t)},function(e,t){return t-e});gf.every=function(e){return e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?at(function(t){t.setTime(Math.floor(t/e)*e)},function(t,n){t.setTime(+t+n*e)},function(t,n){return(n-t)/e}):gf};const nh=gf;gf.range;const Jn=1e3,en=Jn*60,er=en*60,bi=er*24,rh=bi*7,dm=bi*30,ih=bi*365;var pm=at(function(e){e.setTime(e-e.getMilliseconds())},function(e,t){e.setTime(+e+t*Jn)},function(e,t){return(t-e)/Jn},function(e){return e.getUTCSeconds()});const Er=pm;pm.range;var gm=at(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*Jn)},function(e,t){e.setTime(+e+t*en)},function(e,t){return(t-e)/en},function(e){return e.getMinutes()});const oh=gm;gm.range;var mm=at(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*Jn-e.getMinutes()*en)},function(e,t){e.setTime(+e+t*er)},function(e,t){return(t-e)/er},function(e){return e.getHours()});const ah=mm;mm.range;var bm=at(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*en)/bi,e=>e.getDate()-1);const yi=bm;bm.range;function wi(e){return at(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*en)/rh})}var Ua=wi(0),mf=wi(1),t4=wi(2),n4=wi(3),Eo=wi(4),r4=wi(5),i4=wi(6);Ua.range,mf.range,t4.range,n4.range,Eo.range,r4.range,i4.range;var ym=at(function(e){e.setDate(1),e.setHours(0,0,0,0)},function(e,t){e.setMonth(e.getMonth()+t)},function(e,t){return t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12},function(e){return e.getMonth()});const bf=ym;ym.range;var sh=at(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()});sh.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:at(function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n*e)})};const _r=sh;sh.range;var wm=at(function(e){e.setUTCSeconds(0,0)},function(e,t){e.setTime(+e+t*en)},function(e,t){return(t-e)/en},function(e){return e.getUTCMinutes()});const lh=wm;wm.range;var vm=at(function(e){e.setUTCMinutes(0,0,0)},function(e,t){e.setTime(+e+t*er)},function(e,t){return(t-e)/er},function(e){return e.getUTCHours()});const fh=vm;vm.range;var xm=at(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/bi},function(e){return e.getUTCDate()-1});const vi=xm;xm.range;function xi(e){return at(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/rh})}var Ga=xi(0),yf=xi(1),o4=xi(2),a4=xi(3),_o=xi(4),s4=xi(5),l4=xi(6);Ga.range,yf.range,o4.range,a4.range,_o.range,s4.range,l4.range;var Am=at(function(e){e.setUTCDate(1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCMonth(e.getUTCMonth()+t)},function(e,t){return t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12},function(e){return e.getUTCMonth()});const wf=Am;Am.range;var uh=at(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()});uh.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:at(function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})};const Sr=uh;uh.range;function Em(e,t,n,r,i,o){const a=[[Er,1,Jn],[Er,5,5*Jn],[Er,15,15*Jn],[Er,30,30*Jn],[o,1,en],[o,5,5*en],[o,15,15*en],[o,30,30*en],[i,1,er],[i,3,3*er],[i,6,6*er],[i,12,12*er],[r,1,bi],[r,2,2*bi],[n,1,rh],[t,1,dm],[t,3,3*dm],[e,1,ih]];function s(l,u,c){const h=u<l;h&&([l,u]=[u,l]);const d=c&&typeof c.range=="function"?c:f(l,u,c),p=d?d.range(l,+u+1):[];return h?p.reverse():p}function f(l,u,c){const h=Math.abs(u-l)/c,d=ff(([,,y])=>y).right(a,h);if(d===a.length)return e.every(mi(l/ih,u/ih,c));if(d===0)return nh.every(Math.max(mi(l,u,c),1));const[p,b]=a[h/a[d-1][2]<a[d][2]/h?d-1:d];return p.every(b)}return[s,f]}const[f4,u4]=Em(Sr,wf,Ga,vi,fh,lh),[c4,h4]=Em(_r,bf,Ua,yi,ah,oh),Ha="year",Va="quarter",ja="month",qa="week",Za="date",vf="day",ch="dayofyear",Wa="hours",Ya="minutes",Qa="seconds",xf="milliseconds";[Ha,Va,ja,qa,Za,vf,ch,Wa,Ya,Qa,xf].reduce((e,t,n)=>(e[t]=1+n,e),{});const d4={[Ha]:_r,[Va]:bf.every(3),[ja]:bf,[qa]:Ua,[Za]:yi,[vf]:yi,[ch]:yi,[Wa]:ah,[Ya]:oh,[Qa]:Er,[xf]:nh},p4={[Ha]:Sr,[Va]:wf.every(3),[ja]:wf,[qa]:Ga,[Za]:vi,[vf]:vi,[ch]:vi,[Wa]:fh,[Ya]:lh,[Qa]:Er,[xf]:nh};function g4(e){return d4[e]}function m4(e){return p4[e]}function hh(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 dh(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 Xa(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function _m(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,o=e.days,a=e.shortDays,s=e.months,f=e.shortMonths,l=$a(i),u=Ka(i),c=$a(o),h=Ka(o),d=$a(a),p=Ka(a),b=$a(s),y=Ka(s),w=$a(f),_=Ka(f),C={a:De,A:$e,b:Ze,B:Ke,c:null,d:Bm,e:Bm,f:z4,g:Q4,G:$4,H:L4,I:N4,j:O4,L:Dm,m:U4,M:G4,p:Ee,q:_e,Q:Nm,s:Om,S:H4,u:V4,U:j4,V:q4,w:Z4,W:W4,x:null,X:null,y:Y4,Y:X4,Z:K4,"%":Lm},S={a:dt,A:qt,b:Oe,B:L,c:null,d:Fm,e:Fm,f:nS,g:hS,G:pS,H:J4,I:eS,j:tS,L:Mm,m:rS,M:iS,p:M,q,Q:Nm,s:Om,S:oS,u:aS,U:sS,V:lS,w:fS,W:uS,x:null,X:null,y:cS,Y:dS,Z:gS,"%":Lm},T={a:j,A:O,b:re,B:ae,c:pe,d:Im,e:Im,f:R4,g:km,G:Cm,H:Tm,I:Tm,j:I4,L:D4,m:k4,M:T4,p:P,q:C4,Q:M4,s:P4,S:B4,u:x4,U:A4,V:E4,w:v4,W:_4,x:Te,X:Xe,y:km,Y:Cm,Z:S4,"%":F4};C.x=B(n,C),C.X=B(r,C),C.c=B(t,C),S.x=B(n,S),S.X=B(r,S),S.c=B(t,S);function B(H,W){return function(E){var x=[],G=-1,Z=0,le=H.length,J,fe,Zt;for(E instanceof Date||(E=new Date(+E));++G<le;)H.charCodeAt(G)===37&&(x.push(H.slice(Z,G)),(fe=Sm[J=H.charAt(++G)])!=null?J=H.charAt(++G):fe=J==="e"?" ":"0",(Zt=W[J])&&(J=Zt(E,fe)),x.push(J),Z=G+1);return x.push(H.slice(Z,G)),x.join("")}}function I(H,W){return function(E){var x=Xa(1900,void 0,1),G=F(x,H,E+="",0),Z,le;if(G!=E.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(W&&!("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?(Z=dh(Xa(x.y,0,1)),le=Z.getUTCDay(),Z=le>4||le===0?yf.ceil(Z):yf(Z),Z=vi.offset(Z,(x.V-1)*7),x.y=Z.getUTCFullYear(),x.m=Z.getUTCMonth(),x.d=Z.getUTCDate()+(x.w+6)%7):(Z=hh(Xa(x.y,0,1)),le=Z.getDay(),Z=le>4||le===0?mf.ceil(Z):mf(Z),Z=yi.offset(Z,(x.V-1)*7),x.y=Z.getFullYear(),x.m=Z.getMonth(),x.d=Z.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),le="Z"in x?dh(Xa(x.y,0,1)).getUTCDay():hh(Xa(x.y,0,1)).getDay(),x.m=0,x.d="W"in x?(x.w+6)%7+x.W*7-(le+5)%7:x.w+x.U*7-(le+6)%7);return"Z"in x?(x.H+=x.Z/100|0,x.M+=x.Z%100,dh(x)):hh(x)}}function F(H,W,E,x){for(var G=0,Z=W.length,le=E.length,J,fe;G<Z;){if(x>=le)return-1;if(J=W.charCodeAt(G++),J===37){if(J=W.charAt(G++),fe=T[J in Sm?W.charAt(G++):J],!fe||(x=fe(H,E,x))<0)return-1}else if(J!=E.charCodeAt(x++))return-1}return x}function P(H,W,E){var x=l.exec(W.slice(E));return x?(H.p=u.get(x[0].toLowerCase()),E+x[0].length):-1}function j(H,W,E){var x=d.exec(W.slice(E));return x?(H.w=p.get(x[0].toLowerCase()),E+x[0].length):-1}function O(H,W,E){var x=c.exec(W.slice(E));return x?(H.w=h.get(x[0].toLowerCase()),E+x[0].length):-1}function re(H,W,E){var x=w.exec(W.slice(E));return x?(H.m=_.get(x[0].toLowerCase()),E+x[0].length):-1}function ae(H,W,E){var x=b.exec(W.slice(E));return x?(H.m=y.get(x[0].toLowerCase()),E+x[0].length):-1}function pe(H,W,E){return F(H,t,W,E)}function Te(H,W,E){return F(H,n,W,E)}function Xe(H,W,E){return F(H,r,W,E)}function De(H){return a[H.getDay()]}function $e(H){return o[H.getDay()]}function Ze(H){return f[H.getMonth()]}function Ke(H){return s[H.getMonth()]}function Ee(H){return i[+(H.getHours()>=12)]}function _e(H){return 1+~~(H.getMonth()/3)}function dt(H){return a[H.getUTCDay()]}function qt(H){return o[H.getUTCDay()]}function Oe(H){return f[H.getUTCMonth()]}function L(H){return s[H.getUTCMonth()]}function M(H){return i[+(H.getUTCHours()>=12)]}function q(H){return 1+~~(H.getUTCMonth()/3)}return{format:function(H){var W=B(H+="",C);return W.toString=function(){return H},W},parse:function(H){var W=I(H+="",!1);return W.toString=function(){return H},W},utcFormat:function(H){var W=B(H+="",S);return W.toString=function(){return H},W},utcParse:function(H){var W=I(H+="",!0);return W.toString=function(){return H},W}}}var Sm={"-":"",_:" ",0:"0"},st=/^\s*\d+/,b4=/^%/,y4=/[\\^$*+?|[\]().{}]/g;function me(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 w4(e){return e.replace(y4,"\\$&")}function $a(e){return new RegExp("^(?:"+e.map(w4).join("|")+")","i")}function Ka(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function v4(e,t,n){var r=st.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function x4(e,t,n){var r=st.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function A4(e,t,n){var r=st.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function E4(e,t,n){var r=st.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function _4(e,t,n){var r=st.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Cm(e,t,n){var r=st.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function km(e,t,n){var r=st.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function S4(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 C4(e,t,n){var r=st.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function k4(e,t,n){var r=st.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function Im(e,t,n){var r=st.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function I4(e,t,n){var r=st.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Tm(e,t,n){var r=st.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function T4(e,t,n){var r=st.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function B4(e,t,n){var r=st.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function D4(e,t,n){var r=st.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function R4(e,t,n){var r=st.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function F4(e,t,n){var r=b4.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function M4(e,t,n){var r=st.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function P4(e,t,n){var r=st.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Bm(e,t){return me(e.getDate(),t,2)}function L4(e,t){return me(e.getHours(),t,2)}function N4(e,t){return me(e.getHours()%12||12,t,2)}function O4(e,t){return me(1+yi.count(_r(e),e),t,3)}function Dm(e,t){return me(e.getMilliseconds(),t,3)}function z4(e,t){return Dm(e,t)+"000"}function U4(e,t){return me(e.getMonth()+1,t,2)}function G4(e,t){return me(e.getMinutes(),t,2)}function H4(e,t){return me(e.getSeconds(),t,2)}function V4(e){var t=e.getDay();return t===0?7:t}function j4(e,t){return me(Ua.count(_r(e)-1,e),t,2)}function Rm(e){var t=e.getDay();return t>=4||t===0?Eo(e):Eo.ceil(e)}function q4(e,t){return e=Rm(e),me(Eo.count(_r(e),e)+(_r(e).getDay()===4),t,2)}function Z4(e){return e.getDay()}function W4(e,t){return me(mf.count(_r(e)-1,e),t,2)}function Y4(e,t){return me(e.getFullYear()%100,t,2)}function Q4(e,t){return e=Rm(e),me(e.getFullYear()%100,t,2)}function X4(e,t){return me(e.getFullYear()%1e4,t,4)}function $4(e,t){var n=e.getDay();return e=n>=4||n===0?Eo(e):Eo.ceil(e),me(e.getFullYear()%1e4,t,4)}function K4(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+me(t/60|0,"0",2)+me(t%60,"0",2)}function Fm(e,t){return me(e.getUTCDate(),t,2)}function J4(e,t){return me(e.getUTCHours(),t,2)}function eS(e,t){return me(e.getUTCHours()%12||12,t,2)}function tS(e,t){return me(1+vi.count(Sr(e),e),t,3)}function Mm(e,t){return me(e.getUTCMilliseconds(),t,3)}function nS(e,t){return Mm(e,t)+"000"}function rS(e,t){return me(e.getUTCMonth()+1,t,2)}function iS(e,t){return me(e.getUTCMinutes(),t,2)}function oS(e,t){return me(e.getUTCSeconds(),t,2)}function aS(e){var t=e.getUTCDay();return t===0?7:t}function sS(e,t){return me(Ga.count(Sr(e)-1,e),t,2)}function Pm(e){var t=e.getUTCDay();return t>=4||t===0?_o(e):_o.ceil(e)}function lS(e,t){return e=Pm(e),me(_o.count(Sr(e),e)+(Sr(e).getUTCDay()===4),t,2)}function fS(e){return e.getUTCDay()}function uS(e,t){return me(yf.count(Sr(e)-1,e),t,2)}function cS(e,t){return me(e.getUTCFullYear()%100,t,2)}function hS(e,t){return e=Pm(e),me(e.getUTCFullYear()%100,t,2)}function dS(e,t){return me(e.getUTCFullYear()%1e4,t,4)}function pS(e,t){var n=e.getUTCDay();return e=n>=4||n===0?_o(e):_o.ceil(e),me(e.getUTCFullYear()%1e4,t,4)}function gS(){return"+0000"}function Lm(){return"%"}function Nm(e){return+e}function Om(e){return Math.floor(+e/1e3)}var So,ph,zm,gh,Um;mS({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 mS(e){return So=_m(e),ph=So.format,zm=So.parse,gh=So.utcFormat,Um=So.utcParse,So}function Ja(e){const t={};return n=>t[n]||(t[n]=e(n))}function bS(e,t){return n=>{const r=e(n),i=r.indexOf(t);if(i<0)return r;let o=yS(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 yS(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 wS(e){const t=Ja(e.format),n=e.formatPrefix;return{format:t,formatPrefix:n,formatFloat(r){const i=Ar(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return bS(t(i),t(".1f")(1)[1])}else return t(i)},formatSpan(r,i,o,a){a=Ar(a??",f");const s=mi(r,i,o),f=Math.max(Math.abs(r),Math.abs(i));let l;if(a.precision==null)switch(a.type){case"s":return isNaN(l=cm(s,f))||(a.precision=l),n(a,f);case"":case"e":case"g":case"p":case"r":{isNaN(l=hm(s,f))||(a.precision=l-(a.type==="e"));break}case"f":case"%":{isNaN(l=um(s))||(a.precision=l-(a.type==="%")*2);break}}return t(a)}}}vS();function vS(){return wS({format:pt,formatPrefix:Jc})}function Gm(e,t,n){n=n||{},Mt(n)||Qe("Invalid time multi-format specifier: ".concat(n));const r=t(Qa),i=t(Ya),o=t(Wa),a=t(Za),s=t(qa),f=t(ja),l=t(Va),u=t(Ha),c=e(n[xf]||".%L"),h=e(n[Qa]||":%S"),d=e(n[Ya]||"%I:%M"),p=e(n[Wa]||"%I %p"),b=e(n[Za]||n[vf]||"%a %d"),y=e(n[qa]||"%b %d"),w=e(n[ja]||"%B"),_=e(n[Va]||"%B"),C=e(n[Ha]||"%Y");return S=>(r(S)<S?c:i(S)<S?h:o(S)<S?d:a(S)<S?p:f(S)<S?s(S)<S?b:y:u(S)<S?l(S)<S?w:_:C)(S)}function Hm(e){const t=Ja(e.format),n=Ja(e.utcFormat);return{timeFormat:r=>Pe(r)?t(r):Gm(t,g4,r),utcFormat:r=>Pe(r)?n(r):Gm(n,m4,r),timeParse:Ja(e.parse),utcParse:Ja(e.utcParse)}}let mh;xS();function xS(){return mh=Hm({format:ph,parse:zm,utcFormat:gh,utcParse:Um})}function AS(e){return Hm(_m(e))}function ES(e){return arguments.length?mh=AS(e):mh}const _S=/^(data:|([A-Za-z]+:)?\/\/)/,SS=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,CS=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Vm="file://";function kS(e,t){return n=>({options:n||{},sanitize:TS,load:IS,fileAccess:!!t,file:BS(t),http:RS(e)})}async function IS(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t)}async function TS(e,t){t=Vc({},this.options,t);const n=this.fileAccess,r={href:null};let i,o,a;const s=SS.test(e.replace(CS,""));(e==null||typeof e!="string"||!s)&&Qe("Sanitize failure, invalid URI: "+sf(e));const f=_S.test(e);return(a=t.baseURL)&&!f&&(!e.startsWith("/")&&!a.endsWith("/")&&(e="/"+e),e=a+e),o=(i=e.startsWith(Vm))||t.mode==="file"||t.mode!=="http"&&!f&&n,i?e=e.slice(Vm.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 BS(e){return e?t=>new Promise((n,r)=>{e.readFile(t,(i,o)=>{i?r(i):n(o)})}):DS}async function DS(){Qe("No file system access.")}function RS(e){return e?async function(t,n){const r=Vc({},this.options.http,n),i=n&&n.response,o=await e(t,r);return o.ok?Pt(o[i])?o[i]():o.text():Qe(o.status+""+o.statusText)}:FS}async function FS(){Qe("No HTTP fetch method available.")}const MS=e=>e!=null&&e===e,PS=e=>e==="true"||e==="false"||e===!0||e===!1,LS=e=>!Number.isNaN(Date.parse(e)),jm=e=>!Number.isNaN(+e)&&!(e instanceof Date),NS=e=>jm(e)&&Number.isInteger(+e),qm={boolean:E_,integer:Pa,number:Pa,date:S_,string:C_,unknown:nf},Af=[PS,NS,jm,LS],OS=["boolean","integer","number","date"];function zS(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=Af.length,i=Af.map((o,a)=>a+1);for(let o=0,a=0,s,f;o<n;++o)for(f=t?e[o][t]:e[o],s=0;s<r;++s)if(i[s]&&MS(f)&&!Af[s](f)&&(i[s]=0,++a,a===Af.length))return"string";return OS[i.reduce((o,a)=>o===0?a:o,0)-1]}function US(e,t){return t.reduce((n,r)=>(n[r]=zS(e,r),n),{})}function Zm(e){const t=function(n,r){const i={delimiter:e};return bh(n,r?Vc(r,i):i)};return t.responseType="text",t}function bh(e,t){return t.header&&(e=t.header.map(sf).join(t.delimiter)+`
6
- `+e),Qg(t.delimiter).parse(e+"")}bh.responseType="text";function GS(e){return typeof Buffer=="function"&&Pt(Buffer.isBuffer)?Buffer.isBuffer(e):!1}function yh(e,t){const n=t&&t.property?tf(t.property):nf;return Mt(e)&&!GS(e)?HS(n(e),t):n(JSON.parse(e))}yh.responseType="json";function HS(e,t){return!Ft(e)&&x_(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}const VS={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function Wm(e,t){let n,r,i,o;return e=yh(e,t),t&&t.feature?(n=P_,i=t.feature):t&&t.mesh?(n=N_,i=t.mesh,o=VS[t.filter]):Qe("Missing TopoJSON feature or mesh parameter."),r=(r=e.objects[i])?n(e,r,o):Qe("Invalid TopoJSON object: "+i),r&&r.features||[r]}Wm.responseType="json";const wh={dsv:bh,csv:Zm(","),tsv:Zm(" "),json:yh,topojson:Wm};function Ym(e,t){return arguments.length>1?(wh[e]=t,this):pi(wh,e)?wh[e]:null}function Qm(e,t,n,r){t=t||{};const i=Ym(t.type||"json");return i||Qe("Unknown data format type: "+t.type),e=i(e,t),t.parse&&jS(e,t.parse,n,r),pi(e,"columns")&&delete e.columns,e}function jS(e,t,n,r){if(!e.length)return;const i=ES();n=n||i.timeParse,r=r||i.utcParse;let o=e.columns||Object.keys(e[0]),a,s,f,l,u,c;t==="auto"&&(t=US(e,o)),o=Object.keys(t);const h=o.map(d=>{const p=t[d];let b,y;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return b=p.split(/:(.+)?/,2),y=b[1],(y[0]==="'"&&y[y.length-1]==="'"||y[0]==='"'&&y[y.length-1]==='"')&&(y=y.slice(1,-1)),(b[0]==="utc"?r:n)(y);if(!qm[p])throw Error("Illegal format pattern: "+d+":"+p);return qm[p]});for(f=0,u=e.length,c=o.length;f<u;++f)for(a=e[f],l=0;l<c;++l)s=o[l],a[s]=h[l](a[s])}const Ef=kS(typeof fetch<"u"&&fetch,null);/**
1
+ (function(ce,ve){typeof exports=="object"&&typeof module<"u"?ve(exports):typeof define=="function"&&define.amd?define(["exports"],ve):(ce=typeof globalThis<"u"?globalThis:ce||self,ve(ce.genomeSpyEmbed={}))})(this,function(ce){"use strict";var Dz=Object.defineProperty;var Fz=(ce,ve,Ce)=>ve in ce?Dz(ce,ve,{enumerable:!0,configurable:!0,writable:!0,value:Ce}):ce[ve]=Ce;var Kn=(ce,ve,Ce)=>(Fz(ce,typeof ve!="symbol"?ve+"":ve,Ce),Ce),Mg=(ce,ve,Ce)=>{if(!ve.has(ce))throw TypeError("Cannot "+Ce)};var W=(ce,ve,Ce)=>(Mg(ce,ve,"read from private field"),Ce?Ce.call(ce):ve.get(ce)),re=(ce,ve,Ce)=>{if(ve.has(ce))throw TypeError("Cannot add the same private member more than once");ve instanceof WeakSet?ve.add(ce):ve.set(ce,Ce)},Je=(ce,ve,Ce,xo)=>(Mg(ce,ve,"write to private field"),xo?xo.call(ce,Ce):ve.set(ce,Ce),Ce);var r_=(ce,ve,Ce,xo)=>({set _(au){Je(ce,ve,au,Ce)},get _(){return W(ce,ve,xo)}}),te=(ce,ve,Ce)=>(Mg(ce,ve,"access private method"),Ce);var Gl,Pg,Hl,Lg,Vl,Ng,Ta,jl,ql,ho,iu,Zl,Og,gr,Ia,vt,Qn,gi,Fc,i_,Ba,Uc,mr,wo,Wl,zg,Rc,o_,Bg,Rz,Yl,Ug,Da,Ql,Fa,Ra,po,Xl,$l,Kl,br,Ma,Pa,Kt,go,La,yr,vo,Mc,a_,mo,ou,Jl,Gg,eu,Hg,tu,Vg,Pc,s_,Na,Gc,Lc,l_,Oa,za,bo,nu,yo;function ve(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 Ce(e,t,n){return e.fields=t||[],e.fname=n,e}function xo(e){return e==null?null:e.fname}function au(e){return e==null?null:e.fields}function u_(e){return e.length===1?f_(e[0]):c_(e)}const f_=e=>function(t){return t[e]},c_=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 h_(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),o+=e.substring(++s,++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||Qe("Access path missing open bracket: "+e),i>0&&l(),i=0,a=s+1)}return i&&Qe("Access path missing closing bracket: "+e),r&&Qe("Access path missing closing quote: "+e),s>a&&(s++,l()),t}function su(e,t,n){const r=h_(e);return e=r.length===1?r[0]:e,Ce((n&&n.get||u_)(r),[e],t||e)}su("id");const lu=Ce(e=>e,[],"identity");Ce(()=>0,[],"zero"),Ce(()=>1,[],"one"),Ce(()=>!0,[],"true"),Ce(()=>!1,[],"false");var Ft=Array.isArray;function Rt(e){return e===Object(e)}function gn(e){return e[e.length-1]}function Ua(e){return e==null||e===""?null:+e}const jg=e=>t=>e*Math.exp(t),qg=e=>t=>Math.log(e*t),d_=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),p_=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,uu=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function Hc(e,t,n,r){const i=n(e[0]),o=n(gn(e)),a=(o-i)*t;return[r(i-a),r(o-a)]}function g_(e,t){return Hc(e,t,Ua,lu)}function m_(e,t){var n=Math.sign(e[0]);return Hc(e,t,qg(n),jg(n))}function b_(e,t,n){return Hc(e,t,uu(n),uu(1/n))}function fu(e,t,n,r,i){const o=r(e[0]),a=r(gn(e)),s=t!=null?r(t):(o+a)/2;return[i(s+(o-s)*n),i(s+(a-s)*n)]}function Zg(e,t,n){return fu(e,t,n,Ua,lu)}function Wg(e,t,n){const r=Math.sign(e[0]);return fu(e,t,n,qg(r),jg(r))}function Vc(e,t,n,r){return fu(e,t,n,uu(r),uu(1/r))}function y_(e,t,n,r){return fu(e,t,n,d_(r),p_(r))}function jc(e){return e!=null?Ft(e)?e:[e]:[]}function w_(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 Mt(e){return typeof e=="function"}const v_="descending";function Yg(e,t,n){n=n||{},t=jc(t)||[];const r=[],i=[],o={},a=n.comparator||x_;return jc(e).forEach((s,u)=>{s!=null&&(r.push(t[u]===v_?-1:1),i.push(s=Mt(s)?s:su(s,null,n)),(au(s)||[]).forEach(l=>o[l]=1))}),i.length===0?null:Ce(a(i,r),Object.keys(o))}const Qg=(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),x_=(e,t)=>e.length===1?A_(e[0],t[0]):E_(e,t,e.length),A_=(e,t)=>function(n,r){return Qg(e(n),e(r))*t},E_=(e,t,n)=>(t.push(0),function(r,i){let o,a=0,s=-1;for(;a===0&&++s<n;)o=e[s],a=Qg(o(r),o(i));return a*t[s]});function __(e){return Mt(e)?e:()=>e}function qc(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 S_=Object.prototype.hasOwnProperty;function mi(e,t){return S_.call(e,t)}function Ga(e){return typeof e=="boolean"}function C_(e){return Object.prototype.toString.call(e)==="[object Date]"}function k_(e){return e&&Mt(e[Symbol.iterator])}function Ct(e){return typeof e=="number"}function T_(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function Pe(e){return typeof e=="string"}function Xg(e,t){const n=e[0],r=gn(e),i=+t;return i?i===1?r:n+i*(r-n):n}function cu(e){return e&&gn(e)-e[0]||0}function hu(e){return Ft(e)?"["+e.map(hu)+"]":Rt(e)||Pe(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function I_(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const B_=e=>Ct(e)||C_(e)?e:Date.parse(e);function D_(e,t){return t=t||B_,e==null||e===""?null:t(e)}function F_(e){return e==null||e===""?null:e+""}function du(e){const t={},n=e.length;for(let r=0;r<n;++r)t[e[r]]=!0;return t}var $g={},Zc={},Wc=34,Ha=10,Yc=13;function Kg(e){return new Function("d","return {"+e.map(function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'}).join(",")+"}")}function R_(e,t){var n=Kg(e);return function(r,i){return t(n(r),i,e)}}function Jg(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 Pt(e,t){var n=e+"",r=n.length;return r<t?new Array(t-r+1).join(0)+n:n}function M_(e){return e<0?"-"+Pt(-e,6):e>9999?"+"+Pt(e,6):Pt(e,4)}function P_(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),r=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":M_(e.getUTCFullYear())+"-"+Pt(e.getUTCMonth()+1,2)+"-"+Pt(e.getUTCDate(),2)+(i?"T"+Pt(t,2)+":"+Pt(n,2)+":"+Pt(r,2)+"."+Pt(i,3)+"Z":r?"T"+Pt(t,2)+":"+Pt(n,2)+":"+Pt(r,2)+"Z":n||t?"T"+Pt(t,2)+":"+Pt(n,2)+"Z":"")}function em(e){var t=new RegExp('["'+e+`
2
+ \r]`),n=e.charCodeAt(0);function r(c,h){var d,p,b=i(c,function(y,w){if(d)return d(y,w-1);p=y,d=h?R_(y,h):Kg(y)});return b.columns=p||[],b}function i(c,h){var d=[],p=c.length,b=0,y=0,w,_=p<=0,C=!1;c.charCodeAt(p-1)===Ha&&--p,c.charCodeAt(p-1)===Yc&&--p;function E(){if(_)return Zc;if(C)return C=!1,$g;var B,I=b,R;if(c.charCodeAt(I)===Wc){for(;b++<p&&c.charCodeAt(b)!==Wc||c.charCodeAt(++b)===Wc;);return(B=b)>=p?_=!0:(R=c.charCodeAt(b++))===Ha?C=!0:R===Yc&&(C=!0,c.charCodeAt(b)===Ha&&++b),c.slice(I+1,B-1).replace(/""/g,'"')}for(;b<p;){if((R=c.charCodeAt(B=b++))===Ha)C=!0;else if(R===Yc)C=!0,c.charCodeAt(b)===Ha&&++b;else if(R!==n)continue;return c.slice(I,B)}return _=!0,c.slice(I,p)}for(;(w=E())!==Zc;){for(var T=[];w!==$g&&w!==Zc;)T.push(w),w=E();h&&(T=h(T,y++))==null||d.push(T)}return d}function o(c,h){return c.map(function(d){return h.map(function(p){return f(d[p])}).join(e)})}function a(c,h){return h==null&&(h=Jg(c)),[h.map(f).join(e)].concat(o(c,h)).join(`
3
+ `)}function s(c,h){return h==null&&(h=Jg(c)),o(c,h).join(`
4
+ `)}function u(c){return c.map(l).join(`
5
+ `)}function l(c){return c.map(f).join(e)}function f(c){return c==null?"":c instanceof Date?P_(c):t.test(c+="")?'"'+c.replace(/"/g,'""')+'"':c}return{parse:r,parseRows:i,format:a,formatBody:s,formatRows:u,formatRow:l,formatValue:f}}var L_=em(" "),N_=L_.parseRows;function O_(e){return e}function z_(e){if(e==null)return O_;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,f=s.length,c=new Array(f);for(c[0]=(t+=s[0])*r+o,c[1]=(n+=s[1])*i+a;l<f;)c[l]=s[l],++l;return c}}function U_(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}function G_(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return tm(e,n)})}:tm(e,t)}function tm(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,o=nm(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 nm(e,t){var n=z_(e.transform),r=e.arcs;function i(f,c){c.length&&c.pop();for(var h=r[f<0?~f:f],d=0,p=h.length;d<p;++d)c.push(n(h[d],d));f<0&&U_(c,p)}function o(f){return n(f)}function a(f){for(var c=[],h=0,d=f.length;h<d;++h)i(f[h],c);return c.length<2&&c.push(c[0]),c}function s(f){for(var c=a(f);c.length<4;)c.push(c[0]);return c}function u(f){return f.map(s)}function l(f){var c=f.type,h;switch(c){case"GeometryCollection":return{type:c,geometries:f.geometries.map(l)};case"Point":h=o(f.coordinates);break;case"MultiPoint":h=f.coordinates.map(o);break;case"LineString":h=a(f.arcs);break;case"MultiLineString":h=f.arcs.map(a);break;case"Polygon":h=u(f.arcs);break;case"MultiPolygon":h=f.arcs.map(u);break;default:return null}return{type:c,coordinates:h}}return l(t)}function H_(e,t){var n={},r={},i={},o=[],a=-1;t.forEach(function(l,f){var c=e.arcs[l<0?~l:l],h;c.length<3&&!c[1][0]&&!c[1][1]&&(h=t[++a],t[a]=l,t[f]=h)}),t.forEach(function(l){var f=s(l),c=f[0],h=f[1],d,p;if(d=i[c])if(delete i[d.end],d.push(l),d.end=h,p=r[h]){delete r[p.start];var b=p===d?d:d.concat(p);r[b.start=d.start]=i[b.end=p.end]=b}else r[d.start]=i[d.end]=d;else if(d=r[h])if(delete r[d.start],d.unshift(l),d.start=c,p=i[c]){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=c]=i[d.end=h]=d});function s(l){var f=e.arcs[l<0?~l:l],c=f[0],h;return e.transform?(h=[0,0],f.forEach(function(d){h[0]+=d[0],h[1]+=d[1]})):h=f[f.length-1],l<0?[h,c]:[c,h]}function u(l,f){for(var c in l){var h=l[c];delete f[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 V_(e){return nm(e,j_.apply(this,arguments))}function j_(e,t,n){var r,i,o;if(arguments.length>1)r=q_(e,t,n);else for(i=0,r=new Array(o=e.arcs.length);i<o;++i)r[i]=i;return{type:"MultiLineString",arcs:H_(e,r)}}function q_(e,t,n){var r=[],i=[],o;function a(c){var h=c<0?~c:c;(i[h]||(i[h]=[])).push({i:c,g:o})}function s(c){c.forEach(a)}function u(c){c.forEach(s)}function l(c){c.forEach(u)}function f(c){switch(o=c,c.type){case"GeometryCollection":c.geometries.forEach(f);break;case"LineString":s(c.arcs);break;case"MultiLineString":case"Polygon":u(c.arcs);break;case"MultiPolygon":l(c.arcs);break}}return f(t),i.forEach(n==null?function(c){r.push(c[0].i)}:function(c){n(c[0].g,c[c.length-1].g)&&r.push(c[0].i)}),r}function Va(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Z_(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function pu(e){let t,n,r;e.length!==2?(t=Va,n=(s,u)=>Va(e(s),u),r=(s,u)=>e(s)-u):(t=e===Va||e===Z_?e:W_,n=e,r=e);function i(s,u,l=0,f=s.length){if(l<f){if(t(u,u)!==0)return f;do{const c=l+f>>>1;n(s[c],u)<0?l=c+1:f=c}while(l<f)}return l}function o(s,u,l=0,f=s.length){if(l<f){if(t(u,u)!==0)return f;do{const c=l+f>>>1;n(s[c],u)<=0?l=c+1:f=c}while(l<f)}return l}function a(s,u,l=0,f=s.length){const c=i(s,u,l,f-1);return c>l&&r(s[c-1],u)>-r(s[c],u)?c-1:c}return{left:i,center:a,right:o}}function W_(){return 0}function rm(e){return e===null?NaN:+e}const im=pu(Va),Er=im.right;im.left,pu(rm).center;function Y_(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 _r extends Map{constructor(t,n=$_){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(om(this,t))}has(t){return super.has(om(this,t))}set(t,n){return super.set(Q_(this,t),n)}delete(t){return super.delete(X_(this,t))}}function om({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function Q_({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function X_({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function $_(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Qc(e){return e}function gu(e,...t){return am(e,Qc,Qc,t)}function K_(e,...t){return am(e,Array.from,Qc,t)}function am(e,t,n,r){return function i(o,a){if(a>=r.length)return n(o);const s=new _r,u=r[a++];let l=-1;for(const f of o){const c=u(f,++l,o),h=s.get(c);h?h.push(f):s.set(c,[f])}for(const[f,c]of s)s.set(f,i(c,a));return t(s)}(e,0)}var Xc=Math.sqrt(50),$c=Math.sqrt(10),Kc=Math.sqrt(2);function mu(e,t,n){var r,i=-1,o,a,s;if(t=+t,e=+e,n=+n,e===t&&n>0)return[e];if((r=t<e)&&(o=e,e=t,t=o),(s=sm(e,t,n))===0||!isFinite(s))return[];if(s>0){let u=Math.round(e/s),l=Math.round(t/s);for(u*s<e&&++u,l*s>t&&--l,a=new Array(o=l-u+1);++i<o;)a[i]=(u+i)*s}else{s=-s;let u=Math.round(e*s),l=Math.round(t*s);for(u/s<e&&++u,l/s>t&&--l,a=new Array(o=l-u+1);++i<o;)a[i]=(u+i)/s}return r&&a.reverse(),a}function sm(e,t,n){var r=(t-e)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),o=r/Math.pow(10,i);return i>=0?(o>=Xc?10:o>=$c?5:o>=Kc?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=Xc?10:o>=$c?5:o>=Kc?2:1)}function bi(e,t,n){var r=Math.abs(t-e)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=Xc?i*=10:o>=$c?i*=5:o>=Kc&&(i*=2),t<e?-i:i}function lm(e,t,n=rm){if(r=e.length){if((t=+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 ja(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 bu(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 J_(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function yu(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 Ao(e){return e=yu(Math.abs(e)),e?e[1]:NaN}function e4(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 t4(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var n4=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Sr(e){if(!(t=n4.exec(e)))throw new Error("invalid format: "+e);var t;return new Jc({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]})}Sr.prototype=Jc.prototype;function Jc(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+""}Jc.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 r4(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 um;function i4(e,t){var n=yu(e,t);if(!n)return e+"";var r=n[0],i=n[1],o=i-(um=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")+yu(e,Math.max(0,t+o-1))[0]}function fm(e,t){var n=yu(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 cm={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:J_,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)=>fm(e*100,t),r:fm,s:i4,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function hm(e){return e}var dm=Array.prototype.map,pm=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function o4(e){var t=e.grouping===void 0||e.thousands===void 0?hm:e4(dm.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?hm:t4(dm.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(c){c=Sr(c);var h=c.fill,d=c.align,p=c.sign,b=c.symbol,y=c.zero,w=c.width,_=c.comma,C=c.precision,E=c.trim,T=c.type;T==="n"?(_=!0,T="g"):cm[T]||(C===void 0&&(C=12),E=!0,T="g"),(y||h==="0"&&d==="=")&&(y=!0,h="0",d="=");var B=b==="$"?n:b==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",I=b==="$"?r:/[%p]/.test(T)?a:"",R=cm[T],M=/[defgprs%]/.test(T);C=C===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,C)):Math.max(0,Math.min(20,C));function j(O){var ie=B,se=I,ge,Ie,Xe;if(T==="c")se=R(O)+se,O="";else{O=+O;var De=O<0||1/O<0;if(O=isNaN(O)?u:R(Math.abs(O),C),E&&(O=r4(O)),De&&+O==0&&p!=="+"&&(De=!1),ie=(De?p==="("?p:s:p==="-"||p==="("?"":p)+ie,se=(T==="s"?pm[8+um/3]:"")+se+(De&&p==="("?")":""),M){for(ge=-1,Ie=O.length;++ge<Ie;)if(Xe=O.charCodeAt(ge),48>Xe||Xe>57){se=(Xe===46?i+O.slice(ge+1):O.slice(ge))+se,O=O.slice(0,ge);break}}}_&&!y&&(O=t(O,1/0));var $e=ie.length+O.length+se.length,Ze=$e<w?new Array(w-$e+1).join(h):"";switch(_&&y&&(O=t(Ze+O,Ze.length?w-se.length:1/0),Ze=""),d){case"<":O=ie+O+se+Ze;break;case"=":O=ie+Ze+O+se;break;case"^":O=Ze.slice(0,$e=Ze.length>>1)+ie+O+se+Ze.slice($e);break;default:O=Ze+ie+O+se;break}return o(O)}return j.toString=function(){return c+""},j}function f(c,h){var d=l((c=Sr(c),c.type="f",c)),p=Math.max(-8,Math.min(8,Math.floor(Ao(h)/3)))*3,b=Math.pow(10,-p),y=pm[8+p/3];return function(w){return d(b*w)+y}}return{format:l,formatPrefix:f}}var wu,gt,eh;a4({thousands:",",grouping:[3],currency:["$",""]});function a4(e){return wu=o4(e),gt=wu.format,eh=wu.formatPrefix,wu}function gm(e){return Math.max(0,-Ao(Math.abs(e)))}function mm(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ao(t)/3)))*3-Ao(Math.abs(e)))}function bm(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Ao(t)-Ao(e))+1}var th=new Date,nh=new Date;function st(e,t,n,r){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=function(o){return e(o=new Date(+o)),o},i.ceil=function(o){return e(o=new Date(o-1)),t(o,1),e(o),o},i.round=function(o){var a=i(o),s=i.ceil(o);return o-a<s-o?a:s},i.offset=function(o,a){return t(o=new Date(+o),a==null?1:Math.floor(a)),o},i.range=function(o,a,s){var u=[],l;if(o=i.ceil(o),s=s==null?1:Math.floor(s),!(o<a)||!(s>0))return u;do u.push(l=new Date(+o)),t(o,s),e(o);while(l<o&&o<a);return u},i.filter=function(o){return st(function(a){if(a>=a)for(;e(a),!o(a);)a.setTime(a-1)},function(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=function(o,a){return th.setTime(+o),nh.setTime(+a),e(th),e(nh),Math.floor(n(th,nh))},i.every=function(o){return o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?function(a){return r(a)%o===0}:function(a){return i.count(0,a)%o===0}):i}),i}var vu=st(function(){},function(e,t){e.setTime(+e+t)},function(e,t){return t-e});vu.every=function(e){return e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?st(function(t){t.setTime(Math.floor(t/e)*e)},function(t,n){t.setTime(+t+n*e)},function(t,n){return(n-t)/e}):vu};const rh=vu;vu.range;const Jn=1e3,Jt=Jn*60,er=Jt*60,yi=er*24,ih=yi*7,ym=yi*30,oh=yi*365;var wm=st(function(e){e.setTime(e-e.getMilliseconds())},function(e,t){e.setTime(+e+t*Jn)},function(e,t){return(t-e)/Jn},function(e){return e.getUTCSeconds()});const Cr=wm;wm.range;var vm=st(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*Jn)},function(e,t){e.setTime(+e+t*Jt)},function(e,t){return(t-e)/Jt},function(e){return e.getMinutes()});const ah=vm;vm.range;var xm=st(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*Jn-e.getMinutes()*Jt)},function(e,t){e.setTime(+e+t*er)},function(e,t){return(t-e)/er},function(e){return e.getHours()});const sh=xm;xm.range;var Am=st(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Jt)/yi,e=>e.getDate()-1);const wi=Am;Am.range;function vi(e){return st(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Jt)/ih})}var qa=vi(0),xu=vi(1),s4=vi(2),l4=vi(3),Eo=vi(4),u4=vi(5),f4=vi(6);qa.range,xu.range,s4.range,l4.range,Eo.range,u4.range,f4.range;var Za=st(function(e){e.setDate(1),e.setHours(0,0,0,0)},function(e,t){e.setMonth(e.getMonth()+t)},function(e,t){return t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12},function(e){return e.getMonth()});Za.range;var lh=st(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()});lh.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:st(function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n*e)})};const kr=lh;lh.range;var Em=st(function(e){e.setUTCSeconds(0,0)},function(e,t){e.setTime(+e+t*Jt)},function(e,t){return(t-e)/Jt},function(e){return e.getUTCMinutes()});const uh=Em;Em.range;var _m=st(function(e){e.setUTCMinutes(0,0,0)},function(e,t){e.setTime(+e+t*er)},function(e,t){return(t-e)/er},function(e){return e.getUTCHours()});const fh=_m;_m.range;var Sm=st(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/yi},function(e){return e.getUTCDate()-1});const xi=Sm;Sm.range;function Ai(e){return st(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/ih})}var Wa=Ai(0),Au=Ai(1),c4=Ai(2),h4=Ai(3),_o=Ai(4),d4=Ai(5),p4=Ai(6);Wa.range,Au.range,c4.range,h4.range,_o.range,d4.range,p4.range;var Ya=st(function(e){e.setUTCDate(1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCMonth(e.getUTCMonth()+t)},function(e,t){return t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12},function(e){return e.getUTCMonth()});Ya.range;var ch=st(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()});ch.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:st(function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})};const Tr=ch;ch.range;function Cm(e,t,n,r,i,o){const a=[[Cr,1,Jn],[Cr,5,5*Jn],[Cr,15,15*Jn],[Cr,30,30*Jn],[o,1,Jt],[o,5,5*Jt],[o,15,15*Jt],[o,30,30*Jt],[i,1,er],[i,3,3*er],[i,6,6*er],[i,12,12*er],[r,1,yi],[r,2,2*yi],[n,1,ih],[t,1,ym],[t,3,3*ym],[e,1,oh]];function s(l,f,c){const h=f<l;h&&([l,f]=[f,l]);const d=c&&typeof c.range=="function"?c:u(l,f,c),p=d?d.range(l,+f+1):[];return h?p.reverse():p}function u(l,f,c){const h=Math.abs(f-l)/c,d=pu(([,,y])=>y).right(a,h);if(d===a.length)return e.every(bi(l/oh,f/oh,c));if(d===0)return rh.every(Math.max(bi(l,f,c),1));const[p,b]=a[h/a[d-1][2]<a[d][2]/h?d-1:d];return p.every(b)}return[s,u]}const[g4,m4]=Cm(Tr,Ya,Wa,xi,fh,uh),[b4,y4]=Cm(kr,Za,qa,wi,sh,ah),Qa="year",Xa="quarter",$a="month",Ka="week",Ja="date",Eu="day",hh="dayofyear",es="hours",ts="minutes",ns="seconds",_u="milliseconds";[Qa,Xa,$a,Ka,Ja,Eu,hh,es,ts,ns,_u].reduce((e,t,n)=>(e[t]=1+n,e),{});const w4={[Qa]:kr,[Xa]:Za.every(3),[$a]:Za,[Ka]:qa,[Ja]:wi,[Eu]:wi,[hh]:wi,[es]:sh,[ts]:ah,[ns]:Cr,[_u]:rh},v4={[Qa]:Tr,[Xa]:Ya.every(3),[$a]:Ya,[Ka]:Wa,[Ja]:xi,[Eu]:xi,[hh]:xi,[es]:fh,[ts]:uh,[ns]:Cr,[_u]:rh};function x4(e){return w4[e]}function A4(e){return v4[e]}function dh(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 ph(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 rs(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function km(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=is(i),f=os(i),c=is(o),h=os(o),d=is(a),p=os(a),b=is(s),y=os(s),w=is(u),_=os(u),C={a:De,A:$e,b:Ze,B:Ke,c:null,d:Rm,e:Rm,f:q4,g:tS,G:rS,H:H4,I:V4,j:j4,L:Mm,m:Z4,M:W4,p:Ee,q:_e,Q:Um,s:Gm,S:Y4,u:Q4,U:X4,V:$4,w:K4,W:J4,x:null,X:null,y:eS,Y:nS,Z:iS,"%":zm},E={a:pt,A:qt,b:Oe,B:L,c:null,d:Lm,e:Lm,f:lS,g:yS,G:vS,H:oS,I:aS,j:sS,L:Nm,m:uS,M:fS,p:P,q,Q:Um,s:Gm,S:cS,u:hS,U:dS,V:pS,w:gS,W:mS,x:null,X:null,y:bS,Y:wS,Z:xS,"%":zm},T={a:j,A:O,b:ie,B:se,c:ge,d:Dm,e:Dm,f:O4,g:Bm,G:Im,H:Fm,I:Fm,j:M4,L:N4,m:R4,M:P4,p:M,q:F4,Q:U4,s:G4,S:L4,u:k4,U:T4,V:I4,w:C4,W:B4,x:Ie,X:Xe,y:Bm,Y:Im,Z:D4,"%":z4};C.x=B(n,C),C.X=B(r,C),C.c=B(t,C),E.x=B(n,E),E.X=B(r,E),E.c=B(t,E);function B(H,Y){return function(S){var x=[],G=-1,Z=0,le=H.length,J,ue,Zt;for(S instanceof Date||(S=new Date(+S));++G<le;)H.charCodeAt(G)===37&&(x.push(H.slice(Z,G)),(ue=Tm[J=H.charAt(++G)])!=null?J=H.charAt(++G):ue=J==="e"?" ":"0",(Zt=Y[J])&&(J=Zt(S,ue)),x.push(J),Z=G+1);return x.push(H.slice(Z,G)),x.join("")}}function I(H,Y){return function(S){var x=rs(1900,void 0,1),G=R(x,H,S+="",0),Z,le;if(G!=S.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?(Z=ph(rs(x.y,0,1)),le=Z.getUTCDay(),Z=le>4||le===0?Au.ceil(Z):Au(Z),Z=xi.offset(Z,(x.V-1)*7),x.y=Z.getUTCFullYear(),x.m=Z.getUTCMonth(),x.d=Z.getUTCDate()+(x.w+6)%7):(Z=dh(rs(x.y,0,1)),le=Z.getDay(),Z=le>4||le===0?xu.ceil(Z):xu(Z),Z=wi.offset(Z,(x.V-1)*7),x.y=Z.getFullYear(),x.m=Z.getMonth(),x.d=Z.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),le="Z"in x?ph(rs(x.y,0,1)).getUTCDay():dh(rs(x.y,0,1)).getDay(),x.m=0,x.d="W"in x?(x.w+6)%7+x.W*7-(le+5)%7:x.w+x.U*7-(le+6)%7);return"Z"in x?(x.H+=x.Z/100|0,x.M+=x.Z%100,ph(x)):dh(x)}}function R(H,Y,S,x){for(var G=0,Z=Y.length,le=S.length,J,ue;G<Z;){if(x>=le)return-1;if(J=Y.charCodeAt(G++),J===37){if(J=Y.charAt(G++),ue=T[J in Tm?Y.charAt(G++):J],!ue||(x=ue(H,S,x))<0)return-1}else if(J!=S.charCodeAt(x++))return-1}return x}function M(H,Y,S){var x=l.exec(Y.slice(S));return x?(H.p=f.get(x[0].toLowerCase()),S+x[0].length):-1}function j(H,Y,S){var x=d.exec(Y.slice(S));return x?(H.w=p.get(x[0].toLowerCase()),S+x[0].length):-1}function O(H,Y,S){var x=c.exec(Y.slice(S));return x?(H.w=h.get(x[0].toLowerCase()),S+x[0].length):-1}function ie(H,Y,S){var x=w.exec(Y.slice(S));return x?(H.m=_.get(x[0].toLowerCase()),S+x[0].length):-1}function se(H,Y,S){var x=b.exec(Y.slice(S));return x?(H.m=y.get(x[0].toLowerCase()),S+x[0].length):-1}function ge(H,Y,S){return R(H,t,Y,S)}function Ie(H,Y,S){return R(H,n,Y,S)}function Xe(H,Y,S){return R(H,r,Y,S)}function De(H){return a[H.getDay()]}function $e(H){return o[H.getDay()]}function Ze(H){return u[H.getMonth()]}function Ke(H){return s[H.getMonth()]}function Ee(H){return i[+(H.getHours()>=12)]}function _e(H){return 1+~~(H.getMonth()/3)}function pt(H){return a[H.getUTCDay()]}function qt(H){return o[H.getUTCDay()]}function Oe(H){return u[H.getUTCMonth()]}function L(H){return s[H.getUTCMonth()]}function P(H){return i[+(H.getUTCHours()>=12)]}function q(H){return 1+~~(H.getUTCMonth()/3)}return{format:function(H){var Y=B(H+="",C);return Y.toString=function(){return H},Y},parse:function(H){var Y=I(H+="",!1);return Y.toString=function(){return H},Y},utcFormat:function(H){var Y=B(H+="",E);return Y.toString=function(){return H},Y},utcParse:function(H){var Y=I(H+="",!0);return Y.toString=function(){return H},Y}}}var Tm={"-":"",_:" ",0:"0"},lt=/^\s*\d+/,E4=/^%/,_4=/[\\^$*+?|[\]().{}]/g;function be(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 S4(e){return e.replace(_4,"\\$&")}function is(e){return new RegExp("^(?:"+e.map(S4).join("|")+")","i")}function os(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function C4(e,t,n){var r=lt.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function k4(e,t,n){var r=lt.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function T4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function I4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function B4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Im(e,t,n){var r=lt.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function Bm(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function D4(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 F4(e,t,n){var r=lt.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function R4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function Dm(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function M4(e,t,n){var r=lt.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Fm(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function P4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function L4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function N4(e,t,n){var r=lt.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function O4(e,t,n){var r=lt.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function z4(e,t,n){var r=E4.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function U4(e,t,n){var r=lt.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function G4(e,t,n){var r=lt.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Rm(e,t){return be(e.getDate(),t,2)}function H4(e,t){return be(e.getHours(),t,2)}function V4(e,t){return be(e.getHours()%12||12,t,2)}function j4(e,t){return be(1+wi.count(kr(e),e),t,3)}function Mm(e,t){return be(e.getMilliseconds(),t,3)}function q4(e,t){return Mm(e,t)+"000"}function Z4(e,t){return be(e.getMonth()+1,t,2)}function W4(e,t){return be(e.getMinutes(),t,2)}function Y4(e,t){return be(e.getSeconds(),t,2)}function Q4(e){var t=e.getDay();return t===0?7:t}function X4(e,t){return be(qa.count(kr(e)-1,e),t,2)}function Pm(e){var t=e.getDay();return t>=4||t===0?Eo(e):Eo.ceil(e)}function $4(e,t){return e=Pm(e),be(Eo.count(kr(e),e)+(kr(e).getDay()===4),t,2)}function K4(e){return e.getDay()}function J4(e,t){return be(xu.count(kr(e)-1,e),t,2)}function eS(e,t){return be(e.getFullYear()%100,t,2)}function tS(e,t){return e=Pm(e),be(e.getFullYear()%100,t,2)}function nS(e,t){return be(e.getFullYear()%1e4,t,4)}function rS(e,t){var n=e.getDay();return e=n>=4||n===0?Eo(e):Eo.ceil(e),be(e.getFullYear()%1e4,t,4)}function iS(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+be(t/60|0,"0",2)+be(t%60,"0",2)}function Lm(e,t){return be(e.getUTCDate(),t,2)}function oS(e,t){return be(e.getUTCHours(),t,2)}function aS(e,t){return be(e.getUTCHours()%12||12,t,2)}function sS(e,t){return be(1+xi.count(Tr(e),e),t,3)}function Nm(e,t){return be(e.getUTCMilliseconds(),t,3)}function lS(e,t){return Nm(e,t)+"000"}function uS(e,t){return be(e.getUTCMonth()+1,t,2)}function fS(e,t){return be(e.getUTCMinutes(),t,2)}function cS(e,t){return be(e.getUTCSeconds(),t,2)}function hS(e){var t=e.getUTCDay();return t===0?7:t}function dS(e,t){return be(Wa.count(Tr(e)-1,e),t,2)}function Om(e){var t=e.getUTCDay();return t>=4||t===0?_o(e):_o.ceil(e)}function pS(e,t){return e=Om(e),be(_o.count(Tr(e),e)+(Tr(e).getUTCDay()===4),t,2)}function gS(e){return e.getUTCDay()}function mS(e,t){return be(Au.count(Tr(e)-1,e),t,2)}function bS(e,t){return be(e.getUTCFullYear()%100,t,2)}function yS(e,t){return e=Om(e),be(e.getUTCFullYear()%100,t,2)}function wS(e,t){return be(e.getUTCFullYear()%1e4,t,4)}function vS(e,t){var n=e.getUTCDay();return e=n>=4||n===0?_o(e):_o.ceil(e),be(e.getUTCFullYear()%1e4,t,4)}function xS(){return"+0000"}function zm(){return"%"}function Um(e){return+e}function Gm(e){return Math.floor(+e/1e3)}var So,gh,Hm,mh,Vm;AS({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 AS(e){return So=km(e),gh=So.format,Hm=So.parse,mh=So.utcFormat,Vm=So.utcParse,So}function as(e){const t={};return n=>t[n]||(t[n]=e(n))}function ES(e,t){return n=>{const r=e(n),i=r.indexOf(t);if(i<0)return r;let o=_S(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 _S(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 SS(e){const t=as(e.format),n=e.formatPrefix;return{format:t,formatPrefix:n,formatFloat(r){const i=Sr(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return ES(t(i),t(".1f")(1)[1])}else return t(i)},formatSpan(r,i,o,a){a=Sr(a??",f");const s=bi(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=mm(s,u))||(a.precision=l),n(a,u);case"":case"e":case"g":case"p":case"r":{isNaN(l=bm(s,u))||(a.precision=l-(a.type==="e"));break}case"f":case"%":{isNaN(l=gm(s))||(a.precision=l-(a.type==="%")*2);break}}return t(a)}}}CS();function CS(){return SS({format:gt,formatPrefix:eh})}function jm(e,t,n){n=n||{},Rt(n)||Qe("Invalid time multi-format specifier: ".concat(n));const r=t(ns),i=t(ts),o=t(es),a=t(Ja),s=t(Ka),u=t($a),l=t(Xa),f=t(Qa),c=e(n[_u]||".%L"),h=e(n[ns]||":%S"),d=e(n[ts]||"%I:%M"),p=e(n[es]||"%I %p"),b=e(n[Ja]||n[Eu]||"%a %d"),y=e(n[Ka]||"%b %d"),w=e(n[$a]||"%B"),_=e(n[Xa]||"%B"),C=e(n[Qa]||"%Y");return E=>(r(E)<E?c:i(E)<E?h:o(E)<E?d:a(E)<E?p:u(E)<E?s(E)<E?b:y:f(E)<E?l(E)<E?w:_:C)(E)}function qm(e){const t=as(e.format),n=as(e.utcFormat);return{timeFormat:r=>Pe(r)?t(r):jm(t,x4,r),utcFormat:r=>Pe(r)?n(r):jm(n,A4,r),timeParse:as(e.parse),utcParse:as(e.utcParse)}}let bh;kS();function kS(){return bh=qm({format:gh,parse:Hm,utcFormat:mh,utcParse:Vm})}function TS(e){return qm(km(e))}function IS(e){return arguments.length?bh=TS(e):bh}const BS=/^(data:|([A-Za-z]+:)?\/\/)/,DS=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,FS=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Zm="file://";function RS(e,t){return n=>({options:n||{},sanitize:PS,load:MS,fileAccess:!!t,file:LS(t),http:OS(e)})}async function MS(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t)}async function PS(e,t){t=qc({},this.options,t);const n=this.fileAccess,r={href:null};let i,o,a;const s=DS.test(e.replace(FS,""));(e==null||typeof e!="string"||!s)&&Qe("Sanitize failure, invalid URI: "+hu(e));const u=BS.test(e);return(a=t.baseURL)&&!u&&(!e.startsWith("/")&&!a.endsWith("/")&&(e="/"+e),e=a+e),o=(i=e.startsWith(Zm))||t.mode==="file"||t.mode!=="http"&&!u&&n,i?e=e.slice(Zm.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 LS(e){return e?t=>new Promise((n,r)=>{e.readFile(t,(i,o)=>{i?r(i):n(o)})}):NS}async function NS(){Qe("No file system access.")}function OS(e){return e?async function(t,n){const r=qc({},this.options.http,n),i=n&&n.response,o=await e(t,r);return o.ok?Mt(o[i])?o[i]():o.text():Qe(o.status+""+o.statusText)}:zS}async function zS(){Qe("No HTTP fetch method available.")}const US=e=>e!=null&&e===e,GS=e=>e==="true"||e==="false"||e===!0||e===!1,HS=e=>!Number.isNaN(Date.parse(e)),Wm=e=>!Number.isNaN(+e)&&!(e instanceof Date),VS=e=>Wm(e)&&Number.isInteger(+e),Ym={boolean:I_,integer:Ua,number:Ua,date:D_,string:F_,unknown:lu},Su=[GS,VS,Wm,HS],jS=["boolean","integer","number","date"];function qS(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=Su.length,i=Su.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]&&US(u)&&!Su[s](u)&&(i[s]=0,++a,a===Su.length))return"string";return jS[i.reduce((o,a)=>o===0?a:o,0)-1]}function ZS(e,t){return t.reduce((n,r)=>(n[r]=qS(e,r),n),{})}function Qm(e){const t=function(n,r){const i={delimiter:e};return yh(n,r?qc(r,i):i)};return t.responseType="text",t}function yh(e,t){return t.header&&(e=t.header.map(hu).join(t.delimiter)+`
6
+ `+e),em(t.delimiter).parse(e+"")}yh.responseType="text";function WS(e){return typeof Buffer=="function"&&Mt(Buffer.isBuffer)?Buffer.isBuffer(e):!1}function wh(e,t){const n=t&&t.property?su(t.property):lu;return Rt(e)&&!WS(e)?YS(n(e),t):n(JSON.parse(e))}wh.responseType="json";function YS(e,t){return!Ft(e)&&k_(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}const QS={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function Xm(e,t){let n,r,i,o;return e=wh(e,t),t&&t.feature?(n=G_,i=t.feature):t&&t.mesh?(n=V_,i=t.mesh,o=QS[t.filter]):Qe("Missing TopoJSON feature or mesh parameter."),r=(r=e.objects[i])?n(e,r,o):Qe("Invalid TopoJSON object: "+i),r&&r.features||[r]}Xm.responseType="json";const vh={dsv:yh,csv:Qm(","),tsv:Qm(" "),json:wh,topojson:Xm};function $m(e,t){return arguments.length>1?(vh[e]=t,this):mi(vh,e)?vh[e]:null}function Km(e,t,n,r){t=t||{};const i=$m(t.type||"json");return i||Qe("Unknown data format type: "+t.type),e=i(e,t),t.parse&&XS(e,t.parse,n,r),mi(e,"columns")&&delete e.columns,e}function XS(e,t,n,r){if(!e.length)return;const i=IS();n=n||i.timeParse,r=r||i.utcParse;let o=e.columns||Object.keys(e[0]),a,s,u,l,f,c;t==="auto"&&(t=ZS(e,o)),o=Object.keys(t);const h=o.map(d=>{const p=t[d];let b,y;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return b=p.split(/:(.+)?/,2),y=b[1],(y[0]==="'"&&y[y.length-1]==="'"||y[0]==='"'&&y[y.length-1]==='"')&&(y=y.slice(1,-1)),(b[0]==="utc"?r:n)(y);if(!Ym[p])throw Error("Illegal format pattern: "+d+":"+p);return Ym[p]});for(u=0,f=e.length,c=o.length;u<f;++u)for(a=e[u],l=0;l<c;++l)s=o[l],a[s]=h[l](a[s])}const Cu=RS(typeof fetch<"u"&&fetch,null);/**
7
7
  * @license
8
8
  * Copyright 2017 Google LLC
9
9
  * SPDX-License-Identifier: BSD-3-Clause
10
- */const es=globalThis,_f=es.trustedTypes,Xm=_f?_f.createPolicy("lit-html",{createHTML:e=>e}):void 0,$m="$lit$",Cr=`lit$${(Math.random()+"").slice(9)}$`,Km="?"+Cr,qS=`<${Km}>`,Ai=document,ts=()=>Ai.createComment(""),ns=e=>e===null||typeof e!="object"&&typeof e!="function",Jm=Array.isArray,ZS=e=>Jm(e)||typeof(e==null?void 0:e[Symbol.iterator])=="function",vh=`[
11
- \f\r]`,rs=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,e1=/-->/g,t1=/>/g,Ei=RegExp(`>|${vh}(?:([^\\s"'>=/]+)(${vh}*=${vh}*(?:[^
12
- \f\r"'\`<>=]|("|')|))|$)`,"g"),n1=/'/g,r1=/"/g,i1=/^(?:script|style|textarea|title)$/i,WS=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),Dn=WS(1),is=Symbol.for("lit-noChange"),nt=Symbol.for("lit-nothing"),o1=new WeakMap,_i=Ai.createTreeWalker(Ai,129);function a1(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return Xm!==void 0?Xm.createHTML(t):t}const YS=(e,t)=>{const n=e.length-1,r=[];let i,o=t===2?"<svg>":"",a=rs;for(let s=0;s<n;s++){const f=e[s];let l,u,c=-1,h=0;for(;h<f.length&&(a.lastIndex=h,u=a.exec(f),u!==null);)h=a.lastIndex,a===rs?u[1]==="!--"?a=e1:u[1]!==void 0?a=t1:u[2]!==void 0?(i1.test(u[2])&&(i=RegExp("</"+u[2],"g")),a=Ei):u[3]!==void 0&&(a=Ei):a===Ei?u[0]===">"?(a=i??rs,c=-1):u[1]===void 0?c=-2:(c=a.lastIndex-u[2].length,l=u[1],a=u[3]===void 0?Ei:u[3]==='"'?r1:n1):a===r1||a===n1?a=Ei:a===e1||a===t1?a=rs:(a=Ei,i=void 0);const d=a===Ei&&e[s+1].startsWith("/>")?" ":"";o+=a===rs?f+qS:c>=0?(r.push(l),f.slice(0,c)+$m+f.slice(c)+Cr+d):f+Cr+(c===-2?s:d)}return[a1(e,o+(e[n]||"<?>")+(t===2?"</svg>":"")),r]};class os{constructor({strings:t,_$litType$:n},r){let i;this.parts=[];let o=0,a=0;const s=t.length-1,f=this.parts,[l,u]=YS(t,n);if(this.el=os.createElement(l,r),_i.currentNode=this.el.content,n===2){const c=this.el.content.firstChild;c.replaceWith(...c.childNodes)}for(;(i=_i.nextNode())!==null&&f.length<s;){if(i.nodeType===1){if(i.hasAttributes())for(const c of i.getAttributeNames())if(c.endsWith($m)){const h=u[a++],d=i.getAttribute(c).split(Cr),p=/([.?@])?(.*)/.exec(h);f.push({type:1,index:o,name:p[2],strings:d,ctor:p[1]==="."?XS:p[1]==="?"?$S:p[1]==="@"?KS:Sf}),i.removeAttribute(c)}else c.startsWith(Cr)&&(f.push({type:6,index:o}),i.removeAttribute(c));if(i1.test(i.tagName)){const c=i.textContent.split(Cr),h=c.length-1;if(h>0){i.textContent=_f?_f.emptyScript:"";for(let d=0;d<h;d++)i.append(c[d],ts()),_i.nextNode(),f.push({type:2,index:++o});i.append(c[h],ts())}}}else if(i.nodeType===8)if(i.data===Km)f.push({type:2,index:o});else{let c=-1;for(;(c=i.data.indexOf(Cr,c+1))!==-1;)f.push({type:7,index:o}),c+=Cr.length-1}o++}}static createElement(t,n){const r=Ai.createElement("template");return r.innerHTML=t,r}}function Co(e,t,n=e,r){var a,s;if(t===is)return t;let i=r!==void 0?(a=n._$Co)==null?void 0:a[r]:n._$Cl;const o=ns(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=Co(e,i._$AS(e,t.values),i,r)),t}class QS{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)??Ai).importNode(n,!0);_i.currentNode=i;let o=_i.nextNode(),a=0,s=0,f=r[0];for(;f!==void 0;){if(a===f.index){let l;f.type===2?l=new as(o,o.nextSibling,this,t):f.type===1?l=new f.ctor(o,f.name,f.strings,this,t):f.type===6&&(l=new JS(o,this,t)),this._$AV.push(l),f=r[++s]}a!==(f==null?void 0:f.index)&&(o=_i.nextNode(),a++)}return _i.currentNode=Ai,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 as{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=nt,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=Co(this,t,n),ns(t)?t===nt||t==null||t===""?(this._$AH!==nt&&this._$AR(),this._$AH=nt):t!==this._$AH&&t!==is&&this._(t):t._$litType$!==void 0?this.g(t):t.nodeType!==void 0?this.$(t):ZS(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==nt&&ns(this._$AH)?this._$AA.nextSibling.data=t:this.$(Ai.createTextNode(t)),this._$AH=t}g(t){var o;const{values:n,_$litType$:r}=t,i=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=os.createElement(a1(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 QS(i,this),s=a.u(this.options);a.p(n),this.$(s),this._$AH=a}}_$AC(t){let n=o1.get(t.strings);return n===void 0&&o1.set(t.strings,n=new os(t)),n}T(t){Jm(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 as(this.k(ts()),this.k(ts()),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 Sf=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,n,r,i,o){this.type=1,this._$AH=nt,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=nt}_$AI(t,n=this,r,i){const o=this.strings;let a=!1;if(o===void 0)t=Co(this,t,n,0),a=!ns(t)||t!==this._$AH&&t!==is,a&&(this._$AH=t);else{const s=t;let f,l;for(t=o[0],f=0;f<o.length-1;f++)l=Co(this,s[r+f],n,f),l===is&&(l=this._$AH[f]),a||(a=!ns(l)||l!==this._$AH[f]),l===nt?t=nt:t!==nt&&(t+=(l??"")+o[f+1]),this._$AH[f]=l}a&&!i&&this.O(t)}O(t){t===nt?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}};class XS extends Sf{constructor(){super(...arguments),this.type=3}O(t){this.element[this.name]=t===nt?void 0:t}}class $S extends Sf{constructor(){super(...arguments),this.type=4}O(t){this.element.toggleAttribute(this.name,!!t&&t!==nt)}}class KS extends Sf{constructor(t,n,r,i,o){super(t,n,r,i,o),this.type=5}_$AI(t,n=this){if((t=Co(this,t,n,0)??nt)===is)return;const r=this._$AH,i=t===nt&&r!==nt||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,o=t!==nt&&(r===nt||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 JS{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){Co(this,t)}}const xh=es.litHtmlPolyfillSupport;xh==null||xh(os,as),(es.litHtmlVersions??(es.litHtmlVersions=[])).push("3.1.0");const s1=(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 as(t.insertBefore(ts(),o),o,void 0,n??{})}return i._$AI(e),i},eC=`.genome-spy {
10
+ */const ss=globalThis,ku=ss.trustedTypes,Jm=ku?ku.createPolicy("lit-html",{createHTML:e=>e}):void 0,e1="$lit$",Ir=`lit$${(Math.random()+"").slice(9)}$`,t1="?"+Ir,$S=`<${t1}>`,Ei=document,ls=()=>Ei.createComment(""),us=e=>e===null||typeof e!="object"&&typeof e!="function",n1=Array.isArray,KS=e=>n1(e)||typeof(e==null?void 0:e[Symbol.iterator])=="function",xh=`[
11
+ \f\r]`,fs=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,r1=/-->/g,i1=/>/g,_i=RegExp(`>|${xh}(?:([^\\s"'>=/]+)(${xh}*=${xh}*(?:[^
12
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),o1=/'/g,a1=/"/g,s1=/^(?:script|style|textarea|title)$/i,JS=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),mn=JS(1),Co=Symbol.for("lit-noChange"),rt=Symbol.for("lit-nothing"),l1=new WeakMap,Si=Ei.createTreeWalker(Ei,129);function u1(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return Jm!==void 0?Jm.createHTML(t):t}const eC=(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,f,c=-1,h=0;for(;h<u.length&&(a.lastIndex=h,f=a.exec(u),f!==null);)h=a.lastIndex,a===fs?f[1]==="!--"?a=r1:f[1]!==void 0?a=i1:f[2]!==void 0?(s1.test(f[2])&&(i=RegExp("</"+f[2],"g")),a=_i):f[3]!==void 0&&(a=_i):a===_i?f[0]===">"?(a=i??fs,c=-1):f[1]===void 0?c=-2:(c=a.lastIndex-f[2].length,l=f[1],a=f[3]===void 0?_i:f[3]==='"'?a1:o1):a===a1||a===o1?a=_i:a===r1||a===i1?a=fs:(a=_i,i=void 0);const d=a===_i&&e[s+1].startsWith("/>")?" ":"";o+=a===fs?u+$S:c>=0?(r.push(l),u.slice(0,c)+e1+u.slice(c)+Ir+d):u+Ir+(c===-2?s:d)}return[u1(e,o+(e[n]||"<?>")+(t===2?"</svg>":"")),r]};class cs{constructor({strings:t,_$litType$:n},r){let i;this.parts=[];let o=0,a=0;const s=t.length-1,u=this.parts,[l,f]=eC(t,n);if(this.el=cs.createElement(l,r),Si.currentNode=this.el.content,n===2){const c=this.el.content.firstChild;c.replaceWith(...c.childNodes)}for(;(i=Si.nextNode())!==null&&u.length<s;){if(i.nodeType===1){if(i.hasAttributes())for(const c of i.getAttributeNames())if(c.endsWith(e1)){const h=f[a++],d=i.getAttribute(c).split(Ir),p=/([.?@])?(.*)/.exec(h);u.push({type:1,index:o,name:p[2],strings:d,ctor:p[1]==="."?nC:p[1]==="?"?rC:p[1]==="@"?iC:Tu}),i.removeAttribute(c)}else c.startsWith(Ir)&&(u.push({type:6,index:o}),i.removeAttribute(c));if(s1.test(i.tagName)){const c=i.textContent.split(Ir),h=c.length-1;if(h>0){i.textContent=ku?ku.emptyScript:"";for(let d=0;d<h;d++)i.append(c[d],ls()),Si.nextNode(),u.push({type:2,index:++o});i.append(c[h],ls())}}}else if(i.nodeType===8)if(i.data===t1)u.push({type:2,index:o});else{let c=-1;for(;(c=i.data.indexOf(Ir,c+1))!==-1;)u.push({type:7,index:o}),c+=Ir.length-1}o++}}static createElement(t,n){const r=Ei.createElement("template");return r.innerHTML=t,r}}function ko(e,t,n=e,r){var a,s;if(t===Co)return t;let i=r!==void 0?(a=n._$Co)==null?void 0:a[r]:n._$Cl;const o=us(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=ko(e,i._$AS(e,t.values),i,r)),t}class tC{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)??Ei).importNode(n,!0);Si.currentNode=i;let o=Si.nextNode(),a=0,s=0,u=r[0];for(;u!==void 0;){if(a===u.index){let l;u.type===2?l=new hs(o,o.nextSibling,this,t):u.type===1?l=new u.ctor(o,u.name,u.strings,this,t):u.type===6&&(l=new oC(o,this,t)),this._$AV.push(l),u=r[++s]}a!==(u==null?void 0:u.index)&&(o=Si.nextNode(),a++)}return Si.currentNode=Ei,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 hs{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=ko(this,t,n),us(t)?t===rt||t==null||t===""?(this._$AH!==rt&&this._$AR(),this._$AH=rt):t!==this._$AH&&t!==Co&&this._(t):t._$litType$!==void 0?this.g(t):t.nodeType!==void 0?this.$(t):KS(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==rt&&us(this._$AH)?this._$AA.nextSibling.data=t:this.$(Ei.createTextNode(t)),this._$AH=t}g(t){var o;const{values:n,_$litType$:r}=t,i=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=cs.createElement(u1(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 tC(i,this),s=a.u(this.options);a.p(n),this.$(s),this._$AH=a}}_$AC(t){let n=l1.get(t.strings);return n===void 0&&l1.set(t.strings,n=new cs(t)),n}T(t){n1(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 hs(this.k(ls()),this.k(ls()),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 Tu=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=ko(this,t,n,0),a=!us(t)||t!==this._$AH&&t!==Co,a&&(this._$AH=t);else{const s=t;let u,l;for(t=o[0],u=0;u<o.length-1;u++)l=ko(this,s[r+u],n,u),l===Co&&(l=this._$AH[u]),a||(a=!us(l)||l!==this._$AH[u]),l===rt?t=rt:t!==rt&&(t+=(l??"")+o[u+1]),this._$AH[u]=l}a&&!i&&this.O(t)}O(t){t===rt?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}};class nC extends Tu{constructor(){super(...arguments),this.type=3}O(t){this.element[this.name]=t===rt?void 0:t}}class rC extends Tu{constructor(){super(...arguments),this.type=4}O(t){this.element.toggleAttribute(this.name,!!t&&t!==rt)}}class iC extends Tu{constructor(t,n,r,i,o){super(t,n,r,i,o),this.type=5}_$AI(t,n=this){if((t=ko(this,t,n,0)??rt)===Co)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 oC{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){ko(this,t)}}const Ah=ss.litHtmlPolyfillSupport;Ah==null||Ah(cs,hs),(ss.litHtmlVersions??(ss.litHtmlVersions=[])).push("3.1.0");const Eh=(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 hs(t.insertBefore(ls(),o),o,void 0,n??{})}return i._$AI(e),i};/**
13
+ * @license
14
+ * Copyright 2017 Google LLC
15
+ * SPDX-License-Identifier: BSD-3-Clause
16
+ */const aC={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},sC=e=>(...t)=>({_$litDirective$:e,values:t});let lC=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)}};/**
17
+ * @license
18
+ * Copyright 2018 Google LLC
19
+ * SPDX-License-Identifier: BSD-3-Clause
20
+ */const f1="important",uC=" !"+f1,fC=sC(class extends lC{constructor(e){var t;if(super(e),e.type!==aC.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.ut===void 0)return this.ut=new Set(Object.keys(t)),this.render(t);for(const r of this.ut)t[r]==null&&(this.ut.delete(r),r.includes("-")?n.removeProperty(r):n[r]=null);for(const r in t){const i=t[r];if(i!=null){this.ut.add(r);const o=typeof i=="string"&&i.endsWith(uC);r.includes("-")||o?n.setProperty(r,o?i.slice(0,-11):i,o?f1:""):n[r]=i}}return Co}}),cC="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",hC=`.genome-spy {
13
21
  font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
14
22
  position: relative;
15
23
  }
@@ -20,10 +28,7 @@
20
28
  }
21
29
  .genome-spy .loading-message {
22
30
  position: absolute;
23
- top: 0;
24
- bottom: 0;
25
- left: 0;
26
- right: 0;
31
+ inset: 0;
27
32
  display: flex;
28
33
  align-items: center;
29
34
  justify-content: center;
@@ -48,6 +53,38 @@
48
53
  opacity: 0;
49
54
  }
50
55
  }
56
+ .genome-spy .loading-indicators {
57
+ position: absolute;
58
+ inset: 0;
59
+ user-select: none;
60
+ pointer-events: none;
61
+ }
62
+ .genome-spy .loading-indicators div {
63
+ position: absolute;
64
+ display: flex;
65
+ align-items: center;
66
+ justify-content: center;
67
+ }
68
+ .genome-spy .loading-indicators div > div {
69
+ font-size: 11px;
70
+ transition: opacity 0.2s;
71
+ background: white;
72
+ padding: 2px 5px;
73
+ display: flex;
74
+ border-radius: 3px;
75
+ gap: 0.5em;
76
+ opacity: 0;
77
+ }
78
+ .genome-spy .loading-indicators div > div.loading {
79
+ opacity: 0.5;
80
+ }
81
+ .genome-spy .loading-indicators div > div > * {
82
+ display: block;
83
+ }
84
+ .genome-spy .loading-indicators div > div img {
85
+ width: 1.5em;
86
+ height: 1.5em;
87
+ }
51
88
  .genome-spy .tooltip {
52
89
  position: absolute;
53
90
  max-width: 450px;
@@ -120,19 +157,19 @@
120
157
  border: 1px solid red;
121
158
  padding: 10px;
122
159
  background: #fff0f0;
123
- }`;function tC(e,t){var n=e.getBoundingClientRect();return[t.clientX-n.left-e.clientLeft,t.clientY-n.top-e.clientTop]}function Cf(e,t){return e.length==t.length&&e.every((n,r)=>e[r]===t[r])}function Yt(e){return Array.isArray(e)?e:typeof e<"u"?[e]:[]}function ss(e){return e[e.length-1]}class nC{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 ss(this.enabledStack)??!0}pushEnabledState(t){this.enabledStack.push(t),t||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(t){this.mouseCoords=tC(this.container,t);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&rC(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&&(s1("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}s1(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(Dn` ${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 rC(e,t){let n=0;for(let r=0;r<e.length;r++)n+=(e[r]-t[r])**2;return Math.sqrt(n)}const iC="RawCode",oC="Literal",aC="Property",sC="Identifier",lC="ArrayExpression",fC="BinaryExpression",uC="CallExpression",cC="ConditionalExpression",hC="LogicalExpression",dC="MemberExpression",pC="ObjectExpression",gC="UnaryExpression";function bn(e){this.type=e}bn.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=mC(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};function mC(e){switch(e.type){case lC:return e.elements;case fC:case hC:return[e.left,e.right];case uC:return[e.callee].concat(e.arguments);case cC:return[e.test,e.consequent,e.alternate];case dC:return[e.object,e.property];case pC:return e.properties;case aC:return[e.key,e.value];case gC:return[e.argument];case sC:case oC:case iC:default:return[]}}var Rn,K,U,wt,ke,kf=1,ls=2,Si=3,kr=4,If=5,Ci=6,Nt=7,fs=8,bC=9;Rn={},Rn[kf]="Boolean",Rn[ls]="<end>",Rn[Si]="Identifier",Rn[kr]="Keyword",Rn[If]="Null",Rn[Ci]="Numeric",Rn[Nt]="Punctuator",Rn[fs]="String",Rn[bC]="RegularExpression";var yC="ArrayExpression",wC="BinaryExpression",vC="CallExpression",xC="ConditionalExpression",l1="Identifier",AC="Literal",EC="LogicalExpression",_C="MemberExpression",SC="ObjectExpression",CC="Property",kC="UnaryExpression",lt="Unexpected token %0",IC="Unexpected number",TC="Unexpected string",BC="Unexpected identifier",DC="Unexpected reserved word",RC="Unexpected end of input",Ah="Invalid regular expression",Eh="Invalid regular expression: missing /",f1="Octal literals are not allowed in strict mode.",FC="Duplicate data property in object literal not allowed in strict mode",gt="ILLEGAL",us="Disabled.",MC=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]"),PC=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 Tf(e,t){if(!e)throw new Error("ASSERT: "+t)}function tr(e){return e>=48&&e<=57}function _h(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function cs(e){return"01234567".indexOf(e)>=0}function LC(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 hs(e){return e===10||e===13||e===8232||e===8233}function ds(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&MC.test(String.fromCharCode(e))}function Bf(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&PC.test(String.fromCharCode(e))}const NC={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 u1(){for(;U<wt;){const e=K.charCodeAt(U);if(LC(e)||hs(e))++U;else break}}function Sh(e){var t,n,r,i=0;for(n=e==="u"?4:2,t=0;t<n;++t)U<wt&&_h(K[U])?(r=K[U++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):be({},lt,gt);return String.fromCharCode(i)}function OC(){var e,t,n,r;for(e=K[U],t=0,e==="}"&&be({},lt,gt);U<wt&&(e=K[U++],!!_h(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&be({},lt,gt),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,r=(t-65536&1023)+56320,String.fromCharCode(n,r))}function c1(){var e,t;for(e=K.charCodeAt(U++),t=String.fromCharCode(e),e===92&&(K.charCodeAt(U)!==117&&be({},lt,gt),++U,e=Sh("u"),(!e||e==="\\"||!ds(e.charCodeAt(0)))&&be({},lt,gt),t=e);U<wt&&(e=K.charCodeAt(U),!!Bf(e));)++U,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),K.charCodeAt(U)!==117&&be({},lt,gt),++U,e=Sh("u"),(!e||e==="\\"||!Bf(e.charCodeAt(0)))&&be({},lt,gt),t+=e);return t}function zC(){var e,t;for(e=U++;U<wt;){if(t=K.charCodeAt(U),t===92)return U=e,c1();if(Bf(t))++U;else break}return K.slice(e,U)}function UC(){var e,t,n;return e=U,t=K.charCodeAt(U)===92?c1():zC(),t.length===1?n=Si:NC.hasOwnProperty(t)?n=kr:t==="null"?n=If:t==="true"||t==="false"?n=kf:n=Si,{type:n,value:t,start:e,end:U}}function Ch(){var e=U,t=K.charCodeAt(U),n,r=K[U],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++U,{type:Nt,value:String.fromCharCode(t),start:e,end:U};default:if(n=K.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:Nt,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:U};case 33:case 61:return U+=2,K.charCodeAt(U)===61&&++U,{type:Nt,value:K.slice(e,U),start:e,end:U}}}if(a=K.substr(U,4),a===">>>=")return U+=4,{type:Nt,value:a,start:e,end:U};if(o=a.substr(0,3),o===">>>"||o==="<<="||o===">>=")return U+=3,{type:Nt,value:o,start:e,end:U};if(i=o.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return U+=2,{type:Nt,value:i,start:e,end:U};if(i==="//"&&be({},lt,gt),"<>=!+-*%&|^/".indexOf(r)>=0)return++U,{type:Nt,value:r,start:e,end:U};be({},lt,gt)}function GC(e){let t="";for(;U<wt&&_h(K[U]);)t+=K[U++];return t.length===0&&be({},lt,gt),ds(K.charCodeAt(U))&&be({},lt,gt),{type:Ci,value:parseInt("0x"+t,16),start:e,end:U}}function HC(e){let t="0"+K[U++];for(;U<wt&&cs(K[U]);)t+=K[U++];return(ds(K.charCodeAt(U))||tr(K.charCodeAt(U)))&&be({},lt,gt),{type:Ci,value:parseInt(t,8),octal:!0,start:e,end:U}}function h1(){var e,t,n;if(n=K[U],Tf(tr(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=U,e="",n!=="."){if(e=K[U++],n=K[U],e==="0"){if(n==="x"||n==="X")return++U,GC(t);if(cs(n))return HC(t);n&&tr(n.charCodeAt(0))&&be({},lt,gt)}for(;tr(K.charCodeAt(U));)e+=K[U++];n=K[U]}if(n==="."){for(e+=K[U++];tr(K.charCodeAt(U));)e+=K[U++];n=K[U]}if(n==="e"||n==="E")if(e+=K[U++],n=K[U],(n==="+"||n==="-")&&(e+=K[U++]),tr(K.charCodeAt(U)))for(;tr(K.charCodeAt(U));)e+=K[U++];else be({},lt,gt);return ds(K.charCodeAt(U))&&be({},lt,gt),{type:Ci,value:parseFloat(e),start:t,end:U}}function VC(){var e="",t,n,r,i,o=!1;for(t=K[U],Tf(t==="'"||t==='"',"String literal must starts with a quote"),n=U,++U;U<wt;)if(r=K[U++],r===t){t="";break}else if(r==="\\")if(r=K[U++],!r||!hs(r.charCodeAt(0)))switch(r){case"u":case"x":K[U]==="{"?(++U,e+=OC()):e+=Sh(r);break;case"n":e+=`
124
- `;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:cs(r)?(i="01234567".indexOf(r),i!==0&&(o=!0),U<wt&&cs(K[U])&&(o=!0,i=i*8+"01234567".indexOf(K[U++]),"0123".indexOf(r)>=0&&U<wt&&cs(K[U])&&(i=i*8+"01234567".indexOf(K[U++]))),e+=String.fromCharCode(i)):e+=r;break}else r==="\r"&&K[U]===`
125
- `&&++U;else{if(hs(r.charCodeAt(0)))break;e+=r}return t!==""&&be({},lt,gt),{type:fs,value:e,octal:o,start:n,end:U}}function jC(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";be({},Ah)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{be({},Ah)}try{return new RegExp(e,t)}catch{return null}}function qC(){var e,t,n,r,i;for(e=K[U],Tf(e==="/","Regular expression literal must start with a slash"),t=K[U++],n=!1,r=!1;U<wt;)if(e=K[U++],t+=e,e==="\\")e=K[U++],hs(e.charCodeAt(0))&&be({},Eh),t+=e;else if(hs(e.charCodeAt(0)))be({},Eh);else if(n)e==="]"&&(n=!1);else if(e==="/"){r=!0;break}else e==="["&&(n=!0);return r||be({},Eh),i=t.substr(1,t.length-2),{value:i,literal:t}}function ZC(){var e,t,n;for(t="",n="";U<wt&&(e=K[U],!!Bf(e.charCodeAt(0)));)++U,e==="\\"&&U<wt?be({},lt,gt):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&be({},Ah,n),{value:n,literal:t}}function WC(){var e,t,n,r;return ke=null,u1(),e=U,t=qC(),n=ZC(),r=jC(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:U}}function YC(e){return e.type===Si||e.type===kr||e.type===kf||e.type===If}function d1(){if(u1(),U>=wt)return{type:ls,start:U,end:U};const e=K.charCodeAt(U);return ds(e)?UC():e===40||e===41||e===59?Ch():e===39||e===34?VC():e===46?tr(K.charCodeAt(U+1))?h1():Ch():tr(e)?h1():Ch()}function Ot(){const e=ke;return U=e.end,ke=d1(),U=e.end,e}function p1(){const e=U;ke=d1(),U=e}function QC(e){const t=new bn(yC);return t.elements=e,t}function g1(e,t,n){const r=new bn(e==="||"||e==="&&"?EC:wC);return r.operator=e,r.left=t,r.right=n,r}function XC(e,t){const n=new bn(vC);return n.callee=e,n.arguments=t,n}function $C(e,t,n){const r=new bn(xC);return r.test=e,r.consequent=t,r.alternate=n,r}function kh(e){const t=new bn(l1);return t.name=e,t}function ps(e){const t=new bn(AC);return t.value=e.value,t.raw=K.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function m1(e,t,n){const r=new bn(_C);return r.computed=e==="[",r.object=t,r.property=n,r.computed||(n.member=!0),r}function KC(e){const t=new bn(SC);return t.properties=e,t}function b1(e,t,n){const r=new bn(CC);return r.key=t,r.value=n,r.kind=e,r}function JC(e,t){const n=new bn(kC);return n.operator=e,n.argument=t,n.prefix=!0,n}function be(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,(o,a)=>(Tf(a<r.length,"Message reference must be in range"),r[a]));throw n=new Error(i),n.index=U,n.description=i,n}function Df(e){e.type===ls&&be(e,RC),e.type===Ci&&be(e,IC),e.type===fs&&be(e,TC),e.type===Si&&be(e,BC),e.type===kr&&be(e,DC),be(e,lt,e.value)}function vt(e){const t=Ot();(t.type!==Nt||t.value!==e)&&Df(t)}function Ue(e){return ke.type===Nt&&ke.value===e}function Ih(e){return ke.type===kr&&ke.value===e}function e6(){const e=[];for(U=ke.start,vt("[");!Ue("]");)Ue(",")?(Ot(),e.push(null)):(e.push(ki()),Ue("]")||vt(","));return Ot(),QC(e)}function y1(){U=ke.start;const e=Ot();return e.type===fs||e.type===Ci?(e.octal&&be(e,f1),ps(e)):kh(e.value)}function t6(){var e,t,n,r;if(U=ke.start,e=ke,e.type===Si)return n=y1(),vt(":"),r=ki(),b1("init",n,r);if(e.type===ls||e.type===Nt)Df(e);else return t=y1(),vt(":"),r=ki(),b1("init",t,r)}function n6(){var e=[],t,n,r,i={},o=String;for(U=ke.start,vt("{");!Ue("}");)t=t6(),t.key.type===l1?n=t.key.name:n=o(t.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?be({},FC):i[r]=!0,e.push(t),Ue("}")||vt(",");return vt("}"),KC(e)}function r6(){vt("(");const e=Th();return vt(")"),e}const i6={if:1};function o6(){var e,t,n;if(Ue("("))return r6();if(Ue("["))return e6();if(Ue("{"))return n6();if(e=ke.type,U=ke.start,e===Si||i6[ke.value])n=kh(Ot().value);else if(e===fs||e===Ci)ke.octal&&be(ke,f1),n=ps(Ot());else{if(e===kr)throw new Error(us);e===kf?(t=Ot(),t.value=t.value==="true",n=ps(t)):e===If?(t=Ot(),t.value=null,n=ps(t)):Ue("/")||Ue("/=")?(n=ps(WC()),p1()):Df(Ot())}return n}function a6(){const e=[];if(vt("("),!Ue(")"))for(;U<wt&&(e.push(ki()),!Ue(")"));)vt(",");return vt(")"),e}function s6(){U=ke.start;const e=Ot();return YC(e)||Df(e),kh(e.value)}function l6(){return vt("."),s6()}function f6(){vt("[");const e=Th();return vt("]"),e}function u6(){var e,t,n;for(e=o6();;)if(Ue("."))n=l6(),e=m1(".",e,n);else if(Ue("("))t=a6(),e=XC(e,t);else if(Ue("["))n=f6(),e=m1("[",e,n);else break;return e}function w1(){const e=u6();if(ke.type===Nt&&(Ue("++")||Ue("--")))throw new Error(us);return e}function Rf(){var e,t;if(ke.type!==Nt&&ke.type!==kr)t=w1();else{if(Ue("++")||Ue("--"))throw new Error(us);if(Ue("+")||Ue("-")||Ue("~")||Ue("!"))e=Ot(),t=Rf(),t=JC(e.value,t);else{if(Ih("delete")||Ih("void")||Ih("typeof"))throw new Error(us);t=w1()}}return t}function v1(e){let t=0;if(e.type!==Nt&&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 c6(){var e,t,n,r,i,o,a,s,f,l;if(e=ke,f=Rf(),r=ke,i=v1(r),i===0)return f;for(r.prec=i,Ot(),t=[e,ke],a=Rf(),o=[f,r,a];(i=v1(ke))>0;){for(;o.length>2&&i<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,f=o.pop(),t.pop(),n=g1(s,f,a),o.push(n);r=Ot(),r.prec=i,o.push(r),t.push(ke),n=Rf(),o.push(n)}for(l=o.length-1,n=o[l],t.pop();l>1;)t.pop(),n=g1(o[l-1].value,o[l-2],n),l-=2;return n}function ki(){var e,t,n;return e=c6(),Ue("?")&&(Ot(),t=ki(),vt(":"),n=ki(),e=$C(e,t,n)),e}function Th(){const e=ki();if(Ue(","))throw new Error(us);return e}function h6(e){K=e,U=0,wt=K.length,ke=null,p1();const t=Th();if(ke.type!==ls)throw new Error("Unexpect token after expression.");return t}var d6={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 x1(e){function t(a,s,f,l){let u=e(s[0]);return f&&(u=f+"("+u+")",f.lastIndexOf("new ",0)===0&&(u="("+u+")")),u+"."+a+(l<0?"":l===0?"()":"("+s.slice(1).map(e).join(",")+")")}function n(a,s,f){return l=>t(a,l,s,f)}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",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&&Qe("Missing arguments to clamp function."),a.length>3&&Qe("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&&Qe("Missing arguments to if function."),a.length>3&&Qe("Too many arguments to if function.");const s=a.map(e);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function p6(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function g6(e){e=e||{};const t=e.allowed?lf(e.allowed):{},n=e.forbidden?lf(e.forbidden):{},r=e.constants||d6,i=(e.functions||x1)(c),o=e.globalvar,a=e.fieldvar,s=Pt(o)?o:p=>`${o}["${p}"]`;let f={},l={},u=0;function c(p){if(Pe(p))return p;const b=h[p.type];return b==null&&Qe("Unsupported type: "+p.type),b(p)}const h={Literal:p=>p.raw,Identifier:p=>{const b=p.name;return u>0?b:pi(n,b)?Qe("Illegal identifier: "+b):pi(r,b)?r[b]:pi(t,b)?b:(f[b]=1,s(b))},MemberExpression:p=>{const b=!p.computed,y=c(p.object);b&&(u+=1);const w=c(p.property);return y===a&&(l[p6(w)]=1),b&&(u-=1),y+(b?"."+w:"["+w+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&Qe("Illegal callee type: "+p.callee.type);const b=p.callee.name,y=p.arguments,w=pi(i,b)&&i[b];return w||Qe("Unrecognized function: "+b),Pt(w)?w(y):w+"("+y.map(c).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(c).join(",")+"]",BinaryExpression:p=>"("+c(p.left)+" "+p.operator+" "+c(p.right)+")",UnaryExpression:p=>"("+p.operator+c(p.argument)+")",ConditionalExpression:p=>"("+c(p.test)+"?"+c(p.consequent)+":"+c(p.alternate)+")",LogicalExpression:p=>"("+c(p.left)+p.operator+c(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(c).join(",")+"}",Property:p=>{u+=1;const b=c(p.key);return u-=1,b+":"+c(p.value)}};function d(p){const b={code:c(p),globals:Object.keys(f),fields:Object.keys(l)};return f={},l={},b}return d.functions=i,d.constants=r,d}function A1(e,t,n){return n=(n-e)/(t-e),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}function gs(e,t=0,n=1){return Math.max(t,Math.min(n,e))}function m6(e,t,n){return gs((n-e)/(t-e),0,1)}const E1={clamp:gs,isArray:Ft,isBoolean:La,isDefined(e){return e!==void 0},isNumber:kt,isObject:Mt,isRegExp:A_,isString:Pe,isValid(e){return e!=null&&e===e},lerp:qg,linearstep:m6,smoothstep:A1};function b6(e){const t=x1(e);for(const n in E1)t[n]=`this.${n}`;return t}const y6=g6({forbidden:[],allowed:["datum"],globalvar:"globalObject",fieldvar:"datum",functions:b6});function Ff(e,t={}){try{const n=h6(e),r=y6(n),i=Function("datum","globalObject",`"use strict"; return (${r.code});`).bind(E1),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}`)}}function Fn(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function Ir(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 Bh=Symbol("implicit");function Dh(){var e=new gi,t=[],n=[],r=Bh;function i(o){let a=e.get(o);if(a===void 0){if(r!==Bh)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 gi;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 Dh(t,n).unknown(r)},Fn.apply(i,arguments),i}function ko(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function ms(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Tr(){}var Ii=.7,Io=1/Ii,To="\\s*([+-]?\\d+)\\s*",bs="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Mn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",w6=/^#([0-9a-f]{3,8})$/,v6=new RegExp(`^rgb\\(${To},${To},${To}\\)$`),x6=new RegExp(`^rgb\\(${Mn},${Mn},${Mn}\\)$`),A6=new RegExp(`^rgba\\(${To},${To},${To},${bs}\\)$`),E6=new RegExp(`^rgba\\(${Mn},${Mn},${Mn},${bs}\\)$`),_6=new RegExp(`^hsl\\(${bs},${Mn},${Mn}\\)$`),S6=new RegExp(`^hsla\\(${bs},${Mn},${Mn},${bs}\\)$`),_1={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};ko(Tr,Br,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:S1,formatHex:S1,formatHex8:C6,formatHsl:k6,formatRgb:C1,toString:C1});function S1(){return this.rgb().formatHex()}function C6(){return this.rgb().formatHex8()}function k6(){return D1(this).formatHsl()}function C1(){return this.rgb().formatRgb()}function Br(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=w6.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?k1(t):n===3?new ft(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Mf(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Mf(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=v6.exec(e))?new ft(t[1],t[2],t[3],1):(t=x6.exec(e))?new ft(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=A6.exec(e))?Mf(t[1],t[2],t[3],t[4]):(t=E6.exec(e))?Mf(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=_6.exec(e))?B1(t[1],t[2]/100,t[3]/100,1):(t=S6.exec(e))?B1(t[1],t[2]/100,t[3]/100,t[4]):_1.hasOwnProperty(e)?k1(_1[e]):e==="transparent"?new ft(NaN,NaN,NaN,0):null}function k1(e){return new ft(e>>16&255,e>>8&255,e&255,1)}function Mf(e,t,n,r){return r<=0&&(e=t=n=NaN),new ft(e,t,n,r)}function Rh(e){return e instanceof Tr||(e=Br(e)),e?(e=e.rgb(),new ft(e.r,e.g,e.b,e.opacity)):new ft}function Pf(e,t,n,r){return arguments.length===1?Rh(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}ko(ft,Pf,ms(Tr,{brighter(e){return e=e==null?Io:Math.pow(Io,e),new ft(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Ii:Math.pow(Ii,e),new ft(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ft(Ti(this.r),Ti(this.g),Ti(this.b),Lf(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:I1,formatHex:I1,formatHex8:I6,formatRgb:T1,toString:T1}));function I1(){return`#${Bi(this.r)}${Bi(this.g)}${Bi(this.b)}`}function I6(){return`#${Bi(this.r)}${Bi(this.g)}${Bi(this.b)}${Bi((isNaN(this.opacity)?1:this.opacity)*255)}`}function T1(){const e=Lf(this.opacity);return`${e===1?"rgb(":"rgba("}${Ti(this.r)}, ${Ti(this.g)}, ${Ti(this.b)}${e===1?")":`, ${e})`}`}function Lf(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Ti(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Bi(e){return e=Ti(e),(e<16?"0":"")+e.toString(16)}function B1(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new yn(e,t,n,r)}function D1(e){if(e instanceof yn)return new yn(e.h,e.s,e.l,e.opacity);if(e instanceof Tr||(e=Br(e)),!e)return new yn;if(e instanceof yn)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,f=(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/=f<.5?o+i:2-o-i,a*=60):s=f>0&&f<1?0:a,new yn(a,s,f,e.opacity)}function Fh(e,t,n,r){return arguments.length===1?D1(e):new yn(e,t,n,r??1)}function yn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}ko(yn,Fh,ms(Tr,{brighter(e){return e=e==null?Io:Math.pow(Io,e),new yn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ii:Math.pow(Ii,e),new yn(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(Mh(e>=240?e-240:e+120,i,r),Mh(e,i,r),Mh(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new yn(R1(this.h),Nf(this.s),Nf(this.l),Lf(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=Lf(this.opacity);return`${e===1?"hsl(":"hsla("}${R1(this.h)}, ${Nf(this.s)*100}%, ${Nf(this.l)*100}%${e===1?")":`, ${e})`}`}}));function R1(e){return e=(e||0)%360,e<0?e+360:e}function Nf(e){return Math.max(0,Math.min(1,e||0))}function Mh(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 F1=Math.PI/180,M1=180/Math.PI,Of=18,P1=.96422,L1=1,N1=.82521,O1=4/29,Bo=6/29,z1=3*Bo*Bo,T6=Bo*Bo*Bo;function U1(e){if(e instanceof Pn)return new Pn(e.l,e.a,e.b,e.opacity);if(e instanceof nr)return G1(e);e instanceof ft||(e=Rh(e));var t=zh(e.r),n=zh(e.g),r=zh(e.b),i=Lh((.2225045*t+.7168786*n+.0606169*r)/L1),o,a;return t===n&&n===r?o=a=i:(o=Lh((.4360747*t+.3850649*n+.1430804*r)/P1),a=Lh((.0139322*t+.0971045*n+.7141733*r)/N1)),new Pn(116*i-16,500*(o-i),200*(i-a),e.opacity)}function Ph(e,t,n,r){return arguments.length===1?U1(e):new Pn(e,t,n,r??1)}function Pn(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}ko(Pn,Ph,ms(Tr,{brighter(e){return new Pn(this.l+Of*(e??1),this.a,this.b,this.opacity)},darker(e){return new Pn(this.l-Of*(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=P1*Nh(t),e=L1*Nh(e),n=N1*Nh(n),new ft(Oh(3.1338561*t-1.6168667*e-.4906146*n),Oh(-.9787684*t+1.9161415*e+.033454*n),Oh(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function Lh(e){return e>T6?Math.pow(e,1/3):e/z1+O1}function Nh(e){return e>Bo?e*e*e:z1*(e-O1)}function Oh(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function zh(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function B6(e){if(e instanceof nr)return new nr(e.h,e.c,e.l,e.opacity);if(e instanceof Pn||(e=U1(e)),e.a===0&&e.b===0)return new nr(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*M1;return new nr(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function Uh(e,t,n,r){return arguments.length===1?B6(e):new nr(e,t,n,r??1)}function nr(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function G1(e){if(isNaN(e.h))return new Pn(e.l,0,0,e.opacity);var t=e.h*F1;return new Pn(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}ko(nr,Uh,ms(Tr,{brighter(e){return new nr(this.h,this.c,this.l+Of*(e??1),this.opacity)},darker(e){return new nr(this.h,this.c,this.l-Of*(e??1),this.opacity)},rgb(){return G1(this).rgb()}}));var H1=-.14861,Gh=1.78277,Hh=-.29227,zf=-.90649,ys=1.97294,V1=ys*zf,j1=ys*Gh,q1=Gh*Hh-zf*H1;function D6(e){if(e instanceof Di)return new Di(e.h,e.s,e.l,e.opacity);e instanceof ft||(e=Rh(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(q1*r+V1*t-j1*n)/(q1+V1-j1),o=r-i,a=(ys*(n-i)-Hh*o)/zf,s=Math.sqrt(a*a+o*o)/(ys*i*(1-i)),f=s?Math.atan2(a,o)*M1-120:NaN;return new Di(f<0?f+360:f,s,i,e.opacity)}function Vh(e,t,n,r){return arguments.length===1?D6(e):new Di(e,t,n,r??1)}function Di(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}ko(Di,Vh,ms(Tr,{brighter(e){return e=e==null?Io:Math.pow(Io,e),new Di(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ii:Math.pow(Ii,e),new Di(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*F1,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*(H1*r+Gh*i)),255*(t+n*(Hh*r+zf*i)),255*(t+n*(ys*r)),this.opacity)}}));function Z1(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 W1(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 Z1((n-r/t)*t,a,i,o,s)}}function Y1(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 Z1((n-r/t)*t,i,o,a,s)}}const Uf=e=>()=>e;function Q1(e,t){return function(n){return e+n*t}}function R6(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 Gf(e,t){var n=t-e;return n?Q1(e,n>180||n<-180?n-360*Math.round(n/360):n):Uf(isNaN(e)?t:e)}function F6(e){return(e=+e)==1?ut:function(t,n){return n-t?R6(t,n,e):Uf(isNaN(t)?n:t)}}function ut(e,t){var n=t-e;return n?Q1(e,n):Uf(isNaN(e)?t:e)}const jh=function e(t){var n=F6(t);function r(i,o){var a=n((i=Pf(i)).r,(o=Pf(o)).r),s=n(i.g,o.g),f=n(i.b,o.b),l=ut(i.opacity,o.opacity);return function(u){return i.r=a(u),i.g=s(u),i.b=f(u),i.opacity=l(u),i+""}}return r.gamma=e,r}(1);function X1(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=Pf(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(f){return s.r=r(f),s.g=i(f),s.b=o(f),s+""}}}var M6=X1(W1),P6=X1(Y1);function qh(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 $1(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function L6(e,t){return($1(t)?qh:K1)(e,t)}function K1(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]=Dr(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 J1(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function wn(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function eb(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]=Dr(e[i],t[i]):r[i]=t[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var Zh=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Wh=new RegExp(Zh.source,"g");function N6(e){return function(){return e}}function O6(e){return function(t){return e(t)+""}}function tb(e,t){var n=Zh.lastIndex=Wh.lastIndex=0,r,i,o,a=-1,s=[],f=[];for(e=e+"",t=t+"";(r=Zh.exec(e))&&(i=Wh.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,f.push({i:a,x:wn(r,i)})),n=Wh.lastIndex;return n<t.length&&(o=t.slice(n),s[a]?s[a]+=o:s[++a]=o),s.length<2?f[0]?O6(f[0].x):N6(t):(t=f.length,function(l){for(var u=0,c;u<t;++u)s[(c=f[u]).i]=c.x(l);return s.join("")})}function Dr(e,t){var n=typeof t,r;return t==null||n==="boolean"?Uf(t):(n==="number"?wn:n==="string"?(r=Br(t))?(t=r,jh):tb:t instanceof Br?jh:t instanceof Date?J1:$1(t)?qh:Array.isArray(t)?K1:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?eb:wn)(e,t)}function z6(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function U6(e,t){var n=Gf(+e,+t);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function ws(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var nb=180/Math.PI,Yh={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function rb(e,t,n,r,i,o){var a,s,f;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(f=e*n+t*r)&&(n-=e*f,r-=t*f),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,f/=s),e*r<t*n&&(e=-e,t=-t,f=-f,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(t,e)*nb,skewX:Math.atan(f)*nb,scaleX:a,scaleY:s}}var Hf;function G6(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Yh:rb(t.a,t.b,t.c,t.d,t.e,t.f)}function H6(e){return e==null||(Hf||(Hf=document.createElementNS("http://www.w3.org/2000/svg","g")),Hf.setAttribute("transform",e),!(e=Hf.transform.baseVal.consolidate()))?Yh:(e=e.matrix,rb(e.a,e.b,e.c,e.d,e.e,e.f))}function ib(e,t,n,r){function i(l){return l.length?l.pop()+" ":""}function o(l,u,c,h,d,p){if(l!==c||u!==h){var b=d.push("translate(",null,t,null,n);p.push({i:b-4,x:wn(l,c)},{i:b-2,x:wn(u,h)})}else(c||h)&&d.push("translate("+c+t+h+n)}function a(l,u,c,h){l!==u?(l-u>180?u+=360:u-l>180&&(l+=360),h.push({i:c.push(i(c)+"rotate(",null,r)-2,x:wn(l,u)})):u&&c.push(i(c)+"rotate("+u+r)}function s(l,u,c,h){l!==u?h.push({i:c.push(i(c)+"skewX(",null,r)-2,x:wn(l,u)}):u&&c.push(i(c)+"skewX("+u+r)}function f(l,u,c,h,d,p){if(l!==c||u!==h){var b=d.push(i(d)+"scale(",null,",",null,")");p.push({i:b-4,x:wn(l,c)},{i:b-2,x:wn(u,h)})}else(c!==1||h!==1)&&d.push(i(d)+"scale("+c+","+h+")")}return function(l,u){var c=[],h=[];return l=e(l),u=e(u),o(l.translateX,l.translateY,u.translateX,u.translateY,c,h),a(l.rotate,u.rotate,c,h),s(l.skewX,u.skewX,c,h),f(l.scaleX,l.scaleY,u.scaleX,u.scaleY,c,h),l=u=null,function(d){for(var p=-1,b=h.length,y;++p<b;)c[(y=h[p]).i]=y.x(d);return c.join("")}}}var V6=ib(G6,"px, ","px)","deg)"),j6=ib(H6,", ",")",")"),q6=1e-12;function ob(e){return((e=Math.exp(e))+1/e)/2}function Z6(e){return((e=Math.exp(e))-1/e)/2}function W6(e){return((e=Math.exp(2*e))-1)/(e+1)}const Y6=function e(t,n,r){function i(o,a){var s=o[0],f=o[1],l=o[2],u=a[0],c=a[1],h=a[2],d=u-s,p=c-f,b=d*d+p*p,y,w;if(b<q6)w=Math.log(h/l)/t,y=function(I){return[s+I*d,f+I*p,l*Math.exp(t*I*w)]};else{var _=Math.sqrt(b),C=(h*h-l*l+r*b)/(2*l*n*_),S=(h*h-l*l-r*b)/(2*h*n*_),T=Math.log(Math.sqrt(C*C+1)-C),B=Math.log(Math.sqrt(S*S+1)-S);w=(B-T)/t,y=function(I){var F=I*w,P=ob(T),j=l/(n*_)*(P*W6(t*F+T)-Z6(T));return[s+j*d,f+j*p,l*P/ob(t*F+T)]}}return y.duration=w*1e3*t/Math.SQRT2,y}return i.rho=function(o){var a=Math.max(.001,+o),s=a*a,f=s*s;return e(a,s,f)},i}(Math.SQRT2,2,4);function ab(e){return function(t,n){var r=e((t=Fh(t)).h,(n=Fh(n)).h),i=ut(t.s,n.s),o=ut(t.l,n.l),a=ut(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 Q6=ab(Gf);var X6=ab(ut);function $6(e,t){var n=ut((e=Ph(e)).l,(t=Ph(t)).l),r=ut(e.a,t.a),i=ut(e.b,t.b),o=ut(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 sb(e){return function(t,n){var r=e((t=Uh(t)).h,(n=Uh(n)).h),i=ut(t.c,n.c),o=ut(t.l,n.l),a=ut(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 K6=sb(Gf);var J6=sb(ut);function lb(e){return function t(n){n=+n;function r(i,o){var a=e((i=Vh(i)).h,(o=Vh(o)).h),s=ut(i.s,o.s),f=ut(i.l,o.l),l=ut(i.opacity,o.opacity);return function(u){return i.h=a(u),i.s=s(u),i.l=f(Math.pow(u,n)),i.opacity=l(u),i+""}}return r.gamma=t,r}(1)}const e8=lb(Gf);var t8=lb(ut);function Qh(e,t){t===void 0&&(t=e,e=Dr);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 n8(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}const r8=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Dr,interpolateArray:L6,interpolateBasis:W1,interpolateBasisClosed:Y1,interpolateCubehelix:e8,interpolateCubehelixLong:t8,interpolateDate:J1,interpolateDiscrete:z6,interpolateHcl:K6,interpolateHclLong:J6,interpolateHsl:Q6,interpolateHslLong:X6,interpolateHue:U6,interpolateLab:$6,interpolateNumber:wn,interpolateNumberArray:qh,interpolateObject:eb,interpolateRgb:jh,interpolateRgbBasis:M6,interpolateRgbBasisClosed:P6,interpolateRound:ws,interpolateString:tb,interpolateTransformCss:V6,interpolateTransformSvg:j6,interpolateZoom:Y6,piecewise:Qh,quantize:n8},Symbol.toStringTag,{value:"Module"}));function i8(e){return function(){return e}}function Xh(e){return+e}var fb=[0,1];function zt(e){return e}function $h(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:i8(isNaN(t)?NaN:.5)}function o8(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function a8(e,t,n){var r=e[0],i=e[1],o=t[0],a=t[1];return i<r?(r=$h(i,r),o=n(a,o)):(r=$h(r,i),o=n(o,a)),function(s){return o(r(s))}}function s8(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]=$h(e[a],e[a+1]),o[a]=n(t[a],t[a+1]);return function(s){var f=xo(e,s,1,r)-1;return o[f](i[f](s))}}function vs(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Vf(){var e=fb,t=fb,n=Dr,r,i,o,a=zt,s,f,l;function u(){var h=Math.min(e.length,t.length);return a!==zt&&(a=o8(e[0],e[h-1])),s=h>2?s8:a8,f=l=null,c}function c(h){return h==null||isNaN(h=+h)?o:(f||(f=s(e.map(r),t,n)))(r(a(h)))}return c.invert=function(h){return a(i((l||(l=s(t,e.map(r),wn)))(h)))},c.domain=function(h){return arguments.length?(e=Array.from(h,Xh),u()):e.slice()},c.range=function(h){return arguments.length?(t=Array.from(h),u()):t.slice()},c.rangeRound=function(h){return t=Array.from(h),n=ws,u()},c.clamp=function(h){return arguments.length?(a=h?!0:zt,u()):a!==zt},c.interpolate=function(h){return arguments.length?(n=h,u()):n},c.unknown=function(h){return arguments.length?(o=h,c):o},function(h,d){return r=h,i=d,u()}}function ub(){return Vf()(zt,zt)}function cb(e,t,n,r){var i=mi(e,t,n),o;switch(r=Ar(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(o=cm(i,a))&&(r.precision=o),Jc(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=hm(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=um(i))&&(r.precision=o-(r.type==="%")*2);break}}return pt(r)}function Ri(e){var t=e.domain;return e.ticks=function(n){var r=t();return cf(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return cb(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],f,l,u=10;for(s<a&&(l=a,a=s,s=l,l=i,i=o,o=l);u-- >0;){if(l=nm(a,s,n),l===f)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;f=l}return e},e}function hb(){var e=ub();return e.copy=function(){return vs(e,hb())},Fn.apply(e,arguments),Ri(e)}function db(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,Xh),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return db(e).unknown(t)},e=arguments.length?Array.from(e,Xh):[0,1],Ri(n)}function pb(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 gb(e){return Math.log(e)}function mb(e){return Math.exp(e)}function l8(e){return-Math.log(-e)}function f8(e){return-Math.exp(-e)}function u8(e){return isFinite(e)?+("1e"+e):e<0?0:e}function c8(e){return e===10?u8:e===Math.E?Math.exp:t=>Math.pow(e,t)}function h8(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 bb(e){return(t,n)=>-e(-t,n)}function Kh(e){const t=e(gb,mb),n=t.domain;let r=10,i,o;function a(){return i=h8(r),o=c8(r),n()[0]<0?(i=bb(i),o=bb(o),e(l8,f8)):e(gb,mb),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 f=n();let l=f[0],u=f[f.length-1];const c=u<l;c&&([l,u]=[u,l]);let h=i(l),d=i(u),p,b;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(b=h<0?p/o(-h):p*o(h),!(b<l)){if(b>u)break;w.push(b)}}else for(;h<=d;++h)for(p=r-1;p>=1;--p)if(b=h>0?p/o(-h):p*o(h),!(b<l)){if(b>u)break;w.push(b)}w.length*2<y&&(w=cf(l,u,y))}else w=cf(h,d,Math.min(d-h,y)).map(o);return c?w.reverse():w},t.tickFormat=(s,f)=>{if(s==null&&(s=10),f==null&&(f=r===10?"s":","),typeof f!="function"&&(!(r%1)&&(f=Ar(f)).precision==null&&(f.trim=!0),f=pt(f)),s===1/0)return f;const l=Math.max(1,r*s/t.ticks().length);return u=>{let c=u/o(Math.round(i(u)));return c*r<r-.5&&(c*=r),c<=l?f(u):""}},t.nice=()=>n(pb(n(),{floor:s=>o(Math.floor(i(s))),ceil:s=>o(Math.ceil(i(s)))})),t}function Jh(){const e=Kh(Vf()).domain([1,10]);return e.copy=()=>vs(e,Jh()).base(e.base()),Fn.apply(e,arguments),e}function yb(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function wb(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function ed(e){var t=1,n=e(yb(t),wb(t));return n.constant=function(r){return arguments.length?e(yb(t=+r),wb(t)):t},Ri(n)}function vb(){var e=ed(Vf());return e.copy=function(){return vs(e,vb()).constant(e.constant())},Fn.apply(e,arguments)}function xb(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function d8(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function p8(e){return e<0?-e*e:e*e}function td(e){var t=e(zt,zt),n=1;function r(){return n===1?e(zt,zt):n===.5?e(d8,p8):e(xb(n),xb(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},Ri(t)}function nd(){var e=td(Vf());return e.copy=function(){return vs(e,nd()).exponent(e.exponent())},Fn.apply(e,arguments),e}function g8(){return nd.apply(null,arguments).exponent(.5)}function Ab(){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]=rm(e,a/s);return o}function o(a){return a==null||isNaN(a=+a)?r:t[xo(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(Oa),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 Ab().domain(e).range(t).unknown(r)},Fn.apply(o,arguments)}function Eb(){var e=0,t=1,n=1,r=[.5],i=[0,1],o;function a(f){return f!=null&&f<=f?i[xo(r,f,0,n)]:o}function s(){var f=-1;for(r=new Array(n);++f<n;)r[f]=((f+1)*t-(f-n)*e)/(n+1);return a}return a.domain=function(f){return arguments.length?([e,t]=f,e=+e,t=+t,s()):[e,t]},a.range=function(f){return arguments.length?(n=(i=Array.from(f)).length-1,s()):i.slice()},a.invertExtent=function(f){var l=i.indexOf(f);return l<0?[NaN,NaN]:l<1?[e,r[0]]:l>=n?[r[n-1],t]:[r[l-1],r[l]]},a.unknown=function(f){return arguments.length&&(o=f),a},a.thresholds=function(){return r.slice()},a.copy=function(){return Eb().domain([e,t]).range(i).unknown(o)},Fn.apply(Ri(a),arguments)}function _b(){var e=[.5],t=[0,1],n,r=1;function i(o){return o!=null&&o<=o?t[xo(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 _b().domain(e).range(t).unknown(n)},Fn.apply(i,arguments)}function m8(e){return new Date(e)}function b8(e){return e instanceof Date?+e:+new Date(+e)}function rd(e,t,n,r,i,o,a,s,f,l){var u=ub(),c=u.invert,h=u.domain,d=l(".%L"),p=l(":%S"),b=l("%I:%M"),y=l("%I %p"),w=l("%a %d"),_=l("%b %d"),C=l("%B"),S=l("%Y");function T(B){return(f(B)<B?d:s(B)<B?p:a(B)<B?b:o(B)<B?y:r(B)<B?i(B)<B?w:_:n(B)<B?C:S)(B)}return u.invert=function(B){return new Date(c(B))},u.domain=function(B){return arguments.length?h(Array.from(B,b8)):h().map(m8)},u.ticks=function(B){var I=h();return e(I[0],I[I.length-1],B??10)},u.tickFormat=function(B,I){return I==null?T:l(I)},u.nice=function(B){var I=h();return(!B||typeof B.range!="function")&&(B=t(I[0],I[I.length-1],B??10)),B?h(pb(I,B)):u},u.copy=function(){return vs(u,rd(e,t,n,r,i,o,a,s,f,l))},u}function y8(){return Fn.apply(rd(c4,h4,_r,bf,Ua,yi,ah,oh,Er,ph).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function w8(){return Fn.apply(rd(f4,u4,Sr,wf,Ga,vi,fh,lh,Er,gh).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function jf(){var e=0,t=1,n,r,i,o,a=zt,s=!1,f;function l(c){return c==null||isNaN(c=+c)?f:a(i===0?.5:(c=(o(c)-n)*i,s?Math.max(0,Math.min(1,c)):c))}l.domain=function(c){return arguments.length?([e,t]=c,n=o(e=+e),r=o(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(c){return arguments.length?(s=!!c,l):s},l.interpolator=function(c){return arguments.length?(a=c,l):a};function u(c){return function(h){var d,p;return arguments.length?([d,p]=h,a=c(d,p),l):[a(0),a(1)]}}return l.range=u(Dr),l.rangeRound=u(ws),l.unknown=function(c){return arguments.length?(f=c,l):f},function(c){return o=c,n=c(e),r=c(t),i=n===r?0:1/(r-n),l}}function Rr(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function id(){var e=Ri(jf()(zt));return e.copy=function(){return Rr(e,id())},Ir.apply(e,arguments)}function Sb(){var e=Kh(jf()).domain([1,10]);return e.copy=function(){return Rr(e,Sb()).base(e.base())},Ir.apply(e,arguments)}function Cb(){var e=ed(jf());return e.copy=function(){return Rr(e,Cb()).constant(e.constant())},Ir.apply(e,arguments)}function od(){var e=td(jf());return e.copy=function(){return Rr(e,od()).exponent(e.exponent())},Ir.apply(e,arguments)}function v8(){return od.apply(null,arguments).exponent(.5)}function qf(){var e=0,t=.5,n=1,r=1,i,o,a,s,f,l=zt,u,c=!1,h;function d(b){return isNaN(b=+b)?h:(b=.5+((b=+u(b))-o)*(r*b<r*o?s:f),l(c?Math.max(0,Math.min(1,b)):b))}d.domain=function(b){return arguments.length?([e,t,n]=b,i=u(e=+e),o=u(t=+t),a=u(n=+n),s=i===o?0:.5/(o-i),f=o===a?0:.5/(a-o),r=o<i?-1:1,d):[e,t,n]},d.clamp=function(b){return arguments.length?(c=!!b,d):c},d.interpolator=function(b){return arguments.length?(l=b,d):l};function p(b){return function(y){var w,_,C;return arguments.length?([w,_,C]=y,l=Qh(b,[w,_,C]),d):[l(0),l(.5),l(1)]}}return d.range=p(Dr),d.rangeRound=p(ws),d.unknown=function(b){return arguments.length?(h=b,d):h},function(b){return u=b,i=b(e),o=b(t),a=b(n),s=i===o?0:.5/(o-i),f=o===a?0:.5/(a-o),r=o<i?-1:1,d}}function kb(){var e=Ri(qf()(zt));return e.copy=function(){return Rr(e,kb())},Ir.apply(e,arguments)}function Ib(){var e=Kh(qf()).domain([.1,1,10]);return e.copy=function(){return Rr(e,Ib()).base(e.base())},Ir.apply(e,arguments)}function Tb(){var e=ed(qf());return e.copy=function(){return Rr(e,Tb()).constant(e.constant())},Ir.apply(e,arguments)}function ad(){var e=td(qf());return e.copy=function(){return Rr(e,ad()).exponent(e.exponent())},Ir.apply(e,arguments)}function x8(){return ad.apply(null,arguments).exponent(.5)}function sd(e,t,n){const r=e-t+n*2;return e?r>0?r:1:0}const A8="identity",Do="linear",Fr="log",xs="pow",As="sqrt",Zf="symlog",Bb="time",Db="utc",Ln="sequential",Ro="diverging",ld="quantile",Rb="quantize",Fb="threshold",fd="ordinal",ud="point",Mb="band",cd="bin-ordinal",rt="continuous",Es="discrete",_s="discretizing",tn="interpolating",Pb="temporal";function E8(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 _8(e){return function(t){const n=e.range();let r=t[0],i=t[1],o=-1,a,s,f,l;for(i<r&&(s=r,r=i,i=s),f=0,l=n.length;f<l;++f)n[f]>=r&&n[f]<=i&&(o<0&&(o=f),a=f);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 hd(){const e=Dh().unknown(void 0),t=e.domain,n=e.range;let r=[0,1],i,o,a=!1,s=0,f=0,l=.5;delete e.unknown;function u(){const c=t().length,h=r[1]<r[0],d=r[1-h],p=sd(c,s,f);let b=r[h-0];i=(d-b)/(p||1),a&&(i=Math.floor(i)),b+=(d-b-i*(c-s))*l,o=i*(1-s),a&&(b=Math.round(b),o=Math.round(o));const y=za(c).map(w=>b+i*w);return n(h?y.reverse():y)}return e.domain=function(c){return arguments.length?(t(c),u()):t()},e.range=function(c){return arguments.length?(r=[+c[0],+c[1]],u()):r.slice()},e.rangeRound=function(c){return r=[+c[0],+c[1]],a=!0,u()},e.bandwidth=function(){return o},e.step=function(){return i},e.round=function(c){return arguments.length?(a=!!c,u()):a},e.padding=function(c){return arguments.length?(f=Math.max(0,Math.min(1,c)),s=f,u()):s},e.paddingInner=function(c){return arguments.length?(s=Math.max(0,Math.min(1,c)),u()):s},e.paddingOuter=function(c){return arguments.length?(f=Math.max(0,Math.min(1,c)),u()):f},e.align=function(c){return arguments.length?(l=Math.max(0,Math.min(1,c)),u()):l},e.invertRange=function(c){if(c[0]==null||c[1]==null)return;const h=r[1]<r[0],d=h?n().reverse():n(),p=d.length-1;let b=+c[0],y=+c[1],w,_,C;if(!(b!==b||y!==y)&&(y<b&&(C=b,b=y,y=C),!(y<d[0]||b>r[1-h])))return w=Math.max(0,Wc(d,b)-1),_=b===y?w:Wc(d,y)-1,b-d[w]>o+1e-10&&++w,h&&(C=w,w=p-_,_=p-C),w>_?void 0:t().slice(w,_+1)},e.invert=function(c){const h=e.invertRange([c,c]);return h&&h[0]},e.copy=function(){return hd().domain(t()).range(r).round(a).paddingInner(s).paddingOuter(f).align(l)},u()}function Lb(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return Lb(t())},e}function S8(){return Lb(hd().paddingInner(1))}var C8=Array.prototype.map;function k8(e){return C8.call(e,Pa)}const I8=Array.prototype.slice;function Nb(){let e=[],t=[];function n(r){return r==null||r!==r?void 0:t[(xo(e,r)-1)%t.length]}return n.domain=function(r){return arguments.length?(e=k8(r),n):e.slice()},n.range=function(r){return arguments.length?(t=I8.call(r),n):t.slice()},n.tickFormat=function(r,i){return cb(e[0],mn(e),r??10,i)},n.copy=function(){return Nb().domain(n.domain()).range(n.range())},n}const Wf={};function T8(e,t,n){const r=function(){const o=t();return o.invertRange||(o.invertRange=o.invert?E8(o):o.invertExtent?_8(o):void 0),o.type=e,o};return r.metadata=lf(Hc(n)),r}function Ae(e,t,n){return arguments.length>1?(Wf[e]=T8(e,t,n),this):B8(e)?Wf[e]:void 0}Ae(A8,db),Ae(Do,hb,rt),Ae(Fr,Jh,[rt,Fr]),Ae(xs,nd,rt),Ae(As,g8,rt),Ae(Zf,vb,rt),Ae(Bb,y8,[rt,Pb]),Ae(Db,w8,[rt,Pb]),Ae(Ln,id,[rt,tn]),Ae("".concat(Ln,"-").concat(Do),id,[rt,tn]),Ae("".concat(Ln,"-").concat(Fr),Sb,[rt,tn,Fr]),Ae("".concat(Ln,"-").concat(xs),od,[rt,tn]),Ae("".concat(Ln,"-").concat(As),v8,[rt,tn]),Ae("".concat(Ln,"-").concat(Zf),Cb,[rt,tn]),Ae("".concat(Ro,"-").concat(Do),kb,[rt,tn]),Ae("".concat(Ro,"-").concat(Fr),Ib,[rt,tn,Fr]),Ae("".concat(Ro,"-").concat(xs),ad,[rt,tn]),Ae("".concat(Ro,"-").concat(As),x8,[rt,tn]),Ae("".concat(Ro,"-").concat(Zf),Tb,[rt,tn]),Ae(ld,Ab,[_s,ld]),Ae(Rb,Eb,_s),Ae(Fb,_b,_s),Ae(cd,Nb,[Es,_s]),Ae(fd,Dh,Es),Ae(Mb,hd,Es),Ae(ud,S8,Es);function B8(e){return pi(Wf,e)}function Ss(e,t){const n=Wf[e];return n&&n.metadata[t]}function xt(e){return Ss(e,rt)}function Mr(e){return Ss(e,Es)}function Fo(e){return Ss(e,_s)}function Ob(e){return Ss(e,Fr)}function Yf(e){return Ss(e,tn)}function D8(e,t){const n=t[0],r=mn(t)-n;return function(i){return e(n+i*r)}}function Qf(e,t,n){return Qh(zb(t||"rgb",n),e)}function R8(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}function zb(e,t){const n=r8[F8(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function F8(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const M8={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"},P8={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 Ub(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 Gb(e,t){for(const n in e)dd(n,t(e[n]))}const Hb={};Gb(P8,Ub),Gb(M8,e=>Qf(Ub(e)));function dd(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(Hb[e]=t,this):Hb[e]}function L8(){let e=0;const t=new Map,n=r=>{let i=t.get(r);return i===void 0&&(i=e++,t.set(r,i)),i};return n.addAll=r=>{for(const i of r)n(i)},n.invert=r=>{for(const i of t.entries())if(i[1]==r)return i[0]},n.domain=()=>[...t.keys()],n}function Xf(){const e=t=>t;return e.invert=t=>t,e.copy=Xf,e.invertRange=()=>{},e.type="null",e}function N8(e,t){const n={};t||(t=e.encoding);for(const[r,i]of Object.entries(t)){if(!i)continue;const o=((Ut(i)&&i.resolutionChannel)??(Pi(r)&&r))||void 0,a=e.unitView.getScaleResolution(o);n[r]=O8(t[r],a==null?void 0:a.getScale(),e.unitView.getAccessor(r),r)}return n}function O8(e,t,n,r){let i;if(vn(e)){const o=e.value;i=a=>o,i.constant=!0,i.constantValue=!0,i.accessor=void 0}else if(n)if(r=="text")i=o=>{},i.accessor=n,i.constant=n.constant;else{if(!t)if(!Pi(r))t=Xf();else throw new Error(`Missing scale! "${r}": ${JSON.stringify(e)}`);if(i=o=>t(n(o)),Mr(t.type)){const o=L8();o.addAll(t.domain()),i.indexer=o}i.constant=n.constant,i.accessor=n,i.scale=t}else throw new Error(`Missing value or accessor (field, expr, datum) on channel "${r}": ${JSON.stringify(e)}`);return i.invert=t?o=>t.invert(o):o=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(e))},i.channelDef=e,i.applyMetadata=o=>{for(const a in i)a in i&&(o[a]=i[a]);return o},i}function vn(e){return e&&"value"in e}function Cs(e){return e&&"field"in e}function ks(e){return e&&"datum"in e}function Ut(e){return Cs(e)||ks(e)||gd(e)||Vb(e)}function pd(e,t){const n=e.mark.encoding[t];if(Ut(n))return n;throw new Error("Not a channel def with scale!")}function Vb(e){return e&&"chrom"in e}function gd(e){return e&&"expr"in e}const Mo=["x","y"],z8=["x2","y2"],U8=[...Mo,...z8];function jb(e){return Mo.includes(e)}function Is(e){return U8.includes(e)}const md={x:"x2",y:"y2"},qb=Object.fromEntries(Object.entries(md).map(e=>[e[1],e[0]]));function Ts(e){return e in qb}function G8(e){const t=md[e];if(t)return t;throw new Error(`${e} has no secondary channel!`)}function Fi(e){return qb[e]??e}function Mi(e){return["color","fill","stroke"].includes(Fi(e))}function $f(e){return["shape","squeeze"].includes(e)}function Pi(e){return["x","y","x2","y2","color","fill","stroke","opacity","fillOpacity","strokeOpacity","strokeWidth","size","shape","angle","dx","dy","sample"].includes(e)}function H8(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 Zb(e){if(!$f(e))throw new Error("Not a discrete channel: "+e);const t=new Map(H8(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 Fe(e,t=e){if(/^[A-Za-z0-9_]+$/.test(e)){const n=new Function("datum",`return datum[${JSON.stringify(e)}]`);return Ce(n,[e],t)}else return tf(e)}class V8{constructor(){this.accessorCreators=[],this.register(t=>{if(Cs(t))try{const n=Fe(t.field);return n.constant=!1,n.fields=ef(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(t=>gd(t)?j8(t.expr):void 0),this.register(t=>{if(ks(t)){const r=y_(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 j8(e){const n=Ff(e);return n.constant=n.fields.length==0,n}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
160
+ }`;function dC(e,t){var n=e.getBoundingClientRect();return[t.clientX-n.left-e.clientLeft,t.clientY-n.top-e.clientTop]}function Iu(e,t){return e.length==t.length&&e.every((n,r)=>e[r]===t[r])}function Lt(e){return Array.isArray(e)?e:typeof e<"u"?[e]:[]}function ds(e){return e[e.length-1]}class pC{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 ds(this.enabledStack)??!0}pushEnabledState(t){this.enabledStack.push(t),t||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(t){this.mouseCoords=dC(this.container,t);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&gC(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&&(Eh("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}Eh(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(mn` ${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 gC(e,t){let n=0;for(let r=0;r<e.length;r++)n+=(e[r]-t[r])**2;return Math.sqrt(n)}const mC="RawCode",bC="Literal",yC="Property",wC="Identifier",vC="ArrayExpression",xC="BinaryExpression",AC="CallExpression",EC="ConditionalExpression",_C="LogicalExpression",SC="MemberExpression",CC="ObjectExpression",kC="UnaryExpression";function bn(e){this.type=e}bn.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=TC(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};function TC(e){switch(e.type){case vC:return e.elements;case xC:case _C:return[e.left,e.right];case AC:return[e.callee].concat(e.arguments);case EC:return[e.test,e.consequent,e.alternate];case SC:return[e.object,e.property];case CC:return e.properties;case yC:return[e.key,e.value];case kC:return[e.argument];case wC:case bC:case mC:default:return[]}}var Dn,K,U,xt,ke,Bu=1,ps=2,Ci=3,Br=4,Du=5,ki=6,Nt=7,gs=8,IC=9;Dn={},Dn[Bu]="Boolean",Dn[ps]="<end>",Dn[Ci]="Identifier",Dn[Br]="Keyword",Dn[Du]="Null",Dn[ki]="Numeric",Dn[Nt]="Punctuator",Dn[gs]="String",Dn[IC]="RegularExpression";var BC="ArrayExpression",DC="BinaryExpression",FC="CallExpression",RC="ConditionalExpression",c1="Identifier",MC="Literal",PC="LogicalExpression",LC="MemberExpression",NC="ObjectExpression",OC="Property",zC="UnaryExpression",ut="Unexpected token %0",UC="Unexpected number",GC="Unexpected string",HC="Unexpected identifier",VC="Unexpected reserved word",jC="Unexpected end of input",_h="Invalid regular expression",Sh="Invalid regular expression: missing /",h1="Octal literals are not allowed in strict mode.",qC="Duplicate data property in object literal not allowed in strict mode",mt="ILLEGAL",ms="Disabled.",ZC=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]"),WC=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 Fu(e,t){if(!e)throw new Error("ASSERT: "+t)}function tr(e){return e>=48&&e<=57}function Ch(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function bs(e){return"01234567".indexOf(e)>=0}function YC(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 ys(e){return e===10||e===13||e===8232||e===8233}function ws(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&ZC.test(String.fromCharCode(e))}function Ru(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&WC.test(String.fromCharCode(e))}const QC={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 d1(){for(;U<xt;){const e=K.charCodeAt(U);if(YC(e)||ys(e))++U;else break}}function kh(e){var t,n,r,i=0;for(n=e==="u"?4:2,t=0;t<n;++t)U<xt&&Ch(K[U])?(r=K[U++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):ye({},ut,mt);return String.fromCharCode(i)}function XC(){var e,t,n,r;for(e=K[U],t=0,e==="}"&&ye({},ut,mt);U<xt&&(e=K[U++],!!Ch(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&ye({},ut,mt),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,r=(t-65536&1023)+56320,String.fromCharCode(n,r))}function p1(){var e,t;for(e=K.charCodeAt(U++),t=String.fromCharCode(e),e===92&&(K.charCodeAt(U)!==117&&ye({},ut,mt),++U,e=kh("u"),(!e||e==="\\"||!ws(e.charCodeAt(0)))&&ye({},ut,mt),t=e);U<xt&&(e=K.charCodeAt(U),!!Ru(e));)++U,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),K.charCodeAt(U)!==117&&ye({},ut,mt),++U,e=kh("u"),(!e||e==="\\"||!Ru(e.charCodeAt(0)))&&ye({},ut,mt),t+=e);return t}function $C(){var e,t;for(e=U++;U<xt;){if(t=K.charCodeAt(U),t===92)return U=e,p1();if(Ru(t))++U;else break}return K.slice(e,U)}function KC(){var e,t,n;return e=U,t=K.charCodeAt(U)===92?p1():$C(),t.length===1?n=Ci:QC.hasOwnProperty(t)?n=Br:t==="null"?n=Du:t==="true"||t==="false"?n=Bu:n=Ci,{type:n,value:t,start:e,end:U}}function Th(){var e=U,t=K.charCodeAt(U),n,r=K[U],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++U,{type:Nt,value:String.fromCharCode(t),start:e,end:U};default:if(n=K.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:Nt,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:U};case 33:case 61:return U+=2,K.charCodeAt(U)===61&&++U,{type:Nt,value:K.slice(e,U),start:e,end:U}}}if(a=K.substr(U,4),a===">>>=")return U+=4,{type:Nt,value:a,start:e,end:U};if(o=a.substr(0,3),o===">>>"||o==="<<="||o===">>=")return U+=3,{type:Nt,value:o,start:e,end:U};if(i=o.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return U+=2,{type:Nt,value:i,start:e,end:U};if(i==="//"&&ye({},ut,mt),"<>=!+-*%&|^/".indexOf(r)>=0)return++U,{type:Nt,value:r,start:e,end:U};ye({},ut,mt)}function JC(e){let t="";for(;U<xt&&Ch(K[U]);)t+=K[U++];return t.length===0&&ye({},ut,mt),ws(K.charCodeAt(U))&&ye({},ut,mt),{type:ki,value:parseInt("0x"+t,16),start:e,end:U}}function e6(e){let t="0"+K[U++];for(;U<xt&&bs(K[U]);)t+=K[U++];return(ws(K.charCodeAt(U))||tr(K.charCodeAt(U)))&&ye({},ut,mt),{type:ki,value:parseInt(t,8),octal:!0,start:e,end:U}}function g1(){var e,t,n;if(n=K[U],Fu(tr(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=U,e="",n!=="."){if(e=K[U++],n=K[U],e==="0"){if(n==="x"||n==="X")return++U,JC(t);if(bs(n))return e6(t);n&&tr(n.charCodeAt(0))&&ye({},ut,mt)}for(;tr(K.charCodeAt(U));)e+=K[U++];n=K[U]}if(n==="."){for(e+=K[U++];tr(K.charCodeAt(U));)e+=K[U++];n=K[U]}if(n==="e"||n==="E")if(e+=K[U++],n=K[U],(n==="+"||n==="-")&&(e+=K[U++]),tr(K.charCodeAt(U)))for(;tr(K.charCodeAt(U));)e+=K[U++];else ye({},ut,mt);return ws(K.charCodeAt(U))&&ye({},ut,mt),{type:ki,value:parseFloat(e),start:t,end:U}}function t6(){var e="",t,n,r,i,o=!1;for(t=K[U],Fu(t==="'"||t==='"',"String literal must starts with a quote"),n=U,++U;U<xt;)if(r=K[U++],r===t){t="";break}else if(r==="\\")if(r=K[U++],!r||!ys(r.charCodeAt(0)))switch(r){case"u":case"x":K[U]==="{"?(++U,e+=XC()):e+=kh(r);break;case"n":e+=`
161
+ `;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:bs(r)?(i="01234567".indexOf(r),i!==0&&(o=!0),U<xt&&bs(K[U])&&(o=!0,i=i*8+"01234567".indexOf(K[U++]),"0123".indexOf(r)>=0&&U<xt&&bs(K[U])&&(i=i*8+"01234567".indexOf(K[U++]))),e+=String.fromCharCode(i)):e+=r;break}else r==="\r"&&K[U]===`
162
+ `&&++U;else{if(ys(r.charCodeAt(0)))break;e+=r}return t!==""&&ye({},ut,mt),{type:gs,value:e,octal:o,start:n,end:U}}function n6(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";ye({},_h)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{ye({},_h)}try{return new RegExp(e,t)}catch{return null}}function r6(){var e,t,n,r,i;for(e=K[U],Fu(e==="/","Regular expression literal must start with a slash"),t=K[U++],n=!1,r=!1;U<xt;)if(e=K[U++],t+=e,e==="\\")e=K[U++],ys(e.charCodeAt(0))&&ye({},Sh),t+=e;else if(ys(e.charCodeAt(0)))ye({},Sh);else if(n)e==="]"&&(n=!1);else if(e==="/"){r=!0;break}else e==="["&&(n=!0);return r||ye({},Sh),i=t.substr(1,t.length-2),{value:i,literal:t}}function i6(){var e,t,n;for(t="",n="";U<xt&&(e=K[U],!!Ru(e.charCodeAt(0)));)++U,e==="\\"&&U<xt?ye({},ut,mt):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&ye({},_h,n),{value:n,literal:t}}function o6(){var e,t,n,r;return ke=null,d1(),e=U,t=r6(),n=i6(),r=n6(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:U}}function a6(e){return e.type===Ci||e.type===Br||e.type===Bu||e.type===Du}function m1(){if(d1(),U>=xt)return{type:ps,start:U,end:U};const e=K.charCodeAt(U);return ws(e)?KC():e===40||e===41||e===59?Th():e===39||e===34?t6():e===46?tr(K.charCodeAt(U+1))?g1():Th():tr(e)?g1():Th()}function Ot(){const e=ke;return U=e.end,ke=m1(),U=e.end,e}function b1(){const e=U;ke=m1(),U=e}function s6(e){const t=new bn(BC);return t.elements=e,t}function y1(e,t,n){const r=new bn(e==="||"||e==="&&"?PC:DC);return r.operator=e,r.left=t,r.right=n,r}function l6(e,t){const n=new bn(FC);return n.callee=e,n.arguments=t,n}function u6(e,t,n){const r=new bn(RC);return r.test=e,r.consequent=t,r.alternate=n,r}function Ih(e){const t=new bn(c1);return t.name=e,t}function vs(e){const t=new bn(MC);return t.value=e.value,t.raw=K.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function w1(e,t,n){const r=new bn(LC);return r.computed=e==="[",r.object=t,r.property=n,r.computed||(n.member=!0),r}function f6(e){const t=new bn(NC);return t.properties=e,t}function v1(e,t,n){const r=new bn(OC);return r.key=t,r.value=n,r.kind=e,r}function c6(e,t){const n=new bn(zC);return n.operator=e,n.argument=t,n.prefix=!0,n}function ye(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,(o,a)=>(Fu(a<r.length,"Message reference must be in range"),r[a]));throw n=new Error(i),n.index=U,n.description=i,n}function Mu(e){e.type===ps&&ye(e,jC),e.type===ki&&ye(e,UC),e.type===gs&&ye(e,GC),e.type===Ci&&ye(e,HC),e.type===Br&&ye(e,VC),ye(e,ut,e.value)}function At(e){const t=Ot();(t.type!==Nt||t.value!==e)&&Mu(t)}function Ue(e){return ke.type===Nt&&ke.value===e}function Bh(e){return ke.type===Br&&ke.value===e}function h6(){const e=[];for(U=ke.start,At("[");!Ue("]");)Ue(",")?(Ot(),e.push(null)):(e.push(Ti()),Ue("]")||At(","));return Ot(),s6(e)}function x1(){U=ke.start;const e=Ot();return e.type===gs||e.type===ki?(e.octal&&ye(e,h1),vs(e)):Ih(e.value)}function d6(){var e,t,n,r;if(U=ke.start,e=ke,e.type===Ci)return n=x1(),At(":"),r=Ti(),v1("init",n,r);if(e.type===ps||e.type===Nt)Mu(e);else return t=x1(),At(":"),r=Ti(),v1("init",t,r)}function p6(){var e=[],t,n,r,i={},o=String;for(U=ke.start,At("{");!Ue("}");)t=d6(),t.key.type===c1?n=t.key.name:n=o(t.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?ye({},qC):i[r]=!0,e.push(t),Ue("}")||At(",");return At("}"),f6(e)}function g6(){At("(");const e=Dh();return At(")"),e}const m6={if:1};function b6(){var e,t,n;if(Ue("("))return g6();if(Ue("["))return h6();if(Ue("{"))return p6();if(e=ke.type,U=ke.start,e===Ci||m6[ke.value])n=Ih(Ot().value);else if(e===gs||e===ki)ke.octal&&ye(ke,h1),n=vs(Ot());else{if(e===Br)throw new Error(ms);e===Bu?(t=Ot(),t.value=t.value==="true",n=vs(t)):e===Du?(t=Ot(),t.value=null,n=vs(t)):Ue("/")||Ue("/=")?(n=vs(o6()),b1()):Mu(Ot())}return n}function y6(){const e=[];if(At("("),!Ue(")"))for(;U<xt&&(e.push(Ti()),!Ue(")"));)At(",");return At(")"),e}function w6(){U=ke.start;const e=Ot();return a6(e)||Mu(e),Ih(e.value)}function v6(){return At("."),w6()}function x6(){At("[");const e=Dh();return At("]"),e}function A6(){var e,t,n;for(e=b6();;)if(Ue("."))n=v6(),e=w1(".",e,n);else if(Ue("("))t=y6(),e=l6(e,t);else if(Ue("["))n=x6(),e=w1("[",e,n);else break;return e}function A1(){const e=A6();if(ke.type===Nt&&(Ue("++")||Ue("--")))throw new Error(ms);return e}function Pu(){var e,t;if(ke.type!==Nt&&ke.type!==Br)t=A1();else{if(Ue("++")||Ue("--"))throw new Error(ms);if(Ue("+")||Ue("-")||Ue("~")||Ue("!"))e=Ot(),t=Pu(),t=c6(e.value,t);else{if(Bh("delete")||Bh("void")||Bh("typeof"))throw new Error(ms);t=A1()}}return t}function E1(e){let t=0;if(e.type!==Nt&&e.type!==Br)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 E6(){var e,t,n,r,i,o,a,s,u,l;if(e=ke,u=Pu(),r=ke,i=E1(r),i===0)return u;for(r.prec=i,Ot(),t=[e,ke],a=Pu(),o=[u,r,a];(i=E1(ke))>0;){for(;o.length>2&&i<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,u=o.pop(),t.pop(),n=y1(s,u,a),o.push(n);r=Ot(),r.prec=i,o.push(r),t.push(ke),n=Pu(),o.push(n)}for(l=o.length-1,n=o[l],t.pop();l>1;)t.pop(),n=y1(o[l-1].value,o[l-2],n),l-=2;return n}function Ti(){var e,t,n;return e=E6(),Ue("?")&&(Ot(),t=Ti(),At(":"),n=Ti(),e=u6(e,t,n)),e}function Dh(){const e=Ti();if(Ue(","))throw new Error(ms);return e}function _6(e){K=e,U=0,xt=K.length,ke=null,b1();const t=Dh();if(ke.type!==ps)throw new Error("Unexpect token after expression.");return t}var S6={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 _1(e){function t(a,s,u,l){let f=e(s[0]);return u&&(f=u+"("+f+")",u.lastIndexOf("new ",0)===0&&(f="("+f+")")),f+"."+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",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&&Qe("Missing arguments to clamp function."),a.length>3&&Qe("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&&Qe("Missing arguments to if function."),a.length>3&&Qe("Too many arguments to if function.");const s=a.map(e);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function C6(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function k6(e){e=e||{};const t=e.allowed?du(e.allowed):{},n=e.forbidden?du(e.forbidden):{},r=e.constants||S6,i=(e.functions||_1)(c),o=e.globalvar,a=e.fieldvar,s=Mt(o)?o:p=>`${o}["${p}"]`;let u={},l={},f=0;function c(p){if(Pe(p))return p;const b=h[p.type];return b==null&&Qe("Unsupported type: "+p.type),b(p)}const h={Literal:p=>p.raw,Identifier:p=>{const b=p.name;return f>0?b:mi(n,b)?Qe("Illegal identifier: "+b):mi(r,b)?r[b]:mi(t,b)?b:(u[b]=1,s(b))},MemberExpression:p=>{const b=!p.computed,y=c(p.object);b&&(f+=1);const w=c(p.property);return y===a&&(l[C6(w)]=1),b&&(f-=1),y+(b?"."+w:"["+w+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&Qe("Illegal callee type: "+p.callee.type);const b=p.callee.name,y=p.arguments,w=mi(i,b)&&i[b];return w||Qe("Unrecognized function: "+b),Mt(w)?w(y):w+"("+y.map(c).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(c).join(",")+"]",BinaryExpression:p=>"("+c(p.left)+" "+p.operator+" "+c(p.right)+")",UnaryExpression:p=>"("+p.operator+c(p.argument)+")",ConditionalExpression:p=>"("+c(p.test)+"?"+c(p.consequent)+":"+c(p.alternate)+")",LogicalExpression:p=>"("+c(p.left)+p.operator+c(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(c).join(",")+"}",Property:p=>{f+=1;const b=c(p.key);return f-=1,b+":"+c(p.value)}};function d(p){const b={code:c(p),globals:Object.keys(u),fields:Object.keys(l)};return u={},l={},b}return d.functions=i,d.constants=r,d}function S1(e,t,n){return n=(n-e)/(t-e),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}function xs(e,t=0,n=1){return Math.max(t,Math.min(n,e))}function T6(e,t,n){return xs((n-e)/(t-e),0,1)}const C1={clamp:xs,isArray:Ft,isBoolean:Ga,isDefined(e){return e!==void 0},isNumber:Ct,isObject:Rt,isRegExp:T_,isString:Pe,isValid(e){return e!=null&&e===e},lerp:Xg,linearstep:T6,smoothstep:S1};function I6(e){const t=_1(e);for(const n in C1)t[n]=`this.${n}`;return t}const B6=k6({forbidden:[],allowed:["datum"],globalvar:"globalObject",fieldvar:"datum",functions:I6});function Lu(e,t={}){try{const n=_6(e),r=B6(n),i=Function("datum","globalObject",`"use strict"; return (${r.code});`).bind(C1),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}`)}}function Fn(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function Dr(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 Fh=Symbol("implicit");function Rh(){var e=new _r,t=[],n=[],r=Fh;function i(o){let a=e.get(o);if(a===void 0){if(r!==Fh)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 _r;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 Rh(t,n).unknown(r)},Fn.apply(i,arguments),i}function To(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function As(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Fr(){}var Ii=.7,Io=1/Ii,Bo="\\s*([+-]?\\d+)\\s*",Es="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Rn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",D6=/^#([0-9a-f]{3,8})$/,F6=new RegExp(`^rgb\\(${Bo},${Bo},${Bo}\\)$`),R6=new RegExp(`^rgb\\(${Rn},${Rn},${Rn}\\)$`),M6=new RegExp(`^rgba\\(${Bo},${Bo},${Bo},${Es}\\)$`),P6=new RegExp(`^rgba\\(${Rn},${Rn},${Rn},${Es}\\)$`),L6=new RegExp(`^hsl\\(${Es},${Rn},${Rn}\\)$`),N6=new RegExp(`^hsla\\(${Es},${Rn},${Rn},${Es}\\)$`),k1={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};To(Fr,Rr,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:T1,formatHex:T1,formatHex8:O6,formatHsl:z6,formatRgb:I1,toString:I1});function T1(){return this.rgb().formatHex()}function O6(){return this.rgb().formatHex8()}function z6(){return M1(this).formatHsl()}function I1(){return this.rgb().formatRgb()}function Rr(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=D6.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?B1(t):n===3?new ft(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Nu(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Nu(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=F6.exec(e))?new ft(t[1],t[2],t[3],1):(t=R6.exec(e))?new ft(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=M6.exec(e))?Nu(t[1],t[2],t[3],t[4]):(t=P6.exec(e))?Nu(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=L6.exec(e))?R1(t[1],t[2]/100,t[3]/100,1):(t=N6.exec(e))?R1(t[1],t[2]/100,t[3]/100,t[4]):k1.hasOwnProperty(e)?B1(k1[e]):e==="transparent"?new ft(NaN,NaN,NaN,0):null}function B1(e){return new ft(e>>16&255,e>>8&255,e&255,1)}function Nu(e,t,n,r){return r<=0&&(e=t=n=NaN),new ft(e,t,n,r)}function Mh(e){return e instanceof Fr||(e=Rr(e)),e?(e=e.rgb(),new ft(e.r,e.g,e.b,e.opacity)):new ft}function Ou(e,t,n,r){return arguments.length===1?Mh(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}To(ft,Ou,As(Fr,{brighter(e){return e=e==null?Io:Math.pow(Io,e),new ft(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Ii:Math.pow(Ii,e),new ft(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ft(Bi(this.r),Bi(this.g),Bi(this.b),zu(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:D1,formatHex:D1,formatHex8:U6,formatRgb:F1,toString:F1}));function D1(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}`}function U6(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}${Di((isNaN(this.opacity)?1:this.opacity)*255)}`}function F1(){const e=zu(this.opacity);return`${e===1?"rgb(":"rgba("}${Bi(this.r)}, ${Bi(this.g)}, ${Bi(this.b)}${e===1?")":`, ${e})`}`}function zu(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Bi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Di(e){return e=Bi(e),(e<16?"0":"")+e.toString(16)}function R1(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new yn(e,t,n,r)}function M1(e){if(e instanceof yn)return new yn(e.h,e.s,e.l,e.opacity);if(e instanceof Fr||(e=Rr(e)),!e)return new yn;if(e instanceof yn)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 yn(a,s,u,e.opacity)}function Ph(e,t,n,r){return arguments.length===1?M1(e):new yn(e,t,n,r??1)}function yn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}To(yn,Ph,As(Fr,{brighter(e){return e=e==null?Io:Math.pow(Io,e),new yn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ii:Math.pow(Ii,e),new yn(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(Lh(e>=240?e-240:e+120,i,r),Lh(e,i,r),Lh(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new yn(P1(this.h),Uu(this.s),Uu(this.l),zu(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=zu(this.opacity);return`${e===1?"hsl(":"hsla("}${P1(this.h)}, ${Uu(this.s)*100}%, ${Uu(this.l)*100}%${e===1?")":`, ${e})`}`}}));function P1(e){return e=(e||0)%360,e<0?e+360:e}function Uu(e){return Math.max(0,Math.min(1,e||0))}function Lh(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 L1=Math.PI/180,N1=180/Math.PI,Gu=18,O1=.96422,z1=1,U1=.82521,G1=4/29,Do=6/29,H1=3*Do*Do,G6=Do*Do*Do;function V1(e){if(e instanceof Mn)return new Mn(e.l,e.a,e.b,e.opacity);if(e instanceof nr)return j1(e);e instanceof ft||(e=Mh(e));var t=Gh(e.r),n=Gh(e.g),r=Gh(e.b),i=Oh((.2225045*t+.7168786*n+.0606169*r)/z1),o,a;return t===n&&n===r?o=a=i:(o=Oh((.4360747*t+.3850649*n+.1430804*r)/O1),a=Oh((.0139322*t+.0971045*n+.7141733*r)/U1)),new Mn(116*i-16,500*(o-i),200*(i-a),e.opacity)}function Nh(e,t,n,r){return arguments.length===1?V1(e):new Mn(e,t,n,r??1)}function Mn(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}To(Mn,Nh,As(Fr,{brighter(e){return new Mn(this.l+Gu*(e??1),this.a,this.b,this.opacity)},darker(e){return new Mn(this.l-Gu*(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=O1*zh(t),e=z1*zh(e),n=U1*zh(n),new ft(Uh(3.1338561*t-1.6168667*e-.4906146*n),Uh(-.9787684*t+1.9161415*e+.033454*n),Uh(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function Oh(e){return e>G6?Math.pow(e,1/3):e/H1+G1}function zh(e){return e>Do?e*e*e:H1*(e-G1)}function Uh(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function Gh(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function H6(e){if(e instanceof nr)return new nr(e.h,e.c,e.l,e.opacity);if(e instanceof Mn||(e=V1(e)),e.a===0&&e.b===0)return new nr(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*N1;return new nr(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function Hh(e,t,n,r){return arguments.length===1?H6(e):new nr(e,t,n,r??1)}function nr(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function j1(e){if(isNaN(e.h))return new Mn(e.l,0,0,e.opacity);var t=e.h*L1;return new Mn(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}To(nr,Hh,As(Fr,{brighter(e){return new nr(this.h,this.c,this.l+Gu*(e??1),this.opacity)},darker(e){return new nr(this.h,this.c,this.l-Gu*(e??1),this.opacity)},rgb(){return j1(this).rgb()}}));var q1=-.14861,Vh=1.78277,jh=-.29227,Hu=-.90649,_s=1.97294,Z1=_s*Hu,W1=_s*Vh,Y1=Vh*jh-Hu*q1;function V6(e){if(e instanceof Fi)return new Fi(e.h,e.s,e.l,e.opacity);e instanceof ft||(e=Mh(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(Y1*r+Z1*t-W1*n)/(Y1+Z1-W1),o=r-i,a=(_s*(n-i)-jh*o)/Hu,s=Math.sqrt(a*a+o*o)/(_s*i*(1-i)),u=s?Math.atan2(a,o)*N1-120:NaN;return new Fi(u<0?u+360:u,s,i,e.opacity)}function qh(e,t,n,r){return arguments.length===1?V6(e):new Fi(e,t,n,r??1)}function Fi(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}To(Fi,qh,As(Fr,{brighter(e){return e=e==null?Io:Math.pow(Io,e),new Fi(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ii:Math.pow(Ii,e),new Fi(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*L1,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*(q1*r+Vh*i)),255*(t+n*(jh*r+Hu*i)),255*(t+n*(_s*r)),this.opacity)}}));function Q1(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 X1(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 Q1((n-r/t)*t,a,i,o,s)}}function $1(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 Q1((n-r/t)*t,i,o,a,s)}}const Vu=e=>()=>e;function K1(e,t){return function(n){return e+n*t}}function j6(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 ju(e,t){var n=t-e;return n?K1(e,n>180||n<-180?n-360*Math.round(n/360):n):Vu(isNaN(e)?t:e)}function q6(e){return(e=+e)==1?ct:function(t,n){return n-t?j6(t,n,e):Vu(isNaN(t)?n:t)}}function ct(e,t){var n=t-e;return n?K1(e,n):Vu(isNaN(e)?t:e)}const Zh=function e(t){var n=q6(t);function r(i,o){var a=n((i=Ou(i)).r,(o=Ou(o)).r),s=n(i.g,o.g),u=n(i.b,o.b),l=ct(i.opacity,o.opacity);return function(f){return i.r=a(f),i.g=s(f),i.b=u(f),i.opacity=l(f),i+""}}return r.gamma=e,r}(1);function J1(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=Ou(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 Z6=J1(X1),W6=J1($1);function Wh(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 eb(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Y6(e,t){return(eb(t)?Wh:tb)(e,t)}function tb(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]=Mr(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 nb(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function wn(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function rb(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]=Mr(e[i],t[i]):r[i]=t[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var Yh=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Qh=new RegExp(Yh.source,"g");function Q6(e){return function(){return e}}function X6(e){return function(t){return e(t)+""}}function ib(e,t){var n=Yh.lastIndex=Qh.lastIndex=0,r,i,o,a=-1,s=[],u=[];for(e=e+"",t=t+"";(r=Yh.exec(e))&&(i=Qh.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:wn(r,i)})),n=Qh.lastIndex;return n<t.length&&(o=t.slice(n),s[a]?s[a]+=o:s[++a]=o),s.length<2?u[0]?X6(u[0].x):Q6(t):(t=u.length,function(l){for(var f=0,c;f<t;++f)s[(c=u[f]).i]=c.x(l);return s.join("")})}function Mr(e,t){var n=typeof t,r;return t==null||n==="boolean"?Vu(t):(n==="number"?wn:n==="string"?(r=Rr(t))?(t=r,Zh):ib:t instanceof Rr?Zh:t instanceof Date?nb:eb(t)?Wh:Array.isArray(t)?tb:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?rb:wn)(e,t)}function $6(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function K6(e,t){var n=ju(+e,+t);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function Ss(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var ob=180/Math.PI,Xh={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ab(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)*ob,skewX:Math.atan(u)*ob,scaleX:a,scaleY:s}}var qu;function J6(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Xh:ab(t.a,t.b,t.c,t.d,t.e,t.f)}function e8(e){return e==null||(qu||(qu=document.createElementNS("http://www.w3.org/2000/svg","g")),qu.setAttribute("transform",e),!(e=qu.transform.baseVal.consolidate()))?Xh:(e=e.matrix,ab(e.a,e.b,e.c,e.d,e.e,e.f))}function sb(e,t,n,r){function i(l){return l.length?l.pop()+" ":""}function o(l,f,c,h,d,p){if(l!==c||f!==h){var b=d.push("translate(",null,t,null,n);p.push({i:b-4,x:wn(l,c)},{i:b-2,x:wn(f,h)})}else(c||h)&&d.push("translate("+c+t+h+n)}function a(l,f,c,h){l!==f?(l-f>180?f+=360:f-l>180&&(l+=360),h.push({i:c.push(i(c)+"rotate(",null,r)-2,x:wn(l,f)})):f&&c.push(i(c)+"rotate("+f+r)}function s(l,f,c,h){l!==f?h.push({i:c.push(i(c)+"skewX(",null,r)-2,x:wn(l,f)}):f&&c.push(i(c)+"skewX("+f+r)}function u(l,f,c,h,d,p){if(l!==c||f!==h){var b=d.push(i(d)+"scale(",null,",",null,")");p.push({i:b-4,x:wn(l,c)},{i:b-2,x:wn(f,h)})}else(c!==1||h!==1)&&d.push(i(d)+"scale("+c+","+h+")")}return function(l,f){var c=[],h=[];return l=e(l),f=e(f),o(l.translateX,l.translateY,f.translateX,f.translateY,c,h),a(l.rotate,f.rotate,c,h),s(l.skewX,f.skewX,c,h),u(l.scaleX,l.scaleY,f.scaleX,f.scaleY,c,h),l=f=null,function(d){for(var p=-1,b=h.length,y;++p<b;)c[(y=h[p]).i]=y.x(d);return c.join("")}}}var t8=sb(J6,"px, ","px)","deg)"),n8=sb(e8,", ",")",")"),r8=1e-12;function lb(e){return((e=Math.exp(e))+1/e)/2}function i8(e){return((e=Math.exp(e))-1/e)/2}function o8(e){return((e=Math.exp(2*e))-1)/(e+1)}const a8=function e(t,n,r){function i(o,a){var s=o[0],u=o[1],l=o[2],f=a[0],c=a[1],h=a[2],d=f-s,p=c-u,b=d*d+p*p,y,w;if(b<r8)w=Math.log(h/l)/t,y=function(I){return[s+I*d,u+I*p,l*Math.exp(t*I*w)]};else{var _=Math.sqrt(b),C=(h*h-l*l+r*b)/(2*l*n*_),E=(h*h-l*l-r*b)/(2*h*n*_),T=Math.log(Math.sqrt(C*C+1)-C),B=Math.log(Math.sqrt(E*E+1)-E);w=(B-T)/t,y=function(I){var R=I*w,M=lb(T),j=l/(n*_)*(M*o8(t*R+T)-i8(T));return[s+j*d,u+j*p,l*M/lb(t*R+T)]}}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 ub(e){return function(t,n){var r=e((t=Ph(t)).h,(n=Ph(n)).h),i=ct(t.s,n.s),o=ct(t.l,n.l),a=ct(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 s8=ub(ju);var l8=ub(ct);function u8(e,t){var n=ct((e=Nh(e)).l,(t=Nh(t)).l),r=ct(e.a,t.a),i=ct(e.b,t.b),o=ct(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 fb(e){return function(t,n){var r=e((t=Hh(t)).h,(n=Hh(n)).h),i=ct(t.c,n.c),o=ct(t.l,n.l),a=ct(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 f8=fb(ju);var c8=fb(ct);function cb(e){return function t(n){n=+n;function r(i,o){var a=e((i=qh(i)).h,(o=qh(o)).h),s=ct(i.s,o.s),u=ct(i.l,o.l),l=ct(i.opacity,o.opacity);return function(f){return i.h=a(f),i.s=s(f),i.l=u(Math.pow(f,n)),i.opacity=l(f),i+""}}return r.gamma=t,r}(1)}const h8=cb(ju);var d8=cb(ct);function $h(e,t){t===void 0&&(t=e,e=Mr);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 p8(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}const g8=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Mr,interpolateArray:Y6,interpolateBasis:X1,interpolateBasisClosed:$1,interpolateCubehelix:h8,interpolateCubehelixLong:d8,interpolateDate:nb,interpolateDiscrete:$6,interpolateHcl:f8,interpolateHclLong:c8,interpolateHsl:s8,interpolateHslLong:l8,interpolateHue:K6,interpolateLab:u8,interpolateNumber:wn,interpolateNumberArray:Wh,interpolateObject:rb,interpolateRgb:Zh,interpolateRgbBasis:Z6,interpolateRgbBasisClosed:W6,interpolateRound:Ss,interpolateString:ib,interpolateTransformCss:t8,interpolateTransformSvg:n8,interpolateZoom:a8,piecewise:$h,quantize:p8},Symbol.toStringTag,{value:"Module"}));function m8(e){return function(){return e}}function Kh(e){return+e}var hb=[0,1];function zt(e){return e}function Jh(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:m8(isNaN(t)?NaN:.5)}function b8(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function y8(e,t,n){var r=e[0],i=e[1],o=t[0],a=t[1];return i<r?(r=Jh(i,r),o=n(a,o)):(r=Jh(r,i),o=n(o,a)),function(s){return o(r(s))}}function w8(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]=Jh(e[a],e[a+1]),o[a]=n(t[a],t[a+1]);return function(s){var u=Er(e,s,1,r)-1;return o[u](i[u](s))}}function Cs(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Zu(){var e=hb,t=hb,n=Mr,r,i,o,a=zt,s,u,l;function f(){var h=Math.min(e.length,t.length);return a!==zt&&(a=b8(e[0],e[h-1])),s=h>2?w8:y8,u=l=null,c}function c(h){return h==null||isNaN(h=+h)?o:(u||(u=s(e.map(r),t,n)))(r(a(h)))}return c.invert=function(h){return a(i((l||(l=s(t,e.map(r),wn)))(h)))},c.domain=function(h){return arguments.length?(e=Array.from(h,Kh),f()):e.slice()},c.range=function(h){return arguments.length?(t=Array.from(h),f()):t.slice()},c.rangeRound=function(h){return t=Array.from(h),n=Ss,f()},c.clamp=function(h){return arguments.length?(a=h?!0:zt,f()):a!==zt},c.interpolate=function(h){return arguments.length?(n=h,f()):n},c.unknown=function(h){return arguments.length?(o=h,c):o},function(h,d){return r=h,i=d,f()}}function db(){return Zu()(zt,zt)}function pb(e,t,n,r){var i=bi(e,t,n),o;switch(r=Sr(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(o=mm(i,a))&&(r.precision=o),eh(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=bm(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=gm(i))&&(r.precision=o-(r.type==="%")*2);break}}return gt(r)}function Ri(e){var t=e.domain;return e.ticks=function(n){var r=t();return mu(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return pb(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,f=10;for(s<a&&(l=a,a=s,s=l,l=i,i=o,o=l);f-- >0;){if(l=sm(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 gb(){var e=db();return e.copy=function(){return Cs(e,gb())},Fn.apply(e,arguments),Ri(e)}function mb(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,Kh),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return mb(e).unknown(t)},e=arguments.length?Array.from(e,Kh):[0,1],Ri(n)}function bb(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 yb(e){return Math.log(e)}function wb(e){return Math.exp(e)}function v8(e){return-Math.log(-e)}function x8(e){return-Math.exp(-e)}function A8(e){return isFinite(e)?+("1e"+e):e<0?0:e}function E8(e){return e===10?A8:e===Math.E?Math.exp:t=>Math.pow(e,t)}function _8(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 vb(e){return(t,n)=>-e(-t,n)}function ed(e){const t=e(yb,wb),n=t.domain;let r=10,i,o;function a(){return i=_8(r),o=E8(r),n()[0]<0?(i=vb(i),o=vb(o),e(v8,x8)):e(yb,wb),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],f=u[u.length-1];const c=f<l;c&&([l,f]=[f,l]);let h=i(l),d=i(f),p,b;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(b=h<0?p/o(-h):p*o(h),!(b<l)){if(b>f)break;w.push(b)}}else for(;h<=d;++h)for(p=r-1;p>=1;--p)if(b=h>0?p/o(-h):p*o(h),!(b<l)){if(b>f)break;w.push(b)}w.length*2<y&&(w=mu(l,f,y))}else w=mu(h,d,Math.min(d-h,y)).map(o);return c?w.reverse():w},t.tickFormat=(s,u)=>{if(s==null&&(s=10),u==null&&(u=r===10?"s":","),typeof u!="function"&&(!(r%1)&&(u=Sr(u)).precision==null&&(u.trim=!0),u=gt(u)),s===1/0)return u;const l=Math.max(1,r*s/t.ticks().length);return f=>{let c=f/o(Math.round(i(f)));return c*r<r-.5&&(c*=r),c<=l?u(f):""}},t.nice=()=>n(bb(n(),{floor:s=>o(Math.floor(i(s))),ceil:s=>o(Math.ceil(i(s)))})),t}function td(){const e=ed(Zu()).domain([1,10]);return e.copy=()=>Cs(e,td()).base(e.base()),Fn.apply(e,arguments),e}function xb(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function Ab(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function nd(e){var t=1,n=e(xb(t),Ab(t));return n.constant=function(r){return arguments.length?e(xb(t=+r),Ab(t)):t},Ri(n)}function Eb(){var e=nd(Zu());return e.copy=function(){return Cs(e,Eb()).constant(e.constant())},Fn.apply(e,arguments)}function _b(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function S8(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function C8(e){return e<0?-e*e:e*e}function rd(e){var t=e(zt,zt),n=1;function r(){return n===1?e(zt,zt):n===.5?e(S8,C8):e(_b(n),_b(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},Ri(t)}function id(){var e=rd(Zu());return e.copy=function(){return Cs(e,id()).exponent(e.exponent())},Fn.apply(e,arguments),e}function k8(){return id.apply(null,arguments).exponent(.5)}function Sb(){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]=lm(e,a/s);return o}function o(a){return a==null||isNaN(a=+a)?r:t[Er(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(Va),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 Sb().domain(e).range(t).unknown(r)},Fn.apply(o,arguments)}function Cb(){var e=0,t=1,n=1,r=[.5],i=[0,1],o;function a(u){return u!=null&&u<=u?i[Er(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 Cb().domain([e,t]).range(i).unknown(o)},Fn.apply(Ri(a),arguments)}function kb(){var e=[.5],t=[0,1],n,r=1;function i(o){return o!=null&&o<=o?t[Er(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 kb().domain(e).range(t).unknown(n)},Fn.apply(i,arguments)}function T8(e){return new Date(e)}function I8(e){return e instanceof Date?+e:+new Date(+e)}function od(e,t,n,r,i,o,a,s,u,l){var f=db(),c=f.invert,h=f.domain,d=l(".%L"),p=l(":%S"),b=l("%I:%M"),y=l("%I %p"),w=l("%a %d"),_=l("%b %d"),C=l("%B"),E=l("%Y");function T(B){return(u(B)<B?d:s(B)<B?p:a(B)<B?b:o(B)<B?y:r(B)<B?i(B)<B?w:_:n(B)<B?C:E)(B)}return f.invert=function(B){return new Date(c(B))},f.domain=function(B){return arguments.length?h(Array.from(B,I8)):h().map(T8)},f.ticks=function(B){var I=h();return e(I[0],I[I.length-1],B??10)},f.tickFormat=function(B,I){return I==null?T:l(I)},f.nice=function(B){var I=h();return(!B||typeof B.range!="function")&&(B=t(I[0],I[I.length-1],B??10)),B?h(bb(I,B)):f},f.copy=function(){return Cs(f,od(e,t,n,r,i,o,a,s,u,l))},f}function B8(){return Fn.apply(od(b4,y4,kr,Za,qa,wi,sh,ah,Cr,gh).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function D8(){return Fn.apply(od(g4,m4,Tr,Ya,Wa,xi,fh,uh,Cr,mh).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Wu(){var e=0,t=1,n,r,i,o,a=zt,s=!1,u;function l(c){return c==null||isNaN(c=+c)?u:a(i===0?.5:(c=(o(c)-n)*i,s?Math.max(0,Math.min(1,c)):c))}l.domain=function(c){return arguments.length?([e,t]=c,n=o(e=+e),r=o(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(c){return arguments.length?(s=!!c,l):s},l.interpolator=function(c){return arguments.length?(a=c,l):a};function f(c){return function(h){var d,p;return arguments.length?([d,p]=h,a=c(d,p),l):[a(0),a(1)]}}return l.range=f(Mr),l.rangeRound=f(Ss),l.unknown=function(c){return arguments.length?(u=c,l):u},function(c){return o=c,n=c(e),r=c(t),i=n===r?0:1/(r-n),l}}function Pr(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function ad(){var e=Ri(Wu()(zt));return e.copy=function(){return Pr(e,ad())},Dr.apply(e,arguments)}function Tb(){var e=ed(Wu()).domain([1,10]);return e.copy=function(){return Pr(e,Tb()).base(e.base())},Dr.apply(e,arguments)}function Ib(){var e=nd(Wu());return e.copy=function(){return Pr(e,Ib()).constant(e.constant())},Dr.apply(e,arguments)}function sd(){var e=rd(Wu());return e.copy=function(){return Pr(e,sd()).exponent(e.exponent())},Dr.apply(e,arguments)}function F8(){return sd.apply(null,arguments).exponent(.5)}function Yu(){var e=0,t=.5,n=1,r=1,i,o,a,s,u,l=zt,f,c=!1,h;function d(b){return isNaN(b=+b)?h:(b=.5+((b=+f(b))-o)*(r*b<r*o?s:u),l(c?Math.max(0,Math.min(1,b)):b))}d.domain=function(b){return arguments.length?([e,t,n]=b,i=f(e=+e),o=f(t=+t),a=f(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(b){return arguments.length?(c=!!b,d):c},d.interpolator=function(b){return arguments.length?(l=b,d):l};function p(b){return function(y){var w,_,C;return arguments.length?([w,_,C]=y,l=$h(b,[w,_,C]),d):[l(0),l(.5),l(1)]}}return d.range=p(Mr),d.rangeRound=p(Ss),d.unknown=function(b){return arguments.length?(h=b,d):h},function(b){return f=b,i=b(e),o=b(t),a=b(n),s=i===o?0:.5/(o-i),u=o===a?0:.5/(a-o),r=o<i?-1:1,d}}function Bb(){var e=Ri(Yu()(zt));return e.copy=function(){return Pr(e,Bb())},Dr.apply(e,arguments)}function Db(){var e=ed(Yu()).domain([.1,1,10]);return e.copy=function(){return Pr(e,Db()).base(e.base())},Dr.apply(e,arguments)}function Fb(){var e=nd(Yu());return e.copy=function(){return Pr(e,Fb()).constant(e.constant())},Dr.apply(e,arguments)}function ld(){var e=rd(Yu());return e.copy=function(){return Pr(e,ld()).exponent(e.exponent())},Dr.apply(e,arguments)}function R8(){return ld.apply(null,arguments).exponent(.5)}function ud(e,t,n){const r=e-t+n*2;return e?r>0?r:1:0}const M8="identity",Fo="linear",Lr="log",ks="pow",Ts="sqrt",Qu="symlog",Rb="time",Mb="utc",Pn="sequential",Ro="diverging",fd="quantile",Pb="quantize",Lb="threshold",cd="ordinal",hd="point",Nb="band",dd="bin-ordinal",it="continuous",Is="discrete",Bs="discretizing",en="interpolating",Ob="temporal";function P8(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 L8(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 pd(){const e=Rh().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 f(){const c=t().length,h=r[1]<r[0],d=r[1-h],p=ud(c,s,u);let b=r[h-0];i=(d-b)/(p||1),a&&(i=Math.floor(i)),b+=(d-b-i*(c-s))*l,o=i*(1-s),a&&(b=Math.round(b),o=Math.round(o));const y=ja(c).map(w=>b+i*w);return n(h?y.reverse():y)}return e.domain=function(c){return arguments.length?(t(c),f()):t()},e.range=function(c){return arguments.length?(r=[+c[0],+c[1]],f()):r.slice()},e.rangeRound=function(c){return r=[+c[0],+c[1]],a=!0,f()},e.bandwidth=function(){return o},e.step=function(){return i},e.round=function(c){return arguments.length?(a=!!c,f()):a},e.padding=function(c){return arguments.length?(u=Math.max(0,Math.min(1,c)),s=u,f()):s},e.paddingInner=function(c){return arguments.length?(s=Math.max(0,Math.min(1,c)),f()):s},e.paddingOuter=function(c){return arguments.length?(u=Math.max(0,Math.min(1,c)),f()):u},e.align=function(c){return arguments.length?(l=Math.max(0,Math.min(1,c)),f()):l},e.invertRange=function(c){if(c[0]==null||c[1]==null)return;const h=r[1]<r[0],d=h?n().reverse():n(),p=d.length-1;let b=+c[0],y=+c[1],w,_,C;if(!(b!==b||y!==y)&&(y<b&&(C=b,b=y,y=C),!(y<d[0]||b>r[1-h])))return w=Math.max(0,Er(d,b)-1),_=b===y?w:Er(d,y)-1,b-d[w]>o+1e-10&&++w,h&&(C=w,w=p-_,_=p-C),w>_?void 0:t().slice(w,_+1)},e.invert=function(c){const h=e.invertRange([c,c]);return h&&h[0]},e.copy=function(){return pd().domain(t()).range(r).round(a).paddingInner(s).paddingOuter(u).align(l)},f()}function zb(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return zb(t())},e}function N8(){return zb(pd().paddingInner(1))}var O8=Array.prototype.map;function z8(e){return O8.call(e,Ua)}const U8=Array.prototype.slice;function Ub(){let e=[],t=[];function n(r){return r==null||r!==r?void 0:t[(Er(e,r)-1)%t.length]}return n.domain=function(r){return arguments.length?(e=z8(r),n):e.slice()},n.range=function(r){return arguments.length?(t=U8.call(r),n):t.slice()},n.tickFormat=function(r,i){return pb(e[0],gn(e),r??10,i)},n.copy=function(){return Ub().domain(n.domain()).range(n.range())},n}const Xu={};function G8(e,t,n){const r=function(){const o=t();return o.invertRange||(o.invertRange=o.invert?P8(o):o.invertExtent?L8(o):void 0),o.type=e,o};return r.metadata=du(jc(n)),r}function Ae(e,t,n){return arguments.length>1?(Xu[e]=G8(e,t,n),this):H8(e)?Xu[e]:void 0}Ae(M8,mb),Ae(Fo,gb,it),Ae(Lr,td,[it,Lr]),Ae(ks,id,it),Ae(Ts,k8,it),Ae(Qu,Eb,it),Ae(Rb,B8,[it,Ob]),Ae(Mb,D8,[it,Ob]),Ae(Pn,ad,[it,en]),Ae("".concat(Pn,"-").concat(Fo),ad,[it,en]),Ae("".concat(Pn,"-").concat(Lr),Tb,[it,en,Lr]),Ae("".concat(Pn,"-").concat(ks),sd,[it,en]),Ae("".concat(Pn,"-").concat(Ts),F8,[it,en]),Ae("".concat(Pn,"-").concat(Qu),Ib,[it,en]),Ae("".concat(Ro,"-").concat(Fo),Bb,[it,en]),Ae("".concat(Ro,"-").concat(Lr),Db,[it,en,Lr]),Ae("".concat(Ro,"-").concat(ks),ld,[it,en]),Ae("".concat(Ro,"-").concat(Ts),R8,[it,en]),Ae("".concat(Ro,"-").concat(Qu),Fb,[it,en]),Ae(fd,Sb,[Bs,fd]),Ae(Pb,Cb,Bs),Ae(Lb,kb,Bs),Ae(dd,Ub,[Is,Bs]),Ae(cd,Rh,Is),Ae(Nb,pd,Is),Ae(hd,N8,Is);function H8(e){return mi(Xu,e)}function Ds(e,t){const n=Xu[e];return n&&n.metadata[t]}function bt(e){return Ds(e,it)}function rr(e){return Ds(e,Is)}function Mo(e){return Ds(e,Bs)}function Gb(e){return Ds(e,Lr)}function $u(e){return Ds(e,en)}function V8(e,t){const n=t[0],r=gn(t)-n;return function(i){return e(n+i*r)}}function Ku(e,t,n){return $h(Hb(t||"rgb",n),e)}function j8(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}function Hb(e,t){const n=g8[q8(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function q8(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const Z8={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"},W8={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 Vb(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 jb(e,t){for(const n in e)gd(n,t(e[n]))}const qb={};jb(W8,Vb),jb(Z8,e=>Ku(Vb(e)));function gd(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(qb[e]=t,this):qb[e]}function Y8(){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}function Ju(){const e=t=>t;return e.invert=t=>t,e.copy=Ju,e.invertRange=()=>{},e.type="null",e}function Q8(e,t){const n={};t||(t=e.encoding);for(const[r,i]of Object.entries(t)){if(!i)continue;const o=((Ut(i)&&i.resolutionChannel)??(Ni(r)&&r))||void 0,a=e.unitView.getScaleResolution(o);n[r]=X8(t[r],a==null?void 0:a.getScale(),e.unitView.getAccessor(r),r)}return n}function X8(e,t,n,r){let i;if(vn(e)){const o=e.value;i=a=>o,i.constant=!0,i.constantValue=!0,i.accessor=void 0}else if(n)if(r=="text")i=o=>{},i.accessor=n,i.constant=n.constant;else{if(!t)if(!Ni(r))t=Ju();else throw new Error(`Missing scale! "${r}": ${JSON.stringify(e)}`);if(i=o=>t(n(o)),rr(t.type)){const o=Y8();o.addAll(t.domain()),i.indexer=o}i.constant=n.constant,i.accessor=n,i.scale=t}else throw new Error(`Missing value or accessor (field, expr, datum) on channel "${r}": ${JSON.stringify(e)}`);return i.invert=t?o=>t.invert(o):o=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(e))},i.channelDef=e,i.applyMetadata=o=>{for(const a in i)a in i&&(o[a]=i[a]);return o},i}function vn(e){return e&&"value"in e}function Mi(e){return e&&"field"in e}function Fs(e){return e&&"datum"in e}function Ut(e){return Mi(e)||Fs(e)||bd(e)||Zb(e)}function md(e,t){const n=e.mark.encoding[t];if(Ut(n))return n;throw new Error("Not a channel def with scale!")}function Zb(e){return e&&"chrom"in e}function bd(e){return e&&"expr"in e}const Po=["x","y"],$8=["x2","y2"],K8=[...Po,...$8];function Wb(e){return Po.includes(e)}function Rs(e){return K8.includes(e)}const yd={x:"x2",y:"y2"},Yb=Object.fromEntries(Object.entries(yd).map(e=>[e[1],e[0]]));function Ms(e){return e in Yb}function J8(e){const t=yd[e];if(t)return t;throw new Error(`${e} has no secondary channel!`)}function Pi(e){return Yb[e]??e}function Li(e){return["color","fill","stroke"].includes(Pi(e))}function ef(e){return["shape","squeeze"].includes(e)}function Ni(e){return["x","y","x2","y2","color","fill","stroke","opacity","fillOpacity","strokeOpacity","strokeWidth","size","shape","angle","dx","dy","sample"].includes(e)}function e5(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 Qb(e){if(!ef(e))throw new Error("Not a discrete channel: "+e);const t=new Map(e5(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 Re(e,t=e){if(/^[A-Za-z0-9_]+$/.test(e)){const n=new Function("datum",`return datum[${JSON.stringify(e)}]`);return Ce(n,[e],t)}else return su(e)}class t5{constructor(){this.accessorCreators=[],this.register(t=>{if(Mi(t))try{const n=Re(t.field);return n.constant=!1,n.fields=au(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(t=>bd(t)?n5(t.expr):void 0),this.register(t=>{if(Fs(t)){const r=__(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 n5(e){const n=Lu(e);return n.constant=n.fields.length==0,n}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
126
163
  Available via the MIT license.
127
- see: http://github.com/greggman/twgl.js for details */const bd=5120,Bs=5121,yd=5122,wd=5123,vd=5124,xd=5125,Ad=5126,q8=32819,Z8=32820,W8=33635,Y8=5131,Q8=33640,X8=35899,$8=35902,K8=36269,J8=34042,Wb={};{const e=Wb;e[bd]=Int8Array,e[Bs]=Uint8Array,e[yd]=Int16Array,e[wd]=Uint16Array,e[vd]=Int32Array,e[xd]=Uint32Array,e[Ad]=Float32Array,e[q8]=Uint16Array,e[Z8]=Uint16Array,e[W8]=Uint16Array,e[Y8]=Uint16Array,e[Q8]=Uint32Array,e[X8]=Uint32Array,e[$8]=Uint32Array,e[K8]=Uint32Array,e[J8]=Uint32Array}function Ed(e){if(e instanceof Int8Array)return bd;if(e instanceof Uint8Array||e instanceof Uint8ClampedArray)return Bs;if(e instanceof Int16Array)return yd;if(e instanceof Uint16Array)return wd;if(e instanceof Int32Array)return vd;if(e instanceof Uint32Array)return xd;if(e instanceof Float32Array)return Ad;throw new Error("unsupported typed array type")}function e5(e){if(e===Int8Array)return bd;if(e===Uint8Array||e===Uint8ClampedArray)return Bs;if(e===Int16Array)return yd;if(e===Uint16Array)return wd;if(e===Int32Array)return vd;if(e===Uint32Array)return xd;if(e===Float32Array)return Ad;throw new Error("unsupported typed array type")}function t5(e){const t=Wb[e];if(!t)throw new Error("unknown gl type");return t}const Kf=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 n5(...e){console.error(...e)}function Yb(...e){console.warn(...e)}function r5(e,t){return typeof WebGLBuffer<"u"&&t instanceof WebGLBuffer}function Qb(e,t){return typeof WebGLRenderbuffer<"u"&&t instanceof WebGLRenderbuffer}function Jf(e,t){return typeof WebGLTexture<"u"&&t instanceof WebGLTexture}function i5(e,t){return typeof WebGLSampler<"u"&&t instanceof WebGLSampler}const Xb=35044,Nn=34962,o5=34963,a5=34660,s5=5120,l5=5121,f5=5122,u5=5123,c5=5124,h5=5125,d5=5126,$b={attribPrefix:""};function Kb(e,t,n,r,i){e.bindBuffer(t,n),e.bufferData(t,r,i||Xb)}function Jb(e,t,n,r){if(r5(e,t))return t;n=n||Nn;const i=e.createBuffer();return Kb(e,n,i,t,r),i}function e2(e){return e==="indices"}function p5(e){return e instanceof Int8Array||e instanceof Uint8Array}function g5(e){return e===Int8Array||e===Uint8Array}function m5(e){return e.length?e:e.data}const b5=/coord|texture/i,y5=/color|colour/i;function t2(e,t){let n;if(b5.test(e)?n=2:y5.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 w5(e,t){return e.numComponents||e.size||t2(t,m5(e).length)}function _d(e,t){if(Kf(e))return e;if(Kf(e.data))return e.data;Array.isArray(e)&&(e={data:e});let n=e.type;return n||(e2(t)?n=Uint16Array:n=Float32Array),new n(e.data)}function v5(e,t){const n={};return Object.keys(t).forEach(function(r){if(!e2(r)){const i=t[r],o=i.attrib||i.name||i.attribName||$b.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!Kf(i.value))throw new Error("array.value is not array or typedarray");n[o]={value:i.value}}else{let a,s,f,l;if(i.buffer&&i.buffer instanceof WebGLBuffer)a=i.buffer,l=i.numComponents||i.size,s=i.type,f=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const u=i.data||i,c=i.type||Float32Array,h=u*c.BYTES_PER_ELEMENT;s=e5(c),f=i.normalize!==void 0?i.normalize:g5(c),l=i.numComponents||i.size||t2(r,u),a=e.createBuffer(),e.bindBuffer(Nn,a),e.bufferData(Nn,h,i.drawType||Xb)}else{const u=_d(i,r);a=Jb(e,u,void 0,i.drawType),s=Ed(u),f=i.normalize!==void 0?i.normalize:p5(u),l=w5(i,r)}n[o]={buffer:a,numComponents:l,type:s,normalize:f,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 x5(e,t,n,r){n=_d(n),r!==void 0?(e.bindBuffer(Nn,t.buffer),e.bufferSubData(Nn,r,n)):Kb(e,Nn,t.buffer,n,t.drawType)}function A5(e,t){return t===s5||t===l5?1:t===f5||t===u5?2:t===c5||t===h5||t===d5?4:0}const Sd=["position","positions","a_position"];function E5(e,t){let n,r;for(r=0;r<Sd.length&&(n=Sd[r],!(n in t||(n=$b.attribPrefix+n,n in t)));++r);r===Sd.length&&(n=Object.keys(t)[0]);const i=t[n];e.bindBuffer(Nn,i.buffer);const o=e.getBufferParameter(Nn,a5);e.bindBuffer(Nn,null);const a=A5(e,i.type),s=o/a,f=i.numComponents||i.size,l=s/f;if(l%1!==0)throw new Error(`numComponents ${f} not correct for length ${length}`);return l}function _5(e,t,n){const r=v5(e,t),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const o=t.indices;if(o){const a=_d(o,"indices");i.indices=Jb(e,a,o5),i.numElements=a.length,i.elementType=Ed(a)}else i.numElements||(i.numElements=E5(e,i.attribs));return i}function Po(e){return!!e.texStorage2D}const Cd=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)}}(),Pr={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},Lo=Kf,n2=function(){let e;return function(){return e=e||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),e}}(),r2=6406,On=6407,He=6408,i2=6409,o2=6410,Ds=6402,a2=34041,eu=33071,S5=9728,C5=9729,rr=3553,ir=34067,Lr=32879,Nr=35866,tu=34069,k5=34070,I5=34071,T5=34072,B5=34073,D5=34074,kd=10241,Id=10240,nu=10242,ru=10243,s2=32882,R5=33082,F5=33083,M5=33084,P5=33085,Td=3317,l2=3314,f2=32878,u2=3316,c2=3315,h2=32877,L5=37443,N5=37441,O5=37440,z5=33321,U5=36756,G5=33325,H5=33326,V5=33330,j5=33329,q5=33338,Z5=33337,W5=33340,Y5=33339,Q5=33323,X5=36757,$5=33327,K5=33328,J5=33336,ek=33335,tk=33332,nk=33331,rk=33334,ik=33333,ok=32849,ak=35905,sk=36194,lk=36758,fk=35898,uk=35901,ck=34843,hk=34837,dk=36221,pk=36239,gk=36215,mk=36233,bk=36209,yk=36227,wk=32856,vk=35907,xk=36759,Ak=32855,Ek=32854,_k=32857,Sk=34842,Ck=34836,kk=36220,Ik=36238,Tk=36975,Bk=36214,Dk=36232,Rk=36226,Fk=36208,Mk=33189,Pk=33190,Lk=36012,Nk=36013,Ok=35056,Or=5120,Ve=5121,iu=5122,No=5123,ou=5124,Li=5125,At=5126,d2=32819,p2=32820,g2=33635,xn=5131,Rs=36193,Bd=33640,zk=35899,Uk=35902,Gk=36269,Hk=34042,au=33319,Oo=33320,su=6403,zo=36244,Uo=36248,Ni=36249;let Dd;function lu(e){if(!Dd){const t={};t[r2]={textureFormat:r2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,xn,Rs,At]},t[i2]={textureFormat:i2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,xn,Rs,At]},t[o2]={textureFormat:o2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[Ve,xn,Rs,At]},t[On]={textureFormat:On,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[Ve,xn,Rs,At,g2]},t[He]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[Ve,xn,Rs,At,d2,p2]},t[Ds]={textureFormat:Ds,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Li,No]},t[z5]={textureFormat:su,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[Ve]},t[U5]={textureFormat:su,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[Or]},t[G5]={textureFormat:su,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[At,xn]},t[H5]={textureFormat:su,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[At]},t[V5]={textureFormat:zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ve]},t[j5]={textureFormat:zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Or]},t[tk]={textureFormat:zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[No]},t[nk]={textureFormat:zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[iu]},t[rk]={textureFormat:zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Li]},t[ik]={textureFormat:zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ou]},t[Q5]={textureFormat:au,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[Ve]},t[X5]={textureFormat:au,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[Or]},t[$5]={textureFormat:au,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[At,xn]},t[K5]={textureFormat:au,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[At]},t[J5]={textureFormat:Oo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ve]},t[ek]={textureFormat:Oo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Or]},t[q5]={textureFormat:Oo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[No]},t[Z5]={textureFormat:Oo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[iu]},t[W5]={textureFormat:Oo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Li]},t[Y5]={textureFormat:Oo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[ou]},t[ok]={textureFormat:On,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},t[ak]={textureFormat:On,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},t[sk]={textureFormat:On,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[Ve,g2]},t[lk]={textureFormat:On,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Or]},t[fk]={textureFormat:On,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[At,xn,zk]},t[uk]={textureFormat:On,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[At,xn,Uk]},t[ck]={textureFormat:On,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[At,xn]},t[hk]={textureFormat:On,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[At]},t[dk]={textureFormat:Uo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ve]},t[pk]={textureFormat:Uo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Or]},t[gk]={textureFormat:Uo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[No]},t[mk]={textureFormat:Uo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[iu]},t[bk]={textureFormat:Uo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Li]},t[yk]={textureFormat:Uo,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[ou]},t[wk]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},t[vk]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},t[xk]={textureFormat:He,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[Or]},t[Ak]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[Ve,p2,Bd]},t[Ek]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[Ve,d2]},t[_k]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Bd]},t[Sk]={textureFormat:He,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[At,xn]},t[Ck]={textureFormat:He,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[At]},t[kk]={textureFormat:Ni,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ve]},t[Ik]={textureFormat:Ni,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Or]},t[Tk]={textureFormat:Ni,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Bd]},t[Bk]={textureFormat:Ni,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[No]},t[Dk]={textureFormat:Ni,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[iu]},t[Rk]={textureFormat:Ni,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[ou]},t[Fk]={textureFormat:Ni,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Li]},t[Mk]={textureFormat:Ds,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[No,Li]},t[Pk]={textureFormat:Ds,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Li]},t[Lk]={textureFormat:Ds,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[At]},t[Ok]={textureFormat:a2,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Hk]},t[Nk]={textureFormat:a2,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Gk]},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})}),Dd=t}return Dd[e]}function Vk(e,t){const n=lu(e);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[t];if(r===void 0)throw"unknown internal format";return r}function Go(e){const t=lu(e);if(!t)throw"unknown internal format";return{format:t.textureFormat,type:t.type[0]}}function m2(e){return(e&e-1)===0}function jk(e,t,n,r){if(!Po(e))return m2(t)&&m2(n);const i=lu(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function qk(e){const t=lu(e);if(!t)throw"unknown internal format";return t.textureFilterable}function b2(e,t,n){return Lo(t)?Ed(t):n||Ve}function fu(e,t,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const o=Math.sqrt(i/(t===ir?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 Ho(e,t){t.colorspaceConversion!==void 0&&e.pixelStorei(L5,t.colorspaceConversion),t.premultiplyAlpha!==void 0&&e.pixelStorei(N5,t.premultiplyAlpha),t.flipY!==void 0&&e.pixelStorei(O5,t.flipY)}function y2(e){e.pixelStorei(Td,4),Po(e)&&(e.pixelStorei(l2,0),e.pixelStorei(f2,0),e.pixelStorei(u2,0),e.pixelStorei(c2,0),e.pixelStorei(h2,0))}function Zk(e,t,n,r){r.minMag&&(n.call(e,t,kd,r.minMag),n.call(e,t,Id,r.minMag)),r.min&&n.call(e,t,kd,r.min),r.mag&&n.call(e,t,Id,r.mag),r.wrap&&(n.call(e,t,nu,r.wrap),n.call(e,t,ru,r.wrap),(t===Lr||i5(e,t))&&n.call(e,t,s2,r.wrap)),r.wrapR&&n.call(e,t,s2,r.wrapR),r.wrapS&&n.call(e,t,nu,r.wrapS),r.wrapT&&n.call(e,t,ru,r.wrapT),r.minLod&&n.call(e,t,R5,r.minLod),r.maxLod&&n.call(e,t,F5,r.maxLod),r.baseLevel&&n.call(e,t,M5,r.baseLevel),r.maxLevel&&n.call(e,t,P5,r.maxLevel)}function w2(e,t,n){const r=n.target||rr;e.bindTexture(r,t),Zk(e,r,e.texParameteri,n)}function Wk(e){return e=e||Pr.textureColor,Lo(e)?e:new Uint8Array([e[0]*255,e[1]*255,e[2]*255,e[3]*255])}function Rd(e,t,n,r,i,o){n=n||Pr.textureOptions,o=o||He;const a=n.target||rr;if(r=r||n.width,i=i||n.height,e.bindTexture(a,t),jk(e,r,i,o))e.generateMipmap(a);else{const s=qk(o)?C5:S5;e.texParameteri(a,kd,s),e.texParameteri(a,Id,s),e.texParameteri(a,nu,eu),e.texParameteri(a,ru,eu)}}function Fs(e){return e.auto===!0||e.auto===void 0&&e.level===void 0}function Fd(e,t){return t=t||{},t.cubeFaceOrder||[tu,k5,I5,T5,B5,D5]}function Md(e,t){const r=Fd(e,t).map(function(i,o){return{face:i,ndx:o}});return r.sort(function(i,o){return i.face-o.face}),r}function v2(e,t,n,r){r=r||Pr.textureOptions;const i=r.target||rr,o=r.level||0;let a=n.width,s=n.height;const f=r.internalFormat||r.format||He,l=Go(f),u=r.format||l.format,c=r.type||l.type;if(Ho(e,r),e.bindTexture(i,t),i===ir){const h=n.width,d=n.height;let p,b;if(h/6===d)p=d,b=[0,0,1,0,2,0,3,0,4,0,5,0];else if(d/6===h)p=h,b=[0,0,0,1,0,2,0,3,0,4,0,5];else if(h/3===d/2)p=h/3,b=[0,0,1,0,2,0,0,1,1,1,2,1];else if(h/2===d/3)p=h/2,b=[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=n2();y?(y.canvas.width=p,y.canvas.height=p,a=p,s=p,Md(e,r).forEach(function(w){const _=b[w.ndx*2+0]*p,C=b[w.ndx*2+1]*p;y.drawImage(n,_,C,p,p,0,0,p,p),e.texImage2D(w.face,o,f,u,c,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(a=p,s=p,Md(e,r).forEach(function(w){const _=b[w.ndx*2+0]*p,C=b[w.ndx*2+1]*p;e.texImage2D(w.face,o,f,p,p,0,u,c,null),createImageBitmap(n,_,C,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(S){Ho(e,r),e.bindTexture(i,t),e.texImage2D(w.face,o,f,u,c,S),Fs(r)&&Rd(e,t,r,a,s,f)})}))}else if(i===Lr||i===Nr){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 b=n.width===d?1:0,y=n.height===d?1:0;e.pixelStorei(Td,1),e.pixelStorei(l2,n.width),e.pixelStorei(f2,0),e.pixelStorei(h2,0),e.texImage3D(i,o,f,h,h,h,0,u,c,null);for(let w=0;w<p;++w){const _=w*h*b,C=w*h*y;e.pixelStorei(u2,_),e.pixelStorei(c2,C),e.texSubImage3D(i,o,0,0,w,h,h,1,u,c,n)}y2(e)}else e.texImage2D(i,o,f,u,c,n);Fs(r)&&Rd(e,t,r,a,s,f),w2(e,t,r)}function Ms(){}function Yk(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 Qk(e,t){return t===void 0&&!Yk(e)?"anonymous":t}function Xk(e,t,n){n=n||Ms;let r;if(t=t!==void 0?t:Pr.crossOrigin,t=Qk(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 f="couldn't load image: "+e;n5(f),n(f,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(f){if(!f.ok)throw f;return f.blob()}).then(function(f){return createImageBitmap(f,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(f){o=f,setTimeout(a)}).catch(function(f){i=f,setTimeout(a)}),r=null}return r}function x2(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof ImageData<"u"&&e instanceof ImageData||typeof HTMLElement<"u"&&e instanceof HTMLElement}function Pd(e,t,n){return x2(e)?(setTimeout(function(){n(null,e)}),e):Xk(e,t,n)}function Ld(e,t,n){n=n||Pr.textureOptions;const r=n.target||rr;if(e.bindTexture(r,t),n.color===!1)return;const i=Wk(n.color);if(r===ir)for(let o=0;o<6;++o)e.texImage2D(tu+o,0,He,1,1,0,He,Ve,i);else r===Lr||r===Nr?e.texImage3D(r,0,He,1,1,1,0,He,Ve,i):e.texImage2D(r,0,He,1,1,0,He,Ve,i)}function $k(e,t,n,r){return r=r||Ms,n=n||Pr.textureOptions,Ld(e,t,n),n=Object.assign({},n),Pd(n.src,n.crossOrigin,function(o,a){o?r(o,t,a):(v2(e,t,a,n),r(null,t,a))})}function Kk(e,t,n,r){r=r||Ms;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||He,s=Go(a),f=n.format||s.format,l=n.type||Ve,u=n.target||rr;if(u!==ir)throw"target must be TEXTURE_CUBE_MAP";Ld(e,t,n),n=Object.assign({},n);let c=6;const h=[],d=Fd(e,n);let p;function b(y){return function(w,_){--c,w?h.push(w):_.width!==_.height?h.push("cubemap face img is not a square: "+_.src):(Ho(e,n),e.bindTexture(u,t),c===5?Fd().forEach(function(C){e.texImage2D(C,o,a,f,l,_)}):e.texImage2D(y,o,a,f,l,_),Fs(n)&&e.generateMipmap(u)),c===0&&r(h.length?h:void 0,t,p)}}p=i.map(function(y,w){return Pd(y,n.crossOrigin,b(d[w]))})}function Jk(e,t,n,r){r=r||Ms;const i=n.src,o=n.internalFormat||n.format||He,a=Go(o),s=n.format||a.format,f=n.type||Ve,l=n.target||Nr;if(l!==Lr&&l!==Nr)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";Ld(e,t,n),n=Object.assign({},n);let u=i.length;const c=[];let h;const d=n.level||0;let p=n.width,b=n.height;const y=i.length;let w=!0;function _(C){return function(S,T){if(--u,S)c.push(S);else{if(Ho(e,n),e.bindTexture(l,t),w){w=!1,p=n.width||T.width,b=n.height||T.height,e.texImage3D(l,d,o,p,b,y,0,s,f,null);for(let B=0;B<y;++B)e.texSubImage3D(l,d,0,0,B,p,b,1,s,f,T)}else{let B=T,I;(T.width!==p||T.height!==b)&&(I=n2(),B=I.canvas,I.canvas.width=p,I.canvas.height=b,I.drawImage(T,0,0,p,b)),e.texSubImage3D(l,d,0,0,C,p,b,1,s,f,B),I&&B===I.canvas&&(I.canvas.width=0,I.canvas.height=0)}Fs(n)&&e.generateMipmap(l)}u===0&&r(c.length?c:void 0,t,h)}}h=i.map(function(C,S){return Pd(C,n.crossOrigin,_(S))})}function A2(e,t,n,r){r=r||Pr.textureOptions;const i=r.target||rr;e.bindTexture(i,t);let o=r.width,a=r.height,s=r.depth;const f=r.level||0,l=r.internalFormat||r.format||He,u=Go(l),c=r.format||u.format,h=r.type||b2(e,n,u.type);if(Lo(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=t5(h);n=new y(n)}const d=Vk(l,h),p=n.byteLength/d;if(p%1)throw"length wrong size for format: "+Cd(e,c);let b;if(i===Lr||i===Nr)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)?(b=fu(e,i,a,s,p/o),a=b.width,s=b.height):a&&(!o||!s)?(b=fu(e,i,o,s,p/a),o=b.width,s=b.height):(b=fu(e,i,o,a,p/s),o=b.width,a=b.height);else b=fu(e,i,o,a,p),o=b.width,a=b.height;if(y2(e),e.pixelStorei(Td,r.unpackAlignment||1),Ho(e,r),i===ir){const y=d/n.BYTES_PER_ELEMENT,w=p/6*y;Md(e,r).forEach(_=>{const C=w*_.ndx,S=n.subarray(C,C+w);e.texImage2D(_.face,f,l,o,a,0,c,h,S)})}else i===Lr||i===Nr?e.texImage3D(i,f,l,o,a,s,0,c,h,n):e.texImage2D(i,f,l,o,a,0,c,h,n);return{width:o,height:a,depth:s,type:h}}function eI(e,t,n){const r=n.target||rr;e.bindTexture(r,t);const i=n.level||0,o=n.internalFormat||n.format||He,a=Go(o),s=n.format||a.format,f=n.type||a.type;if(Ho(e,n),r===ir)for(let l=0;l<6;++l)e.texImage2D(tu+l,i,o,n.width,n.height,0,s,f,null);else r===Lr||r===Nr?e.texImage3D(r,i,o,n.width,n.height,n.depth,0,s,f,null):e.texImage2D(r,i,o,n.width,n.height,0,s,f,null)}function Ps(e,t,n){n=n||Ms,t=t||Pr.textureOptions;const r=e.createTexture(),i=t.target||rr;let o=t.width||1,a=t.height||1;const s=t.internalFormat||He;e.bindTexture(i,r),i===ir&&(e.texParameteri(i,nu,eu),e.texParameteri(i,ru,eu));let f=t.src;if(f)if(typeof f=="function"&&(f=f(e,t)),typeof f=="string")$k(e,r,t,n);else if(Lo(f)||Array.isArray(f)&&(typeof f[0]=="number"||Array.isArray(f[0])||Lo(f[0]))){const l=A2(e,r,f,t);o=l.width,a=l.height}else Array.isArray(f)&&(typeof f[0]=="string"||x2(f[0]))?i===ir?Kk(e,r,t,n):Jk(e,r,t,n):(v2(e,r,f,t),o=f.width,a=f.height);else eI(e,r,t);return Fs(t)&&Rd(e,r,t,o,a,s),w2(e,r,t),r}function tI(e,t,n,r,i,o){r=r||n.width,i=i||n.height,o=o||n.depth;const a=n.target||rr;e.bindTexture(a,t);const s=n.level||0,f=n.internalFormat||n.format||He,l=Go(f),u=n.format||l.format;let c;const h=n.src;if(h&&(Lo(h)||Array.isArray(h)&&typeof h[0]=="number")?c=n.type||b2(e,h,l.type):c=n.type||l.type,a===ir)for(let d=0;d<6;++d)e.texImage2D(tu+d,s,f,r,i,0,u,c,null);else a===Lr||a===Nr?e.texImage3D(a,s,f,r,i,o,0,u,c,null):e.texImage2D(a,s,f,r,i,0,u,c,null)}const nI=Yb,uu=33984,rI=35048,cu=34962,iI=34963,Nd=35345,E2=35718,oI=35721,aI=35971,sI=35382,lI=35396,fI=35398,uI=35392,cI=35395,hu=5126,_2=35664,S2=35665,C2=35666,Od=5124,k2=35667,I2=35668,T2=35669,B2=35670,D2=35671,R2=35672,F2=35673,M2=35674,P2=35675,L2=35676,hI=35678,dI=35680,pI=35679,gI=35682,mI=35685,bI=35686,yI=35687,wI=35688,vI=35689,xI=35690,AI=36289,EI=36292,_I=36293,zd=5125,N2=36294,O2=36295,z2=36296,SI=36298,CI=36299,kI=36300,II=36303,TI=36306,BI=36307,DI=36308,RI=36311,du=3553,pu=34067,Ud=32879,gu=35866,oe={};function U2(e,t){return oe[t].bindPoint}function FI(e,t){return function(n){e.uniform1f(t,n)}}function MI(e,t){return function(n){e.uniform1fv(t,n)}}function PI(e,t){return function(n){e.uniform2fv(t,n)}}function LI(e,t){return function(n){e.uniform3fv(t,n)}}function NI(e,t){return function(n){e.uniform4fv(t,n)}}function G2(e,t){return function(n){e.uniform1i(t,n)}}function H2(e,t){return function(n){e.uniform1iv(t,n)}}function V2(e,t){return function(n){e.uniform2iv(t,n)}}function j2(e,t){return function(n){e.uniform3iv(t,n)}}function q2(e,t){return function(n){e.uniform4iv(t,n)}}function OI(e,t){return function(n){e.uniform1ui(t,n)}}function zI(e,t){return function(n){e.uniform1uiv(t,n)}}function UI(e,t){return function(n){e.uniform2uiv(t,n)}}function GI(e,t){return function(n){e.uniform3uiv(t,n)}}function HI(e,t){return function(n){e.uniform4uiv(t,n)}}function VI(e,t){return function(n){e.uniformMatrix2fv(t,!1,n)}}function jI(e,t){return function(n){e.uniformMatrix3fv(t,!1,n)}}function qI(e,t){return function(n){e.uniformMatrix4fv(t,!1,n)}}function ZI(e,t){return function(n){e.uniformMatrix2x3fv(t,!1,n)}}function WI(e,t){return function(n){e.uniformMatrix3x2fv(t,!1,n)}}function YI(e,t){return function(n){e.uniformMatrix2x4fv(t,!1,n)}}function QI(e,t){return function(n){e.uniformMatrix4x2fv(t,!1,n)}}function XI(e,t){return function(n){e.uniformMatrix3x4fv(t,!1,n)}}function $I(e,t){return function(n){e.uniformMatrix4x3fv(t,!1,n)}}function It(e,t,n,r){const i=U2(e,t);return Po(e)?function(o){let a,s;Jf(e,o)?(a=o,s=null):(a=o.texture,s=o.sampler),e.uniform1i(r,n),e.activeTexture(uu+n),e.bindTexture(i,a),e.bindSampler(n,s)}:function(o){e.uniform1i(r,n),e.activeTexture(uu+n),e.bindTexture(i,o)}}function Tt(e,t,n,r,i){const o=U2(e,t),a=new Int32Array(i);for(let s=0;s<i;++s)a[s]=n+s;return Po(e)?function(s){e.uniform1iv(r,a),s.forEach(function(f,l){e.activeTexture(uu+a[l]);let u,c;Jf(e,f)?(u=f,c=null):(u=f.texture,c=f.sampler),e.bindSampler(n,c),e.bindTexture(o,u)})}:function(s){e.uniform1iv(r,a),s.forEach(function(f,l){e.activeTexture(uu+a[l]),e.bindTexture(o,f)})}}oe[hu]={Type:Float32Array,size:4,setter:FI,arraySetter:MI},oe[_2]={Type:Float32Array,size:8,setter:PI,cols:2},oe[S2]={Type:Float32Array,size:12,setter:LI,cols:3},oe[C2]={Type:Float32Array,size:16,setter:NI,cols:4},oe[Od]={Type:Int32Array,size:4,setter:G2,arraySetter:H2},oe[k2]={Type:Int32Array,size:8,setter:V2,cols:2},oe[I2]={Type:Int32Array,size:12,setter:j2,cols:3},oe[T2]={Type:Int32Array,size:16,setter:q2,cols:4},oe[zd]={Type:Uint32Array,size:4,setter:OI,arraySetter:zI},oe[N2]={Type:Uint32Array,size:8,setter:UI,cols:2},oe[O2]={Type:Uint32Array,size:12,setter:GI,cols:3},oe[z2]={Type:Uint32Array,size:16,setter:HI,cols:4},oe[B2]={Type:Uint32Array,size:4,setter:G2,arraySetter:H2},oe[D2]={Type:Uint32Array,size:8,setter:V2,cols:2},oe[R2]={Type:Uint32Array,size:12,setter:j2,cols:3},oe[F2]={Type:Uint32Array,size:16,setter:q2,cols:4},oe[M2]={Type:Float32Array,size:32,setter:VI,rows:2,cols:2},oe[P2]={Type:Float32Array,size:48,setter:jI,rows:3,cols:3},oe[L2]={Type:Float32Array,size:64,setter:qI,rows:4,cols:4},oe[mI]={Type:Float32Array,size:32,setter:ZI,rows:2,cols:3},oe[bI]={Type:Float32Array,size:32,setter:YI,rows:2,cols:4},oe[yI]={Type:Float32Array,size:48,setter:WI,rows:3,cols:2},oe[wI]={Type:Float32Array,size:48,setter:XI,rows:3,cols:4},oe[vI]={Type:Float32Array,size:64,setter:QI,rows:4,cols:2},oe[xI]={Type:Float32Array,size:64,setter:$I,rows:4,cols:3},oe[hI]={Type:null,size:0,setter:It,arraySetter:Tt,bindPoint:du},oe[dI]={Type:null,size:0,setter:It,arraySetter:Tt,bindPoint:pu},oe[pI]={Type:null,size:0,setter:It,arraySetter:Tt,bindPoint:Ud},oe[gI]={Type:null,size:0,setter:It,arraySetter:Tt,bindPoint:du},oe[AI]={Type:null,size:0,setter:It,arraySetter:Tt,bindPoint:gu},oe[EI]={Type:null,size:0,setter:It,arraySetter:Tt,bindPoint:gu},oe[_I]={Type:null,size:0,setter:It,arraySetter:Tt,bindPoint:pu},oe[SI]={Type:null,size:0,setter:It,arraySetter:Tt,bindPoint:du},oe[CI]={Type:null,size:0,setter:It,arraySetter:Tt,bindPoint:Ud},oe[kI]={Type:null,size:0,setter:It,arraySetter:Tt,bindPoint:pu},oe[II]={Type:null,size:0,setter:It,arraySetter:Tt,bindPoint:gu},oe[TI]={Type:null,size:0,setter:It,arraySetter:Tt,bindPoint:du},oe[BI]={Type:null,size:0,setter:It,arraySetter:Tt,bindPoint:Ud},oe[DI]={Type:null,size:0,setter:It,arraySetter:Tt,bindPoint:pu},oe[RI]={Type:null,size:0,setter:It,arraySetter:Tt,bindPoint:gu};function mu(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(cu,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribPointer(t,n.numComponents||n.size,n.type||hu,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function zr(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(cu,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||Od,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function bu(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(cu,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 Gd(e,t,n){const r=n.size,i=n.count;return function(o){e.bindBuffer(cu,o.buffer);const a=o.size||o.numComponents||r,s=a/i,f=o.type||hu,u=oe[f].size*a,c=o.normalize||!1,h=o.offset||0,d=u/i;for(let p=0;p<i;++p)e.enableVertexAttribArray(t+p),e.vertexAttribPointer(t+p,s,f,c,u,h+d*p),o.divisor!==void 0&&e.vertexAttribDivisor(t+p,o.divisor)}}const tt={};tt[hu]={size:4,setter:mu},tt[_2]={size:8,setter:mu},tt[S2]={size:12,setter:mu},tt[C2]={size:16,setter:mu},tt[Od]={size:4,setter:zr},tt[k2]={size:8,setter:zr},tt[I2]={size:12,setter:zr},tt[T2]={size:16,setter:zr},tt[zd]={size:4,setter:bu},tt[N2]={size:8,setter:bu},tt[O2]={size:12,setter:bu},tt[z2]={size:16,setter:bu},tt[B2]={size:4,setter:zr},tt[D2]={size:8,setter:zr},tt[R2]={size:12,setter:zr},tt[F2]={size:16,setter:zr},tt[M2]={size:4,setter:Gd,count:2},tt[P2]={size:9,setter:Gd,count:3},tt[L2]={size:16,setter:Gd,count:4};function Z2(e){const t=e.name;return t.startsWith("gl_")||t.startsWith("webgl_")}const KI=/(\.|\[|]|\w+)/g,JI=e=>e>="0"&&e<="9";function W2(e,t,n,r){const i=e.split(KI).filter(s=>s!=="");let o=0,a="";for(;;){const s=i[o++];a+=s;const f=JI(s[0]),l=f?parseInt(s):s;if(f&&(a+=i[o++]),o===i.length){n[l]=t;break}else{const c=i[o++],h=c==="[",d=n[l]||(h?[]:{});n[l]=d,n=d,r[a]=r[a]||function(p){return function(b){X2(p,b)}}(d),a+=c}}}function eT(e,t){let n=0;function r(s,f,l){const u=f.name.endsWith("[0]"),c=f.type,h=oe[c];if(!h)throw new Error(`unknown type: 0x${c.toString(16)}`);let d;if(h.bindPoint){const p=n;n+=f.size,u?d=h.arraySetter(e,c,p,l,f.size):d=h.setter(e,c,p,l,f.size)}else h.arraySetter&&u?d=h.arraySetter(e,l):d=h.setter(e,l);return d.location=l,d}const i={},o={},a=e.getProgramParameter(t,E2);for(let s=0;s<a;++s){const f=e.getActiveUniform(t,s);if(Z2(f))continue;let l=f.name;l.endsWith("[0]")&&(l=l.substr(0,l.length-3));const u=e.getUniformLocation(t,f.name);if(u){const c=r(t,f,u);i[l]=c,W2(l,c,o,i)}}return i}function tT(e,t){const n={},r=e.getProgramParameter(t,aI);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 nT(e,t){const n=e.getProgramParameter(t,E2),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const f=e.getActiveUniform(t,s);r[s].name=f.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const f=s[0],l=s[1];e.getActiveUniforms(t,i,e[f]).forEach(function(u,c){r[c][l]=u})});const o={},a=e.getProgramParameter(t,sI);for(let s=0;s<a;++s){const f=e.getActiveUniformBlockName(t,s),l={index:e.getUniformBlockIndex(t,f),usedByVertexShader:e.getActiveUniformBlockParameter(t,s,lI),usedByFragmentShader:e.getActiveUniformBlockParameter(t,s,fI),size:e.getActiveUniformBlockParameter(t,s,uI),uniformIndices:e.getActiveUniformBlockParameter(t,s,cI)};l.used=l.usedByVertexShader||l.usedByFragmentShader,o[f]=l}return{blockSpecs:o,uniformData:r}}const Y2=/\[\d+\]\.$/,rT=(e,t)=>((e+(t-1))/t|0)*t;function iT(e,t,n,r){if(t||n){r=r||1;const o=e.length/4;return function(a){let s=0,f=0;for(let l=0;l<o;++l){for(let u=0;u<r;++u)e[s++]=a[f++];s+=4-r}}}else return function(i){i.length?e.set(i):e[0]=i}}function oT(e,t,n,r){const i=n.blockSpecs,o=n.uniformData,a=i[r];if(!a)return nI("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(a.size),f=e.createBuffer(),l=a.index;e.bindBuffer(Nd,f),e.uniformBlockBinding(t,a.index,l);let u=r+".";Y2.test(u)&&(u=u.replace(Y2,"."));const c={},h={},d={};return a.uniformIndices.forEach(function(p){const b=o[p];let y=b.name;y.startsWith(u)&&(y=y.substr(u.length));const w=y.endsWith("[0]");w&&(y=y.substr(0,y.length-3));const _=oe[b.type],C=_.Type,S=w?rT(_.size,16)*b.size:_.size*b.size,T=new C(s,b.offset,S/C.BYTES_PER_ELEMENT);c[y]=T;const B=iT(T,w,_.rows,_.cols);h[y]=B,W2(y,B,d,h)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:f,uniforms:c,setters:h}}function Hd(e,t,n){return oT(e,t.program,t.uniformBlockSpec,n)}function Q2(e,t,n){const i=(t.uniformBlockSpec||t).blockSpecs[n.name];if(i){const o=i.index;return e.bindBufferRange(Nd,o,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function Vd(e,t,n){Q2(e,t,n)&&e.bufferData(Nd,n.array,rI)}function Oi(e,t){const n=e.setters;for(const r in t){const i=n[r];if(i){const o=t[r];i(o)}}}function X2(e,t){for(const n in t){const r=e[n];typeof r=="function"?r(t[n]):X2(e[n],t[n])}}function zi(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)zi(n,o[s])}else for(const a in o){const s=n[a];s&&s(o[a])}}}function aT(e,t){const n={},r=e.getProgramParameter(t,oI);for(let i=0;i<r;++i){const o=e.getActiveAttrib(t,i);if(Z2(o))continue;const a=e.getAttribLocation(t,o.name),s=tt[o.type],f=s.setter(e,a,s);f.location=a,n[o.name]=f}return n}function sT(e,t){for(const n in t){const r=e[n];r&&r(t[n])}}function Vo(e,t,n){n.vertexArrayObject?e.bindVertexArray(n.vertexArrayObject):(sT(t.attribSetters||t,n.attribs),n.indices&&e.bindBuffer(iI,n.indices))}function lT(e,t){const n=eT(e,t),r=aT(e,t),i={program:t,uniformSetters:n,attribSetters:r};return Po(e)&&(i.uniformBlockSpec=nT(e,t),i.transformFeedbackInfo=tT(e,t)),i}const fT=4,$2=5123;function Ls(e,t,n,r,i,o){n=n===void 0?fT:n;const a=t.indices,s=t.elementType,f=r===void 0?t.numElements:r;i=i===void 0?0:i,s||a?o!==void 0?e.drawElementsInstanced(n,f,s===void 0?$2:t.elementType,i,o):e.drawElements(n,f,s===void 0?$2:t.elementType,i):o!==void 0?e.drawArraysInstanced(n,i,f,o):e.drawArrays(n,i,f)}const uT=36160,Ui=36161,cT=3553,hT=5121,dT=6402,pT=6408,gT=33190,mT=36012,bT=35056,yT=36013,wT=32854,vT=32855,xT=36194,K2=33189,J2=6401,ey=36168,jd=34041,AT=36064,yu=36096,ty=36128,qd=33306,Zd=33071,Wd=9729,ny=[{format:pT,type:hT,min:Wd,wrap:Zd},{format:jd}],An={};An[jd]=qd,An[J2]=ty,An[ey]=ty,An[dT]=yu,An[K2]=yu,An[gT]=yu,An[mT]=yu,An[bT]=qd,An[yT]=qd;function ET(e,t){return An[e]||An[t]}const Ur={};Ur[wT]=!0,Ur[vT]=!0,Ur[xT]=!0,Ur[jd]=!0,Ur[K2]=!0,Ur[J2]=!0,Ur[ey]=!0;function _T(e){return Ur[e]}function ST(e,t,n,r){const i=uT,o=e.createFramebuffer();e.bindFramebuffer(i,o),n=n||e.drawingBufferWidth,r=r||e.drawingBufferHeight,t=t||ny;let a=0;const s={framebuffer:o,attachments:[],width:n,height:r};return t.forEach(function(f){let l=f.attachment;const u=f.samples,c=f.format;let h=f.attachmentPoint||ET(c,f.internalFormat);if(h||(h=AT+a++),!l)if(u!==void 0||_T(c))l=e.createRenderbuffer(),e.bindRenderbuffer(Ui,l),u>1?e.renderbufferStorageMultisample(Ui,u,c,n,r):e.renderbufferStorage(Ui,c,n,r);else{const d=Object.assign({},f);d.width=n,d.height=r,d.auto===void 0&&(d.auto=!1,d.min=d.min||d.minMag||Wd,d.mag=d.mag||d.minMag||Wd,d.wrapS=d.wrapS||d.wrap||Zd,d.wrapT=d.wrapT||d.wrap||Zd),l=Ps(e,d)}if(Qb(e,l))e.framebufferRenderbuffer(i,h,Ui,l);else if(Jf(e,l))f.layer!==void 0?e.framebufferTextureLayer(i,h,l,f.level||0,f.layer):e.framebufferTexture2D(i,h,f.target||cT,l,f.level||0);else throw new Error("unknown attachment type");s.attachments.push(l)}),s}function CT(e,t,n,r,i){r=r||e.drawingBufferWidth,i=i||e.drawingBufferHeight,t.width=r,t.height=i,n=n||ny,n.forEach(function(o,a){const s=t.attachments[a],f=o.format,l=o.samples;if(l!==void 0||Qb(e,s))e.bindRenderbuffer(Ui,s),l>1?e.renderbufferStorageMultisample(Ui,l,f,r,i):e.renderbufferStorage(Ui,f,r,i);else if(Jf(e,s))tI(e,s,o,r,i);else throw new Error("unknown attachment type")})}function kT(e,t,n){const r=e.createVertexArray();return e.bindVertexArray(r),t.length||(t=[t]),t.forEach(function(i){Vo(e,i,n)}),e.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const IT=/^(.*?)_/;function TT(e,t){Cd(e,0);const n=e.getExtension(t);if(n){const r={},i=IT.exec(t)[1],o="_"+i;for(const a in n){const s=n[a],f=typeof s=="function",l=f?i:o;let u=a;a.endsWith(l)&&(u=a.substring(0,a.length-l.length)),e[u]!==void 0?!f&&e[u]!==s&&Yb(u,e[u],s,a):f?e[u]=function(c){return function(){return c.apply(n,arguments)}}(s):(e[u]=s,r[u]=s)}r.constructor={name:n.constructor.name},Cd(r,0)}return n}const ry=["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 iy(e){for(let t=0;t<ry.length;++t)TT(e,ry[t])}function BT(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){iy(r);break}return r}function DT(e,t){return BT(e,t)}const RT=`uniform Mark{uniform float uMinWidth;uniform float uMinHeight;uniform float uMinOpacity;uniform float uCornerRadiusTopRight;uniform float uCornerRadiusBottomRight;uniform float uCornerRadiusTopLeft;uniform float uCornerRadiusBottomLeft;};/***The vertex position wrt the rectangle specified by(x,x2,y,y2).*[0,0]=[x,y],[1,1]=[x2,y2].*The x or y component may contain fractional values if the rectangle*have been tessellated.*/in vec2 frac;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out float vHalfStrokeWidth;out vec4 vCornerRadii;
164
+ see: http://github.com/greggman/twgl.js for details */const wd=5120,Ps=5121,vd=5122,xd=5123,Ad=5124,Ed=5125,_d=5126,r5=32819,i5=32820,o5=33635,a5=5131,s5=33640,l5=35899,u5=35902,f5=36269,c5=34042,Xb={};{const e=Xb;e[wd]=Int8Array,e[Ps]=Uint8Array,e[vd]=Int16Array,e[xd]=Uint16Array,e[Ad]=Int32Array,e[Ed]=Uint32Array,e[_d]=Float32Array,e[r5]=Uint16Array,e[i5]=Uint16Array,e[o5]=Uint16Array,e[a5]=Uint16Array,e[s5]=Uint32Array,e[l5]=Uint32Array,e[u5]=Uint32Array,e[f5]=Uint32Array,e[c5]=Uint32Array}function Sd(e){if(e instanceof Int8Array)return wd;if(e instanceof Uint8Array||e instanceof Uint8ClampedArray)return Ps;if(e instanceof Int16Array)return vd;if(e instanceof Uint16Array)return xd;if(e instanceof Int32Array)return Ad;if(e instanceof Uint32Array)return Ed;if(e instanceof Float32Array)return _d;throw new Error("unsupported typed array type")}function h5(e){if(e===Int8Array)return wd;if(e===Uint8Array||e===Uint8ClampedArray)return Ps;if(e===Int16Array)return vd;if(e===Uint16Array)return xd;if(e===Int32Array)return Ad;if(e===Uint32Array)return Ed;if(e===Float32Array)return _d;throw new Error("unsupported typed array type")}function d5(e){const t=Xb[e];if(!t)throw new Error("unknown gl type");return t}const tf=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 p5(...e){console.error(...e)}function $b(...e){console.warn(...e)}function g5(e,t){return typeof WebGLBuffer<"u"&&t instanceof WebGLBuffer}function Kb(e,t){return typeof WebGLRenderbuffer<"u"&&t instanceof WebGLRenderbuffer}function nf(e,t){return typeof WebGLTexture<"u"&&t instanceof WebGLTexture}function m5(e,t){return typeof WebGLSampler<"u"&&t instanceof WebGLSampler}const Jb=35044,Ln=34962,b5=34963,y5=34660,w5=5120,v5=5121,x5=5122,A5=5123,E5=5124,_5=5125,S5=5126,e2={attribPrefix:""};function t2(e,t,n,r,i){e.bindBuffer(t,n),e.bufferData(t,r,i||Jb)}function n2(e,t,n,r){if(g5(e,t))return t;n=n||Ln;const i=e.createBuffer();return t2(e,n,i,t,r),i}function r2(e){return e==="indices"}function C5(e){return e instanceof Int8Array||e instanceof Uint8Array}function k5(e){return e===Int8Array||e===Uint8Array}function T5(e){return e.length?e:e.data}const I5=/coord|texture/i,B5=/color|colour/i;function i2(e,t){let n;if(I5.test(e)?n=2:B5.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 D5(e,t){return e.numComponents||e.size||i2(t,T5(e).length)}function Cd(e,t){if(tf(e))return e;if(tf(e.data))return e.data;Array.isArray(e)&&(e={data:e});let n=e.type;return n||(r2(t)?n=Uint16Array:n=Float32Array),new n(e.data)}function F5(e,t){const n={};return Object.keys(t).forEach(function(r){if(!r2(r)){const i=t[r],o=i.attrib||i.name||i.attribName||e2.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!tf(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 f=i.data||i,c=i.type||Float32Array,h=f*c.BYTES_PER_ELEMENT;s=h5(c),u=i.normalize!==void 0?i.normalize:k5(c),l=i.numComponents||i.size||i2(r,f),a=e.createBuffer(),e.bindBuffer(Ln,a),e.bufferData(Ln,h,i.drawType||Jb)}else{const f=Cd(i,r);a=n2(e,f,void 0,i.drawType),s=Sd(f),u=i.normalize!==void 0?i.normalize:C5(f),l=D5(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(Ln,null),n}function R5(e,t,n,r){n=Cd(n),r!==void 0?(e.bindBuffer(Ln,t.buffer),e.bufferSubData(Ln,r,n)):t2(e,Ln,t.buffer,n,t.drawType)}function M5(e,t){return t===w5||t===v5?1:t===x5||t===A5?2:t===E5||t===_5||t===S5?4:0}const kd=["position","positions","a_position"];function P5(e,t){let n,r;for(r=0;r<kd.length&&(n=kd[r],!(n in t||(n=e2.attribPrefix+n,n in t)));++r);r===kd.length&&(n=Object.keys(t)[0]);const i=t[n];e.bindBuffer(Ln,i.buffer);const o=e.getBufferParameter(Ln,y5);e.bindBuffer(Ln,null);const a=M5(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 L5(e,t,n){const r=F5(e,t),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const o=t.indices;if(o){const a=Cd(o,"indices");i.indices=n2(e,a,b5),i.numElements=a.length,i.elementType=Sd(a)}else i.numElements||(i.numElements=P5(e,i.attribs));return i}function Lo(e){return!!e.texStorage2D}const Td=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)}}(),Nr={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},No=tf,o2=function(){let e;return function(){return e=e||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),e}}(),a2=6406,Nn=6407,He=6408,s2=6409,l2=6410,Ls=6402,u2=34041,rf=33071,N5=9728,O5=9729,ir=3553,or=34067,Or=32879,zr=35866,of=34069,z5=34070,U5=34071,G5=34072,H5=34073,V5=34074,Id=10241,Bd=10240,af=10242,sf=10243,f2=32882,j5=33082,q5=33083,Z5=33084,W5=33085,Dd=3317,c2=3314,h2=32878,d2=3316,p2=3315,g2=32877,Y5=37443,Q5=37441,X5=37440,$5=33321,K5=36756,J5=33325,ek=33326,tk=33330,nk=33329,rk=33338,ik=33337,ok=33340,ak=33339,sk=33323,lk=36757,uk=33327,fk=33328,ck=33336,hk=33335,dk=33332,pk=33331,gk=33334,mk=33333,bk=32849,yk=35905,wk=36194,vk=36758,xk=35898,Ak=35901,Ek=34843,_k=34837,Sk=36221,Ck=36239,kk=36215,Tk=36233,Ik=36209,Bk=36227,Dk=32856,Fk=35907,Rk=36759,Mk=32855,Pk=32854,Lk=32857,Nk=34842,Ok=34836,zk=36220,Uk=36238,Gk=36975,Hk=36214,Vk=36232,jk=36226,qk=36208,Zk=33189,Wk=33190,Yk=36012,Qk=36013,Xk=35056,Ur=5120,Ve=5121,lf=5122,Oo=5123,uf=5124,Oi=5125,Et=5126,m2=32819,b2=32820,y2=33635,xn=5131,Ns=36193,Fd=33640,$k=35899,Kk=35902,Jk=36269,eT=34042,ff=33319,zo=33320,cf=6403,Uo=36244,Go=36248,zi=36249;let Rd;function hf(e){if(!Rd){const t={};t[a2]={textureFormat:a2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,xn,Ns,Et]},t[s2]={textureFormat:s2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,xn,Ns,Et]},t[l2]={textureFormat:l2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[Ve,xn,Ns,Et]},t[Nn]={textureFormat:Nn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[Ve,xn,Ns,Et,y2]},t[He]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[Ve,xn,Ns,Et,m2,b2]},t[Ls]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Oi,Oo]},t[$5]={textureFormat:cf,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[Ve]},t[K5]={textureFormat:cf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[Ur]},t[J5]={textureFormat:cf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[Et,xn]},t[ek]={textureFormat:cf,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[Et]},t[tk]={textureFormat:Uo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ve]},t[nk]={textureFormat:Uo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ur]},t[dk]={textureFormat:Uo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Oo]},t[pk]={textureFormat:Uo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[lf]},t[gk]={textureFormat:Uo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Oi]},t[mk]={textureFormat:Uo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[uf]},t[sk]={textureFormat:ff,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[Ve]},t[lk]={textureFormat:ff,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[Ur]},t[uk]={textureFormat:ff,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[Et,xn]},t[fk]={textureFormat:ff,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[Et]},t[ck]={textureFormat:zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ve]},t[hk]={textureFormat:zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ur]},t[rk]={textureFormat:zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Oo]},t[ik]={textureFormat:zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[lf]},t[ok]={textureFormat:zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Oi]},t[ak]={textureFormat:zo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[uf]},t[bk]={textureFormat:Nn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},t[yk]={textureFormat:Nn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},t[wk]={textureFormat:Nn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[Ve,y2]},t[vk]={textureFormat:Nn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ur]},t[xk]={textureFormat:Nn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Et,xn,$k]},t[Ak]={textureFormat:Nn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Et,xn,Kk]},t[Ek]={textureFormat:Nn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[Et,xn]},t[_k]={textureFormat:Nn,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Et]},t[Sk]={textureFormat:Go,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ve]},t[Ck]={textureFormat:Go,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ur]},t[kk]={textureFormat:Go,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Oo]},t[Tk]={textureFormat:Go,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[lf]},t[Ik]={textureFormat:Go,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Oi]},t[Bk]={textureFormat:Go,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[uf]},t[Dk]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},t[Fk]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},t[Rk]={textureFormat:He,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[Ur]},t[Mk]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[Ve,b2,Fd]},t[Pk]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[Ve,m2]},t[Lk]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Fd]},t[Nk]={textureFormat:He,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[Et,xn]},t[Ok]={textureFormat:He,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[Et]},t[zk]={textureFormat:zi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ve]},t[Uk]={textureFormat:zi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ur]},t[Gk]={textureFormat:zi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Fd]},t[Hk]={textureFormat:zi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Oo]},t[Vk]={textureFormat:zi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[lf]},t[jk]={textureFormat:zi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[uf]},t[qk]={textureFormat:zi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Oi]},t[Zk]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Oo,Oi]},t[Wk]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Oi]},t[Yk]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Et]},t[Xk]={textureFormat:u2,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[eT]},t[Qk]={textureFormat:u2,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Jk]},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})}),Rd=t}return Rd[e]}function tT(e,t){const n=hf(e);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[t];if(r===void 0)throw"unknown internal format";return r}function Ho(e){const t=hf(e);if(!t)throw"unknown internal format";return{format:t.textureFormat,type:t.type[0]}}function w2(e){return(e&e-1)===0}function nT(e,t,n,r){if(!Lo(e))return w2(t)&&w2(n);const i=hf(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function rT(e){const t=hf(e);if(!t)throw"unknown internal format";return t.textureFilterable}function v2(e,t,n){return No(t)?Sd(t):n||Ve}function df(e,t,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const o=Math.sqrt(i/(t===or?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 Vo(e,t){t.colorspaceConversion!==void 0&&e.pixelStorei(Y5,t.colorspaceConversion),t.premultiplyAlpha!==void 0&&e.pixelStorei(Q5,t.premultiplyAlpha),t.flipY!==void 0&&e.pixelStorei(X5,t.flipY)}function x2(e){e.pixelStorei(Dd,4),Lo(e)&&(e.pixelStorei(c2,0),e.pixelStorei(h2,0),e.pixelStorei(d2,0),e.pixelStorei(p2,0),e.pixelStorei(g2,0))}function iT(e,t,n,r){r.minMag&&(n.call(e,t,Id,r.minMag),n.call(e,t,Bd,r.minMag)),r.min&&n.call(e,t,Id,r.min),r.mag&&n.call(e,t,Bd,r.mag),r.wrap&&(n.call(e,t,af,r.wrap),n.call(e,t,sf,r.wrap),(t===Or||m5(e,t))&&n.call(e,t,f2,r.wrap)),r.wrapR&&n.call(e,t,f2,r.wrapR),r.wrapS&&n.call(e,t,af,r.wrapS),r.wrapT&&n.call(e,t,sf,r.wrapT),r.minLod&&n.call(e,t,j5,r.minLod),r.maxLod&&n.call(e,t,q5,r.maxLod),r.baseLevel&&n.call(e,t,Z5,r.baseLevel),r.maxLevel&&n.call(e,t,W5,r.maxLevel)}function A2(e,t,n){const r=n.target||ir;e.bindTexture(r,t),iT(e,r,e.texParameteri,n)}function oT(e){return e=e||Nr.textureColor,No(e)?e:new Uint8Array([e[0]*255,e[1]*255,e[2]*255,e[3]*255])}function Md(e,t,n,r,i,o){n=n||Nr.textureOptions,o=o||He;const a=n.target||ir;if(r=r||n.width,i=i||n.height,e.bindTexture(a,t),nT(e,r,i,o))e.generateMipmap(a);else{const s=rT(o)?O5:N5;e.texParameteri(a,Id,s),e.texParameteri(a,Bd,s),e.texParameteri(a,af,rf),e.texParameteri(a,sf,rf)}}function Os(e){return e.auto===!0||e.auto===void 0&&e.level===void 0}function Pd(e,t){return t=t||{},t.cubeFaceOrder||[of,z5,U5,G5,H5,V5]}function Ld(e,t){const r=Pd(e,t).map(function(i,o){return{face:i,ndx:o}});return r.sort(function(i,o){return i.face-o.face}),r}function E2(e,t,n,r){r=r||Nr.textureOptions;const i=r.target||ir,o=r.level||0;let a=n.width,s=n.height;const u=r.internalFormat||r.format||He,l=Ho(u),f=r.format||l.format,c=r.type||l.type;if(Vo(e,r),e.bindTexture(i,t),i===or){const h=n.width,d=n.height;let p,b;if(h/6===d)p=d,b=[0,0,1,0,2,0,3,0,4,0,5,0];else if(d/6===h)p=h,b=[0,0,0,1,0,2,0,3,0,4,0,5];else if(h/3===d/2)p=h/3,b=[0,0,1,0,2,0,0,1,1,1,2,1];else if(h/2===d/3)p=h/2,b=[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=o2();y?(y.canvas.width=p,y.canvas.height=p,a=p,s=p,Ld(e,r).forEach(function(w){const _=b[w.ndx*2+0]*p,C=b[w.ndx*2+1]*p;y.drawImage(n,_,C,p,p,0,0,p,p),e.texImage2D(w.face,o,u,f,c,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(a=p,s=p,Ld(e,r).forEach(function(w){const _=b[w.ndx*2+0]*p,C=b[w.ndx*2+1]*p;e.texImage2D(w.face,o,u,p,p,0,f,c,null),createImageBitmap(n,_,C,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(E){Vo(e,r),e.bindTexture(i,t),e.texImage2D(w.face,o,u,f,c,E),Os(r)&&Md(e,t,r,a,s,u)})}))}else if(i===Or||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 b=n.width===d?1:0,y=n.height===d?1:0;e.pixelStorei(Dd,1),e.pixelStorei(c2,n.width),e.pixelStorei(h2,0),e.pixelStorei(g2,0),e.texImage3D(i,o,u,h,h,h,0,f,c,null);for(let w=0;w<p;++w){const _=w*h*b,C=w*h*y;e.pixelStorei(d2,_),e.pixelStorei(p2,C),e.texSubImage3D(i,o,0,0,w,h,h,1,f,c,n)}x2(e)}else e.texImage2D(i,o,u,f,c,n);Os(r)&&Md(e,t,r,a,s,u),A2(e,t,r)}function zs(){}function aT(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 sT(e,t){return t===void 0&&!aT(e)?"anonymous":t}function lT(e,t,n){n=n||zs;let r;if(t=t!==void 0?t:Nr.crossOrigin,t=sT(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;p5(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 _2(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof ImageData<"u"&&e instanceof ImageData||typeof HTMLElement<"u"&&e instanceof HTMLElement}function Nd(e,t,n){return _2(e)?(setTimeout(function(){n(null,e)}),e):lT(e,t,n)}function Od(e,t,n){n=n||Nr.textureOptions;const r=n.target||ir;if(e.bindTexture(r,t),n.color===!1)return;const i=oT(n.color);if(r===or)for(let o=0;o<6;++o)e.texImage2D(of+o,0,He,1,1,0,He,Ve,i);else r===Or||r===zr?e.texImage3D(r,0,He,1,1,1,0,He,Ve,i):e.texImage2D(r,0,He,1,1,0,He,Ve,i)}function uT(e,t,n,r){return r=r||zs,n=n||Nr.textureOptions,Od(e,t,n),n=Object.assign({},n),Nd(n.src,n.crossOrigin,function(o,a){o?r(o,t,a):(E2(e,t,a,n),r(null,t,a))})}function fT(e,t,n,r){r=r||zs;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||He,s=Ho(a),u=n.format||s.format,l=n.type||Ve,f=n.target||ir;if(f!==or)throw"target must be TEXTURE_CUBE_MAP";Od(e,t,n),n=Object.assign({},n);let c=6;const h=[],d=Pd(e,n);let p;function b(y){return function(w,_){--c,w?h.push(w):_.width!==_.height?h.push("cubemap face img is not a square: "+_.src):(Vo(e,n),e.bindTexture(f,t),c===5?Pd().forEach(function(C){e.texImage2D(C,o,a,u,l,_)}):e.texImage2D(y,o,a,u,l,_),Os(n)&&e.generateMipmap(f)),c===0&&r(h.length?h:void 0,t,p)}}p=i.map(function(y,w){return Nd(y,n.crossOrigin,b(d[w]))})}function cT(e,t,n,r){r=r||zs;const i=n.src,o=n.internalFormat||n.format||He,a=Ho(o),s=n.format||a.format,u=n.type||Ve,l=n.target||zr;if(l!==Or&&l!==zr)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";Od(e,t,n),n=Object.assign({},n);let f=i.length;const c=[];let h;const d=n.level||0;let p=n.width,b=n.height;const y=i.length;let w=!0;function _(C){return function(E,T){if(--f,E)c.push(E);else{if(Vo(e,n),e.bindTexture(l,t),w){w=!1,p=n.width||T.width,b=n.height||T.height,e.texImage3D(l,d,o,p,b,y,0,s,u,null);for(let B=0;B<y;++B)e.texSubImage3D(l,d,0,0,B,p,b,1,s,u,T)}else{let B=T,I;(T.width!==p||T.height!==b)&&(I=o2(),B=I.canvas,I.canvas.width=p,I.canvas.height=b,I.drawImage(T,0,0,p,b)),e.texSubImage3D(l,d,0,0,C,p,b,1,s,u,B),I&&B===I.canvas&&(I.canvas.width=0,I.canvas.height=0)}Os(n)&&e.generateMipmap(l)}f===0&&r(c.length?c:void 0,t,h)}}h=i.map(function(C,E){return Nd(C,n.crossOrigin,_(E))})}function S2(e,t,n,r){r=r||Nr.textureOptions;const i=r.target||ir;e.bindTexture(i,t);let o=r.width,a=r.height,s=r.depth;const u=r.level||0,l=r.internalFormat||r.format||He,f=Ho(l),c=r.format||f.format,h=r.type||v2(e,n,f.type);if(No(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=d5(h);n=new y(n)}const d=tT(l,h),p=n.byteLength/d;if(p%1)throw"length wrong size for format: "+Td(e,c);let b;if(i===Or||i===zr)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)?(b=df(e,i,a,s,p/o),a=b.width,s=b.height):a&&(!o||!s)?(b=df(e,i,o,s,p/a),o=b.width,s=b.height):(b=df(e,i,o,a,p/s),o=b.width,a=b.height);else b=df(e,i,o,a,p),o=b.width,a=b.height;if(x2(e),e.pixelStorei(Dd,r.unpackAlignment||1),Vo(e,r),i===or){const y=d/n.BYTES_PER_ELEMENT,w=p/6*y;Ld(e,r).forEach(_=>{const C=w*_.ndx,E=n.subarray(C,C+w);e.texImage2D(_.face,u,l,o,a,0,c,h,E)})}else i===Or||i===zr?e.texImage3D(i,u,l,o,a,s,0,c,h,n):e.texImage2D(i,u,l,o,a,0,c,h,n);return{width:o,height:a,depth:s,type:h}}function hT(e,t,n){const r=n.target||ir;e.bindTexture(r,t);const i=n.level||0,o=n.internalFormat||n.format||He,a=Ho(o),s=n.format||a.format,u=n.type||a.type;if(Vo(e,n),r===or)for(let l=0;l<6;++l)e.texImage2D(of+l,i,o,n.width,n.height,0,s,u,null);else r===Or||r===zr?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 Us(e,t,n){n=n||zs,t=t||Nr.textureOptions;const r=e.createTexture(),i=t.target||ir;let o=t.width||1,a=t.height||1;const s=t.internalFormat||He;e.bindTexture(i,r),i===or&&(e.texParameteri(i,af,rf),e.texParameteri(i,sf,rf));let u=t.src;if(u)if(typeof u=="function"&&(u=u(e,t)),typeof u=="string")uT(e,r,t,n);else if(No(u)||Array.isArray(u)&&(typeof u[0]=="number"||Array.isArray(u[0])||No(u[0]))){const l=S2(e,r,u,t);o=l.width,a=l.height}else Array.isArray(u)&&(typeof u[0]=="string"||_2(u[0]))?i===or?fT(e,r,t,n):cT(e,r,t,n):(E2(e,r,u,t),o=u.width,a=u.height);else hT(e,r,t);return Os(t)&&Md(e,r,t,o,a,s),A2(e,r,t),r}function dT(e,t,n,r,i,o){r=r||n.width,i=i||n.height,o=o||n.depth;const a=n.target||ir;e.bindTexture(a,t);const s=n.level||0,u=n.internalFormat||n.format||He,l=Ho(u),f=n.format||l.format;let c;const h=n.src;if(h&&(No(h)||Array.isArray(h)&&typeof h[0]=="number")?c=n.type||v2(e,h,l.type):c=n.type||l.type,a===or)for(let d=0;d<6;++d)e.texImage2D(of+d,s,u,r,i,0,f,c,null);else a===Or||a===zr?e.texImage3D(a,s,u,r,i,o,0,f,c,null):e.texImage2D(a,s,u,r,i,0,f,c,null)}const pT=$b,pf=33984,gT=35048,gf=34962,mT=34963,zd=35345,C2=35718,bT=35721,yT=35971,wT=35382,vT=35396,xT=35398,AT=35392,ET=35395,mf=5126,k2=35664,T2=35665,I2=35666,Ud=5124,B2=35667,D2=35668,F2=35669,R2=35670,M2=35671,P2=35672,L2=35673,N2=35674,O2=35675,z2=35676,_T=35678,ST=35680,CT=35679,kT=35682,TT=35685,IT=35686,BT=35687,DT=35688,FT=35689,RT=35690,MT=36289,PT=36292,LT=36293,Gd=5125,U2=36294,G2=36295,H2=36296,NT=36298,OT=36299,zT=36300,UT=36303,GT=36306,HT=36307,VT=36308,jT=36311,bf=3553,yf=34067,Hd=32879,wf=35866,ae={};function V2(e,t){return ae[t].bindPoint}function qT(e,t){return function(n){e.uniform1f(t,n)}}function ZT(e,t){return function(n){e.uniform1fv(t,n)}}function WT(e,t){return function(n){e.uniform2fv(t,n)}}function YT(e,t){return function(n){e.uniform3fv(t,n)}}function QT(e,t){return function(n){e.uniform4fv(t,n)}}function j2(e,t){return function(n){e.uniform1i(t,n)}}function q2(e,t){return function(n){e.uniform1iv(t,n)}}function Z2(e,t){return function(n){e.uniform2iv(t,n)}}function W2(e,t){return function(n){e.uniform3iv(t,n)}}function Y2(e,t){return function(n){e.uniform4iv(t,n)}}function XT(e,t){return function(n){e.uniform1ui(t,n)}}function $T(e,t){return function(n){e.uniform1uiv(t,n)}}function KT(e,t){return function(n){e.uniform2uiv(t,n)}}function JT(e,t){return function(n){e.uniform3uiv(t,n)}}function eI(e,t){return function(n){e.uniform4uiv(t,n)}}function tI(e,t){return function(n){e.uniformMatrix2fv(t,!1,n)}}function nI(e,t){return function(n){e.uniformMatrix3fv(t,!1,n)}}function rI(e,t){return function(n){e.uniformMatrix4fv(t,!1,n)}}function iI(e,t){return function(n){e.uniformMatrix2x3fv(t,!1,n)}}function oI(e,t){return function(n){e.uniformMatrix3x2fv(t,!1,n)}}function aI(e,t){return function(n){e.uniformMatrix2x4fv(t,!1,n)}}function sI(e,t){return function(n){e.uniformMatrix4x2fv(t,!1,n)}}function lI(e,t){return function(n){e.uniformMatrix3x4fv(t,!1,n)}}function uI(e,t){return function(n){e.uniformMatrix4x3fv(t,!1,n)}}function kt(e,t,n,r){const i=V2(e,t);return Lo(e)?function(o){let a,s;nf(e,o)?(a=o,s=null):(a=o.texture,s=o.sampler),e.uniform1i(r,n),e.activeTexture(pf+n),e.bindTexture(i,a),e.bindSampler(n,s)}:function(o){e.uniform1i(r,n),e.activeTexture(pf+n),e.bindTexture(i,o)}}function Tt(e,t,n,r,i){const o=V2(e,t),a=new Int32Array(i);for(let s=0;s<i;++s)a[s]=n+s;return Lo(e)?function(s){e.uniform1iv(r,a),s.forEach(function(u,l){e.activeTexture(pf+a[l]);let f,c;nf(e,u)?(f=u,c=null):(f=u.texture,c=u.sampler),e.bindSampler(n,c),e.bindTexture(o,f)})}:function(s){e.uniform1iv(r,a),s.forEach(function(u,l){e.activeTexture(pf+a[l]),e.bindTexture(o,u)})}}ae[mf]={Type:Float32Array,size:4,setter:qT,arraySetter:ZT},ae[k2]={Type:Float32Array,size:8,setter:WT,cols:2},ae[T2]={Type:Float32Array,size:12,setter:YT,cols:3},ae[I2]={Type:Float32Array,size:16,setter:QT,cols:4},ae[Ud]={Type:Int32Array,size:4,setter:j2,arraySetter:q2},ae[B2]={Type:Int32Array,size:8,setter:Z2,cols:2},ae[D2]={Type:Int32Array,size:12,setter:W2,cols:3},ae[F2]={Type:Int32Array,size:16,setter:Y2,cols:4},ae[Gd]={Type:Uint32Array,size:4,setter:XT,arraySetter:$T},ae[U2]={Type:Uint32Array,size:8,setter:KT,cols:2},ae[G2]={Type:Uint32Array,size:12,setter:JT,cols:3},ae[H2]={Type:Uint32Array,size:16,setter:eI,cols:4},ae[R2]={Type:Uint32Array,size:4,setter:j2,arraySetter:q2},ae[M2]={Type:Uint32Array,size:8,setter:Z2,cols:2},ae[P2]={Type:Uint32Array,size:12,setter:W2,cols:3},ae[L2]={Type:Uint32Array,size:16,setter:Y2,cols:4},ae[N2]={Type:Float32Array,size:32,setter:tI,rows:2,cols:2},ae[O2]={Type:Float32Array,size:48,setter:nI,rows:3,cols:3},ae[z2]={Type:Float32Array,size:64,setter:rI,rows:4,cols:4},ae[TT]={Type:Float32Array,size:32,setter:iI,rows:2,cols:3},ae[IT]={Type:Float32Array,size:32,setter:aI,rows:2,cols:4},ae[BT]={Type:Float32Array,size:48,setter:oI,rows:3,cols:2},ae[DT]={Type:Float32Array,size:48,setter:lI,rows:3,cols:4},ae[FT]={Type:Float32Array,size:64,setter:sI,rows:4,cols:2},ae[RT]={Type:Float32Array,size:64,setter:uI,rows:4,cols:3},ae[_T]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:bf},ae[ST]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:yf},ae[CT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:Hd},ae[kT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:bf},ae[MT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:wf},ae[PT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:wf},ae[LT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:yf},ae[NT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:bf},ae[OT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:Hd},ae[zT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:yf},ae[UT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:wf},ae[GT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:bf},ae[HT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:Hd},ae[VT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:yf},ae[jT]={Type:null,size:0,setter:kt,arraySetter:Tt,bindPoint:wf};function vf(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(gf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribPointer(t,n.numComponents||n.size,n.type||mf,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Gr(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(gf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||Ud,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function xf(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(gf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||Gd,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Vd(e,t,n){const r=n.size,i=n.count;return function(o){e.bindBuffer(gf,o.buffer);const a=o.size||o.numComponents||r,s=a/i,u=o.type||mf,f=ae[u].size*a,c=o.normalize||!1,h=o.offset||0,d=f/i;for(let p=0;p<i;++p)e.enableVertexAttribArray(t+p),e.vertexAttribPointer(t+p,s,u,c,f,h+d*p),o.divisor!==void 0&&e.vertexAttribDivisor(t+p,o.divisor)}}const nt={};nt[mf]={size:4,setter:vf},nt[k2]={size:8,setter:vf},nt[T2]={size:12,setter:vf},nt[I2]={size:16,setter:vf},nt[Ud]={size:4,setter:Gr},nt[B2]={size:8,setter:Gr},nt[D2]={size:12,setter:Gr},nt[F2]={size:16,setter:Gr},nt[Gd]={size:4,setter:xf},nt[U2]={size:8,setter:xf},nt[G2]={size:12,setter:xf},nt[H2]={size:16,setter:xf},nt[R2]={size:4,setter:Gr},nt[M2]={size:8,setter:Gr},nt[P2]={size:12,setter:Gr},nt[L2]={size:16,setter:Gr},nt[N2]={size:4,setter:Vd,count:2},nt[O2]={size:9,setter:Vd,count:3},nt[z2]={size:16,setter:Vd,count:4};function Q2(e){const t=e.name;return t.startsWith("gl_")||t.startsWith("webgl_")}const fI=/(\.|\[|]|\w+)/g,cI=e=>e>="0"&&e<="9";function X2(e,t,n,r){const i=e.split(fI).filter(s=>s!=="");let o=0,a="";for(;;){const s=i[o++];a+=s;const u=cI(s[0]),l=u?parseInt(s):s;if(u&&(a+=i[o++]),o===i.length){n[l]=t;break}else{const c=i[o++],h=c==="[",d=n[l]||(h?[]:{});n[l]=d,n=d,r[a]=r[a]||function(p){return function(b){J2(p,b)}}(d),a+=c}}}function hI(e,t){let n=0;function r(s,u,l){const f=u.name.endsWith("[0]"),c=u.type,h=ae[c];if(!h)throw new Error(`unknown type: 0x${c.toString(16)}`);let d;if(h.bindPoint){const p=n;n+=u.size,f?d=h.arraySetter(e,c,p,l,u.size):d=h.setter(e,c,p,l,u.size)}else h.arraySetter&&f?d=h.arraySetter(e,l):d=h.setter(e,l);return d.location=l,d}const i={},o={},a=e.getProgramParameter(t,C2);for(let s=0;s<a;++s){const u=e.getActiveUniform(t,s);if(Q2(u))continue;let l=u.name;l.endsWith("[0]")&&(l=l.substr(0,l.length-3));const f=e.getUniformLocation(t,u.name);if(f){const c=r(t,u,f);i[l]=c,X2(l,c,o,i)}}return i}function dI(e,t){const n={},r=e.getProgramParameter(t,yT);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 pI(e,t){const n=e.getProgramParameter(t,C2),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(f,c){r[c][l]=f})});const o={},a=e.getProgramParameter(t,wT);for(let s=0;s<a;++s){const u=e.getActiveUniformBlockName(t,s),l={index:e.getUniformBlockIndex(t,u),usedByVertexShader:e.getActiveUniformBlockParameter(t,s,vT),usedByFragmentShader:e.getActiveUniformBlockParameter(t,s,xT),size:e.getActiveUniformBlockParameter(t,s,AT),uniformIndices:e.getActiveUniformBlockParameter(t,s,ET)};l.used=l.usedByVertexShader||l.usedByFragmentShader,o[u]=l}return{blockSpecs:o,uniformData:r}}const $2=/\[\d+\]\.$/,gI=(e,t)=>((e+(t-1))/t|0)*t;function mI(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 f=0;f<r;++f)e[s++]=a[u++];s+=4-r}}}else return function(i){i.length?e.set(i):e[0]=i}}function bI(e,t,n,r){const i=n.blockSpecs,o=n.uniformData,a=i[r];if(!a)return pT("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(a.size),u=e.createBuffer(),l=a.index;e.bindBuffer(zd,u),e.uniformBlockBinding(t,a.index,l);let f=r+".";$2.test(f)&&(f=f.replace($2,"."));const c={},h={},d={};return a.uniformIndices.forEach(function(p){const b=o[p];let y=b.name;y.startsWith(f)&&(y=y.substr(f.length));const w=y.endsWith("[0]");w&&(y=y.substr(0,y.length-3));const _=ae[b.type],C=_.Type,E=w?gI(_.size,16)*b.size:_.size*b.size,T=new C(s,b.offset,E/C.BYTES_PER_ELEMENT);c[y]=T;const B=mI(T,w,_.rows,_.cols);h[y]=B,X2(y,B,d,h)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:u,uniforms:c,setters:h}}function jd(e,t,n){return bI(e,t.program,t.uniformBlockSpec,n)}function K2(e,t,n){const i=(t.uniformBlockSpec||t).blockSpecs[n.name];if(i){const o=i.index;return e.bindBufferRange(zd,o,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function qd(e,t,n){K2(e,t,n)&&e.bufferData(zd,n.array,gT)}function jo(e,t){const n=e.setters;for(const r in t){const i=n[r];if(i){const o=t[r];i(o)}}}function J2(e,t){for(const n in t){const r=e[n];typeof r=="function"?r(t[n]):J2(e[n],t[n])}}function Ui(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)Ui(n,o[s])}else for(const a in o){const s=n[a];s&&s(o[a])}}}function yI(e,t){const n={},r=e.getProgramParameter(t,bT);for(let i=0;i<r;++i){const o=e.getActiveAttrib(t,i);if(Q2(o))continue;const a=e.getAttribLocation(t,o.name),s=nt[o.type],u=s.setter(e,a,s);u.location=a,n[o.name]=u}return n}function wI(e,t){for(const n in t){const r=e[n];r&&r(t[n])}}function Gi(e,t,n){n.vertexArrayObject?e.bindVertexArray(n.vertexArrayObject):(wI(t.attribSetters||t,n.attribs),n.indices&&e.bindBuffer(mT,n.indices))}function vI(e,t){const n=hI(e,t),r=yI(e,t),i={program:t,uniformSetters:n,attribSetters:r};return Lo(e)&&(i.uniformBlockSpec=pI(e,t),i.transformFeedbackInfo=dI(e,t)),i}const xI=4,ey=5123;function Af(e,t,n,r,i,o){n=n===void 0?xI: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?ey:t.elementType,i,o):e.drawElements(n,u,s===void 0?ey:t.elementType,i):o!==void 0?e.drawArraysInstanced(n,i,u,o):e.drawArrays(n,i,u)}const AI=36160,Hi=36161,EI=3553,_I=5121,SI=6402,CI=6408,kI=33190,TI=36012,II=35056,BI=36013,DI=32854,FI=32855,RI=36194,ty=33189,ny=6401,ry=36168,Zd=34041,MI=36064,Ef=36096,iy=36128,Wd=33306,Yd=33071,Qd=9729,oy=[{format:CI,type:_I,min:Qd,wrap:Yd},{format:Zd}],An={};An[Zd]=Wd,An[ny]=iy,An[ry]=iy,An[SI]=Ef,An[ty]=Ef,An[kI]=Ef,An[TI]=Ef,An[II]=Wd,An[BI]=Wd;function PI(e,t){return An[e]||An[t]}const Hr={};Hr[DI]=!0,Hr[FI]=!0,Hr[RI]=!0,Hr[Zd]=!0,Hr[ty]=!0,Hr[ny]=!0,Hr[ry]=!0;function LI(e){return Hr[e]}function NI(e,t,n,r){const i=AI,o=e.createFramebuffer();e.bindFramebuffer(i,o),n=n||e.drawingBufferWidth,r=r||e.drawingBufferHeight,t=t||oy;let a=0;const s={framebuffer:o,attachments:[],width:n,height:r};return t.forEach(function(u){let l=u.attachment;const f=u.samples,c=u.format;let h=u.attachmentPoint||PI(c,u.internalFormat);if(h||(h=MI+a++),!l)if(f!==void 0||LI(c))l=e.createRenderbuffer(),e.bindRenderbuffer(Hi,l),f>1?e.renderbufferStorageMultisample(Hi,f,c,n,r):e.renderbufferStorage(Hi,c,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||Qd,d.mag=d.mag||d.minMag||Qd,d.wrapS=d.wrapS||d.wrap||Yd,d.wrapT=d.wrapT||d.wrap||Yd),l=Us(e,d)}if(Kb(e,l))e.framebufferRenderbuffer(i,h,Hi,l);else if(nf(e,l))u.layer!==void 0?e.framebufferTextureLayer(i,h,l,u.level||0,u.layer):e.framebufferTexture2D(i,h,u.target||EI,l,u.level||0);else throw new Error("unknown attachment type");s.attachments.push(l)}),s}function OI(e,t,n,r,i){r=r||e.drawingBufferWidth,i=i||e.drawingBufferHeight,t.width=r,t.height=i,n=n||oy,n.forEach(function(o,a){const s=t.attachments[a],u=o.format,l=o.samples;if(l!==void 0||Kb(e,s))e.bindRenderbuffer(Hi,s),l>1?e.renderbufferStorageMultisample(Hi,l,u,r,i):e.renderbufferStorage(Hi,u,r,i);else if(nf(e,s))dT(e,s,o,r,i);else throw new Error("unknown attachment type")})}function zI(e,t,n){const r=e.createVertexArray();return e.bindVertexArray(r),t.length||(t=[t]),t.forEach(function(i){Gi(e,i,n)}),e.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const UI=/^(.*?)_/;function GI(e,t){Td(e,0);const n=e.getExtension(t);if(n){const r={},i=UI.exec(t)[1],o="_"+i;for(const a in n){const s=n[a],u=typeof s=="function",l=u?i:o;let f=a;a.endsWith(l)&&(f=a.substring(0,a.length-l.length)),e[f]!==void 0?!u&&e[f]!==s&&$b(f,e[f],s,a):u?e[f]=function(c){return function(){return c.apply(n,arguments)}}(s):(e[f]=s,r[f]=s)}r.constructor={name:n.constructor.name},Td(r,0)}return n}const ay=["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 sy(e){for(let t=0;t<ay.length;++t)GI(e,ay[t])}function HI(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){sy(r);break}return r}function VI(e,t){return HI(e,t)}const jI=`uniform Mark{uniform float uMinWidth;uniform float uMinHeight;uniform float uMinOpacity;uniform float uCornerRadiusTopRight;uniform float uCornerRadiusBottomRight;uniform float uCornerRadiusTopLeft;uniform float uCornerRadiusBottomLeft;};out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out float vHalfStrokeWidth;out vec4 vCornerRadii;
128
165
  #if defined(ROUNDED_CORNERS) || defined(STROKED)
129
166
  out vec2 vPosInPixels;
130
167
  #endif
131
- out vec2 vHalfSizeInPixels;/***Clamps the minimumSize and returns an opacity that reflects the amount of clamping.*/float clampMinSize(inout float pos,float frac,float size,float minSize){if(minSize>0.0&&abs(size)<minSize){pos+=(frac-0.5)*(minSize*sign(size)-size);return abs(size)/minSize;}return 1.0;}void sort(inout float a,inout float b){if(a>b){float tmp=b;b=a;a=tmp;}}void main(void){vec2 normalizedMinSize=vec2(uMinWidth,uMinHeight)/uViewportSize;vec4 cornerRadii=vec4(uCornerRadiusTopRight,uCornerRadiusBottomRight,uCornerRadiusBottomLeft,uCornerRadiusTopLeft);float x=getScaled_x();float x2=getScaled_x2();float y=getScaled_y();float y2=getScaled_y2();sort(x,x2);sort(y,y2);float clampMargin=1.0;vec2 pos1=vec2(clamp(x,0.0-clampMargin,1.0+clampMargin),y);vec2 pos2=vec2(clamp(x2,0.0-clampMargin,1.0+clampMargin),y2);vec2 size=pos2-pos1;if(size.x<=0.0||size.y<=0.0){gl_Position=vec4(0.0,0.0,0.0,1.0);return;}vec2 pos=pos1+frac*size;size.y*=getSampleFacetHeight(pos);float opaFactor=uViewOpacity*max(uMinOpacity,clampMinSize(pos.x,frac.x,size.x,normalizedMinSize.x)*clampMinSize(pos.y,frac.y,size.y,normalizedMinSize.y));pos=applySampleFacet(pos);
168
+ out vec2 vHalfSizeInPixels;/***Clamps the minimumSize and returns an opacity that reflects the amount of clamping.*/float clampMinSize(inout float pos,float frac,float size,float minSize){if(minSize>0.0&&abs(size)<minSize){pos+=(frac-0.5)*(minSize*sign(size)-size);return abs(size)/minSize;}return 1.0;}void sort(inout float a,inout float b){if(a>b){float tmp=b;b=a;a=tmp;}}/***The vertex position wrt the rectangle specified by(x,x2,y,y2).*[0,0]=[x,y],[1,1]=[x2,y2].*The x or y component may contain fractional values if the rectangle*have been tessellated.*/vec2 getVertexPos(){int index=gl_VertexID % 6;return vec2(index==0||index==1||index==3 ? 0.0 : 1.0,index==0||index==1||index==2 ? 0.0 : 1.0);}void main(void){vec2 frac=getVertexPos();vec2 normalizedMinSize=vec2(uMinWidth,uMinHeight)/uViewportSize;vec4 cornerRadii=vec4(uCornerRadiusTopRight,uCornerRadiusBottomRight,uCornerRadiusBottomLeft,uCornerRadiusTopLeft);float x=getScaled_x();float x2=getScaled_x2();float y=getScaled_y();float y2=getScaled_y2();sort(x,x2);sort(y,y2);float clampMargin=1.0;vec2 pos1=vec2(clamp(x,0.0-clampMargin,1.0+clampMargin),y);vec2 pos2=vec2(clamp(x2,0.0-clampMargin,1.0+clampMargin),y2);vec2 size=pos2-pos1;if(size.x<=0.0||size.y<=0.0){gl_Position=vec4(0.0,0.0,0.0,1.0);return;}vec2 pos=pos1+frac*size;size.y*=getSampleFacetHeight(pos);float opaFactor=uViewOpacity*max(uMinOpacity,clampMinSize(pos.x,frac.x,size.x,normalizedMinSize.x)*clampMinSize(pos.y,frac.y,size.y,normalizedMinSize.y));pos=applySampleFacet(pos);
132
169
  #if defined(ROUNDED_CORNERS) || defined(STROKED)
133
170
  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);
134
171
  #endif
135
- gl_Position=unitToNdc(pos);float fillOpacity=getScaled_fillOpacity()*opaFactor;vFillColor=vec4(getScaled_fill()*fillOpacity,fillOpacity);setupPicking();}`,FT=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
172
+ gl_Position=unitToNdc(pos);float fillOpacity=getScaled_fillOpacity()*opaFactor;vFillColor=vec4(getScaled_fill()*fillOpacity,fillOpacity);setupPicking();}`,qI=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
136
173
  in vec2 vPosInPixels;
137
174
  #endif
138
175
  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){
@@ -146,20 +183,20 @@ fragColor=distanceToColor(d,vFillColor,vStrokeColor,vHalfStrokeWidth);if(fragCol
146
183
  #else
147
184
  fragColor=vFillColor;
148
185
  #endif
149
- if(uPickingEnabled){fragColor=vPickingColor;}}`,Yd="attr_",oy="uDomain_",MT="range_",ay="scale_",sy="getScaled_",Qd="uRangeTexture_",ly=3402823466e29;function PT(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 LT(e,t){let n;if($f(e))n=Gi(Zb(e)(t));else if(Pe(t))if(Mi(e))n=OT(t);else throw new Error(`String values are not supported on the "${e}" channel: ${t}`);else if(La(t))n=Gi(t?1:0);else if(t===null)if(Mi(e))n=Gi([0,0,0]);else throw new Error(`null value is not supported on the "${e}" chanel.`);else n=Gi(t);return`
186
+ if(uPickingEnabled){fragColor=vPickingColor;}}`,Xd="attr_",ly="uDomain_",ZI="range_",uy="scale_",fy="getScaled_",$d="uRangeTexture_",cy=3402823466e29;function WI(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 YI(e,t){let n;if(ef(e))n=Vi(Qb(e)(t));else if(Pe(t))if(Li(e))n=XI(t);else throw new Error(`String values are not supported on the "${e}" channel: ${t}`);else if(Ga(t))n=Vi(t?1:0);else if(t===null)if(Li(e))n=Vi([0,0,0]);else throw new Error(`null value is not supported on the "${e}" chanel.`);else n=Vi(t);return`
150
187
  #define ${e}_DEFINED
151
- ${n.type} ${sy}${e}() {
188
+ ${n.type} ${fy}${e}() {
152
189
  // Constant value
153
190
  return ${n};
154
- }`}function NT(e,t,n){if(vn(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);if(!t)throw new Error("Scale is undefined");const r=Fi(e),i=Yd+e,o=oy+r,a=MT+r,s=wu(t.type),f=s?"vec2":"float",l=t.domain?t.domain().length:void 0;let u;const c=[];c.push(""),c.push("/".repeat(70)),c.push(`// Channel: ${e}`),c.push(""),c.push(`#define ${e}_DEFINED`);const{transform:h}=PT(t.type),d=(I,...F)=>zT.apply(null,[I,"value",...F]);let p;switch(h){case"linear":p=d("scaleLinear","domain",a);break;case"log":p=d("scaleLog","domain",a,t.base());break;case"symlog":p=d("scaleSymlog","domain",a,t.constant());break;case"pow":case"sqrt":p=d("scalePow","domain",a,t.exponent());break;case"index":case"locus":p=d("scaleBandHp","domain",a,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"point":case"band":p=d("scaleBand","domain",a,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"ordinal":case"null":case"identity":p=d("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${t.type}! ${e}: ${JSON.stringify(n)}`)}const b=Yf(t.type)||xt(t.type)&&Mi(e)?[0,1]:t.range?t.range():void 0;if(b&&e==r&&b.length&&b.every(kt)){const I=fy(b);c.push(`const ${I.type} ${a} = ${I};`)}const y=Mi(e)?"vec3":"float";let w;if(Mi(e)){const I=Qd+r;if(e==r&&c.push(`uniform sampler2D ${I};`),xt(t.type))w=`getInterpolatedColor(${I}, transformed)`;else if(Mr(t.type)||Fo(t.type))w=`getDiscreteColor(${I}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(t.type==="ordinal"||Fo(t.type)){const I=Qd+r;e==r&&c.push(`uniform sampler2D ${I};`),w=`getDiscreteColor(${I}, int(transformed)).r`}ks(n)?c.push(`uniform highp ${f} ${i};`):c.push(`in highp ${f} ${i};`);const _=[],C=xt(t.type)&&l>2,S=Fo(t.type)||C;if(_.push("int slot = 0;"),S){const I=o;_.push(C?`while (slot < ${I}.length() - 2 && value >= ${I}[slot + 1]) { slot++; }`:`while (slot < ${I}.length() && value >= ${I}[slot]) { slot++; }`)}const T=xt(t.type)||Fo(t.type)||["band","point"].includes(t.type);if(p){const I=o;T&&(s?_.push(`vec3 domain = ${I};`):_.push(`vec2 domain = vec2(${I}[slot], ${I}[slot + 1]);`)),_.push(`float transformed = ${p};`),C&&_.push(`transformed = (float(slot) + transformed) / (float(${I}.length() - 1));`)}else _.push("float transformed = float(slot);");"clamp"in t&&t.clamp()&&_.push(`transformed = clampToRange(transformed, ${fy(b)});`),_.push(`return ${w??"transformed"};`),c.push(`
155
- ${y} ${ay}${e}(${f} value) {
156
- ${_.map(I=>` ${I}
191
+ }`}function QI(e,t,n,r=[e]){if(vn(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);if(!t)throw new Error("Scale is undefined");const i=Pi(e),o=Xd+my(r),a=ly+i,s=ZI+i,u=_f(t.type),l=u?"vec2":"float",f=t.domain?t.domain().length:void 0;let c;const h=[];h.push(""),h.push("/".repeat(70)),h.push(`// Channel: ${e}`),h.push(""),h.push(`#define ${e}_DEFINED`);const{transform:d}=WI(t.type),p=(M,...j)=>$I.apply(null,[M,"value",...j]);let b;switch(d){case"linear":b=p("scaleLinear","domain",s);break;case"log":b=p("scaleLog","domain",s,t.base());break;case"symlog":b=p("scaleSymlog","domain",s,t.constant());break;case"pow":case"sqrt":b=p("scalePow","domain",s,t.exponent());break;case"index":case"locus":b=p("scaleBandHp","domain",s,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"point":case"band":b=p("scaleBand","domain",s,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"ordinal":case"null":case"identity":b=p("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${t.type}! ${e}: ${JSON.stringify(n)}`)}const y=$u(t.type)||bt(t.type)&&Li(e)?[0,1]:t.range?t.range():void 0;if(y&&e==i&&y.length&&y.every(Ct)){const M=hy(y);h.push(`const ${M.type} ${s} = ${M};`)}const w=Li(e)?"vec3":"float";let _;if(Li(e)){const M=$d+i;if(e==i&&h.push(`uniform sampler2D ${M};`),bt(t.type))_=`getInterpolatedColor(${M}, transformed)`;else if(rr(t.type)||Mo(t.type))_=`getDiscreteColor(${M}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(t.type==="ordinal"||Mo(t.type)){const M=$d+i;e==i&&h.push(`uniform sampler2D ${M};`),_=`getDiscreteColor(${M}, int(transformed)).r`}const C=Fs(n)?`uniform highp ${l} ${o};`:`in highp ${l} ${o};`,E=[],T=bt(t.type)&&f>2,B=Mo(t.type)||T;if(E.push("int slot = 0;"),B){const M=a;E.push(T?`while (slot < ${M}.length() - 2 && value >= ${M}[slot + 1]) { slot++; }`:`while (slot < ${M}.length() && value >= ${M}[slot]) { slot++; }`)}const I=bt(t.type)||Mo(t.type)||["band","point"].includes(t.type);if(b){const M=a;I&&(u?E.push(`vec3 domain = ${M};`):E.push(`vec2 domain = vec2(${M}[slot], ${M}[slot + 1]);`)),E.push(`float transformed = ${b};`),T&&E.push(`transformed = (float(slot) + transformed) / (float(${M}.length() - 1));`)}else E.push("float transformed = float(slot);");"clamp"in t&&t.clamp()&&E.push(`transformed = clampToRange(transformed, ${hy(y)});`),E.push(`return ${_??"transformed"};`),h.push(`
192
+ ${w} ${uy}${e}(${l} value) {
193
+ ${E.map(M=>` ${M}
157
194
  `).join("")}
158
- }`),c.push(`
159
- ${y} ${sy}${e}() {
160
- return ${ay}${e}(${i});
161
- }`);const B=c.join(`
162
- `);if(T&&e==r){const I=xt(t.type)||Fo(t.type)?l:2;u=s?`highp vec3 ${o};`:`mediump float ${o}[${I}];`}return{glsl:B,domainUniform:u}}function Xd(e){if(!kt(e))throw new Error(`Not a number: ${e}`);if(e==1/0)return""+ly;if(e==-1/0)return""+-ly;{let t=`${e}`;return/^(-)?\d+$/.test(t)&&(t+=".0"),t}}function Gi(e){typeof e=="number"&&(e=[e]);const t=e.length;if(t<1||t>4)throw new Error("Invalid number of components: "+t);let n,r;return t>1?(n=`vec${t}`,r=`${n}(${e.map(Xd).join(", ")})`):(n="float",r=Xd(e[0])),Object.assign(r,{type:n,numComponents:t})}function OT(e){const t=Br(e).rgb();return Gi([t.r,t.g,t.b].map(n=>n/255))}function fy(e){return Gi([e[0],ss(e)])}function zT(e,...t){const n=[];for(const r of t)kt(r)?n.push(Xd(r)):Ft(r)?n.push(Gi(r)):n.push(r);return`${e}(${n.join(", ")})`}function wu(e){return e=="index"||e=="locus"}const uy=2**11,UT=uy-1;function cy(e,t=[]){const n=e&UT,r=e-n;return t[0]=r,t[1]=n,t}function GT(e){const t=e%uy;return[e-t,t]}function HT(e){return[...GT(e[0]),e[1]-e[0]]}class VT{constructor(t){this.size=t,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}addConverter(t,n){const r=this.createUpdater(Yd+t,n.numComponents||1,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?o=>r(i(o)):o=>r(i(o)))}createUpdater(t,n,r){if(!kt(this.size))throw new Error("The number of vertices must be defined!");let i,o,a=0;const s=new Float32Array(this.size*n);if(this.arrays[t]={data:s,numComponents:n},n==1){let f=0;const l=u=>{f=+u};i=()=>{s[a++]=f},o=l}else{let f=r??[0];const l=r?u=>{}:u=>{f=u};switch(n){case 1:break;case 2:i=()=>{s[a++]=f[0],s[a++]=f[1]},o=l;break;case 3:i=()=>{s[a++]=f[0],s[a++]=f[1],s[a++]=f[2]},o=l;break;case 4:i=()=>{s[a++]=f[0],s[a++]=f[1],s[a++]=f[2],s[a++]=f[3]},o=l;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(i),o}_unrollPushAll(){let t="",n="";for(let i=0;i<this.pushers.length;i++)t+=`const p${i} = that.pushers[${i}];
195
+ }`),h.push(`
196
+ ${w} ${fy}${e}() {
197
+ return ${uy}${e}(${o});
198
+ }`);const R=h.join(`
199
+ `);if(I&&e==i){const M=bt(t.type)||Mo(t.type)?f:2;c=u?`highp vec3 ${a};`:`mediump float ${a}[${M}];`}return{attributeGlsl:C,glsl:R,domainUniform:c}}function Kd(e){if(!Ct(e))throw new Error(`Not a number: ${e}`);if(e==1/0)return""+cy;if(e==-1/0)return""+-cy;{let t=`${e}`;return/^(-)?\d+$/.test(t)&&(t+=".0"),t}}function Vi(e){typeof e=="number"&&(e=[e]);const t=e.length;if(t<1||t>4)throw new Error("Invalid number of components: "+t);let n,r;return t>1?(n=`vec${t}`,r=`${n}(${e.map(Kd).join(", ")})`):(n="float",r=Kd(e[0])),Object.assign(r,{type:n,numComponents:t})}function XI(e){const t=Rr(e).rgb();return Vi([t.r,t.g,t.b].map(n=>n/255))}function hy(e){return Vi([e[0],ds(e)])}function $I(e,...t){const n=[];for(const r of t)Ct(r)?n.push(Kd(r)):Ft(r)?n.push(Vi(r)):n.push(r);return`${e}(${n.join(", ")})`}function _f(e){return e=="index"||e=="locus"}const dy=2**11,KI=dy-1;function py(e,t=[]){const n=e&KI,r=e-n;return t[0]=r,t[1]=n,t}function JI(e){const t=e%dy;return[e-t,t]}function eB(e){return[...JI(e[0]),e[1]-e[0]]}function gy(e){const t=new _r([],JSON.stringify);for(const[n,r]of Object.entries(e)){const i=r.channelDef;if(Mi(i)){const a=[i.field,r.scale?bt(r.scale.type)??!1:!1];t.set(a,[...t.get(a)??[],n])}}return t}function my(e){return Lt(e).join("_")}class tB{constructor(t){this.size=t,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}addConverter(t,n){const r=this.createUpdater(Xd+t,n.numComponents||1,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?o=>r(i(o)):o=>r(i(o)))}createUpdater(t,n,r){if(!Ct(this.size))throw new Error("The number of vertices must be defined!");let i,o,a=0;const s=new Float32Array(this.size*n);if(this.arrays[t]={data:s,numComponents:n},n==1){let u=0;const l=f=>{u=+f};i=()=>{s[a++]=u},o=l}else{let u=r??[0];const l=r?f=>{}:f=>{u=f};switch(n){case 1:break;case 2:i=()=>{s[a++]=u[0],s[a++]=u[1]},o=l;break;case 3:i=()=>{s[a++]=u[0],s[a++]=u[1],s[a++]=u[2]},o=l;break;case 4:i=()=>{s[a++]=u[0],s[a++]=u[1],s[a++]=u[2],s[a++]=u[3]},o=l;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(i),o}_unrollPushAll(){let t="",n="";for(let i=0;i<this.pushers.length;i++)t+=`const p${i} = that.pushers[${i}];
163
200
  `,n+=`p${i}();
164
201
  `;const r=new Function("that",`${t}
165
202
 
@@ -167,8 +204,8 @@ ${y} ${sy}${e}() {
167
204
  ${n}
168
205
  that.vertexCount++;
169
206
  };
170
- `);this.pushAll=r(this)}pushAll(){this.size>1e5?this._unrollPushAll():this.pushAll=()=>{for(let n=0;n<this.pushers.length;n++)this.pushers[n]();this.vertexCount++},this.pushAll()}updateFromDatum(t){for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](t)}pushFromDatum(t){this.updateFromDatum(t),this.pushAll()}}const jo=5,$d=127;function Kd(e){const t=[];for(let p=0;p<=$d;p++)t.push(void 0);const n=new Map;for(const p of e.chars)p.id<=$d?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<=$d?t[p]:n.get(p))||t[63]}function o(p){return i(p.charCodeAt(0))}const a=e.common.base,s=o("x"),f=o("X"),l=o("q"),u=s.height-jo*2,c=f.height-jo*2,h=l.height-s.height+l.yoffset-s.yoffset;function d(p,b=1){let y=0;for(let w=0;w<p.length;w++)y+=i(p.charCodeAt(w)).xadvance;return y/a*b}return{measureWidth:d,getCharByCode:i,getChar:o,xHeight:u,capHeight:c,descent:h,common:e.common}}const hy=2**31-1,jT=-(2**31);function qT(e,t,n,r=n){const i=new Int32Array(e);i.fill(hy);let o=jT,a=!1;const s=new Int32Array(e),f=t[0],u=(t[1]-t[0])/e,c=(y,w)=>{const _=(y-f)/u,C=Math.floor(_);return gs(w&&C==_?C-1:C,0,e-1)};function h(y,w,_){w>o?o=w:a||(a=!0,console.debug("Items are not ordered properly. Disabling binned index."));const C=n(y),S=c(C,!1);i[S]>w&&(i[S]=w),s[S]<_&&(s[S]=_)}function d(y,w,_){w>o?o=w:a||(a=!0,console.debug("Items are not ordered properly. Disabling binned index."));const C=n(y),S=r(y),T=c(C,!1),B=c(S,!0);for(let I=T;I<=B;I++)i[I]>w&&(i[I]=w),s[I]<_&&(s[I]=_)}const p=(y,w,_=[0,0])=>{const C=c(y,!1),S=c(w,!0),T=i[C],B=Math.max(s[S],T);return _[0]=T,_[1]=B,_},b=()=>{for(let w=1;w<s.length;w++)s[w]<s[w-1]&&(s[w]=s[w-1]);let y=!0;for(let w=i.length-1;w>0;w--)y&&i[w]==hy?(i[w]=s[w],y=!1):i[w-1]>i[w]&&(i[w-1]=i[w]);return p};if(h.getIndex=b,d.getIndex=b,!a)return n==r?h:d}class Ns{constructor({encoders:t,numVertices:n=void 0,attributes:r=[]}){this.encoders=t,this.variableEncoders=Object.fromEntries(Object.entries(t).filter(([i,o])=>r.includes(i)&&o&&o.scale&&!o.constant)),this.allocatedVertices=n,this.variableBuilder=new VT(n);for(const[i,o]of Object.entries(this.variableEncoders)){const a=o.accessor,s=[0,0],f=wu(o.scale.type),l=o.indexer,u=l?c=>l(a(c)):f?c=>cy(a(c),s):a;this.variableBuilder.addConverter(i,{f:u,numComponents:f?2:1,arrayReference:f?s:void 0})}this.lastOffset=0,this.rangeMap=new gi([],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){const i=()=>{this.addToXIndex=f=>{},this.xIndexer=void 0};if(!t.length||r-n<0){i();return}const o=f=>{var l;return f&&xt((l=f.scale)==null?void 0:l.type)&&f},a=o(this.variableEncoders.x),s=o(this.variableEncoders.x2);if(a){const f=a.accessor,l=s?s.accessor:f,u=[f(t[n]),l(t[r-1])];if(u[1]>u[0]){this.xIndexer=qT(50,u,f,l);let c=this.variableBuilder.vertexCount;this.addToXIndex=h=>{let d=this.variableBuilder.vertexCount;this.xIndexer(h,c,d),c=d}}else i()}else i()}addToXIndex(t){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class ZT extends Ns{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.updateFrac=this.variableBuilder.createUpdater("frac",2)}addBatch(t,n,r=0,i=n.length){if(i<=r)return;const o=this.encoders,[a,s]=this.visibleRange,f=h=>h.accessor||(d=>0),l=f(o.x),u=f(o.x2);this.prepareXIndexer(n,r,i);const c=[0,0];this.updateFrac(c);for(let h=r;h<i;h++){const d=n[h];let p=l(d),b=u(d);if(p>b&&([p,b]=[b,p]),b<a||p>s)continue;p<a&&(p=a),b>s&&(b=s),this.variableBuilder.updateFromDatum(d),c[0]=0,c[1]=0;const y=1;this.variableBuilder.pushAll();for(let w=0;w<=y;w++)c[0]=w/y,c[1]=0,this.variableBuilder.pushAll(),c[1]=1,this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(d)}this.registerBatch(t)}}class WT extends Ns{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)}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 f=0;f<=s;f++)this.updatePos(f/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(a)}this.registerBatch(t)}}class YT extends Ns{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r})}}class QT extends Ns{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r})}toArrays(){const t=this.variableBuilder.arrays;for(let n of Object.values(t))n.divisor=1;return super.toArrays()}}class XT extends Ns{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=!vn(s)&&"format"in s&&s.format?pt(s.format):f=>f,this.updateVertexCoord=this.variableBuilder.createUpdater("vertexCoord",2),this.updateTextureCoord=this.variableBuilder.createUpdater("textureCoord",2),this.updateWidth=this.variableBuilder.createUpdater("width",1)}addBatch(t,n,r=0,i=n.length){const o=this.properties.align||"left",a=this.properties.logoLetters??!1,s=this.metadata.common.base,f=this.metadata.common.scaleH;let l=-jo;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 u=this.encoders.text.accessor||this.encoders.text,c=[0,0];this.updateVertexCoord(c);const h=[0,0];this.updateTextureCoord(h),this.prepareXIndexer(n,r,i);for(let d=r;d<i;d++){const p=n[d],b=this.numberFormat(u(p)),y=Pe(b)?b:b===null?"":""+b;if(y.length==0)continue;this.variableBuilder.updateFromDatum(p);const w=a?y.length:this.metrics.measureWidth(y);this.updateWidth(w);let _=o=="right"?-w:o=="center"?-w/2:0;if(!a){const B=this.metrics.getCharByCode(y.charCodeAt(0));_-=(B.width-B.xadvance)/s/2}let C=-.5,S=1,T=1;for(let B=0;B<y.length;B++){const I=this.metrics.getCharByCode(y.charCodeAt(B)),F=a?1:I.xadvance/s;if(I.id==32){_+=F;continue}a?(T=(I.width+jo*2)/I.width,_=-T/2,S=(I.height+jo*2)/I.height,C=-.5-jo/I.height):(S=I.height/s,C=-(I.height+I.yoffset+l)/s,T=I.width/s);const P=I.x,j=I.y;c[0]=_,c[1]=C+S,h[0]=P/f,h[1]=j/f,this.variableBuilder.pushAll(),c[0]=_+T,c[1]=C+S,h[0]=(P+I.width)/f,h[1]=j/f,this.variableBuilder.pushAll(),c[0]=_,c[1]=C,h[0]=P/f,h[1]=(j+I.height)/f,this.variableBuilder.pushAll(),c[0]=_+T,c[1]=C+S,h[0]=(P+I.width)/f,h[1]=j/f,this.variableBuilder.pushAll(),c[0]=_,c[1]=C,h[0]=P/f,h[1]=(j+I.height)/f,this.variableBuilder.pushAll(),c[0]=_+T,c[1]=C,h[0]=(P+I.width)/f,h[1]=(j+I.height)/f,this.variableBuilder.pushAll(),_+=F}this.addToXIndex(p)}this.registerBatch(t)}}const dy=`#define PI 3.141593
171
- 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);}}`,$T="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 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(float 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+(value-domainExtent[0])*step+bandwidth*band;}float scaleBandHp(vec2 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);float inf=1.0/uZero;float hi=max(value[0]-domainStart[0],-inf);float lo=max(value[1]-domainStart[1],-inf);return dot(vec4(start,hi,lo,bandwidth),vec4(1.0,step,step,band));}",KT=`/***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;
207
+ `);this.pushAll=r(this)}pushAll(){this.size>1e5?this._unrollPushAll():this.pushAll=()=>{for(let n=0;n<this.pushers.length;n++)this.pushers[n]();this.vertexCount++},this.pushAll()}updateFromDatum(t){for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](t)}pushFromDatum(t){this.updateFromDatum(t),this.pushAll()}}const qo=5,Jd=127;function e0(e){const t=[];for(let p=0;p<=Jd;p++)t.push(void 0);const n=new Map;for(const p of e.chars)p.id<=Jd?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<=Jd?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"),f=s.height-qo*2,c=u.height-qo*2,h=l.height-s.height+l.yoffset-s.yoffset;function d(p,b=1){let y=0;for(let w=0;w<p.length;w++)y+=i(p.charCodeAt(w)).xadvance;return y/a*b}return{measureWidth:d,getCharByCode:i,getChar:o,xHeight:f,capHeight:c,descent:h,common:e.common}}const by=2**31-1,nB=-(2**31);function rB(e,t,n,r=n){const i=new Array(e);i.fill(by);let o=nB,a=-1/0,s=!1;const u=new Array(e);u.fill(0);const l=t[0],c=(t[1]-t[0])/e,h=(w,_)=>{const C=(w-l)/c,E=Math.floor(C);return xs(_&&E==C?E-1:E,0,e-1)};function d(w,_,C){if(s)return;if(_>o)o=_;else{s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}const E=n(w);if(E<a){s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}a=E;const T=h(E,!1);i[T]>_&&(i[T]=_),u[T]<C&&(u[T]=C)}function p(w,_,C){if(s)return;if(_>o)o=_;else{s=!0,console.debug("Items (vertices) are not ordered properly. Disabling binned index.");return}const E=n(w),T=r(w);if(E<a){s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}else if(T<E){s=!0,console.debug("End index is less than start index. Disabling binned index. Datum: ",w);return}a=E;const B=h(E,!1),I=h(T,!0);for(let R=B;R<=I;R++)i[R]>_&&(i[R]=_),u[R]<C&&(u[R]=C)}const b=(w,_,C=[0,0])=>{const E=h(w,!1),T=h(_,!0),B=i[E],I=Math.max(u[T],B);return C[0]=B,C[1]=I,C},y=()=>{if(s)return;for(let _=1;_<u.length;_++)u[_]<u[_-1]&&(u[_]=u[_-1]);let w=!0;for(let _=i.length-1;_>0;_--)w&&i[_]==by?(i[_]=u[_],w=!1):i[_-1]>i[_]&&(i[_-1]=i[_]);return b};return d.getIndex=y,p.getIndex=y,n==r?d:p}class Gs{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.scale&&!a.constant));const i=[...gy(t).entries()].filter(([o,a])=>o[1]&&a.length>1).map(([o,a])=>a);this.allocatedVertices=n,this.variableBuilder=new tB(n);for(const[o,a]of Object.entries(this.variableEncoders)){const s=i.find(p=>p.find(b=>b==o));if(s&&o!=s[0])continue;const u=a.accessor,l=[0,0],f=_f(a.scale.type),c=a.indexer,h=c?p=>c(u(p)):f?p=>py(u(p),l):u,d=s?my(s):o;this.variableBuilder.addConverter(d,{f:h,numComponents:f?2:1,arrayReference:f?l:void 0})}this.lastOffset=0,this.rangeMap=new _r([],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){const i=()=>{this.addToXIndex=u=>{},this.xIndexer=void 0};if(!t.length||r-n<0){i();return}const o=u=>{var l;return u&&bt((l=u.scale)==null?void 0:l.type)&&u},a=o(this.variableEncoders.x),s=o(this.variableEncoders.x2);if(a){const u=a.accessor,l=s?s.accessor:u,f=[u(t[n]),l(t[r-1])];if(f[1]>f[0]){this.xIndexer=rB(50,f,u,l);let c=this.variableBuilder.vertexCount;this.addToXIndex=h=>{let d=this.variableBuilder.vertexCount;this.xIndexer(h,c,d),c=d}}else i()}else i()}addToXIndex(t){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class iB extends Gs{constructor({encoders:t,attributes:n,numItems:r}){super({encoders:t,attributes:n,numVertices:r*6})}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.variableBuilder.pushAll(),this.variableBuilder.pushAll(),this.variableBuilder.pushAll(),this.variableBuilder.pushAll(),this.variableBuilder.pushAll(),this.variableBuilder.pushAll(),this.addToXIndex(a)}this.registerBatch(t)}}}class oB extends Gs{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)}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 aB extends Gs{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r})}}class sB extends Gs{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r})}toArrays(){const t=this.variableBuilder.arrays;for(let n of Object.values(t))n.divisor=1;return super.toArrays()}}class lB extends Gs{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=!vn(s)&&"format"in s&&s.format?gt(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)}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=-qo;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 f=this.encoders.text.accessor||this.encoders.text,c=[0,0];this.updateVertexCoord(c);const h=[0,0];this.updateTextureCoord(h),this.prepareXIndexer(n,r,i);for(let d=r;d<i;d++){const p=n[d],b=this.numberFormat(f(p)),y=Pe(b)?b:b===null?"":""+b;if(y.length==0)continue;this.variableBuilder.updateFromDatum(p);const w=a?y.length:this.metrics.measureWidth(y);this.updateWidth(w);let _=o=="right"?-w:o=="center"?-w/2:0;if(!a){const B=this.metrics.getCharByCode(y.charCodeAt(0));_-=(B.width-B.xadvance)/s/2}let C=-.5,E=1,T=1;for(let B=0;B<y.length;B++){const I=this.metrics.getCharByCode(y.charCodeAt(B)),R=a?1:I.xadvance/s;if(I.id==32){_+=R;continue}a?(T=(I.width+qo*2)/I.width,_=-T/2,E=(I.height+qo*2)/I.height,C=-.5-qo/I.height):(E=I.height/s,C=-(I.height+I.yoffset+l)/s,T=I.width/s);const M=I.x,j=I.y;c[0]=_,c[1]=C+E,h[0]=M/u,h[1]=j/u,this.variableBuilder.pushAll(),c[0]=_+T,c[1]=C+E,h[0]=(M+I.width)/u,h[1]=j/u,this.variableBuilder.pushAll(),c[0]=_,c[1]=C,h[0]=M/u,h[1]=(j+I.height)/u,this.variableBuilder.pushAll(),c[0]=_+T,c[1]=C+E,h[0]=(M+I.width)/u,h[1]=j/u,this.variableBuilder.pushAll(),c[0]=_,c[1]=C,h[0]=M/u,h[1]=(j+I.height)/u,this.variableBuilder.pushAll(),c[0]=_+T,c[1]=C,h[0]=(M+I.width)/u,h[1]=(j+I.height)/u,this.variableBuilder.pushAll(),_+=R}this.addToXIndex(p)}this.registerBatch(t)}}const yy=`#define PI 3.141593
208
+ 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);}}`,uB="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 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(float 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+(value-domainExtent[0])*step+bandwidth*band;}float scaleBandHp(vec2 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);float inf=1.0/uZero;float hi=max(value[0]-domainStart[0],-inf);float lo=max(value[1]-domainStart[1],-inf);return dot(vec4(start,hi,lo,bandwidth),vec4(1.0,step,step,band));}",fB=`/***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;
172
209
  #if !defined(SAMPLE_FACET_UNIFORM) && !defined(SAMPLE_FACET_TEXTURE)
173
210
  SampleFacetPosition getSampleFacetPos(){return SampleFacetPosition(0.0,1.0,0.0,1.0);}
174
211
  #elif defined(SAMPLE_FACET_UNIFORM)
@@ -176,36 +213,37 @@ SampleFacetPosition getSampleFacetPos(){return SampleFacetPosition(0.0,1.0,0.0,1
176
213
  #elif defined(SAMPLE_FACET_TEXTURE)
177
214
  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);}
178
215
  #endif
179
- 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;}}`,JT=`/**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){
216
+ 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;}}`,cB=`/**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){
180
217
  #ifdef uniqueId_DEFINED
181
218
  int id=int(getScaled_uniqueId());vPickingColor=vec4(ivec4(id>>0,id>>8,id>>16,0xFF)&0xFF)/float(0xFF);
182
219
  #else
183
220
  vPickingColor=vec4(1.0);
184
221
  #endif
185
- return true;}return false;}`,eB="in highp vec4 vPickingColor;",vu=Symbol("cacheMap");function qo(e,t,n){let r=Os(e).get(t);return r===void 0&&(r=n(t),Os(e).set(t,r)),r}function py(e,t){Os(e).delete(t)}function xu(e,t){const n=Os(e);for(const r of n.keys())r.startsWith(t)&&n.delete(r);Os(e).delete(t)}function gy(e){e[vu]=new Map}function Os(e){return e[vu]||gy(e),e[vu]}function tB(e,t,n,r){const i=Pe(e)?e:e.name,o=!Pe(e)&&e.extent||[0,1];if(n===void 0&&!Pe(e)&&(n=e.count),i){const a=dd(i);if(Pt(a)){const s=my(a,{extent:o,count:n});return Au(t,{minMag:t.LINEAR,format:t.RGB,height:1,wrap:t.CLAMP_TO_EDGE},s,r)}else{if(Ft(a))return Jd(a,t);throw new Error("Unknown scheme: "+i)}}}function nB(e,t="rgb",n,r){const i=Qf(e,Pe(t)?t:t.type,Pe(t)?void 0:t.gamma),o=my(i);return Au(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},o,r)}function rB(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 Au(t,{minMag:t.NEAREST,format:t.RED,internalFormat:t.R32F,height:1},o,r)}function Jd(e,t,n,r){const i=by(e,n);return Au(t,{minMag:t.NEAREST,format:t.RGB,height:1},i,r)}function my(e,{extent:t=[0,1],reverse:n=!1,count:r=256}={}){const i=t[0],o=ss(t)-i,a=za(r).map(s=>s/(r-1)).map(s=>i+s/o).map(e);return n&&a.reverse(),by(a)}function by(e,t){const n=Math.max(e.length,t||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const o=Br(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 iB{constructor(t,n,r){this._container=t,this._sizeSource=n,this._shaderCache=new Map,this._listeners=[],this.rangeTextures=new WeakMap;const i=document.createElement("canvas");t.appendChild(i);const o=DT(i,{antialias:!0,depth:!1,premultipliedAlpha:!0});if(!o)throw new Error("Unable to initialize WebGL. Your browser or machine may not support it.");if(!Po(o))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");if(iy(o),o.blendFunc(o.ONE,o.ONE_MINUS_SRC_ALPHA),this.canvas=i,this.gl=o,this._pickingAttachmentOptions=[{format:o.RGBA,type:o.UNSIGNED_BYTE,minMag:o.LINEAR,wrap:o.CLAMP_TO_EDGE}],this._pickingBufferInfo=ST(o,this._pickingAttachmentOptions),o.bindFramebuffer(o.FRAMEBUFFER,null),this.adjustGl(),this._resizeObserver=new ResizeObserver(a=>{this.invalidateSize(),this._emit("resize")}),this._resizeObserver.observe(this._container),this._updateDpr(),this._clearColor=[0,0,0,0],r){const a=Br(r).rgb();this._clearColor=[a.r/255,a.g/255,a.b/255,a.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;";Ft(n)&&(n=n.join(`
222
+ return true;}return false;}`,hB="in highp vec4 vPickingColor;",Sf=Symbol("cacheMap");function Zo(e,t,n){let r=Hs(e).get(t);return r===void 0&&(r=n(t),Hs(e).set(t,r)),r}function wy(e,t){Hs(e).delete(t)}function Cf(e,t){const n=Hs(e);for(const r of n.keys())r.startsWith(t)&&n.delete(r);Hs(e).delete(t)}function vy(e){e[Sf]=new Map}function Hs(e){return e[Sf]||vy(e),e[Sf]}function dB(e,t,n,r){const i=Pe(e)?e:e.name,o=!Pe(e)&&e.extent||[0,1];if(n===void 0&&!Pe(e)&&(n=e.count),i){const a=gd(i);if(Mt(a)){const s=xy(a,{extent:o,count:n});return kf(t,{minMag:t.LINEAR,format:t.RGB,height:1,wrap:t.CLAMP_TO_EDGE},s,r)}else{if(Ft(a))return t0(a,t);throw new Error("Unknown scheme: "+i)}}}function pB(e,t="rgb",n,r){const i=Ku(e,Pe(t)?t:t.type,Pe(t)?void 0:t.gamma),o=xy(i);return kf(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},o,r)}function gB(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 kf(t,{minMag:t.NEAREST,format:t.RED,internalFormat:t.R32F,height:1},o,r)}function t0(e,t,n,r){const i=Ay(e,n);return kf(t,{minMag:t.NEAREST,format:t.RGB,height:1},i,r)}function xy(e,{extent:t=[0,1],reverse:n=!1,count:r=256}={}){const i=t[0],o=ds(t)-i,a=ja(r).map(s=>s/(r-1)).map(s=>i+s/o).map(e);return n&&a.reverse(),Ay(a)}function Ay(e,t){const n=Math.max(e.length,t||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const o=Rr(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 mB{constructor(t,n,r){this._container=t,this._sizeSource=n??(()=>({width:void 0,height:void 0})),this._shaderCache=new Map,this.rangeTextures=new WeakMap;const i=document.createElement("canvas");t.appendChild(i);const o=VI(i,{antialias:!0,depth:!1,premultipliedAlpha:!0});if(!o)throw new Error("Unable to initialize WebGL. Your browser or machine may not support it.");if(!Lo(o))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");if(sy(o),o.blendFunc(o.ONE,o.ONE_MINUS_SRC_ALPHA),this.canvas=i,this.gl=o,this._pickingAttachmentOptions=[{format:o.RGBA,type:o.UNSIGNED_BYTE,minMag:o.LINEAR,wrap:o.CLAMP_TO_EDGE}],this._pickingBufferInfo=NI(o,this._pickingAttachmentOptions),o.bindFramebuffer(o.FRAMEBUFFER,null),this.adjustGl(),this._updateDpr(),this._clearColor=[0,0,0,0],r){const a=Rr(r).rgb();this._clearColor=[a.r/255,a.g/255,a.b/255,a.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;";Ft(n)&&(n=n.join(`
186
223
 
187
- `));const o=this.gl,a=n.replaceAll(/ {2,}|^\s*\/\/.*$/gm,"");let s=this._shaderCache.get(a);if(!s){const f=[r,i,n].join(`
224
+ `));const o=this.gl,a=n.replaceAll(/ {2,}|^\s*\/\/.*$/gm,"");let s=this._shaderCache.get(a);if(!s){const u=[r,i,n].join(`
188
225
 
189
- `);s=o.createShader(t),o.shaderSource(s,f),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,CT(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this._resizeObserver.unobserve(this._container),this.canvas.remove()}getPhysicalCanvasSize(t){return t=t||this.getLogicalCanvasSize(),{width:t.width*this.dpr,height:t.height*this.dpr}}getLogicalCanvasSize(){var o;if(this._logicalCanvasSize)return this._logicalCanvasSize;const t=((o=this._sizeSource)==null?void 0:o.call(this))??{width:void 0,height:void 0},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}addEventListener(t,n){this._listeners.push({type:t,listener:n})}_emit(t){for(const n of this._listeners)n.type===t&&n.listener()}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 Mr(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(Mi(o)){const a=t.getScaleProps(),s=t.getScale(),f=s.range();let l;if(a.scheme)if(s.type=="threshold"&&f)l=Jd(f,this.gl,s.domain().length,r);else{let u=Pe(a.scheme)?void 0:a.scheme.count;u=i(u,s),l=tB(a.scheme,this.gl,u,r)}else Yf(s.type)||xt(s.type)&&f.length>2?l=nB(f,a.interpolate,this.gl,r):l=Jd(f,this.gl,s.domain().length,r);this.rangeTextures.set(t,l)}else{const a=t.getScale();if(a.type==="ordinal"||Fo(a.type)){const s=$f(o)?Zb(o):l=>l,f=t.getScale().range();this.rangeTextures.set(t,rB(f.map(s),this.gl,a.domain().length,r))}}}}function oB(e,t="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...t.matchAll(r)],o=new Map(i.map((a,s)=>{const f=parseInt(a[1]),l=i[s+1],u=l?l.index:t.length,c=t.substring(a.index,u);return[f-1,c]}));return e.split(`
190
- `).map((a,s)=>{const f=o.get(s);return`${s+1+n}: ${a}${f?`
226
+ `);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,OI(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 rr(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(Li(o)){const a=t.getScaleProps(),s=t.getScale(),u=s.range();let l;if(a.scheme)if(s.type=="threshold"&&u)l=t0(u,this.gl,s.domain().length,r);else{let f=Pe(a.scheme)?void 0:a.scheme.count;f=i(f,s),l=dB(a.scheme,this.gl,f,r)}else $u(s.type)||bt(s.type)&&u.length>2?l=pB(u,a.interpolate,this.gl,r):l=t0(u,this.gl,s.domain().length,r);this.rangeTextures.set(t,l)}else{const a=t.getScale();if(a.type==="ordinal"||Mo(a.type)){const s=ef(o)?Qb(o):l=>l,u=t.getScale().range();this.rangeTextures.set(t,gB(u.map(s),this.gl,a.domain().length,r))}}}}function bB(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],f=l?l.index:t.length,c=t.substring(a.index,f);return[u-1,c]}));return e.split(`
227
+ `).map((a,s)=>{const u=o.get(s);return`${s+1+n}: ${a}${u?`
191
228
 
192
- ^^^ ${f}`:""}`}).join(`
193
- `)}function aB(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 f of[t,n])e.getShaderParameter(f,e.COMPILE_STATUS)||(o=e.getShaderInfoLog(f),a=oB(e.getShaderSource(f),o,0)+`
194
- Error compiling: ${o}`,e.deleteShader(f));e.deleteProgram(r)}if(o)return{message:o,detail:a}}return{program:r,getProgramErrors:i}}function Au(e,t,n,r){return r?A2(e,r,n,t):r=Ps(e,{...t,src:n}),r}function sB(...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 lB(e){return Pe(e)||kt(e)||La(e)}class Hi extends Error{constructor(t,n){super(t),this.name="ViewError",this.view=n}}const fB="SAMPLE_FACET_UNIFORM",yy="SAMPLE_FACET_TEXTURE";class zs{constructor(t){this.unitView=t,this.encoders=void 0,this.bufferInfo=void 0,this.programInfo=void 0,this.vertexArrayInfo=void 0,this.domainUniformInfo=void 0,this.viewUniformInfo=void 0,this.markUniformInfo=void 0,this.markUniformsAltered=!0,this.rangeMap=new uB,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=sB(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}get encoding(){return qo(this,"encoding",()=>{const t=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=a=>{const s=this.properties[a];return lB(s)&&{value:s}},i=Object.fromEntries(this.getSupportedChannels().map(a=>[a,r(a)]).filter(a=>a[1].value!==void 0)),o=this.fixEncoding({...t,...i,...n});for(const a of Object.keys(o))this.getSupportedChannels().includes(a)||delete o[a];return o})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=N8(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return yy;if(this.unitView.getLayoutAncestors().find(t=>"samples"in t.spec))return fB}createAndLinkShaders(t,n,r=[]){const i=this.getAttributes(),o="// view: "+this.unitView.getPathString();this.domainUniforms=[];let a=[];const s=this.getSampleFacetMode();s&&r.push(`#define ${s}`);for(const d of i){let p;if(d in this.encoding)p=d;else continue;const b=this.encoding[p];if(b)if(vn(b))a.push(LT(p,b.value));else{const y=Ut(b)&&b.resolutionChannel||p,w=Pi(y)?this.unitView.getScaleResolution(y).getScale():Xf(),_=NT(p,w,b);a.push(_.glsl),_.domainUniform&&this.domainUniforms.push(_.domainUniform)}}const f=this.domainUniforms.length?`layout(std140) uniform Domains {
195
- `+this.domainUniforms.map(d=>` ${d}
229
+ ^^^ ${u}`:""}`}).join(`
230
+ `)}function yB(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=bB(e.getShaderSource(u),o,0)+`
231
+ Error compiling: ${o}`,e.deleteShader(u));e.deleteProgram(r)}if(o)return{message:o,detail:a}}return{program:r,getProgramErrors:i}}function kf(e,t,n,r){return r?S2(e,r,n,t):r=Us(e,{...t,src:n}),r}function wB(...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 vB(e){return Pe(e)||Ct(e)||Ga(e)}class ji extends Error{constructor(t,n){super(t),this.name="ViewError",this.view=n}}const xB="SAMPLE_FACET_UNIFORM",Ey="SAMPLE_FACET_TEXTURE";class Vs{constructor(t){this.unitView=t,this.encoders=void 0,this.bufferInfo=void 0,this.programInfo=void 0,this.vertexArrayInfo=void 0,this.domainUniformInfo=void 0,this.viewUniformInfo=void 0,this.markUniformInfo=void 0,this.markUniformsAltered=!0,this.rangeMap=new AB,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=wB(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}get encoding(){return Zo(this,"encoding",()=>{const t=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=a=>{const s=this.properties[a];return vB(s)&&{value:s}},i=Object.fromEntries(this.getSupportedChannels().map(a=>[a,r(a)]).filter(a=>a[1].value!==void 0)),o=this.fixEncoding({...t,...i,...n});for(const a of Object.keys(o))this.getSupportedChannels().includes(a)||delete o[a];return o})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=Q8(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return Ey;if(this.unitView.getLayoutAncestors().find(t=>"samples"in t.spec))return xB}createAndLinkShaders(t,n,r=[]){const i=this.getAttributes(),o="// view: "+this.unitView.getPathString();this.domainUniforms=[];let a=[];const s=new Set,u=gy(this.encoders),l=this.getSampleFacetMode();l&&r.push(`#define ${l}`);for(const b of i){let y;if(b in this.encoding)y=b;else continue;const w=this.encoding[y];if(w)if(vn(w))a.push(YI(y,w.value));else{const _=Ut(w)&&w.resolutionChannel||y,C=Ni(_)?this.unitView.getScaleResolution(_).getScale():Ju(),E=Mi(w)&&!rr(C.type)?u.get([w.field,!0]):[y],T=QI(y,C,w,E);a.push(T.glsl),T.domainUniform&&this.domainUniforms.push(T.domainUniform),T.attributeGlsl&&s.add(T.attributeGlsl)}}const f=this.domainUniforms.length?`layout(std140) uniform Domains {
232
+ `+this.domainUniforms.map(b=>` ${b}
196
233
  `).join("")+`};
197
234
 
198
- `:"",u=[`precision highp float;
199
- `,o,...r,dy,$T,f,...a,KT,JT,t],c=[o,...r,dy,eB,n],h=this.gl;this.programStatus=aB(h,this.glHelper.compileShader(h.VERTEX_SHADER,u),this.glHelper.compileShader(h.FRAGMENT_SHADER,c))}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=lT(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=Hd(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=Hd(this.gl,this.programInfo,"View"),this.markUniformInfo=Hd(this.gl,this.programInfo,"Mark"),this.gl.useProgram(this.programInfo.program),this._setDatums(),zi(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0,uZero:0})}registerMarkUniform(t,n,r=i=>i){const i=this.markUniformInfo.setters[t];if(wy(n)){const o=this.unitView.context.paramBroker.createExpression(n.expr),a=()=>{i(r(o(null))),this.markUniformsAltered=!0};o.addListener(a),a()}else i(r(n)),this.markUniformsAltered=!0}_setDatums(){for(const[t,n]of Object.entries(this.encoding))if(ks(n)){const r=this.encoders[t],i=r.indexer?r.indexer(n.datum):wu(r.scale.type)?cy(+n.datum):+n.datum;zi(this.programInfo,{[Yd+t]:i})}}deleteGraphicsData(){if(this.bufferInfo){const t=this.gl;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&&x5(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=_5(this.gl,t.arrays,{numElements:t.vertexCount}),this.bufferInfo.allocatedVertices=t.allocatedVertices,this.vertexArrayInfo=void 0}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?(Vd(this.gl,this.programInfo,this.markUniformInfo),this.markUniformsAltered=!1):Q2(this.gl,this.programInfo,this.markUniformInfo)}prepareRender(t){const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=kT(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[a,s]of Object.entries(this.domainUniformInfo.setters)){const f=a.substring(oy.length),l=this.encoding[f],u=Ut(l)&&l.resolutionChannel||f;if(Pi(u)){const c=this.unitView.getScaleResolution(u).getScale();i.push(()=>{const h=Mr(c.type)?[0,c.domain().length]:c.domain();s(wu(c.type)?HT(h):h)})}}i.push(()=>Vd(r,this.programInfo,this.domainUniformInfo))}for(const[a,s]of Object.entries(this.encoding))if(Ut(s)){const f=Ut(s)&&s.resolutionChannel||a;if(Pi(f)){const l=this.unitView.getScaleResolution(f),u=n.rangeTextures.get(l);u&&i.push(()=>zi(this.programInfo,{[Qd+a]:u}))}}this.getSampleFacetMode()==yy&&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.");zi(this.programInfo,{uSampleFacetTexture:a})});const o=(t.picking??!1)&&this.isPickingParticipant();return i.push(()=>Oi(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 c;if(!this.bufferInfo)throw new Hi(`${this.getType()} mark has no data. This is bug.`,this.unitView);const r=this;let i;const o=(c=this.unitView.getScaleResolution("x"))==null?void 0:c.getScale(),a=o&&xt(o.type),s=["index","locus"].includes(o==null?void 0:o.type)?-1:0,f=[0,0];i=h=>{if(a&&h.xIndex){const d=o.domain(),p=h.xIndex(d[0]+s,d[1],f),b=p[0],y=p[1]-b;y>0&&t(b,y)}else t(h.offset,h.count)};const l=this.rangeMap.get(void 0).count==0?n.facetId:void 0,u=this.rangeMap.get(l);return n.sampleFacetRenderingOptions?function(){u.count&&r.prepareSampleFacetRendering(n)&&i(u)}:function(){u.count&&i(u)}}setViewport(t,n){t=t.flatten();const r=this.unitView.context.devicePixelRatio,i=this.gl,o=this.properties,a=this.glHelper.getLogicalCanvasSize(),s=.5,f=(o.xOffset??0)+s,l=(o.yOffset??0)+s;let u,c=t;if(o.clip!=="never"&&(o.clip||n)){let h=0,d=0,p;if(n){if(c=t.intersect(n).flatten(),!c.isDefined())return!1;p=[t.width/c.width,t.height/c.height],d=Math.max(0,t.y2-n.y2),h=Math.min(0,t.x-n.x)}else p=[1,1];const b=[c.x,a.height-c.y2,c.width,c.height].map(C=>C*r),y=b.map(C=>Math.round(C)),[w,_]=b.map((C,S)=>C-y[S]);i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),u={uViewOffset:[(f+h+w/r)/c.width,-(l+d-_/r)/c.height],uViewScale:p}}else{if(!t.isDefined())return!1;i.viewport(0,0,a.width*r,a.height*r),i.disable(i.SCISSOR_TEST),u={uViewOffset:[(t.x+f)/a.width,(a.height-t.y-l-t.height)/a.height],uViewScale:[t.width/a.width,t.height/a.height]}}return Oi(this.viewUniformInfo,{...u,uViewportSize:[t.width,t.height],uDevicePixelRatio:r}),Vd(this.gl,this.programInfo,this.viewUniformInfo),!0}findDatumAt(t,n){}}class uB extends gi{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 t.entries())Object.assign(this.get(n),r)}}function wy(e){return typeof e=="object"&&"expr"in e&&Pe(e.expr)}function e0(e,t){const n=G8(t);let r=e[t]&&{...e[t]},i=e[n]&&{...e[n]};if(!(vn(r)||vn(i))){if(r){if(!Ut(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 vy(e,t){e.stroke||(t?e.stroke={value:null}:e.stroke={resolutionChannel:"color",...e.color}),vn(e.stroke)&&e.stroke.value===null&&(e.strokeWidth={value:0}),e.strokeOpacity||(e.strokeOpacity={resolutionChannel:"opacity",...e.opacity})}function xy(e,t){vn(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 cB extends zs{constructor(n){super(n);se(this,Nl);se(this,Ol);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 qo(this,"opaque",()=>!te(this,Nl,Bg).call(this)&&!te(this,Ol,Dg).call(this)&&vn(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(n){return e0(n,"x"),e0(n,"y"),vy(n,this.properties.filled),xy(n,this.properties.filled),delete n.color,delete n.opacity,n}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}async initializeGraphics(){await super.initializeGraphics();const n=[];te(this,Nl,Bg).call(this)&&n.push("ROUNDED_CORNERS"),te(this,Ol,Dg).call(this)&&n.push("STROKED"),this.createAndLinkShaders(RT,FT,n.map(r=>"#define "+r))}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const n=this.properties;this.registerMarkUniform("uMinWidth",n.minWidth),this.registerMarkUniform("uMinHeight",n.minHeight),this.registerMarkUniform("uMinOpacity",n.minOpacity),this.registerMarkUniform("uCornerRadiusTopRight",n.cornerRadiusTopRight??n.cornerRadius??0),this.registerMarkUniform("uCornerRadiusBottomRight",n.cornerRadiusBottomRight??n.cornerRadius??0),this.registerMarkUniform("uCornerRadiusTopLeft",n.cornerRadiusTopLeft??n.cornerRadius??0),this.registerMarkUniform("uCornerRadiusBottomLeft",n.cornerRadiusBottomLeft??n.cornerRadius??0)}updateGraphicsData(){const n=this.unitView.getCollector(),r=n.getItemCount(),i=new ZT({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(()=>Vo(this.gl,this.programInfo,this.vertexArrayInfo)),r}render(n){const r=this.gl;return this.createRenderCallback((i,o)=>{Ls(r,this.vertexArrayInfo,r.TRIANGLE_STRIP,o,i)},n)}findDatumAt(n,r){n=Yt(n);const i=this.unitView.getCollector().facetBatches.get(n);if(!i)return;const o=this.encoders,a=o.x.scale.type;if(Mr(a)){const s=o.x.accessor;return i.find(f=>r==s(f))}else{const s=o.x.accessor,f=o.x2.accessor;return i.find(l=>r>=s(l)&&r<f(l))}}}Nl=new WeakSet,Bg=function(){const n=this.properties;return n.cornerRadius||n.cornerRadiusBottomLeft||n.cornerRadiusBottomRight||n.cornerRadiusTopLeft||n.cornerRadiusTopRight},Ol=new WeakSet,Dg=function(){const n=this.encoding.strokeWidth;return!(vn(n)&&!n.value)};const hB=`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;}/***Computes a scaling factor for the points in a sample-faceted view.*/float getDownscaleFactor(vec2 pos){if(!isFacetedSamples()){return 1.0;}float sampleFacetHeight=getSampleFacetHeight(pos);float maxPointDiameter=sqrt(uMaxPointSize);float factor=sampleFacetHeight*uViewportSize.y*uMaxRelativePointDiameter;return clamp(0.0,maxPointDiameter,factor)/maxPointDiameter;}vec2 getDxDy(){
235
+ `:"",h=[`precision highp float;
236
+ `,o,...r,yy,uB,f,[...s].join(`
237
+ `),...a,fB,cB,t],d=[o,...r,yy,hB,n],p=this.gl;this.programStatus=yB(p,this.glHelper.compileShader(p.VERTEX_SHADER,h),this.glHelper.compileShader(p.FRAGMENT_SHADER,d))}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=vI(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=jd(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=jd(this.gl,this.programInfo,"View"),this.markUniformInfo=jd(this.gl,this.programInfo,"Mark"),this.gl.useProgram(this.programInfo.program),this._setDatums(),Ui(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0,uZero:0})}registerMarkUniform(t,n,r=i=>i){const i=this.markUniformInfo.setters[t];if(_y(n)){const o=this.unitView.context.paramBroker.createExpression(n.expr),a=()=>{i(r(o(null))),this.markUniformsAltered=!0};o.addListener(a),a()}else i(r(n)),this.markUniformsAltered=!0}_setDatums(){for(const[t,n]of Object.entries(this.encoding))if(Fs(n)){const r=this.encoders[t],i=r.indexer?r.indexer(n.datum):_f(r.scale.type)?py(+n.datum):+n.datum;Ui(this.programInfo,{[Xd+t]:i})}}deleteGraphicsData(){if(this.bufferInfo){const t=this.gl;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&&R5(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=L5(this.gl,t.arrays,{numElements:t.vertexCount}),this.bufferInfo.allocatedVertices=t.allocatedVertices,this.vertexArrayInfo=void 0}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?(qd(this.gl,this.programInfo,this.markUniformInfo),this.markUniformsAltered=!1):K2(this.gl,this.programInfo,this.markUniformInfo)}prepareRender(t){const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=zI(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[a,s]of Object.entries(this.domainUniformInfo.setters)){const u=a.substring(ly.length),l=this.encoding[u],f=Ut(l)&&l.resolutionChannel||u;if(Ni(f)){const c=this.unitView.getScaleResolution(f).getScale();i.push(()=>{const h=rr(c.type)?[0,c.domain().length]:c.domain();s(_f(c.type)?eB(h):h)})}}i.push(()=>qd(r,this.programInfo,this.domainUniformInfo))}for(const[a,s]of Object.entries(this.encoding))if(Ut(s)){const u=Ut(s)&&s.resolutionChannel||a;if(Ni(u)){const l=this.unitView.getScaleResolution(u),f=n.rangeTextures.get(l);f&&i.push(()=>Ui(this.programInfo,{[$d+a]:f}))}}this.getSampleFacetMode()==Ey&&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.");Ui(this.programInfo,{uSampleFacetTexture:a})});const o=(t.picking??!1)&&this.isPickingParticipant();return i.push(()=>jo(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 c;if(!this.bufferInfo)throw new ji(`${this.getType()} mark has no data. This is bug.`,this.unitView);const r=this;let i;const o=(c=this.unitView.getScaleResolution("x"))==null?void 0:c.getScale(),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),b=p[0],y=p[1]-b;y>0&&t(b,y)}else t(h.offset,h.count)};const l=this.rangeMap.get(void 0).count==0?n.facetId:void 0,f=this.rangeMap.get(l);return n.sampleFacetRenderingOptions?function(){f.count&&r.prepareSampleFacetRendering(n)&&i(f)}:function(){f.count&&i(f)}}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 f,c=t;if(o.clip!=="never"&&(o.clip||n)){let h=0,d=0,p;if(n){if(c=t.intersect(n).flatten(),!c.isDefined())return!1;p=[t.width/c.width,t.height/c.height],d=Math.max(0,t.y2-n.y2),h=Math.min(0,t.x-n.x)}else p=[1,1];const b=[c.x,a.height-c.y2,c.width,c.height].map(C=>C*r),y=b.map(C=>Math.round(C)),[w,_]=b.map((C,E)=>C-y[E]);i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),f={uViewOffset:[(u+h+w/r)/c.width,-(l+d-_/r)/c.height],uViewScale:p}}else{if(!t.isDefined())return!1;i.viewport(0,0,a.width*r,a.height*r),i.disable(i.SCISSOR_TEST),f={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 jo(this.viewUniformInfo,{...f,uViewportSize:[t.width,t.height],uDevicePixelRatio:r}),qd(this.gl,this.programInfo,this.viewUniformInfo),!0}findDatumAt(t,n){}}class AB extends _r{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 t.entries())Object.assign(this.get(n),r)}}function _y(e){return typeof e=="object"&&"expr"in e&&Pe(e.expr)}function n0(e,t){const n=J8(t);let r=e[t]&&{...e[t]},i=e[n]&&{...e[n]};if(!(vn(r)||vn(i))){if(r){if(!Ut(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 Sy(e,t){e.stroke||(t?e.stroke={value:null}:e.stroke={resolutionChannel:"color",...e.color}),vn(e.stroke)&&e.stroke.value===null&&(e.strokeWidth={value:0}),e.strokeOpacity||(e.strokeOpacity={resolutionChannel:"opacity",...e.opacity})}function Cy(e,t){vn(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 EB extends Vs{constructor(n){super(n);re(this,Gl);re(this,Hl);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 Zo(this,"opaque",()=>!te(this,Gl,Pg).call(this)&&!te(this,Hl,Lg).call(this)&&vn(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(n){return n0(n,"x"),n0(n,"y"),Sy(n,this.properties.filled),Cy(n,this.properties.filled),delete n.color,delete n.opacity,n}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}async initializeGraphics(){await super.initializeGraphics();const n=[];te(this,Gl,Pg).call(this)&&n.push("ROUNDED_CORNERS"),te(this,Hl,Lg).call(this)&&n.push("STROKED"),this.createAndLinkShaders(jI,qI,n.map(r=>"#define "+r))}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const n=this.properties;this.registerMarkUniform("uMinWidth",n.minWidth),this.registerMarkUniform("uMinHeight",n.minHeight),this.registerMarkUniform("uMinOpacity",n.minOpacity),this.registerMarkUniform("uCornerRadiusTopRight",n.cornerRadiusTopRight??n.cornerRadius??0),this.registerMarkUniform("uCornerRadiusBottomRight",n.cornerRadiusBottomRight??n.cornerRadius??0),this.registerMarkUniform("uCornerRadiusTopLeft",n.cornerRadiusTopLeft??n.cornerRadius??0),this.registerMarkUniform("uCornerRadiusBottomLeft",n.cornerRadiusBottomLeft??n.cornerRadius??0)}updateGraphicsData(){const n=this.unitView.getCollector(),r=n.getItemCount(),i=new iB({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(()=>Gi(this.gl,this.programInfo,this.vertexArrayInfo)),r}render(n){const r=this.gl;return this.createRenderCallback((i,o)=>{Af(r,this.vertexArrayInfo,r.TRIANGLE_STRIP,o,i)},n)}findDatumAt(n,r){n=Lt(n);const i=this.unitView.getCollector().facetBatches.get(n);if(!i)return;const o=this.encoders,a=o.x.scale.type;if(rr(a)){const s=o.x.accessor;return i.find(u=>r==s(u))}else{const s=o.x.accessor,u=o.x2.accessor;return i.find(l=>r>=s(l)&&r<u(l))}}}Gl=new WeakSet,Pg=function(){const n=this.properties;return n.cornerRadius||n.cornerRadiusBottomLeft||n.cornerRadiusBottomRight||n.cornerRadiusTopLeft||n.cornerRadiusTopRight},Hl=new WeakSet,Lg=function(){const n=this.encoding.strokeWidth;return!(vn(n)&&!n.value)};const _B=`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;}/***Computes a scaling factor for the points in a sample-faceted view.*/float getDownscaleFactor(vec2 pos){if(!isFacetedSamples()){return 1.0;}float sampleFacetHeight=getSampleFacetHeight(pos);float maxPointDiameter=sqrt(uMaxPointSize);float factor=sampleFacetHeight*uViewportSize.y*uMaxRelativePointDiameter;return clamp(0.0,maxPointDiameter,factor)/maxPointDiameter;}vec2 getDxDy(){
200
238
  #if defined(dx_DEFINED) || defined(dy_DEFINED)
201
239
  return vec2(getScaled_dx(),getScaled_dy())/uViewportSize;
202
240
  #else
203
241
  return vec2(0.0,0.0);
204
242
  #endif
205
- }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*getDownscaleFactor(pos);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();}`,dB="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;}}",pB="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 lowp float uMaxRelativePointDiameter;uniform mediump float uScaleFactor;uniform mediump float uMaxPointSize;uniform mediump float uZoomLevel;uniform highp float uSemanticThreshold;uniform mediump float uGradientStrength;};",zn=1,Gr=2,t0=4,gB={};class Je{get behavior(){return 0}constructor(){this.children=[],this.parent=void 0,this.completed=!1}reset(){this.completed=!1;for(const t of this.children)t.reset()}initialize(){}_updatePropagator(){this._propagate=Function("children",za(this.children.length).map(t=>`const child${t} = children[${t}];`).join(`
206
- `)+`return function propagate(datum) {${za(this.children.length).map(t=>`child${t}.handle(datum);`).join(`
243
+ }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*getDownscaleFactor(pos);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();}`,SB="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;}}",CB="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 lowp float uMaxRelativePointDiameter;uniform mediump float uScaleFactor;uniform mediump float uMaxPointSize;uniform mediump float uZoomLevel;uniform highp float uSemanticThreshold;uniform mediump float uGradientStrength;};",On=1,Vr=2,r0=4,kB={};class et{get behavior(){return 0}constructor(){this.children=[],this.parent=void 0,this.completed=!1}reset(){this.completed=!1;for(const t of this.children)t.reset()}initialize(){}_updatePropagator(){this._propagate=Function("children",ja(this.children.length).map(t=>`const child${t} = children[${t}];`).join(`
244
+ `)+`return function propagate(datum) {${ja(this.children.length).map(t=>`child${t}.handle(datum);`).join(`
207
245
  `)}}`)(this.children)}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),this._updatePropagator(),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){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,this.parent._updatePropagator(),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,this._updatePropagator();else throw new Error("Trying to remove an unknown child node!")}excise(){if(this.isRoot())throw new Error("Cannot excise root node!");if(this.isTerminal())this.parent.removeChild(this);else if(this.children.length==1){const t=this.children[0];t.setParent(this.parent),this.parent.children[this.parent.children.indexOf(this)]=t,this.parent._updatePropagator(),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:"")??""}
208
- ${n}`}getGlobalObject(){return this.parent?this.parent.getGlobalObject():gB}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)}_propagate(t){}}function Ay(e){return e.type=="file"}function mB(e){return e.type=="facet"}class Ey extends Je{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 bB(e,t,n){const r=new Ey({type:"sample",size:e});for(const i of t)r.handle(n(i));return r.complete(),r.reservoir}const yB={};class wB extends zs{constructor(t){super(t),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}))}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(),...yB}}fixEncoding(t){return vy(t,this.properties.filled),xy(t,this.properties.filled),delete t.color,delete t.opacity,t}initializeData(){super.initializeData();const t=this.unitView.getAccessor("semanticScore");t&&(this.sampledSemanticScores=Float32Array.from(bB(1e4,this.unitView.getCollector().getData(),t)),this.sampledSemanticScores.sort((n,r)=>n-r))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(hB,dB,[pB])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;Oi(this.markUniformInfo,{uInwardStroke:!!t.inwardStroke,uGradientStrength:+t.fillGradientStrength,uMaxRelativePointDiameter:1-2*t.sampleFacetPadding})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new YT({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)}_getGeometricScaleFactor(){const t=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/t),1/3)}_getMaxPointSize(){const t=this.encoders.size;return t.constant?t(null):t.scale.range().reduce((n,r)=>Math.max(n,r))}getSemanticThreshold(){if(this.sampledSemanticScores){const t=Math.max(0,1-this.properties.semanticZoomFraction*this.unitView.getZoomLevel());if(t<=0)return-1/0;if(t>=1)return 1/0;{const n=this.sampledSemanticScores;return rm(n,t)}}else return-1}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>{Oi(this.markUniformInfo,{uMaxPointSize:this._getMaxPointSize(),uScaleFactor:this._getGeometricScaleFactor(),uSemanticThreshold:this.getSemanticThreshold()}),this.markUniformsAltered=!0}),n.push(()=>this.bindOrSetMarkUniformBlock()),n.push(()=>Vo(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{i&&Ls(n,this.vertexArrayInfo,n.POINTS,i,r)},t)}}const vB="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();}",xB="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;}}",AB="uniform Mark{uniform mediump float uMinLength;uniform mediump float uDashTextureSize;uniform lowp int uStrokeCap;uniform mediump float uStrokeDashOffset;};";class EB extends zs{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&&Ut(t.y)&&t.y.type=="quantitative")t.x2=t.x,t.y2={datum:0};else if(!t.y2&&Ut(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=_B(this.properties.strokeDash);this.dashTexture=Ps(t,{mag:t.NEAREST,min:t.NEAREST,internalFormat:t.R8,format:t.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(vB,xB,[AB])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniform("uMinLength",t.minLength),this.registerMarkUniform("uStrokeCap",t.strokeCap??"butt",n=>["butt","square","round"].indexOf(n)),Oi(this.markUniformInfo,{uDashTextureSize:+this.dashTextureSize}),this.markUniformsAltered=!0}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new WT({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(()=>zi(this.programInfo,{uDashTexture:this.dashTexture})),n.push(()=>Vo(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>Ls(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),t)}}function _B(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 SB="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;};in vec2 strip;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;}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();}",CB="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;}}",kB=["arc","dome","diagonal","line"],IB=["vertical","horizontal"];class TB extends zs{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"}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","height","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(t){return t.x2||(Ut(t.x)?t.x2={datum:0}:t.x2=t.x),t.y2||(Ut(t.y)?t.y2={datum:0}:t.y2=t.y),t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(SB,CB)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniform("uArcFadingDistance",t.arcFadingDistance,n=>n||[0,0]),this.registerMarkUniform("uArcHeightFactor",t.arcHeightFactor),this.registerMarkUniform("uMinArcHeight",t.minArcHeight),this.registerMarkUniform("uMinPickingSize",t.minPickingSize),this.registerMarkUniform("uShape",t.linkShape,n=>kB.indexOf(n)),this.registerMarkUniform("uOrient",t.orient,n=>IB.indexOf(n)),this.registerMarkUniform("uClampApex",t.clampApex,n=>!!n),this.registerMarkUniform("uMaxChordLength",t.maxChordLength)}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new QT({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(t.facetBatches);const i=r.toArrays();i.arrays.strip={data:BB(this.properties.segments),numComponents:2},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()),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{this.gl.bindVertexArray(this.vertexArrayInfo.vertexArrayObject);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*4)}Vo(n,this.programInfo,this.bufferInfo),Ls(n,this.bufferInfo,n.TRIANGLE_STRIP,(this.properties.segments+1)*2,0,i)},t)}}function BB(e){let t=0;const n=[];for(;t<=e;t++)n.push(t/e,.5),n.push(t/e,-.5);return n}const DB=`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);
246
+ ${n}`}getGlobalObject(){return this.parent?this.parent.getGlobalObject():kB}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)}_propagate(t){}}function ky(e){return e.type=="file"}function TB(e){return e.type=="facet"}class Ty extends et{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 IB(e,t,n){const r=new Ty({type:"sample",size:e});for(const i of t)r.handle(n(i));return r.complete(),r.reservoir}const BB={};class DB extends Vs{constructor(t){super(t),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}))}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(),...BB}}fixEncoding(t){return Sy(t,this.properties.filled),Cy(t,this.properties.filled),delete t.color,delete t.opacity,t}initializeData(){super.initializeData();const t=this.unitView.getAccessor("semanticScore");t&&(this.sampledSemanticScores=Float32Array.from(IB(1e4,this.unitView.getCollector().getData(),t)),this.sampledSemanticScores.sort((n,r)=>n-r))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(_B,SB,[CB])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;jo(this.markUniformInfo,{uInwardStroke:!!t.inwardStroke,uGradientStrength:+t.fillGradientStrength,uMaxRelativePointDiameter:1-2*t.sampleFacetPadding})}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new aB({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)}_getGeometricScaleFactor(){const t=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/t),1/3)}_getMaxPointSize(){const t=this.encoders.size;return t.constant?t(null):t.scale.range().reduce((n,r)=>Math.max(n,r))}getSemanticThreshold(){if(this.sampledSemanticScores){const t=Math.max(0,1-this.properties.semanticZoomFraction*this.unitView.getZoomLevel());if(t<=0)return-1/0;if(t>=1)return 1/0;{const n=this.sampledSemanticScores;return lm(n,t)}}else return-1}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>{jo(this.markUniformInfo,{uMaxPointSize:this._getMaxPointSize(),uScaleFactor:this._getGeometricScaleFactor(),uSemanticThreshold:this.getSemanticThreshold()}),this.markUniformsAltered=!0}),n.push(()=>this.bindOrSetMarkUniformBlock()),n.push(()=>Gi(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>{i&&Af(n,this.vertexArrayInfo,n.POINTS,i,r)},t)}}const FB="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();}",RB="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;}}",MB="uniform Mark{uniform mediump float uMinLength;uniform mediump float uDashTextureSize;uniform lowp int uStrokeCap;uniform mediump float uStrokeDashOffset;};";class PB extends Vs{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&&Ut(t.y)&&t.y.type=="quantitative")t.x2=t.x,t.y2={datum:0};else if(!t.y2&&Ut(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=LB(this.properties.strokeDash);this.dashTexture=Us(t,{mag:t.NEAREST,min:t.NEAREST,internalFormat:t.R8,format:t.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(FB,RB,[MB])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniform("uMinLength",t.minLength),this.registerMarkUniform("uStrokeCap",t.strokeCap??"butt",n=>["butt","square","round"].indexOf(n)),jo(this.markUniformInfo,{uDashTextureSize:+this.dashTextureSize}),this.markUniformsAltered=!0}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new oB({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(()=>Ui(this.programInfo,{uDashTexture:this.dashTexture})),n.push(()=>Gi(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>Af(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),t)}}function LB(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 NB="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;};in vec2 strip;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;}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();}",OB="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;}}",zB=["arc","dome","diagonal","line"],UB=["vertical","horizontal"];class GB extends Vs{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||(Ut(t.x)?t.x2={datum:0}:t.x2=t.x),t.y2||(Ut(t.y)?t.y2={datum:0}:t.y2=t.y),t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(NB,OB)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniform("uArcFadingDistance",t.arcFadingDistance,n=>n||[0,0]),this.registerMarkUniform("uArcHeightFactor",t.arcHeightFactor),this.registerMarkUniform("uMinArcHeight",t.minArcHeight),this.registerMarkUniform("uMinPickingSize",t.minPickingSize),this.registerMarkUniform("uShape",t.linkShape,n=>zB.indexOf(n)),this.registerMarkUniform("uOrient",t.orient,n=>UB.indexOf(n)),this.registerMarkUniform("uClampApex",t.clampApex,n=>!!n),this.registerMarkUniform("uMaxChordLength",t.maxChordLength)}updateGraphicsData(){const t=this.unitView.getCollector(),n=t.getItemCount(),r=new sB({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(t.facetBatches);const i=r.toArrays();i.arrays.strip={data:HB(this.properties.segments),numComponents:2},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(()=>Gi(this.gl,this.programInfo,this.vertexArrayInfo)):n.push(()=>this.gl.bindVertexArray(null)),n}render(t){const n=this.gl,r=(this.properties.segments+1)*2;return this._baseInstanceExt?this.createRenderCallback((i,o)=>{this._baseInstanceExt.drawArraysInstancedBaseInstanceWEBGL(n.TRIANGLE_STRIP,0,r,o,i)},t):this.createRenderCallback((i,o)=>{for(const a of Object.entries(this.bufferInfo.attribs)){const[s,u]=a;u.buffer&&u.numComponents&&u.divisor&&(u.offset=i*this.arrays[s].numComponents*4)}Gi(n,this.programInfo,this.bufferInfo),n.drawArraysInstanced(n.TRIANGLE_STRIP,0,r,o)},t)}}function HB(e){let t=0;const n=[];for(;t<=e;t++)n.push(t/e,.5),n.push(t/e,-.5);return n}const VB=`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);
209
247
  #if defined(x2_DEFINED) || defined(y2_DEFINED)
210
248
  ivec2 align=fixAlignForAngle(uAlign,angleInDegrees);
211
249
  #else
@@ -218,7 +256,7 @@ vec2 pos=applySampleFacet(vec2(x,y));
218
256
  #ifdef y2_DEFINED
219
257
  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;}
220
258
  #endif
221
- 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();}`,RB="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;}}",FB="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;};",MB={left:-1,center:0,right:1},PB={top:-1,middle:0,bottom:1,alphabetic:1};class LB extends zs{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()}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 Mo)this.properties.fitToBand&&e0(t,n);return t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(DB,RB,[FB])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;Oi(this.markUniformInfo,{uPaddingX:t.paddingX,uPaddingY:t.paddingY,uFlushX:!!t.flushX,uFlushY:!!t.flushY,uAlign:[MB[t.align],PB[t.baseline]],uD:[t.dx,-t.dy],uLogoLetter:!!t.logoLetters,uSqueeze:!!t.squeeze,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 o=0;const a="format"in r.text?pt(r.text.format):l=>l;for(const l of n){const u=a(i(l)),c=Pe(u)?u:u===null?"":""+u;o+=c&&c.length||0}const s=new XT({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(o,this.properties.minBufferSize||0)});s.addBatches(t.facetBatches);const f=s.toArrays();this.rangeMap.migrateEntries(f.rangeMap),this.updateBufferInfo(f)}prepareRender(t){const n=super.prepareRender(t);let r=.35;this.properties.logoLetters&&(r/=2);const i=this.font.metrics.common.base/(this.unitView.context.devicePixelRatio/r);return n.push(()=>{Oi(this.markUniformInfo,{uSdfNumerator:i}),this.markUniformsAltered=!0,zi(this.programInfo,{uTexture:this.font.texture})}),n.push(()=>this.bindOrSetMarkUniformBlock()),n.push(()=>Vo(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>Ls(n,this.vertexArrayInfo,n.TRIANGLES,i,r),t)}}function _y(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+=Eu(p.px)+(n0(p)?0:n),s+=Eu(p.grow);a-=n;const f=Math.max(0,t-a),l=r!==void 0?p=>Math.round(p*r)/r:p=>p,u=[],c=[],h=p=>{const b=u.length;if(!b)return;const y=(p?n:0)*(o?-1:1);d-=y;for(let w=0;w<b;w++)c.push({location:d+(w+1)/(b+1)*y,size:0});d+=y,u.length=0};let d=o?Math.max(t,a):0+i;if(e.length==1&&n0(e[0]))return[{location:d,size:0}];for(let p=0;p<e.length;p++){const b=e[p];if(n0(b))u.push(b);else{h(c.length>0);const y=Eu(b.px)+(s?Eu(b.grow)/s*f:0);o&&(d-=y),c.push({location:l(d),size:l(y)}),o?d-=n:d+=y+n}}return d+=o?n:-n,h(!1),c}function NB(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 _g=class _g{constructor(t,n){se(this,zl);this.width=t,this.height=n}addPadding(t){return te(this,zl,Rg).call(this,t.width,t.height)}subtractPadding(t){return te(this,zl,Rg).call(this,-t.width,-t.height)}};zl=new WeakSet,Rg=function(t,n){return new _g({px:(this.width.px??0)+t,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};let Hr=_g;const Us=Object.freeze({px:0,grow:0}),Sy=new Hr(Us,Us);function n0(e){return!e.px&&!e.grow}function Eu(e){return e||0}function OB(e){return e&&(kt(e.px)||kt(e.grow))}function Cy(e){if(Iy(e))throw new Error("parseSizeDef does not accept step-based sizes.");if(OB(e))return e;if(kt(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 Et{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 Et(this.top+t,this.right+t,this.bottom+t,this.left+t)}add(t){return new Et(this.top+t.top,this.right+t.right,this.bottom+t.bottom,this.left+t.left)}subtract(t){return new Et(this.top-t.top,this.right-t.right,this.bottom-t.bottom,this.left-t.left)}union(t){return new Et(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 Et(0,this.right,0,this.left)}getVertical(){return new Et(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):r0}static createFromRecord(t){return new Et(t.top,t.right,t.bottom,t.left)}static zero(){return r0}static createUniformPadding(t){return new Et(t,t,t,t)}}const r0=Et.createUniformPadding(0);Object.freeze(r0);const zB=/^([A-Za-z]+:)?\/\//;function UB(e,t){if(t&&zB.test(t))return t;const n=e();return n&&t?n.endsWith("/")?n+t:n+"/"+t:n??t}const GB="VISIT_SKIP",Gs="VISIT_STOP",ky=e=>e;class HB{constructor(t,n,r,i,o,a={}){se(this,ho);se(this,Hl);se(this,Ca,{});se(this,Ul,{});se(this,Gl,{});St(this,"opacityFunction",ky);if(!t)throw new Error("View spec must be defined!");this.context=n,this.layoutParent=r,this.dataParent=i,this.name=t.name||o,this.spec=t,this.resolutions={scale:{},axis:{}},gy(this),this.options={blockEncodingInheritance:!1,contributesToScaleDomain:!0,...a},this.needsAxes={x:!1,y:!1}}getPadding(){return this._cache("size/padding",()=>Et.createFromConfig(this.spec.padding))}getOverhang(){return Et.zero()}isScrollable(){return this.spec.viewportWidth!=null||this.spec.viewportHeight!=null}getSize(){return this._cache("size/size",()=>this.isConfiguredVisible()?new Hr(te(this,ho,Kl).call(this,"width"),te(this,ho,Kl).call(this,"height")):Sy)}getViewportSize(){if(!this.isScrollable())return this.getSize();if(!this.isConfiguredVisible())return Sy;const t=this.getSize();return new Hr(te(this,ho,Kl).call(this,"viewportWidth")??t.width,te(this,ho,Kl).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 te(this,Hl,Fg).call(this,"layoutParent")}getDataAncestors(){return te(this,Hl,Fg).call(this,"dataParent")}handleBroadcast(t){for(const n of $(this,Ca)[t.type]||[])n(t)}_addBroadcastHandler(t,n){let r=$(this,Ca)[t];r||(r=[],$(this,Ca)[t]=r),r.push(n)}handleInteractionEvent(t,n,r){const i=r?$(this,Ul):$(this,Gl);for(const o of i[n.type]||[])o(t,n)}addInteractionEventListener(t,n,r){const i=r?$(this,Ul):$(this,Gl);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!==Gs)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===ky)&&(this.opacityFunction=jB(this))}onBeforeRender(){}render(t,n,r={}){}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 Cs(n)?[n.field]:(r=this.layoutParent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}getScaleResolution(t){const n=Fi(t);return this.getDataAncestors().map(r=>r.resolutions.scale[n]).find(r=>r)}getAxisResolution(t){const n=Fi(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 UB(()=>{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 Pe(t)?t:t.text}_cache(t,n){return qo(this,t,n)}_invalidateCacheByPrefix(t,n="self"){switch(n){case"self":xu(this,t);break;case"ancestors":for(const r of this.getLayoutAncestors())xu(r,t);break;case"progeny":this.visit(r=>xu(r,t));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(t){}}Ca=new WeakMap,Ul=new WeakMap,Gl=new WeakMap,ho=new WeakSet,Kl=function(t){var i;let n=this.spec[t];const r=t=="viewportWidth"||t=="viewportHeight";if(Iy(n)){if(r)throw new Hi(`Cannot use step-based size with "${t}"!`,this);const o=n.step,a=(i=this.getScaleResolution(t=="width"?"x":"y"))==null?void 0:i.getScale();if(a){let s=0;if(Mr(a.type))s=a.domain().length;else if(["locus","index"].includes(a.type)){const l=a.domain();s=ss(l)-l[0]}else throw new Hi(`Cannot use step-based size with "${a.type}" scale!`,this);const f=a;return s=sd(s,f.paddingInner(),f.paddingOuter()),{px:s*o,grow:0}}else throw new Hi("Cannot use 'step' size with missing scale!",this)}else return(n&&Cy(n))??(r?void 0:{px:0,grow:1})},Hl=new WeakSet,Fg=function(t){const n=[];let r=this;do n.push(r),r=r[t];while(r);return n};function VB(e){return"unitsPerPixel"in e}function jB(e){const t=e.spec.opacity;if(t!==void 0){if(kt(t))return n=>n*t;if(VB(t)){const n=o=>{var s;const a=(s=e.getScaleResolution(o))==null?void 0:s.getScale();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 Hi("Cannot find a resolved quantitative scale for dynamic opacity!",e);const i=Jh().domain(t.unitsPerPixel).range(t.values).clamp(!0);return o=>{const s=af(r.domain())/1e3;return i(s)*o}}else if(wy(t)){const n=e.context.paramBroker.createExpression(t.expr);return r=>n(null)*r}}return n=>n}const Iy=e=>!!(e!=null&&e.step);class Vi extends HB{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===Gs)return n;if(n!==GB){t.beforeChildren&&t.beforeChildren(this);for(const r of this){const i=r.visit(t);if(i===Gs)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 Vi)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,Gs}),n}getDefaultResolution(t,n){return"shared"}}const Ty=1;function i0(){let e=[0,1],t=[0,1],n=1,r=1,i=0,o=0,a=.5,s=0;const l=u=>(u+a-e[0])/n*r+t[0];return l.invert=u=>(u-t[0])/r*n+e[0]-a,l.domain=function(u){if(arguments.length){e=H_(u),n=e[1]-e[0];const c=e[0]===0&&e[0]===0;if(n<Ty&&!c){n=Ty;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(u){return arguments.length?(t=[...u],r=t[1]-t[0],l):t},l.numberingOffset=function(u){return arguments.length?(s=u,l):s},l.padding=function(u){return arguments.length?(o=u,i=Math.min(1,u),l):i},l.paddingInner=function(u){return arguments.length?(i=Math.min(1,u),l):i},l.paddingOuter=function(u){return arguments.length?(o=u,l):o},l.align=function(u){return arguments.length?(a=Math.max(0,Math.min(1,u)),l):a},l.step=()=>r/n,l.bandwidth=()=>l.step(),l.ticks=u=>{const c=l.align(),h=l.numberingOffset();return cf(e[0]-c+h,e[1]-c+h,Math.min(u,Math.ceil(n))).filter(Number.isInteger).map(d=>d-s)},l.tickFormat=(u,c)=>{if(c)throw new Error("Index scale's tickFormat does not support a specifier!");const d=mi(e[0],e[1],Math.min(u,Math.ceil(n)))<1e5?pt(","):pt(".3s");return p=>d(p+s)},l.copy=()=>i0().domain(e).range(t).paddingInner(i).paddingOuter(o).numberingOffset(s),l}function qB(){const e=i0().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(u=>t.toChromosome(u)),f=Math.max(1,mi(i[0],i[1],r)),l=[];for(let u=a.index;u<=s.index;u++){const c=t.chromosomes[u],h=Math.max(c.continuousStart+f,i[0]-(i[0]-c.continuousStart)%f),d=Math.min(c.continuousEnd-f/4,i[1]+1);for(let p=h;p<=d;p+=f){const b=p-o;b>=i[0]&&b<i[1]&&l.push(b)}}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=mi(o[0],o[1],Math.min(r,Math.ceil(a)))<1e6?pt(","):pt(".3s"),u=c=>c-t.toChromosome(c).continuousStart;return c=>l(u(c)+s)};const n=e.copy;return e.copy=()=>n().genome(t),e}function ZB(e){return e.type=="locus"}function _u(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||Zo(a)&&Zo(s)||Zo(a)&&s===!0||a===!0&&Mt(s),o=a=>{for(let s in a){const f=a[s];if(!n.includes(s)&&f!==void 0)if(r[s]!==void 0&&!i(r[s],f))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(Zo(l))Zo(f)&&(r[s]=_u([l,f],s));else if(Zo(f)){if(!(l===!0||l===void 0))throw new Error("Bug in merge! Target is: "+l);r[s]=_u([{},f],s)}else r[s]=f}}};for(const a of e)o(a);return r}function Zo(e){return Mt(e)&&!Array.isArray(e)}/*!
259
+ 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();}`,jB="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;}}",qB="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;};",ZB={left:-1,center:0,right:1},WB={top:-1,middle:0,bottom:1,alphabetic:1};class YB extends Vs{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()}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 Po)this.properties.fitToBand&&n0(t,n);return t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(VB,jB,[qB])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniform("uSdfNumerator",{expr:"devicePixelRatio"},n=>{let r=.35;return this.properties.logoLetters&&(r/=2),this.font.metrics.common.base/(n/r)}),jo(this.markUniformInfo,{uPaddingX:t.paddingX,uPaddingY:t.paddingY,uFlushX:!!t.flushX,uFlushY:!!t.flushY,uAlign:[ZB[t.align],WB[t.baseline]],uD:[t.dx,-t.dy],uLogoLetter:!!t.logoLetters,uSqueeze:!!t.squeeze,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 o=0;const a="format"in r.text?gt(r.text.format):l=>l;for(const l of n){const f=a(i(l)),c=Pe(f)?f:f===null?"":""+f;o+=c&&c.length||0}const s=new lB({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(o,this.properties.minBufferSize||0)});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(()=>{Ui(this.programInfo,{uTexture:this.font.texture})}),n.push(()=>this.bindOrSetMarkUniformBlock()),n.push(()=>Gi(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>Af(n,this.vertexArrayInfo,n.TRIANGLES,i,r),t)}}function Iy(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+=Tf(p.px)+(i0(p)?0:n),s+=Tf(p.grow);a-=n;const u=Math.max(0,t-a),l=r!==void 0?p=>Math.round(p*r)/r:p=>p,f=[],c=[],h=p=>{const b=f.length;if(!b)return;const y=(p?n:0)*(o?-1:1);d-=y;for(let w=0;w<b;w++)c.push({location:d+(w+1)/(b+1)*y,size:0});d+=y,f.length=0};let d=o?Math.max(t,a):0+i;if(e.length==1&&i0(e[0]))return[{location:d,size:0}];for(let p=0;p<e.length;p++){const b=e[p];if(i0(b))f.push(b);else{h(c.length>0);const y=Tf(b.px)+(s?Tf(b.grow)/s*u:0);o&&(d-=y),c.push({location:l(d),size:l(y)}),o?d-=n:d+=y+n}}return d+=o?n:-n,h(!1),c}function QB(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 Ig=class Ig{constructor(t,n){re(this,Vl);this.width=t,this.height=n}addPadding(t){return te(this,Vl,Ng).call(this,t.width,t.height)}subtractPadding(t){return te(this,Vl,Ng).call(this,-t.width,-t.height)}};Vl=new WeakSet,Ng=function(t,n){return new Ig({px:(this.width.px??0)+t,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};let jr=Ig;const js=Object.freeze({px:0,grow:0}),By=new jr(js,js);function i0(e){return!e.px&&!e.grow}function Tf(e){return e||0}function XB(e){return e&&(Ct(e.px)||Ct(e.grow))}function Dy(e){if(Ry(e))throw new Error("parseSizeDef does not accept step-based sizes.");if(XB(e))return e;if(Ct(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 _t{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 _t(this.top+t,this.right+t,this.bottom+t,this.left+t)}add(t){return new _t(this.top+t.top,this.right+t.right,this.bottom+t.bottom,this.left+t.left)}subtract(t){return new _t(this.top-t.top,this.right-t.right,this.bottom-t.bottom,this.left-t.left)}union(t){return new _t(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 _t(0,this.right,0,this.left)}getVertical(){return new _t(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):o0}static createFromRecord(t){return new _t(t.top,t.right,t.bottom,t.left)}static zero(){return o0}static createUniformPadding(t){return new _t(t,t,t,t)}}const o0=_t.createUniformPadding(0);Object.freeze(o0);const $B=/^([A-Za-z]+:)?\/\//;function KB(e,t){if(t&&$B.test(t))return t;const n=e();return n&&t?n.endsWith("/")?n+t:n+"/"+t:n??t}const JB="VISIT_SKIP",qs="VISIT_STOP",Fy=e=>e;class eD{constructor(t,n,r,i,o,a={}){re(this,ho);re(this,Zl);re(this,Ta,{});re(this,jl,{});re(this,ql,{});Kn(this,"opacityFunction",Fy);Kn(this,"coords");if(!t)throw new Error("View spec must be defined!");this.context=n,this.layoutParent=r,this.dataParent=i,this.name=t.name||o,this.spec=t,this.resolutions={scale:{},axis:{}},vy(this),this.options={blockEncodingInheritance:!1,contributesToScaleDomain:!0,...a},this.needsAxes={x:!1,y:!1}}getPadding(){return this._cache("size/padding",()=>_t.createFromConfig(this.spec.padding))}getOverhang(){return _t.zero()}isScrollable(){return this.spec.viewportWidth!=null||this.spec.viewportHeight!=null}getSize(){return this._cache("size/size",()=>this.isConfiguredVisible()?new jr(te(this,ho,iu).call(this,"width"),te(this,ho,iu).call(this,"height")):By)}getViewportSize(){if(!this.isScrollable())return this.getSize();if(!this.isConfiguredVisible())return By;const t=this.getSize();return new jr(te(this,ho,iu).call(this,"viewportWidth")??t.width,te(this,ho,iu).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 te(this,Zl,Og).call(this,"layoutParent")}getDataAncestors(){return te(this,Zl,Og).call(this,"dataParent")}handleBroadcast(t){for(const n of W(this,Ta)[t.type]||[])n(t)}_addBroadcastHandler(t,n){let r=W(this,Ta)[t];r||(r=[],W(this,Ta)[t]=r),r.push(n)}handleInteractionEvent(t,n,r){const i=r?W(this,jl):W(this,ql);for(const o of i[n.type]||[])o(t,n)}addInteractionEventListener(t,n,r){const i=r?W(this,jl):W(this,ql);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!==qs)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===Fy)&&(this.opacityFunction=nD(this))}onBeforeRender(){}render(t,n,r={}){this.coords=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 Mi(n)?[n.field]:(r=this.layoutParent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}getScaleResolution(t){const n=Pi(t);return this.getDataAncestors().map(r=>r.resolutions.scale[n]).find(r=>r)}getAxisResolution(t){const n=Pi(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 KB(()=>{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 Pe(t)?t:t.text}_cache(t,n){return Zo(this,t,n)}_invalidateCacheByPrefix(t,n="self"){switch(n){case"self":Cf(this,t);break;case"ancestors":for(const r of this.getLayoutAncestors())Cf(r,t);break;case"progeny":this.visit(r=>Cf(r,t));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(t){}}Ta=new WeakMap,jl=new WeakMap,ql=new WeakMap,ho=new WeakSet,iu=function(t){var i;let n=this.spec[t];const r=t=="viewportWidth"||t=="viewportHeight";if(Ry(n)){if(r)throw new ji(`Cannot use step-based size with "${t}"!`,this);const o=n.step,a=(i=this.getScaleResolution(t=="width"?"x":"y"))==null?void 0:i.getScale();if(a){let s=0;if(rr(a.type))s=a.domain().length;else if(["locus","index"].includes(a.type)){const l=a.domain();s=ds(l)-l[0]}else throw new ji(`Cannot use step-based size with "${a.type}" scale!`,this);const u=a;return s=ud(s,u.paddingInner(),u.paddingOuter()),{px:s*o,grow:0}}else throw new ji("Cannot use 'step' size with missing scale!",this)}else return(n&&Dy(n))??(r?void 0:{px:0,grow:1})},Zl=new WeakSet,Og=function(t){const n=[];let r=this;do n.push(r),r=r[t];while(r);return n};function tD(e){return"unitsPerPixel"in e}function nD(e){const t=e.spec.opacity;if(t!==void 0){if(Ct(t))return n=>n*t;if(tD(t)){const n=o=>{var s;const a=(s=e.getScaleResolution(o))==null?void 0:s.getScale();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 ji("Cannot find a resolved quantitative scale for dynamic opacity!",e);const i=td().domain(t.unitsPerPixel).range(t.values).clamp(!0);return o=>{const s=cu(r.domain())/1e3;return i(s)*o}}else if(_y(t)){const n=e.context.paramBroker.createExpression(t.expr);return r=>n(null)*r}}return n=>n}const Ry=e=>!!(e!=null&&e.step);class qi extends eD{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===qs)return n;if(n!==JB){t.beforeChildren&&t.beforeChildren(this);for(const r of this){const i=r.visit(t);if(i===qs)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 qi)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,qs}),n}getDefaultResolution(t,n){return"shared"}}const My=1;function a0(){let e=[0,1],t=[0,1],n=1,r=1,i=0,o=0,a=.5,s=0;const l=f=>(f+a-e[0])/n*r+t[0];return l.invert=f=>(f-t[0])/r*n+e[0]-a,l.domain=function(f){if(arguments.length){e=Y_(f),n=e[1]-e[0];const c=e[0]===0&&e[0]===0;if(n<My&&!c){n=My;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(f){return arguments.length?(t=[...f],r=t[1]-t[0],l):t},l.numberingOffset=function(f){return arguments.length?(s=f,l):s},l.padding=function(f){return arguments.length?(o=f,i=Math.min(1,f),l):i},l.paddingInner=function(f){return arguments.length?(i=Math.min(1,f),l):i},l.paddingOuter=function(f){return arguments.length?(o=f,l):o},l.align=function(f){return arguments.length?(a=Math.max(0,Math.min(1,f)),l):a},l.step=()=>r/n,l.bandwidth=()=>l.step(),l.ticks=f=>{const c=l.align(),h=l.numberingOffset();return mu(e[0]-c+h,e[1]-c+h,Math.min(f,Math.ceil(n))).filter(Number.isInteger).map(d=>d-s)},l.tickFormat=(f,c)=>{if(c)throw new Error("Index scale's tickFormat does not support a specifier!");const d=bi(e[0],e[1],Math.min(f,Math.ceil(n)))<1e5?gt(","):gt(".3s");return p=>d(p+s)},l.copy=()=>a0().domain(e).range(t).paddingInner(i).paddingOuter(o).numberingOffset(s),l}function rD(){const e=a0().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(f=>t.toChromosome(f)),u=Math.max(1,bi(i[0],i[1],r)),l=[];for(let f=a.index;f<=s.index;f++){const c=t.chromosomes[f],h=Math.max(c.continuousStart+u,i[0]-(i[0]-c.continuousStart)%u),d=Math.min(c.continuousEnd-u/4,i[1]+1);for(let p=h;p<=d;p+=u){const b=p-o;b>=i[0]&&b<i[1]&&l.push(b)}}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=bi(o[0],o[1],Math.min(r,Math.ceil(a)))<1e6?gt(","):gt(".3s"),f=c=>c-t.toChromosome(c).continuousStart;return c=>l(f(c)+s)};const n=e.copy;return e.copy=()=>n().genome(t),e}function iD(e){return e.type=="locus"}function If(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||Wo(a)&&Wo(s)||Wo(a)&&s===!0||a===!0&&Rt(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(Wo(l))Wo(u)&&(r[s]=If([l,u],s));else if(Wo(u)){if(!(l===!0||l===void 0))throw new Error("Bug in merge! Target is: "+l);r[s]=If([{},u],s)}else r[s]=u}}};for(const a of e)o(a);return r}function Wo(e){return Rt(e)&&!Array.isArray(e)}/*!
222
260
  * Adapted from vega-encode:
223
261
  * https://github.com/vega/vega/blob/master/packages/vega-encode/src/ticks.js
224
262
  *
@@ -226,7 +264,7 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
226
264
  * All rights reserved.
227
265
  *
228
266
  * BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
229
- */function By(e,t,n){return kt(t)&&n!=null&&(t=Math.min(t,~~(af(e.domain())/n)||1)),Mt(t)&&(t.step,t=t.interval),t}function Dy(e,t,n){var r=e.range(),i=Math.floor(r[0]),o=Math.ceil(mn(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],mn(t)];t.length>n&&t.length>=3;)t=t.filter(function(s,f){return!(f%2)});t.length<3&&(t=a)}return t}function WB(e,t){return e.bins?Dy(e,YB(e.bins,t)):e.ticks?e.ticks(t):e.domain()}function YB(e,t){var n=e.length,r=~~(n/(t||n));return r<2?e.slice():e.filter(function(i,o){return!(o%r)})}function QB(e,t,n){var r=e.tickFormat?e.tickFormat(t,n):n?pt(n):String;if(Ob(e.type)){var i=$B(n);r=e.bins?i:XB(r,i)}return r}function XB(e,t){return function(n){return e(n)?t(n):""}}function $B(e){var t=Ar(e||",");if(t.precision==null){switch(t.precision=12,t.type){case"%":t.precision-=2;break;case"e":t.precision-=1;break}return KB(pt(t),pt(".1f")(1)[1])}else return pt(t)}function KB(e,t){return function(n){var r=e(n),i=r.indexOf(t),o,a;if(i<0)return r;for(o=JB(r,i),a=o<r.length?r.slice(o):"";--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+a}}function JB(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}/*!
267
+ */function Py(e,t,n){return Ct(t)&&n!=null&&(t=Math.min(t,~~(cu(e.domain())/n)||1)),Rt(t)&&(t.step,t=t.interval),t}function Ly(e,t,n){var r=e.range(),i=Math.floor(r[0]),o=Math.ceil(gn(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],gn(t)];t.length>n&&t.length>=3;)t=t.filter(function(s,u){return!(u%2)});t.length<3&&(t=a)}return t}function oD(e,t){return e.bins?Ly(e,aD(e.bins,t)):e.ticks?e.ticks(t):e.domain()}function aD(e,t){var n=e.length,r=~~(n/(t||n));return r<2?e.slice():e.filter(function(i,o){return!(o%r)})}function sD(e,t,n){var r=e.tickFormat?e.tickFormat(t,n):n?gt(n):String;if(Gb(e.type)){var i=uD(n);r=e.bins?i:lD(r,i)}return r}function lD(e,t){return function(n){return e(n)?t(n):""}}function uD(e){var t=Sr(e||",");if(t.precision==null){switch(t.precision=12,t.type){case"%":t.precision-=2;break;case"e":t.precision-=1;break}return fD(gt(t),gt(".1f")(1)[1])}else return gt(t)}function fD(e,t){return function(n){var r=e(n),i=r.indexOf(t),o,a;if(i<0)return r;for(o=cD(r,i),a=o<r.length?r.slice(o):"";--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+a}}function cD(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}/*!
230
268
  * Adapted from vega-encode:
231
269
  * https://github.com/vega/vega/blob/master/packages/vega-encode/src/Scale.js
232
270
  *
@@ -234,52 +272,57 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
234
272
  * All rights reserved.
235
273
  *
236
274
  * BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
237
- */const eD="locus",tD="index";var nD=5;function rD(e){const t=e.type;return!e.bins&&(t===Do||t===xs||t===As)}function Ry(e){return xt(e)&&![Ln,tD,eD].includes(e)}function Fy(e){return e||{warn:(t,...n)=>console.warn(t,...n)}}var iD=lf(["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 My(e,t,n){n=Fy(n);for(const r in e)if(!iD[r]){if(r==="padding"&&Ry(t.type))continue;Pt(t[r])?t[r](e[r]):n.warn("Unsupported scale property: "+r)}hD(t,e,cD(t,e,lD(t,e,n)))}function oD(e,t){const n=aD(e),r=Ae(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return!e.domain&&xt(i.type)&&(e.domain=[0,0]),My(e,i,t),i}function aD(e){var t=e.type,n="",r;return t===Ln?Ln+"-"+Do:(sD(e)&&(r=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=r===2?Ln+"-":r===3?Ro+"-":""),(n+t||Do).toLowerCase())}function sD(e){const t=e.type;return xt(t)&&t!==Bb&&t!==Db&&(e.scheme||e.range&&e.range.length&&e.range.every(Pe))}function lD(e,t,n){if(!e.domain)return 0;n=Fy(n);var r=fD(e,t.domainRaw,n);if(r>-1)return r;var i=t.domain,o=e.type,a=t.zero||t.zero===void 0&&rD(e),s,f;return i?(Ry(o)&&t.padding&&i[0]!==mn(i)&&(i=uD(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&&(f=t.domainMid,(f<i[0]||f>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",f),i.splice(s,0,f))),e.domain(Py(o,i,n)),o===fd&&e.unknown(t.domainImplicit?Bh:void 0),t.nice&&e.nice&&e.nice(t.nice!==!0&&By(e,t.nice)||null),i.length):0}function fD(e,t,n){return t?(e.domain(Py(e.type,t,n)),t.length):-1}function uD(e,t,n,r,i,o){var a=Math.abs(mn(n)-n[0]),s=a/(a-2*r),f=e===Fr?Hg(t,null,s):e===As?Gc(t,null,s,.5):e===xs?Gc(t,null,s,i||1):e===Zf?h_(t,null,s,o||1):Gg(t,null,s);return t=t.slice(),t[0]=f[0],t[t.length-1]=f[1],t}function Py(e,t,n){if(Ob(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: "+sf(t))}return t}function cD(e,t,n){let r=t.bins;if(r&&!Ft(r)){const i=(r.start==null||r.stop==null)&&e.domain(),o=r.start==null?i[0]:r.start,a=r.stop==null?mn(i):r.stop,s=r.step;s||Qe("Scale bins parameter missing step property."),r=za(o,a+s,s)}return r?e.bins=r:e.bins&&delete e.bins,e.type===cd&&(r?!t.domain&&!t.domainRaw&&(e.domain(r),n=r.length):e.bins=e.domain()),n}function hD(e,t,n){var r=e.type,i=t.round||!1,o=t.range;if(t.rangeStep!=null)o=dD(r,t,n);else if(t.scheme&&(o=pD(r,t,n),Pt(o))){if(e.interpolator)return e.interpolator(o);Qe(`Scale type ${r} does not support interpolating color schemes.`)}if(o&&Yf(r))return e.interpolator(Qf(o0(o,t.reverse),t.interpolate,t.interpolateGamma));o&&t.interpolate&&e.interpolate?e.interpolate(zb(t.interpolate,t.interpolateGamma)):Pt(e.round)?e.round(i):Pt(e.rangeRound)&&e.interpolate(i?ws:Dr),o&&e.range(o0(o,t.reverse))}function dD(e,t,n){e!==Mb&&e!==ud&&Qe("Only band and point scales support rangeStep.");var r=(t.paddingOuter!=null?t.paddingOuter:t.padding)||0,i=e===ud?1:(t.paddingInner!=null?t.paddingInner:t.padding)||0;return[0,t.rangeStep*sd(n,i,r)]}function pD(e,t,n){var r=t.schemeExtent,i,o;return Ft(t.scheme)?o=Qf(t.scheme,t.interpolate,t.interpolateGamma):(i=t.scheme.toLowerCase(),o=dd(i),o||Qe(`Unrecognized scheme name: ${t.scheme}`)),n=e===Fb?n+1:e===cd?n-1:e===ld||e===Rb?+t.schemeCount||nD:n,Yf(e)?Ly(o,r,t.reverse):Pt(o)?R8(Ly(o,r),n):e===fd?o:o.slice(0,n)}function Ly(e,t,n){return Pt(e)&&(t||n)?D8(e,o0(t||[0,1],n)):e}function o0(e,t){return t?e.slice().reverse():e}const Ny=pt(",d");function gD(e,t){return e.chrom+":"+Ny(Math.floor(e.pos+1))+"-"+(e.chrom!=t.chrom?t.chrom+":":"")+Ny(Math.ceil(t.pos))}const mD="https://genomespy.app/data/genomes/";class bD{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=mD;try{this.setChromSizes(yD(await Ef({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=xo(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 gD(...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 yD(e){return D_(e).filter(t=>/^chr[0-9A-Z]+$/.test(t[0])).map(([t,n])=>({name:t,size:parseInt(n)}))}function Oy(e){return Mt(e)&&"chrom"in e}function wD(e){return e.every(Oy)}class Hs extends Array{constructor(){super(),this.type=void 0}extend(t){return this}extendAll(t){if(t instanceof Hs&&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 a0 extends Hs{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 zy extends Hs{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 Uy extends zy{constructor(){super(),this.type="nominal"}}class vD extends Hs{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 Gy={quantitative:a0,index:a0,locus:a0,nominal:Uy,ordinal:zy};function Hy(e,t){if(e=="quantitative"&&xD(t)){const n=new vD(t);return n.type=e,n}else if(Gy[e]){const n=new Gy[e];return n.type=e,t&&n.extendAll(t),n}throw new Error("Unknown type: "+e)}function xD(e){return e&&e.length>0&&e.length!=2&&e.every(t=>typeof t=="number")}function AD(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}function ED(e,t,n){return e*Math.pow(t/e,n)}Ae("index",i0,["continuous"]),Ae("locus",qB,["continuous"]),Ae("null",Xf,[]);const Vy="quantitative",jy="ordinal",qy="nominal",Zy="locus",_D="index";class SD{constructor(t){se(this,Xn);se(this,Bc);se(this,Ia);se(this,gr);se(this,Vl);se(this,Dc);se(this,Sg);se(this,jl);se(this,pr,void 0);se(this,ka,new Set);se(this,yt,void 0);this.channel=t,this.members=[],this.type=null,this.name=void 0}addEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);$(this,ka).add(n)}removeEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);$(this,ka).delete(n)}pushUnitView(t,n){var a;const r=pd(t,n),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&&!Ts(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})}isExplicitDomain(){return!!this.getConfiguredDomain()}isDomainInitialized(){const t=$(this,yt);if(!t)return!1;const n=t.domain();return xt(t.type)?n.length>2||n.length==2&&(n[0]!==0||n[1]!==0):n.length>0}getScaleProps(){return qo(this,"scaleProps",()=>{const t=te(this,Bc,KE).call(this);if(t===null||t.type=="null")return{type:"null"};const n={...te(this,Dc,JE).call(this,this.type),...t};n.type||(n.type=CD(this.channel,this.type));const r=te(this,Ia,Oc).call(this);return r&&r.length>0?n.domain=r:Mr(n.type)&&(n.domain=new Uy),!n.domain&&n.domainMid!==void 0&&(n.domain=[n.domainMin??0,n.domainMax??1]),this.channel=="y"&&Mr(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),kD(n,this.channel),n})}getConfiguredDomain(){return te(this,jl,Pg).call(this,t=>Ts(t.channel)?void 0:t.view.getConfiguredDomain(t.channel))}getDataDomain(){return te(this,jl,Pg).call(this,t=>Ts(t.channel)?void 0:t.view.extractDataDomain(t.channel))}reconfigure(){if($(this,yt)&&$(this,yt).type!="null"){const t=this.isDomainInitialized(),n=$(this,yt).domain();py(this,"scaleProps");const r=this.getScaleProps();if(My(r,$(this,yt)),xt($(this,yt).type)&&Ct(this,pr,te(this,Vl,Mg).call(this)),!t){te(this,Xn,di).call(this);return}const i=$(this,yt).domain();Cf(i,n)||(this.isZoomable()?$(this,yt).domain(n):te(this,gr,yo).call(this)?($(this,yt).domain(n),this.zoomTo(i,500)):te(this,Xn,di).call(this))}}getScale(){if($(this,yt))return $(this,yt);const t=this.getScaleProps(),n=oD(t);return Ct(this,yt,n),ZB(n)&&n.genome(this.getGenome()),xt(n.type)&&Ct(this,pr,te(this,Vl,Mg).call(this)),n}getDomain(){return this.getScale().domain()}getComplexDomain(){var t;return((t=this.getGenome())==null?void 0:t.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return te(this,gr,yo).call(this)&&Cf(te(this,Ia,Oc).call(this),this.getDomain())}isZoomable(){return te(this,gr,yo).call(this)&&!!this.getScaleProps().zoom}zoom(t,n,r){if(!te(this,gr,yo).call(this))return!1;const i=this.getScale(),o=i.domain();let a=[...o],s=i.invert(n);switch(this.getScaleProps().reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":a=f_(a,r||0),a=Gg(a,s,t);break;case"log":a=u_(a,r||0),a=Hg(a,s,t);break;case"pow":case"sqrt":{const f=i;a=c_(a,r||0,f.exponent()),a=Gc(a,s,t,f.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return $(this,pr)&&(a=d_(a,$(this,pr)[0],$(this,pr)[1])),[0,1].some(f=>a[f]!=o[f])?(i.domain(a),te(this,Xn,di).call(this),!0):!1}async zoomTo(t,n=!1){var s;if(La(n)&&(n=n?700:0),!te(this,gr,yo).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,o=this.getScale(),a=o.domain();if(n>0&&a.length==2){const f=a[1]-a[0],l=a[0]+f/2,u=r[1]-r[0],c=r[0]+u/2;await i.transition({duration:n,easingFunction:AD,onUpdate:h=>{const d=ED(f,u,h),p=(f-d)/(f-u),b=p*c+(1-p)*l;o.domain([b-d/2,b+d/2]),te(this,Xn,di).call(this)}}),o.domain(r),te(this,Xn,di).call(this)}else o.domain(r),i==null||i.requestRender(),te(this,Xn,di).call(this)}resetZoom(){if(!te(this,gr,yo).call(this))throw new Error("Not a zoomable scale!");const t=this.getDomain(),n=te(this,Ia,Oc).call(this);return[0,1].some(r=>n[r]!=t[r])?($(this,yt).domain(n),te(this,Xn,di).call(this),!0):!1}getZoomLevel(){return this.isZoomable()?af($(this,pr))/af(this.getScale().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.getScale();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 Oy(t)?this.getGenome().toContinuous(t.chrom,t.pos):t}fromComplexInterval(t){return this.type==="locus"&&wD(t)?this.getGenome().toContinuousInterval(t):t}}pr=new WeakMap,ka=new WeakMap,yt=new WeakMap,Xn=new WeakSet,di=function(){for(const t of $(this,ka).values())t({type:"domain",scaleResolution:this})},Bc=new WeakSet,KE=function(){return qo(this,"mergedScaleProps",()=>{const t=this.members.map(n=>pd(n.view,n.channel).scale).filter(n=>n!==void 0);return _u(t,"scale",["domain"])})},Ia=new WeakSet,Oc=function(){return this.getConfiguredDomain()??(this.type==Zy?this.getGenome().getExtent():this.getDataDomain())},gr=new WeakSet,yo=function(){const t=this.getScale().type;return xt(t)},Vl=new WeakSet,Mg=function(){const t=this.getScaleProps(),n=t.zoom;if(ID(n)&&Ft(n.extent))return this.fromComplexInterval(n.extent);if(n)return t.type=="locus"?this.getGenome().getExtent():$(this,yt).domain()},Dc=new WeakSet,JE=function(t){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),Is(n)?r.nice=!this.isExplicitDomain():Mi(n)?r.scheme=t==qy?"tableau10":t==jy?"blues":"viridis":$f(n)?r.range=n=="shape"?["circle","square","triangle-up","cross","diamond"]:[]:n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r},Sg=new WeakSet,xz=function(){return this.members.map(t=>t.view.getPathString()).join(", ")},jl=new WeakSet,Pg=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 CD(e,t){if(t==_D||t==Zy){if(jb(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][[qy,jy,Vy].indexOf(t)]:t==Vy?"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 kD(e,t){Is(t)&&e.type!=="ordinal"&&(e.range=[0,1]),t=="opacity"&&xt(e.type)&&(e.clamp=!0)}function ID(e){return Mt(e)}function s0(e){const t=new Set;function n(r){for(const i of Object.values(r.resolutions.scale))t.add(i)}for(const r of Yt(e)){r.visit(n);for(const i of r.getDataAncestors()){if(!i.options.contributesToScaleDomain)break;n(i)}}t.forEach(r=>r.reconfigure())}function l0(...e){for(const t of e)if(t!==void 0)return t}class TD{constructor(t){this.channel=t,this.members=[]}get scaleResolution(){var t;return(t=ss(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 qo(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:_u(t.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const t=o=>{var s;const a=pd(o.view,o.channel);if(!vn(a))return{member:o,explicitTitle:l0("axis"in a?(s=a.axis)==null?void 0:s.title:void 0,a.title),implicitTitle:l0(Cs(a)?a.field:void 0,gd(a)?a.expr:void 0)}},n=this.members.map(t),r=n.filter(o=>{var a;if(Ts(o.member.channel)&&!o.explicitTitle){const s=Fi(o.member.channel);return((a=n.find(f=>f.member.view==o.member.view&&f.member.channel==s))==null?void 0:a.explicitTitle)===void 0}return!0}),i=new Set(r.map(o=>l0(o.explicitTitle,o.implicitTitle)).filter(Pe));return i.size?[...i].join(", "):null}}const BD={point:wB,rect:cB,rule:EB,link:TB,text:LB};class Qt extends Vi{constructor(t,n,r,i,o,a){super(t,n,r,i,o,a),this.spec=t;const s=BD[this.getMarkType()];if(s)this.mark=new s(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.resolve(),this.coords=void 0,this.needsAxes={x:!0,y:!0}}render(t,n,r={}){this.isConfiguredVisible()&&(this.coords=n,t.pushView(this,n),t.renderMark(this.mark,r),t.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(t){t||(this.resolve("scale"),this.resolve("axis"));const n=this.mark.encoding;for(const[r,i]of Object.entries(n)){if(!Ut(i))continue;const o=Fi(i.resolutionChannel??r);if(!Pi(o)||t=="axis"&&!Is(o))continue;let a=this;for(;(a.getConfiguredOrDefaultResolution(o,t)=="forced"||a.dataParent instanceof Vi&&["shared","excluded","forced"].includes(a.dataParent.getConfiguredOrDefaultResolution(o,t)))&&a.getConfiguredOrDefaultResolution(o,t)!="excluded";)a=a.dataParent;t=="axis"&&Is(r)&&jb(o)?(a.resolutions[t][o]||(a.resolutions[t][o]=new TD(o)),a.resolutions[t][o].pushUnitView(this,r)):t=="scale"&&Pi(r)&&(a.resolutions[t][o]||(a.resolutions[t][o]=new SD(o)),a.resolutions[t][o].pushUnitView(this,r))}}getAccessor(t){return this._cache("accessor/"+t,()=>{const n=this.mark.encoding;if(n&&n[t])return this.context.accessorFactory.createAccessor(n[t])})}getFacetAccessor(t){const n=this.getAccessor("sample");return n||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}_validateDomainQuery(t){if(Ts(t))throw new Error(`getDomain(${t}), must only be called for primary channels!`);const n=this.mark.encoding[t];if(!Ut(n))throw new Error("The channel has no scale, cannot get domain!");return n}getConfiguredDomain(t){const n=this._validateDomainQuery(t),r=n&&n.scale&&n.scale.domain;if(r){const i=this.getScaleResolution(n.resolutionChannel??t);return Hy(n.type??"nominal",i.fromComplexInterval(r))}}extractDataDomain(t){const r=this._validateDomainQuery(t).type??"nominal",i=s=>{let f;const l=this.mark.encoding[s];if(l){const u=this.context.accessorFactory.createAccessor(l);if(u)if(f=Hy(r),u.constant)f.extend(u({}));else{const c=this.getCollector();c!=null&&c.completed&&c.visitData(h=>f.extend(u(h)))}}return f};let o=i(t);const a=md[t];if(a){const s=i(a);s&&o.extendAll(s)}return o}getZoomLevel(){const t=n=>{var r;return((r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())??1};return Mo.map(t).reduce((n,r)=>n*r,1)}propagateInteractionEvent(t){this.handleInteractionEvent(void 0,t,!0),t.target=this,!t.stopped&&this.handleInteractionEvent(void 0,t,!1)}getDefaultResolution(t,n){return t=="x"?"shared":"independent"}}function*f0(e,t=[]){for(const[n,r]of e.entries())if(r instanceof Map)for(const i of f0(r,[...t,n]))yield i;else yield[[...t,n],r]}class Wy extends Je{get behavior(){return t0}constructor(t){super(),this.params=t??{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new gi([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(t){this._data.push(t)}beginBatch(t){mB(t)&&(this._data=[],this.facetBatches.set(Yt(t.facetId),this._data))}complete(){var i,o;const t=(i=this.params)==null?void 0:i.sort,n=t?Vg(t.field,t.order):void 0,r=a=>{n&&a.sort(n)};if((o=this.params.groupby)!=null&&o.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const a=this.params.groupby.map(f=>Fe(f)),s=uf(this._data,...a);this.facetBatches.clear();for(const[f,l]of f0(s))this.facetBatches.set(f,l)}for(const a of this.facetBatches.values())r(a);if(this.children.length)for(const[a,s]of this.facetBatches.entries()){if(a){const f={type:"facet",facetId:a};for(const l of this.children)l.beginBatch(f)}for(const f of s)this._propagate(f)}super.complete();for(const a of this.observers)a(this)}getData(){switch(this._checkStatus(),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const t=this.facetBatches;return{[Symbol.iterator]:function*(){for(const r of t.values())for(let i=0;i<r.length;i++)yield r[i]}}}}}visitData(t){this._checkStatus();for(const n of this.facetBatches.values())for(let r=0;r<n.length;r++)t(n[r])}getItemCount(){let t=0;for(const n of this.facetBatches.values())t+=n.length;return t}_checkStatus(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")}}class Su{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 f=this.ids[a],l=this.values[a];const u=this.values[s];if(s<this.length&&u<l&&(a=s,f=this.ids[s],l=u),l>=r)break;this.ids[o]=f,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 DD extends Je{get behavior(){return zn}constructor(t){super(),this.params=t,this.startAccessor=Fe(t.start),this.endAccessor=Fe(t.end),this.chromAccessor=t.chrom?Fe(t.chrom):n=>{},this.weightAccessor=t.weight?Fe(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 Su}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 f,l,u,c=0,h;const d=this.ends;d.clear();const p=(y,w,_)=>{if(y==w)return;let C=!1;f&&(f[t]===_?(f[n]=w,C=!0):f[t]!=0&&this._propagate(f)),C||(f=this.createSegment(y,w,_,u))},b=()=>{let y;for(;(y=d.peekValue())!==void 0;)p(h,y,c),h=y,c-=d.pop();h=void 0,f&&(this._propagate(f),f=void 0)};this.handle=y=>{const w=i(y);let _;for(;(_=d.peekValue())!==void 0&&_<w;)p(h,_,c),h=_,c-=d.pop();if(r){let S=a(y);S!==l&&(b(),u=S,l=u)}h!==void 0&&p(h,w,c),h=w;const C=s(y);c+=C,d.push(C,o(y))},this.complete=()=>{b(),super.complete()}}}function RD(e,t,n=0,r=e.length){const i=new Su,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 f;for(;(f=i.pop())!==void 0;)s.push(n+f);return s.reverse()}class FD{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 MD extends Je{get behavior(){return t0}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=Fe(this.params.pos),this.posBisector=ff(this.posAccessor),this.scoreAccessor=Fe(this.params.score),this.widthAccessor=Fe(this.params.width),this.laneAccessor=this.params.lane?Fe(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 FD(200));this.schedule(),super.complete()}_filterAndPropagate(){var a;super.reset();const t=this.resolution.getScale(),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=RD(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of o){const f=this._data[s],l=t(this.posAccessor(f))*n,u=this.widthAccessor(f)/2+this.padding;this.reservationMaps.get(this.laneAccessor(f)).reserve(l-u,l+u)&&this._propagate(f)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(t){this._data.push(t)}}class PD extends Je{constructor(t){super(),this.params=t,this.predicate=void 0}initialize(){this.predicate=Ff(this.params.expr,this.getGlobalObject())}handle(t){this.predicate(t)&&this._propagate(t)}}class LD extends Je{get behavior(){return zn}constructor(t){super();const n=t.index;if(t.fields){const r=Yt(t.fields).map(o=>Fe(o)),i=Yt(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((f,l)=>f(o)??[]),s=a[0].length;for(let f=0;f<s;f++){const l=Object.assign({},o);for(let u=0;u<r.length;u++)l[i[u]]=f<a[u].length?a[u][f]:null;n&&(l[n]=f),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 ND="0".charCodeAt(0);function*OD(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-ND}yield r}class zD extends Je{get behavior(){return zn}constructor(t){super();const n=Fe(t.exons??"exons"),r=Fe(t.start??"start"),[i,o]=t.as||["exonStart","exonEnd"];this.handle=a=>{let s=r(a),f=s,l=!0;const u=n(a);for(const c of OD(u)){if(l)f=s+c;else{s=f+c;const h=Object.assign({},a);h[i]=f,h[o]=s,this._propagate(h)}l=!l}}}}class UD extends Je{get behavior(){return zn}constructor(t){super();const n=Yt(t.field).map(o=>Fe(o)),r=Yt(t.separator),i=Yt(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(f=>!f(o)))return;const a=n.map((f,l)=>f(o).split(r[l]));GD(a,o);const s=a[0].length;for(let f=0;f<s;f++){const l=Object.assign({},o);for(let u=0;u<n.length;u++)l[i[u]]=a[u][f];this._propagate(l)}}}}function GD(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 HD extends Je{get behavior(){return Gr}constructor(t){super(),this.params=t,this.as=t.as,this.fn=void 0}initialize(){this.fn=Ff(this.params.expr,this.getGlobalObject())}handle(t){t[this.as]=this.fn(t),this._propagate(t)}}class Yy extends Je{get behavior(){return Gr}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=Fe(t.chrom),a=Yt(t.pos).map(p=>Fe(p)),s=Yt(t.as);if(a.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const f=Yt(t.offset);let l;if(f.length==0)l=new Array(a.length).fill(0);else if(f.length==1)l=new Array(a.length).fill(f[0]);else if(f.length==a.length)l=f;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(t.offset)}!`);const u=new Function("datum","chromOffset","posAccessors",s.map((p,b)=>`datum[${JSON.stringify(p)}] = chromOffset + +posAccessors[${b}](datum) - ${l[b]};`).join(`
238
- `));let c,h=0;const d=p=>{if(p!==c){if(h=i.cumulativeChromPositions.get(p),h===void 0)throw new Error("Unknown chromosome/contig: "+p);c=p}return h};this.handle=p=>{u(p,d(o(p)),a),this._propagate(p)}}}const Qy={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 VD extends Je{get behavior(){return Gr}constructor(t){super();const n=Kd(Qy),r=Fe(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 jD=65536;class qD extends Je{get behavior(){return Gr}constructor(t){super(),this.params=t}reset(){super.reset(),this.initialize()}initialize(){const t=this.params,n=t.as||"lane",r=kt(t.spacing)?t.spacing:1,i=Fe(t.start),o=Fe(t.end);if(!t.preference!=!t.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(t.preference){const a=new Float64Array(jD),s=Fe(t.preference),f=t.preferredOrder;let l=1/0;this.handle=u=>{const c=i(u);c<l&&a.fill(-1/0),l=c;const h=f.indexOf(s(u));let d=-1;if(h>=0&&a[h]<c)d=h;else{const p=i(u);for(d=0;d<a.length&&!(a[d]<p);d++);if(d>=a.length)throw new Error("Out of lanes!")}a[d]=o(u)+r,u[n]=d,this._propagate(u)}}else{const a=new Su,s=new Su;let f=-1/0,l=0;this.handle=u=>{const c=i(u);for(;a.length&&(a.peekValue()<=c||c<f);){const d=a.pop();s.push(d,d)}f=c;let h=s.pop();h===void 0&&(h=l++),u[n]=h,this._propagate(u),a.push(h,o(u)+r)}}}}class ZD extends Je{get behavior(){return zn}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=>Fe(i)),r=t.as?t.as:n.map(vo);this.handle=i=>{const o={};for(let a=0;a<n.length;a++)o[r[a]]=n[a](i);this._propagate(o)}}}class WD extends Je{get behavior(){return Gr}constructor(t){super();const n=new RegExp(t.regex),r=typeof t.as=="string"?[t.as]:t.as,i=Fe(t.field);this.handle=o=>{const a=i(o);if(Pe(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 f=0;f<r.length;f++)o[r[f]]=s[f+1]}else if(t.skipInvalidInput)for(let f=0;f<r.length;f++)o[r[f]]=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 YD extends Je{get behavior(){return zn}constructor(t){super();const n=Yt(t.columnRegex).map(h=>new RegExp(h)),r=Yt(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,f;const l=h=>{var y;const d=Object.keys(h),p=new Map;for(const[w,_]of n.entries())for(const C of d){const S=(y=_.exec(C))==null?void 0:y[1];if(S!==void 0){let T=p.get(S);T||(T=[],p.set(S,T)),T[w]=C}}a=[...p.entries()],s=d.filter(w=>!n.some(_=>_.test(w))&&!(i&&i.test(w)));const b=[...s.map(w=>JSON.stringify(w)+": datum["+JSON.stringify(w)+"]"),JSON.stringify(o)+": sampleId",...r.map(w=>JSON.stringify(w)+": null")];f=new Function("datum","sampleId",`return {
275
+ */const hD="locus",dD="index";var pD=5;function gD(e){const t=e.type;return!e.bins&&(t===Fo||t===ks||t===Ts)}function Ny(e){return bt(e)&&![Pn,dD,hD].includes(e)}function Oy(e){return e||{warn:(t,...n)=>console.warn(t,...n)}}var mD=du(["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 zy(e,t,n){n=Oy(n);for(const r in e)if(!mD[r]){if(r==="padding"&&Ny(t.type))continue;Mt(t[r])?t[r](e[r]):n.warn("Unsupported scale property: "+r)}_D(t,e,ED(t,e,vD(t,e,n)))}function bD(e,t){const n=yD(e),r=Ae(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return!e.domain&&bt(i.type)&&(e.domain=[0,0]),zy(e,i,t),i}function yD(e){var t=e.type,n="",r;return t===Pn?Pn+"-"+Fo:(wD(e)&&(r=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=r===2?Pn+"-":r===3?Ro+"-":""),(n+t||Fo).toLowerCase())}function wD(e){const t=e.type;return bt(t)&&t!==Rb&&t!==Mb&&(e.scheme||e.range&&e.range.length&&e.range.every(Pe))}function vD(e,t,n){if(!e.domain)return 0;n=Oy(n);var r=xD(e,t.domainRaw,n);if(r>-1)return r;var i=t.domain,o=e.type,a=t.zero||t.zero===void 0&&gD(e),s,u;return i?(Ny(o)&&t.padding&&i[0]!==gn(i)&&(i=AD(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(Uy(o,i,n)),o===cd&&e.unknown(t.domainImplicit?Fh:void 0),t.nice&&e.nice&&e.nice(t.nice!==!0&&Py(e,t.nice)||null),i.length):0}function xD(e,t,n){return t?(e.domain(Uy(e.type,t,n)),t.length):-1}function AD(e,t,n,r,i,o){var a=Math.abs(gn(n)-n[0]),s=a/(a-2*r),u=e===Lr?Wg(t,null,s):e===Ts?Vc(t,null,s,.5):e===ks?Vc(t,null,s,i||1):e===Qu?y_(t,null,s,o||1):Zg(t,null,s);return t=t.slice(),t[0]=u[0],t[t.length-1]=u[1],t}function Uy(e,t,n){if(Gb(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: "+hu(t))}return t}function ED(e,t,n){let r=t.bins;if(r&&!Ft(r)){const i=(r.start==null||r.stop==null)&&e.domain(),o=r.start==null?i[0]:r.start,a=r.stop==null?gn(i):r.stop,s=r.step;s||Qe("Scale bins parameter missing step property."),r=ja(o,a+s,s)}return r?e.bins=r:e.bins&&delete e.bins,e.type===dd&&(r?!t.domain&&!t.domainRaw&&(e.domain(r),n=r.length):e.bins=e.domain()),n}function _D(e,t,n){var r=e.type,i=t.round||!1,o=t.range;if(t.rangeStep!=null)o=SD(r,t,n);else if(t.scheme&&(o=CD(r,t,n),Mt(o))){if(e.interpolator)return e.interpolator(o);Qe(`Scale type ${r} does not support interpolating color schemes.`)}if(o&&$u(r))return e.interpolator(Ku(s0(o,t.reverse),t.interpolate,t.interpolateGamma));o&&t.interpolate&&e.interpolate?e.interpolate(Hb(t.interpolate,t.interpolateGamma)):Mt(e.round)?e.round(i):Mt(e.rangeRound)&&e.interpolate(i?Ss:Mr),o&&e.range(s0(o,t.reverse))}function SD(e,t,n){e!==Nb&&e!==hd&&Qe("Only band and point scales support rangeStep.");var r=(t.paddingOuter!=null?t.paddingOuter:t.padding)||0,i=e===hd?1:(t.paddingInner!=null?t.paddingInner:t.padding)||0;return[0,t.rangeStep*ud(n,i,r)]}function CD(e,t,n){var r=t.schemeExtent,i,o;return Ft(t.scheme)?o=Ku(t.scheme,t.interpolate,t.interpolateGamma):(i=t.scheme.toLowerCase(),o=gd(i),o||Qe(`Unrecognized scheme name: ${t.scheme}`)),n=e===Lb?n+1:e===dd?n-1:e===fd||e===Pb?+t.schemeCount||pD:n,$u(e)?Gy(o,r,t.reverse):Mt(o)?j8(Gy(o,r),n):e===cd?o:o.slice(0,n)}function Gy(e,t,n){return Mt(e)&&(t||n)?V8(e,s0(t||[0,1],n)):e}function s0(e,t){return t?e.slice().reverse():e}const Hy=gt(",d");function kD(e,t){return e.chrom+":"+Hy(Math.floor(e.pos+1))+"-"+(e.chrom!=t.chrom?t.chrom+":":"")+Hy(Math.ceil(t.pos))}const TD="https://genomespy.app/data/genomes/";class ID{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=TD;try{this.setChromSizes(BD(await Cu({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=Er(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 kD(...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 BD(e){return N_(e).filter(t=>/^chr[0-9A-Z]+$/.test(t[0])).map(([t,n])=>({name:t,size:parseInt(n)}))}function Vy(e){return Rt(e)&&"chrom"in e}function DD(e){return e.every(Vy)}class Zs extends Array{constructor(){super(),this.type=void 0}extend(t){return this}extendAll(t){if(t instanceof Zs&&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 l0 extends Zs{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 jy extends Zs{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 qy extends jy{constructor(){super(),this.type="nominal"}}class FD extends Zs{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 Zy={quantitative:l0,index:l0,locus:l0,nominal:qy,ordinal:jy};function Wy(e,t){if(e=="quantitative"&&RD(t)){const n=new FD(t);return n.type=e,n}else if(Zy[e]){const n=new Zy[e];return n.type=e,t&&n.extendAll(t),n}throw new Error("Unknown type: "+e)}function RD(e){return e&&e.length>0&&e.length!=2&&e.every(t=>typeof t=="number")}function MD(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}function PD(e,t,n){return e*Math.pow(t/e,n)}Ae("index",a0,["continuous"]),Ae("locus",rD,["continuous"]),Ae("null",Ju,[]);const Yy="quantitative",Qy="ordinal",Xy="nominal",$y="locus",LD="index";class ND{constructor(t){re(this,Qn);re(this,Fc);re(this,Ba);re(this,mr);re(this,Wl);re(this,Rc);re(this,Bg);re(this,Yl);re(this,gr,void 0);re(this,Ia,new Set);re(this,vt,void 0);this.channel=t,this.members=[],this.type=null,this.name=void 0}addEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);W(this,Ia).add(n)}removeEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);W(this,Ia).delete(n)}pushUnitView(t,n){var a;const r=md(t,n),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&&!Ms(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})}isExplicitDomain(){return!!this.getConfiguredDomain()}isDomainInitialized(){const t=W(this,vt);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}getScaleProps(){return Zo(this,"scaleProps",()=>{const t=te(this,Fc,i_).call(this);if(t===null||t.type=="null")return{type:"null"};const n={...te(this,Rc,o_).call(this,this.type),...t};n.type||(n.type=OD(this.channel,this.type));const r=te(this,Ba,Uc).call(this);return r&&r.length>0?n.domain=r:rr(n.type)&&(n.domain=new qy),!n.domain&&n.domainMid!==void 0&&(n.domain=[n.domainMin??0,n.domainMax??1]),this.channel=="y"&&rr(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),zD(n,this.channel),n})}getConfiguredDomain(){return te(this,Yl,Ug).call(this,t=>Ms(t.channel)?void 0:t.view.getConfiguredDomain(t.channel))}getDataDomain(){return te(this,Yl,Ug).call(this,t=>Ms(t.channel)?void 0:t.view.extractDataDomain(t.channel))}reconfigure(){if(W(this,vt)&&W(this,vt).type!="null"){const t=this.isDomainInitialized(),n=W(this,vt).domain();wy(this,"scaleProps");const r=this.getScaleProps();if(zy(r,W(this,vt)),bt(W(this,vt).type)&&Je(this,gr,te(this,Wl,zg).call(this)),!t){te(this,Qn,gi).call(this);return}const i=W(this,vt).domain();Iu(i,n)||(this.isZoomable()?W(this,vt).domain(n):te(this,mr,wo).call(this)?(W(this,vt).domain(n),this.zoomTo(i,500)):te(this,Qn,gi).call(this))}}getScale(){if(W(this,vt))return W(this,vt);const t=this.getScaleProps(),n=bD(t);return Je(this,vt,n),iD(n)&&n.genome(this.getGenome()),bt(n.type)&&Je(this,gr,te(this,Wl,zg).call(this)),n}getDomain(){return this.getScale().domain()}getComplexDomain(){var t;return((t=this.getGenome())==null?void 0:t.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return te(this,mr,wo).call(this)&&Iu(te(this,Ba,Uc).call(this),this.getDomain())}isZoomable(){return te(this,mr,wo).call(this)&&!!this.getScaleProps().zoom}zoom(t,n,r){if(!te(this,mr,wo).call(this))return!1;const i=this.getScale(),o=i.domain();let a=[...o],s=i.invert(n);switch(this.getScaleProps().reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":a=g_(a,r||0),a=Zg(a,s,t);break;case"log":a=m_(a,r||0),a=Wg(a,s,t);break;case"pow":case"sqrt":{const u=i;a=b_(a,r||0,u.exponent()),a=Vc(a,s,t,u.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return W(this,gr)&&(a=w_(a,W(this,gr)[0],W(this,gr)[1])),[0,1].some(u=>a[u]!=o[u])?(i.domain(a),te(this,Qn,gi).call(this),!0):!1}async zoomTo(t,n=!1){var s;if(Ga(n)&&(n=n?700:0),!te(this,mr,wo).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,o=this.getScale(),a=o.domain();if(n>0&&a.length==2){const u=a[1]-a[0],l=a[0]+u/2,f=r[1]-r[0],c=r[0]+f/2;await i.transition({duration:n,easingFunction:MD,onUpdate:h=>{const d=PD(u,f,h),p=(u-d)/(u-f),b=p*c+(1-p)*l;o.domain([b-d/2,b+d/2]),te(this,Qn,gi).call(this)}}),o.domain(r),te(this,Qn,gi).call(this)}else o.domain(r),i==null||i.requestRender(),te(this,Qn,gi).call(this)}resetZoom(){if(!te(this,mr,wo).call(this))throw new Error("Not a zoomable scale!");const t=this.getDomain(),n=te(this,Ba,Uc).call(this);return[0,1].some(r=>n[r]!=t[r])?(W(this,vt).domain(n),te(this,Qn,gi).call(this),!0):!1}getZoomLevel(){return this.isZoomable()?cu(W(this,gr))/cu(this.getScale().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.getScale();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 Vy(t)?this.getGenome().toContinuous(t.chrom,t.pos):t}fromComplexInterval(t){return this.type==="locus"&&DD(t)?this.getGenome().toContinuousInterval(t):t}}gr=new WeakMap,Ia=new WeakMap,vt=new WeakMap,Qn=new WeakSet,gi=function(){for(const t of W(this,Ia).values())t({type:"domain",scaleResolution:this})},Fc=new WeakSet,i_=function(){return Zo(this,"mergedScaleProps",()=>{const t=this.members.map(n=>md(n.view,n.channel).scale).filter(n=>n!==void 0);return If(t,"scale",["domain"])})},Ba=new WeakSet,Uc=function(){return this.getConfiguredDomain()??(this.type==$y?this.getGenome().getExtent():this.getDataDomain())},mr=new WeakSet,wo=function(){const t=this.getScale().type;return bt(t)},Wl=new WeakSet,zg=function(){const t=this.getScaleProps(),n=t.zoom;if(UD(n)&&Ft(n.extent))return this.fromComplexInterval(n.extent);if(n)return t.type=="locus"?this.getGenome().getExtent():W(this,vt).domain()},Rc=new WeakSet,o_=function(t){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),Rs(n)?r.nice=!this.isExplicitDomain():Li(n)?r.scheme=t==Xy?"tableau10":t==Qy?"blues":"viridis":ef(n)?r.range=n=="shape"?["circle","square","triangle-up","cross","diamond"]:[]:n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r},Bg=new WeakSet,Rz=function(){return this.members.map(t=>t.view.getPathString()).join(", ")},Yl=new WeakSet,Ug=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 OD(e,t){if(t==LD||t==$y){if(Wb(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][[Xy,Qy,Yy].indexOf(t)]:t==Yy?"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 zD(e,t){Rs(t)&&e.type!=="ordinal"&&(e.range=[0,1]),t=="opacity"&&bt(e.type)&&(e.clamp=!0)}function UD(e){return Rt(e)}function u0(e){const t=new Set;function n(r){for(const i of Object.values(r.resolutions.scale))t.add(i)}for(const r of Lt(e)){r.visit(n);for(const i of r.getDataAncestors()){if(!i.options.contributesToScaleDomain)break;n(i)}}t.forEach(r=>r.reconfigure())}function f0(...e){for(const t of e)if(t!==void 0)return t}class GD{constructor(t){this.channel=t,this.members=[]}get scaleResolution(){var t;return(t=ds(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 Zo(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:If(t.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const t=o=>{var s;const a=md(o.view,o.channel);if(!vn(a))return{member:o,explicitTitle:f0("axis"in a?(s=a.axis)==null?void 0:s.title:void 0,a.title),implicitTitle:f0(Mi(a)?a.field:void 0,bd(a)?a.expr:void 0)}},n=this.members.map(t),r=n.filter(o=>{var a;if(Ms(o.member.channel)&&!o.explicitTitle){const s=Pi(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=>f0(o.explicitTitle,o.implicitTitle)).filter(Pe));return i.size?[...i].join(", "):null}}const HD={point:DB,rect:EB,rule:PB,link:GB,text:YB};class Yt extends qi{constructor(t,n,r,i,o,a){super(t,n,r,i,o,a),this.spec=t;const s=HD[this.getMarkType()];if(s)this.mark=new s(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.resolve(),this.needsAxes={x:!0,y:!0}}render(t,n,r={}){super.render(t,n,r),this.isConfiguredVisible()&&(t.pushView(this,n),t.renderMark(this.mark,r),t.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(t){t||(this.resolve("scale"),this.resolve("axis"));const n=this.mark.encoding;for(const[r,i]of Object.entries(n)){if(!Ut(i))continue;const o=Pi(i.resolutionChannel??r);if(!Ni(o)||t=="axis"&&!Rs(o))continue;let a=this;for(;(a.getConfiguredOrDefaultResolution(o,t)=="forced"||a.dataParent instanceof qi&&["shared","excluded","forced"].includes(a.dataParent.getConfiguredOrDefaultResolution(o,t)))&&a.getConfiguredOrDefaultResolution(o,t)!="excluded";)a=a.dataParent;t=="axis"&&Rs(r)&&Wb(o)?(a.resolutions[t][o]||(a.resolutions[t][o]=new GD(o)),a.resolutions[t][o].pushUnitView(this,r)):t=="scale"&&Ni(r)&&(a.resolutions[t][o]||(a.resolutions[t][o]=new ND(o)),a.resolutions[t][o].pushUnitView(this,r))}}getAccessor(t){return this._cache("accessor/"+t,()=>{const n=this.mark.encoding;if(n&&n[t])return this.context.accessorFactory.createAccessor(n[t])})}getFacetAccessor(t){const n=this.getAccessor("sample");return n||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}_validateDomainQuery(t){if(Ms(t))throw new Error(`getDomain(${t}), must only be called for primary channels!`);const n=this.mark.encoding[t];if(!Ut(n))throw new Error("The channel has no scale, cannot get domain!");return n}getConfiguredDomain(t){const n=this._validateDomainQuery(t),r=n&&n.scale&&n.scale.domain;if(r){const i=this.getScaleResolution(n.resolutionChannel??t);return Wy(n.type??"nominal",i.fromComplexInterval(r))}}extractDataDomain(t){const r=this._validateDomainQuery(t).type??"nominal",i=s=>{let u;const l=this.mark.encoding[s];if(l){const f=this.context.accessorFactory.createAccessor(l);if(f)if(u=Wy(r),f.constant)u.extend(f({}));else{const c=this.getCollector();c!=null&&c.completed&&c.visitData(h=>u.extend(f(h)))}}return u};let o=i(t);const a=yd[t];if(a){const s=i(a);s&&o.extendAll(s)}return o}getZoomLevel(){const t=n=>{var r;return((r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())??1};return Po.map(t).reduce((n,r)=>n*r,1)}propagateInteractionEvent(t){this.handleInteractionEvent(void 0,t,!0),t.target=this,!t.stopped&&this.handleInteractionEvent(void 0,t,!1)}getDefaultResolution(t,n){return t=="x"?"shared":"independent"}}function*c0(e,t=[]){for(const[n,r]of e.entries())if(r instanceof Map)for(const i of c0(r,[...t,n]))yield i;else yield[[...t,n],r]}class Ky extends et{get behavior(){return r0}constructor(t){super(),this.params=t??{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new _r([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(t){this._data.push(t)}beginBatch(t){TB(t)&&(this._data=[],this.facetBatches.set(Lt(t.facetId),this._data))}complete(){var i,o;const t=(i=this.params)==null?void 0:i.sort,n=t?Yg(t.field,t.order):void 0,r=a=>{n&&a.sort(n)};if((o=this.params.groupby)!=null&&o.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const a=this.params.groupby.map(u=>Re(u)),s=gu(this._data,...a);this.facetBatches.clear();for(const[u,l]of c0(s))this.facetBatches.set(u,l)}for(const a of this.facetBatches.values())r(a);if(this.children.length)for(const[a,s]of this.facetBatches.entries()){if(a){const u={type:"facet",facetId:a};for(const l of this.children)l.beginBatch(u)}for(const u of s)this._propagate(u)}super.complete();for(const a of this.observers)a(this)}getData(){switch(this._checkStatus(),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const t=this.facetBatches;return{[Symbol.iterator]:function*(){for(const r of t.values())for(let i=0;i<r.length;i++)yield r[i]}}}}}visitData(t){this._checkStatus();for(const n of this.facetBatches.values())for(let r=0;r<n.length;r++)t(n[r])}getItemCount(){let t=0;for(const n of this.facetBatches.values())t+=n.length;return t}_checkStatus(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")}}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,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 f=this.values[s];if(s<this.length&&f<l&&(a=s,u=this.ids[s],l=f),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 VD extends et{get behavior(){return On}constructor(t){super(),this.params=t,this.startAccessor=Re(t.start),this.endAccessor=Re(t.end),this.chromAccessor=t.chrom?Re(t.chrom):n=>{},this.weightAccessor=t.weight?Re(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,o=this.endAccessor,a=this.chromAccessor,s=this.weightAccessor;let u,l,f,c=0,h;const d=this.ends;d.clear();const p=(y,w,_)=>{if(y==w)return;let C=!1;u&&(u[t]===_?(u[n]=w,C=!0):u[t]!=0&&this._propagate(u)),C||(u=this.createSegment(y,w,_,f))},b=()=>{let y;for(;(y=d.peekValue())!==void 0;)p(h,y,c),h=y,c-=d.pop();h=void 0,u&&(this._propagate(u),u=void 0)};this.handle=y=>{const w=i(y);let _;for(;(_=d.peekValue())!==void 0&&_<w;)p(h,_,c),h=_,c-=d.pop();if(r){let E=a(y);E!==l&&(b(),f=E,l=f)}h!==void 0&&p(h,w,c),h=w;const C=s(y);c+=C,d.push(C,o(y))},this.complete=()=>{b(),super.complete()}}}function jD(e,t,n=0,r=e.length){const i=new Bf,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 qD{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 ZD extends et{get behavior(){return r0}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=Re(this.params.pos),this.posBisector=pu(this.posAccessor),this.scoreAccessor=Re(this.params.score),this.widthAccessor=Re(this.params.width),this.laneAccessor=this.params.lane?Re(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 qD(200));this.schedule(),super.complete()}_filterAndPropagate(){var a;super.reset();const t=this.resolution.getScale(),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=jD(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,f=this.widthAccessor(u)/2+this.padding;this.reservationMaps.get(this.laneAccessor(u)).reserve(l-f,l+f)&&this._propagate(u)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(t){this._data.push(t)}}class WD extends et{constructor(t){super(),this.params=t,this.predicate=void 0}initialize(){this.predicate=Lu(this.params.expr,this.getGlobalObject())}handle(t){this.predicate(t)&&this._propagate(t)}}class YD extends et{get behavior(){return On}constructor(t){super();const n=t.index;if(t.fields){const r=Lt(t.fields).map(o=>Re(o)),i=Lt(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 f=0;f<r.length;f++)l[i[f]]=u<a[f].length?a[f][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 QD="0".charCodeAt(0);function*XD(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-QD}yield r}class $D extends et{get behavior(){return On}constructor(t){super();const n=Re(t.exons??"exons"),r=Re(t.start??"start"),[i,o]=t.as||["exonStart","exonEnd"];this.handle=a=>{let s=r(a),u=s,l=!0;const f=n(a);for(const c of XD(f)){if(l)u=s+c;else{s=u+c;const h=Object.assign({},a);h[i]=u,h[o]=s,this._propagate(h)}l=!l}}}}class KD extends et{get behavior(){return On}constructor(t){super();const n=Lt(t.field).map(o=>Re(o)),r=Lt(t.separator),i=Lt(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]));JD(a,o);const s=a[0].length;for(let u=0;u<s;u++){const l=Object.assign({},o);for(let f=0;f<n.length;f++)l[i[f]]=a[f][u];this._propagate(l)}}}}function JD(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 e9 extends et{get behavior(){return Vr}constructor(t){super(),this.params=t,this.as=t.as,this.fn=void 0}initialize(){this.fn=Lu(this.params.expr,this.getGlobalObject())}handle(t){t[this.as]=this.fn(t),this._propagate(t)}}class Jy extends et{get behavior(){return Vr}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=Re(t.chrom),a=Lt(t.pos).map(p=>Re(p)),s=Lt(t.as);if(a.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const u=Lt(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 f=new Function("datum","chromOffset","posAccessors",s.map((p,b)=>`datum[${JSON.stringify(p)}] = chromOffset + +posAccessors[${b}](datum) - ${l[b]};`).join(`
276
+ `));let c,h=0;const d=p=>{if(p!==c){if(h=i.cumulativeChromPositions.get(p),h===void 0)throw new Error("Unknown chromosome/contig: "+p);c=p}return h};this.handle=p=>{f(p,d(o(p)),a),this._propagate(p)}}}const ew={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 t9 extends et{get behavior(){return Vr}constructor(t){super();const n=e0(ew),r=Re(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 n9=65536;class r9 extends et{get behavior(){return Vr}constructor(t){super(),this.params=t}reset(){super.reset(),this.initialize()}initialize(){const t=this.params,n=t.as||"lane",r=Ct(t.spacing)?t.spacing:1,i=Re(t.start),o=Re(t.end);if(!t.preference!=!t.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(t.preference){const a=new Float64Array(n9),s=Re(t.preference),u=t.preferredOrder;let l=1/0;this.handle=f=>{const c=i(f);c<l&&a.fill(-1/0),l=c;const h=u.indexOf(s(f));let d=-1;if(h>=0&&a[h]<c)d=h;else{const p=i(f);for(d=0;d<a.length&&!(a[d]<p);d++);if(d>=a.length)throw new Error("Out of lanes!")}a[d]=o(f)+r,f[n]=d,this._propagate(f)}}else{const a=new Bf,s=new Bf;let u=-1/0,l=0;this.handle=f=>{const c=i(f);for(;a.length&&(a.peekValue()<=c||c<u);){const d=a.pop();s.push(d,d)}u=c;let h=s.pop();h===void 0&&(h=l++),f[n]=h,this._propagate(f),a.push(h,o(f)+r)}}}}class i9 extends et{get behavior(){return On}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=>Re(i)),r=t.as?t.as:n.map(xo);this.handle=i=>{const o={};for(let a=0;a<n.length;a++)o[r[a]]=n[a](i);this._propagate(o)}}}class o9 extends et{get behavior(){return Vr}constructor(t){super();const n=new RegExp(t.regex),r=typeof t.as=="string"?[t.as]:t.as,i=Re(t.field);this.handle=o=>{const a=i(o);if(Pe(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 a9 extends et{get behavior(){return On}constructor(t){super();const n=Lt(t.columnRegex).map(h=>new RegExp(h)),r=Lt(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(_=>w.test(_)))throw new Error(`No columns matching the regex ${w.toString()} found in the data!`);const p=new Map;for(const[w,_]of n.entries())for(const C of d){const E=(y=_.exec(C))==null?void 0:y[1];if(E!==void 0){let T=p.get(E);T||(T=[],p.set(E,T)),T[w]=C}}a=[...p.entries()],s=d.filter(w=>!n.some(_=>_.test(w))&&!(i&&i.test(w)));const b=[...s.map(w=>JSON.stringify(w)+": datum["+JSON.stringify(w)+"]"),JSON.stringify(o)+": sampleId",...r.map(w=>JSON.stringify(w)+": null")];u=new Function("datum","sampleId",`return {
239
277
  `+b.join(`,
240
278
  `)+`
241
- };`)},u=h=>{a||l(h);for(const[d,p]of a){const b=f(h,d);for(let y=0;y<p.length;y++)b[r[y]]=h[p[y]];this._propagate(b)}},c=h=>{l(h),u(h),this.handle=u};this.handle=c,this.beginBatch=h=>{Ay(h)&&(this.handle=c),super.beginBatch(h)}}}class QD extends Je{get behavior(){return Gr}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?Vg(t.sort.field,t.sort.order):void 0,i=t.field?Fe(t.field):()=>1,o=t.groupby.map(u=>Fe(u)),a=Z_(this.buffer,u=>o.map(c=>c(u)).join()).map(u=>u[1]);let s=u=>!0;if(t.baseField){const u=Fe(t.baseField);s=c=>u(c)!==null}let f,l;switch(t.offset){case"normalize":f=(u,c)=>u/c,l=(u,c)=>hf(u,c);break;case"center":f=(u,c)=>u-c/2,l=(u,c)=>hf(u,c);break;case"information":{const u=Math.log2(t.cardinality??4);f=(c,h)=>c/h,l=(c,h)=>{const p=hf(c,_=>+!s(_)),b=hf(c,h),y=b-p;let w=0;for(let _=0;_<c.length;_++){const C=c[_];if(s(C)){const S=h(C)/y;w-=S*Math.log2(S)}}return y/(u-(w+0))*(y/b)}}break;default:f=(u,c)=>u,l=(u,c)=>1}for(const u of a){r&&u.sort(r);const c=l(u,i);let h=0;for(const d of u){const p=h+i(d);s(d)&&(d[n[0]]=f(h,c),d[n[1]]=f(p,c),this._propagate(d),h=p)}}super.complete()}}class XD extends Je{get behavior(){return zn}constructor(t){super();const n=Fe(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 f=0;f<s.length;f++){const l=Object.assign({},a);l[r]=f,l[i]=s.charAt(f),this._propagate(l)}}}}class $D extends Je{get behavior(){return zn}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=>Fe(o)),i=uf(this.buffer,...r);for(const[o,a]of f0(i)){const s={count:a.length};for(let f=0;f<n.length;f++)s[n[f]]=o[f];this._propagate(s)}super.complete()}}const KD="_uniqueId",Xy=1e4,$y=[null];class Ky extends Je{get behavior(){return Gr}constructor(t){super(),this.params=t,this.as=t.as??KD,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%Xy==0&&(this._id=this._getBlock()*Xy),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const t=$y.length;return $y[t]=this,this._blocks.push(t),this._usedBlocks++,t}}const JD={aggregate:$D,collect:Wy,coverage:DD,filterScoredLabels:MD,filter:PD,flatten:LD,flattenCompressedExons:zD,flattenDelimited:UD,flattenSequence:XD,formula:HD,identifier:Ky,linearizeGenomicCoordinate:Yy,measureText:VD,pileup:qD,project:ZD,regexExtract:WD,regexFold:YD,sample:Ey,stack:QD};function e9(e,t){const n=JD[e.type];if(n)return new n(e,t);throw new Error("Unknown transform: "+e.type)}function Jy(e){if(!nw(e)&&!tw(e))return;const t={...e.format};if(t.type??(t.type=tw(e)&&t9(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 t9(e){var t;if(Array.isArray(e)&&(e=e[0]),e)return(t=e.match(/\.(csv|tsv|json)/))==null?void 0:t[1]}const ew=e=>typeof e!="object"?n9:r9,n9=e=>({data:e}),r9=e=>e;function tw(e){return"url"in e}class Vs extends Je{get identifier(){}handle(t){throw new Error("Source does not handle incoming data!")}async load(){}}function nw(e){return"values"in e}class i9 extends Vs{constructor(t,n){var r;if(super(),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=ew(t[0]));else if(typeof t=="object")n=[t];else if(typeof t=="string")n=Qm(t,Jy(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 o9(e){return"url"in e}class a9 extends Vs{constructor(t,n){super(),this.params=t,this.baseUrl=n==null?void 0:n.getBaseUrl()}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const t=this.params.url,n=Array.isArray(t)?t:[t],r=async o=>Ef({baseURL:this.baseUrl}).load(o).catch(a=>{throw new Error(`Cannot fetch: ${this.baseUrl}${o}: ${a.message}`)}),i=(o,a)=>{try{const s=Qm(o,Jy(this.params));this.beginBatch({type:"file",url:a});for(const f of s)this._propagate(f)}catch(s){throw new Error(`Cannot parse: ${a}: ${s.message}`)}};this.reset(),await Promise.all(n.map(o=>r(o).then(i))),this.complete()}}function s9(e){return"sequence"in e}class l9 extends Vs{constructor(t,n){if(super(),this.sequence=t.sequence,!("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=this.sequence.as||"data",n=this.sequence.step||1,r=this.sequence.stop;this.reset(),this.beginBatch({type:"file"});for(let i=this.sequence.start;i<r;i+=n)this._propagate({[t]:i});this.complete()}async load(){this.loadSynchronously()}}class ji extends Vs{constructor(t,n){if(super(),this.view=t,n){if(n!=="x"&&n!=="y")throw new Error(`Invalid channel specified for the dynamic data source: ${n}. Must be either "x" or "y"`)}else throw new Error('No channel has been specified for the dynamic data source. Must be either "x" or "y".');if(this.channel=n,this.scaleResolution=this.view.getScaleResolution(n),!this.scaleResolution){const i=[`The dynamic data source cannot find a resolved scale for channel "${n}".`];throw this.view instanceof Qt||i.push('Make sure the view has a "shared" scale resolution as it is not a unit view.'),new Error(i.join(" "))}const r=()=>{this.view.isVisible()&&this.onDomainChanged(this.scaleResolution.getDomain(),this.scaleResolution.getComplexDomain())};this.scaleResolution.addEventListener("domain",r),this.view.context.addBroadcastListener("layoutComputed",r)}getAxisLength(){const t=this.scaleResolution.members.map(n=>{var r;return(r=n.view.coords)==null?void 0:r[this.channel==="x"?"width":"height"]}).filter(n=>n>0);return t.length?t.reduce((n,r)=>Math.min(n,r),1e4):0}get genome(){return this.scaleResolution.getGenome()}async onDomainChanged(t,n){}requestRender(){this.view.context.animator.requestRender()}async load(){this.reset(),this.complete()}publishData(t){this.reset(),this.beginBatch({type:"file"});for(const n of t)this._propagate(n);this.complete(),s0(this.view),this.requestRender()}}class f9 extends ji{constructor(n,r){const i={axis:{},...n};super(r,i.channel);St(this,"ticks",[]);this.params=n}async onDomainChanged(){const n=this.scaleResolution.getScale(),r=this.params.axis,i=this.getAxisLength(),o=l=>25+60*A1(100,700,l),a=kt(r.tickCount)?r.tickCount:Math.round(i/o(i)),s=By(n,a,r.tickMinStep),f=r.values?Dy(n,r.values,s):WB(n,s);if(!Cf(f,this.ticks)){this.ticks=f;const l=QB(n,a,r.format);this.publishData(f.map(u=>({value:u,label:l(u)})))}}}class u9 extends ji{constructor(t,n){super(n,t.channel)}async load(){this.publishData(this.genome.chromosomes)}}function js(e){return class extends e{constructor(){super(...arguments);St(this,"lastQuantizedInterval",[0,0])}quantizeInterval(r,i){return[Math.max(Math.floor(r[0]/i-1)*i,0),Math.min(Math.ceil(r[1]/i+1)*i,this.genome.totalSize)]}checkAndUpdateLastInterval(r){return Cf(this.lastQuantizedInterval,r)?!1:(this.lastQuantizedInterval=r,!0)}}}function qs(e,t){return!t||/^(data:|([A-Za-z]+:)?\/\/)/.test(e)||e.startsWith("/")?e:(t.endsWith("/")||(t+="/"),t+e)}class c9 extends js(ji){constructor(t,n){const r={channel:"x",windowSize:7e3,...t};if(super(n,r.channel),this.params=r,!this.params.url)throw new Error("No URL provided for IndexedFastaSource");this.initializedPromise=new Promise(i=>{Promise.all([Promise.resolve().then(()=>Cw),Promise.resolve().then(()=>$7),Promise.resolve().then(()=>Ys)]).then(([{Buffer:o},{IndexedFasta:a},{RemoteFile:s}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=o));const f=l=>new s(qs(l,this.view.getBaseUrl()));this.fasta=new a({fasta:f(this.params.url),fai:f(this.params.indexUrl??this.params.url+".fai")}),i()})})}async onDomainChanged(t){const n=this.params.windowSize;if(t[1]-t[0]>n)return;await this.initializedPromise;const r=this.quantizeInterval(t,n);if(this.checkAndUpdateLastInterval(r)){const i=this.genome.continuousToDiscreteChromosomeIntervals(r),o=await Promise.all(i.map(a=>this.fasta.getSequence(a.chrom,a.startPos,a.endPos).then(s=>({chrom:a.chrom,start:a.startPos,sequence:s}))));this.publishData(o)}}}function Cu(e,t,n=!0){let r,i=a=>{};return function(...s){return new Promise((f,l)=>{const u=()=>{clearTimeout(r),i=c=>{},f(e(...s))};n&&i("debounced"),clearTimeout(r),i=l,r=window.setTimeout(u,t)})}}class h9 extends js(ji){constructor(n,r){const i={pixelsPerBin:2,channel:"x",...n};super(r,i.channel);St(this,"reductionLevels",[]);St(this,"lastRequestId",0);St(this,"bbi");if(this.params=i,!this.params.url)throw new Error("No URL provided for BigWigSource");this.doDebouncedRequest=Cu(this.doRequest.bind(this),200,!1),this.initializedPromise=new Promise(o=>{Promise.all([Promise.resolve().then(()=>E3),Promise.resolve().then(()=>Ys)]).then(([{BigWig:a},{RemoteFile:s}])=>{this.bbi=new a({filehandle:new s(qs(this.params.url,this.view.getBaseUrl()))}),this.bbi.getHeader().then(f=>{this.reductionLevels=f.zoomLevels.map(l=>l.reductionLevel).reverse(),this.reductionLevels.push(1),o()})})})}async onDomainChanged(n){await this.initializedPromise;const r=this.getAxisLength()||700,i=d9(n,r,this.reductionLevels),o=Math.max(i*r,5e3),a=this.quantizeInterval(n,o);this.checkAndUpdateLastInterval(a)&&this.doDebouncedRequest(a,i)}async doRequest(n,r){const i=await this.getFeatures(n,.5/r/this.params.pixelsPerBin);i.requestId<this.lastRequestId||this.publishData(i.features)}async getFeatures(n,r){let i=++this.lastRequestId;const o=new AbortController,a=this.genome.continuousToDiscreteChromosomeIntervals(n),s=await Promise.all(a.map(f=>this.bbi.getFeatures(f.chrom,f.startPos,f.endPos,{scale:r,signal:o.signal}).then(l=>l.map(u=>({chrom:f.chrom,start:u.start,end:u.end,score:u.score})))));return{requestId:i,abort:()=>o.abort(),features:s.flat()}}}function d9(e,t,n){const r=(e[1]-e[0])/t;return n.find(i=>i<r)??n.at(-1)}class p9 extends js(ji){constructor(n,r){const i={channel:"x",windowSize:1e6,...n};super(r,i.channel);St(this,"lastRequestId",0);St(this,"parser");St(this,"bbi");if(this.params=i,!this.params.url)throw new Error("No URL provided for BigBedSource");this.doDebouncedRequest=Cu(this.doRequest.bind(this),200,!1),this.initializedPromise=new Promise(o=>{Promise.all([Promise.resolve().then(()=>ZN),Promise.resolve().then(()=>E3),Promise.resolve().then(()=>Ys)]).then(([a,{BigBed:s},{RemoteFile:f}])=>{const l=a.default;this.bbi=new s({filehandle:new f(qs(this.params.url,this.view.getBaseUrl()))}),this.headerPromise=this.bbi.getHeader(),this.headerPromise.then(async u=>{this.parser=new l({autoSql:u.autoSql}),o()})})})}async onDomainChanged(n){await this.initializedPromise;const r=this.params.windowSize;if(n[1]-n[0]>r)return;const i=this.quantizeInterval(n,r);this.checkAndUpdateLastInterval(i)&&this.doDebouncedRequest(i)}async doRequest(n){const r=await this.getFeatures(n);r.requestId<this.lastRequestId||this.publishData(r.features)}async getFeatures(n){let r=++this.lastRequestId;const i=new AbortController,o=this.genome.continuousToDiscreteChromosomeIntervals(n),a=await Promise.all(o.map(s=>this.bbi.getFeatures(s.chrom,s.startPos,s.endPos,{signal:i.signal}).then(f=>f.map(l=>this.parser.parseLine(`${s.chrom} ${l.start} ${l.end} ${l.rest}`,{uniqueId:l.uniqueId})))));return{requestId:r,abort:()=>i.abort(),features:a.flat()}}}class g9 extends js(ji){constructor(n,r){const i={channel:"x",windowSize:2e4,...n};super(r,i.channel);St(this,"lastRequestId",0);St(this,"bam");St(this,"chrPrefixFixer",n=>n);if(this.params=i,!this.params.url)throw new Error("No URL provided for BamSource");this.initializedPromise=new Promise(o=>{Promise.all([Promise.resolve().then(()=>hO),Promise.resolve().then(()=>Ys)]).then(([{BamFile:a},{RemoteFile:s}])=>{const f=l=>new s(qs(l,this.view.getBaseUrl()));this.bam=new a({bamFilehandle:f(this.params.url),baiFilehandle:f(this.params.indexUrl??this.params.url+".bai")}),this.bam.getHeader().then(l=>{var h,d;const u=this.genome.hasChrPrefix(),c=(d=(h=this.bam.indexToChr)==null?void 0:h[0])==null?void 0:d.refName.startsWith("chr");u&&!c?this.chrPrefixFixer=p=>p.replace("chr",""):!u&&c&&(this.chrPrefixFixer=p=>"chr"+p),o()})})})}async onDomainChanged(n){const r=this.params.windowSize;if(n[1]-n[0]>r)return;await this.initializedPromise;const i=this.quantizeInterval(n,r);if(this.checkAndUpdateLastInterval(i)){const o=this.genome.continuousToDiscreteChromosomeIntervals(i),a=await Promise.all(o.map(s=>this.bam.getRecordsForRange(this.chrPrefixFixer(s.chrom),s.startPos,s.endPos).then(f=>f.map(l=>({chrom:s.chrom,start:l.get("start"),end:l.get("end"),name:l.get("name"),MD:l.get("MD"),cigar:l.get("cigar"),mapq:l.get("mq"),strand:l.get("strand")===1?"+":"-"})))));this.publishData(a.flat())}}}class m9 extends js(ji){constructor(n,r){const i={channel:"x",windowSize:3e6,debounceDomainChange:200,...n};super(r,i.channel);St(this,"lastRequestId",0);St(this,"tbiIndex");if(this.params=i,!this.params.url)throw new Error("No URL provided for TabixSource");this.params.debounceDomainChange>0&&(this.onDomainChanged=Cu(this.onDomainChanged.bind(this),this.params.debounceDomainChange,!1)),this.initializedPromise=new Promise(o=>{Promise.all([Promise.resolve().then(()=>Cw),Promise.resolve().then(()=>AO),Promise.resolve().then(()=>Ys)]).then(([{Buffer:a},{TabixIndexedFile:s},{RemoteFile:f}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=a));const l=u=>new f(qs(u,this.view.getBaseUrl()));this.tbiIndex=new s({filehandle:l(this.params.url),tbiFilehandle:l(this.params.indexUrl??this.params.url+".tbi")}),o()})})}async onDomainChanged(n){const r=this.params.windowSize;if(n[1]-n[0]>r)return;const i=this.quantizeInterval(n,r);this.checkAndUpdateLastInterval(i)&&this.doRequest(i)}async doRequest(n){const r=await this.getFeatures(n);r.requestId<this.lastRequestId||this.publishData(r.features)}async getFeatures(n){await this.initializedPromise;let r=++this.lastRequestId;const i=new AbortController,o=this.genome.continuousToDiscreteChromosomeIntervals(n),a=await Promise.all(o.map(async s=>{const f=[];return await this.tbiIndex.getLines(s.chrom,s.startPos,s.endPos,{lineCallback:l=>{f.push(l)},signal:i.signal}),this._parseFeatures(f)}));return{requestId:r,abort:()=>i.abort(),features:a.flat()}}_parseFeatures(n){return[]}}class b9 extends m9{constructor(n,r){super(n,r);se(this,ql,void 0);Promise.resolve().then(()=>az).then(i=>{Ct(this,ql,i.default)})}_parseFeatures(n){var i;return(i=$(this,ql))==null?void 0:i.parseStringSync(n.join(`
242
- `),{parseSequences:!1})}}ql=new WeakMap;function y9(e,t){if(nw(e))return new i9(e,t);if(o9(e))return new a9(e,t);if(s9(e))return new l9(e,t);if(w9(e))return k9(e.lazy,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function w9(e){return"lazy"in e}function v9(e){return(e==null?void 0:e.type)=="axisTicks"}function x9(e){return(e==null?void 0:e.type)=="axisGenome"}function A9(e){return(e==null?void 0:e.type)=="indexedFasta"}function E9(e){return(e==null?void 0:e.type)=="bigwig"}function _9(e){return(e==null?void 0:e.type)=="bigbed"}function S9(e){return(e==null?void 0:e.type)=="bam"}function C9(e){return(e==null?void 0:e.type)=="gff3"}function k9(e,t){if(v9(e))return new f9(e,t);if(x9(e))return new u9(e,t);if(A9(e))return new c9(e,t);if(E9(e))return new h9(e,t);if(_9(e))return new p9(e,t);if(S9(e))return new g9(e,t);if(C9(e))return new b9(e,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function I9(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(`,
243
- `)+" };");return n.properties=t,n}class ku extends Je{get behavior(){return zn}constructor(){super();const t=n=>{const r=I9(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=t,this.beginBatch=n=>{Ay(n)&&(this.handle=t),super.beginBatch(n)}}}function T9(e){return"name"in e}class rw extends Vs{constructor(n,r,i){super();se(this,Zl,void 0);this.provider=i,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){Ct(this,Zl,n),this.loadSynchronously()}loadSynchronously(){const n=$(this,Zl)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=ew(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()}}Zl=new WeakMap;class iw{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 rw&&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 B9(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 ow(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=ow(a,t,n);if(s==="stop")return s}return(o=t.postOrder)==null?void 0:o.call(t,e)}function D9(e,t){return ow(e,t,n=>n.children)}function R9(e,t){const n=[];let r;const i=t??new iw,o=[];function a(c,h=()=>{}){if(!r)throw h()||new Error("Cannot append data flow node, no parent exist!");return r.addChild(c),r=c,c}function s(c,h){return a(c,()=>new Error(`Cannot append a transform because no (inherited) data are available! ${h?JSON.stringify(h):""}`))}function f(c,h){for(const d of c){let p;try{p=e9(d,h)}catch(b){throw console.warn(b),new Error(`Cannot initialize "${d.type}" transform: ${b}`)}p.behavior&Gr&&s(new ku),s(p)}}const l=c=>{if(n.push(r),c.spec.data){const h=T9(c.spec.data)?new rw(c.spec.data,c,c.context.getNamedDataFromProvider):y9(c.spec.data,c);r=h,i.addDataSource(h,c)}if(c.spec.transform&&f(c.spec.transform,c),c instanceof Qt){if(!r)throw new Error(`A unit view (${c.getPathString()}) has no (inherited) data source`);const h=F9(c);if(h){o.push(h.rewrite);for(const p of h.transforms)s(p)}c.mark.isPickingParticipant()&&(s(new ku),s(new Ky({type:"identifier"})));const d=new Wy({type:"collect",groupby:c.getFacetFields(),sort:M9(c,h==null?void 0:h.rewrittenEncoding)});a(d),i.addCollector(d,c)}},u=B9(e.getDescendants(),c=>c.dataParent);for(const c of u)D9(c,{preOrder:h=>l(h.ref),postOrder:()=>{r=n.pop()}});return o.forEach(c=>c()),i}function F9(e){var o;const t=[],n={},r=[];for(const[a,s]of Object.entries(e.getEncoding())){const f=a;Is(f)&&Vb(s)&&r.push({channel:f,chromPosDef:s})}const i=uf(r,a=>Fi(a.channel),a=>a.chromPosDef.chrom);for(const[a,s]of i.entries())for(const[f,l]of s.entries()){const u=[],c=[],h=[];for(const{channel:d,chromPosDef:p}of l){const b=_=>_.replace(/[^A-Za-z0-9_]/g,""),y=["_linearized_",b(p.chrom),"_",b(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,u.push(p.pos),h.push(p.offset??0),c.push(y)}t.push(new ku),t.push(new Yy({type:"linearizeGenomicCoordinate",channel:a,chrom:f,pos:u,offset:h,as:c},e))}return t.length?{transforms:t,rewrittenEncoding:n,rewrite:()=>{e.spec.encoding={...e.spec.encoding,...n},py(e.mark,"encoding")}}:void 0}function M9(e,t){var r;const n={...e.getEncoding(),...t}.x;if(Ut(n)&&(r=e.getScaleResolution("x"))!=null&&r.isZoomable()){if(Cs(n))return{field:n.field};if(!ks(n))throw new Error("A zoomable x channel must be mapped to a field.")}}function aw(e,t=void 0){if(e.parent!==t)return!1;for(const n of e.children)if(!aw(n,e))return!1;return!0}function u0(e,t=!1){if(e.behavior&t0&&(t=!0),e instanceof ku)if(t)t=!1;else{const n=e.children[0];e.excise(),n&&u0(n,t);return}e.behavior&zn&&(t=!1);for(let n=0,r=e.children.length;n<r;n++)u0(e.children[n],t||r>1)}function P9(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 L9(e){if(u0(e),!aw(e))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function N9(e){for(const t of e.dataSources)L9(t);P9(e)}function O9(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 z9(e){for(const t of Mo){const n=e.getScaleResolution(t);n&&!n.name&&n.isZoomable()&&(n.name=`${t}_at_root`)}}async function U9(e,t,n){var a;if(!e.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(e));const r=Ef({baseURL:t}),i=e.import.url,o=JSON.parse(await r.load(i).catch(s=>{throw new Error(`Could not load imported view spec: ${i}
244
- Reason: ${s.message}`)}));if(n.isViewSpec(o))return o.baseUrl=(a=i.match(/^[^?#]*\//))==null?void 0:a[0],o;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(e)}`)}function G9(e){const t=e.getSize().addPadding(e.getOverhang()),n=r=>r.grow>0?void 0:r.px;return{width:n(t.width),height:n(t.height)}}function or(e){return()=>e}const In=class In{static create(t,n,r,i){return new In(or(t),or(n),or(r),or(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"?or(i):typeof i=="function"?i:this._passThrough(r)};return new In(n("x"),n("y"),n("width"),n("height"))}translate(t,n){return t===0&&n===0?this:new In(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 In(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 In(()=>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 In(()=>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 In(or(this.x),or(this.y),or(this.width),or(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)}`}};St(In,"ZERO",In.create(0,0,0,0));let ar=In;class sw{constructor(t){this.globalOptions=t}pushView(t,n){}popView(t){}renderMark(t,n){}}class lw extends sw{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=uf(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 f;for(const l of s){const u=l.coords;u.equals(f)||this.batch.push(r(()=>{n=a.setViewport(u,l.clipRect)})),this.batch.push(i(l.callback)),f=l.coords}}}}class H9 extends sw{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 V9{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 j9{constructor(t,n){this.x=t,this.y=n}equals(t){return t?t===this||t.x===this.x&&t.y===this.y:!1}}const q9=e=>new Promise(t=>setTimeout(t,e));function Z9(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),f=typeof e.from=="number"?e.from:0,l=typeof e.to=="number"?e.to:1,u=e.easingFunction||(b=>b),c=b=>(b-a)/(s-a),h=b=>b*(l-f)+f,d=b=>Math.max(0,Math.min(1,b)),p=b=>{n!=null&&n.aborted?o("aborted"):(e.onUpdate(h(u(d(c(b))))),b<s?t(p):(e.onUpdate(h(u(1))),i()))};t(p)});return e.delay?n!=null&&n.aborted?Promise.reject("aborted"):q9(e.delay).then(r):r()}class W9{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 Z9({requestAnimationFrame:n=>this.requestTransition(n),...t})}}class Y9{constructor(t){this.genomes=new Map,this.baseUrl=t}async initialize(t){const n=new bD(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 Q9="data:image/png;base64,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",X9={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class $9{constructor(t){this._webGLHelper=t,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new gi([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:Kd(Qy),texture:t?this._createTextureNow(Q9):void 0}}async waitUntilReady(){await Promise.all(this._promises)}getFont(t,n="normal",r="regular"){if(Pe(r)&&(r=X9[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=J9(r,n),o=this.fontRepository+fw(n.family)+"/"+i.replace(/\.\w+/,""),a=this._createTexture(o+".png"),s=this._loadFont(o+".json");t.texture=await a,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=>Kd(r)),this._fontPromises.set(t,n)),n}_loadMetadata(t){const n=fw(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=>K9(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)=>{Ps(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=Ps(n,{src:t,min:n.LINEAR},(s,f,l)=>{s?a(s):o(f)})});return this._promises.push(i),r}}function fw(e){return e.toLowerCase().replaceAll(/[^\w]/g,"")}function K9(e){const t=e.split(`
245
- `),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 J9(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 eR(e,t){const n=[];let r;for(const i of e.split(`
246
- `))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 tR{constructor(t,n){this.animator=t,this.disabled=!!n,this.damping=.015,this.acceleration=.3,this.accelerationThreshold=100,this.lowerLimit=.5,this.loop=!1,this.momentum=0,this.timestamp=0,this.callback=null,this._transitionCallback=this.animate.bind(this),this.clear()}clear(){this.momentum=0,this.timestamp=null,this.loop=null,this.callback=null}cancel(){this.loop&&(this.animator.cancelTransition(this._transitionCallback),this.clear())}setMomentum(t,n){if(this.disabled){n(t);return}t*this.momentum<0?this.momentum=0:Math.abs(t)>this.accelerationThreshold?this.momentum=qg([this.momentum,t],this.acceleration):this.momentum=t,this.callback=n,this.loop||this.animate()}animate(t){this.callback(this.momentum);const n=t-this.timestamp||0;this.timestamp=t;const r=Math.abs(this.momentum);this.momentum=Math.sign(this.momentum)*Math.max(0,r-((r*this.damping)**1.5+.04)*n),Math.abs(this.momentum)>this.lowerLimit?(this.loop=!0,this.animator.requestTransition(this._transitionCallback)):this.clear()}}function nR(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 uw=new Map;async function rR(e,t,n){const r=e.symbol;let i=uw.get(r)??await aR(e.symbol);return i?(uw.set(r,i),Dn`
279
+ };`)},f=h=>{a||l(h);for(const[d,p]of a){const b=u(h,d);for(let y=0;y<p.length;y++)b[r[y]]=h[p[y]];this._propagate(b)}},c=h=>{l(h),f(h),this.handle=f};this.handle=c,this.beginBatch=h=>{ky(h)&&(this.handle=c),super.beginBatch(h)}}}class s9 extends et{get behavior(){return Vr}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?Yg(t.sort.field,t.sort.order):void 0,i=t.field?Re(t.field):()=>1,o=t.groupby.map(f=>Re(f)),a=K_(this.buffer,f=>o.map(c=>c(f)).join()).map(f=>f[1]);let s=f=>!0;if(t.baseField){const f=Re(t.baseField);s=c=>f(c)!==null}let u,l;switch(t.offset){case"normalize":u=(f,c)=>f/c,l=(f,c)=>bu(f,c);break;case"center":u=(f,c)=>f-c/2,l=(f,c)=>bu(f,c);break;case"information":{const f=Math.log2(t.cardinality??4);u=(c,h)=>c/h,l=(c,h)=>{const p=bu(c,_=>+!s(_)),b=bu(c,h),y=b-p;let w=0;for(let _=0;_<c.length;_++){const C=c[_];if(s(C)){const E=h(C)/y;w-=E*Math.log2(E)}}return y/(f-(w+0))*(y/b)}}break;default:u=(f,c)=>f,l=(f,c)=>1}for(const f of a){r&&f.sort(r);const c=l(f,i);let h=0;for(const d of f){const p=h+i(d);s(d)&&(d[n[0]]=u(h,c),d[n[1]]=u(p,c),this._propagate(d),h=p)}}super.complete()}}class l9 extends et{get behavior(){return On}constructor(t){super();const n=Re(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 u9 extends et{get behavior(){return On}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=>Re(o)),i=gu(this.buffer,...r);for(const[o,a]of c0(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 f9="_uniqueId",tw=1e4,nw=[null];class rw extends et{get behavior(){return Vr}constructor(t){super(),this.params=t,this.as=t.as??f9,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%tw==0&&(this._id=this._getBlock()*tw),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const t=nw.length;return nw[t]=this,this._blocks.push(t),this._usedBlocks++,t}}const c9={aggregate:u9,collect:Ky,coverage:VD,filterScoredLabels:ZD,filter:WD,flatten:YD,flattenCompressedExons:$D,flattenDelimited:KD,flattenSequence:l9,formula:e9,identifier:rw,linearizeGenomicCoordinate:Jy,measureText:t9,pileup:r9,project:i9,regexExtract:o9,regexFold:a9,sample:Ty,stack:s9};function h9(e,t){const n=c9[e.type];if(n)return new n(e,t);throw new Error("Unknown transform: "+e.type)}function iw(e){if(!sw(e)&&!aw(e))return;const t={...e.format};if(t.type??(t.type=aw(e)&&d9(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 d9(e){var t;if(Array.isArray(e)&&(e=e[0]),e)return(t=e.match(/\.(csv|tsv|json)/))==null?void 0:t[1]}const ow=e=>typeof e!="object"?p9:g9,p9=e=>({data:e}),g9=e=>e;function aw(e){return"url"in e}class Ws extends et{get identifier(){}handle(t){throw new Error("Source does not handle incoming data!")}async load(){}}function sw(e){return"values"in e}class m9 extends Ws{constructor(t,n){var r;if(super(),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=ow(t[0]));else if(typeof t=="object")n=[t];else if(typeof t=="string")n=Km(t,iw(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 b9(e){return"url"in e}class y9 extends Ws{constructor(t,n){super(),this.params=t,this.baseUrl=n==null?void 0:n.getBaseUrl()}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const t=this.params.url,n=Array.isArray(t)?t:[t],r=async o=>Cu({baseURL:this.baseUrl}).load(o).catch(a=>{throw new Error(`Cannot fetch: ${this.baseUrl}${o}: ${a.message}`)}),i=(o,a)=>{try{const s=Km(o,iw(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.reset(),await Promise.all(n.map(o=>r(o).then(i))),this.complete()}}function w9(e){return"sequence"in e}class v9 extends Ws{constructor(t,n){if(super(),this.sequence=t.sequence,!("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=this.sequence.as||"data",n=this.sequence.step||1,r=this.sequence.stop;this.reset(),this.beginBatch({type:"file"});for(let i=this.sequence.start;i<r;i+=n)this._propagate({[t]:i});this.complete()}async load(){this.loadSynchronously()}}class h0 extends Ws{constructor(n,r){super();Kn(this,"initializedPromise",Promise.resolve());if(this.view=n,r){if(r!=="x"&&r!=="y")throw new Error(`Invalid channel specified for the dynamic data source: ${r}. Must be either "x" or "y"`)}else throw new Error('No channel has been specified for the dynamic data source. Must be either "x" or "y".');if(this.channel=r,this.scaleResolution=this.view.getScaleResolution(r),!this.scaleResolution){const o=[`The dynamic data source cannot find a resolved scale for channel "${r}".`];throw this.view instanceof Yt||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()}async onDomainChanged(n,r){}setLoadingStatus(n){this.view.context.setDataLoadingStatus(this.view,n)}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(),u0(this.view),this.requestRender()}}class x9 extends h0{constructor(n,r){const i={axis:{},...n};super(r,i.channel);Kn(this,"ticks",[]);this.params=n}async onDomainChanged(){const n=this.scaleResolution.getScale(),r=this.params.axis,i=this.getAxisLength(),o=l=>25+60*S1(100,700,l),a=Ct(r.tickCount)?r.tickCount:Math.round(i/o(i)),s=Py(n,a,r.tickMinStep),u=r.values?Ly(n,r.values,s):oD(n,s);if(!Iu(u,this.ticks)){this.ticks=u;const l=sD(n,a,r.format);this.publishData([u.map(f=>({value:f,label:l(f)}))])}}}class A9 extends h0{constructor(t,n){super(n,t.channel)}async load(){this.publishData([this.genome.chromosomes])}}function Ys(e,t){return!t||/^(data:|([A-Za-z]+:)?\/\/)/.test(e)||e.startsWith("/")?e:(t.endsWith("/")||(t+="/"),t+e)}function d0(e,t,n=!0){let r,i=a=>{};return function(...s){return new Promise((u,l)=>{const f=()=>{clearTimeout(r),i=c=>{},u(e(...s))};n&&i("debounced"),clearTimeout(r),i=l,r=window.setTimeout(f,t)})}}class Qs extends h0{constructor(){super(...arguments);re(this,Da,new AbortController);re(this,Ql,[0,0]);Kn(this,"params")}setupDebouncing(n){n.debounce>0&&(n.debounceMode=="domain"?this.onDomainChanged=d0(this.onDomainChanged.bind(this),n.debounce,!1):n.debounceMode=="window"&&(this.loadInterval=d0(this.loadInterval.bind(this),n.debounce,!1)))}async onDomainChanged(n){var o;const r=((o=this.params)==null?void 0:o.windowSize)??-1;if(n[1]-n[0]>r)return;const i=this.quantizeInterval(n,r);this.checkAndUpdateLastInterval(i)&&(await this.initializedPromise,this.loadInterval(i))}async loadInterval(n){}async discretizeAndLoad(n,r){W(this,Da).abort(),this.setLoadingStatus(!0),Je(this,Da,new AbortController);const i=W(this,Da).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(!1),a}catch(a){if(!i.aborted)throw this.setLoadingStatus(!1),a}}quantizeInterval(n,r){return[Math.max(Math.floor(n[0]/r-1)*r,0),Math.min(Math.ceil(n[1]/r+1)*r,this.genome.totalSize)]}checkAndUpdateLastInterval(n){return Iu(W(this,Ql),n)?!1:(Je(this,Ql,n),!0)}}Da=new WeakMap,Ql=new WeakMap;class E9 extends Qs{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(()=>Dw),Promise.resolve().then(()=>uM),Promise.resolve().then(()=>Ks)]).then(([{Buffer:o},{IndexedFasta:a},{RemoteFile:s}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=o));const u=l=>new s(Ys(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 _9 extends Qs{constructor(n,r){const i={pixelsPerBin:2,channel:"x",debounce:200,debounceMode:"window",...n};super(r,i.channel);re(this,Fa,[]);re(this,Ra,void 0);if(this.params=i,!this.params.url)throw new Error("No URL provided for BigWigSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(o=>{Promise.all([Promise.resolve().then(()=>I3),Promise.resolve().then(()=>Ks)]).then(([{BigWig:a},{RemoteFile:s}])=>{Je(this,Ra,new a({filehandle:new s(Ys(this.params.url,this.view.getBaseUrl()))})),W(this,Ra).getHeader().then(u=>{Je(this,Fa,u.zoomLevels.map(l=>l.reductionLevel).reverse()),W(this,Fa).push(1),o()})})})}async onDomainChanged(n){await this.initializedPromise;const r=this.getAxisLength()||700,i=S9(n,r,W(this,Fa)),o=Math.max(i*r,5e3),a=this.quantizeInterval(n,o);this.checkAndUpdateLastInterval(a)&&this.loadInterval(a,i)}async loadInterval(n,r){const i=.5/r/this.params.pixelsPerBin,o=await this.discretizeAndLoad(n,(a,s)=>W(this,Ra).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)}}Fa=new WeakMap,Ra=new WeakMap;function S9(e,t,n){const r=(e[1]-e[0])/t;return n.find(i=>i<r)??n.at(-1)}class C9 extends Qs{constructor(n,r){const i={channel:"x",windowSize:1e6,debounce:200,debounceMode:"window",...n};super(r,i.channel);Kn(this,"parser");Kn(this,"bbi");if(this.params=i,!this.params.url)throw new Error("No URL provided for BigBedSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(o=>{Promise.all([Promise.resolve().then(()=>iO),Promise.resolve().then(()=>I3),Promise.resolve().then(()=>Ks)]).then(([a,{BigBed:s},{RemoteFile:u}])=>{const l=a.default;this.bbi=new s({filehandle:new u(Ys(this.params.url,this.view.getBaseUrl()))}),this.bbi.getHeader().then(async f=>{this.parser=new l({autoSql:f.autoSql}),o()})})})}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.parser.parseLine(`${i.chrom} ${s.start} ${s.end} ${s.rest}`,{uniqueId:s.uniqueId}))));r&&this.publishData(r)}}class k9 extends Qs{constructor(n,r){const i={channel:"x",windowSize:2e4,debounce:200,debounceMode:"domain",...n};super(r,i.channel);re(this,po,void 0);Kn(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(()=>_O),Promise.resolve().then(()=>Ks)]).then(([{BamFile:a},{RemoteFile:s}])=>{const u=l=>new s(Ys(l,this.view.getBaseUrl()));Je(this,po,new a({bamFilehandle:u(this.params.url),baiFilehandle:u(this.params.indexUrl??this.params.url+".bai")})),W(this,po).getHeader().then(l=>{var h,d;const f=this.genome.hasChrPrefix(),c=(d=(h=W(this,po).indexToChr)==null?void 0:h[0])==null?void 0:d.refName.startsWith("chr");f&&!c?this.chrPrefixFixer=p=>p.replace("chr",""):!f&&c&&(this.chrPrefixFixer=p=>"chr"+p),o()})})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,o)=>W(this,po).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)}}po=new WeakMap;class T9 extends Qs{constructor(n,r){const i={channel:"x",windowSize:3e6,debounce:200,debounceMode:"domain",...n};super(r,i.channel);re(this,Xl,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(()=>Dw),Promise.resolve().then(()=>MO),Promise.resolve().then(()=>Ks)]).then(([{Buffer:a},{TabixIndexedFile:s},{RemoteFile:u}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=a));const l=f=>new u(Ys(f,this.view.getBaseUrl()));Je(this,Xl,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 W(this,Xl).getLines(i.chrom,i.startPos,i.endPos,{lineCallback:s=>{a.push(s)},signal:o}),this._parseFeatures(a)});r&&this.publishData(r)}_parseFeatures(n){return[]}}Xl=new WeakMap;class I9 extends T9{constructor(n,r){super(n,r);re(this,$l,void 0);Promise.resolve().then(()=>yz).then(i=>{Je(this,$l,i.default)})}_parseFeatures(n){var i;return(i=W(this,$l))==null?void 0:i.parseStringSync(n.join(`
280
+ `),{parseSequences:!1})}}$l=new WeakMap;function B9(e,t){if(sw(e))return new m9(e,t);if(b9(e))return new y9(e,t);if(w9(e))return new v9(e,t);if(D9(e))return z9(e.lazy,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function D9(e){return"lazy"in e}function F9(e){return(e==null?void 0:e.type)=="axisTicks"}function R9(e){return(e==null?void 0:e.type)=="axisGenome"}function M9(e){return(e==null?void 0:e.type)=="indexedFasta"}function P9(e){return(e==null?void 0:e.type)=="bigwig"}function L9(e){return(e==null?void 0:e.type)=="bigbed"}function N9(e){return(e==null?void 0:e.type)=="bam"}function O9(e){return(e==null?void 0:e.type)=="gff3"}function z9(e,t){if(F9(e))return new x9(e,t);if(R9(e))return new A9(e,t);if(M9(e))return new E9(e,t);if(P9(e))return new _9(e,t);if(L9(e))return new C9(e,t);if(N9(e))return new k9(e,t);if(O9(e))return new I9(e,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function U9(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(`,
281
+ `)+" };");return n.properties=t,n}class Df extends et{get behavior(){return On}constructor(){super();const t=n=>{const r=U9(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=t,this.beginBatch=n=>{ky(n)&&(this.handle=t),super.beginBatch(n)}}}function G9(e){return"name"in e}class lw extends Ws{constructor(n,r,i){super();re(this,Kl,void 0);this.provider=i,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){Je(this,Kl,n),this.loadSynchronously()}loadSynchronously(){const n=W(this,Kl)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=ow(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()}}Kl=new WeakMap;class uw{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 lw&&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 H9(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 fw(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=fw(a,t,n);if(s==="stop")return s}return(o=t.postOrder)==null?void 0:o.call(t,e)}function V9(e,t){return fw(e,t,n=>n.children)}function j9(e,t){const n=[];let r;const i=t??new uw,o=[];function a(c,h=()=>{}){if(!r)throw h()||new Error("Cannot append data flow node, no parent exist!");return r.addChild(c),r=c,c}function s(c,h){return a(c,()=>new Error(`Cannot append a transform because no (inherited) data are available! ${h?JSON.stringify(h):""}`))}function u(c,h){for(const d of c){let p;try{p=h9(d,h)}catch(b){throw console.warn(b),new Error(`Cannot initialize "${d.type}" transform: ${b}`)}p.behavior&Vr&&s(new Df),s(p)}}const l=c=>{if(n.push(r),c.spec.data){const h=G9(c.spec.data)?new lw(c.spec.data,c,c.context.getNamedDataFromProvider):B9(c.spec.data,c);r=h,i.addDataSource(h,c)}if(c.spec.transform&&u(c.spec.transform,c),c instanceof Yt){if(!r)throw new Error(`A unit view (${c.getPathString()}) has no (inherited) data source`);const h=q9(c);if(h){o.push(h.rewrite);for(const p of h.transforms)s(p)}c.mark.isPickingParticipant()&&(s(new Df),s(new rw({type:"identifier"})));const d=new Ky({type:"collect",groupby:c.getFacetFields(),sort:Z9(c,h==null?void 0:h.rewrittenEncoding)});a(d),i.addCollector(d,c)}},f=H9(e.getDescendants(),c=>c.dataParent);for(const c of f)V9(c,{preOrder:h=>l(h.ref),postOrder:()=>{r=n.pop()}});return o.forEach(c=>c()),i}function q9(e){var o;const t=[],n={},r=[];for(const[a,s]of Object.entries(e.getEncoding())){const u=a;Rs(u)&&Zb(s)&&r.push({channel:u,chromPosDef:s})}const i=gu(r,a=>Pi(a.channel),a=>a.chromPosDef.chrom);for(const[a,s]of i.entries())for(const[u,l]of s.entries()){const f=[],c=[],h=[];for(const{channel:d,chromPosDef:p}of l){const b=_=>_.replace(/[^A-Za-z0-9_]/g,""),y=["_linearized_",b(p.chrom),"_",b(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,f.push(p.pos),h.push(p.offset??0),c.push(y)}t.push(new Df),t.push(new Jy({type:"linearizeGenomicCoordinate",channel:a,chrom:u,pos:f,offset:h,as:c},e))}return t.length?{transforms:t,rewrittenEncoding:n,rewrite:()=>{e.spec.encoding={...e.spec.encoding,...n},wy(e.mark,"encoding")}}:void 0}function Z9(e,t){var r;const n={...e.getEncoding(),...t}.x;if(Ut(n)&&(r=e.getScaleResolution("x"))!=null&&r.isZoomable()){if(Mi(n))return{field:n.field};if(!Fs(n))throw new Error("A zoomable x channel must be mapped to a field.")}}function cw(e,t=void 0){if(e.parent!==t)return!1;for(const n of e.children)if(!cw(n,e))return!1;return!0}function p0(e,t=!1){if(e.behavior&r0&&(t=!0),e instanceof Df)if(t)t=!1;else{const n=e.children[0];e.excise(),n&&p0(n,t);return}e.behavior&On&&(t=!1);for(let n=0,r=e.children.length;n<r;n++)p0(e.children[n],t||r>1)}function W9(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 Y9(e){if(p0(e),!cw(e))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function Q9(e){for(const t of e.dataSources)Y9(t);W9(e)}function X9(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 $9(e){for(const t of Po){const n=e.getScaleResolution(t);n&&!n.name&&n.isZoomable()&&(n.name=`${t}_at_root`)}}async function K9(e,t,n){var a;if(!e.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(e));const r=Cu({baseURL:t}),i=e.import.url,o=JSON.parse(await r.load(i).catch(s=>{throw new Error(`Could not load imported view spec: ${i}
282
+ Reason: ${s.message}`)}));if(n.isViewSpec(o))return o.baseUrl=(a=i.match(/^[^?#]*\//))==null?void 0:a[0],o;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(e)}`)}function J9(e){const t=e.getSize().addPadding(e.getOverhang()),n=r=>r.grow>0?void 0:r.px;return{width:n(t.width),height:n(t.height)}}function ar(e){return()=>e}const Tn=class Tn{static create(t,n,r,i){return new Tn(ar(t),ar(n),ar(r),ar(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"?ar(i):typeof i=="function"?i:this._passThrough(r)};return new Tn(n("x"),n("y"),n("width"),n("height"))}translate(t,n){return t===0&&n===0?this:new Tn(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 Tn(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 Tn(()=>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 Tn(()=>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 Tn(ar(this.x),ar(this.y),ar(this.width),ar(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)}`}};Kn(Tn,"ZERO",Tn.create(0,0,0,0));let sr=Tn;class hw{constructor(t){this.globalOptions=t}pushView(t,n){}popView(t){}renderMark(t,n){}}class dw extends hw{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=gu(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 f=l.coords;f.equals(u)||this.batch.push(r(()=>{n=a.setViewport(f,l.clipRect)})),this.batch.push(i(l.callback)),u=l.coords}}}}class eF extends hw{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 tF{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 nF{constructor(t,n){this.x=t,this.y=n}equals(t){return t?t===this||t.x===this.x&&t.y===this.y:!1}}const rF=e=>new Promise(t=>setTimeout(t,e));function iF(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,f=e.easingFunction||(b=>b),c=b=>(b-a)/(s-a),h=b=>b*(l-u)+u,d=b=>Math.max(0,Math.min(1,b)),p=b=>{n!=null&&n.aborted?o("aborted"):(e.onUpdate(h(f(d(c(b))))),b<s?t(p):(e.onUpdate(h(f(1))),i()))};t(p)});return e.delay?n!=null&&n.aborted?Promise.reject("aborted"):rF(e.delay).then(r):r()}class oF{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 iF({requestAnimationFrame:n=>this.requestTransition(n),...t})}}class aF{constructor(t){this.genomes=new Map,this.baseUrl=t}async initialize(t){const n=new ID(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 sF="data:image/png;base64,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",lF={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class uF{constructor(t){this._webGLHelper=t,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new _r([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:e0(ew),texture:t?this._createTextureNow(sF):void 0}}async waitUntilReady(){await Promise.all(this._promises)}getFont(t,n="normal",r="regular"){if(Pe(r)&&(r=lF[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=cF(r,n),o=this.fontRepository+pw(n.family)+"/"+i.replace(/\.\w+/,""),a=this._createTexture(o+".png"),s=this._loadFont(o+".json");t.texture=await a,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=>e0(r)),this._fontPromises.set(t,n)),n}_loadMetadata(t){const n=pw(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=>fF(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)=>{Us(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=Us(n,{src:t,min:n.LINEAR},(s,u,l)=>{s?a(s):o(u)})});return this._promises.push(i),r}}function pw(e){return e.toLowerCase().replaceAll(/[^\w]/g,"")}function fF(e){const t=e.split(`
283
+ `),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 cF(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 hF(e,t){const n=[];let r;for(const i of e.split(`
284
+ `))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 dF{constructor(t,n){this.animator=t,this.disabled=!!n,this.damping=.015,this.acceleration=.3,this.accelerationThreshold=100,this.lowerLimit=.5,this.loop=!1,this.momentum=0,this.timestamp=0,this.callback=null,this._transitionCallback=this.animate.bind(this),this.clear()}clear(){this.momentum=0,this.timestamp=null,this.loop=null,this.callback=null}cancel(){this.loop&&(this.animator.cancelTransition(this._transitionCallback),this.clear())}setMomentum(t,n){if(this.disabled){n(t);return}t*this.momentum<0?this.momentum=0:Math.abs(t)>this.accelerationThreshold?this.momentum=Xg([this.momentum,t],this.acceleration):this.momentum=t,this.callback=n,this.loop||this.animate()}animate(t){this.callback(this.momentum);const n=t-this.timestamp||0;this.timestamp=t;const r=Math.abs(this.momentum);this.momentum=Math.sign(this.momentum)*Math.max(0,r-((r*this.damping)**1.5+.04)*n),Math.abs(this.momentum)>this.lowerLimit?(this.loop=!0,this.animator.requestTransition(this._transitionCallback)):this.clear()}}function pF(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 gw=new Map;async function gF(e,t,n){const r=e.symbol;let i=gw.get(r)??await yF(e.symbol);return i?(gw.set(r,i),mn`
247
285
  <div class="title">
248
286
  <strong>${i.name}</strong>
249
287
  ${i.description}
250
288
  </div>
251
289
  <p class="summary">${i.summary}</p>
252
290
  <p class="source">Source: NCBI RefSeq Gene</p>
253
- `):null}async function iR(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 oR=Cu(iR,500);function aR(e){return oR(e)}const sR=pt(".4~r"),lR=pt(".4~e");function cw(e){return e==null?Dn` <span class="na">NA</span> `:Pe(e)?e.substring(0,30):Number.isInteger(e)?""+e:kt(e)?Math.abs(e)>Math.pow(10,8)||Math.abs(e)<Math.pow(10,-8)?lR(e):sR(e):La(e)?e?"True":"False":Ft(e)?Dn`${e.map((t,n)=>[cw(t),n<e.length-1?", ":nt])}`:"?"+typeof e+" "+e}async function fR(e,t,n){const r=(f,l)=>{var u;for(const[c,h]of Object.entries(t.encoders))if((u=h==null?void 0:h.accessor)!=null&&u.fields.includes(f))switch(c){case"color":case"fill":case"stroke":return Dn`
291
+ `):null}async function mF(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 bF=d0(mF,500);function yF(e){return bF(e)}const wF=gt(".4~r"),vF=gt(".4~e");function mw(e){return e==null?mn` <span class="na">NA</span> `:Pe(e)?e.substring(0,30):Number.isInteger(e)?""+e:Ct(e)?Math.abs(e)>Math.pow(10,8)||Math.abs(e)<Math.pow(10,-8)?vF(e):wF(e):Ga(e)?e?"True":"False":Ft(e)?mn`${e.map((t,n)=>[mw(t),n<e.length-1?", ":rt])}`:"?"+typeof e+" "+e}async function xF(e,t,n){const r=(u,l)=>{var f;for(const[c,h]of Object.entries(t.encoders))if((f=h==null?void 0:h.accessor)!=null&&f.fields.includes(u))switch(c){case"color":case"fill":case"stroke":return mn`
254
292
  <span
255
293
  class="color-legend"
256
294
  style=${`background-color: ${h(l)}`}
257
295
  ></span>
258
- `}return""},i=Object.entries(e).filter(([f,l])=>!f.startsWith("_"));if(i.length===0)return;const o=Dn`
296
+ `}return""},i=Object.entries(e).filter(([u,l])=>!u.startsWith("_"));if(i.length===0)return;const o=mn`
259
297
  <table class="attributes">
260
- ${i.map(([f,l])=>Dn`
298
+ ${i.map(([u,l])=>mn`
261
299
  <tr>
262
- <th>${f}</th>
263
- <td>${cw(l)} ${r(f,e)}</td>
300
+ <th>${u}</th>
301
+ <td>${mw(l)} ${r(u,e)}</td>
264
302
  </tr>
265
303
  `)}
266
304
  </table>
267
- `,a=t.unitView.getTitleText(),s=a?Dn`
305
+ `,a=t.unitView.getTitleText(),s=a?mn`
268
306
  <div class="title">
269
307
  <strong>${a}</strong>
270
308
  </div>
271
- `:"";return Dn`${s}${o}`}class Zs extends Vi{constructor(n,r,i,o,a,s){super(n,r,i,o,a,s);se(this,mr,[]);this.spec=n,this.needsAxes={x:!0,y:!0}}async initializeChildren(){Ct(this,mr,await Promise.all(this.spec.layer.map((n,r)=>this.context.createOrImportView(n,this,this,"grid"+r,i=>{if(!m0(i)&&!g0(i))throw new Hi("LayerView accepts only unit or layer specs as children!",this)}))))}get children(){return $(this,mr).slice()}*[Symbol.iterator](){for(const n of $(this,mr))yield n}render(n,r,i={}){if(this.isConfiguredVisible()){n.pushView(this,r);for(const o of $(this,mr))o.render(n,r,i);n.popView(this)}}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0);for(let r=$(this,mr).length-1;r>=0;r--)if($(this,mr)[r].propagateInteractionEvent(n),n.stopped)return;this.handleInteractionEvent(void 0,n,!1)}}mr=new WeakMap;class hw{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 uR="chromosome_ticks_and_labels",cR={x:"width",y:"height"};function c0(e){return e=="x"?"y":"x"}const Iu={x:["bottom","top"],y:["left","right"]},h0=Object.fromEntries(Object.entries(Iu).map(([e,t])=>t.map(n=>[n,e])).flat(1));function Vr(e){return h0[e]}class dw extends Zs{constructor(t,n,r,i,o,a){const s=n=="locus",f={...s?dR:pw,...hR(n,t),...t};super(s?pR(f,n):gw(f,n),r,i,o,`axis_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...a}),this.axisProps=f}getSize(){const t={px:this.getPerpendicularSize()},n={grow:1};return h0[this.axisProps.orient]=="x"?new Hr(n,t):new Hr(t,n)}getPerpendicularSize(){return d0(this.axisProps)}isPickingSupported(){return!1}}function d0(e){const t=Vr(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 pw={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 hR(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 gw(e,t){const n={...e,extent:d0(e)},r=Vr(n.orient),i=c0(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}}),f=()=>({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)}}}),u=()=>({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}}),c=()=>{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(f()),d},h={resolve:{scale:{[r]:"forced"}},[cR[c0(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(c()),n.title&&h.layer.push(u()),h}const dR={...pw,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 pR(e,t){const n={...e,extent:d0(e)},r=Vr(n.orient),i=c0(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 u;switch(n.orient){case"top":u={y:0,angle:0,paddingX:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":u={y:1,angle:0,paddingX:4,dy:n.chromLabelPadding+n.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":u={x:1,angle:-90,paddingY:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":u={x:0,angle:90,align:"right",paddingY:4,dy:-n.chromLabelPadding};break;default:u={}}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,...u},encoding:{[r+"2"]:{field:"continuousEnd",type:t},text:{field:"name"}}}};let f;switch(n.orient){case"bottom":case"top":f={};break;case"left":f={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":f={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:f={}}const l=gw({...e,...f},t);if(e.chromTicks||e.chromLabels){const u={name:uR,data:{lazy:{type:"axisGenome",channel:Vr(n.orient)}},encoding:{[r]:{field:"continuousStart",type:t,band:0}},layer:[]};if(e.chromTicks&&u.layer.push(a()),e.chromLabels){u.layer.push(s());let c;l.layer.filter(h=>h.name=="ticks_and_labels").forEach(h=>h.layer.filter(d=>d.name=="labels").forEach(d=>{c=d.mark})),c&&(n.orient=="top"||n.orient=="bottom"?(c.viewportEdgeFadeWidthLeft=30,c.viewportEdgeFadeDistanceLeft=40):(c.viewportEdgeFadeWidthBottom=30,c.viewportEdgeFadeDistanceBottom=40))}l.layer.push(u)}return l}class gR extends Zs{constructor(t,n,r,i,o,a){const f={...n=="locus"?mR:mw,...t};super(vR(f,n),r,i,o,`axisGrid_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...a}),this.axisProps=f}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const mw={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},mR={...mw,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function bR(e,t){const n=e,r=Vr(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 yR(e,t){const n=e,r=Vr(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 wR(e,t){const n=e,r=Vr(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 vR(e,t){const n={...e},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(wR(n,t)),n.chromGrid&&n.chromGridOpacity>0&&r.push(yR(n,t)),n.grid&&n.gridOpacity>0&&r.push(bR(n,t)),{name:"grid_layers",configurableVisibility:!1,resolve:{scale:{[Vr(e.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const bw={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"},xR={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},AR={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},ER={start:0,middle:.5,end:1},_R={start:"left",middle:"center",end:"right"};function SR(e){if(!e)return;const t=Pe(e)?{text:e}:e;if(!t.text||t.orient=="none")return;const n={"track-title":xR,overlay:AR}[t.style]??{},r={...bw,...n,...t};let i={},o={x:0,y:0};const a=ER[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={...bw,...i,...n,...t},f={xOffset:0,yOffset:0};switch(r.orient){case"top":f.yOffset=-s.offset;break;case"right":f.xOffset=s.offset;break;case"bottom":f.yOffset=s.offset;break;case"left":f.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...o,...f,text:s.text,align:s.align??_R[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}}}function CR(e,t,n,r){if(e.type=="wheel"){e.uiEvent.preventDefault();const i=e.uiEvent,o=i.deltaMode?120:1;let{x:a,y:s}=e.point;if(r){const f=r.mark.encoders;f.x&&!f.x2&&!f.x.constantValue&&(a=+f.x(r.datum)*t.width+t.x),f.y&&!f.y2&&!f.y.constantValue&&(s=(1-+f.y(r.datum))*t.height+t.y)}Math.abs(i.deltaX)<Math.abs(i.deltaY)?n({x:a,y:s,xDelta:0,yDelta:0,zDelta:i.deltaY*o/300}):n({x:a,y:s,xDelta:-i.deltaX*o,yDelta:0,zDelta:0})}else if(e.type=="mousedown"&&e.uiEvent.button===0){const i=e.uiEvent;i.preventDefault();let o=i;const a=f=>{n({x:o.clientX,y:o.clientY,xDelta:f.clientX-o.clientX,yDelta:f.clientY-o.clientY,zDelta:0}),o=f},s=f=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",a,!1)}}class kR extends Vi{constructor(n,r,i,o,a,s,f){super(n,r,i,o,a,f);se(this,br);se(this,Rc);se(this,go);se(this,Wl);se(this,Yl);se(this,Ql);se(this,Fc);se(this,Ra);se(this,Mc);se(this,Ta,1/0);se(this,Ba,10);se(this,Jt,[]);se(this,po,{});se(this,Da,0);this.spec=n,Ct(this,Ba,n.spacing??10),Ct(this,Ta,s),Ct(this,Jt,[]),this.wrappingFacet=!1}appendChild(n){n.layoutParent??(n.layoutParent=this),$(this,Jt).push(new ww(n,this,$(this,Da))),$E(this,Da)._++}setChildren(n){Ct(this,Jt,[]);for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=$(this,Jt).findIndex(o=>o.view==n);if(i>=0)$(this,Jt)[i]=new ww(r,this,$(this,Da));else throw new Error("Not my child view!")}get children(){return $(this,Jt).map(n=>n.view)}get childCount(){return $(this,Jt).length}async createAxes(){const n=[];for(const r of Mo){const i=this.resolutions.axis[r];if(i){const o=i.getAxisProps();if(o){const a={title:i.getTitle(),orient:Iu[r][0],...o},s=new dw(a,i.scaleResolution.type,this.context,this,this);n.push(s.initializeChildren()),$(this,po)[r]=s}}}return Promise.all([...n,...$(this,Jt).map(r=>r.createAxes())])}*[Symbol.iterator](){for(const n of $(this,Jt))yield*n.getChildren();for(const n of Object.values($(this,po)))yield n}getOverhang(){return te(this,Fc,t_).call(this).union(te(this,Ra,zc).call(this))}getSize(){return this._cache("size",()=>new Hr(te(this,Yl,Ng).call(this,"column"),te(this,Yl,Ng).call(this,"row")).addPadding(te(this,Ra,zc).call(this)))}render(n,r,i={}){if(!this.isConfiguredVisible())return;this.layoutParent||(r=r.shrink(this.getPadding())),r=r.shrink(te(this,Ra,zc).call(this)),n.pushView(this,r);const o={devicePixelRatio:this.context.devicePixelRatio},a=_y(te(this,Wl,Lg).call(this,"column"),r.width,o),s=_y(te(this,Wl,Lg).call(this,"row"),r.height,o),f=new hw($(this,br,wo).length,$(this,Ta)??1/0),l=u=>Math.round(u*devicePixelRatio)/devicePixelRatio;for(const[u,c]of $(this,br,wo).entries()){const{view:h,axes:d,gridLines:p,background:b,backgroundStroke:y,title:w}=c,[_,C]=f.getCellCoords(u),S=a[te(this,Ql,Og).call(this,"column",_)],T=s[te(this,Ql,Og).call(this,"row",C)],B=h.getViewportSize(),I=h.getSize(),F=h.getOverhang(),P=S.location-F.left,j=T.location-F.top,O=(Oe,L)=>(Oe[L].grow?(L=="width"?S:T).size:Oe[L].px)+F[L],re=O(B,"width"),ae=O(B,"height"),pe=O(I,"width"),Te=O(I,"height"),Xe=c.scrollbars.horizontal,De=c.scrollbars.vertical,$e=Xe?()=>l(Xe.viewportOffset):()=>0,Ze=De?()=>l(De.viewportOffset):()=>0,Ke=new ar(()=>r.x+P,()=>r.y+j,()=>re,()=>ae),Ee=h.isScrollable(),_e=Ee?new ar(()=>r.x+P-$e(),()=>r.y+j-Ze(),()=>pe,()=>Te):Ke;c.coords=Ke;const dt=i.clipRect?Ke.intersect(i.clipRect):Ke;b==null||b.render(n,dt,{...i,clipRect:void 0});for(const Oe of Object.values(p))Oe.render(n,Ke,i);const qt=DR(h)||Ee;qt&&h.render(n,_e,{...i,clipRect:dt}),y==null||y.render(n,dt,{...i,clipRect:void 0});for(const[Oe,L]of Object.entries(d)){const M=Oe=="left"||Oe=="right"?"vertical":"horizontal",q=c.scrollbars[M],H=q?Ke.modify(M=="vertical"?{y:()=>_e.y,height:Te}:{x:()=>_e.x,width:pe}):Ke,W=yw(H,Oe,L);let E=i.clipRect;q&&(E=W.intersect(E).intersect(q?Ke.modify(M=="vertical"?{x:-1e5,width:2e5}:{y:-1e5,height:2e5}):void 0)),L.render(n,W,{...i,clipRect:E})}for(const Oe of Object.values($(this,po))){const M=Oe.axisProps.orient;(M=="left"&&_==0||M=="right"&&_==f.nCols-1||M=="top"&&C==0||M=="bottom"&&C==f.nRows-1)&&Oe.render(n,yw(Ke.shrink(c.view.getOverhang()),M,Oe),i)}qt||h.render(n,_e,i);for(const Oe of Object.values(c.scrollbars))Oe.updateScrollbar(Ke,_e),Oe.render(n,r,i);w==null||w.render(n,Ke,i)}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=$(this,br,wo).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 Zs)&&CR(n,r.coords,o=>te(this,Mc,n_).call(this,r.coords,r.view,o),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}Ta=new WeakMap,Ba=new WeakMap,Jt=new WeakMap,po=new WeakMap,Da=new WeakMap,br=new WeakSet,wo=function(){return $(this,Jt).filter(n=>n.view.isConfiguredVisible())},Rc=new WeakSet,e_=function(){return new hw($(this,br,wo).length,$(this,Ta)??1/0)},go=new WeakSet,Jl=function(n){const r=n=="column"?"width":"height",i=(o,a)=>o.map(s=>{const l=$(this,br,wo)[s].getOverhangAndPadding();return n=="column"?a?l.right:l.left:a?l.bottom:l.top}).reduce((s,f)=>Math.max(s,f),0);return this._cache(`size/directionSizes/${n}`,()=>$(this,Rc,e_)[n=="column"?"colIndices":"rowIndices"].map(o=>({axisBefore:i(o,0),axisAfter:i(o,1),view:NB(o.map(a=>$(this,br,wo)[a].view.getViewportSize()[r]))})))},Wl=new WeakSet,Lg=function(n){const r=te(this,go,Jl).call(this,n),i=[];i.push(Us);for(const[o,a]of r.entries())o>0&&i.push({px:$(this,Ba),grow:0}),(o==0||this.wrappingFacet)&&i.push(Us),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(Us);return i},Yl=new WeakSet,Ng=function(n){let r=0,i=0;const o=n=="row"?this.spec.height:this.spec.width;if(o||o===0)return Cy(o);const a=te(this,go,Jl).call(this,n);for(const[s,f]of a.entries())s>0&&(i+=$(this,Ba)),(s==0||this.wrappingFacet)&&(i+=0),i+=f.axisBefore,i+=f.view.px??0,r+=f.view.grow??0,i+=f.axisAfter,(s==a.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},Ql=new WeakSet,Og=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},Fc=new WeakSet,t_=function(){const n=te(this,go,Jl).call(this,"column"),r=te(this,go,Jl).call(this,"row");return!n.length||!r.length?Et.zero():new Et(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)},Ra=new WeakSet,zc=function(){const n=r=>{const i=h0[r],o=$(this,po)[i];return(o==null?void 0:o.axisProps.orient)!==r?0:Math.max(o.getPerpendicularSize()+o.axisProps.offset,0)};return new Et(n("top"),n("right"),n("bottom"),n("left"))},Mc=new WeakSet,n_=function(n,r,i){for(const[o,a]of Object.entries(BR(r))){if(a.size<=0)continue;const s=n.normalizePoint(i.x,i.y),f=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),l={x:f.x-s.x,y:f.y-s.y};for(const u of a)u.zoom(2**i.zDelta,o=="y"?1-s[o]:s[o],o=="x"?l.x:-l.y)}this.context.animator.requestRender()};function IR(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 TR(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 BR(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 DR(e){let t=!0;return e.visit(n=>{n instanceof Qt&&t&&(t=n.mark.properties.clip===!0)}),t}function yw(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 ww{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=ar.ZERO,t.needsAxes.x||t.needsAxes.y){const i=t.spec,o="view"in i?i==null?void 0:i.view:void 0,a=IR(o);a&&(this.background=new Qt(a,n.context,n,t,"background"+r,{blockEncodingInheritance:!0}));const s=TR(o);s&&(this.backgroundStroke=new Qt(s,n.context,n,t,"backgroundStroke"+r,{blockEncodingInheritance:!0}));const f=SR(t.spec.title);if(f){const l=new Qt(f,n.context,n,t,"title"+r,{blockEncodingInheritance:!0});this.title=l}}t.spec.viewportWidth!=null&&(this.scrollbars.horizontal=new vw(this,"horizontal")),t.spec.viewportHeight!=null&&(this.scrollbars.vertical=new vw(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,f)=>{const l=s.getAxisProps();if(l===null)return;const u=l?{...l}:{};if(!u.orient){for(const c of Iu[f])if(!n[c]){u.orient=c;break}if(!u.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(u.title??(u.title=s.getTitle()),!Iu[f].includes(u.orient))throw new Error(`Invalid axis orientation "${u.orient}" on channel "${f}"!`);return u},o=async(s,f,l)=>{const u=i(s,f);if(u){if(n[u.orient])throw new Error(`An axis with the orient "${u.orient}" already exists!`);const c=new dw(u,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);n[u.orient]=c,await c.initializeChildren()}},a=async(s,f,l)=>{const u=i(s,f);if(u&&(u.grid||u.chromGrid)){const c=new gR(u,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);r[u.orient]=c,await c.initializeChildren()}};for(const s of["x","y"])if(t.needsAxes[s]){const f=t.resolutions.axis[s];if(!f)continue;await o(f,s,t)}for(const s of["x","y"])if(t.needsAxes[s]){const f=t.getAxisResolution(s);if(!f)continue;await a(f,s,t)}if(t instanceof Zs){for(const s of t)for(const[f,l]of Object.entries(s.resolutions.axis)){const u=l.getAxisProps();u&&u.orient&&await o(l,f,s)}for(const s of t)for(const[f,l]of Object.entries(s.resolutions.axis)){const u=l.getAxisProps();u&&!u.orient&&await o(l,f,s)}}[...Object.values(n),...Object.values(r)].forEach(s=>s.visit(f=>{f instanceof Qt&&f.resolve("scale")}))}getOverhang(){const t=n=>{const r=this.axes[n];return r?Math.max(r.getPerpendicularSize()+r.axisProps.offset,0):0};return new Et(t("top"),t("right"),t("bottom"),t("left")).add(this.view.getOverhang())}getOverhangAndPadding(){return this.getOverhang().add(this.view.getPadding())}}class vw extends Qt{constructor(t,n){const r={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},t.layoutParent.context,t.layoutParent,t.view,"scrollbar-"+n,{blockEncodingInheritance:!0}),this.config=r,this.scrollDirection=n,this.viewportOffset=0,this.maxScrollOffset=0,this.scrollbarCoords=ar.ZERO,this.addInteractionEventListener("mousedown",(i,o)=>{if(o.stopPropagation(),this.maxScrollOffset<=0)return;const a=h=>n=="vertical"?h.clientY:h.clientX,s=o.uiEvent;s.preventDefault();const f=this.getScrollOffset(),l=a(s),u=h=>{const d=gs(a(h)-l+f,0,this.maxScrollOffset);this.viewportOffset=d/this.maxScrollOffset*this.maxViewportOffset,this.context.animator.requestRender()},c=()=>{document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",c)};document.addEventListener("mouseup",c,!1),document.addEventListener("mousemove",u,!1)})}getScrollOffset(){return this.viewportOffset/this.maxViewportOffset*this.maxScrollOffset}render(t,n,r){super.render(t,this.scrollbarCoords,r)}updateScrollbar(t,n){const r=this.config.scrollbarPadding,i=this.config.scrollbarSize,o=this.scrollDirection=="horizontal"?"width":"height",a=Math.min(1,t[o]/n[o]),s=t[o]-2*r,f=a*s;this.maxScrollOffset=s-f,this.maxViewportOffset=n[o]-t[o],this.viewportOffset=gs(this.viewportOffset,0,this.maxViewportOffset),this.scrollbarCoords=this.scrollDirection=="vertical"?new ar(()=>t.x+t.width-i-r,()=>t.y+r+this.getScrollOffset(),()=>i,()=>f):new ar(()=>t.x+r+this.getScrollOffset(),()=>t.y+t.height-i-r,()=>f,()=>i)}}class p0 extends kR{constructor(t,n,r,i,o){super(t,n,r,i,o,b0(t)?t.columns:Tu(t)?1:1/0),this.spec=t}async initializeChildren(){const t=this.spec,n=b0(t)?t.concat:Tu(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":Tu(this.spec)&&t==="x"||Aw(this.spec)&&t==="y"?"shared":"independent"}}const xw="viewRoot";class RR{constructor(t={}){se(this,Fa,new Map);this.options={allowImport:!0,wrapRoot:!0,...t};const n=r=>(i,o,a,s,f)=>new r(i,o,a,s,i.name??f);this.addViewType(m0,n(Zs)),this.addViewType(g0,n(Qt)),this.addViewType(Tu,n(p0)),this.addViewType(Aw,n(p0)),this.addViewType(b0,n(p0)),this.addViewType(MR,()=>{throw new Error("SampleView is not supported by the @genome-spy/core package. Use @genome-spy/app instead!")})}addViewType(t,n){$(this,Fa).set(t,n)}createView(t,n,r,i,o){for(const[a,s]of $(this,Fa))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=[...$(this,Fa).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(FR(t))if(this.options.allowImport)s=await U9(t,i.getBaseUrl(),n),a&&a(s);else throw new Hi("Importing views is not allowed!",r);else s=t;!i&&this.options.wrapRoot&&(g0(s)||m0(s))&&o===xw&&(s={name:"implicitRoot",vconcat:[s]});const f=this.createView(s,n,r,i,o);return f instanceof Vi&&await f.initializeChildren(),f}}Fa=new WeakMap;function g0(e){return"mark"in e&&(Pe(e.mark)||Mt(e.mark))}function m0(e){return"layer"in e&&Mt(e.layer)}function FR(e){return"import"in e}function Tu(e){return"vconcat"in e&&Ft(e.vconcat)}function Aw(e){return"hconcat"in e&&Ft(e.hconcat)}function b0(e){return"concat"in e&&Ft(e.concat)}function MR(e){return"samples"in e&&Mt(e.samples)&&"spec"in e&&Mt(e.spec)}class PR{constructor(){se(this,Ma,void 0);se(this,mo,void 0);se(this,Xl,void 0);se(this,bo,void 0);Ct(this,Ma,new Map),Ct(this,mo,new Set),Ct(this,bo,new Map),Ct(this,Xl,new Proxy($(this,Ma),{get(t,n){return Pe(n)?t.get(n):void 0}}))}allocateSetter(t){if($(this,mo).has(t))throw new Error("Setter already allocated for parameter: "+t);return $(this,mo).add(t),n=>{$(this,Ma).set(t,n);const r=$(this,bo).get(t);if(r)for(const i of r)i()}}createExpression(t){const n=Ff(t,$(this,Xl));for(const r of n.globals)if(!$(this,mo).has(r))throw new Error(`Unknown variable "${r}" in expression: ${t}`);return n.addListener=r=>{for(const i of n.globals){const o=$(this,bo).get(i)??new Set;$(this,bo).set(i,o),o.add(r)}},n}}Ma=new WeakMap,mo=new WeakMap,Xl=new WeakMap,bo=new WeakMap,Ym("fasta",eR);class Ew{constructor(t,n,r={}){this.container=t;const i=document.createElement("style");i.innerHTML=eC,t.appendChild(i),this.spec=n,this.accessorFactory=new V8,this.viewFactory=new RR,this.namedDataProviders=[],this.animator=new W9(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=o=>o.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new tR(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this._extraBroadcastListeners=new Map,this.tooltipHandlers={default:fR,refseqgene:rR,...r.tooltipHandlers??{}},this.viewRoot=void 0,this._paramBroker=new PR}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),s0(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))}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new iB(this.container,()=>this.viewRoot?G9(this.viewRoot):{width:void 0,height:void 0},this.spec.background),this.loadingMessageElement=document.createElement("div"),this.loadingMessageElement.className="loading-message",this.loadingMessageElement.innerHTML='<div class="message">Loading<span class="ellipsis">...</span></div>',this.container.appendChild(this.loadingMessageElement),this.tooltip=new nC(this.container),this.loadingMessageElement.querySelector(".message").addEventListener("transitionend",()=>{this.loadingMessageElement.style.display="none"})}destroy(){this.container.classList.remove("genome-spy"),this.container.classList.remove("loading");for(const[t,n]of this._keyboardListeners)for(const r of n)document.removeEventListener(t,r);for(this._glHelper.finalize();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new Y9(this.spec.baseUrl),await this.genomeStore.initialize(this.spec.genome));const t=this,n={dataFlow:new iw,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new $9(this._glHelper),get devicePixelRatio(){return t._glHelper.dpr},paramBroker:this._paramBroker,requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,addKeyboardListener:(f,l)=>{document.addEventListener(f,l);let u=this._keyboardListeners.get(f);u||(u=[],this._keyboardListeners.set(f,u)),u.push(l)},addBroadcastListener(f,l){const u=t._extraBroadcastListeners;let c=u.get(f);c||(c=new Set,u.set(f,c)),c.add(l)},removeBroadcastListener(f,l){var c;(c=t._extraBroadcastListeners.get(f))==null||c.delete(l)},isViewConfiguredVisible:t.viewVisibilityPredicate,isViewSpec:f=>t.viewFactory.isViewSpec(f),createView:function(f,l,u,c){return t.viewFactory.createView(f,n,l,u,c)},createOrImportView:async function(f,l,u,c,h){return t.viewFactory.createOrImportView(f,n,l,u,c,h)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(f=>r.datasets[f]),this.viewRoot=await n.createOrImportView(r,null,null,xw),O9(this.viewRoot),z9(this.viewRoot);const i=this.viewRoot.getDescendants();i.forEach(f=>f.configureViewOpacity()),this._glHelper.invalidateSize();const o=i.filter(f=>f instanceof Qt),a=R9(this.viewRoot,n.dataFlow);N9(a),this.broadcast("dataFlowBuilt",a),o.forEach(f=>f.mark.initializeEncoders());const s=Promise.all(o.map(f=>f.mark.initializeGraphics()));for(const f of o)a.addObserver(l=>{f.mark.initializeData(),f.mark.updateGraphicsData()},f);await n.fontManager.waitUntilReady(),a.initialize(),await Promise.all(a.dataSources.map(f=>f.load())),s0(this.viewRoot),this.broadcast("dataLoaded"),await s,this.viewRoot.visit(f=>{for(const l of Object.values(f.resolutions.scale))this._glHelper.createRangeTexture(l)});for(const f of o)f.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(f=>xu(f,"size")),this._glHelper.invalidateSize()}async launch(){try{return this._prepareContainer(),await this._prepareViewsAndData(),this.registerMouseEvents(),this.computeLayout(),this.animator.requestRender(),this._glHelper.addEventListener("resize",()=>{this.computeLayout(),this.renderAll()}),!0}catch(t){const n=`${t.view?`At "${t.view.getPathString()}": `:""}${t.toString()}`;return console.error(t.stack),LR(this.container,n),!1}finally{this.container.classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const t=this._glHelper.canvas,n=r=>{var i;if(r instanceof MouseEvent){r.type=="mousemove"&&(this.tooltip.handleMouseMove(r),this._tooltipUpdateRequested=!1,r.buttons==0&&this.renderPickingFramebuffer());const o=t.getBoundingClientRect(),a=new j9(r.clientX-o.left-t.clientLeft,r.clientY-o.top-t.clientTop),s=f=>{this.viewRoot.propagateInteractionEvent(new V9(a,f)),this._tooltipUpdateRequested||this.tooltip.clear()};if(r.type!="wheel"&&this._wheelInertia.cancel(),r.type=="mousemove")this._handlePicking(a.x,a.y);else if(r.type=="mousedown"||r.type=="mouseup")this.renderPickingFramebuffer();else if(r.type=="wheel"){this._tooltipUpdateRequested=!1;const f=r;if(Math.abs(f.deltaX)>Math.abs(f.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const l=nR(f);this._wheelInertia.setMomentum(f.deltaY*(f.deltaMode?80:1),u=>{const c=new WheelEvent("wheel",{...l,deltaMode:0,deltaX:0,deltaY:u});s(c)}),f.preventDefault();return}}if(r.type=="click"){const f=this._currentHover?{type:r.type,viewPath:this._currentHover.mark.unitView.getLayoutAncestors().map(l=>l.name).reverse(),datum:this._currentHover.datum}:{type:r.type,viewPath:null,datum:null};(i=this._eventListeners.get("click"))==null||i.forEach(l=>l(f))}s(r)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(r=>t.addEventListener(r,n)),t.addEventListener("mousedown",()=>{document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),t.addEventListener("dragstart",r=>r.stopPropagation())}_handlePicking(t,n){var o;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!==((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()){const s=a.mark.encoders.uniqueId.accessor;a.getCollector().visitData(f=>{s(f)==i&&(this._currentHover={mark:a.mark,datum:f,uniqueId:i})})}if(this._currentHover)return Gs}}),this._currentHover){const a=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{if(!a.isPickingParticipant())return;const f=a.properties.tooltip;if(f!==null){const l=(f==null?void 0:f.handler)??"default",u=this.tooltipHandlers[l];if(!u)throw new Error("No such tooltip handler: "+l);return u(s,a,f==null?void 0:f.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 lw({picking:!1},this._glHelper),this._pickingContext=new lw({picking:!0},this._glHelper),t.render(new H9(this._renderingContext,this._pickingContext),ar.create(0,0,n.width,n.height)),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.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}}function LR(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)}const NR="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",OR="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 zR(e,t,n={}){let r;if(Pe(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=Mt(t)?t:await _w(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 Ew(r,o,n),UR(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 f=s.get(o);f||(f=new Set,s.set(o,f)),f.add(a)},removeEventListener(o,a){var f;(f=i._eventListeners.get(o))==null||f.delete(a)},getScaleResolutionByName(o){return i.getNamedScaleResolutions().get(o)},updateNamedData:i.updateNamedData.bind(i)}}function UR(e,t){t.namedDataProvider&&e.registerNamedDataProvider(t.namedDataProvider)}async function _w(e){let t;try{t=JSON.parse(await Ef().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 Bu=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function Ws(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function GR(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 ye={},Du={};Du.byteLength=jR,Du.toByteArray=ZR,Du.fromByteArray=QR;for(var Un=[],nn=[],HR=typeof Uint8Array<"u"?Uint8Array:Array,y0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Wo=0,VR=y0.length;Wo<VR;++Wo)Un[Wo]=y0[Wo],nn[y0.charCodeAt(Wo)]=Wo;nn["-".charCodeAt(0)]=62,nn["_".charCodeAt(0)]=63;function Sw(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 jR(e){var t=Sw(e),n=t[0],r=t[1];return(n+r)*3/4-r}function qR(e,t,n){return(t+n)*3/4-n}function ZR(e){var t,n=Sw(e),r=n[0],i=n[1],o=new HR(qR(e,r,i)),a=0,s=i>0?r-4:r,f;for(f=0;f<s;f+=4)t=nn[e.charCodeAt(f)]<<18|nn[e.charCodeAt(f+1)]<<12|nn[e.charCodeAt(f+2)]<<6|nn[e.charCodeAt(f+3)],o[a++]=t>>16&255,o[a++]=t>>8&255,o[a++]=t&255;return i===2&&(t=nn[e.charCodeAt(f)]<<2|nn[e.charCodeAt(f+1)]>>4,o[a++]=t&255),i===1&&(t=nn[e.charCodeAt(f)]<<10|nn[e.charCodeAt(f+1)]<<4|nn[e.charCodeAt(f+2)]>>2,o[a++]=t>>8&255,o[a++]=t&255),o}function WR(e){return Un[e>>18&63]+Un[e>>12&63]+Un[e>>6&63]+Un[e&63]}function YR(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(WR(r));return i.join("")}function QR(e){for(var t,n=e.length,r=n%3,i=[],o=16383,a=0,s=n-r;a<s;a+=o)i.push(YR(e,a,a+o>s?s:a+o));return r===1?(t=e[n-1],i.push(Un[t>>2]+Un[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(Un[t>>10]+Un[t>>4&63]+Un[t<<2&63]+"=")),i.join("")}var w0={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */w0.read=function(e,t,n,r,i){var o,a,s=i*8-r-1,f=(1<<s)-1,l=f>>1,u=-7,c=n?i-1:0,h=n?-1:1,d=e[t+c];for(c+=h,o=d&(1<<-u)-1,d>>=-u,u+=s;u>0;o=o*256+e[t+c],c+=h,u-=8);for(a=o&(1<<-u)-1,o>>=-u,u+=r;u>0;a=a*256+e[t+c],c+=h,u-=8);if(o===0)o=1-l;else{if(o===f)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)},w0.write=function(e,t,n,r,i,o){var a,s,f,l=o*8-i-1,u=(1<<l)-1,c=u>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,p=r?1:-1,b=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=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(f=Math.pow(2,-a))<1&&(a--,f*=2),a+c>=1?t+=h/f:t+=h*Math.pow(2,1-c),t*f>=2&&(a++,f/=2),a+c>=u?(s=0,a=u):a+c>=1?(s=(t*f-1)*Math.pow(2,i),a=a+c):(s=t*Math.pow(2,c-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]|=b*128};/*!
309
+ `:"";return mn`${s}${o}`}class Xs extends qi{constructor(n,r,i,o,a,s){super(n,r,i,o,a,s);re(this,br,[]);this.spec=n,this.needsAxes={x:!0,y:!0}}async initializeChildren(){Je(this,br,await Promise.all(this.spec.layer.map((n,r)=>this.context.createOrImportView(n,this,this,"grid"+r,i=>{if(!v0(i)&&!w0(i))throw new ji("LayerView accepts only unit or layer specs as children!",this)}))))}get children(){return W(this,br).slice()}*[Symbol.iterator](){for(const n of W(this,br))yield n}render(n,r,i={}){if(super.render(n,r,i),!!this.isConfiguredVisible()){n.pushView(this,r);for(const o of W(this,br))o.render(n,r,i);n.popView(this)}}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0);for(let r=W(this,br).length-1;r>=0;r--)if(W(this,br)[r].propagateInteractionEvent(n),n.stopped)return;this.handleInteractionEvent(void 0,n,!1)}}br=new WeakMap;class bw{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 AF="chromosome_ticks_and_labels",EF={x:"width",y:"height"};function g0(e){return e=="x"?"y":"x"}const Ff={x:["bottom","top"],y:["left","right"]},m0=Object.fromEntries(Object.entries(Ff).map(([e,t])=>t.map(n=>[n,e])).flat(1));function qr(e){return m0[e]}class yw extends Xs{constructor(t,n,r,i,o,a){const s=n=="locus",u={...s?SF:ww,..._F(n,t),...t};super(s?CF(u,n):vw(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 m0[this.axisProps.orient]=="x"?new jr(n,t):new jr(t,n)}getPerpendicularSize(){return b0(this.axisProps)}isPickingSupported(){return!1}}function b0(e){const t=qr(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 ww={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 _F(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 vw(e,t){const n={...e,extent:b0(e)},r=qr(n.orient),i=g0(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)}}}),f=()=>({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}}),c=()=>{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"}},[EF[g0(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(c()),n.title&&h.layer.push(f()),h}const SF={...ww,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 CF(e,t){const n={...e,extent:b0(e)},r=qr(n.orient),i=g0(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 f;switch(n.orient){case"top":f={y:0,angle:0,paddingX:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":f={y:1,angle:0,paddingX:4,dy:n.chromLabelPadding+n.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":f={x:1,angle:-90,paddingY:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":f={x:0,angle:90,align:"right",paddingY:4,dy:-n.chromLabelPadding};break;default:f={}}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,...f},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=vw({...e,...u},t);if(e.chromTicks||e.chromLabels){const f={name:AF,data:{lazy:{type:"axisGenome",channel:qr(n.orient)}},encoding:{[r]:{field:"continuousStart",type:t,band:0}},layer:[]};if(e.chromTicks&&f.layer.push(a()),e.chromLabels){f.layer.push(s());let c;l.layer.filter(h=>h.name=="ticks_and_labels").forEach(h=>h.layer.filter(d=>d.name=="labels").forEach(d=>{c=d.mark})),c&&(n.orient=="top"||n.orient=="bottom"?(c.viewportEdgeFadeWidthLeft=30,c.viewportEdgeFadeDistanceLeft=40):(c.viewportEdgeFadeWidthBottom=30,c.viewportEdgeFadeDistanceBottom=40))}l.layer.push(f)}return l}class kF extends Xs{constructor(t,n,r,i,o,a){const u={...n=="locus"?TF:xw,...t};super(FF(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 xw={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},TF={...xw,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function IF(e,t){const n=e,r=qr(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 BF(e,t){const n=e,r=qr(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 DF(e,t){const n=e,r=qr(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 FF(e,t){const n={...e},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(DF(n,t)),n.chromGrid&&n.chromGridOpacity>0&&r.push(BF(n,t)),n.grid&&n.gridOpacity>0&&r.push(IF(n,t)),{name:"grid_layers",configurableVisibility:!1,resolve:{scale:{[qr(e.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const Aw={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"},RF={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},MF={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},PF={start:0,middle:.5,end:1},LF={start:"left",middle:"center",end:"right"};function NF(e){if(!e)return;const t=Pe(e)?{text:e}:e;if(!t.text||t.orient=="none")return;const n={"track-title":RF,overlay:MF}[t.style]??{},r={...Aw,...n,...t};let i={},o={x:0,y:0};const a=PF[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={...Aw,...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??LF[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}}}function OF(e,t,n,r){if(e.type=="wheel"){e.uiEvent.preventDefault();const i=e.uiEvent,o=i.deltaMode?120:1;let{x:a,y:s}=e.point;if(r){const u=r.mark.encoders;u.x&&!u.x2&&!u.x.constantValue&&(a=+u.x(r.datum)*t.width+t.x),u.y&&!u.y2&&!u.y.constantValue&&(s=(1-+u.y(r.datum))*t.height+t.y)}Math.abs(i.deltaX)<Math.abs(i.deltaY)?n({x:a,y:s,xDelta:0,yDelta:0,zDelta:i.deltaY*o/300}):n({x:a,y:s,xDelta:-i.deltaX*o,yDelta:0,zDelta:0})}else if(e.type=="mousedown"&&e.uiEvent.button===0){const i=e.uiEvent;i.preventDefault();let o=i;const a=u=>{n({x:o.clientX,y:o.clientY,xDelta:u.clientX-o.clientX,yDelta:u.clientY-o.clientY,zDelta:0}),o=u},s=u=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",a,!1)}}class zF extends qi{constructor(n,r,i,o,a,s,u){super(n,r,i,o,a,u);re(this,yr);re(this,Mc);re(this,mo);re(this,Jl);re(this,eu);re(this,tu);re(this,Pc);re(this,Na);re(this,Lc);re(this,Ma,1/0);re(this,Pa,10);re(this,Kt,[]);re(this,go,{});re(this,La,0);this.spec=n,Je(this,Pa,n.spacing??10),Je(this,Ma,s),Je(this,Kt,[]),this.wrappingFacet=!1}appendChild(n){n.layoutParent??(n.layoutParent=this),W(this,Kt).push(new _w(n,this,W(this,La))),r_(this,La)._++}setChildren(n){Je(this,Kt,[]);for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=W(this,Kt).findIndex(o=>o.view==n);if(i>=0)W(this,Kt)[i]=new _w(r,this,W(this,La));else throw new Error("Not my child view!")}get children(){return W(this,Kt).map(n=>n.view)}get childCount(){return W(this,Kt).length}async createAxes(){const n=[];for(const r of Po){const i=this.resolutions.axis[r];if(i){const o=i.getAxisProps();if(o){const a={title:i.getTitle(),orient:Ff[r][0],...o},s=new yw(a,i.scaleResolution.type,this.context,this,this);n.push(s.initializeChildren()),W(this,go)[r]=s}}}return Promise.all([...n,...W(this,Kt).map(r=>r.createAxes())])}*[Symbol.iterator](){for(const n of W(this,Kt))yield*n.getChildren();for(const n of Object.values(W(this,go)))yield n}getOverhang(){return te(this,Pc,s_).call(this).union(te(this,Na,Gc).call(this))}getSize(){return this._cache("size",()=>new jr(te(this,eu,Hg).call(this,"column"),te(this,eu,Hg).call(this,"row")).addPadding(te(this,Na,Gc).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(te(this,Na,Gc).call(this)),n.pushView(this,r);const o={devicePixelRatio:this.context.devicePixelRatio},a=Iy(te(this,Jl,Gg).call(this,"column"),r.width,o),s=Iy(te(this,Jl,Gg).call(this,"row"),r.height,o),u=new bw(W(this,yr,vo).length,W(this,Ma)??1/0),l=f=>Math.round(f*devicePixelRatio)/devicePixelRatio;for(const[f,c]of W(this,yr,vo).entries()){const{view:h,axes:d,gridLines:p,background:b,backgroundStroke:y,title:w}=c,[_,C]=u.getCellCoords(f),E=a[te(this,tu,Vg).call(this,"column",_)],T=s[te(this,tu,Vg).call(this,"row",C)],B=h.getViewportSize(),I=h.getSize(),R=h.getOverhang(),M=E.location-R.left,j=T.location-R.top,O=(Oe,L)=>(Oe[L].grow?(L=="width"?E:T).size:Oe[L].px)+R[L],ie=O(B,"width"),se=O(B,"height"),ge=O(I,"width"),Ie=O(I,"height"),Xe=c.scrollbars.horizontal,De=c.scrollbars.vertical,$e=Xe?()=>l(Xe.viewportOffset):()=>0,Ze=De?()=>l(De.viewportOffset):()=>0,Ke=new sr(()=>r.x+M,()=>r.y+j,()=>ie,()=>se),Ee=h.isScrollable(),_e=Ee?new sr(()=>r.x+M-$e(),()=>r.y+j-Ze(),()=>ge,()=>Ie):Ke;c.coords=Ke;const pt=i.clipRect?Ke.intersect(i.clipRect):Ke;b==null||b.render(n,pt,{...i,clipRect:void 0});for(const Oe of Object.values(p))Oe.render(n,Ke,i);const qt=VF(h)||Ee;qt&&h.render(n,_e,{...i,clipRect:pt}),y==null||y.render(n,pt,{...i,clipRect:void 0});for(const[Oe,L]of Object.entries(d)){const P=Oe=="left"||Oe=="right"?"vertical":"horizontal",q=c.scrollbars[P],H=q?Ke.modify(P=="vertical"?{y:()=>_e.y,height:Ie}:{x:()=>_e.x,width:ge}):Ke,Y=Ew(H,Oe,L);let S=i.clipRect;q&&(S=Y.intersect(S).intersect(q?Ke.modify(P=="vertical"?{x:-1e5,width:2e5}:{y:-1e5,height:2e5}):void 0)),L.render(n,Y,{...i,clipRect:S})}for(const Oe of Object.values(W(this,go))){const P=Oe.axisProps.orient;(P=="left"&&_==0||P=="right"&&_==u.nCols-1||P=="top"&&C==0||P=="bottom"&&C==u.nRows-1)&&Oe.render(n,Ew(Ke.shrink(c.view.getOverhang()),P,Oe),i)}qt||h.render(n,_e,i);for(const Oe of Object.values(c.scrollbars))Oe.updateScrollbar(Ke,_e),Oe.render(n,r,i);w==null||w.render(n,Ke,i)}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=W(this,yr,vo).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 Yt||i instanceof Xs)&&OF(n,r.coords,o=>te(this,Lc,l_).call(this,r.coords,r.view,o),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}Ma=new WeakMap,Pa=new WeakMap,Kt=new WeakMap,go=new WeakMap,La=new WeakMap,yr=new WeakSet,vo=function(){return W(this,Kt).filter(n=>n.view.isConfiguredVisible())},Mc=new WeakSet,a_=function(){return new bw(W(this,yr,vo).length,W(this,Ma)??1/0)},mo=new WeakSet,ou=function(n){const r=n=="column"?"width":"height",i=(o,a)=>o.map(s=>{const l=W(this,yr,vo)[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}`,()=>W(this,Mc,a_)[n=="column"?"colIndices":"rowIndices"].map(o=>({axisBefore:i(o,0),axisAfter:i(o,1),view:QB(o.map(a=>W(this,yr,vo)[a].view.getViewportSize()[r]))})))},Jl=new WeakSet,Gg=function(n){const r=te(this,mo,ou).call(this,n),i=[];i.push(js);for(const[o,a]of r.entries())o>0&&i.push({px:W(this,Pa),grow:0}),(o==0||this.wrappingFacet)&&i.push(js),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(js);return i},eu=new WeakSet,Hg=function(n){let r=0,i=0;const o=n=="row"?this.spec.height:this.spec.width;if(o||o===0)return Dy(o);const a=te(this,mo,ou).call(this,n);for(const[s,u]of a.entries())s>0&&(i+=W(this,Pa)),(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}},tu=new WeakSet,Vg=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},Pc=new WeakSet,s_=function(){const n=te(this,mo,ou).call(this,"column"),r=te(this,mo,ou).call(this,"row");return!n.length||!r.length?_t.zero():new _t(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)},Na=new WeakSet,Gc=function(){const n=r=>{const i=m0[r],o=W(this,go)[i];return(o==null?void 0:o.axisProps.orient)!==r?0:Math.max(o.getPerpendicularSize()+o.axisProps.offset,0)};return new _t(n("top"),n("right"),n("bottom"),n("left"))},Lc=new WeakSet,l_=function(n,r,i){for(const[o,a]of Object.entries(HF(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 f of a)f.zoom(2**i.zDelta,o=="y"?1-s[o]:s[o],o=="x"?l.x:-l.y)}this.context.animator.requestRender()};function UF(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 GF(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 HF(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 VF(e){let t=!0;return e.visit(n=>{n instanceof Yt&&t&&(t=n.mark.properties.clip===!0)}),t}function Ew(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 _w{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=sr.ZERO,t.needsAxes.x||t.needsAxes.y){const i=t.spec,o="view"in i?i==null?void 0:i.view:void 0,a=UF(o);a&&(this.background=new Yt(a,n.context,n,t,"background"+r,{blockEncodingInheritance:!0}));const s=GF(o);s&&(this.backgroundStroke=new Yt(s,n.context,n,t,"backgroundStroke"+r,{blockEncodingInheritance:!0}));const u=NF(t.spec.title);if(u){const l=new Yt(u,n.context,n,t,"title"+r,{blockEncodingInheritance:!0});this.title=l}}t.spec.viewportWidth!=null&&(this.scrollbars.horizontal=new Sw(this,"horizontal")),t.spec.viewportHeight!=null&&(this.scrollbars.vertical=new Sw(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 f=l?{...l}:{};if(!f.orient){for(const c of Ff[u])if(!n[c]){f.orient=c;break}if(!f.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(f.title??(f.title=s.getTitle()),!Ff[u].includes(f.orient))throw new Error(`Invalid axis orientation "${f.orient}" on channel "${u}"!`);return f},o=async(s,u,l)=>{const f=i(s,u);if(f){if(n[f.orient])throw new Error(`An axis with the orient "${f.orient}" already exists!`);const c=new yw(f,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);n[f.orient]=c,await c.initializeChildren()}},a=async(s,u,l)=>{const f=i(s,u);if(f&&(f.grid||f.chromGrid)){const c=new kF(f,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);r[f.orient]=c,await c.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 Xs){for(const s of t)for(const[u,l]of Object.entries(s.resolutions.axis)){const f=l.getAxisProps();f&&f.orient&&await o(l,u,s)}for(const s of t)for(const[u,l]of Object.entries(s.resolutions.axis)){const f=l.getAxisProps();f&&!f.orient&&await o(l,u,s)}}[...Object.values(n),...Object.values(r)].forEach(s=>s.visit(u=>{u instanceof Yt&&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 _t(t("top"),t("right"),t("bottom"),t("left")).add(this.view.getOverhang())}getOverhangAndPadding(){return this.getOverhang().add(this.view.getPadding())}}class Sw extends Yt{constructor(t,n){const r={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},t.layoutParent.context,t.layoutParent,t.view,"scrollbar-"+n,{blockEncodingInheritance:!0}),this.config=r,this.scrollDirection=n,this.viewportOffset=0,this.maxScrollOffset=0,this.scrollbarCoords=sr.ZERO,this.addInteractionEventListener("mousedown",(i,o)=>{if(o.stopPropagation(),this.maxScrollOffset<=0)return;const a=h=>n=="vertical"?h.clientY:h.clientX,s=o.uiEvent;s.preventDefault();const u=this.getScrollOffset(),l=a(s),f=h=>{const d=xs(a(h)-l+u,0,this.maxScrollOffset);this.viewportOffset=d/this.maxScrollOffset*this.maxViewportOffset,this.context.animator.requestRender()},c=()=>{document.removeEventListener("mousemove",f),document.removeEventListener("mouseup",c)};document.addEventListener("mouseup",c,!1),document.addEventListener("mousemove",f,!1)})}getScrollOffset(){return this.viewportOffset/this.maxViewportOffset*this.maxScrollOffset}render(t,n,r){super.render(t,this.scrollbarCoords,r)}updateScrollbar(t,n){const r=this.config.scrollbarPadding,i=this.config.scrollbarSize,o=this.scrollDirection=="horizontal"?"width":"height",a=Math.min(1,t[o]/n[o]),s=t[o]-2*r,u=a*s;this.maxScrollOffset=s-u,this.maxViewportOffset=n[o]-t[o],this.viewportOffset=xs(this.viewportOffset,0,this.maxViewportOffset),this.scrollbarCoords=this.scrollDirection=="vertical"?new sr(()=>t.x+t.width-i-r,()=>t.y+r+this.getScrollOffset(),()=>i,()=>u):new sr(()=>t.x+r+this.getScrollOffset(),()=>t.y+t.height-i-r,()=>u,()=>i)}}class y0 extends zF{constructor(t,n,r,i,o){super(t,n,r,i,o,x0(t)?t.columns:Rf(t)?1:1/0),this.spec=t}async initializeChildren(){const t=this.spec,n=x0(t)?t.concat:Rf(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":Rf(this.spec)&&t==="x"||kw(this.spec)&&t==="y"?"shared":"independent"}}const Cw="viewRoot";class jF{constructor(t={}){re(this,Oa,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(v0,n(Xs)),this.addViewType(w0,n(Yt)),this.addViewType(Rf,n(y0)),this.addViewType(kw,n(y0)),this.addViewType(x0,n(y0)),this.addViewType(ZF,()=>{throw new Error("SampleView is not supported by the @genome-spy/core package. Use @genome-spy/app instead!")})}addViewType(t,n){W(this,Oa).set(t,n)}createView(t,n,r,i,o){for(const[a,s]of W(this,Oa))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=[...W(this,Oa).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(qF(t))if(this.options.allowImport)s=await K9(t,i.getBaseUrl(),n),a&&a(s);else throw new ji("Importing views is not allowed!",r);else s=t;!i&&this.options.wrapRoot&&(w0(s)||v0(s))&&o===Cw&&(s={name:"implicitRoot",vconcat:[s]});const u=this.createView(s,n,r,i,o);return u instanceof qi&&await u.initializeChildren(),u}}Oa=new WeakMap;function w0(e){return"mark"in e&&(Pe(e.mark)||Rt(e.mark))}function v0(e){return"layer"in e&&Rt(e.layer)}function qF(e){return"import"in e}function Rf(e){return"vconcat"in e&&Ft(e.vconcat)}function kw(e){return"hconcat"in e&&Ft(e.hconcat)}function x0(e){return"concat"in e&&Ft(e.concat)}function ZF(e){return"samples"in e&&Rt(e.samples)&&"spec"in e&&Rt(e.spec)}class WF{constructor(){re(this,za,void 0);re(this,bo,void 0);re(this,nu,void 0);re(this,yo,void 0);Je(this,za,new Map),Je(this,bo,new Set),Je(this,yo,new Map),Je(this,nu,new Proxy(W(this,za),{get(t,n){return Pe(n)?t.get(n):void 0}}))}allocateSetter(t){if(W(this,bo).has(t))throw new Error("Setter already allocated for parameter: "+t);return W(this,bo).add(t),n=>{W(this,za).set(t,n);const r=W(this,yo).get(t);if(r)for(const i of r)i()}}createExpression(t){const n=Lu(t,W(this,nu));for(const r of n.globals)if(!W(this,bo).has(r))throw new Error(`Unknown variable "${r}" in expression: ${t}`);return n.addListener=r=>{for(const i of n.globals){const o=W(this,yo).get(i)??new Set;W(this,yo).set(i,o),o.add(r)}},n}}za=new WeakMap,bo=new WeakMap,nu=new WeakMap,yo=new WeakMap,$m("fasta",hF);class Tw{constructor(t,n,r={}){this.container=t,this._destructionCallbacks=[];const i=document.createElement("style");i.innerHTML=hC,t.appendChild(i),this.spec=n,this.accessorFactory=new t5,this.viewFactory=new jF,this.namedDataProviders=[],this.animator=new oF(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=o=>o.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new dF(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this._extraBroadcastListeners=new Map,this.tooltipHandlers={default:xF,refseqgene:gF,...r.tooltipHandlers??{}},this.viewRoot=void 0,this._paramBroker=new WF,this._loadingViews=new Map}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),u0(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);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(mn`<div style=${fC(a)}>
310
+ <div class=${i?"loading":""}>
311
+ <img src="${cC}" alt="" />
312
+ <span>Loading...</span>
313
+ </div>
314
+ </div>`)}}n()?this.loadingIndicatorsElement.style.display="block":setTimeout(()=>{n()||(this.loadingIndicatorsElement.style.display="none")},3e3),Eh(t,this.loadingIndicatorsElement)}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new mB(this.container,()=>this.viewRoot?J9(this.viewRoot):{width:void 0,height:void 0},this.spec.background);const t=()=>{this._glHelper.invalidateSize(),r(window.devicePixelRatio),this.computeLayout(),this.renderAll()},n=new ResizeObserver(t);n.observe(this.container),this._destructionCallbacks.push(()=>n.disconnect());const r=this._paramBroker.allocateSetter("devicePixelRatio");r(window.devicePixelRatio);let i=null;const o=()=>{i!=null&&(i(),t());const a=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);a.addEventListener("change",o),i=()=>{a.removeEventListener("change",o)}};o(),i&&this._destructionCallbacks.push(i),this.loadingMessageElement=document.createElement("div"),this.loadingMessageElement.className="loading-message",this.loadingMessageElement.innerHTML='<div class="message">Loading<span class="ellipsis">...</span></div>',this.container.appendChild(this.loadingMessageElement),this.loadingIndicatorsElement=document.createElement("div"),this.loadingIndicatorsElement.className="loading-indicators",this.container.appendChild(this.loadingIndicatorsElement),this.tooltip=new pC(this.container),this.loadingMessageElement.querySelector(".message").addEventListener("transitionend",()=>{this.loadingMessageElement.style.display="none"})}destroy(){this.container.classList.remove("genome-spy"),this.container.classList.remove("loading");for(const[t,n]of this._keyboardListeners)for(const r of n)document.removeEventListener(t,r);for(this._destructionCallbacks.forEach(t=>t()),this._glHelper.finalize();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new aF(this.spec.baseUrl),await this.genomeStore.initialize(this.spec.genome));const t=this,n={dataFlow:new uw,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new uF(this._glHelper),get devicePixelRatio(){return t._glHelper.dpr},paramBroker:this._paramBroker,requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,setDataLoadingStatus:(u,l)=>{this._loadingViews.set(u,l),this._updateLoadingIndicators()},addKeyboardListener:(u,l)=>{document.addEventListener(u,l);let f=this._keyboardListeners.get(u);f||(f=[],this._keyboardListeners.set(u,f)),f.push(l)},addBroadcastListener(u,l){const f=t._extraBroadcastListeners;let c=f.get(u);c||(c=new Set,f.set(u,c)),c.add(l)},removeBroadcastListener(u,l){var c;(c=t._extraBroadcastListeners.get(u))==null||c.delete(l)},isViewConfiguredVisible:t.viewVisibilityPredicate,isViewSpec:u=>t.viewFactory.isViewSpec(u),createView:function(u,l,f,c){return t.viewFactory.createView(u,n,l,f,c)},createOrImportView:async function(u,l,f,c,h){return t.viewFactory.createOrImportView(u,n,l,f,c,h)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(u=>r.datasets[u]),this.viewRoot=await n.createOrImportView(r,null,null,Cw),X9(this.viewRoot),$9(this.viewRoot);const i=this.viewRoot.getDescendants();i.forEach(u=>u.configureViewOpacity()),this._glHelper.invalidateSize();const o=i.filter(u=>u instanceof Yt),a=j9(this.viewRoot,n.dataFlow);Q9(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()},u);await n.fontManager.waitUntilReady(),a.initialize(),await Promise.all(a.dataSources.map(u=>u.load())),u0(this.viewRoot),this.broadcast("dataLoaded"),await s,this.viewRoot.visit(u=>{for(const l of Object.values(u.resolutions.scale))this._glHelper.createRangeTexture(l)});for(const u of o)u.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(u=>Cf(u,"size")),this._glHelper.invalidateSize()}async launch(){try{return this._prepareContainer(),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),YF(this.container,n),!1}finally{this.container.classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const t=this._glHelper.canvas,n=r=>{var i;if(r instanceof MouseEvent){r.type=="mousemove"&&(this.tooltip.handleMouseMove(r),this._tooltipUpdateRequested=!1,r.buttons==0&&this.renderPickingFramebuffer());const o=t.getBoundingClientRect(),a=new nF(r.clientX-o.left-t.clientLeft,r.clientY-o.top-t.clientTop),s=u=>{this.viewRoot.propagateInteractionEvent(new tF(a,u)),this._tooltipUpdateRequested||this.tooltip.clear()};if(r.type!="wheel"&&this._wheelInertia.cancel(),r.type=="mousemove")this._handlePicking(a.x,a.y);else if(r.type=="mousedown"||r.type=="mouseup")this.renderPickingFramebuffer();else if(r.type=="wheel"){this._tooltipUpdateRequested=!1;const u=r;if(Math.abs(u.deltaX)>Math.abs(u.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const l=pF(u);this._wheelInertia.setMomentum(u.deltaY*(u.deltaMode?80:1),f=>{const c=new WheelEvent("wheel",{...l,deltaMode:0,deltaX:0,deltaY:f});s(c)}),u.preventDefault();return}}if(r.type=="click"){const u=this._currentHover?{type:r.type,viewPath:this._currentHover.mark.unitView.getLayoutAncestors().map(l=>l.name).reverse(),datum:this._currentHover.datum}:{type:r.type,viewPath:null,datum:null};(i=this._eventListeners.get("click"))==null||i.forEach(l=>l(u))}s(r)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(r=>t.addEventListener(r,n)),t.addEventListener("mousedown",()=>{document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),t.addEventListener("dragstart",r=>r.stopPropagation())}_handlePicking(t,n){var o;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!==((o=this._currentHover)==null?void 0:o.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(a=>{if(a instanceof Yt){if(a.mark.isPickingParticipant()){const s=a.mark.encoders.uniqueId.accessor;a.getCollector().visitData(u=>{s(u)==i&&(this._currentHover={mark:a.mark,datum:u,uniqueId:i})})}if(this._currentHover)return qs}}),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",f=this.tooltipHandlers[l];if(!f)throw new Error("No such tooltip handler: "+l);return f(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 dw({picking:!1},this._glHelper),this._pickingContext=new dw({picking:!0},this._glHelper),t.render(new eF(this._renderingContext,this._pickingContext),sr.create(0,0,n.width,n.height)),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 Yt&&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}}function YF(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)}const QF="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",XF="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 $F(e,t,n={}){let r;if(Pe(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=Rt(t)?t:await Iw(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 Tw(r,o,n),KF(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 KF(e,t){t.namedDataProvider&&e.registerNamedDataProvider(t.namedDataProvider)}async function Iw(e){let t;try{t=JSON.parse(await Cu().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 Mf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function $s(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function JF(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 pe={},Pf={};Pf.byteLength=nR,Pf.toByteArray=iR,Pf.fromByteArray=sR;for(var zn=[],tn=[],eR=typeof Uint8Array<"u"?Uint8Array:Array,A0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Yo=0,tR=A0.length;Yo<tR;++Yo)zn[Yo]=A0[Yo],tn[A0.charCodeAt(Yo)]=Yo;tn["-".charCodeAt(0)]=62,tn["_".charCodeAt(0)]=63;function Bw(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 nR(e){var t=Bw(e),n=t[0],r=t[1];return(n+r)*3/4-r}function rR(e,t,n){return(t+n)*3/4-n}function iR(e){var t,n=Bw(e),r=n[0],i=n[1],o=new eR(rR(e,r,i)),a=0,s=i>0?r-4:r,u;for(u=0;u<s;u+=4)t=tn[e.charCodeAt(u)]<<18|tn[e.charCodeAt(u+1)]<<12|tn[e.charCodeAt(u+2)]<<6|tn[e.charCodeAt(u+3)],o[a++]=t>>16&255,o[a++]=t>>8&255,o[a++]=t&255;return i===2&&(t=tn[e.charCodeAt(u)]<<2|tn[e.charCodeAt(u+1)]>>4,o[a++]=t&255),i===1&&(t=tn[e.charCodeAt(u)]<<10|tn[e.charCodeAt(u+1)]<<4|tn[e.charCodeAt(u+2)]>>2,o[a++]=t>>8&255,o[a++]=t&255),o}function oR(e){return zn[e>>18&63]+zn[e>>12&63]+zn[e>>6&63]+zn[e&63]}function aR(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(oR(r));return i.join("")}function sR(e){for(var t,n=e.length,r=n%3,i=[],o=16383,a=0,s=n-r;a<s;a+=o)i.push(aR(e,a,a+o>s?s:a+o));return r===1?(t=e[n-1],i.push(zn[t>>2]+zn[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(zn[t>>10]+zn[t>>4&63]+zn[t<<2&63]+"=")),i.join("")}var E0={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */E0.read=function(e,t,n,r,i){var o,a,s=i*8-r-1,u=(1<<s)-1,l=u>>1,f=-7,c=n?i-1:0,h=n?-1:1,d=e[t+c];for(c+=h,o=d&(1<<-f)-1,d>>=-f,f+=s;f>0;o=o*256+e[t+c],c+=h,f-=8);for(a=o&(1<<-f)-1,o>>=-f,f+=r;f>0;a=a*256+e[t+c],c+=h,f-=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)},E0.write=function(e,t,n,r,i,o){var a,s,u,l=o*8-i-1,f=(1<<l)-1,c=f>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,p=r?1:-1,b=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=f):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),a+c>=1?t+=h/u:t+=h*Math.pow(2,1-c),t*u>=2&&(a++,u/=2),a+c>=f?(s=0,a=f):a+c>=1?(s=(t*u-1)*Math.pow(2,i),a=a+c):(s=t*Math.pow(2,c-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]|=b*128};/*!
272
315
  * The buffer module from node.js, for the browser.
273
316
  *
274
317
  * @author Feross Aboukhadijeh <https://feross.org>
275
318
  * @license MIT
276
- */(function(e){const t=Du,n=w0,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=s,e.SlowBuffer=_,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,m){if(typeof v=="number"){if(typeof g=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return c(v)}return f(v,g,m)}s.poolSize=8192;function f(v,g,m){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(_t(v,ArrayBuffer)||v&&_t(v.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(_t(v,SharedArrayBuffer)||v&&_t(v.buffer,SharedArrayBuffer)))return b(v,g,m);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,m);const R=y(v);if(R)return R;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof v[Symbol.toPrimitive]=="function")return s.from(v[Symbol.toPrimitive]("string"),g,m);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,m){return f(v,g,m)},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 u(v,g,m){return l(v),v<=0?a(v):g!==void 0?typeof m=="string"?a(v).fill(g,m):a(v).fill(g):a(v)}s.alloc=function(v,g,m){return u(v,g,m)};function c(v){return l(v),a(v<0?0:w(v)|0)}s.allocUnsafe=function(v){return c(v)},s.allocUnsafeSlow=function(v){return c(v)};function h(v,g){if((typeof g!="string"||g==="")&&(g="utf8"),!s.isEncoding(g))throw new TypeError("Unknown encoding: "+g);const m=C(v,g)|0;let k=a(m);const R=k.write(v,g);return R!==m&&(k=k.slice(0,R)),k}function d(v){const g=v.length<0?0:w(v.length)|0,m=a(g);for(let k=0;k<g;k+=1)m[k]=v[k]&255;return m}function p(v){if(_t(v,Uint8Array)){const g=new Uint8Array(v);return b(g.buffer,g.byteOffset,g.byteLength)}return d(v)}function b(v,g,m){if(g<0||v.byteLength<g)throw new RangeError('"offset" is outside of buffer bounds');if(v.byteLength<g+(m||0))throw new RangeError('"length" is outside of buffer bounds');let k;return g===void 0&&m===void 0?k=new Uint8Array(v):m===void 0?k=new Uint8Array(v,g):k=new Uint8Array(v,g,m),Object.setPrototypeOf(k,s.prototype),k}function y(v){if(s.isBuffer(v)){const g=w(v.length)|0,m=a(g);return m.length===0||v.copy(m,0,0,g),m}if(v.length!==void 0)return typeof v.length!="number"||yr(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 _(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,m){if(_t(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),_t(m,Uint8Array)&&(m=s.from(m,m.offset,m.byteLength)),!s.isBuffer(g)||!s.isBuffer(m))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(g===m)return 0;let k=g.length,R=m.length;for(let N=0,V=Math.min(k,R);N<V;++N)if(g[N]!==m[N]){k=g[N],R=m[N];break}return k<R?-1:R<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,m){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(m===void 0)for(m=0,k=0;k<g.length;++k)m+=g[k].length;const R=s.allocUnsafe(m);let N=0;for(k=0;k<g.length;++k){let V=g[k];if(_t(V,Uint8Array))N+V.length>R.length?(s.isBuffer(V)||(V=s.from(V)),V.copy(R,N)):Uint8Array.prototype.set.call(R,V,N);else if(s.isBuffer(V))V.copy(R,N);else throw new TypeError('"list" argument must be an Array of Buffers');N+=V.length}return R};function C(v,g){if(s.isBuffer(v))return v.length;if(ArrayBuffer.isView(v)||_t(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 m=v.length,k=arguments.length>2&&arguments[2]===!0;if(!k&&m===0)return 0;let R=!1;for(;;)switch(g){case"ascii":case"latin1":case"binary":return m;case"utf8":case"utf-8":return fe(v).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return m*2;case"hex":return m>>>1;case"base64":return si(v).length;default:if(R)return k?-1:fe(v).length;g=(""+g).toLowerCase(),R=!0}}s.byteLength=C;function S(v,g,m){let k=!1;if((g===void 0||g<0)&&(g=0),g>this.length||((m===void 0||m>this.length)&&(m=this.length),m<=0)||(m>>>=0,g>>>=0,m<=g))return"";for(v||(v="utf8");;)switch(v){case"hex":return Ze(this,g,m);case"utf8":case"utf-8":return pe(this,g,m);case"ascii":return De(this,g,m);case"latin1":case"binary":return $e(this,g,m);case"base64":return ae(this,g,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ke(this,g,m);default:if(k)throw new TypeError("Unknown encoding: "+v);v=(v+"").toLowerCase(),k=!0}}s.prototype._isBuffer=!0;function T(v,g,m){const k=v[g];v[g]=v[m],v[m]=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 m=0;m<g;m+=2)T(this,m,m+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 m=0;m<g;m+=4)T(this,m,m+3),T(this,m+1,m+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 m=0;m<g;m+=8)T(this,m,m+7),T(this,m+1,m+6),T(this,m+2,m+5),T(this,m+3,m+4);return this},s.prototype.toString=function(){const g=this.length;return g===0?"":arguments.length===0?pe(this,0,g):S.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 m=e.INSPECT_MAX_BYTES;return g=this.toString("hex",0,m).replace(/(.{2})/g,"$1 ").trim(),this.length>m&&(g+=" ... "),"<Buffer "+g+">"},r&&(s.prototype[r]=s.prototype.inspect),s.prototype.compare=function(g,m,k,R,N){if(_t(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(m===void 0&&(m=0),k===void 0&&(k=g?g.length:0),R===void 0&&(R=0),N===void 0&&(N=this.length),m<0||k>g.length||R<0||N>this.length)throw new RangeError("out of range index");if(R>=N&&m>=k)return 0;if(R>=N)return-1;if(m>=k)return 1;if(m>>>=0,k>>>=0,R>>>=0,N>>>=0,this===g)return 0;let V=N-R,ue=k-m;const Ge=Math.min(V,ue),Me=this.slice(R,N),We=g.slice(m,k);for(let Se=0;Se<Ge;++Se)if(Me[Se]!==We[Se]){V=Me[Se],ue=We[Se];break}return V<ue?-1:ue<V?1:0};function B(v,g,m,k,R){if(v.length===0)return-1;if(typeof m=="string"?(k=m,m=0):m>2147483647?m=2147483647:m<-2147483648&&(m=-2147483648),m=+m,yr(m)&&(m=R?0:v.length-1),m<0&&(m=v.length+m),m>=v.length){if(R)return-1;m=v.length-1}else if(m<0)if(R)m=0;else return-1;if(typeof g=="string"&&(g=s.from(g,k)),s.isBuffer(g))return g.length===0?-1:I(v,g,m,k,R);if(typeof g=="number")return g=g&255,typeof Uint8Array.prototype.indexOf=="function"?R?Uint8Array.prototype.indexOf.call(v,g,m):Uint8Array.prototype.lastIndexOf.call(v,g,m):I(v,[g],m,k,R);throw new TypeError("val must be string, number or Buffer")}function I(v,g,m,k,R){let N=1,V=v.length,ue=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,V/=2,ue/=2,m/=2}function Ge(We,Se){return N===1?We[Se]:We.readUInt16BE(Se*N)}let Me;if(R){let We=-1;for(Me=m;Me<V;Me++)if(Ge(v,Me)===Ge(g,We===-1?0:Me-We)){if(We===-1&&(We=Me),Me-We+1===ue)return We*N}else We!==-1&&(Me-=Me-We),We=-1}else for(m+ue>V&&(m=V-ue),Me=m;Me>=0;Me--){let We=!0;for(let Se=0;Se<ue;Se++)if(Ge(v,Me+Se)!==Ge(g,Se)){We=!1;break}if(We)return Me}return-1}s.prototype.includes=function(g,m,k){return this.indexOf(g,m,k)!==-1},s.prototype.indexOf=function(g,m,k){return B(this,g,m,k,!0)},s.prototype.lastIndexOf=function(g,m,k){return B(this,g,m,k,!1)};function F(v,g,m,k){m=Number(m)||0;const R=v.length-m;k?(k=Number(k),k>R&&(k=R)):k=R;const N=g.length;k>N/2&&(k=N/2);let V;for(V=0;V<k;++V){const ue=parseInt(g.substr(V*2,2),16);if(yr(ue))return V;v[m+V]=ue}return V}function P(v,g,m,k){return li(fe(g,v.length-m),v,m,k)}function j(v,g,m,k){return li(Zt(g),v,m,k)}function O(v,g,m,k){return li(si(g),v,m,k)}function re(v,g,m,k){return li(ai(g,v.length-m),v,m,k)}s.prototype.write=function(g,m,k,R){if(m===void 0)R="utf8",k=this.length,m=0;else if(k===void 0&&typeof m=="string")R=m,k=this.length,m=0;else if(isFinite(m))m=m>>>0,isFinite(k)?(k=k>>>0,R===void 0&&(R="utf8")):(R=k,k=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const N=this.length-m;if((k===void 0||k>N)&&(k=N),g.length>0&&(k<0||m<0)||m>this.length)throw new RangeError("Attempt to write outside buffer bounds");R||(R="utf8");let V=!1;for(;;)switch(R){case"hex":return F(this,g,m,k);case"utf8":case"utf-8":return P(this,g,m,k);case"ascii":case"latin1":case"binary":return j(this,g,m,k);case"base64":return O(this,g,m,k);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return re(this,g,m,k);default:if(V)throw new TypeError("Unknown encoding: "+R);R=(""+R).toLowerCase(),V=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function ae(v,g,m){return g===0&&m===v.length?t.fromByteArray(v):t.fromByteArray(v.slice(g,m))}function pe(v,g,m){m=Math.min(v.length,m);const k=[];let R=g;for(;R<m;){const N=v[R];let V=null,ue=N>239?4:N>223?3:N>191?2:1;if(R+ue<=m){let Ge,Me,We,Se;switch(ue){case 1:N<128&&(V=N);break;case 2:Ge=v[R+1],(Ge&192)===128&&(Se=(N&31)<<6|Ge&63,Se>127&&(V=Se));break;case 3:Ge=v[R+1],Me=v[R+2],(Ge&192)===128&&(Me&192)===128&&(Se=(N&15)<<12|(Ge&63)<<6|Me&63,Se>2047&&(Se<55296||Se>57343)&&(V=Se));break;case 4:Ge=v[R+1],Me=v[R+2],We=v[R+3],(Ge&192)===128&&(Me&192)===128&&(We&192)===128&&(Se=(N&15)<<18|(Ge&63)<<12|(Me&63)<<6|We&63,Se>65535&&Se<1114112&&(V=Se))}}V===null?(V=65533,ue=1):V>65535&&(V-=65536,k.push(V>>>10&1023|55296),V=56320|V&1023),k.push(V),R+=ue}return Xe(k)}const Te=4096;function Xe(v){const g=v.length;if(g<=Te)return String.fromCharCode.apply(String,v);let m="",k=0;for(;k<g;)m+=String.fromCharCode.apply(String,v.slice(k,k+=Te));return m}function De(v,g,m){let k="";m=Math.min(v.length,m);for(let R=g;R<m;++R)k+=String.fromCharCode(v[R]&127);return k}function $e(v,g,m){let k="";m=Math.min(v.length,m);for(let R=g;R<m;++R)k+=String.fromCharCode(v[R]);return k}function Ze(v,g,m){const k=v.length;(!g||g<0)&&(g=0),(!m||m<0||m>k)&&(m=k);let R="";for(let N=g;N<m;++N)R+=fi[v[N]];return R}function Ke(v,g,m){const k=v.slice(g,m);let R="";for(let N=0;N<k.length-1;N+=2)R+=String.fromCharCode(k[N]+k[N+1]*256);return R}s.prototype.slice=function(g,m){const k=this.length;g=~~g,m=m===void 0?k:~~m,g<0?(g+=k,g<0&&(g=0)):g>k&&(g=k),m<0?(m+=k,m<0&&(m=0)):m>k&&(m=k),m<g&&(m=g);const R=this.subarray(g,m);return Object.setPrototypeOf(R,s.prototype),R};function Ee(v,g,m){if(v%1!==0||v<0)throw new RangeError("offset is not uint");if(v+g>m)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(g,m,k){g=g>>>0,m=m>>>0,k||Ee(g,m,this.length);let R=this[g],N=1,V=0;for(;++V<m&&(N*=256);)R+=this[g+V]*N;return R},s.prototype.readUintBE=s.prototype.readUIntBE=function(g,m,k){g=g>>>0,m=m>>>0,k||Ee(g,m,this.length);let R=this[g+--m],N=1;for(;m>0&&(N*=256);)R+=this[g+--m]*N;return R},s.prototype.readUint8=s.prototype.readUInt8=function(g,m){return g=g>>>0,m||Ee(g,1,this.length),this[g]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(g,m){return g=g>>>0,m||Ee(g,2,this.length),this[g]|this[g+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(g,m){return g=g>>>0,m||Ee(g,2,this.length),this[g]<<8|this[g+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(g,m){return g=g>>>0,m||Ee(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,m){return g=g>>>0,m||Ee(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,G(g,"offset");const m=this[g],k=this[g+7];(m===void 0||k===void 0)&&Z(g,this.length-8);const R=m+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(R)+(BigInt(N)<<BigInt(32))}),s.prototype.readBigUInt64BE=Wt(function(g){g=g>>>0,G(g,"offset");const m=this[g],k=this[g+7];(m===void 0||k===void 0)&&Z(g,this.length-8);const R=m*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(R)<<BigInt(32))+BigInt(N)}),s.prototype.readIntLE=function(g,m,k){g=g>>>0,m=m>>>0,k||Ee(g,m,this.length);let R=this[g],N=1,V=0;for(;++V<m&&(N*=256);)R+=this[g+V]*N;return N*=128,R>=N&&(R-=Math.pow(2,8*m)),R},s.prototype.readIntBE=function(g,m,k){g=g>>>0,m=m>>>0,k||Ee(g,m,this.length);let R=m,N=1,V=this[g+--R];for(;R>0&&(N*=256);)V+=this[g+--R]*N;return N*=128,V>=N&&(V-=Math.pow(2,8*m)),V},s.prototype.readInt8=function(g,m){return g=g>>>0,m||Ee(g,1,this.length),this[g]&128?(255-this[g]+1)*-1:this[g]},s.prototype.readInt16LE=function(g,m){g=g>>>0,m||Ee(g,2,this.length);const k=this[g]|this[g+1]<<8;return k&32768?k|4294901760:k},s.prototype.readInt16BE=function(g,m){g=g>>>0,m||Ee(g,2,this.length);const k=this[g+1]|this[g]<<8;return k&32768?k|4294901760:k},s.prototype.readInt32LE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),this[g]|this[g+1]<<8|this[g+2]<<16|this[g+3]<<24},s.prototype.readInt32BE=function(g,m){return g=g>>>0,m||Ee(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,G(g,"offset");const m=this[g],k=this[g+7];(m===void 0||k===void 0)&&Z(g,this.length-8);const R=this[g+4]+this[g+5]*2**8+this[g+6]*2**16+(k<<24);return(BigInt(R)<<BigInt(32))+BigInt(m+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24)}),s.prototype.readBigInt64BE=Wt(function(g){g=g>>>0,G(g,"offset");const m=this[g],k=this[g+7];(m===void 0||k===void 0)&&Z(g,this.length-8);const R=(m<<24)+this[++g]*2**16+this[++g]*2**8+this[++g];return(BigInt(R)<<BigInt(32))+BigInt(this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+k)}),s.prototype.readFloatLE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),n.read(this,g,!0,23,4)},s.prototype.readFloatBE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),n.read(this,g,!1,23,4)},s.prototype.readDoubleLE=function(g,m){return g=g>>>0,m||Ee(g,8,this.length),n.read(this,g,!0,52,8)},s.prototype.readDoubleBE=function(g,m){return g=g>>>0,m||Ee(g,8,this.length),n.read(this,g,!1,52,8)};function _e(v,g,m,k,R,N){if(!s.isBuffer(v))throw new TypeError('"buffer" argument must be a Buffer instance');if(g>R||g<N)throw new RangeError('"value" argument is out of bounds');if(m+k>v.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(g,m,k,R){if(g=+g,m=m>>>0,k=k>>>0,!R){const ue=Math.pow(2,8*k)-1;_e(this,g,m,k,ue,0)}let N=1,V=0;for(this[m]=g&255;++V<k&&(N*=256);)this[m+V]=g/N&255;return m+k},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(g,m,k,R){if(g=+g,m=m>>>0,k=k>>>0,!R){const ue=Math.pow(2,8*k)-1;_e(this,g,m,k,ue,0)}let N=k-1,V=1;for(this[m+N]=g&255;--N>=0&&(V*=256);)this[m+N]=g/V&255;return m+k},s.prototype.writeUint8=s.prototype.writeUInt8=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,1,255,0),this[m]=g&255,m+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,2,65535,0),this[m]=g&255,this[m+1]=g>>>8,m+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,2,65535,0),this[m]=g>>>8,this[m+1]=g&255,m+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,4,4294967295,0),this[m+3]=g>>>24,this[m+2]=g>>>16,this[m+1]=g>>>8,this[m]=g&255,m+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,4,4294967295,0),this[m]=g>>>24,this[m+1]=g>>>16,this[m+2]=g>>>8,this[m+3]=g&255,m+4};function dt(v,g,m,k,R){x(g,k,R,v,m,7);let N=Number(g&BigInt(4294967295));v[m++]=N,N=N>>8,v[m++]=N,N=N>>8,v[m++]=N,N=N>>8,v[m++]=N;let V=Number(g>>BigInt(32)&BigInt(4294967295));return v[m++]=V,V=V>>8,v[m++]=V,V=V>>8,v[m++]=V,V=V>>8,v[m++]=V,m}function qt(v,g,m,k,R){x(g,k,R,v,m,7);let N=Number(g&BigInt(4294967295));v[m+7]=N,N=N>>8,v[m+6]=N,N=N>>8,v[m+5]=N,N=N>>8,v[m+4]=N;let V=Number(g>>BigInt(32)&BigInt(4294967295));return v[m+3]=V,V=V>>8,v[m+2]=V,V=V>>8,v[m+1]=V,V=V>>8,v[m]=V,m+8}s.prototype.writeBigUInt64LE=Wt(function(g,m=0){return dt(this,g,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=Wt(function(g,m=0){return qt(this,g,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(g,m,k,R){if(g=+g,m=m>>>0,!R){const Ge=Math.pow(2,8*k-1);_e(this,g,m,k,Ge-1,-Ge)}let N=0,V=1,ue=0;for(this[m]=g&255;++N<k&&(V*=256);)g<0&&ue===0&&this[m+N-1]!==0&&(ue=1),this[m+N]=(g/V>>0)-ue&255;return m+k},s.prototype.writeIntBE=function(g,m,k,R){if(g=+g,m=m>>>0,!R){const Ge=Math.pow(2,8*k-1);_e(this,g,m,k,Ge-1,-Ge)}let N=k-1,V=1,ue=0;for(this[m+N]=g&255;--N>=0&&(V*=256);)g<0&&ue===0&&this[m+N+1]!==0&&(ue=1),this[m+N]=(g/V>>0)-ue&255;return m+k},s.prototype.writeInt8=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,1,127,-128),g<0&&(g=255+g+1),this[m]=g&255,m+1},s.prototype.writeInt16LE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,2,32767,-32768),this[m]=g&255,this[m+1]=g>>>8,m+2},s.prototype.writeInt16BE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,2,32767,-32768),this[m]=g>>>8,this[m+1]=g&255,m+2},s.prototype.writeInt32LE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,4,2147483647,-2147483648),this[m]=g&255,this[m+1]=g>>>8,this[m+2]=g>>>16,this[m+3]=g>>>24,m+4},s.prototype.writeInt32BE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,4,2147483647,-2147483648),g<0&&(g=4294967295+g+1),this[m]=g>>>24,this[m+1]=g>>>16,this[m+2]=g>>>8,this[m+3]=g&255,m+4},s.prototype.writeBigInt64LE=Wt(function(g,m=0){return dt(this,g,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=Wt(function(g,m=0){return qt(this,g,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Oe(v,g,m,k,R,N){if(m+k>v.length)throw new RangeError("Index out of range");if(m<0)throw new RangeError("Index out of range")}function L(v,g,m,k,R){return g=+g,m=m>>>0,R||Oe(v,g,m,4),n.write(v,g,m,k,23,4),m+4}s.prototype.writeFloatLE=function(g,m,k){return L(this,g,m,!0,k)},s.prototype.writeFloatBE=function(g,m,k){return L(this,g,m,!1,k)};function M(v,g,m,k,R){return g=+g,m=m>>>0,R||Oe(v,g,m,8),n.write(v,g,m,k,52,8),m+8}s.prototype.writeDoubleLE=function(g,m,k){return M(this,g,m,!0,k)},s.prototype.writeDoubleBE=function(g,m,k){return M(this,g,m,!1,k)},s.prototype.copy=function(g,m,k,R){if(!s.isBuffer(g))throw new TypeError("argument should be a Buffer");if(k||(k=0),!R&&R!==0&&(R=this.length),m>=g.length&&(m=g.length),m||(m=0),R>0&&R<k&&(R=k),R===k||g.length===0||this.length===0)return 0;if(m<0)throw new RangeError("targetStart out of bounds");if(k<0||k>=this.length)throw new RangeError("Index out of range");if(R<0)throw new RangeError("sourceEnd out of bounds");R>this.length&&(R=this.length),g.length-m<R-k&&(R=g.length-m+k);const N=R-k;return this===g&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(m,k,R):Uint8Array.prototype.set.call(g,this.subarray(k,R),m),N},s.prototype.fill=function(g,m,k,R){if(typeof g=="string"){if(typeof m=="string"?(R=m,m=0,k=this.length):typeof k=="string"&&(R=k,k=this.length),R!==void 0&&typeof R!="string")throw new TypeError("encoding must be a string");if(typeof R=="string"&&!s.isEncoding(R))throw new TypeError("Unknown encoding: "+R);if(g.length===1){const V=g.charCodeAt(0);(R==="utf8"&&V<128||R==="latin1")&&(g=V)}}else typeof g=="number"?g=g&255:typeof g=="boolean"&&(g=Number(g));if(m<0||this.length<m||this.length<k)throw new RangeError("Out of range index");if(k<=m)return this;m=m>>>0,k=k===void 0?this.length:k>>>0,g||(g=0);let N;if(typeof g=="number")for(N=m;N<k;++N)this[N]=g;else{const V=s.isBuffer(g)?g:s.from(g,R),ue=V.length;if(ue===0)throw new TypeError('The value "'+g+'" is invalid for argument "value"');for(N=0;N<k-m;++N)this[N+m]=V[N%ue]}return this};const q={};function H(v,g,m){q[v]=class extends m{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(R){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:R,writable:!0})}toString(){return`${this.name} [${v}]: ${this.message}`}}}H("ERR_BUFFER_OUT_OF_BOUNDS",function(v){return v?`${v} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),H("ERR_INVALID_ARG_TYPE",function(v,g){return`The "${v}" argument must be of type number. Received type ${typeof g}`},TypeError),H("ERR_OUT_OF_RANGE",function(v,g,m){let k=`The value of "${v}" is out of range.`,R=m;return Number.isInteger(m)&&Math.abs(m)>2**32?R=W(String(m)):typeof m=="bigint"&&(R=String(m),(m>BigInt(2)**BigInt(32)||m<-(BigInt(2)**BigInt(32)))&&(R=W(R)),R+="n"),k+=` It must be ${g}. Received ${R}`,k},RangeError);function W(v){let g="",m=v.length;const k=v[0]==="-"?1:0;for(;m>=k+4;m-=3)g=`_${v.slice(m-3,m)}${g}`;return`${v.slice(0,m)}${g}`}function E(v,g,m){G(g,"offset"),(v[g]===void 0||v[g+m]===void 0)&&Z(g,v.length-(m+1))}function x(v,g,m,k,R,N){if(v>m||v<g){const V=typeof g=="bigint"?"n":"";let ue;throw N>3?g===0||g===BigInt(0)?ue=`>= 0${V} and < 2${V} ** ${(N+1)*8}${V}`:ue=`>= -(2${V} ** ${(N+1)*8-1}${V}) and < 2 ** ${(N+1)*8-1}${V}`:ue=`>= ${g}${V} and <= ${m}${V}`,new q.ERR_OUT_OF_RANGE("value",ue,v)}E(k,R,N)}function G(v,g){if(typeof v!="number")throw new q.ERR_INVALID_ARG_TYPE(g,"number",v)}function Z(v,g,m){throw Math.floor(v)!==v?(G(v,m),new q.ERR_OUT_OF_RANGE(m||"offset","an integer",v)):g<0?new q.ERR_BUFFER_OUT_OF_BOUNDS:new q.ERR_OUT_OF_RANGE(m||"offset",`>= ${m?1:0} and <= ${g}`,v)}const le=/[^+/0-9A-Za-z-_]/g;function J(v){if(v=v.split("=")[0],v=v.trim().replace(le,""),v.length<2)return"";for(;v.length%4!==0;)v=v+"=";return v}function fe(v,g){g=g||1/0;let m;const k=v.length;let R=null;const N=[];for(let V=0;V<k;++V){if(m=v.charCodeAt(V),m>55295&&m<57344){if(!R){if(m>56319){(g-=3)>-1&&N.push(239,191,189);continue}else if(V+1===k){(g-=3)>-1&&N.push(239,191,189);continue}R=m;continue}if(m<56320){(g-=3)>-1&&N.push(239,191,189),R=m;continue}m=(R-55296<<10|m-56320)+65536}else R&&(g-=3)>-1&&N.push(239,191,189);if(R=null,m<128){if((g-=1)<0)break;N.push(m)}else if(m<2048){if((g-=2)<0)break;N.push(m>>6|192,m&63|128)}else if(m<65536){if((g-=3)<0)break;N.push(m>>12|224,m>>6&63|128,m&63|128)}else if(m<1114112){if((g-=4)<0)break;N.push(m>>18|240,m>>12&63|128,m>>6&63|128,m&63|128)}else throw new Error("Invalid code point")}return N}function Zt(v){const g=[];for(let m=0;m<v.length;++m)g.push(v.charCodeAt(m)&255);return g}function ai(v,g){let m,k,R;const N=[];for(let V=0;V<v.length&&!((g-=2)<0);++V)m=v.charCodeAt(V),k=m>>8,R=m%256,N.push(R),N.push(k);return N}function si(v){return t.toByteArray(J(v))}function li(v,g,m,k){let R;for(R=0;R<k&&!(R+m>=g.length||R>=v.length);++R)g[R+m]=v[R];return R}function _t(v,g){return v instanceof g||v!=null&&v.constructor!=null&&v.constructor.name!=null&&v.constructor.name===g.name}function yr(v){return v!==v}const fi=function(){const v="0123456789abcdef",g=new Array(256);for(let m=0;m<16;++m){const k=m*16;for(let R=0;R<16;++R)g[k+R]=v[m]+v[R]}return g}();function Wt(v){return typeof BigInt>"u"?$n:v}function $n(){throw new Error("BigInt not supported")}})(ye);const Cw=ve({__proto__:null,default:Ws(ye)},[ye]),ct={},XR=Object.freeze(Object.defineProperty({__proto__:null,default:ct},Symbol.toStringTag,{value:"Module"})),v0=typeof window<"u"?window:typeof self<"u"?self:{fetch:void 0};class qi{async getBufferFromResponse(t){if(typeof t.buffer=="function")return t.buffer();if(typeof t.arrayBuffer=="function"){const n=await t.arrayBuffer();return ye.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||v0.fetch&&v0.fetch.bind(v0);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:f={}}=o;r<1/0?a.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(a.range=`bytes=${i}-`);const l={...this.baseOverrides,...f,headers:{...a,...f.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:s},u=await this.fetch(this.url,l);if(!u.ok)throw new Error(`HTTP ${u.status} ${u.statusText} ${this.url}`);if(u.status===200&&i===0||u.status===206){const c=await this.getBufferFromResponse(u),h=c.copy(t,n,0,Math.min(r,c.length)),d=u.headers.get("content-range"),p=/\/(\d+)$/.exec(d||"");return p&&p[1]&&(this._stat={size:parseInt(p[1],10)}),{bytesRead:h,buffer:t}}throw u.status===200?new Error("${this.url} fetch returned status 200, expected 206"):new Error(`HTTP ${u.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},f=await this.fetch(this.url,s);if(!f)throw new Error("generic-filehandle failed to fetch");if(f.status!==200)throw Object.assign(new Error(`HTTP ${f.status} fetching ${this.url}`),{status:f.status});if(n==="utf8")return f.text();if(n)throw new Error(`unsupported encoding: ${n}`);return this.getBufferFromResponse(f)}async stat(){if(!this._stat){const t=ye.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 kw(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 $R(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 KR{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 kw(this.blob.slice(o,a)),f=ye.Buffer.from(s);return{bytesRead:f.copy(t,n),buffer:f}}async readFile(t){let n;if(typeof t=="string"?n=t:n=t&&t.encoding,n==="utf8")return $R(this.blob);if(n)throw new Error(`unsupported encoding: ${n}`);const r=await kw(this.blob);return ye.Buffer.from(r)}async stat(){return{size:this.size}}async close(){}}function Iw(e,t={}){return new qi(e,t)}function JR(e,t,n,r={}){if(n!==void 0)return n;if(e!==void 0)return Iw(e,r);if(t!==void 0)return new ct(t,r);throw new Error("no url, path, or filehandle provided, cannot open")}const Ys=Object.freeze(Object.defineProperty({__proto__:null,BlobFile:KR,LocalFile:ct,RemoteFile:qi,fromUrl:Iw,open:JR},Symbol.toStringTag,{value:"Module"}));var sr={};(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 f in s)n(s,f)&&(o[f]=s[f])}}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,f,l){if(a.subarray&&o.subarray){o.set(a.subarray(s,s+f),l);return}for(var u=0;u<f;u++)o[l+u]=a[s+u]},flattenChunks:function(o){var a,s,f,l,u,c;for(f=0,a=0,s=o.length;a<s;a++)f+=o[a].length;for(c=new Uint8Array(f),l=0,a=0,s=o.length;a<s;a++)u=o[a],c.set(u,l),l+=u.length;return c}},i={arraySet:function(o,a,s,f,l){for(var u=0;u<f;u++)o[l+u]=a[s+u]},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)})(sr);var Qs={},Gn={},Yo={},eF=sr,tF=4,Tw=0,Bw=1,nF=2;function Qo(e){for(var t=e.length;--t>=0;)e[t]=0}var rF=0,Dw=1,iF=2,oF=3,aF=258,x0=29,Xs=256,$s=Xs+1+x0,Xo=30,A0=19,Rw=2*$s+1,Zi=15,E0=16,sF=7,_0=256,Fw=16,Mw=17,Pw=18,S0=[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],Ru=[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],lF=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Lw=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],fF=512,lr=new Array(($s+2)*2);Qo(lr);var Ks=new Array(Xo*2);Qo(Ks);var Js=new Array(fF);Qo(Js);var el=new Array(aF-oF+1);Qo(el);var C0=new Array(x0);Qo(C0);var Fu=new Array(Xo);Qo(Fu);function k0(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 Nw,Ow,zw;function I0(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function Uw(e){return e<256?Js[e]:Js[256+(e>>>7)]}function tl(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>E0-n?(e.bi_buf|=t<<e.bi_valid&65535,tl(e,e.bi_buf),e.bi_buf=t>>E0-e.bi_valid,e.bi_valid+=n-E0):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function Hn(e,t,n){Gt(e,n[t*2],n[t*2+1])}function Gw(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function uF(e){e.bi_valid===16?(tl(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 cF(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,f=t.stat_desc.max_length,l,u,c,h,d,p,b=0;for(h=0;h<=Zi;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Rw;l++)u=e.heap[l],h=n[n[u*2+1]*2+1]+1,h>f&&(h=f,b++),n[u*2+1]=h,!(u>r)&&(e.bl_count[h]++,d=0,u>=s&&(d=a[u-s]),p=n[u*2],e.opt_len+=p*(h+d),o&&(e.static_len+=p*(i[u*2+1]+d)));if(b!==0){do{for(h=f-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[f]--,b-=2}while(b>0);for(h=f;h!==0;h--)for(u=e.bl_count[h];u!==0;)c=e.heap[--l],!(c>r)&&(n[c*2+1]!==h&&(e.opt_len+=(h-n[c*2+1])*n[c*2],n[c*2+1]=h),u--)}}function Hw(e,t,n){var r=new Array(Zi+1),i=0,o,a;for(o=1;o<=Zi;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]=Gw(r[s]++,s))}}function hF(){var e,t,n,r,i,o=new Array(Zi+1);for(n=0,r=0;r<x0-1;r++)for(C0[r]=n,e=0;e<1<<S0[r];e++)el[n++]=r;for(el[n-1]=r,i=0,r=0;r<16;r++)for(Fu[r]=i,e=0;e<1<<Ru[r];e++)Js[i++]=r;for(i>>=7;r<Xo;r++)for(Fu[r]=i<<7,e=0;e<1<<Ru[r]-7;e++)Js[256+i++]=r;for(t=0;t<=Zi;t++)o[t]=0;for(e=0;e<=143;)lr[e*2+1]=8,e++,o[8]++;for(;e<=255;)lr[e*2+1]=9,e++,o[9]++;for(;e<=279;)lr[e*2+1]=7,e++,o[7]++;for(;e<=287;)lr[e*2+1]=8,e++,o[8]++;for(Hw(lr,$s+1,o),e=0;e<Xo;e++)Ks[e*2+1]=5,Ks[e*2]=Gw(e,5);Nw=new k0(lr,S0,Xs+1,$s,Zi),Ow=new k0(Ks,Ru,0,Xo,Zi),zw=new k0(new Array(0),lF,0,A0,sF)}function Vw(e){var t;for(t=0;t<$s;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Xo;t++)e.dyn_dtree[t*2]=0;for(t=0;t<A0;t++)e.bl_tree[t*2]=0;e.dyn_ltree[_0*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function jw(e){e.bi_valid>8?tl(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 dF(e,t,n,r){jw(e),r&&(tl(e,n),tl(e,~n)),eF.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function qw(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 T0(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&qw(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!qw(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function Zw(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?Hn(e,i,t):(a=el[i],Hn(e,a+Xs+1,t),s=S0[a],s!==0&&(i-=C0[a],Gt(e,i,s)),r--,a=Uw(r),Hn(e,a,n),s=Ru[a],s!==0&&(r-=Fu[a],Gt(e,r,s)));while(o<e.last_lit);Hn(e,_0,t)}function B0(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,f=-1,l;for(e.heap_len=0,e.heap_max=Rw,a=0;a<o;a++)n[a*2]!==0?(e.heap[++e.heap_len]=f=a,e.depth[a]=0):n[a*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=f<2?++f:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=f,a=e.heap_len>>1;a>=1;a--)T0(e,n,a);l=o;do a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],T0(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++,T0(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],cF(e,t),Hw(n,f,e.bl_count)}function Ww(e,t,n){var r,i=-1,o,a=t[0*2+1],s=0,f=7,l=4;for(a===0&&(f=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)o=a,a=t[(r+1)*2+1],!(++s<f&&o===a)&&(s<l?e.bl_tree[o*2]+=s:o!==0?(o!==i&&e.bl_tree[o*2]++,e.bl_tree[Fw*2]++):s<=10?e.bl_tree[Mw*2]++:e.bl_tree[Pw*2]++,s=0,i=o,a===0?(f=138,l=3):o===a?(f=6,l=3):(f=7,l=4))}function Yw(e,t,n){var r,i=-1,o,a=t[0*2+1],s=0,f=7,l=4;for(a===0&&(f=138,l=3),r=0;r<=n;r++)if(o=a,a=t[(r+1)*2+1],!(++s<f&&o===a)){if(s<l)do Hn(e,o,e.bl_tree);while(--s!==0);else o!==0?(o!==i&&(Hn(e,o,e.bl_tree),s--),Hn(e,Fw,e.bl_tree),Gt(e,s-3,2)):s<=10?(Hn(e,Mw,e.bl_tree),Gt(e,s-3,3)):(Hn(e,Pw,e.bl_tree),Gt(e,s-11,7));s=0,i=o,a===0?(f=138,l=3):o===a?(f=6,l=3):(f=7,l=4)}}function pF(e){var t;for(Ww(e,e.dyn_ltree,e.l_desc.max_code),Ww(e,e.dyn_dtree,e.d_desc.max_code),B0(e,e.bl_desc),t=A0-1;t>=3&&e.bl_tree[Lw[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function gF(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[Lw[i]*2+1],3);Yw(e,e.dyn_ltree,t-1),Yw(e,e.dyn_dtree,n-1)}function mF(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Tw;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Bw;for(n=32;n<Xs;n++)if(e.dyn_ltree[n*2]!==0)return Bw;return Tw}var Qw=!1;function bF(e){Qw||(hF(),Qw=!0),e.l_desc=new I0(e.dyn_ltree,Nw),e.d_desc=new I0(e.dyn_dtree,Ow),e.bl_desc=new I0(e.bl_tree,zw),e.bi_buf=0,e.bi_valid=0,Vw(e)}function Xw(e,t,n,r){Gt(e,(rF<<1)+(r?1:0),3),dF(e,t,n,!0)}function yF(e){Gt(e,Dw<<1,3),Hn(e,_0,lr),uF(e)}function wF(e,t,n,r){var i,o,a=0;e.level>0?(e.strm.data_type===nF&&(e.strm.data_type=mF(e)),B0(e,e.l_desc),B0(e,e.d_desc),a=pF(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?Xw(e,t,n,r):e.strategy===tF||o===i?(Gt(e,(Dw<<1)+(r?1:0),3),Zw(e,lr,Ks)):(Gt(e,(iF<<1)+(r?1:0),3),gF(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),Zw(e,e.dyn_ltree,e.dyn_dtree)),Vw(e),r&&jw(e)}function vF(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[(el[n]+Xs+1)*2]++,e.dyn_dtree[Uw(t)*2]++),e.last_lit===e.lit_bufsize-1}Yo._tr_init=bF,Yo._tr_stored_block=Xw,Yo._tr_flush_block=wF,Yo._tr_tally=vF,Yo._tr_align=yF;function xF(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 $w=xF;function AF(){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 EF=AF();function _F(e,t,n,r){var i=EF,o=r+n;e^=-1;for(var a=r;a<o;a++)e=e>>>8^i[(e^t[a])&255];return e^-1}var Kw=_F,D0={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"},Bt=sr,rn=Yo,Jw=$w,jr=Kw,SF=D0,Wi=0,CF=1,kF=3,qr=4,ev=5,Vn=0,tv=1,on=-2,IF=-3,R0=-5,TF=-1,BF=1,Mu=2,DF=3,RF=4,FF=0,MF=2,Pu=8,PF=9,LF=15,NF=8,OF=29,zF=256,F0=zF+1+OF,UF=30,GF=19,HF=2*F0+1,VF=15,he=3,Zr=258,En=Zr+he+1,jF=32,Lu=42,M0=69,Nu=73,Ou=91,zu=103,Yi=113,nl=666,it=1,rl=2,Qi=3,$o=4,qF=3;function Wr(e,t){return e.msg=SF[t],t}function nv(e){return(e<<1)-(e>4?9:0)}function Yr(e){for(var t=e.length;--t>=0;)e[t]=0}function Qr(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(Bt.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 mt(e,t){rn._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Qr(e.strm)}function we(e,t){e.pending_buf[e.pending++]=t}function il(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function ZF(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,Bt.arraySet(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=Jw(e.adler,t,i,n):e.state.wrap===2&&(e.adler=jr(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function rv(e,t){var n=e.max_chain_length,r=e.strstart,i,o,a=e.prev_length,s=e.nice_match,f=e.strstart>e.w_size-En?e.strstart-(e.w_size-En):0,l=e.window,u=e.w_mask,c=e.prev,h=e.strstart+Zr,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=Zr-(h-r),r=h-Zr,o>a){if(e.match_start=t,a=o,o>=s)break;d=l[r+a-1],p=l[r+a]}}while((t=c[t&u])>f&&--n!==0);return a<=e.lookahead?a:e.lookahead}function Xi(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-En)){Bt.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=ZF(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=r,e.lookahead+e.insert>=he)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+he-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<he)););}while(e.lookahead<En&&e.strm.avail_in!==0)}function WF(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Xi(e),e.lookahead===0&&t===Wi)return it;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,mt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-En&&(mt(e,!1),e.strm.avail_out===0))return it}return e.insert=0,t===qr?(mt(e,!0),e.strm.avail_out===0?Qi:$o):(e.strstart>e.block_start&&(mt(e,!1),e.strm.avail_out===0),it)}function P0(e,t){for(var n,r;;){if(e.lookahead<En){if(Xi(e),e.lookahead<En&&t===Wi)return it;if(e.lookahead===0)break}if(n=0,e.lookahead>=he&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-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-En&&(e.match_length=rv(e,n)),e.match_length>=he)if(r=rn._tr_tally(e,e.strstart-e.match_start,e.match_length-he),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=he){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-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=rn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(mt(e,!1),e.strm.avail_out===0))return it}return e.insert=e.strstart<he-1?e.strstart:he-1,t===qr?(mt(e,!0),e.strm.avail_out===0?Qi:$o):e.last_lit&&(mt(e,!1),e.strm.avail_out===0)?it:rl}function Ko(e,t){for(var n,r,i;;){if(e.lookahead<En){if(Xi(e),e.lookahead<En&&t===Wi)return it;if(e.lookahead===0)break}if(n=0,e.lookahead>=he&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-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=he-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-En&&(e.match_length=rv(e,n),e.match_length<=5&&(e.strategy===BF||e.match_length===he&&e.strstart-e.match_start>4096)&&(e.match_length=he-1)),e.prev_length>=he&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-he,r=rn._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-he),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+he-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=he-1,e.strstart++,r&&(mt(e,!1),e.strm.avail_out===0))return it}else if(e.match_available){if(r=rn._tr_tally(e,0,e.window[e.strstart-1]),r&&mt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return it}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=rn._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<he-1?e.strstart:he-1,t===qr?(mt(e,!0),e.strm.avail_out===0?Qi:$o):e.last_lit&&(mt(e,!1),e.strm.avail_out===0)?it:rl}function YF(e,t){for(var n,r,i,o,a=e.window;;){if(e.lookahead<=Zr){if(Xi(e),e.lookahead<=Zr&&t===Wi)return it;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=he&&e.strstart>0&&(i=e.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){o=e.strstart+Zr;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=Zr-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=he?(n=rn._tr_tally(e,1,e.match_length-he),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=rn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(mt(e,!1),e.strm.avail_out===0))return it}return e.insert=0,t===qr?(mt(e,!0),e.strm.avail_out===0?Qi:$o):e.last_lit&&(mt(e,!1),e.strm.avail_out===0)?it:rl}function QF(e,t){for(var n;;){if(e.lookahead===0&&(Xi(e),e.lookahead===0)){if(t===Wi)return it;break}if(e.match_length=0,n=rn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(mt(e,!1),e.strm.avail_out===0))return it}return e.insert=0,t===qr?(mt(e,!0),e.strm.avail_out===0?Qi:$o):e.last_lit&&(mt(e,!1),e.strm.avail_out===0)?it:rl}function jn(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 Jo;Jo=[new jn(0,0,0,0,WF),new jn(4,4,8,4,P0),new jn(4,5,16,8,P0),new jn(4,6,32,32,P0),new jn(4,4,16,16,Ko),new jn(8,16,32,32,Ko),new jn(8,16,128,128,Ko),new jn(8,32,128,256,Ko),new jn(32,128,258,1024,Ko),new jn(32,258,258,4096,Ko)];function XF(e){e.window_size=2*e.w_size,Yr(e.head),e.max_lazy_match=Jo[e.level].max_lazy,e.good_match=Jo[e.level].good_length,e.nice_match=Jo[e.level].nice_length,e.max_chain_length=Jo[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=he-1,e.match_available=0,e.ins_h=0}function $F(){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=Pu,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 Bt.Buf16(HF*2),this.dyn_dtree=new Bt.Buf16((2*UF+1)*2),this.bl_tree=new Bt.Buf16((2*GF+1)*2),Yr(this.dyn_ltree),Yr(this.dyn_dtree),Yr(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Bt.Buf16(VF+1),this.heap=new Bt.Buf16(2*F0+1),Yr(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Bt.Buf16(2*F0+1),Yr(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 iv(e){var t;return!e||!e.state?Wr(e,on):(e.total_in=e.total_out=0,e.data_type=MF,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Lu:Yi,e.adler=t.wrap===2?0:1,t.last_flush=Wi,rn._tr_init(t),Vn)}function ov(e){var t=iv(e);return t===Vn&&XF(e.state),t}function KF(e,t){return!e||!e.state||e.state.wrap!==2?on:(e.state.gzhead=t,Vn)}function av(e,t,n,r,i,o){if(!e)return on;var a=1;if(t===TF&&(t=6),r<0?(a=0,r=-r):r>15&&(a=2,r-=16),i<1||i>PF||n!==Pu||r<8||r>15||t<0||t>9||o<0||o>RF)return Wr(e,on);r===8&&(r=9);var s=new $F;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+he-1)/he),s.window=new Bt.Buf8(s.w_size*2),s.head=new Bt.Buf16(s.hash_size),s.prev=new Bt.Buf16(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Bt.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,ov(e)}function JF(e,t){return av(e,t,Pu,LF,NF,FF)}function e7(e,t){var n,r,i,o;if(!e||!e.state||t>ev||t<0)return e?Wr(e,on):on;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===nl&&t!==qr)return Wr(e,e.avail_out===0?R0:on);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===Lu)if(r.wrap===2)e.adler=0,we(r,31),we(r,139),we(r,8),r.gzhead?(we(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)),we(r,r.gzhead.time&255),we(r,r.gzhead.time>>8&255),we(r,r.gzhead.time>>16&255),we(r,r.gzhead.time>>24&255),we(r,r.level===9?2:r.strategy>=Mu||r.level<2?4:0),we(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(we(r,r.gzhead.extra.length&255),we(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=jr(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=M0):(we(r,0),we(r,0),we(r,0),we(r,0),we(r,0),we(r,r.level===9?2:r.strategy>=Mu||r.level<2?4:0),we(r,qF),r.status=Yi);else{var a=Pu+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=Mu||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,a|=s<<6,r.strstart!==0&&(a|=jF),a+=31-a%31,r.status=Yi,il(r,a),r.strstart!==0&&(il(r,e.adler>>>16),il(r,e.adler&65535)),e.adler=1}if(r.status===M0)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=jr(e.adler,r.pending_buf,r.pending-i,i)),Qr(e),i=r.pending,r.pending===r.pending_buf_size));)we(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=jr(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=Nu)}else r.status=Nu;if(r.status===Nu)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=jr(e.adler,r.pending_buf,r.pending-i,i)),Qr(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,we(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=jr(e.adler,r.pending_buf,r.pending-i,i)),o===0&&(r.gzindex=0,r.status=Ou)}else r.status=Ou;if(r.status===Ou)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=jr(e.adler,r.pending_buf,r.pending-i,i)),Qr(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,we(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=jr(e.adler,r.pending_buf,r.pending-i,i)),o===0&&(r.status=zu)}else r.status=zu;if(r.status===zu&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&Qr(e),r.pending+2<=r.pending_buf_size&&(we(r,e.adler&255),we(r,e.adler>>8&255),e.adler=0,r.status=Yi)):r.status=Yi),r.pending!==0){if(Qr(e),e.avail_out===0)return r.last_flush=-1,Vn}else if(e.avail_in===0&&nv(t)<=nv(n)&&t!==qr)return Wr(e,R0);if(r.status===nl&&e.avail_in!==0)return Wr(e,R0);if(e.avail_in!==0||r.lookahead!==0||t!==Wi&&r.status!==nl){var f=r.strategy===Mu?QF(r,t):r.strategy===DF?YF(r,t):Jo[r.level].func(r,t);if((f===Qi||f===$o)&&(r.status=nl),f===it||f===Qi)return e.avail_out===0&&(r.last_flush=-1),Vn;if(f===rl&&(t===CF?rn._tr_align(r):t!==ev&&(rn._tr_stored_block(r,0,0,!1),t===kF&&(Yr(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),Qr(e),e.avail_out===0))return r.last_flush=-1,Vn}return t!==qr?Vn:r.wrap<=0?tv:(r.wrap===2?(we(r,e.adler&255),we(r,e.adler>>8&255),we(r,e.adler>>16&255),we(r,e.adler>>24&255),we(r,e.total_in&255),we(r,e.total_in>>8&255),we(r,e.total_in>>16&255),we(r,e.total_in>>24&255)):(il(r,e.adler>>>16),il(r,e.adler&65535)),Qr(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?Vn:tv)}function t7(e){var t;return!e||!e.state?on:(t=e.state.status,t!==Lu&&t!==M0&&t!==Nu&&t!==Ou&&t!==zu&&t!==Yi&&t!==nl?Wr(e,on):(e.state=null,t===Yi?Wr(e,IF):Vn))}function n7(e,t){var n=t.length,r,i,o,a,s,f,l,u;if(!e||!e.state||(r=e.state,a=r.wrap,a===2||a===1&&r.status!==Lu||r.lookahead))return on;for(a===1&&(e.adler=Jw(e.adler,t,n,0)),r.wrap=0,n>=r.w_size&&(a===0&&(Yr(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new Bt.Buf8(r.w_size),Bt.arraySet(u,t,n-r.w_size,r.w_size,0),t=u,n=r.w_size),s=e.avail_in,f=e.next_in,l=e.input,e.avail_in=n,e.next_in=0,e.input=t,Xi(r);r.lookahead>=he;){i=r.strstart,o=r.lookahead-(he-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+he-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=he-1,Xi(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=he-1,r.match_available=0,e.next_in=f,e.input=l,e.avail_in=s,r.wrap=a,Vn}Gn.deflateInit=JF,Gn.deflateInit2=av,Gn.deflateReset=ov,Gn.deflateResetKeep=iv,Gn.deflateSetHeader=KF,Gn.deflate=e7,Gn.deflateEnd=t7,Gn.deflateSetDictionary=n7,Gn.deflateInfo="pako deflate (from Nodeca project)";var $i={},Uu=sr,sv=!0,lv=!0;try{String.fromCharCode.apply(null,[0])}catch{sv=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{lv=!1}for(var ol=new Uu.Buf8(256),Xr=0;Xr<256;Xr++)ol[Xr]=Xr>=252?6:Xr>=248?5:Xr>=240?4:Xr>=224?3:Xr>=192?2:1;ol[254]=ol[254]=1,$i.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 Uu.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 fv(e,t){if(t<65534&&(e.subarray&&lv||!e.subarray&&sv))return String.fromCharCode.apply(null,Uu.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}$i.buf2binstring=function(e){return fv(e,e.length)},$i.binstring2buf=function(e){for(var t=new Uu.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},$i.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=ol[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 fv(s,r)},$i.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+ol[e[n]]>t?n:t};function r7(){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 uv=r7,al=Gn,sl=sr,L0=$i,N0=D0,i7=uv,cv=Object.prototype.toString,o7=0,O0=4,ea=0,hv=1,dv=2,a7=-1,s7=0,l7=8;function Ki(e){if(!(this instanceof Ki))return new Ki(e);this.options=sl.assign({level:a7,method:l7,chunkSize:16384,windowBits:15,memLevel:8,strategy:s7,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 i7,this.strm.avail_out=0;var n=al.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==ea)throw new Error(N0[n]);if(t.header&&al.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(typeof t.dictionary=="string"?r=L0.string2buf(t.dictionary):cv.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=al.deflateSetDictionary(this.strm,r),n!==ea)throw new Error(N0[n]);this._dict_set=!0}}Ki.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?O0:o7,typeof e=="string"?n.input=L0.string2buf(e):cv.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 sl.Buf8(r),n.next_out=0,n.avail_out=r),i=al.deflate(n,o),i!==hv&&i!==ea)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(o===O0||o===dv))&&(this.options.to==="string"?this.onData(L0.buf2binstring(sl.shrinkBuf(n.output,n.next_out))):this.onData(sl.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==hv);return o===O0?(i=al.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===ea):(o===dv&&(this.onEnd(ea),n.avail_out=0),!0)},Ki.prototype.onData=function(e){this.chunks.push(e)},Ki.prototype.onEnd=function(e){e===ea&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=sl.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function z0(e,t){var n=new Ki(t);if(n.push(e,!0),n.err)throw n.msg||N0[n.err];return n.result}function f7(e,t){return t=t||{},t.raw=!0,z0(e,t)}function u7(e,t){return t=t||{},t.gzip=!0,z0(e,t)}Qs.Deflate=Ki,Qs.deflate=z0,Qs.deflateRaw=f7,Qs.gzip=u7;var ll={},_n={},Gu=30,c7=12,h7=function(t,n){var r,i,o,a,s,f,l,u,c,h,d,p,b,y,w,_,C,S,T,B,I,F,P,j,O;r=t.state,i=t.next_in,j=t.input,o=i+(t.avail_in-5),a=t.next_out,O=t.output,s=a-(n-t.avail_out),f=a+(t.avail_out-257),l=r.dmax,u=r.wsize,c=r.whave,h=r.wnext,d=r.window,p=r.hold,b=r.bits,y=r.lencode,w=r.distcode,_=(1<<r.lenbits)-1,C=(1<<r.distbits)-1;e:do{b<15&&(p+=j[i++]<<b,b+=8,p+=j[i++]<<b,b+=8),S=y[p&_];t:for(;;){if(T=S>>>24,p>>>=T,b-=T,T=S>>>16&255,T===0)O[a++]=S&65535;else if(T&16){B=S&65535,T&=15,T&&(b<T&&(p+=j[i++]<<b,b+=8),B+=p&(1<<T)-1,p>>>=T,b-=T),b<15&&(p+=j[i++]<<b,b+=8,p+=j[i++]<<b,b+=8),S=w[p&C];n:for(;;){if(T=S>>>24,p>>>=T,b-=T,T=S>>>16&255,T&16){if(I=S&65535,T&=15,b<T&&(p+=j[i++]<<b,b+=8,b<T&&(p+=j[i++]<<b,b+=8)),I+=p&(1<<T)-1,I>l){t.msg="invalid distance too far back",r.mode=Gu;break e}if(p>>>=T,b-=T,T=a-s,I>T){if(T=I-T,T>c&&r.sane){t.msg="invalid distance too far back",r.mode=Gu;break e}if(F=0,P=d,h===0){if(F+=u-T,T<B){B-=T;do O[a++]=d[F++];while(--T);F=a-I,P=O}}else if(h<T){if(F+=u+h-T,T-=h,T<B){B-=T;do O[a++]=d[F++];while(--T);if(F=0,h<B){T=h,B-=T;do O[a++]=d[F++];while(--T);F=a-I,P=O}}}else if(F+=h-T,T<B){B-=T;do O[a++]=d[F++];while(--T);F=a-I,P=O}for(;B>2;)O[a++]=P[F++],O[a++]=P[F++],O[a++]=P[F++],B-=3;B&&(O[a++]=P[F++],B>1&&(O[a++]=P[F++]))}else{F=a-I;do O[a++]=O[F++],O[a++]=O[F++],O[a++]=O[F++],B-=3;while(B>2);B&&(O[a++]=O[F++],B>1&&(O[a++]=O[F++]))}}else if(T&64){t.msg="invalid distance code",r.mode=Gu;break e}else{S=w[(S&65535)+(p&(1<<T)-1)];continue n}break}}else if(T&64)if(T&32){r.mode=c7;break e}else{t.msg="invalid literal/length code",r.mode=Gu;break e}else{S=y[(S&65535)+(p&(1<<T)-1)];continue t}break}}while(i<o&&a<f);B=b>>3,i-=B,b-=B<<3,p&=(1<<b)-1,t.next_in=i,t.next_out=a,t.avail_in=i<o?5+(o-i):5-(i-o),t.avail_out=a<f?257+(f-a):257-(a-f),r.hold=p,r.bits=b},pv=sr,ta=15,gv=852,mv=592,bv=0,U0=1,yv=2,d7=[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],p7=[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],g7=[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],m7=[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],b7=function(t,n,r,i,o,a,s,f){var l=f.bits,u=0,c=0,h=0,d=0,p=0,b=0,y=0,w=0,_=0,C=0,S,T,B,I,F,P=null,j=0,O,re=new pv.Buf16(ta+1),ae=new pv.Buf16(ta+1),pe=null,Te=0,Xe,De,$e;for(u=0;u<=ta;u++)re[u]=0;for(c=0;c<i;c++)re[n[r+c]]++;for(p=l,d=ta;d>=1&&re[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,f.bits=1,0;for(h=1;h<d&&re[h]===0;h++);for(p<h&&(p=h),w=1,u=1;u<=ta;u++)if(w<<=1,w-=re[u],w<0)return-1;if(w>0&&(t===bv||d!==1))return-1;for(ae[1]=0,u=1;u<ta;u++)ae[u+1]=ae[u]+re[u];for(c=0;c<i;c++)n[r+c]!==0&&(s[ae[n[r+c]]++]=c);if(t===bv?(P=pe=s,O=19):t===U0?(P=d7,j-=257,pe=p7,Te-=257,O=256):(P=g7,pe=m7,O=-1),C=0,c=0,u=h,F=a,b=p,y=0,B=-1,_=1<<p,I=_-1,t===U0&&_>gv||t===yv&&_>mv)return 1;for(;;){Xe=u-y,s[c]<O?(De=0,$e=s[c]):s[c]>O?(De=pe[Te+s[c]],$e=P[j+s[c]]):(De=32+64,$e=0),S=1<<u-y,T=1<<b,h=T;do T-=S,o[F+(C>>y)+T]=Xe<<24|De<<16|$e|0;while(T!==0);for(S=1<<u-1;C&S;)S>>=1;if(S!==0?(C&=S-1,C+=S):C=0,c++,--re[u]===0){if(u===d)break;u=n[r+s[c]]}if(u>p&&(C&I)!==B){for(y===0&&(y=p),F+=h,b=u-y,w=1<<b;b+y<d&&(w-=re[b+y],!(w<=0));)b++,w<<=1;if(_+=1<<b,t===U0&&_>gv||t===yv&&_>mv)return 1;B=C&I,o[B]=p<<24|b<<16|F-a|0}}return C!==0&&(o[F+C]=u-y<<24|64<<16|0),f.bits=p,0},Xt=sr,G0=$w,qn=Kw,y7=h7,fl=b7,w7=0,wv=1,vv=2,xv=4,v7=5,Hu=6,Ji=0,x7=1,A7=2,an=-2,Av=-3,Ev=-4,E7=-5,_v=8,Sv=1,Cv=2,kv=3,Iv=4,Tv=5,Bv=6,Dv=7,Rv=8,Fv=9,Mv=10,Vu=11,fr=12,H0=13,Pv=14,V0=15,Lv=16,Nv=17,Ov=18,zv=19,ju=20,qu=21,Uv=22,Gv=23,Hv=24,Vv=25,jv=26,j0=27,qv=28,Zv=29,je=30,Wv=31,_7=32,S7=852,C7=592,k7=15,I7=k7;function Yv(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function T7(){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 Qv(e){var t;return!e||!e.state?an:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Sv,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(S7),t.distcode=t.distdyn=new Xt.Buf32(C7),t.sane=1,t.back=-1,Ji)}function Xv(e){var t;return!e||!e.state?an:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,Qv(e))}function $v(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))?an:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,Xv(e))}function Kv(e,t){var n,r;return e?(r=new T7,e.state=r,r.window=null,n=$v(e,t),n!==Ji&&(e.state=null),n):an}function B7(e){return Kv(e,I7)}var Jv=!0,q0,Z0;function D7(e){if(Jv){var t;for(q0=new Xt.Buf32(512),Z0=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(fl(wv,e.lens,0,288,q0,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;fl(vv,e.lens,0,32,Z0,0,e.work,{bits:5}),Jv=!1}e.lencode=q0,e.lenbits=9,e.distcode=Z0,e.distbits=5}function ex(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 R7(e,t){var n,r,i,o,a,s,f,l,u,c,h,d,p,b,y=0,w,_,C,S,T,B,I,F,P=new Xt.Buf8(4),j,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 an;n=e.state,n.mode===fr&&(n.mode=H0),a=e.next_out,i=e.output,f=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,l=n.hold,u=n.bits,c=s,h=f,F=Ji;e:for(;;)switch(n.mode){case Sv:if(n.wrap===0){n.mode=H0;break}for(;u<16;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if(n.wrap&2&&l===35615){n.check=0,P[0]=l&255,P[1]=l>>>8&255,n.check=qn(n.check,P,2,0),l=0,u=0,n.mode=Cv;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=je;break}if((l&15)!==_v){e.msg="unknown compression method",n.mode=je;break}if(l>>>=4,u-=4,I=(l&15)+8,n.wbits===0)n.wbits=I;else if(I>n.wbits){e.msg="invalid window size",n.mode=je;break}n.dmax=1<<I,e.adler=n.check=1,n.mode=l&512?Mv:fr,l=0,u=0;break;case Cv:for(;u<16;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if(n.flags=l,(n.flags&255)!==_v){e.msg="unknown compression method",n.mode=je;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=je;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&(P[0]=l&255,P[1]=l>>>8&255,n.check=qn(n.check,P,2,0)),l=0,u=0,n.mode=kv;case kv:for(;u<32;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}n.head&&(n.head.time=l),n.flags&512&&(P[0]=l&255,P[1]=l>>>8&255,P[2]=l>>>16&255,P[3]=l>>>24&255,n.check=qn(n.check,P,4,0)),l=0,u=0,n.mode=Iv;case Iv:for(;u<16;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&(P[0]=l&255,P[1]=l>>>8&255,n.check=qn(n.check,P,2,0)),l=0,u=0,n.mode=Tv;case Tv:if(n.flags&1024){for(;u<16;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&(P[0]=l&255,P[1]=l>>>8&255,n.check=qn(n.check,P,2,0)),l=0,u=0}else n.head&&(n.head.extra=null);n.mode=Bv;case Bv: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=qn(n.check,r,d,o)),s-=d,o+=d,n.length-=d),n.length))break e;n.length=0,n.mode=Dv;case Dv: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=qn(n.check,r,d,o)),s-=d,o+=d,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=Rv;case Rv: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=qn(n.check,r,d,o)),s-=d,o+=d,I)break e}else n.head&&(n.head.comment=null);n.mode=Fv;case Fv:if(n.flags&512){for(;u<16;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if(l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=je;break}l=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=fr;break;case Mv:for(;u<32;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}e.adler=n.check=Yv(l),l=0,u=0,n.mode=Vu;case Vu:if(n.havedict===0)return e.next_out=a,e.avail_out=f,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=u,A7;e.adler=n.check=1,n.mode=fr;case fr:if(t===v7||t===Hu)break e;case H0:if(n.last){l>>>=u&7,u-=u&7,n.mode=j0;break}for(;u<3;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}switch(n.last=l&1,l>>>=1,u-=1,l&3){case 0:n.mode=Pv;break;case 1:if(D7(n),n.mode=ju,t===Hu){l>>>=2,u-=2;break e}break;case 2:n.mode=Nv;break;case 3:e.msg="invalid block type",n.mode=je}l>>>=2,u-=2;break;case Pv:for(l>>>=u&7,u-=u&7;u<32;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=je;break}if(n.length=l&65535,l=0,u=0,n.mode=V0,t===Hu)break e;case V0:n.mode=Lv;case Lv:if(d=n.length,d){if(d>s&&(d=s),d>f&&(d=f),d===0)break e;Xt.arraySet(i,r,o,d,a),s-=d,o+=d,f-=d,a+=d,n.length-=d;break}n.mode=fr;break;case Nv:for(;u<14;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if(n.nlen=(l&31)+257,l>>>=5,u-=5,n.ndist=(l&31)+1,l>>>=5,u-=5,n.ncode=(l&15)+4,l>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=je;break}n.have=0,n.mode=Ov;case Ov:for(;n.have<n.ncode;){for(;u<3;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}n.lens[re[n.have++]]=l&7,l>>>=3,u-=3}for(;n.have<19;)n.lens[re[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,j={bits:n.lenbits},F=fl(w7,n.lens,0,19,n.lencode,0,n.work,j),n.lenbits=j.bits,F){e.msg="invalid code lengths set",n.mode=je;break}n.have=0,n.mode=zv;case zv:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=u);){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if(C<16)l>>>=w,u-=w,n.lens[n.have++]=C;else{if(C===16){for(O=w+2;u<O;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if(l>>>=w,u-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=je;break}I=n.lens[n.have-1],d=3+(l&3),l>>>=2,u-=2}else if(C===17){for(O=w+3;u<O;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}l>>>=w,u-=w,I=0,d=3+(l&7),l>>>=3,u-=3}else{for(O=w+7;u<O;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}l>>>=w,u-=w,I=0,d=11+(l&127),l>>>=7,u-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=je;break}for(;d--;)n.lens[n.have++]=I}}if(n.mode===je)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=je;break}if(n.lenbits=9,j={bits:n.lenbits},F=fl(wv,n.lens,0,n.nlen,n.lencode,0,n.work,j),n.lenbits=j.bits,F){e.msg="invalid literal/lengths set",n.mode=je;break}if(n.distbits=6,n.distcode=n.distdyn,j={bits:n.distbits},F=fl(vv,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,j),n.distbits=j.bits,F){e.msg="invalid distances set",n.mode=je;break}if(n.mode=ju,t===Hu)break e;case ju:n.mode=qu;case qu:if(s>=6&&f>=258){e.next_out=a,e.avail_out=f,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=u,y7(e,h),a=e.next_out,i=e.output,f=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,l=n.hold,u=n.bits,n.mode===fr&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=u);){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if(_&&!(_&240)){for(S=w,T=_,B=C;y=n.lencode[B+((l&(1<<S+T)-1)>>S)],w=y>>>24,_=y>>>16&255,C=y&65535,!(S+w<=u);){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}l>>>=S,u-=S,n.back+=S}if(l>>>=w,u-=w,n.back+=w,n.length=C,_===0){n.mode=jv;break}if(_&32){n.back=-1,n.mode=fr;break}if(_&64){e.msg="invalid literal/length code",n.mode=je;break}n.extra=_&15,n.mode=Uv;case Uv:if(n.extra){for(O=n.extra;u<O;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=Gv;case Gv:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=u);){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if(!(_&240)){for(S=w,T=_,B=C;y=n.distcode[B+((l&(1<<S+T)-1)>>S)],w=y>>>24,_=y>>>16&255,C=y&65535,!(S+w<=u);){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}l>>>=S,u-=S,n.back+=S}if(l>>>=w,u-=w,n.back+=w,_&64){e.msg="invalid distance code",n.mode=je;break}n.offset=C,n.extra=_&15,n.mode=Hv;case Hv:if(n.extra){for(O=n.extra;u<O;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=je;break}n.mode=Vv;case Vv:if(f===0)break e;if(d=h-f,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=je;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),b=n.window}else b=i,p=a-n.offset,d=n.length;d>f&&(d=f),f-=d,n.length-=d;do i[a++]=b[p++];while(--d);n.length===0&&(n.mode=qu);break;case jv:if(f===0)break e;i[a++]=n.length,f--,n.mode=qu;break;case j0:if(n.wrap){for(;u<32;){if(s===0)break e;s--,l|=r[o++]<<u,u+=8}if(h-=f,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?qn(n.check,i,h,a-h):G0(n.check,i,h,a-h)),h=f,(n.flags?l:Yv(l))!==n.check){e.msg="incorrect data check",n.mode=je;break}l=0,u=0}n.mode=qv;case qv:if(n.wrap&&n.flags){for(;u<32;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if(l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=je;break}l=0,u=0}n.mode=Zv;case Zv:F=x7;break e;case je:F=Av;break e;case Wv:return Ev;case _7:default:return an}return e.next_out=a,e.avail_out=f,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=u,(n.wsize||h!==e.avail_out&&n.mode<je&&(n.mode<j0||t!==xv))&&ex(e,e.output,e.next_out,h-e.avail_out),c-=e.avail_in,h-=e.avail_out,e.total_in+=c,e.total_out+=h,n.total+=h,n.wrap&&h&&(e.adler=n.check=n.flags?qn(n.check,i,h,e.next_out-h):G0(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===fr?128:0)+(n.mode===ju||n.mode===V0?256:0),(c===0&&h===0||t===xv)&&F===Ji&&(F=E7),F}function F7(e){if(!e||!e.state)return an;var t=e.state;return t.window&&(t.window=null),e.state=null,Ji}function M7(e,t){var n;return!e||!e.state||(n=e.state,!(n.wrap&2))?an:(n.head=t,t.done=!1,Ji)}function P7(e,t){var n=t.length,r,i,o;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==Vu)?an:r.mode===Vu&&(i=1,i=G0(i,t,n,0),i!==r.check)?Av:(o=ex(e,t,n,n),o?(r.mode=Wv,Ev):(r.havedict=1,Ji))}_n.inflateReset=Xv,_n.inflateReset2=$v,_n.inflateResetKeep=Qv,_n.inflateInit=B7,_n.inflateInit2=Kv,_n.inflate=R7,_n.inflateEnd=F7,_n.inflateGetHeader=M7,_n.inflateSetDictionary=P7,_n.inflateInfo="pako inflate (from Nodeca project)";var tx={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 L7(){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 N7=L7,na=_n,ul=sr,Zu=$i,et=tx,W0=D0,O7=uv,z7=N7,nx=Object.prototype.toString;function eo(e){if(!(this instanceof eo))return new eo(e);this.options=ul.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 O7,this.strm.avail_out=0;var n=na.inflateInit2(this.strm,t.windowBits);if(n!==et.Z_OK)throw new Error(W0[n]);if(this.header=new z7,na.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Zu.string2buf(t.dictionary):nx.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=na.inflateSetDictionary(this.strm,t.dictionary),n!==et.Z_OK)))throw new Error(W0[n])}eo.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,o,a,s,f,l,u=!1;if(this.ended)return!1;a=t===~~t?t:t===!0?et.Z_FINISH:et.Z_NO_FLUSH,typeof e=="string"?n.input=Zu.binstring2buf(e):nx.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 ul.Buf8(r),n.next_out=0,n.avail_out=r),o=na.inflate(n,et.Z_NO_FLUSH),o===et.Z_NEED_DICT&&i&&(o=na.inflateSetDictionary(this.strm,i)),o===et.Z_BUF_ERROR&&u===!0&&(o=et.Z_OK,u=!1),o!==et.Z_STREAM_END&&o!==et.Z_OK)return this.onEnd(o),this.ended=!0,!1;n.next_out&&(n.avail_out===0||o===et.Z_STREAM_END||n.avail_in===0&&(a===et.Z_FINISH||a===et.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=Zu.utf8border(n.output,n.next_out),f=n.next_out-s,l=Zu.buf2string(n.output,s),n.next_out=f,n.avail_out=r-f,f&&ul.arraySet(n.output,n.output,s,f,0),this.onData(l)):this.onData(ul.shrinkBuf(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(u=!0)}while((n.avail_in>0||n.avail_out===0)&&o!==et.Z_STREAM_END);return o===et.Z_STREAM_END&&(a=et.Z_FINISH),a===et.Z_FINISH?(o=na.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,o===et.Z_OK):(a===et.Z_SYNC_FLUSH&&(this.onEnd(et.Z_OK),n.avail_out=0),!0)},eo.prototype.onData=function(e){this.chunks.push(e)},eo.prototype.onEnd=function(e){e===et.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=ul.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Y0(e,t){var n=new eo(t);if(n.push(e,!0),n.err)throw n.msg||W0[n.err];return n.result}function U7(e,t){return t=t||{},t.raw=!0,Y0(e,t)}ll.Inflate=eo,ll.inflate=Y0,ll.inflateRaw=U7,ll.ungzip=Y0;var G7=sr.assign,H7=Qs,V7=ll,j7=tx,rx={};G7(rx,H7,V7,j7);var Wu=rx;async function $r(e){try{let t,n=0,r=0;const i=[];let o=0,a;do{const f=e.subarray(n);if(a=new Wu.Inflate,{strm:t}=a,a.push(f,Wu.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 f=0,l=0;f<i.length;f++)s.set(i[f],l),l+=i[f].length;return ye.Buffer.from(s)}catch(t){throw`${t}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):t}}async function ix(e,t){try{let n;const{minv:r,maxv:i}=t;let o=r.blockPosition,a=r.dataPosition;const s=[],f=[],l=[];let u=0,c=0;do{const p=e.subarray(o-r.blockPosition),b=new Wu.Inflate;if({strm:n}=b,b.push(p,Wu.Z_SYNC_FLUSH),b.err)throw new Error(b.msg);const y=b.result;s.push(y);let w=y.length;f.push(o),l.push(a),s.length===1&&r.dataPosition&&(s[0]=s[0].subarray(r.dataPosition),w=s[0].length);const _=o;if(o+=n.next_in,a+=w,_>=i.blockPosition){s[c]=s[c].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),f.push(o),l.push(a),u+=s[c].length;break}u+=s[c].length,c++}while(n.avail_in);const h=new Uint8Array(u);for(let p=0,b=0;p<s.length;p++)h.set(s[p],b),b+=s[p].length;return{buffer:ye.Buffer.from(h),cpositions:f,dpositions:l}}catch(n){throw`${n}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):n}}var q7=Le,sn=null;try{sn=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 Ht(e){return(e&&e.__isLong__)===!0}Le.isLong=Ht;var ox={},ax={};function to(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=ax[e],r)?r:(n=Ne(e,(e|0)<0?-1:0,!0),i&&(ax[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=ox[e],r)?r:(n=Ne(e,e<0?-1:0,!1),i&&(ox[e]=n),n))}Le.fromInt=to;function ln(e,t){if(isNaN(e))return t?no:fn;if(t){if(e<0)return no;if(e>=lx)return dx}else{if(e<=-fx)return Vt;if(e+1>=fx)return hx}return e<0?ln(-e,t).neg():Ne(e%ra|0,e/ra|0,t)}Le.fromNumber=ln;function Ne(e,t,n){return new Le(e,t,n)}Le.fromBits=Ne;var Yu=Math.pow;function Q0(e,t,n){if(e.length===0)throw Error("empty string");if(e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return fn;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 Q0(e.substring(1),t,n).neg();for(var i=ln(Yu(n,8)),o=fn,a=0;a<e.length;a+=8){var s=Math.min(8,e.length-a),f=parseInt(e.substring(a,a+s),n);if(s<8){var l=ln(Yu(n,s));o=o.mul(l).add(ln(f))}else o=o.mul(i),o=o.add(ln(f))}return o.unsigned=t,o}Le.fromString=Q0;function Sn(e,t){return typeof e=="number"?ln(e,t):typeof e=="string"?Q0(e,t):Ne(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}Le.fromValue=Sn;var sx=65536,Z7=1<<24,ra=sx*sx,lx=ra*ra,fx=lx/2,ux=to(Z7),fn=to(0);Le.ZERO=fn;var no=to(0,!0);Le.UZERO=no;var ia=to(1);Le.ONE=ia;var cx=to(1,!0);Le.UONE=cx;var X0=to(-1);Le.NEG_ONE=X0;var hx=Ne(-1,2147483647,!1);Le.MAX_VALUE=hx;var dx=Ne(-1,-1,!0);Le.MAX_UNSIGNED_VALUE=dx;var Vt=Ne(0,-2147483648,!1);Le.MIN_VALUE=Vt;var Y=Le.prototype;Y.toInt=function(){return this.unsigned?this.low>>>0:this.low},Y.toNumber=function(){return this.unsigned?(this.high>>>0)*ra+(this.low>>>0):this.high*ra+(this.low>>>0)},Y.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=ln(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=ln(Yu(t,6),this.unsigned),a=this,s="";;){var f=a.div(o),l=a.sub(f.mul(o)).toInt()>>>0,u=l.toString(t);if(a=f,a.isZero())return u+s;for(;u.length<6;)u="0"+u;s=""+u+s}},Y.getHighBits=function(){return this.high},Y.getHighBitsUnsigned=function(){return this.high>>>0},Y.getLowBits=function(){return this.low},Y.getLowBitsUnsigned=function(){return this.low>>>0},Y.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},Y.isZero=function(){return this.high===0&&this.low===0},Y.eqz=Y.isZero,Y.isNegative=function(){return!this.unsigned&&this.high<0},Y.isPositive=function(){return this.unsigned||this.high>=0},Y.isOdd=function(){return(this.low&1)===1},Y.isEven=function(){return(this.low&1)===0},Y.equals=function(t){return Ht(t)||(t=Sn(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},Y.eq=Y.equals,Y.notEquals=function(t){return!this.eq(t)},Y.neq=Y.notEquals,Y.ne=Y.notEquals,Y.lessThan=function(t){return this.comp(t)<0},Y.lt=Y.lessThan,Y.lessThanOrEqual=function(t){return this.comp(t)<=0},Y.lte=Y.lessThanOrEqual,Y.le=Y.lessThanOrEqual,Y.greaterThan=function(t){return this.comp(t)>0},Y.gt=Y.greaterThan,Y.greaterThanOrEqual=function(t){return this.comp(t)>=0},Y.gte=Y.greaterThanOrEqual,Y.ge=Y.greaterThanOrEqual,Y.compare=function(t){if(Ht(t)||(t=Sn(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},Y.comp=Y.compare,Y.negate=function(){return!this.unsigned&&this.eq(Vt)?Vt:this.not().add(ia)},Y.neg=Y.negate,Y.add=function(t){Ht(t)||(t=Sn(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,f=t.low>>>16,l=t.low&65535,u=0,c=0,h=0,d=0;return d+=o+l,h+=d>>>16,d&=65535,h+=i+f,c+=h>>>16,h&=65535,c+=r+s,u+=c>>>16,c&=65535,u+=n+a,u&=65535,Ne(h<<16|d,u<<16|c,this.unsigned)},Y.subtract=function(t){return Ht(t)||(t=Sn(t)),this.add(t.neg())},Y.sub=Y.subtract,Y.multiply=function(t){if(this.isZero())return fn;if(Ht(t)||(t=Sn(t)),sn){var n=sn.mul(this.low,this.high,t.low,t.high);return Ne(n,sn.get_high(),this.unsigned)}if(t.isZero())return fn;if(this.eq(Vt))return t.isOdd()?Vt:fn;if(t.eq(Vt))return this.isOdd()?Vt:fn;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(ux)&&t.lt(ux))return ln(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,f=t.high&65535,l=t.low>>>16,u=t.low&65535,c=0,h=0,d=0,p=0;return p+=a*u,d+=p>>>16,p&=65535,d+=o*u,h+=d>>>16,d&=65535,d+=a*l,h+=d>>>16,d&=65535,h+=i*u,c+=h>>>16,h&=65535,h+=o*l,c+=h>>>16,h&=65535,h+=a*f,c+=h>>>16,h&=65535,c+=r*u+i*l+o*f+a*s,c&=65535,Ne(d<<16|p,c<<16|h,this.unsigned)},Y.mul=Y.multiply,Y.divide=function(t){if(Ht(t)||(t=Sn(t)),t.isZero())throw Error("division by zero");if(sn){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?sn.div_u:sn.div_s)(this.low,this.high,t.low,t.high);return Ne(n,sn.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?no:fn;var r,i,o;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return no;if(t.gt(this.shru(1)))return cx;o=no}else{if(this.eq(Vt)){if(t.eq(ia)||t.eq(X0))return Vt;if(t.eq(Vt))return ia;var a=this.shr(1);return r=a.div(t).shl(1),r.eq(fn)?t.isNegative()?ia:X0:(i=this.sub(t.mul(r)),o=r.add(i.div(t)),o)}else if(t.eq(Vt))return this.unsigned?no:fn;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=fn}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),f=s<=48?1:Yu(2,s-48),l=ln(r),u=l.mul(t);u.isNegative()||u.gt(i);)r-=f,l=ln(r,this.unsigned),u=l.mul(t);l.isZero()&&(l=ia),o=o.add(l),i=i.sub(u)}return o},Y.div=Y.divide,Y.modulo=function(t){if(Ht(t)||(t=Sn(t)),sn){var n=(this.unsigned?sn.rem_u:sn.rem_s)(this.low,this.high,t.low,t.high);return Ne(n,sn.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},Y.mod=Y.modulo,Y.rem=Y.modulo,Y.not=function(){return Ne(~this.low,~this.high,this.unsigned)},Y.and=function(t){return Ht(t)||(t=Sn(t)),Ne(this.low&t.low,this.high&t.high,this.unsigned)},Y.or=function(t){return Ht(t)||(t=Sn(t)),Ne(this.low|t.low,this.high|t.high,this.unsigned)},Y.xor=function(t){return Ht(t)||(t=Sn(t)),Ne(this.low^t.low,this.high^t.high,this.unsigned)},Y.shiftLeft=function(t){return Ht(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)},Y.shl=Y.shiftLeft,Y.shiftRight=function(t){return Ht(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)},Y.shr=Y.shiftRight,Y.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 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)},Y.shru=Y.shiftRightUnsigned,Y.shr_u=Y.shiftRightUnsigned,Y.toSigned=function(){return this.unsigned?Ne(this.low,this.high,!1):this},Y.toUnsigned=function(){return this.unsigned?this:Ne(this.low,this.high,!0)},Y.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},Y.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]},Y.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 Qu=Ws(q7),Xu=1;class W7{constructor({filehandle:t,path:n}){if(t)this.filehandle=t;else if(n)this.filehandle=new ct(n);else throw new TypeError("either filehandle or path must be defined")}_readLongWithOverflow(t,n=0,r=!0){const i=Qu.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=ye.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=ye.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[Xu],b=d?d[Xu]:1/0;return p<=n&&b>n?0:p<n?-1:1};let s=0,f=i.length-1,l=Math.floor(i.length/2),u=a(i[l],i[l+1]);for(;u!==0;)u>0?f=l-1:u<0&&(s=l+1),l=Math.ceil((f-s)/2)+s,u=a(i[l],i[l+1]);o.push(i[l]);let c=l+1;for(;c<i.length&&(o.push(i[c]),!(i[c][Xu]>=r));c+=1);return o[o.length-1][Xu]<r&&o.push([]),o}}class px{constructor({filehandle:t,path:n,gziFilehandle:r,gziPath:i}){if(t)this.filehandle=t;else if(n)this.filehandle=new ct(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 W7({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=ye.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 $r(t.slice(0,o))}async read(t,n,r,i){const o=await this.gzi.getRelevantBlocksForRead(r,i),a=ye.Buffer.allocUnsafe(32768*2);let s=n,f=0;for(let l=0;l<o.length-1;l+=1){const u=await this._readAndUncompressBlock(a,o[l],o[l+1]),[,c]=o[l],h=c>=i?0:i-c,d=Math.min(i+r,c+u.length)-c;h>=0&&h<u.length&&(u.copy(t,s,h,d),s+=d-h,f+=d-h)}return{bytesRead:f,buffer:t}}}function gx(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}async function Y7(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 mx{constructor({fasta:t,fai:n,path:r,faiPath:i,chunkSizeLimit:o=1e6}){if(t)this.fasta=t;else if(r)this.fasta=new ct(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 ct(i);else if(r)this.fai=new ct(`${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=Y7(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=gx(t,n),s=gx(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 f=Buffer.allocUnsafe(s);return await this.fasta.read(f,0,s,a,i),f.toString("utf8").replace(/\s+/g,"")}}class Q7 extends mx{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 px({filehandle:t,gziFilehandle:o}):n&&a&&(this.fasta=new px({path:n,gziPath:a}))}}function bx(e){return e.split(">").filter(t=>/\S/.test(t)).map(t=>{const[n,...r]=t.split(`
277
- `),[i,...o]=n.split(" "),a=r.join("").replace(/\s/g,"");return{id:i,description:o.join(" "),sequence:a}})}class X7{constructor({fasta:t,path:n}){if(t)this.fasta=t;else if(n)this.fasta=new ct(n);else throw new Error("Need to pass fasta or path");this.data=this.fasta.readFile().then(r=>{const i=r.toString("utf8");return bx(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 $7=Object.freeze(Object.defineProperty({__proto__:null,BgzipIndexedFasta:Q7,FetchableSmallFasta:X7,IndexedFasta:mx,parseSmallFasta:bx},Symbol.toStringTag,{value:"Module"})),$u=BigInt(32);function K7(e,t,n){const r=+!!n,i=+!n;return BigInt(e.getInt32(t,n)*i+e.getInt32(t+4,n)*r)<<$u|BigInt(e.getUint32(t,n)*r+e.getUint32(t+4,n)*i)}function J7(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)<<$u|BigInt(r*o+i*a)}function eM(e,t,n,r){const i=Number(n>>$u),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 tM(e,t,n,r){const i=Number(n>>$u),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 K7(this,e,t)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(e,t){return J7(this,e,t)}),"setBigInt64"in DataView||(DataView.prototype.setBigInt64=function(e,t,n){eM(this,e,t,n)}),"setBigUint64"in DataView||(DataView.prototype.setBigUint64=function(e,t,n){tM(this,e,t,n)});class nM{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+`
278
- `}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 Cn=new Map,ro="___parser_",kn={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},Ku={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"},Ju={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 Ie=class Bn{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new Bn}primitiveGenerateN(t,n){const r=Ku[t],i=Ju[t];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${kn[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 Cn.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"&&!Cn.has(n.type)&&!(n.type in kn))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"&&!Cn.has(o)&&!(o in kn))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 Bn)&&!Cn.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof Bn)&&!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 kn)&&!Cn.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 nM(t,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${ro+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 ${ro+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=Cn.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(kn).indexOf(this.type)>=0)t=kn[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=kn[this.options.type]:this.options.type instanceof Bn&&(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 Bn;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=(u=0)=>{let c=0;for(let h=u;h<t.bitFields.length;h++){const d=t.bitFields[h].options.length;if(c+d>32)break;c+=d}return c},o=u=>(u<=8?(t.pushCode(`${r} = dataView.getUint8(offset);`),u=8):u<=16?(t.pushCode(`${r} = dataView.getUint16(offset);`),u=16):u<=24?(t.pushCode(`${r} = (dataView.getUint16(offset) << 8) | dataView.getUint8(offset + 2);`),u=24):(t.pushCode(`${r} = dataView.getUint32(offset);`),u=32),t.pushCode(`offset += ${u/8};`),u);let a=0;const s=this.endian==="be";let f=0,l=0;t.bitFields.forEach((u,c)=>{let h=u.options.length;if(h>l){if(l){const b=-1>>>32-l;t.pushCode(`${u.varName} = (${r} & 0x${b.toString(16)}) << ${h-l};`),h-=l}a=0,l=f=o(i(c)-l)}const d=s?f-a-h:a,p=-1>>>32-h;t.pushCode(`${u.varName} ${h<u.options.length?"|=":"="} ${r} >> ${d} & 0x${p.toString(16)};`),u.options.length===32&&t.pushCode(`${u.varName} >>>= 0`),u.options.assert&&u.generateAssert(t),u.options.formatter&&u.generateFormatter(t,u.varName,u.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 f=`offset - ${r} < ${s} ? offset - 1 : offset`;t.pushCode(o?`${n} = Array.from(buffer.subarray(${r}, ${f}), ${a}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${f}));`)}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(),f=this.options.key,l=typeof f=="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(Cn.get(i)){const u=t.generateTmpVariable();if(t.pushCode(`var ${u} = ${ro+i}(offset, {`),t.useContextVariables){const c=t.generateVariable();t.pushCode(`$parent: ${c},`),t.pushCode(`$root: ${c}.$root,`),!this.options.readUntil&&r===void 0&&t.pushCode(`$index: ${n} - ${o},`)}t.pushCode("});"),t.pushCode(`var ${s} = ${u}.result; offset = ${u}.offset;`),i!==this.alias&&t.addReference(i)}else{const u=Ku[i],c=Ju[i];t.pushCode(`var ${s} = dataView.get${u}(offset, ${c});`),t.pushCode(`offset += ${kn[i]};`)}else if(i instanceof Bn){t.pushCode(`var ${s} = {};`);const u=t.generateVariable();t.pushScope(s),t.useContextVariables&&(t.pushCode(`${s}.$parent = ${u};`),t.pushCode(`${s}.$root = ${u}.$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}.${f}] = ${s};`):t.pushCode(`${a}.push(${s});`),t.pushCode("}"),typeof this.options.readUntil=="function"){const u=this.options.readUntil,c=t.addImport(u);t.pushCode(`while (!${c}.call(${t.generateVariable()}, ${s}, buffer.subarray(offset)));`)}}generateChoiceCase(t,n,r){if(typeof r=="string"){const i=t.generateVariable(this.varName);if(Cn.has(r)){const o=t.generateTmpVariable();t.pushCode(`var ${o} = ${ro+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=Ku[r],a=Ju[r];t.pushCode(`${i} = dataView.get${o}(offset, ${a});`),t.pushCode(`offset += ${kn[r]}`)}}else r instanceof Bn&&(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 Bn){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(Cn.has(this.options.type)){const r=t.generateTmpVariable();if(t.pushCode(`var ${r} = ${ro+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 f=this.options.readUntil,l=t.generateTmpVariable(),u=t.generateTmpVariable();t.pushCode(`var ${l} = offset;`),t.pushCode(`var ${u} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${u} = dataView.getUint8(offset);`);const c=t.addImport(f);t.pushCode(`if (${c}.call(${t.generateVariable()}, ${u}, 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 f=t.generateOption(this.options.length);t.pushCode(`${r} = buffer.subarray(offset, offset + ${f});`),t.pushCode(`offset += ${f};`)}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 Bn)this.varName&&t.pushCode(`${n} = {};`),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(Cn.has(this.options.type)){const f=t.generateTmpVariable();t.pushCode(`var ${f} = ${ro+this.options.type}(0);`),t.pushCode(`${n} = ${f}.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 Bn){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(Cn.has(this.options.type)){const a=t.generateTmpVariable();if(t.pushCode(`var ${a} = ${ro+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(kn).indexOf(this.options.type)>=0){const a=Ku[n],s=Ju[n];t.pushCode(`${o} = dataView.get${a}(offset, ${s});`),t.pushCode(`offset += ${kn[n]};`)}t.pushCode(`offset = ${i};`)}generateSaveOffset(t){const n=t.generateVariable(this.varName);t.pushCode(`${n} = offset`)}};var yx={},$0={},io={},cl={};Object.defineProperty(cl,"__esModule",{value:!0});function K0(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function wx(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 J0(e,t,n){return t&&wx(e.prototype,t),n&&wx(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function rM(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&&ep(e,t)}function oa(e){return oa=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},oa(e)}function ep(e,t){return ep=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},ep(e,t)}function iM(){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 hl(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function oM(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 hl(e)}function aM(e){var t=iM();return function(){var r=oa(e),i;if(t){var o=oa(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return oM(this,i)}}function sM(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=oa(e),e!==null););return e}function ec(){return typeof Reflect<"u"&&Reflect.get?ec=Reflect.get.bind():ec=function(t,n,r){var i=sM(t,n);if(i){var o=Object.getOwnPropertyDescriptor(i,n);return o.get?o.get.call(arguments.length<3?t:r):o.value}},ec.apply(this,arguments)}var vx=function(){function e(){K0(this,e),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return J0(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(f){Promise.resolve().then(function(){throw f})}s.options&&s.options.once&&this.removeEventListener(n.type,s.callback)}return!n.defaultPrevented}}}]),e}(),tp=function(e){rM(n,e);var t=aM(n);function n(){var r;return K0(this,n),r=t.call(this),r.listeners||vx.call(hl(r)),Object.defineProperty(hl(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(hl(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(hl(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return J0(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)),ec(oa(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(vx),xx=function(){function e(){K0(this,e),Object.defineProperty(this,"signal",{value:new tp,writable:!0,configurable:!0})}return J0(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&&(xx.prototype[Symbol.toStringTag]="AbortController",tp.prototype[Symbol.toStringTag]="AbortSignal");function lM(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 fM(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(!lM({fetch:n,Request:i,AbortController:o,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:s}))return{fetch:n,Request:f};var f=i;(f&&!f.prototype.hasOwnProperty("signal")||s)&&(f=function(h,d){var p;d&&d.signal&&(p=d.signal,delete d.signal);var b=new i(h,d);return p&&Object.defineProperty(b,"signal",{writable:!1,enumerable:!1,configurable:!0,value:p}),b},f.prototype=i.prototype);var l=n,u=function(h,d){var p=f&&f.prototype.isPrototypeOf(h)?h.signal:d?d.signal:void 0;if(p){var b;try{b=new DOMException("Aborted","AbortError")}catch{b=new Error("Aborted"),b.name="AbortError"}if(p.aborted)return Promise.reject(b);var y=new Promise(function(w,_){p.addEventListener("abort",function(){return _(b)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([y,l(h,d)])}return l(h,d)};return{fetch:u,Request:f}}cl.AbortController=xx,cl.AbortSignal=tp,cl.abortableFetch=fM,Object.defineProperty(io,"__esModule",{value:!0}),io.AbortSignal=io.AbortController=void 0;const Ax=cl;var tc=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 uM=typeof tc().AbortController>"u"?Ax.AbortController:tc().AbortController;io.AbortController=uM;let cM=typeof tc().AbortController>"u"?Ax.AbortSignal:tc().AbortSignal;io.AbortSignal=cM;var np={};Object.defineProperty(np,"__esModule",{value:!0});const hM=io;class dM{}class pM{constructor(){this.signals=new Set,this.abortController=new hM.AbortController}addSignal(t=new dM){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()}}np.default=pM;var rp={};Object.defineProperty(rp,"__esModule",{value:!0});class gM{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)})}}rp.default=gM;var Ex=Bu&&Bu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty($0,"__esModule",{value:!0});const mM=io,bM=Ex(np),yM=Ex(rp);class nc{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 bM.default,a=new yM.default;a.addCallback(i);const s={aborter:o,promise:this.fillCallback(n,o.signal,f=>{a.callback(f)}),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(f=>{throw console.error(f),f}),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 mM.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),nc.checkSinglePromise(o.promise,r)):(this.fill(t,n,r,i),nc.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}}$0.default=nc;var wM=Bu&&Bu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(yx,"__esModule",{value:!0});const vM=wM($0);var rc=yx.default=vM.default;class xM{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 AM=xM;const ic=Ws(AM);class Kr{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 Kr(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 Kr(i.min(),a.max()))}return r.push(i),r.length===1?r[0]:new Kr(r)}intersection(t){let n=this,r=t;const i=this.ranges(),o=r.ranges(),a=i.length,s=o.length;let f=0,l=0;const u=[];for(;f<a&&l<s;){n=i[f],r=o[l];const c=Math.max(n.min(),r.min()),h=Math.min(n.max(),r.max());h>=c&&u.push(new Kr(c,h)),n.max()>r.max()?l+=1:f+=1}if(u.length===0)throw new Error("found range of length 0");return u.length===1?u[0]:new Kr(u)}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 EM=4,_x=0,Sx=1,_M=2;function aa(e){let t=e.length;for(;--t>=0;)e[t]=0}const SM=0,Cx=1,CM=2,kM=3,IM=258,ip=29,dl=256,pl=dl+1+ip,sa=30,op=19,kx=2*pl+1,oo=15,ap=16,TM=7,sp=256,Ix=16,Tx=17,Bx=18,lp=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]),oc=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]),BM=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Dx=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),DM=512,ur=new Array((pl+2)*2);aa(ur);const gl=new Array(sa*2);aa(gl);const ml=new Array(DM);aa(ml);const bl=new Array(IM-kM+1);aa(bl);const fp=new Array(ip);aa(fp);const ac=new Array(sa);aa(ac);function up(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 Rx,Fx,Mx;function cp(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const Px=e=>e<256?ml[e]:ml[256+(e>>>7)],yl=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},jt=(e,t,n)=>{e.bi_valid>ap-n?(e.bi_buf|=t<<e.bi_valid&65535,yl(e,e.bi_buf),e.bi_buf=t>>ap-e.bi_valid,e.bi_valid+=n-ap):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},Zn=(e,t,n)=>{jt(e,n[t*2],n[t*2+1])},Lx=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},RM=e=>{e.bi_valid===16?(yl(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)},FM=(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,f=t.stat_desc.max_length;let l,u,c,h,d,p,b=0;for(h=0;h<=oo;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<kx;l++)u=e.heap[l],h=n[n[u*2+1]*2+1]+1,h>f&&(h=f,b++),n[u*2+1]=h,!(u>r)&&(e.bl_count[h]++,d=0,u>=s&&(d=a[u-s]),p=n[u*2],e.opt_len+=p*(h+d),o&&(e.static_len+=p*(i[u*2+1]+d)));if(b!==0){do{for(h=f-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[f]--,b-=2}while(b>0);for(h=f;h!==0;h--)for(u=e.bl_count[h];u!==0;)c=e.heap[--l],!(c>r)&&(n[c*2+1]!==h&&(e.opt_len+=(h-n[c*2+1])*n[c*2],n[c*2+1]=h),u--)}},Nx=(e,t,n)=>{const r=new Array(oo+1);let i=0,o,a;for(o=1;o<=oo;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]=Lx(r[s]++,s))}},MM=()=>{let e,t,n,r,i;const o=new Array(oo+1);for(n=0,r=0;r<ip-1;r++)for(fp[r]=n,e=0;e<1<<lp[r];e++)bl[n++]=r;for(bl[n-1]=r,i=0,r=0;r<16;r++)for(ac[r]=i,e=0;e<1<<oc[r];e++)ml[i++]=r;for(i>>=7;r<sa;r++)for(ac[r]=i<<7,e=0;e<1<<oc[r]-7;e++)ml[256+i++]=r;for(t=0;t<=oo;t++)o[t]=0;for(e=0;e<=143;)ur[e*2+1]=8,e++,o[8]++;for(;e<=255;)ur[e*2+1]=9,e++,o[9]++;for(;e<=279;)ur[e*2+1]=7,e++,o[7]++;for(;e<=287;)ur[e*2+1]=8,e++,o[8]++;for(Nx(ur,pl+1,o),e=0;e<sa;e++)gl[e*2+1]=5,gl[e*2]=Lx(e,5);Rx=new up(ur,lp,dl+1,pl,oo),Fx=new up(gl,oc,0,sa,oo),Mx=new up(new Array(0),BM,0,op,TM)},Ox=e=>{let t;for(t=0;t<pl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<sa;t++)e.dyn_dtree[t*2]=0;for(t=0;t<op;t++)e.bl_tree[t*2]=0;e.dyn_ltree[sp*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},zx=e=>{e.bi_valid>8?yl(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Ux=(e,t,n,r)=>{const i=t*2,o=n*2;return e[i]<e[o]||e[i]===e[o]&&r[t]<=r[n]},hp=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&Ux(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Ux(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},Gx=(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?Zn(e,i,t):(a=bl[i],Zn(e,a+dl+1,t),s=lp[a],s!==0&&(i-=fp[a],jt(e,i,s)),r--,a=Px(r),Zn(e,a,n),s=oc[a],s!==0&&(r-=ac[a],jt(e,r,s)));while(o<e.sym_next);Zn(e,sp,t)},dp=(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,f=-1,l;for(e.heap_len=0,e.heap_max=kx,a=0;a<o;a++)n[a*2]!==0?(e.heap[++e.heap_len]=f=a,e.depth[a]=0):n[a*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=f<2?++f:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=f,a=e.heap_len>>1;a>=1;a--)hp(e,n,a);l=o;do a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],hp(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++,hp(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],FM(e,t),Nx(n,f,e.bl_count)},Hx=(e,t,n)=>{let r,i=-1,o,a=t[0*2+1],s=0,f=7,l=4;for(a===0&&(f=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)o=a,a=t[(r+1)*2+1],!(++s<f&&o===a)&&(s<l?e.bl_tree[o*2]+=s:o!==0?(o!==i&&e.bl_tree[o*2]++,e.bl_tree[Ix*2]++):s<=10?e.bl_tree[Tx*2]++:e.bl_tree[Bx*2]++,s=0,i=o,a===0?(f=138,l=3):o===a?(f=6,l=3):(f=7,l=4))},Vx=(e,t,n)=>{let r,i=-1,o,a=t[0*2+1],s=0,f=7,l=4;for(a===0&&(f=138,l=3),r=0;r<=n;r++)if(o=a,a=t[(r+1)*2+1],!(++s<f&&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,Ix,e.bl_tree),jt(e,s-3,2)):s<=10?(Zn(e,Tx,e.bl_tree),jt(e,s-3,3)):(Zn(e,Bx,e.bl_tree),jt(e,s-11,7));s=0,i=o,a===0?(f=138,l=3):o===a?(f=6,l=3):(f=7,l=4)}},PM=e=>{let t;for(Hx(e,e.dyn_ltree,e.l_desc.max_code),Hx(e,e.dyn_dtree,e.d_desc.max_code),dp(e,e.bl_desc),t=op-1;t>=3&&e.bl_tree[Dx[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},LM=(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[Dx[i]*2+1],3);Vx(e,e.dyn_ltree,t-1),Vx(e,e.dyn_dtree,n-1)},NM=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return _x;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Sx;for(n=32;n<dl;n++)if(e.dyn_ltree[n*2]!==0)return Sx;return _x};let jx=!1;const OM=e=>{jx||(MM(),jx=!0),e.l_desc=new cp(e.dyn_ltree,Rx),e.d_desc=new cp(e.dyn_dtree,Fx),e.bl_desc=new cp(e.bl_tree,Mx),e.bi_buf=0,e.bi_valid=0,Ox(e)},qx=(e,t,n,r)=>{jt(e,(SM<<1)+(r?1:0),3),zx(e),yl(e,n),yl(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},zM=e=>{jt(e,Cx<<1,3),Zn(e,sp,ur),RM(e)},UM=(e,t,n,r)=>{let i,o,a=0;e.level>0?(e.strm.data_type===_M&&(e.strm.data_type=NM(e)),dp(e,e.l_desc),dp(e,e.d_desc),a=PM(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?qx(e,t,n,r):e.strategy===EM||o===i?(jt(e,(Cx<<1)+(r?1:0),3),Gx(e,ur,gl)):(jt(e,(CM<<1)+(r?1:0),3),LM(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),Gx(e,e.dyn_ltree,e.dyn_dtree)),Ox(e),r&&zx(e)},GM=(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[(bl[n]+dl+1)*2]++,e.dyn_dtree[Px(t)*2]++),e.sym_next===e.sym_end);var HM=OM,VM=qx,jM=UM,qM=GM,ZM=zM,WM={_tr_init:HM,_tr_stored_block:VM,_tr_flush_block:jM,_tr_tally:qM,_tr_align:ZM},wl=(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 YM=()=>{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},QM=new Uint32Array(YM());var ht=(e,t,n,r)=>{const i=QM,o=r+n;e^=-1;for(let a=r;a<o;a++)e=e>>>8^i[(e^t[a])&255];return e^-1},la={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"},vl={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:XM,_tr_stored_block:pp,_tr_flush_block:$M,_tr_tally:Jr,_tr_align:KM}=WM,{Z_NO_FLUSH:ei,Z_PARTIAL_FLUSH:JM,Z_FULL_FLUSH:eP,Z_FINISH:un,Z_BLOCK:Zx,Z_OK:bt,Z_STREAM_END:Wx,Z_STREAM_ERROR:Wn,Z_DATA_ERROR:tP,Z_BUF_ERROR:gp,Z_DEFAULT_COMPRESSION:nP,Z_FILTERED:rP,Z_HUFFMAN_ONLY:sc,Z_RLE:iP,Z_FIXED:oP,Z_DEFAULT_STRATEGY:aP,Z_UNKNOWN:sP,Z_DEFLATED:lc}=vl,lP=9,fP=15,uP=8,cP=29,mp=256+1+cP,hP=30,dP=19,pP=2*mp+1,gP=15,de=3,ti=258,Yn=ti+de+1,mP=32,fa=42,bp=57,yp=69,wp=73,vp=91,xp=103,ao=113,xl=666,Dt=1,ua=2,so=3,ca=4,bP=3,lo=(e,t)=>(e.msg=la[t],t),Yx=e=>e*2-(e>4?9:0),ni=e=>{let t=e.length;for(;--t>=0;)e[t]=0},yP=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 ri=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const $t=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))},Kt=(e,t)=>{$M(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,$t(e.strm)},xe=(e,t)=>{e.pending_buf[e.pending++]=t},Al=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},Ap=(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=wl(e.adler,t,i,n):e.state.wrap===2&&(e.adler=ht(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},Qx=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,o,a=e.prev_length,s=e.nice_match;const f=e.strstart>e.w_size-Yn?e.strstart-(e.w_size-Yn):0,l=e.window,u=e.w_mask,c=e.prev,h=e.strstart+ti;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=ti-(h-r),r=h-ti,o>a){if(e.match_start=t,a=o,o>=s)break;d=l[r+a-1],p=l[r+a]}}while((t=c[t&u])>f&&--n!==0);return a<=e.lookahead?a:e.lookahead},ha=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Yn)&&(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),yP(e),r+=t),e.strm.avail_in===0)break;if(n=Ap(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=de)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=ri(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=ri(e,e.ins_h,e.window[i+de-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<de)););}while(e.lookahead<Yn&&e.strm.avail_in!==0)},Xx=(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!==un||t===ei||r!==i+e.strm.avail_in)))break;a=t===un&&r===i+e.strm.avail_in?1:0,pp(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,$t(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&&(Ap(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?ca:t!==ei&&t!==un&&e.strm.avail_in===0&&e.strstart===e.block_start?ua:(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&&(Ap(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===un)&&t!==ei&&e.strm.avail_in===0&&i<=o)&&(r=i>o?o:i,a=t===un&&e.strm.avail_in===0&&r===i?1:0,pp(e,e.block_start,r,a),e.block_start+=r,$t(e.strm)),a?so:Dt)},Ep=(e,t)=>{let n,r;for(;;){if(e.lookahead<Yn){if(ha(e),e.lookahead<Yn&&t===ei)return Dt;if(e.lookahead===0)break}if(n=0,e.lookahead>=de&&(e.ins_h=ri(e,e.ins_h,e.window[e.strstart+de-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-Yn&&(e.match_length=Qx(e,n)),e.match_length>=de)if(r=Jr(e,e.strstart-e.match_start,e.match_length-de),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=de){e.match_length--;do e.strstart++,e.ins_h=ri(e,e.ins_h,e.window[e.strstart+de-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=ri(e,e.ins_h,e.window[e.strstart+1]);else r=Jr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(Kt(e,!1),e.strm.avail_out===0))return Dt}return e.insert=e.strstart<de-1?e.strstart:de-1,t===un?(Kt(e,!0),e.strm.avail_out===0?so:ca):e.sym_next&&(Kt(e,!1),e.strm.avail_out===0)?Dt:ua},da=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<Yn){if(ha(e),e.lookahead<Yn&&t===ei)return Dt;if(e.lookahead===0)break}if(n=0,e.lookahead>=de&&(e.ins_h=ri(e,e.ins_h,e.window[e.strstart+de-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=de-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Yn&&(e.match_length=Qx(e,n),e.match_length<=5&&(e.strategy===rP||e.match_length===de&&e.strstart-e.match_start>4096)&&(e.match_length=de-1)),e.prev_length>=de&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-de,r=Jr(e,e.strstart-1-e.prev_match,e.prev_length-de),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=ri(e,e.ins_h,e.window[e.strstart+de-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=de-1,e.strstart++,r&&(Kt(e,!1),e.strm.avail_out===0))return Dt}else if(e.match_available){if(r=Jr(e,0,e.window[e.strstart-1]),r&&Kt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Dt}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=Jr(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<de-1?e.strstart:de-1,t===un?(Kt(e,!0),e.strm.avail_out===0?so:ca):e.sym_next&&(Kt(e,!1),e.strm.avail_out===0)?Dt:ua},wP=(e,t)=>{let n,r,i,o;const a=e.window;for(;;){if(e.lookahead<=ti){if(ha(e),e.lookahead<=ti&&t===ei)return Dt;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=de&&e.strstart>0&&(i=e.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){o=e.strstart+ti;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=ti-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=de?(n=Jr(e,1,e.match_length-de),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Jr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(Kt(e,!1),e.strm.avail_out===0))return Dt}return e.insert=0,t===un?(Kt(e,!0),e.strm.avail_out===0?so:ca):e.sym_next&&(Kt(e,!1),e.strm.avail_out===0)?Dt:ua},vP=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(ha(e),e.lookahead===0)){if(t===ei)return Dt;break}if(e.match_length=0,n=Jr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(Kt(e,!1),e.strm.avail_out===0))return Dt}return e.insert=0,t===un?(Kt(e,!0),e.strm.avail_out===0?so:ca):e.sym_next&&(Kt(e,!1),e.strm.avail_out===0)?Dt:ua};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}const El=[new Qn(0,0,0,0,Xx),new Qn(4,4,8,4,Ep),new Qn(4,5,16,8,Ep),new Qn(4,6,32,32,Ep),new Qn(4,4,16,16,da),new Qn(8,16,32,32,da),new Qn(8,16,128,128,da),new Qn(8,32,128,256,da),new Qn(32,128,258,1024,da),new Qn(32,258,258,4096,da)],xP=e=>{e.window_size=2*e.w_size,ni(e.head),e.max_lazy_match=El[e.level].max_lazy,e.good_match=El[e.level].good_length,e.nice_match=El[e.level].nice_length,e.max_chain_length=El[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=de-1,e.match_available=0,e.ins_h=0};function AP(){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=lc,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(pP*2),this.dyn_dtree=new Uint16Array((2*hP+1)*2),this.bl_tree=new Uint16Array((2*dP+1)*2),ni(this.dyn_ltree),ni(this.dyn_dtree),ni(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(gP+1),this.heap=new Uint16Array(2*mp+1),ni(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*mp+1),ni(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 _l=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==fa&&t.status!==bp&&t.status!==yp&&t.status!==wp&&t.status!==vp&&t.status!==xp&&t.status!==ao&&t.status!==xl?1:0},$x=e=>{if(_l(e))return lo(e,Wn);e.total_in=e.total_out=0,e.data_type=sP;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?bp:t.wrap?fa:ao,e.adler=t.wrap===2?0:1,t.last_flush=-2,XM(t),bt},Kx=e=>{const t=$x(e);return t===bt&&xP(e.state),t},EP=(e,t)=>_l(e)||e.state.wrap!==2?Wn:(e.state.gzhead=t,bt),Jx=(e,t,n,r,i,o)=>{if(!e)return Wn;let a=1;if(t===nP&&(t=6),r<0?(a=0,r=-r):r>15&&(a=2,r-=16),i<1||i>lP||n!==lc||r<8||r>15||t<0||t>9||o<0||o>oP||r===8&&a!==1)return lo(e,Wn);r===8&&(r=9);const s=new AP;return e.state=s,s.strm=e,s.status=fa,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+de-1)/de),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,Kx(e)},_P=(e,t)=>Jx(e,t,lc,fP,uP,aP),SP=(e,t)=>{if(_l(e)||t>Zx||t<0)return e?lo(e,Wn):Wn;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===xl&&t!==un)return lo(e,e.avail_out===0?gp:Wn);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if($t(e),e.avail_out===0)return n.last_flush=-1,bt}else if(e.avail_in===0&&Yx(t)<=Yx(r)&&t!==un)return lo(e,gp);if(n.status===xl&&e.avail_in!==0)return lo(e,gp);if(n.status===fa&&n.wrap===0&&(n.status=ao),n.status===fa){let i=lc+(n.w_bits-8<<4)<<8,o=-1;if(n.strategy>=sc||n.level<2?o=0:n.level<6?o=1:n.level===6?o=2:o=3,i|=o<<6,n.strstart!==0&&(i|=mP),i+=31-i%31,Al(n,i),n.strstart!==0&&(Al(n,e.adler>>>16),Al(n,e.adler&65535)),e.adler=1,n.status=ao,$t(e),n.pending!==0)return n.last_flush=-1,bt}if(n.status===bp){if(e.adler=0,xe(n,31),xe(n,139),xe(n,8),n.gzhead)xe(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)),xe(n,n.gzhead.time&255),xe(n,n.gzhead.time>>8&255),xe(n,n.gzhead.time>>16&255),xe(n,n.gzhead.time>>24&255),xe(n,n.level===9?2:n.strategy>=sc||n.level<2?4:0),xe(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(xe(n,n.gzhead.extra.length&255),xe(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=ht(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=yp;else if(xe(n,0),xe(n,0),xe(n,0),xe(n,0),xe(n,0),xe(n,n.level===9?2:n.strategy>=sc||n.level<2?4:0),xe(n,bP),n.status=ao,$t(e),n.pending!==0)return n.last_flush=-1,bt}if(n.status===yp){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=ht(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,$t(e),n.pending!==0)return n.last_flush=-1,bt;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=ht(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=wp}if(n.status===wp){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=ht(e.adler,n.pending_buf,n.pending-i,i)),$t(e),n.pending!==0)return n.last_flush=-1,bt;i=0}n.gzindex<n.gzhead.name.length?o=n.gzhead.name.charCodeAt(n.gzindex++)&255:o=0,xe(n,o)}while(o!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=vp}if(n.status===vp){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=ht(e.adler,n.pending_buf,n.pending-i,i)),$t(e),n.pending!==0)return n.last_flush=-1,bt;i=0}n.gzindex<n.gzhead.comment.length?o=n.gzhead.comment.charCodeAt(n.gzindex++)&255:o=0,xe(n,o)}while(o!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=ht(e.adler,n.pending_buf,n.pending-i,i))}n.status=xp}if(n.status===xp){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&($t(e),n.pending!==0))return n.last_flush=-1,bt;xe(n,e.adler&255),xe(n,e.adler>>8&255),e.adler=0}if(n.status=ao,$t(e),n.pending!==0)return n.last_flush=-1,bt}if(e.avail_in!==0||n.lookahead!==0||t!==ei&&n.status!==xl){let i=n.level===0?Xx(n,t):n.strategy===sc?vP(n,t):n.strategy===iP?wP(n,t):El[n.level].func(n,t);if((i===so||i===ca)&&(n.status=xl),i===Dt||i===so)return e.avail_out===0&&(n.last_flush=-1),bt;if(i===ua&&(t===JM?KM(n):t!==Zx&&(pp(n,0,0,!1),t===eP&&(ni(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),$t(e),e.avail_out===0))return n.last_flush=-1,bt}return t!==un?bt:n.wrap<=0?Wx:(n.wrap===2?(xe(n,e.adler&255),xe(n,e.adler>>8&255),xe(n,e.adler>>16&255),xe(n,e.adler>>24&255),xe(n,e.total_in&255),xe(n,e.total_in>>8&255),xe(n,e.total_in>>16&255),xe(n,e.total_in>>24&255)):(Al(n,e.adler>>>16),Al(n,e.adler&65535)),$t(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?bt:Wx)},CP=e=>{if(_l(e))return Wn;const t=e.state.status;return e.state=null,t===ao?lo(e,tP):bt},kP=(e,t)=>{let n=t.length;if(_l(e))return Wn;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==fa||r.lookahead)return Wn;if(i===1&&(e.adler=wl(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(ni(r.head),r.strstart=0,r.block_start=0,r.insert=0);let f=new Uint8Array(r.w_size);f.set(t.subarray(n-r.w_size,n),0),t=f,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,ha(r);r.lookahead>=de;){let f=r.strstart,l=r.lookahead-(de-1);do r.ins_h=ri(r,r.ins_h,r.window[f+de-1]),r.prev[f&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=f,f++;while(--l);r.strstart=f,r.lookahead=de-1,ha(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=de-1,r.match_available=0,e.next_in=a,e.input=s,e.avail_in=o,r.wrap=i,bt};var IP=_P,TP=Jx,BP=Kx,DP=$x,RP=EP,FP=SP,MP=CP,PP=kP,LP="pako deflate (from Nodeca project)",Sl={deflateInit:IP,deflateInit2:TP,deflateReset:BP,deflateResetKeep:DP,deflateSetHeader:RP,deflate:FP,deflateEnd:MP,deflateSetDictionary:PP,deflateInfo:LP};const NP=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var OP=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)NP(n,r)&&(e[r]=n[r])}}return e},zP=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},fc={assign:OP,flattenChunks:zP};let eA=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{eA=!1}const Cl=new Uint8Array(256);for(let e=0;e<256;e++)Cl[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Cl[254]=Cl[254]=1;var UP=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 GP=(e,t)=>{if(t<65534&&e.subarray&&eA)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 HP=(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=Cl[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 GP(o,i)},VP=(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+Cl[e[n]]>t?n:t},kl={string2buf:UP,buf2string:HP,utf8border:VP};function jP(){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 tA=jP;const nA=Object.prototype.toString,{Z_NO_FLUSH:qP,Z_SYNC_FLUSH:ZP,Z_FULL_FLUSH:WP,Z_FINISH:YP,Z_OK:uc,Z_STREAM_END:QP,Z_DEFAULT_COMPRESSION:XP,Z_DEFAULT_STRATEGY:$P,Z_DEFLATED:KP}=vl;function _p(e){this.options=fc.assign({level:XP,method:KP,chunkSize:16384,windowBits:15,memLevel:8,strategy:$P},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 tA,this.strm.avail_out=0;let n=Sl.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==uc)throw new Error(la[n]);if(t.header&&Sl.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=kl.string2buf(t.dictionary):nA.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=Sl.deflateSetDictionary(this.strm,r),n!==uc)throw new Error(la[n]);this._dict_set=!0}}_p.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?YP:qP,typeof e=="string"?n.input=kl.string2buf(e):nA.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===ZP||o===WP)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=Sl.deflate(n,o),i===QP)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=Sl.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===uc;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},_p.prototype.onData=function(e){this.chunks.push(e)},_p.prototype.onEnd=function(e){e===uc&&(this.result=fc.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const cc=16209,JP=16191;var eL=function(t,n){let r,i,o,a,s,f,l,u,c,h,d,p,b,y,w,_,C,S,T,B,I,F,P,j;const O=t.state;r=t.next_in,P=t.input,i=r+(t.avail_in-5),o=t.next_out,j=t.output,a=o-(n-t.avail_out),s=o+(t.avail_out-257),f=O.dmax,l=O.wsize,u=O.whave,c=O.wnext,h=O.window,d=O.hold,p=O.bits,b=O.lencode,y=O.distcode,w=(1<<O.lenbits)-1,_=(1<<O.distbits)-1;e:do{p<15&&(d+=P[r++]<<p,p+=8,d+=P[r++]<<p,p+=8),C=b[d&w];t:for(;;){if(S=C>>>24,d>>>=S,p-=S,S=C>>>16&255,S===0)j[o++]=C&65535;else if(S&16){T=C&65535,S&=15,S&&(p<S&&(d+=P[r++]<<p,p+=8),T+=d&(1<<S)-1,d>>>=S,p-=S),p<15&&(d+=P[r++]<<p,p+=8,d+=P[r++]<<p,p+=8),C=y[d&_];n:for(;;){if(S=C>>>24,d>>>=S,p-=S,S=C>>>16&255,S&16){if(B=C&65535,S&=15,p<S&&(d+=P[r++]<<p,p+=8,p<S&&(d+=P[r++]<<p,p+=8)),B+=d&(1<<S)-1,B>f){t.msg="invalid distance too far back",O.mode=cc;break e}if(d>>>=S,p-=S,S=o-a,B>S){if(S=B-S,S>u&&O.sane){t.msg="invalid distance too far back",O.mode=cc;break e}if(I=0,F=h,c===0){if(I+=l-S,S<T){T-=S;do j[o++]=h[I++];while(--S);I=o-B,F=j}}else if(c<S){if(I+=l+c-S,S-=c,S<T){T-=S;do j[o++]=h[I++];while(--S);if(I=0,c<T){S=c,T-=S;do j[o++]=h[I++];while(--S);I=o-B,F=j}}}else if(I+=c-S,S<T){T-=S;do j[o++]=h[I++];while(--S);I=o-B,F=j}for(;T>2;)j[o++]=F[I++],j[o++]=F[I++],j[o++]=F[I++],T-=3;T&&(j[o++]=F[I++],T>1&&(j[o++]=F[I++]))}else{I=o-B;do j[o++]=j[I++],j[o++]=j[I++],j[o++]=j[I++],T-=3;while(T>2);T&&(j[o++]=j[I++],T>1&&(j[o++]=j[I++]))}}else if(S&64){t.msg="invalid distance code",O.mode=cc;break e}else{C=y[(C&65535)+(d&(1<<S)-1)];continue n}break}}else if(S&64)if(S&32){O.mode=JP;break e}else{t.msg="invalid literal/length code",O.mode=cc;break e}else{C=b[(C&65535)+(d&(1<<S)-1)];continue t}break}}while(r<i&&o<s);T=p>>3,r-=T,p-=T<<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),O.hold=d,O.bits=p};const pa=15,rA=852,iA=592,oA=0,Sp=1,aA=2,tL=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]),nL=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]),rL=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]),iL=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 Il=(e,t,n,r,i,o,a,s)=>{const f=s.bits;let l=0,u=0,c=0,h=0,d=0,p=0,b=0,y=0,w=0,_=0,C,S,T,B,I,F=null,P;const j=new Uint16Array(pa+1),O=new Uint16Array(pa+1);let re=null,ae,pe,Te;for(l=0;l<=pa;l++)j[l]=0;for(u=0;u<r;u++)j[t[n+u]]++;for(d=f,h=pa;h>=1&&j[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(c=1;c<h&&j[c]===0;c++);for(d<c&&(d=c),y=1,l=1;l<=pa;l++)if(y<<=1,y-=j[l],y<0)return-1;if(y>0&&(e===oA||h!==1))return-1;for(O[1]=0,l=1;l<pa;l++)O[l+1]=O[l]+j[l];for(u=0;u<r;u++)t[n+u]!==0&&(a[O[t[n+u]]++]=u);if(e===oA?(F=re=a,P=20):e===Sp?(F=tL,re=nL,P=257):(F=rL,re=iL,P=0),_=0,u=0,l=c,I=o,p=d,b=0,T=-1,w=1<<d,B=w-1,e===Sp&&w>rA||e===aA&&w>iA)return 1;for(;;){ae=l-b,a[u]+1<P?(pe=0,Te=a[u]):a[u]>=P?(pe=re[a[u]-P],Te=F[a[u]-P]):(pe=32+64,Te=0),C=1<<l-b,S=1<<p,c=S;do S-=C,i[I+(_>>b)+S]=ae<<24|pe<<16|Te|0;while(S!==0);for(C=1<<l-1;_&C;)C>>=1;if(C!==0?(_&=C-1,_+=C):_=0,u++,--j[l]===0){if(l===h)break;l=t[n+a[u]]}if(l>d&&(_&B)!==T){for(b===0&&(b=d),I+=c,p=l-b,y=1<<p;p+b<h&&(y-=j[p+b],!(y<=0));)p++,y<<=1;if(w+=1<<p,e===Sp&&w>rA||e===aA&&w>iA)return 1;T=_&B,i[T]=d<<24|p<<16|I-o|0}}return _!==0&&(i[I+_]=l-b<<24|64<<16|0),s.bits=d,0};const oL=0,sA=1,lA=2,{Z_FINISH:fA,Z_BLOCK:aL,Z_TREES:hc,Z_OK:fo,Z_STREAM_END:sL,Z_NEED_DICT:lL,Z_STREAM_ERROR:cn,Z_DATA_ERROR:uA,Z_MEM_ERROR:cA,Z_BUF_ERROR:fL,Z_DEFLATED:hA}=vl,dc=16180,dA=16181,pA=16182,gA=16183,mA=16184,bA=16185,yA=16186,wA=16187,vA=16188,xA=16189,pc=16190,cr=16191,Cp=16192,AA=16193,kp=16194,EA=16195,_A=16196,SA=16197,CA=16198,gc=16199,mc=16200,kA=16201,IA=16202,TA=16203,BA=16204,DA=16205,Ip=16206,RA=16207,FA=16208,qe=16209,MA=16210,PA=16211,uL=852,cL=592,hL=15,LA=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function dL(){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 uo=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<dc||t.mode>PA?1:0},NA=e=>{if(uo(e))return cn;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=dc,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(uL),t.distcode=t.distdyn=new Int32Array(cL),t.sane=1,t.back=-1,fo},OA=e=>{if(uo(e))return cn;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,NA(e)},zA=(e,t)=>{let n;if(uo(e))return cn;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,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,OA(e))},UA=(e,t)=>{if(!e)return cn;const n=new dL;e.state=n,n.strm=e,n.window=null,n.mode=dc;const r=zA(e,t);return r!==fo&&(e.state=null),r},pL=e=>UA(e,hL);let GA=!0,Tp,Bp;const gL=e=>{if(GA){Tp=new Int32Array(512),Bp=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(Il(sA,e.lens,0,288,Tp,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Il(lA,e.lens,0,32,Bp,0,e.work,{bits:5}),GA=!1}e.lencode=Tp,e.lenbits=9,e.distcode=Bp,e.distbits=5},HA=(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},mL=(e,t)=>{let n,r,i,o,a,s,f,l,u,c,h,d,p,b,y=0,w,_,C,S,T,B,I,F;const P=new Uint8Array(4);let j,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(uo(e)||!e.output||!e.input&&e.avail_in!==0)return cn;n=e.state,n.mode===cr&&(n.mode=Cp),a=e.next_out,i=e.output,f=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,l=n.hold,u=n.bits,c=s,h=f,F=fo;e:for(;;)switch(n.mode){case dc:if(n.wrap===0){n.mode=Cp;break}for(;u<16;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if(n.wrap&2&&l===35615){n.wbits===0&&(n.wbits=15),n.check=0,P[0]=l&255,P[1]=l>>>8&255,n.check=ht(n.check,P,2,0),l=0,u=0,n.mode=dA;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)!==hA){e.msg="unknown compression method",n.mode=qe;break}if(l>>>=4,u-=4,I=(l&15)+8,n.wbits===0&&(n.wbits=I),I>15||I>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?xA:cr,l=0,u=0;break;case dA:for(;u<16;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if(n.flags=l,(n.flags&255)!==hA){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&&(P[0]=l&255,P[1]=l>>>8&255,n.check=ht(n.check,P,2,0)),l=0,u=0,n.mode=pA;case pA:for(;u<32;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}n.head&&(n.head.time=l),n.flags&512&&n.wrap&4&&(P[0]=l&255,P[1]=l>>>8&255,P[2]=l>>>16&255,P[3]=l>>>24&255,n.check=ht(n.check,P,4,0)),l=0,u=0,n.mode=gA;case gA:for(;u<16;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&n.wrap&4&&(P[0]=l&255,P[1]=l>>>8&255,n.check=ht(n.check,P,2,0)),l=0,u=0,n.mode=mA;case mA:if(n.flags&1024){for(;u<16;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&n.wrap&4&&(P[0]=l&255,P[1]=l>>>8&255,n.check=ht(n.check,P,2,0)),l=0,u=0}else n.head&&(n.head.extra=null);n.mode=bA;case bA: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=ht(n.check,r,d,o)),s-=d,o+=d,n.length-=d),n.length))break e;n.length=0,n.mode=yA;case yA: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=ht(n.check,r,d,o)),s-=d,o+=d,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=wA;case wA: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=ht(n.check,r,d,o)),s-=d,o+=d,I)break e}else n.head&&(n.head.comment=null);n.mode=vA;case vA:if(n.flags&512){for(;u<16;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if(n.wrap&4&&l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=qe;break}l=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=cr;break;case xA:for(;u<32;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}e.adler=n.check=LA(l),l=0,u=0,n.mode=pc;case pc:if(n.havedict===0)return e.next_out=a,e.avail_out=f,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=u,lL;e.adler=n.check=1,n.mode=cr;case cr:if(t===aL||t===hc)break e;case Cp:if(n.last){l>>>=u&7,u-=u&7,n.mode=Ip;break}for(;u<3;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}switch(n.last=l&1,l>>>=1,u-=1,l&3){case 0:n.mode=AA;break;case 1:if(gL(n),n.mode=gc,t===hc){l>>>=2,u-=2;break e}break;case 2:n.mode=_A;break;case 3:e.msg="invalid block type",n.mode=qe}l>>>=2,u-=2;break;case AA:for(l>>>=u&7,u-=u&7;u<32;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=qe;break}if(n.length=l&65535,l=0,u=0,n.mode=kp,t===hc)break e;case kp:n.mode=EA;case EA:if(d=n.length,d){if(d>s&&(d=s),d>f&&(d=f),d===0)break e;i.set(r.subarray(o,o+d),a),s-=d,o+=d,f-=d,a+=d,n.length-=d;break}n.mode=cr;break;case _A:for(;u<14;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if(n.nlen=(l&31)+257,l>>>=5,u-=5,n.ndist=(l&31)+1,l>>>=5,u-=5,n.ncode=(l&15)+4,l>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=qe;break}n.have=0,n.mode=SA;case SA:for(;n.have<n.ncode;){for(;u<3;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}n.lens[re[n.have++]]=l&7,l>>>=3,u-=3}for(;n.have<19;)n.lens[re[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,j={bits:n.lenbits},F=Il(oL,n.lens,0,19,n.lencode,0,n.work,j),n.lenbits=j.bits,F){e.msg="invalid code lengths set",n.mode=qe;break}n.have=0,n.mode=CA;case CA:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=u);){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if(C<16)l>>>=w,u-=w,n.lens[n.have++]=C;else{if(C===16){for(O=w+2;u<O;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if(l>>>=w,u-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=qe;break}I=n.lens[n.have-1],d=3+(l&3),l>>>=2,u-=2}else if(C===17){for(O=w+3;u<O;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}l>>>=w,u-=w,I=0,d=3+(l&7),l>>>=3,u-=3}else{for(O=w+7;u<O;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}l>>>=w,u-=w,I=0,d=11+(l&127),l>>>=7,u-=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++]=I}}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,j={bits:n.lenbits},F=Il(sA,n.lens,0,n.nlen,n.lencode,0,n.work,j),n.lenbits=j.bits,F){e.msg="invalid literal/lengths set",n.mode=qe;break}if(n.distbits=6,n.distcode=n.distdyn,j={bits:n.distbits},F=Il(lA,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,j),n.distbits=j.bits,F){e.msg="invalid distances set",n.mode=qe;break}if(n.mode=gc,t===hc)break e;case gc:n.mode=mc;case mc:if(s>=6&&f>=258){e.next_out=a,e.avail_out=f,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=u,eL(e,h),a=e.next_out,i=e.output,f=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,l=n.hold,u=n.bits,n.mode===cr&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=u);){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if(_&&!(_&240)){for(S=w,T=_,B=C;y=n.lencode[B+((l&(1<<S+T)-1)>>S)],w=y>>>24,_=y>>>16&255,C=y&65535,!(S+w<=u);){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}l>>>=S,u-=S,n.back+=S}if(l>>>=w,u-=w,n.back+=w,n.length=C,_===0){n.mode=DA;break}if(_&32){n.back=-1,n.mode=cr;break}if(_&64){e.msg="invalid literal/length code",n.mode=qe;break}n.extra=_&15,n.mode=kA;case kA:if(n.extra){for(O=n.extra;u<O;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=IA;case IA:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=u);){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if(!(_&240)){for(S=w,T=_,B=C;y=n.distcode[B+((l&(1<<S+T)-1)>>S)],w=y>>>24,_=y>>>16&255,C=y&65535,!(S+w<=u);){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}l>>>=S,u-=S,n.back+=S}if(l>>>=w,u-=w,n.back+=w,_&64){e.msg="invalid distance code",n.mode=qe;break}n.offset=C,n.extra=_&15,n.mode=TA;case TA:if(n.extra){for(O=n.extra;u<O;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=qe;break}n.mode=BA;case BA:if(f===0)break e;if(d=h-f,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),b=n.window}else b=i,p=a-n.offset,d=n.length;d>f&&(d=f),f-=d,n.length-=d;do i[a++]=b[p++];while(--d);n.length===0&&(n.mode=mc);break;case DA:if(f===0)break e;i[a++]=n.length,f--,n.mode=mc;break;case Ip:if(n.wrap){for(;u<32;){if(s===0)break e;s--,l|=r[o++]<<u,u+=8}if(h-=f,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?ht(n.check,i,h,a-h):wl(n.check,i,h,a-h)),h=f,n.wrap&4&&(n.flags?l:LA(l))!==n.check){e.msg="incorrect data check",n.mode=qe;break}l=0,u=0}n.mode=RA;case RA:if(n.wrap&&n.flags){for(;u<32;){if(s===0)break e;s--,l+=r[o++]<<u,u+=8}if(n.wrap&4&&l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=qe;break}l=0,u=0}n.mode=FA;case FA:F=sL;break e;case qe:F=uA;break e;case MA:return cA;case PA:default:return cn}return e.next_out=a,e.avail_out=f,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=u,(n.wsize||h!==e.avail_out&&n.mode<qe&&(n.mode<Ip||t!==fA))&&HA(e,e.output,e.next_out,h-e.avail_out),c-=e.avail_in,h-=e.avail_out,e.total_in+=c,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?ht(n.check,i,h,e.next_out-h):wl(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===cr?128:0)+(n.mode===gc||n.mode===kp?256:0),(c===0&&h===0||t===fA)&&F===fo&&(F=fL),F},bL=e=>{if(uo(e))return cn;let t=e.state;return t.window&&(t.window=null),e.state=null,fo},yL=(e,t)=>{if(uo(e))return cn;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,fo):cn},wL=(e,t)=>{const n=t.length;let r,i,o;return uo(e)||(r=e.state,r.wrap!==0&&r.mode!==pc)?cn:r.mode===pc&&(i=1,i=wl(i,t,n,0),i!==r.check)?uA:(o=HA(e,t,n,n),o?(r.mode=MA,cA):(r.havedict=1,fo))};var vL=OA,xL=zA,AL=NA,EL=pL,_L=UA,SL=mL,CL=bL,kL=yL,IL=wL,TL="pako inflate (from Nodeca project)",hr={inflateReset:vL,inflateReset2:xL,inflateResetKeep:AL,inflateInit:EL,inflateInit2:_L,inflate:SL,inflateEnd:CL,inflateGetHeader:kL,inflateSetDictionary:IL,inflateInfo:TL};function BL(){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 DL=BL;const VA=Object.prototype.toString,{Z_NO_FLUSH:RL,Z_FINISH:FL,Z_OK:Tl,Z_STREAM_END:Dp,Z_NEED_DICT:Rp,Z_STREAM_ERROR:ML,Z_DATA_ERROR:jA,Z_MEM_ERROR:PL}=vl;function Bl(e){this.options=fc.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 tA,this.strm.avail_out=0;let n=hr.inflateInit2(this.strm,t.windowBits);if(n!==Tl)throw new Error(la[n]);if(this.header=new DL,hr.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=kl.string2buf(t.dictionary):VA.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=hr.inflateSetDictionary(this.strm,t.dictionary),n!==Tl)))throw new Error(la[n])}Bl.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?FL:RL,VA.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=hr.inflate(n,a),o===Rp&&i&&(o=hr.inflateSetDictionary(n,i),o===Tl?o=hr.inflate(n,a):o===jA&&(o=Rp));n.avail_in>0&&o===Dp&&n.state.wrap>0&&e[n.next_in]!==0;)hr.inflateReset(n),o=hr.inflate(n,a);switch(o){case ML:case jA:case Rp:case PL:return this.onEnd(o),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||o===Dp))if(this.options.to==="string"){let f=kl.utf8border(n.output,n.next_out),l=n.next_out-f,u=kl.buf2string(n.output,f);n.next_out=l,n.avail_out=r-l,l&&n.output.set(n.output.subarray(f,f+l),0),this.onData(u)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(o===Tl&&s===0)){if(o===Dp)return o=hr.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},Bl.prototype.onData=function(e){this.chunks.push(e)},Bl.prototype.onEnd=function(e){e===Tl&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=fc.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Fp(e,t){const n=new Bl(t);if(n.push(e),n.err)throw n.msg||la[n.err];return n.result}function LL(e,t){return t=t||{},t.raw=!0,Fp(e,t)}var NL=Bl,OL=Fp,zL=LL,UL=Fp,GL=vl,HL={Inflate:NL,inflate:OL,inflateRaw:zL,ungzip:UL,constants:GL};const{Inflate:Pz,inflate:Lz,inflateRaw:VL,ungzip:Nz}=HL;var jL=VL;function qL(e){return jL(e.subarray(2))}let ZL=class extends Error{constructor(t){super(t),this.code="ERR_ABORTED"}};function WL(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 bc(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new ZL("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}const YL=1,QL=2,XL=3;function Mp(e,t,n,r){return e<r&&t>=n}function $L(e){const t=e?"big":"little",n=new Ie().endianess(t).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new Ie().endianess(t).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new Ie().endianess(t).array("blocksToFetch",{length:"cnt",type:new Ie().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new Ie().array("recurOffsets",{length:"cnt",type:new Ie().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new Ie().endianess(t).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new Ie().endianess(t).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[XL]:new Ie().array("items",{length:"itemCount",type:new Ie().floatle("score")}),[QL]:new Ie().array("items",{length:"itemCount",type:new Ie().endianess(t).int32("start").floatle("score")}),[YL]:new Ie().array("items",{length:"itemCount",type:new Ie().endianess(t).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class qA{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 rc({cache:new ic({maxSize:1e3}),fill:async(f,l)=>{const u=Number(f.length),c=Number(f.offset),{buffer:h}=await this.bbi.read(ye.Buffer.alloc(u),0,u,c,{signal:l});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const s=$L(i);this.leafParser=s.leafParser,this.bigBedParser=s.bigBedParser}async readWigData(t,n,r,i,o){try{const{refsByName:a,bbi:s,cirTreeOffset:f,isBigEndian:l}=this,u=a[t];u===void 0&&i.complete();const c={chrId:u,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=s.read(ye.Buffer.alloc(48),0,48,Number(f),o));const{buffer:h}=await this.cirTreePromise,d=l?h.readUInt32BE(4):h.readUInt32LE(4);let p=[],b=0;const y=(S,T,B)=>{try{const I=S.subarray(T),F=this.leafParser.parse(I);if(F.blocksToFetch&&(p=p.concat(F.blocksToFetch.filter(P=>w(P)).map(P=>({offset:P.blockOffset,length:P.blockSize})))),F.recurOffsets){const P=F.recurOffsets.filter(j=>w(j)).map(j=>Number(j.blockOffset));P.length>0&&C(P,B+1)}}catch(I){i.error(I)}},w=S=>{const{startChrom:T,startBase:B,endChrom:I,endBase:F}=S;return(T<u||T===u&&B<=r)&&(I>u||I===u&&F>=n)},_=async(S,T,B)=>{try{const I=T.max()-T.min(),F=T.min(),P=await this.featureCache.get(`${I}_${F}`,{length:I,offset:F},o==null?void 0:o.signal);for(const j of S)T.contains(j)&&(y(P,j-F,B),b-=1,b===0&&this.readFeatures(i,p,{...o,request:c}))}catch(I){i.error(I)}},C=(S,T)=>{try{b+=S.length;const B=4+Number(d)*32;let I=new Kr(S[0],S[0]+B);for(let F=1;F<S.length;F+=1){const P=new Kr(S[F],S[F]+B);I=I.union(P)}I.getRanges().map(F=>_(S,F,T))}catch(B){i.error(B)}};return C([Number(f)+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 f=a.getUint32(o,!0);o+=4;const l=a.getUint32(o,!0);o+=4;const u=a.getUint32(o,!0);o+=4;const c=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&&Mp(f,l,r.start,r.end))&&i.push({start:f,end:l,maxScore:h,minScore:c,summary:!0,score:d/(u||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));o.push({...s,uniqueId:`bb-${r+a}`}),a+=s.offset}return i?o.filter(s=>Mp(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 f=o.getUint32(a,!0);a+=4;const l=o.getUint32(a,!0);a+=4;const u=o.getUint8(a);a+=2;const c=o.getUint16(a,!0);a+=2;const h=new Array(c);switch(u){case 1:{for(let d=0;d<c;d++){const p=o.getInt32(a,!0);a+=4;const b=o.getInt32(a,!0);a+=4;const y=o.getFloat32(a,!0);a+=4,h[d]={start:p,end:b,score:y}}break}case 2:{for(let d=0;d<c;d++){const p=o.getInt32(a,!0);a+=4;const b=o.getFloat32(a,!0);a+=4,h[d]={score:b,start:p,end:p+l}}break}case 3:{for(let d=0;d<c;d++){const p=o.getFloat32(a,!0);a+=4;const b=s+d*f;h[d]={score:p,start:b,end:b+l}}break}}return r?h.filter(d=>Mp(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,f=WL(n);bc(a),await Promise.all(f.map(async l=>{bc(a);const{length:u,offset:c}=l,h=await this.featureCache.get(`${u}_${c}`,l,a);for(const d of l.blocks){bc(a);let p=Number(d.offset)-Number(l.offset),b=h;switch(o&&(b=qL(h.subarray(p)),p=0),bc(a),i){case"summary":{t.next(this.parseSummaryBlock(b,p,s));break}case"bigwig":{t.next(this.parseBigWigBlock(b,p,s));break}case"bigbed":{t.next(this.parseBigBedBlock(b,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 Pp=function(e,t){return Pp=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])},Pp(e,t)};function Lp(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Pp(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function KL(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(u){try{l(r.next(u))}catch(c){a(c)}}function f(u){try{l(r.throw(u))}catch(c){a(c)}}function l(u){u.done?o(u.value):i(u.value).then(s,f)}l((r=r.apply(e,t||[])).next())})}function ZA(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(u){return f([l,u])}}function f(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(u){l=[6,u],i=0}finally{r=o=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function Dl(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 yc(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 wc(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 ga(e){return this instanceof ga?(this.v=e,this):new ga(e)}function JL(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,b){o.push([h,d,p,b])>1||s(h,d)})})}function s(h,d){try{f(r[h](d))}catch(p){c(o[0][3],p)}}function f(h){h.value instanceof ga?Promise.resolve(h.value.v).then(l,u):c(o[0][2],h)}function l(h){s("next",h)}function u(h){s("throw",h)}function c(h,d){h(d),o.shift(),o.length&&s(o[0][0],o[0][1])}}function eN(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 Dl=="function"?Dl(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,f){a=e[o](a),i(s,f,a.done,a.value)})}}function i(o,a,s,f){Promise.resolve(f).then(function(l){o({value:l,done:s})},a)}}typeof SuppressedError=="function"&&SuppressedError;function ot(e){return typeof e=="function"}function WA(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 Np=WA(function(e){return function(n){e(this),this.message=n?n.length+` errors occurred during unsubscription:
319
+ */(function(e){const t=Pf,n=E0,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=s,e.SlowBuffer=_,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,m){if(typeof v=="number"){if(typeof g=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return c(v)}return u(v,g,m)}s.poolSize=8192;function u(v,g,m){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(St(v,ArrayBuffer)||v&&St(v.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(St(v,SharedArrayBuffer)||v&&St(v.buffer,SharedArrayBuffer)))return b(v,g,m);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,m);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,m);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,m){return u(v,g,m)},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 f(v,g,m){return l(v),v<=0?a(v):g!==void 0?typeof m=="string"?a(v).fill(g,m):a(v).fill(g):a(v)}s.alloc=function(v,g,m){return f(v,g,m)};function c(v){return l(v),a(v<0?0:w(v)|0)}s.allocUnsafe=function(v){return c(v)},s.allocUnsafeSlow=function(v){return c(v)};function h(v,g){if((typeof g!="string"||g==="")&&(g="utf8"),!s.isEncoding(g))throw new TypeError("Unknown encoding: "+g);const m=C(v,g)|0;let k=a(m);const F=k.write(v,g);return F!==m&&(k=k.slice(0,F)),k}function d(v){const g=v.length<0?0:w(v.length)|0,m=a(g);for(let k=0;k<g;k+=1)m[k]=v[k]&255;return m}function p(v){if(St(v,Uint8Array)){const g=new Uint8Array(v);return b(g.buffer,g.byteOffset,g.byteLength)}return d(v)}function b(v,g,m){if(g<0||v.byteLength<g)throw new RangeError('"offset" is outside of buffer bounds');if(v.byteLength<g+(m||0))throw new RangeError('"length" is outside of buffer bounds');let k;return g===void 0&&m===void 0?k=new Uint8Array(v):m===void 0?k=new Uint8Array(v,g):k=new Uint8Array(v,g,m),Object.setPrototypeOf(k,s.prototype),k}function y(v){if(s.isBuffer(v)){const g=w(v.length)|0,m=a(g);return m.length===0||v.copy(m,0,0,g),m}if(v.length!==void 0)return typeof v.length!="number"||wr(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 _(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,m){if(St(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),St(m,Uint8Array)&&(m=s.from(m,m.offset,m.byteLength)),!s.isBuffer(g)||!s.isBuffer(m))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(g===m)return 0;let k=g.length,F=m.length;for(let N=0,V=Math.min(k,F);N<V;++N)if(g[N]!==m[N]){k=g[N],F=m[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,m){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(m===void 0)for(m=0,k=0;k<g.length;++k)m+=g[k].length;const F=s.allocUnsafe(m);let N=0;for(k=0;k<g.length;++k){let V=g[k];if(St(V,Uint8Array))N+V.length>F.length?(s.isBuffer(V)||(V=s.from(V)),V.copy(F,N)):Uint8Array.prototype.set.call(F,V,N);else if(s.isBuffer(V))V.copy(F,N);else throw new TypeError('"list" argument must be an Array of Buffers');N+=V.length}return F};function C(v,g){if(s.isBuffer(v))return v.length;if(ArrayBuffer.isView(v)||St(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 m=v.length,k=arguments.length>2&&arguments[2]===!0;if(!k&&m===0)return 0;let F=!1;for(;;)switch(g){case"ascii":case"latin1":case"binary":return m;case"utf8":case"utf-8":return ue(v).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return m*2;case"hex":return m>>>1;case"base64":return ui(v).length;default:if(F)return k?-1:ue(v).length;g=(""+g).toLowerCase(),F=!0}}s.byteLength=C;function E(v,g,m){let k=!1;if((g===void 0||g<0)&&(g=0),g>this.length||((m===void 0||m>this.length)&&(m=this.length),m<=0)||(m>>>=0,g>>>=0,m<=g))return"";for(v||(v="utf8");;)switch(v){case"hex":return Ze(this,g,m);case"utf8":case"utf-8":return ge(this,g,m);case"ascii":return De(this,g,m);case"latin1":case"binary":return $e(this,g,m);case"base64":return se(this,g,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ke(this,g,m);default:if(k)throw new TypeError("Unknown encoding: "+v);v=(v+"").toLowerCase(),k=!0}}s.prototype._isBuffer=!0;function T(v,g,m){const k=v[g];v[g]=v[m],v[m]=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 m=0;m<g;m+=2)T(this,m,m+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 m=0;m<g;m+=4)T(this,m,m+3),T(this,m+1,m+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 m=0;m<g;m+=8)T(this,m,m+7),T(this,m+1,m+6),T(this,m+2,m+5),T(this,m+3,m+4);return this},s.prototype.toString=function(){const g=this.length;return g===0?"":arguments.length===0?ge(this,0,g):E.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 m=e.INSPECT_MAX_BYTES;return g=this.toString("hex",0,m).replace(/(.{2})/g,"$1 ").trim(),this.length>m&&(g+=" ... "),"<Buffer "+g+">"},r&&(s.prototype[r]=s.prototype.inspect),s.prototype.compare=function(g,m,k,F,N){if(St(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(m===void 0&&(m=0),k===void 0&&(k=g?g.length:0),F===void 0&&(F=0),N===void 0&&(N=this.length),m<0||k>g.length||F<0||N>this.length)throw new RangeError("out of range index");if(F>=N&&m>=k)return 0;if(F>=N)return-1;if(m>=k)return 1;if(m>>>=0,k>>>=0,F>>>=0,N>>>=0,this===g)return 0;let V=N-F,fe=k-m;const Ge=Math.min(V,fe),Me=this.slice(F,N),We=g.slice(m,k);for(let Se=0;Se<Ge;++Se)if(Me[Se]!==We[Se]){V=Me[Se],fe=We[Se];break}return V<fe?-1:fe<V?1:0};function B(v,g,m,k,F){if(v.length===0)return-1;if(typeof m=="string"?(k=m,m=0):m>2147483647?m=2147483647:m<-2147483648&&(m=-2147483648),m=+m,wr(m)&&(m=F?0:v.length-1),m<0&&(m=v.length+m),m>=v.length){if(F)return-1;m=v.length-1}else if(m<0)if(F)m=0;else return-1;if(typeof g=="string"&&(g=s.from(g,k)),s.isBuffer(g))return g.length===0?-1:I(v,g,m,k,F);if(typeof g=="number")return g=g&255,typeof Uint8Array.prototype.indexOf=="function"?F?Uint8Array.prototype.indexOf.call(v,g,m):Uint8Array.prototype.lastIndexOf.call(v,g,m):I(v,[g],m,k,F);throw new TypeError("val must be string, number or Buffer")}function I(v,g,m,k,F){let N=1,V=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,V/=2,fe/=2,m/=2}function Ge(We,Se){return N===1?We[Se]:We.readUInt16BE(Se*N)}let Me;if(F){let We=-1;for(Me=m;Me<V;Me++)if(Ge(v,Me)===Ge(g,We===-1?0:Me-We)){if(We===-1&&(We=Me),Me-We+1===fe)return We*N}else We!==-1&&(Me-=Me-We),We=-1}else for(m+fe>V&&(m=V-fe),Me=m;Me>=0;Me--){let We=!0;for(let Se=0;Se<fe;Se++)if(Ge(v,Me+Se)!==Ge(g,Se)){We=!1;break}if(We)return Me}return-1}s.prototype.includes=function(g,m,k){return this.indexOf(g,m,k)!==-1},s.prototype.indexOf=function(g,m,k){return B(this,g,m,k,!0)},s.prototype.lastIndexOf=function(g,m,k){return B(this,g,m,k,!1)};function R(v,g,m,k){m=Number(m)||0;const F=v.length-m;k?(k=Number(k),k>F&&(k=F)):k=F;const N=g.length;k>N/2&&(k=N/2);let V;for(V=0;V<k;++V){const fe=parseInt(g.substr(V*2,2),16);if(wr(fe))return V;v[m+V]=fe}return V}function M(v,g,m,k){return fi(ue(g,v.length-m),v,m,k)}function j(v,g,m,k){return fi(Zt(g),v,m,k)}function O(v,g,m,k){return fi(ui(g),v,m,k)}function ie(v,g,m,k){return fi(li(g,v.length-m),v,m,k)}s.prototype.write=function(g,m,k,F){if(m===void 0)F="utf8",k=this.length,m=0;else if(k===void 0&&typeof m=="string")F=m,k=this.length,m=0;else if(isFinite(m))m=m>>>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-m;if((k===void 0||k>N)&&(k=N),g.length>0&&(k<0||m<0)||m>this.length)throw new RangeError("Attempt to write outside buffer bounds");F||(F="utf8");let V=!1;for(;;)switch(F){case"hex":return R(this,g,m,k);case"utf8":case"utf-8":return M(this,g,m,k);case"ascii":case"latin1":case"binary":return j(this,g,m,k);case"base64":return O(this,g,m,k);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ie(this,g,m,k);default:if(V)throw new TypeError("Unknown encoding: "+F);F=(""+F).toLowerCase(),V=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function se(v,g,m){return g===0&&m===v.length?t.fromByteArray(v):t.fromByteArray(v.slice(g,m))}function ge(v,g,m){m=Math.min(v.length,m);const k=[];let F=g;for(;F<m;){const N=v[F];let V=null,fe=N>239?4:N>223?3:N>191?2:1;if(F+fe<=m){let Ge,Me,We,Se;switch(fe){case 1:N<128&&(V=N);break;case 2:Ge=v[F+1],(Ge&192)===128&&(Se=(N&31)<<6|Ge&63,Se>127&&(V=Se));break;case 3:Ge=v[F+1],Me=v[F+2],(Ge&192)===128&&(Me&192)===128&&(Se=(N&15)<<12|(Ge&63)<<6|Me&63,Se>2047&&(Se<55296||Se>57343)&&(V=Se));break;case 4:Ge=v[F+1],Me=v[F+2],We=v[F+3],(Ge&192)===128&&(Me&192)===128&&(We&192)===128&&(Se=(N&15)<<18|(Ge&63)<<12|(Me&63)<<6|We&63,Se>65535&&Se<1114112&&(V=Se))}}V===null?(V=65533,fe=1):V>65535&&(V-=65536,k.push(V>>>10&1023|55296),V=56320|V&1023),k.push(V),F+=fe}return Xe(k)}const Ie=4096;function Xe(v){const g=v.length;if(g<=Ie)return String.fromCharCode.apply(String,v);let m="",k=0;for(;k<g;)m+=String.fromCharCode.apply(String,v.slice(k,k+=Ie));return m}function De(v,g,m){let k="";m=Math.min(v.length,m);for(let F=g;F<m;++F)k+=String.fromCharCode(v[F]&127);return k}function $e(v,g,m){let k="";m=Math.min(v.length,m);for(let F=g;F<m;++F)k+=String.fromCharCode(v[F]);return k}function Ze(v,g,m){const k=v.length;(!g||g<0)&&(g=0),(!m||m<0||m>k)&&(m=k);let F="";for(let N=g;N<m;++N)F+=ci[v[N]];return F}function Ke(v,g,m){const k=v.slice(g,m);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,m){const k=this.length;g=~~g,m=m===void 0?k:~~m,g<0?(g+=k,g<0&&(g=0)):g>k&&(g=k),m<0?(m+=k,m<0&&(m=0)):m>k&&(m=k),m<g&&(m=g);const F=this.subarray(g,m);return Object.setPrototypeOf(F,s.prototype),F};function Ee(v,g,m){if(v%1!==0||v<0)throw new RangeError("offset is not uint");if(v+g>m)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(g,m,k){g=g>>>0,m=m>>>0,k||Ee(g,m,this.length);let F=this[g],N=1,V=0;for(;++V<m&&(N*=256);)F+=this[g+V]*N;return F},s.prototype.readUintBE=s.prototype.readUIntBE=function(g,m,k){g=g>>>0,m=m>>>0,k||Ee(g,m,this.length);let F=this[g+--m],N=1;for(;m>0&&(N*=256);)F+=this[g+--m]*N;return F},s.prototype.readUint8=s.prototype.readUInt8=function(g,m){return g=g>>>0,m||Ee(g,1,this.length),this[g]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(g,m){return g=g>>>0,m||Ee(g,2,this.length),this[g]|this[g+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(g,m){return g=g>>>0,m||Ee(g,2,this.length),this[g]<<8|this[g+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(g,m){return g=g>>>0,m||Ee(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,m){return g=g>>>0,m||Ee(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,G(g,"offset");const m=this[g],k=this[g+7];(m===void 0||k===void 0)&&Z(g,this.length-8);const F=m+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=Wt(function(g){g=g>>>0,G(g,"offset");const m=this[g],k=this[g+7];(m===void 0||k===void 0)&&Z(g,this.length-8);const F=m*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,m,k){g=g>>>0,m=m>>>0,k||Ee(g,m,this.length);let F=this[g],N=1,V=0;for(;++V<m&&(N*=256);)F+=this[g+V]*N;return N*=128,F>=N&&(F-=Math.pow(2,8*m)),F},s.prototype.readIntBE=function(g,m,k){g=g>>>0,m=m>>>0,k||Ee(g,m,this.length);let F=m,N=1,V=this[g+--F];for(;F>0&&(N*=256);)V+=this[g+--F]*N;return N*=128,V>=N&&(V-=Math.pow(2,8*m)),V},s.prototype.readInt8=function(g,m){return g=g>>>0,m||Ee(g,1,this.length),this[g]&128?(255-this[g]+1)*-1:this[g]},s.prototype.readInt16LE=function(g,m){g=g>>>0,m||Ee(g,2,this.length);const k=this[g]|this[g+1]<<8;return k&32768?k|4294901760:k},s.prototype.readInt16BE=function(g,m){g=g>>>0,m||Ee(g,2,this.length);const k=this[g+1]|this[g]<<8;return k&32768?k|4294901760:k},s.prototype.readInt32LE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),this[g]|this[g+1]<<8|this[g+2]<<16|this[g+3]<<24},s.prototype.readInt32BE=function(g,m){return g=g>>>0,m||Ee(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,G(g,"offset");const m=this[g],k=this[g+7];(m===void 0||k===void 0)&&Z(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(m+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24)}),s.prototype.readBigInt64BE=Wt(function(g){g=g>>>0,G(g,"offset");const m=this[g],k=this[g+7];(m===void 0||k===void 0)&&Z(g,this.length-8);const F=(m<<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,m){return g=g>>>0,m||Ee(g,4,this.length),n.read(this,g,!0,23,4)},s.prototype.readFloatBE=function(g,m){return g=g>>>0,m||Ee(g,4,this.length),n.read(this,g,!1,23,4)},s.prototype.readDoubleLE=function(g,m){return g=g>>>0,m||Ee(g,8,this.length),n.read(this,g,!0,52,8)},s.prototype.readDoubleBE=function(g,m){return g=g>>>0,m||Ee(g,8,this.length),n.read(this,g,!1,52,8)};function _e(v,g,m,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(m+k>v.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(g,m,k,F){if(g=+g,m=m>>>0,k=k>>>0,!F){const fe=Math.pow(2,8*k)-1;_e(this,g,m,k,fe,0)}let N=1,V=0;for(this[m]=g&255;++V<k&&(N*=256);)this[m+V]=g/N&255;return m+k},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(g,m,k,F){if(g=+g,m=m>>>0,k=k>>>0,!F){const fe=Math.pow(2,8*k)-1;_e(this,g,m,k,fe,0)}let N=k-1,V=1;for(this[m+N]=g&255;--N>=0&&(V*=256);)this[m+N]=g/V&255;return m+k},s.prototype.writeUint8=s.prototype.writeUInt8=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,1,255,0),this[m]=g&255,m+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,2,65535,0),this[m]=g&255,this[m+1]=g>>>8,m+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,2,65535,0),this[m]=g>>>8,this[m+1]=g&255,m+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,4,4294967295,0),this[m+3]=g>>>24,this[m+2]=g>>>16,this[m+1]=g>>>8,this[m]=g&255,m+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,4,4294967295,0),this[m]=g>>>24,this[m+1]=g>>>16,this[m+2]=g>>>8,this[m+3]=g&255,m+4};function pt(v,g,m,k,F){x(g,k,F,v,m,7);let N=Number(g&BigInt(4294967295));v[m++]=N,N=N>>8,v[m++]=N,N=N>>8,v[m++]=N,N=N>>8,v[m++]=N;let V=Number(g>>BigInt(32)&BigInt(4294967295));return v[m++]=V,V=V>>8,v[m++]=V,V=V>>8,v[m++]=V,V=V>>8,v[m++]=V,m}function qt(v,g,m,k,F){x(g,k,F,v,m,7);let N=Number(g&BigInt(4294967295));v[m+7]=N,N=N>>8,v[m+6]=N,N=N>>8,v[m+5]=N,N=N>>8,v[m+4]=N;let V=Number(g>>BigInt(32)&BigInt(4294967295));return v[m+3]=V,V=V>>8,v[m+2]=V,V=V>>8,v[m+1]=V,V=V>>8,v[m]=V,m+8}s.prototype.writeBigUInt64LE=Wt(function(g,m=0){return pt(this,g,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=Wt(function(g,m=0){return qt(this,g,m,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(g,m,k,F){if(g=+g,m=m>>>0,!F){const Ge=Math.pow(2,8*k-1);_e(this,g,m,k,Ge-1,-Ge)}let N=0,V=1,fe=0;for(this[m]=g&255;++N<k&&(V*=256);)g<0&&fe===0&&this[m+N-1]!==0&&(fe=1),this[m+N]=(g/V>>0)-fe&255;return m+k},s.prototype.writeIntBE=function(g,m,k,F){if(g=+g,m=m>>>0,!F){const Ge=Math.pow(2,8*k-1);_e(this,g,m,k,Ge-1,-Ge)}let N=k-1,V=1,fe=0;for(this[m+N]=g&255;--N>=0&&(V*=256);)g<0&&fe===0&&this[m+N+1]!==0&&(fe=1),this[m+N]=(g/V>>0)-fe&255;return m+k},s.prototype.writeInt8=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,1,127,-128),g<0&&(g=255+g+1),this[m]=g&255,m+1},s.prototype.writeInt16LE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,2,32767,-32768),this[m]=g&255,this[m+1]=g>>>8,m+2},s.prototype.writeInt16BE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,2,32767,-32768),this[m]=g>>>8,this[m+1]=g&255,m+2},s.prototype.writeInt32LE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,4,2147483647,-2147483648),this[m]=g&255,this[m+1]=g>>>8,this[m+2]=g>>>16,this[m+3]=g>>>24,m+4},s.prototype.writeInt32BE=function(g,m,k){return g=+g,m=m>>>0,k||_e(this,g,m,4,2147483647,-2147483648),g<0&&(g=4294967295+g+1),this[m]=g>>>24,this[m+1]=g>>>16,this[m+2]=g>>>8,this[m+3]=g&255,m+4},s.prototype.writeBigInt64LE=Wt(function(g,m=0){return pt(this,g,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=Wt(function(g,m=0){return qt(this,g,m,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Oe(v,g,m,k,F,N){if(m+k>v.length)throw new RangeError("Index out of range");if(m<0)throw new RangeError("Index out of range")}function L(v,g,m,k,F){return g=+g,m=m>>>0,F||Oe(v,g,m,4),n.write(v,g,m,k,23,4),m+4}s.prototype.writeFloatLE=function(g,m,k){return L(this,g,m,!0,k)},s.prototype.writeFloatBE=function(g,m,k){return L(this,g,m,!1,k)};function P(v,g,m,k,F){return g=+g,m=m>>>0,F||Oe(v,g,m,8),n.write(v,g,m,k,52,8),m+8}s.prototype.writeDoubleLE=function(g,m,k){return P(this,g,m,!0,k)},s.prototype.writeDoubleBE=function(g,m,k){return P(this,g,m,!1,k)},s.prototype.copy=function(g,m,k,F){if(!s.isBuffer(g))throw new TypeError("argument should be a Buffer");if(k||(k=0),!F&&F!==0&&(F=this.length),m>=g.length&&(m=g.length),m||(m=0),F>0&&F<k&&(F=k),F===k||g.length===0||this.length===0)return 0;if(m<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-m<F-k&&(F=g.length-m+k);const N=F-k;return this===g&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(m,k,F):Uint8Array.prototype.set.call(g,this.subarray(k,F),m),N},s.prototype.fill=function(g,m,k,F){if(typeof g=="string"){if(typeof m=="string"?(F=m,m=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 V=g.charCodeAt(0);(F==="utf8"&&V<128||F==="latin1")&&(g=V)}}else typeof g=="number"?g=g&255:typeof g=="boolean"&&(g=Number(g));if(m<0||this.length<m||this.length<k)throw new RangeError("Out of range index");if(k<=m)return this;m=m>>>0,k=k===void 0?this.length:k>>>0,g||(g=0);let N;if(typeof g=="number")for(N=m;N<k;++N)this[N]=g;else{const V=s.isBuffer(g)?g:s.from(g,F),fe=V.length;if(fe===0)throw new TypeError('The value "'+g+'" is invalid for argument "value"');for(N=0;N<k-m;++N)this[N+m]=V[N%fe]}return this};const q={};function H(v,g,m){q[v]=class extends m{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}`}}}H("ERR_BUFFER_OUT_OF_BOUNDS",function(v){return v?`${v} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),H("ERR_INVALID_ARG_TYPE",function(v,g){return`The "${v}" argument must be of type number. Received type ${typeof g}`},TypeError),H("ERR_OUT_OF_RANGE",function(v,g,m){let k=`The value of "${v}" is out of range.`,F=m;return Number.isInteger(m)&&Math.abs(m)>2**32?F=Y(String(m)):typeof m=="bigint"&&(F=String(m),(m>BigInt(2)**BigInt(32)||m<-(BigInt(2)**BigInt(32)))&&(F=Y(F)),F+="n"),k+=` It must be ${g}. Received ${F}`,k},RangeError);function Y(v){let g="",m=v.length;const k=v[0]==="-"?1:0;for(;m>=k+4;m-=3)g=`_${v.slice(m-3,m)}${g}`;return`${v.slice(0,m)}${g}`}function S(v,g,m){G(g,"offset"),(v[g]===void 0||v[g+m]===void 0)&&Z(g,v.length-(m+1))}function x(v,g,m,k,F,N){if(v>m||v<g){const V=typeof g=="bigint"?"n":"";let fe;throw N>3?g===0||g===BigInt(0)?fe=`>= 0${V} and < 2${V} ** ${(N+1)*8}${V}`:fe=`>= -(2${V} ** ${(N+1)*8-1}${V}) and < 2 ** ${(N+1)*8-1}${V}`:fe=`>= ${g}${V} and <= ${m}${V}`,new q.ERR_OUT_OF_RANGE("value",fe,v)}S(k,F,N)}function G(v,g){if(typeof v!="number")throw new q.ERR_INVALID_ARG_TYPE(g,"number",v)}function Z(v,g,m){throw Math.floor(v)!==v?(G(v,m),new q.ERR_OUT_OF_RANGE(m||"offset","an integer",v)):g<0?new q.ERR_BUFFER_OUT_OF_BOUNDS:new q.ERR_OUT_OF_RANGE(m||"offset",`>= ${m?1:0} and <= ${g}`,v)}const le=/[^+/0-9A-Za-z-_]/g;function J(v){if(v=v.split("=")[0],v=v.trim().replace(le,""),v.length<2)return"";for(;v.length%4!==0;)v=v+"=";return v}function ue(v,g){g=g||1/0;let m;const k=v.length;let F=null;const N=[];for(let V=0;V<k;++V){if(m=v.charCodeAt(V),m>55295&&m<57344){if(!F){if(m>56319){(g-=3)>-1&&N.push(239,191,189);continue}else if(V+1===k){(g-=3)>-1&&N.push(239,191,189);continue}F=m;continue}if(m<56320){(g-=3)>-1&&N.push(239,191,189),F=m;continue}m=(F-55296<<10|m-56320)+65536}else F&&(g-=3)>-1&&N.push(239,191,189);if(F=null,m<128){if((g-=1)<0)break;N.push(m)}else if(m<2048){if((g-=2)<0)break;N.push(m>>6|192,m&63|128)}else if(m<65536){if((g-=3)<0)break;N.push(m>>12|224,m>>6&63|128,m&63|128)}else if(m<1114112){if((g-=4)<0)break;N.push(m>>18|240,m>>12&63|128,m>>6&63|128,m&63|128)}else throw new Error("Invalid code point")}return N}function Zt(v){const g=[];for(let m=0;m<v.length;++m)g.push(v.charCodeAt(m)&255);return g}function li(v,g){let m,k,F;const N=[];for(let V=0;V<v.length&&!((g-=2)<0);++V)m=v.charCodeAt(V),k=m>>8,F=m%256,N.push(F),N.push(k);return N}function ui(v){return t.toByteArray(J(v))}function fi(v,g,m,k){let F;for(F=0;F<k&&!(F+m>=g.length||F>=v.length);++F)g[F+m]=v[F];return F}function St(v,g){return v instanceof g||v!=null&&v.constructor!=null&&v.constructor.name!=null&&v.constructor.name===g.name}function wr(v){return v!==v}const ci=function(){const v="0123456789abcdef",g=new Array(256);for(let m=0;m<16;++m){const k=m*16;for(let F=0;F<16;++F)g[k+F]=v[m]+v[F]}return g}();function Wt(v){return typeof BigInt>"u"?Xn:v}function Xn(){throw new Error("BigInt not supported")}})(pe);const Dw=ve({__proto__:null,default:$s(pe)},[pe]),ht={},lR=Object.freeze(Object.defineProperty({__proto__:null,default:ht},Symbol.toStringTag,{value:"Module"})),_0=typeof window<"u"?window:typeof self<"u"?self:{fetch:void 0};class Zi{async getBufferFromResponse(t){if(typeof t.buffer=="function")return t.buffer();if(typeof t.arrayBuffer=="function"){const n=await t.arrayBuffer();return pe.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||_0.fetch&&_0.fetch.bind(_0);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},f=await this.fetch(this.url,l);if(!f.ok)throw new Error(`HTTP ${f.status} ${f.statusText} ${this.url}`);if(f.status===200&&i===0||f.status===206){const c=await this.getBufferFromResponse(f),h=c.copy(t,n,0,Math.min(r,c.length)),d=f.headers.get("content-range"),p=/\/(\d+)$/.exec(d||"");return p&&p[1]&&(this._stat={size:parseInt(p[1],10)}),{bytesRead:h,buffer:t}}throw f.status===200?new Error("${this.url} fetch returned status 200, expected 206"):new Error(`HTTP ${f.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=pe.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 Fw(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 uR(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 fR{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 Fw(this.blob.slice(o,a)),u=pe.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 uR(this.blob);if(n)throw new Error(`unsupported encoding: ${n}`);const r=await Fw(this.blob);return pe.Buffer.from(r)}async stat(){return{size:this.size}}async close(){}}function Rw(e,t={}){return new Zi(e,t)}function cR(e,t,n,r={}){if(n!==void 0)return n;if(e!==void 0)return Rw(e,r);if(t!==void 0)return new ht(t,r);throw new Error("no url, path, or filehandle provided, cannot open")}const Ks=Object.freeze(Object.defineProperty({__proto__:null,BlobFile:fR,LocalFile:ht,RemoteFile:Zi,fromUrl:Rw,open:cR},Symbol.toStringTag,{value:"Module"}));var lr={};(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 f=0;f<u;f++)o[l+f]=a[s+f]},flattenChunks:function(o){var a,s,u,l,f,c;for(u=0,a=0,s=o.length;a<s;a++)u+=o[a].length;for(c=new Uint8Array(u),l=0,a=0,s=o.length;a<s;a++)f=o[a],c.set(f,l),l+=f.length;return c}},i={arraySet:function(o,a,s,u,l){for(var f=0;f<u;f++)o[l+f]=a[s+f]},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)})(lr);var Js={},Un={},Qo={},hR=lr,dR=4,Mw=0,Pw=1,pR=2;function Xo(e){for(var t=e.length;--t>=0;)e[t]=0}var gR=0,Lw=1,mR=2,bR=3,yR=258,S0=29,el=256,tl=el+1+S0,$o=30,C0=19,Nw=2*tl+1,Wi=15,k0=16,wR=7,T0=256,Ow=16,zw=17,Uw=18,I0=[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],Lf=[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],vR=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Gw=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],xR=512,ur=new Array((tl+2)*2);Xo(ur);var nl=new Array($o*2);Xo(nl);var rl=new Array(xR);Xo(rl);var il=new Array(yR-bR+1);Xo(il);var B0=new Array(S0);Xo(B0);var Nf=new Array($o);Xo(Nf);function D0(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 Hw,Vw,jw;function F0(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function qw(e){return e<256?rl[e]:rl[256+(e>>>7)]}function ol(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>k0-n?(e.bi_buf|=t<<e.bi_valid&65535,ol(e,e.bi_buf),e.bi_buf=t>>k0-e.bi_valid,e.bi_valid+=n-k0):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function Gn(e,t,n){Gt(e,n[t*2],n[t*2+1])}function Zw(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function AR(e){e.bi_valid===16?(ol(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 ER(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,f,c,h,d,p,b=0;for(h=0;h<=Wi;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Nw;l++)f=e.heap[l],h=n[n[f*2+1]*2+1]+1,h>u&&(h=u,b++),n[f*2+1]=h,!(f>r)&&(e.bl_count[h]++,d=0,f>=s&&(d=a[f-s]),p=n[f*2],e.opt_len+=p*(h+d),o&&(e.static_len+=p*(i[f*2+1]+d)));if(b!==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]--,b-=2}while(b>0);for(h=u;h!==0;h--)for(f=e.bl_count[h];f!==0;)c=e.heap[--l],!(c>r)&&(n[c*2+1]!==h&&(e.opt_len+=(h-n[c*2+1])*n[c*2],n[c*2+1]=h),f--)}}function Ww(e,t,n){var r=new Array(Wi+1),i=0,o,a;for(o=1;o<=Wi;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]=Zw(r[s]++,s))}}function _R(){var e,t,n,r,i,o=new Array(Wi+1);for(n=0,r=0;r<S0-1;r++)for(B0[r]=n,e=0;e<1<<I0[r];e++)il[n++]=r;for(il[n-1]=r,i=0,r=0;r<16;r++)for(Nf[r]=i,e=0;e<1<<Lf[r];e++)rl[i++]=r;for(i>>=7;r<$o;r++)for(Nf[r]=i<<7,e=0;e<1<<Lf[r]-7;e++)rl[256+i++]=r;for(t=0;t<=Wi;t++)o[t]=0;for(e=0;e<=143;)ur[e*2+1]=8,e++,o[8]++;for(;e<=255;)ur[e*2+1]=9,e++,o[9]++;for(;e<=279;)ur[e*2+1]=7,e++,o[7]++;for(;e<=287;)ur[e*2+1]=8,e++,o[8]++;for(Ww(ur,tl+1,o),e=0;e<$o;e++)nl[e*2+1]=5,nl[e*2]=Zw(e,5);Hw=new D0(ur,I0,el+1,tl,Wi),Vw=new D0(nl,Lf,0,$o,Wi),jw=new D0(new Array(0),vR,0,C0,wR)}function Yw(e){var t;for(t=0;t<tl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<$o;t++)e.dyn_dtree[t*2]=0;for(t=0;t<C0;t++)e.bl_tree[t*2]=0;e.dyn_ltree[T0*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function Qw(e){e.bi_valid>8?ol(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 SR(e,t,n,r){Qw(e),r&&(ol(e,n),ol(e,~n)),hR.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function Xw(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 R0(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&Xw(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Xw(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function $w(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?Gn(e,i,t):(a=il[i],Gn(e,a+el+1,t),s=I0[a],s!==0&&(i-=B0[a],Gt(e,i,s)),r--,a=qw(r),Gn(e,a,n),s=Lf[a],s!==0&&(r-=Nf[a],Gt(e,r,s)));while(o<e.last_lit);Gn(e,T0,t)}function M0(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=Nw,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--)R0(e,n,a);l=o;do a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],R0(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++,R0(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],ER(e,t),Ww(n,u,e.bl_count)}function Kw(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[Ow*2]++):s<=10?e.bl_tree[zw*2]++:e.bl_tree[Uw*2]++,s=0,i=o,a===0?(u=138,l=3):o===a?(u=6,l=3):(u=7,l=4))}function Jw(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 Gn(e,o,e.bl_tree);while(--s!==0);else o!==0?(o!==i&&(Gn(e,o,e.bl_tree),s--),Gn(e,Ow,e.bl_tree),Gt(e,s-3,2)):s<=10?(Gn(e,zw,e.bl_tree),Gt(e,s-3,3)):(Gn(e,Uw,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 CR(e){var t;for(Kw(e,e.dyn_ltree,e.l_desc.max_code),Kw(e,e.dyn_dtree,e.d_desc.max_code),M0(e,e.bl_desc),t=C0-1;t>=3&&e.bl_tree[Gw[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function kR(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[Gw[i]*2+1],3);Jw(e,e.dyn_ltree,t-1),Jw(e,e.dyn_dtree,n-1)}function TR(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Mw;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Pw;for(n=32;n<el;n++)if(e.dyn_ltree[n*2]!==0)return Pw;return Mw}var ev=!1;function IR(e){ev||(_R(),ev=!0),e.l_desc=new F0(e.dyn_ltree,Hw),e.d_desc=new F0(e.dyn_dtree,Vw),e.bl_desc=new F0(e.bl_tree,jw),e.bi_buf=0,e.bi_valid=0,Yw(e)}function tv(e,t,n,r){Gt(e,(gR<<1)+(r?1:0),3),SR(e,t,n,!0)}function BR(e){Gt(e,Lw<<1,3),Gn(e,T0,ur),AR(e)}function DR(e,t,n,r){var i,o,a=0;e.level>0?(e.strm.data_type===pR&&(e.strm.data_type=TR(e)),M0(e,e.l_desc),M0(e,e.d_desc),a=CR(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?tv(e,t,n,r):e.strategy===dR||o===i?(Gt(e,(Lw<<1)+(r?1:0),3),$w(e,ur,nl)):(Gt(e,(mR<<1)+(r?1:0),3),kR(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),$w(e,e.dyn_ltree,e.dyn_dtree)),Yw(e),r&&Qw(e)}function FR(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[(il[n]+el+1)*2]++,e.dyn_dtree[qw(t)*2]++),e.last_lit===e.lit_bufsize-1}Qo._tr_init=IR,Qo._tr_stored_block=tv,Qo._tr_flush_block=DR,Qo._tr_tally=FR,Qo._tr_align=BR;function RR(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 nv=RR;function MR(){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 PR=MR();function LR(e,t,n,r){var i=PR,o=r+n;e^=-1;for(var a=r;a<o;a++)e=e>>>8^i[(e^t[a])&255];return e^-1}var rv=LR,P0={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"},It=lr,nn=Qo,iv=nv,Zr=rv,NR=P0,Yi=0,OR=1,zR=3,Wr=4,ov=5,Hn=0,av=1,rn=-2,UR=-3,L0=-5,GR=-1,HR=1,Of=2,VR=3,jR=4,qR=0,ZR=2,zf=8,WR=9,YR=15,QR=8,XR=29,$R=256,N0=$R+1+XR,KR=30,JR=19,e7=2*N0+1,t7=15,he=3,Yr=258,En=Yr+he+1,n7=32,Uf=42,O0=69,Gf=73,Hf=91,Vf=103,Qi=113,al=666,ot=1,sl=2,Xi=3,Ko=4,r7=3;function Qr(e,t){return e.msg=NR[t],t}function sv(e){return(e<<1)-(e>4?9:0)}function Xr(e){for(var t=e.length;--t>=0;)e[t]=0}function $r(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(It.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 yt(e,t){nn._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,$r(e.strm)}function we(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 i7(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,It.arraySet(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=iv(e.adler,t,i,n):e.state.wrap===2&&(e.adler=Zr(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function lv(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-En?e.strstart-(e.w_size-En):0,l=e.window,f=e.w_mask,c=e.prev,h=e.strstart+Yr,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=Yr-(h-r),r=h-Yr,o>a){if(e.match_start=t,a=o,o>=s)break;d=l[r+a-1],p=l[r+a]}}while((t=c[t&f])>u&&--n!==0);return a<=e.lookahead?a:e.lookahead}function $i(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-En)){It.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=i7(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=r,e.lookahead+e.insert>=he)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+he-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<he)););}while(e.lookahead<En&&e.strm.avail_in!==0)}function o7(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if($i(e),e.lookahead===0&&t===Yi)return ot;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,yt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-En&&(yt(e,!1),e.strm.avail_out===0))return ot}return e.insert=0,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Ko):(e.strstart>e.block_start&&(yt(e,!1),e.strm.avail_out===0),ot)}function z0(e,t){for(var n,r;;){if(e.lookahead<En){if($i(e),e.lookahead<En&&t===Yi)return ot;if(e.lookahead===0)break}if(n=0,e.lookahead>=he&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-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-En&&(e.match_length=lv(e,n)),e.match_length>=he)if(r=nn._tr_tally(e,e.strstart-e.match_start,e.match_length-he),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=he){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-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=nn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(yt(e,!1),e.strm.avail_out===0))return ot}return e.insert=e.strstart<he-1?e.strstart:he-1,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Ko):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?ot:sl}function Jo(e,t){for(var n,r,i;;){if(e.lookahead<En){if($i(e),e.lookahead<En&&t===Yi)return ot;if(e.lookahead===0)break}if(n=0,e.lookahead>=he&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+he-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=he-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-En&&(e.match_length=lv(e,n),e.match_length<=5&&(e.strategy===HR||e.match_length===he&&e.strstart-e.match_start>4096)&&(e.match_length=he-1)),e.prev_length>=he&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-he,r=nn._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-he),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+he-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=he-1,e.strstart++,r&&(yt(e,!1),e.strm.avail_out===0))return ot}else if(e.match_available){if(r=nn._tr_tally(e,0,e.window[e.strstart-1]),r&&yt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return ot}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=nn._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<he-1?e.strstart:he-1,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Ko):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?ot:sl}function a7(e,t){for(var n,r,i,o,a=e.window;;){if(e.lookahead<=Yr){if($i(e),e.lookahead<=Yr&&t===Yi)return ot;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=he&&e.strstart>0&&(i=e.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){o=e.strstart+Yr;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=Yr-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=he?(n=nn._tr_tally(e,1,e.match_length-he),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=nn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(yt(e,!1),e.strm.avail_out===0))return ot}return e.insert=0,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Ko):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?ot:sl}function s7(e,t){for(var n;;){if(e.lookahead===0&&($i(e),e.lookahead===0)){if(t===Yi)return ot;break}if(e.match_length=0,n=nn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(yt(e,!1),e.strm.avail_out===0))return ot}return e.insert=0,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Ko):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?ot:sl}function Vn(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 ea;ea=[new Vn(0,0,0,0,o7),new Vn(4,4,8,4,z0),new Vn(4,5,16,8,z0),new Vn(4,6,32,32,z0),new Vn(4,4,16,16,Jo),new Vn(8,16,32,32,Jo),new Vn(8,16,128,128,Jo),new Vn(8,32,128,256,Jo),new Vn(32,128,258,1024,Jo),new Vn(32,258,258,4096,Jo)];function l7(e){e.window_size=2*e.w_size,Xr(e.head),e.max_lazy_match=ea[e.level].max_lazy,e.good_match=ea[e.level].good_length,e.nice_match=ea[e.level].nice_length,e.max_chain_length=ea[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=he-1,e.match_available=0,e.ins_h=0}function u7(){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=zf,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 It.Buf16(e7*2),this.dyn_dtree=new It.Buf16((2*KR+1)*2),this.bl_tree=new It.Buf16((2*JR+1)*2),Xr(this.dyn_ltree),Xr(this.dyn_dtree),Xr(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new It.Buf16(t7+1),this.heap=new It.Buf16(2*N0+1),Xr(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new It.Buf16(2*N0+1),Xr(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 uv(e){var t;return!e||!e.state?Qr(e,rn):(e.total_in=e.total_out=0,e.data_type=ZR,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Uf:Qi,e.adler=t.wrap===2?0:1,t.last_flush=Yi,nn._tr_init(t),Hn)}function fv(e){var t=uv(e);return t===Hn&&l7(e.state),t}function f7(e,t){return!e||!e.state||e.state.wrap!==2?rn:(e.state.gzhead=t,Hn)}function cv(e,t,n,r,i,o){if(!e)return rn;var a=1;if(t===GR&&(t=6),r<0?(a=0,r=-r):r>15&&(a=2,r-=16),i<1||i>WR||n!==zf||r<8||r>15||t<0||t>9||o<0||o>jR)return Qr(e,rn);r===8&&(r=9);var s=new u7;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+he-1)/he),s.window=new It.Buf8(s.w_size*2),s.head=new It.Buf16(s.hash_size),s.prev=new It.Buf16(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new It.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,fv(e)}function c7(e,t){return cv(e,t,zf,YR,QR,qR)}function h7(e,t){var n,r,i,o;if(!e||!e.state||t>ov||t<0)return e?Qr(e,rn):rn;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===al&&t!==Wr)return Qr(e,e.avail_out===0?L0:rn);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===Uf)if(r.wrap===2)e.adler=0,we(r,31),we(r,139),we(r,8),r.gzhead?(we(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)),we(r,r.gzhead.time&255),we(r,r.gzhead.time>>8&255),we(r,r.gzhead.time>>16&255),we(r,r.gzhead.time>>24&255),we(r,r.level===9?2:r.strategy>=Of||r.level<2?4:0),we(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(we(r,r.gzhead.extra.length&255),we(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=Zr(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=O0):(we(r,0),we(r,0),we(r,0),we(r,0),we(r,0),we(r,r.level===9?2:r.strategy>=Of||r.level<2?4:0),we(r,r7),r.status=Qi);else{var a=zf+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=Of||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,a|=s<<6,r.strstart!==0&&(a|=n7),a+=31-a%31,r.status=Qi,ll(r,a),r.strstart!==0&&(ll(r,e.adler>>>16),ll(r,e.adler&65535)),e.adler=1}if(r.status===O0)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=Zr(e.adler,r.pending_buf,r.pending-i,i)),$r(e),i=r.pending,r.pending===r.pending_buf_size));)we(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=Gf)}else r.status=Gf;if(r.status===Gf)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),$r(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,we(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),o===0&&(r.gzindex=0,r.status=Hf)}else r.status=Hf;if(r.status===Hf)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),$r(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,we(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),o===0&&(r.status=Vf)}else r.status=Vf;if(r.status===Vf&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&$r(e),r.pending+2<=r.pending_buf_size&&(we(r,e.adler&255),we(r,e.adler>>8&255),e.adler=0,r.status=Qi)):r.status=Qi),r.pending!==0){if($r(e),e.avail_out===0)return r.last_flush=-1,Hn}else if(e.avail_in===0&&sv(t)<=sv(n)&&t!==Wr)return Qr(e,L0);if(r.status===al&&e.avail_in!==0)return Qr(e,L0);if(e.avail_in!==0||r.lookahead!==0||t!==Yi&&r.status!==al){var u=r.strategy===Of?s7(r,t):r.strategy===VR?a7(r,t):ea[r.level].func(r,t);if((u===Xi||u===Ko)&&(r.status=al),u===ot||u===Xi)return e.avail_out===0&&(r.last_flush=-1),Hn;if(u===sl&&(t===OR?nn._tr_align(r):t!==ov&&(nn._tr_stored_block(r,0,0,!1),t===zR&&(Xr(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),$r(e),e.avail_out===0))return r.last_flush=-1,Hn}return t!==Wr?Hn:r.wrap<=0?av:(r.wrap===2?(we(r,e.adler&255),we(r,e.adler>>8&255),we(r,e.adler>>16&255),we(r,e.adler>>24&255),we(r,e.total_in&255),we(r,e.total_in>>8&255),we(r,e.total_in>>16&255),we(r,e.total_in>>24&255)):(ll(r,e.adler>>>16),ll(r,e.adler&65535)),$r(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?Hn:av)}function d7(e){var t;return!e||!e.state?rn:(t=e.state.status,t!==Uf&&t!==O0&&t!==Gf&&t!==Hf&&t!==Vf&&t!==Qi&&t!==al?Qr(e,rn):(e.state=null,t===Qi?Qr(e,UR):Hn))}function p7(e,t){var n=t.length,r,i,o,a,s,u,l,f;if(!e||!e.state||(r=e.state,a=r.wrap,a===2||a===1&&r.status!==Uf||r.lookahead))return rn;for(a===1&&(e.adler=iv(e.adler,t,n,0)),r.wrap=0,n>=r.w_size&&(a===0&&(Xr(r.head),r.strstart=0,r.block_start=0,r.insert=0),f=new It.Buf8(r.w_size),It.arraySet(f,t,n-r.w_size,r.w_size,0),t=f,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,$i(r);r.lookahead>=he;){i=r.strstart,o=r.lookahead-(he-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+he-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=he-1,$i(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=he-1,r.match_available=0,e.next_in=u,e.input=l,e.avail_in=s,r.wrap=a,Hn}Un.deflateInit=c7,Un.deflateInit2=cv,Un.deflateReset=fv,Un.deflateResetKeep=uv,Un.deflateSetHeader=f7,Un.deflate=h7,Un.deflateEnd=d7,Un.deflateSetDictionary=p7,Un.deflateInfo="pako deflate (from Nodeca project)";var Ki={},jf=lr,hv=!0,dv=!0;try{String.fromCharCode.apply(null,[0])}catch{hv=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{dv=!1}for(var ul=new jf.Buf8(256),Kr=0;Kr<256;Kr++)ul[Kr]=Kr>=252?6:Kr>=248?5:Kr>=240?4:Kr>=224?3:Kr>=192?2:1;ul[254]=ul[254]=1,Ki.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 jf.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 pv(e,t){if(t<65534&&(e.subarray&&dv||!e.subarray&&hv))return String.fromCharCode.apply(null,jf.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}Ki.buf2binstring=function(e){return pv(e,e.length)},Ki.binstring2buf=function(e){for(var t=new jf.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},Ki.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=ul[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 pv(s,r)},Ki.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+ul[e[n]]>t?n:t};function g7(){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 gv=g7,fl=Un,cl=lr,U0=Ki,G0=P0,m7=gv,mv=Object.prototype.toString,b7=0,H0=4,ta=0,bv=1,yv=2,y7=-1,w7=0,v7=8;function Ji(e){if(!(this instanceof Ji))return new Ji(e);this.options=cl.assign({level:y7,method:v7,chunkSize:16384,windowBits:15,memLevel:8,strategy:w7,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 m7,this.strm.avail_out=0;var n=fl.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==ta)throw new Error(G0[n]);if(t.header&&fl.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(typeof t.dictionary=="string"?r=U0.string2buf(t.dictionary):mv.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=fl.deflateSetDictionary(this.strm,r),n!==ta)throw new Error(G0[n]);this._dict_set=!0}}Ji.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?H0:b7,typeof e=="string"?n.input=U0.string2buf(e):mv.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 cl.Buf8(r),n.next_out=0,n.avail_out=r),i=fl.deflate(n,o),i!==bv&&i!==ta)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(o===H0||o===yv))&&(this.options.to==="string"?this.onData(U0.buf2binstring(cl.shrinkBuf(n.output,n.next_out))):this.onData(cl.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==bv);return o===H0?(i=fl.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===ta):(o===yv&&(this.onEnd(ta),n.avail_out=0),!0)},Ji.prototype.onData=function(e){this.chunks.push(e)},Ji.prototype.onEnd=function(e){e===ta&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=cl.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function V0(e,t){var n=new Ji(t);if(n.push(e,!0),n.err)throw n.msg||G0[n.err];return n.result}function x7(e,t){return t=t||{},t.raw=!0,V0(e,t)}function A7(e,t){return t=t||{},t.gzip=!0,V0(e,t)}Js.Deflate=Ji,Js.deflate=V0,Js.deflateRaw=x7,Js.gzip=A7;var hl={},_n={},qf=30,E7=12,_7=function(t,n){var r,i,o,a,s,u,l,f,c,h,d,p,b,y,w,_,C,E,T,B,I,R,M,j,O;r=t.state,i=t.next_in,j=t.input,o=i+(t.avail_in-5),a=t.next_out,O=t.output,s=a-(n-t.avail_out),u=a+(t.avail_out-257),l=r.dmax,f=r.wsize,c=r.whave,h=r.wnext,d=r.window,p=r.hold,b=r.bits,y=r.lencode,w=r.distcode,_=(1<<r.lenbits)-1,C=(1<<r.distbits)-1;e:do{b<15&&(p+=j[i++]<<b,b+=8,p+=j[i++]<<b,b+=8),E=y[p&_];t:for(;;){if(T=E>>>24,p>>>=T,b-=T,T=E>>>16&255,T===0)O[a++]=E&65535;else if(T&16){B=E&65535,T&=15,T&&(b<T&&(p+=j[i++]<<b,b+=8),B+=p&(1<<T)-1,p>>>=T,b-=T),b<15&&(p+=j[i++]<<b,b+=8,p+=j[i++]<<b,b+=8),E=w[p&C];n:for(;;){if(T=E>>>24,p>>>=T,b-=T,T=E>>>16&255,T&16){if(I=E&65535,T&=15,b<T&&(p+=j[i++]<<b,b+=8,b<T&&(p+=j[i++]<<b,b+=8)),I+=p&(1<<T)-1,I>l){t.msg="invalid distance too far back",r.mode=qf;break e}if(p>>>=T,b-=T,T=a-s,I>T){if(T=I-T,T>c&&r.sane){t.msg="invalid distance too far back",r.mode=qf;break e}if(R=0,M=d,h===0){if(R+=f-T,T<B){B-=T;do O[a++]=d[R++];while(--T);R=a-I,M=O}}else if(h<T){if(R+=f+h-T,T-=h,T<B){B-=T;do O[a++]=d[R++];while(--T);if(R=0,h<B){T=h,B-=T;do O[a++]=d[R++];while(--T);R=a-I,M=O}}}else if(R+=h-T,T<B){B-=T;do O[a++]=d[R++];while(--T);R=a-I,M=O}for(;B>2;)O[a++]=M[R++],O[a++]=M[R++],O[a++]=M[R++],B-=3;B&&(O[a++]=M[R++],B>1&&(O[a++]=M[R++]))}else{R=a-I;do O[a++]=O[R++],O[a++]=O[R++],O[a++]=O[R++],B-=3;while(B>2);B&&(O[a++]=O[R++],B>1&&(O[a++]=O[R++]))}}else if(T&64){t.msg="invalid distance code",r.mode=qf;break e}else{E=w[(E&65535)+(p&(1<<T)-1)];continue n}break}}else if(T&64)if(T&32){r.mode=E7;break e}else{t.msg="invalid literal/length code",r.mode=qf;break e}else{E=y[(E&65535)+(p&(1<<T)-1)];continue t}break}}while(i<o&&a<u);B=b>>3,i-=B,b-=B<<3,p&=(1<<b)-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=b},wv=lr,na=15,vv=852,xv=592,Av=0,j0=1,Ev=2,S7=[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],C7=[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],k7=[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],T7=[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],I7=function(t,n,r,i,o,a,s,u){var l=u.bits,f=0,c=0,h=0,d=0,p=0,b=0,y=0,w=0,_=0,C=0,E,T,B,I,R,M=null,j=0,O,ie=new wv.Buf16(na+1),se=new wv.Buf16(na+1),ge=null,Ie=0,Xe,De,$e;for(f=0;f<=na;f++)ie[f]=0;for(c=0;c<i;c++)ie[n[r+c]]++;for(p=l,d=na;d>=1&&ie[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&&ie[h]===0;h++);for(p<h&&(p=h),w=1,f=1;f<=na;f++)if(w<<=1,w-=ie[f],w<0)return-1;if(w>0&&(t===Av||d!==1))return-1;for(se[1]=0,f=1;f<na;f++)se[f+1]=se[f]+ie[f];for(c=0;c<i;c++)n[r+c]!==0&&(s[se[n[r+c]]++]=c);if(t===Av?(M=ge=s,O=19):t===j0?(M=S7,j-=257,ge=C7,Ie-=257,O=256):(M=k7,ge=T7,O=-1),C=0,c=0,f=h,R=a,b=p,y=0,B=-1,_=1<<p,I=_-1,t===j0&&_>vv||t===Ev&&_>xv)return 1;for(;;){Xe=f-y,s[c]<O?(De=0,$e=s[c]):s[c]>O?(De=ge[Ie+s[c]],$e=M[j+s[c]]):(De=32+64,$e=0),E=1<<f-y,T=1<<b,h=T;do T-=E,o[R+(C>>y)+T]=Xe<<24|De<<16|$e|0;while(T!==0);for(E=1<<f-1;C&E;)E>>=1;if(E!==0?(C&=E-1,C+=E):C=0,c++,--ie[f]===0){if(f===d)break;f=n[r+s[c]]}if(f>p&&(C&I)!==B){for(y===0&&(y=p),R+=h,b=f-y,w=1<<b;b+y<d&&(w-=ie[b+y],!(w<=0));)b++,w<<=1;if(_+=1<<b,t===j0&&_>vv||t===Ev&&_>xv)return 1;B=C&I,o[B]=p<<24|b<<16|R-a|0}}return C!==0&&(o[R+C]=f-y<<24|64<<16|0),u.bits=p,0},Qt=lr,q0=nv,jn=rv,B7=_7,dl=I7,D7=0,_v=1,Sv=2,Cv=4,F7=5,Zf=6,eo=0,R7=1,M7=2,on=-2,kv=-3,Tv=-4,P7=-5,Iv=8,Bv=1,Dv=2,Fv=3,Rv=4,Mv=5,Pv=6,Lv=7,Nv=8,Ov=9,zv=10,Wf=11,fr=12,Z0=13,Uv=14,W0=15,Gv=16,Hv=17,Vv=18,jv=19,Yf=20,Qf=21,qv=22,Zv=23,Wv=24,Yv=25,Qv=26,Y0=27,Xv=28,$v=29,je=30,Kv=31,L7=32,N7=852,O7=592,z7=15,U7=z7;function Jv(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function G7(){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 Qt.Buf16(320),this.work=new Qt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function ex(e){var t;return!e||!e.state?on:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Bv,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Qt.Buf32(N7),t.distcode=t.distdyn=new Qt.Buf32(O7),t.sane=1,t.back=-1,eo)}function tx(e){var t;return!e||!e.state?on:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,ex(e))}function nx(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))?on:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,tx(e))}function rx(e,t){var n,r;return e?(r=new G7,e.state=r,r.window=null,n=nx(e,t),n!==eo&&(e.state=null),n):on}function H7(e){return rx(e,U7)}var ix=!0,Q0,X0;function V7(e){if(ix){var t;for(Q0=new Qt.Buf32(512),X0=new Qt.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(dl(_v,e.lens,0,288,Q0,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;dl(Sv,e.lens,0,32,X0,0,e.work,{bits:5}),ix=!1}e.lencode=Q0,e.lenbits=9,e.distcode=X0,e.distbits=5}function ox(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 Qt.Buf8(o.wsize)),r>=o.wsize?(Qt.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),Qt.arraySet(o.window,t,n-r,i,o.wnext),r-=i,r?(Qt.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 j7(e,t){var n,r,i,o,a,s,u,l,f,c,h,d,p,b,y=0,w,_,C,E,T,B,I,R,M=new Qt.Buf8(4),j,O,ie=[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 on;n=e.state,n.mode===fr&&(n.mode=Z0),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,f=n.bits,c=s,h=u,R=eo;e:for(;;)switch(n.mode){case Bv:if(n.wrap===0){n.mode=Z0;break}for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(n.wrap&2&&l===35615){n.check=0,M[0]=l&255,M[1]=l>>>8&255,n.check=jn(n.check,M,2,0),l=0,f=0,n.mode=Dv;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=je;break}if((l&15)!==Iv){e.msg="unknown compression method",n.mode=je;break}if(l>>>=4,f-=4,I=(l&15)+8,n.wbits===0)n.wbits=I;else if(I>n.wbits){e.msg="invalid window size",n.mode=je;break}n.dmax=1<<I,e.adler=n.check=1,n.mode=l&512?zv:fr,l=0,f=0;break;case Dv:for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(n.flags=l,(n.flags&255)!==Iv){e.msg="unknown compression method",n.mode=je;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=je;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=jn(n.check,M,2,0)),l=0,f=0,n.mode=Fv;case Fv:for(;f<32;){if(s===0)break e;s--,l+=r[o++]<<f,f+=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=jn(n.check,M,4,0)),l=0,f=0,n.mode=Rv;case Rv:for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=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=jn(n.check,M,2,0)),l=0,f=0,n.mode=Mv;case Mv:if(n.flags&1024){for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=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=jn(n.check,M,2,0)),l=0,f=0}else n.head&&(n.head.extra=null);n.mode=Pv;case Pv: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)),Qt.arraySet(n.head.extra,r,o,d,I)),n.flags&512&&(n.check=jn(n.check,r,d,o)),s-=d,o+=d,n.length-=d),n.length))break e;n.length=0,n.mode=Lv;case Lv: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=jn(n.check,r,d,o)),s-=d,o+=d,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=Nv;case Nv: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=jn(n.check,r,d,o)),s-=d,o+=d,I)break e}else n.head&&(n.head.comment=null);n.mode=Ov;case Ov:if(n.flags&512){for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=je;break}l=0,f=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=fr;break;case zv:for(;f<32;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}e.adler=n.check=Jv(l),l=0,f=0,n.mode=Wf;case Wf: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=f,M7;e.adler=n.check=1,n.mode=fr;case fr:if(t===F7||t===Zf)break e;case Z0:if(n.last){l>>>=f&7,f-=f&7,n.mode=Y0;break}for(;f<3;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}switch(n.last=l&1,l>>>=1,f-=1,l&3){case 0:n.mode=Uv;break;case 1:if(V7(n),n.mode=Yf,t===Zf){l>>>=2,f-=2;break e}break;case 2:n.mode=Hv;break;case 3:e.msg="invalid block type",n.mode=je}l>>>=2,f-=2;break;case Uv:for(l>>>=f&7,f-=f&7;f<32;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=je;break}if(n.length=l&65535,l=0,f=0,n.mode=W0,t===Zf)break e;case W0:n.mode=Gv;case Gv:if(d=n.length,d){if(d>s&&(d=s),d>u&&(d=u),d===0)break e;Qt.arraySet(i,r,o,d,a),s-=d,o+=d,u-=d,a+=d,n.length-=d;break}n.mode=fr;break;case Hv:for(;f<14;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(n.nlen=(l&31)+257,l>>>=5,f-=5,n.ndist=(l&31)+1,l>>>=5,f-=5,n.ncode=(l&15)+4,l>>>=4,f-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=je;break}n.have=0,n.mode=Vv;case Vv:for(;n.have<n.ncode;){for(;f<3;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}n.lens[ie[n.have++]]=l&7,l>>>=3,f-=3}for(;n.have<19;)n.lens[ie[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,j={bits:n.lenbits},R=dl(D7,n.lens,0,19,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid code lengths set",n.mode=je;break}n.have=0,n.mode=jv;case jv:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(C<16)l>>>=w,f-=w,n.lens[n.have++]=C;else{if(C===16){for(O=w+2;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(l>>>=w,f-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=je;break}I=n.lens[n.have-1],d=3+(l&3),l>>>=2,f-=2}else if(C===17){for(O=w+3;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}l>>>=w,f-=w,I=0,d=3+(l&7),l>>>=3,f-=3}else{for(O=w+7;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}l>>>=w,f-=w,I=0,d=11+(l&127),l>>>=7,f-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=je;break}for(;d--;)n.lens[n.have++]=I}}if(n.mode===je)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=je;break}if(n.lenbits=9,j={bits:n.lenbits},R=dl(_v,n.lens,0,n.nlen,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid literal/lengths set",n.mode=je;break}if(n.distbits=6,n.distcode=n.distdyn,j={bits:n.distbits},R=dl(Sv,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,j),n.distbits=j.bits,R){e.msg="invalid distances set",n.mode=je;break}if(n.mode=Yf,t===Zf)break e;case Yf:n.mode=Qf;case Qf: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=f,B7(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,f=n.bits,n.mode===fr&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(_&&!(_&240)){for(E=w,T=_,B=C;y=n.lencode[B+((l&(1<<E+T)-1)>>E)],w=y>>>24,_=y>>>16&255,C=y&65535,!(E+w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}l>>>=E,f-=E,n.back+=E}if(l>>>=w,f-=w,n.back+=w,n.length=C,_===0){n.mode=Qv;break}if(_&32){n.back=-1,n.mode=fr;break}if(_&64){e.msg="invalid literal/length code",n.mode=je;break}n.extra=_&15,n.mode=qv;case qv:if(n.extra){for(O=n.extra;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,f-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=Zv;case Zv:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(!(_&240)){for(E=w,T=_,B=C;y=n.distcode[B+((l&(1<<E+T)-1)>>E)],w=y>>>24,_=y>>>16&255,C=y&65535,!(E+w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}l>>>=E,f-=E,n.back+=E}if(l>>>=w,f-=w,n.back+=w,_&64){e.msg="invalid distance code",n.mode=je;break}n.offset=C,n.extra=_&15,n.mode=Wv;case Wv:if(n.extra){for(O=n.extra;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,f-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=je;break}n.mode=Yv;case Yv: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=je;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),b=n.window}else b=i,p=a-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[a++]=b[p++];while(--d);n.length===0&&(n.mode=Qf);break;case Qv:if(u===0)break e;i[a++]=n.length,u--,n.mode=Qf;break;case Y0:if(n.wrap){for(;f<32;){if(s===0)break e;s--,l|=r[o++]<<f,f+=8}if(h-=u,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?jn(n.check,i,h,a-h):q0(n.check,i,h,a-h)),h=u,(n.flags?l:Jv(l))!==n.check){e.msg="incorrect data check",n.mode=je;break}l=0,f=0}n.mode=Xv;case Xv:if(n.wrap&&n.flags){for(;f<32;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=je;break}l=0,f=0}n.mode=$v;case $v:R=R7;break e;case je:R=kv;break e;case Kv:return Tv;case L7:default:return on}return e.next_out=a,e.avail_out=u,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=f,(n.wsize||h!==e.avail_out&&n.mode<je&&(n.mode<Y0||t!==Cv))&&ox(e,e.output,e.next_out,h-e.avail_out),c-=e.avail_in,h-=e.avail_out,e.total_in+=c,e.total_out+=h,n.total+=h,n.wrap&&h&&(e.adler=n.check=n.flags?jn(n.check,i,h,e.next_out-h):q0(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===fr?128:0)+(n.mode===Yf||n.mode===W0?256:0),(c===0&&h===0||t===Cv)&&R===eo&&(R=P7),R}function q7(e){if(!e||!e.state)return on;var t=e.state;return t.window&&(t.window=null),e.state=null,eo}function Z7(e,t){var n;return!e||!e.state||(n=e.state,!(n.wrap&2))?on:(n.head=t,t.done=!1,eo)}function W7(e,t){var n=t.length,r,i,o;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==Wf)?on:r.mode===Wf&&(i=1,i=q0(i,t,n,0),i!==r.check)?kv:(o=ox(e,t,n,n),o?(r.mode=Kv,Tv):(r.havedict=1,eo))}_n.inflateReset=tx,_n.inflateReset2=nx,_n.inflateResetKeep=ex,_n.inflateInit=H7,_n.inflateInit2=rx,_n.inflate=j7,_n.inflateEnd=q7,_n.inflateGetHeader=Z7,_n.inflateSetDictionary=W7,_n.inflateInfo="pako inflate (from Nodeca project)";var ax={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 Y7(){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 Q7=Y7,ra=_n,pl=lr,Xf=Ki,tt=ax,$0=P0,X7=gv,$7=Q7,sx=Object.prototype.toString;function to(e){if(!(this instanceof to))return new to(e);this.options=pl.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 X7,this.strm.avail_out=0;var n=ra.inflateInit2(this.strm,t.windowBits);if(n!==tt.Z_OK)throw new Error($0[n]);if(this.header=new $7,ra.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Xf.string2buf(t.dictionary):sx.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=ra.inflateSetDictionary(this.strm,t.dictionary),n!==tt.Z_OK)))throw new Error($0[n])}to.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,o,a,s,u,l,f=!1;if(this.ended)return!1;a=t===~~t?t:t===!0?tt.Z_FINISH:tt.Z_NO_FLUSH,typeof e=="string"?n.input=Xf.binstring2buf(e):sx.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 pl.Buf8(r),n.next_out=0,n.avail_out=r),o=ra.inflate(n,tt.Z_NO_FLUSH),o===tt.Z_NEED_DICT&&i&&(o=ra.inflateSetDictionary(this.strm,i)),o===tt.Z_BUF_ERROR&&f===!0&&(o=tt.Z_OK,f=!1),o!==tt.Z_STREAM_END&&o!==tt.Z_OK)return this.onEnd(o),this.ended=!0,!1;n.next_out&&(n.avail_out===0||o===tt.Z_STREAM_END||n.avail_in===0&&(a===tt.Z_FINISH||a===tt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=Xf.utf8border(n.output,n.next_out),u=n.next_out-s,l=Xf.buf2string(n.output,s),n.next_out=u,n.avail_out=r-u,u&&pl.arraySet(n.output,n.output,s,u,0),this.onData(l)):this.onData(pl.shrinkBuf(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(f=!0)}while((n.avail_in>0||n.avail_out===0)&&o!==tt.Z_STREAM_END);return o===tt.Z_STREAM_END&&(a=tt.Z_FINISH),a===tt.Z_FINISH?(o=ra.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,o===tt.Z_OK):(a===tt.Z_SYNC_FLUSH&&(this.onEnd(tt.Z_OK),n.avail_out=0),!0)},to.prototype.onData=function(e){this.chunks.push(e)},to.prototype.onEnd=function(e){e===tt.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=pl.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function K0(e,t){var n=new to(t);if(n.push(e,!0),n.err)throw n.msg||$0[n.err];return n.result}function K7(e,t){return t=t||{},t.raw=!0,K0(e,t)}hl.Inflate=to,hl.inflate=K0,hl.inflateRaw=K7,hl.ungzip=K0;var J7=lr.assign,eM=Js,tM=hl,nM=ax,lx={};J7(lx,eM,tM,nM);var $f=lx;async function Jr(e){try{let t,n=0,r=0;const i=[];let o=0,a;do{const u=e.subarray(n);if(a=new $f.Inflate,{strm:t}=a,a.push(u,$f.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 pe.Buffer.from(s)}catch(t){throw`${t}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):t}}async function ux(e,t){try{let n;const{minv:r,maxv:i}=t;let o=r.blockPosition,a=r.dataPosition;const s=[],u=[],l=[];let f=0,c=0;do{const p=e.subarray(o-r.blockPosition),b=new $f.Inflate;if({strm:n}=b,b.push(p,$f.Z_SYNC_FLUSH),b.err)throw new Error(b.msg);const y=b.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 _=o;if(o+=n.next_in,a+=w,_>=i.blockPosition){s[c]=s[c].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),u.push(o),l.push(a),f+=s[c].length;break}f+=s[c].length,c++}while(n.avail_in);const h=new Uint8Array(f);for(let p=0,b=0;p<s.length;p++)h.set(s[p],b),b+=s[p].length;return{buffer:pe.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 rM=Le,an=null;try{an=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 Ht(e){return(e&&e.__isLong__)===!0}Le.isLong=Ht;var fx={},cx={};function no(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=cx[e],r)?r:(n=Ne(e,(e|0)<0?-1:0,!0),i&&(cx[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=fx[e],r)?r:(n=Ne(e,e<0?-1:0,!1),i&&(fx[e]=n),n))}Le.fromInt=no;function sn(e,t){if(isNaN(e))return t?ro:ln;if(t){if(e<0)return ro;if(e>=dx)return yx}else{if(e<=-px)return Vt;if(e+1>=px)return bx}return e<0?sn(-e,t).neg():Ne(e%ia|0,e/ia|0,t)}Le.fromNumber=sn;function Ne(e,t,n){return new Le(e,t,n)}Le.fromBits=Ne;var Kf=Math.pow;function J0(e,t,n){if(e.length===0)throw Error("empty string");if(e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return ln;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 J0(e.substring(1),t,n).neg();for(var i=sn(Kf(n,8)),o=ln,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=sn(Kf(n,s));o=o.mul(l).add(sn(u))}else o=o.mul(i),o=o.add(sn(u))}return o.unsigned=t,o}Le.fromString=J0;function Sn(e,t){return typeof e=="number"?sn(e,t):typeof e=="string"?J0(e,t):Ne(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}Le.fromValue=Sn;var hx=65536,iM=1<<24,ia=hx*hx,dx=ia*ia,px=dx/2,gx=no(iM),ln=no(0);Le.ZERO=ln;var ro=no(0,!0);Le.UZERO=ro;var oa=no(1);Le.ONE=oa;var mx=no(1,!0);Le.UONE=mx;var ep=no(-1);Le.NEG_ONE=ep;var bx=Ne(-1,2147483647,!1);Le.MAX_VALUE=bx;var yx=Ne(-1,-1,!0);Le.MAX_UNSIGNED_VALUE=yx;var Vt=Ne(0,-2147483648,!1);Le.MIN_VALUE=Vt;var Q=Le.prototype;Q.toInt=function(){return this.unsigned?this.low>>>0:this.low},Q.toNumber=function(){return this.unsigned?(this.high>>>0)*ia+(this.low>>>0):this.high*ia+(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=sn(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=sn(Kf(t,6),this.unsigned),a=this,s="";;){var u=a.div(o),l=a.sub(u.mul(o)).toInt()>>>0,f=l.toString(t);if(a=u,a.isZero())return f+s;for(;f.length<6;)f="0"+f;s=""+f+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=Sn(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=Sn(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(oa)},Q.neg=Q.negate,Q.add=function(t){Ht(t)||(t=Sn(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,f=0,c=0,h=0,d=0;return d+=o+l,h+=d>>>16,d&=65535,h+=i+u,c+=h>>>16,h&=65535,c+=r+s,f+=c>>>16,c&=65535,f+=n+a,f&=65535,Ne(h<<16|d,f<<16|c,this.unsigned)},Q.subtract=function(t){return Ht(t)||(t=Sn(t)),this.add(t.neg())},Q.sub=Q.subtract,Q.multiply=function(t){if(this.isZero())return ln;if(Ht(t)||(t=Sn(t)),an){var n=an.mul(this.low,this.high,t.low,t.high);return Ne(n,an.get_high(),this.unsigned)}if(t.isZero())return ln;if(this.eq(Vt))return t.isOdd()?Vt:ln;if(t.eq(Vt))return this.isOdd()?Vt:ln;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(gx)&&t.lt(gx))return sn(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,f=t.low&65535,c=0,h=0,d=0,p=0;return p+=a*f,d+=p>>>16,p&=65535,d+=o*f,h+=d>>>16,d&=65535,d+=a*l,h+=d>>>16,d&=65535,h+=i*f,c+=h>>>16,h&=65535,h+=o*l,c+=h>>>16,h&=65535,h+=a*u,c+=h>>>16,h&=65535,c+=r*f+i*l+o*u+a*s,c&=65535,Ne(d<<16|p,c<<16|h,this.unsigned)},Q.mul=Q.multiply,Q.divide=function(t){if(Ht(t)||(t=Sn(t)),t.isZero())throw Error("division by zero");if(an){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?an.div_u:an.div_s)(this.low,this.high,t.low,t.high);return Ne(n,an.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?ro:ln;var r,i,o;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return ro;if(t.gt(this.shru(1)))return mx;o=ro}else{if(this.eq(Vt)){if(t.eq(oa)||t.eq(ep))return Vt;if(t.eq(Vt))return oa;var a=this.shr(1);return r=a.div(t).shl(1),r.eq(ln)?t.isNegative()?oa:ep:(i=this.sub(t.mul(r)),o=r.add(i.div(t)),o)}else if(t.eq(Vt))return this.unsigned?ro:ln;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=ln}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:Kf(2,s-48),l=sn(r),f=l.mul(t);f.isNegative()||f.gt(i);)r-=u,l=sn(r,this.unsigned),f=l.mul(t);l.isZero()&&(l=oa),o=o.add(l),i=i.sub(f)}return o},Q.div=Q.divide,Q.modulo=function(t){if(Ht(t)||(t=Sn(t)),an){var n=(this.unsigned?an.rem_u:an.rem_s)(this.low,this.high,t.low,t.high);return Ne(n,an.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 Ht(t)||(t=Sn(t)),Ne(this.low&t.low,this.high&t.high,this.unsigned)},Q.or=function(t){return Ht(t)||(t=Sn(t)),Ne(this.low|t.low,this.high|t.high,this.unsigned)},Q.xor=function(t){return Ht(t)||(t=Sn(t)),Ne(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?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 Ht(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(Ht(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 Jf=$s(rM),ec=1;class oM{constructor({filehandle:t,path:n}){if(t)this.filehandle=t;else if(n)this.filehandle=new ht(n);else throw new TypeError("either filehandle or path must be defined")}_readLongWithOverflow(t,n=0,r=!0){const i=Jf.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=pe.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=pe.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[ec],b=d?d[ec]:1/0;return p<=n&&b>n?0:p<n?-1:1};let s=0,u=i.length-1,l=Math.floor(i.length/2),f=a(i[l],i[l+1]);for(;f!==0;)f>0?u=l-1:f<0&&(s=l+1),l=Math.ceil((u-s)/2)+s,f=a(i[l],i[l+1]);o.push(i[l]);let c=l+1;for(;c<i.length&&(o.push(i[c]),!(i[c][ec]>=r));c+=1);return o[o.length-1][ec]<r&&o.push([]),o}}class wx{constructor({filehandle:t,path:n,gziFilehandle:r,gziPath:i}){if(t)this.filehandle=t;else if(n)this.filehandle=new ht(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 oM({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=pe.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 Jr(t.slice(0,o))}async read(t,n,r,i){const o=await this.gzi.getRelevantBlocksForRead(r,i),a=pe.Buffer.allocUnsafe(32768*2);let s=n,u=0;for(let l=0;l<o.length-1;l+=1){const f=await this._readAndUncompressBlock(a,o[l],o[l+1]),[,c]=o[l],h=c>=i?0:i-c,d=Math.min(i+r,c+f.length)-c;h>=0&&h<f.length&&(f.copy(t,s,h,d),s+=d-h,u+=d-h)}return{bytesRead:u,buffer:t}}}function vx(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}async function aM(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 xx{constructor({fasta:t,fai:n,path:r,faiPath:i,chunkSizeLimit:o=1e6}){if(t)this.fasta=t;else if(r)this.fasta=new ht(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 ht(i);else if(r)this.fai=new ht(`${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=aM(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=vx(t,n),s=vx(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 sM extends xx{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 wx({filehandle:t,gziFilehandle:o}):n&&a&&(this.fasta=new wx({path:n,gziPath:a}))}}function Ax(e){return e.split(">").filter(t=>/\S/.test(t)).map(t=>{const[n,...r]=t.split(`
320
+ `),[i,...o]=n.split(" "),a=r.join("").replace(/\s/g,"");return{id:i,description:o.join(" "),sequence:a}})}class lM{constructor({fasta:t,path:n}){if(t)this.fasta=t;else if(n)this.fasta=new ht(n);else throw new Error("Need to pass fasta or path");this.data=this.fasta.readFile().then(r=>{const i=r.toString("utf8");return Ax(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 uM=Object.freeze(Object.defineProperty({__proto__:null,BgzipIndexedFasta:sM,FetchableSmallFasta:lM,IndexedFasta:xx,parseSmallFasta:Ax},Symbol.toStringTag,{value:"Module"})),tc=BigInt(32);function fM(e,t,n){const r=+!!n,i=+!n;return BigInt(e.getInt32(t,n)*i+e.getInt32(t+4,n)*r)<<tc|BigInt(e.getUint32(t,n)*r+e.getUint32(t+4,n)*i)}function cM(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)<<tc|BigInt(r*o+i*a)}function hM(e,t,n,r){const i=Number(n>>tc),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 dM(e,t,n,r){const i=Number(n>>tc),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 fM(this,e,t)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(e,t){return cM(this,e,t)}),"setBigInt64"in DataView||(DataView.prototype.setBigInt64=function(e,t,n){hM(this,e,t,n)}),"setBigUint64"in DataView||(DataView.prototype.setBigUint64=function(e,t,n){dM(this,e,t,n)});class pM{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+`
321
+ `}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 Cn=new Map,io="___parser_",kn={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},nc={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"},rc={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 Te=class Bn{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new Bn}primitiveGenerateN(t,n){const r=nc[t],i=rc[t];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${kn[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 Cn.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"&&!Cn.has(n.type)&&!(n.type in kn))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"&&!Cn.has(o)&&!(o in kn))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 Bn)&&!Cn.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof Bn)&&!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 kn)&&!Cn.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 pM(t,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${io+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 ${io+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=Cn.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(kn).indexOf(this.type)>=0)t=kn[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=kn[this.options.type]:this.options.type instanceof Bn&&(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 Bn;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=(f=0)=>{let c=0;for(let h=f;h<t.bitFields.length;h++){const d=t.bitFields[h].options.length;if(c+d>32)break;c+=d}return c},o=f=>(f<=8?(t.pushCode(`${r} = dataView.getUint8(offset);`),f=8):f<=16?(t.pushCode(`${r} = dataView.getUint16(offset);`),f=16):f<=24?(t.pushCode(`${r} = (dataView.getUint16(offset) << 8) | dataView.getUint8(offset + 2);`),f=24):(t.pushCode(`${r} = dataView.getUint32(offset);`),f=32),t.pushCode(`offset += ${f/8};`),f);let a=0;const s=this.endian==="be";let u=0,l=0;t.bitFields.forEach((f,c)=>{let h=f.options.length;if(h>l){if(l){const b=-1>>>32-l;t.pushCode(`${f.varName} = (${r} & 0x${b.toString(16)}) << ${h-l};`),h-=l}a=0,l=u=o(i(c)-l)}const d=s?u-a-h:a,p=-1>>>32-h;t.pushCode(`${f.varName} ${h<f.options.length?"|=":"="} ${r} >> ${d} & 0x${p.toString(16)};`),f.options.length===32&&t.pushCode(`${f.varName} >>>= 0`),f.options.assert&&f.generateAssert(t),f.options.formatter&&f.generateFormatter(t,f.varName,f.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(Cn.get(i)){const f=t.generateTmpVariable();if(t.pushCode(`var ${f} = ${io+i}(offset, {`),t.useContextVariables){const c=t.generateVariable();t.pushCode(`$parent: ${c},`),t.pushCode(`$root: ${c}.$root,`),!this.options.readUntil&&r===void 0&&t.pushCode(`$index: ${n} - ${o},`)}t.pushCode("});"),t.pushCode(`var ${s} = ${f}.result; offset = ${f}.offset;`),i!==this.alias&&t.addReference(i)}else{const f=nc[i],c=rc[i];t.pushCode(`var ${s} = dataView.get${f}(offset, ${c});`),t.pushCode(`offset += ${kn[i]};`)}else if(i instanceof Bn){t.pushCode(`var ${s} = {};`);const f=t.generateVariable();t.pushScope(s),t.useContextVariables&&(t.pushCode(`${s}.$parent = ${f};`),t.pushCode(`${s}.$root = ${f}.$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 f=this.options.readUntil,c=t.addImport(f);t.pushCode(`while (!${c}.call(${t.generateVariable()}, ${s}, buffer.subarray(offset)));`)}}generateChoiceCase(t,n,r){if(typeof r=="string"){const i=t.generateVariable(this.varName);if(Cn.has(r)){const o=t.generateTmpVariable();t.pushCode(`var ${o} = ${io+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=nc[r],a=rc[r];t.pushCode(`${i} = dataView.get${o}(offset, ${a});`),t.pushCode(`offset += ${kn[r]}`)}}else r instanceof Bn&&(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 Bn){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(Cn.has(this.options.type)){const r=t.generateTmpVariable();if(t.pushCode(`var ${r} = ${io+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(),f=t.generateTmpVariable();t.pushCode(`var ${l} = offset;`),t.pushCode(`var ${f} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${f} = dataView.getUint8(offset);`);const c=t.addImport(u);t.pushCode(`if (${c}.call(${t.generateVariable()}, ${f}, 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 Bn)this.varName&&t.pushCode(`${n} = {};`),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(Cn.has(this.options.type)){const u=t.generateTmpVariable();t.pushCode(`var ${u} = ${io+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 Bn){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(Cn.has(this.options.type)){const a=t.generateTmpVariable();if(t.pushCode(`var ${a} = ${io+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(kn).indexOf(this.options.type)>=0){const a=nc[n],s=rc[n];t.pushCode(`${o} = dataView.get${a}(offset, ${s});`),t.pushCode(`offset += ${kn[n]};`)}t.pushCode(`offset = ${i};`)}generateSaveOffset(t){const n=t.generateVariable(this.varName);t.pushCode(`${n} = offset`)}};var Ex={},tp={},oo={},gl={};Object.defineProperty(gl,"__esModule",{value:!0});function np(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _x(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 rp(e,t,n){return t&&_x(e.prototype,t),n&&_x(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function gM(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&&ip(e,t)}function aa(e){return aa=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},aa(e)}function ip(e,t){return ip=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},ip(e,t)}function mM(){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 ml(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function bM(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 ml(e)}function yM(e){var t=mM();return function(){var r=aa(e),i;if(t){var o=aa(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return bM(this,i)}}function wM(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=aa(e),e!==null););return e}function ic(){return typeof Reflect<"u"&&Reflect.get?ic=Reflect.get.bind():ic=function(t,n,r){var i=wM(t,n);if(i){var o=Object.getOwnPropertyDescriptor(i,n);return o.get?o.get.call(arguments.length<3?t:r):o.value}},ic.apply(this,arguments)}var Sx=function(){function e(){np(this,e),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return rp(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}(),op=function(e){gM(n,e);var t=yM(n);function n(){var r;return np(this,n),r=t.call(this),r.listeners||Sx.call(ml(r)),Object.defineProperty(ml(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(ml(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(ml(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return rp(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)),ic(aa(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(Sx),Cx=function(){function e(){np(this,e),Object.defineProperty(this,"signal",{value:new op,writable:!0,configurable:!0})}return rp(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&&(Cx.prototype[Symbol.toStringTag]="AbortController",op.prototype[Symbol.toStringTag]="AbortSignal");function vM(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 xM(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(!vM({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 b=new i(h,d);return p&&Object.defineProperty(b,"signal",{writable:!1,enumerable:!1,configurable:!0,value:p}),b},u.prototype=i.prototype);var l=n,f=function(h,d){var p=u&&u.prototype.isPrototypeOf(h)?h.signal:d?d.signal:void 0;if(p){var b;try{b=new DOMException("Aborted","AbortError")}catch{b=new Error("Aborted"),b.name="AbortError"}if(p.aborted)return Promise.reject(b);var y=new Promise(function(w,_){p.addEventListener("abort",function(){return _(b)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([y,l(h,d)])}return l(h,d)};return{fetch:f,Request:u}}gl.AbortController=Cx,gl.AbortSignal=op,gl.abortableFetch=xM,Object.defineProperty(oo,"__esModule",{value:!0}),oo.AbortSignal=oo.AbortController=void 0;const kx=gl;var oc=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 AM=typeof oc().AbortController>"u"?kx.AbortController:oc().AbortController;oo.AbortController=AM;let EM=typeof oc().AbortController>"u"?kx.AbortSignal:oc().AbortSignal;oo.AbortSignal=EM;var ap={};Object.defineProperty(ap,"__esModule",{value:!0});const _M=oo;class SM{}class CM{constructor(){this.signals=new Set,this.abortController=new _M.AbortController}addSignal(t=new SM){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()}}ap.default=CM;var sp={};Object.defineProperty(sp,"__esModule",{value:!0});class kM{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)})}}sp.default=kM;var Tx=Mf&&Mf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(tp,"__esModule",{value:!0});const TM=oo,IM=Tx(ap),BM=Tx(sp);class ac{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 IM.default,a=new BM.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 TM.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),ac.checkSinglePromise(o.promise,r)):(this.fill(t,n,r,i),ac.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}}tp.default=ac;var DM=Mf&&Mf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ex,"__esModule",{value:!0});const FM=DM(tp);var sc=Ex.default=FM.default;class RM{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 MM=RM;const lc=$s(MM);class ei{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 ei(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 ei(i.min(),a.max()))}return r.push(i),r.length===1?r[0]:new ei(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 f=[];for(;u<a&&l<s;){n=i[u],r=o[l];const c=Math.max(n.min(),r.min()),h=Math.min(n.max(),r.max());h>=c&&f.push(new ei(c,h)),n.max()>r.max()?l+=1:u+=1}if(f.length===0)throw new Error("found range of length 0");return f.length===1?f[0]:new ei(f)}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 PM=4,Ix=0,Bx=1,LM=2;function sa(e){let t=e.length;for(;--t>=0;)e[t]=0}const NM=0,Dx=1,OM=2,zM=3,UM=258,lp=29,bl=256,yl=bl+1+lp,la=30,up=19,Fx=2*yl+1,ao=15,fp=16,GM=7,cp=256,Rx=16,Mx=17,Px=18,hp=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]),uc=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]),HM=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Lx=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),VM=512,cr=new Array((yl+2)*2);sa(cr);const wl=new Array(la*2);sa(wl);const vl=new Array(VM);sa(vl);const xl=new Array(UM-zM+1);sa(xl);const dp=new Array(lp);sa(dp);const fc=new Array(la);sa(fc);function pp(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 Nx,Ox,zx;function gp(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const Ux=e=>e<256?vl[e]:vl[256+(e>>>7)],Al=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},jt=(e,t,n)=>{e.bi_valid>fp-n?(e.bi_buf|=t<<e.bi_valid&65535,Al(e,e.bi_buf),e.bi_buf=t>>fp-e.bi_valid,e.bi_valid+=n-fp):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},qn=(e,t,n)=>{jt(e,n[t*2],n[t*2+1])},Gx=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},jM=e=>{e.bi_valid===16?(Al(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)},qM=(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,f,c,h,d,p,b=0;for(h=0;h<=ao;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Fx;l++)f=e.heap[l],h=n[n[f*2+1]*2+1]+1,h>u&&(h=u,b++),n[f*2+1]=h,!(f>r)&&(e.bl_count[h]++,d=0,f>=s&&(d=a[f-s]),p=n[f*2],e.opt_len+=p*(h+d),o&&(e.static_len+=p*(i[f*2+1]+d)));if(b!==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]--,b-=2}while(b>0);for(h=u;h!==0;h--)for(f=e.bl_count[h];f!==0;)c=e.heap[--l],!(c>r)&&(n[c*2+1]!==h&&(e.opt_len+=(h-n[c*2+1])*n[c*2],n[c*2+1]=h),f--)}},Hx=(e,t,n)=>{const r=new Array(ao+1);let i=0,o,a;for(o=1;o<=ao;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]=Gx(r[s]++,s))}},ZM=()=>{let e,t,n,r,i;const o=new Array(ao+1);for(n=0,r=0;r<lp-1;r++)for(dp[r]=n,e=0;e<1<<hp[r];e++)xl[n++]=r;for(xl[n-1]=r,i=0,r=0;r<16;r++)for(fc[r]=i,e=0;e<1<<uc[r];e++)vl[i++]=r;for(i>>=7;r<la;r++)for(fc[r]=i<<7,e=0;e<1<<uc[r]-7;e++)vl[256+i++]=r;for(t=0;t<=ao;t++)o[t]=0;for(e=0;e<=143;)cr[e*2+1]=8,e++,o[8]++;for(;e<=255;)cr[e*2+1]=9,e++,o[9]++;for(;e<=279;)cr[e*2+1]=7,e++,o[7]++;for(;e<=287;)cr[e*2+1]=8,e++,o[8]++;for(Hx(cr,yl+1,o),e=0;e<la;e++)wl[e*2+1]=5,wl[e*2]=Gx(e,5);Nx=new pp(cr,hp,bl+1,yl,ao),Ox=new pp(wl,uc,0,la,ao),zx=new pp(new Array(0),HM,0,up,GM)},Vx=e=>{let t;for(t=0;t<yl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<la;t++)e.dyn_dtree[t*2]=0;for(t=0;t<up;t++)e.bl_tree[t*2]=0;e.dyn_ltree[cp*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},jx=e=>{e.bi_valid>8?Al(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},qx=(e,t,n,r)=>{const i=t*2,o=n*2;return e[i]<e[o]||e[i]===e[o]&&r[t]<=r[n]},mp=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&qx(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!qx(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},Zx=(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?qn(e,i,t):(a=xl[i],qn(e,a+bl+1,t),s=hp[a],s!==0&&(i-=dp[a],jt(e,i,s)),r--,a=Ux(r),qn(e,a,n),s=uc[a],s!==0&&(r-=fc[a],jt(e,r,s)));while(o<e.sym_next);qn(e,cp,t)},bp=(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=Fx,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--)mp(e,n,a);l=o;do a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],mp(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++,mp(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],qM(e,t),Hx(n,u,e.bl_count)},Wx=(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[Rx*2]++):s<=10?e.bl_tree[Mx*2]++:e.bl_tree[Px*2]++,s=0,i=o,a===0?(u=138,l=3):o===a?(u=6,l=3):(u=7,l=4))},Yx=(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 qn(e,o,e.bl_tree);while(--s!==0);else o!==0?(o!==i&&(qn(e,o,e.bl_tree),s--),qn(e,Rx,e.bl_tree),jt(e,s-3,2)):s<=10?(qn(e,Mx,e.bl_tree),jt(e,s-3,3)):(qn(e,Px,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)}},WM=e=>{let t;for(Wx(e,e.dyn_ltree,e.l_desc.max_code),Wx(e,e.dyn_dtree,e.d_desc.max_code),bp(e,e.bl_desc),t=up-1;t>=3&&e.bl_tree[Lx[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},YM=(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[Lx[i]*2+1],3);Yx(e,e.dyn_ltree,t-1),Yx(e,e.dyn_dtree,n-1)},QM=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Ix;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Bx;for(n=32;n<bl;n++)if(e.dyn_ltree[n*2]!==0)return Bx;return Ix};let Qx=!1;const XM=e=>{Qx||(ZM(),Qx=!0),e.l_desc=new gp(e.dyn_ltree,Nx),e.d_desc=new gp(e.dyn_dtree,Ox),e.bl_desc=new gp(e.bl_tree,zx),e.bi_buf=0,e.bi_valid=0,Vx(e)},Xx=(e,t,n,r)=>{jt(e,(NM<<1)+(r?1:0),3),jx(e),Al(e,n),Al(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},$M=e=>{jt(e,Dx<<1,3),qn(e,cp,cr),jM(e)},KM=(e,t,n,r)=>{let i,o,a=0;e.level>0?(e.strm.data_type===LM&&(e.strm.data_type=QM(e)),bp(e,e.l_desc),bp(e,e.d_desc),a=WM(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?Xx(e,t,n,r):e.strategy===PM||o===i?(jt(e,(Dx<<1)+(r?1:0),3),Zx(e,cr,wl)):(jt(e,(OM<<1)+(r?1:0),3),YM(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),Zx(e,e.dyn_ltree,e.dyn_dtree)),Vx(e),r&&jx(e)},JM=(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[(xl[n]+bl+1)*2]++,e.dyn_dtree[Ux(t)*2]++),e.sym_next===e.sym_end);var eP=XM,tP=Xx,nP=KM,rP=JM,iP=$M,oP={_tr_init:eP,_tr_stored_block:tP,_tr_flush_block:nP,_tr_tally:rP,_tr_align:iP},El=(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 aP=()=>{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},sP=new Uint32Array(aP());var dt=(e,t,n,r)=>{const i=sP,o=r+n;e^=-1;for(let a=r;a<o;a++)e=e>>>8^i[(e^t[a])&255];return e^-1},ua={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"},_l={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:lP,_tr_stored_block:yp,_tr_flush_block:uP,_tr_tally:ti,_tr_align:fP}=oP,{Z_NO_FLUSH:ni,Z_PARTIAL_FLUSH:cP,Z_FULL_FLUSH:hP,Z_FINISH:un,Z_BLOCK:$x,Z_OK:wt,Z_STREAM_END:Kx,Z_STREAM_ERROR:Zn,Z_DATA_ERROR:dP,Z_BUF_ERROR:wp,Z_DEFAULT_COMPRESSION:pP,Z_FILTERED:gP,Z_HUFFMAN_ONLY:cc,Z_RLE:mP,Z_FIXED:bP,Z_DEFAULT_STRATEGY:yP,Z_UNKNOWN:wP,Z_DEFLATED:hc}=_l,vP=9,xP=15,AP=8,EP=29,vp=256+1+EP,_P=30,SP=19,CP=2*vp+1,kP=15,de=3,ri=258,Wn=ri+de+1,TP=32,fa=42,xp=57,Ap=69,Ep=73,_p=91,Sp=103,so=113,Sl=666,Bt=1,ca=2,lo=3,ha=4,IP=3,uo=(e,t)=>(e.msg=ua[t],t),Jx=e=>e*2-(e>4?9:0),ii=e=>{let t=e.length;for(;--t>=0;)e[t]=0},BP=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 oi=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const Xt=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))},$t=(e,t)=>{uP(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Xt(e.strm)},xe=(e,t)=>{e.pending_buf[e.pending++]=t},Cl=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},Cp=(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=El(e.adler,t,i,n):e.state.wrap===2&&(e.adler=dt(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},eA=(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-Wn?e.strstart-(e.w_size-Wn):0,l=e.window,f=e.w_mask,c=e.prev,h=e.strstart+ri;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=ri-(h-r),r=h-ri,o>a){if(e.match_start=t,a=o,o>=s)break;d=l[r+a-1],p=l[r+a]}}while((t=c[t&f])>u&&--n!==0);return a<=e.lookahead?a:e.lookahead},da=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Wn)&&(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),BP(e),r+=t),e.strm.avail_in===0)break;if(n=Cp(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=de)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=oi(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=oi(e,e.ins_h,e.window[i+de-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<de)););}while(e.lookahead<Wn&&e.strm.avail_in!==0)},tA=(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!==un||t===ni||r!==i+e.strm.avail_in)))break;a=t===un&&r===i+e.strm.avail_in?1:0,yp(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,Xt(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&&(Cp(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?ha:t!==ni&&t!==un&&e.strm.avail_in===0&&e.strstart===e.block_start?ca:(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&&(Cp(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===un)&&t!==ni&&e.strm.avail_in===0&&i<=o)&&(r=i>o?o:i,a=t===un&&e.strm.avail_in===0&&r===i?1:0,yp(e,e.block_start,r,a),e.block_start+=r,Xt(e.strm)),a?lo:Bt)},kp=(e,t)=>{let n,r;for(;;){if(e.lookahead<Wn){if(da(e),e.lookahead<Wn&&t===ni)return Bt;if(e.lookahead===0)break}if(n=0,e.lookahead>=de&&(e.ins_h=oi(e,e.ins_h,e.window[e.strstart+de-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-Wn&&(e.match_length=eA(e,n)),e.match_length>=de)if(r=ti(e,e.strstart-e.match_start,e.match_length-de),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=de){e.match_length--;do e.strstart++,e.ins_h=oi(e,e.ins_h,e.window[e.strstart+de-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=oi(e,e.ins_h,e.window[e.strstart+1]);else r=ti(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&($t(e,!1),e.strm.avail_out===0))return Bt}return e.insert=e.strstart<de-1?e.strstart:de-1,t===un?($t(e,!0),e.strm.avail_out===0?lo:ha):e.sym_next&&($t(e,!1),e.strm.avail_out===0)?Bt:ca},pa=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<Wn){if(da(e),e.lookahead<Wn&&t===ni)return Bt;if(e.lookahead===0)break}if(n=0,e.lookahead>=de&&(e.ins_h=oi(e,e.ins_h,e.window[e.strstart+de-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=de-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Wn&&(e.match_length=eA(e,n),e.match_length<=5&&(e.strategy===gP||e.match_length===de&&e.strstart-e.match_start>4096)&&(e.match_length=de-1)),e.prev_length>=de&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-de,r=ti(e,e.strstart-1-e.prev_match,e.prev_length-de),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=oi(e,e.ins_h,e.window[e.strstart+de-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=de-1,e.strstart++,r&&($t(e,!1),e.strm.avail_out===0))return Bt}else if(e.match_available){if(r=ti(e,0,e.window[e.strstart-1]),r&&$t(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Bt}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=ti(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<de-1?e.strstart:de-1,t===un?($t(e,!0),e.strm.avail_out===0?lo:ha):e.sym_next&&($t(e,!1),e.strm.avail_out===0)?Bt:ca},DP=(e,t)=>{let n,r,i,o;const a=e.window;for(;;){if(e.lookahead<=ri){if(da(e),e.lookahead<=ri&&t===ni)return Bt;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=de&&e.strstart>0&&(i=e.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){o=e.strstart+ri;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=ri-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=de?(n=ti(e,1,e.match_length-de),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=ti(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&($t(e,!1),e.strm.avail_out===0))return Bt}return e.insert=0,t===un?($t(e,!0),e.strm.avail_out===0?lo:ha):e.sym_next&&($t(e,!1),e.strm.avail_out===0)?Bt:ca},FP=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(da(e),e.lookahead===0)){if(t===ni)return Bt;break}if(e.match_length=0,n=ti(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&($t(e,!1),e.strm.avail_out===0))return Bt}return e.insert=0,t===un?($t(e,!0),e.strm.avail_out===0?lo:ha):e.sym_next&&($t(e,!1),e.strm.avail_out===0)?Bt:ca};function Yn(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 kl=[new Yn(0,0,0,0,tA),new Yn(4,4,8,4,kp),new Yn(4,5,16,8,kp),new Yn(4,6,32,32,kp),new Yn(4,4,16,16,pa),new Yn(8,16,32,32,pa),new Yn(8,16,128,128,pa),new Yn(8,32,128,256,pa),new Yn(32,128,258,1024,pa),new Yn(32,258,258,4096,pa)],RP=e=>{e.window_size=2*e.w_size,ii(e.head),e.max_lazy_match=kl[e.level].max_lazy,e.good_match=kl[e.level].good_length,e.nice_match=kl[e.level].nice_length,e.max_chain_length=kl[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=de-1,e.match_available=0,e.ins_h=0};function MP(){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=hc,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(CP*2),this.dyn_dtree=new Uint16Array((2*_P+1)*2),this.bl_tree=new Uint16Array((2*SP+1)*2),ii(this.dyn_ltree),ii(this.dyn_dtree),ii(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(kP+1),this.heap=new Uint16Array(2*vp+1),ii(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*vp+1),ii(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 Tl=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==fa&&t.status!==xp&&t.status!==Ap&&t.status!==Ep&&t.status!==_p&&t.status!==Sp&&t.status!==so&&t.status!==Sl?1:0},nA=e=>{if(Tl(e))return uo(e,Zn);e.total_in=e.total_out=0,e.data_type=wP;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?xp:t.wrap?fa:so,e.adler=t.wrap===2?0:1,t.last_flush=-2,lP(t),wt},rA=e=>{const t=nA(e);return t===wt&&RP(e.state),t},PP=(e,t)=>Tl(e)||e.state.wrap!==2?Zn:(e.state.gzhead=t,wt),iA=(e,t,n,r,i,o)=>{if(!e)return Zn;let a=1;if(t===pP&&(t=6),r<0?(a=0,r=-r):r>15&&(a=2,r-=16),i<1||i>vP||n!==hc||r<8||r>15||t<0||t>9||o<0||o>bP||r===8&&a!==1)return uo(e,Zn);r===8&&(r=9);const s=new MP;return e.state=s,s.strm=e,s.status=fa,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+de-1)/de),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,rA(e)},LP=(e,t)=>iA(e,t,hc,xP,AP,yP),NP=(e,t)=>{if(Tl(e)||t>$x||t<0)return e?uo(e,Zn):Zn;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===Sl&&t!==un)return uo(e,e.avail_out===0?wp:Zn);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(Xt(e),e.avail_out===0)return n.last_flush=-1,wt}else if(e.avail_in===0&&Jx(t)<=Jx(r)&&t!==un)return uo(e,wp);if(n.status===Sl&&e.avail_in!==0)return uo(e,wp);if(n.status===fa&&n.wrap===0&&(n.status=so),n.status===fa){let i=hc+(n.w_bits-8<<4)<<8,o=-1;if(n.strategy>=cc||n.level<2?o=0:n.level<6?o=1:n.level===6?o=2:o=3,i|=o<<6,n.strstart!==0&&(i|=TP),i+=31-i%31,Cl(n,i),n.strstart!==0&&(Cl(n,e.adler>>>16),Cl(n,e.adler&65535)),e.adler=1,n.status=so,Xt(e),n.pending!==0)return n.last_flush=-1,wt}if(n.status===xp){if(e.adler=0,xe(n,31),xe(n,139),xe(n,8),n.gzhead)xe(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)),xe(n,n.gzhead.time&255),xe(n,n.gzhead.time>>8&255),xe(n,n.gzhead.time>>16&255),xe(n,n.gzhead.time>>24&255),xe(n,n.level===9?2:n.strategy>=cc||n.level<2?4:0),xe(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(xe(n,n.gzhead.extra.length&255),xe(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=dt(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Ap;else if(xe(n,0),xe(n,0),xe(n,0),xe(n,0),xe(n,0),xe(n,n.level===9?2:n.strategy>=cc||n.level<2?4:0),xe(n,IP),n.status=so,Xt(e),n.pending!==0)return n.last_flush=-1,wt}if(n.status===Ap){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=dt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,Xt(e),n.pending!==0)return n.last_flush=-1,wt;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=dt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=Ep}if(n.status===Ep){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=dt(e.adler,n.pending_buf,n.pending-i,i)),Xt(e),n.pending!==0)return n.last_flush=-1,wt;i=0}n.gzindex<n.gzhead.name.length?o=n.gzhead.name.charCodeAt(n.gzindex++)&255:o=0,xe(n,o)}while(o!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=_p}if(n.status===_p){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=dt(e.adler,n.pending_buf,n.pending-i,i)),Xt(e),n.pending!==0)return n.last_flush=-1,wt;i=0}n.gzindex<n.gzhead.comment.length?o=n.gzhead.comment.charCodeAt(n.gzindex++)&255:o=0,xe(n,o)}while(o!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i))}n.status=Sp}if(n.status===Sp){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(Xt(e),n.pending!==0))return n.last_flush=-1,wt;xe(n,e.adler&255),xe(n,e.adler>>8&255),e.adler=0}if(n.status=so,Xt(e),n.pending!==0)return n.last_flush=-1,wt}if(e.avail_in!==0||n.lookahead!==0||t!==ni&&n.status!==Sl){let i=n.level===0?tA(n,t):n.strategy===cc?FP(n,t):n.strategy===mP?DP(n,t):kl[n.level].func(n,t);if((i===lo||i===ha)&&(n.status=Sl),i===Bt||i===lo)return e.avail_out===0&&(n.last_flush=-1),wt;if(i===ca&&(t===cP?fP(n):t!==$x&&(yp(n,0,0,!1),t===hP&&(ii(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),Xt(e),e.avail_out===0))return n.last_flush=-1,wt}return t!==un?wt:n.wrap<=0?Kx:(n.wrap===2?(xe(n,e.adler&255),xe(n,e.adler>>8&255),xe(n,e.adler>>16&255),xe(n,e.adler>>24&255),xe(n,e.total_in&255),xe(n,e.total_in>>8&255),xe(n,e.total_in>>16&255),xe(n,e.total_in>>24&255)):(Cl(n,e.adler>>>16),Cl(n,e.adler&65535)),Xt(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?wt:Kx)},OP=e=>{if(Tl(e))return Zn;const t=e.state.status;return e.state=null,t===so?uo(e,dP):wt},zP=(e,t)=>{let n=t.length;if(Tl(e))return Zn;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==fa||r.lookahead)return Zn;if(i===1&&(e.adler=El(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(ii(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,da(r);r.lookahead>=de;){let u=r.strstart,l=r.lookahead-(de-1);do r.ins_h=oi(r,r.ins_h,r.window[u+de-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=de-1,da(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=de-1,r.match_available=0,e.next_in=a,e.input=s,e.avail_in=o,r.wrap=i,wt};var UP=LP,GP=iA,HP=rA,VP=nA,jP=PP,qP=NP,ZP=OP,WP=zP,YP="pako deflate (from Nodeca project)",Il={deflateInit:UP,deflateInit2:GP,deflateReset:HP,deflateResetKeep:VP,deflateSetHeader:jP,deflate:qP,deflateEnd:ZP,deflateSetDictionary:WP,deflateInfo:YP};const QP=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var XP=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)QP(n,r)&&(e[r]=n[r])}}return e},$P=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},dc={assign:XP,flattenChunks:$P};let oA=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{oA=!1}const Bl=new Uint8Array(256);for(let e=0;e<256;e++)Bl[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Bl[254]=Bl[254]=1;var KP=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 JP=(e,t)=>{if(t<65534&&e.subarray&&oA)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 eL=(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=Bl[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 JP(o,i)},tL=(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+Bl[e[n]]>t?n:t},Dl={string2buf:KP,buf2string:eL,utf8border:tL};function nL(){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 aA=nL;const sA=Object.prototype.toString,{Z_NO_FLUSH:rL,Z_SYNC_FLUSH:iL,Z_FULL_FLUSH:oL,Z_FINISH:aL,Z_OK:pc,Z_STREAM_END:sL,Z_DEFAULT_COMPRESSION:lL,Z_DEFAULT_STRATEGY:uL,Z_DEFLATED:fL}=_l;function Tp(e){this.options=dc.assign({level:lL,method:fL,chunkSize:16384,windowBits:15,memLevel:8,strategy:uL},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 aA,this.strm.avail_out=0;let n=Il.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==pc)throw new Error(ua[n]);if(t.header&&Il.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=Dl.string2buf(t.dictionary):sA.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=Il.deflateSetDictionary(this.strm,r),n!==pc)throw new Error(ua[n]);this._dict_set=!0}}Tp.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?aL:rL,typeof e=="string"?n.input=Dl.string2buf(e):sA.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===iL||o===oL)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=Il.deflate(n,o),i===sL)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=Il.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===pc;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},Tp.prototype.onData=function(e){this.chunks.push(e)},Tp.prototype.onEnd=function(e){e===pc&&(this.result=dc.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const gc=16209,cL=16191;var hL=function(t,n){let r,i,o,a,s,u,l,f,c,h,d,p,b,y,w,_,C,E,T,B,I,R,M,j;const O=t.state;r=t.next_in,M=t.input,i=r+(t.avail_in-5),o=t.next_out,j=t.output,a=o-(n-t.avail_out),s=o+(t.avail_out-257),u=O.dmax,l=O.wsize,f=O.whave,c=O.wnext,h=O.window,d=O.hold,p=O.bits,b=O.lencode,y=O.distcode,w=(1<<O.lenbits)-1,_=(1<<O.distbits)-1;e:do{p<15&&(d+=M[r++]<<p,p+=8,d+=M[r++]<<p,p+=8),C=b[d&w];t:for(;;){if(E=C>>>24,d>>>=E,p-=E,E=C>>>16&255,E===0)j[o++]=C&65535;else if(E&16){T=C&65535,E&=15,E&&(p<E&&(d+=M[r++]<<p,p+=8),T+=d&(1<<E)-1,d>>>=E,p-=E),p<15&&(d+=M[r++]<<p,p+=8,d+=M[r++]<<p,p+=8),C=y[d&_];n:for(;;){if(E=C>>>24,d>>>=E,p-=E,E=C>>>16&255,E&16){if(B=C&65535,E&=15,p<E&&(d+=M[r++]<<p,p+=8,p<E&&(d+=M[r++]<<p,p+=8)),B+=d&(1<<E)-1,B>u){t.msg="invalid distance too far back",O.mode=gc;break e}if(d>>>=E,p-=E,E=o-a,B>E){if(E=B-E,E>f&&O.sane){t.msg="invalid distance too far back",O.mode=gc;break e}if(I=0,R=h,c===0){if(I+=l-E,E<T){T-=E;do j[o++]=h[I++];while(--E);I=o-B,R=j}}else if(c<E){if(I+=l+c-E,E-=c,E<T){T-=E;do j[o++]=h[I++];while(--E);if(I=0,c<T){E=c,T-=E;do j[o++]=h[I++];while(--E);I=o-B,R=j}}}else if(I+=c-E,E<T){T-=E;do j[o++]=h[I++];while(--E);I=o-B,R=j}for(;T>2;)j[o++]=R[I++],j[o++]=R[I++],j[o++]=R[I++],T-=3;T&&(j[o++]=R[I++],T>1&&(j[o++]=R[I++]))}else{I=o-B;do j[o++]=j[I++],j[o++]=j[I++],j[o++]=j[I++],T-=3;while(T>2);T&&(j[o++]=j[I++],T>1&&(j[o++]=j[I++]))}}else if(E&64){t.msg="invalid distance code",O.mode=gc;break e}else{C=y[(C&65535)+(d&(1<<E)-1)];continue n}break}}else if(E&64)if(E&32){O.mode=cL;break e}else{t.msg="invalid literal/length code",O.mode=gc;break e}else{C=b[(C&65535)+(d&(1<<E)-1)];continue t}break}}while(r<i&&o<s);T=p>>3,r-=T,p-=T<<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),O.hold=d,O.bits=p};const ga=15,lA=852,uA=592,fA=0,Ip=1,cA=2,dL=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]),pL=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]),gL=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]),mL=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 Fl=(e,t,n,r,i,o,a,s)=>{const u=s.bits;let l=0,f=0,c=0,h=0,d=0,p=0,b=0,y=0,w=0,_=0,C,E,T,B,I,R=null,M;const j=new Uint16Array(ga+1),O=new Uint16Array(ga+1);let ie=null,se,ge,Ie;for(l=0;l<=ga;l++)j[l]=0;for(f=0;f<r;f++)j[t[n+f]]++;for(d=u,h=ga;h>=1&&j[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(c=1;c<h&&j[c]===0;c++);for(d<c&&(d=c),y=1,l=1;l<=ga;l++)if(y<<=1,y-=j[l],y<0)return-1;if(y>0&&(e===fA||h!==1))return-1;for(O[1]=0,l=1;l<ga;l++)O[l+1]=O[l]+j[l];for(f=0;f<r;f++)t[n+f]!==0&&(a[O[t[n+f]]++]=f);if(e===fA?(R=ie=a,M=20):e===Ip?(R=dL,ie=pL,M=257):(R=gL,ie=mL,M=0),_=0,f=0,l=c,I=o,p=d,b=0,T=-1,w=1<<d,B=w-1,e===Ip&&w>lA||e===cA&&w>uA)return 1;for(;;){se=l-b,a[f]+1<M?(ge=0,Ie=a[f]):a[f]>=M?(ge=ie[a[f]-M],Ie=R[a[f]-M]):(ge=32+64,Ie=0),C=1<<l-b,E=1<<p,c=E;do E-=C,i[I+(_>>b)+E]=se<<24|ge<<16|Ie|0;while(E!==0);for(C=1<<l-1;_&C;)C>>=1;if(C!==0?(_&=C-1,_+=C):_=0,f++,--j[l]===0){if(l===h)break;l=t[n+a[f]]}if(l>d&&(_&B)!==T){for(b===0&&(b=d),I+=c,p=l-b,y=1<<p;p+b<h&&(y-=j[p+b],!(y<=0));)p++,y<<=1;if(w+=1<<p,e===Ip&&w>lA||e===cA&&w>uA)return 1;T=_&B,i[T]=d<<24|p<<16|I-o|0}}return _!==0&&(i[I+_]=l-b<<24|64<<16|0),s.bits=d,0};const bL=0,hA=1,dA=2,{Z_FINISH:pA,Z_BLOCK:yL,Z_TREES:mc,Z_OK:fo,Z_STREAM_END:wL,Z_NEED_DICT:vL,Z_STREAM_ERROR:fn,Z_DATA_ERROR:gA,Z_MEM_ERROR:mA,Z_BUF_ERROR:xL,Z_DEFLATED:bA}=_l,bc=16180,yA=16181,wA=16182,vA=16183,xA=16184,AA=16185,EA=16186,_A=16187,SA=16188,CA=16189,yc=16190,hr=16191,Bp=16192,kA=16193,Dp=16194,TA=16195,IA=16196,BA=16197,DA=16198,wc=16199,vc=16200,FA=16201,RA=16202,MA=16203,PA=16204,LA=16205,Fp=16206,NA=16207,OA=16208,qe=16209,zA=16210,UA=16211,AL=852,EL=592,_L=15,GA=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function SL(){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 co=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<bc||t.mode>UA?1:0},HA=e=>{if(co(e))return fn;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=bc,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(AL),t.distcode=t.distdyn=new Int32Array(EL),t.sane=1,t.back=-1,fo},VA=e=>{if(co(e))return fn;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,HA(e)},jA=(e,t)=>{let n;if(co(e))return fn;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?fn:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,VA(e))},qA=(e,t)=>{if(!e)return fn;const n=new SL;e.state=n,n.strm=e,n.window=null,n.mode=bc;const r=jA(e,t);return r!==fo&&(e.state=null),r},CL=e=>qA(e,_L);let ZA=!0,Rp,Mp;const kL=e=>{if(ZA){Rp=new Int32Array(512),Mp=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(Fl(hA,e.lens,0,288,Rp,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Fl(dA,e.lens,0,32,Mp,0,e.work,{bits:5}),ZA=!1}e.lencode=Rp,e.lenbits=9,e.distcode=Mp,e.distbits=5},WA=(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},TL=(e,t)=>{let n,r,i,o,a,s,u,l,f,c,h,d,p,b,y=0,w,_,C,E,T,B,I,R;const M=new Uint8Array(4);let j,O;const ie=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(co(e)||!e.output||!e.input&&e.avail_in!==0)return fn;n=e.state,n.mode===hr&&(n.mode=Bp),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,f=n.bits,c=s,h=u,R=fo;e:for(;;)switch(n.mode){case bc:if(n.wrap===0){n.mode=Bp;break}for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=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=dt(n.check,M,2,0),l=0,f=0,n.mode=yA;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)!==bA){e.msg="unknown compression method",n.mode=qe;break}if(l>>>=4,f-=4,I=(l&15)+8,n.wbits===0&&(n.wbits=I),I>15||I>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?CA:hr,l=0,f=0;break;case yA:for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(n.flags=l,(n.flags&255)!==bA){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=dt(n.check,M,2,0)),l=0,f=0,n.mode=wA;case wA:for(;f<32;){if(s===0)break e;s--,l+=r[o++]<<f,f+=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=dt(n.check,M,4,0)),l=0,f=0,n.mode=vA;case vA:for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=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=dt(n.check,M,2,0)),l=0,f=0,n.mode=xA;case xA:if(n.flags&1024){for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=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=dt(n.check,M,2,0)),l=0,f=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 Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(o,o+d),I)),n.flags&512&&n.wrap&4&&(n.check=dt(n.check,r,d,o)),s-=d,o+=d,n.length-=d),n.length))break e;n.length=0,n.mode=EA;case EA: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=dt(n.check,r,d,o)),s-=d,o+=d,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=_A;case _A: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=dt(n.check,r,d,o)),s-=d,o+=d,I)break e}else n.head&&(n.head.comment=null);n.mode=SA;case SA:if(n.flags&512){for(;f<16;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(n.wrap&4&&l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=qe;break}l=0,f=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=hr;break;case CA:for(;f<32;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}e.adler=n.check=GA(l),l=0,f=0,n.mode=yc;case yc: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=f,vL;e.adler=n.check=1,n.mode=hr;case hr:if(t===yL||t===mc)break e;case Bp:if(n.last){l>>>=f&7,f-=f&7,n.mode=Fp;break}for(;f<3;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}switch(n.last=l&1,l>>>=1,f-=1,l&3){case 0:n.mode=kA;break;case 1:if(kL(n),n.mode=wc,t===mc){l>>>=2,f-=2;break e}break;case 2:n.mode=IA;break;case 3:e.msg="invalid block type",n.mode=qe}l>>>=2,f-=2;break;case kA:for(l>>>=f&7,f-=f&7;f<32;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=qe;break}if(n.length=l&65535,l=0,f=0,n.mode=Dp,t===mc)break e;case Dp:n.mode=TA;case TA: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=hr;break;case IA:for(;f<14;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(n.nlen=(l&31)+257,l>>>=5,f-=5,n.ndist=(l&31)+1,l>>>=5,f-=5,n.ncode=(l&15)+4,l>>>=4,f-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=qe;break}n.have=0,n.mode=BA;case BA:for(;n.have<n.ncode;){for(;f<3;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}n.lens[ie[n.have++]]=l&7,l>>>=3,f-=3}for(;n.have<19;)n.lens[ie[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,j={bits:n.lenbits},R=Fl(bL,n.lens,0,19,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid code lengths set",n.mode=qe;break}n.have=0,n.mode=DA;case DA:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(C<16)l>>>=w,f-=w,n.lens[n.have++]=C;else{if(C===16){for(O=w+2;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(l>>>=w,f-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=qe;break}I=n.lens[n.have-1],d=3+(l&3),l>>>=2,f-=2}else if(C===17){for(O=w+3;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}l>>>=w,f-=w,I=0,d=3+(l&7),l>>>=3,f-=3}else{for(O=w+7;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}l>>>=w,f-=w,I=0,d=11+(l&127),l>>>=7,f-=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++]=I}}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,j={bits:n.lenbits},R=Fl(hA,n.lens,0,n.nlen,n.lencode,0,n.work,j),n.lenbits=j.bits,R){e.msg="invalid literal/lengths set",n.mode=qe;break}if(n.distbits=6,n.distcode=n.distdyn,j={bits:n.distbits},R=Fl(dA,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,j),n.distbits=j.bits,R){e.msg="invalid distances set",n.mode=qe;break}if(n.mode=wc,t===mc)break e;case wc:n.mode=vc;case vc: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=f,hL(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,f=n.bits,n.mode===hr&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(_&&!(_&240)){for(E=w,T=_,B=C;y=n.lencode[B+((l&(1<<E+T)-1)>>E)],w=y>>>24,_=y>>>16&255,C=y&65535,!(E+w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}l>>>=E,f-=E,n.back+=E}if(l>>>=w,f-=w,n.back+=w,n.length=C,_===0){n.mode=LA;break}if(_&32){n.back=-1,n.mode=hr;break}if(_&64){e.msg="invalid literal/length code",n.mode=qe;break}n.extra=_&15,n.mode=FA;case FA:if(n.extra){for(O=n.extra;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,f-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=RA;case RA:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,_=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(!(_&240)){for(E=w,T=_,B=C;y=n.distcode[B+((l&(1<<E+T)-1)>>E)],w=y>>>24,_=y>>>16&255,C=y&65535,!(E+w<=f);){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}l>>>=E,f-=E,n.back+=E}if(l>>>=w,f-=w,n.back+=w,_&64){e.msg="invalid distance code",n.mode=qe;break}n.offset=C,n.extra=_&15,n.mode=MA;case MA:if(n.extra){for(O=n.extra;f<O;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,f-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=qe;break}n.mode=PA;case PA: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),b=n.window}else b=i,p=a-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[a++]=b[p++];while(--d);n.length===0&&(n.mode=vc);break;case LA:if(u===0)break e;i[a++]=n.length,u--,n.mode=vc;break;case Fp:if(n.wrap){for(;f<32;){if(s===0)break e;s--,l|=r[o++]<<f,f+=8}if(h-=u,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?dt(n.check,i,h,a-h):El(n.check,i,h,a-h)),h=u,n.wrap&4&&(n.flags?l:GA(l))!==n.check){e.msg="incorrect data check",n.mode=qe;break}l=0,f=0}n.mode=NA;case NA:if(n.wrap&&n.flags){for(;f<32;){if(s===0)break e;s--,l+=r[o++]<<f,f+=8}if(n.wrap&4&&l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=qe;break}l=0,f=0}n.mode=OA;case OA:R=wL;break e;case qe:R=gA;break e;case zA:return mA;case UA:default:return fn}return e.next_out=a,e.avail_out=u,e.next_in=o,e.avail_in=s,n.hold=l,n.bits=f,(n.wsize||h!==e.avail_out&&n.mode<qe&&(n.mode<Fp||t!==pA))&&WA(e,e.output,e.next_out,h-e.avail_out),c-=e.avail_in,h-=e.avail_out,e.total_in+=c,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?dt(n.check,i,h,e.next_out-h):El(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===hr?128:0)+(n.mode===wc||n.mode===Dp?256:0),(c===0&&h===0||t===pA)&&R===fo&&(R=xL),R},IL=e=>{if(co(e))return fn;let t=e.state;return t.window&&(t.window=null),e.state=null,fo},BL=(e,t)=>{if(co(e))return fn;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,fo):fn},DL=(e,t)=>{const n=t.length;let r,i,o;return co(e)||(r=e.state,r.wrap!==0&&r.mode!==yc)?fn:r.mode===yc&&(i=1,i=El(i,t,n,0),i!==r.check)?gA:(o=WA(e,t,n,n),o?(r.mode=zA,mA):(r.havedict=1,fo))};var FL=VA,RL=jA,ML=HA,PL=CL,LL=qA,NL=TL,OL=IL,zL=BL,UL=DL,GL="pako inflate (from Nodeca project)",dr={inflateReset:FL,inflateReset2:RL,inflateResetKeep:ML,inflateInit:PL,inflateInit2:LL,inflate:NL,inflateEnd:OL,inflateGetHeader:zL,inflateSetDictionary:UL,inflateInfo:GL};function HL(){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 VL=HL;const YA=Object.prototype.toString,{Z_NO_FLUSH:jL,Z_FINISH:qL,Z_OK:Rl,Z_STREAM_END:Pp,Z_NEED_DICT:Lp,Z_STREAM_ERROR:ZL,Z_DATA_ERROR:QA,Z_MEM_ERROR:WL}=_l;function Ml(e){this.options=dc.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 aA,this.strm.avail_out=0;let n=dr.inflateInit2(this.strm,t.windowBits);if(n!==Rl)throw new Error(ua[n]);if(this.header=new VL,dr.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Dl.string2buf(t.dictionary):YA.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=dr.inflateSetDictionary(this.strm,t.dictionary),n!==Rl)))throw new Error(ua[n])}Ml.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?qL:jL,YA.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=dr.inflate(n,a),o===Lp&&i&&(o=dr.inflateSetDictionary(n,i),o===Rl?o=dr.inflate(n,a):o===QA&&(o=Lp));n.avail_in>0&&o===Pp&&n.state.wrap>0&&e[n.next_in]!==0;)dr.inflateReset(n),o=dr.inflate(n,a);switch(o){case ZL:case QA:case Lp:case WL:return this.onEnd(o),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||o===Pp))if(this.options.to==="string"){let u=Dl.utf8border(n.output,n.next_out),l=n.next_out-u,f=Dl.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(f)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(o===Rl&&s===0)){if(o===Pp)return o=dr.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},Ml.prototype.onData=function(e){this.chunks.push(e)},Ml.prototype.onEnd=function(e){e===Rl&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=dc.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Np(e,t){const n=new Ml(t);if(n.push(e),n.err)throw n.msg||ua[n.err];return n.result}function YL(e,t){return t=t||{},t.raw=!0,Np(e,t)}var QL=Ml,XL=Np,$L=YL,KL=Np,JL=_l,eN={Inflate:QL,inflate:XL,inflateRaw:$L,ungzip:KL,constants:JL};const{Inflate:Wz,inflate:Yz,inflateRaw:tN,ungzip:Qz}=eN;var nN=tN;function rN(e){return nN(e.subarray(2))}let iN=class extends Error{constructor(t){super(t),this.code="ERR_ABORTED"}};function oN(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 xc(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new iN("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}const aN=1,sN=2,lN=3;function Op(e,t,n,r){return e<r&&t>=n}function uN(e){const t=e?"big":"little",n=new Te().endianess(t).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new Te().endianess(t).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new Te().endianess(t).array("blocksToFetch",{length:"cnt",type:new Te().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new Te().array("recurOffsets",{length:"cnt",type:new Te().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new Te().endianess(t).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new Te().endianess(t).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[lN]:new Te().array("items",{length:"itemCount",type:new Te().floatle("score")}),[sN]:new Te().array("items",{length:"itemCount",type:new Te().endianess(t).int32("start").floatle("score")}),[aN]:new Te().array("items",{length:"itemCount",type:new Te().endianess(t).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class XA{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 sc({cache:new lc({maxSize:1e3}),fill:async(u,l)=>{const f=Number(u.length),c=Number(u.offset),{buffer:h}=await this.bbi.read(pe.Buffer.alloc(f),0,f,c,{signal:l});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const s=uN(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,f=a[t];f===void 0&&i.complete();const c={chrId:f,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=s.read(pe.Buffer.alloc(48),0,48,Number(u),o));const{buffer:h}=await this.cirTreePromise,d=l?h.readUInt32BE(4):h.readUInt32LE(4);let p=[],b=0;const y=(E,T,B)=>{try{const I=E.subarray(T),R=this.leafParser.parse(I);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(j=>w(j)).map(j=>Number(j.blockOffset));M.length>0&&C(M,B+1)}}catch(I){i.error(I)}},w=E=>{const{startChrom:T,startBase:B,endChrom:I,endBase:R}=E;return(T<f||T===f&&B<=r)&&(I>f||I===f&&R>=n)},_=async(E,T,B)=>{try{const I=T.max()-T.min(),R=T.min(),M=await this.featureCache.get(`${I}_${R}`,{length:I,offset:R},o==null?void 0:o.signal);for(const j of E)T.contains(j)&&(y(M,j-R,B),b-=1,b===0&&this.readFeatures(i,p,{...o,request:c}))}catch(I){i.error(I)}},C=(E,T)=>{try{b+=E.length;const B=4+Number(d)*32;let I=new ei(E[0],E[0]+B);for(let R=1;R<E.length;R+=1){const M=new ei(E[R],E[R]+B);I=I.union(M)}I.getRanges().map(R=>_(E,R,T))}catch(B){i.error(B)}};return C([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 f=a.getUint32(o,!0);o+=4;const c=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&&Op(u,l,r.start,r.end))&&i.push({start:u,end:l,maxScore:h,minScore:c,summary:!0,score:d/(f||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));o.push({...s,uniqueId:`bb-${r+a}`}),a+=s.offset}return i?o.filter(s=>Op(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 f=o.getUint8(a);a+=2;const c=o.getUint16(a,!0);a+=2;const h=new Array(c);switch(f){case 1:{for(let d=0;d<c;d++){const p=o.getInt32(a,!0);a+=4;const b=o.getInt32(a,!0);a+=4;const y=o.getFloat32(a,!0);a+=4,h[d]={start:p,end:b,score:y}}break}case 2:{for(let d=0;d<c;d++){const p=o.getInt32(a,!0);a+=4;const b=o.getFloat32(a,!0);a+=4,h[d]={score:b,start:p,end:p+l}}break}case 3:{for(let d=0;d<c;d++){const p=o.getFloat32(a,!0);a+=4;const b=s+d*u;h[d]={score:p,start:b,end:b+l}}break}}return r?h.filter(d=>Op(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=oN(n);xc(a),await Promise.all(u.map(async l=>{xc(a);const{length:f,offset:c}=l,h=await this.featureCache.get(`${f}_${c}`,l,a);for(const d of l.blocks){xc(a);let p=Number(d.offset)-Number(l.offset),b=h;switch(o&&(b=rN(h.subarray(p)),p=0),xc(a),i){case"summary":{t.next(this.parseSummaryBlock(b,p,s));break}case"bigwig":{t.next(this.parseBigWigBlock(b,p,s));break}case"bigbed":{t.next(this.parseBigBedBlock(b,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 zp=function(e,t){return zp=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])},zp(e,t)};function Up(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");zp(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function fN(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(f){try{l(r.next(f))}catch(c){a(c)}}function u(f){try{l(r.throw(f))}catch(c){a(c)}}function l(f){f.done?o(f.value):i(f.value).then(s,u)}l((r=r.apply(e,t||[])).next())})}function $A(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(f){return u([l,f])}}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(f){l=[6,f],i=0}finally{r=o=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function Pl(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 Gp(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 Hp(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 ma(e){return this instanceof ma?(this.v=e,this):new ma(e)}function cN(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,b){o.push([h,d,p,b])>1||s(h,d)})})}function s(h,d){try{u(r[h](d))}catch(p){c(o[0][3],p)}}function u(h){h.value instanceof ma?Promise.resolve(h.value.v).then(l,f):c(o[0][2],h)}function l(h){s("next",h)}function f(h){s("throw",h)}function c(h,d){h(d),o.shift(),o.length&&s(o[0][0],o[0][1])}}function hN(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 Pl=="function"?Pl(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 at(e){return typeof e=="function"}function KA(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 Vp=KA(function(e){return function(n){e(this),this.message=n?n.length+` errors occurred during unsubscription:
279
322
  `+n.map(function(r,i){return i+1+") "+r.toString()}).join(`
280
- `):"",this.name="UnsubscriptionError",this.errors=n}});function YA(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var Op=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=Dl(a),f=s.next();!f.done;f=s.next()){var l=f.value;l.remove(this)}}catch(b){t={error:b}}finally{try{f&&!f.done&&(n=s.return)&&n.call(s)}finally{if(t)throw t.error}}else a.remove(this);var u=this.initialTeardown;if(ot(u))try{u()}catch(b){o=b instanceof Np?b.errors:[b]}var c=this._finalizers;if(c){this._finalizers=null;try{for(var h=Dl(c),d=h.next();!d.done;d=h.next()){var p=d.value;try{XA(p)}catch(b){o=o??[],b instanceof Np?o=wc(wc([],yc(o)),yc(b.errors)):o.push(b)}}}catch(b){r={error:b}}finally{try{d&&!d.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}}if(o)throw new Np(o)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)XA(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)&&YA(n,t)},e.prototype.remove=function(t){var n=this._finalizers;n&&YA(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();Op.EMPTY;function QA(e){return e instanceof Op||e&&"closed"in e&&ot(e.remove)&&ot(e.add)&&ot(e.unsubscribe)}function XA(e){ot(e)?e():e.unsubscribe()}var $A={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},zp={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=zp.delegate;return i!=null&&i.setTimeout?i.setTimeout.apply(i,wc([e,t],yc(n))):setTimeout.apply(void 0,wc([e,t],yc(n)))},clearTimeout:function(e){var t=zp.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function KA(e){zp.setTimeout(function(){throw e})}function JA(){}function tN(e){e()}var Up=function(e){Lp(t,e);function t(n){var r=e.call(this)||this;return r.isStopped=!1,n?(r.destination=n,QA(n)&&n.add(r)):r.destination=oN,r}return t.create=function(n,r,i){return new vc(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}(Op),nN=Function.prototype.bind;function Gp(e,t){return nN.call(e,t)}var rN=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){xc(r)}},e.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(r){xc(r)}else xc(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(n){xc(n)}},e}(),vc=function(e){Lp(t,e);function t(n,r,i){var o=e.call(this)||this,a;if(ot(n)||!n)a={next:n??void 0,error:r??void 0,complete:i??void 0};else{var s;o&&$A.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return o.unsubscribe()},a={next:n.next&&Gp(n.next,s),error:n.error&&Gp(n.error,s),complete:n.complete&&Gp(n.complete,s)}):a=n}return o.destination=new rN(a),o}return t}(Up);function xc(e){KA(e)}function iN(e){throw e}var oN={closed:!0,next:JA,error:iN,complete:JA},Hp=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function e3(e){return e}function aN(e){return e.length===0?e3:e.length===1?e[0]:function(n){return e.reduce(function(r,i){return i(r)},n)}}var hn=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=lN(t)?t:new vc(t,n,r);return tN(function(){var a=i,s=a.operator,f=a.source;o.add(s?s.call(o,f):f?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=t3(n),new n(function(i,o){var a=new vc({next:function(s){try{t(s)}catch(f){o(f),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[Hp]=function(){return this},e.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return aN(t)(this)},e.prototype.toPromise=function(t){var n=this;return t=t3(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 t3(e){var t;return(t=e??$A.Promise)!==null&&t!==void 0?t:Promise}function sN(e){return e&&ot(e.next)&&ot(e.error)&&ot(e.complete)}function lN(e){return e&&e instanceof Up||sN(e)&&QA(e)}function fN(e){return ot(e==null?void 0:e.lift)}function ma(e){return function(t){if(fN(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 Rl(e,t,n,r,i){return new uN(e,t,n,r,i)}var uN=function(e){Lp(t,e);function t(n,r,i,o,a,s){var f=e.call(this,n)||this;return f.onFinalize=a,f.shouldUnsubscribe=s,f._next=r?function(l){try{r(l)}catch(u){n.error(u)}}:e.prototype._next,f._error=o?function(l){try{o(l)}catch(u){n.error(u)}finally{this.unsubscribe()}}:e.prototype._error,f._complete=i?function(){try{i()}catch(l){n.error(l)}finally{this.unsubscribe()}}:e.prototype._complete,f}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}(Up),cN=new hn(function(e){return e.complete()});function hN(e){return e&&ot(e.schedule)}function n3(e){return e[e.length-1]}function dN(e){return hN(n3(e))?e.pop():void 0}function pN(e,t){return typeof n3(e)=="number"?e.pop():t}var r3=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function i3(e){return ot(e==null?void 0:e.then)}function o3(e){return ot(e[Hp])}function a3(e){return Symbol.asyncIterator&&ot(e==null?void 0:e[Symbol.asyncIterator])}function s3(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 gN(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var l3=gN();function f3(e){return ot(e==null?void 0:e[l3])}function u3(e){return JL(this,arguments,function(){var n,r,i,o;return ZA(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,ga(n.read())];case 3:return r=a.sent(),i=r.value,o=r.done,o?[4,ga(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,ga(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 c3(e){return ot(e==null?void 0:e.getReader)}function ba(e){if(e instanceof hn)return e;if(e!=null){if(o3(e))return mN(e);if(r3(e))return bN(e);if(i3(e))return yN(e);if(a3(e))return h3(e);if(f3(e))return wN(e);if(c3(e))return vN(e)}throw s3(e)}function mN(e){return new hn(function(t){var n=e[Hp]();if(ot(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function bN(e){return new hn(function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()})}function yN(e){return new hn(function(t){e.then(function(n){t.closed||(t.next(n),t.complete())},function(n){return t.error(n)}).then(null,KA)})}function wN(e){return new hn(function(t){var n,r;try{for(var i=Dl(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 h3(e){return new hn(function(t){xN(e,t).catch(function(n){return t.error(n)})})}function vN(e){return h3(u3(e))}function xN(e,t){var n,r,i,o;return KL(this,void 0,void 0,function(){var a,s;return ZA(this,function(f){switch(f.label){case 0:f.trys.push([0,5,6,11]),n=eN(e),f.label=1;case 1:return[4,n.next()];case 2:if(r=f.sent(),!!r.done)return[3,4];if(a=r.value,t.next(a),t.closed)return[2];f.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return s=f.sent(),i={error:s},[3,11];case 6:return f.trys.push([6,,9,10]),r&&!r.done&&(o=n.return)?[4,o.call(n)]:[3,8];case 7:f.sent(),f.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 ii(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 d3(e,t){return t===void 0&&(t=0),ma(function(n,r){n.subscribe(Rl(r,function(i){return ii(r,e,function(){return r.next(i)},t)},function(){return ii(r,e,function(){return r.complete()},t)},function(i){return ii(r,e,function(){return r.error(i)},t)}))})}function p3(e,t){return t===void 0&&(t=0),ma(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function AN(e,t){return ba(e).pipe(p3(t),d3(t))}function EN(e,t){return ba(e).pipe(p3(t),d3(t))}function _N(e,t){return new hn(function(n){var r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function SN(e,t){return new hn(function(n){var r;return ii(n,t,function(){r=e[l3](),ii(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 ot(r==null?void 0:r.return)&&r.return()}})}function g3(e,t){if(!e)throw new Error("Iterable cannot be null");return new hn(function(n){ii(n,t,function(){var r=e[Symbol.asyncIterator]();ii(n,t,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function CN(e,t){return g3(u3(e),t)}function kN(e,t){if(e!=null){if(o3(e))return AN(e,t);if(r3(e))return _N(e,t);if(i3(e))return EN(e,t);if(a3(e))return g3(e,t);if(f3(e))return SN(e,t);if(c3(e))return CN(e,t)}throw s3(e)}function IN(e,t){return t?kN(e,t):ba(e)}var TN=WA(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function m3(e,t){var n=typeof t=="object";return new Promise(function(r,i){var o=new vc({next:function(a){r(a),o.unsubscribe()},error:i,complete:function(){n?r(t.defaultValue):i(new TN)}});e.subscribe(o)})}function b3(e,t){return ma(function(n,r){var i=0;n.subscribe(Rl(r,function(o){r.next(e.call(t,o,i++))}))})}function BN(e,t,n,r,i,o,a,s){var f=[],l=0,u=0,c=!1,h=function(){c&&!f.length&&!l&&t.complete()},d=function(b){return l<r?p(b):f.push(b)},p=function(b){o&&t.next(b),l++;var y=!1;ba(n(b,u++)).subscribe(Rl(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 _=f.shift();a?ii(t,a,function(){return p(_)}):p(_)};f.length&&l<r;)w();h()}catch(_){t.error(_)}}))};return e.subscribe(Rl(t,d,function(){c=!0,h()})),function(){s==null||s()}}function y3(e,t,n){return n===void 0&&(n=1/0),ot(t)?y3(function(r,i){return b3(function(o,a){return t(r,o,i,a)})(ba(e(r,i)))},n):(typeof t=="number"&&(n=t),ma(function(r,i){return BN(r,i,e,n)}))}function DN(e){return e===void 0&&(e=1/0),y3(e3,e)}function RN(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=dN(e),r=pN(e,1/0),i=e;return i.length?i.length===1?ba(i[0]):DN(r)(IN(i,n)):cN}function FN(e,t,n,r,i){return function(o,a){var s=n,f=t,l=0;o.subscribe(Rl(a,function(u){var c=l++;f=s?e(f,u,c):(s=!0,u),r&&a.next(f)},i&&function(){s&&a.next(f),a.complete()}))}}function w3(e,t){return ma(FN(e,t,arguments.length>=2,!1,!0))}var MN=function(e,t){return e.push(t),e};function PN(){return ma(function(e,t){w3(MN,[])(e).subscribe(t)})}const v3=-2003829722,Vp=-2021002517;function LN(e){return new TextDecoder().decode(e)}function x3(e){const t=e?"big":"little",n=new Ie().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 Ie().endianess(t).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new Ie().endianess(t).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new Ie().endianess(t).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),o=new Ie().endianess(t).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:o}}class A3{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 qi(o);else if(i)this.bbi=new ct(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(ye.Buffer.alloc(n),0,n,0,t),i=this._isBigEndian(r),o=x3(i),a=o.headerParser.parse(r),{magic:s,asOffset:f,totalSummaryOffset:l}=a;if(a.fileType=s===Vp?"bigbed":"bigwig",f>n||l>n)return this._getMainHeader(t,n*2);if(f){const u=Number(a.asOffset);a.autoSql=LN(r.subarray(u,r.indexOf(0,u)))}if(a.totalSummaryOffset>n)return this._getMainHeader(t,n*2);if(a.totalSummaryOffset){const u=r.subarray(Number(a.totalSummaryOffset)),c=o.totalSummaryParser.parse(u);a.totalSummary={...c,basesCovered:Number(c.basesCovered)}}return{...a,isBigEndian:i}}_isBigEndian(t){let n=t.readInt32LE(0);if(n===v3||n===Vp)return!1;if(n=t.readInt32BE(0),n===v3||n===Vp)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 f=Number(t.chromTreeOffset);for(;s%4!==0;)s+=1;const l=s-f,{buffer:u}=await this.bbi.read(ye.Buffer.alloc(l),0,l,Number(f),n),c=x3(r),{keySize:h}=c.chromTreeParser.parse(u),d=new Ie().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),p=new Ie().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),b=32,y=async w=>{let _=w;if(_>=u.length)throw new Error("reading beyond end of buffer");const C=c.isLeafNode.parse(u.subarray(_)),{isLeafNode:S,cnt:T}=C;if(_+=C.offset,S)for(let B=0;B<T;B+=1){const I=d.parse(u.subarray(_));_+=I.offset;const{key:F,refId:P,refSize:j}=I,O={name:F,id:P,length:j};a[this.renameRefSeqs(F)]=P,o[P]=O}else{const B=[];for(let I=0;I<T;I+=1){const F=p.parse(u.subarray(_)),{childOffset:P}=F;_+=F.offset,B.push(y(Number(P)-Number(f)))}await Promise.all(B)}};return await y(b),{refsByName:a,refsByNumber:o}}async getUnzoomedView(t){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:o,fileType:a}=await this.getHeader(t);return new qA(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:f}=i||{};return s?a=await this.getView(1/s,i):f?a=await this.getView(f,i):a=await this.getView(1,i),new hn(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 m3(o.pipe(PN()))).flat()}}class NN extends A3{async getView(t,n){const{zoomLevels:r,refsByName:i,fileSize:o,isBigEndian:a,uncompressBufSize:s}=await this.getHeader(n),f=1/t;let l=r.length;o||(l-=1);for(let u=l;u>=0;u-=1){const c=r[u];if(c&&c.reductionLevel<=2*f){const h=Number(c.indexOffset);return new qA(this.bbi,i,h,a,s>0,"summary")}}return this.getUnzoomedView(n)}}function ON(e){return e.filter(t=>!!t)}class zN extends A3{constructor(){super(...arguments),this.readIndicesCache=new rc({cache:new ic({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(ye.Buffer.alloc(64),0,64,Number(n)),o=r?"big":"little",a=new Ie().endianess(o).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:f}=a;if(s===0)return[];const l=20,u=l*s,{buffer:c}=await this.bbi.read(ye.Buffer.alloc(u),0,u,Number(f)),h=new Ie().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(c.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:f}=a,{buffer:l}=await this.bbi.read(ye.Buffer.alloc(32),0,32,Number(s),n),u=r?"big":"little",c=new Ie().endianess(u).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:p}=c.parse(l),b=new Ie().endianess(u).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new Ie().array("leafkeys",{length:"cnt",type:new Ie().endianess(u).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new Ie().array("keys",{length:"cnt",type:new Ie().endianess(u).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),y=async _=>{const C=Number(_),S=4+h*(d+p),{buffer:T}=await this.bbi.read(ye.Buffer.alloc(S),0,S,C,n),B=b.parse(T);if(B.leafkeys){let I;for(let F=0;F<B.leafkeys.length;F+=1){const{key:P}=B.leafkeys[F];if(t.localeCompare(P)<0&&I)return y(I);I=B.leafkeys[F].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:f}},w=32;return y(Number(s)+w)});return ON(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 hn(f=>{i.readFeatures(f,[s],n)}).pipe(w3((f,l)=>f.concat(l)),b3(f=>{for(const l of f)l.field=s.field;return f})));return(await m3(RN(...o))).filter(s=>{var f;return((f=s.rest)===null||f===void 0?void 0:f.split(" ")[(s.field||0)-3])===t})}}const E3=Object.freeze(Object.defineProperty({__proto__:null,BigBed:zN,BigWig:NN},Symbol.toStringTag,{value:"Module"}));function UN(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function ya(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,ya)}UN(ya,Error),ya.buildMessage=function(e,t){var n={literal:function(l){return'"'+i(l.text)+'"'},class:function(l){var u="",c;for(c=0;c<l.parts.length;c++)u+=l.parts[c]instanceof Array?o(l.parts[c][0])+"-"+o(l.parts[c][1]):o(l.parts[c]);return"["+(l.inverted?"^":"")+u+"]"},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(u){return"\\x0"+r(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+r(u)})}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(u){return"\\x0"+r(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+r(u)})}function a(l){return n[l.type](l)}function s(l){var u=new Array(l.length),c,h;for(c=0;c<l.length;c++)u[c]=a(l[c]);if(u.sort(),u.length>0){for(c=1,h=1;c<u.length;c++)u[c-1]!==u[c]&&(u[h]=u[c],h++);u.length=h}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function f(l){return l?'"'+i(l)+'"':"end of input"}return"Expected "+s(e)+" but "+f(t)+" found."};function GN(e,t){t=t!==void 0?t:{};var n={},r={declaration:ZE},i=ZE,o="(",a=Re("(",!1),s=")",f=Re(")",!1),l=function(A,z,Q,X){return{type:A,name:z,comment:Q,fields:X}},u="simple",c=Re("simple",!1),h="object",d=Re("object",!1),p="table",b=Re("table",!1),y="auto",w=Re("auto",!1),_="primary",C=Re("primary",!1),S="index",T=Re("index",!1),B="unique",I=Re("unique",!1),F=function(A,z){return z},P=function(A,z){return A.name&&z.unshift(A),z},j="#",O=Re("#",!1),re=";",ae=Re(";",!1),pe=function(A,z,Q){return{type:A,name:z,comment:Q}},Te="[",Xe=Re("[",!1),De="]",$e=Re("]",!1),Ze=function(A,z,Q,X){return{type:A,size:z,name:Q,comment:X}},Ke=function(A,z,Q,X){return{type:A,vals:z,name:Q,comment:X}},Ee=",",_e=Re(",",!1),dt=function(A,z){return z.unshift(A),z},qt="int",Oe=Re("int",!1),L="uint",M=Re("uint",!1),q="short",H=Re("short",!1),W="ushort",E=Re("ushort",!1),x="byte",G=Re("byte",!1),Z="ubyte",le=Re("ubyte",!1),J="float",fe=Re("float",!1),Zt="char",ai=Re("char",!1),si="string",li=Re("string",!1),_t="lstring",yr=Re("lstring",!1),fi="enum",Wt=Re("enum",!1),$n="double",v=Re("double",!1),g="bigint",m=Re("bigint",!1),k="set",R=Re("set",!1),N=function(A,z){return A+" "+z},V=/^[a-zA-Z_]/,ue=$l([["a","z"],["A","Z"],"_"],!1,!1),Ge=/^[a-zA-Z0-9_]/,Me=$l([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),We=function(A){return HE()},Se=/^[^\n\r]/,NE=$l([`
281
- `,"\r"],!0,!1),sz=function(A){return A.join("").replace(/^"/,"").replace(/"$/,"")},lz=VE("integer"),OE=/^[0-9]/,zE=$l([["0","9"]],!1,!1),fz=function(){return parseInt(HE(),10)},uz=VE("whitespace"),UE=/^[ \t\n\r]/,GE=$l([" "," ",`
282
- `,"\r"],!1,!1),D=0,Rt=0,Pc=[{line:1,column:1}],Kn=0,Cg=[],ne=0,Lc;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 HE(){return e.substring(Rt,D)}function Re(A,z){return{type:"literal",text:A,ignoreCase:z}}function $l(A,z,Q){return{type:"class",parts:A,inverted:z,ignoreCase:Q}}function cz(){return{type:"end"}}function VE(A){return{type:"other",description:A}}function jE(A){var z=Pc[A],Q;if(z)return z;for(Q=A-1;!Pc[Q];)Q--;for(z=Pc[Q],z={line:z.line,column:z.column};Q<A;)e.charCodeAt(Q)===10?(z.line++,z.column=1):z.column++,Q++;return Pc[A]=z,z}function qE(A,z){var Q=jE(A),X=jE(z);return{start:{offset:A,line:Q.line,column:Q.column},end:{offset:z,line:X.line,column:X.column}}}function ie(A){D<Kn||(D>Kn&&(Kn=D,Cg=[]),Cg.push(A))}function hz(A,z,Q){return new ya(ya.buildMessage(A,z),A,z,Q)}function ZE(){var A,z,Q,X,ee,ze,Ye,gn,ui,wr,ci,vr,hi,xr;return A=D,z=ge(),z!==n?(Q=WE(),Q!==n?(X=ge(),X!==n?(ee=YE(),ee!==n?(ze=ge(),ze!==n?(Ye=Nc(),Ye!==n?(gn=ge(),gn!==n?(e.charCodeAt(D)===40?(ui=o,D++):(ui=n,ne===0&&ie(a)),ui!==n?(wr=ge(),wr!==n?(ci=dz(),ci!==n?(vr=ge(),vr!==n?(e.charCodeAt(D)===41?(hi=s,D++):(hi=n,ne===0&&ie(f)),hi!==n?(xr=ge(),xr!==n?(Rt=A,z=l(Q,ee,Ye,ci),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A}function WE(){var A;return e.substr(D,6)===u?(A=u,D+=6):(A=n,ne===0&&ie(c)),A===n&&(e.substr(D,6)===h?(A=h,D+=6):(A=n,ne===0&&ie(d)),A===n&&(e.substr(D,5)===p?(A=p,D+=5):(A=n,ne===0&&ie(b)))),A}function YE(){var A,z,Q,X;return A=Tn(),A===n&&(A=D,z=Tn(),z!==n?(Q=QE(),Q!==n?(z=[z,Q],A=z):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=Tn(),z!==n?(e.substr(D,4)===y?(Q=y,D+=4):(Q=n,ne===0&&ie(w)),Q!==n?(z=[z,Q],A=z):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=Tn(),z!==n?(Q=QE(),Q!==n?(e.substr(D,4)===y?(X=y,D+=4):(X=n,ne===0&&ie(w)),X!==n?(z=[z,Q,X],A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)))),A}function QE(){var A;return e.substr(D,7)===_?(A=_,D+=7):(A=n,ne===0&&ie(C)),A===n&&(e.substr(D,5)===S?(A=S,D+=5):(A=n,ne===0&&ie(T)),A===n&&(e.substr(D,6)===B?(A=B,D+=6):(A=n,ne===0&&ie(I)))),A}function Nc(){var A;return A=XE(),A===n&&(A=ge()),A}function dz(){var A,z,Q,X,ee,ze,Ye;if(A=D,z=kg(),z!==n)if(Q=ge(),Q!==n){for(X=[],ee=D,ze=ge(),ze!==n?(Ye=kg(),Ye!==n?(Rt=ee,ze=F(z,Ye),ee=ze):(D=ee,ee=n)):(D=ee,ee=n);ee!==n;)X.push(ee),ee=D,ze=ge(),ze!==n?(Ye=kg(),Ye!==n?(Rt=ee,ze=F(z,Ye),ee=ze):(D=ee,ee=n)):(D=ee,ee=n);X!==n?(ee=ge(),ee!==n?(Rt=A,z=P(z,X),A=z):(D=A,A=n)):(D=A,A=n)}else D=A,A=n;else D=A,A=n;return A}function pz(){var A;return e.charCodeAt(D)===35?(A=j,D++):(A=n,ne===0&&ie(O)),A}function gz(){var A,z,Q,X,ee;return A=D,z=ge(),z!==n?(Q=pz(),Q!==n?(X=XE(),X!==n?(ee=ge(),ee!==n?(z=[z,Q,X,ee],A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A}function kg(){var A,z,Q,X,ee,ze,Ye,gn,ui,wr,ci,vr,hi,xr;return A=D,z=Ig(),z!==n?(Q=ge(),Q!==n?(X=Tn(),X!==n?(ee=ge(),ee!==n?(e.charCodeAt(D)===59?(ze=re,D++):(ze=n,ne===0&&ie(ae)),ze!==n?(Ye=ge(),Ye!==n?(gn=Nc(),gn!==n?(Rt=A,z=pe(z,X,gn),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=Ig(),z!==n?(Q=ge(),Q!==n?(e.charCodeAt(D)===91?(X=Te,D++):(X=n,ne===0&&ie(Xe)),X!==n?(ee=ge(),ee!==n?(ze=bz(),ze!==n?(Ye=ge(),Ye!==n?(e.charCodeAt(D)===93?(gn=De,D++):(gn=n,ne===0&&ie($e)),gn!==n?(ui=ge(),ui!==n?(wr=Tn(),wr!==n?(ci=ge(),ci!==n?(e.charCodeAt(D)===59?(vr=re,D++):(vr=n,ne===0&&ie(ae)),vr!==n?(hi=ge(),hi!==n?(xr=Nc(),xr!==n?(Rt=A,z=Ze(z,ze,wr,xr),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=Ig(),z!==n?(Q=ge(),Q!==n?(e.charCodeAt(D)===40?(X=o,D++):(X=n,ne===0&&ie(a)),X!==n?(ee=ge(),ee!==n?(ze=mz(),ze!==n?(Ye=ge(),Ye!==n?(e.charCodeAt(D)===41?(gn=s,D++):(gn=n,ne===0&&ie(f)),gn!==n?(ui=ge(),ui!==n?(wr=Tn(),wr!==n?(ci=ge(),ci!==n?(e.charCodeAt(D)===59?(vr=re,D++):(vr=n,ne===0&&ie(ae)),vr!==n?(hi=ge(),hi!==n?(xr=Nc(),xr!==n?(Rt=A,z=Ke(z,ze,wr,xr),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A===n&&(A=gz()))),A}function mz(){var A,z,Q,X,ee,ze,Ye;if(A=D,z=Tn(),z!==n){for(Q=[],X=D,e.charCodeAt(D)===44?(ee=Ee,D++):(ee=n,ne===0&&ie(_e)),ee!==n?(ze=ge(),ze!==n?(Ye=Tn(),Ye!==n?(Rt=X,ee=F(z,Ye),X=ee):(D=X,X=n)):(D=X,X=n)):(D=X,X=n);X!==n;)Q.push(X),X=D,e.charCodeAt(D)===44?(ee=Ee,D++):(ee=n,ne===0&&ie(_e)),ee!==n?(ze=ge(),ze!==n?(Ye=Tn(),Ye!==n?(Rt=X,ee=F(z,Ye),X=ee):(D=X,X=n)):(D=X,X=n)):(D=X,X=n);Q!==n?(Rt=A,z=dt(z,Q),A=z):(D=A,A=n)}else D=A,A=n;return A}function Ig(){var A,z,Q,X;return e.substr(D,3)===qt?(A=qt,D+=3):(A=n,ne===0&&ie(Oe)),A===n&&(e.substr(D,4)===L?(A=L,D+=4):(A=n,ne===0&&ie(M)),A===n&&(e.substr(D,5)===q?(A=q,D+=5):(A=n,ne===0&&ie(H)),A===n&&(e.substr(D,6)===W?(A=W,D+=6):(A=n,ne===0&&ie(E)),A===n&&(e.substr(D,4)===x?(A=x,D+=4):(A=n,ne===0&&ie(G)),A===n&&(e.substr(D,5)===Z?(A=Z,D+=5):(A=n,ne===0&&ie(le)),A===n&&(e.substr(D,5)===J?(A=J,D+=5):(A=n,ne===0&&ie(fe)),A===n&&(e.substr(D,4)===Zt?(A=Zt,D+=4):(A=n,ne===0&&ie(ai)),A===n&&(e.substr(D,6)===si?(A=si,D+=6):(A=n,ne===0&&ie(li)),A===n&&(e.substr(D,7)===_t?(A=_t,D+=7):(A=n,ne===0&&ie(yr)),A===n&&(e.substr(D,4)===fi?(A=fi,D+=4):(A=n,ne===0&&ie(Wt)),A===n&&(e.substr(D,6)===$n?(A=$n,D+=6):(A=n,ne===0&&ie(v)),A===n&&(e.substr(D,6)===g?(A=g,D+=6):(A=n,ne===0&&ie(m)),A===n&&(e.substr(D,3)===k?(A=k,D+=3):(A=n,ne===0&&ie(R)),A===n&&(A=D,z=WE(),z!==n?(Q=ge(),Q!==n?(X=YE(),X!==n?(Rt=A,z=N(z,X),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n))))))))))))))),A}function bz(){var A;return A=yz(),A===n&&(A=Tn()),A}function Tn(){var A,z,Q,X,ee;if(A=D,z=D,V.test(e.charAt(D))?(Q=e.charAt(D),D++):(Q=n,ne===0&&ie(ue)),Q!==n){for(X=[],Ge.test(e.charAt(D))?(ee=e.charAt(D),D++):(ee=n,ne===0&&ie(Me));ee!==n;)X.push(ee),Ge.test(e.charAt(D))?(ee=e.charAt(D),D++):(ee=n,ne===0&&ie(Me));X!==n?(Q=[Q,X],z=Q):(D=z,z=n)}else D=z,z=n;return z!==n&&(Rt=A,z=We()),A=z,A}function XE(){var A,z,Q;for(A=D,z=[],Se.test(e.charAt(D))?(Q=e.charAt(D),D++):(Q=n,ne===0&&ie(NE));Q!==n;)z.push(Q),Se.test(e.charAt(D))?(Q=e.charAt(D),D++):(Q=n,ne===0&&ie(NE));return z!==n&&(Rt=A,z=sz(z)),A=z,A}function yz(){var A,z,Q,X;if(ne++,A=D,z=ge(),z!==n){if(Q=[],OE.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,ne===0&&ie(zE)),X!==n)for(;X!==n;)Q.push(X),OE.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,ne===0&&ie(zE));else Q=n;Q!==n?(Rt=A,z=fz(),A=z):(D=A,A=n)}else D=A,A=n;return ne--,A===n&&(z=n,ne===0&&ie(lz)),A}function ge(){var A,z;for(ne++,A=[],UE.test(e.charAt(D))?(z=e.charAt(D),D++):(z=n,ne===0&&ie(GE));z!==n;)A.push(z),UE.test(e.charAt(D))?(z=e.charAt(D),D++):(z=n,ne===0&&ie(GE));return ne--,A===n&&(z=n,ne===0&&ie(uz)),A}if(Lc=i(),Lc!==n&&D===e.length)return Lc;throw Lc!==n&&D<e.length&&ie(cz()),hz(Cg,Kn<e.length?e.charAt(Kn):null,Kn<e.length?qE(Kn,Kn+1):qE(Kn,Kn))}var _3={SyntaxError:ya,parse:GN};const HN=Ws(_3),jp=Object.fromEntries(Object.entries(Object.freeze(Object.defineProperty({__proto__:null,bigChain:`table bigChain
323
+ `):"",this.name="UnsubscriptionError",this.errors=n}});function JA(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var jp=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=Pl(a),u=s.next();!u.done;u=s.next()){var l=u.value;l.remove(this)}}catch(b){t={error:b}}finally{try{u&&!u.done&&(n=s.return)&&n.call(s)}finally{if(t)throw t.error}}else a.remove(this);var f=this.initialTeardown;if(at(f))try{f()}catch(b){o=b instanceof Vp?b.errors:[b]}var c=this._finalizers;if(c){this._finalizers=null;try{for(var h=Pl(c),d=h.next();!d.done;d=h.next()){var p=d.value;try{t3(p)}catch(b){o=o??[],b instanceof Vp?o=Hp(Hp([],Gp(o)),Gp(b.errors)):o.push(b)}}}catch(b){r={error:b}}finally{try{d&&!d.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}}if(o)throw new Vp(o)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)t3(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)&&JA(n,t)},e.prototype.remove=function(t){var n=this._finalizers;n&&JA(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();jp.EMPTY;function e3(e){return e instanceof jp||e&&"closed"in e&&at(e.remove)&&at(e.add)&&at(e.unsubscribe)}function t3(e){at(e)?e():e.unsubscribe()}var n3={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},r3={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return setTimeout.apply(void 0,Hp([e,t],Gp(n)))},clearTimeout:function(e){var t=r3.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function i3(e){r3.setTimeout(function(){throw e})}function o3(){}function dN(e){e()}var qp=function(e){Up(t,e);function t(n){var r=e.call(this)||this;return r.isStopped=!1,n?(r.destination=n,e3(n)&&n.add(r)):r.destination=bN,r}return t.create=function(n,r,i){return new Ac(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}(jp),pN=Function.prototype.bind;function Zp(e,t){return pN.call(e,t)}var gN=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){Ec(r)}},e.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(r){Ec(r)}else Ec(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(n){Ec(n)}},e}(),Ac=function(e){Up(t,e);function t(n,r,i){var o=e.call(this)||this,a;if(at(n)||!n)a={next:n??void 0,error:r??void 0,complete:i??void 0};else{var s;o&&n3.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return o.unsubscribe()},a={next:n.next&&Zp(n.next,s),error:n.error&&Zp(n.error,s),complete:n.complete&&Zp(n.complete,s)}):a=n}return o.destination=new gN(a),o}return t}(qp);function Ec(e){i3(e)}function mN(e){throw e}var bN={closed:!0,next:o3,error:mN,complete:o3},Wp=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function a3(e){return e}function yN(e){return e.length===0?a3:e.length===1?e[0]:function(n){return e.reduce(function(r,i){return i(r)},n)}}var cn=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=vN(t)?t:new Ac(t,n,r);return dN(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=s3(n),new n(function(i,o){var a=new Ac({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[Wp]=function(){return this},e.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return yN(t)(this)},e.prototype.toPromise=function(t){var n=this;return t=s3(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 s3(e){var t;return(t=e??n3.Promise)!==null&&t!==void 0?t:Promise}function wN(e){return e&&at(e.next)&&at(e.error)&&at(e.complete)}function vN(e){return e&&e instanceof qp||wN(e)&&e3(e)}function xN(e){return at(e==null?void 0:e.lift)}function ba(e){return function(t){if(xN(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 Ll(e,t,n,r,i){return new AN(e,t,n,r,i)}var AN=function(e){Up(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(f){n.error(f)}}:e.prototype._next,u._error=o?function(l){try{o(l)}catch(f){n.error(f)}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}(qp),EN=new cn(function(e){return e.complete()});function _N(e){return e&&at(e.schedule)}function l3(e){return e[e.length-1]}function SN(e){return _N(l3(e))?e.pop():void 0}function CN(e,t){return typeof l3(e)=="number"?e.pop():t}var u3=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function f3(e){return at(e==null?void 0:e.then)}function c3(e){return at(e[Wp])}function h3(e){return Symbol.asyncIterator&&at(e==null?void 0:e[Symbol.asyncIterator])}function d3(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 kN(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var p3=kN();function g3(e){return at(e==null?void 0:e[p3])}function m3(e){return cN(this,arguments,function(){var n,r,i,o;return $A(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,ma(n.read())];case 3:return r=a.sent(),i=r.value,o=r.done,o?[4,ma(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,ma(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 b3(e){return at(e==null?void 0:e.getReader)}function ya(e){if(e instanceof cn)return e;if(e!=null){if(c3(e))return TN(e);if(u3(e))return IN(e);if(f3(e))return BN(e);if(h3(e))return y3(e);if(g3(e))return DN(e);if(b3(e))return FN(e)}throw d3(e)}function TN(e){return new cn(function(t){var n=e[Wp]();if(at(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function IN(e){return new cn(function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()})}function BN(e){return new cn(function(t){e.then(function(n){t.closed||(t.next(n),t.complete())},function(n){return t.error(n)}).then(null,i3)})}function DN(e){return new cn(function(t){var n,r;try{for(var i=Pl(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 y3(e){return new cn(function(t){RN(e,t).catch(function(n){return t.error(n)})})}function FN(e){return y3(m3(e))}function RN(e,t){var n,r,i,o;return fN(this,void 0,void 0,function(){var a,s;return $A(this,function(u){switch(u.label){case 0:u.trys.push([0,5,6,11]),n=hN(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 ai(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 w3(e,t){return t===void 0&&(t=0),ba(function(n,r){n.subscribe(Ll(r,function(i){return ai(r,e,function(){return r.next(i)},t)},function(){return ai(r,e,function(){return r.complete()},t)},function(i){return ai(r,e,function(){return r.error(i)},t)}))})}function v3(e,t){return t===void 0&&(t=0),ba(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function MN(e,t){return ya(e).pipe(v3(t),w3(t))}function PN(e,t){return ya(e).pipe(v3(t),w3(t))}function LN(e,t){return new cn(function(n){var r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function NN(e,t){return new cn(function(n){var r;return ai(n,t,function(){r=e[p3](),ai(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 at(r==null?void 0:r.return)&&r.return()}})}function x3(e,t){if(!e)throw new Error("Iterable cannot be null");return new cn(function(n){ai(n,t,function(){var r=e[Symbol.asyncIterator]();ai(n,t,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function ON(e,t){return x3(m3(e),t)}function zN(e,t){if(e!=null){if(c3(e))return MN(e,t);if(u3(e))return LN(e,t);if(f3(e))return PN(e,t);if(h3(e))return x3(e,t);if(g3(e))return NN(e,t);if(b3(e))return ON(e,t)}throw d3(e)}function UN(e,t){return t?zN(e,t):ya(e)}var GN=KA(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function A3(e,t){var n=typeof t=="object";return new Promise(function(r,i){var o=new Ac({next:function(a){r(a),o.unsubscribe()},error:i,complete:function(){n?r(t.defaultValue):i(new GN)}});e.subscribe(o)})}function E3(e,t){return ba(function(n,r){var i=0;n.subscribe(Ll(r,function(o){r.next(e.call(t,o,i++))}))})}function HN(e,t,n,r,i,o,a,s){var u=[],l=0,f=0,c=!1,h=function(){c&&!u.length&&!l&&t.complete()},d=function(b){return l<r?p(b):u.push(b)},p=function(b){o&&t.next(b),l++;var y=!1;ya(n(b,f++)).subscribe(Ll(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 _=u.shift();a?ai(t,a,function(){return p(_)}):p(_)};u.length&&l<r;)w();h()}catch(_){t.error(_)}}))};return e.subscribe(Ll(t,d,function(){c=!0,h()})),function(){s==null||s()}}function _3(e,t,n){return n===void 0&&(n=1/0),at(t)?_3(function(r,i){return E3(function(o,a){return t(r,o,i,a)})(ya(e(r,i)))},n):(typeof t=="number"&&(n=t),ba(function(r,i){return HN(r,i,e,n)}))}function VN(e){return e===void 0&&(e=1/0),_3(a3,e)}function jN(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=SN(e),r=CN(e,1/0),i=e;return i.length?i.length===1?ya(i[0]):VN(r)(UN(i,n)):EN}function qN(e,t,n,r,i){return function(o,a){var s=n,u=t,l=0;o.subscribe(Ll(a,function(f){var c=l++;u=s?e(u,f,c):(s=!0,f),r&&a.next(u)},i&&function(){s&&a.next(u),a.complete()}))}}function S3(e,t){return ba(qN(e,t,arguments.length>=2,!1,!0))}var ZN=function(e,t){return e.push(t),e};function WN(){return ba(function(e,t){S3(ZN,[])(e).subscribe(t)})}const C3=-2003829722,Yp=-2021002517;function YN(e){return new TextDecoder().decode(e)}function k3(e){const t=e?"big":"little",n=new Te().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 Te().endianess(t).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new Te().endianess(t).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new Te().endianess(t).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),o=new Te().endianess(t).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:o}}class T3{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 Zi(o);else if(i)this.bbi=new ht(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(pe.Buffer.alloc(n),0,n,0,t),i=this._isBigEndian(r),o=k3(i),a=o.headerParser.parse(r),{magic:s,asOffset:u,totalSummaryOffset:l}=a;if(a.fileType=s===Yp?"bigbed":"bigwig",u>n||l>n)return this._getMainHeader(t,n*2);if(u){const f=Number(a.asOffset);a.autoSql=YN(r.subarray(f,r.indexOf(0,f)))}if(a.totalSummaryOffset>n)return this._getMainHeader(t,n*2);if(a.totalSummaryOffset){const f=r.subarray(Number(a.totalSummaryOffset)),c=o.totalSummaryParser.parse(f);a.totalSummary={...c,basesCovered:Number(c.basesCovered)}}return{...a,isBigEndian:i}}_isBigEndian(t){let n=t.readInt32LE(0);if(n===C3||n===Yp)return!1;if(n=t.readInt32BE(0),n===C3||n===Yp)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:f}=await this.bbi.read(pe.Buffer.alloc(l),0,l,Number(u),n),c=k3(r),{keySize:h}=c.chromTreeParser.parse(f),d=new Te().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),p=new Te().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),b=32,y=async w=>{let _=w;if(_>=f.length)throw new Error("reading beyond end of buffer");const C=c.isLeafNode.parse(f.subarray(_)),{isLeafNode:E,cnt:T}=C;if(_+=C.offset,E)for(let B=0;B<T;B+=1){const I=d.parse(f.subarray(_));_+=I.offset;const{key:R,refId:M,refSize:j}=I,O={name:R,id:M,length:j};a[this.renameRefSeqs(R)]=M,o[M]=O}else{const B=[];for(let I=0;I<T;I+=1){const R=p.parse(f.subarray(_)),{childOffset:M}=R;_+=R.offset,B.push(y(Number(M)-Number(u)))}await Promise.all(B)}};return await y(b),{refsByName:a,refsByNumber:o}}async getUnzoomedView(t){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:o,fileType:a}=await this.getHeader(t);return new XA(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 cn(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 A3(o.pipe(WN()))).flat()}}class QN extends T3{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 f=l;f>=0;f-=1){const c=r[f];if(c&&c.reductionLevel<=2*u){const h=Number(c.indexOffset);return new XA(this.bbi,i,h,a,s>0,"summary")}}return this.getUnzoomedView(n)}}function XN(e){return e.filter(t=>!!t)}class $N extends T3{constructor(){super(...arguments),this.readIndicesCache=new sc({cache:new lc({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(pe.Buffer.alloc(64),0,64,Number(n)),o=r?"big":"little",a=new Te().endianess(o).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:u}=a;if(s===0)return[];const l=20,f=l*s,{buffer:c}=await this.bbi.read(pe.Buffer.alloc(f),0,f,Number(u)),h=new Te().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(c.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(pe.Buffer.alloc(32),0,32,Number(s),n),f=r?"big":"little",c=new Te().endianess(f).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:p}=c.parse(l),b=new Te().endianess(f).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new Te().array("leafkeys",{length:"cnt",type:new Te().endianess(f).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new Te().array("keys",{length:"cnt",type:new Te().endianess(f).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),y=async _=>{const C=Number(_),E=4+h*(d+p),{buffer:T}=await this.bbi.read(pe.Buffer.alloc(E),0,E,C,n),B=b.parse(T);if(B.leafkeys){let I;for(let R=0;R<B.leafkeys.length;R+=1){const{key:M}=B.leafkeys[R];if(t.localeCompare(M)<0&&I)return y(I);I=B.leafkeys[R].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 XN(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 cn(u=>{i.readFeatures(u,[s],n)}).pipe(S3((u,l)=>u.concat(l)),E3(u=>{for(const l of u)l.field=s.field;return u})));return(await A3(jN(...o))).filter(s=>{var u;return((u=s.rest)===null||u===void 0?void 0:u.split(" ")[(s.field||0)-3])===t})}}const I3=Object.freeze(Object.defineProperty({__proto__:null,BigBed:$N,BigWig:QN},Symbol.toStringTag,{value:"Module"}));function KN(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function wa(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,wa)}KN(wa,Error),wa.buildMessage=function(e,t){var n={literal:function(l){return'"'+i(l.text)+'"'},class:function(l){var f="",c;for(c=0;c<l.parts.length;c++)f+=l.parts[c]instanceof Array?o(l.parts[c][0])+"-"+o(l.parts[c][1]):o(l.parts[c]);return"["+(l.inverted?"^":"")+f+"]"},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(f){return"\\x0"+r(f)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(f){return"\\x"+r(f)})}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(f){return"\\x0"+r(f)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(f){return"\\x"+r(f)})}function a(l){return n[l.type](l)}function s(l){var f=new Array(l.length),c,h;for(c=0;c<l.length;c++)f[c]=a(l[c]);if(f.sort(),f.length>0){for(c=1,h=1;c<f.length;c++)f[c-1]!==f[c]&&(f[h]=f[c],h++);f.length=h}switch(f.length){case 1:return f[0];case 2:return f[0]+" or "+f[1];default:return f.slice(0,-1).join(", ")+", or "+f[f.length-1]}}function u(l){return l?'"'+i(l)+'"':"end of input"}return"Expected "+s(e)+" but "+u(t)+" found."};function JN(e,t){t=t!==void 0?t:{};var n={},r={declaration:KE},i=KE,o="(",a=Fe("(",!1),s=")",u=Fe(")",!1),l=function(A,z,X,$){return{type:A,name:z,comment:X,fields:$}},f="simple",c=Fe("simple",!1),h="object",d=Fe("object",!1),p="table",b=Fe("table",!1),y="auto",w=Fe("auto",!1),_="primary",C=Fe("primary",!1),E="index",T=Fe("index",!1),B="unique",I=Fe("unique",!1),R=function(A,z){return z},M=function(A,z){return A.name&&z.unshift(A),z},j="#",O=Fe("#",!1),ie=";",se=Fe(";",!1),ge=function(A,z,X){return{type:A,name:z,comment:X}},Ie="[",Xe=Fe("[",!1),De="]",$e=Fe("]",!1),Ze=function(A,z,X,$){return{type:A,size:z,name:X,comment:$}},Ke=function(A,z,X,$){return{type:A,vals:z,name:X,comment:$}},Ee=",",_e=Fe(",",!1),pt=function(A,z){return z.unshift(A),z},qt="int",Oe=Fe("int",!1),L="uint",P=Fe("uint",!1),q="short",H=Fe("short",!1),Y="ushort",S=Fe("ushort",!1),x="byte",G=Fe("byte",!1),Z="ubyte",le=Fe("ubyte",!1),J="float",ue=Fe("float",!1),Zt="char",li=Fe("char",!1),ui="string",fi=Fe("string",!1),St="lstring",wr=Fe("lstring",!1),ci="enum",Wt=Fe("enum",!1),Xn="double",v=Fe("double",!1),g="bigint",m=Fe("bigint",!1),k="set",F=Fe("set",!1),N=function(A,z){return A+" "+z},V=/^[a-zA-Z_]/,fe=ru([["a","z"],["A","Z"],"_"],!1,!1),Ge=/^[a-zA-Z0-9_]/,Me=ru([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),We=function(A){return YE()},Se=/^[^\n\r]/,VE=ru([`
324
+ `,"\r"],!0,!1),wz=function(A){return A.join("").replace(/^"/,"").replace(/"$/,"")},vz=QE("integer"),jE=/^[0-9]/,qE=ru([["0","9"]],!1,!1),xz=function(){return parseInt(YE(),10)},Az=QE("whitespace"),ZE=/^[ \t\n\r]/,WE=ru([" "," ",`
325
+ `,"\r"],!1,!1),D=0,Dt=0,Nc=[{line:1,column:1}],$n=0,Dg=[],ne=0,Oc;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 YE(){return e.substring(Dt,D)}function Fe(A,z){return{type:"literal",text:A,ignoreCase:z}}function ru(A,z,X){return{type:"class",parts:A,inverted:z,ignoreCase:X}}function Ez(){return{type:"end"}}function QE(A){return{type:"other",description:A}}function XE(A){var z=Nc[A],X;if(z)return z;for(X=A-1;!Nc[X];)X--;for(z=Nc[X],z={line:z.line,column:z.column};X<A;)e.charCodeAt(X)===10?(z.line++,z.column=1):z.column++,X++;return Nc[A]=z,z}function $E(A,z){var X=XE(A),$=XE(z);return{start:{offset:A,line:X.line,column:X.column},end:{offset:z,line:$.line,column:$.column}}}function oe(A){D<$n||(D>$n&&($n=D,Dg=[]),Dg.push(A))}function _z(A,z,X){return new wa(wa.buildMessage(A,z),A,z,X)}function KE(){var A,z,X,$,ee,ze,Ye,pn,hi,vr,di,xr,pi,Ar;return A=D,z=me(),z!==n?(X=JE(),X!==n?($=me(),$!==n?(ee=e_(),ee!==n?(ze=me(),ze!==n?(Ye=zc(),Ye!==n?(pn=me(),pn!==n?(e.charCodeAt(D)===40?(hi=o,D++):(hi=n,ne===0&&oe(a)),hi!==n?(vr=me(),vr!==n?(di=Sz(),di!==n?(xr=me(),xr!==n?(e.charCodeAt(D)===41?(pi=s,D++):(pi=n,ne===0&&oe(u)),pi!==n?(Ar=me(),Ar!==n?(Dt=A,z=l(X,ee,Ye,di),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A}function JE(){var A;return e.substr(D,6)===f?(A=f,D+=6):(A=n,ne===0&&oe(c)),A===n&&(e.substr(D,6)===h?(A=h,D+=6):(A=n,ne===0&&oe(d)),A===n&&(e.substr(D,5)===p?(A=p,D+=5):(A=n,ne===0&&oe(b)))),A}function e_(){var A,z,X,$;return A=In(),A===n&&(A=D,z=In(),z!==n?(X=t_(),X!==n?(z=[z,X],A=z):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=In(),z!==n?(e.substr(D,4)===y?(X=y,D+=4):(X=n,ne===0&&oe(w)),X!==n?(z=[z,X],A=z):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=In(),z!==n?(X=t_(),X!==n?(e.substr(D,4)===y?($=y,D+=4):($=n,ne===0&&oe(w)),$!==n?(z=[z,X,$],A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)))),A}function t_(){var A;return e.substr(D,7)===_?(A=_,D+=7):(A=n,ne===0&&oe(C)),A===n&&(e.substr(D,5)===E?(A=E,D+=5):(A=n,ne===0&&oe(T)),A===n&&(e.substr(D,6)===B?(A=B,D+=6):(A=n,ne===0&&oe(I)))),A}function zc(){var A;return A=n_(),A===n&&(A=me()),A}function Sz(){var A,z,X,$,ee,ze,Ye;if(A=D,z=Fg(),z!==n)if(X=me(),X!==n){for($=[],ee=D,ze=me(),ze!==n?(Ye=Fg(),Ye!==n?(Dt=ee,ze=R(z,Ye),ee=ze):(D=ee,ee=n)):(D=ee,ee=n);ee!==n;)$.push(ee),ee=D,ze=me(),ze!==n?(Ye=Fg(),Ye!==n?(Dt=ee,ze=R(z,Ye),ee=ze):(D=ee,ee=n)):(D=ee,ee=n);$!==n?(ee=me(),ee!==n?(Dt=A,z=M(z,$),A=z):(D=A,A=n)):(D=A,A=n)}else D=A,A=n;else D=A,A=n;return A}function Cz(){var A;return e.charCodeAt(D)===35?(A=j,D++):(A=n,ne===0&&oe(O)),A}function kz(){var A,z,X,$,ee;return A=D,z=me(),z!==n?(X=Cz(),X!==n?($=n_(),$!==n?(ee=me(),ee!==n?(z=[z,X,$,ee],A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A}function Fg(){var A,z,X,$,ee,ze,Ye,pn,hi,vr,di,xr,pi,Ar;return A=D,z=Rg(),z!==n?(X=me(),X!==n?($=In(),$!==n?(ee=me(),ee!==n?(e.charCodeAt(D)===59?(ze=ie,D++):(ze=n,ne===0&&oe(se)),ze!==n?(Ye=me(),Ye!==n?(pn=zc(),pn!==n?(Dt=A,z=ge(z,$,pn),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=Rg(),z!==n?(X=me(),X!==n?(e.charCodeAt(D)===91?($=Ie,D++):($=n,ne===0&&oe(Xe)),$!==n?(ee=me(),ee!==n?(ze=Iz(),ze!==n?(Ye=me(),Ye!==n?(e.charCodeAt(D)===93?(pn=De,D++):(pn=n,ne===0&&oe($e)),pn!==n?(hi=me(),hi!==n?(vr=In(),vr!==n?(di=me(),di!==n?(e.charCodeAt(D)===59?(xr=ie,D++):(xr=n,ne===0&&oe(se)),xr!==n?(pi=me(),pi!==n?(Ar=zc(),Ar!==n?(Dt=A,z=Ze(z,ze,vr,Ar),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=Rg(),z!==n?(X=me(),X!==n?(e.charCodeAt(D)===40?($=o,D++):($=n,ne===0&&oe(a)),$!==n?(ee=me(),ee!==n?(ze=Tz(),ze!==n?(Ye=me(),Ye!==n?(e.charCodeAt(D)===41?(pn=s,D++):(pn=n,ne===0&&oe(u)),pn!==n?(hi=me(),hi!==n?(vr=In(),vr!==n?(di=me(),di!==n?(e.charCodeAt(D)===59?(xr=ie,D++):(xr=n,ne===0&&oe(se)),xr!==n?(pi=me(),pi!==n?(Ar=zc(),Ar!==n?(Dt=A,z=Ke(z,ze,vr,Ar),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A===n&&(A=kz()))),A}function Tz(){var A,z,X,$,ee,ze,Ye;if(A=D,z=In(),z!==n){for(X=[],$=D,e.charCodeAt(D)===44?(ee=Ee,D++):(ee=n,ne===0&&oe(_e)),ee!==n?(ze=me(),ze!==n?(Ye=In(),Ye!==n?(Dt=$,ee=R(z,Ye),$=ee):(D=$,$=n)):(D=$,$=n)):(D=$,$=n);$!==n;)X.push($),$=D,e.charCodeAt(D)===44?(ee=Ee,D++):(ee=n,ne===0&&oe(_e)),ee!==n?(ze=me(),ze!==n?(Ye=In(),Ye!==n?(Dt=$,ee=R(z,Ye),$=ee):(D=$,$=n)):(D=$,$=n)):(D=$,$=n);X!==n?(Dt=A,z=pt(z,X),A=z):(D=A,A=n)}else D=A,A=n;return A}function Rg(){var A,z,X,$;return e.substr(D,3)===qt?(A=qt,D+=3):(A=n,ne===0&&oe(Oe)),A===n&&(e.substr(D,4)===L?(A=L,D+=4):(A=n,ne===0&&oe(P)),A===n&&(e.substr(D,5)===q?(A=q,D+=5):(A=n,ne===0&&oe(H)),A===n&&(e.substr(D,6)===Y?(A=Y,D+=6):(A=n,ne===0&&oe(S)),A===n&&(e.substr(D,4)===x?(A=x,D+=4):(A=n,ne===0&&oe(G)),A===n&&(e.substr(D,5)===Z?(A=Z,D+=5):(A=n,ne===0&&oe(le)),A===n&&(e.substr(D,5)===J?(A=J,D+=5):(A=n,ne===0&&oe(ue)),A===n&&(e.substr(D,4)===Zt?(A=Zt,D+=4):(A=n,ne===0&&oe(li)),A===n&&(e.substr(D,6)===ui?(A=ui,D+=6):(A=n,ne===0&&oe(fi)),A===n&&(e.substr(D,7)===St?(A=St,D+=7):(A=n,ne===0&&oe(wr)),A===n&&(e.substr(D,4)===ci?(A=ci,D+=4):(A=n,ne===0&&oe(Wt)),A===n&&(e.substr(D,6)===Xn?(A=Xn,D+=6):(A=n,ne===0&&oe(v)),A===n&&(e.substr(D,6)===g?(A=g,D+=6):(A=n,ne===0&&oe(m)),A===n&&(e.substr(D,3)===k?(A=k,D+=3):(A=n,ne===0&&oe(F)),A===n&&(A=D,z=JE(),z!==n?(X=me(),X!==n?($=e_(),$!==n?(Dt=A,z=N(z,$),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n))))))))))))))),A}function Iz(){var A;return A=Bz(),A===n&&(A=In()),A}function In(){var A,z,X,$,ee;if(A=D,z=D,V.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,ne===0&&oe(fe)),X!==n){for($=[],Ge.test(e.charAt(D))?(ee=e.charAt(D),D++):(ee=n,ne===0&&oe(Me));ee!==n;)$.push(ee),Ge.test(e.charAt(D))?(ee=e.charAt(D),D++):(ee=n,ne===0&&oe(Me));$!==n?(X=[X,$],z=X):(D=z,z=n)}else D=z,z=n;return z!==n&&(Dt=A,z=We()),A=z,A}function n_(){var A,z,X;for(A=D,z=[],Se.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,ne===0&&oe(VE));X!==n;)z.push(X),Se.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,ne===0&&oe(VE));return z!==n&&(Dt=A,z=wz(z)),A=z,A}function Bz(){var A,z,X,$;if(ne++,A=D,z=me(),z!==n){if(X=[],jE.test(e.charAt(D))?($=e.charAt(D),D++):($=n,ne===0&&oe(qE)),$!==n)for(;$!==n;)X.push($),jE.test(e.charAt(D))?($=e.charAt(D),D++):($=n,ne===0&&oe(qE));else X=n;X!==n?(Dt=A,z=xz(),A=z):(D=A,A=n)}else D=A,A=n;return ne--,A===n&&(z=n,ne===0&&oe(vz)),A}function me(){var A,z;for(ne++,A=[],ZE.test(e.charAt(D))?(z=e.charAt(D),D++):(z=n,ne===0&&oe(WE));z!==n;)A.push(z),ZE.test(e.charAt(D))?(z=e.charAt(D),D++):(z=n,ne===0&&oe(WE));return ne--,A===n&&(z=n,ne===0&&oe(Az)),A}if(Oc=i(),Oc!==n&&D===e.length)return Oc;throw Oc!==n&&D<e.length&&oe(Ez()),_z(Dg,$n<e.length?e.charAt($n):null,$n<e.length?$E($n,$n+1):$E($n,$n))}var B3={SyntaxError:wa,parse:JN};const eO=$s(B3),Qp=Object.fromEntries(Object.entries(Object.freeze(Object.defineProperty({__proto__:null,bigChain:`table bigChain
283
326
  "bigChain pairwise alignment"
284
327
  (
285
328
  string chrom; "Reference sequence chromosome or scaffold"
@@ -438,17 +481,17 @@ Reason: ${s.message}`)}));if(n.isViewSpec(o))return o.baseUrl=(a=i.match(/^[^?#]
438
481
  float score; "Floating point score."
439
482
  char[1] leftStatus; "Gap/break annotation for preceding block"
440
483
  char[1] rightStatus; "Gap/break annotation for following block"
441
- )`},Symbol.toStringTag,{value:"Module"}))).map(([e,t])=>[e,_3.parse(t.trim())]));function qp(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 VN={".":0,"-":-1,"+":1};function jN(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 qN{constructor(t={}){if(t.autoSql)this.autoSql=qp(HN.parse(t.autoSql));else if(t.type){if(!jp[t.type])throw new Error("Type not found");this.autoSql=qp(jp[t.type])}else this.autoSql=qp(jp.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&&jN(o))for(let s=0;s<r.fields.length;s++){const f=r.fields[s];let l=o[s];const{isNumeric:u,isArray:c,arrayIsNumeric:h,name:d}=f;if(l==null)break;if(l!=="."){if(u){const p=Number(l);l=Number.isNaN(p)?l:p}else c&&(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((f,l)=>[s[l]||"field"+l,f])),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=VN[a.strand]||0,a.chrom=decodeURIComponent(a.chrom),a}}const ZN=Object.freeze(Object.defineProperty({__proto__:null,default:qN},Symbol.toStringTag,{value:"Module"}));let S3=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 wa(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new S3(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 C3=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 WN(e){return new Promise(t=>setTimeout(t,e))}function YN(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}function QN(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 XN(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function $N(e={}){return"aborted"in e?{signal:e}:e}function k3(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):XN(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i));return n}function I3(e,t){return{lineCount:YN(Qu.fromBytesLE(Array.prototype.slice.call(e,t,t+8),!0))}}function Ac(e,t){return e?e.compareTo(t)>0?t:e:t}function KN(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 T3=class{constructor({filehandle:t,renameRefSeq:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}};const JN=21578050;function eO(e,t){return e-e%t}function tO(e,t){return e-e%t+t}function nO(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 va extends T3{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)!==JN)throw new Error("Not a BAI file");const r=n.readInt32LE(4),o=((1<<(5+1)*3)-1)/7;let a=8,s;const f=new Array(r);for(let l=0;l<r;l++){const u=n.readInt32LE(a);let c;a+=4;const h={};for(let b=0;b<u;b+=1){const y=n.readUInt32LE(a);if(a+=4,y===o+1)a+=4,c=I3(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 _=new Array(w);for(let C=0;C<w;C++){const S=wa(n,a);a+=8;const T=wa(n,a);a+=8,s=Ac(s,S),_[C]=new C3(S,T,y)}h[y]=_}}}const d=n.readInt32LE(a);a+=4;const p=new Array(d);for(let b=0;b<d;b++){const y=wa(n,a);a+=8,s=Ac(s,y),p[b]=y}f[l]={binIndex:h,linearIndex:p,stats:c}}return{bai:!0,firstDataLine:s,maxBlockSize:65536,indices:f,refCount:r}}async indexCov(t,n,r,i={}){const a=n!==void 0,f=(await this.parse(i)).indices[t];if(!f)return[];const{linearIndex:l=[],stats:u}=f;if(l.length===0)return[];const c=r===void 0?(l.length-1)*16384:tO(r,16384),h=n===void 0?0:eO(n,16384),d=a?new Array((c-h)/16384):new Array(l.length-1),p=l[l.length-1].blockPosition;if(c>(l.length-1)*16384)throw new Error("query outside of range of linear index");let b=l[h/16384].blockPosition;for(let y=h/16384,w=0;y<c/16384;y++,w++)d[w]={score:l[y+1].blockPosition-b,start:y*16384,end:y*16384+16384},b=l[y+1].blockPosition;return d.map(y=>({...y,score:y.score*((u==null?void 0:u.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=nO(n,r),f=[];for(const[d,p]of s)for(let b=d;b<=p;b++)if(a.binIndex[b]){const y=a.binIndex[b];for(const w of y)f.push(w)}const l=a.linearIndex.length;let u;const c=Math.min(n>>14,l-1),h=Math.min(r>>14,l-1);for(let d=c;d<=h;++d){const p=a.linearIndex[d];p&&(!u||p.compareTo(u)<0)&&(u=p)}return k3(f,u)}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 oi=ye.Buffer,Zp=[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"&&(Zp=new Int32Array(Zp));function B3(e){if(oi.isBuffer(e))return e;var t=typeof oi.alloc=="function"&&typeof oi.from=="function";if(typeof e=="number")return t?oi.alloc(e):new oi(e);if(typeof e=="string")return t?oi.from(e):new oi(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function rO(e){var t=B3(4);return t.writeInt32BE(e,0),t}function Wp(e,t){e=B3(e),oi.isBuffer(t)&&(t=t.readUInt32BE(0));for(var n=~~t^-1,r=0;r<e.length;r++)n=Zp[(n^e[r])&255]^n>>>8;return n^-1}function Yp(){return rO(Wp.apply(null,arguments))}Yp.signed=function(){return Wp.apply(null,arguments)},Yp.unsigned=function(){return Wp.apply(null,arguments)>>>0};var iO=Yp;const oO=Ws(iO),aO=21582659,sO=38359875;function lO(e,t){return e*2**t}function D3(e,t){return Math.floor(e/2**t)}let Ec=class extends T3{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),f=s?String.fromCharCode(s):"",l=t.readInt32LE(n+20),u=t.readInt32LE(n+24);return{columnNumbers:a,coordinateType:i,metaValue:s,metaChar:f,skipLines:l,format:o,formatFlags:r,...KN(t.subarray(n+28,n+28+u),this.renameRefSeq)}}async _parse(t){const n=await this.filehandle.readFile(t),r=await $r(n);let i;if(r.readUInt32LE(0)===aO)i=1;else if(r.readUInt32LE(0)===sO)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 f=16+o+4,l;const u=new Array(s);for(let c=0;c<s;c++){const h=r.readInt32LE(f);f+=4;const d={};let p;for(let b=0;b<h;b++){const y=r.readUInt32LE(f);if(f+=4,y>this.maxBinNumber)p=I3(r,f+28),f+=28+16;else{l=Ac(l,wa(r,f)),f+=8;const w=r.readInt32LE(f);f+=4;const _=new Array(w);for(let C=0;C<w;C+=1){const S=wa(r,f);f+=8;const T=wa(r,f);f+=8,l=Ac(l,S),_[C]=new C3(S,T,y)}d[y]=_}}u[c]={binIndex:d,stats:p}}return{csiVersion:i,firstDataLine:l,indices:u,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 f=[];for(const[l,u]of s)for(let c=l;c<=u;c++)if(a.binIndex[c]){const h=a.binIndex[c];for(const d of h)f.push(d)}return k3(f,new S3(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+=lO(1,r*3),r+=1){const s=i+D3(t,o),f=i+D3(n,o);if(f-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,f])}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 dn={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},R3="=ACMGRSVTWYHKDBN".split(""),Fl="MIDNSHP=X???????".split("");class F3{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 f=String.fromCharCode(n[i+2]);i+=3;let l;switch(f){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 u=n[i++];if(u===0)break;l+=String.fromCharCode(u)}break}case"B":{l="";const u=n[i++],c=String.fromCharCode(u),h=n.readInt32LE(i);if(i+=4,c==="i")if(s==="CG")for(let d=0;d<h;d++){const p=n.readInt32LE(i),b=p>>4,y=Fl[p&15];l+=b+y,i+=4}else for(let d=0;d<h;d++)l+=n.readInt32LE(i),d+1<h&&(l+=","),i+=4;if(c==="I")if(s==="CG")for(let d=0;d<h;d++){const p=n.readUInt32LE(i),b=p>>4,y=Fl[p&15];l+=b+y,i+=4}else for(let d=0;d<h;d++)l+=n.readUInt32LE(i),d+1<h&&(l+=","),i+=4;if(c==="s")for(let d=0;d<h;d++)l+=n.readInt16LE(i),d+1<h&&(l+=","),i+=2;if(c==="S")for(let d=0;d<h;d++)l+=n.readUInt16LE(i),d+1<h&&(l+=","),i+=2;if(c==="c")for(let d=0;d<h;d++)l+=n.readInt8(i),d+1<h&&(l+=","),i+=1;if(c==="C")for(let d=0;d<h;d++)l+=n.readUInt8(i),d+1<h&&(l+=","),i+=1;if(c==="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 '${f}', 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&dn.BAM_FPAIRED)}isProperlyPaired(){return!!(this.flags&dn.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return!!(this.flags&dn.BAM_FUNMAP)}isMateUnmapped(){return!!(this.flags&dn.BAM_FMUNMAP)}isReverseComplemented(){return!!(this.flags&dn.BAM_FREVERSE)}isMateReverseComplemented(){return!!(this.flags&dn.BAM_FMREVERSE)}isRead1(){return!!(this.flags&dn.BAM_FREAD1)}isRead2(){return!!(this.flags&dn.BAM_FREAD2)}isSecondary(){return!!(this.flags&dn.BAM_FSECONDARY)}isFailedQc(){return!!(this.flags&dn.BAM_FQCFAIL)}isDuplicate(){return!!(this.flags&dn.BAM_FDUP)}isSupplementary(){return!!(this.flags&dn.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,f=t.readInt32LE(i),l=f>>4,u=Fl[f&15];if(u==="S"&&l===o)return i+=4,f=t.readInt32LE(i),l=f>>4,u=Fl[f&15],u!=="N"&&console.warn("CG tag with no N tag"),this.data.length_on_ref=l,this.get("CG");for(let c=0;c<r;++c)f=t.readInt32LE(i),l=f>>4,u=Fl[f&15],a+=l+u,u!=="H"&&u!=="S"&&u!=="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 f=0;f<i;++f){const l=t[r+f];a+=R3[(l&240)>>4],s++,s<o&&(a+=R3[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 M3(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,f]=a.split(":",2);return{tag:s,value:f}})})}return n}const P3=21840194,L3=65536;async function fO(e){let t=[];for await(const n of e)t=t.concat(n);return t}class uO{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 N3{constructor({bamFilehandle:t,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:o,baiUrl:a,csiPath:s,csiFilehandle:f,csiUrl:l,htsget:u,yieldThreadTime:c=100,renameRefSeqs:h=d=>d}){if(this.htsget=!1,this.featureCache=new rc({cache:new ic({maxSize:50}),fill:async(d,p)=>{const{chunk:b,opts:y}=d,{data:w,cpositions:_,dpositions:C}=await this._readChunk({chunk:b,opts:{...y,signal:p}});return this.readBamFeatures(w,_,C,b)}}),this.renameRefSeq=h,t)this.bam=t;else if(n)this.bam=new ct(n);else if(r)this.bam=new qi(r);else if(u)this.htsget=!0,this.bam=new uO;else throw new Error("unable to initialize bam");if(f)this.index=new Ec({filehandle:f});else if(s)this.index=new Ec({filehandle:new ct(s)});else if(l)this.index=new Ec({filehandle:new qi(l)});else if(o)this.index=new va({filehandle:o});else if(i)this.index=new va({filehandle:new ct(i)});else if(a)this.index=new va({filehandle:new qi(a)});else if(n)this.index=new va({filehandle:new ct(`${n}.bai`)});else if(r)this.index=new va({filehandle:new qi(`${r}.bai`)});else if(u)this.htsget=!0;else throw new Error("unable to infer index format");this.yieldThreadTime=c}async getHeaderPre(t){const n=$N(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 u=i+L3,c=await this.bam.read(ye.Buffer.alloc(u),0,u,0,n);if(!c.bytesRead)throw new Error("Error reading header");o=c.buffer.subarray(0,Math.min(c.bytesRead,i))}else o=await this.bam.readFile(n);const a=await $r(o);if(a.readInt32LE(0)!==P3)throw new Error("Not a BAM file");const s=a.readInt32LE(4);this.header=a.toString("utf8",8,8+s);const{chrToIndex:f,indexToChr:l}=await this._readRefSeqs(s+8,65535,n);return this.chrToIndex=f,this.indexToChr=l,M3(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+L3,{bytesRead:o,buffer:a}=await this.bam.read(ye.Buffer.alloc(i),0,n,0,r);if(!o)throw new Error("Error reading refseqs from header");const s=await $r(a.subarray(0,Math.min(o,n))),f=s.readInt32LE(t);let l=t+4;const u={},c=[];for(let h=0;h<f;h+=1){const d=s.readInt32LE(l),p=this.renameRefSeq(s.toString("utf8",l+4,l+4+d-1)),b=s.readInt32LE(l+d+4);if(u[p]=h,c.push({refName:p,length:b}),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:u,indexToChr:c}}async getRecordsForRange(t,n,r,i){return fO(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 f=!1;for(const l of t){const u=await this.featureCache.get(l.toString(),{chunk:l,opts:o},o.signal),c=[];for(const h of u)if(h.seq_id()===n)if(h.get("start")>=i){f=!0;break}else h.get("end")>=r&&c.push(h);if(s.push(c),yield c,f)break}QN(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 b=p.name(),y=p.id();d[b]||(d[b]=0),d[b]++,s[y]=1}for(const[p,b]of Object.entries(d))b===1&&(a[p]=!0)});const f=[];n.map(h=>{for(const d of h){const p=d.name(),b=d.get("start"),y=d._next_pos(),w=d._next_refid();this.index&&a[p]&&(i||w===t&&Math.abs(b-y)<o)&&f.push(this.index.blocksForRange(w,y,y+1,r))}});const l=new Map,u=await Promise.all(f);for(const h of u.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:b,chunk:y}=await this._readChunk({chunk:h,opts:r}),w=[];for(const _ of await this.readBamFeatures(d,p,b,y))a[_.get("name")]&&!s[_.id()]&&w.push(_);return w}))).flat()}async _readRegion(t,n,r={}){const{bytesRead:i,buffer:o}=await this.bam.read(ye.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 ix(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,f=+Date.now();for(;o+4<t.length;){const l=t.readInt32LE(o),u=o+4+l-1;if(r){for(;o+i.minv.dataPosition>=r[s++];);s--}if(u<t.length){const c=new F3({bytes:{byteArray:t,start:o,end:u},fileOffset:n.length>0?n[s]*256+(o-r[s])+i.minv.dataPosition+1:oO.signed(t.slice(o,u))});a.push(c),this.yieldThreadTime&&+Date.now()-f>this.yieldThreadTime&&(await WN(1),f=+Date.now())}o=u+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 O3(e,t){const n=await Promise.all(e.map(async r=>{const{url:i,headers:o}=r;if(i.startsWith("data:"))return ye.Buffer.from(i.split(",")[1],"base64");{const{referer:a,...s}=o,f=await fetch(i,{...t,headers:{...t==null?void 0:t.headers,...s}});if(!f.ok)throw new Error(`HTTP ${f.status} fetching ${i}: ${await f.text()}`);return ye.Buffer.from(await f.arrayBuffer())}}));return ye.Buffer.concat(await Promise.all(n.map(r=>$r(r))))}class cO extends N3{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`,f=(o=this.chrToIndex)===null||o===void 0?void 0:o[t];if(f===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 u=await l.json(),c=await O3(u.htsget.urls.slice(1),i);yield*this._fetchChunkFeatures([{buffer:c,_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}`}}],f,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 O3(i.htsget.urls,t);if(o.readInt32LE(0)!==P3)throw new Error("Not a BAM file");const a=o.readInt32LE(4),s=o.toString("utf8",8,8+a),f=M3(s),l=[],u={},c=f.filter(h=>h.tag==="SQ");for(const[h,d]of c.entries()){let p="",b=0;for(const y of d.data)y.tag==="SN"?p=y.value:y.tag==="LN"&&(b=+y.value);u[p]=h,l[h]={refName:p,length:b}}return this.chrToIndex=u,this.indexToChr=l,f}}const hO=Object.freeze(Object.defineProperty({__proto__:null,BAI:va,BamFile:N3,BamRecord:F3,CSI:Ec,HtsgetFile:cO},Symbol.toStringTag,{value:"Module"}));function z3(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}class dO extends Error{}function co(e){if(e&&e.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const t=new dO("aborted");throw t.code="ERR_ABORTED",t}}}function pO(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function U3(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):pO(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}class Qp{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 xa(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new Qp(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 _c{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 G3{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={}){return!!((await this.parse(n)).indices[t]||{}).binIndex}}const gO=21578324,H3=14;function mO(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 Sc extends G3{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 $r(n);if(co(t.signal),r.readUInt32LE(0)!==gO)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",f={0:"generic",1:"SAM",2:"VCF"}[o&15];if(!f)throw new Error(`invalid Tabix preset format flags ${o}`);const l={ref:r.readInt32LE(12),start:r.readInt32LE(16),end:r.readInt32LE(20)},u=r.readInt32LE(24),c=5,h=((1<<(c+1)*3)-1)/7,d=2**(14+c*3),p=u?String.fromCharCode(u):null,b=r.readInt32LE(28),y=r.readInt32LE(32),{refNameToId:w,refIdToName:_}=this._parseNameBytes(r.slice(36,36+y));let C=36+y,S;return{indices:new Array(i).fill(0).map(()=>{const B=r.readInt32LE(C);C+=4;const I={};let F;for(let O=0;O<B;O+=1){const re=r.readUInt32LE(C);if(C+=4,re>h+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(re===h+1){const ae=r.readInt32LE(C);C+=4,ae===2&&(F=this.parsePseudoBin(r,C)),C+=16*ae}else{const ae=r.readInt32LE(C);C+=4;const pe=new Array(ae);for(let Te=0;Te<ae;Te+=1){const Xe=xa(r,C),De=xa(r,C+8);C+=16,S=this._findFirstData(S,Xe),pe[Te]=new _c(Xe,De,re)}I[re]=pe}}const P=r.readInt32LE(C);C+=4;const j=new Array(P);for(let O=0;O<P;O+=1)j[O]=xa(r,C),C+=8,S=this._findFirstData(S,j[O]);return{binIndex:I,linearIndex:j,stats:F}}),metaChar:p,maxBinNumber:h,maxRefLength:d,skipLines:b,firstDataLine:S,columnNumbers:l,coordinateType:a,format:f,refIdToName:_,refNameToId:w,maxBlockSize:65536}}parsePseudoBin(t,n){return{lineCount:z3(Qu.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>>H3>=s.linearIndex.length?s.linearIndex.length-1:n>>H3]:new Qp(0,0))||console.warn("querying outside of possible tabix range");const l=mO(n,r),u=[];for(const[b,y]of l)for(let w=b;w<=y;w++)if(s.binIndex[w]){const _=s.binIndex[w];for(let C=0;C<_.length;++C)u.push(new _c(_[C].minv,_[C].maxv,w))}const c=s.linearIndex.length;let h=null;const d=Math.min(n>>14,c-1),p=Math.min(r>>14,c-1);for(let b=d;b<=p;++b){const y=s.linearIndex[b];y&&(!h||y.compareTo(h)<0)&&(h=y)}return U3(u,h)}}const bO=21582659,yO=38359875;function wO(e,t){return e*2**t}function V3(e,t){return Math.floor(e/2**t)}class Xp extends G3{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}async 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),f=s?String.fromCharCode(s):null,l=t.readInt32LE(n+20),u=t.readInt32LE(n+24),{refIdToName:c,refNameToId:h}=this._parseNameBytes(t.slice(n+28,n+28+u));return{refIdToName:c,refNameToId:h,skipLines:l,metaChar:f,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 $r(await this.filehandle.readFile(t));let r;if(n.readUInt32LE(0)===bO)r=1;else if(n.readUInt32LE(0)===yO)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 f,l=16+o+4;const u=new Array(s).fill(0).map(()=>{const c=n.readInt32LE(l);l+=4;const h={};let d;for(let p=0;p<c;p+=1){const b=n.readUInt32LE(l);if(b>this.maxBinNumber)d=this.parsePseudoBin(n,l+4),l+=4+8+4+16+16;else{const y=xa(n,l+4);f=this._findFirstData(f,y);const w=n.readInt32LE(l+12);l+=16;const _=new Array(w);for(let C=0;C<w;C+=1){const S=xa(n,l),T=xa(n,l+8);l+=16,_[C]=new _c(S,T,b)}h[b]=_}}return{binIndex:h,stats:d}});return{...a,csi:!0,refCount:s,maxBlockSize:65536,firstDataLine:f,csiVersion:r,indices:u,depth:this.depth,maxBinNumber:this.maxBinNumber,maxRefLength:i}}parsePseudoBin(t,n){return{lineCount:z3(Qu.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 f=this.reg2bins(n,r),l=[];for(const[u,c]of f)for(let h=u;h<=c;h++)if(s.binIndex[h]){const d=s.binIndex[h];for(let p=0;p<d.length;++p)l.push(new _c(d[p].minv,d[p].maxv,h))}return U3(l,new Qp(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+=wO(1,r*3),r+=1){const s=i+V3(t,o),f=i+V3(n,o);if(f-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,f])}return a}}const $p=typeof TextDecoder<"u"?new TextDecoder("utf-8"):void 0;function vO(e){return new Promise(t=>setTimeout(t,e))}class xO{constructor({path:t,filehandle:n,tbiPath:r,tbiFilehandle:i,csiPath:o,csiFilehandle:a,yieldTime:s=500,chunkSizeLimit:f=5e7,renameRefSeqs:l=c=>c,chunkCacheSize:u=5*2**20}){if(n)this.filehandle=n;else if(t)this.filehandle=new ct(t);else throw new TypeError("must provide either filehandle or path");if(i)this.index=new Sc({filehandle:i,renameRefSeqs:l});else if(a)this.index=new Xp({filehandle:a,renameRefSeqs:l});else if(r)this.index=new Sc({filehandle:new ct(r),renameRefSeqs:l});else if(o)this.index=new Xp({filehandle:new ct(o),renameRefSeqs:l});else if(t)this.index=new Sc({filehandle:new ct(`${t}.tbi`),renameRefSeqs:l});else throw new TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, or csiPath");this.chunkSizeLimit=f,this.renameRefSeq=l,this.yieldTime=s,this.chunkCache=new rc({cache:new ic({maxSize:Math.floor(u/65536)}),fill:(c,h)=>this.readChunk(c,{signal:h})})}async getLines(t,n,r,i){let o,a={},s;if(typeof i>"u")throw new TypeError("line callback must be provided");if(typeof i=="function"?s=i:(a=i,s=i.lineCallback),t===void 0)throw new TypeError("must provide a reference sequence name");if(!s)throw new TypeError("line callback must be provided");const f=await this.index.getMetadata(a);if(co(o),n||(n=0),r||(r=f.maxRefLength),!(n<=r))throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(n===r)return;const l=await this.index.blocksForRange(t,n,r,a);co(o);for(let c=0;c<l.length;c+=1){const h=l[c].fetchedSize();if(h>this.chunkSizeLimit)throw new Error(`Too much data. Chunk size ${h.toLocaleString()} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit.toLocaleString()}.`)}let u=Date.now();for(let c=0;c<l.length;c+=1){let h;const d=l[c],{buffer:p,cpositions:b,dpositions:y}=await this.chunkCache.get(d.toString(),d);co(o);let w=0,_=0;for(;w<p.length;){const C=p.indexOf(`
442
- `,w);if(C===-1)break;const S=p.slice(w,C),T=($p==null?void 0:$p.decode(S))||S.toString();if(y){for(;w+d.minv.dataPosition>=y[_++];);_--}const{startCoordinate:B,overlaps:I}=this.checkLine(f,t,n,r,T);if(h!==void 0&&B!==void 0&&h>B)throw new Error(`Lines not sorted by start coordinate (${h} > ${B}), this file is not usable with Tabix.`);if(h=B,I)s(T.trim(),b[_]*256+(w-y[_])+d.minv.dataPosition+1);else if(B!==void 0&&B>=r)return;this.yieldTime&&u-Date.now()>this.yieldTime&&(u=Date.now(),co(o),await vO(1)),w=C+1}}}async getMetadata(t={}){return this.index.getMetadata(t)}async getHeaderBuffer(t={}){const{firstDataLine:n,metaChar:r,maxBlockSize:i}=await this.getMetadata(t);co(t.signal);const o=((n==null?void 0:n.blockPosition)||0)+i;let a=await this._readRegion(0,o,t);co(t.signal);try{a=await $r(a)}catch(s){throw console.error(s),new Error(`error decompressing block ${s.code} at 0 (length ${o}) ${s}`)}if(r){let s=-1;const f=`
443
- `.charCodeAt(0),l=r.charCodeAt(0);for(let u=0;u<a.length&&!(u===s+1&&a[u]!==l);u+=1)a[u]===f&&(s=u);a=a.slice(0,s+1)}return a}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:f,format:l}=t;if(o.charAt(0)===s)return{overlaps:!1};let{ref:u,start:c,end:h}=a;u||(u=0),c||(c=0),h||(h=0),l==="VCF"&&(h=8);const d=Math.max(u,c,h);let p=1,b=0,y="",w=-1/0;for(let _=0;_<o.length+1;_+=1)if(o[_]===" "||_===o.length){if(p===u){if(this.renameRefSeq(o.slice(b,_))!==n)return{overlaps:!1}}else if(p===c){if(w=parseInt(o.slice(b,_),10),f==="1-based-closed"&&(w-=1),w>=i)return{startCoordinate:w,overlaps:!1};if((h===0||h===c)&&w+1<=r)return{startCoordinate:w,overlaps:!1}}else if(l==="VCF"&&p===4)y=o.slice(b,_);else if(p===h){let C;if(l==="VCF"?C=this._getVcfEnd(w,y,o.slice(b,_)):C=parseInt(o.slice(b,_),10),C<=r)return{overlaps:!1}}if(b=_+1,p+=1,p>d)break}return{startCoordinate:w,overlaps:!0}}_getVcfEnd(t,n,r){let i=t+n.length;const o=r.indexOf("SVTYPE=TRA")!==-1;if(r[0]!=="."&&!o){let a=";";for(let s=0;s<r.length;s+=1){if(a===";"&&r.slice(s,s+4)==="END="){let f=r.indexOf(";",s);f===-1&&(f=r.length),i=parseInt(r.slice(s+4,f),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=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);try{return ix(r,t)}catch(i){throw new Error(`error decompressing c ${t.toString()} ${i}`)}}}const AO=Object.freeze(Object.defineProperty({__proto__:null,CSI:Xp,TBI:Sc,TabixIndexedFile:xO},Symbol.toStringTag,{value:"Module"}));var Kp={exports:{}},Aa=typeof Reflect=="object"?Reflect:null,j3=Aa&&typeof Aa.apply=="function"?Aa.apply:function(t,n,r){return Function.prototype.apply.call(t,n,r)},Cc;Aa&&typeof Aa.ownKeys=="function"?Cc=Aa.ownKeys:Object.getOwnPropertySymbols?Cc=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Cc=function(t){return Object.getOwnPropertyNames(t)};function EO(e){console&&console.warn&&console.warn(e)}var q3=Number.isNaN||function(t){return t!==t};function Be(){Be.init.call(this)}Kp.exports=Be,Kp.exports.once=kO,Be.EventEmitter=Be,Be.prototype._events=void 0,Be.prototype._eventsCount=0,Be.prototype._maxListeners=void 0;var Z3=10;function kc(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(Be,"defaultMaxListeners",{enumerable:!0,get:function(){return Z3},set:function(e){if(typeof e!="number"||e<0||q3(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");Z3=e}}),Be.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},Be.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||q3(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 W3(e){return e._maxListeners===void 0?Be.defaultMaxListeners:e._maxListeners}Be.prototype.getMaxListeners=function(){return W3(this)},Be.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 f=o[t];if(f===void 0)return!1;if(typeof f=="function")j3(f,this,n);else for(var l=f.length,u=K3(f,l),r=0;r<l;++r)j3(u[r],this,n);return!0};function Y3(e,t,n,r){var i,o,a;if(kc(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=W3(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,EO(s)}return e}Be.prototype.addListener=function(t,n){return Y3(this,t,n,!1)},Be.prototype.on=Be.prototype.addListener,Be.prototype.prependListener=function(t,n){return Y3(this,t,n,!0)};function _O(){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 Q3(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=_O.bind(r);return i.listener=n,r.wrapFn=i,i}Be.prototype.once=function(t,n){return kc(n),this.on(t,Q3(this,t,n)),this},Be.prototype.prependOnceListener=function(t,n){return kc(n),this.prependListener(t,Q3(this,t,n)),this},Be.prototype.removeListener=function(t,n){var r,i,o,a,s;if(kc(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():SO(r,o),r.length===1&&(i[t]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",t,s||n)}return this},Be.prototype.off=Be.prototype.removeListener,Be.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 X3(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?CO(i):K3(i,i.length)}Be.prototype.listeners=function(t){return X3(this,t,!0)},Be.prototype.rawListeners=function(t){return X3(this,t,!1)},Be.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):$3.call(e,t)},Be.prototype.listenerCount=$3;function $3(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}Be.prototype.eventNames=function(){return this._eventsCount>0?Cc(this._events):[]};function K3(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function SO(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function CO(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function kO(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))}J3(e,t,o,{once:!0}),t!=="error"&&IO(e,i,{once:!0})})}function IO(e,t,n){typeof e.on=="function"&&J3(e,"error",t,n)}function J3(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 Jp=Kp.exports,eg={exports:{}};typeof Object.create=="function"?eg.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:eg.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 Ea=eg.exports,tg,eE;function tE(){return eE||(eE=1,tg=Jp.EventEmitter),tg}const nE=GR(XR);var ng,rE;function TO(){if(rE)return ng;rE=1;function e(p,b){var y=Object.keys(p);if(Object.getOwnPropertySymbols){var w=Object.getOwnPropertySymbols(p);b&&(w=w.filter(function(_){return Object.getOwnPropertyDescriptor(p,_).enumerable})),y.push.apply(y,w)}return y}function t(p){for(var b=1;b<arguments.length;b++){var y=arguments[b]!=null?arguments[b]:{};b%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,b,y){return b=a(b),b in p?Object.defineProperty(p,b,{value:y,enumerable:!0,configurable:!0,writable:!0}):p[b]=y,p}function r(p,b){if(!(p instanceof b))throw new TypeError("Cannot call a class as a function")}function i(p,b){for(var y=0;y<b.length;y++){var w=b[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,b,y){return b&&i(p.prototype,b),y&&i(p,y),Object.defineProperty(p,"prototype",{writable:!1}),p}function a(p){var b=s(p,"string");return typeof b=="symbol"?b:String(b)}function s(p,b){if(typeof p!="object"||p===null)return p;var y=p[Symbol.toPrimitive];if(y!==void 0){var w=y.call(p,b||"default");if(typeof w!="object")return w;throw new TypeError("@@toPrimitive must return a primitive value.")}return(b==="string"?String:Number)(p)}var f=ye,l=f.Buffer,u=nE,c=u.inspect,h=c&&c.custom||"inspect";function d(p,b,y){l.prototype.copy.call(p,b,y)}return ng=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,_=""+w.data;w=w.next;)_+=y+w.data;return _}},{key:"concat",value:function(y){if(this.length===0)return l.alloc(0);for(var w=l.allocUnsafe(y>>>0),_=this.head,C=0;_;)d(_.data,w,C),C+=_.data.length,_=_.next;return w}},{key:"consume",value:function(y,w){var _;return y<this.head.data.length?(_=this.head.data.slice(0,y),this.head.data=this.head.data.slice(y)):y===this.head.data.length?_=this.shift():_=w?this._getString(y):this._getBuffer(y),_}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(y){var w=this.head,_=1,C=w.data;for(y-=C.length;w=w.next;){var S=w.data,T=y>S.length?S.length:y;if(T===S.length?C+=S:C+=S.slice(0,y),y-=T,y===0){T===S.length?(++_,w.next?this.head=w.next:this.head=this.tail=null):(this.head=w,w.data=S.slice(T));break}++_}return this.length-=_,C}},{key:"_getBuffer",value:function(y){var w=l.allocUnsafe(y),_=this.head,C=1;for(_.data.copy(w),y-=_.data.length;_=_.next;){var S=_.data,T=y>S.length?S.length:y;if(S.copy(w,w.length-y,0,T),y-=T,y===0){T===S.length?(++C,_.next?this.head=_.next:this.head=this.tail=null):(this.head=_,_.data=S.slice(T));break}++C}return this.length-=C,w}},{key:h,value:function(y,w){return c(this,t(t({},w),{},{depth:0,customInspect:!1}))}}]),p}(),ng}var rg,iE;function oE(){if(iE)return rg;iE=1;function e(a,s){var f=this,l=this._readableState&&this._readableState.destroyed,u=this._writableState&&this._writableState.destroyed;return l||u?(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(c){!s&&c?f._writableState?f._writableState.errorEmitted?process.nextTick(n,f):(f._writableState.errorEmitted=!0,process.nextTick(t,f,c)):process.nextTick(t,f,c):s?(process.nextTick(n,f),s(c)):process.nextTick(n,f)}),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 f=a._readableState,l=a._writableState;f&&f.autoDestroy||l&&l.autoDestroy?a.destroy(s):a.emit("error",s)}return rg={destroy:e,undestroy:r,errorOrDestroy:o},rg}var ig={},aE;function _a(){if(aE)return ig;aE=1;function e(s,f){s.prototype=Object.create(f.prototype),s.prototype.constructor=s,s.__proto__=f}var t={};function n(s,f,l){l||(l=Error);function u(h,d,p){return typeof f=="string"?f:f(h,d,p)}var c=function(h){e(d,h);function d(p,b,y){return h.call(this,u(p,b,y))||this}return d}(l);c.prototype.name=l.name,c.prototype.code=s,t[s]=c}function r(s,f){if(Array.isArray(s)){var l=s.length;return s=s.map(function(u){return String(u)}),l>2?"one of ".concat(f," ").concat(s.slice(0,l-1).join(", "),", or ")+s[l-1]:l===2?"one of ".concat(f," ").concat(s[0]," or ").concat(s[1]):"of ".concat(f," ").concat(s[0])}else return"of ".concat(f," ").concat(String(s))}function i(s,f,l){return s.substr(!l||l<0?0:+l,f.length)===f}function o(s,f,l){return(l===void 0||l>s.length)&&(l=s.length),s.substring(l-f.length,l)===f}function a(s,f,l){return typeof l!="number"&&(l=0),l+f.length>s.length?!1:s.indexOf(f,l)!==-1}return n("ERR_INVALID_OPT_VALUE",function(s,f){return'The value "'+f+'" is invalid for option "'+s+'"'},TypeError),n("ERR_INVALID_ARG_TYPE",function(s,f,l){var u;typeof f=="string"&&i(f,"not ")?(u="must not be",f=f.replace(/^not /,"")):u="must be";var c;if(o(s," argument"))c="The ".concat(s," ").concat(u," ").concat(r(f,"type"));else{var h=a(s,".")?"property":"argument";c='The "'.concat(s,'" ').concat(h," ").concat(u," ").concat(r(f,"type"))}return c+=". Received type ".concat(typeof l),c},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"),ig.codes=t,ig}var og,sE;function lE(){if(sE)return og;sE=1;var e=_a().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 f=a?o:"highWaterMark";throw new e(f,s)}return Math.floor(s)}return r.objectMode?16:16*1024}return og={getHighWaterMark:n},og}var ag,fE;function BO(){if(fE)return ag;fE=1,ag=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 ag}var sg,uE;function cE(){if(uE)return sg;uE=1,sg=F;function e(L){var M=this;this.next=null,this.entry=null,this.finish=function(){Oe(M,L)}}var t;F.WritableState=B;var n={deprecate:BO()},r=tE(),i=ye.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 f=oE(),l=lE(),u=l.getHighWaterMark,c=_a().codes,h=c.ERR_INVALID_ARG_TYPE,d=c.ERR_METHOD_NOT_IMPLEMENTED,p=c.ERR_MULTIPLE_CALLBACK,b=c.ERR_STREAM_CANNOT_PIPE,y=c.ERR_STREAM_DESTROYED,w=c.ERR_STREAM_NULL_VALUES,_=c.ERR_STREAM_WRITE_AFTER_END,C=c.ERR_UNKNOWN_ENCODING,S=f.errorOrDestroy;Ea(F,r);function T(){}function B(L,M,q){t=t||Sa(),L=L||{},typeof q!="boolean"&&(q=M instanceof t),this.objectMode=!!L.objectMode,q&&(this.objectMode=this.objectMode||!!L.writableObjectMode),this.highWaterMark=u(this,L,"writableHighWaterMark",q),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var H=L.decodeStrings===!1;this.decodeStrings=!H,this.defaultEncoding=L.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(W){Xe(M,W)},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 M=this.bufferedRequest,q=[];M;)q.push(M),M=M.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(F,Symbol.hasInstance,{value:function(M){return I.call(this,M)?!0:this!==F?!1:M&&M._writableState instanceof B}})):I=function(M){return M instanceof this};function F(L){t=t||Sa();var M=this instanceof t;if(!M&&!I.call(F,this))return new F(L);this._writableState=new B(L,this,M),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)}F.prototype.pipe=function(){S(this,new b)};function P(L,M){var q=new _;S(L,q),process.nextTick(M,q)}function j(L,M,q,H){var W;return q===null?W=new w:typeof q!="string"&&!M.objectMode&&(W=new h("chunk",["string","Buffer"],q)),W?(S(L,W),process.nextTick(H,W),!1):!0}F.prototype.write=function(L,M,q){var H=this._writableState,W=!1,E=!H.objectMode&&s(L);return E&&!i.isBuffer(L)&&(L=a(L)),typeof M=="function"&&(q=M,M=null),E?M="buffer":M||(M=H.defaultEncoding),typeof q!="function"&&(q=T),H.ending?P(this,q):(E||j(this,H,L,q))&&(H.pendingcb++,W=re(this,H,E,L,M,q)),W},F.prototype.cork=function(){this._writableState.corked++},F.prototype.uncork=function(){var L=this._writableState;L.corked&&(L.corked--,!L.writing&&!L.corked&&!L.bufferProcessing&&L.bufferedRequest&&Ze(this,L))},F.prototype.setDefaultEncoding=function(M){if(typeof M=="string"&&(M=M.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((M+"").toLowerCase())>-1))throw new C(M);return this._writableState.defaultEncoding=M,this},Object.defineProperty(F.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function O(L,M,q){return!L.objectMode&&L.decodeStrings!==!1&&typeof M=="string"&&(M=i.from(M,q)),M}Object.defineProperty(F.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function re(L,M,q,H,W,E){if(!q){var x=O(M,H,W);H!==x&&(q=!0,W="buffer",H=x)}var G=M.objectMode?1:H.length;M.length+=G;var Z=M.length<M.highWaterMark;if(Z||(M.needDrain=!0),M.writing||M.corked){var le=M.lastBufferedRequest;M.lastBufferedRequest={chunk:H,encoding:W,isBuf:q,callback:E,next:null},le?le.next=M.lastBufferedRequest:M.bufferedRequest=M.lastBufferedRequest,M.bufferedRequestCount+=1}else ae(L,M,!1,G,H,W,E);return Z}function ae(L,M,q,H,W,E,x){M.writelen=H,M.writecb=x,M.writing=!0,M.sync=!0,M.destroyed?M.onwrite(new y("write")):q?L._writev(W,M.onwrite):L._write(W,E,M.onwrite),M.sync=!1}function pe(L,M,q,H,W){--M.pendingcb,q?(process.nextTick(W,H),process.nextTick(dt,L,M),L._writableState.errorEmitted=!0,S(L,H)):(W(H),L._writableState.errorEmitted=!0,S(L,H),dt(L,M))}function Te(L){L.writing=!1,L.writecb=null,L.length-=L.writelen,L.writelen=0}function Xe(L,M){var q=L._writableState,H=q.sync,W=q.writecb;if(typeof W!="function")throw new p;if(Te(q),M)pe(L,q,H,M,W);else{var E=Ke(q)||L.destroyed;!E&&!q.corked&&!q.bufferProcessing&&q.bufferedRequest&&Ze(L,q),H?process.nextTick(De,L,q,E,W):De(L,q,E,W)}}function De(L,M,q,H){q||$e(L,M),M.pendingcb--,H(),dt(L,M)}function $e(L,M){M.length===0&&M.needDrain&&(M.needDrain=!1,L.emit("drain"))}function Ze(L,M){M.bufferProcessing=!0;var q=M.bufferedRequest;if(L._writev&&q&&q.next){var H=M.bufferedRequestCount,W=new Array(H),E=M.corkedRequestsFree;E.entry=q;for(var x=0,G=!0;q;)W[x]=q,q.isBuf||(G=!1),q=q.next,x+=1;W.allBuffers=G,ae(L,M,!0,M.length,W,"",E.finish),M.pendingcb++,M.lastBufferedRequest=null,E.next?(M.corkedRequestsFree=E.next,E.next=null):M.corkedRequestsFree=new e(M),M.bufferedRequestCount=0}else{for(;q;){var Z=q.chunk,le=q.encoding,J=q.callback,fe=M.objectMode?1:Z.length;if(ae(L,M,!1,fe,Z,le,J),q=q.next,M.bufferedRequestCount--,M.writing)break}q===null&&(M.lastBufferedRequest=null)}M.bufferedRequest=q,M.bufferProcessing=!1}F.prototype._write=function(L,M,q){q(new d("_write()"))},F.prototype._writev=null,F.prototype.end=function(L,M,q){var H=this._writableState;return typeof L=="function"?(q=L,L=null,M=null):typeof M=="function"&&(q=M,M=null),L!=null&&this.write(L,M),H.corked&&(H.corked=1,this.uncork()),H.ending||qt(this,H,q),this},Object.defineProperty(F.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function Ke(L){return L.ending&&L.length===0&&L.bufferedRequest===null&&!L.finished&&!L.writing}function Ee(L,M){L._final(function(q){M.pendingcb--,q&&S(L,q),M.prefinished=!0,L.emit("prefinish"),dt(L,M)})}function _e(L,M){!M.prefinished&&!M.finalCalled&&(typeof L._final=="function"&&!M.destroyed?(M.pendingcb++,M.finalCalled=!0,process.nextTick(Ee,L,M)):(M.prefinished=!0,L.emit("prefinish")))}function dt(L,M){var q=Ke(M);if(q&&(_e(L,M),M.pendingcb===0&&(M.finished=!0,L.emit("finish"),M.autoDestroy))){var H=L._readableState;(!H||H.autoDestroy&&H.endEmitted)&&L.destroy()}return q}function qt(L,M,q){M.ending=!0,dt(L,M),q&&(M.finished?process.nextTick(q):L.once("finish",q)),M.ended=!0,L.writable=!1}function Oe(L,M,q){var H=L.entry;for(L.entry=null;H;){var W=H.callback;M.pendingcb--,W(q),H=H.next}M.corkedRequestsFree.next=L}return Object.defineProperty(F.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(M){this._writableState&&(this._writableState.destroyed=M)}}),F.prototype.destroy=f.destroy,F.prototype._undestroy=f.undestroy,F.prototype._destroy=function(L,M){M(L)},sg}var lg,hE;function Sa(){if(hE)return lg;hE=1;var e=Object.keys||function(l){var u=[];for(var c in l)u.push(c);return u};lg=a;var t=yE(),n=cE();Ea(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(f,this)}function f(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(u){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=u,this._writableState.destroyed=u)}}),lg}var fg={},ug={exports:{}};(function(e,t){var n=ye,r=n.Buffer;function i(a,s){for(var f in a)s[f]=a[f]}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?e.exports=n:(i(n,t),t.Buffer=o);function o(a,s,f){return r(a,s,f)}i(r,o),o.from=function(a,s,f){if(typeof a=="number")throw new TypeError("Argument must not be a number");return r(a,s,f)},o.alloc=function(a,s,f){if(typeof a!="number")throw new TypeError("Argument must be a number");var l=r(a);return s!==void 0?typeof f=="string"?l.fill(s,f):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)}})(ug,ug.exports);var DO=ug.exports,cg=DO.Buffer,dE=cg.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 RO(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 FO(e){var t=RO(e);if(typeof t!="string"&&(cg.isEncoding===dE||!dE(e)))throw new Error("Unknown encoding: "+e);return t||e}var MO=fg.StringDecoder=Ml;function Ml(e){this.encoding=FO(e);var t;switch(this.encoding){case"utf16le":this.text=UO,this.end=GO,t=4;break;case"utf8":this.fillLast=NO,t=4;break;case"base64":this.text=HO,this.end=VO,t=3;break;default:this.write=jO,this.end=qO;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=cg.allocUnsafe(t)}Ml.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||""},Ml.prototype.end=zO,Ml.prototype.text=OO,Ml.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 hg(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function PO(e,t,n){var r=t.length-1;if(r<n)return 0;var i=hg(t[r]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--r<n||i===-2?0:(i=hg(t[r]),i>=0?(i>0&&(e.lastNeed=i-2),i):--r<n||i===-2?0:(i=hg(t[r]),i>=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function LO(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 NO(e){var t=this.lastTotal-this.lastNeed,n=LO(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 OO(e,t){var n=PO(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 zO(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function UO(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 GO(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 HO(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 VO(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function jO(e){return e.toString(this.encoding)}function qO(e){return e&&e.length?this.write(e):""}var dg,pE;function pg(){if(pE)return dg;pE=1;var e=_a().codes.ERR_STREAM_PREMATURE_CLOSE;function t(o){var a=!1;return function(){if(!a){a=!0;for(var s=arguments.length,f=new Array(s),l=0;l<s;l++)f[l]=arguments[l];o.apply(this,f)}}}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 f=a.readable||a.readable!==!1&&o.readable,l=a.writable||a.writable!==!1&&o.writable,u=function(){o.writable||h()},c=o._writableState&&o._writableState.finished,h=function(){l=!1,c=!0,f||s.call(o)},d=o._readableState&&o._readableState.endEmitted,p=function(){f=!1,d=!0,l||s.call(o)},b=function(C){s.call(o,C)},y=function(){var C;if(f&&!d)return(!o._readableState||!o._readableState.ended)&&(C=new e),s.call(o,C);if(l&&!c)return(!o._writableState||!o._writableState.ended)&&(C=new e),s.call(o,C)},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",u),o.on("close",u)),o.on("end",p),o.on("finish",h),a.error!==!1&&o.on("error",b),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",u),o.removeListener("close",u),o.removeListener("finish",h),o.removeListener("end",p),o.removeListener("error",b),o.removeListener("close",y)}}return dg=i,dg}var gg,gE;function ZO(){if(gE)return gg;gE=1;var e;function t(C,S,T){return S=n(S),S in C?Object.defineProperty(C,S,{value:T,enumerable:!0,configurable:!0,writable:!0}):C[S]=T,C}function n(C){var S=r(C,"string");return typeof S=="symbol"?S:String(S)}function r(C,S){if(typeof C!="object"||C===null)return C;var T=C[Symbol.toPrimitive];if(T!==void 0){var B=T.call(C,S||"default");if(typeof B!="object")return B;throw new TypeError("@@toPrimitive must return a primitive value.")}return(S==="string"?String:Number)(C)}var i=pg(),o=Symbol("lastResolve"),a=Symbol("lastReject"),s=Symbol("error"),f=Symbol("ended"),l=Symbol("lastPromise"),u=Symbol("handlePromise"),c=Symbol("stream");function h(C,S){return{value:C,done:S}}function d(C){var S=C[o];if(S!==null){var T=C[c].read();T!==null&&(C[l]=null,C[o]=null,C[a]=null,S(h(T,!1)))}}function p(C){process.nextTick(d,C)}function b(C,S){return function(T,B){C.then(function(){if(S[f]){T(h(void 0,!0));return}S[u](T,B)},B)}}var y=Object.getPrototypeOf(function(){}),w=Object.setPrototypeOf((e={get stream(){return this[c]},next:function(){var S=this,T=this[s];if(T!==null)return Promise.reject(T);if(this[f])return Promise.resolve(h(void 0,!0));if(this[c].destroyed)return new Promise(function(P,j){process.nextTick(function(){S[s]?j(S[s]):P(h(void 0,!0))})});var B=this[l],I;if(B)I=new Promise(b(B,this));else{var F=this[c].read();if(F!==null)return Promise.resolve(h(F,!1));I=new Promise(this[u])}return this[l]=I,I}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var S=this;return new Promise(function(T,B){S[c].destroy(null,function(I){if(I){B(I);return}T(h(void 0,!0))})})}),e),y),_=function(S){var T,B=Object.create(w,(T={},t(T,c,{value:S,writable:!0}),t(T,o,{value:null,writable:!0}),t(T,a,{value:null,writable:!0}),t(T,s,{value:null,writable:!0}),t(T,f,{value:S._readableState.endEmitted,writable:!0}),t(T,u,{value:function(F,P){var j=B[c].read();j?(B[l]=null,B[o]=null,B[a]=null,F(h(j,!1))):(B[o]=F,B[a]=P)},writable:!0}),T));return B[l]=null,i(S,function(I){if(I&&I.code!=="ERR_STREAM_PREMATURE_CLOSE"){var F=B[a];F!==null&&(B[l]=null,B[o]=null,B[a]=null,F(I)),B[s]=I;return}var P=B[o];P!==null&&(B[l]=null,B[o]=null,B[a]=null,P(h(void 0,!0))),B[f]=!0}),S.on("readable",p.bind(null,B)),B};return gg=_,gg}var mg,mE;function WO(){return mE||(mE=1,mg=function(){throw new Error("Readable.from is not available in the browser")}),mg}var bg,bE;function yE(){if(bE)return bg;bE=1,bg=P;var e;P.ReadableState=F,Jp.EventEmitter;var t=function(x,G){return x.listeners(G).length},n=tE(),r=ye.Buffer,i=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function o(E){return r.from(E)}function a(E){return r.isBuffer(E)||E instanceof i}var s=nE,f;s&&s.debuglog?f=s.debuglog("stream"):f=function(){};var l=TO(),u=oE(),c=lE(),h=c.getHighWaterMark,d=_a().codes,p=d.ERR_INVALID_ARG_TYPE,b=d.ERR_STREAM_PUSH_AFTER_EOF,y=d.ERR_METHOD_NOT_IMPLEMENTED,w=d.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,_,C,S;Ea(P,n);var T=u.errorOrDestroy,B=["error","close","destroy","pause","resume"];function I(E,x,G){if(typeof E.prependListener=="function")return E.prependListener(x,G);!E._events||!E._events[x]?E.on(x,G):Array.isArray(E._events[x])?E._events[x].unshift(G):E._events[x]=[G,E._events[x]]}function F(E,x,G){e=e||Sa(),E=E||{},typeof G!="boolean"&&(G=x instanceof e),this.objectMode=!!E.objectMode,G&&(this.objectMode=this.objectMode||!!E.readableObjectMode),this.highWaterMark=h(this,E,"readableHighWaterMark",G),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=E.emitClose!==!1,this.autoDestroy=!!E.autoDestroy,this.destroyed=!1,this.defaultEncoding=E.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,E.encoding&&(_||(_=fg.StringDecoder),this.decoder=new _(E.encoding),this.encoding=E.encoding)}function P(E){if(e=e||Sa(),!(this instanceof P))return new P(E);var x=this instanceof e;this._readableState=new F(E,this,x),this.readable=!0,E&&(typeof E.read=="function"&&(this._read=E.read),typeof E.destroy=="function"&&(this._destroy=E.destroy)),n.call(this)}Object.defineProperty(P.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(x){this._readableState&&(this._readableState.destroyed=x)}}),P.prototype.destroy=u.destroy,P.prototype._undestroy=u.undestroy,P.prototype._destroy=function(E,x){x(E)},P.prototype.push=function(E,x){var G=this._readableState,Z;return G.objectMode?Z=!0:typeof E=="string"&&(x=x||G.defaultEncoding,x!==G.encoding&&(E=r.from(E,x),x=""),Z=!0),j(this,E,x,!1,Z)},P.prototype.unshift=function(E){return j(this,E,null,!0,!1)};function j(E,x,G,Z,le){f("readableAddChunk",x);var J=E._readableState;if(x===null)J.reading=!1,Xe(E,J);else{var fe;if(le||(fe=re(J,x)),fe)T(E,fe);else if(J.objectMode||x&&x.length>0)if(typeof x!="string"&&!J.objectMode&&Object.getPrototypeOf(x)!==r.prototype&&(x=o(x)),Z)J.endEmitted?T(E,new w):O(E,J,x,!0);else if(J.ended)T(E,new b);else{if(J.destroyed)return!1;J.reading=!1,J.decoder&&!G?(x=J.decoder.write(x),J.objectMode||x.length!==0?O(E,J,x,!1):Ze(E,J)):O(E,J,x,!1)}else Z||(J.reading=!1,Ze(E,J))}return!J.ended&&(J.length<J.highWaterMark||J.length===0)}function O(E,x,G,Z){x.flowing&&x.length===0&&!x.sync?(x.awaitDrain=0,E.emit("data",G)):(x.length+=x.objectMode?1:G.length,Z?x.buffer.unshift(G):x.buffer.push(G),x.needReadable&&De(E)),Ze(E,x)}function re(E,x){var G;return!a(x)&&typeof x!="string"&&x!==void 0&&!E.objectMode&&(G=new p("chunk",["string","Buffer","Uint8Array"],x)),G}P.prototype.isPaused=function(){return this._readableState.flowing===!1},P.prototype.setEncoding=function(E){_||(_=fg.StringDecoder);var x=new _(E);this._readableState.decoder=x,this._readableState.encoding=this._readableState.decoder.encoding;for(var G=this._readableState.buffer.head,Z="";G!==null;)Z+=x.write(G.data),G=G.next;return this._readableState.buffer.clear(),Z!==""&&this._readableState.buffer.push(Z),this._readableState.length=Z.length,this};var ae=1073741824;function pe(E){return E>=ae?E=ae:(E--,E|=E>>>1,E|=E>>>2,E|=E>>>4,E|=E>>>8,E|=E>>>16,E++),E}function Te(E,x){return E<=0||x.length===0&&x.ended?0:x.objectMode?1:E!==E?x.flowing&&x.length?x.buffer.head.data.length:x.length:(E>x.highWaterMark&&(x.highWaterMark=pe(E)),E<=x.length?E:x.ended?x.length:(x.needReadable=!0,0))}P.prototype.read=function(E){f("read",E),E=parseInt(E,10);var x=this._readableState,G=E;if(E!==0&&(x.emittedReadable=!1),E===0&&x.needReadable&&((x.highWaterMark!==0?x.length>=x.highWaterMark:x.length>0)||x.ended))return f("read: emitReadable",x.length,x.ended),x.length===0&&x.ended?q(this):De(this),null;if(E=Te(E,x),E===0&&x.ended)return x.length===0&&q(this),null;var Z=x.needReadable;f("need readable",Z),(x.length===0||x.length-E<x.highWaterMark)&&(Z=!0,f("length less than watermark",Z)),x.ended||x.reading?(Z=!1,f("reading or ended",Z)):Z&&(f("do read"),x.reading=!0,x.sync=!0,x.length===0&&(x.needReadable=!0),this._read(x.highWaterMark),x.sync=!1,x.reading||(E=Te(G,x)));var le;return E>0?le=M(E,x):le=null,le===null?(x.needReadable=x.length<=x.highWaterMark,E=0):(x.length-=E,x.awaitDrain=0),x.length===0&&(x.ended||(x.needReadable=!0),G!==E&&x.ended&&q(this)),le!==null&&this.emit("data",le),le};function Xe(E,x){if(f("onEofChunk"),!x.ended){if(x.decoder){var G=x.decoder.end();G&&G.length&&(x.buffer.push(G),x.length+=x.objectMode?1:G.length)}x.ended=!0,x.sync?De(E):(x.needReadable=!1,x.emittedReadable||(x.emittedReadable=!0,$e(E)))}}function De(E){var x=E._readableState;f("emitReadable",x.needReadable,x.emittedReadable),x.needReadable=!1,x.emittedReadable||(f("emitReadable",x.flowing),x.emittedReadable=!0,process.nextTick($e,E))}function $e(E){var x=E._readableState;f("emitReadable_",x.destroyed,x.length,x.ended),!x.destroyed&&(x.length||x.ended)&&(E.emit("readable"),x.emittedReadable=!1),x.needReadable=!x.flowing&&!x.ended&&x.length<=x.highWaterMark,L(E)}function Ze(E,x){x.readingMore||(x.readingMore=!0,process.nextTick(Ke,E,x))}function Ke(E,x){for(;!x.reading&&!x.ended&&(x.length<x.highWaterMark||x.flowing&&x.length===0);){var G=x.length;if(f("maybeReadMore read 0"),E.read(0),G===x.length)break}x.readingMore=!1}P.prototype._read=function(E){T(this,new y("_read()"))},P.prototype.pipe=function(E,x){var G=this,Z=this._readableState;switch(Z.pipesCount){case 0:Z.pipes=E;break;case 1:Z.pipes=[Z.pipes,E];break;default:Z.pipes.push(E);break}Z.pipesCount+=1,f("pipe count=%d opts=%j",Z.pipesCount,x);var le=(!x||x.end!==!1)&&E!==process.stdout&&E!==process.stderr,J=le?Zt:$n;Z.endEmitted?process.nextTick(J):G.once("end",J),E.on("unpipe",fe);function fe(v,g){f("onunpipe"),v===G&&g&&g.hasUnpiped===!1&&(g.hasUnpiped=!0,li())}function Zt(){f("onend"),E.end()}var ai=Ee(G);E.on("drain",ai);var si=!1;function li(){f("cleanup"),E.removeListener("close",fi),E.removeListener("finish",Wt),E.removeListener("drain",ai),E.removeListener("error",yr),E.removeListener("unpipe",fe),G.removeListener("end",Zt),G.removeListener("end",$n),G.removeListener("data",_t),si=!0,Z.awaitDrain&&(!E._writableState||E._writableState.needDrain)&&ai()}G.on("data",_t);function _t(v){f("ondata");var g=E.write(v);f("dest.write",g),g===!1&&((Z.pipesCount===1&&Z.pipes===E||Z.pipesCount>1&&W(Z.pipes,E)!==-1)&&!si&&(f("false write response, pause",Z.awaitDrain),Z.awaitDrain++),G.pause())}function yr(v){f("onerror",v),$n(),E.removeListener("error",yr),t(E,"error")===0&&T(E,v)}I(E,"error",yr);function fi(){E.removeListener("finish",Wt),$n()}E.once("close",fi);function Wt(){f("onfinish"),E.removeListener("close",fi),$n()}E.once("finish",Wt);function $n(){f("unpipe"),G.unpipe(E)}return E.emit("pipe",G),Z.flowing||(f("pipe resume"),G.resume()),E};function Ee(E){return function(){var G=E._readableState;f("pipeOnDrain",G.awaitDrain),G.awaitDrain&&G.awaitDrain--,G.awaitDrain===0&&t(E,"data")&&(G.flowing=!0,L(E))}}P.prototype.unpipe=function(E){var x=this._readableState,G={hasUnpiped:!1};if(x.pipesCount===0)return this;if(x.pipesCount===1)return E&&E!==x.pipes?this:(E||(E=x.pipes),x.pipes=null,x.pipesCount=0,x.flowing=!1,E&&E.emit("unpipe",this,G),this);if(!E){var Z=x.pipes,le=x.pipesCount;x.pipes=null,x.pipesCount=0,x.flowing=!1;for(var J=0;J<le;J++)Z[J].emit("unpipe",this,{hasUnpiped:!1});return this}var fe=W(x.pipes,E);return fe===-1?this:(x.pipes.splice(fe,1),x.pipesCount-=1,x.pipesCount===1&&(x.pipes=x.pipes[0]),E.emit("unpipe",this,G),this)},P.prototype.on=function(E,x){var G=n.prototype.on.call(this,E,x),Z=this._readableState;return E==="data"?(Z.readableListening=this.listenerCount("readable")>0,Z.flowing!==!1&&this.resume()):E==="readable"&&!Z.endEmitted&&!Z.readableListening&&(Z.readableListening=Z.needReadable=!0,Z.flowing=!1,Z.emittedReadable=!1,f("on readable",Z.length,Z.reading),Z.length?De(this):Z.reading||process.nextTick(dt,this)),G},P.prototype.addListener=P.prototype.on,P.prototype.removeListener=function(E,x){var G=n.prototype.removeListener.call(this,E,x);return E==="readable"&&process.nextTick(_e,this),G},P.prototype.removeAllListeners=function(E){var x=n.prototype.removeAllListeners.apply(this,arguments);return(E==="readable"||E===void 0)&&process.nextTick(_e,this),x};function _e(E){var x=E._readableState;x.readableListening=E.listenerCount("readable")>0,x.resumeScheduled&&!x.paused?x.flowing=!0:E.listenerCount("data")>0&&E.resume()}function dt(E){f("readable nexttick read 0"),E.read(0)}P.prototype.resume=function(){var E=this._readableState;return E.flowing||(f("resume"),E.flowing=!E.readableListening,qt(this,E)),E.paused=!1,this};function qt(E,x){x.resumeScheduled||(x.resumeScheduled=!0,process.nextTick(Oe,E,x))}function Oe(E,x){f("resume",x.reading),x.reading||E.read(0),x.resumeScheduled=!1,E.emit("resume"),L(E),x.flowing&&!x.reading&&E.read(0)}P.prototype.pause=function(){return f("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(f("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function L(E){var x=E._readableState;for(f("flow",x.flowing);x.flowing&&E.read()!==null;);}P.prototype.wrap=function(E){var x=this,G=this._readableState,Z=!1;E.on("end",function(){if(f("wrapped end"),G.decoder&&!G.ended){var fe=G.decoder.end();fe&&fe.length&&x.push(fe)}x.push(null)}),E.on("data",function(fe){if(f("wrapped data"),G.decoder&&(fe=G.decoder.write(fe)),!(G.objectMode&&fe==null)&&!(!G.objectMode&&(!fe||!fe.length))){var Zt=x.push(fe);Zt||(Z=!0,E.pause())}});for(var le in E)this[le]===void 0&&typeof E[le]=="function"&&(this[le]=function(Zt){return function(){return E[Zt].apply(E,arguments)}}(le));for(var J=0;J<B.length;J++)E.on(B[J],this.emit.bind(this,B[J]));return this._read=function(fe){f("wrapped _read",fe),Z&&(Z=!1,E.resume())},this},typeof Symbol=="function"&&(P.prototype[Symbol.asyncIterator]=function(){return C===void 0&&(C=ZO()),C(this)}),Object.defineProperty(P.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(P.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(P.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(x){this._readableState&&(this._readableState.flowing=x)}}),P._fromList=M,Object.defineProperty(P.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function M(E,x){if(x.length===0)return null;var G;return x.objectMode?G=x.buffer.shift():!E||E>=x.length?(x.decoder?G=x.buffer.join(""):x.buffer.length===1?G=x.buffer.first():G=x.buffer.concat(x.length),x.buffer.clear()):G=x.buffer.consume(E,x.decoder),G}function q(E){var x=E._readableState;f("endReadable",x.endEmitted),x.endEmitted||(x.ended=!0,process.nextTick(H,x,E))}function H(E,x){if(f("endReadableNT",E.endEmitted,E.length),!E.endEmitted&&E.length===0&&(E.endEmitted=!0,x.readable=!1,x.emit("end"),E.autoDestroy)){var G=x._writableState;(!G||G.autoDestroy&&G.finished)&&x.destroy()}}typeof Symbol=="function"&&(P.from=function(E,x){return S===void 0&&(S=WO()),S(P,E,x)});function W(E,x){for(var G=0,Z=E.length;G<Z;G++)if(E[G]===x)return G;return-1}return bg}var yg,wE;function vE(){if(wE)return yg;wE=1,yg=s;var e=_a().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=Sa();Ea(s,o);function a(u,c){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,c!=null&&this.push(c),d(u);var p=this._readableState;p.reading=!1,(p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}function s(u){if(!(this instanceof s))return new s(u);o.call(this,u),this._transformState={afterTransform:a.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,u&&(typeof u.transform=="function"&&(this._transform=u.transform),typeof u.flush=="function"&&(this._flush=u.flush)),this.on("prefinish",f)}function f(){var u=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(c,h){l(u,c,h)}):l(this,null,null)}s.prototype.push=function(u,c){return this._transformState.needTransform=!1,o.prototype.push.call(this,u,c)},s.prototype._transform=function(u,c,h){h(new t("_transform()"))},s.prototype._write=function(u,c,h){var d=this._transformState;if(d.writecb=h,d.writechunk=u,d.writeencoding=c,!d.transforming){var p=this._readableState;(d.needTransform||p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}},s.prototype._read=function(u){var c=this._transformState;c.writechunk!==null&&!c.transforming?(c.transforming=!0,this._transform(c.writechunk,c.writeencoding,c.afterTransform)):c.needTransform=!0},s.prototype._destroy=function(u,c){o.prototype._destroy.call(this,u,function(h){c(h)})};function l(u,c,h){if(c)return u.emit("error",c);if(h!=null&&u.push(h),u._writableState.length)throw new i;if(u._transformState.transforming)throw new r;return u.push(null)}return yg}var wg,xE;function YO(){if(xE)return wg;xE=1,wg=t;var e=vE();Ea(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)},wg}var vg,AE;function QO(){if(AE)return vg;AE=1;var e;function t(h){var d=!1;return function(){d||(d=!0,h.apply(void 0,arguments))}}var n=_a().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,b){b=t(b);var y=!1;h.on("close",function(){y=!0}),e===void 0&&(e=pg()),e(h,{readable:d,writable:p},function(_){if(_)return b(_);y=!0,b()});var w=!1;return function(_){if(!y&&!w){if(w=!0,a(h))return h.abort();if(typeof h.destroy=="function")return h.destroy();b(_||new i("pipe"))}}}function f(h){h()}function l(h,d){return h.pipe(d)}function u(h){return!h.length||typeof h[h.length-1]!="function"?o:h.pop()}function c(){for(var h=arguments.length,d=new Array(h),p=0;p<h;p++)d[p]=arguments[p];var b=u(d);if(Array.isArray(d[0])&&(d=d[0]),d.length<2)throw new r("streams");var y,w=d.map(function(_,C){var S=C<d.length-1,T=C>0;return s(_,S,T,function(B){y||(y=B),B&&w.forEach(f),!S&&(w.forEach(f),b(y))})});return d.reduce(l)}return vg=c,vg}var EE=pn,xg=Jp.EventEmitter,XO=Ea;XO(pn,xg),pn.Readable=yE(),pn.Writable=cE(),pn.Duplex=Sa(),pn.Transform=vE(),pn.PassThrough=YO(),pn.finished=pg(),pn.pipeline=QO(),pn.Stream=pn;function pn(){xg.call(this)}pn.prototype.pipe=function(e,t){var n=this;function r(u){e.writable&&e.write(u)===!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 f(u){if(l(),xg.listenerCount(this,"error")===0)throw u}n.on("error",f),e.on("error",f);function l(){n.removeListener("data",r),e.removeListener("drain",i),n.removeListener("end",a),n.removeListener("close",s),n.removeListener("error",f),e.removeListener("error",f),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 Pl(e){return e.replace(/%([0-9A-Fa-f]{2})/g,(t,n)=>String.fromCharCode(parseInt(n,16)))}function _E(e,t){return String(t).replace(e,n=>`%${n.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function Ll(e){return _E(/[\n;\r\t=%&,\x00-\x1f\x7f-\xff]/g,e)}function dr(e){return _E(/[\n\r\t%\x00-\x1f\x7f-\xff]/g,e)}function SE(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(Pl))}),t}function CE(e){const t=e.split(" ").map(r=>r==="."||r===""?null:r);return{seq_id:t[0]&&Pl(t[0]),source:t[1]&&Pl(t[1]),type:t[2]&&Pl(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:SE(t[8])}}function kE(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 IE(e){const t=[];return Object.entries(e).forEach(([n,r])=>{if(!r)return;let i;r.hasOwnProperty("toString")?i=Ll(r.toString()):Array.isArray(r)?i=r.map(Ll).join(","):i=Ll(r),t.push(`${Ll(n)}=${i}`)}),t.length?t.join(";"):"."}function $O(e,t){const n=e.attributes===null||e.attributes===void 0?".":IE(e.attributes),i=`${[e.seq_id===null?".":dr(e.seq_id),e.source===null?".":dr(e.source),e.type===null?".":dr(e.type),e.start===null?".":dr(e.start),e.end===null?".":dr(e.end),e.score===null?".":dr(e.score),e.strand===null?".":dr(e.strand),e.phase===null?".":dr(e.phase),n].join(" ")}
444
- `;return t[i]?"":(t[i]=!0,i)}function Ic(e,t){if(Array.isArray(e))return e.map(r=>Ic(r,t)).join("");const n=[$O(e,t)];return KO(e)&&n.push(...e.child_features.map(r=>Ic(r,t)),...e.derived_features.map(r=>Ic(r,t))),n.join("")}function TE(e){return Ic(e,{})}function BE(e){let t=`##${e.directive}`;return e.value&&(t+=` ${e.value}`),t+=`
445
- `,t}function DE(e){return`# ${e.comment}
446
- `}function Ag(e){return`>${e.id}${e.description?` ${e.description}`:""}
484
+ )`},Symbol.toStringTag,{value:"Module"}))).map(([e,t])=>[e,B3.parse(t.trim())]));function Xp(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 tO={".":0,"-":-1,"+":1};function nO(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 rO{constructor(t={}){if(t.autoSql)this.autoSql=Xp(eO.parse(t.autoSql));else if(t.type){if(!Qp[t.type])throw new Error("Type not found");this.autoSql=Xp(Qp[t.type])}else this.autoSql=Xp(Qp.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&&nO(o))for(let s=0;s<r.fields.length;s++){const u=r.fields[s];let l=o[s];const{isNumeric:f,isArray:c,arrayIsNumeric:h,name:d}=u;if(l==null)break;if(l!=="."){if(f){const p=Number(l);l=Number.isNaN(p)?l:p}else c&&(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=tO[a.strand]||0,a.chrom=decodeURIComponent(a.chrom),a}}const iO=Object.freeze(Object.defineProperty({__proto__:null,default:rO},Symbol.toStringTag,{value:"Module"}));let D3=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 va(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new D3(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 F3=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 oO(e){return new Promise(t=>setTimeout(t,e))}function aO(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}function sO(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 lO(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function uO(e={}){return"aborted"in e?{signal:e}:e}function R3(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):lO(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i));return n}function M3(e,t){return{lineCount:aO(Jf.fromBytesLE(Array.prototype.slice.call(e,t,t+8),!0))}}function _c(e,t){return e?e.compareTo(t)>0?t:e:t}function fO(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 P3=class{constructor({filehandle:t,renameRefSeq:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}};const cO=21578050;function hO(e,t){return e-e%t}function dO(e,t){return e-e%t+t}function pO(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 xa extends P3{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)!==cO)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 f=n.readInt32LE(a);let c;a+=4;const h={};for(let b=0;b<f;b+=1){const y=n.readUInt32LE(a);if(a+=4,y===o+1)a+=4,c=M3(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 _=new Array(w);for(let C=0;C<w;C++){const E=va(n,a);a+=8;const T=va(n,a);a+=8,s=_c(s,E),_[C]=new F3(E,T,y)}h[y]=_}}}const d=n.readInt32LE(a);a+=4;const p=new Array(d);for(let b=0;b<d;b++){const y=va(n,a);a+=8,s=_c(s,y),p[b]=y}u[l]={binIndex:h,linearIndex:p,stats:c}}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:f}=u;if(l.length===0)return[];const c=r===void 0?(l.length-1)*16384:dO(r,16384),h=n===void 0?0:hO(n,16384),d=a?new Array((c-h)/16384):new Array(l.length-1),p=l[l.length-1].blockPosition;if(c>(l.length-1)*16384)throw new Error("query outside of range of linear index");let b=l[h/16384].blockPosition;for(let y=h/16384,w=0;y<c/16384;y++,w++)d[w]={score:l[y+1].blockPosition-b,start:y*16384,end:y*16384+16384},b=l[y+1].blockPosition;return d.map(y=>({...y,score:y.score*((f==null?void 0:f.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=pO(n,r),u=[];for(const[d,p]of s)for(let b=d;b<=p;b++)if(a.binIndex[b]){const y=a.binIndex[b];for(const w of y)u.push(w)}const l=a.linearIndex.length;let f;const c=Math.min(n>>14,l-1),h=Math.min(r>>14,l-1);for(let d=c;d<=h;++d){const p=a.linearIndex[d];p&&(!f||p.compareTo(f)<0)&&(f=p)}return R3(u,f)}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 si=pe.Buffer,$p=[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"&&($p=new Int32Array($p));function L3(e){if(si.isBuffer(e))return e;var t=typeof si.alloc=="function"&&typeof si.from=="function";if(typeof e=="number")return t?si.alloc(e):new si(e);if(typeof e=="string")return t?si.from(e):new si(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function gO(e){var t=L3(4);return t.writeInt32BE(e,0),t}function Kp(e,t){e=L3(e),si.isBuffer(t)&&(t=t.readUInt32BE(0));for(var n=~~t^-1,r=0;r<e.length;r++)n=$p[(n^e[r])&255]^n>>>8;return n^-1}function Jp(){return gO(Kp.apply(null,arguments))}Jp.signed=function(){return Kp.apply(null,arguments)},Jp.unsigned=function(){return Kp.apply(null,arguments)>>>0};var mO=Jp;const bO=$s(mO),yO=21582659,wO=38359875;function vO(e,t){return e*2**t}function N3(e,t){return Math.floor(e/2**t)}let Sc=class extends P3{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),f=t.readInt32LE(n+24);return{columnNumbers:a,coordinateType:i,metaValue:s,metaChar:u,skipLines:l,format:o,formatFlags:r,...fO(t.subarray(n+28,n+28+f),this.renameRefSeq)}}async _parse(t){const n=await this.filehandle.readFile(t),r=await Jr(n);let i;if(r.readUInt32LE(0)===yO)i=1;else if(r.readUInt32LE(0)===wO)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 f=new Array(s);for(let c=0;c<s;c++){const h=r.readInt32LE(u);u+=4;const d={};let p;for(let b=0;b<h;b++){const y=r.readUInt32LE(u);if(u+=4,y>this.maxBinNumber)p=M3(r,u+28),u+=28+16;else{l=_c(l,va(r,u)),u+=8;const w=r.readInt32LE(u);u+=4;const _=new Array(w);for(let C=0;C<w;C+=1){const E=va(r,u);u+=8;const T=va(r,u);u+=8,l=_c(l,E),_[C]=new F3(E,T,y)}d[y]=_}}f[c]={binIndex:d,stats:p}}return{csiVersion:i,firstDataLine:l,indices:f,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,f]of s)for(let c=l;c<=f;c++)if(a.binIndex[c]){const h=a.binIndex[c];for(const d of h)u.push(d)}return R3(u,new D3(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+=vO(1,r*3),r+=1){const s=i+N3(t,o),u=i+N3(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 hn={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},O3="=ACMGRSVTWYHKDBN".split(""),Nl="MIDNSHP=X???????".split("");class z3{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 f=n[i++];if(f===0)break;l+=String.fromCharCode(f)}break}case"B":{l="";const f=n[i++],c=String.fromCharCode(f),h=n.readInt32LE(i);if(i+=4,c==="i")if(s==="CG")for(let d=0;d<h;d++){const p=n.readInt32LE(i),b=p>>4,y=Nl[p&15];l+=b+y,i+=4}else for(let d=0;d<h;d++)l+=n.readInt32LE(i),d+1<h&&(l+=","),i+=4;if(c==="I")if(s==="CG")for(let d=0;d<h;d++){const p=n.readUInt32LE(i),b=p>>4,y=Nl[p&15];l+=b+y,i+=4}else for(let d=0;d<h;d++)l+=n.readUInt32LE(i),d+1<h&&(l+=","),i+=4;if(c==="s")for(let d=0;d<h;d++)l+=n.readInt16LE(i),d+1<h&&(l+=","),i+=2;if(c==="S")for(let d=0;d<h;d++)l+=n.readUInt16LE(i),d+1<h&&(l+=","),i+=2;if(c==="c")for(let d=0;d<h;d++)l+=n.readInt8(i),d+1<h&&(l+=","),i+=1;if(c==="C")for(let d=0;d<h;d++)l+=n.readUInt8(i),d+1<h&&(l+=","),i+=1;if(c==="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&hn.BAM_FPAIRED)}isProperlyPaired(){return!!(this.flags&hn.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return!!(this.flags&hn.BAM_FUNMAP)}isMateUnmapped(){return!!(this.flags&hn.BAM_FMUNMAP)}isReverseComplemented(){return!!(this.flags&hn.BAM_FREVERSE)}isMateReverseComplemented(){return!!(this.flags&hn.BAM_FMREVERSE)}isRead1(){return!!(this.flags&hn.BAM_FREAD1)}isRead2(){return!!(this.flags&hn.BAM_FREAD2)}isSecondary(){return!!(this.flags&hn.BAM_FSECONDARY)}isFailedQc(){return!!(this.flags&hn.BAM_FQCFAIL)}isDuplicate(){return!!(this.flags&hn.BAM_FDUP)}isSupplementary(){return!!(this.flags&hn.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,f=Nl[u&15];if(f==="S"&&l===o)return i+=4,u=t.readInt32LE(i),l=u>>4,f=Nl[u&15],f!=="N"&&console.warn("CG tag with no N tag"),this.data.length_on_ref=l,this.get("CG");for(let c=0;c<r;++c)u=t.readInt32LE(i),l=u>>4,f=Nl[u&15],a+=l+f,f!=="H"&&f!=="S"&&f!=="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+=O3[(l&240)>>4],s++,s<o&&(a+=O3[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 U3(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 G3=21840194,H3=65536;async function xO(e){let t=[];for await(const n of e)t=t.concat(n);return t}class AO{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 V3{constructor({bamFilehandle:t,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:o,baiUrl:a,csiPath:s,csiFilehandle:u,csiUrl:l,htsget:f,yieldThreadTime:c=100,renameRefSeqs:h=d=>d}){if(this.htsget=!1,this.featureCache=new sc({cache:new lc({maxSize:50}),fill:async(d,p)=>{const{chunk:b,opts:y}=d,{data:w,cpositions:_,dpositions:C}=await this._readChunk({chunk:b,opts:{...y,signal:p}});return this.readBamFeatures(w,_,C,b)}}),this.renameRefSeq=h,t)this.bam=t;else if(n)this.bam=new ht(n);else if(r)this.bam=new Zi(r);else if(f)this.htsget=!0,this.bam=new AO;else throw new Error("unable to initialize bam");if(u)this.index=new Sc({filehandle:u});else if(s)this.index=new Sc({filehandle:new ht(s)});else if(l)this.index=new Sc({filehandle:new Zi(l)});else if(o)this.index=new xa({filehandle:o});else if(i)this.index=new xa({filehandle:new ht(i)});else if(a)this.index=new xa({filehandle:new Zi(a)});else if(n)this.index=new xa({filehandle:new ht(`${n}.bai`)});else if(r)this.index=new xa({filehandle:new Zi(`${r}.bai`)});else if(f)this.htsget=!0;else throw new Error("unable to infer index format");this.yieldThreadTime=c}async getHeaderPre(t){const n=uO(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 f=i+H3,c=await this.bam.read(pe.Buffer.alloc(f),0,f,0,n);if(!c.bytesRead)throw new Error("Error reading header");o=c.buffer.subarray(0,Math.min(c.bytesRead,i))}else o=await this.bam.readFile(n);const a=await Jr(o);if(a.readInt32LE(0)!==G3)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,U3(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+H3,{bytesRead:o,buffer:a}=await this.bam.read(pe.Buffer.alloc(i),0,n,0,r);if(!o)throw new Error("Error reading refseqs from header");const s=await Jr(a.subarray(0,Math.min(o,n))),u=s.readInt32LE(t);let l=t+4;const f={},c=[];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)),b=s.readInt32LE(l+d+4);if(f[p]=h,c.push({refName:p,length:b}),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:f,indexToChr:c}}async getRecordsForRange(t,n,r,i){return xO(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 f=await this.featureCache.get(l.toString(),{chunk:l,opts:o},o.signal),c=[];for(const h of f)if(h.seq_id()===n)if(h.get("start")>=i){u=!0;break}else h.get("end")>=r&&c.push(h);if(s.push(c),yield c,u)break}sO(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 b=p.name(),y=p.id();d[b]||(d[b]=0),d[b]++,s[y]=1}for(const[p,b]of Object.entries(d))b===1&&(a[p]=!0)});const u=[];n.map(h=>{for(const d of h){const p=d.name(),b=d.get("start"),y=d._next_pos(),w=d._next_refid();this.index&&a[p]&&(i||w===t&&Math.abs(b-y)<o)&&u.push(this.index.blocksForRange(w,y,y+1,r))}});const l=new Map,f=await Promise.all(u);for(const h of f.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:b,chunk:y}=await this._readChunk({chunk:h,opts:r}),w=[];for(const _ of await this.readBamFeatures(d,p,b,y))a[_.get("name")]&&!s[_.id()]&&w.push(_);return w}))).flat()}async _readRegion(t,n,r={}){const{bytesRead:i,buffer:o}=await this.bam.read(pe.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 ux(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),f=o+4+l-1;if(r){for(;o+i.minv.dataPosition>=r[s++];);s--}if(f<t.length){const c=new z3({bytes:{byteArray:t,start:o,end:f},fileOffset:n.length>0?n[s]*256+(o-r[s])+i.minv.dataPosition+1:bO.signed(t.slice(o,f))});a.push(c),this.yieldThreadTime&&+Date.now()-u>this.yieldThreadTime&&(await oO(1),u=+Date.now())}o=f+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 j3(e,t){const n=await Promise.all(e.map(async r=>{const{url:i,headers:o}=r;if(i.startsWith("data:"))return pe.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 pe.Buffer.from(await u.arrayBuffer())}}));return pe.Buffer.concat(await Promise.all(n.map(r=>Jr(r))))}class EO extends V3{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 f=await l.json(),c=await j3(f.htsget.urls.slice(1),i);yield*this._fetchChunkFeatures([{buffer:c,_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 j3(i.htsget.urls,t);if(o.readInt32LE(0)!==G3)throw new Error("Not a BAM file");const a=o.readInt32LE(4),s=o.toString("utf8",8,8+a),u=U3(s),l=[],f={},c=u.filter(h=>h.tag==="SQ");for(const[h,d]of c.entries()){let p="",b=0;for(const y of d.data)y.tag==="SN"?p=y.value:y.tag==="LN"&&(b=+y.value);f[p]=h,l[h]={refName:p,length:b}}return this.chrToIndex=f,this.indexToChr=l,u}}const _O=Object.freeze(Object.defineProperty({__proto__:null,BAI:xa,BamFile:V3,BamRecord:z3,CSI:Sc,HtsgetFile:EO},Symbol.toStringTag,{value:"Module"}));function q3(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}class SO extends Error{}function Aa(e){if(e&&e.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const t=new SO("aborted");throw t.code="ERR_ABORTED",t}}}function CO(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function Z3(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):CO(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}class eg{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 Ea(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new eg(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 Cc{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 W3{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 kO=21578324,Y3=14;function TO(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 kc extends W3{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 Jr(n);if(Aa(t.signal),r.readUInt32LE(0)!==kO)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)},f=r.readInt32LE(24),c=5,h=((1<<(c+1)*3)-1)/7,d=2**(14+c*3),p=f?String.fromCharCode(f):null,b=r.readInt32LE(28),y=r.readInt32LE(32),{refNameToId:w,refIdToName:_}=this._parseNameBytes(r.slice(36,36+y));let C=36+y,E;return{indices:new Array(i).fill(0).map(()=>{const B=r.readInt32LE(C);C+=4;const I={};let R;for(let O=0;O<B;O+=1){const ie=r.readUInt32LE(C);if(C+=4,ie>h+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(ie===h+1){const se=r.readInt32LE(C);C+=4,se===2&&(R=this.parsePseudoBin(r,C)),C+=16*se}else{const se=r.readInt32LE(C);C+=4;const ge=new Array(se);for(let Ie=0;Ie<se;Ie+=1){const Xe=Ea(r,C),De=Ea(r,C+8);C+=16,E=this._findFirstData(E,Xe),ge[Ie]=new Cc(Xe,De,ie)}I[ie]=ge}}const M=r.readInt32LE(C);C+=4;const j=new Array(M);for(let O=0;O<M;O+=1)j[O]=Ea(r,C),C+=8,E=this._findFirstData(E,j[O]);return{binIndex:I,linearIndex:j,stats:R}}),metaChar:p,maxBinNumber:h,maxRefLength:d,skipLines:b,firstDataLine:E,columnNumbers:l,coordinateType:a,format:u,refIdToName:_,refNameToId:w,maxBlockSize:65536}}parsePseudoBin(t,n){return{lineCount:q3(Jf.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>>Y3>=s.linearIndex.length?s.linearIndex.length-1:n>>Y3]:new eg(0,0))||console.warn("querying outside of possible tabix range");const l=TO(n,r),f=[];for(const[b,y]of l)for(let w=b;w<=y;w++)if(s.binIndex[w])for(const _ of s.binIndex[w])f.push(new Cc(_.minv,_.maxv,w));const c=s.linearIndex.length;let h=null;const d=Math.min(n>>14,c-1),p=Math.min(r>>14,c-1);for(let b=d;b<=p;++b){const y=s.linearIndex[b];y&&(!h||y.compareTo(h)<0)&&(h=y)}return Z3(f,h)}}const IO=21582659,BO=38359875;function DO(e,t){return e*2**t}function Q3(e,t){return Math.floor(e/2**t)}class tg extends W3{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),f=t.readInt32LE(n+24),{refIdToName:c,refNameToId:h}=this._parseNameBytes(t.slice(n+28,n+28+f));return{refIdToName:c,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 Jr(await this.filehandle.readFile(t));let r;if(n.readUInt32LE(0)===IO)r=1;else if(n.readUInt32LE(0)===BO)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 f=new Array(s).fill(0).map(()=>{const c=n.readInt32LE(l);l+=4;const h={};let d;for(let p=0;p<c;p+=1){const b=n.readUInt32LE(l);if(b>this.maxBinNumber)d=this.parsePseudoBin(n,l+4),l+=4+8+4+16+16;else{const y=Ea(n,l+4);u=this._findFirstData(u,y);const w=n.readInt32LE(l+12);l+=16;const _=new Array(w);for(let C=0;C<w;C+=1){const E=Ea(n,l),T=Ea(n,l+8);l+=16,_[C]=new Cc(E,T,b)}h[b]=_}}return{binIndex:h,stats:d}});return{...a,csi:!0,refCount:s,maxBlockSize:65536,firstDataLine:u,csiVersion:r,indices:f,depth:this.depth,maxBinNumber:this.maxBinNumber,maxRefLength:i}}parsePseudoBin(t,n){return{lineCount:q3(Jf.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[f,c]of u)for(let h=f;h<=c;h++)if(s.binIndex[h])for(const d of s.binIndex[h])l.push(new Cc(d.minv,d.maxv,h));return Z3(l,new eg(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+=DO(1,r*3),r+=1){const s=i+Q3(t,o),u=i+Q3(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 ng=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function FO(e){return new Promise(t=>setTimeout(t,e))}class RO{constructor({path:t,filehandle:n,tbiPath:r,tbiFilehandle:i,csiPath:o,csiFilehandle:a,yieldTime:s=500,chunkSizeLimit:u=5e7,renameRefSeqs:l=c=>c,chunkCacheSize:f=5*2**20}){if(n)this.filehandle=n;else if(t)this.filehandle=new ht(t);else throw new TypeError("must provide either filehandle or path");if(i)this.index=new kc({filehandle:i,renameRefSeqs:l});else if(a)this.index=new tg({filehandle:a,renameRefSeqs:l});else if(r)this.index=new kc({filehandle:new ht(r),renameRefSeqs:l});else if(o)this.index=new tg({filehandle:new ht(o),renameRefSeqs:l});else if(t)this.index=new kc({filehandle:new ht(`${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 sc({cache:new lc({maxSize:Math.floor(f/65536)}),fill:(c,h)=>this.readChunk(c,{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);Aa(a);const f=n??0,c=r??l.maxRefLength;if(!(f<=c))throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(f===c)return;const h=await this.index.blocksForRange(t,f,c,s);Aa(a);for(const p of h){const b=p.fetchedSize();if(b>this.chunkSizeLimit)throw new Error(`Too much data. Chunk size ${b.toLocaleString()} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit.toLocaleString()}.`)}let d=Date.now();for(const p of h){let b;const{buffer:y,cpositions:w,dpositions:_}=await this.chunkCache.get(p.toString(),p,a);Aa(a);let C=0,E=0;for(;C<y.length;){const T=y.indexOf(`
485
+ `,C);if(T===-1)break;const B=y.slice(C,T),I=(o=ng==null?void 0:ng.decode(B))!==null&&o!==void 0?o:B.toString();if(_){for(;C+p.minv.dataPosition>=_[E++];);E--}const{startCoordinate:R,overlaps:M}=this.checkLine(l,t,f,c,I);if(b!==void 0&&R!==void 0&&b>R)throw new Error(`Lines not sorted by start coordinate (${b} > ${R}), this file is not usable with Tabix.`);if(b=R,M)u(I.trim(),w[E]*256+(C-_[E])+p.minv.dataPosition+1);else if(R!==void 0&&R>=c)return;this.yieldTime&&d-Date.now()>this.yieldTime&&(d=Date.now(),Aa(a),await FO(1)),C=T+1}}}async getMetadata(t={}){return this.index.getMetadata(t)}async getHeaderBuffer(t={}){const{firstDataLine:n,metaChar:r,maxBlockSize:i}=await this.getMetadata(t);Aa(t.signal);const o=((n==null?void 0:n.blockPosition)||0)+i,a=await this._readRegion(0,o,t),s=await Jr(a);if(r){let u=-1;const l=`
486
+ `.charCodeAt(0),f=r.charCodeAt(0);for(let c=0;c<s.length&&!(c===u+1&&s[c]!==f);c+=1)s[c]===l&&(u=c);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:f,start:c,end:h}=a;f||(f=0),c||(c=0),h||(h=0),l==="VCF"&&(h=8);const d=Math.max(f,c,h);let p=1,b=0,y="",w=-1/0;for(let _=0;_<o.length+1;_+=1)if(o[_]===" "||_===o.length){if(p===f){if(this.renameRefSeq(o.slice(b,_))!==n)return{overlaps:!1}}else if(p===c){if(w=parseInt(o.slice(b,_),10),u==="1-based-closed"&&(w-=1),w>=i)return{startCoordinate:w,overlaps:!1};if((h===0||h===c)&&w+1<=r)return{startCoordinate:w,overlaps:!1}}else if(l==="VCF"&&p===4)y=o.slice(b,_);else if(p===h&&(l==="VCF"?this._getVcfEnd(w,y,o.slice(b,_)):parseInt(o.slice(b,_),10))<=r)return{overlaps:!1};if(b=_+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=pe.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 ux(r,t)}}const MO=Object.freeze(Object.defineProperty({__proto__:null,CSI:tg,TBI:kc,TabixIndexedFile:RO},Symbol.toStringTag,{value:"Module"}));var rg={exports:{}},_a=typeof Reflect=="object"?Reflect:null,X3=_a&&typeof _a.apply=="function"?_a.apply:function(t,n,r){return Function.prototype.apply.call(t,n,r)},Tc;_a&&typeof _a.ownKeys=="function"?Tc=_a.ownKeys:Object.getOwnPropertySymbols?Tc=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Tc=function(t){return Object.getOwnPropertyNames(t)};function PO(e){console&&console.warn&&console.warn(e)}var $3=Number.isNaN||function(t){return t!==t};function Be(){Be.init.call(this)}rg.exports=Be,rg.exports.once=zO,Be.EventEmitter=Be,Be.prototype._events=void 0,Be.prototype._eventsCount=0,Be.prototype._maxListeners=void 0;var K3=10;function Ic(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(Be,"defaultMaxListeners",{enumerable:!0,get:function(){return K3},set:function(e){if(typeof e!="number"||e<0||$3(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");K3=e}}),Be.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},Be.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||$3(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 J3(e){return e._maxListeners===void 0?Be.defaultMaxListeners:e._maxListeners}Be.prototype.getMaxListeners=function(){return J3(this)},Be.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")X3(u,this,n);else for(var l=u.length,f=iE(u,l),r=0;r<l;++r)X3(f[r],this,n);return!0};function eE(e,t,n,r){var i,o,a;if(Ic(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=J3(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,PO(s)}return e}Be.prototype.addListener=function(t,n){return eE(this,t,n,!1)},Be.prototype.on=Be.prototype.addListener,Be.prototype.prependListener=function(t,n){return eE(this,t,n,!0)};function LO(){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 tE(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=LO.bind(r);return i.listener=n,r.wrapFn=i,i}Be.prototype.once=function(t,n){return Ic(n),this.on(t,tE(this,t,n)),this},Be.prototype.prependOnceListener=function(t,n){return Ic(n),this.prependListener(t,tE(this,t,n)),this},Be.prototype.removeListener=function(t,n){var r,i,o,a,s;if(Ic(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():NO(r,o),r.length===1&&(i[t]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",t,s||n)}return this},Be.prototype.off=Be.prototype.removeListener,Be.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 nE(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?OO(i):iE(i,i.length)}Be.prototype.listeners=function(t){return nE(this,t,!0)},Be.prototype.rawListeners=function(t){return nE(this,t,!1)},Be.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):rE.call(e,t)},Be.prototype.listenerCount=rE;function rE(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}Be.prototype.eventNames=function(){return this._eventsCount>0?Tc(this._events):[]};function iE(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function NO(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function OO(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function zO(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))}oE(e,t,o,{once:!0}),t!=="error"&&UO(e,i,{once:!0})})}function UO(e,t,n){typeof e.on=="function"&&oE(e,"error",t,n)}function oE(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 ig=rg.exports,og={exports:{}};typeof Object.create=="function"?og.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:og.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 Sa=og.exports,ag,aE;function sE(){return aE||(aE=1,ag=ig.EventEmitter),ag}const lE=JF(lR);var sg,uE;function GO(){if(uE)return sg;uE=1;function e(p,b){var y=Object.keys(p);if(Object.getOwnPropertySymbols){var w=Object.getOwnPropertySymbols(p);b&&(w=w.filter(function(_){return Object.getOwnPropertyDescriptor(p,_).enumerable})),y.push.apply(y,w)}return y}function t(p){for(var b=1;b<arguments.length;b++){var y=arguments[b]!=null?arguments[b]:{};b%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,b,y){return b=a(b),b in p?Object.defineProperty(p,b,{value:y,enumerable:!0,configurable:!0,writable:!0}):p[b]=y,p}function r(p,b){if(!(p instanceof b))throw new TypeError("Cannot call a class as a function")}function i(p,b){for(var y=0;y<b.length;y++){var w=b[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,b,y){return b&&i(p.prototype,b),y&&i(p,y),Object.defineProperty(p,"prototype",{writable:!1}),p}function a(p){var b=s(p,"string");return typeof b=="symbol"?b:String(b)}function s(p,b){if(typeof p!="object"||p===null)return p;var y=p[Symbol.toPrimitive];if(y!==void 0){var w=y.call(p,b||"default");if(typeof w!="object")return w;throw new TypeError("@@toPrimitive must return a primitive value.")}return(b==="string"?String:Number)(p)}var u=pe,l=u.Buffer,f=lE,c=f.inspect,h=c&&c.custom||"inspect";function d(p,b,y){l.prototype.copy.call(p,b,y)}return sg=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,_=""+w.data;w=w.next;)_+=y+w.data;return _}},{key:"concat",value:function(y){if(this.length===0)return l.alloc(0);for(var w=l.allocUnsafe(y>>>0),_=this.head,C=0;_;)d(_.data,w,C),C+=_.data.length,_=_.next;return w}},{key:"consume",value:function(y,w){var _;return y<this.head.data.length?(_=this.head.data.slice(0,y),this.head.data=this.head.data.slice(y)):y===this.head.data.length?_=this.shift():_=w?this._getString(y):this._getBuffer(y),_}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(y){var w=this.head,_=1,C=w.data;for(y-=C.length;w=w.next;){var E=w.data,T=y>E.length?E.length:y;if(T===E.length?C+=E:C+=E.slice(0,y),y-=T,y===0){T===E.length?(++_,w.next?this.head=w.next:this.head=this.tail=null):(this.head=w,w.data=E.slice(T));break}++_}return this.length-=_,C}},{key:"_getBuffer",value:function(y){var w=l.allocUnsafe(y),_=this.head,C=1;for(_.data.copy(w),y-=_.data.length;_=_.next;){var E=_.data,T=y>E.length?E.length:y;if(E.copy(w,w.length-y,0,T),y-=T,y===0){T===E.length?(++C,_.next?this.head=_.next:this.head=this.tail=null):(this.head=_,_.data=E.slice(T));break}++C}return this.length-=C,w}},{key:h,value:function(y,w){return c(this,t(t({},w),{},{depth:0,customInspect:!1}))}}]),p}(),sg}var lg,fE;function cE(){if(fE)return lg;fE=1;function e(a,s){var u=this,l=this._readableState&&this._readableState.destroyed,f=this._writableState&&this._writableState.destroyed;return l||f?(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(c){!s&&c?u._writableState?u._writableState.errorEmitted?process.nextTick(n,u):(u._writableState.errorEmitted=!0,process.nextTick(t,u,c)):process.nextTick(t,u,c):s?(process.nextTick(n,u),s(c)):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 lg={destroy:e,undestroy:r,errorOrDestroy:o},lg}var ug={},hE;function Ca(){if(hE)return ug;hE=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 f(h,d,p){return typeof u=="string"?u:u(h,d,p)}var c=function(h){e(d,h);function d(p,b,y){return h.call(this,f(p,b,y))||this}return d}(l);c.prototype.name=l.name,c.prototype.code=s,t[s]=c}function r(s,u){if(Array.isArray(s)){var l=s.length;return s=s.map(function(f){return String(f)}),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 f;typeof u=="string"&&i(u,"not ")?(f="must not be",u=u.replace(/^not /,"")):f="must be";var c;if(o(s," argument"))c="The ".concat(s," ").concat(f," ").concat(r(u,"type"));else{var h=a(s,".")?"property":"argument";c='The "'.concat(s,'" ').concat(h," ").concat(f," ").concat(r(u,"type"))}return c+=". Received type ".concat(typeof l),c},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"),ug.codes=t,ug}var fg,dE;function pE(){if(dE)return fg;dE=1;var e=Ca().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 fg={getHighWaterMark:n},fg}var cg,gE;function HO(){if(gE)return cg;gE=1,cg=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 cg}var hg,mE;function bE(){if(mE)return hg;mE=1,hg=R;function e(L){var P=this;this.next=null,this.entry=null,this.finish=function(){Oe(P,L)}}var t;R.WritableState=B;var n={deprecate:HO()},r=sE(),i=pe.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=cE(),l=pE(),f=l.getHighWaterMark,c=Ca().codes,h=c.ERR_INVALID_ARG_TYPE,d=c.ERR_METHOD_NOT_IMPLEMENTED,p=c.ERR_MULTIPLE_CALLBACK,b=c.ERR_STREAM_CANNOT_PIPE,y=c.ERR_STREAM_DESTROYED,w=c.ERR_STREAM_NULL_VALUES,_=c.ERR_STREAM_WRITE_AFTER_END,C=c.ERR_UNKNOWN_ENCODING,E=u.errorOrDestroy;Sa(R,r);function T(){}function B(L,P,q){t=t||ka(),L=L||{},typeof q!="boolean"&&(q=P instanceof t),this.objectMode=!!L.objectMode,q&&(this.objectMode=this.objectMode||!!L.writableObjectMode),this.highWaterMark=f(this,L,"writableHighWaterMark",q),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var H=L.decodeStrings===!1;this.decodeStrings=!H,this.defaultEncoding=L.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Y){Xe(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(R,Symbol.hasInstance,{value:function(P){return I.call(this,P)?!0:this!==R?!1:P&&P._writableState instanceof B}})):I=function(P){return P instanceof this};function R(L){t=t||ka();var P=this instanceof t;if(!P&&!I.call(R,this))return new R(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)}R.prototype.pipe=function(){E(this,new b)};function M(L,P){var q=new _;E(L,q),process.nextTick(P,q)}function j(L,P,q,H){var Y;return q===null?Y=new w:typeof q!="string"&&!P.objectMode&&(Y=new h("chunk",["string","Buffer"],q)),Y?(E(L,Y),process.nextTick(H,Y),!1):!0}R.prototype.write=function(L,P,q){var H=this._writableState,Y=!1,S=!H.objectMode&&s(L);return S&&!i.isBuffer(L)&&(L=a(L)),typeof P=="function"&&(q=P,P=null),S?P="buffer":P||(P=H.defaultEncoding),typeof q!="function"&&(q=T),H.ending?M(this,q):(S||j(this,H,L,q))&&(H.pendingcb++,Y=ie(this,H,S,L,P,q)),Y},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&&Ze(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 C(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 ie(L,P,q,H,Y,S){if(!q){var x=O(P,H,Y);H!==x&&(q=!0,Y="buffer",H=x)}var G=P.objectMode?1:H.length;P.length+=G;var Z=P.length<P.highWaterMark;if(Z||(P.needDrain=!0),P.writing||P.corked){var le=P.lastBufferedRequest;P.lastBufferedRequest={chunk:H,encoding:Y,isBuf:q,callback:S,next:null},le?le.next=P.lastBufferedRequest:P.bufferedRequest=P.lastBufferedRequest,P.bufferedRequestCount+=1}else se(L,P,!1,G,H,Y,S);return Z}function se(L,P,q,H,Y,S,x){P.writelen=H,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,S,P.onwrite),P.sync=!1}function ge(L,P,q,H,Y){--P.pendingcb,q?(process.nextTick(Y,H),process.nextTick(pt,L,P),L._writableState.errorEmitted=!0,E(L,H)):(Y(H),L._writableState.errorEmitted=!0,E(L,H),pt(L,P))}function Ie(L){L.writing=!1,L.writecb=null,L.length-=L.writelen,L.writelen=0}function Xe(L,P){var q=L._writableState,H=q.sync,Y=q.writecb;if(typeof Y!="function")throw new p;if(Ie(q),P)ge(L,q,H,P,Y);else{var S=Ke(q)||L.destroyed;!S&&!q.corked&&!q.bufferProcessing&&q.bufferedRequest&&Ze(L,q),H?process.nextTick(De,L,q,S,Y):De(L,q,S,Y)}}function De(L,P,q,H){q||$e(L,P),P.pendingcb--,H(),pt(L,P)}function $e(L,P){P.length===0&&P.needDrain&&(P.needDrain=!1,L.emit("drain"))}function Ze(L,P){P.bufferProcessing=!0;var q=P.bufferedRequest;if(L._writev&&q&&q.next){var H=P.bufferedRequestCount,Y=new Array(H),S=P.corkedRequestsFree;S.entry=q;for(var x=0,G=!0;q;)Y[x]=q,q.isBuf||(G=!1),q=q.next,x+=1;Y.allBuffers=G,se(L,P,!0,P.length,Y,"",S.finish),P.pendingcb++,P.lastBufferedRequest=null,S.next?(P.corkedRequestsFree=S.next,S.next=null):P.corkedRequestsFree=new e(P),P.bufferedRequestCount=0}else{for(;q;){var Z=q.chunk,le=q.encoding,J=q.callback,ue=P.objectMode?1:Z.length;if(se(L,P,!1,ue,Z,le,J),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 H=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),H.corked&&(H.corked=1,this.uncork()),H.ending||qt(this,H,q),this},Object.defineProperty(R.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function Ke(L){return L.ending&&L.length===0&&L.bufferedRequest===null&&!L.finished&&!L.writing}function Ee(L,P){L._final(function(q){P.pendingcb--,q&&E(L,q),P.prefinished=!0,L.emit("prefinish"),pt(L,P)})}function _e(L,P){!P.prefinished&&!P.finalCalled&&(typeof L._final=="function"&&!P.destroyed?(P.pendingcb++,P.finalCalled=!0,process.nextTick(Ee,L,P)):(P.prefinished=!0,L.emit("prefinish")))}function pt(L,P){var q=Ke(P);if(q&&(_e(L,P),P.pendingcb===0&&(P.finished=!0,L.emit("finish"),P.autoDestroy))){var H=L._readableState;(!H||H.autoDestroy&&H.endEmitted)&&L.destroy()}return q}function qt(L,P,q){P.ending=!0,pt(L,P),q&&(P.finished?process.nextTick(q):L.once("finish",q)),P.ended=!0,L.writable=!1}function Oe(L,P,q){var H=L.entry;for(L.entry=null;H;){var Y=H.callback;P.pendingcb--,Y(q),H=H.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)},hg}var dg,yE;function ka(){if(yE)return dg;yE=1;var e=Object.keys||function(l){var f=[];for(var c in l)f.push(c);return f};dg=a;var t=_E(),n=bE();Sa(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(f){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=f,this._writableState.destroyed=f)}}),dg}var pg={},gg={exports:{}};(function(e,t){var n=pe,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)}})(gg,gg.exports);var VO=gg.exports,mg=VO.Buffer,wE=mg.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 jO(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 qO(e){var t=jO(e);if(typeof t!="string"&&(mg.isEncoding===wE||!wE(e)))throw new Error("Unknown encoding: "+e);return t||e}var ZO=pg.StringDecoder=Ol;function Ol(e){this.encoding=qO(e);var t;switch(this.encoding){case"utf16le":this.text=KO,this.end=JO,t=4;break;case"utf8":this.fillLast=QO,t=4;break;case"base64":this.text=ez,this.end=tz,t=3;break;default:this.write=nz,this.end=rz;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=mg.allocUnsafe(t)}Ol.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||""},Ol.prototype.end=$O,Ol.prototype.text=XO,Ol.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 bg(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function WO(e,t,n){var r=t.length-1;if(r<n)return 0;var i=bg(t[r]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--r<n||i===-2?0:(i=bg(t[r]),i>=0?(i>0&&(e.lastNeed=i-2),i):--r<n||i===-2?0:(i=bg(t[r]),i>=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function YO(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 QO(e){var t=this.lastTotal-this.lastNeed,n=YO(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 XO(e,t){var n=WO(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 $O(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function KO(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 JO(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 ez(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 tz(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function nz(e){return e.toString(this.encoding)}function rz(e){return e&&e.length?this.write(e):""}var yg,vE;function wg(){if(vE)return yg;vE=1;var e=Ca().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,f=function(){o.writable||h()},c=o._writableState&&o._writableState.finished,h=function(){l=!1,c=!0,u||s.call(o)},d=o._readableState&&o._readableState.endEmitted,p=function(){u=!1,d=!0,l||s.call(o)},b=function(C){s.call(o,C)},y=function(){var C;if(u&&!d)return(!o._readableState||!o._readableState.ended)&&(C=new e),s.call(o,C);if(l&&!c)return(!o._writableState||!o._writableState.ended)&&(C=new e),s.call(o,C)},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",f),o.on("close",f)),o.on("end",p),o.on("finish",h),a.error!==!1&&o.on("error",b),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",f),o.removeListener("close",f),o.removeListener("finish",h),o.removeListener("end",p),o.removeListener("error",b),o.removeListener("close",y)}}return yg=i,yg}var vg,xE;function iz(){if(xE)return vg;xE=1;var e;function t(C,E,T){return E=n(E),E in C?Object.defineProperty(C,E,{value:T,enumerable:!0,configurable:!0,writable:!0}):C[E]=T,C}function n(C){var E=r(C,"string");return typeof E=="symbol"?E:String(E)}function r(C,E){if(typeof C!="object"||C===null)return C;var T=C[Symbol.toPrimitive];if(T!==void 0){var B=T.call(C,E||"default");if(typeof B!="object")return B;throw new TypeError("@@toPrimitive must return a primitive value.")}return(E==="string"?String:Number)(C)}var i=wg(),o=Symbol("lastResolve"),a=Symbol("lastReject"),s=Symbol("error"),u=Symbol("ended"),l=Symbol("lastPromise"),f=Symbol("handlePromise"),c=Symbol("stream");function h(C,E){return{value:C,done:E}}function d(C){var E=C[o];if(E!==null){var T=C[c].read();T!==null&&(C[l]=null,C[o]=null,C[a]=null,E(h(T,!1)))}}function p(C){process.nextTick(d,C)}function b(C,E){return function(T,B){C.then(function(){if(E[u]){T(h(void 0,!0));return}E[f](T,B)},B)}}var y=Object.getPrototypeOf(function(){}),w=Object.setPrototypeOf((e={get stream(){return this[c]},next:function(){var E=this,T=this[s];if(T!==null)return Promise.reject(T);if(this[u])return Promise.resolve(h(void 0,!0));if(this[c].destroyed)return new Promise(function(M,j){process.nextTick(function(){E[s]?j(E[s]):M(h(void 0,!0))})});var B=this[l],I;if(B)I=new Promise(b(B,this));else{var R=this[c].read();if(R!==null)return Promise.resolve(h(R,!1));I=new Promise(this[f])}return this[l]=I,I}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var E=this;return new Promise(function(T,B){E[c].destroy(null,function(I){if(I){B(I);return}T(h(void 0,!0))})})}),e),y),_=function(E){var T,B=Object.create(w,(T={},t(T,c,{value:E,writable:!0}),t(T,o,{value:null,writable:!0}),t(T,a,{value:null,writable:!0}),t(T,s,{value:null,writable:!0}),t(T,u,{value:E._readableState.endEmitted,writable:!0}),t(T,f,{value:function(R,M){var j=B[c].read();j?(B[l]=null,B[o]=null,B[a]=null,R(h(j,!1))):(B[o]=R,B[a]=M)},writable:!0}),T));return B[l]=null,i(E,function(I){if(I&&I.code!=="ERR_STREAM_PREMATURE_CLOSE"){var R=B[a];R!==null&&(B[l]=null,B[o]=null,B[a]=null,R(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}),E.on("readable",p.bind(null,B)),B};return vg=_,vg}var xg,AE;function oz(){return AE||(AE=1,xg=function(){throw new Error("Readable.from is not available in the browser")}),xg}var Ag,EE;function _E(){if(EE)return Ag;EE=1,Ag=M;var e;M.ReadableState=R,ig.EventEmitter;var t=function(x,G){return x.listeners(G).length},n=sE(),r=pe.Buffer,i=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function o(S){return r.from(S)}function a(S){return r.isBuffer(S)||S instanceof i}var s=lE,u;s&&s.debuglog?u=s.debuglog("stream"):u=function(){};var l=GO(),f=cE(),c=pE(),h=c.getHighWaterMark,d=Ca().codes,p=d.ERR_INVALID_ARG_TYPE,b=d.ERR_STREAM_PUSH_AFTER_EOF,y=d.ERR_METHOD_NOT_IMPLEMENTED,w=d.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,_,C,E;Sa(M,n);var T=f.errorOrDestroy,B=["error","close","destroy","pause","resume"];function I(S,x,G){if(typeof S.prependListener=="function")return S.prependListener(x,G);!S._events||!S._events[x]?S.on(x,G):Array.isArray(S._events[x])?S._events[x].unshift(G):S._events[x]=[G,S._events[x]]}function R(S,x,G){e=e||ka(),S=S||{},typeof G!="boolean"&&(G=x instanceof e),this.objectMode=!!S.objectMode,G&&(this.objectMode=this.objectMode||!!S.readableObjectMode),this.highWaterMark=h(this,S,"readableHighWaterMark",G),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=S.emitClose!==!1,this.autoDestroy=!!S.autoDestroy,this.destroyed=!1,this.defaultEncoding=S.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,S.encoding&&(_||(_=pg.StringDecoder),this.decoder=new _(S.encoding),this.encoding=S.encoding)}function M(S){if(e=e||ka(),!(this instanceof M))return new M(S);var x=this instanceof e;this._readableState=new R(S,this,x),this.readable=!0,S&&(typeof S.read=="function"&&(this._read=S.read),typeof S.destroy=="function"&&(this._destroy=S.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=f.destroy,M.prototype._undestroy=f.undestroy,M.prototype._destroy=function(S,x){x(S)},M.prototype.push=function(S,x){var G=this._readableState,Z;return G.objectMode?Z=!0:typeof S=="string"&&(x=x||G.defaultEncoding,x!==G.encoding&&(S=r.from(S,x),x=""),Z=!0),j(this,S,x,!1,Z)},M.prototype.unshift=function(S){return j(this,S,null,!0,!1)};function j(S,x,G,Z,le){u("readableAddChunk",x);var J=S._readableState;if(x===null)J.reading=!1,Xe(S,J);else{var ue;if(le||(ue=ie(J,x)),ue)T(S,ue);else if(J.objectMode||x&&x.length>0)if(typeof x!="string"&&!J.objectMode&&Object.getPrototypeOf(x)!==r.prototype&&(x=o(x)),Z)J.endEmitted?T(S,new w):O(S,J,x,!0);else if(J.ended)T(S,new b);else{if(J.destroyed)return!1;J.reading=!1,J.decoder&&!G?(x=J.decoder.write(x),J.objectMode||x.length!==0?O(S,J,x,!1):Ze(S,J)):O(S,J,x,!1)}else Z||(J.reading=!1,Ze(S,J))}return!J.ended&&(J.length<J.highWaterMark||J.length===0)}function O(S,x,G,Z){x.flowing&&x.length===0&&!x.sync?(x.awaitDrain=0,S.emit("data",G)):(x.length+=x.objectMode?1:G.length,Z?x.buffer.unshift(G):x.buffer.push(G),x.needReadable&&De(S)),Ze(S,x)}function ie(S,x){var G;return!a(x)&&typeof x!="string"&&x!==void 0&&!S.objectMode&&(G=new p("chunk",["string","Buffer","Uint8Array"],x)),G}M.prototype.isPaused=function(){return this._readableState.flowing===!1},M.prototype.setEncoding=function(S){_||(_=pg.StringDecoder);var x=new _(S);this._readableState.decoder=x,this._readableState.encoding=this._readableState.decoder.encoding;for(var G=this._readableState.buffer.head,Z="";G!==null;)Z+=x.write(G.data),G=G.next;return this._readableState.buffer.clear(),Z!==""&&this._readableState.buffer.push(Z),this._readableState.length=Z.length,this};var se=1073741824;function ge(S){return S>=se?S=se:(S--,S|=S>>>1,S|=S>>>2,S|=S>>>4,S|=S>>>8,S|=S>>>16,S++),S}function Ie(S,x){return S<=0||x.length===0&&x.ended?0:x.objectMode?1:S!==S?x.flowing&&x.length?x.buffer.head.data.length:x.length:(S>x.highWaterMark&&(x.highWaterMark=ge(S)),S<=x.length?S:x.ended?x.length:(x.needReadable=!0,0))}M.prototype.read=function(S){u("read",S),S=parseInt(S,10);var x=this._readableState,G=S;if(S!==0&&(x.emittedReadable=!1),S===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):De(this),null;if(S=Ie(S,x),S===0&&x.ended)return x.length===0&&q(this),null;var Z=x.needReadable;u("need readable",Z),(x.length===0||x.length-S<x.highWaterMark)&&(Z=!0,u("length less than watermark",Z)),x.ended||x.reading?(Z=!1,u("reading or ended",Z)):Z&&(u("do read"),x.reading=!0,x.sync=!0,x.length===0&&(x.needReadable=!0),this._read(x.highWaterMark),x.sync=!1,x.reading||(S=Ie(G,x)));var le;return S>0?le=P(S,x):le=null,le===null?(x.needReadable=x.length<=x.highWaterMark,S=0):(x.length-=S,x.awaitDrain=0),x.length===0&&(x.ended||(x.needReadable=!0),G!==S&&x.ended&&q(this)),le!==null&&this.emit("data",le),le};function Xe(S,x){if(u("onEofChunk"),!x.ended){if(x.decoder){var G=x.decoder.end();G&&G.length&&(x.buffer.push(G),x.length+=x.objectMode?1:G.length)}x.ended=!0,x.sync?De(S):(x.needReadable=!1,x.emittedReadable||(x.emittedReadable=!0,$e(S)))}}function De(S){var x=S._readableState;u("emitReadable",x.needReadable,x.emittedReadable),x.needReadable=!1,x.emittedReadable||(u("emitReadable",x.flowing),x.emittedReadable=!0,process.nextTick($e,S))}function $e(S){var x=S._readableState;u("emitReadable_",x.destroyed,x.length,x.ended),!x.destroyed&&(x.length||x.ended)&&(S.emit("readable"),x.emittedReadable=!1),x.needReadable=!x.flowing&&!x.ended&&x.length<=x.highWaterMark,L(S)}function Ze(S,x){x.readingMore||(x.readingMore=!0,process.nextTick(Ke,S,x))}function Ke(S,x){for(;!x.reading&&!x.ended&&(x.length<x.highWaterMark||x.flowing&&x.length===0);){var G=x.length;if(u("maybeReadMore read 0"),S.read(0),G===x.length)break}x.readingMore=!1}M.prototype._read=function(S){T(this,new y("_read()"))},M.prototype.pipe=function(S,x){var G=this,Z=this._readableState;switch(Z.pipesCount){case 0:Z.pipes=S;break;case 1:Z.pipes=[Z.pipes,S];break;default:Z.pipes.push(S);break}Z.pipesCount+=1,u("pipe count=%d opts=%j",Z.pipesCount,x);var le=(!x||x.end!==!1)&&S!==process.stdout&&S!==process.stderr,J=le?Zt:Xn;Z.endEmitted?process.nextTick(J):G.once("end",J),S.on("unpipe",ue);function ue(v,g){u("onunpipe"),v===G&&g&&g.hasUnpiped===!1&&(g.hasUnpiped=!0,fi())}function Zt(){u("onend"),S.end()}var li=Ee(G);S.on("drain",li);var ui=!1;function fi(){u("cleanup"),S.removeListener("close",ci),S.removeListener("finish",Wt),S.removeListener("drain",li),S.removeListener("error",wr),S.removeListener("unpipe",ue),G.removeListener("end",Zt),G.removeListener("end",Xn),G.removeListener("data",St),ui=!0,Z.awaitDrain&&(!S._writableState||S._writableState.needDrain)&&li()}G.on("data",St);function St(v){u("ondata");var g=S.write(v);u("dest.write",g),g===!1&&((Z.pipesCount===1&&Z.pipes===S||Z.pipesCount>1&&Y(Z.pipes,S)!==-1)&&!ui&&(u("false write response, pause",Z.awaitDrain),Z.awaitDrain++),G.pause())}function wr(v){u("onerror",v),Xn(),S.removeListener("error",wr),t(S,"error")===0&&T(S,v)}I(S,"error",wr);function ci(){S.removeListener("finish",Wt),Xn()}S.once("close",ci);function Wt(){u("onfinish"),S.removeListener("close",ci),Xn()}S.once("finish",Wt);function Xn(){u("unpipe"),G.unpipe(S)}return S.emit("pipe",G),Z.flowing||(u("pipe resume"),G.resume()),S};function Ee(S){return function(){var G=S._readableState;u("pipeOnDrain",G.awaitDrain),G.awaitDrain&&G.awaitDrain--,G.awaitDrain===0&&t(S,"data")&&(G.flowing=!0,L(S))}}M.prototype.unpipe=function(S){var x=this._readableState,G={hasUnpiped:!1};if(x.pipesCount===0)return this;if(x.pipesCount===1)return S&&S!==x.pipes?this:(S||(S=x.pipes),x.pipes=null,x.pipesCount=0,x.flowing=!1,S&&S.emit("unpipe",this,G),this);if(!S){var Z=x.pipes,le=x.pipesCount;x.pipes=null,x.pipesCount=0,x.flowing=!1;for(var J=0;J<le;J++)Z[J].emit("unpipe",this,{hasUnpiped:!1});return this}var ue=Y(x.pipes,S);return ue===-1?this:(x.pipes.splice(ue,1),x.pipesCount-=1,x.pipesCount===1&&(x.pipes=x.pipes[0]),S.emit("unpipe",this,G),this)},M.prototype.on=function(S,x){var G=n.prototype.on.call(this,S,x),Z=this._readableState;return S==="data"?(Z.readableListening=this.listenerCount("readable")>0,Z.flowing!==!1&&this.resume()):S==="readable"&&!Z.endEmitted&&!Z.readableListening&&(Z.readableListening=Z.needReadable=!0,Z.flowing=!1,Z.emittedReadable=!1,u("on readable",Z.length,Z.reading),Z.length?De(this):Z.reading||process.nextTick(pt,this)),G},M.prototype.addListener=M.prototype.on,M.prototype.removeListener=function(S,x){var G=n.prototype.removeListener.call(this,S,x);return S==="readable"&&process.nextTick(_e,this),G},M.prototype.removeAllListeners=function(S){var x=n.prototype.removeAllListeners.apply(this,arguments);return(S==="readable"||S===void 0)&&process.nextTick(_e,this),x};function _e(S){var x=S._readableState;x.readableListening=S.listenerCount("readable")>0,x.resumeScheduled&&!x.paused?x.flowing=!0:S.listenerCount("data")>0&&S.resume()}function pt(S){u("readable nexttick read 0"),S.read(0)}M.prototype.resume=function(){var S=this._readableState;return S.flowing||(u("resume"),S.flowing=!S.readableListening,qt(this,S)),S.paused=!1,this};function qt(S,x){x.resumeScheduled||(x.resumeScheduled=!0,process.nextTick(Oe,S,x))}function Oe(S,x){u("resume",x.reading),x.reading||S.read(0),x.resumeScheduled=!1,S.emit("resume"),L(S),x.flowing&&!x.reading&&S.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(S){var x=S._readableState;for(u("flow",x.flowing);x.flowing&&S.read()!==null;);}M.prototype.wrap=function(S){var x=this,G=this._readableState,Z=!1;S.on("end",function(){if(u("wrapped end"),G.decoder&&!G.ended){var ue=G.decoder.end();ue&&ue.length&&x.push(ue)}x.push(null)}),S.on("data",function(ue){if(u("wrapped data"),G.decoder&&(ue=G.decoder.write(ue)),!(G.objectMode&&ue==null)&&!(!G.objectMode&&(!ue||!ue.length))){var Zt=x.push(ue);Zt||(Z=!0,S.pause())}});for(var le in S)this[le]===void 0&&typeof S[le]=="function"&&(this[le]=function(Zt){return function(){return S[Zt].apply(S,arguments)}}(le));for(var J=0;J<B.length;J++)S.on(B[J],this.emit.bind(this,B[J]));return this._read=function(ue){u("wrapped _read",ue),Z&&(Z=!1,S.resume())},this},typeof Symbol=="function"&&(M.prototype[Symbol.asyncIterator]=function(){return C===void 0&&(C=iz()),C(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(S,x){if(x.length===0)return null;var G;return x.objectMode?G=x.buffer.shift():!S||S>=x.length?(x.decoder?G=x.buffer.join(""):x.buffer.length===1?G=x.buffer.first():G=x.buffer.concat(x.length),x.buffer.clear()):G=x.buffer.consume(S,x.decoder),G}function q(S){var x=S._readableState;u("endReadable",x.endEmitted),x.endEmitted||(x.ended=!0,process.nextTick(H,x,S))}function H(S,x){if(u("endReadableNT",S.endEmitted,S.length),!S.endEmitted&&S.length===0&&(S.endEmitted=!0,x.readable=!1,x.emit("end"),S.autoDestroy)){var G=x._writableState;(!G||G.autoDestroy&&G.finished)&&x.destroy()}}typeof Symbol=="function"&&(M.from=function(S,x){return E===void 0&&(E=oz()),E(M,S,x)});function Y(S,x){for(var G=0,Z=S.length;G<Z;G++)if(S[G]===x)return G;return-1}return Ag}var Eg,SE;function CE(){if(SE)return Eg;SE=1,Eg=s;var e=Ca().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=ka();Sa(s,o);function a(f,c){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,c!=null&&this.push(c),d(f);var p=this._readableState;p.reading=!1,(p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}function s(f){if(!(this instanceof s))return new s(f);o.call(this,f),this._transformState={afterTransform:a.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,f&&(typeof f.transform=="function"&&(this._transform=f.transform),typeof f.flush=="function"&&(this._flush=f.flush)),this.on("prefinish",u)}function u(){var f=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(c,h){l(f,c,h)}):l(this,null,null)}s.prototype.push=function(f,c){return this._transformState.needTransform=!1,o.prototype.push.call(this,f,c)},s.prototype._transform=function(f,c,h){h(new t("_transform()"))},s.prototype._write=function(f,c,h){var d=this._transformState;if(d.writecb=h,d.writechunk=f,d.writeencoding=c,!d.transforming){var p=this._readableState;(d.needTransform||p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}},s.prototype._read=function(f){var c=this._transformState;c.writechunk!==null&&!c.transforming?(c.transforming=!0,this._transform(c.writechunk,c.writeencoding,c.afterTransform)):c.needTransform=!0},s.prototype._destroy=function(f,c){o.prototype._destroy.call(this,f,function(h){c(h)})};function l(f,c,h){if(c)return f.emit("error",c);if(h!=null&&f.push(h),f._writableState.length)throw new i;if(f._transformState.transforming)throw new r;return f.push(null)}return Eg}var _g,kE;function az(){if(kE)return _g;kE=1,_g=t;var e=CE();Sa(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)},_g}var Sg,TE;function sz(){if(TE)return Sg;TE=1;var e;function t(h){var d=!1;return function(){d||(d=!0,h.apply(void 0,arguments))}}var n=Ca().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,b){b=t(b);var y=!1;h.on("close",function(){y=!0}),e===void 0&&(e=wg()),e(h,{readable:d,writable:p},function(_){if(_)return b(_);y=!0,b()});var w=!1;return function(_){if(!y&&!w){if(w=!0,a(h))return h.abort();if(typeof h.destroy=="function")return h.destroy();b(_||new i("pipe"))}}}function u(h){h()}function l(h,d){return h.pipe(d)}function f(h){return!h.length||typeof h[h.length-1]!="function"?o:h.pop()}function c(){for(var h=arguments.length,d=new Array(h),p=0;p<h;p++)d[p]=arguments[p];var b=f(d);if(Array.isArray(d[0])&&(d=d[0]),d.length<2)throw new r("streams");var y,w=d.map(function(_,C){var E=C<d.length-1,T=C>0;return s(_,E,T,function(B){y||(y=B),B&&w.forEach(u),!E&&(w.forEach(u),b(y))})});return d.reduce(l)}return Sg=c,Sg}var IE=dn,Cg=ig.EventEmitter,lz=Sa;lz(dn,Cg),dn.Readable=_E(),dn.Writable=bE(),dn.Duplex=ka(),dn.Transform=CE(),dn.PassThrough=az(),dn.finished=wg(),dn.pipeline=sz(),dn.Stream=dn;function dn(){Cg.call(this)}dn.prototype.pipe=function(e,t){var n=this;function r(f){e.writable&&e.write(f)===!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(f){if(l(),Cg.listenerCount(this,"error")===0)throw f}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 zl(e){return e.replace(/%([0-9A-Fa-f]{2})/g,(t,n)=>String.fromCharCode(parseInt(n,16)))}function BE(e,t){return String(t).replace(e,n=>`%${n.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function Ul(e){return BE(/[\n;\r\t=%&,\x00-\x1f\x7f-\xff]/g,e)}function pr(e){return BE(/[\n\r\t%\x00-\x1f\x7f-\xff]/g,e)}function DE(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(zl))}),t}function FE(e){const t=e.split(" ").map(r=>r==="."||r===""?null:r);return{seq_id:t[0]&&zl(t[0]),source:t[1]&&zl(t[1]),type:t[2]&&zl(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:DE(t[8])}}function RE(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 ME(e){const t=[];return Object.entries(e).forEach(([n,r])=>{if(!r)return;let i;r.hasOwnProperty("toString")?i=Ul(r.toString()):Array.isArray(r)?i=r.map(Ul).join(","):i=Ul(r),t.push(`${Ul(n)}=${i}`)}),t.length?t.join(";"):"."}function uz(e,t){const n=e.attributes===null||e.attributes===void 0?".":ME(e.attributes),i=`${[e.seq_id===null?".":pr(e.seq_id),e.source===null?".":pr(e.source),e.type===null?".":pr(e.type),e.start===null?".":pr(e.start),e.end===null?".":pr(e.end),e.score===null?".":pr(e.score),e.strand===null?".":pr(e.strand),e.phase===null?".":pr(e.phase),n].join(" ")}
487
+ `;return t[i]?"":(t[i]=!0,i)}function Bc(e,t){if(Array.isArray(e))return e.map(r=>Bc(r,t)).join("");const n=[uz(e,t)];return fz(e)&&n.push(...e.child_features.map(r=>Bc(r,t)),...e.derived_features.map(r=>Bc(r,t))),n.join("")}function PE(e){return Bc(e,{})}function LE(e){let t=`##${e.directive}`;return e.value&&(t+=` ${e.value}`),t+=`
488
+ `,t}function NE(e){return`# ${e.comment}
489
+ `}function kg(e){return`>${e.id}${e.description?` ${e.description}`:""}
447
490
  ${e.sequence}
448
- `}function Tc(e){function t(n){return"attributes"in n?TE(n):"directive"in n?BE(n):"sequence"in n?Ag(n):"comment"in n?DE(n):`# (invalid item found during format)
449
- `}return Array.isArray(e)?e.map(t):t(e)}function KO(e){return e.child_features!==void 0&&e.derived_features!==void 0}const JO=Object.freeze(Object.defineProperty({__proto__:null,escape:Ll,escapeColumn:dr,formatAttributes:IE,formatComment:DE,formatDirective:BE,formatFeature:TE,formatItem:Tc,formatSequence:Ag,parseAttributes:SE,parseDirective:kE,parseFeature:CE,unescape:Pl},Symbol.toStringTag,{value:"Module"})),RE={Parent:"child_features",Derives_from:"derived_features"};class FE{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 ME{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=kE(t);o&&(o.directive==="FASTA"?(this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new FE(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 FE(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={...CE(t),child_features:[],derived_features:[]},s=((n=a.attributes)===null||n===void 0?void 0:n.ID)||[],f=((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&&!f.length&&!l.length){this._emitItem([a]);return}let u;s.forEach(c=>{const h=this._underConstructionById[c];h?(h[h.length-1].type!==a.type&&this._parseError(`multi-line feature "${c}" has inconsistent types: "${a.type}", "${h[h.length-1].type}"`),h.push(a),u=h):(u=[a],this._enforceBufferSizeLimit(1),!f.length&&!l.length&&this._underConstructionTopLevel.push(u),this._underConstructionById[c]=u,this._resolveReferencesTo(u,c))}),this._resolveReferencesFrom(u||[a],{Parent:f,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 f=o[a];f||(f={},o[a]=f);const l=f[s]||!1;return f[s]=!0,l}n.Parent.forEach(o=>{const a=this._underConstructionById[o];if(a){const s=RE.Parent;r.filter(f=>i(this._completedReferences,f,`Parent,${o}`)).length||a.forEach(f=>{f[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=RE.Derives_from;r.filter(f=>i(this._completedReferences,f,`Derives_from,${o}`)).length||a.forEach(f=>{f[s].push(t)})}else{let s=this._underConstructionOrphans[o];s||(s={Parent:[],Derives_from:[]},this._underConstructionOrphans[o]=s),s.Derives_from.push(t)}})}}function Eg(e){process&&process.nextTick?process.nextTick(e):e()}function PE(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 ez extends EE.Transform{constructor(t={}){super({objectMode:!0}),this.textBuffer="";const n=PE(t);this.encoding=t.encoding||"utf8",this.decoder=new MO;const r=this.push.bind(this);this.parser=new ME({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)),Eg(r)}_flush(t){this.decoder.end&&this._nextText(this.decoder.end()),this.textBuffer!=null&&this._addLine(this.textBuffer),this.parser.finish(),Eg(t)}}function tz(e={}){return new ez(e)}function nz(e,t={}){if(!e)return[];const n=PE(t),r=[],i=r.push.bind(r),o=new ME({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 rz(e){const t=[],n=[];e.forEach(i=>{"sequence"in i?n.push(i):t.push(i)});let r=t.map(Tc).join("");return n.length&&(r+=`##FASTA
450
- `,r+=n.map(Ag).join("")),r}class LE extends EE.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
491
+ `}function Dc(e){function t(n){return"attributes"in n?PE(n):"directive"in n?LE(n):"sequence"in n?kg(n):"comment"in n?NE(n):`# (invalid item found during format)
492
+ `}return Array.isArray(e)?e.map(t):t(e)}function fz(e){return e.child_features!==void 0&&e.derived_features!==void 0}const cz=Object.freeze(Object.defineProperty({__proto__:null,escape:Ul,escapeColumn:pr,formatAttributes:ME,formatComment:NE,formatDirective:LE,formatFeature:PE,formatItem:Dc,formatSequence:kg,parseAttributes:DE,parseDirective:RE,parseFeature:FE,unescape:zl},Symbol.toStringTag,{value:"Module"})),OE={Parent:"child_features",Derives_from:"derived_features"};class zE{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 UE{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=RE(t);o&&(o.directive==="FASTA"?(this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new zE(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 zE(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={...FE(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 f;s.forEach(c=>{const h=this._underConstructionById[c];h?(h[h.length-1].type!==a.type&&this._parseError(`multi-line feature "${c}" has inconsistent types: "${a.type}", "${h[h.length-1].type}"`),h.push(a),f=h):(f=[a],this._enforceBufferSizeLimit(1),!u.length&&!l.length&&this._underConstructionTopLevel.push(f),this._underConstructionById[c]=f,this._resolveReferencesTo(f,c))}),this._resolveReferencesFrom(f||[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=OE.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=OE.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 Tg(e){process&&process.nextTick?process.nextTick(e):e()}function GE(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 hz extends IE.Transform{constructor(t={}){super({objectMode:!0}),this.textBuffer="";const n=GE(t);this.encoding=t.encoding||"utf8",this.decoder=new ZO;const r=this.push.bind(this);this.parser=new UE({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)),Tg(r)}_flush(t){this.decoder.end&&this._nextText(this.decoder.end()),this.textBuffer!=null&&this._addLine(this.textBuffer),this.parser.finish(),Tg(t)}}function dz(e={}){return new hz(e)}function pz(e,t={}){if(!e)return[];const n=GE(t),r=[],i=r.push.bind(r),o=new UE({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 gz(e){const t=[],n=[];e.forEach(i=>{"sequence"in i?n.push(i):t.push(i)});let r=t.map(Dc).join("");return n.length&&(r+=`##FASTA
493
+ `,r+=n.map(kg).join("")),r}class HE extends IE.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
451
494
  `)}if("sequence"in t&&!this.fastaMode&&(this.push(`##FASTA
452
- `),this.fastaMode=!0),Array.isArray(t)?i=t.map(Tc).join(""):i=Tc(t),this.push(i),this.linesSinceLastSyncMark>=this.minLinesBetweenSyncMarks)this.push(`###
495
+ `),this.fastaMode=!0),Array.isArray(t)?i=t.map(Dc).join(""):i=Dc(t),this.push(i),this.linesSinceLastSyncMark>=this.minLinesBetweenSyncMarks)this.push(`###
453
496
  `),this.linesSinceLastSyncMark=0;else{let o=0;for(let a=0;a<i.length;a+=1)i[a]===`
454
- `&&(o+=1);this.linesSinceLastSyncMark+=o}this.haveWeEmittedData=!0,Eg(r)}}function iz(e={}){return new LE(e)}function oz(e,t,n={}){const r={insertVersionDirective:!0,...n};return new Promise((i,o)=>{e.pipe(new LE(r)).on("end",()=>i(null)).on("error",o).pipe(t)})}const az=Object.freeze(Object.defineProperty({__proto__:null,default:{parseStream:tz,parseStringSync:nz,formatSync:rz,formatStream:iz,formatFile:oz,util:JO}},Symbol.toStringTag,{value:"Module"}));ce.GenomeSpy=Ew,ce.embed=zR,ce.favIcon=OR,ce.html=Dn,ce.icon=NR,ce.loadSpec=_w,Object.defineProperty(ce,Symbol.toStringTag,{value:"Module"})});
497
+ `&&(o+=1);this.linesSinceLastSyncMark+=o}this.haveWeEmittedData=!0,Tg(r)}}function mz(e={}){return new HE(e)}function bz(e,t,n={}){const r={insertVersionDirective:!0,...n};return new Promise((i,o)=>{e.pipe(new HE(r)).on("end",()=>i(null)).on("error",o).pipe(t)})}const yz=Object.freeze(Object.defineProperty({__proto__:null,default:{parseStream:dz,parseStringSync:pz,formatSync:gz,formatStream:mz,formatFile:bz,util:cz}},Symbol.toStringTag,{value:"Module"}));ce.GenomeSpy=Tw,ce.embed=$F,ce.favIcon=XF,ce.html=mn,ce.icon=QF,ce.loadSpec=Iw,Object.defineProperty(ce,Symbol.toStringTag,{value:"Module"})});