@genome-spy/core 0.43.1 → 0.43.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
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 Gz=Object.defineProperty;var Hz=(ce,ve,Ce)=>ve in ce?Gz(ce,ve,{enumerable:!0,configurable:!0,writable:!0,value:Ce}):ce[ve]=Ce;var Bn=(ce,ve,Ce)=>(Hz(ce,typeof ve!="symbol"?ve+"":ve,Ce),Ce),Og=(ce,ve,Ce)=>{if(!ve.has(ce))throw TypeError("Cannot "+Ce)};var W=(ce,ve,Ce)=>(Og(ce,ve,"read from private field"),Ce?Ce.call(ce):ve.get(ce)),ne=(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)},Xe=(ce,ve,Ce,xa)=>(Og(ce,ve,"write to private field"),xa?xa.call(ce,Ce):ve.set(ce,Ce),Ce);var s_=(ce,ve,Ce,xa)=>({set _(su){Xe(ce,ve,su,Ce)},get _(){return W(ce,ve,xa)}}),ee=(ce,ve,Ce)=>(Og(ce,ve,"access private method"),Ce);var Gl,Pc,l_,Lc,u_,Hl,zg,Vl,Ug,jl,Gg,ko,ql,Zl,da,au,Wl,Hg,gr,Io,vt,Xn,gi,Nc,f_,Bo,qc,mr,wa,Yl,Vg,Oc,c_,Mg,Vz,Ql,jg,Do,$l,Fo,Ro,pa,Xl,Kl,Jl,br,Mo,Po,Kt,ga,Lo,yr,va,zc,h_,ma,ou,eu,qg,tu,Zg,nu,Wg,Uc,d_,No,Zc,Gc,p_,Oo,zo,ba,ru,ya;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 a=Object.getOwnPropertyDescriptor(r,i);a&&Object.defineProperty(e,i,a.get?a:{enumerable:!0,get:()=>r[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function Ce(e,t,n){return e.fields=t||[],e.fname=n,e}function xa(e){return e==null?null:e.fname}function su(e){return e==null?null:e.fields}function g_(e){return e.length===1?m_(e[0]):b_(e)}const m_=e=>function(t){return t[e]},b_=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 y_(e){const t=[],n=e.length;let r=null,i=0,a="",o,s,u;e=e+"";function l(){t.push(a+e.substring(o,s)),a="",o=s+1}for(o=s=0;s<n;++s)if(u=e[s],u==="\\")a+=e.substring(o,s),a+=e.substring(++s,++s),o=s;else if(u===r)l(),r=null,i=-1;else{if(r)continue;o===i&&u==='"'||o===i&&u==="'"?(o=s+1,r=u):u==="."&&!i?s>o?l():o=s+1:u==="["?(s>o&&l(),i=o=s+1):u==="]"&&(i||Qe("Access path missing open bracket: "+e),i>0&&l(),i=0,o=s+1)}return i&&Qe("Access path missing closing bracket: "+e),r&&Qe("Access path missing closing quote: "+e),s>o&&(s++,l()),t}function lu(e,t,n){const r=y_(e);return e=r.length===1?r[0]:e,Ce((n&&n.get||g_)(r),[e],t||e)}lu("id");const uu=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 Uo(e){return e==null||e===""?null:+e}const Yg=e=>t=>e*Math.exp(t),Qg=e=>t=>Math.log(e*t),w_=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),v_=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,fu=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function Wc(e,t,n,r){const i=n(e[0]),a=n(gn(e)),o=(a-i)*t;return[r(i-o),r(a-o)]}function x_(e,t){return Wc(e,t,Uo,uu)}function A_(e,t){var n=Math.sign(e[0]);return Wc(e,t,Qg(n),Yg(n))}function E_(e,t,n){return Wc(e,t,fu(n),fu(1/n))}function cu(e,t,n,r,i){const a=r(e[0]),o=r(gn(e)),s=t!=null?r(t):(a+o)/2;return[i(s+(a-s)*n),i(s+(o-s)*n)]}function $g(e,t,n){return cu(e,t,n,Uo,uu)}function Xg(e,t,n){const r=Math.sign(e[0]);return cu(e,t,n,Qg(r),Yg(r))}function Yc(e,t,n,r){return cu(e,t,n,fu(r),fu(1/r))}function __(e,t,n,r){return cu(e,t,n,w_(r),v_(r))}function Qc(e){return e!=null?Ft(e)?e:[e]:[]}function S_(e,t,n){let r=e[0],i=e[1],a;return i<r&&(a=i,i=r,r=a),a=i-r,a>=n-t?[t,n]:[r=Math.min(Math.max(r,t),n-a),r+a]}function Mt(e){return typeof e=="function"}const C_="descending";function Kg(e,t,n){n=n||{},t=Qc(t)||[];const r=[],i=[],a={},o=n.comparator||T_;return Qc(e).forEach((s,u)=>{s!=null&&(r.push(t[u]===C_?-1:1),i.push(s=Mt(s)?s:lu(s,null,n)),(su(s)||[]).forEach(l=>a[l]=1))}),i.length===0?null:Ce(o(i,r),Object.keys(a))}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),T_=(e,t)=>e.length===1?k_(e[0],t[0]):I_(e,t,e.length),k_=(e,t)=>function(n,r){return Jg(e(n),e(r))*t},I_=(e,t,n)=>(t.push(0),function(r,i){let a,o=0,s=-1;for(;o===0&&++s<n;)a=e[s],o=Jg(a(r),a(i));return o*t[s]});function B_(e){return Mt(e)?e:()=>e}function $c(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 D_=Object.prototype.hasOwnProperty;function mi(e,t){return D_.call(e,t)}function Go(e){return typeof e=="boolean"}function F_(e){return Object.prototype.toString.call(e)==="[object Date]"}function R_(e){return e&&Mt(e[Symbol.iterator])}function Ct(e){return typeof e=="number"}function M_(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function Pe(e){return typeof e=="string"}function em(e,t){const n=e[0],r=gn(e),i=+t;return i?i===1?r:n+i*(r-n):n}function hu(e){return e&&gn(e)-e[0]||0}function du(e){return Ft(e)?"["+e.map(du)+"]":Rt(e)||Pe(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function P_(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const L_=e=>Ct(e)||F_(e)?e:Date.parse(e);function N_(e,t){return t=t||L_,e==null||e===""?null:t(e)}function O_(e){return e==null||e===""?null:e+""}function pu(e){const t={},n=e.length;for(let r=0;r<n;++r)t[e[r]]=!0;return t}var tm={},Xc={},Kc=34,Ho=10,Jc=13;function nm(e){return new Function("d","return {"+e.map(function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'}).join(",")+"}")}function z_(e,t){var n=nm(e);return function(r,i){return t(n(r),i,e)}}function rm(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 U_(e){return e<0?"-"+Pt(-e,6):e>9999?"+"+Pt(e,6):Pt(e,4)}function G_(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),r=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":U_(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 im(e){var t=new RegExp('["'+e+`
2
- \r]`),n=e.charCodeAt(0);function r(c,h){var d,p,m=i(c,function(y,w){if(d)return d(y,w-1);p=y,d=h?z_(y,h):nm(y)});return m.columns=p||[],m}function i(c,h){var d=[],p=c.length,m=0,y=0,w,_=p<=0,C=!1;c.charCodeAt(p-1)===Ho&&--p,c.charCodeAt(p-1)===Jc&&--p;function E(){if(_)return Xc;if(C)return C=!1,tm;var B,I=m,R;if(c.charCodeAt(I)===Kc){for(;m++<p&&c.charCodeAt(m)!==Kc||c.charCodeAt(++m)===Kc;);return(B=m)>=p?_=!0:(R=c.charCodeAt(m++))===Ho?C=!0:R===Jc&&(C=!0,c.charCodeAt(m)===Ho&&++m),c.slice(I+1,B-1).replace(/""/g,'"')}for(;m<p;){if((R=c.charCodeAt(B=m++))===Ho)C=!0;else if(R===Jc)C=!0,c.charCodeAt(m)===Ho&&++m;else if(R!==n)continue;return c.slice(I,B)}return _=!0,c.slice(I,p)}for(;(w=E())!==Xc;){for(var k=[];w!==tm&&w!==Xc;)k.push(w),w=E();h&&(k=h(k,y++))==null||d.push(k)}return d}function a(c,h){return c.map(function(d){return h.map(function(p){return f(d[p])}).join(e)})}function o(c,h){return h==null&&(h=rm(c)),[h.map(f).join(e)].concat(a(c,h)).join(`
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?z_(y,h):nm(y)});return b.columns=p||[],b}function i(c,h){var d=[],p=c.length,b=0,y=0,w,E=p<=0,C=!1;c.charCodeAt(p-1)===Ho&&--p,c.charCodeAt(p-1)===Jc&&--p;function _(){if(E)return Xc;if(C)return C=!1,tm;var I,B=b,R;if(c.charCodeAt(B)===Kc){for(;b++<p&&c.charCodeAt(b)!==Kc||c.charCodeAt(++b)===Kc;);return(I=b)>=p?E=!0:(R=c.charCodeAt(b++))===Ho?C=!0:R===Jc&&(C=!0,c.charCodeAt(b)===Ho&&++b),c.slice(B+1,I-1).replace(/""/g,'"')}for(;b<p;){if((R=c.charCodeAt(I=b++))===Ho)C=!0;else if(R===Jc)C=!0,c.charCodeAt(b)===Ho&&++b;else if(R!==n)continue;return c.slice(B,I)}return E=!0,c.slice(B,p)}for(;(w=_())!==Xc;){for(var k=[];w!==tm&&w!==Xc;)k.push(w),w=_();h&&(k=h(k,y++))==null||d.push(k)}return d}function a(c,h){return c.map(function(d){return h.map(function(p){return f(d[p])}).join(e)})}function o(c,h){return h==null&&(h=rm(c)),[h.map(f).join(e)].concat(a(c,h)).join(`
3
3
  `)}function s(c,h){return h==null&&(h=rm(c)),a(c,h).join(`
4
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?G_(c):t.test(c+="")?'"'+c.replace(/"/g,'""')+'"':c}return{parse:r,parseRows:i,format:o,formatBody:s,formatRows:u,formatRow:l,formatValue:f}}var H_=im(" "),V_=H_.parseRows;function j_(e){return e}function q_(e){if(e==null)return j_;var t,n,r=e.scale[0],i=e.scale[1],a=e.translate[0],o=e.translate[1];return function(s,u){u||(t=n=0);var l=2,f=s.length,c=new Array(f);for(c[0]=(t+=s[0])*r+a,c[1]=(n+=s[1])*i+o;l<f;)c[l]=s[l],++l;return c}}function Z_(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}function W_(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return am(e,n)})}:am(e,t)}function am(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,a=om(e,t);return n==null&&r==null?{type:"Feature",properties:i,geometry:a}:r==null?{type:"Feature",id:n,properties:i,geometry:a}:{type:"Feature",id:n,bbox:r,properties:i,geometry:a}}function om(e,t){var n=q_(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&&Z_(c,p)}function a(f){return n(f)}function o(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=o(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=a(f.coordinates);break;case"MultiPoint":h=f.coordinates.map(a);break;case"LineString":h=o(f.arcs);break;case"MultiLineString":h=f.arcs.map(o);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 Y_(e,t){var n={},r={},i={},a=[],o=-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[++o],t[o]=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 m=p===d?d:d.concat(p);r[m.start=d.start]=i[m.end=p.end]=m}else r[d.start]=i[d.end]=d;else if(d=r[h])if(delete r[d.start],d.unshift(l),d.start=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}),a.push(h)}}return u(i,r),u(r,i),t.forEach(function(l){n[l<0?~l:l]||a.push([l])}),a}function Q_(e){return om(e,$_.apply(this,arguments))}function $_(e,t,n){var r,i,a;if(arguments.length>1)r=X_(e,t,n);else for(i=0,r=new Array(a=e.arcs.length);i<a;++i)r[i]=i;return{type:"MultiLineString",arcs:Y_(e,r)}}function X_(e,t,n){var r=[],i=[],a;function o(c){var h=c<0?~c:c;(i[h]||(i[h]=[])).push({i:c,g:a})}function s(c){c.forEach(o)}function u(c){c.forEach(s)}function l(c){c.forEach(u)}function f(c){switch(a=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 Vo(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function K_(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function gu(e){let t,n,r;e.length!==2?(t=Vo,n=(s,u)=>Vo(e(s),u),r=(s,u)=>e(s)-u):(t=e===Vo||e===K_?e:J_,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 a(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){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:o,right:a}}function J_(){return 0}function sm(e){return e===null?NaN:+e}const lm=gu(Vo),Er=lm.right;lm.left,gu(sm).center;function e4(e,t){let n,r;if(t===void 0)for(const i of e)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let a of e)(a=t(a,++i,e))!=null&&(n===void 0?a>=a&&(n=r=a):(n>a&&(n=a),r<a&&(r=a)))}return[n,r]}class _r extends Map{constructor(t,n=r4){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(um(this,t))}has(t){return super.has(um(this,t))}set(t,n){return super.set(t4(this,t),n)}delete(t){return super.delete(n4(this,t))}}function um({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function t4({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function n4({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function r4(e){return e!==null&&typeof e=="object"?e.valueOf():e}function eh(e){return e}function mu(e,...t){return fm(e,eh,eh,t)}function i4(e,...t){return fm(e,Array.from,eh,t)}function fm(e,t,n,r){return function i(a,o){if(o>=r.length)return n(a);const s=new _r,u=r[o++];let l=-1;for(const f of a){const c=u(f,++l,a),h=s.get(c);h?h.push(f):s.set(c,[f])}for(const[f,c]of s)s.set(f,i(c,o));return t(s)}(e,0)}var th=Math.sqrt(50),nh=Math.sqrt(10),rh=Math.sqrt(2);function bu(e,t,n){var r,i=-1,a,o,s;if(t=+t,e=+e,n=+n,e===t&&n>0)return[e];if((r=t<e)&&(a=e,e=t,t=a),(s=cm(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,o=new Array(a=l-u+1);++i<a;)o[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,o=new Array(a=l-u+1);++i<a;)o[i]=(u+i)/s}return r&&o.reverse(),o}function cm(e,t,n){var r=(t-e)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,i);return i>=0?(a>=th?10:a>=nh?5:a>=rh?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=th?10:a>=nh?5:a>=rh?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)),a=r/i;return a>=th?i*=10:a>=nh?i*=5:a>=rh&&(i*=2),t<e?-i:i}function hm(e,t,n=sm){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,a=Math.floor(i),o=+n(e[a],a,e),s=+n(e[a+1],a+1,e);return o+(s-o)*(i-a)}}function jo(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=new Array(i);++r<i;)a[r]=e+r*n;return a}function yu(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 a4(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function wu(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 Aa(e){return e=wu(Math.abs(e)),e?e[1]:NaN}function o4(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],u=0;i>0&&s>0&&(u+s+1>r&&(s=Math.max(1,r-u)),a.push(n.substring(i-=s,i+s)),!((u+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function s4(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var l4=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Sr(e){if(!(t=l4.exec(e)))throw new Error("invalid format: "+e);var t;return new ih({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=ih.prototype;function ih(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+""}ih.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 u4(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 dm;function f4(e,t){var n=wu(e,t);if(!n)return e+"";var r=n[0],i=n[1],a=i-(dm=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+new Array(a-o+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+wu(e,Math.max(0,t+a-1))[0]}function pm(e,t){var n=wu(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 gm={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:a4,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)=>pm(e*100,t),r:pm,s:f4,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function mm(e){return e}var bm=Array.prototype.map,ym=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function c4(e){var t=e.grouping===void 0||e.thousands===void 0?mm:o4(bm.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?mm:s4(bm.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",u=e.nan===void 0?"NaN":e.nan+"";function l(c){c=Sr(c);var h=c.fill,d=c.align,p=c.sign,m=c.symbol,y=c.zero,w=c.width,_=c.comma,C=c.precision,E=c.trim,k=c.type;k==="n"?(_=!0,k="g"):gm[k]||(C===void 0&&(C=12),E=!0,k="g"),(y||h==="0"&&d==="=")&&(y=!0,h="0",d="=");var B=m==="$"?n:m==="#"&&/[boxX]/.test(k)?"0"+k.toLowerCase():"",I=m==="$"?r:/[%p]/.test(k)?o:"",R=gm[k],L=/[defgprs%]/.test(k);C=C===void 0?6:/[gprs]/.test(k)?Math.max(1,Math.min(21,C)):Math.max(0,Math.min(20,C));function j(M){var ie=B,se=I,ge,Ie,$e;if(k==="c")se=R(M)+se,M="";else{M=+M;var De=M<0||1/M<0;if(M=isNaN(M)?u:R(Math.abs(M),C),E&&(M=u4(M)),De&&+M==0&&p!=="+"&&(De=!1),ie=(De?p==="("?p:s:p==="-"||p==="("?"":p)+ie,se=(k==="s"?ym[8+dm/3]:"")+se+(De&&p==="("?")":""),L){for(ge=-1,Ie=M.length;++ge<Ie;)if($e=M.charCodeAt(ge),48>$e||$e>57){se=($e===46?i+M.slice(ge+1):M.slice(ge))+se,M=M.slice(0,ge);break}}}_&&!y&&(M=t(M,1/0));var Ke=ie.length+M.length+se.length,Ze=Ke<w?new Array(w-Ke+1).join(h):"";switch(_&&y&&(M=t(Ze+M,Ze.length?w-se.length:1/0),Ze=""),d){case"<":M=ie+M+se+Ze;break;case"=":M=ie+Ze+M+se;break;case"^":M=Ze.slice(0,Ke=Ze.length>>1)+ie+M+se+Ze.slice(Ke);break;default:M=Ze+ie+M+se;break}return a(M)}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(Aa(h)/3)))*3,m=Math.pow(10,-p),y=ym[8+p/3];return function(w){return d(m*w)+y}}return{format:l,formatPrefix:f}}var vu,gt,ah;h4({thousands:",",grouping:[3],currency:["$",""]});function h4(e){return vu=c4(e),gt=vu.format,ah=vu.formatPrefix,vu}function wm(e){return Math.max(0,-Aa(Math.abs(e)))}function vm(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Aa(t)/3)))*3-Aa(Math.abs(e)))}function xm(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Aa(t)-Aa(e))+1}var oh=new Date,sh=new Date;function st(e,t,n,r){function i(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=function(a){return e(a=new Date(+a)),a},i.ceil=function(a){return e(a=new Date(a-1)),t(a,1),e(a),a},i.round=function(a){var o=i(a),s=i.ceil(a);return a-o<s-a?o:s},i.offset=function(a,o){return t(a=new Date(+a),o==null?1:Math.floor(o)),a},i.range=function(a,o,s){var u=[],l;if(a=i.ceil(a),s=s==null?1:Math.floor(s),!(a<o)||!(s>0))return u;do u.push(l=new Date(+a)),t(a,s),e(a);while(l<a&&a<o);return u},i.filter=function(a){return st(function(o){if(o>=o)for(;e(o),!a(o);)o.setTime(o-1)},function(o,s){if(o>=o)if(s<0)for(;++s<=0;)for(;t(o,-1),!a(o););else for(;--s>=0;)for(;t(o,1),!a(o););})},n&&(i.count=function(a,o){return oh.setTime(+a),sh.setTime(+o),e(oh),e(sh),Math.floor(n(oh,sh))},i.every=function(a){return a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(r?function(o){return r(o)%a===0}:function(o){return i.count(0,o)%a===0}):i}),i}var xu=st(function(){},function(e,t){e.setTime(+e+t)},function(e,t){return t-e});xu.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}):xu};const lh=xu;xu.range;const er=1e3,Jt=er*60,tr=Jt*60,yi=tr*24,uh=yi*7,Am=yi*30,fh=yi*365;var Em=st(function(e){e.setTime(e-e.getMilliseconds())},function(e,t){e.setTime(+e+t*er)},function(e,t){return(t-e)/er},function(e){return e.getUTCSeconds()});const Cr=Em;Em.range;var _m=st(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*er)},function(e,t){e.setTime(+e+t*Jt)},function(e,t){return(t-e)/Jt},function(e){return e.getMinutes()});const ch=_m;_m.range;var Sm=st(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*er-e.getMinutes()*Jt)},function(e,t){e.setTime(+e+t*tr)},function(e,t){return(t-e)/tr},function(e){return e.getHours()});const hh=Sm;Sm.range;var Cm=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=Cm;Cm.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)/uh})}var qo=vi(0),Au=vi(1),d4=vi(2),p4=vi(3),Ea=vi(4),g4=vi(5),m4=vi(6);qo.range,Au.range,d4.range,p4.range,Ea.range,g4.range,m4.range;var Zo=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()});Zo.range;var dh=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()});dh.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 Tr=dh;dh.range;var Tm=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 ph=Tm;Tm.range;var km=st(function(e){e.setUTCMinutes(0,0,0)},function(e,t){e.setTime(+e+t*tr)},function(e,t){return(t-e)/tr},function(e){return e.getUTCHours()});const gh=km;km.range;var Im=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=Im;Im.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)/uh})}var Wo=Ai(0),Eu=Ai(1),b4=Ai(2),y4=Ai(3),_a=Ai(4),w4=Ai(5),v4=Ai(6);Wo.range,Eu.range,b4.range,y4.range,_a.range,w4.range,v4.range;var Yo=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()});Yo.range;var mh=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()});mh.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 kr=mh;mh.range;function Bm(e,t,n,r,i,a){const o=[[Cr,1,er],[Cr,5,5*er],[Cr,15,15*er],[Cr,30,30*er],[a,1,Jt],[a,5,5*Jt],[a,15,15*Jt],[a,30,30*Jt],[i,1,tr],[i,3,3*tr],[i,6,6*tr],[i,12,12*tr],[r,1,yi],[r,2,2*yi],[n,1,uh],[t,1,Am],[t,3,3*Am],[e,1,fh]];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=gu(([,,y])=>y).right(o,h);if(d===o.length)return e.every(bi(l/fh,f/fh,c));if(d===0)return lh.every(Math.max(bi(l,f,c),1));const[p,m]=o[h/o[d-1][2]<o[d][2]/h?d-1:d];return p.every(m)}return[s,u]}const[x4,A4]=Bm(kr,Yo,Wo,xi,gh,ph),[E4,_4]=Bm(Tr,Zo,qo,wi,hh,ch),Qo="year",$o="quarter",Xo="month",Ko="week",Jo="date",_u="day",bh="dayofyear",es="hours",ts="minutes",ns="seconds",Su="milliseconds";[Qo,$o,Xo,Ko,Jo,_u,bh,es,ts,ns,Su].reduce((e,t,n)=>(e[t]=1+n,e),{});const S4={[Qo]:Tr,[$o]:Zo.every(3),[Xo]:Zo,[Ko]:qo,[Jo]:wi,[_u]:wi,[bh]:wi,[es]:hh,[ts]:ch,[ns]:Cr,[Su]:lh},C4={[Qo]:kr,[$o]:Yo.every(3),[Xo]:Yo,[Ko]:Wo,[Jo]:xi,[_u]:xi,[bh]:xi,[es]:gh,[ts]:ph,[ns]:Cr,[Su]:lh};function T4(e){return S4[e]}function k4(e){return C4[e]}function yh(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 wh(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 Dm(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,u=e.shortMonths,l=is(i),f=as(i),c=is(a),h=as(a),d=is(o),p=as(o),m=is(s),y=as(s),w=is(u),_=as(u),C={a:De,A:Ke,b:Ze,B:Je,c:null,d:Nm,e:Nm,f:X4,g:sS,G:uS,H:Y4,I:Q4,j:$4,L:Om,m:K4,M:J4,p:Ee,q:_e,Q:jm,s:qm,S:eS,u:tS,U:nS,V:rS,w:iS,W:aS,x:null,X:null,y:oS,Y:lS,Z:fS,"%":Vm},E={a:pt,A:qt,b:Oe,B:N,c:null,d:Um,e:Um,f:pS,g:_S,G:CS,H:cS,I:hS,j:dS,L:Gm,m:gS,M:mS,p:P,q,Q:jm,s:qm,S:bS,u:yS,U:wS,V:vS,w:xS,W:AS,x:null,X:null,y:ES,Y:SS,Z:TS,"%":Vm},k={a:j,A:M,b:ie,B:se,c:ge,d:Pm,e:Pm,f:j4,g:Mm,G:Rm,H:Lm,I:Lm,j:U4,L:V4,m:z4,M:G4,p:L,q:O4,Q:Z4,s:W4,S:H4,u:R4,U:M4,V:P4,w:F4,W:L4,x:Ie,X:$e,y:Mm,Y:Rm,Z:N4,"%":q4};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=Fm[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=wh(rs(x.y,0,1)),le=Z.getUTCDay(),Z=le>4||le===0?Eu.ceil(Z):Eu(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=yh(rs(x.y,0,1)),le=Z.getDay(),Z=le>4||le===0?Au.ceil(Z):Au(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?wh(rs(x.y,0,1)).getUTCDay():yh(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,wh(x)):yh(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=k[J in Fm?Y.charAt(G++):J],!ue||(x=ue(H,S,x))<0)return-1}else if(J!=S.charCodeAt(x++))return-1}return x}function L(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 M(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=m.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 $e(H,Y,S){return R(H,r,Y,S)}function De(H){return o[H.getDay()]}function Ke(H){return a[H.getDay()]}function Ze(H){return u[H.getMonth()]}function Je(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 o[H.getUTCDay()]}function qt(H){return a[H.getUTCDay()]}function Oe(H){return u[H.getUTCMonth()]}function N(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 Fm={"-":"",_:" ",0:"0"},lt=/^\s*\d+/,I4=/^%/,B4=/[\\^$*+?|[\]().{}]/g;function be(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",a=i.length;return r+(a<n?new Array(n-a+1).join(t)+i:i)}function D4(e){return e.replace(B4,"\\$&")}function is(e){return new RegExp("^(?:"+e.map(D4).join("|")+")","i")}function as(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function F4(e,t,n){var r=lt.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function R4(e,t,n){var r=lt.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function M4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function P4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function L4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Rm(e,t,n){var r=lt.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function Mm(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 N4(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 O4(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 z4(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 Pm(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function U4(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 Lm(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function G4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function H4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function V4(e,t,n){var r=lt.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function j4(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 q4(e,t,n){var r=I4.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Z4(e,t,n){var r=lt.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function W4(e,t,n){var r=lt.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Nm(e,t){return be(e.getDate(),t,2)}function Y4(e,t){return be(e.getHours(),t,2)}function Q4(e,t){return be(e.getHours()%12||12,t,2)}function $4(e,t){return be(1+wi.count(Tr(e),e),t,3)}function Om(e,t){return be(e.getMilliseconds(),t,3)}function X4(e,t){return Om(e,t)+"000"}function K4(e,t){return be(e.getMonth()+1,t,2)}function J4(e,t){return be(e.getMinutes(),t,2)}function eS(e,t){return be(e.getSeconds(),t,2)}function tS(e){var t=e.getDay();return t===0?7:t}function nS(e,t){return be(qo.count(Tr(e)-1,e),t,2)}function zm(e){var t=e.getDay();return t>=4||t===0?Ea(e):Ea.ceil(e)}function rS(e,t){return e=zm(e),be(Ea.count(Tr(e),e)+(Tr(e).getDay()===4),t,2)}function iS(e){return e.getDay()}function aS(e,t){return be(Au.count(Tr(e)-1,e),t,2)}function oS(e,t){return be(e.getFullYear()%100,t,2)}function sS(e,t){return e=zm(e),be(e.getFullYear()%100,t,2)}function lS(e,t){return be(e.getFullYear()%1e4,t,4)}function uS(e,t){var n=e.getDay();return e=n>=4||n===0?Ea(e):Ea.ceil(e),be(e.getFullYear()%1e4,t,4)}function fS(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+be(t/60|0,"0",2)+be(t%60,"0",2)}function Um(e,t){return be(e.getUTCDate(),t,2)}function cS(e,t){return be(e.getUTCHours(),t,2)}function hS(e,t){return be(e.getUTCHours()%12||12,t,2)}function dS(e,t){return be(1+xi.count(kr(e),e),t,3)}function Gm(e,t){return be(e.getUTCMilliseconds(),t,3)}function pS(e,t){return Gm(e,t)+"000"}function gS(e,t){return be(e.getUTCMonth()+1,t,2)}function mS(e,t){return be(e.getUTCMinutes(),t,2)}function bS(e,t){return be(e.getUTCSeconds(),t,2)}function yS(e){var t=e.getUTCDay();return t===0?7:t}function wS(e,t){return be(Wo.count(kr(e)-1,e),t,2)}function Hm(e){var t=e.getUTCDay();return t>=4||t===0?_a(e):_a.ceil(e)}function vS(e,t){return e=Hm(e),be(_a.count(kr(e),e)+(kr(e).getUTCDay()===4),t,2)}function xS(e){return e.getUTCDay()}function AS(e,t){return be(Eu.count(kr(e)-1,e),t,2)}function ES(e,t){return be(e.getUTCFullYear()%100,t,2)}function _S(e,t){return e=Hm(e),be(e.getUTCFullYear()%100,t,2)}function SS(e,t){return be(e.getUTCFullYear()%1e4,t,4)}function CS(e,t){var n=e.getUTCDay();return e=n>=4||n===0?_a(e):_a.ceil(e),be(e.getUTCFullYear()%1e4,t,4)}function TS(){return"+0000"}function Vm(){return"%"}function jm(e){return+e}function qm(e){return Math.floor(+e/1e3)}var Sa,vh,Zm,xh,Wm;kS({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 kS(e){return Sa=Dm(e),vh=Sa.format,Zm=Sa.parse,xh=Sa.utcFormat,Wm=Sa.utcParse,Sa}function os(e){const t={};return n=>t[n]||(t[n]=e(n))}function IS(e,t){return n=>{const r=e(n),i=r.indexOf(t);if(i<0)return r;let a=BS(r,i);const o=a<r.length?r.slice(a):"";for(;--a>i;)if(r[a]!=="0"){++a;break}return r.slice(0,a)+o}}function BS(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 DS(e){const t=os(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 IS(t(i),t(".1f")(1)[1])}else return t(i)},formatSpan(r,i,a,o){o=Sr(o??",f");const s=bi(r,i,a),u=Math.max(Math.abs(r),Math.abs(i));let l;if(o.precision==null)switch(o.type){case"s":return isNaN(l=vm(s,u))||(o.precision=l),n(o,u);case"":case"e":case"g":case"p":case"r":{isNaN(l=xm(s,u))||(o.precision=l-(o.type==="e"));break}case"f":case"%":{isNaN(l=wm(s))||(o.precision=l-(o.type==="%")*2);break}}return t(o)}}}FS();function FS(){return DS({format:gt,formatPrefix:ah})}function Ym(e,t,n){n=n||{},Rt(n)||Qe("Invalid time multi-format specifier: ".concat(n));const r=t(ns),i=t(ts),a=t(es),o=t(Jo),s=t(Ko),u=t(Xo),l=t($o),f=t(Qo),c=e(n[Su]||".%L"),h=e(n[ns]||":%S"),d=e(n[ts]||"%I:%M"),p=e(n[es]||"%I %p"),m=e(n[Jo]||n[_u]||"%a %d"),y=e(n[Ko]||"%b %d"),w=e(n[Xo]||"%B"),_=e(n[$o]||"%B"),C=e(n[Qo]||"%Y");return E=>(r(E)<E?c:i(E)<E?h:a(E)<E?d:o(E)<E?p:u(E)<E?s(E)<E?m:y:f(E)<E?l(E)<E?w:_:C)(E)}function Qm(e){const t=os(e.format),n=os(e.utcFormat);return{timeFormat:r=>Pe(r)?t(r):Ym(t,T4,r),utcFormat:r=>Pe(r)?n(r):Ym(n,k4,r),timeParse:os(e.parse),utcParse:os(e.utcParse)}}let Ah;RS();function RS(){return Ah=Qm({format:vh,parse:Zm,utcFormat:xh,utcParse:Wm})}function MS(e){return Qm(Dm(e))}function PS(e){return arguments.length?Ah=MS(e):Ah}const LS=/^(data:|([A-Za-z]+:)?\/\/)/,NS=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,OS=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,$m="file://";function zS(e,t){return n=>({options:n||{},sanitize:GS,load:US,fileAccess:!!t,file:HS(t),http:jS(e)})}async function US(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t)}async function GS(e,t){t=$c({},this.options,t);const n=this.fileAccess,r={href:null};let i,a,o;const s=NS.test(e.replace(OS,""));(e==null||typeof e!="string"||!s)&&Qe("Sanitize failure, invalid URI: "+du(e));const u=LS.test(e);return(o=t.baseURL)&&!u&&(!e.startsWith("/")&&!o.endsWith("/")&&(e="/"+e),e=o+e),a=(i=e.startsWith($m))||t.mode==="file"||t.mode!=="http"&&!u&&n,i?e=e.slice($m.length):e.startsWith("//")&&(t.defaultProtocol==="file"?(e=e.slice(2),a=!0):e=(t.defaultProtocol||"http")+":"+e),Object.defineProperty(r,"localFile",{value:!!a}),r.href=e,t.target&&(r.target=t.target+""),t.rel&&(r.rel=t.rel+""),t.context==="image"&&t.crossOrigin&&(r.crossOrigin=t.crossOrigin+""),r}function HS(e){return e?t=>new Promise((n,r)=>{e.readFile(t,(i,a)=>{i?r(i):n(a)})}):VS}async function VS(){Qe("No file system access.")}function jS(e){return e?async function(t,n){const r=$c({},this.options.http,n),i=n&&n.response,a=await e(t,r);return a.ok?Mt(a[i])?a[i]():a.text():Qe(a.status+""+a.statusText)}:qS}async function qS(){Qe("No HTTP fetch method available.")}const ZS=e=>e!=null&&e===e,WS=e=>e==="true"||e==="false"||e===!0||e===!1,YS=e=>!Number.isNaN(Date.parse(e)),Xm=e=>!Number.isNaN(+e)&&!(e instanceof Date),QS=e=>Xm(e)&&Number.isInteger(+e),Km={boolean:P_,integer:Uo,number:Uo,date:N_,string:O_,unknown:uu},Cu=[WS,QS,Xm,YS],$S=["boolean","integer","number","date"];function XS(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=Cu.length,i=Cu.map((a,o)=>o+1);for(let a=0,o=0,s,u;a<n;++a)for(u=t?e[a][t]:e[a],s=0;s<r;++s)if(i[s]&&ZS(u)&&!Cu[s](u)&&(i[s]=0,++o,o===Cu.length))return"string";return $S[i.reduce((a,o)=>a===0?o:a,0)-1]}function KS(e,t){return t.reduce((n,r)=>(n[r]=XS(e,r),n),{})}function Jm(e){const t=function(n,r){const i={delimiter:e};return Eh(n,r?$c(r,i):i)};return t.responseType="text",t}function Eh(e,t){return t.header&&(e=t.header.map(du).join(t.delimiter)+`
6
- `+e),im(t.delimiter).parse(e+"")}Eh.responseType="text";function JS(e){return typeof Buffer=="function"&&Mt(Buffer.isBuffer)?Buffer.isBuffer(e):!1}function _h(e,t){const n=t&&t.property?lu(t.property):uu;return Rt(e)&&!JS(e)?eC(n(e),t):n(JSON.parse(e))}_h.responseType="json";function eC(e,t){return!Ft(e)&&R_(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}const tC={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function e1(e,t){let n,r,i,a;return e=_h(e,t),t&&t.feature?(n=W_,i=t.feature):t&&t.mesh?(n=Q_,i=t.mesh,a=tC[t.filter]):Qe("Missing TopoJSON feature or mesh parameter."),r=(r=e.objects[i])?n(e,r,a):Qe("Invalid TopoJSON object: "+i),r&&r.features||[r]}e1.responseType="json";const Sh={dsv:Eh,csv:Jm(","),tsv:Jm(" "),json:_h,topojson:e1};function t1(e,t){return arguments.length>1?(Sh[e]=t,this):mi(Sh,e)?Sh[e]:null}function n1(e,t,n,r){t=t||{};const i=t1(t.type||"json");return i||Qe("Unknown data format type: "+t.type),e=i(e,t),t.parse&&nC(e,t.parse,n,r),mi(e,"columns")&&delete e.columns,e}function nC(e,t,n,r){if(!e.length)return;const i=PS();n=n||i.timeParse,r=r||i.utcParse;let a=e.columns||Object.keys(e[0]),o,s,u,l,f,c;t==="auto"&&(t=KS(e,a)),a=Object.keys(t);const h=a.map(d=>{const p=t[d];let m,y;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return m=p.split(/:(.+)?/,2),y=m[1],(y[0]==="'"&&y[y.length-1]==="'"||y[0]==='"'&&y[y.length-1]==='"')&&(y=y.slice(1,-1)),(m[0]==="utc"?r:n)(y);if(!Km[p])throw Error("Illegal format pattern: "+d+":"+p);return Km[p]});for(u=0,f=e.length,c=a.length;u<f;++u)for(o=e[u],l=0;l<c;++l)s=a[l],o[s]=h[l](o[s])}const Tu=zS(typeof fetch<"u"&&fetch,null);/**
5
+ `)}function l(c){return c.map(f).join(e)}function f(c){return c==null?"":c instanceof Date?G_(c):t.test(c+="")?'"'+c.replace(/"/g,'""')+'"':c}return{parse:r,parseRows:i,format:o,formatBody:s,formatRows:u,formatRow:l,formatValue:f}}var H_=im(" "),V_=H_.parseRows;function j_(e){return e}function q_(e){if(e==null)return j_;var t,n,r=e.scale[0],i=e.scale[1],a=e.translate[0],o=e.translate[1];return function(s,u){u||(t=n=0);var l=2,f=s.length,c=new Array(f);for(c[0]=(t+=s[0])*r+a,c[1]=(n+=s[1])*i+o;l<f;)c[l]=s[l],++l;return c}}function Z_(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}function W_(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return am(e,n)})}:am(e,t)}function am(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,a=om(e,t);return n==null&&r==null?{type:"Feature",properties:i,geometry:a}:r==null?{type:"Feature",id:n,properties:i,geometry:a}:{type:"Feature",id:n,bbox:r,properties:i,geometry:a}}function om(e,t){var n=q_(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&&Z_(c,p)}function a(f){return n(f)}function o(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=o(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=a(f.coordinates);break;case"MultiPoint":h=f.coordinates.map(a);break;case"LineString":h=o(f.arcs);break;case"MultiLineString":h=f.arcs.map(o);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 Y_(e,t){var n={},r={},i={},a=[],o=-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[++o],t[o]=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}),a.push(h)}}return u(i,r),u(r,i),t.forEach(function(l){n[l<0?~l:l]||a.push([l])}),a}function Q_(e){return om(e,$_.apply(this,arguments))}function $_(e,t,n){var r,i,a;if(arguments.length>1)r=X_(e,t,n);else for(i=0,r=new Array(a=e.arcs.length);i<a;++i)r[i]=i;return{type:"MultiLineString",arcs:Y_(e,r)}}function X_(e,t,n){var r=[],i=[],a;function o(c){var h=c<0?~c:c;(i[h]||(i[h]=[])).push({i:c,g:a})}function s(c){c.forEach(o)}function u(c){c.forEach(s)}function l(c){c.forEach(u)}function f(c){switch(a=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 Vo(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function K_(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function gu(e){let t,n,r;e.length!==2?(t=Vo,n=(s,u)=>Vo(e(s),u),r=(s,u)=>e(s)-u):(t=e===Vo||e===K_?e:J_,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 a(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){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:o,right:a}}function J_(){return 0}function sm(e){return e===null?NaN:+e}const lm=gu(Vo),Er=lm.right;lm.left,gu(sm).center;function e4(e,t){let n,r;if(t===void 0)for(const i of e)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let a of e)(a=t(a,++i,e))!=null&&(n===void 0?a>=a&&(n=r=a):(n>a&&(n=a),r<a&&(r=a)))}return[n,r]}class _r extends Map{constructor(t,n=r4){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(um(this,t))}has(t){return super.has(um(this,t))}set(t,n){return super.set(t4(this,t),n)}delete(t){return super.delete(n4(this,t))}}function um({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function t4({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function n4({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function r4(e){return e!==null&&typeof e=="object"?e.valueOf():e}function eh(e){return e}function mu(e,...t){return fm(e,eh,eh,t)}function i4(e,...t){return fm(e,Array.from,eh,t)}function fm(e,t,n,r){return function i(a,o){if(o>=r.length)return n(a);const s=new _r,u=r[o++];let l=-1;for(const f of a){const c=u(f,++l,a),h=s.get(c);h?h.push(f):s.set(c,[f])}for(const[f,c]of s)s.set(f,i(c,o));return t(s)}(e,0)}var th=Math.sqrt(50),nh=Math.sqrt(10),rh=Math.sqrt(2);function bu(e,t,n){var r,i=-1,a,o,s;if(t=+t,e=+e,n=+n,e===t&&n>0)return[e];if((r=t<e)&&(a=e,e=t,t=a),(s=cm(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,o=new Array(a=l-u+1);++i<a;)o[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,o=new Array(a=l-u+1);++i<a;)o[i]=(u+i)/s}return r&&o.reverse(),o}function cm(e,t,n){var r=(t-e)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,i);return i>=0?(a>=th?10:a>=nh?5:a>=rh?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=th?10:a>=nh?5:a>=rh?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)),a=r/i;return a>=th?i*=10:a>=nh?i*=5:a>=rh&&(i*=2),t<e?-i:i}function hm(e,t,n=sm){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,a=Math.floor(i),o=+n(e[a],a,e),s=+n(e[a+1],a+1,e);return o+(s-o)*(i-a)}}function jo(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=new Array(i);++r<i;)a[r]=e+r*n;return a}function yu(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 a4(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function wu(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 Aa(e){return e=wu(Math.abs(e)),e?e[1]:NaN}function o4(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],u=0;i>0&&s>0&&(u+s+1>r&&(s=Math.max(1,r-u)),a.push(n.substring(i-=s,i+s)),!((u+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function s4(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var l4=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Sr(e){if(!(t=l4.exec(e)))throw new Error("invalid format: "+e);var t;return new ih({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=ih.prototype;function ih(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+""}ih.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 u4(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 dm;function f4(e,t){var n=wu(e,t);if(!n)return e+"";var r=n[0],i=n[1],a=i-(dm=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+new Array(a-o+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+wu(e,Math.max(0,t+a-1))[0]}function pm(e,t){var n=wu(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 gm={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:a4,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)=>pm(e*100,t),r:pm,s:f4,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function mm(e){return e}var bm=Array.prototype.map,ym=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function c4(e){var t=e.grouping===void 0||e.thousands===void 0?mm:o4(bm.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?mm:s4(bm.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",u=e.nan===void 0?"NaN":e.nan+"";function l(c){c=Sr(c);var h=c.fill,d=c.align,p=c.sign,b=c.symbol,y=c.zero,w=c.width,E=c.comma,C=c.precision,_=c.trim,k=c.type;k==="n"?(E=!0,k="g"):gm[k]||(C===void 0&&(C=12),_=!0,k="g"),(y||h==="0"&&d==="=")&&(y=!0,h="0",d="=");var I=b==="$"?n:b==="#"&&/[boxX]/.test(k)?"0"+k.toLowerCase():"",B=b==="$"?r:/[%p]/.test(k)?o:"",R=gm[k],L=/[defgprs%]/.test(k);C=C===void 0?6:/[gprs]/.test(k)?Math.max(1,Math.min(21,C)):Math.max(0,Math.min(20,C));function j(M){var ie=I,se=B,ge,Ie,$e;if(k==="c")se=R(M)+se,M="";else{M=+M;var De=M<0||1/M<0;if(M=isNaN(M)?u:R(Math.abs(M),C),_&&(M=u4(M)),De&&+M==0&&p!=="+"&&(De=!1),ie=(De?p==="("?p:s:p==="-"||p==="("?"":p)+ie,se=(k==="s"?ym[8+dm/3]:"")+se+(De&&p==="("?")":""),L){for(ge=-1,Ie=M.length;++ge<Ie;)if($e=M.charCodeAt(ge),48>$e||$e>57){se=($e===46?i+M.slice(ge+1):M.slice(ge))+se,M=M.slice(0,ge);break}}}E&&!y&&(M=t(M,1/0));var Ke=ie.length+M.length+se.length,Ze=Ke<w?new Array(w-Ke+1).join(h):"";switch(E&&y&&(M=t(Ze+M,Ze.length?w-se.length:1/0),Ze=""),d){case"<":M=ie+M+se+Ze;break;case"=":M=ie+Ze+M+se;break;case"^":M=Ze.slice(0,Ke=Ze.length>>1)+ie+M+se+Ze.slice(Ke);break;default:M=Ze+ie+M+se;break}return a(M)}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(Aa(h)/3)))*3,b=Math.pow(10,-p),y=ym[8+p/3];return function(w){return d(b*w)+y}}return{format:l,formatPrefix:f}}var vu,gt,ah;h4({thousands:",",grouping:[3],currency:["$",""]});function h4(e){return vu=c4(e),gt=vu.format,ah=vu.formatPrefix,vu}function wm(e){return Math.max(0,-Aa(Math.abs(e)))}function vm(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Aa(t)/3)))*3-Aa(Math.abs(e)))}function xm(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Aa(t)-Aa(e))+1}var oh=new Date,sh=new Date;function st(e,t,n,r){function i(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=function(a){return e(a=new Date(+a)),a},i.ceil=function(a){return e(a=new Date(a-1)),t(a,1),e(a),a},i.round=function(a){var o=i(a),s=i.ceil(a);return a-o<s-a?o:s},i.offset=function(a,o){return t(a=new Date(+a),o==null?1:Math.floor(o)),a},i.range=function(a,o,s){var u=[],l;if(a=i.ceil(a),s=s==null?1:Math.floor(s),!(a<o)||!(s>0))return u;do u.push(l=new Date(+a)),t(a,s),e(a);while(l<a&&a<o);return u},i.filter=function(a){return st(function(o){if(o>=o)for(;e(o),!a(o);)o.setTime(o-1)},function(o,s){if(o>=o)if(s<0)for(;++s<=0;)for(;t(o,-1),!a(o););else for(;--s>=0;)for(;t(o,1),!a(o););})},n&&(i.count=function(a,o){return oh.setTime(+a),sh.setTime(+o),e(oh),e(sh),Math.floor(n(oh,sh))},i.every=function(a){return a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(r?function(o){return r(o)%a===0}:function(o){return i.count(0,o)%a===0}):i}),i}var xu=st(function(){},function(e,t){e.setTime(+e+t)},function(e,t){return t-e});xu.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}):xu};const lh=xu;xu.range;const er=1e3,Jt=er*60,tr=Jt*60,yi=tr*24,uh=yi*7,Am=yi*30,fh=yi*365;var Em=st(function(e){e.setTime(e-e.getMilliseconds())},function(e,t){e.setTime(+e+t*er)},function(e,t){return(t-e)/er},function(e){return e.getUTCSeconds()});const Cr=Em;Em.range;var _m=st(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*er)},function(e,t){e.setTime(+e+t*Jt)},function(e,t){return(t-e)/Jt},function(e){return e.getMinutes()});const ch=_m;_m.range;var Sm=st(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*er-e.getMinutes()*Jt)},function(e,t){e.setTime(+e+t*tr)},function(e,t){return(t-e)/tr},function(e){return e.getHours()});const hh=Sm;Sm.range;var Cm=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=Cm;Cm.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)/uh})}var qo=vi(0),Au=vi(1),d4=vi(2),p4=vi(3),Ea=vi(4),g4=vi(5),m4=vi(6);qo.range,Au.range,d4.range,p4.range,Ea.range,g4.range,m4.range;var Zo=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()});Zo.range;var dh=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()});dh.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 Tr=dh;dh.range;var Tm=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 ph=Tm;Tm.range;var km=st(function(e){e.setUTCMinutes(0,0,0)},function(e,t){e.setTime(+e+t*tr)},function(e,t){return(t-e)/tr},function(e){return e.getUTCHours()});const gh=km;km.range;var Im=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=Im;Im.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)/uh})}var Wo=Ai(0),Eu=Ai(1),b4=Ai(2),y4=Ai(3),_a=Ai(4),w4=Ai(5),v4=Ai(6);Wo.range,Eu.range,b4.range,y4.range,_a.range,w4.range,v4.range;var Yo=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()});Yo.range;var mh=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()});mh.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 kr=mh;mh.range;function Bm(e,t,n,r,i,a){const o=[[Cr,1,er],[Cr,5,5*er],[Cr,15,15*er],[Cr,30,30*er],[a,1,Jt],[a,5,5*Jt],[a,15,15*Jt],[a,30,30*Jt],[i,1,tr],[i,3,3*tr],[i,6,6*tr],[i,12,12*tr],[r,1,yi],[r,2,2*yi],[n,1,uh],[t,1,Am],[t,3,3*Am],[e,1,fh]];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=gu(([,,y])=>y).right(o,h);if(d===o.length)return e.every(bi(l/fh,f/fh,c));if(d===0)return lh.every(Math.max(bi(l,f,c),1));const[p,b]=o[h/o[d-1][2]<o[d][2]/h?d-1:d];return p.every(b)}return[s,u]}const[x4,A4]=Bm(kr,Yo,Wo,xi,gh,ph),[E4,_4]=Bm(Tr,Zo,qo,wi,hh,ch),Qo="year",$o="quarter",Xo="month",Ko="week",Jo="date",_u="day",bh="dayofyear",es="hours",ts="minutes",ns="seconds",Su="milliseconds";[Qo,$o,Xo,Ko,Jo,_u,bh,es,ts,ns,Su].reduce((e,t,n)=>(e[t]=1+n,e),{});const S4={[Qo]:Tr,[$o]:Zo.every(3),[Xo]:Zo,[Ko]:qo,[Jo]:wi,[_u]:wi,[bh]:wi,[es]:hh,[ts]:ch,[ns]:Cr,[Su]:lh},C4={[Qo]:kr,[$o]:Yo.every(3),[Xo]:Yo,[Ko]:Wo,[Jo]:xi,[_u]:xi,[bh]:xi,[es]:gh,[ts]:ph,[ns]:Cr,[Su]:lh};function T4(e){return S4[e]}function k4(e){return C4[e]}function yh(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 wh(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 Dm(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,u=e.shortMonths,l=is(i),f=as(i),c=is(a),h=as(a),d=is(o),p=as(o),b=is(s),y=as(s),w=is(u),E=as(u),C={a:De,A:Ke,b:Ze,B:Je,c:null,d:Nm,e:Nm,f:X4,g:sS,G:uS,H:Y4,I:Q4,j:$4,L:Om,m:K4,M:J4,p:Ee,q:_e,Q:jm,s:qm,S:eS,u:tS,U:nS,V:rS,w:iS,W:aS,x:null,X:null,y:oS,Y:lS,Z:fS,"%":Vm},_={a:pt,A:qt,b:Oe,B:N,c:null,d:Um,e:Um,f:pS,g:_S,G:CS,H:cS,I:hS,j:dS,L:Gm,m:gS,M:mS,p:P,q,Q:jm,s:qm,S:bS,u:yS,U:wS,V:vS,w:xS,W:AS,x:null,X:null,y:ES,Y:SS,Z:TS,"%":Vm},k={a:j,A:M,b:ie,B:se,c:ge,d:Pm,e:Pm,f:j4,g:Mm,G:Rm,H:Lm,I:Lm,j:U4,L:V4,m:z4,M:G4,p:L,q:O4,Q:Z4,s:W4,S:H4,u:R4,U:M4,V:P4,w:F4,W:L4,x:Ie,X:$e,y:Mm,Y:Rm,Z:N4,"%":q4};C.x=I(n,C),C.X=I(r,C),C.c=I(t,C),_.x=I(n,_),_.X=I(r,_),_.c=I(t,_);function I(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=Fm[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 B(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=wh(rs(x.y,0,1)),le=Z.getUTCDay(),Z=le>4||le===0?Eu.ceil(Z):Eu(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=yh(rs(x.y,0,1)),le=Z.getDay(),Z=le>4||le===0?Au.ceil(Z):Au(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?wh(rs(x.y,0,1)).getUTCDay():yh(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,wh(x)):yh(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=k[J in Fm?Y.charAt(G++):J],!ue||(x=ue(H,S,x))<0)return-1}else if(J!=S.charCodeAt(x++))return-1}return x}function L(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 M(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=E.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 $e(H,Y,S){return R(H,r,Y,S)}function De(H){return o[H.getDay()]}function Ke(H){return a[H.getDay()]}function Ze(H){return u[H.getMonth()]}function Je(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 o[H.getUTCDay()]}function qt(H){return a[H.getUTCDay()]}function Oe(H){return u[H.getUTCMonth()]}function N(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=I(H+="",C);return Y.toString=function(){return H},Y},parse:function(H){var Y=B(H+="",!1);return Y.toString=function(){return H},Y},utcFormat:function(H){var Y=I(H+="",_);return Y.toString=function(){return H},Y},utcParse:function(H){var Y=B(H+="",!0);return Y.toString=function(){return H},Y}}}var Fm={"-":"",_:" ",0:"0"},lt=/^\s*\d+/,I4=/^%/,B4=/[\\^$*+?|[\]().{}]/g;function be(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",a=i.length;return r+(a<n?new Array(n-a+1).join(t)+i:i)}function D4(e){return e.replace(B4,"\\$&")}function is(e){return new RegExp("^(?:"+e.map(D4).join("|")+")","i")}function as(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function F4(e,t,n){var r=lt.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function R4(e,t,n){var r=lt.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function M4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function P4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function L4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Rm(e,t,n){var r=lt.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function Mm(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 N4(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 O4(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 z4(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 Pm(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function U4(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 Lm(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function G4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function H4(e,t,n){var r=lt.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function V4(e,t,n){var r=lt.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function j4(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 q4(e,t,n){var r=I4.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Z4(e,t,n){var r=lt.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function W4(e,t,n){var r=lt.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Nm(e,t){return be(e.getDate(),t,2)}function Y4(e,t){return be(e.getHours(),t,2)}function Q4(e,t){return be(e.getHours()%12||12,t,2)}function $4(e,t){return be(1+wi.count(Tr(e),e),t,3)}function Om(e,t){return be(e.getMilliseconds(),t,3)}function X4(e,t){return Om(e,t)+"000"}function K4(e,t){return be(e.getMonth()+1,t,2)}function J4(e,t){return be(e.getMinutes(),t,2)}function eS(e,t){return be(e.getSeconds(),t,2)}function tS(e){var t=e.getDay();return t===0?7:t}function nS(e,t){return be(qo.count(Tr(e)-1,e),t,2)}function zm(e){var t=e.getDay();return t>=4||t===0?Ea(e):Ea.ceil(e)}function rS(e,t){return e=zm(e),be(Ea.count(Tr(e),e)+(Tr(e).getDay()===4),t,2)}function iS(e){return e.getDay()}function aS(e,t){return be(Au.count(Tr(e)-1,e),t,2)}function oS(e,t){return be(e.getFullYear()%100,t,2)}function sS(e,t){return e=zm(e),be(e.getFullYear()%100,t,2)}function lS(e,t){return be(e.getFullYear()%1e4,t,4)}function uS(e,t){var n=e.getDay();return e=n>=4||n===0?Ea(e):Ea.ceil(e),be(e.getFullYear()%1e4,t,4)}function fS(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+be(t/60|0,"0",2)+be(t%60,"0",2)}function Um(e,t){return be(e.getUTCDate(),t,2)}function cS(e,t){return be(e.getUTCHours(),t,2)}function hS(e,t){return be(e.getUTCHours()%12||12,t,2)}function dS(e,t){return be(1+xi.count(kr(e),e),t,3)}function Gm(e,t){return be(e.getUTCMilliseconds(),t,3)}function pS(e,t){return Gm(e,t)+"000"}function gS(e,t){return be(e.getUTCMonth()+1,t,2)}function mS(e,t){return be(e.getUTCMinutes(),t,2)}function bS(e,t){return be(e.getUTCSeconds(),t,2)}function yS(e){var t=e.getUTCDay();return t===0?7:t}function wS(e,t){return be(Wo.count(kr(e)-1,e),t,2)}function Hm(e){var t=e.getUTCDay();return t>=4||t===0?_a(e):_a.ceil(e)}function vS(e,t){return e=Hm(e),be(_a.count(kr(e),e)+(kr(e).getUTCDay()===4),t,2)}function xS(e){return e.getUTCDay()}function AS(e,t){return be(Eu.count(kr(e)-1,e),t,2)}function ES(e,t){return be(e.getUTCFullYear()%100,t,2)}function _S(e,t){return e=Hm(e),be(e.getUTCFullYear()%100,t,2)}function SS(e,t){return be(e.getUTCFullYear()%1e4,t,4)}function CS(e,t){var n=e.getUTCDay();return e=n>=4||n===0?_a(e):_a.ceil(e),be(e.getUTCFullYear()%1e4,t,4)}function TS(){return"+0000"}function Vm(){return"%"}function jm(e){return+e}function qm(e){return Math.floor(+e/1e3)}var Sa,vh,Zm,xh,Wm;kS({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 kS(e){return Sa=Dm(e),vh=Sa.format,Zm=Sa.parse,xh=Sa.utcFormat,Wm=Sa.utcParse,Sa}function os(e){const t={};return n=>t[n]||(t[n]=e(n))}function IS(e,t){return n=>{const r=e(n),i=r.indexOf(t);if(i<0)return r;let a=BS(r,i);const o=a<r.length?r.slice(a):"";for(;--a>i;)if(r[a]!=="0"){++a;break}return r.slice(0,a)+o}}function BS(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 DS(e){const t=os(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 IS(t(i),t(".1f")(1)[1])}else return t(i)},formatSpan(r,i,a,o){o=Sr(o??",f");const s=bi(r,i,a),u=Math.max(Math.abs(r),Math.abs(i));let l;if(o.precision==null)switch(o.type){case"s":return isNaN(l=vm(s,u))||(o.precision=l),n(o,u);case"":case"e":case"g":case"p":case"r":{isNaN(l=xm(s,u))||(o.precision=l-(o.type==="e"));break}case"f":case"%":{isNaN(l=wm(s))||(o.precision=l-(o.type==="%")*2);break}}return t(o)}}}FS();function FS(){return DS({format:gt,formatPrefix:ah})}function Ym(e,t,n){n=n||{},Rt(n)||Qe("Invalid time multi-format specifier: ".concat(n));const r=t(ns),i=t(ts),a=t(es),o=t(Jo),s=t(Ko),u=t(Xo),l=t($o),f=t(Qo),c=e(n[Su]||".%L"),h=e(n[ns]||":%S"),d=e(n[ts]||"%I:%M"),p=e(n[es]||"%I %p"),b=e(n[Jo]||n[_u]||"%a %d"),y=e(n[Ko]||"%b %d"),w=e(n[Xo]||"%B"),E=e(n[$o]||"%B"),C=e(n[Qo]||"%Y");return _=>(r(_)<_?c:i(_)<_?h:a(_)<_?d:o(_)<_?p:u(_)<_?s(_)<_?b:y:f(_)<_?l(_)<_?w:E:C)(_)}function Qm(e){const t=os(e.format),n=os(e.utcFormat);return{timeFormat:r=>Pe(r)?t(r):Ym(t,T4,r),utcFormat:r=>Pe(r)?n(r):Ym(n,k4,r),timeParse:os(e.parse),utcParse:os(e.utcParse)}}let Ah;RS();function RS(){return Ah=Qm({format:vh,parse:Zm,utcFormat:xh,utcParse:Wm})}function MS(e){return Qm(Dm(e))}function PS(e){return arguments.length?Ah=MS(e):Ah}const LS=/^(data:|([A-Za-z]+:)?\/\/)/,NS=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,OS=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,$m="file://";function zS(e,t){return n=>({options:n||{},sanitize:GS,load:US,fileAccess:!!t,file:HS(t),http:jS(e)})}async function US(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t)}async function GS(e,t){t=$c({},this.options,t);const n=this.fileAccess,r={href:null};let i,a,o;const s=NS.test(e.replace(OS,""));(e==null||typeof e!="string"||!s)&&Qe("Sanitize failure, invalid URI: "+du(e));const u=LS.test(e);return(o=t.baseURL)&&!u&&(!e.startsWith("/")&&!o.endsWith("/")&&(e="/"+e),e=o+e),a=(i=e.startsWith($m))||t.mode==="file"||t.mode!=="http"&&!u&&n,i?e=e.slice($m.length):e.startsWith("//")&&(t.defaultProtocol==="file"?(e=e.slice(2),a=!0):e=(t.defaultProtocol||"http")+":"+e),Object.defineProperty(r,"localFile",{value:!!a}),r.href=e,t.target&&(r.target=t.target+""),t.rel&&(r.rel=t.rel+""),t.context==="image"&&t.crossOrigin&&(r.crossOrigin=t.crossOrigin+""),r}function HS(e){return e?t=>new Promise((n,r)=>{e.readFile(t,(i,a)=>{i?r(i):n(a)})}):VS}async function VS(){Qe("No file system access.")}function jS(e){return e?async function(t,n){const r=$c({},this.options.http,n),i=n&&n.response,a=await e(t,r);return a.ok?Mt(a[i])?a[i]():a.text():Qe(a.status+""+a.statusText)}:qS}async function qS(){Qe("No HTTP fetch method available.")}const ZS=e=>e!=null&&e===e,WS=e=>e==="true"||e==="false"||e===!0||e===!1,YS=e=>!Number.isNaN(Date.parse(e)),Xm=e=>!Number.isNaN(+e)&&!(e instanceof Date),QS=e=>Xm(e)&&Number.isInteger(+e),Km={boolean:P_,integer:Uo,number:Uo,date:N_,string:O_,unknown:uu},Cu=[WS,QS,Xm,YS],$S=["boolean","integer","number","date"];function XS(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=Cu.length,i=Cu.map((a,o)=>o+1);for(let a=0,o=0,s,u;a<n;++a)for(u=t?e[a][t]:e[a],s=0;s<r;++s)if(i[s]&&ZS(u)&&!Cu[s](u)&&(i[s]=0,++o,o===Cu.length))return"string";return $S[i.reduce((a,o)=>a===0?o:a,0)-1]}function KS(e,t){return t.reduce((n,r)=>(n[r]=XS(e,r),n),{})}function Jm(e){const t=function(n,r){const i={delimiter:e};return Eh(n,r?$c(r,i):i)};return t.responseType="text",t}function Eh(e,t){return t.header&&(e=t.header.map(du).join(t.delimiter)+`
6
+ `+e),im(t.delimiter).parse(e+"")}Eh.responseType="text";function JS(e){return typeof Buffer=="function"&&Mt(Buffer.isBuffer)?Buffer.isBuffer(e):!1}function _h(e,t){const n=t&&t.property?lu(t.property):uu;return Rt(e)&&!JS(e)?eC(n(e),t):n(JSON.parse(e))}_h.responseType="json";function eC(e,t){return!Ft(e)&&R_(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}const tC={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function e1(e,t){let n,r,i,a;return e=_h(e,t),t&&t.feature?(n=W_,i=t.feature):t&&t.mesh?(n=Q_,i=t.mesh,a=tC[t.filter]):Qe("Missing TopoJSON feature or mesh parameter."),r=(r=e.objects[i])?n(e,r,a):Qe("Invalid TopoJSON object: "+i),r&&r.features||[r]}e1.responseType="json";const Sh={dsv:Eh,csv:Jm(","),tsv:Jm(" "),json:_h,topojson:e1};function t1(e,t){return arguments.length>1?(Sh[e]=t,this):mi(Sh,e)?Sh[e]:null}function n1(e,t,n,r){t=t||{};const i=t1(t.type||"json");return i||Qe("Unknown data format type: "+t.type),e=i(e,t),t.parse&&nC(e,t.parse,n,r),mi(e,"columns")&&delete e.columns,e}function nC(e,t,n,r){if(!e.length)return;const i=PS();n=n||i.timeParse,r=r||i.utcParse;let a=e.columns||Object.keys(e[0]),o,s,u,l,f,c;t==="auto"&&(t=KS(e,a)),a=Object.keys(t);const h=a.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(!Km[p])throw Error("Illegal format pattern: "+d+":"+p);return Km[p]});for(u=0,f=e.length,c=a.length;u<f;++u)for(o=e[u],l=0;l<c;++l)s=a[l],o[s]=h[l](o[s])}const Tu=zS(typeof fetch<"u"&&fetch,null);/**
7
7
  * @license
8
8
  * Copyright 2017 Google LLC
9
9
  * SPDX-License-Identifier: BSD-3-Clause
@@ -159,9 +159,9 @@
159
159
  background: #fff0f0;
160
160
  }`;function wC(e,t){var n=e.getBoundingClientRect();return[t.clientX-n.left-e.clientLeft,t.clientY-n.top-e.clientTop]}function Bu(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 vC{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=wC(this.container,t);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&xC(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&&(kh("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}kh(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 xC(e,t){let n=0;for(let r=0;r<e.length;r++)n+=(e[r]-t[r])**2;return Math.sqrt(n)}const AC="RawCode",EC="Literal",_C="Property",SC="Identifier",CC="ArrayExpression",TC="BinaryExpression",kC="CallExpression",IC="ConditionalExpression",BC="LogicalExpression",DC="MemberExpression",FC="ObjectExpression",RC="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 CC:return e.elements;case TC:case BC:return[e.left,e.right];case kC:return[e.callee].concat(e.arguments);case IC:return[e.test,e.consequent,e.alternate];case DC:return[e.object,e.property];case FC:return e.properties;case _C:return[e.key,e.value];case RC:return[e.argument];case SC:case EC:case AC:default:return[]}}var Fn,K,U,xt,Te,Du=1,ps=2,Ci=3,Br=4,Fu=5,Ti=6,Nt=7,gs=8,PC=9;Fn={},Fn[Du]="Boolean",Fn[ps]="<end>",Fn[Ci]="Identifier",Fn[Br]="Keyword",Fn[Fu]="Null",Fn[Ti]="Numeric",Fn[Nt]="Punctuator",Fn[gs]="String",Fn[PC]="RegularExpression";var LC="ArrayExpression",NC="BinaryExpression",OC="CallExpression",zC="ConditionalExpression",g1="Identifier",UC="Literal",GC="LogicalExpression",HC="MemberExpression",VC="ObjectExpression",jC="Property",qC="UnaryExpression",ut="Unexpected token %0",ZC="Unexpected number",WC="Unexpected string",YC="Unexpected identifier",QC="Unexpected reserved word",$C="Unexpected end of input",Ih="Invalid regular expression",Bh="Invalid regular expression: missing /",m1="Octal literals are not allowed in strict mode.",XC="Duplicate data property in object literal not allowed in strict mode",mt="ILLEGAL",ms="Disabled.",KC=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]"),JC=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 Ru(e,t){if(!e)throw new Error("ASSERT: "+t)}function nr(e){return e>=48&&e<=57}function Dh(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function bs(e){return"01234567".indexOf(e)>=0}function e6(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&&KC.test(String.fromCharCode(e))}function Mu(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&JC.test(String.fromCharCode(e))}const t6={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 b1(){for(;U<xt;){const e=K.charCodeAt(U);if(e6(e)||ys(e))++U;else break}}function Fh(e){var t,n,r,i=0;for(n=e==="u"?4:2,t=0;t<n;++t)U<xt&&Dh(K[U])?(r=K[U++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):ye({},ut,mt);return String.fromCharCode(i)}function n6(){var e,t,n,r;for(e=K[U],t=0,e==="}"&&ye({},ut,mt);U<xt&&(e=K[U++],!!Dh(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 y1(){var e,t;for(e=K.charCodeAt(U++),t=String.fromCharCode(e),e===92&&(K.charCodeAt(U)!==117&&ye({},ut,mt),++U,e=Fh("u"),(!e||e==="\\"||!ws(e.charCodeAt(0)))&&ye({},ut,mt),t=e);U<xt&&(e=K.charCodeAt(U),!!Mu(e));)++U,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),K.charCodeAt(U)!==117&&ye({},ut,mt),++U,e=Fh("u"),(!e||e==="\\"||!Mu(e.charCodeAt(0)))&&ye({},ut,mt),t+=e);return t}function r6(){var e,t;for(e=U++;U<xt;){if(t=K.charCodeAt(U),t===92)return U=e,y1();if(Mu(t))++U;else break}return K.slice(e,U)}function i6(){var e,t,n;return e=U,t=K.charCodeAt(U)===92?y1():r6(),t.length===1?n=Ci:t6.hasOwnProperty(t)?n=Br:t==="null"?n=Fu:t==="true"||t==="false"?n=Du:n=Ci,{type:n,value:t,start:e,end:U}}function Rh(){var e=U,t=K.charCodeAt(U),n,r=K[U],i,a,o;switch(t){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++U,{type: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(o=K.substr(U,4),o===">>>=")return U+=4,{type:Nt,value:o,start:e,end:U};if(a=o.substr(0,3),a===">>>"||a==="<<="||a===">>=")return U+=3,{type:Nt,value:a,start:e,end:U};if(i=a.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 a6(e){let t="";for(;U<xt&&Dh(K[U]);)t+=K[U++];return t.length===0&&ye({},ut,mt),ws(K.charCodeAt(U))&&ye({},ut,mt),{type:Ti,value:parseInt("0x"+t,16),start:e,end:U}}function o6(e){let t="0"+K[U++];for(;U<xt&&bs(K[U]);)t+=K[U++];return(ws(K.charCodeAt(U))||nr(K.charCodeAt(U)))&&ye({},ut,mt),{type:Ti,value:parseInt(t,8),octal:!0,start:e,end:U}}function w1(){var e,t,n;if(n=K[U],Ru(nr(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,a6(t);if(bs(n))return o6(t);n&&nr(n.charCodeAt(0))&&ye({},ut,mt)}for(;nr(K.charCodeAt(U));)e+=K[U++];n=K[U]}if(n==="."){for(e+=K[U++];nr(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++]),nr(K.charCodeAt(U)))for(;nr(K.charCodeAt(U));)e+=K[U++];else ye({},ut,mt);return ws(K.charCodeAt(U))&&ye({},ut,mt),{type:Ti,value:parseFloat(e),start:t,end:U}}function s6(){var e="",t,n,r,i,a=!1;for(t=K[U],Ru(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+=n6()):e+=Fh(r);break;case"n":e+=`
161
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&&(a=!0),U<xt&&bs(K[U])&&(a=!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:a,start:n,end:U}}function l6(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({},Ih)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{ye({},Ih)}try{return new RegExp(e,t)}catch{return null}}function u6(){var e,t,n,r,i;for(e=K[U],Ru(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({},Bh),t+=e;else if(ys(e.charCodeAt(0)))ye({},Bh);else if(n)e==="]"&&(n=!1);else if(e==="/"){r=!0;break}else e==="["&&(n=!0);return r||ye({},Bh),i=t.substr(1,t.length-2),{value:i,literal:t}}function f6(){var e,t,n;for(t="",n="";U<xt&&(e=K[U],!!Mu(e.charCodeAt(0)));)++U,e==="\\"&&U<xt?ye({},ut,mt):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&ye({},Ih,n),{value:n,literal:t}}function c6(){var e,t,n,r;return Te=null,b1(),e=U,t=u6(),n=f6(),r=l6(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:U}}function h6(e){return e.type===Ci||e.type===Br||e.type===Du||e.type===Fu}function v1(){if(b1(),U>=xt)return{type:ps,start:U,end:U};const e=K.charCodeAt(U);return ws(e)?i6():e===40||e===41||e===59?Rh():e===39||e===34?s6():e===46?nr(K.charCodeAt(U+1))?w1():Rh():nr(e)?w1():Rh()}function Ot(){const e=Te;return U=e.end,Te=v1(),U=e.end,e}function x1(){const e=U;Te=v1(),U=e}function d6(e){const t=new bn(LC);return t.elements=e,t}function A1(e,t,n){const r=new bn(e==="||"||e==="&&"?GC:NC);return r.operator=e,r.left=t,r.right=n,r}function p6(e,t){const n=new bn(OC);return n.callee=e,n.arguments=t,n}function g6(e,t,n){const r=new bn(zC);return r.test=e,r.consequent=t,r.alternate=n,r}function Mh(e){const t=new bn(g1);return t.name=e,t}function vs(e){const t=new bn(UC);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 E1(e,t,n){const r=new bn(HC);return r.computed=e==="[",r.object=t,r.property=n,r.computed||(n.member=!0),r}function m6(e){const t=new bn(VC);return t.properties=e,t}function _1(e,t,n){const r=new bn(jC);return r.key=t,r.value=n,r.kind=e,r}function b6(e,t){const n=new bn(qC);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,(a,o)=>(Ru(o<r.length,"Message reference must be in range"),r[o]));throw n=new Error(i),n.index=U,n.description=i,n}function Pu(e){e.type===ps&&ye(e,$C),e.type===Ti&&ye(e,ZC),e.type===gs&&ye(e,WC),e.type===Ci&&ye(e,YC),e.type===Br&&ye(e,QC),ye(e,ut,e.value)}function At(e){const t=Ot();(t.type!==Nt||t.value!==e)&&Pu(t)}function Ue(e){return Te.type===Nt&&Te.value===e}function Ph(e){return Te.type===Br&&Te.value===e}function y6(){const e=[];for(U=Te.start,At("[");!Ue("]");)Ue(",")?(Ot(),e.push(null)):(e.push(ki()),Ue("]")||At(","));return Ot(),d6(e)}function S1(){U=Te.start;const e=Ot();return e.type===gs||e.type===Ti?(e.octal&&ye(e,m1),vs(e)):Mh(e.value)}function w6(){var e,t,n,r;if(U=Te.start,e=Te,e.type===Ci)return n=S1(),At(":"),r=ki(),_1("init",n,r);if(e.type===ps||e.type===Nt)Pu(e);else return t=S1(),At(":"),r=ki(),_1("init",t,r)}function v6(){var e=[],t,n,r,i={},a=String;for(U=Te.start,At("{");!Ue("}");)t=w6(),t.key.type===g1?n=t.key.name:n=a(t.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?ye({},XC):i[r]=!0,e.push(t),Ue("}")||At(",");return At("}"),m6(e)}function x6(){At("(");const e=Lh();return At(")"),e}const A6={if:1};function E6(){var e,t,n;if(Ue("("))return x6();if(Ue("["))return y6();if(Ue("{"))return v6();if(e=Te.type,U=Te.start,e===Ci||A6[Te.value])n=Mh(Ot().value);else if(e===gs||e===Ti)Te.octal&&ye(Te,m1),n=vs(Ot());else{if(e===Br)throw new Error(ms);e===Du?(t=Ot(),t.value=t.value==="true",n=vs(t)):e===Fu?(t=Ot(),t.value=null,n=vs(t)):Ue("/")||Ue("/=")?(n=vs(c6()),x1()):Pu(Ot())}return n}function _6(){const e=[];if(At("("),!Ue(")"))for(;U<xt&&(e.push(ki()),!Ue(")"));)At(",");return At(")"),e}function S6(){U=Te.start;const e=Ot();return h6(e)||Pu(e),Mh(e.value)}function C6(){return At("."),S6()}function T6(){At("[");const e=Lh();return At("]"),e}function k6(){var e,t,n;for(e=E6();;)if(Ue("."))n=C6(),e=E1(".",e,n);else if(Ue("("))t=_6(),e=p6(e,t);else if(Ue("["))n=T6(),e=E1("[",e,n);else break;return e}function C1(){const e=k6();if(Te.type===Nt&&(Ue("++")||Ue("--")))throw new Error(ms);return e}function Lu(){var e,t;if(Te.type!==Nt&&Te.type!==Br)t=C1();else{if(Ue("++")||Ue("--"))throw new Error(ms);if(Ue("+")||Ue("-")||Ue("~")||Ue("!"))e=Ot(),t=Lu(),t=b6(e.value,t);else{if(Ph("delete")||Ph("void")||Ph("typeof"))throw new Error(ms);t=C1()}}return t}function T1(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 I6(){var e,t,n,r,i,a,o,s,u,l;if(e=Te,u=Lu(),r=Te,i=T1(r),i===0)return u;for(r.prec=i,Ot(),t=[e,Te],o=Lu(),a=[u,r,o];(i=T1(Te))>0;){for(;a.length>2&&i<=a[a.length-2].prec;)o=a.pop(),s=a.pop().value,u=a.pop(),t.pop(),n=A1(s,u,o),a.push(n);r=Ot(),r.prec=i,a.push(r),t.push(Te),n=Lu(),a.push(n)}for(l=a.length-1,n=a[l],t.pop();l>1;)t.pop(),n=A1(a[l-1].value,a[l-2],n),l-=2;return n}function ki(){var e,t,n;return e=I6(),Ue("?")&&(Ot(),t=ki(),At(":"),n=ki(),e=g6(e,t,n)),e}function Lh(){const e=ki();if(Ue(","))throw new Error(ms);return e}function B6(e){K=e,U=0,xt=K.length,Te=null,x1();const t=Lh();if(Te.type!==ps)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 k1(e){function t(o,s,u,l){let f=e(s[0]);return u&&(f=u+"("+f+")",u.lastIndexOf("new ",0)===0&&(f="("+f+")")),f+"."+o+(l<0?"":l===0?"()":"("+s.slice(1).map(e).join(",")+")")}function n(o,s,u){return l=>t(o,l,s,u)}const r="new Date",i="String",a="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(o){o.length<3&&Qe("Missing arguments to clamp function."),o.length>3&&Qe("Too many arguments to clamp function.");const s=o.map(e);return"Math.max("+s[1]+", Math.min("+s[2]+","+s[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:a,test:n("test",a),if:function(o){o.length<3&&Qe("Missing arguments to if function."),o.length>3&&Qe("Too many arguments to if function.");const s=o.map(e);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function F6(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function R6(e){e=e||{};const t=e.allowed?pu(e.allowed):{},n=e.forbidden?pu(e.forbidden):{},r=e.constants||D6,i=(e.functions||k1)(c),a=e.globalvar,o=e.fieldvar,s=Mt(a)?a:p=>`${a}["${p}"]`;let u={},l={},f=0;function c(p){if(Pe(p))return p;const m=h[p.type];return m==null&&Qe("Unsupported type: "+p.type),m(p)}const h={Literal:p=>p.raw,Identifier:p=>{const m=p.name;return f>0?m:mi(n,m)?Qe("Illegal identifier: "+m):mi(r,m)?r[m]:mi(t,m)?m:(u[m]=1,s(m))},MemberExpression:p=>{const m=!p.computed,y=c(p.object);m&&(f+=1);const w=c(p.property);return y===o&&(l[F6(w)]=1),m&&(f-=1),y+(m?"."+w:"["+w+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&Qe("Illegal callee type: "+p.callee.type);const m=p.callee.name,y=p.arguments,w=mi(i,m)&&i[m];return w||Qe("Unrecognized function: "+m),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 m=c(p.key);return f-=1,m+":"+c(p.value)}};function d(p){const m={code:c(p),globals:Object.keys(u),fields:Object.keys(l)};return u={},l={},m}return d.functions=i,d.constants=r,d}function I1(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 M6(e,t,n){return xs((n-e)/(t-e),0,1)}const B1={clamp:xs,isArray:Ft,isBoolean:Go,isDefined(e){return e!==void 0},isNumber:Ct,isObject:Rt,isRegExp:M_,isString:Pe,isValid(e){return e!=null&&e===e},lerp:em,linearstep:M6,smoothstep:I1};function P6(e){const t=k1(e);for(const n in B1)t[n]=`this.${n}`;return t}const L6=R6({forbidden:[],allowed:["datum"],globalvar:"globalObject",fieldvar:"datum",functions:P6});function Nu(e,t={}){try{const n=B6(e),r=L6(n),i=Function("datum","globalObject",`"use strict"; return (${r.code});`).bind(B1),a=o=>i(o,t);return a.fields=r.fields,a.globals=r.globals,a.code=r.code,a}catch(n){throw new Error(`Invalid expression: ${e}, ${n.message}`)}}function Rn(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 Nh=Symbol("implicit");function Oh(){var e=new _r,t=[],n=[],r=Nh;function i(a){let o=e.get(a);if(o===void 0){if(r!==Nh)return r;e.set(a,o=t.push(a)-1)}return n[o%n.length]}return i.domain=function(a){if(!arguments.length)return t.slice();t=[],e=new _r;for(const o of a)e.has(o)||e.set(o,t.push(o)-1);return i},i.range=function(a){return arguments.length?(n=Array.from(a),i):n.slice()},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return Oh(t,n).unknown(r)},Rn.apply(i,arguments),i}function ka(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,Ia=1/Ii,Ba="\\s*([+-]?\\d+)\\s*",Es="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Mn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",N6=/^#([0-9a-f]{3,8})$/,O6=new RegExp(`^rgb\\(${Ba},${Ba},${Ba}\\)$`),z6=new RegExp(`^rgb\\(${Mn},${Mn},${Mn}\\)$`),U6=new RegExp(`^rgba\\(${Ba},${Ba},${Ba},${Es}\\)$`),G6=new RegExp(`^rgba\\(${Mn},${Mn},${Mn},${Es}\\)$`),H6=new RegExp(`^hsl\\(${Es},${Mn},${Mn}\\)$`),V6=new RegExp(`^hsla\\(${Es},${Mn},${Mn},${Es}\\)$`),D1={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};ka(Fr,Rr,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:F1,formatHex:F1,formatHex8:j6,formatHsl:q6,formatRgb:R1,toString:R1});function F1(){return this.rgb().formatHex()}function j6(){return this.rgb().formatHex8()}function q6(){return O1(this).formatHsl()}function R1(){return this.rgb().formatRgb()}function Rr(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=N6.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?M1(t):n===3?new ft(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Ou(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Ou(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=O6.exec(e))?new ft(t[1],t[2],t[3],1):(t=z6.exec(e))?new ft(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=U6.exec(e))?Ou(t[1],t[2],t[3],t[4]):(t=G6.exec(e))?Ou(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=H6.exec(e))?N1(t[1],t[2]/100,t[3]/100,1):(t=V6.exec(e))?N1(t[1],t[2]/100,t[3]/100,t[4]):D1.hasOwnProperty(e)?M1(D1[e]):e==="transparent"?new ft(NaN,NaN,NaN,0):null}function M1(e){return new ft(e>>16&255,e>>8&255,e&255,1)}function Ou(e,t,n,r){return r<=0&&(e=t=n=NaN),new ft(e,t,n,r)}function zh(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 zu(e,t,n,r){return arguments.length===1?zh(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}ka(ft,zu,As(Fr,{brighter(e){return e=e==null?Ia:Math.pow(Ia,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),Uu(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:P1,formatHex:P1,formatHex8:Z6,formatRgb:L1,toString:L1}));function P1(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}`}function Z6(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}${Di((isNaN(this.opacity)?1:this.opacity)*255)}`}function L1(){const e=Uu(this.opacity);return`${e===1?"rgb(":"rgba("}${Bi(this.r)}, ${Bi(this.g)}, ${Bi(this.b)}${e===1?")":`, ${e})`}`}function Uu(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 N1(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 O1(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),a=Math.max(t,n,r),o=NaN,s=a-i,u=(a+i)/2;return s?(t===a?o=(n-r)/s+(n<r)*6:n===a?o=(r-t)/s+2:o=(t-n)/s+4,s/=u<.5?a+i:2-a-i,o*=60):s=u>0&&u<1?0:o,new yn(o,s,u,e.opacity)}function Uh(e,t,n,r){return arguments.length===1?O1(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}ka(yn,Uh,As(Fr,{brighter(e){return e=e==null?Ia:Math.pow(Ia,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(Gh(e>=240?e-240:e+120,i,r),Gh(e,i,r),Gh(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new yn(z1(this.h),Gu(this.s),Gu(this.l),Uu(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=Uu(this.opacity);return`${e===1?"hsl(":"hsla("}${z1(this.h)}, ${Gu(this.s)*100}%, ${Gu(this.l)*100}%${e===1?")":`, ${e})`}`}}));function z1(e){return e=(e||0)%360,e<0?e+360:e}function Gu(e){return Math.max(0,Math.min(1,e||0))}function Gh(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 U1=Math.PI/180,G1=180/Math.PI,Hu=18,H1=.96422,V1=1,j1=.82521,q1=4/29,Da=6/29,Z1=3*Da*Da,W6=Da*Da*Da;function W1(e){if(e instanceof Pn)return new Pn(e.l,e.a,e.b,e.opacity);if(e instanceof rr)return Y1(e);e instanceof ft||(e=zh(e));var t=Zh(e.r),n=Zh(e.g),r=Zh(e.b),i=Vh((.2225045*t+.7168786*n+.0606169*r)/V1),a,o;return t===n&&n===r?a=o=i:(a=Vh((.4360747*t+.3850649*n+.1430804*r)/H1),o=Vh((.0139322*t+.0971045*n+.7141733*r)/j1)),new Pn(116*i-16,500*(a-i),200*(i-o),e.opacity)}function Hh(e,t,n,r){return arguments.length===1?W1(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}ka(Pn,Hh,As(Fr,{brighter(e){return new Pn(this.l+Hu*(e??1),this.a,this.b,this.opacity)},darker(e){return new Pn(this.l-Hu*(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=H1*jh(t),e=V1*jh(e),n=j1*jh(n),new ft(qh(3.1338561*t-1.6168667*e-.4906146*n),qh(-.9787684*t+1.9161415*e+.033454*n),qh(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function Vh(e){return e>W6?Math.pow(e,1/3):e/Z1+q1}function jh(e){return e>Da?e*e*e:Z1*(e-q1)}function qh(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 Y6(e){if(e instanceof rr)return new rr(e.h,e.c,e.l,e.opacity);if(e instanceof Pn||(e=W1(e)),e.a===0&&e.b===0)return new rr(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*G1;return new rr(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function Wh(e,t,n,r){return arguments.length===1?Y6(e):new rr(e,t,n,r??1)}function rr(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function Y1(e){if(isNaN(e.h))return new Pn(e.l,0,0,e.opacity);var t=e.h*U1;return new Pn(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}ka(rr,Wh,As(Fr,{brighter(e){return new rr(this.h,this.c,this.l+Hu*(e??1),this.opacity)},darker(e){return new rr(this.h,this.c,this.l-Hu*(e??1),this.opacity)},rgb(){return Y1(this).rgb()}}));var Q1=-.14861,Yh=1.78277,Qh=-.29227,Vu=-.90649,_s=1.97294,$1=_s*Vu,X1=_s*Yh,K1=Yh*Qh-Vu*Q1;function Q6(e){if(e instanceof Fi)return new Fi(e.h,e.s,e.l,e.opacity);e instanceof ft||(e=zh(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(K1*r+$1*t-X1*n)/(K1+$1-X1),a=r-i,o=(_s*(n-i)-Qh*a)/Vu,s=Math.sqrt(o*o+a*a)/(_s*i*(1-i)),u=s?Math.atan2(o,a)*G1-120:NaN;return new Fi(u<0?u+360:u,s,i,e.opacity)}function $h(e,t,n,r){return arguments.length===1?Q6(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}ka(Fi,$h,As(Fr,{brighter(e){return e=e==null?Ia:Math.pow(Ia,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)*U1,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+Yh*i)),255*(t+n*(Qh*r+Vu*i)),255*(t+n*(_s*r)),this.opacity)}}));function J1(e,t,n,r,i){var a=e*e,o=a*e;return((1-3*e+3*a-o)*t+(4-6*a+3*o)*n+(1+3*e+3*a-3*o)*r+o*i)/6}function eb(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],a=e[r+1],o=r>0?e[r-1]:2*i-a,s=r<t-1?e[r+2]:2*a-i;return J1((n-r/t)*t,o,i,a,s)}}function tb(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),i=e[(r+t-1)%t],a=e[r%t],o=e[(r+1)%t],s=e[(r+2)%t];return J1((n-r/t)*t,i,a,o,s)}}const ju=e=>()=>e;function nb(e,t){return function(n){return e+n*t}}function $6(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 qu(e,t){var n=t-e;return n?nb(e,n>180||n<-180?n-360*Math.round(n/360):n):ju(isNaN(e)?t:e)}function X6(e){return(e=+e)==1?ct:function(t,n){return n-t?$6(t,n,e):ju(isNaN(t)?n:t)}}function ct(e,t){var n=t-e;return n?nb(e,n):ju(isNaN(e)?t:e)}const Xh=function e(t){var n=X6(t);function r(i,a){var o=n((i=zu(i)).r,(a=zu(a)).r),s=n(i.g,a.g),u=n(i.b,a.b),l=ct(i.opacity,a.opacity);return function(f){return i.r=o(f),i.g=s(f),i.b=u(f),i.opacity=l(f),i+""}}return r.gamma=e,r}(1);function rb(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),a=new Array(n),o,s;for(o=0;o<n;++o)s=zu(t[o]),r[o]=s.r||0,i[o]=s.g||0,a[o]=s.b||0;return r=e(r),i=e(i),a=e(a),s.opacity=1,function(u){return s.r=r(u),s.g=i(u),s.b=a(u),s+""}}}var K6=rb(eb),J6=rb(tb);function Kh(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function ib(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function e8(e,t){return(ib(t)?Kh:ab)(e,t)}function ab(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),a=new Array(n),o;for(o=0;o<r;++o)i[o]=Mr(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(s){for(o=0;o<r;++o)a[o]=i[o](s);return a}}function ob(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 sb(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(a){for(i in n)r[i]=n[i](a);return r}}var Jh=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ed=new RegExp(Jh.source,"g");function t8(e){return function(){return e}}function n8(e){return function(t){return e(t)+""}}function lb(e,t){var n=Jh.lastIndex=ed.lastIndex=0,r,i,a,o=-1,s=[],u=[];for(e=e+"",t=t+"";(r=Jh.exec(e))&&(i=ed.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,u.push({i:o,x:wn(r,i)})),n=ed.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?u[0]?n8(u[0].x):t8(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"?ju(t):(n==="number"?wn:n==="string"?(r=Rr(t))?(t=r,Xh):lb:t instanceof Rr?Xh:t instanceof Date?ob:ib(t)?Kh:Array.isArray(t)?ab:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?sb:wn)(e,t)}function r8(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function i8(e,t){var n=qu(+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 ub=180/Math.PI,td={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function fb(e,t,n,r,i,a){var o,s,u;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(u=e*n+t*r)&&(n-=e*u,r-=t*u),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,u/=s),e*r<t*n&&(e=-e,t=-t,u=-u,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*ub,skewX:Math.atan(u)*ub,scaleX:o,scaleY:s}}var Zu;function a8(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?td:fb(t.a,t.b,t.c,t.d,t.e,t.f)}function o8(e){return e==null||(Zu||(Zu=document.createElementNS("http://www.w3.org/2000/svg","g")),Zu.setAttribute("transform",e),!(e=Zu.transform.baseVal.consolidate()))?td:(e=e.matrix,fb(e.a,e.b,e.c,e.d,e.e,e.f))}function cb(e,t,n,r){function i(l){return l.length?l.pop()+" ":""}function a(l,f,c,h,d,p){if(l!==c||f!==h){var m=d.push("translate(",null,t,null,n);p.push({i:m-4,x:wn(l,c)},{i:m-2,x:wn(f,h)})}else(c||h)&&d.push("translate("+c+t+h+n)}function o(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 m=d.push(i(d)+"scale(",null,",",null,")");p.push({i:m-4,x:wn(l,c)},{i:m-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),a(l.translateX,l.translateY,f.translateX,f.translateY,c,h),o(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,m=h.length,y;++p<m;)c[(y=h[p]).i]=y.x(d);return c.join("")}}}var s8=cb(a8,"px, ","px)","deg)"),l8=cb(o8,", ",")",")"),u8=1e-12;function hb(e){return((e=Math.exp(e))+1/e)/2}function f8(e){return((e=Math.exp(e))-1/e)/2}function c8(e){return((e=Math.exp(2*e))-1)/(e+1)}const h8=function e(t,n,r){function i(a,o){var s=a[0],u=a[1],l=a[2],f=o[0],c=o[1],h=o[2],d=f-s,p=c-u,m=d*d+p*p,y,w;if(m<u8)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(m),C=(h*h-l*l+r*m)/(2*l*n*_),E=(h*h-l*l-r*m)/(2*h*n*_),k=Math.log(Math.sqrt(C*C+1)-C),B=Math.log(Math.sqrt(E*E+1)-E);w=(B-k)/t,y=function(I){var R=I*w,L=hb(k),j=l/(n*_)*(L*c8(t*R+k)-f8(k));return[s+j*d,u+j*p,l*L/hb(t*R+k)]}}return y.duration=w*1e3*t/Math.SQRT2,y}return i.rho=function(a){var o=Math.max(.001,+a),s=o*o,u=s*s;return e(o,s,u)},i}(Math.SQRT2,2,4);function db(e){return function(t,n){var r=e((t=Uh(t)).h,(n=Uh(n)).h),i=ct(t.s,n.s),a=ct(t.l,n.l),o=ct(t.opacity,n.opacity);return function(s){return t.h=r(s),t.s=i(s),t.l=a(s),t.opacity=o(s),t+""}}}const d8=db(qu);var p8=db(ct);function g8(e,t){var n=ct((e=Hh(e)).l,(t=Hh(t)).l),r=ct(e.a,t.a),i=ct(e.b,t.b),a=ct(e.opacity,t.opacity);return function(o){return e.l=n(o),e.a=r(o),e.b=i(o),e.opacity=a(o),e+""}}function pb(e){return function(t,n){var r=e((t=Wh(t)).h,(n=Wh(n)).h),i=ct(t.c,n.c),a=ct(t.l,n.l),o=ct(t.opacity,n.opacity);return function(s){return t.h=r(s),t.c=i(s),t.l=a(s),t.opacity=o(s),t+""}}}const m8=pb(qu);var b8=pb(ct);function gb(e){return function t(n){n=+n;function r(i,a){var o=e((i=$h(i)).h,(a=$h(a)).h),s=ct(i.s,a.s),u=ct(i.l,a.l),l=ct(i.opacity,a.opacity);return function(f){return i.h=o(f),i.s=s(f),i.l=u(Math.pow(f,n)),i.opacity=l(f),i+""}}return r.gamma=t,r}(1)}const y8=gb(qu);var w8=gb(ct);function nd(e,t){t===void 0&&(t=e,e=Mr);for(var n=0,r=t.length-1,i=t[0],a=new Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return function(o){var s=Math.max(0,Math.min(r-1,Math.floor(o*=r)));return a[s](o-s)}}function v8(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}const x8=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Mr,interpolateArray:e8,interpolateBasis:eb,interpolateBasisClosed:tb,interpolateCubehelix:y8,interpolateCubehelixLong:w8,interpolateDate:ob,interpolateDiscrete:r8,interpolateHcl:m8,interpolateHclLong:b8,interpolateHsl:d8,interpolateHslLong:p8,interpolateHue:i8,interpolateLab:g8,interpolateNumber:wn,interpolateNumberArray:Kh,interpolateObject:sb,interpolateRgb:Xh,interpolateRgbBasis:K6,interpolateRgbBasisClosed:J6,interpolateRound:Ss,interpolateString:lb,interpolateTransformCss:s8,interpolateTransformSvg:l8,interpolateZoom:h8,piecewise:nd,quantize:v8},Symbol.toStringTag,{value:"Module"}));function A8(e){return function(){return e}}function rd(e){return+e}var mb=[0,1];function zt(e){return e}function id(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:A8(isNaN(t)?NaN:.5)}function E8(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function _8(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=id(i,r),a=n(o,a)):(r=id(r,i),a=n(a,o)),function(s){return a(r(s))}}function S8(e,t,n){var r=Math.min(e.length,t.length)-1,i=new Array(r),a=new Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)i[o]=id(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(s){var u=Er(e,s,1,r)-1;return a[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 Wu(){var e=mb,t=mb,n=Mr,r,i,a,o=zt,s,u,l;function f(){var h=Math.min(e.length,t.length);return o!==zt&&(o=E8(e[0],e[h-1])),s=h>2?S8:_8,u=l=null,c}function c(h){return h==null||isNaN(h=+h)?a:(u||(u=s(e.map(r),t,n)))(r(o(h)))}return c.invert=function(h){return o(i((l||(l=s(t,e.map(r),wn)))(h)))},c.domain=function(h){return arguments.length?(e=Array.from(h,rd),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?(o=h?!0:zt,f()):o!==zt},c.interpolate=function(h){return arguments.length?(n=h,f()):n},c.unknown=function(h){return arguments.length?(a=h,c):a},function(h,d){return r=h,i=d,f()}}function bb(){return Wu()(zt,zt)}function yb(e,t,n,r){var i=bi(e,t,n),a;switch(r=Sr(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=vm(i,o))&&(r.precision=a),ah(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=xm(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=wm(i))&&(r.precision=a-(r.type==="%")*2);break}}return gt(r)}function Ri(e){var t=e.domain;return e.ticks=function(n){var r=t();return bu(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return yb(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],u,l,f=10;for(s<o&&(l=o,o=s,s=l,l=i,i=a,a=l);f-- >0;){if(l=cm(o,s,n),l===u)return r[i]=o,r[a]=s,t(r);if(l>0)o=Math.floor(o/l)*l,s=Math.ceil(s/l)*l;else if(l<0)o=Math.ceil(o*l)/l,s=Math.floor(s*l)/l;else break;u=l}return e},e}function wb(){var e=bb();return e.copy=function(){return Cs(e,wb())},Rn.apply(e,arguments),Ri(e)}function vb(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,rd),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return vb(e).unknown(t)},e=arguments.length?Array.from(e,rd):[0,1],Ri(n)}function xb(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return a<i&&(o=n,n=r,r=o,o=i,i=a,a=o),e[n]=t.floor(i),e[r]=t.ceil(a),e}function Ab(e){return Math.log(e)}function Eb(e){return Math.exp(e)}function C8(e){return-Math.log(-e)}function T8(e){return-Math.exp(-e)}function k8(e){return isFinite(e)?+("1e"+e):e<0?0:e}function I8(e){return e===10?k8:e===Math.E?Math.exp:t=>Math.pow(e,t)}function B8(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 _b(e){return(t,n)=>-e(-t,n)}function ad(e){const t=e(Ab,Eb),n=t.domain;let r=10,i,a;function o(){return i=B8(r),a=I8(r),n()[0]<0?(i=_b(i),a=_b(a),e(C8,T8)):e(Ab,Eb),t}return t.base=function(s){return arguments.length?(r=+s,o()):r},t.domain=function(s){return arguments.length?(n(s),o()):n()},t.ticks=s=>{const u=n();let l=u[0],f=u[u.length-1];const c=f<l;c&&([l,f]=[f,l]);let h=i(l),d=i(f),p,m;const y=s==null?10:+s;let w=[];if(!(r%1)&&d-h<y){if(h=Math.floor(h),d=Math.ceil(d),l>0){for(;h<=d;++h)for(p=1;p<r;++p)if(m=h<0?p/a(-h):p*a(h),!(m<l)){if(m>f)break;w.push(m)}}else for(;h<=d;++h)for(p=r-1;p>=1;--p)if(m=h>0?p/a(-h):p*a(h),!(m<l)){if(m>f)break;w.push(m)}w.length*2<y&&(w=bu(l,f,y))}else w=bu(h,d,Math.min(d-h,y)).map(a);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/a(Math.round(i(f)));return c*r<r-.5&&(c*=r),c<=l?u(f):""}},t.nice=()=>n(xb(n(),{floor:s=>a(Math.floor(i(s))),ceil:s=>a(Math.ceil(i(s)))})),t}function od(){const e=ad(Wu()).domain([1,10]);return e.copy=()=>Cs(e,od()).base(e.base()),Rn.apply(e,arguments),e}function Sb(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function Cb(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function sd(e){var t=1,n=e(Sb(t),Cb(t));return n.constant=function(r){return arguments.length?e(Sb(t=+r),Cb(t)):t},Ri(n)}function Tb(){var e=sd(Wu());return e.copy=function(){return Cs(e,Tb()).constant(e.constant())},Rn.apply(e,arguments)}function kb(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 F8(e){return e<0?-e*e:e*e}function ld(e){var t=e(zt,zt),n=1;function r(){return n===1?e(zt,zt):n===.5?e(D8,F8):e(kb(n),kb(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},Ri(t)}function ud(){var e=ld(Wu());return e.copy=function(){return Cs(e,ud()).exponent(e.exponent())},Rn.apply(e,arguments),e}function R8(){return ud.apply(null,arguments).exponent(.5)}function Ib(){var e=[],t=[],n=[],r;function i(){var o=0,s=Math.max(1,t.length);for(n=new Array(s-1);++o<s;)n[o-1]=hm(e,o/s);return a}function a(o){return o==null||isNaN(o=+o)?r:t[Er(n,o)]}return a.invertExtent=function(o){var s=t.indexOf(o);return s<0?[NaN,NaN]:[s>0?n[s-1]:e[0],s<n.length?n[s]:e[e.length-1]]},a.domain=function(o){if(!arguments.length)return e.slice();e=[];for(let s of o)s!=null&&!isNaN(s=+s)&&e.push(s);return e.sort(Vo),i()},a.range=function(o){return arguments.length?(t=Array.from(o),i()):t.slice()},a.unknown=function(o){return arguments.length?(r=o,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return Ib().domain(e).range(t).unknown(r)},Rn.apply(a,arguments)}function Bb(){var e=0,t=1,n=1,r=[.5],i=[0,1],a;function o(u){return u!=null&&u<=u?i[Er(r,u,0,n)]:a}function s(){var u=-1;for(r=new Array(n);++u<n;)r[u]=((u+1)*t-(u-n)*e)/(n+1);return o}return o.domain=function(u){return arguments.length?([e,t]=u,e=+e,t=+t,s()):[e,t]},o.range=function(u){return arguments.length?(n=(i=Array.from(u)).length-1,s()):i.slice()},o.invertExtent=function(u){var l=i.indexOf(u);return l<0?[NaN,NaN]:l<1?[e,r[0]]:l>=n?[r[n-1],t]:[r[l-1],r[l]]},o.unknown=function(u){return arguments.length&&(a=u),o},o.thresholds=function(){return r.slice()},o.copy=function(){return Bb().domain([e,t]).range(i).unknown(a)},Rn.apply(Ri(o),arguments)}function Db(){var e=[.5],t=[0,1],n,r=1;function i(a){return a!=null&&a<=a?t[Er(e,a,0,r)]:n}return i.domain=function(a){return arguments.length?(e=Array.from(a),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(a){return arguments.length?(t=Array.from(a),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(a){var o=t.indexOf(a);return[e[o-1],e[o]]},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return Db().domain(e).range(t).unknown(n)},Rn.apply(i,arguments)}function M8(e){return new Date(e)}function P8(e){return e instanceof Date?+e:+new Date(+e)}function fd(e,t,n,r,i,a,o,s,u,l){var f=bb(),c=f.invert,h=f.domain,d=l(".%L"),p=l(":%S"),m=l("%I:%M"),y=l("%I %p"),w=l("%a %d"),_=l("%b %d"),C=l("%B"),E=l("%Y");function k(B){return(u(B)<B?d:s(B)<B?p:o(B)<B?m:a(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,P8)):h().map(M8)},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?k: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(xb(I,B)):f},f.copy=function(){return Cs(f,fd(e,t,n,r,i,a,o,s,u,l))},f}function L8(){return Rn.apply(fd(E4,_4,Tr,Zo,qo,wi,hh,ch,Cr,vh).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function N8(){return Rn.apply(fd(x4,A4,kr,Yo,Wo,xi,gh,ph,Cr,xh).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Yu(){var e=0,t=1,n,r,i,a,o=zt,s=!1,u;function l(c){return c==null||isNaN(c=+c)?u:o(i===0?.5:(c=(a(c)-n)*i,s?Math.max(0,Math.min(1,c)):c))}l.domain=function(c){return arguments.length?([e,t]=c,n=a(e=+e),r=a(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?(o=c,l):o};function f(c){return function(h){var d,p;return arguments.length?([d,p]=h,o=c(d,p),l):[o(0),o(1)]}}return l.range=f(Mr),l.rangeRound=f(Ss),l.unknown=function(c){return arguments.length?(u=c,l):u},function(c){return a=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 cd(){var e=Ri(Yu()(zt));return e.copy=function(){return Pr(e,cd())},Dr.apply(e,arguments)}function Fb(){var e=ad(Yu()).domain([1,10]);return e.copy=function(){return Pr(e,Fb()).base(e.base())},Dr.apply(e,arguments)}function Rb(){var e=sd(Yu());return e.copy=function(){return Pr(e,Rb()).constant(e.constant())},Dr.apply(e,arguments)}function hd(){var e=ld(Yu());return e.copy=function(){return Pr(e,hd()).exponent(e.exponent())},Dr.apply(e,arguments)}function O8(){return hd.apply(null,arguments).exponent(.5)}function Qu(){var e=0,t=.5,n=1,r=1,i,a,o,s,u,l=zt,f,c=!1,h;function d(m){return isNaN(m=+m)?h:(m=.5+((m=+f(m))-a)*(r*m<r*a?s:u),l(c?Math.max(0,Math.min(1,m)):m))}d.domain=function(m){return arguments.length?([e,t,n]=m,i=f(e=+e),a=f(t=+t),o=f(n=+n),s=i===a?0:.5/(a-i),u=a===o?0:.5/(o-a),r=a<i?-1:1,d):[e,t,n]},d.clamp=function(m){return arguments.length?(c=!!m,d):c},d.interpolator=function(m){return arguments.length?(l=m,d):l};function p(m){return function(y){var w,_,C;return arguments.length?([w,_,C]=y,l=nd(m,[w,_,C]),d):[l(0),l(.5),l(1)]}}return d.range=p(Mr),d.rangeRound=p(Ss),d.unknown=function(m){return arguments.length?(h=m,d):h},function(m){return f=m,i=m(e),a=m(t),o=m(n),s=i===a?0:.5/(a-i),u=a===o?0:.5/(o-a),r=a<i?-1:1,d}}function Mb(){var e=Ri(Qu()(zt));return e.copy=function(){return Pr(e,Mb())},Dr.apply(e,arguments)}function Pb(){var e=ad(Qu()).domain([.1,1,10]);return e.copy=function(){return Pr(e,Pb()).base(e.base())},Dr.apply(e,arguments)}function Lb(){var e=sd(Qu());return e.copy=function(){return Pr(e,Lb()).constant(e.constant())},Dr.apply(e,arguments)}function dd(){var e=ld(Qu());return e.copy=function(){return Pr(e,dd()).exponent(e.exponent())},Dr.apply(e,arguments)}function z8(){return dd.apply(null,arguments).exponent(.5)}function pd(e,t,n){const r=e-t+n*2;return e?r>0?r:1:0}const U8="identity",Fa="linear",Lr="log",Ts="pow",ks="sqrt",$u="symlog",Nb="time",Ob="utc",Ln="sequential",Ra="diverging",gd="quantile",zb="quantize",Ub="threshold",md="ordinal",bd="point",Gb="band",yd="bin-ordinal",it="continuous",Is="discrete",Bs="discretizing",en="interpolating",Hb="temporal";function G8(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 H8(e){return function(t){const n=e.range();let r=t[0],i=t[1],a=-1,o,s,u,l;for(i<r&&(s=r,r=i,i=s),u=0,l=n.length;u<l;++u)n[u]>=r&&n[u]<=i&&(a<0&&(a=u),o=u);if(!(a<0))return r=e.invertExtent(n[a]),i=e.invertExtent(n[o]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function wd(){const e=Oh().unknown(void 0),t=e.domain,n=e.range;let r=[0,1],i,a,o=!1,s=0,u=0,l=.5;delete e.unknown;function f(){const c=t().length,h=r[1]<r[0],d=r[1-h],p=pd(c,s,u);let m=r[h-0];i=(d-m)/(p||1),o&&(i=Math.floor(i)),m+=(d-m-i*(c-s))*l,a=i*(1-s),o&&(m=Math.round(m),a=Math.round(a));const y=jo(c).map(w=>m+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]],o=!0,f()},e.bandwidth=function(){return a},e.step=function(){return i},e.round=function(c){return arguments.length?(o=!!c,f()):o},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 m=+c[0],y=+c[1],w,_,C;if(!(m!==m||y!==y)&&(y<m&&(C=m,m=y,y=C),!(y<d[0]||m>r[1-h])))return w=Math.max(0,Er(d,m)-1),_=m===y?w:Er(d,y)-1,m-d[w]>a+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 wd().domain(t()).range(r).round(o).paddingInner(s).paddingOuter(u).align(l)},f()}function Vb(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return Vb(t())},e}function V8(){return Vb(wd().paddingInner(1))}var j8=Array.prototype.map;function q8(e){return j8.call(e,Uo)}const Z8=Array.prototype.slice;function jb(){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=q8(r),n):e.slice()},n.range=function(r){return arguments.length?(t=Z8.call(r),n):t.slice()},n.tickFormat=function(r,i){return yb(e[0],gn(e),r??10,i)},n.copy=function(){return jb().domain(n.domain()).range(n.range())},n}const Xu={};function W8(e,t,n){const r=function(){const a=t();return a.invertRange||(a.invertRange=a.invert?G8(a):a.invertExtent?H8(a):void 0),a.type=e,a};return r.metadata=pu(Qc(n)),r}function Ae(e,t,n){return arguments.length>1?(Xu[e]=W8(e,t,n),this):Y8(e)?Xu[e]:void 0}Ae(U8,vb),Ae(Fa,wb,it),Ae(Lr,od,[it,Lr]),Ae(Ts,ud,it),Ae(ks,R8,it),Ae($u,Tb,it),Ae(Nb,L8,[it,Hb]),Ae(Ob,N8,[it,Hb]),Ae(Ln,cd,[it,en]),Ae("".concat(Ln,"-").concat(Fa),cd,[it,en]),Ae("".concat(Ln,"-").concat(Lr),Fb,[it,en,Lr]),Ae("".concat(Ln,"-").concat(Ts),hd,[it,en]),Ae("".concat(Ln,"-").concat(ks),O8,[it,en]),Ae("".concat(Ln,"-").concat($u),Rb,[it,en]),Ae("".concat(Ra,"-").concat(Fa),Mb,[it,en]),Ae("".concat(Ra,"-").concat(Lr),Pb,[it,en,Lr]),Ae("".concat(Ra,"-").concat(Ts),dd,[it,en]),Ae("".concat(Ra,"-").concat(ks),z8,[it,en]),Ae("".concat(Ra,"-").concat($u),Lb,[it,en]),Ae(gd,Ib,[Bs,gd]),Ae(zb,Bb,Bs),Ae(Ub,Db,Bs),Ae(yd,jb,[Is,Bs]),Ae(md,Oh,Is),Ae(Gb,wd,Is),Ae(bd,V8,Is);function Y8(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 Nn(e){return Ds(e,Is)}function Mi(e){return Ds(e,Bs)}function qb(e){return Ds(e,Lr)}function Ku(e){return Ds(e,en)}function Q8(e,t){const n=t[0],r=gn(t)-n;return function(i){return e(n+i*r)}}function Ju(e,t,n){return nd(Zb(t||"rgb",n),e)}function $8(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=x8[X8(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function X8(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const K8={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"},J8={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 Wb(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 Yb(e,t){for(const n in e)vd(n,t(e[n]))}const Qb={};Yb(J8,Wb),Yb(K8,e=>Ju(Wb(e)));function vd(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(Qb[e]=t,this):Qb[e]}function e5(){let e=0,t,n=0;const r=new Map,i=a=>(a===t||(n=r.get(a),n===void 0&&(n=e++,r.set(a,n)),t=a),n);return i.addAll=a=>{for(const o of a)i(o)},i.invert=a=>{for(const o of r.entries())if(o[1]==a)return o[0]},i.domain=()=>[...r.keys()],i}function ef(){const e=t=>t;return e.invert=t=>t,e.copy=ef,e.invertRange=()=>{},e.type="null",e}function t5(e,t){const n={};t||(t=e.encoding);for(const[r,i]of Object.entries(t)){if(!i)continue;const a=((Ut(i)&&i.resolutionChannel)??(Oi(r)&&r))||void 0,o=e.unitView.getScaleResolution(a);n[r]=n5(t[r],o==null?void 0:o.getScale(),e.unitView.getAccessor(r),r)}return n}function n5(e,t,n,r){let i;if(vn(e)){const a=e.value;i=o=>a,i.constant=!0,i.constantValue=!0,i.accessor=void 0}else if(n)if(r=="text")i=a=>{},i.accessor=n,i.constant=n.constant;else{if(!t)if(!Oi(r))t=ef();else throw new Error(`Missing scale! "${r}": ${JSON.stringify(e)}`);if(i=a=>t(n(a)),Nn(t.type)){const a=e5();a.addAll(t.domain()),i.indexer=a}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?a=>t.invert(a):a=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(e))},i.channelDef=e,i.applyMetadata=a=>{for(const o in i)o in i&&(a[o]=i[o]);return a},i}function vn(e){return e&&"value"in e}function Pi(e){return e&&"field"in e}function Fs(e){return e&&"datum"in e}function Ut(e){return Pi(e)||Fs(e)||tf(e)||$b(e)}function xd(e,t){const n=e.mark.encoding[t];if(Ut(n))return n;throw new Error("Not a channel def with scale!")}function $b(e){return e&&"chrom"in e}function tf(e){return e&&"expr"in e}const Ma=["x","y"],r5=["x2","y2"],i5=[...Ma,...r5];function Xb(e){return Ma.includes(e)}function Rs(e){return i5.includes(e)}const Ad={x:"x2",y:"y2"},Kb=Object.fromEntries(Object.entries(Ad).map(e=>[e[1],e[0]]));function Ms(e){return e in Kb}function a5(e){const t=Ad[e];if(t)return t;throw new Error(`${e} has no secondary channel!`)}function Li(e){return Kb[e]??e}function Ni(e){return["color","fill","stroke"].includes(Li(e))}function nf(e){return["shape","squeeze"].includes(e)}function Oi(e){return["x","y","x2","y2","color","fill","stroke","opacity","fillOpacity","strokeOpacity","strokeWidth","size","shape","angle","dx","dy","sample"].includes(e)}function o5(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 Jb(e){if(!nf(e))throw new Error("Not a discrete channel: "+e);const t=new Map(o5(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 lu(e)}class s5{constructor(){this.accessorCreators=[],this.register(t=>{if(Pi(t))try{const n=Re(t.field);return n.constant=!1,n.fields=su(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(t=>tf(t)?l5(t.expr):void 0),this.register(t=>{if(Fs(t)){const r=B_(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 l5(e){const n=Nu(e);return n.constant=n.fields.length==0,n}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
162
+ `&&++U;else{if(ys(r.charCodeAt(0)))break;e+=r}return t!==""&&ye({},ut,mt),{type:gs,value:e,octal:a,start:n,end:U}}function l6(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({},Ih)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{ye({},Ih)}try{return new RegExp(e,t)}catch{return null}}function u6(){var e,t,n,r,i;for(e=K[U],Ru(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({},Bh),t+=e;else if(ys(e.charCodeAt(0)))ye({},Bh);else if(n)e==="]"&&(n=!1);else if(e==="/"){r=!0;break}else e==="["&&(n=!0);return r||ye({},Bh),i=t.substr(1,t.length-2),{value:i,literal:t}}function f6(){var e,t,n;for(t="",n="";U<xt&&(e=K[U],!!Mu(e.charCodeAt(0)));)++U,e==="\\"&&U<xt?ye({},ut,mt):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&ye({},Ih,n),{value:n,literal:t}}function c6(){var e,t,n,r;return Te=null,b1(),e=U,t=u6(),n=f6(),r=l6(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:U}}function h6(e){return e.type===Ci||e.type===Br||e.type===Du||e.type===Fu}function v1(){if(b1(),U>=xt)return{type:ps,start:U,end:U};const e=K.charCodeAt(U);return ws(e)?i6():e===40||e===41||e===59?Rh():e===39||e===34?s6():e===46?nr(K.charCodeAt(U+1))?w1():Rh():nr(e)?w1():Rh()}function Ot(){const e=Te;return U=e.end,Te=v1(),U=e.end,e}function x1(){const e=U;Te=v1(),U=e}function d6(e){const t=new bn(LC);return t.elements=e,t}function A1(e,t,n){const r=new bn(e==="||"||e==="&&"?GC:NC);return r.operator=e,r.left=t,r.right=n,r}function p6(e,t){const n=new bn(OC);return n.callee=e,n.arguments=t,n}function g6(e,t,n){const r=new bn(zC);return r.test=e,r.consequent=t,r.alternate=n,r}function Mh(e){const t=new bn(g1);return t.name=e,t}function vs(e){const t=new bn(UC);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 E1(e,t,n){const r=new bn(HC);return r.computed=e==="[",r.object=t,r.property=n,r.computed||(n.member=!0),r}function m6(e){const t=new bn(VC);return t.properties=e,t}function _1(e,t,n){const r=new bn(jC);return r.key=t,r.value=n,r.kind=e,r}function b6(e,t){const n=new bn(qC);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,(a,o)=>(Ru(o<r.length,"Message reference must be in range"),r[o]));throw n=new Error(i),n.index=U,n.description=i,n}function Pu(e){e.type===ps&&ye(e,$C),e.type===Ti&&ye(e,ZC),e.type===gs&&ye(e,WC),e.type===Ci&&ye(e,YC),e.type===Br&&ye(e,QC),ye(e,ut,e.value)}function At(e){const t=Ot();(t.type!==Nt||t.value!==e)&&Pu(t)}function Ue(e){return Te.type===Nt&&Te.value===e}function Ph(e){return Te.type===Br&&Te.value===e}function y6(){const e=[];for(U=Te.start,At("[");!Ue("]");)Ue(",")?(Ot(),e.push(null)):(e.push(ki()),Ue("]")||At(","));return Ot(),d6(e)}function S1(){U=Te.start;const e=Ot();return e.type===gs||e.type===Ti?(e.octal&&ye(e,m1),vs(e)):Mh(e.value)}function w6(){var e,t,n,r;if(U=Te.start,e=Te,e.type===Ci)return n=S1(),At(":"),r=ki(),_1("init",n,r);if(e.type===ps||e.type===Nt)Pu(e);else return t=S1(),At(":"),r=ki(),_1("init",t,r)}function v6(){var e=[],t,n,r,i={},a=String;for(U=Te.start,At("{");!Ue("}");)t=w6(),t.key.type===g1?n=t.key.name:n=a(t.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?ye({},XC):i[r]=!0,e.push(t),Ue("}")||At(",");return At("}"),m6(e)}function x6(){At("(");const e=Lh();return At(")"),e}const A6={if:1};function E6(){var e,t,n;if(Ue("("))return x6();if(Ue("["))return y6();if(Ue("{"))return v6();if(e=Te.type,U=Te.start,e===Ci||A6[Te.value])n=Mh(Ot().value);else if(e===gs||e===Ti)Te.octal&&ye(Te,m1),n=vs(Ot());else{if(e===Br)throw new Error(ms);e===Du?(t=Ot(),t.value=t.value==="true",n=vs(t)):e===Fu?(t=Ot(),t.value=null,n=vs(t)):Ue("/")||Ue("/=")?(n=vs(c6()),x1()):Pu(Ot())}return n}function _6(){const e=[];if(At("("),!Ue(")"))for(;U<xt&&(e.push(ki()),!Ue(")"));)At(",");return At(")"),e}function S6(){U=Te.start;const e=Ot();return h6(e)||Pu(e),Mh(e.value)}function C6(){return At("."),S6()}function T6(){At("[");const e=Lh();return At("]"),e}function k6(){var e,t,n;for(e=E6();;)if(Ue("."))n=C6(),e=E1(".",e,n);else if(Ue("("))t=_6(),e=p6(e,t);else if(Ue("["))n=T6(),e=E1("[",e,n);else break;return e}function C1(){const e=k6();if(Te.type===Nt&&(Ue("++")||Ue("--")))throw new Error(ms);return e}function Lu(){var e,t;if(Te.type!==Nt&&Te.type!==Br)t=C1();else{if(Ue("++")||Ue("--"))throw new Error(ms);if(Ue("+")||Ue("-")||Ue("~")||Ue("!"))e=Ot(),t=Lu(),t=b6(e.value,t);else{if(Ph("delete")||Ph("void")||Ph("typeof"))throw new Error(ms);t=C1()}}return t}function T1(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 I6(){var e,t,n,r,i,a,o,s,u,l;if(e=Te,u=Lu(),r=Te,i=T1(r),i===0)return u;for(r.prec=i,Ot(),t=[e,Te],o=Lu(),a=[u,r,o];(i=T1(Te))>0;){for(;a.length>2&&i<=a[a.length-2].prec;)o=a.pop(),s=a.pop().value,u=a.pop(),t.pop(),n=A1(s,u,o),a.push(n);r=Ot(),r.prec=i,a.push(r),t.push(Te),n=Lu(),a.push(n)}for(l=a.length-1,n=a[l],t.pop();l>1;)t.pop(),n=A1(a[l-1].value,a[l-2],n),l-=2;return n}function ki(){var e,t,n;return e=I6(),Ue("?")&&(Ot(),t=ki(),At(":"),n=ki(),e=g6(e,t,n)),e}function Lh(){const e=ki();if(Ue(","))throw new Error(ms);return e}function B6(e){K=e,U=0,xt=K.length,Te=null,x1();const t=Lh();if(Te.type!==ps)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 k1(e){function t(o,s,u,l){let f=e(s[0]);return u&&(f=u+"("+f+")",u.lastIndexOf("new ",0)===0&&(f="("+f+")")),f+"."+o+(l<0?"":l===0?"()":"("+s.slice(1).map(e).join(",")+")")}function n(o,s,u){return l=>t(o,l,s,u)}const r="new Date",i="String",a="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(o){o.length<3&&Qe("Missing arguments to clamp function."),o.length>3&&Qe("Too many arguments to clamp function.");const s=o.map(e);return"Math.max("+s[1]+", Math.min("+s[2]+","+s[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:a,test:n("test",a),if:function(o){o.length<3&&Qe("Missing arguments to if function."),o.length>3&&Qe("Too many arguments to if function.");const s=o.map(e);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function F6(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function R6(e){e=e||{};const t=e.allowed?pu(e.allowed):{},n=e.forbidden?pu(e.forbidden):{},r=e.constants||D6,i=(e.functions||k1)(c),a=e.globalvar,o=e.fieldvar,s=Mt(a)?a:p=>`${a}["${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===o&&(l[F6(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 I1(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 M6(e,t,n){return xs((n-e)/(t-e),0,1)}const B1={clamp:xs,isArray:Ft,isBoolean:Go,isDefined(e){return e!==void 0},isNumber:Ct,isObject:Rt,isRegExp:M_,isString:Pe,isValid(e){return e!=null&&e===e},lerp:em,linearstep:M6,smoothstep:I1};function P6(e){const t=k1(e);for(const n in B1)t[n]=`this.${n}`;return t}const L6=R6({forbidden:[],allowed:["datum"],globalvar:"globalObject",fieldvar:"datum",functions:P6});function Nu(e,t={}){try{const n=B6(e),r=L6(n),i=Function("datum","globalObject",`"use strict"; return (${r.code});`).bind(B1),a=o=>i(o,t);return a.fields=r.fields,a.globals=r.globals,a.code=r.code,a}catch(n){throw new Error(`Invalid expression: ${e}, ${n.message}`)}}function Rn(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 Nh=Symbol("implicit");function Oh(){var e=new _r,t=[],n=[],r=Nh;function i(a){let o=e.get(a);if(o===void 0){if(r!==Nh)return r;e.set(a,o=t.push(a)-1)}return n[o%n.length]}return i.domain=function(a){if(!arguments.length)return t.slice();t=[],e=new _r;for(const o of a)e.has(o)||e.set(o,t.push(o)-1);return i},i.range=function(a){return arguments.length?(n=Array.from(a),i):n.slice()},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return Oh(t,n).unknown(r)},Rn.apply(i,arguments),i}function ka(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,Ia=1/Ii,Ba="\\s*([+-]?\\d+)\\s*",Es="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Mn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",N6=/^#([0-9a-f]{3,8})$/,O6=new RegExp(`^rgb\\(${Ba},${Ba},${Ba}\\)$`),z6=new RegExp(`^rgb\\(${Mn},${Mn},${Mn}\\)$`),U6=new RegExp(`^rgba\\(${Ba},${Ba},${Ba},${Es}\\)$`),G6=new RegExp(`^rgba\\(${Mn},${Mn},${Mn},${Es}\\)$`),H6=new RegExp(`^hsl\\(${Es},${Mn},${Mn}\\)$`),V6=new RegExp(`^hsla\\(${Es},${Mn},${Mn},${Es}\\)$`),D1={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};ka(Fr,Rr,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:F1,formatHex:F1,formatHex8:j6,formatHsl:q6,formatRgb:R1,toString:R1});function F1(){return this.rgb().formatHex()}function j6(){return this.rgb().formatHex8()}function q6(){return O1(this).formatHsl()}function R1(){return this.rgb().formatRgb()}function Rr(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=N6.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?M1(t):n===3?new ft(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Ou(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Ou(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=O6.exec(e))?new ft(t[1],t[2],t[3],1):(t=z6.exec(e))?new ft(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=U6.exec(e))?Ou(t[1],t[2],t[3],t[4]):(t=G6.exec(e))?Ou(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=H6.exec(e))?N1(t[1],t[2]/100,t[3]/100,1):(t=V6.exec(e))?N1(t[1],t[2]/100,t[3]/100,t[4]):D1.hasOwnProperty(e)?M1(D1[e]):e==="transparent"?new ft(NaN,NaN,NaN,0):null}function M1(e){return new ft(e>>16&255,e>>8&255,e&255,1)}function Ou(e,t,n,r){return r<=0&&(e=t=n=NaN),new ft(e,t,n,r)}function zh(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 zu(e,t,n,r){return arguments.length===1?zh(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}ka(ft,zu,As(Fr,{brighter(e){return e=e==null?Ia:Math.pow(Ia,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),Uu(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:P1,formatHex:P1,formatHex8:Z6,formatRgb:L1,toString:L1}));function P1(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}`}function Z6(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}${Di((isNaN(this.opacity)?1:this.opacity)*255)}`}function L1(){const e=Uu(this.opacity);return`${e===1?"rgb(":"rgba("}${Bi(this.r)}, ${Bi(this.g)}, ${Bi(this.b)}${e===1?")":`, ${e})`}`}function Uu(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 N1(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 O1(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),a=Math.max(t,n,r),o=NaN,s=a-i,u=(a+i)/2;return s?(t===a?o=(n-r)/s+(n<r)*6:n===a?o=(r-t)/s+2:o=(t-n)/s+4,s/=u<.5?a+i:2-a-i,o*=60):s=u>0&&u<1?0:o,new yn(o,s,u,e.opacity)}function Uh(e,t,n,r){return arguments.length===1?O1(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}ka(yn,Uh,As(Fr,{brighter(e){return e=e==null?Ia:Math.pow(Ia,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(Gh(e>=240?e-240:e+120,i,r),Gh(e,i,r),Gh(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new yn(z1(this.h),Gu(this.s),Gu(this.l),Uu(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=Uu(this.opacity);return`${e===1?"hsl(":"hsla("}${z1(this.h)}, ${Gu(this.s)*100}%, ${Gu(this.l)*100}%${e===1?")":`, ${e})`}`}}));function z1(e){return e=(e||0)%360,e<0?e+360:e}function Gu(e){return Math.max(0,Math.min(1,e||0))}function Gh(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 U1=Math.PI/180,G1=180/Math.PI,Hu=18,H1=.96422,V1=1,j1=.82521,q1=4/29,Da=6/29,Z1=3*Da*Da,W6=Da*Da*Da;function W1(e){if(e instanceof Pn)return new Pn(e.l,e.a,e.b,e.opacity);if(e instanceof rr)return Y1(e);e instanceof ft||(e=zh(e));var t=Zh(e.r),n=Zh(e.g),r=Zh(e.b),i=Vh((.2225045*t+.7168786*n+.0606169*r)/V1),a,o;return t===n&&n===r?a=o=i:(a=Vh((.4360747*t+.3850649*n+.1430804*r)/H1),o=Vh((.0139322*t+.0971045*n+.7141733*r)/j1)),new Pn(116*i-16,500*(a-i),200*(i-o),e.opacity)}function Hh(e,t,n,r){return arguments.length===1?W1(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}ka(Pn,Hh,As(Fr,{brighter(e){return new Pn(this.l+Hu*(e??1),this.a,this.b,this.opacity)},darker(e){return new Pn(this.l-Hu*(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=H1*jh(t),e=V1*jh(e),n=j1*jh(n),new ft(qh(3.1338561*t-1.6168667*e-.4906146*n),qh(-.9787684*t+1.9161415*e+.033454*n),qh(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function Vh(e){return e>W6?Math.pow(e,1/3):e/Z1+q1}function jh(e){return e>Da?e*e*e:Z1*(e-q1)}function qh(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 Y6(e){if(e instanceof rr)return new rr(e.h,e.c,e.l,e.opacity);if(e instanceof Pn||(e=W1(e)),e.a===0&&e.b===0)return new rr(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*G1;return new rr(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function Wh(e,t,n,r){return arguments.length===1?Y6(e):new rr(e,t,n,r??1)}function rr(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function Y1(e){if(isNaN(e.h))return new Pn(e.l,0,0,e.opacity);var t=e.h*U1;return new Pn(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}ka(rr,Wh,As(Fr,{brighter(e){return new rr(this.h,this.c,this.l+Hu*(e??1),this.opacity)},darker(e){return new rr(this.h,this.c,this.l-Hu*(e??1),this.opacity)},rgb(){return Y1(this).rgb()}}));var Q1=-.14861,Yh=1.78277,Qh=-.29227,Vu=-.90649,_s=1.97294,$1=_s*Vu,X1=_s*Yh,K1=Yh*Qh-Vu*Q1;function Q6(e){if(e instanceof Fi)return new Fi(e.h,e.s,e.l,e.opacity);e instanceof ft||(e=zh(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(K1*r+$1*t-X1*n)/(K1+$1-X1),a=r-i,o=(_s*(n-i)-Qh*a)/Vu,s=Math.sqrt(o*o+a*a)/(_s*i*(1-i)),u=s?Math.atan2(o,a)*G1-120:NaN;return new Fi(u<0?u+360:u,s,i,e.opacity)}function $h(e,t,n,r){return arguments.length===1?Q6(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}ka(Fi,$h,As(Fr,{brighter(e){return e=e==null?Ia:Math.pow(Ia,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)*U1,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+Yh*i)),255*(t+n*(Qh*r+Vu*i)),255*(t+n*(_s*r)),this.opacity)}}));function J1(e,t,n,r,i){var a=e*e,o=a*e;return((1-3*e+3*a-o)*t+(4-6*a+3*o)*n+(1+3*e+3*a-3*o)*r+o*i)/6}function eb(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],a=e[r+1],o=r>0?e[r-1]:2*i-a,s=r<t-1?e[r+2]:2*a-i;return J1((n-r/t)*t,o,i,a,s)}}function tb(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),i=e[(r+t-1)%t],a=e[r%t],o=e[(r+1)%t],s=e[(r+2)%t];return J1((n-r/t)*t,i,a,o,s)}}const ju=e=>()=>e;function nb(e,t){return function(n){return e+n*t}}function $6(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 qu(e,t){var n=t-e;return n?nb(e,n>180||n<-180?n-360*Math.round(n/360):n):ju(isNaN(e)?t:e)}function X6(e){return(e=+e)==1?ct:function(t,n){return n-t?$6(t,n,e):ju(isNaN(t)?n:t)}}function ct(e,t){var n=t-e;return n?nb(e,n):ju(isNaN(e)?t:e)}const Xh=function e(t){var n=X6(t);function r(i,a){var o=n((i=zu(i)).r,(a=zu(a)).r),s=n(i.g,a.g),u=n(i.b,a.b),l=ct(i.opacity,a.opacity);return function(f){return i.r=o(f),i.g=s(f),i.b=u(f),i.opacity=l(f),i+""}}return r.gamma=e,r}(1);function rb(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),a=new Array(n),o,s;for(o=0;o<n;++o)s=zu(t[o]),r[o]=s.r||0,i[o]=s.g||0,a[o]=s.b||0;return r=e(r),i=e(i),a=e(a),s.opacity=1,function(u){return s.r=r(u),s.g=i(u),s.b=a(u),s+""}}}var K6=rb(eb),J6=rb(tb);function Kh(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function ib(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function e8(e,t){return(ib(t)?Kh:ab)(e,t)}function ab(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),a=new Array(n),o;for(o=0;o<r;++o)i[o]=Mr(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(s){for(o=0;o<r;++o)a[o]=i[o](s);return a}}function ob(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 sb(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(a){for(i in n)r[i]=n[i](a);return r}}var Jh=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ed=new RegExp(Jh.source,"g");function t8(e){return function(){return e}}function n8(e){return function(t){return e(t)+""}}function lb(e,t){var n=Jh.lastIndex=ed.lastIndex=0,r,i,a,o=-1,s=[],u=[];for(e=e+"",t=t+"";(r=Jh.exec(e))&&(i=ed.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,u.push({i:o,x:wn(r,i)})),n=ed.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?u[0]?n8(u[0].x):t8(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"?ju(t):(n==="number"?wn:n==="string"?(r=Rr(t))?(t=r,Xh):lb:t instanceof Rr?Xh:t instanceof Date?ob:ib(t)?Kh:Array.isArray(t)?ab:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?sb:wn)(e,t)}function r8(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function i8(e,t){var n=qu(+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 ub=180/Math.PI,td={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function fb(e,t,n,r,i,a){var o,s,u;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(u=e*n+t*r)&&(n-=e*u,r-=t*u),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,u/=s),e*r<t*n&&(e=-e,t=-t,u=-u,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*ub,skewX:Math.atan(u)*ub,scaleX:o,scaleY:s}}var Zu;function a8(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?td:fb(t.a,t.b,t.c,t.d,t.e,t.f)}function o8(e){return e==null||(Zu||(Zu=document.createElementNS("http://www.w3.org/2000/svg","g")),Zu.setAttribute("transform",e),!(e=Zu.transform.baseVal.consolidate()))?td:(e=e.matrix,fb(e.a,e.b,e.c,e.d,e.e,e.f))}function cb(e,t,n,r){function i(l){return l.length?l.pop()+" ":""}function a(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 o(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),a(l.translateX,l.translateY,f.translateX,f.translateY,c,h),o(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 s8=cb(a8,"px, ","px)","deg)"),l8=cb(o8,", ",")",")"),u8=1e-12;function hb(e){return((e=Math.exp(e))+1/e)/2}function f8(e){return((e=Math.exp(e))-1/e)/2}function c8(e){return((e=Math.exp(2*e))-1)/(e+1)}const h8=function e(t,n,r){function i(a,o){var s=a[0],u=a[1],l=a[2],f=o[0],c=o[1],h=o[2],d=f-s,p=c-u,b=d*d+p*p,y,w;if(b<u8)w=Math.log(h/l)/t,y=function(B){return[s+B*d,u+B*p,l*Math.exp(t*B*w)]};else{var E=Math.sqrt(b),C=(h*h-l*l+r*b)/(2*l*n*E),_=(h*h-l*l-r*b)/(2*h*n*E),k=Math.log(Math.sqrt(C*C+1)-C),I=Math.log(Math.sqrt(_*_+1)-_);w=(I-k)/t,y=function(B){var R=B*w,L=hb(k),j=l/(n*E)*(L*c8(t*R+k)-f8(k));return[s+j*d,u+j*p,l*L/hb(t*R+k)]}}return y.duration=w*1e3*t/Math.SQRT2,y}return i.rho=function(a){var o=Math.max(.001,+a),s=o*o,u=s*s;return e(o,s,u)},i}(Math.SQRT2,2,4);function db(e){return function(t,n){var r=e((t=Uh(t)).h,(n=Uh(n)).h),i=ct(t.s,n.s),a=ct(t.l,n.l),o=ct(t.opacity,n.opacity);return function(s){return t.h=r(s),t.s=i(s),t.l=a(s),t.opacity=o(s),t+""}}}const d8=db(qu);var p8=db(ct);function g8(e,t){var n=ct((e=Hh(e)).l,(t=Hh(t)).l),r=ct(e.a,t.a),i=ct(e.b,t.b),a=ct(e.opacity,t.opacity);return function(o){return e.l=n(o),e.a=r(o),e.b=i(o),e.opacity=a(o),e+""}}function pb(e){return function(t,n){var r=e((t=Wh(t)).h,(n=Wh(n)).h),i=ct(t.c,n.c),a=ct(t.l,n.l),o=ct(t.opacity,n.opacity);return function(s){return t.h=r(s),t.c=i(s),t.l=a(s),t.opacity=o(s),t+""}}}const m8=pb(qu);var b8=pb(ct);function gb(e){return function t(n){n=+n;function r(i,a){var o=e((i=$h(i)).h,(a=$h(a)).h),s=ct(i.s,a.s),u=ct(i.l,a.l),l=ct(i.opacity,a.opacity);return function(f){return i.h=o(f),i.s=s(f),i.l=u(Math.pow(f,n)),i.opacity=l(f),i+""}}return r.gamma=t,r}(1)}const y8=gb(qu);var w8=gb(ct);function nd(e,t){t===void 0&&(t=e,e=Mr);for(var n=0,r=t.length-1,i=t[0],a=new Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return function(o){var s=Math.max(0,Math.min(r-1,Math.floor(o*=r)));return a[s](o-s)}}function v8(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}const x8=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Mr,interpolateArray:e8,interpolateBasis:eb,interpolateBasisClosed:tb,interpolateCubehelix:y8,interpolateCubehelixLong:w8,interpolateDate:ob,interpolateDiscrete:r8,interpolateHcl:m8,interpolateHclLong:b8,interpolateHsl:d8,interpolateHslLong:p8,interpolateHue:i8,interpolateLab:g8,interpolateNumber:wn,interpolateNumberArray:Kh,interpolateObject:sb,interpolateRgb:Xh,interpolateRgbBasis:K6,interpolateRgbBasisClosed:J6,interpolateRound:Ss,interpolateString:lb,interpolateTransformCss:s8,interpolateTransformSvg:l8,interpolateZoom:h8,piecewise:nd,quantize:v8},Symbol.toStringTag,{value:"Module"}));function A8(e){return function(){return e}}function rd(e){return+e}var mb=[0,1];function zt(e){return e}function id(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:A8(isNaN(t)?NaN:.5)}function E8(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function _8(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=id(i,r),a=n(o,a)):(r=id(r,i),a=n(a,o)),function(s){return a(r(s))}}function S8(e,t,n){var r=Math.min(e.length,t.length)-1,i=new Array(r),a=new Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)i[o]=id(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(s){var u=Er(e,s,1,r)-1;return a[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 Wu(){var e=mb,t=mb,n=Mr,r,i,a,o=zt,s,u,l;function f(){var h=Math.min(e.length,t.length);return o!==zt&&(o=E8(e[0],e[h-1])),s=h>2?S8:_8,u=l=null,c}function c(h){return h==null||isNaN(h=+h)?a:(u||(u=s(e.map(r),t,n)))(r(o(h)))}return c.invert=function(h){return o(i((l||(l=s(t,e.map(r),wn)))(h)))},c.domain=function(h){return arguments.length?(e=Array.from(h,rd),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?(o=h?!0:zt,f()):o!==zt},c.interpolate=function(h){return arguments.length?(n=h,f()):n},c.unknown=function(h){return arguments.length?(a=h,c):a},function(h,d){return r=h,i=d,f()}}function bb(){return Wu()(zt,zt)}function yb(e,t,n,r){var i=bi(e,t,n),a;switch(r=Sr(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=vm(i,o))&&(r.precision=a),ah(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=xm(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=wm(i))&&(r.precision=a-(r.type==="%")*2);break}}return gt(r)}function Ri(e){var t=e.domain;return e.ticks=function(n){var r=t();return bu(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return yb(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],u,l,f=10;for(s<o&&(l=o,o=s,s=l,l=i,i=a,a=l);f-- >0;){if(l=cm(o,s,n),l===u)return r[i]=o,r[a]=s,t(r);if(l>0)o=Math.floor(o/l)*l,s=Math.ceil(s/l)*l;else if(l<0)o=Math.ceil(o*l)/l,s=Math.floor(s*l)/l;else break;u=l}return e},e}function wb(){var e=bb();return e.copy=function(){return Cs(e,wb())},Rn.apply(e,arguments),Ri(e)}function vb(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,rd),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return vb(e).unknown(t)},e=arguments.length?Array.from(e,rd):[0,1],Ri(n)}function xb(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return a<i&&(o=n,n=r,r=o,o=i,i=a,a=o),e[n]=t.floor(i),e[r]=t.ceil(a),e}function Ab(e){return Math.log(e)}function Eb(e){return Math.exp(e)}function C8(e){return-Math.log(-e)}function T8(e){return-Math.exp(-e)}function k8(e){return isFinite(e)?+("1e"+e):e<0?0:e}function I8(e){return e===10?k8:e===Math.E?Math.exp:t=>Math.pow(e,t)}function B8(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 _b(e){return(t,n)=>-e(-t,n)}function ad(e){const t=e(Ab,Eb),n=t.domain;let r=10,i,a;function o(){return i=B8(r),a=I8(r),n()[0]<0?(i=_b(i),a=_b(a),e(C8,T8)):e(Ab,Eb),t}return t.base=function(s){return arguments.length?(r=+s,o()):r},t.domain=function(s){return arguments.length?(n(s),o()):n()},t.ticks=s=>{const u=n();let l=u[0],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/a(-h):p*a(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/a(-h):p*a(h),!(b<l)){if(b>f)break;w.push(b)}w.length*2<y&&(w=bu(l,f,y))}else w=bu(h,d,Math.min(d-h,y)).map(a);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/a(Math.round(i(f)));return c*r<r-.5&&(c*=r),c<=l?u(f):""}},t.nice=()=>n(xb(n(),{floor:s=>a(Math.floor(i(s))),ceil:s=>a(Math.ceil(i(s)))})),t}function od(){const e=ad(Wu()).domain([1,10]);return e.copy=()=>Cs(e,od()).base(e.base()),Rn.apply(e,arguments),e}function Sb(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function Cb(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function sd(e){var t=1,n=e(Sb(t),Cb(t));return n.constant=function(r){return arguments.length?e(Sb(t=+r),Cb(t)):t},Ri(n)}function Tb(){var e=sd(Wu());return e.copy=function(){return Cs(e,Tb()).constant(e.constant())},Rn.apply(e,arguments)}function kb(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 F8(e){return e<0?-e*e:e*e}function ld(e){var t=e(zt,zt),n=1;function r(){return n===1?e(zt,zt):n===.5?e(D8,F8):e(kb(n),kb(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},Ri(t)}function ud(){var e=ld(Wu());return e.copy=function(){return Cs(e,ud()).exponent(e.exponent())},Rn.apply(e,arguments),e}function R8(){return ud.apply(null,arguments).exponent(.5)}function Ib(){var e=[],t=[],n=[],r;function i(){var o=0,s=Math.max(1,t.length);for(n=new Array(s-1);++o<s;)n[o-1]=hm(e,o/s);return a}function a(o){return o==null||isNaN(o=+o)?r:t[Er(n,o)]}return a.invertExtent=function(o){var s=t.indexOf(o);return s<0?[NaN,NaN]:[s>0?n[s-1]:e[0],s<n.length?n[s]:e[e.length-1]]},a.domain=function(o){if(!arguments.length)return e.slice();e=[];for(let s of o)s!=null&&!isNaN(s=+s)&&e.push(s);return e.sort(Vo),i()},a.range=function(o){return arguments.length?(t=Array.from(o),i()):t.slice()},a.unknown=function(o){return arguments.length?(r=o,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return Ib().domain(e).range(t).unknown(r)},Rn.apply(a,arguments)}function Bb(){var e=0,t=1,n=1,r=[.5],i=[0,1],a;function o(u){return u!=null&&u<=u?i[Er(r,u,0,n)]:a}function s(){var u=-1;for(r=new Array(n);++u<n;)r[u]=((u+1)*t-(u-n)*e)/(n+1);return o}return o.domain=function(u){return arguments.length?([e,t]=u,e=+e,t=+t,s()):[e,t]},o.range=function(u){return arguments.length?(n=(i=Array.from(u)).length-1,s()):i.slice()},o.invertExtent=function(u){var l=i.indexOf(u);return l<0?[NaN,NaN]:l<1?[e,r[0]]:l>=n?[r[n-1],t]:[r[l-1],r[l]]},o.unknown=function(u){return arguments.length&&(a=u),o},o.thresholds=function(){return r.slice()},o.copy=function(){return Bb().domain([e,t]).range(i).unknown(a)},Rn.apply(Ri(o),arguments)}function Db(){var e=[.5],t=[0,1],n,r=1;function i(a){return a!=null&&a<=a?t[Er(e,a,0,r)]:n}return i.domain=function(a){return arguments.length?(e=Array.from(a),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(a){return arguments.length?(t=Array.from(a),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(a){var o=t.indexOf(a);return[e[o-1],e[o]]},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return Db().domain(e).range(t).unknown(n)},Rn.apply(i,arguments)}function M8(e){return new Date(e)}function P8(e){return e instanceof Date?+e:+new Date(+e)}function fd(e,t,n,r,i,a,o,s,u,l){var f=bb(),c=f.invert,h=f.domain,d=l(".%L"),p=l(":%S"),b=l("%I:%M"),y=l("%I %p"),w=l("%a %d"),E=l("%b %d"),C=l("%B"),_=l("%Y");function k(I){return(u(I)<I?d:s(I)<I?p:o(I)<I?b:a(I)<I?y:r(I)<I?i(I)<I?w:E:n(I)<I?C:_)(I)}return f.invert=function(I){return new Date(c(I))},f.domain=function(I){return arguments.length?h(Array.from(I,P8)):h().map(M8)},f.ticks=function(I){var B=h();return e(B[0],B[B.length-1],I??10)},f.tickFormat=function(I,B){return B==null?k:l(B)},f.nice=function(I){var B=h();return(!I||typeof I.range!="function")&&(I=t(B[0],B[B.length-1],I??10)),I?h(xb(B,I)):f},f.copy=function(){return Cs(f,fd(e,t,n,r,i,a,o,s,u,l))},f}function L8(){return Rn.apply(fd(E4,_4,Tr,Zo,qo,wi,hh,ch,Cr,vh).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function N8(){return Rn.apply(fd(x4,A4,kr,Yo,Wo,xi,gh,ph,Cr,xh).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Yu(){var e=0,t=1,n,r,i,a,o=zt,s=!1,u;function l(c){return c==null||isNaN(c=+c)?u:o(i===0?.5:(c=(a(c)-n)*i,s?Math.max(0,Math.min(1,c)):c))}l.domain=function(c){return arguments.length?([e,t]=c,n=a(e=+e),r=a(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?(o=c,l):o};function f(c){return function(h){var d,p;return arguments.length?([d,p]=h,o=c(d,p),l):[o(0),o(1)]}}return l.range=f(Mr),l.rangeRound=f(Ss),l.unknown=function(c){return arguments.length?(u=c,l):u},function(c){return a=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 cd(){var e=Ri(Yu()(zt));return e.copy=function(){return Pr(e,cd())},Dr.apply(e,arguments)}function Fb(){var e=ad(Yu()).domain([1,10]);return e.copy=function(){return Pr(e,Fb()).base(e.base())},Dr.apply(e,arguments)}function Rb(){var e=sd(Yu());return e.copy=function(){return Pr(e,Rb()).constant(e.constant())},Dr.apply(e,arguments)}function hd(){var e=ld(Yu());return e.copy=function(){return Pr(e,hd()).exponent(e.exponent())},Dr.apply(e,arguments)}function O8(){return hd.apply(null,arguments).exponent(.5)}function Qu(){var e=0,t=.5,n=1,r=1,i,a,o,s,u,l=zt,f,c=!1,h;function d(b){return isNaN(b=+b)?h:(b=.5+((b=+f(b))-a)*(r*b<r*a?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),a=f(t=+t),o=f(n=+n),s=i===a?0:.5/(a-i),u=a===o?0:.5/(o-a),r=a<i?-1:1,d):[e,t,n]},d.clamp=function(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,E,C;return arguments.length?([w,E,C]=y,l=nd(b,[w,E,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),a=b(t),o=b(n),s=i===a?0:.5/(a-i),u=a===o?0:.5/(o-a),r=a<i?-1:1,d}}function Mb(){var e=Ri(Qu()(zt));return e.copy=function(){return Pr(e,Mb())},Dr.apply(e,arguments)}function Pb(){var e=ad(Qu()).domain([.1,1,10]);return e.copy=function(){return Pr(e,Pb()).base(e.base())},Dr.apply(e,arguments)}function Lb(){var e=sd(Qu());return e.copy=function(){return Pr(e,Lb()).constant(e.constant())},Dr.apply(e,arguments)}function dd(){var e=ld(Qu());return e.copy=function(){return Pr(e,dd()).exponent(e.exponent())},Dr.apply(e,arguments)}function z8(){return dd.apply(null,arguments).exponent(.5)}function pd(e,t,n){const r=e-t+n*2;return e?r>0?r:1:0}const U8="identity",Fa="linear",Lr="log",Ts="pow",ks="sqrt",$u="symlog",Nb="time",Ob="utc",Ln="sequential",Ra="diverging",gd="quantile",zb="quantize",Ub="threshold",md="ordinal",bd="point",Gb="band",yd="bin-ordinal",it="continuous",Is="discrete",Bs="discretizing",en="interpolating",Hb="temporal";function G8(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 H8(e){return function(t){const n=e.range();let r=t[0],i=t[1],a=-1,o,s,u,l;for(i<r&&(s=r,r=i,i=s),u=0,l=n.length;u<l;++u)n[u]>=r&&n[u]<=i&&(a<0&&(a=u),o=u);if(!(a<0))return r=e.invertExtent(n[a]),i=e.invertExtent(n[o]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function wd(){const e=Oh().unknown(void 0),t=e.domain,n=e.range;let r=[0,1],i,a,o=!1,s=0,u=0,l=.5;delete e.unknown;function f(){const c=t().length,h=r[1]<r[0],d=r[1-h],p=pd(c,s,u);let b=r[h-0];i=(d-b)/(p||1),o&&(i=Math.floor(i)),b+=(d-b-i*(c-s))*l,a=i*(1-s),o&&(b=Math.round(b),a=Math.round(a));const y=jo(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]],o=!0,f()},e.bandwidth=function(){return a},e.step=function(){return i},e.round=function(c){return arguments.length?(o=!!c,f()):o},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,E,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),E=b===y?w:Er(d,y)-1,b-d[w]>a+1e-10&&++w,h&&(C=w,w=p-E,E=p-C),w>E?void 0:t().slice(w,E+1)},e.invert=function(c){const h=e.invertRange([c,c]);return h&&h[0]},e.copy=function(){return wd().domain(t()).range(r).round(o).paddingInner(s).paddingOuter(u).align(l)},f()}function Vb(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return Vb(t())},e}function V8(){return Vb(wd().paddingInner(1))}var j8=Array.prototype.map;function q8(e){return j8.call(e,Uo)}const Z8=Array.prototype.slice;function jb(){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=q8(r),n):e.slice()},n.range=function(r){return arguments.length?(t=Z8.call(r),n):t.slice()},n.tickFormat=function(r,i){return yb(e[0],gn(e),r??10,i)},n.copy=function(){return jb().domain(n.domain()).range(n.range())},n}const Xu={};function W8(e,t,n){const r=function(){const a=t();return a.invertRange||(a.invertRange=a.invert?G8(a):a.invertExtent?H8(a):void 0),a.type=e,a};return r.metadata=pu(Qc(n)),r}function Ae(e,t,n){return arguments.length>1?(Xu[e]=W8(e,t,n),this):Y8(e)?Xu[e]:void 0}Ae(U8,vb),Ae(Fa,wb,it),Ae(Lr,od,[it,Lr]),Ae(Ts,ud,it),Ae(ks,R8,it),Ae($u,Tb,it),Ae(Nb,L8,[it,Hb]),Ae(Ob,N8,[it,Hb]),Ae(Ln,cd,[it,en]),Ae("".concat(Ln,"-").concat(Fa),cd,[it,en]),Ae("".concat(Ln,"-").concat(Lr),Fb,[it,en,Lr]),Ae("".concat(Ln,"-").concat(Ts),hd,[it,en]),Ae("".concat(Ln,"-").concat(ks),O8,[it,en]),Ae("".concat(Ln,"-").concat($u),Rb,[it,en]),Ae("".concat(Ra,"-").concat(Fa),Mb,[it,en]),Ae("".concat(Ra,"-").concat(Lr),Pb,[it,en,Lr]),Ae("".concat(Ra,"-").concat(Ts),dd,[it,en]),Ae("".concat(Ra,"-").concat(ks),z8,[it,en]),Ae("".concat(Ra,"-").concat($u),Lb,[it,en]),Ae(gd,Ib,[Bs,gd]),Ae(zb,Bb,Bs),Ae(Ub,Db,Bs),Ae(yd,jb,[Is,Bs]),Ae(md,Oh,Is),Ae(Gb,wd,Is),Ae(bd,V8,Is);function Y8(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 Nn(e){return Ds(e,Is)}function Mi(e){return Ds(e,Bs)}function qb(e){return Ds(e,Lr)}function Ku(e){return Ds(e,en)}function Q8(e,t){const n=t[0],r=gn(t)-n;return function(i){return e(n+i*r)}}function Ju(e,t,n){return nd(Zb(t||"rgb",n),e)}function $8(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=x8[X8(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function X8(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const K8={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"},J8={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 Wb(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 Yb(e,t){for(const n in e)vd(n,t(e[n]))}const Qb={};Yb(J8,Wb),Yb(K8,e=>Ju(Wb(e)));function vd(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(Qb[e]=t,this):Qb[e]}function e5(){let e=0,t,n=0;const r=new Map,i=a=>(a===t||(n=r.get(a),n===void 0&&(n=e++,r.set(a,n)),t=a),n);return i.addAll=a=>{for(const o of a)i(o)},i.invert=a=>{for(const o of r.entries())if(o[1]==a)return o[0]},i.domain=()=>[...r.keys()],i}function ef(){const e=t=>t;return e.invert=t=>t,e.copy=ef,e.invertRange=()=>{},e.type="null",e}function t5(e,t){const n={};t||(t=e.encoding);for(const[r,i]of Object.entries(t)){if(!i)continue;const a=((Ut(i)&&i.resolutionChannel)??(Oi(r)&&r))||void 0,o=e.unitView.getScaleResolution(a);n[r]=n5(t[r],o==null?void 0:o.getScale(),e.unitView.getAccessor(r),r)}return n}function n5(e,t,n,r){let i;if(vn(e)){const a=e.value;i=o=>a,i.constant=!0,i.constantValue=!0,i.accessor=void 0}else if(n)if(r=="text")i=a=>{},i.accessor=n,i.constant=n.constant;else{if(!t)if(!Oi(r))t=ef();else throw new Error(`Missing scale! "${r}": ${JSON.stringify(e)}`);if(i=a=>t(n(a)),Nn(t.type)){const a=e5();a.addAll(t.domain()),i.indexer=a}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?a=>t.invert(a):a=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(e))},i.channelDef=e,i.applyMetadata=a=>{for(const o in i)o in i&&(a[o]=i[o]);return a},i}function vn(e){return e&&"value"in e}function Pi(e){return e&&"field"in e}function Fs(e){return e&&"datum"in e}function Ut(e){return Pi(e)||Fs(e)||tf(e)||$b(e)}function xd(e,t){const n=e.mark.encoding[t];if(Ut(n))return n;throw new Error("Not a channel def with scale!")}function $b(e){return e&&"chrom"in e}function tf(e){return e&&"expr"in e}const Ma=["x","y"],r5=["x2","y2"],i5=[...Ma,...r5];function Xb(e){return Ma.includes(e)}function Rs(e){return i5.includes(e)}const Ad={x:"x2",y:"y2"},Kb=Object.fromEntries(Object.entries(Ad).map(e=>[e[1],e[0]]));function Ms(e){return e in Kb}function a5(e){const t=Ad[e];if(t)return t;throw new Error(`${e} has no secondary channel!`)}function Li(e){return Kb[e]??e}function Ni(e){return["color","fill","stroke"].includes(Li(e))}function nf(e){return["shape","squeeze"].includes(e)}function Oi(e){return["x","y","x2","y2","color","fill","stroke","opacity","fillOpacity","strokeOpacity","strokeWidth","size","shape","angle","dx","dy","sample"].includes(e)}function o5(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 Jb(e){if(!nf(e))throw new Error("Not a discrete channel: "+e);const t=new Map(o5(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 lu(e)}class s5{constructor(){this.accessorCreators=[],this.register(t=>{if(Pi(t))try{const n=Re(t.field);return n.constant=!1,n.fields=su(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(t=>tf(t)?l5(t.expr):void 0),this.register(t=>{if(Fs(t)){const r=B_(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 l5(e){const n=Nu(e);return n.constant=n.fields.length==0,n}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
163
163
  Available via the MIT license.
164
- see: http://github.com/greggman/twgl.js for details */const Ed=5120,Ps=5121,_d=5122,Sd=5123,Cd=5124,Td=5125,kd=5126,u5=32819,f5=32820,c5=33635,h5=5131,d5=33640,p5=35899,g5=35902,m5=36269,b5=34042,e2={};{const e=e2;e[Ed]=Int8Array,e[Ps]=Uint8Array,e[_d]=Int16Array,e[Sd]=Uint16Array,e[Cd]=Int32Array,e[Td]=Uint32Array,e[kd]=Float32Array,e[u5]=Uint16Array,e[f5]=Uint16Array,e[c5]=Uint16Array,e[h5]=Uint16Array,e[d5]=Uint32Array,e[p5]=Uint32Array,e[g5]=Uint32Array,e[m5]=Uint32Array,e[b5]=Uint32Array}function Id(e){if(e instanceof Int8Array)return Ed;if(e instanceof Uint8Array||e instanceof Uint8ClampedArray)return Ps;if(e instanceof Int16Array)return _d;if(e instanceof Uint16Array)return Sd;if(e instanceof Int32Array)return Cd;if(e instanceof Uint32Array)return Td;if(e instanceof Float32Array)return kd;throw new Error("unsupported typed array type")}function y5(e){if(e===Int8Array)return Ed;if(e===Uint8Array||e===Uint8ClampedArray)return Ps;if(e===Int16Array)return _d;if(e===Uint16Array)return Sd;if(e===Int32Array)return Cd;if(e===Uint32Array)return Td;if(e===Float32Array)return kd;throw new Error("unsupported typed array type")}function w5(e){const t=e2[e];if(!t)throw new Error("unknown gl type");return t}const rf=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 v5(...e){console.error(...e)}function t2(...e){console.warn(...e)}function x5(e,t){return typeof WebGLBuffer<"u"&&t instanceof WebGLBuffer}function n2(e,t){return typeof WebGLRenderbuffer<"u"&&t instanceof WebGLRenderbuffer}function af(e,t){return typeof WebGLTexture<"u"&&t instanceof WebGLTexture}function A5(e,t){return typeof WebGLSampler<"u"&&t instanceof WebGLSampler}const r2=35044,On=34962,E5=34963,_5=34660,S5=5120,C5=5121,T5=5122,k5=5123,I5=5124,B5=5125,D5=5126,i2={attribPrefix:""};function a2(e,t,n,r,i){e.bindBuffer(t,n),e.bufferData(t,r,i||r2)}function o2(e,t,n,r){if(x5(e,t))return t;n=n||On;const i=e.createBuffer();return a2(e,n,i,t,r),i}function s2(e){return e==="indices"}function F5(e){return e instanceof Int8Array||e instanceof Uint8Array}function R5(e){return e===Int8Array||e===Uint8Array}function M5(e){return e.length?e:e.data}const P5=/coord|texture/i,L5=/color|colour/i;function l2(e,t){let n;if(P5.test(e)?n=2:L5.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 N5(e,t){return e.numComponents||e.size||l2(t,M5(e).length)}function Bd(e,t){if(rf(e))return e;if(rf(e.data))return e.data;Array.isArray(e)&&(e={data:e});let n=e.type;return n||(s2(t)?n=Uint16Array:n=Float32Array),new n(e.data)}function O5(e,t){const n={};return Object.keys(t).forEach(function(r){if(!s2(r)){const i=t[r],a=i.attrib||i.name||i.attribName||i2.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!rf(i.value))throw new Error("array.value is not array or typedarray");n[a]={value:i.value}}else{let o,s,u,l;if(i.buffer&&i.buffer instanceof WebGLBuffer)o=i.buffer,l=i.numComponents||i.size,s=i.type,u=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const f=i.data||i,c=i.type||Float32Array,h=f*c.BYTES_PER_ELEMENT;s=y5(c),u=i.normalize!==void 0?i.normalize:R5(c),l=i.numComponents||i.size||l2(r,f),o=e.createBuffer(),e.bindBuffer(On,o),e.bufferData(On,h,i.drawType||r2)}else{const f=Bd(i,r);o=o2(e,f,void 0,i.drawType),s=Id(f),u=i.normalize!==void 0?i.normalize:F5(f),l=N5(i,r)}n[a]={buffer:o,numComponents:l,type:s,normalize:u,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),e.bindBuffer(On,null),n}function z5(e,t,n,r){n=Bd(n),r!==void 0?(e.bindBuffer(On,t.buffer),e.bufferSubData(On,r,n)):a2(e,On,t.buffer,n,t.drawType)}function U5(e,t){return t===S5||t===C5?1:t===T5||t===k5?2:t===I5||t===B5||t===D5?4:0}const Dd=["position","positions","a_position"];function G5(e,t){let n,r;for(r=0;r<Dd.length&&(n=Dd[r],!(n in t||(n=i2.attribPrefix+n,n in t)));++r);r===Dd.length&&(n=Object.keys(t)[0]);const i=t[n];e.bindBuffer(On,i.buffer);const a=e.getBufferParameter(On,_5);e.bindBuffer(On,null);const o=U5(e,i.type),s=a/o,u=i.numComponents||i.size,l=s/u;if(l%1!==0)throw new Error(`numComponents ${u} not correct for length ${length}`);return l}function H5(e,t,n){const r=O5(e,t),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const a=t.indices;if(a){const o=Bd(a,"indices");i.indices=o2(e,o,E5),i.numElements=o.length,i.elementType=Id(o)}else i.numElements||(i.numElements=G5(e,i.attribs));return i}function Pa(e){return!!e.texStorage2D}const Fd=function(){const e={},t={};function n(r){const i=r.constructor.name;if(!e[i]){for(const a in r)if(typeof r[a]=="number"){const o=t[r[a]];t[r[a]]=o?`${o} | ${a}`:a}e[i]=!0}}return function(i,a){return n(i),t[a]||(typeof a=="number"?`0x${a.toString(16)}`:a)}}(),Nr={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},La=rf,u2=function(){let e;return function(){return e=e||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),e}}(),f2=6406,zn=6407,He=6408,c2=6409,h2=6410,Ls=6402,d2=34041,of=33071,V5=9728,j5=9729,ir=3553,ar=34067,Or=32879,zr=35866,sf=34069,q5=34070,Z5=34071,W5=34072,Y5=34073,Q5=34074,Rd=10241,Md=10240,lf=10242,uf=10243,p2=32882,$5=33082,X5=33083,K5=33084,J5=33085,Pd=3317,g2=3314,m2=32878,b2=3316,y2=3315,w2=32877,eT=37443,tT=37441,nT=37440,rT=33321,iT=36756,aT=33325,oT=33326,sT=33330,lT=33329,uT=33338,fT=33337,cT=33340,hT=33339,dT=33323,pT=36757,gT=33327,mT=33328,bT=33336,yT=33335,wT=33332,vT=33331,xT=33334,AT=33333,ET=32849,_T=35905,ST=36194,CT=36758,TT=35898,kT=35901,IT=34843,BT=34837,DT=36221,FT=36239,RT=36215,MT=36233,PT=36209,LT=36227,NT=32856,OT=35907,zT=36759,UT=32855,GT=32854,HT=32857,VT=34842,jT=34836,qT=36220,ZT=36238,WT=36975,YT=36214,QT=36232,$T=36226,XT=36208,KT=33189,JT=33190,ek=36012,tk=36013,nk=35056,Ur=5120,Ve=5121,ff=5122,Na=5123,cf=5124,zi=5125,Et=5126,v2=32819,x2=32820,A2=33635,xn=5131,Ns=36193,Ld=33640,rk=35899,ik=35902,ak=36269,ok=34042,hf=33319,Oa=33320,df=6403,za=36244,Ua=36248,Ui=36249;let Nd;function pf(e){if(!Nd){const t={};t[f2]={textureFormat:f2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,xn,Ns,Et]},t[c2]={textureFormat:c2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,xn,Ns,Et]},t[h2]={textureFormat:h2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[Ve,xn,Ns,Et]},t[zn]={textureFormat:zn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[Ve,xn,Ns,Et,A2]},t[He]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[Ve,xn,Ns,Et,v2,x2]},t[Ls]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[zi,Na]},t[rT]={textureFormat:df,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[Ve]},t[iT]={textureFormat:df,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[Ur]},t[aT]={textureFormat:df,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[Et,xn]},t[oT]={textureFormat:df,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[Et]},t[sT]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ve]},t[lT]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ur]},t[wT]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Na]},t[vT]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[ff]},t[xT]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[zi]},t[AT]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[cf]},t[dT]={textureFormat:hf,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[Ve]},t[pT]={textureFormat:hf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[Ur]},t[gT]={textureFormat:hf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[Et,xn]},t[mT]={textureFormat:hf,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[Et]},t[bT]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ve]},t[yT]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ur]},t[uT]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Na]},t[fT]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ff]},t[cT]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[zi]},t[hT]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[cf]},t[ET]={textureFormat:zn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},t[_T]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},t[ST]={textureFormat:zn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[Ve,A2]},t[CT]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ur]},t[TT]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Et,xn,rk]},t[kT]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Et,xn,ik]},t[IT]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[Et,xn]},t[BT]={textureFormat:zn,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Et]},t[DT]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ve]},t[FT]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ur]},t[RT]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Na]},t[MT]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[ff]},t[PT]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[zi]},t[LT]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[cf]},t[NT]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},t[OT]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},t[zT]={textureFormat:He,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[Ur]},t[UT]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[Ve,x2,Ld]},t[GT]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[Ve,v2]},t[HT]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ld]},t[VT]={textureFormat:He,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[Et,xn]},t[jT]={textureFormat:He,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[Et]},t[qT]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ve]},t[ZT]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ur]},t[WT]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ld]},t[YT]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Na]},t[QT]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[ff]},t[$T]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[cf]},t[XT]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[zi]},t[KT]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Na,zi]},t[JT]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[zi]},t[ek]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Et]},t[nk]={textureFormat:d2,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ok]},t[tk]={textureFormat:d2,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ak]},Object.keys(t).forEach(function(n){const r=t[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,a){const o=r.type[a];r.bytesPerElementMap[o]=i})}),Nd=t}return Nd[e]}function sk(e,t){const n=pf(e);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[t];if(r===void 0)throw"unknown internal format";return r}function Ga(e){const t=pf(e);if(!t)throw"unknown internal format";return{format:t.textureFormat,type:t.type[0]}}function E2(e){return(e&e-1)===0}function lk(e,t,n,r){if(!Pa(e))return E2(t)&&E2(n);const i=pf(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function uk(e){const t=pf(e);if(!t)throw"unknown internal format";return t.textureFilterable}function _2(e,t,n){return La(t)?Id(t):n||Ve}function gf(e,t,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const a=Math.sqrt(i/(t===ar?6:1));a%1===0?(n=a,r=a):(n=i,r=1)}else if(r){if(!n&&(n=i/r,n%1))throw"can't guess dimensions"}else if(r=i/n,r%1)throw"can't guess dimensions";return{width:n,height:r}}function Ha(e,t){t.colorspaceConversion!==void 0&&e.pixelStorei(eT,t.colorspaceConversion),t.premultiplyAlpha!==void 0&&e.pixelStorei(tT,t.premultiplyAlpha),t.flipY!==void 0&&e.pixelStorei(nT,t.flipY)}function S2(e){e.pixelStorei(Pd,4),Pa(e)&&(e.pixelStorei(g2,0),e.pixelStorei(m2,0),e.pixelStorei(b2,0),e.pixelStorei(y2,0),e.pixelStorei(w2,0))}function fk(e,t,n,r){r.minMag&&(n.call(e,t,Rd,r.minMag),n.call(e,t,Md,r.minMag)),r.min&&n.call(e,t,Rd,r.min),r.mag&&n.call(e,t,Md,r.mag),r.wrap&&(n.call(e,t,lf,r.wrap),n.call(e,t,uf,r.wrap),(t===Or||A5(e,t))&&n.call(e,t,p2,r.wrap)),r.wrapR&&n.call(e,t,p2,r.wrapR),r.wrapS&&n.call(e,t,lf,r.wrapS),r.wrapT&&n.call(e,t,uf,r.wrapT),r.minLod&&n.call(e,t,$5,r.minLod),r.maxLod&&n.call(e,t,X5,r.maxLod),r.baseLevel&&n.call(e,t,K5,r.baseLevel),r.maxLevel&&n.call(e,t,J5,r.maxLevel)}function C2(e,t,n){const r=n.target||ir;e.bindTexture(r,t),fk(e,r,e.texParameteri,n)}function ck(e){return e=e||Nr.textureColor,La(e)?e:new Uint8Array([e[0]*255,e[1]*255,e[2]*255,e[3]*255])}function Od(e,t,n,r,i,a){n=n||Nr.textureOptions,a=a||He;const o=n.target||ir;if(r=r||n.width,i=i||n.height,e.bindTexture(o,t),lk(e,r,i,a))e.generateMipmap(o);else{const s=uk(a)?j5:V5;e.texParameteri(o,Rd,s),e.texParameteri(o,Md,s),e.texParameteri(o,lf,of),e.texParameteri(o,uf,of)}}function Os(e){return e.auto===!0||e.auto===void 0&&e.level===void 0}function zd(e,t){return t=t||{},t.cubeFaceOrder||[sf,q5,Z5,W5,Y5,Q5]}function Ud(e,t){const r=zd(e,t).map(function(i,a){return{face:i,ndx:a}});return r.sort(function(i,a){return i.face-a.face}),r}function T2(e,t,n,r){r=r||Nr.textureOptions;const i=r.target||ir,a=r.level||0;let o=n.width,s=n.height;const u=r.internalFormat||r.format||He,l=Ga(u),f=r.format||l.format,c=r.type||l.type;if(Ha(e,r),e.bindTexture(i,t),i===ar){const h=n.width,d=n.height;let p,m;if(h/6===d)p=d,m=[0,0,1,0,2,0,3,0,4,0,5,0];else if(d/6===h)p=h,m=[0,0,0,1,0,2,0,3,0,4,0,5];else if(h/3===d/2)p=h/3,m=[0,0,1,0,2,0,0,1,1,1,2,1];else if(h/2===d/3)p=h/2,m=[0,0,1,0,0,1,1,1,0,2,1,2];else throw"can't figure out cube map from element: "+(n.src?n.src:n.nodeName);const y=u2();y?(y.canvas.width=p,y.canvas.height=p,o=p,s=p,Ud(e,r).forEach(function(w){const _=m[w.ndx*2+0]*p,C=m[w.ndx*2+1]*p;y.drawImage(n,_,C,p,p,0,0,p,p),e.texImage2D(w.face,a,u,f,c,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(o=p,s=p,Ud(e,r).forEach(function(w){const _=m[w.ndx*2+0]*p,C=m[w.ndx*2+1]*p;e.texImage2D(w.face,a,u,p,p,0,f,c,null),createImageBitmap(n,_,C,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(E){Ha(e,r),e.bindTexture(i,t),e.texImage2D(w.face,a,u,f,c,E),Os(r)&&Od(e,t,r,o,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 m=n.width===d?1:0,y=n.height===d?1:0;e.pixelStorei(Pd,1),e.pixelStorei(g2,n.width),e.pixelStorei(m2,0),e.pixelStorei(w2,0),e.texImage3D(i,a,u,h,h,h,0,f,c,null);for(let w=0;w<p;++w){const _=w*h*m,C=w*h*y;e.pixelStorei(b2,_),e.pixelStorei(y2,C),e.texSubImage3D(i,a,0,0,w,h,h,1,f,c,n)}S2(e)}else e.texImage2D(i,a,u,f,c,n);Os(r)&&Od(e,t,r,o,s,u),C2(e,t,r)}function zs(){}function hk(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 dk(e,t){return t===void 0&&!hk(e)?"anonymous":t}function pk(e,t,n){n=n||zs;let r;if(t=t!==void 0?t:Nr.crossOrigin,t=dk(e,t),typeof Image<"u"){r=new Image,t!==void 0&&(r.crossOrigin=t);const i=function(){r.removeEventListener("error",a),r.removeEventListener("load",o),r=null},a=function(){const u="couldn't load image: "+e;v5(u),n(u,r),i()},o=function(){n(null,r),i()};return r.addEventListener("error",a),r.addEventListener("load",o),r.src=e,r}else if(typeof ImageBitmap<"u"){let i,a;const o=function(){n(i,a)},s={};t&&(s.mode="cors"),fetch(e,s).then(function(u){if(!u.ok)throw u;return u.blob()}).then(function(u){return createImageBitmap(u,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(u){a=u,setTimeout(o)}).catch(function(u){i=u,setTimeout(o)}),r=null}return r}function k2(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof ImageData<"u"&&e instanceof ImageData||typeof HTMLElement<"u"&&e instanceof HTMLElement}function Gd(e,t,n){return k2(e)?(setTimeout(function(){n(null,e)}),e):pk(e,t,n)}function Hd(e,t,n){n=n||Nr.textureOptions;const r=n.target||ir;if(e.bindTexture(r,t),n.color===!1)return;const i=ck(n.color);if(r===ar)for(let a=0;a<6;++a)e.texImage2D(sf+a,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 gk(e,t,n,r){return r=r||zs,n=n||Nr.textureOptions,Hd(e,t,n),n=Object.assign({},n),Gd(n.src,n.crossOrigin,function(a,o){a?r(a,t,o):(T2(e,t,o,n),r(null,t,o))})}function mk(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 a=n.level||0,o=n.internalFormat||n.format||He,s=Ga(o),u=n.format||s.format,l=n.type||Ve,f=n.target||ir;if(f!==ar)throw"target must be TEXTURE_CUBE_MAP";Hd(e,t,n),n=Object.assign({},n);let c=6;const h=[],d=zd(e,n);let p;function m(y){return function(w,_){--c,w?h.push(w):_.width!==_.height?h.push("cubemap face img is not a square: "+_.src):(Ha(e,n),e.bindTexture(f,t),c===5?zd().forEach(function(C){e.texImage2D(C,a,o,u,l,_)}):e.texImage2D(y,a,o,u,l,_),Os(n)&&e.generateMipmap(f)),c===0&&r(h.length?h:void 0,t,p)}}p=i.map(function(y,w){return Gd(y,n.crossOrigin,m(d[w]))})}function bk(e,t,n,r){r=r||zs;const i=n.src,a=n.internalFormat||n.format||He,o=Ga(a),s=n.format||o.format,u=n.type||Ve,l=n.target||zr;if(l!==Or&&l!==zr)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";Hd(e,t,n),n=Object.assign({},n);let f=i.length;const c=[];let h;const d=n.level||0;let p=n.width,m=n.height;const y=i.length;let w=!0;function _(C){return function(E,k){if(--f,E)c.push(E);else{if(Ha(e,n),e.bindTexture(l,t),w){w=!1,p=n.width||k.width,m=n.height||k.height,e.texImage3D(l,d,a,p,m,y,0,s,u,null);for(let B=0;B<y;++B)e.texSubImage3D(l,d,0,0,B,p,m,1,s,u,k)}else{let B=k,I;(k.width!==p||k.height!==m)&&(I=u2(),B=I.canvas,I.canvas.width=p,I.canvas.height=m,I.drawImage(k,0,0,p,m)),e.texSubImage3D(l,d,0,0,C,p,m,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 Gd(C,n.crossOrigin,_(E))})}function I2(e,t,n,r){r=r||Nr.textureOptions;const i=r.target||ir;e.bindTexture(i,t);let a=r.width,o=r.height,s=r.depth;const u=r.level||0,l=r.internalFormat||r.format||He,f=Ga(l),c=r.format||f.format,h=r.type||_2(e,n,f.type);if(La(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=w5(h);n=new y(n)}const d=sk(l,h),p=n.byteLength/d;if(p%1)throw"length wrong size for format: "+Fd(e,c);let m;if(i===Or||i===zr)if(!a&&!o&&!s){const y=Math.cbrt(p);if(y%1!==0)throw"can't guess cube size of array of numElements: "+p;a=y,o=y,s=y}else a&&(!o||!s)?(m=gf(e,i,o,s,p/a),o=m.width,s=m.height):o&&(!a||!s)?(m=gf(e,i,a,s,p/o),a=m.width,s=m.height):(m=gf(e,i,a,o,p/s),a=m.width,o=m.height);else m=gf(e,i,a,o,p),a=m.width,o=m.height;if(S2(e),e.pixelStorei(Pd,r.unpackAlignment||1),Ha(e,r),i===ar){const y=d/n.BYTES_PER_ELEMENT,w=p/6*y;Ud(e,r).forEach(_=>{const C=w*_.ndx,E=n.subarray(C,C+w);e.texImage2D(_.face,u,l,a,o,0,c,h,E)})}else i===Or||i===zr?e.texImage3D(i,u,l,a,o,s,0,c,h,n):e.texImage2D(i,u,l,a,o,0,c,h,n);return{width:a,height:o,depth:s,type:h}}function yk(e,t,n){const r=n.target||ir;e.bindTexture(r,t);const i=n.level||0,a=n.internalFormat||n.format||He,o=Ga(a),s=n.format||o.format,u=n.type||o.type;if(Ha(e,n),r===ar)for(let l=0;l<6;++l)e.texImage2D(sf+l,i,a,n.width,n.height,0,s,u,null);else r===Or||r===zr?e.texImage3D(r,i,a,n.width,n.height,n.depth,0,s,u,null):e.texImage2D(r,i,a,n.width,n.height,0,s,u,null)}function Us(e,t,n){n=n||zs,t=t||Nr.textureOptions;const r=e.createTexture(),i=t.target||ir;let a=t.width||1,o=t.height||1;const s=t.internalFormat||He;e.bindTexture(i,r),i===ar&&(e.texParameteri(i,lf,of),e.texParameteri(i,uf,of));let u=t.src;if(u)if(typeof u=="function"&&(u=u(e,t)),typeof u=="string")gk(e,r,t,n);else if(La(u)||Array.isArray(u)&&(typeof u[0]=="number"||Array.isArray(u[0])||La(u[0]))){const l=I2(e,r,u,t);a=l.width,o=l.height}else Array.isArray(u)&&(typeof u[0]=="string"||k2(u[0]))?i===ar?mk(e,r,t,n):bk(e,r,t,n):(T2(e,r,u,t),a=u.width,o=u.height);else yk(e,r,t);return Os(t)&&Od(e,r,t,a,o,s),C2(e,r,t),r}function wk(e,t,n,r,i,a){r=r||n.width,i=i||n.height,a=a||n.depth;const o=n.target||ir;e.bindTexture(o,t);const s=n.level||0,u=n.internalFormat||n.format||He,l=Ga(u),f=n.format||l.format;let c;const h=n.src;if(h&&(La(h)||Array.isArray(h)&&typeof h[0]=="number")?c=n.type||_2(e,h,l.type):c=n.type||l.type,o===ar)for(let d=0;d<6;++d)e.texImage2D(sf+d,s,u,r,i,0,f,c,null);else o===Or||o===zr?e.texImage3D(o,s,u,r,i,a,0,f,c,null):e.texImage2D(o,s,u,r,i,0,f,c,null)}const vk=t2,mf=33984,xk=35048,bf=34962,Ak=34963,Vd=35345,B2=35718,Ek=35721,_k=35971,Sk=35382,Ck=35396,Tk=35398,kk=35392,Ik=35395,yf=5126,D2=35664,F2=35665,R2=35666,jd=5124,M2=35667,P2=35668,L2=35669,N2=35670,O2=35671,z2=35672,U2=35673,G2=35674,H2=35675,V2=35676,Bk=35678,Dk=35680,Fk=35679,Rk=35682,Mk=35685,Pk=35686,Lk=35687,Nk=35688,Ok=35689,zk=35690,Uk=36289,Gk=36292,Hk=36293,qd=5125,j2=36294,q2=36295,Z2=36296,Vk=36298,jk=36299,qk=36300,Zk=36303,Wk=36306,Yk=36307,Qk=36308,$k=36311,wf=3553,vf=34067,Zd=32879,xf=35866,oe={};function W2(e,t){return oe[t].bindPoint}function Xk(e,t){return function(n){e.uniform1f(t,n)}}function Kk(e,t){return function(n){e.uniform1fv(t,n)}}function Jk(e,t){return function(n){e.uniform2fv(t,n)}}function eI(e,t){return function(n){e.uniform3fv(t,n)}}function tI(e,t){return function(n){e.uniform4fv(t,n)}}function Y2(e,t){return function(n){e.uniform1i(t,n)}}function Q2(e,t){return function(n){e.uniform1iv(t,n)}}function $2(e,t){return function(n){e.uniform2iv(t,n)}}function X2(e,t){return function(n){e.uniform3iv(t,n)}}function K2(e,t){return function(n){e.uniform4iv(t,n)}}function nI(e,t){return function(n){e.uniform1ui(t,n)}}function rI(e,t){return function(n){e.uniform1uiv(t,n)}}function iI(e,t){return function(n){e.uniform2uiv(t,n)}}function aI(e,t){return function(n){e.uniform3uiv(t,n)}}function oI(e,t){return function(n){e.uniform4uiv(t,n)}}function sI(e,t){return function(n){e.uniformMatrix2fv(t,!1,n)}}function lI(e,t){return function(n){e.uniformMatrix3fv(t,!1,n)}}function uI(e,t){return function(n){e.uniformMatrix4fv(t,!1,n)}}function fI(e,t){return function(n){e.uniformMatrix2x3fv(t,!1,n)}}function cI(e,t){return function(n){e.uniformMatrix3x2fv(t,!1,n)}}function hI(e,t){return function(n){e.uniformMatrix2x4fv(t,!1,n)}}function dI(e,t){return function(n){e.uniformMatrix4x2fv(t,!1,n)}}function pI(e,t){return function(n){e.uniformMatrix3x4fv(t,!1,n)}}function gI(e,t){return function(n){e.uniformMatrix4x3fv(t,!1,n)}}function Tt(e,t,n,r){const i=W2(e,t);return Pa(e)?function(a){let o,s;af(e,a)?(o=a,s=null):(o=a.texture,s=a.sampler),e.uniform1i(r,n),e.activeTexture(mf+n),e.bindTexture(i,o),e.bindSampler(n,s)}:function(a){e.uniform1i(r,n),e.activeTexture(mf+n),e.bindTexture(i,a)}}function kt(e,t,n,r,i){const a=W2(e,t),o=new Int32Array(i);for(let s=0;s<i;++s)o[s]=n+s;return Pa(e)?function(s){e.uniform1iv(r,o),s.forEach(function(u,l){e.activeTexture(mf+o[l]);let f,c;af(e,u)?(f=u,c=null):(f=u.texture,c=u.sampler),e.bindSampler(n,c),e.bindTexture(a,f)})}:function(s){e.uniform1iv(r,o),s.forEach(function(u,l){e.activeTexture(mf+o[l]),e.bindTexture(a,u)})}}oe[yf]={Type:Float32Array,size:4,setter:Xk,arraySetter:Kk},oe[D2]={Type:Float32Array,size:8,setter:Jk,cols:2},oe[F2]={Type:Float32Array,size:12,setter:eI,cols:3},oe[R2]={Type:Float32Array,size:16,setter:tI,cols:4},oe[jd]={Type:Int32Array,size:4,setter:Y2,arraySetter:Q2},oe[M2]={Type:Int32Array,size:8,setter:$2,cols:2},oe[P2]={Type:Int32Array,size:12,setter:X2,cols:3},oe[L2]={Type:Int32Array,size:16,setter:K2,cols:4},oe[qd]={Type:Uint32Array,size:4,setter:nI,arraySetter:rI},oe[j2]={Type:Uint32Array,size:8,setter:iI,cols:2},oe[q2]={Type:Uint32Array,size:12,setter:aI,cols:3},oe[Z2]={Type:Uint32Array,size:16,setter:oI,cols:4},oe[N2]={Type:Uint32Array,size:4,setter:Y2,arraySetter:Q2},oe[O2]={Type:Uint32Array,size:8,setter:$2,cols:2},oe[z2]={Type:Uint32Array,size:12,setter:X2,cols:3},oe[U2]={Type:Uint32Array,size:16,setter:K2,cols:4},oe[G2]={Type:Float32Array,size:32,setter:sI,rows:2,cols:2},oe[H2]={Type:Float32Array,size:48,setter:lI,rows:3,cols:3},oe[V2]={Type:Float32Array,size:64,setter:uI,rows:4,cols:4},oe[Mk]={Type:Float32Array,size:32,setter:fI,rows:2,cols:3},oe[Pk]={Type:Float32Array,size:32,setter:hI,rows:2,cols:4},oe[Lk]={Type:Float32Array,size:48,setter:cI,rows:3,cols:2},oe[Nk]={Type:Float32Array,size:48,setter:pI,rows:3,cols:4},oe[Ok]={Type:Float32Array,size:64,setter:dI,rows:4,cols:2},oe[zk]={Type:Float32Array,size:64,setter:gI,rows:4,cols:3},oe[Bk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:wf},oe[Dk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:vf},oe[Fk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:Zd},oe[Rk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:wf},oe[Uk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:xf},oe[Gk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:xf},oe[Hk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:vf},oe[Vk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:wf},oe[jk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:Zd},oe[qk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:vf},oe[Zk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:xf},oe[Wk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:wf},oe[Yk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:Zd},oe[Qk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:vf},oe[$k]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:xf};function Af(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(bf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribPointer(t,n.numComponents||n.size,n.type||yf,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(bf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||jd,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Ef(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(bf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||qd,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Wd(e,t,n){const r=n.size,i=n.count;return function(a){e.bindBuffer(bf,a.buffer);const o=a.size||a.numComponents||r,s=o/i,u=a.type||yf,f=oe[u].size*o,c=a.normalize||!1,h=a.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),a.divisor!==void 0&&e.vertexAttribDivisor(t+p,a.divisor)}}const nt={};nt[yf]={size:4,setter:Af},nt[D2]={size:8,setter:Af},nt[F2]={size:12,setter:Af},nt[R2]={size:16,setter:Af},nt[jd]={size:4,setter:Gr},nt[M2]={size:8,setter:Gr},nt[P2]={size:12,setter:Gr},nt[L2]={size:16,setter:Gr},nt[qd]={size:4,setter:Ef},nt[j2]={size:8,setter:Ef},nt[q2]={size:12,setter:Ef},nt[Z2]={size:16,setter:Ef},nt[N2]={size:4,setter:Gr},nt[O2]={size:8,setter:Gr},nt[z2]={size:12,setter:Gr},nt[U2]={size:16,setter:Gr},nt[G2]={size:4,setter:Wd,count:2},nt[H2]={size:9,setter:Wd,count:3},nt[V2]={size:16,setter:Wd,count:4};function J2(e){const t=e.name;return t.startsWith("gl_")||t.startsWith("webgl_")}const mI=/(\.|\[|]|\w+)/g,bI=e=>e>="0"&&e<="9";function ey(e,t,n,r){const i=e.split(mI).filter(s=>s!=="");let a=0,o="";for(;;){const s=i[a++];o+=s;const u=bI(s[0]),l=u?parseInt(s):s;if(u&&(o+=i[a++]),a===i.length){n[l]=t;break}else{const c=i[a++],h=c==="[",d=n[l]||(h?[]:{});n[l]=d,n=d,r[o]=r[o]||function(p){return function(m){ry(p,m)}}(d),o+=c}}}function yI(e,t){let n=0;function r(s,u,l){const f=u.name.endsWith("[0]"),c=u.type,h=oe[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={},a={},o=e.getProgramParameter(t,B2);for(let s=0;s<o;++s){const u=e.getActiveUniform(t,s);if(J2(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,ey(l,c,a,i)}}return i}function wI(e,t){const n={},r=e.getProgramParameter(t,_k);for(let i=0;i<r;++i){const a=e.getTransformFeedbackVarying(t,i);n[a.name]={index:i,type:a.type,size:a.size}}return n}function vI(e,t){const n=e.getProgramParameter(t,B2),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 a={},o=e.getProgramParameter(t,Sk);for(let s=0;s<o;++s){const u=e.getActiveUniformBlockName(t,s),l={index:e.getUniformBlockIndex(t,u),usedByVertexShader:e.getActiveUniformBlockParameter(t,s,Ck),usedByFragmentShader:e.getActiveUniformBlockParameter(t,s,Tk),size:e.getActiveUniformBlockParameter(t,s,kk),uniformIndices:e.getActiveUniformBlockParameter(t,s,Ik)};l.used=l.usedByVertexShader||l.usedByFragmentShader,a[u]=l}return{blockSpecs:a,uniformData:r}}const ty=/\[\d+\]\.$/,xI=(e,t)=>((e+(t-1))/t|0)*t;function AI(e,t,n,r){if(t||n){r=r||1;const a=e.length/4;return function(o){let s=0,u=0;for(let l=0;l<a;++l){for(let f=0;f<r;++f)e[s++]=o[u++];s+=4-r}}}else return function(i){i.length?e.set(i):e[0]=i}}function EI(e,t,n,r){const i=n.blockSpecs,a=n.uniformData,o=i[r];if(!o)return vk("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(o.size),u=e.createBuffer(),l=o.index;e.bindBuffer(Vd,u),e.uniformBlockBinding(t,o.index,l);let f=r+".";ty.test(f)&&(f=f.replace(ty,"."));const c={},h={},d={};return o.uniformIndices.forEach(function(p){const m=a[p];let y=m.name;y.startsWith(f)&&(y=y.substr(f.length));const w=y.endsWith("[0]");w&&(y=y.substr(0,y.length-3));const _=oe[m.type],C=_.Type,E=w?xI(_.size,16)*m.size:_.size*m.size,k=new C(s,m.offset,E/C.BYTES_PER_ELEMENT);c[y]=k;const B=AI(k,w,_.rows,_.cols);h[y]=B,ey(y,B,d,h)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:u,uniforms:c,setters:h}}function Yd(e,t,n){return EI(e,t.program,t.uniformBlockSpec,n)}function ny(e,t,n){const i=(t.uniformBlockSpec||t).blockSpecs[n.name];if(i){const a=i.index;return e.bindBufferRange(Vd,a,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function Qd(e,t,n){ny(e,t,n)&&e.bufferData(Vd,n.array,xk)}function Va(e,t){const n=e.setters;for(const r in t){const i=n[r];if(i){const a=t[r];i(a)}}}function ry(e,t){for(const n in t){const r=e[n];typeof r=="function"?r(t[n]):ry(e[n],t[n])}}function Gi(e,...t){const n=e.uniformSetters||e,r=t.length;for(let i=0;i<r;++i){const a=t[i];if(Array.isArray(a)){const o=a.length;for(let s=0;s<o;++s)Gi(n,a[s])}else for(const o in a){const s=n[o];s&&s(a[o])}}}function _I(e,t){const n={},r=e.getProgramParameter(t,Ek);for(let i=0;i<r;++i){const a=e.getActiveAttrib(t,i);if(J2(a))continue;const o=e.getAttribLocation(t,a.name),s=nt[a.type],u=s.setter(e,o,s);u.location=o,n[a.name]=u}return n}function SI(e,t){for(const n in t){const r=e[n];r&&r(t[n])}}function Hi(e,t,n){n.vertexArrayObject?e.bindVertexArray(n.vertexArrayObject):(SI(t.attribSetters||t,n.attribs),n.indices&&e.bindBuffer(Ak,n.indices))}function CI(e,t){const n=yI(e,t),r=_I(e,t),i={program:t,uniformSetters:n,attribSetters:r};return Pa(e)&&(i.uniformBlockSpec=vI(e,t),i.transformFeedbackInfo=wI(e,t)),i}const TI=4,iy=5123;function _f(e,t,n,r,i,a){n=n===void 0?TI:n;const o=t.indices,s=t.elementType,u=r===void 0?t.numElements:r;i=i===void 0?0:i,s||o?a!==void 0?e.drawElementsInstanced(n,u,s===void 0?iy:t.elementType,i,a):e.drawElements(n,u,s===void 0?iy:t.elementType,i):a!==void 0?e.drawArraysInstanced(n,i,u,a):e.drawArrays(n,i,u)}const kI=36160,Vi=36161,II=3553,BI=5121,DI=6402,FI=6408,RI=33190,MI=36012,PI=35056,LI=36013,NI=32854,OI=32855,zI=36194,ay=33189,oy=6401,sy=36168,$d=34041,UI=36064,Sf=36096,ly=36128,Xd=33306,Kd=33071,Jd=9729,uy=[{format:FI,type:BI,min:Jd,wrap:Kd},{format:$d}],An={};An[$d]=Xd,An[oy]=ly,An[sy]=ly,An[DI]=Sf,An[ay]=Sf,An[RI]=Sf,An[MI]=Sf,An[PI]=Xd,An[LI]=Xd;function GI(e,t){return An[e]||An[t]}const Hr={};Hr[NI]=!0,Hr[OI]=!0,Hr[zI]=!0,Hr[$d]=!0,Hr[ay]=!0,Hr[oy]=!0,Hr[sy]=!0;function HI(e){return Hr[e]}function VI(e,t,n,r){const i=kI,a=e.createFramebuffer();e.bindFramebuffer(i,a),n=n||e.drawingBufferWidth,r=r||e.drawingBufferHeight,t=t||uy;let o=0;const s={framebuffer:a,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||GI(c,u.internalFormat);if(h||(h=UI+o++),!l)if(f!==void 0||HI(c))l=e.createRenderbuffer(),e.bindRenderbuffer(Vi,l),f>1?e.renderbufferStorageMultisample(Vi,f,c,n,r):e.renderbufferStorage(Vi,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||Jd,d.mag=d.mag||d.minMag||Jd,d.wrapS=d.wrapS||d.wrap||Kd,d.wrapT=d.wrapT||d.wrap||Kd),l=Us(e,d)}if(n2(e,l))e.framebufferRenderbuffer(i,h,Vi,l);else if(af(e,l))u.layer!==void 0?e.framebufferTextureLayer(i,h,l,u.level||0,u.layer):e.framebufferTexture2D(i,h,u.target||II,l,u.level||0);else throw new Error("unknown attachment type");s.attachments.push(l)}),s}function jI(e,t,n,r,i){r=r||e.drawingBufferWidth,i=i||e.drawingBufferHeight,t.width=r,t.height=i,n=n||uy,n.forEach(function(a,o){const s=t.attachments[o],u=a.format,l=a.samples;if(l!==void 0||n2(e,s))e.bindRenderbuffer(Vi,s),l>1?e.renderbufferStorageMultisample(Vi,l,u,r,i):e.renderbufferStorage(Vi,u,r,i);else if(af(e,s))wk(e,s,a,r,i);else throw new Error("unknown attachment type")})}function qI(e,t,n){const r=e.createVertexArray();return e.bindVertexArray(r),t.length||(t=[t]),t.forEach(function(i){Hi(e,i,n)}),e.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const ZI=/^(.*?)_/;function WI(e,t){Fd(e,0);const n=e.getExtension(t);if(n){const r={},i=ZI.exec(t)[1],a="_"+i;for(const o in n){const s=n[o],u=typeof s=="function",l=u?i:a;let f=o;o.endsWith(l)&&(f=o.substring(0,o.length-l.length)),e[f]!==void 0?!u&&e[f]!==s&&t2(f,e[f],s,o):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},Fd(r,0)}return n}const fy=["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 cy(e){for(let t=0;t<fy.length;++t)WI(e,fy[t])}function YI(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){cy(r);break}return r}function QI(e,t){return YI(e,t)}const $I=`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;
164
+ see: http://github.com/greggman/twgl.js for details */const Ed=5120,Ps=5121,_d=5122,Sd=5123,Cd=5124,Td=5125,kd=5126,u5=32819,f5=32820,c5=33635,h5=5131,d5=33640,p5=35899,g5=35902,m5=36269,b5=34042,e2={};{const e=e2;e[Ed]=Int8Array,e[Ps]=Uint8Array,e[_d]=Int16Array,e[Sd]=Uint16Array,e[Cd]=Int32Array,e[Td]=Uint32Array,e[kd]=Float32Array,e[u5]=Uint16Array,e[f5]=Uint16Array,e[c5]=Uint16Array,e[h5]=Uint16Array,e[d5]=Uint32Array,e[p5]=Uint32Array,e[g5]=Uint32Array,e[m5]=Uint32Array,e[b5]=Uint32Array}function Id(e){if(e instanceof Int8Array)return Ed;if(e instanceof Uint8Array||e instanceof Uint8ClampedArray)return Ps;if(e instanceof Int16Array)return _d;if(e instanceof Uint16Array)return Sd;if(e instanceof Int32Array)return Cd;if(e instanceof Uint32Array)return Td;if(e instanceof Float32Array)return kd;throw new Error("unsupported typed array type")}function y5(e){if(e===Int8Array)return Ed;if(e===Uint8Array||e===Uint8ClampedArray)return Ps;if(e===Int16Array)return _d;if(e===Uint16Array)return Sd;if(e===Int32Array)return Cd;if(e===Uint32Array)return Td;if(e===Float32Array)return kd;throw new Error("unsupported typed array type")}function w5(e){const t=e2[e];if(!t)throw new Error("unknown gl type");return t}const rf=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 v5(...e){console.error(...e)}function t2(...e){console.warn(...e)}function x5(e,t){return typeof WebGLBuffer<"u"&&t instanceof WebGLBuffer}function n2(e,t){return typeof WebGLRenderbuffer<"u"&&t instanceof WebGLRenderbuffer}function af(e,t){return typeof WebGLTexture<"u"&&t instanceof WebGLTexture}function A5(e,t){return typeof WebGLSampler<"u"&&t instanceof WebGLSampler}const r2=35044,On=34962,E5=34963,_5=34660,S5=5120,C5=5121,T5=5122,k5=5123,I5=5124,B5=5125,D5=5126,i2={attribPrefix:""};function a2(e,t,n,r,i){e.bindBuffer(t,n),e.bufferData(t,r,i||r2)}function o2(e,t,n,r){if(x5(e,t))return t;n=n||On;const i=e.createBuffer();return a2(e,n,i,t,r),i}function s2(e){return e==="indices"}function F5(e){return e instanceof Int8Array||e instanceof Uint8Array}function R5(e){return e===Int8Array||e===Uint8Array}function M5(e){return e.length?e:e.data}const P5=/coord|texture/i,L5=/color|colour/i;function l2(e,t){let n;if(P5.test(e)?n=2:L5.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 N5(e,t){return e.numComponents||e.size||l2(t,M5(e).length)}function Bd(e,t){if(rf(e))return e;if(rf(e.data))return e.data;Array.isArray(e)&&(e={data:e});let n=e.type;return n||(s2(t)?n=Uint16Array:n=Float32Array),new n(e.data)}function O5(e,t){const n={};return Object.keys(t).forEach(function(r){if(!s2(r)){const i=t[r],a=i.attrib||i.name||i.attribName||i2.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!rf(i.value))throw new Error("array.value is not array or typedarray");n[a]={value:i.value}}else{let o,s,u,l;if(i.buffer&&i.buffer instanceof WebGLBuffer)o=i.buffer,l=i.numComponents||i.size,s=i.type,u=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const f=i.data||i,c=i.type||Float32Array,h=f*c.BYTES_PER_ELEMENT;s=y5(c),u=i.normalize!==void 0?i.normalize:R5(c),l=i.numComponents||i.size||l2(r,f),o=e.createBuffer(),e.bindBuffer(On,o),e.bufferData(On,h,i.drawType||r2)}else{const f=Bd(i,r);o=o2(e,f,void 0,i.drawType),s=Id(f),u=i.normalize!==void 0?i.normalize:F5(f),l=N5(i,r)}n[a]={buffer:o,numComponents:l,type:s,normalize:u,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),e.bindBuffer(On,null),n}function z5(e,t,n,r){n=Bd(n),r!==void 0?(e.bindBuffer(On,t.buffer),e.bufferSubData(On,r,n)):a2(e,On,t.buffer,n,t.drawType)}function U5(e,t){return t===S5||t===C5?1:t===T5||t===k5?2:t===I5||t===B5||t===D5?4:0}const Dd=["position","positions","a_position"];function G5(e,t){let n,r;for(r=0;r<Dd.length&&(n=Dd[r],!(n in t||(n=i2.attribPrefix+n,n in t)));++r);r===Dd.length&&(n=Object.keys(t)[0]);const i=t[n];e.bindBuffer(On,i.buffer);const a=e.getBufferParameter(On,_5);e.bindBuffer(On,null);const o=U5(e,i.type),s=a/o,u=i.numComponents||i.size,l=s/u;if(l%1!==0)throw new Error(`numComponents ${u} not correct for length ${length}`);return l}function H5(e,t,n){const r=O5(e,t),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const a=t.indices;if(a){const o=Bd(a,"indices");i.indices=o2(e,o,E5),i.numElements=o.length,i.elementType=Id(o)}else i.numElements||(i.numElements=G5(e,i.attribs));return i}function Pa(e){return!!e.texStorage2D}const Fd=function(){const e={},t={};function n(r){const i=r.constructor.name;if(!e[i]){for(const a in r)if(typeof r[a]=="number"){const o=t[r[a]];t[r[a]]=o?`${o} | ${a}`:a}e[i]=!0}}return function(i,a){return n(i),t[a]||(typeof a=="number"?`0x${a.toString(16)}`:a)}}(),Nr={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},La=rf,u2=function(){let e;return function(){return e=e||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),e}}(),f2=6406,zn=6407,He=6408,c2=6409,h2=6410,Ls=6402,d2=34041,of=33071,V5=9728,j5=9729,ir=3553,ar=34067,Or=32879,zr=35866,sf=34069,q5=34070,Z5=34071,W5=34072,Y5=34073,Q5=34074,Rd=10241,Md=10240,lf=10242,uf=10243,p2=32882,$5=33082,X5=33083,K5=33084,J5=33085,Pd=3317,g2=3314,m2=32878,b2=3316,y2=3315,w2=32877,eT=37443,tT=37441,nT=37440,rT=33321,iT=36756,aT=33325,oT=33326,sT=33330,lT=33329,uT=33338,fT=33337,cT=33340,hT=33339,dT=33323,pT=36757,gT=33327,mT=33328,bT=33336,yT=33335,wT=33332,vT=33331,xT=33334,AT=33333,ET=32849,_T=35905,ST=36194,CT=36758,TT=35898,kT=35901,IT=34843,BT=34837,DT=36221,FT=36239,RT=36215,MT=36233,PT=36209,LT=36227,NT=32856,OT=35907,zT=36759,UT=32855,GT=32854,HT=32857,VT=34842,jT=34836,qT=36220,ZT=36238,WT=36975,YT=36214,QT=36232,$T=36226,XT=36208,KT=33189,JT=33190,ek=36012,tk=36013,nk=35056,Ur=5120,Ve=5121,ff=5122,Na=5123,cf=5124,zi=5125,Et=5126,v2=32819,x2=32820,A2=33635,xn=5131,Ns=36193,Ld=33640,rk=35899,ik=35902,ak=36269,ok=34042,hf=33319,Oa=33320,df=6403,za=36244,Ua=36248,Ui=36249;let Nd;function pf(e){if(!Nd){const t={};t[f2]={textureFormat:f2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,xn,Ns,Et]},t[c2]={textureFormat:c2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ve,xn,Ns,Et]},t[h2]={textureFormat:h2,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[Ve,xn,Ns,Et]},t[zn]={textureFormat:zn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[Ve,xn,Ns,Et,A2]},t[He]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[Ve,xn,Ns,Et,v2,x2]},t[Ls]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[zi,Na]},t[rT]={textureFormat:df,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[Ve]},t[iT]={textureFormat:df,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[Ur]},t[aT]={textureFormat:df,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[Et,xn]},t[oT]={textureFormat:df,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[Et]},t[sT]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ve]},t[lT]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ur]},t[wT]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Na]},t[vT]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[ff]},t[xT]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[zi]},t[AT]={textureFormat:za,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[cf]},t[dT]={textureFormat:hf,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[Ve]},t[pT]={textureFormat:hf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[Ur]},t[gT]={textureFormat:hf,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[Et,xn]},t[mT]={textureFormat:hf,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[Et]},t[bT]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ve]},t[yT]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ur]},t[uT]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Na]},t[fT]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ff]},t[cT]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[zi]},t[hT]={textureFormat:Oa,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[cf]},t[ET]={textureFormat:zn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},t[_T]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ve]},t[ST]={textureFormat:zn,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[Ve,A2]},t[CT]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ur]},t[TT]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Et,xn,rk]},t[kT]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Et,xn,ik]},t[IT]={textureFormat:zn,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[Et,xn]},t[BT]={textureFormat:zn,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Et]},t[DT]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ve]},t[FT]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ur]},t[RT]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Na]},t[MT]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[ff]},t[PT]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[zi]},t[LT]={textureFormat:Ua,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[cf]},t[NT]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},t[OT]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ve]},t[zT]={textureFormat:He,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[Ur]},t[UT]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[Ve,x2,Ld]},t[GT]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[Ve,v2]},t[HT]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ld]},t[VT]={textureFormat:He,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[Et,xn]},t[jT]={textureFormat:He,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[Et]},t[qT]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ve]},t[ZT]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ur]},t[WT]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ld]},t[YT]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Na]},t[QT]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[ff]},t[$T]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[cf]},t[XT]={textureFormat:Ui,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[zi]},t[KT]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Na,zi]},t[JT]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[zi]},t[ek]={textureFormat:Ls,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Et]},t[nk]={textureFormat:d2,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ok]},t[tk]={textureFormat:d2,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ak]},Object.keys(t).forEach(function(n){const r=t[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,a){const o=r.type[a];r.bytesPerElementMap[o]=i})}),Nd=t}return Nd[e]}function sk(e,t){const n=pf(e);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[t];if(r===void 0)throw"unknown internal format";return r}function Ga(e){const t=pf(e);if(!t)throw"unknown internal format";return{format:t.textureFormat,type:t.type[0]}}function E2(e){return(e&e-1)===0}function lk(e,t,n,r){if(!Pa(e))return E2(t)&&E2(n);const i=pf(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function uk(e){const t=pf(e);if(!t)throw"unknown internal format";return t.textureFilterable}function _2(e,t,n){return La(t)?Id(t):n||Ve}function gf(e,t,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const a=Math.sqrt(i/(t===ar?6:1));a%1===0?(n=a,r=a):(n=i,r=1)}else if(r){if(!n&&(n=i/r,n%1))throw"can't guess dimensions"}else if(r=i/n,r%1)throw"can't guess dimensions";return{width:n,height:r}}function Ha(e,t){t.colorspaceConversion!==void 0&&e.pixelStorei(eT,t.colorspaceConversion),t.premultiplyAlpha!==void 0&&e.pixelStorei(tT,t.premultiplyAlpha),t.flipY!==void 0&&e.pixelStorei(nT,t.flipY)}function S2(e){e.pixelStorei(Pd,4),Pa(e)&&(e.pixelStorei(g2,0),e.pixelStorei(m2,0),e.pixelStorei(b2,0),e.pixelStorei(y2,0),e.pixelStorei(w2,0))}function fk(e,t,n,r){r.minMag&&(n.call(e,t,Rd,r.minMag),n.call(e,t,Md,r.minMag)),r.min&&n.call(e,t,Rd,r.min),r.mag&&n.call(e,t,Md,r.mag),r.wrap&&(n.call(e,t,lf,r.wrap),n.call(e,t,uf,r.wrap),(t===Or||A5(e,t))&&n.call(e,t,p2,r.wrap)),r.wrapR&&n.call(e,t,p2,r.wrapR),r.wrapS&&n.call(e,t,lf,r.wrapS),r.wrapT&&n.call(e,t,uf,r.wrapT),r.minLod&&n.call(e,t,$5,r.minLod),r.maxLod&&n.call(e,t,X5,r.maxLod),r.baseLevel&&n.call(e,t,K5,r.baseLevel),r.maxLevel&&n.call(e,t,J5,r.maxLevel)}function C2(e,t,n){const r=n.target||ir;e.bindTexture(r,t),fk(e,r,e.texParameteri,n)}function ck(e){return e=e||Nr.textureColor,La(e)?e:new Uint8Array([e[0]*255,e[1]*255,e[2]*255,e[3]*255])}function Od(e,t,n,r,i,a){n=n||Nr.textureOptions,a=a||He;const o=n.target||ir;if(r=r||n.width,i=i||n.height,e.bindTexture(o,t),lk(e,r,i,a))e.generateMipmap(o);else{const s=uk(a)?j5:V5;e.texParameteri(o,Rd,s),e.texParameteri(o,Md,s),e.texParameteri(o,lf,of),e.texParameteri(o,uf,of)}}function Os(e){return e.auto===!0||e.auto===void 0&&e.level===void 0}function zd(e,t){return t=t||{},t.cubeFaceOrder||[sf,q5,Z5,W5,Y5,Q5]}function Ud(e,t){const r=zd(e,t).map(function(i,a){return{face:i,ndx:a}});return r.sort(function(i,a){return i.face-a.face}),r}function T2(e,t,n,r){r=r||Nr.textureOptions;const i=r.target||ir,a=r.level||0;let o=n.width,s=n.height;const u=r.internalFormat||r.format||He,l=Ga(u),f=r.format||l.format,c=r.type||l.type;if(Ha(e,r),e.bindTexture(i,t),i===ar){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=u2();y?(y.canvas.width=p,y.canvas.height=p,o=p,s=p,Ud(e,r).forEach(function(w){const E=b[w.ndx*2+0]*p,C=b[w.ndx*2+1]*p;y.drawImage(n,E,C,p,p,0,0,p,p),e.texImage2D(w.face,a,u,f,c,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(o=p,s=p,Ud(e,r).forEach(function(w){const E=b[w.ndx*2+0]*p,C=b[w.ndx*2+1]*p;e.texImage2D(w.face,a,u,p,p,0,f,c,null),createImageBitmap(n,E,C,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(_){Ha(e,r),e.bindTexture(i,t),e.texImage2D(w.face,a,u,f,c,_),Os(r)&&Od(e,t,r,o,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(Pd,1),e.pixelStorei(g2,n.width),e.pixelStorei(m2,0),e.pixelStorei(w2,0),e.texImage3D(i,a,u,h,h,h,0,f,c,null);for(let w=0;w<p;++w){const E=w*h*b,C=w*h*y;e.pixelStorei(b2,E),e.pixelStorei(y2,C),e.texSubImage3D(i,a,0,0,w,h,h,1,f,c,n)}S2(e)}else e.texImage2D(i,a,u,f,c,n);Os(r)&&Od(e,t,r,o,s,u),C2(e,t,r)}function zs(){}function hk(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 dk(e,t){return t===void 0&&!hk(e)?"anonymous":t}function pk(e,t,n){n=n||zs;let r;if(t=t!==void 0?t:Nr.crossOrigin,t=dk(e,t),typeof Image<"u"){r=new Image,t!==void 0&&(r.crossOrigin=t);const i=function(){r.removeEventListener("error",a),r.removeEventListener("load",o),r=null},a=function(){const u="couldn't load image: "+e;v5(u),n(u,r),i()},o=function(){n(null,r),i()};return r.addEventListener("error",a),r.addEventListener("load",o),r.src=e,r}else if(typeof ImageBitmap<"u"){let i,a;const o=function(){n(i,a)},s={};t&&(s.mode="cors"),fetch(e,s).then(function(u){if(!u.ok)throw u;return u.blob()}).then(function(u){return createImageBitmap(u,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(u){a=u,setTimeout(o)}).catch(function(u){i=u,setTimeout(o)}),r=null}return r}function k2(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof ImageData<"u"&&e instanceof ImageData||typeof HTMLElement<"u"&&e instanceof HTMLElement}function Gd(e,t,n){return k2(e)?(setTimeout(function(){n(null,e)}),e):pk(e,t,n)}function Hd(e,t,n){n=n||Nr.textureOptions;const r=n.target||ir;if(e.bindTexture(r,t),n.color===!1)return;const i=ck(n.color);if(r===ar)for(let a=0;a<6;++a)e.texImage2D(sf+a,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 gk(e,t,n,r){return r=r||zs,n=n||Nr.textureOptions,Hd(e,t,n),n=Object.assign({},n),Gd(n.src,n.crossOrigin,function(a,o){a?r(a,t,o):(T2(e,t,o,n),r(null,t,o))})}function mk(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 a=n.level||0,o=n.internalFormat||n.format||He,s=Ga(o),u=n.format||s.format,l=n.type||Ve,f=n.target||ir;if(f!==ar)throw"target must be TEXTURE_CUBE_MAP";Hd(e,t,n),n=Object.assign({},n);let c=6;const h=[],d=zd(e,n);let p;function b(y){return function(w,E){--c,w?h.push(w):E.width!==E.height?h.push("cubemap face img is not a square: "+E.src):(Ha(e,n),e.bindTexture(f,t),c===5?zd().forEach(function(C){e.texImage2D(C,a,o,u,l,E)}):e.texImage2D(y,a,o,u,l,E),Os(n)&&e.generateMipmap(f)),c===0&&r(h.length?h:void 0,t,p)}}p=i.map(function(y,w){return Gd(y,n.crossOrigin,b(d[w]))})}function bk(e,t,n,r){r=r||zs;const i=n.src,a=n.internalFormat||n.format||He,o=Ga(a),s=n.format||o.format,u=n.type||Ve,l=n.target||zr;if(l!==Or&&l!==zr)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";Hd(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 E(C){return function(_,k){if(--f,_)c.push(_);else{if(Ha(e,n),e.bindTexture(l,t),w){w=!1,p=n.width||k.width,b=n.height||k.height,e.texImage3D(l,d,a,p,b,y,0,s,u,null);for(let I=0;I<y;++I)e.texSubImage3D(l,d,0,0,I,p,b,1,s,u,k)}else{let I=k,B;(k.width!==p||k.height!==b)&&(B=u2(),I=B.canvas,B.canvas.width=p,B.canvas.height=b,B.drawImage(k,0,0,p,b)),e.texSubImage3D(l,d,0,0,C,p,b,1,s,u,I),B&&I===B.canvas&&(B.canvas.width=0,B.canvas.height=0)}Os(n)&&e.generateMipmap(l)}f===0&&r(c.length?c:void 0,t,h)}}h=i.map(function(C,_){return Gd(C,n.crossOrigin,E(_))})}function I2(e,t,n,r){r=r||Nr.textureOptions;const i=r.target||ir;e.bindTexture(i,t);let a=r.width,o=r.height,s=r.depth;const u=r.level||0,l=r.internalFormat||r.format||He,f=Ga(l),c=r.format||f.format,h=r.type||_2(e,n,f.type);if(La(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=w5(h);n=new y(n)}const d=sk(l,h),p=n.byteLength/d;if(p%1)throw"length wrong size for format: "+Fd(e,c);let b;if(i===Or||i===zr)if(!a&&!o&&!s){const y=Math.cbrt(p);if(y%1!==0)throw"can't guess cube size of array of numElements: "+p;a=y,o=y,s=y}else a&&(!o||!s)?(b=gf(e,i,o,s,p/a),o=b.width,s=b.height):o&&(!a||!s)?(b=gf(e,i,a,s,p/o),a=b.width,s=b.height):(b=gf(e,i,a,o,p/s),a=b.width,o=b.height);else b=gf(e,i,a,o,p),a=b.width,o=b.height;if(S2(e),e.pixelStorei(Pd,r.unpackAlignment||1),Ha(e,r),i===ar){const y=d/n.BYTES_PER_ELEMENT,w=p/6*y;Ud(e,r).forEach(E=>{const C=w*E.ndx,_=n.subarray(C,C+w);e.texImage2D(E.face,u,l,a,o,0,c,h,_)})}else i===Or||i===zr?e.texImage3D(i,u,l,a,o,s,0,c,h,n):e.texImage2D(i,u,l,a,o,0,c,h,n);return{width:a,height:o,depth:s,type:h}}function yk(e,t,n){const r=n.target||ir;e.bindTexture(r,t);const i=n.level||0,a=n.internalFormat||n.format||He,o=Ga(a),s=n.format||o.format,u=n.type||o.type;if(Ha(e,n),r===ar)for(let l=0;l<6;++l)e.texImage2D(sf+l,i,a,n.width,n.height,0,s,u,null);else r===Or||r===zr?e.texImage3D(r,i,a,n.width,n.height,n.depth,0,s,u,null):e.texImage2D(r,i,a,n.width,n.height,0,s,u,null)}function Us(e,t,n){n=n||zs,t=t||Nr.textureOptions;const r=e.createTexture(),i=t.target||ir;let a=t.width||1,o=t.height||1;const s=t.internalFormat||He;e.bindTexture(i,r),i===ar&&(e.texParameteri(i,lf,of),e.texParameteri(i,uf,of));let u=t.src;if(u)if(typeof u=="function"&&(u=u(e,t)),typeof u=="string")gk(e,r,t,n);else if(La(u)||Array.isArray(u)&&(typeof u[0]=="number"||Array.isArray(u[0])||La(u[0]))){const l=I2(e,r,u,t);a=l.width,o=l.height}else Array.isArray(u)&&(typeof u[0]=="string"||k2(u[0]))?i===ar?mk(e,r,t,n):bk(e,r,t,n):(T2(e,r,u,t),a=u.width,o=u.height);else yk(e,r,t);return Os(t)&&Od(e,r,t,a,o,s),C2(e,r,t),r}function wk(e,t,n,r,i,a){r=r||n.width,i=i||n.height,a=a||n.depth;const o=n.target||ir;e.bindTexture(o,t);const s=n.level||0,u=n.internalFormat||n.format||He,l=Ga(u),f=n.format||l.format;let c;const h=n.src;if(h&&(La(h)||Array.isArray(h)&&typeof h[0]=="number")?c=n.type||_2(e,h,l.type):c=n.type||l.type,o===ar)for(let d=0;d<6;++d)e.texImage2D(sf+d,s,u,r,i,0,f,c,null);else o===Or||o===zr?e.texImage3D(o,s,u,r,i,a,0,f,c,null):e.texImage2D(o,s,u,r,i,0,f,c,null)}const vk=t2,mf=33984,xk=35048,bf=34962,Ak=34963,Vd=35345,B2=35718,Ek=35721,_k=35971,Sk=35382,Ck=35396,Tk=35398,kk=35392,Ik=35395,yf=5126,D2=35664,F2=35665,R2=35666,jd=5124,M2=35667,P2=35668,L2=35669,N2=35670,O2=35671,z2=35672,U2=35673,G2=35674,H2=35675,V2=35676,Bk=35678,Dk=35680,Fk=35679,Rk=35682,Mk=35685,Pk=35686,Lk=35687,Nk=35688,Ok=35689,zk=35690,Uk=36289,Gk=36292,Hk=36293,qd=5125,j2=36294,q2=36295,Z2=36296,Vk=36298,jk=36299,qk=36300,Zk=36303,Wk=36306,Yk=36307,Qk=36308,$k=36311,wf=3553,vf=34067,Zd=32879,xf=35866,oe={};function W2(e,t){return oe[t].bindPoint}function Xk(e,t){return function(n){e.uniform1f(t,n)}}function Kk(e,t){return function(n){e.uniform1fv(t,n)}}function Jk(e,t){return function(n){e.uniform2fv(t,n)}}function eI(e,t){return function(n){e.uniform3fv(t,n)}}function tI(e,t){return function(n){e.uniform4fv(t,n)}}function Y2(e,t){return function(n){e.uniform1i(t,n)}}function Q2(e,t){return function(n){e.uniform1iv(t,n)}}function $2(e,t){return function(n){e.uniform2iv(t,n)}}function X2(e,t){return function(n){e.uniform3iv(t,n)}}function K2(e,t){return function(n){e.uniform4iv(t,n)}}function nI(e,t){return function(n){e.uniform1ui(t,n)}}function rI(e,t){return function(n){e.uniform1uiv(t,n)}}function iI(e,t){return function(n){e.uniform2uiv(t,n)}}function aI(e,t){return function(n){e.uniform3uiv(t,n)}}function oI(e,t){return function(n){e.uniform4uiv(t,n)}}function sI(e,t){return function(n){e.uniformMatrix2fv(t,!1,n)}}function lI(e,t){return function(n){e.uniformMatrix3fv(t,!1,n)}}function uI(e,t){return function(n){e.uniformMatrix4fv(t,!1,n)}}function fI(e,t){return function(n){e.uniformMatrix2x3fv(t,!1,n)}}function cI(e,t){return function(n){e.uniformMatrix3x2fv(t,!1,n)}}function hI(e,t){return function(n){e.uniformMatrix2x4fv(t,!1,n)}}function dI(e,t){return function(n){e.uniformMatrix4x2fv(t,!1,n)}}function pI(e,t){return function(n){e.uniformMatrix3x4fv(t,!1,n)}}function gI(e,t){return function(n){e.uniformMatrix4x3fv(t,!1,n)}}function Tt(e,t,n,r){const i=W2(e,t);return Pa(e)?function(a){let o,s;af(e,a)?(o=a,s=null):(o=a.texture,s=a.sampler),e.uniform1i(r,n),e.activeTexture(mf+n),e.bindTexture(i,o),e.bindSampler(n,s)}:function(a){e.uniform1i(r,n),e.activeTexture(mf+n),e.bindTexture(i,a)}}function kt(e,t,n,r,i){const a=W2(e,t),o=new Int32Array(i);for(let s=0;s<i;++s)o[s]=n+s;return Pa(e)?function(s){e.uniform1iv(r,o),s.forEach(function(u,l){e.activeTexture(mf+o[l]);let f,c;af(e,u)?(f=u,c=null):(f=u.texture,c=u.sampler),e.bindSampler(n,c),e.bindTexture(a,f)})}:function(s){e.uniform1iv(r,o),s.forEach(function(u,l){e.activeTexture(mf+o[l]),e.bindTexture(a,u)})}}oe[yf]={Type:Float32Array,size:4,setter:Xk,arraySetter:Kk},oe[D2]={Type:Float32Array,size:8,setter:Jk,cols:2},oe[F2]={Type:Float32Array,size:12,setter:eI,cols:3},oe[R2]={Type:Float32Array,size:16,setter:tI,cols:4},oe[jd]={Type:Int32Array,size:4,setter:Y2,arraySetter:Q2},oe[M2]={Type:Int32Array,size:8,setter:$2,cols:2},oe[P2]={Type:Int32Array,size:12,setter:X2,cols:3},oe[L2]={Type:Int32Array,size:16,setter:K2,cols:4},oe[qd]={Type:Uint32Array,size:4,setter:nI,arraySetter:rI},oe[j2]={Type:Uint32Array,size:8,setter:iI,cols:2},oe[q2]={Type:Uint32Array,size:12,setter:aI,cols:3},oe[Z2]={Type:Uint32Array,size:16,setter:oI,cols:4},oe[N2]={Type:Uint32Array,size:4,setter:Y2,arraySetter:Q2},oe[O2]={Type:Uint32Array,size:8,setter:$2,cols:2},oe[z2]={Type:Uint32Array,size:12,setter:X2,cols:3},oe[U2]={Type:Uint32Array,size:16,setter:K2,cols:4},oe[G2]={Type:Float32Array,size:32,setter:sI,rows:2,cols:2},oe[H2]={Type:Float32Array,size:48,setter:lI,rows:3,cols:3},oe[V2]={Type:Float32Array,size:64,setter:uI,rows:4,cols:4},oe[Mk]={Type:Float32Array,size:32,setter:fI,rows:2,cols:3},oe[Pk]={Type:Float32Array,size:32,setter:hI,rows:2,cols:4},oe[Lk]={Type:Float32Array,size:48,setter:cI,rows:3,cols:2},oe[Nk]={Type:Float32Array,size:48,setter:pI,rows:3,cols:4},oe[Ok]={Type:Float32Array,size:64,setter:dI,rows:4,cols:2},oe[zk]={Type:Float32Array,size:64,setter:gI,rows:4,cols:3},oe[Bk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:wf},oe[Dk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:vf},oe[Fk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:Zd},oe[Rk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:wf},oe[Uk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:xf},oe[Gk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:xf},oe[Hk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:vf},oe[Vk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:wf},oe[jk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:Zd},oe[qk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:vf},oe[Zk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:xf},oe[Wk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:wf},oe[Yk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:Zd},oe[Qk]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:vf},oe[$k]={Type:null,size:0,setter:Tt,arraySetter:kt,bindPoint:xf};function Af(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(bf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribPointer(t,n.numComponents||n.size,n.type||yf,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(bf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||jd,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Ef(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(bf,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||qd,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Wd(e,t,n){const r=n.size,i=n.count;return function(a){e.bindBuffer(bf,a.buffer);const o=a.size||a.numComponents||r,s=o/i,u=a.type||yf,f=oe[u].size*o,c=a.normalize||!1,h=a.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),a.divisor!==void 0&&e.vertexAttribDivisor(t+p,a.divisor)}}const nt={};nt[yf]={size:4,setter:Af},nt[D2]={size:8,setter:Af},nt[F2]={size:12,setter:Af},nt[R2]={size:16,setter:Af},nt[jd]={size:4,setter:Gr},nt[M2]={size:8,setter:Gr},nt[P2]={size:12,setter:Gr},nt[L2]={size:16,setter:Gr},nt[qd]={size:4,setter:Ef},nt[j2]={size:8,setter:Ef},nt[q2]={size:12,setter:Ef},nt[Z2]={size:16,setter:Ef},nt[N2]={size:4,setter:Gr},nt[O2]={size:8,setter:Gr},nt[z2]={size:12,setter:Gr},nt[U2]={size:16,setter:Gr},nt[G2]={size:4,setter:Wd,count:2},nt[H2]={size:9,setter:Wd,count:3},nt[V2]={size:16,setter:Wd,count:4};function J2(e){const t=e.name;return t.startsWith("gl_")||t.startsWith("webgl_")}const mI=/(\.|\[|]|\w+)/g,bI=e=>e>="0"&&e<="9";function ey(e,t,n,r){const i=e.split(mI).filter(s=>s!=="");let a=0,o="";for(;;){const s=i[a++];o+=s;const u=bI(s[0]),l=u?parseInt(s):s;if(u&&(o+=i[a++]),a===i.length){n[l]=t;break}else{const c=i[a++],h=c==="[",d=n[l]||(h?[]:{});n[l]=d,n=d,r[o]=r[o]||function(p){return function(b){ry(p,b)}}(d),o+=c}}}function yI(e,t){let n=0;function r(s,u,l){const f=u.name.endsWith("[0]"),c=u.type,h=oe[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={},a={},o=e.getProgramParameter(t,B2);for(let s=0;s<o;++s){const u=e.getActiveUniform(t,s);if(J2(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,ey(l,c,a,i)}}return i}function wI(e,t){const n={},r=e.getProgramParameter(t,_k);for(let i=0;i<r;++i){const a=e.getTransformFeedbackVarying(t,i);n[a.name]={index:i,type:a.type,size:a.size}}return n}function vI(e,t){const n=e.getProgramParameter(t,B2),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 a={},o=e.getProgramParameter(t,Sk);for(let s=0;s<o;++s){const u=e.getActiveUniformBlockName(t,s),l={index:e.getUniformBlockIndex(t,u),usedByVertexShader:e.getActiveUniformBlockParameter(t,s,Ck),usedByFragmentShader:e.getActiveUniformBlockParameter(t,s,Tk),size:e.getActiveUniformBlockParameter(t,s,kk),uniformIndices:e.getActiveUniformBlockParameter(t,s,Ik)};l.used=l.usedByVertexShader||l.usedByFragmentShader,a[u]=l}return{blockSpecs:a,uniformData:r}}const ty=/\[\d+\]\.$/,xI=(e,t)=>((e+(t-1))/t|0)*t;function AI(e,t,n,r){if(t||n){r=r||1;const a=e.length/4;return function(o){let s=0,u=0;for(let l=0;l<a;++l){for(let f=0;f<r;++f)e[s++]=o[u++];s+=4-r}}}else return function(i){i.length?e.set(i):e[0]=i}}function EI(e,t,n,r){const i=n.blockSpecs,a=n.uniformData,o=i[r];if(!o)return vk("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(o.size),u=e.createBuffer(),l=o.index;e.bindBuffer(Vd,u),e.uniformBlockBinding(t,o.index,l);let f=r+".";ty.test(f)&&(f=f.replace(ty,"."));const c={},h={},d={};return o.uniformIndices.forEach(function(p){const b=a[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 E=oe[b.type],C=E.Type,_=w?xI(E.size,16)*b.size:E.size*b.size,k=new C(s,b.offset,_/C.BYTES_PER_ELEMENT);c[y]=k;const I=AI(k,w,E.rows,E.cols);h[y]=I,ey(y,I,d,h)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:u,uniforms:c,setters:h}}function Yd(e,t,n){return EI(e,t.program,t.uniformBlockSpec,n)}function ny(e,t,n){const i=(t.uniformBlockSpec||t).blockSpecs[n.name];if(i){const a=i.index;return e.bindBufferRange(Vd,a,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function Qd(e,t,n){ny(e,t,n)&&e.bufferData(Vd,n.array,xk)}function Va(e,t){const n=e.setters;for(const r in t){const i=n[r];if(i){const a=t[r];i(a)}}}function ry(e,t){for(const n in t){const r=e[n];typeof r=="function"?r(t[n]):ry(e[n],t[n])}}function Gi(e,...t){const n=e.uniformSetters||e,r=t.length;for(let i=0;i<r;++i){const a=t[i];if(Array.isArray(a)){const o=a.length;for(let s=0;s<o;++s)Gi(n,a[s])}else for(const o in a){const s=n[o];s&&s(a[o])}}}function _I(e,t){const n={},r=e.getProgramParameter(t,Ek);for(let i=0;i<r;++i){const a=e.getActiveAttrib(t,i);if(J2(a))continue;const o=e.getAttribLocation(t,a.name),s=nt[a.type],u=s.setter(e,o,s);u.location=o,n[a.name]=u}return n}function SI(e,t){for(const n in t){const r=e[n];r&&r(t[n])}}function Hi(e,t,n){n.vertexArrayObject?e.bindVertexArray(n.vertexArrayObject):(SI(t.attribSetters||t,n.attribs),n.indices&&e.bindBuffer(Ak,n.indices))}function CI(e,t){const n=yI(e,t),r=_I(e,t),i={program:t,uniformSetters:n,attribSetters:r};return Pa(e)&&(i.uniformBlockSpec=vI(e,t),i.transformFeedbackInfo=wI(e,t)),i}const TI=4,iy=5123;function _f(e,t,n,r,i,a){n=n===void 0?TI:n;const o=t.indices,s=t.elementType,u=r===void 0?t.numElements:r;i=i===void 0?0:i,s||o?a!==void 0?e.drawElementsInstanced(n,u,s===void 0?iy:t.elementType,i,a):e.drawElements(n,u,s===void 0?iy:t.elementType,i):a!==void 0?e.drawArraysInstanced(n,i,u,a):e.drawArrays(n,i,u)}const kI=36160,Vi=36161,II=3553,BI=5121,DI=6402,FI=6408,RI=33190,MI=36012,PI=35056,LI=36013,NI=32854,OI=32855,zI=36194,ay=33189,oy=6401,sy=36168,$d=34041,UI=36064,Sf=36096,ly=36128,Xd=33306,Kd=33071,Jd=9729,uy=[{format:FI,type:BI,min:Jd,wrap:Kd},{format:$d}],An={};An[$d]=Xd,An[oy]=ly,An[sy]=ly,An[DI]=Sf,An[ay]=Sf,An[RI]=Sf,An[MI]=Sf,An[PI]=Xd,An[LI]=Xd;function GI(e,t){return An[e]||An[t]}const Hr={};Hr[NI]=!0,Hr[OI]=!0,Hr[zI]=!0,Hr[$d]=!0,Hr[ay]=!0,Hr[oy]=!0,Hr[sy]=!0;function HI(e){return Hr[e]}function VI(e,t,n,r){const i=kI,a=e.createFramebuffer();e.bindFramebuffer(i,a),n=n||e.drawingBufferWidth,r=r||e.drawingBufferHeight,t=t||uy;let o=0;const s={framebuffer:a,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||GI(c,u.internalFormat);if(h||(h=UI+o++),!l)if(f!==void 0||HI(c))l=e.createRenderbuffer(),e.bindRenderbuffer(Vi,l),f>1?e.renderbufferStorageMultisample(Vi,f,c,n,r):e.renderbufferStorage(Vi,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||Jd,d.mag=d.mag||d.minMag||Jd,d.wrapS=d.wrapS||d.wrap||Kd,d.wrapT=d.wrapT||d.wrap||Kd),l=Us(e,d)}if(n2(e,l))e.framebufferRenderbuffer(i,h,Vi,l);else if(af(e,l))u.layer!==void 0?e.framebufferTextureLayer(i,h,l,u.level||0,u.layer):e.framebufferTexture2D(i,h,u.target||II,l,u.level||0);else throw new Error("unknown attachment type");s.attachments.push(l)}),s}function jI(e,t,n,r,i){r=r||e.drawingBufferWidth,i=i||e.drawingBufferHeight,t.width=r,t.height=i,n=n||uy,n.forEach(function(a,o){const s=t.attachments[o],u=a.format,l=a.samples;if(l!==void 0||n2(e,s))e.bindRenderbuffer(Vi,s),l>1?e.renderbufferStorageMultisample(Vi,l,u,r,i):e.renderbufferStorage(Vi,u,r,i);else if(af(e,s))wk(e,s,a,r,i);else throw new Error("unknown attachment type")})}function qI(e,t,n){const r=e.createVertexArray();return e.bindVertexArray(r),t.length||(t=[t]),t.forEach(function(i){Hi(e,i,n)}),e.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const ZI=/^(.*?)_/;function WI(e,t){Fd(e,0);const n=e.getExtension(t);if(n){const r={},i=ZI.exec(t)[1],a="_"+i;for(const o in n){const s=n[o],u=typeof s=="function",l=u?i:a;let f=o;o.endsWith(l)&&(f=o.substring(0,o.length-l.length)),e[f]!==void 0?!u&&e[f]!==s&&t2(f,e[f],s,o):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},Fd(r,0)}return n}const fy=["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 cy(e){for(let t=0;t<fy.length;++t)WI(e,fy[t])}function YI(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){cy(r);break}return r}function QI(e,t){return YI(e,t)}const $I=`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;
165
165
  #if defined(ROUNDED_CORNERS) || defined(STROKED)
166
166
  out vec2 vPosInPixels;
167
167
  #endif
@@ -188,9 +188,9 @@ if(uPickingEnabled){fragColor=vPickingColor;}}`,e0="attr_",hy="uDomain_",KI="ran
188
188
  ${n.type} ${py}${e}() {
189
189
  // Constant value
190
190
  return ${n};
191
- }`}function tB(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=Li(e),a=e0+wy(r),o=hy+i,s=KI+i,u=Nn(t.type),l=Cf(t.type),c=l&&by(t.domain())?"uvec2":l||u?"uint":"float",h=t.domain?t.domain().length:void 0;let d;const p=[];p.push(""),p.push("/".repeat(70)),p.push(`// Channel: ${e}`),p.push(""),p.push(`#define ${e}_DEFINED`);const{transform:m}=JI(t.type),y=(M,...ie)=>rB.apply(null,[M,"value",...ie]);let w;switch(m){case"linear":w=y("scaleLinear","domain",s);break;case"log":w=y("scaleLog","domain",s,t.base());break;case"symlog":w=y("scaleSymlog","domain",s,t.constant());break;case"pow":case"sqrt":w=y("scalePow","domain",s,t.exponent());break;case"index":case"locus":w=y("scaleBandHp","domain",s,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"point":case"band":w=y("scaleBand","domain",s,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"ordinal":case"null":case"identity":w=y("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${t.type}! ${e}: ${JSON.stringify(n)}`)}const _=Ku(t.type)||bt(t.type)&&Ni(e)?[0,1]:t.range?t.range():void 0;if(_&&e==i&&_.length&&_.every(Ct)){const M=my(_);p.push(`const ${M.type} ${s} = ${M};`)}const C=Ni(e)?"vec3":"float";let E;if(Ni(e)){const M=t0+i;if(e==i&&p.push(`uniform sampler2D ${M};`),bt(t.type))E=`getInterpolatedColor(${M}, transformed)`;else if(Nn(t.type)||Mi(t.type))E=`getDiscreteColor(${M}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(t.type==="ordinal"||Mi(t.type)){const M=t0+i;e==i&&p.push(`uniform sampler2D ${M};`),E=`getDiscreteColor(${M}, int(transformed)).r`}const k=Fs(n)?`uniform highp ${c} ${a};`:`in highp ${c} ${a};`,B=[],I=bt(t.type)&&h>2,R=Mi(t.type)||I;if(B.push("int slot = 0;"),R){const M=o;B.push(I?`while (slot < ${M}.length() - 2 && value >= ${M}[slot + 1]) { slot++; }`:`while (slot < ${M}.length() && value >= ${M}[slot]) { slot++; }`)}const L=bt(t.type)||Mi(t.type)||["band","point"].includes(t.type);if(w){const M=o;L&&(l?B.push(`vec3 domain = ${M};`):B.push(`vec2 domain = vec2(${M}[slot], ${M}[slot + 1]);`)),B.push(`float transformed = ${w};`),I&&B.push(`transformed = (float(slot) + transformed) / (float(${M}.length() - 1));`)}else B.push("float transformed = float(slot);");"clamp"in t&&t.clamp()&&B.push(`transformed = clampToRange(transformed, ${my(_)});`),B.push(`return ${E??"transformed"};`),p.push(`
191
+ }`}function tB(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=Li(e),a=e0+wy(r),o=hy+i,s=KI+i,u=Nn(t.type),l=Cf(t.type),c=l&&by(t.domain())?"uvec2":l||u?"uint":"float",h=t.domain?t.domain().length:void 0;let d;const p=[];p.push(""),p.push("/".repeat(70)),p.push(`// Channel: ${e}`),p.push(""),p.push(`#define ${e}_DEFINED`);const{transform:b}=JI(t.type),y=(M,...ie)=>rB.apply(null,[M,"value",...ie]);let w;switch(b){case"linear":w=y("scaleLinear","domain",s);break;case"log":w=y("scaleLog","domain",s,t.base());break;case"symlog":w=y("scaleSymlog","domain",s,t.constant());break;case"pow":case"sqrt":w=y("scalePow","domain",s,t.exponent());break;case"index":case"locus":w=y("scaleBandHp","domain",s,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"point":case"band":w=y("scaleBand","domain",s,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"ordinal":case"null":case"identity":w=y("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${t.type}! ${e}: ${JSON.stringify(n)}`)}const E=Ku(t.type)||bt(t.type)&&Ni(e)?[0,1]:t.range?t.range():void 0;if(E&&e==i&&E.length&&E.every(Ct)){const M=my(E);p.push(`const ${M.type} ${s} = ${M};`)}const C=Ni(e)?"vec3":"float";let _;if(Ni(e)){const M=t0+i;if(e==i&&p.push(`uniform sampler2D ${M};`),bt(t.type))_=`getInterpolatedColor(${M}, transformed)`;else if(Nn(t.type)||Mi(t.type))_=`getDiscreteColor(${M}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(t.type==="ordinal"||Mi(t.type)){const M=t0+i;e==i&&p.push(`uniform sampler2D ${M};`),_=`getDiscreteColor(${M}, int(transformed)).r`}const k=Fs(n)?`uniform highp ${c} ${a};`:`in highp ${c} ${a};`,I=[],B=bt(t.type)&&h>2,R=Mi(t.type)||B;if(I.push("int slot = 0;"),R){const M=o;I.push(B?`while (slot < ${M}.length() - 2 && value >= ${M}[slot + 1]) { slot++; }`:`while (slot < ${M}.length() && value >= ${M}[slot]) { slot++; }`)}const L=bt(t.type)||Mi(t.type)||["band","point"].includes(t.type);if(w){const M=o;L&&(l?I.push(`vec3 domain = ${M};`):I.push(`vec2 domain = vec2(${M}[slot], ${M}[slot + 1]);`)),I.push(`float transformed = ${w};`),B&&I.push(`transformed = (float(slot) + transformed) / (float(${M}.length() - 1));`)}else I.push("float transformed = float(slot);");"clamp"in t&&t.clamp()&&I.push(`transformed = clampToRange(transformed, ${my(E)});`),I.push(`return ${_??"transformed"};`),p.push(`
192
192
  ${C} ${dy}${e}(${c} value) {
193
- ${B.map(M=>` ${M}
193
+ ${I.map(M=>` ${M}
194
194
  `).join("")}
195
195
  }`),p.push(`
196
196
  ${C} ${py}${e}() {
@@ -207,9 +207,9 @@ ${n}
207
207
  `);this.updateFromDatum=new Function("that","datum",`${t}
208
208
  return function unrolledUpdateFromDatum(datum) {
209
209
  ${n}
210
- };`)(this)}else this.updateFromDatum=t=>{for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](t)}};const ja=5,r0=127;function i0(e){const t=[];for(let p=0;p<=r0;p++)t.push(void 0);const n=new Map;for(const p of e.chars)p.id<=r0?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<=r0?t[p]:n.get(p))||t[63]}function a(p){return i(p.charCodeAt(0))}const o=e.common.base,s=a("x"),u=a("X"),l=a("q"),f=s.height-ja*2,c=u.height-ja*2,h=l.height-s.height+l.yoffset-s.yoffset;function d(p,m=1){let y=0;for(let w=0;w<p.length;w++)y+=i(p.charCodeAt(w)).xadvance;return y/o*m}return{measureWidth:d,getCharByCode:i,getChar:a,xHeight:f,capHeight:c,descent:h,common:e.common}}const xy=2**31-1,fB=-(2**31);function cB(e,t,n,r=n){const i=new Array(e);i.fill(xy);let a=fB,o=-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(_>a)a=_;else{s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}const E=n(w);if(E<o){s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}o=E;const k=h(E,!1);i[k]>_&&(i[k]=_),u[k]<C&&(u[k]=C)}function p(w,_,C){if(s)return;if(_>a)a=_;else{s=!0,console.debug("Items (vertices) are not ordered properly. Disabling binned index.");return}const E=n(w),k=r(w);if(E<o){s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}else if(k<E){s=!0,console.debug("End index is less than start index. Disabling binned index. Datum: ",w);return}o=E;const B=h(E,!1),I=h(k,!0);for(let R=B;R<=I;R++)i[R]>_&&(i[R]=_),u[R]<C&&(u[R]=C)}const m=(w,_,C=[0,0])=>{const E=h(w,!1),k=h(_,!0),B=i[E],I=Math.max(u[k],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[_]==xy?(i[_]=u[_],w=!1):i[_-1]>i[_]&&(i[_-1]=i[_]);return m};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(([a,o])=>r.includes(a)&&o&&o.scale&&!o.constant));const i=[...yy(t).entries()].filter(([a,o])=>a[1]&&o.length>1).map(([a,o])=>o);this.allocatedVertices=n,this.variableBuilder=new uB(n);for(const[a,o]of Object.entries(this.variableEncoders)){const s=i.find(m=>m.find(y=>y==a));if(s&&a!=s[0])continue;const u=o.accessor,l=Cf(o.scale.type),f=l&&by(o.scale.domain()),c=[0,0],h=o.indexer,d=h?m=>h(u(m)):f?m=>oB(u(m),c):u,p=s?wy(s):a;this.variableBuilder.addConverter(p,{f:d,numComponents:f?2:1,arrayReference:f?c:void 0,targetArrayType:Nn(o.scale.type)?Uint16Array:l?Uint32Array:Float32Array})}this.lastOffset=0,this.rangeMap=new _r([],JSON.stringify)}registerBatch(t){var a;const n=this.lastOffset,r=this.variableBuilder.vertexCount,i=r-n;i&&this.rangeMap.set(t,{offset:n,count:i,xIndex:(a=this.xIndexer)==null?void 0:a.getIndex()}),this.lastOffset=r}addBatches(t){for(const[n,r]of t)this.addBatch(n,r)}addBatch(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.pushFromDatum(o),this.addToXIndex(o)}this.registerBatch(t)}prepareXIndexer(t,n=0,r=n+t.length){var l;const i=()=>{this.addToXIndex=f=>{},this.xIndexer=void 0},a=(l=this.encoders.x)==null?void 0:l.channelDef;if(!("buildIndex"in a)||!a.buildIndex||!t.length||r-n<0){i();return}const o=f=>{var c;return f&&bt((c=f.scale)==null?void 0:c.type)&&f},s=o(this.variableEncoders.x),u=o(this.variableEncoders.x2);if(s){const f=s.accessor,c=u?u.accessor:f,h=[f(t[n]),c(t[r-1])];if(h[1]>h[0]){this.xIndexer=cB(50,h,f,c);let d=this.variableBuilder.vertexCount;this.addToXIndex=p=>{let m=this.variableBuilder.vertexCount;this.xIndexer(p,d,m),d=m}}else i()}else i()}addToXIndex(t){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class hB extends Gs{constructor({encoders:t,attributes:n,numItems:r}){super({encoders:t,attributes:n,numVertices:r*6}),this.variableBuilder.configure();const i=this.variableBuilder.pushAll;this.pushAllSixTimes=r>500?new Function("pushAll",`return function unrolledPushAllSixTimes() {
210
+ };`)(this)}else this.updateFromDatum=t=>{for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](t)}};const ja=5,r0=127;function i0(e){const t=[];for(let p=0;p<=r0;p++)t.push(void 0);const n=new Map;for(const p of e.chars)p.id<=r0?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<=r0?t[p]:n.get(p))||t[63]}function a(p){return i(p.charCodeAt(0))}const o=e.common.base,s=a("x"),u=a("X"),l=a("q"),f=s.height-ja*2,c=u.height-ja*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/o*b}return{measureWidth:d,getCharByCode:i,getChar:a,xHeight:f,capHeight:c,descent:h,common:e.common}}const xy=2**31-1,fB=-(2**31);function cB(e,t,n,r=n){const i=new Array(e);i.fill(xy);let a=fB,o=-1/0,s=!1;const u=new Array(e);u.fill(0);const l=t[0],c=(t[1]-t[0])/e,h=(w,E)=>{const C=(w-l)/c,_=Math.floor(C);return xs(E&&_==C?_-1:_,0,e-1)};function d(w,E,C){if(s)return;if(E>a)a=E;else{s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}const _=n(w);if(_<o){s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}o=_;const k=h(_,!1);i[k]>E&&(i[k]=E),u[k]<C&&(u[k]=C)}function p(w,E,C){if(s)return;if(E>a)a=E;else{s=!0,console.debug("Items (vertices) are not ordered properly. Disabling binned index.");return}const _=n(w),k=r(w);if(_<o){s=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}else if(k<_){s=!0,console.debug("End index is less than start index. Disabling binned index. Datum: ",w);return}o=_;const I=h(_,!1),B=h(k,!0);for(let R=I;R<=B;R++)i[R]>E&&(i[R]=E),u[R]<C&&(u[R]=C)}const b=(w,E,C=[0,0])=>{const _=h(w,!1),k=h(E,!0),I=i[_],B=Math.max(u[k],I);return C[0]=I,C[1]=B,C},y=()=>{if(s)return;for(let E=1;E<u.length;E++)u[E]<u[E-1]&&(u[E]=u[E-1]);let w=!0;for(let E=i.length-1;E>0;E--)w&&i[E]==xy?(i[E]=u[E],w=!1):i[E-1]>i[E]&&(i[E-1]=i[E]);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(([a,o])=>r.includes(a)&&o&&o.scale&&!o.constant));const i=[...yy(t).entries()].filter(([a,o])=>a[1]&&o.length>1).map(([a,o])=>o);this.allocatedVertices=n,this.variableBuilder=new uB(n);for(const[a,o]of Object.entries(this.variableEncoders)){const s=i.find(b=>b.find(y=>y==a));if(s&&a!=s[0])continue;const u=o.accessor,l=Cf(o.scale.type),f=l&&by(o.scale.domain()),c=[0,0],h=o.indexer,d=h?b=>h(u(b)):f?b=>oB(u(b),c):u,p=s?wy(s):a;this.variableBuilder.addConverter(p,{f:d,numComponents:f?2:1,arrayReference:f?c:void 0,targetArrayType:Nn(o.scale.type)?Uint16Array:l?Uint32Array:Float32Array})}this.lastOffset=0,this.rangeMap=new _r([],JSON.stringify)}registerBatch(t){var a;const n=this.lastOffset,r=this.variableBuilder.vertexCount,i=r-n;i&&this.rangeMap.set(t,{offset:n,count:i,xIndex:(a=this.xIndexer)==null?void 0:a.getIndex()}),this.lastOffset=r}addBatches(t){for(const[n,r]of t)this.addBatch(n,r)}addBatch(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.pushFromDatum(o),this.addToXIndex(o)}this.registerBatch(t)}prepareXIndexer(t,n=0,r=n+t.length){var l;const i=()=>{this.addToXIndex=f=>{},this.xIndexer=void 0},a=(l=this.encoders.x)==null?void 0:l.channelDef;if(!("buildIndex"in a)||!a.buildIndex||!t.length||r-n<0){i();return}const o=f=>{var c;return f&&bt((c=f.scale)==null?void 0:c.type)&&f},s=o(this.variableEncoders.x),u=o(this.variableEncoders.x2);if(s){const f=s.accessor,c=u?u.accessor:f,h=[f(t[n]),c(t[r-1])];if(h[1]>h[0]){this.xIndexer=cB(50,h,f,c);let d=this.variableBuilder.vertexCount;this.addToXIndex=p=>{let b=this.variableBuilder.vertexCount;this.xIndexer(p,d,b),d=b}}else i()}else i()}addToXIndex(t){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class hB extends Gs{constructor({encoders:t,attributes:n,numItems:r}){super({encoders:t,attributes:n,numVertices:r*6}),this.variableBuilder.configure();const i=this.variableBuilder.pushAll;this.pushAllSixTimes=r>500?new Function("pushAll",`return function unrolledPushAllSixTimes() {
211
211
  pushAll(); pushAll(); pushAll(); pushAll(); pushAll(); pushAll();
212
- };`)(i):function(){i(),i(),i(),i(),i(),i()}}addBatch(t,n,r=0,i=n.length){if(!(i<=r)){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.updateFromDatum(o),this.pushAllSixTimes(),this.addToXIndex(o)}this.registerBatch(t)}}}class dB extends Gs{constructor({encoders:t,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:a}){super({encoders:t,attributes:n,numVertices:r==1/0?a*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateSide=this.variableBuilder.createUpdater("side",1),this.updatePos=this.variableBuilder.createUpdater("pos",1),this.variableBuilder.configure()}addBatch(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.updateFromDatum(o),this.updateSide(-.5),this.updatePos(0),this.variableBuilder.pushAll();const s=1;for(let u=0;u<=s;u++)this.updatePos(u/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(o)}this.registerBatch(t)}}class pB extends Gs{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r}),this.variableBuilder.configure()}}class gB extends Gs{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r}),this.variableBuilder.configure()}toArrays(){const t=this.variableBuilder.arrays;for(let n of Object.values(t))n.divisor=1;return super.toArrays()}}class mB extends Gs{constructor({encoders:t,attributes:n,fontMetrics:r,properties:i,numCharacters:a=void 0}){super({encoders:t,attributes:n,numVertices:a*6}),this.metadata=r,this.metrics=r,this.properties=i;const s=t.text.channelDef;this.numberFormat=!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),this.variableBuilder.configure()}addBatch(t,n,r=0,i=n.length){const a=this.properties.align||"left",o=this.properties.logoLetters??!1,s=this.metadata.common.base,u=this.metadata.common.scaleH;let l=-ja;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],m=this.numberFormat(f(p)),y=Pe(m)?m:m===null?"":""+m;if(y.length==0)continue;this.variableBuilder.updateFromDatum(p);const w=o?y.length:this.metrics.measureWidth(y);this.updateWidth(w);let _=a=="right"?-w:a=="center"?-w/2:0;if(!o){const B=this.metrics.getCharByCode(y.charCodeAt(0));_-=(B.width-B.xadvance)/s/2}let C=-.5,E=1,k=1;for(let B=0;B<y.length;B++){const I=this.metrics.getCharByCode(y.charCodeAt(B)),R=o?1:I.xadvance/s;if(I.id==32){_+=R;continue}o?(k=(I.width+ja*2)/I.width,_=-k/2,E=(I.height+ja*2)/I.height,C=-.5-ja/I.height):(E=I.height/s,C=-(I.height+I.yoffset+l)/s,k=I.width/s);const L=I.x,j=I.y;c[0]=_,c[1]=C+E,h[0]=L/u,h[1]=j/u,this.variableBuilder.pushAll(),c[0]=_+k,c[1]=C+E,h[0]=(L+I.width)/u,h[1]=j/u,this.variableBuilder.pushAll(),c[0]=_,c[1]=C,h[0]=L/u,h[1]=(j+I.height)/u,this.variableBuilder.pushAll(),c[0]=_+k,c[1]=C+E,h[0]=(L+I.width)/u,h[1]=j/u,this.variableBuilder.pushAll(),c[0]=_,c[1]=C,h[0]=L/u,h[1]=(j+I.height)/u,this.variableBuilder.pushAll(),c[0]=_+k,c[1]=C,h[0]=(L+I.width)/u,h[1]=(j+I.height)/u,this.variableBuilder.pushAll(),_+=R}this.addToXIndex(p)}this.registerBatch(t)}}const Ay=`#define PI 3.141593
212
+ };`)(i):function(){i(),i(),i(),i(),i(),i()}}addBatch(t,n,r=0,i=n.length){if(!(i<=r)){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.updateFromDatum(o),this.pushAllSixTimes(),this.addToXIndex(o)}this.registerBatch(t)}}}class dB extends Gs{constructor({encoders:t,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:a}){super({encoders:t,attributes:n,numVertices:r==1/0?a*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateSide=this.variableBuilder.createUpdater("side",1),this.updatePos=this.variableBuilder.createUpdater("pos",1),this.variableBuilder.configure()}addBatch(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let a=r;a<i;a++){const o=n[a];this.variableBuilder.updateFromDatum(o),this.updateSide(-.5),this.updatePos(0),this.variableBuilder.pushAll();const s=1;for(let u=0;u<=s;u++)this.updatePos(u/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(o)}this.registerBatch(t)}}class pB extends Gs{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r}),this.variableBuilder.configure()}}class gB extends Gs{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r}),this.variableBuilder.configure()}toArrays(){const t=this.variableBuilder.arrays;for(let n of Object.values(t))n.divisor=1;return super.toArrays()}}class mB extends Gs{constructor({encoders:t,attributes:n,fontMetrics:r,properties:i,numCharacters:a=void 0}){super({encoders:t,attributes:n,numVertices:a*6}),this.metadata=r,this.metrics=r,this.properties=i;const s=t.text.channelDef;this.numberFormat=!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),this.variableBuilder.configure()}addBatch(t,n,r=0,i=n.length){const a=this.properties.align||"left",o=this.properties.logoLetters??!1,s=this.metadata.common.base,u=this.metadata.common.scaleH;let l=-ja;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=o?y.length:this.metrics.measureWidth(y);this.updateWidth(w);let E=a=="right"?-w:a=="center"?-w/2:0;if(!o){const I=this.metrics.getCharByCode(y.charCodeAt(0));E-=(I.width-I.xadvance)/s/2}let C=-.5,_=1,k=1;for(let I=0;I<y.length;I++){const B=this.metrics.getCharByCode(y.charCodeAt(I)),R=o?1:B.xadvance/s;if(B.id==32){E+=R;continue}o?(k=(B.width+ja*2)/B.width,E=-k/2,_=(B.height+ja*2)/B.height,C=-.5-ja/B.height):(_=B.height/s,C=-(B.height+B.yoffset+l)/s,k=B.width/s);const L=B.x,j=B.y;c[0]=E,c[1]=C+_,h[0]=L/u,h[1]=j/u,this.variableBuilder.pushAll(),c[0]=E+k,c[1]=C+_,h[0]=(L+B.width)/u,h[1]=j/u,this.variableBuilder.pushAll(),c[0]=E,c[1]=C,h[0]=L/u,h[1]=(j+B.height)/u,this.variableBuilder.pushAll(),c[0]=E+k,c[1]=C+_,h[0]=(L+B.width)/u,h[1]=j/u,this.variableBuilder.pushAll(),c[0]=E,c[1]=C,h[0]=L/u,h[1]=(j+B.height)/u,this.variableBuilder.pushAll(),c[0]=E+k,c[1]=C,h[0]=(L+B.width)/u,h[1]=(j+B.height)/u,this.variableBuilder.pushAll(),E+=R}this.addToXIndex(p)}this.registerBatch(t)}}const Ay=`#define PI 3.141593
213
213
  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);}}`,bB="uniform highp float uZero;vec3 getDiscreteColor(sampler2D s,int index){return texelFetch(s,ivec2(index % textureSize(s,0).x,0),0).rgb;}vec3 getInterpolatedColor(sampler2D s,float unitValue){return texture(s,vec2(unitValue,0.0)).rgb;}float clampToRange(float value,vec2 range){return clamp(value,min(range[0],range[1]),max(range[0],range[1]));}float scaleIdentity(float value){return value;}float scaleIdentity(uint value){return float(value);}float scaleLinear(float value,vec2 domain,vec2 range){float domainSpan=domain[1]-domain[0];float rangeSpan=range[1]-range[0];return(value-domain[0])/domainSpan*rangeSpan+range[0];}float scaleLog(float value,vec2 domain,vec2 range,float base){return scaleLinear(log(value)/log(base),log(domain)/log(base),range);}float symlog(float value,float constant){return sign(value)*log(abs(value/constant)+1.0);}float scaleSymlog(float value,vec2 domain,vec2 range,float constant){return scaleLinear(symlog(value,constant),vec2(symlog(domain[0],constant),symlog(domain[1],constant)),range);}float scalePow(float value,vec2 domain,vec2 range,float exponent){return scaleLinear(pow(abs(value),exponent)*sign(value),pow(abs(domain),vec2(exponent))*sign(domain),range);}float scaleBand(uint value,vec2 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;float n=domainExtent[1]-domainExtent[0];paddingInner=int(n)>1 ? paddingInner : 0.0;float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);return start+(float(value)-domainExtent[0])*step+bandwidth*band;}const int lowBits=12;const float lowDivisor=pow(2.0,float(lowBits));const uint lowMask=uint(lowDivisor-1.0);vec2 splitUint(uint value){uint valueLo=value&lowMask;uint valueHi=value-valueLo;return vec2(float(valueHi),float(valueLo));}/***High precision variant of scaleBand for index/locus scales*/float scaleBandHp(uint value,vec3 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;vec2 domainStart=domainExtent.xy;float n=domainExtent[2];float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);vec2 splitValue=splitUint(value);float inf=1.0/uZero;float hi=max(splitValue[0]-domainStart[0],-inf);float lo=max(splitValue[1]-domainStart[1],-inf);return dot(vec4(start,hi,lo,bandwidth),vec4(1.0,step,step,band));}/***High precision variant of scaleBand for index/locus scales for large*domains where 32bit uints are not sufficient to represent the domain.*/float scaleBandHp(uvec2 value,vec3 domainExtent,vec2 range,float paddingInner,float paddingOuter,float align,float band){float start=range[0];float stop=range[1];float rangeSpan=stop-start;vec2 domainStart=domainExtent.xy;float n=domainExtent[2];float step=rangeSpan/max(1.0,n-paddingInner+paddingOuter*2.0);start+=(rangeSpan-step*(n-paddingInner))*align;float bandwidth=step*(1.0-paddingInner);vec2 splitValue=vec2(float(value[0])*lowDivisor,float(value[1]));float inf=1.0/uZero;float hi=max(splitValue[0]-domainStart[0],-inf);float lo=max(splitValue[1]-domainStart[1],-inf);return dot(vec4(start,hi,lo,bandwidth),vec4(1.0,step,step,band));}",yB=`/***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;
214
214
  #if !defined(SAMPLE_FACET_UNIFORM) && !defined(SAMPLE_FACET_TEXTURE)
215
215
  SampleFacetPosition getSampleFacetPos(){return SampleFacetPosition(0.0,1.0,0.0,1.0);}
@@ -233,13 +233,13 @@ return true;}return false;}`,vB="in highp vec4 vPickingColor;",kf=Symbol("cacheM
233
233
 
234
234
  ^^^ ${u}`:""}`}).join(`
235
235
  `)}function CB(e,t,n){const r=e.createProgram();e.attachShader(r,t),e.attachShader(r,n),e.linkProgram(r);function i(){let a,o;if(!e.getProgramParameter(r,e.LINK_STATUS)){a=e.getProgramInfoLog(r);for(const u of[t,n])e.getShaderParameter(u,e.COMPILE_STATUS)||(a=e.getShaderInfoLog(u),o=SB(e.getShaderSource(u),a,0)+`
236
- Error compiling: ${a}`,e.deleteShader(u));e.deleteProgram(r)}if(a)return{message:a,detail:o}}return{program:r,getProgramErrors:i}}function Bf(e,t,n,r){return r?I2(e,r,n,t):r=Us(e,{...t,src:n}),r}function TB(...e){const t={get(n,r,i){for(const a of e){const s=a()[r];if(s!==void 0)return s}},has(n,r,i){for(const a of e){const o=a();if(r in o)return!0}return!1}};return new Proxy({},t)}function kB(e){return Pe(e)||Ct(e)||Go(e)}class qi extends Error{constructor(t,n){super(t),this.name="ViewError",this.view=n}}const IB="SAMPLE_FACET_UNIFORM",Ty="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 BB,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=TB(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 qa(this,"encoding",()=>{var o;const t=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=s=>{const u=this.properties[s];return kB(u)&&{value:u}},i=Object.fromEntries(this.getSupportedChannels().map(s=>[s,r(s)]).filter(s=>s[1].value!==void 0)),a=this.fixEncoding({...t,...i,...n});for(const s of Object.keys(a))this.getSupportedChannels().includes(s)||delete a[s];return a.x&&((o=a.x).buildIndex??(o.buildIndex=!0)),a})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=t5(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return Ty;if(this.unitView.getLayoutAncestors().find(t=>"samples"in t.spec))return IB}createAndLinkShaders(t,n,r=[]){const i=this.getAttributes(),a="// view: "+this.unitView.getPathString();this.domainUniforms=[];let o=[];const s=new Set,u=yy(this.encoders),l=this.getSampleFacetMode();l&&r.push(`#define ${l}`);for(const m of i){let y;if(m in this.encoding)y=m;else continue;const w=this.encoding[y];if(w)if(vn(w))o.push(eB(y,w.value));else{const _=Ut(w)&&w.resolutionChannel||y,C=Oi(_)?this.unitView.getScaleResolution(_).getScale():ef(),E=Pi(w)?u.get([w.field,!0]):[y],k=tB(y,C,w,E!=null&&E.includes(y)?E:[y]);o.push(k.glsl),k.domainUniform&&this.domainUniforms.push(k.domainUniform),k.attributeGlsl&&s.add(k.attributeGlsl)}}const f=this.domainUniforms.length?`layout(std140) uniform Domains {
237
- `+this.domainUniforms.map(m=>` ${m}
236
+ Error compiling: ${a}`,e.deleteShader(u));e.deleteProgram(r)}if(a)return{message:a,detail:o}}return{program:r,getProgramErrors:i}}function Bf(e,t,n,r){return r?I2(e,r,n,t):r=Us(e,{...t,src:n}),r}function TB(...e){const t={get(n,r,i){for(const a of e){const s=a()[r];if(s!==void 0)return s}},has(n,r,i){for(const a of e){const o=a();if(r in o)return!0}return!1}};return new Proxy({},t)}function kB(e){return Pe(e)||Ct(e)||Go(e)}class qi extends Error{constructor(t,n){super(t),this.name="ViewError",this.view=n}}const IB="SAMPLE_FACET_UNIFORM",Ty="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 BB,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=TB(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 qa(this,"encoding",()=>{var o;const t=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=s=>{const u=this.properties[s];return kB(u)&&{value:u}},i=Object.fromEntries(this.getSupportedChannels().map(s=>[s,r(s)]).filter(s=>s[1].value!==void 0)),a=this.fixEncoding({...t,...i,...n});for(const s of Object.keys(a))this.getSupportedChannels().includes(s)||delete a[s];return a.x&&((o=a.x).buildIndex??(o.buildIndex=!0)),a})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=t5(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return Ty;if(this.unitView.getLayoutAncestors().find(t=>"samples"in t.spec))return IB}createAndLinkShaders(t,n,r=[]){const i=this.getAttributes(),a="// view: "+this.unitView.getPathString();this.domainUniforms=[];let o=[];const s=new Set,u=yy(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))o.push(eB(y,w.value));else{const E=Ut(w)&&w.resolutionChannel||y,C=Oi(E)?this.unitView.getScaleResolution(E).getScale():ef(),_=Pi(w)?u.get([w.field,!0]):[y],k=tB(y,C,w,_!=null&&_.includes(y)?_:[y]);o.push(k.glsl),k.domainUniform&&this.domainUniforms.push(k.domainUniform),k.attributeGlsl&&s.add(k.attributeGlsl)}}const f=this.domainUniforms.length?`layout(std140) uniform Domains {
237
+ `+this.domainUniforms.map(b=>` ${b}
238
238
  `).join("")+`};
239
239
 
240
240
  `:"",h=[`precision highp float;
241
241
  `,a,...r,Ay,bB,f,[...s].join(`
242
- `),...o,yB,wB,t],d=[a,...r,Ay,vB,n],p=this.gl;this.programStatus=CB(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=CI(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=Yd(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=Yd(this.gl,this.programInfo,"View"),this.markUniformInfo=Yd(this.gl,this.programInfo,"Mark"),this.gl.useProgram(this.programInfo.program),this._setDatums(),Gi(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0,uZero:0})}registerMarkUniform(t,n,r=i=>i){const i=this.markUniformInfo.setters[t];if(ky(n)){const a=this.unitView.context.paramBroker.createExpression(n.expr),o=()=>{i(r(a(null))),this.markUniformsAltered=!0};a.addListener(o),o()}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):Cf(r.scale.type)?aB(+n.datum):+n.datum;Gi(this.programInfo,{[e0+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&&z5(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=H5(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):ny(this.gl,this.programInfo,this.markUniformInfo)}prepareRender(t){const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=qI(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[o,s]of Object.entries(this.domainUniformInfo.setters)){const u=o.substring(hy.length),l=this.encoding[u],f=Ut(l)&&l.resolutionChannel||u;if(Oi(f)){const c=this.unitView.getScaleResolution(f).getScale();i.push(()=>{const h=Nn(c.type)?[0,c.domain().length]:c.domain();s(Cf(c.type)?lB(h):h)})}}i.push(()=>Qd(r,this.programInfo,this.domainUniformInfo))}for(const[o,s]of Object.entries(this.encoding))if(Ut(s)){const u=Ut(s)&&s.resolutionChannel||o;if(Oi(u)){const l=this.unitView.getScaleResolution(u),f=n.rangeTextures.get(l);f&&i.push(()=>Gi(this.programInfo,{[t0+o]:f}))}}this.getSampleFacetMode()==Ty&&i.push(()=>{let o;for(const s of this.unitView.getLayoutAncestors())if(o=s.getSampleFacetTexture(),o)break;if(!o)throw new Error("No facet texture available. This is bug.");Gi(this.programInfo,{uSampleFacetTexture:o})});const a=(t.picking??!1)&&this.isPickingParticipant();return i.push(()=>Va(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:a})),this.opaque||t.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(t){const n=t.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,a=n.locSize?n.locSize.size:1;if(i>1||i+a<0)return!1;const o=n.targetLocSize?n.targetLocSize.location:i,s=n.targetLocSize?n.targetLocSize.size:a;this.gl.uniform4f(r.location,i,a,o,s)}return!0}render(t){}createRenderCallback(t,n){var c;if(!this.bufferInfo)throw new qi(`${this.getType()} mark has no data. This is bug.`,this.unitView);const r=this;let i;const a=(c=this.unitView.getScaleResolution("x"))==null?void 0:c.getScale(),o=a&&bt(a.type),s=["index","locus"].includes(a==null?void 0:a.type)?-1:0,u=[0,0];i=h=>{if(o&&h.xIndex){const d=a.domain(),p=h.xIndex(d[0]+s,d[1],u),m=p[0],y=p[1]-m;y>0&&t(m,y)}else t(h.offset,h.count)};const l=this.rangeMap.get(void 0).count==0?n.facetId:void 0,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,a=this.properties,o=this.glHelper.getLogicalCanvasSize(),s=.5,u=(a.xOffset??0)+s,l=(a.yOffset??0)+s;let f,c=t;if(a.clip!=="never"&&(a.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 m=[c.x,o.height-c.y2,c.width,c.height].map(C=>C*r),y=m.map(C=>Math.round(C)),[w,_]=m.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,o.width*r,o.height*r),i.disable(i.SCISSOR_TEST),f={uViewOffset:[(t.x+u)/o.width,(o.height-t.y-l-t.height)/o.height],uViewScale:[t.width/o.width,t.height/o.height]}}return Va(this.viewUniformInfo,{...f,uViewportSize:[t.width,t.height],uDevicePixelRatio:r}),Qd(this.gl,this.programInfo,this.viewUniformInfo),!0}findDatumAt(t,n){}}class BB 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 ky(e){return typeof e=="object"&&"expr"in e&&Pe(e.expr)}function o0(e,t){const n=a5(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 a=(1-(r.band||1))/2;r.band=a,i.band=-a}}else if(r.type=="quantitative")i={datum:0};else{i={...r};const a=(1-(r.band??1))/2;r.band=0+a,i.band=1-a}}else r={value:0},i={value:1};e[t]=r,e[n]=i}}function Iy(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 By(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 DB extends Vs{constructor(n){super(n);ne(this,Hl);ne(this,Vl);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 qa(this,"opaque",()=>!ee(this,Hl,zg).call(this)&&!ee(this,Vl,Ug).call(this)&&vn(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(n){return o0(n,"x"),o0(n,"y"),Iy(n,this.properties.filled),By(n,this.properties.filled),delete n.color,delete n.opacity,n}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}async initializeGraphics(){await super.initializeGraphics();const n=[];ee(this,Hl,zg).call(this)&&n.push("ROUNDED_CORNERS"),ee(this,Vl,Ug).call(this)&&n.push("STROKED"),this.createAndLinkShaders($I,XI,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 hB({encoders:this.encoders,attributes:this.getAttributes(),numItems:r});i.addBatches(n.facetBatches);const a=i.toArrays();this.rangeMap.migrateEntries(a.rangeMap),this.updateBufferInfo(a)}prepareRender(n){const r=super.prepareRender(n);return r.push(()=>this.bindOrSetMarkUniformBlock()),r.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),r}render(n){const r=this.gl;return this.createRenderCallback((i,a)=>{_f(r,this.vertexArrayInfo,r.TRIANGLE_STRIP,a,i)},n)}findDatumAt(n,r){n=Lt(n);const i=this.unitView.getCollector().facetBatches.get(n);if(!i)return;const a=this.encoders,o=a.x.scale.type;if(Nn(o)){const s=a.x.accessor;return i.find(u=>r==s(u))}else{const s=a.x.accessor,u=a.x2.accessor;return i.find(l=>r>=s(l)&&r<u(l))}}}Hl=new WeakSet,zg=function(){const n=this.properties;return n.cornerRadius||n.cornerRadiusBottomLeft||n.cornerRadiusBottomRight||n.cornerRadiusTopLeft||n.cornerRadiusTopRight},Vl=new WeakSet,Ug=function(){const n=this.encoding.strokeWidth;return!(vn(n)&&!n.value)};const FB=`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(){
242
+ `),...o,yB,wB,t],d=[a,...r,Ay,vB,n],p=this.gl;this.programStatus=CB(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=CI(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=Yd(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=Yd(this.gl,this.programInfo,"View"),this.markUniformInfo=Yd(this.gl,this.programInfo,"Mark"),this.gl.useProgram(this.programInfo.program),this._setDatums(),Gi(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0,uZero:0})}registerMarkUniform(t,n,r=i=>i){const i=this.markUniformInfo.setters[t];if(ky(n)){const a=this.unitView.context.paramBroker.createExpression(n.expr),o=()=>{i(r(a(null))),this.markUniformsAltered=!0};a.addListener(o),o()}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):Cf(r.scale.type)?aB(+n.datum):+n.datum;Gi(this.programInfo,{[e0+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&&z5(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=H5(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):ny(this.gl,this.programInfo,this.markUniformInfo)}prepareRender(t){const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=qI(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[o,s]of Object.entries(this.domainUniformInfo.setters)){const u=o.substring(hy.length),l=this.encoding[u],f=Ut(l)&&l.resolutionChannel||u;if(Oi(f)){const c=this.unitView.getScaleResolution(f).getScale();i.push(()=>{const h=Nn(c.type)?[0,c.domain().length]:c.domain();s(Cf(c.type)?lB(h):h)})}}i.push(()=>Qd(r,this.programInfo,this.domainUniformInfo))}for(const[o,s]of Object.entries(this.encoding))if(Ut(s)){const u=Ut(s)&&s.resolutionChannel||o;if(Oi(u)){const l=this.unitView.getScaleResolution(u),f=n.rangeTextures.get(l);f&&i.push(()=>Gi(this.programInfo,{[t0+o]:f}))}}this.getSampleFacetMode()==Ty&&i.push(()=>{let o;for(const s of this.unitView.getLayoutAncestors())if(o=s.getSampleFacetTexture(),o)break;if(!o)throw new Error("No facet texture available. This is bug.");Gi(this.programInfo,{uSampleFacetTexture:o})});const a=(t.picking??!1)&&this.isPickingParticipant();return i.push(()=>Va(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:a})),this.opaque||t.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(t){const n=t.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,a=n.locSize?n.locSize.size:1;if(i>1||i+a<0)return!1;const o=n.targetLocSize?n.targetLocSize.location:i,s=n.targetLocSize?n.targetLocSize.size:a;this.gl.uniform4f(r.location,i,a,o,s)}return!0}render(t){}createRenderCallback(t,n){var c;if(!this.bufferInfo)throw new qi(`${this.getType()} mark has no data. This is bug.`,this.unitView);const r=this;let i;const a=(c=this.unitView.getScaleResolution("x"))==null?void 0:c.getScale(),o=a&&bt(a.type),s=["index","locus"].includes(a==null?void 0:a.type)?-1:0,u=[0,0];i=h=>{if(o&&h.xIndex){const d=a.domain(),p=h.xIndex(d[0]+s,d[1],u),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,a=this.properties,o=this.glHelper.getLogicalCanvasSize(),s=.5,u=(a.xOffset??0)+s,l=(a.yOffset??0)+s;let f,c=t;if(a.clip!=="never"&&(a.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,o.height-c.y2,c.width,c.height].map(C=>C*r),y=b.map(C=>Math.round(C)),[w,E]=b.map((C,_)=>C-y[_]);i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),f={uViewOffset:[(u+h+w/r)/c.width,-(l+d-E/r)/c.height],uViewScale:p}}else{if(!t.isDefined())return!1;i.viewport(0,0,o.width*r,o.height*r),i.disable(i.SCISSOR_TEST),f={uViewOffset:[(t.x+u)/o.width,(o.height-t.y-l-t.height)/o.height],uViewScale:[t.width/o.width,t.height/o.height]}}return Va(this.viewUniformInfo,{...f,uViewportSize:[t.width,t.height],uDevicePixelRatio:r}),Qd(this.gl,this.programInfo,this.viewUniformInfo),!0}findDatumAt(t,n){}}class BB 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 ky(e){return typeof e=="object"&&"expr"in e&&Pe(e.expr)}function o0(e,t){const n=a5(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 a=(1-(r.band||1))/2;r.band=a,i.band=-a}}else if(r.type=="quantitative")i={datum:0};else{i={...r};const a=(1-(r.band??1))/2;r.band=0+a,i.band=1-a}}else r={value:0},i={value:1};e[t]=r,e[n]=i}}function Iy(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 By(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 DB extends Vs{constructor(n){super(n);ne(this,Hl);ne(this,Vl);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 qa(this,"opaque",()=>!ee(this,Hl,zg).call(this)&&!ee(this,Vl,Ug).call(this)&&vn(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(n){return o0(n,"x"),o0(n,"y"),Iy(n,this.properties.filled),By(n,this.properties.filled),delete n.color,delete n.opacity,n}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}async initializeGraphics(){await super.initializeGraphics();const n=[];ee(this,Hl,zg).call(this)&&n.push("ROUNDED_CORNERS"),ee(this,Vl,Ug).call(this)&&n.push("STROKED"),this.createAndLinkShaders($I,XI,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 hB({encoders:this.encoders,attributes:this.getAttributes(),numItems:r});i.addBatches(n.facetBatches);const a=i.toArrays();this.rangeMap.migrateEntries(a.rangeMap),this.updateBufferInfo(a)}prepareRender(n){const r=super.prepareRender(n);return r.push(()=>this.bindOrSetMarkUniformBlock()),r.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),r}render(n){const r=this.gl;return this.createRenderCallback((i,a)=>{_f(r,this.vertexArrayInfo,r.TRIANGLE_STRIP,a,i)},n)}findDatumAt(n,r){n=Lt(n);const i=this.unitView.getCollector().facetBatches.get(n);if(!i)return;const a=this.encoders,o=a.x.scale.type;if(Nn(o)){const s=a.x.accessor;return i.find(u=>r==s(u))}else{const s=a.x.accessor,u=a.x2.accessor;return i.find(l=>r>=s(l)&&r<u(l))}}}Hl=new WeakSet,zg=function(){const n=this.properties;return n.cornerRadius||n.cornerRadiusBottomLeft||n.cornerRadiusBottomRight||n.cornerRadiusTopLeft||n.cornerRadiusTopRight},Vl=new WeakSet,Ug=function(){const n=this.encoding.strokeWidth;return!(vn(n)&&!n.value)};const FB=`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(){
243
243
  #if defined(dx_DEFINED) || defined(dy_DEFINED)
244
244
  return vec2(getScaled_dx(),getScaled_dy())/uViewportSize;
245
245
  #else
@@ -261,7 +261,7 @@ vec2 pos=applySampleFacet(vec2(x,y));
261
261
  #ifdef y2_DEFINED
262
262
  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;}
263
263
  #endif
264
- 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();}`,KB="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;}}",JB="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;};",eD={left:-1,center:0,right:1},tD={top:-1,middle:0,bottom:1,alphabetic:1};class nD 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 Ma)this.properties.fitToBand&&o0(t,n);return t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(XB,KB,[JB])}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)}),Va(this.markUniformInfo,{uPaddingX:t.paddingX,uPaddingY:t.paddingY,uFlushX:!!t.flushX,uFlushY:!!t.flushY,uAlign:[eD[t.align],tD[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 a=0;const o="format"in r.text?gt(r.text.format):l=>l;for(const l of n){const f=o(i(l)),c=Pe(f)?f:f===null?"":""+f;a+=c&&c.length||0}const s=new mB({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(a,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(()=>{Gi(this.programInfo,{uTexture:this.font.texture})}),n.push(()=>this.bindOrSetMarkUniformBlock()),n.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>_f(n,this.vertexArrayInfo,n.TRIANGLES,i,r),t)}}function Ry(e,t,{spacing:n,devicePixelRatio:r,offset:i,reverse:a}={}){n=n||0,i=i||0;let o=0,s=0;for(const p of e)o+=Df(p.px)+(l0(p)?0:n),s+=Df(p.grow);o-=n;const u=Math.max(0,t-o),l=r!==void 0?p=>Math.round(p*r)/r:p=>p,f=[],c=[],h=p=>{const m=f.length;if(!m)return;const y=(p?n:0)*(a?-1:1);d-=y;for(let w=0;w<m;w++)c.push({location:d+(w+1)/(m+1)*y,size:0});d+=y,f.length=0};let d=a?Math.max(t,o):0+i;if(e.length==1&&l0(e[0]))return[{location:d,size:0}];for(let p=0;p<e.length;p++){const m=e[p];if(l0(m))f.push(m);else{h(c.length>0);const y=Df(m.px)+(s?Df(m.grow)/s*u:0);a&&(d-=y),c.push({location:l(d),size:l(y)}),a?d-=n:d+=y+n}}return d+=a?n:-n,h(!1),c}function rD(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 Rg=class Rg{constructor(t,n){ne(this,jl);this.width=t,this.height=n}addPadding(t){return ee(this,jl,Gg).call(this,t.width,t.height)}subtractPadding(t){return ee(this,jl,Gg).call(this,-t.width,-t.height)}};jl=new WeakSet,Gg=function(t,n){return new Rg({px:(this.width.px??0)+t,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};let jr=Rg;const js=Object.freeze({px:0,grow:0}),My=new jr(js,js);function l0(e){return!e.px&&!e.grow}function Df(e){return e||0}function iD(e){return e&&(Ct(e.px)||Ct(e.grow))}function Py(e){if(Ny(e))throw new Error("parseSizeDef does not accept step-based sizes.");if(iD(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):u0}static createFromRecord(t){return new _t(t.top,t.right,t.bottom,t.left)}static zero(){return u0}static createUniformPadding(t){return new _t(t,t,t,t)}}const u0=_t.createUniformPadding(0);Object.freeze(u0);const aD=/^([A-Za-z]+:)?\/\//;function oD(e,t){if(t&&aD.test(t))return t;const n=e();return n&&t?n.endsWith("/")?n+t:n+"/"+t:n??t}const sD="VISIT_SKIP",qs="VISIT_STOP",Ly=e=>e;class lD{constructor(t,n,r,i,a,o={}){ne(this,da);ne(this,Wl);ne(this,ko,{});ne(this,ql,{});ne(this,Zl,{});Bn(this,"opacityFunction",Ly);Bn(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||a,this.spec=t,this.resolutions={scale:{},axis:{}},_y(this),this.options={blockEncodingInheritance:!1,contributesToScaleDomain:!0,...o},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(ee(this,da,au).call(this,"width"),ee(this,da,au).call(this,"height")):My)}getViewportSize(){if(!this.isScrollable())return this.getSize();if(!this.isConfiguredVisible())return My;const t=this.getSize();return new jr(ee(this,da,au).call(this,"viewportWidth")??t.width,ee(this,da,au).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 ee(this,Wl,Hg).call(this,"layoutParent")}getDataAncestors(){return ee(this,Wl,Hg).call(this,"dataParent")}handleBroadcast(t){for(const n of W(this,ko)[t.type]||[])n(t)}_addBroadcastHandler(t,n){let r=W(this,ko)[t];r||(r=[],W(this,ko)[t]=r),r.push(n)}handleInteractionEvent(t,n,r){const i=r?W(this,ql):W(this,Zl);for(const a of i[n.type]||[])a(t,n)}addInteractionEventListener(t,n,r){const i=r?W(this,ql):W(this,Zl);let a=i[t];a||(a=[],i[t]=a),a.push(n)}visit(t){try{const n=t(this);if(t.postOrder&&t.postOrder(this),n!==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===Ly)&&(this.opacityFunction=fD(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,a]of Object.entries(r))a===null&&delete r[i];return r}getFacetAccessor(t){if(this.layoutParent)return this.layoutParent.getFacetAccessor(this)}getFacetFields(t){var r;const n=this.getEncoding().sample;return Pi(n)?[n.field]:(r=this.layoutParent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}getScaleResolution(t){const n=Li(t);return this.getDataAncestors().map(r=>r.resolutions.scale[n]).find(r=>r)}getAxisResolution(t){const n=Li(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 oD(()=>{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 qa(this,t,n)}_invalidateCacheByPrefix(t,n="self"){switch(n){case"self":If(this,t);break;case"ancestors":for(const r of this.getLayoutAncestors())If(r,t);break;case"progeny":this.visit(r=>If(r,t));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(t){}}ko=new WeakMap,ql=new WeakMap,Zl=new WeakMap,da=new WeakSet,au=function(t){var i;let n=this.spec[t];const r=t=="viewportWidth"||t=="viewportHeight";if(Ny(n)){if(r)throw new qi(`Cannot use step-based size with "${t}"!`,this);const a=n.step,o=(i=this.getScaleResolution(t=="width"?"x":"y"))==null?void 0:i.getScale();if(o){let s=0;if(Nn(o.type))s=o.domain().length;else if(["locus","index"].includes(o.type)){const l=o.domain();s=ds(l)-l[0]}else throw new qi(`Cannot use step-based size with "${o.type}" scale!`,this);const u=o;return s=pd(s,u.paddingInner(),u.paddingOuter()),{px:s*a,grow:0}}else throw new qi("Cannot use 'step' size with missing scale!",this)}else return(n&&Py(n))??(r?void 0:{px:0,grow:1})},Wl=new WeakSet,Hg=function(t){const n=[];let r=this;do n.push(r),r=r[t];while(r);return n};function uD(e){return"unitsPerPixel"in e}function fD(e){const t=e.spec.opacity;if(t!==void 0){if(Ct(t))return n=>n*t;if(uD(t)){const n=a=>{var s;const o=(s=e.getScaleResolution(a))==null?void 0:s.getScale();if(["linear","index","locus"].includes(o==null?void 0:o.type))return o},r=t.channel?n(t.channel):n("x")??n("y");if(!r)throw new qi("Cannot find a resolved quantitative scale for dynamic opacity!",e);const i=od().domain(t.unitsPerPixel).range(t.values).clamp(!0);return a=>{const s=hu(r.domain())/1e3;return i(s)*a}}else if(ky(t)){const n=e.context.paramBroker.createExpression(t.expr);return r=>n(null)*r}}return n=>n}const Ny=e=>!!(e!=null&&e.step);class Zi extends lD{constructor(t,n,r,i,a,o){super(t,n,r,i,a,o),this.spec=t}async initializeChildren(){}*[Symbol.iterator](){}replaceChild(t,n){throw new Error("Not implemented")}visit(t){let n;try{n=t(this)}catch(r){throw r.view=this,r}if(n===qs)return n;if(n!==sD){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 Zi)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 Oy=1;function f0(){let e=[0,1],t=[0,1],n=1,r=1,i=0,a=0,o=.5,s=0;const l=f=>(f+o-e[0])/n*r+t[0];return l.invert=f=>(f-t[0])/r*n+e[0]-o,l.domain=function(f){if(arguments.length){e=e4(f),n=e[1]-e[0];const c=e[0]===0&&e[0]===0;if(n<Oy&&!c){n=Oy;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?(a=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?(a=f,l):a},l.align=function(f){return arguments.length?(o=Math.max(0,Math.min(1,f)),l):o},l.step=()=>r/n,l.bandwidth=()=>l.step(),l.ticks=f=>{const c=l.align(),h=l.numberingOffset();return bu(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=()=>f0().domain(e).range(t).paddingInner(i).paddingOuter(a).numberingOffset(s),l}function cD(){const e=f0().numberingOffset(1);let t;e.genome=function(r){return arguments.length?(t=r,e):t},e.ticks=r=>{if(!t)return[];const i=e.domain(),a=e.numberingOffset(),[o,s]=[Math.max(i[0],0),Math.min(i[1],t.totalSize-1)].map(f=>t.toChromosome(f)),u=Math.max(1,bi(i[0],i[1],r)),l=[];for(let f=o.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 m=p-a;m>=i[0]&&m<i[1]&&l.push(m)}}return l},e.tickFormat=(r,i)=>{if(!t)return;if(i)throw new Error("Locus scale's tickFormat does not support a specifier!");const a=e.domain(),o=a[1]-a[0],s=e.numberingOffset(),l=bi(a[0],a[1],Math.min(r,Math.ceil(o)))<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 hD(e){return e.type=="locus"}function Ff(e,t,n){if(n=n||[],e.some(o=>o===null)){if(e.every(o=>o===null))return null;throw console.warn(e),new Error("Cannot merge objects with nulls!")}const r={},i=(o,s)=>o===s||Za(o)&&Za(s)||Za(o)&&s===!0||o===!0&&Rt(s),a=o=>{for(let s in o){const u=o[s];if(!n.includes(s)&&u!==void 0)if(r[s]!==void 0&&!i(r[s],u))console.warn(`Conflicting property ${s} of ${t}: (${JSON.stringify(r[s])} and ${JSON.stringify(o[s])}). Using ${JSON.stringify(r[s])}.`);else{const l=r[s];if(Za(l))Za(u)&&(r[s]=Ff([l,u],s));else if(Za(u)){if(!(l===!0||l===void 0))throw new Error("Bug in merge! Target is: "+l);r[s]=Ff([{},u],s)}else r[s]=u}}};for(const o of e)a(o);return r}function Za(e){return Rt(e)&&!Array.isArray(e)}/*!
264
+ 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();}`,KB="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;}}",JB="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;};",eD={left:-1,center:0,right:1},tD={top:-1,middle:0,bottom:1,alphabetic:1};class nD 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 Ma)this.properties.fitToBand&&o0(t,n);return t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(XB,KB,[JB])}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)}),Va(this.markUniformInfo,{uPaddingX:t.paddingX,uPaddingY:t.paddingY,uFlushX:!!t.flushX,uFlushY:!!t.flushY,uAlign:[eD[t.align],tD[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 a=0;const o="format"in r.text?gt(r.text.format):l=>l;for(const l of n){const f=o(i(l)),c=Pe(f)?f:f===null?"":""+f;a+=c&&c.length||0}const s=new mB({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(a,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(()=>{Gi(this.programInfo,{uTexture:this.font.texture})}),n.push(()=>this.bindOrSetMarkUniformBlock()),n.push(()=>Hi(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>_f(n,this.vertexArrayInfo,n.TRIANGLES,i,r),t)}}function Ry(e,t,{spacing:n,devicePixelRatio:r,offset:i,reverse:a}={}){n=n||0,i=i||0;let o=0,s=0;for(const p of e)o+=Df(p.px)+(l0(p)?0:n),s+=Df(p.grow);o-=n;const u=Math.max(0,t-o),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)*(a?-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=a?Math.max(t,o):0+i;if(e.length==1&&l0(e[0]))return[{location:d,size:0}];for(let p=0;p<e.length;p++){const b=e[p];if(l0(b))f.push(b);else{h(c.length>0);const y=Df(b.px)+(s?Df(b.grow)/s*u:0);a&&(d-=y),c.push({location:l(d),size:l(y)}),a?d-=n:d+=y+n}}return d+=a?n:-n,h(!1),c}function rD(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 Rg=class Rg{constructor(t,n){ne(this,jl);this.width=t,this.height=n}addPadding(t){return ee(this,jl,Gg).call(this,t.width,t.height)}subtractPadding(t){return ee(this,jl,Gg).call(this,-t.width,-t.height)}};jl=new WeakSet,Gg=function(t,n){return new Rg({px:(this.width.px??0)+t,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};let jr=Rg;const js=Object.freeze({px:0,grow:0}),My=new jr(js,js);function l0(e){return!e.px&&!e.grow}function Df(e){return e||0}function iD(e){return e&&(Ct(e.px)||Ct(e.grow))}function Py(e){if(Ny(e))throw new Error("parseSizeDef does not accept step-based sizes.");if(iD(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):u0}static createFromRecord(t){return new _t(t.top,t.right,t.bottom,t.left)}static zero(){return u0}static createUniformPadding(t){return new _t(t,t,t,t)}}const u0=_t.createUniformPadding(0);Object.freeze(u0);const aD=/^([A-Za-z]+:)?\/\//;function oD(e,t){if(t&&aD.test(t))return t;const n=e();return n&&t?n.endsWith("/")?n+t:n+"/"+t:n??t}const sD="VISIT_SKIP",qs="VISIT_STOP",Ly=e=>e;class lD{constructor(t,n,r,i,a,o={}){ne(this,da);ne(this,Wl);ne(this,ko,{});ne(this,ql,{});ne(this,Zl,{});Bn(this,"opacityFunction",Ly);Bn(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||a,this.spec=t,this.resolutions={scale:{},axis:{}},_y(this),this.options={blockEncodingInheritance:!1,contributesToScaleDomain:!0,...o},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(ee(this,da,au).call(this,"width"),ee(this,da,au).call(this,"height")):My)}getViewportSize(){if(!this.isScrollable())return this.getSize();if(!this.isConfiguredVisible())return My;const t=this.getSize();return new jr(ee(this,da,au).call(this,"viewportWidth")??t.width,ee(this,da,au).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 ee(this,Wl,Hg).call(this,"layoutParent")}getDataAncestors(){return ee(this,Wl,Hg).call(this,"dataParent")}handleBroadcast(t){for(const n of W(this,ko)[t.type]||[])n(t)}_addBroadcastHandler(t,n){let r=W(this,ko)[t];r||(r=[],W(this,ko)[t]=r),r.push(n)}handleInteractionEvent(t,n,r){const i=r?W(this,ql):W(this,Zl);for(const a of i[n.type]||[])a(t,n)}addInteractionEventListener(t,n,r){const i=r?W(this,ql):W(this,Zl);let a=i[t];a||(a=[],i[t]=a),a.push(n)}visit(t){try{const n=t(this);if(t.postOrder&&t.postOrder(this),n!==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===Ly)&&(this.opacityFunction=fD(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,a]of Object.entries(r))a===null&&delete r[i];return r}getFacetAccessor(t){if(this.layoutParent)return this.layoutParent.getFacetAccessor(this)}getFacetFields(t){var r;const n=this.getEncoding().sample;return Pi(n)?[n.field]:(r=this.layoutParent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}getScaleResolution(t){const n=Li(t);return this.getDataAncestors().map(r=>r.resolutions.scale[n]).find(r=>r)}getAxisResolution(t){const n=Li(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 oD(()=>{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 qa(this,t,n)}_invalidateCacheByPrefix(t,n="self"){switch(n){case"self":If(this,t);break;case"ancestors":for(const r of this.getLayoutAncestors())If(r,t);break;case"progeny":this.visit(r=>If(r,t));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(t){}}ko=new WeakMap,ql=new WeakMap,Zl=new WeakMap,da=new WeakSet,au=function(t){var i;let n=this.spec[t];const r=t=="viewportWidth"||t=="viewportHeight";if(Ny(n)){if(r)throw new qi(`Cannot use step-based size with "${t}"!`,this);const a=n.step,o=(i=this.getScaleResolution(t=="width"?"x":"y"))==null?void 0:i.getScale();if(o){let s=0;if(Nn(o.type))s=o.domain().length;else if(["locus","index"].includes(o.type)){const l=o.domain();s=ds(l)-l[0]}else throw new qi(`Cannot use step-based size with "${o.type}" scale!`,this);const u=o;return s=pd(s,u.paddingInner(),u.paddingOuter()),{px:s*a,grow:0}}else throw new qi("Cannot use 'step' size with missing scale!",this)}else return(n&&Py(n))??(r?void 0:{px:0,grow:1})},Wl=new WeakSet,Hg=function(t){const n=[];let r=this;do n.push(r),r=r[t];while(r);return n};function uD(e){return"unitsPerPixel"in e}function fD(e){const t=e.spec.opacity;if(t!==void 0){if(Ct(t))return n=>n*t;if(uD(t)){const n=a=>{var s;const o=(s=e.getScaleResolution(a))==null?void 0:s.getScale();if(["linear","index","locus"].includes(o==null?void 0:o.type))return o},r=t.channel?n(t.channel):n("x")??n("y");if(!r)throw new qi("Cannot find a resolved quantitative scale for dynamic opacity!",e);const i=od().domain(t.unitsPerPixel).range(t.values).clamp(!0);return a=>{const s=hu(r.domain())/1e3;return i(s)*a}}else if(ky(t)){const n=e.context.paramBroker.createExpression(t.expr);return r=>n(null)*r}}return n=>n}const Ny=e=>!!(e!=null&&e.step);class Zi extends lD{constructor(t,n,r,i,a,o){super(t,n,r,i,a,o),this.spec=t}async initializeChildren(){}*[Symbol.iterator](){}replaceChild(t,n){throw new Error("Not implemented")}visit(t){let n;try{n=t(this)}catch(r){throw r.view=this,r}if(n===qs)return n;if(n!==sD){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 Zi)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 Oy=1;function f0(){let e=[0,1],t=[0,1],n=1,r=1,i=0,a=0,o=.5,s=0;const l=f=>(f+o-e[0])/n*r+t[0];return l.invert=f=>(f-t[0])/r*n+e[0]-o,l.domain=function(f){if(arguments.length){e=e4(f),n=e[1]-e[0];const c=e[0]===0&&e[0]===0;if(n<Oy&&!c){n=Oy;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?(a=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?(a=f,l):a},l.align=function(f){return arguments.length?(o=Math.max(0,Math.min(1,f)),l):o},l.step=()=>r/n,l.bandwidth=()=>l.step(),l.ticks=f=>{const c=l.align(),h=l.numberingOffset();return bu(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=()=>f0().domain(e).range(t).paddingInner(i).paddingOuter(a).numberingOffset(s),l}function cD(){const e=f0().numberingOffset(1);let t;e.genome=function(r){return arguments.length?(t=r,e):t},e.ticks=r=>{if(!t)return[];const i=e.domain(),a=e.numberingOffset(),[o,s]=[Math.max(i[0],0),Math.min(i[1],t.totalSize-1)].map(f=>t.toChromosome(f)),u=Math.max(1,bi(i[0],i[1],r)),l=[];for(let f=o.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-a;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 a=e.domain(),o=a[1]-a[0],s=e.numberingOffset(),l=bi(a[0],a[1],Math.min(r,Math.ceil(o)))<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 hD(e){return e.type=="locus"}function Ff(e,t,n){if(n=n||[],e.some(o=>o===null)){if(e.every(o=>o===null))return null;throw console.warn(e),new Error("Cannot merge objects with nulls!")}const r={},i=(o,s)=>o===s||Za(o)&&Za(s)||Za(o)&&s===!0||o===!0&&Rt(s),a=o=>{for(let s in o){const u=o[s];if(!n.includes(s)&&u!==void 0)if(r[s]!==void 0&&!i(r[s],u))console.warn(`Conflicting property ${s} of ${t}: (${JSON.stringify(r[s])} and ${JSON.stringify(o[s])}). Using ${JSON.stringify(r[s])}.`);else{const l=r[s];if(Za(l))Za(u)&&(r[s]=Ff([l,u],s));else if(Za(u)){if(!(l===!0||l===void 0))throw new Error("Bug in merge! Target is: "+l);r[s]=Ff([{},u],s)}else r[s]=u}}};for(const o of e)a(o);return r}function Za(e){return Rt(e)&&!Array.isArray(e)}/*!
265
265
  * Adapted from vega-encode:
266
266
  * https://github.com/vega/vega/blob/master/packages/vega-encode/src/ticks.js
267
267
  *
@@ -277,14 +277,24 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
277
277
  * All rights reserved.
278
278
  *
279
279
  * BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
280
- */const vD="locus",xD="index";var AD=5;function ED(e){const t=e.type;return!e.bins&&(t===Fa||t===Ts||t===ks)}function Gy(e){return bt(e)&&![Ln,xD,vD].includes(e)}function Hy(e){return e||{warn:(t,...n)=>console.warn(t,...n)}}var _D=pu(["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 Vy(e,t,n){n=Hy(n);for(const r in e)if(!_D[r]){if(r==="padding"&&Gy(t.type))continue;Mt(t[r])?t[r](e[r]):n.warn("Unsupported scale property: "+r)}FD(t,e,DD(t,e,kD(t,e,n)))}function SD(e,t){const n=CD(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]),Vy(e,i,t),i}function CD(e){var t=e.type,n="",r;return t===Ln?Ln+"-"+Fa:(TD(e)&&(r=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=r===2?Ln+"-":r===3?Ra+"-":""),(n+t||Fa).toLowerCase())}function TD(e){const t=e.type;return bt(t)&&t!==Nb&&t!==Ob&&(e.scheme||e.range&&e.range.length&&e.range.every(Pe))}function kD(e,t,n){if(!e.domain)return 0;n=Hy(n);var r=ID(e,t.domainRaw,n);if(r>-1)return r;var i=t.domain,a=e.type,o=t.zero||t.zero===void 0&&ED(e),s,u;return i?(Gy(a)&&t.padding&&i[0]!==gn(i)&&(i=BD(a,i,t.range,t.padding,t.exponent,t.constant)),(o||t.domainMin!=null||t.domainMax!=null||t.domainMid!=null)&&(s=(i=i.slice()).length-1||1,o&&(i[0]>0&&(i[0]=0),i[s]<0&&(i[s]=0)),t.domainMin!=null&&(i[0]=t.domainMin),t.domainMax!=null&&(i[s]=t.domainMax),t.domainMid!=null&&(u=t.domainMid,(u<i[0]||u>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",u),i.splice(s,0,u))),e.domain(jy(a,i,n)),a===md&&e.unknown(t.domainImplicit?Nh:void 0),t.nice&&e.nice&&e.nice(t.nice!==!0&&zy(e,t.nice)||null),i.length):0}function ID(e,t,n){return t?(e.domain(jy(e.type,t,n)),t.length):-1}function BD(e,t,n,r,i,a){var o=Math.abs(gn(n)-n[0]),s=o/(o-2*r),u=e===Lr?Xg(t,null,s):e===ks?Yc(t,null,s,.5):e===Ts?Yc(t,null,s,i||1):e===$u?__(t,null,s,a||1):$g(t,null,s);return t=t.slice(),t[0]=u[0],t[t.length-1]=u[1],t}function jy(e,t,n){if(qb(e)){var r=Math.abs(t.reduce(function(i,a){return i+(a<0?-1:a>0?1:0)},0));r!==t.length&&n.warn("Log scale domain includes zero: "+du(t))}return t}function DD(e,t,n){let r=t.bins;if(r&&!Ft(r)){const i=(r.start==null||r.stop==null)&&e.domain(),a=r.start==null?i[0]:r.start,o=r.stop==null?gn(i):r.stop,s=r.step;s||Qe("Scale bins parameter missing step property."),r=jo(a,o+s,s)}return r?e.bins=r:e.bins&&delete e.bins,e.type===yd&&(r?!t.domain&&!t.domainRaw&&(e.domain(r),n=r.length):e.bins=e.domain()),n}function FD(e,t,n){var r=e.type,i=t.round||!1,a=t.range;if(t.rangeStep!=null)a=RD(r,t,n);else if(t.scheme&&(a=MD(r,t,n),Mt(a))){if(e.interpolator)return e.interpolator(a);Qe(`Scale type ${r} does not support interpolating color schemes.`)}if(a&&Ku(r))return e.interpolator(Ju(c0(a,t.reverse),t.interpolate,t.interpolateGamma));a&&t.interpolate&&e.interpolate?e.interpolate(Zb(t.interpolate,t.interpolateGamma)):Mt(e.round)?e.round(i):Mt(e.rangeRound)&&e.interpolate(i?Ss:Mr),a&&e.range(c0(a,t.reverse))}function RD(e,t,n){e!==Gb&&e!==bd&&Qe("Only band and point scales support rangeStep.");var r=(t.paddingOuter!=null?t.paddingOuter:t.padding)||0,i=e===bd?1:(t.paddingInner!=null?t.paddingInner:t.padding)||0;return[0,t.rangeStep*pd(n,i,r)]}function MD(e,t,n){var r=t.schemeExtent,i,a;return Ft(t.scheme)?a=Ju(t.scheme,t.interpolate,t.interpolateGamma):(i=t.scheme.toLowerCase(),a=vd(i),a||Qe(`Unrecognized scheme name: ${t.scheme}`)),n=e===Ub?n+1:e===yd?n-1:e===gd||e===zb?+t.schemeCount||AD:n,Ku(e)?qy(a,r,t.reverse):Mt(a)?$8(qy(a,r),n):e===md?a:a.slice(0,n)}function qy(e,t,n){return Mt(e)&&(t||n)?Q8(e,c0(t||[0,1],n)):e}function c0(e,t){return t?e.slice().reverse():e}const Zy=gt(",d");function PD(e,t){return e.chrom+":"+Zy(Math.floor(e.pos+1))+"-"+(e.chrom!=t.chrom?t.chrom+":":"")+Zy(Math.ceil(t.pos))}const LD="https://genomespy.app/data/genomes/";class ND{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=LD;try{this.setChromSizes(OD(await Tu({baseURL:this.baseUrl}).load(`${this.config.name}/${this.name}.chrom.sizes`)))}catch(n){throw new Error(`Could not load chrom sizes: ${n.message}`)}}}hasChrPrefix(){return this.chromosomes.some(t=>t.name.startsWith("chr"))}setChromSizes(t){let n=0;this.startByIndex=[0];for(let r=0;r<t.length;r++){this.startByIndex.push(n);const i=t[r].size,a={...t[r],continuousStart:n,continuousEnd:n+i,continuousInterval:[n,n+i],index:r,number:r+1,odd:!(r&1)};this.chromosomes.push(a);const o=a.name.replace(/^chr/i,"");for(const s of["chr"+o,"CHR"+o,"Chr"+o,a.number,""+a.number,o,a.name])this.cumulativeChromPositions.set(s,n),this.chromosomesByName.set(s,a);n+=a.size}this.totalSize=n}getExtent(){return[0,this.totalSize]}toContinuous(t,n){let r=this.cumulativeChromPositions.get(t);if(r===void 0)throw new Error("Unknown chromosome/contig: "+t);return r+ +n}toChromosome(t){if(t>this.totalSize)return;t=Math.floor(t);const n=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 PD(...this.toChromosomalInterval(t))}toChromosomalInterval(t){const n=this.toChromosomal(t[0]+.5),r=this.toChromosomal(t[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(t){var i;let[n,r]=t;return r||(r=n),[this.toContinuous(n.chrom,n.pos??0),this.toContinuous(r.chrom,r.pos??((i=this.chromosomesByName.get(r.chrom))==null?void 0:i.size))]}toDiscreteChromosomeIntervals(t){const n=t[0],r=t[1],i=[];if(n.chrom===r.chrom)i.push({chrom:n.chrom,startPos:n.pos,endPos:r.pos});else{const a=this.chromosomes.findIndex(s=>s.name===n.chrom),o=this.chromosomes.findIndex(s=>s.name===r.chrom);i.push({chrom:n.chrom,startPos:n.pos,endPos:this.chromosomes[a].size});for(let s=a+1;s<o;s++)i.push({chrom:this.chromosomes[s].name,startPos:0,endPos:this.chromosomes[s].size});i.push({chrom:r.chrom,startPos:0,endPos:r.pos})}return i}continuousToDiscreteChromosomeIntervals(t){return this.toDiscreteChromosomeIntervals([this.toChromosomal(t[0]),this.toChromosomal(t[1])])}parseInterval(t){const n=t.match(/^(chr[0-9A-Z]+)(?::([0-9,]+)(?:-(?:(chr[0-9A-Z]+):)?([0-9,]+))?)?$/);if(n){const r=n[1];if(n.slice(2).every(s=>s===void 0)){const s=this.getChromosome(r);return s?[s.continuousStart,s.continuousEnd]:void 0}const i=n[3]||r,a=parseInt(n[2].replace(/,/g,"")),o=n[4]!==void 0?parseInt(n[4].replace(/,/g,"")):a;return[this.toContinuous(r,a-1),this.toContinuous(i,o)]}}}function OD(e){return V_(e).filter(t=>/^chr[0-9A-Z]+$/.test(t[0])).map(([t,n])=>({name:t,size:parseInt(n)}))}function Wy(e){return Rt(e)&&"chrom"in e}function zD(e){return e.every(Wy)}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 h0 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 Yy 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 Yy{constructor(){super(),this.type="nominal"}}class UD 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 $y={quantitative:h0,index:h0,locus:h0,nominal:Qy,ordinal:Yy};function Xy(e,t){if(e=="quantitative"&&GD(t)){const n=new UD(t);return n.type=e,n}else if($y[e]){const n=new $y[e];return n.type=e,t&&n.extendAll(t),n}throw new Error("Unknown type: "+e)}function GD(e){return e&&e.length>0&&e.length!=2&&e.every(t=>typeof t=="number")}function HD(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}function VD(e,t,n){return e*Math.pow(t/e,n)}Ae("index",f0,["continuous"]),Ae("locus",cD,["continuous"]),Ae("null",ef,[]);const Ky="quantitative",Jy="ordinal",ew="nominal",tw="locus",jD="index";class qD{constructor(t){ne(this,Xn);ne(this,Nc);ne(this,Bo);ne(this,mr);ne(this,Yl);ne(this,Oc);ne(this,Mg);ne(this,Ql);ne(this,gr,void 0);ne(this,Io,new Set);ne(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,Io).add(n)}removeEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);W(this,Io).delete(n)}pushUnitView(t,n){var o;const r=xd(t,n),i=r.type,a=(o=r==null?void 0:r.scale)==null?void 0:o.name;if(a){if(this.name!==void 0&&a!=this.name)throw new Error(`Shared scales have conflicting names: "${a}" vs. "${this.name}"!`);this.name=a}if(!this.type)this.type=i;else if(i!==this.type&&!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 qa(this,"scaleProps",()=>{const t=ee(this,Nc,f_).call(this);if(t===null||t.type=="null")return{type:"null"};const n={...ee(this,Oc,c_).call(this,this.type),...t};n.type||(n.type=ZD(this.channel,this.type));const r=ee(this,Bo,qc).call(this);return r&&r.length>0?n.domain=r:Nn(n.type)&&(n.domain=new Qy),!n.domain&&n.domainMid!==void 0&&(n.domain=[n.domainMin??0,n.domainMax??1]),this.channel=="y"&&Nn(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),WD(n,this.channel),n})}getConfiguredDomain(){return ee(this,Ql,jg).call(this,t=>Ms(t.channel)?void 0:t.view.getConfiguredDomain(t.channel))}getDataDomain(){return ee(this,Ql,jg).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();Ey(this,"scaleProps");const r=this.getScaleProps();if(Vy(r,W(this,vt)),bt(W(this,vt).type)&&Xe(this,gr,ee(this,Yl,Vg).call(this)),!t){ee(this,Xn,gi).call(this);return}const i=W(this,vt).domain();Bu(i,n)||(this.isZoomable()?W(this,vt).domain(n):ee(this,mr,wa).call(this)?(W(this,vt).domain(n),this.zoomTo(i,500)):ee(this,Xn,gi).call(this))}}getScale(){if(W(this,vt))return W(this,vt);const t=this.getScaleProps(),n=SD(t);return Xe(this,vt,n),hD(n)&&n.genome(this.getGenome()),bt(n.type)&&Xe(this,gr,ee(this,Yl,Vg).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 ee(this,mr,wa).call(this)&&Bu(ee(this,Bo,qc).call(this),this.getDomain())}isZoomable(){return ee(this,mr,wa).call(this)&&!!this.getScaleProps().zoom}zoom(t,n,r){if(!ee(this,mr,wa).call(this))return!1;const i=this.getScale(),a=i.domain();let o=[...a],s=i.invert(n);switch(this.getScaleProps().reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":o=x_(o,r||0),o=$g(o,s,t);break;case"log":o=A_(o,r||0),o=Xg(o,s,t);break;case"pow":case"sqrt":{const u=i;o=E_(o,r||0,u.exponent()),o=Yc(o,s,t,u.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return W(this,gr)&&(o=S_(o,W(this,gr)[0],W(this,gr)[1])),[0,1].some(u=>o[u]!=a[u])?(i.domain(o),ee(this,Xn,gi).call(this),!0):!1}async zoomTo(t,n=!1){var s;if(Go(n)&&(n=n?700:0),!ee(this,mr,wa).call(this))throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(t),i=(s=this.members[0])==null?void 0:s.view.context.animator,a=this.getScale(),o=a.domain();if(n>0&&o.length==2){const u=o[1]-o[0],l=o[0]+u/2,f=r[1]-r[0],c=r[0]+f/2;await i.transition({duration:n,easingFunction:HD,onUpdate:h=>{const d=VD(u,f,h),p=(u-d)/(u-f),m=p*c+(1-p)*l;a.domain([m-d/2,m+d/2]),ee(this,Xn,gi).call(this)}}),a.domain(r),ee(this,Xn,gi).call(this)}else a.domain(r),i==null||i.requestRender(),ee(this,Xn,gi).call(this)}resetZoom(){if(!ee(this,mr,wa).call(this))throw new Error("Not a zoomable scale!");const t=this.getDomain(),n=ee(this,Bo,qc).call(this);return[0,1].some(r=>n[r]!=t[r])?(W(this,vt).domain(n),ee(this,Xn,gi).call(this),!0):!1}getZoomLevel(){return this.isZoomable()?hu(W(this,gr))/hu(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 Wy(t)?this.getGenome().toContinuous(t.chrom,t.pos):t}fromComplexInterval(t){return this.type==="locus"&&zD(t)?this.getGenome().toContinuousInterval(t):t}}gr=new WeakMap,Io=new WeakMap,vt=new WeakMap,Xn=new WeakSet,gi=function(){for(const t of W(this,Io).values())t({type:"domain",scaleResolution:this})},Nc=new WeakSet,f_=function(){return qa(this,"mergedScaleProps",()=>{const t=this.members.map(n=>xd(n.view,n.channel).scale).filter(n=>n!==void 0);return Ff(t,"scale",["domain"])})},Bo=new WeakSet,qc=function(){return this.getConfiguredDomain()??(this.type==tw?this.getGenome().getExtent():this.getDataDomain())},mr=new WeakSet,wa=function(){const t=this.getScale().type;return bt(t)},Yl=new WeakSet,Vg=function(){const t=this.getScaleProps(),n=t.zoom;if(YD(n)&&Ft(n.extent))return this.fromComplexInterval(n.extent);if(n)return t.type=="locus"?this.getGenome().getExtent():W(this,vt).domain()},Oc=new WeakSet,c_=function(t){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),Rs(n)?r.nice=!this.isExplicitDomain():Ni(n)?r.scheme=t==ew?"tableau10":t==Jy?"blues":"viridis":nf(n)?r.range=n=="shape"?["circle","square","triangle-up","cross","diamond"]:[]:n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r},Mg=new WeakSet,Vz=function(){return this.members.map(t=>t.view.getPathString()).join(", ")},Ql=new WeakSet,jg=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 ZD(e,t){if(t==jD||t==tw){if(Xb(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][[ew,Jy,Ky].indexOf(t)]:t==Ky?"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 WD(e,t){Rs(t)&&e.type!=="ordinal"&&(e.range=[0,1]),t=="opacity"&&bt(e.type)&&(e.clamp=!0)}function YD(e){return Rt(e)}function d0(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 p0(...e){for(const t of e)if(t!==void 0)return t}class QD{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 qa(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:Ff(t.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const t=a=>{var s;const o=xd(a.view,a.channel);if(!vn(o))return{member:a,explicitTitle:p0("axis"in o?(s=o.axis)==null?void 0:s.title:void 0,o.title),implicitTitle:p0(Pi(o)?o.field:void 0,tf(o)?o.expr:void 0)}},n=this.members.map(t),r=n.filter(a=>{var o;if(Ms(a.member.channel)&&!a.explicitTitle){const s=Li(a.member.channel);return((o=n.find(u=>u.member.view==a.member.view&&u.member.channel==s))==null?void 0:o.explicitTitle)===void 0}return!0}),i=new Set(r.map(a=>p0(a.explicitTitle,a.implicitTitle)).filter(Pe));return i.size?[...i].join(", "):null}}const $D={point:zB,rect:DB,rule:VB,link:QB,text:nD};class Yt extends Zi{constructor(t,n,r,i,a,o){super(t,n,r,i,a,o),this.spec=t;const s=$D[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 a=Li(i.resolutionChannel??r);if(!Oi(a)||t=="axis"&&!Rs(a))continue;let o=this;for(;(o.getConfiguredOrDefaultResolution(a,t)=="forced"||o.dataParent instanceof Zi&&["shared","excluded","forced"].includes(o.dataParent.getConfiguredOrDefaultResolution(a,t)))&&o.getConfiguredOrDefaultResolution(a,t)!="excluded";)o=o.dataParent;t=="axis"&&Rs(r)&&Xb(a)?(o.resolutions[t][a]||(o.resolutions[t][a]=new QD(a)),o.resolutions[t][a].pushUnitView(this,r)):t=="scale"&&Oi(r)&&(o.resolutions[t][a]||(o.resolutions[t][a]=new qD(a)),o.resolutions[t][a].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 Xy(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=Xy(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 a=i(t);const o=Ad[t];if(o){const s=i(o);s&&a.extendAll(s)}return a}getZoomLevel(){const t=n=>{var r;return((r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())??1};return Ma.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*g0(e,t=[]){for(const[n,r]of e.entries())if(r instanceof Map)for(const i of g0(r,[...t,n]))yield i;else yield[[...t,n],r]}class nw extends et{get behavior(){return s0}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){LB(t)&&(this._data=[],this.facetBatches.set(Lt(t.facetId),this._data))}complete(){var i,a;const t=(i=this.params)==null?void 0:i.sort,n=t?Kg(t.field,t.order):void 0,r=o=>{n&&o.sort(n)};if((a=this.params.groupby)!=null&&a.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const o=this.params.groupby.map(u=>Re(u)),s=o.length>1?mu(this._data,...o):XD(this._data,o[0]);this.facetBatches.clear();for(const[u,l]of g0(s))this.facetBatches.set(u,l)}for(const o of this.facetBatches.values())r(o);if(this.children.length)for(const[o,s]of this.facetBatches.entries()){if(o){const u={type:"facet",facetId:o};for(const l of this.children)l.beginBatch(u)}for(const u of s)this._propagate(u)}super.complete();for(const o of this.observers)o(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.")}}function XD(e,t){const n=new Map;for(let r=0,i=e.length;r<i;r++){const a=e[r],o=t(a);let s=n.get(o);s||(s=[],n.set(o,s)),s.push(a)}return n}class Rf{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(t,n){let r=this.length++;for(;r>0;){const i=r-1>>1,a=this.values[i];if(n>=a)break;this.ids[r]=this.ids[i],this.values[r]=a,r=i}this.ids[r]=t,this.values[r]=n}pop(){if(this.length===0)return;const t=this.ids[0];if(this.length--,this.length>0){const n=this.ids[0]=this.ids[this.length],r=this.values[0]=this.values[this.length],i=this.length>>1;let a=0;for(;a<i;){let o=(a<<1)+1;const s=o+1;let u=this.ids[o],l=this.values[o];const f=this.values[s];if(s<this.length&&f<l&&(o=s,u=this.ids[s],l=f),l>=r)break;this.ids[a]=u,this.values[a]=l,a=o}this.ids[a]=n,this.values[a]=r}return t}peek(){if(this.length!==0)return this.ids[0]}peekValue(){if(this.length!==0)return this.values[0]}shrink(){this.ids.length=this.values.length=this.length}}class KD extends et{get behavior(){return Un}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 Rf}reset(){super.reset(),this.initialize()}initialize(){const t=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,a=this.endAccessor,o=this.chromAccessor,s=this.weightAccessor;let u,l,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))},m=()=>{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=o(y);E!==l&&(m(),f=E,l=f)}h!==void 0&&p(h,w,c),h=w;const C=s(y);c+=C,d.push(C,a(y))},this.complete=()=>{m(),super.complete()}}}function JD(e,t,n=0,r=e.length){const i=new Rf,a=r-n;let o;for(o=0;o<t&&o<a;o++)i.push(o,e[n+o]);for(;o<a;o++){const l=e[n+o];l>=i.peekValue()&&(i.push(o,l),i.pop())}const s=[];let u;for(;(u=i.pop())!==void 0;)s.push(n+u);return s.reverse()}class e9{constructor(t,n=-1/0,r=1/0){this.maxSize=t,this.lowerLimit=n,this.upperLimit=r;const i=this.maxSize*2+1;this.lowerLimits=new Float64Array(i),this.upperLimits=new Float64Array(i),this.lowerChildren=new Int32Array(i),this.upperChildren=new Int32Array(i),this.reset()}reset(){this.lowerLimits.fill(0),this.upperLimits.fill(0),this.lowerChildren.fill(0),this.upperChildren.fill(0),this.n=1,this.lowerLimits[0]=this.lowerLimit,this.upperLimits[0]=this.upperLimit}_findSlot(t,n,r=0){if(t>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const a=this._findSlot(t,n,i);return a>=0?a:this._findSlot(t,n,this.upperChildren[r])}else return r}else return-1}reserve(t,n){if(n-t<=0)throw new Error("Cannot reserve an empty or negative-size slot!");if(this.n+1>this.lowerLimits.length)return!1;const r=this._findSlot(t,n);if(r<0)return!1;const i=this.n++,a=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=t,this.lowerLimits[a]=n,this.upperLimits[a]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=a,!0}}class t9 extends et{get behavior(){return s0}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=gu(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 e9(200));this.schedule(),super.complete()}_filterAndPropagate(){var o;super.reset();const t=this.resolution.getScale(),n=(o=this.resolution.members[0].view.coords)==null?void 0:o[this.channel=="x"?"width":"height"];if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=t.domain(),i=70,a=JD(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of a){const u=this._data[s],l=t(this.posAccessor(u))*n,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 n9 extends et{constructor(t){super(),this.params=t,this.predicate=void 0}initialize(){this.predicate=Nu(this.params.expr,this.getGlobalObject())}handle(t){this.predicate(t)&&this._propagate(t)}}class r9 extends et{get behavior(){return Un}constructor(t){super();const n=t.index;if(t.fields){const r=Lt(t.fields).map(a=>Re(a)),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=a=>{const o=r.map((u,l)=>u(a)??[]),s=o[0].length;for(let u=0;u<s;u++){const l=Object.assign({},a);for(let f=0;f<r.length;f++)l[i[f]]=u<o[f].length?o[f][u]:null;n&&(l[n]=u),this._propagate(l)}}}else this.handle=r=>{for(let i=0;i<r.length;i++){const a=Object.assign({},r[i]);n&&(a[n]=i),this._propagate(a)}}}}const i9="0".charCodeAt(0);function*a9(e,t=","){const n=t.charCodeAt(0);let r=0;for(let i=0;i<e.length;i++){const a=e.charCodeAt(i);a==n?(yield r,r=0):r=r*10+a-i9}yield r}class o9 extends et{get behavior(){return Un}constructor(t){super();const n=Re(t.exons??"exons"),r=Re(t.start??"start"),[i,a]=t.as||["exonStart","exonEnd"];this.handle=o=>{let s=r(o),u=s,l=!0;const f=n(o);for(const c of a9(f)){if(l)u=s+c;else{s=u+c;const h=Object.assign({},o);h[i]=u,h[a]=s,this._propagate(h)}l=!l}}}}class s9 extends et{get behavior(){return Un}constructor(t){super();const n=Lt(t.field).map(a=>Re(a)),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=a=>{if(n.some(u=>!u(a)))return;const o=n.map((u,l)=>u(a).split(r[l]));l9(o,a);const s=o[0].length;for(let u=0;u<s;u++){const l=Object.assign({},a);for(let f=0;f<n.length;f++)l[i[f]]=o[f][u];this._propagate(l)}}}}function l9(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 u9 extends et{get behavior(){return Vr}constructor(t){super(),this.params=t,this.as=t.as,this.fn=void 0}initialize(){this.fn=Nu(this.params.expr,this.getGlobalObject())}handle(t){t[this.as]=this.fn(t),this._propagate(t)}}class rw 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 a=Re(t.chrom),o=Lt(t.pos).map(p=>Re(p)),s=Lt(t.as);if(o.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(o.length).fill(0);else if(u.length==1)l=new Array(o.length).fill(u[0]);else if(u.length==o.length)l=u;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(t.offset)}!`);const f=new Function("datum","chromOffset","posAccessors",s.map((p,m)=>`datum[${JSON.stringify(p)}] = chromOffset + +posAccessors[${m}](datum) - ${l[m]};`).join(`
281
- `));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(a(p)),o),this._propagate(p)}}}const iw={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 f9 extends et{get behavior(){return Vr}constructor(t){super();const n=i0(iw),r=Re(t.field),i=t.as,a=t.fontSize;this.handle=o=>{const s=r(o);s!==void 0?o[i]=n.measureWidth(s,a):o[i]=0,this._propagate(o)}}}const c9=65536;class h9 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),a=Re(t.end);if(!t.preference!=!t.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(t.preference){const o=new Float64Array(c9),s=Re(t.preference),u=t.preferredOrder;let l=1/0;this.handle=f=>{const c=i(f);c<l&&o.fill(-1/0),l=c;const h=u.indexOf(s(f));let d=-1;if(h>=0&&o[h]<c)d=h;else{const p=i(f);for(d=0;d<o.length&&!(o[d]<p);d++);if(d>=o.length)throw new Error("Out of lanes!")}o[d]=a(f)+r,f[n]=d,this._propagate(f)}}else{const o=new Rf,s=new Rf;let u=-1/0,l=0;this.handle=f=>{const c=i(f);for(;o.length&&(o.peekValue()<=c||c<u);){const d=o.pop();s.push(d,d)}u=c;let h=s.pop();h===void 0&&(h=l++),f[n]=h,this._propagate(f),o.push(h,a(f)+r)}}}}class d9 extends et{get behavior(){return Un}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(xa);this.handle=i=>{const a={};for(let o=0;o<n.length;o++)a[r[o]]=n[o](i);this._propagate(a)}}}class p9 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=a=>{const o=i(a);if(Pe(o)){const s=o.match(n);if(s){if(s.length-1!=r.length)throw new Error('The number of RegEx groups and the length of "as" do not match!');for(let u=0;u<r.length;u++)a[r[u]]=s[u+1]}else if(t.skipInvalidInput)for(let u=0;u<r.length;u++)a[r[u]]=void 0;else throw new Error(`"${o}" does not match the given regex: ${n.toString()}`)}else if(!t.skipInvalidInput)throw new Error(`Trying to match a non-string field. Encountered type: ${typeof o}, field content: "${o}".`);this._propagate(a)}}}class g9 extends et{get behavior(){return Un}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,a=t.asKey||"sample";let o,s,u;const l=h=>{var y;const d=Object.keys(h);for(const w of n)if(!d.some(_=>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 k=p.get(E);k||(k=[],p.set(E,k)),k[w]=C}}o=[...p.entries()],s=d.filter(w=>!n.some(_=>_.test(w))&&!(i&&i.test(w)));const m=[...s.map(w=>JSON.stringify(w)+": datum["+JSON.stringify(w)+"]"),JSON.stringify(a)+": sampleId",...r.map((w,_)=>JSON.stringify(w)+`: datum[attrs[${_}]]`)];u=new Function("datum","sampleId","attrs",`return {
282
- `+m.join(`,
280
+ */const vD="locus",xD="index";var AD=5;function ED(e){const t=e.type;return!e.bins&&(t===Fa||t===Ts||t===ks)}function Gy(e){return bt(e)&&![Ln,xD,vD].includes(e)}function Hy(e){return e||{warn:(t,...n)=>console.warn(t,...n)}}var _D=pu(["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 Vy(e,t,n){n=Hy(n);for(const r in e)if(!_D[r]){if(r==="padding"&&Gy(t.type))continue;Mt(t[r])?t[r](e[r]):n.warn("Unsupported scale property: "+r)}FD(t,e,DD(t,e,kD(t,e,n)))}function SD(e,t){const n=CD(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]),Vy(e,i,t),i}function CD(e){var t=e.type,n="",r;return t===Ln?Ln+"-"+Fa:(TD(e)&&(r=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=r===2?Ln+"-":r===3?Ra+"-":""),(n+t||Fa).toLowerCase())}function TD(e){const t=e.type;return bt(t)&&t!==Nb&&t!==Ob&&(e.scheme||e.range&&e.range.length&&e.range.every(Pe))}function kD(e,t,n){if(!e.domain)return 0;n=Hy(n);var r=ID(e,t.domainRaw,n);if(r>-1)return r;var i=t.domain,a=e.type,o=t.zero||t.zero===void 0&&ED(e),s,u;return i?(Gy(a)&&t.padding&&i[0]!==gn(i)&&(i=BD(a,i,t.range,t.padding,t.exponent,t.constant)),(o||t.domainMin!=null||t.domainMax!=null||t.domainMid!=null)&&(s=(i=i.slice()).length-1||1,o&&(i[0]>0&&(i[0]=0),i[s]<0&&(i[s]=0)),t.domainMin!=null&&(i[0]=t.domainMin),t.domainMax!=null&&(i[s]=t.domainMax),t.domainMid!=null&&(u=t.domainMid,(u<i[0]||u>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",u),i.splice(s,0,u))),e.domain(jy(a,i,n)),a===md&&e.unknown(t.domainImplicit?Nh:void 0),t.nice&&e.nice&&e.nice(t.nice!==!0&&zy(e,t.nice)||null),i.length):0}function ID(e,t,n){return t?(e.domain(jy(e.type,t,n)),t.length):-1}function BD(e,t,n,r,i,a){var o=Math.abs(gn(n)-n[0]),s=o/(o-2*r),u=e===Lr?Xg(t,null,s):e===ks?Yc(t,null,s,.5):e===Ts?Yc(t,null,s,i||1):e===$u?__(t,null,s,a||1):$g(t,null,s);return t=t.slice(),t[0]=u[0],t[t.length-1]=u[1],t}function jy(e,t,n){if(qb(e)){var r=Math.abs(t.reduce(function(i,a){return i+(a<0?-1:a>0?1:0)},0));r!==t.length&&n.warn("Log scale domain includes zero: "+du(t))}return t}function DD(e,t,n){let r=t.bins;if(r&&!Ft(r)){const i=(r.start==null||r.stop==null)&&e.domain(),a=r.start==null?i[0]:r.start,o=r.stop==null?gn(i):r.stop,s=r.step;s||Qe("Scale bins parameter missing step property."),r=jo(a,o+s,s)}return r?e.bins=r:e.bins&&delete e.bins,e.type===yd&&(r?!t.domain&&!t.domainRaw&&(e.domain(r),n=r.length):e.bins=e.domain()),n}function FD(e,t,n){var r=e.type,i=t.round||!1,a=t.range;if(t.rangeStep!=null)a=RD(r,t,n);else if(t.scheme&&(a=MD(r,t,n),Mt(a))){if(e.interpolator)return e.interpolator(a);Qe(`Scale type ${r} does not support interpolating color schemes.`)}if(a&&Ku(r))return e.interpolator(Ju(c0(a,t.reverse),t.interpolate,t.interpolateGamma));a&&t.interpolate&&e.interpolate?e.interpolate(Zb(t.interpolate,t.interpolateGamma)):Mt(e.round)?e.round(i):Mt(e.rangeRound)&&e.interpolate(i?Ss:Mr),a&&e.range(c0(a,t.reverse))}function RD(e,t,n){e!==Gb&&e!==bd&&Qe("Only band and point scales support rangeStep.");var r=(t.paddingOuter!=null?t.paddingOuter:t.padding)||0,i=e===bd?1:(t.paddingInner!=null?t.paddingInner:t.padding)||0;return[0,t.rangeStep*pd(n,i,r)]}function MD(e,t,n){var r=t.schemeExtent,i,a;return Ft(t.scheme)?a=Ju(t.scheme,t.interpolate,t.interpolateGamma):(i=t.scheme.toLowerCase(),a=vd(i),a||Qe(`Unrecognized scheme name: ${t.scheme}`)),n=e===Ub?n+1:e===yd?n-1:e===gd||e===zb?+t.schemeCount||AD:n,Ku(e)?qy(a,r,t.reverse):Mt(a)?$8(qy(a,r),n):e===md?a:a.slice(0,n)}function qy(e,t,n){return Mt(e)&&(t||n)?Q8(e,c0(t||[0,1],n)):e}function c0(e,t){return t?e.slice().reverse():e}const Zy=gt(",d");function PD(e,t){return e.chrom+":"+Zy(Math.floor(e.pos+1))+"-"+(e.chrom!=t.chrom?t.chrom+":":"")+Zy(Math.ceil(t.pos))}const LD="https://genomespy.app/data/genomes/";class ND{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=LD;try{this.setChromSizes(OD(await Tu({baseURL:this.baseUrl}).load(`${this.config.name}/${this.name}.chrom.sizes`)))}catch(n){throw new Error(`Could not load chrom sizes: ${n.message}`)}}}hasChrPrefix(){return this.chromosomes.some(t=>t.name.startsWith("chr"))}setChromSizes(t){let n=0;this.startByIndex=[0];for(let r=0;r<t.length;r++){this.startByIndex.push(n);const i=t[r].size,a={...t[r],continuousStart:n,continuousEnd:n+i,continuousInterval:[n,n+i],index:r,number:r+1,odd:!(r&1)};this.chromosomes.push(a);const o=a.name.replace(/^chr/i,"");for(const s of["chr"+o,"CHR"+o,"Chr"+o,a.number,""+a.number,o,a.name])this.cumulativeChromPositions.set(s,n),this.chromosomesByName.set(s,a);n+=a.size}this.totalSize=n}getExtent(){return[0,this.totalSize]}toContinuous(t,n){let r=this.cumulativeChromPositions.get(t);if(r===void 0)throw new Error("Unknown chromosome/contig: "+t);return r+ +n}toChromosome(t){if(t>this.totalSize)return;t=Math.floor(t);const n=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 PD(...this.toChromosomalInterval(t))}toChromosomalInterval(t){const n=this.toChromosomal(t[0]+.5),r=this.toChromosomal(t[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(t){var i;let[n,r]=t;return r||(r=n),[this.toContinuous(n.chrom,n.pos??0),this.toContinuous(r.chrom,r.pos??((i=this.chromosomesByName.get(r.chrom))==null?void 0:i.size))]}toDiscreteChromosomeIntervals(t){const n=t[0],r=t[1],i=[];if(n.chrom===r.chrom)i.push({chrom:n.chrom,startPos:n.pos,endPos:r.pos});else{const a=this.chromosomes.findIndex(s=>s.name===n.chrom),o=this.chromosomes.findIndex(s=>s.name===r.chrom);i.push({chrom:n.chrom,startPos:n.pos,endPos:this.chromosomes[a].size});for(let s=a+1;s<o;s++)i.push({chrom:this.chromosomes[s].name,startPos:0,endPos:this.chromosomes[s].size});i.push({chrom:r.chrom,startPos:0,endPos:r.pos})}return i}continuousToDiscreteChromosomeIntervals(t){return this.toDiscreteChromosomeIntervals([this.toChromosomal(t[0]),this.toChromosomal(t[1])])}parseInterval(t){const n=t.match(/^(chr[0-9A-Z]+)(?::([0-9,]+)(?:-(?:(chr[0-9A-Z]+):)?([0-9,]+))?)?$/);if(n){const r=n[1];if(n.slice(2).every(s=>s===void 0)){const s=this.getChromosome(r);return s?[s.continuousStart,s.continuousEnd]:void 0}const i=n[3]||r,a=parseInt(n[2].replace(/,/g,"")),o=n[4]!==void 0?parseInt(n[4].replace(/,/g,"")):a;return[this.toContinuous(r,a-1),this.toContinuous(i,o)]}}}function OD(e){return V_(e).filter(t=>/^chr[0-9A-Z]+$/.test(t[0])).map(([t,n])=>({name:t,size:parseInt(n)}))}function Wy(e){return Rt(e)&&"chrom"in e}function zD(e){return e.every(Wy)}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 h0 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 Yy 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 Yy{constructor(){super(),this.type="nominal"}}class UD 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 $y={quantitative:h0,index:h0,locus:h0,nominal:Qy,ordinal:Yy};function Xy(e,t){if(e=="quantitative"&&GD(t)){const n=new UD(t);return n.type=e,n}else if($y[e]){const n=new $y[e];return n.type=e,t&&n.extendAll(t),n}throw new Error("Unknown type: "+e)}function GD(e){return e&&e.length>0&&e.length!=2&&e.every(t=>typeof t=="number")}function HD(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}function VD(e,t,n){return e*Math.pow(t/e,n)}Ae("index",f0,["continuous"]),Ae("locus",cD,["continuous"]),Ae("null",ef,[]);const Ky="quantitative",Jy="ordinal",ew="nominal",tw="locus",jD="index";class qD{constructor(t){ne(this,Xn);ne(this,Nc);ne(this,Bo);ne(this,mr);ne(this,Yl);ne(this,Oc);ne(this,Mg);ne(this,Ql);ne(this,gr,void 0);ne(this,Io,new Set);ne(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,Io).add(n)}removeEventListener(t,n){if(t!="domain")throw new Error("Unsupported event type: "+t);W(this,Io).delete(n)}pushUnitView(t,n){var o;const r=xd(t,n),i=r.type,a=(o=r==null?void 0:r.scale)==null?void 0:o.name;if(a){if(this.name!==void 0&&a!=this.name)throw new Error(`Shared scales have conflicting names: "${a}" vs. "${this.name}"!`);this.name=a}if(!this.type)this.type=i;else if(i!==this.type&&!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 qa(this,"scaleProps",()=>{const t=ee(this,Nc,f_).call(this);if(t===null||t.type=="null")return{type:"null"};const n={...ee(this,Oc,c_).call(this,this.type),...t};n.type||(n.type=ZD(this.channel,this.type));const r=ee(this,Bo,qc).call(this);return r&&r.length>0?n.domain=r:Nn(n.type)&&(n.domain=new Qy),!n.domain&&n.domainMid!==void 0&&(n.domain=[n.domainMin??0,n.domainMax??1]),this.channel=="y"&&Nn(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),WD(n,this.channel),n})}getConfiguredDomain(){return ee(this,Ql,jg).call(this,t=>Ms(t.channel)?void 0:t.view.getConfiguredDomain(t.channel))}getDataDomain(){return ee(this,Ql,jg).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();Ey(this,"scaleProps");const r=this.getScaleProps();if(Vy(r,W(this,vt)),bt(W(this,vt).type)&&Xe(this,gr,ee(this,Yl,Vg).call(this)),!t){ee(this,Xn,gi).call(this);return}const i=W(this,vt).domain();Bu(i,n)||(this.isZoomable()?W(this,vt).domain(n):ee(this,mr,wa).call(this)?(W(this,vt).domain(n),this.zoomTo(i,500)):ee(this,Xn,gi).call(this))}}getScale(){if(W(this,vt))return W(this,vt);const t=this.getScaleProps(),n=SD(t);return Xe(this,vt,n),hD(n)&&n.genome(this.getGenome()),bt(n.type)&&Xe(this,gr,ee(this,Yl,Vg).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 ee(this,mr,wa).call(this)&&Bu(ee(this,Bo,qc).call(this),this.getDomain())}isZoomable(){return ee(this,mr,wa).call(this)&&!!this.getScaleProps().zoom}zoom(t,n,r){if(!ee(this,mr,wa).call(this))return!1;const i=this.getScale(),a=i.domain();let o=[...a],s=i.invert(n);switch(this.getScaleProps().reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":o=x_(o,r||0),o=$g(o,s,t);break;case"log":o=A_(o,r||0),o=Xg(o,s,t);break;case"pow":case"sqrt":{const u=i;o=E_(o,r||0,u.exponent()),o=Yc(o,s,t,u.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return W(this,gr)&&(o=S_(o,W(this,gr)[0],W(this,gr)[1])),[0,1].some(u=>o[u]!=a[u])?(i.domain(o),ee(this,Xn,gi).call(this),!0):!1}async zoomTo(t,n=!1){var s;if(Go(n)&&(n=n?700:0),!ee(this,mr,wa).call(this))throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(t),i=(s=this.members[0])==null?void 0:s.view.context.animator,a=this.getScale(),o=a.domain();if(n>0&&o.length==2){const u=o[1]-o[0],l=o[0]+u/2,f=r[1]-r[0],c=r[0]+f/2;await i.transition({duration:n,easingFunction:HD,onUpdate:h=>{const d=VD(u,f,h),p=(u-d)/(u-f),b=p*c+(1-p)*l;a.domain([b-d/2,b+d/2]),ee(this,Xn,gi).call(this)}}),a.domain(r),ee(this,Xn,gi).call(this)}else a.domain(r),i==null||i.requestRender(),ee(this,Xn,gi).call(this)}resetZoom(){if(!ee(this,mr,wa).call(this))throw new Error("Not a zoomable scale!");const t=this.getDomain(),n=ee(this,Bo,qc).call(this);return[0,1].some(r=>n[r]!=t[r])?(W(this,vt).domain(n),ee(this,Xn,gi).call(this),!0):!1}getZoomLevel(){return this.isZoomable()?hu(W(this,gr))/hu(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 Wy(t)?this.getGenome().toContinuous(t.chrom,t.pos):t}fromComplexInterval(t){return this.type==="locus"&&zD(t)?this.getGenome().toContinuousInterval(t):t}}gr=new WeakMap,Io=new WeakMap,vt=new WeakMap,Xn=new WeakSet,gi=function(){for(const t of W(this,Io).values())t({type:"domain",scaleResolution:this})},Nc=new WeakSet,f_=function(){return qa(this,"mergedScaleProps",()=>{const t=this.members.map(n=>xd(n.view,n.channel).scale).filter(n=>n!==void 0);return Ff(t,"scale",["domain"])})},Bo=new WeakSet,qc=function(){return this.getConfiguredDomain()??(this.type==tw?this.getGenome().getExtent():this.getDataDomain())},mr=new WeakSet,wa=function(){const t=this.getScale().type;return bt(t)},Yl=new WeakSet,Vg=function(){const t=this.getScaleProps(),n=t.zoom;if(YD(n)&&Ft(n.extent))return this.fromComplexInterval(n.extent);if(n)return t.type=="locus"?this.getGenome().getExtent():W(this,vt).domain()},Oc=new WeakSet,c_=function(t){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),Rs(n)?r.nice=!this.isExplicitDomain():Ni(n)?r.scheme=t==ew?"tableau10":t==Jy?"blues":"viridis":nf(n)?r.range=n=="shape"?["circle","square","triangle-up","cross","diamond"]:[]:n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r},Mg=new WeakSet,Vz=function(){return this.members.map(t=>t.view.getPathString()).join(", ")},Ql=new WeakSet,jg=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 ZD(e,t){if(t==jD||t==tw){if(Xb(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][[ew,Jy,Ky].indexOf(t)]:t==Ky?"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 WD(e,t){Rs(t)&&e.type!=="ordinal"&&(e.range=[0,1]),t=="opacity"&&bt(e.type)&&(e.clamp=!0)}function YD(e){return Rt(e)}function d0(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 p0(...e){for(const t of e)if(t!==void 0)return t}class QD{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 qa(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:Ff(t.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const t=a=>{var s;const o=xd(a.view,a.channel);if(!vn(o))return{member:a,explicitTitle:p0("axis"in o?(s=o.axis)==null?void 0:s.title:void 0,o.title),implicitTitle:p0(Pi(o)?o.field:void 0,tf(o)?o.expr:void 0)}},n=this.members.map(t),r=n.filter(a=>{var o;if(Ms(a.member.channel)&&!a.explicitTitle){const s=Li(a.member.channel);return((o=n.find(u=>u.member.view==a.member.view&&u.member.channel==s))==null?void 0:o.explicitTitle)===void 0}return!0}),i=new Set(r.map(a=>p0(a.explicitTitle,a.implicitTitle)).filter(Pe));return i.size?[...i].join(", "):null}}const $D={point:zB,rect:DB,rule:VB,link:QB,text:nD};class Yt extends Zi{constructor(t,n,r,i,a,o){super(t,n,r,i,a,o),this.spec=t;const s=$D[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 a=Li(i.resolutionChannel??r);if(!Oi(a)||t=="axis"&&!Rs(a))continue;let o=this;for(;(o.getConfiguredOrDefaultResolution(a,t)=="forced"||o.dataParent instanceof Zi&&["shared","excluded","forced"].includes(o.dataParent.getConfiguredOrDefaultResolution(a,t)))&&o.getConfiguredOrDefaultResolution(a,t)!="excluded";)o=o.dataParent;t=="axis"&&Rs(r)&&Xb(a)?(o.resolutions[t][a]||(o.resolutions[t][a]=new QD(a)),o.resolutions[t][a].pushUnitView(this,r)):t=="scale"&&Oi(r)&&(o.resolutions[t][a]||(o.resolutions[t][a]=new qD(a)),o.resolutions[t][a].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 Xy(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=Xy(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 a=i(t);const o=Ad[t];if(o){const s=i(o);s&&a.extendAll(s)}return a}getZoomLevel(){const t=n=>{var r;return((r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())??1};return Ma.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*g0(e,t=[]){for(const[n,r]of e.entries())if(r instanceof Map)for(const i of g0(r,[...t,n]))yield i;else yield[[...t,n],r]}class nw extends et{get behavior(){return s0}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){LB(t)&&(this._data=[],this.facetBatches.set(Lt(t.facetId),this._data))}complete(){var i,a;const t=(i=this.params)==null?void 0:i.sort,n=t?Kg(t.field,t.order):void 0,r=o=>{n&&o.sort(n)};if((a=this.params.groupby)!=null&&a.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const o=this.params.groupby.map(u=>Re(u)),s=o.length>1?mu(this._data,...o):XD(this._data,o[0]);this.facetBatches.clear();for(const[u,l]of g0(s))this.facetBatches.set(u,l)}for(const o of this.facetBatches.values())r(o);if(this.children.length)for(const[o,s]of this.facetBatches.entries()){if(o){const u={type:"facet",facetId:o};for(const l of this.children)l.beginBatch(u)}for(const u of s)this._propagate(u)}super.complete();for(const o of this.observers)o(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.")}}function XD(e,t){const n=new Map;for(let r=0,i=e.length;r<i;r++){const a=e[r],o=t(a);let s=n.get(o);s||(s=[],n.set(o,s)),s.push(a)}return n}class Rf{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(t,n){let r=this.length++;for(;r>0;){const i=r-1>>1,a=this.values[i];if(n>=a)break;this.ids[r]=this.ids[i],this.values[r]=a,r=i}this.ids[r]=t,this.values[r]=n}pop(){if(this.length===0)return;const t=this.ids[0];if(this.length--,this.length>0){const n=this.ids[0]=this.ids[this.length],r=this.values[0]=this.values[this.length],i=this.length>>1;let a=0;for(;a<i;){let o=(a<<1)+1;const s=o+1;let u=this.ids[o],l=this.values[o];const f=this.values[s];if(s<this.length&&f<l&&(o=s,u=this.ids[s],l=f),l>=r)break;this.ids[a]=u,this.values[a]=l,a=o}this.ids[a]=n,this.values[a]=r}return t}peek(){if(this.length!==0)return this.ids[0]}peekValue(){if(this.length!==0)return this.values[0]}shrink(){this.ids.length=this.values.length=this.length}}class KD extends et{get behavior(){return Un}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 Rf}reset(){super.reset(),this.initialize()}initialize(){const t=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,a=this.endAccessor,o=this.chromAccessor,s=this.weightAccessor;let u,l,f,c=0,h;const d=this.ends;d.clear();const p=(y,w,E)=>{if(y==w)return;let C=!1;u&&(u[t]===E?(u[n]=w,C=!0):u[t]!=0&&this._propagate(u)),C||(u=this.createSegment(y,w,E,f))},b=()=>{let y=0;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 E=0;for(;(E=d.peekValue())!==void 0&&E<w;)p(h,E,c),h=E,c-=d.pop();if(r){let _=o(y);_!==l&&(b(),f=_,l=f)}h!==void 0&&p(h,w,c),h=w;const C=s(y);c+=C,d.push(C,a(y))},this.complete=()=>{b(),super.complete()},this.beginBatch=y=>{b(),l=void 0,super.beginBatch(y)}}}function JD(e,t,n=0,r=e.length){const i=new Rf,a=r-n;let o;for(o=0;o<t&&o<a;o++)i.push(o,e[n+o]);for(;o<a;o++){const l=e[n+o];l>=i.peekValue()&&(i.push(o,l),i.pop())}const s=[];let u;for(;(u=i.pop())!==void 0;)s.push(n+u);return s.reverse()}class e9{constructor(t,n=-1/0,r=1/0){this.maxSize=t,this.lowerLimit=n,this.upperLimit=r;const i=this.maxSize*2+1;this.lowerLimits=new Float64Array(i),this.upperLimits=new Float64Array(i),this.lowerChildren=new Int32Array(i),this.upperChildren=new Int32Array(i),this.reset()}reset(){this.lowerLimits.fill(0),this.upperLimits.fill(0),this.lowerChildren.fill(0),this.upperChildren.fill(0),this.n=1,this.lowerLimits[0]=this.lowerLimit,this.upperLimits[0]=this.upperLimit}_findSlot(t,n,r=0){if(t>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const a=this._findSlot(t,n,i);return a>=0?a:this._findSlot(t,n,this.upperChildren[r])}else return r}else return-1}reserve(t,n){if(n-t<=0)throw new Error("Cannot reserve an empty or negative-size slot!");if(this.n+1>this.lowerLimits.length)return!1;const r=this._findSlot(t,n);if(r<0)return!1;const i=this.n++,a=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=t,this.lowerLimits[a]=n,this.upperLimits[a]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=a,!0}}class t9 extends et{get behavior(){return s0}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=gu(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 e9(200));this.schedule(),super.complete()}_filterAndPropagate(){var o;super.reset();const t=this.resolution.getScale(),n=(o=this.resolution.members[0].view.coords)==null?void 0:o[this.channel=="x"?"width":"height"];if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=t.domain(),i=70,a=JD(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of a){const u=this._data[s],l=t(this.posAccessor(u))*n,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 n9 extends et{constructor(t){super(),this.params=t,this.predicate=void 0}initialize(){this.predicate=Nu(this.params.expr,this.getGlobalObject())}handle(t){this.predicate(t)&&this._propagate(t)}}class r9 extends et{get behavior(){return Un}constructor(t){super();const n=t.index;if(t.fields){const r=Lt(t.fields).map(a=>Re(a)),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=a=>{const o=r.map((u,l)=>u(a)??[]),s=o[0].length;for(let u=0;u<s;u++){const l=Object.assign({},a);for(let f=0;f<r.length;f++)l[i[f]]=u<o[f].length?o[f][u]:null;n&&(l[n]=u),this._propagate(l)}}}else this.handle=r=>{for(let i=0;i<r.length;i++){const a=Object.assign({},r[i]);n&&(a[n]=i),this._propagate(a)}}}}const i9="0".charCodeAt(0);function*a9(e,t=","){const n=t.charCodeAt(0);let r=0;for(let i=0;i<e.length;i++){const a=e.charCodeAt(i);a==n?(yield r,r=0):r=r*10+a-i9}yield r}class o9 extends et{get behavior(){return Un}constructor(t){super();const n=Re(t.exons??"exons"),r=Re(t.start??"start"),[i,a]=t.as||["exonStart","exonEnd"];this.handle=o=>{let s=r(o),u=s,l=!0;const f=n(o);for(const c of a9(f)){if(l)u=s+c;else{s=u+c;const h=Object.assign({},o);h[i]=u,h[a]=s,this._propagate(h)}l=!l}}}}class s9 extends et{get behavior(){return Un}constructor(t){super();const n=Lt(t.field).map(a=>Re(a)),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=a=>{if(n.some(u=>!u(a)))return;const o=n.map((u,l)=>u(a).split(r[l]));l9(o,a);const s=o[0].length;for(let u=0;u<s;u++){const l=Object.assign({},a);for(let f=0;f<n.length;f++)l[i[f]]=o[f][u];this._propagate(l)}}}}function l9(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 u9 extends et{get behavior(){return Vr}constructor(t){super(),this.params=t,this.as=t.as,this.fn=void 0}initialize(){this.fn=Nu(this.params.expr,this.getGlobalObject())}handle(t){t[this.as]=this.fn(t),this._propagate(t)}}class rw 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 a=Re(t.chrom),o=Lt(t.pos).map(p=>Re(p)),s=Lt(t.as);if(o.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(o.length).fill(0);else if(u.length==1)l=new Array(o.length).fill(u[0]);else if(u.length==o.length)l=u;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(t.offset)}!`);const f=new Function("datum","chromOffset","posAccessors",s.map((p,b)=>`datum[${JSON.stringify(p)}] = chromOffset + +posAccessors[${b}](datum) - ${l[b]};`).join(`
281
+ `));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(a(p)),o),this._propagate(p)}}}const iw={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 f9 extends et{get behavior(){return Vr}constructor(t){super();const n=i0(iw),r=Re(t.field),i=t.as,a=t.fontSize;this.handle=o=>{const s=r(o);s!==void 0?o[i]=n.measureWidth(s,a):o[i]=0,this._propagate(o)}}}const c9=65536;class h9 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),a=Re(t.end);if(!t.preference!=!t.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(t.preference){const o=new Float64Array(c9),s=Re(t.preference),u=t.preferredOrder;let l=1/0;this.handle=f=>{const c=i(f);c<l&&o.fill(-1/0),l=c;const h=u.indexOf(s(f));let d=-1;if(h>=0&&o[h]<c)d=h;else{const p=i(f);for(d=0;d<o.length&&!(o[d]<p);d++);if(d>=o.length)throw new Error("Out of lanes!")}o[d]=a(f)+r,f[n]=d,this._propagate(f)}}else{const o=new Rf,s=new Rf;let u=-1/0,l=0;this.handle=f=>{const c=i(f);for(;o.length&&(o.peekValue()<=c||c<u);){const d=o.pop();s.push(d,d)}u=c;let h=s.pop();h===void 0&&(h=l++),f[n]=h,this._propagate(f),o.push(h,a(f)+r)}}}}class d9 extends et{get behavior(){return Un}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(xa);this.handle=i=>{const a={};for(let o=0;o<n.length;o++)a[r[o]]=n[o](i);this._propagate(a)}}}class p9 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=a=>{const o=i(a);if(Pe(o)){const s=o.match(n);if(s){if(s.length-1!=r.length)throw new Error('The number of RegEx groups and the length of "as" do not match!');for(let u=0;u<r.length;u++)a[r[u]]=s[u+1]}else if(t.skipInvalidInput)for(let u=0;u<r.length;u++)a[r[u]]=void 0;else throw new Error(`"${o}" does not match the given regex: ${n.toString()}`)}else if(!t.skipInvalidInput)throw new Error(`Trying to match a non-string field. Encountered type: ${typeof o}, field content: "${o}".`);this._propagate(a)}}}class g9 extends et{get behavior(){return Un}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,a=t.asKey||"sample";let o,s,u;const l=h=>{var y;const d=Object.keys(h);for(const w of n)if(!d.some(E=>w.test(E)))throw new Error(`No columns matching the regex ${w.toString()} found in the data!`);const p=new Map;for(const[w,E]of n.entries())for(const C of d){const _=(y=E.exec(C))==null?void 0:y[1];if(_!==void 0){let k=p.get(_);k||(k=[],p.set(_,k)),k[w]=C}}o=[...p.entries()],s=d.filter(w=>!n.some(E=>E.test(w))&&!(i&&i.test(w)));const b=[...s.map(w=>JSON.stringify(w)+": datum["+JSON.stringify(w)+"]"),JSON.stringify(a)+": sampleId",...r.map((w,E)=>JSON.stringify(w)+`: datum[attrs[${E}]]`)];u=new Function("datum","sampleId","attrs",`return {
282
+ `+b.join(`,
283
283
  `)+`
284
- };`)},f=h=>{o||l(h);for(let d=0;d<o.length;d++){const[p,m]=o[d],y=u(h,p,m);this._propagate(y)}},c=h=>{l(h),f(h),this.handle=f};this.handle=c,this.beginBatch=h=>{Dy(h)&&(this.handle=c),super.beginBatch(h)}}}class m9 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?Kg(t.sort.field,t.sort.order):void 0,i=t.field?Re(t.field):()=>1,a=t.groupby.map(f=>Re(f)),o=i4(this.buffer,f=>a.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)=>yu(f,c);break;case"center":u=(f,c)=>f-c/2,l=(f,c)=>yu(f,c);break;case"information":{const f=Math.log2(t.cardinality??4);u=(c,h)=>c/h,l=(c,h)=>{const p=yu(c,_=>+!s(_)),m=yu(c,h),y=m-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/m)}}break;default:u=(f,c)=>f,l=(f,c)=>1}for(const f of o){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 b9 extends et{get behavior(){return Un}constructor(t){super();const n=Re(t.field??"sequence"),[r,i]=t.as??["pos","sequence"];this.handle=a=>{const o=Object.assign({},a,{[i]:"",[r]:0}),s=n(a);for(let u=0;u<s.length;u++){const l=Object.assign({},o);l[r]=u,l[i]=s.charAt(u),this._propagate(l)}}}}class y9 extends et{get behavior(){return Un}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const n=this.params.groupby,r=n.map(a=>Re(a)),i=mu(this.buffer,...r);for(const[a,o]of g0(i)){const s={count:o.length};for(let u=0;u<n.length;u++)s[n[u]]=a[u];this._propagate(s)}super.complete()}}const w9="_uniqueId",aw=1e4,ow=[null];class sw extends et{get behavior(){return Vr}constructor(t){super(),this.params=t,this.as=t.as??w9,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%aw==0&&(this._id=this._getBlock()*aw),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const t=ow.length;return ow[t]=this,this._blocks.push(t),this._usedBlocks++,t}}const v9={aggregate:y9,collect:nw,coverage:KD,filterScoredLabels:t9,filter:n9,flatten:r9,flattenCompressedExons:o9,flattenDelimited:s9,flattenSequence:b9,formula:u9,identifier:sw,linearizeGenomicCoordinate:rw,measureText:f9,pileup:h9,project:d9,regexExtract:p9,regexFold:g9,sample:Fy,stack:m9};function x9(e,t){const n=v9[e.type];if(n)return new n(e,t);throw new Error("Unknown transform: "+e.type)}function lw(e){if(!cw(e)&&!fw(e))return;const t={...e.format};if(t.type??(t.type=fw(e)&&A9(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 A9(e){var t;if(Array.isArray(e)&&(e=e[0]),e)return(t=e.match(/\.(csv|tsv|json)/))==null?void 0:t[1]}const uw=e=>typeof e!="object"?E9:_9,E9=e=>({data:e}),_9=e=>e;function fw(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 cw(e){return"values"in e}class S9 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=uw(t[0]));else if(typeof t=="object")n=[t];else if(typeof t=="string")n=n1(t,lw(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 C9(e){return"url"in e}class T9 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 a=>Tu({baseURL:this.baseUrl}).load(a).catch(o=>{throw new Error(`Cannot fetch: ${this.baseUrl}${a}: ${o.message}`)}),i=(a,o)=>{try{const s=n1(a,lw(this.params));this.beginBatch({type:"file",url:o});for(const u of s)this._propagate(u)}catch(s){throw new Error(`Cannot parse: ${o}: ${s.message}`)}};this.reset(),await Promise.all(n.map(a=>r(a).then(i))),this.complete()}}function k9(e){return"sequence"in e}class I9 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 m0 extends Ws{constructor(n,r){super();Bn(this,"initializedPromise",Promise.resolve());if(this.view=n,r){if(r!=="x"&&r!=="y")throw new Error(`Invalid channel specified for the lazy data source: ${r}. Must be either "x" or "y"`)}else throw new Error('No channel has been specified for the lazy data source. Must be either "x" or "y".');if(this.channel=r,this.scaleResolution=this.view.getScaleResolution(r),!this.scaleResolution){const a=[`The lazy data source cannot find a resolved scale for channel "${r}".`];throw this.view instanceof Yt||a.push('Make sure the view has a "shared" scale resolution as it is not a unit view.'),new Error(a.join(" "))}const i=()=>{this.view.isVisible()&&this.onDomainChanged(this.scaleResolution.getDomain(),this.scaleResolution.getComplexDomain())};this.scaleResolution.addEventListener("domain",i),this.view.context.addBroadcastListener("layoutComputed",i)}getAxisLength(){const n=this.scaleResolution.members.map(r=>{var i;return(i=r.view.coords)==null?void 0:i[this.channel==="x"?"width":"height"]}).filter(r=>r>0);return n.length?n.reduce((r,i)=>Math.min(r,i),1e4):0}get genome(){return this.scaleResolution.getGenome()}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(),d0(this.view),this.requestRender()}}class B9 extends m0{constructor(n,r){const i={axis:{},...n};super(r,i.channel);Bn(this,"ticks",[]);this.params=n}async onDomainChanged(){const n=this.scaleResolution.getScale(),r=this.params.axis,i=this.getAxisLength(),a=l=>25+60*I1(100,700,l),o=Ct(r.tickCount)?r.tickCount:Math.round(i/a(i)),s=zy(n,o,r.tickMinStep),u=r.values?Uy(n,r.values,s):dD(n,s);if(!Bu(u,this.ticks)){this.ticks=u;const l=gD(n,o,r.format);this.publishData([u.map(f=>({value:f,label:l(f)}))])}}}class D9 extends m0{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 b0(e,t,n=!0){let r,i=o=>{};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 m0{constructor(){super(...arguments);ne(this,Do,new AbortController);ne(this,$l,[0,0]);Bn(this,"params")}setupDebouncing(n){n.debounce>0&&(n.debounceMode=="domain"?this.onDomainChanged=b0(this.onDomainChanged.bind(this),n.debounce,!1):n.debounceMode=="window"&&(this.loadInterval=b0(this.loadInterval.bind(this),n.debounce,!1)))}async onDomainChanged(n){var a;const r=((a=this.params)==null?void 0:a.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,Do).abort(),this.setLoadingStatus(!0),Xe(this,Do,new AbortController);const i=W(this,Do).signal,a=this.genome.continuousToDiscreteChromosomeIntervals(n);try{const o=await Promise.all(a.map(async s=>r(s,i)));if(!i.aborted)return this.setLoadingStatus(!1),o}catch(o){if(!i.aborted)throw this.setLoadingStatus(!1),o}}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 Bu(W(this,$l),n)?!1:(Xe(this,$l,n),!0)}}Do=new WeakMap,$l=new WeakMap;class F9 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(()=>Pw),Promise.resolve().then(()=>wM),Promise.resolve().then(()=>Ks)]).then(([{Buffer:a},{IndexedFasta:o},{RemoteFile:s}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=a));const u=l=>new s(Ys(l,this.view.getBaseUrl()));this.fasta=new o({fasta:u(this.params.url),fai:u(this.params.indexUrl??this.params.url+".fai")}),i()})})}async loadInterval(t){const n=await this.discretizeAndLoad(t,async(r,i)=>this.fasta.getSequence(r.chrom,r.startPos,r.endPos,{signal:i}).then(a=>({chrom:r.chrom,start:r.startPos,sequence:a})));n&&this.publishData([n])}}class R9 extends Qs{constructor(n,r){const i={pixelsPerBin:2,channel:"x",debounce:200,debounceMode:"window",...n};super(r,i.channel);ne(this,Fo,[]);ne(this,Ro,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(a=>{Promise.all([Promise.resolve().then(()=>R3),Promise.resolve().then(()=>Ks)]).then(([{BigWig:o},{RemoteFile:s}])=>{Xe(this,Ro,new o({filehandle:new s(Ys(this.params.url,this.view.getBaseUrl()))})),W(this,Ro).getHeader().then(u=>{Xe(this,Fo,u.zoomLevels.map(l=>l.reductionLevel).reverse()),W(this,Fo).push(1),a()})})})}async onDomainChanged(n){await this.initializedPromise;const r=this.getAxisLength()||700,i=M9(n,r,W(this,Fo)),a=Math.max(i*r,5e3),o=this.quantizeInterval(n,a);this.checkAndUpdateLastInterval(o)&&this.loadInterval(o,i)}async loadInterval(n,r){const i=.5/r/this.params.pixelsPerBin,a=await this.discretizeAndLoad(n,(o,s)=>W(this,Ro).getFeatures(o.chrom,o.startPos,o.endPos,{scale:i,signal:s}).then(u=>u.map(l=>({chrom:o.chrom,start:l.start,end:l.end,score:l.score}))));a&&this.publishData(a)}}Fo=new WeakMap,Ro=new WeakMap;function M9(e,t,n){const r=(e[1]-e[0])/t;return n.find(i=>i<r)??n.at(-1)}class P9 extends Qs{constructor(n,r){const i={channel:"x",windowSize:1e6,debounce:200,debounceMode:"window",...n};super(r,i.channel);Bn(this,"parser");Bn(this,"bbi");Bn(this,"parseLine");if(this.params=i,!this.params.url)throw new Error("No URL provided for BigBedSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(a=>{Promise.all([Promise.resolve().then(()=>pO),Promise.resolve().then(()=>R3),Promise.resolve().then(()=>Ks)]).then(([o,{BigBed:s},{RemoteFile:u}])=>{const l=o.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});try{const c=L9(this.parser);this.parseLine=(h,d)=>c(h,d.start,d.end,d.rest)}catch{this.parseLine=(h,d)=>this.parser.parseLine(`${h} ${d.start} ${d.end} ${d.rest}`)}a()})})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,a)=>this.bbi.getFeatures(i.chrom,i.startPos,i.endPos,{signal:a}).then(o=>o.map(s=>this.parseLine(i.chrom,s))));r&&this.publishData(r)}}function L9(e){const t=e.autoSql.fields.filter(m=>m.type).slice(3);let n=0,r="",i=0,a={};const o=" ",s=o.charCodeAt(0),u="0".charCodeAt(0),l="-".charCodeAt(0);function f(){let m=r.indexOf(o,n);m<0&&(m=i);const y=r.substring(n,m);return n=m+1,y}function c(){let m=0,y=r.charCodeAt(n),w=1;y===l&&(w=-1,n++,y=r.charCodeAt(n));do{if(y===s){n++;break}m=m*10+y-u,y=r.charCodeAt(++n)}while(n<i);return m*w}const h=t.map(m=>{const{name:y,type:w}=m;if(["ubyte","int","uint"].includes(w))return()=>{a[y]=c()};if(m.isNumeric)return()=>{a[y]=Number(f())};if(["char","string","lstring"].includes(w))return()=>{a[y]=f()};throw new Error("Unsupported type: "+w)});function d(m){r=m,i=m.length,n=0}function p(m,y,w,_){d(_),a={chrom:m,chromStart:y,chromEnd:w};for(let C=0,E=h.length;C<E;C++)h[C]();return a}return p}class N9 extends Qs{constructor(n,r){const i={channel:"x",windowSize:2e4,debounce:200,debounceMode:"domain",...n};super(r,i.channel);ne(this,pa,void 0);Bn(this,"chrPrefixFixer",n=>n);if(this.params=i,!this.params.url)throw new Error("No URL provided for BamSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(a=>{Promise.all([Promise.resolve().then(()=>MO),Promise.resolve().then(()=>Ks)]).then(([{BamFile:o},{RemoteFile:s}])=>{const u=l=>new s(Ys(l,this.view.getBaseUrl()));Xe(this,pa,new o({bamFilehandle:u(this.params.url),baiFilehandle:u(this.params.indexUrl??this.params.url+".bai")})),W(this,pa).getHeader().then(l=>{var h,d;const f=this.genome.hasChrPrefix(),c=(d=(h=W(this,pa).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),a()})})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,a)=>W(this,pa).getRecordsForRange(this.chrPrefixFixer(i.chrom),i.startPos,i.endPos,{signal:a}).then(o=>o.map(s=>({chrom:i.chrom,start:s.get("start"),end:s.get("end"),name:s.get("name"),MD:s.get("MD"),cigar:s.get("cigar"),mapq:s.get("mq"),strand:s.get("strand")===1?"+":"-"}))));r&&this.publishData(r)}}pa=new WeakMap;class O9 extends Qs{constructor(n,r){const i={channel:"x",windowSize:3e6,debounce:200,debounceMode:"domain",...n};super(r,i.channel);ne(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(a=>{Promise.all([Promise.resolve().then(()=>Pw),Promise.resolve().then(()=>jO),Promise.resolve().then(()=>Ks)]).then(([{Buffer:o},{TabixIndexedFile:s},{RemoteFile:u}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=o));const l=f=>new u(Ys(f,this.view.getBaseUrl()));Xe(this,Xl,new s({filehandle:l(this.params.url),tbiFilehandle:l(this.params.indexUrl??this.params.url+".tbi")})),a()})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,a)=>{const o=[];return await W(this,Xl).getLines(i.chrom,i.startPos,i.endPos,{lineCallback:s=>{o.push(s)},signal:a}),this._parseFeatures(o)});r&&this.publishData(r)}_parseFeatures(n){return[]}}Xl=new WeakMap;class z9 extends O9{constructor(n,r){super(n,r);ne(this,Kl,void 0);Promise.resolve().then(()=>kz).then(i=>{Xe(this,Kl,i.default)})}_parseFeatures(n){var i;return(i=W(this,Kl))==null?void 0:i.parseStringSync(n.join(`
284
+ };`)},f=h=>{o||l(h);for(let d=0;d<o.length;d++){const[p,b]=o[d],y=u(h,p,b);this._propagate(y)}},c=h=>{l(h),f(h),this.handle=f};this.handle=c,this.beginBatch=h=>{Dy(h)&&(this.handle=c),super.beginBatch(h)}}}class m9 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?Kg(t.sort.field,t.sort.order):void 0,i=t.field?Re(t.field):()=>1,a=t.groupby.map(f=>Re(f)),o=i4(this.buffer,f=>a.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)=>yu(f,c);break;case"center":u=(f,c)=>f-c/2,l=(f,c)=>yu(f,c);break;case"information":{const f=Math.log2(t.cardinality??4);u=(c,h)=>c/h,l=(c,h)=>{const p=yu(c,E=>+!s(E)),b=yu(c,h),y=b-p;let w=0;for(let E=0;E<c.length;E++){const C=c[E];if(s(C)){const _=h(C)/y;w-=_*Math.log2(_)}}return y/(f-(w+0))*(y/b)}}break;default:u=(f,c)=>f,l=(f,c)=>1}for(const f of o){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 b9 extends et{get behavior(){return Un}constructor(t){super();const n=Re(t.field??"sequence"),[r,i]=t.as??["pos","sequence"];this.handle=a=>{const o=Object.assign({},a,{[i]:"",[r]:0}),s=n(a);for(let u=0;u<s.length;u++){const l=Object.assign({},o);l[r]=u,l[i]=s.charAt(u),this._propagate(l)}}}}class y9 extends et{get behavior(){return Un}constructor(t){super(),this.params=t,this.buffer=[]}reset(){this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const n=this.params.groupby,r=n.map(a=>Re(a)),i=mu(this.buffer,...r);for(const[a,o]of g0(i)){const s={count:o.length};for(let u=0;u<n.length;u++)s[n[u]]=a[u];this._propagate(s)}super.complete()}}const w9="_uniqueId",aw=1e4,ow=[null];class sw extends et{get behavior(){return Vr}constructor(t){super(),this.params=t,this.as=t.as??w9,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%aw==0&&(this._id=this._getBlock()*aw),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const t=ow.length;return ow[t]=this,this._blocks.push(t),this._usedBlocks++,t}}const v9={aggregate:y9,collect:nw,coverage:KD,filterScoredLabels:t9,filter:n9,flatten:r9,flattenCompressedExons:o9,flattenDelimited:s9,flattenSequence:b9,formula:u9,identifier:sw,linearizeGenomicCoordinate:rw,measureText:f9,pileup:h9,project:d9,regexExtract:p9,regexFold:g9,sample:Fy,stack:m9};function x9(e,t){const n=v9[e.type];if(n)return new n(e,t);throw new Error("Unknown transform: "+e.type)}function lw(e){if(!cw(e)&&!fw(e))return;const t={...e.format};if(t.type??(t.type=fw(e)&&A9(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 A9(e){var t;if(Array.isArray(e)&&(e=e[0]),e)return(t=e.match(/\.(csv|tsv|json)/))==null?void 0:t[1]}const uw=e=>typeof e!="object"?E9:_9,E9=e=>({data:e}),_9=e=>e;function fw(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 cw(e){return"values"in e}class S9 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=uw(t[0]));else if(typeof t=="object")n=[t];else if(typeof t=="string")n=n1(t,lw(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 C9(e){return"url"in e}class T9 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 a=>Tu({baseURL:this.baseUrl}).load(a).catch(o=>{throw new Error(`Cannot fetch: ${this.baseUrl}${a}: ${o.message}`)}),i=(a,o)=>{try{const s=n1(a,lw(this.params));this.beginBatch({type:"file",url:o});for(const u of s)this._propagate(u)}catch(s){throw new Error(`Cannot parse: ${o}: ${s.message}`)}};this.reset(),await Promise.all(n.map(a=>r(a).then(i))),this.complete()}}function k9(e){return"sequence"in e}class I9 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 m0 extends Ws{constructor(n,r){super();Bn(this,"initializedPromise",Promise.resolve());if(this.view=n,r){if(r!=="x"&&r!=="y")throw new Error(`Invalid channel specified for the lazy data source: ${r}. Must be either "x" or "y"`)}else throw new Error('No channel has been specified for the lazy data source. Must be either "x" or "y".');if(this.channel=r,this.scaleResolution=this.view.getScaleResolution(r),!this.scaleResolution){const a=[`The lazy data source cannot find a resolved scale for channel "${r}".`];throw this.view instanceof Yt||a.push('Make sure the view has a "shared" scale resolution as it is not a unit view.'),new Error(a.join(" "))}const i=()=>{this.view.isVisible()&&this.onDomainChanged(this.scaleResolution.getDomain(),this.scaleResolution.getComplexDomain())};this.scaleResolution.addEventListener("domain",i),this.view.context.addBroadcastListener("layoutComputed",i)}getAxisLength(){const n=this.scaleResolution.members.map(r=>{var i;return(i=r.view.coords)==null?void 0:i[this.channel==="x"?"width":"height"]}).filter(r=>r>0);return n.length?n.reduce((r,i)=>Math.min(r,i),1e4):0}get genome(){return this.scaleResolution.getGenome()}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(),d0(this.view),this.requestRender()}}class B9 extends m0{constructor(n,r){const i={axis:{},...n};super(r,i.channel);Bn(this,"ticks",[]);this.params=n}async onDomainChanged(){const n=this.scaleResolution.getScale(),r=this.params.axis,i=this.getAxisLength(),a=l=>25+60*I1(100,700,l),o=Ct(r.tickCount)?r.tickCount:Math.round(i/a(i)),s=zy(n,o,r.tickMinStep),u=r.values?Uy(n,r.values,s):dD(n,s);if(!Bu(u,this.ticks)){this.ticks=u;const l=gD(n,o,r.format);this.publishData([u.map(f=>({value:f,label:l(f)}))])}}}class D9 extends m0{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 b0(e,t,n=!0){let r,i=o=>{};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 m0{constructor(){super(...arguments);ne(this,Do,new AbortController);ne(this,$l,[0,0]);Bn(this,"params")}setupDebouncing(n){n.debounce>0&&(n.debounceMode=="domain"?this.onDomainChanged=b0(this.onDomainChanged.bind(this),n.debounce,!1):n.debounceMode=="window"&&(this.loadInterval=b0(this.loadInterval.bind(this),n.debounce,!1)))}async onDomainChanged(n){var a;const r=((a=this.params)==null?void 0:a.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,Do).abort(),this.setLoadingStatus(!0),Xe(this,Do,new AbortController);const i=W(this,Do).signal,a=this.genome.continuousToDiscreteChromosomeIntervals(n);try{const o=await Promise.all(a.map(async s=>r(s,i)));if(!i.aborted)return this.setLoadingStatus(!1),o}catch(o){if(!i.aborted)throw this.setLoadingStatus(!1),o}}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 Bu(W(this,$l),n)?!1:(Xe(this,$l,n),!0)}}Do=new WeakMap,$l=new WeakMap;class F9 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(()=>Pw),Promise.resolve().then(()=>wM),Promise.resolve().then(()=>Ks)]).then(([{Buffer:a},{IndexedFasta:o},{RemoteFile:s}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=a));const u=l=>new s(Ys(l,this.view.getBaseUrl()));this.fasta=new o({fasta:u(this.params.url),fai:u(this.params.indexUrl??this.params.url+".fai")}),i()})})}async loadInterval(t){const n=await this.discretizeAndLoad(t,async(r,i)=>this.fasta.getSequence(r.chrom,r.startPos,r.endPos,{signal:i}).then(a=>({chrom:r.chrom,start:r.startPos,sequence:a})));n&&this.publishData([n])}}class R9 extends Qs{constructor(n,r){const i={pixelsPerBin:2,channel:"x",debounce:200,debounceMode:"window",...n};super(r,i.channel);ne(this,Fo,[]);ne(this,Ro,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(a=>{Promise.all([Promise.resolve().then(()=>R3),Promise.resolve().then(()=>Ks)]).then(([{BigWig:o},{RemoteFile:s}])=>{Xe(this,Ro,new o({filehandle:new s(Ys(this.params.url,this.view.getBaseUrl()))})),W(this,Ro).getHeader().then(u=>{Xe(this,Fo,u.zoomLevels.map(l=>l.reductionLevel).reverse()),W(this,Fo).push(1),a()})})})}async onDomainChanged(n){await this.initializedPromise;const r=this.getAxisLength()||700,i=M9(n,r,W(this,Fo)),a=Math.max(i*r,5e3),o=this.quantizeInterval(n,a);this.checkAndUpdateLastInterval(o)&&this.loadInterval(o,i)}async loadInterval(n,r){const i=.5/r/this.params.pixelsPerBin,a=await this.discretizeAndLoad(n,(o,s)=>W(this,Ro).getFeatures(o.chrom,o.startPos,o.endPos,{scale:i,signal:s}).then(u=>u.map(l=>({chrom:o.chrom,start:l.start,end:l.end,score:l.score}))));a&&this.publishData(a)}}Fo=new WeakMap,Ro=new WeakMap;function M9(e,t,n){const r=(e[1]-e[0])/t;return n.find(i=>i<r)??n.at(-1)}class P9 extends Qs{constructor(n,r){const i={channel:"x",windowSize:1e6,debounce:200,debounceMode:"window",...n};super(r,i.channel);Bn(this,"parser");Bn(this,"bbi");Bn(this,"parseLine");if(this.params=i,!this.params.url)throw new Error("No URL provided for BigBedSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(a=>{Promise.all([Promise.resolve().then(()=>pO),Promise.resolve().then(()=>R3),Promise.resolve().then(()=>Ks)]).then(([o,{BigBed:s},{RemoteFile:u}])=>{const l=o.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});try{const c=L9(this.parser);this.parseLine=(h,d)=>c(h,d.start,d.end,d.rest)}catch{this.parseLine=(h,d)=>this.parser.parseLine(`${h} ${d.start} ${d.end} ${d.rest}`)}a()})})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,a)=>this.bbi.getFeatures(i.chrom,i.startPos,i.endPos,{signal:a}).then(o=>o.map(s=>this.parseLine(i.chrom,s))));r&&this.publishData(r)}}function L9(e){const t=e.autoSql.fields.filter(w=>w.type).slice(3);let n=0,r="",i=0,a={};const o=" ",s=o.charCodeAt(0),u="0".charCodeAt(0),l="-".charCodeAt(0);function f(){let w=r.indexOf(o,n);w<0&&(w=i);const E=r.substring(n,w);return n=w+1,E}function c(){let w=0,E=r.charCodeAt(n),C=1;E===l&&(C=-1,n++,E=r.charCodeAt(n));do{if(E===s){n++;break}w=w*10+E-u,E=r.charCodeAt(++n)}while(n<i);return w*C}const h=t.map(w=>{const{name:E,type:C}=w;if(["ubyte","int","uint"].includes(C))return()=>{a[E]=c()};if(w.isNumeric)return()=>{a[E]=Number(f())};if(["char","string","lstring"].includes(C))return()=>{a[E]=f()};throw new Error("Unsupported type: "+C)}),d=t.map(w=>`"${w.name}": ${w.isNumeric?"0":"emptyString"}`),p=new Function(`
285
+ const emptyString = "";
286
+ return function makeTemplate(chrom, chromStart, chromEnd) {
287
+ return {
288
+ chrom,
289
+ chromStart,
290
+ chromEnd,
291
+ ${d.join(`,
292
+ `)}
293
+ }
294
+ };`)();function b(w){r=w,i=w.length,n=0}function y(w,E,C,_){b(_),a=p(w,E,C);for(let k=0,I=h.length;k<I;k++)h[k]();return a}return y}class N9 extends Qs{constructor(n,r){const i={channel:"x",windowSize:2e4,debounce:200,debounceMode:"domain",...n};super(r,i.channel);ne(this,pa,void 0);Bn(this,"chrPrefixFixer",n=>n);if(this.params=i,!this.params.url)throw new Error("No URL provided for BamSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(a=>{Promise.all([Promise.resolve().then(()=>MO),Promise.resolve().then(()=>Ks)]).then(([{BamFile:o},{RemoteFile:s}])=>{const u=l=>new s(Ys(l,this.view.getBaseUrl()));Xe(this,pa,new o({bamFilehandle:u(this.params.url),baiFilehandle:u(this.params.indexUrl??this.params.url+".bai")})),W(this,pa).getHeader().then(l=>{var h,d;const f=this.genome.hasChrPrefix(),c=(d=(h=W(this,pa).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),a()})})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,a)=>W(this,pa).getRecordsForRange(this.chrPrefixFixer(i.chrom),i.startPos,i.endPos,{signal:a}).then(o=>o.map(s=>({chrom:i.chrom,start:s.get("start"),end:s.get("end"),name:s.get("name"),MD:s.get("MD"),cigar:s.get("cigar"),mapq:s.get("mq"),strand:s.get("strand")===1?"+":"-"}))));r&&this.publishData(r)}}pa=new WeakMap;class O9 extends Qs{constructor(n,r){const i={channel:"x",windowSize:3e6,debounce:200,debounceMode:"domain",...n};super(r,i.channel);ne(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(a=>{Promise.all([Promise.resolve().then(()=>Pw),Promise.resolve().then(()=>jO),Promise.resolve().then(()=>Ks)]).then(([{Buffer:o},{TabixIndexedFile:s},{RemoteFile:u}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=o));const l=f=>new u(Ys(f,this.view.getBaseUrl()));Xe(this,Xl,new s({filehandle:l(this.params.url),tbiFilehandle:l(this.params.indexUrl??this.params.url+".tbi")})),a()})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,a)=>{const o=[];return await W(this,Xl).getLines(i.chrom,i.startPos,i.endPos,{lineCallback:s=>{o.push(s)},signal:a}),this._parseFeatures(o)});r&&this.publishData(r)}_parseFeatures(n){return[]}}Xl=new WeakMap;class z9 extends O9{constructor(n,r){super(n,r);ne(this,Kl,void 0);Promise.resolve().then(()=>kz).then(i=>{Xe(this,Kl,i.default)})}_parseFeatures(n){var i;return(i=W(this,Kl))==null?void 0:i.parseStringSync(n.join(`
285
295
  `),{parseSequences:!1})}}Kl=new WeakMap;function U9(e,t){if(cw(e))return new S9(e,t);if(C9(e))return new T9(e,t);if(k9(e))return new I9(e,t);if(G9(e))return Q9(e.lazy,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function G9(e){return"lazy"in e}function H9(e){return(e==null?void 0:e.type)=="axisTicks"}function V9(e){return(e==null?void 0:e.type)=="axisGenome"}function j9(e){return(e==null?void 0:e.type)=="indexedFasta"}function q9(e){return(e==null?void 0:e.type)=="bigwig"}function Z9(e){return(e==null?void 0:e.type)=="bigbed"}function W9(e){return(e==null?void 0:e.type)=="bam"}function Y9(e){return(e==null?void 0:e.type)=="gff3"}function Q9(e,t){if(H9(e))return new B9(e,t);if(V9(e))return new D9(e,t);if(j9(e))return new F9(e,t);if(q9(e))return new R9(e,t);if(Z9(e))return new P9(e,t);if(W9(e))return new N9(e,t);if(Y9(e))return new z9(e,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function $9(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(`,
286
- `)+" };");return n.properties=t,n}class Mf extends et{get behavior(){return Un}constructor(){super();const t=n=>{const r=$9(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=t,this.beginBatch=n=>{Dy(n)&&(this.handle=t),super.beginBatch(n)}}}function X9(e){return"name"in e}class hw extends Ws{constructor(n,r,i){super();ne(this,Jl,void 0);this.provider=i,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){Xe(this,Jl,n),this.loadSynchronously()}loadSynchronously(){const n=W(this,Jl)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=uw(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()}}Jl=new WeakMap;class dw{constructor(){this._dataSourcesByHost=new Map,this._collectorsByHost=new Map,this._observers=new Map}get dataSources(){return[...new Set(this._dataSourcesByHost.values()).values()]}get collectors(){return[...this._collectorsByHost.values()]}addObserver(t,n){let r=this._observers.get(n);r||(r=[],this._observers.set(n,r)),r.push(t)}_relayObserverCallback(t,n){const r=this._observers.get(n);if(r)for(const i of r)i(t)}addDataSource(t,n){this._dataSourcesByHost.set(n,t)}findDataSourceByKey(t){return this._dataSourcesByHost.get(t)}findNamedDataSource(t){let n,r=[];for(const[i,a]of this._dataSourcesByHost.entries())if(a instanceof hw&&t==a.identifier){if(n&&n!==a)throw new Error(`Found multiple instances of named data: ${t}. Data flow optimization is broken (it's a bug).`);n=a,r.push(i)}if(n)return{dataSource:n,hosts:r}}addCollector(t,n){this._collectorsByHost.set(n,t),t.observers.push(r=>this._relayObserverCallback(r,n))}findCollectorByKey(t){return this._collectorsByHost.get(t)}initialize(){for(const t of this.dataSources)t.visit(n=>n.initialize())}}function K9(e,t){const n=new Map,r=[];for(const i of e)n.set(i,{ref:i,children:[]});for(const i of n.values()){const a=n.get(t(i.ref));a?a.children.push(i):r.push(i)}return r}function pw(e,t,n){var i,a;const r=(i=t.preOrder)==null?void 0:i.call(t,e);if(r)return r;for(const o of n(e)){const s=pw(o,t,n);if(s==="stop")return s}return(a=t.postOrder)==null?void 0:a.call(t,e)}function J9(e,t){return pw(e,t,n=>n.children)}function eF(e,t){const n=[];let r;const i=t??new dw,a=[];function o(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 o(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=x9(d,h)}catch(m){throw console.warn(m),new Error(`Cannot initialize "${d.type}" transform: ${m}`)}p.behavior&Vr&&s(new Mf),s(p)}}const l=c=>{if(n.push(r),c.spec.data){const h=X9(c.spec.data)?new hw(c.spec.data,c,c.context.getNamedDataFromProvider):U9(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=tF(c);if(h){a.push(h.rewrite);for(const p of h.transforms)s(p)}c.mark.isPickingParticipant()&&(s(new Mf),s(new sw({type:"identifier"})));const d=new nw({type:"collect",groupby:c.getFacetFields(),sort:nF(c,h==null?void 0:h.rewrittenEncoding)});o(d),i.addCollector(d,c)}},f=K9(e.getDescendants(),c=>c.dataParent);for(const c of f)J9(c,{preOrder:h=>l(h.ref),postOrder:()=>{r=n.pop()}});return a.forEach(c=>c()),i}function tF(e){var a;const t=[],n={},r=[];for(const[o,s]of Object.entries(e.getEncoding())){const u=o;Rs(u)&&$b(s)&&r.push({channel:u,chromPosDef:s})}const i=mu(r,o=>Li(o.channel),o=>o.chromPosDef.chrom);for(const[o,s]of i.entries())for(const[u,l]of s.entries()){const f=[],c=[],h=[];for(const{channel:d,chromPosDef:p}of l){const m=_=>_.replace(/[^A-Za-z0-9_]/g,""),y=["_linearized_",m(p.chrom),"_",m(p.pos)].join(""),w={...((a=e.spec.encoding)==null?void 0:a[d])??e.getEncoding()[d]??{},field:y};delete w.chrom,delete w.pos,!w.type&&p.type&&(w.type=p.type),n[d]=w,f.push(p.pos),h.push(p.offset??0),c.push(y)}t.push(new Mf),t.push(new rw({type:"linearizeGenomicCoordinate",channel:o,chrom:u,pos:f,offset:h,as:c},e))}return t.length?{transforms:t,rewrittenEncoding:n,rewrite:()=>{e.spec.encoding={...e.spec.encoding,...n},Ey(e.mark,"encoding")}}:void 0}function nF(e,t){var r;const n={...e.getEncoding(),...t}.x;if(Ut(n)&&(r=e.getScaleResolution("x"))!=null&&r.isZoomable()){if(Pi(n))return"buildIndex"in n&&n.buildIndex?{field:n.field}:null;if(!Fs(n)){if(tf(n))throw new Error("A zoomable x channel must be mapped to a field.")}}}function gw(e,t=void 0){if(e.parent!==t)return!1;for(const n of e.children)if(!gw(n,e))return!1;return!0}function y0(e,t=!1){if(e.behavior&s0&&(t=!0),e instanceof Mf)if(t)t=!1;else{const n=e.children[0];e.excise(),n&&y0(n,t);return}e.behavior&Un&&(t=!1);for(let n=0,r=e.children.length;n<r;n++)y0(e.children[n],t||r>1)}function rF(e){const t=[...e._dataSourcesByHost.entries()],n=new Map;for(const r of t){const i=r[1];i.identifier&&!n.has(i.identifier)&&n.set(i.identifier,i)}e._dataSourcesByHost.clear();for(let[r,i]of t){const a=n.get(i.identifier);a&&(a.adoptChildrenOf(i),i=a),e.addDataSource(i,r)}}function iF(e){if(y0(e),!gw(e))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function aF(e){for(const t of e.dataSources)iF(t);rF(e)}function oF(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 sF(e){for(const t of Ma){const n=e.getScaleResolution(t);n&&!n.name&&n.isZoomable()&&(n.name=`${t}_at_root`)}}async function lF(e,t,n){var o;if(!e.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(e));const r=Tu({baseURL:t}),i=e.import.url,a=JSON.parse(await r.load(i).catch(s=>{throw new Error(`Could not load imported view spec: ${i}
287
- Reason: ${s.message}`)}));if(n.isViewSpec(a))return a.baseUrl=(o=i.match(/^[^?#]*\//))==null?void 0:o[0],a;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(e)}`)}function uF(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 kn=class kn{static create(t,n,r,i){return new kn(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 kn(n("x"),n("y"),n("width"),n("height"))}translate(t,n){return t===0&&n===0?this:new kn(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 kn(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 kn(()=>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 kn(()=>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 kn(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)}`}};Bn(kn,"ZERO",kn.create(0,0,0,0));let sr=kn;class mw{constructor(t){this.globalOptions=t}pushView(t,n){}popView(t){}renderMark(t,n){}}class bw extends mw{constructor(t,n){super(t),this.webGLHelper=n,this.buffer=[],this.coords=void 0,this.views=new Set}pushView(t,n){this.views.add(t),this.coords=n}renderMark(t,n){if(this.globalOptions.picking&&!t.isPickingParticipant())return;const r=t.render(n);r&&this.buffer.push({mark:t,callback:r,coords:this.coords,clipRect:n.clipRect})}render(){if(this.batch||this._buildBatch(),this.batch.length==0)return;const t=this.webGLHelper.gl,n=this.globalOptions.picking;t.bindFramebuffer(t.FRAMEBUFFER,n?this.webGLHelper._pickingBufferInfo.framebuffer:null),this.webGLHelper.clearAll();for(const r of this.views)r.onBeforeRender();for(const r of this.batch)r();n&&t.bindFramebuffer(t.FRAMEBUFFER,null)}_buildBatch(){this.batch=[];let t=!0,n=!0;const r=o=>()=>{t&&o()},i=o=>()=>{t&&n&&o()},a=mu(this.buffer.reverse(),o=>o.mark);for(const[o,s]of[...a.entries()].reverse()){if(!o.isReady())continue;this.batch.push(()=>{t=o.unitView.getEffectiveOpacity()>0}),this.batch.push(...o.prepareRender(this.globalOptions).map(l=>r(l)));let u;for(const l of s){const f=l.coords;f.equals(u)||this.batch.push(r(()=>{n=o.setViewport(f,l.clipRect)})),this.batch.push(i(l.callback)),u=l.coords}}}}class fF extends mw{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 cF{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 hF{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 dF=e=>new Promise(t=>setTimeout(t,e));function pF(e){const t=e.requestAnimationFrame||window.requestAnimationFrame,n=e.signal,r=()=>new Promise((i,a)=>{if(n!=null&&n.aborted)return a("aborted");const o=performance.now(),s=o+(e.duration||1e3),u=typeof e.from=="number"?e.from:0,l=typeof e.to=="number"?e.to:1,f=e.easingFunction||(m=>m),c=m=>(m-o)/(s-o),h=m=>m*(l-u)+u,d=m=>Math.max(0,Math.min(1,m)),p=m=>{n!=null&&n.aborted?a("aborted"):(e.onUpdate(h(f(d(c(m))))),m<s?t(p):(e.onUpdate(h(f(1))),i()))};t(p)});return e.delay?n!=null&&n.aborted?Promise.reject("aborted"):dF(e.delay).then(r):r()}class gF{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 pF({requestAnimationFrame:n=>this.requestTransition(n),...t})}}class mF{constructor(t){this.genomes=new Map,this.baseUrl=t}async initialize(t){const n=new ND(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 bF="data:image/png;base64,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",yF={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class wF{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:i0(iw),texture:t?this._createTextureNow(bF):void 0}}async waitUntilReady(){await Promise.all(this._promises)}getFont(t,n="normal",r="regular"){if(Pe(r)&&(r=yF[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:t,style:n,weight:r};let a=this._fonts.get(i);return a||(a={metrics:void 0,texture:void 0},this._fonts.set(i,a),this._promises.push(this._loadFontEntry(a,i))),a}async _loadFontEntry(t,n){try{const r=await this._loadMetadata(n.family),i=xF(r,n),a=this.fontRepository+yw(n.family)+"/"+i.replace(/\.\w+/,""),o=this._createTexture(a+".png"),s=this._loadFont(a+".json");t.texture=await o,t.metrics=await s}catch(r){console.log("Cannot load font. Using default.",r),t.metrics=this._defaultFontEntry.metrics,t.texture=this._defaultFontEntry.texture}}_loadFont(t){let n=this._fontPromises.get(t);return n||(n=fetch(t).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>i0(r)),this._fontPromises.set(t,n)),n}_loadMetadata(t){const n=yw(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=>vF(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},(a,o,s)=>{a?i(a):r(o)})})}_createTextureNow(t){const n=this._webGLHelper.gl;let r;const i=new Promise((a,o)=>{r=Us(n,{src:t,min:n.LINEAR},(s,u,l)=>{s?o(s):a(u)})});return this._promises.push(i),r}}function yw(e){return e.toLowerCase().replaceAll(/[^\w]/g,"")}function vF(e){const t=e.split(`
296
+ `)+" };");return n.properties=t,n}class Mf extends et{get behavior(){return Un}constructor(){super();const t=n=>{const r=$9(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=t,this.beginBatch=n=>{Dy(n)&&(this.handle=t),super.beginBatch(n)}}}function X9(e){return"name"in e}class hw extends Ws{constructor(n,r,i){super();ne(this,Jl,void 0);this.provider=i,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){Xe(this,Jl,n),this.loadSynchronously()}loadSynchronously(){const n=W(this,Jl)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=uw(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()}}Jl=new WeakMap;class dw{constructor(){this._dataSourcesByHost=new Map,this._collectorsByHost=new Map,this._observers=new Map}get dataSources(){return[...new Set(this._dataSourcesByHost.values()).values()]}get collectors(){return[...this._collectorsByHost.values()]}addObserver(t,n){let r=this._observers.get(n);r||(r=[],this._observers.set(n,r)),r.push(t)}_relayObserverCallback(t,n){const r=this._observers.get(n);if(r)for(const i of r)i(t)}addDataSource(t,n){this._dataSourcesByHost.set(n,t)}findDataSourceByKey(t){return this._dataSourcesByHost.get(t)}findNamedDataSource(t){let n,r=[];for(const[i,a]of this._dataSourcesByHost.entries())if(a instanceof hw&&t==a.identifier){if(n&&n!==a)throw new Error(`Found multiple instances of named data: ${t}. Data flow optimization is broken (it's a bug).`);n=a,r.push(i)}if(n)return{dataSource:n,hosts:r}}addCollector(t,n){this._collectorsByHost.set(n,t),t.observers.push(r=>this._relayObserverCallback(r,n))}findCollectorByKey(t){return this._collectorsByHost.get(t)}initialize(){for(const t of this.dataSources)t.visit(n=>n.initialize())}}function K9(e,t){const n=new Map,r=[];for(const i of e)n.set(i,{ref:i,children:[]});for(const i of n.values()){const a=n.get(t(i.ref));a?a.children.push(i):r.push(i)}return r}function pw(e,t,n){var i,a;const r=(i=t.preOrder)==null?void 0:i.call(t,e);if(r)return r;for(const o of n(e)){const s=pw(o,t,n);if(s==="stop")return s}return(a=t.postOrder)==null?void 0:a.call(t,e)}function J9(e,t){return pw(e,t,n=>n.children)}function eF(e,t){const n=[];let r;const i=t??new dw,a=[];function o(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 o(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=x9(d,h)}catch(b){throw console.warn(b),new Error(`Cannot initialize "${d.type}" transform: ${b}`)}p.behavior&Vr&&s(new Mf),s(p)}}const l=c=>{if(n.push(r),c.spec.data){const h=X9(c.spec.data)?new hw(c.spec.data,c,c.context.getNamedDataFromProvider):U9(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=tF(c);if(h){a.push(h.rewrite);for(const p of h.transforms)s(p)}c.mark.isPickingParticipant()&&(s(new Mf),s(new sw({type:"identifier"})));const d=new nw({type:"collect",groupby:c.getFacetFields(),sort:nF(c,h==null?void 0:h.rewrittenEncoding)});o(d),i.addCollector(d,c)}},f=K9(e.getDescendants(),c=>c.dataParent);for(const c of f)J9(c,{preOrder:h=>l(h.ref),postOrder:()=>{r=n.pop()}});return a.forEach(c=>c()),i}function tF(e){var a;const t=[],n={},r=[];for(const[o,s]of Object.entries(e.getEncoding())){const u=o;Rs(u)&&$b(s)&&r.push({channel:u,chromPosDef:s})}const i=mu(r,o=>Li(o.channel),o=>o.chromPosDef.chrom);for(const[o,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=E=>E.replace(/[^A-Za-z0-9_]/g,""),y=["_linearized_",b(p.chrom),"_",b(p.pos)].join(""),w={...((a=e.spec.encoding)==null?void 0:a[d])??e.getEncoding()[d]??{},field:y};delete w.chrom,delete w.pos,!w.type&&p.type&&(w.type=p.type),n[d]=w,f.push(p.pos),h.push(p.offset??0),c.push(y)}t.push(new Mf),t.push(new rw({type:"linearizeGenomicCoordinate",channel:o,chrom:u,pos:f,offset:h,as:c},e))}return t.length?{transforms:t,rewrittenEncoding:n,rewrite:()=>{e.spec.encoding={...e.spec.encoding,...n},Ey(e.mark,"encoding")}}:void 0}function nF(e,t){var r;const n={...e.getEncoding(),...t}.x;if(Ut(n)&&(r=e.getScaleResolution("x"))!=null&&r.isZoomable()){if(Pi(n))return"buildIndex"in n&&n.buildIndex?{field:n.field}:null;if(!Fs(n)){if(tf(n))throw new Error("A zoomable x channel must be mapped to a field.")}}}function gw(e,t=void 0){if(e.parent!==t)return!1;for(const n of e.children)if(!gw(n,e))return!1;return!0}function y0(e,t=!1){if(e.behavior&s0&&(t=!0),e instanceof Mf)if(t)t=!1;else{const n=e.children[0];e.excise(),n&&y0(n,t);return}e.behavior&Un&&(t=!1);for(let n=0,r=e.children.length;n<r;n++)y0(e.children[n],t||r>1)}function rF(e){const t=[...e._dataSourcesByHost.entries()],n=new Map;for(const r of t){const i=r[1];i.identifier&&!n.has(i.identifier)&&n.set(i.identifier,i)}e._dataSourcesByHost.clear();for(let[r,i]of t){const a=n.get(i.identifier);a&&(a.adoptChildrenOf(i),i=a),e.addDataSource(i,r)}}function iF(e){if(y0(e),!gw(e))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function aF(e){for(const t of e.dataSources)iF(t);rF(e)}function oF(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 sF(e){for(const t of Ma){const n=e.getScaleResolution(t);n&&!n.name&&n.isZoomable()&&(n.name=`${t}_at_root`)}}async function lF(e,t,n){var o;if(!e.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(e));const r=Tu({baseURL:t}),i=e.import.url,a=JSON.parse(await r.load(i).catch(s=>{throw new Error(`Could not load imported view spec: ${i}
297
+ Reason: ${s.message}`)}));if(n.isViewSpec(a))return a.baseUrl=(o=i.match(/^[^?#]*\//))==null?void 0:o[0],a;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(e)}`)}function uF(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 kn=class kn{static create(t,n,r,i){return new kn(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 kn(n("x"),n("y"),n("width"),n("height"))}translate(t,n){return t===0&&n===0?this:new kn(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 kn(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 kn(()=>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 kn(()=>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 kn(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)}`}};Bn(kn,"ZERO",kn.create(0,0,0,0));let sr=kn;class mw{constructor(t){this.globalOptions=t}pushView(t,n){}popView(t){}renderMark(t,n){}}class bw extends mw{constructor(t,n){super(t),this.webGLHelper=n,this.buffer=[],this.coords=void 0,this.views=new Set}pushView(t,n){this.views.add(t),this.coords=n}renderMark(t,n){if(this.globalOptions.picking&&!t.isPickingParticipant())return;const r=t.render(n);r&&this.buffer.push({mark:t,callback:r,coords:this.coords,clipRect:n.clipRect})}render(){if(this.batch||this._buildBatch(),this.batch.length==0)return;const t=this.webGLHelper.gl,n=this.globalOptions.picking;t.bindFramebuffer(t.FRAMEBUFFER,n?this.webGLHelper._pickingBufferInfo.framebuffer:null),this.webGLHelper.clearAll();for(const r of this.views)r.onBeforeRender();for(const r of this.batch)r();n&&t.bindFramebuffer(t.FRAMEBUFFER,null)}_buildBatch(){this.batch=[];let t=!0,n=!0;const r=o=>()=>{t&&o()},i=o=>()=>{t&&n&&o()},a=mu(this.buffer.reverse(),o=>o.mark);for(const[o,s]of[...a.entries()].reverse()){if(!o.isReady())continue;this.batch.push(()=>{t=o.unitView.getEffectiveOpacity()>0}),this.batch.push(...o.prepareRender(this.globalOptions).map(l=>r(l)));let u;for(const l of s){const f=l.coords;f.equals(u)||this.batch.push(r(()=>{n=o.setViewport(f,l.clipRect)})),this.batch.push(i(l.callback)),u=l.coords}}}}class fF extends mw{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 cF{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 hF{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 dF=e=>new Promise(t=>setTimeout(t,e));function pF(e){const t=e.requestAnimationFrame||window.requestAnimationFrame,n=e.signal,r=()=>new Promise((i,a)=>{if(n!=null&&n.aborted)return a("aborted");const o=performance.now(),s=o+(e.duration||1e3),u=typeof e.from=="number"?e.from:0,l=typeof e.to=="number"?e.to:1,f=e.easingFunction||(b=>b),c=b=>(b-o)/(s-o),h=b=>b*(l-u)+u,d=b=>Math.max(0,Math.min(1,b)),p=b=>{n!=null&&n.aborted?a("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"):dF(e.delay).then(r):r()}class gF{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 pF({requestAnimationFrame:n=>this.requestTransition(n),...t})}}class mF{constructor(t){this.genomes=new Map,this.baseUrl=t}async initialize(t){const n=new ND(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 bF="data:image/png;base64,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",yF={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class wF{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:i0(iw),texture:t?this._createTextureNow(bF):void 0}}async waitUntilReady(){await Promise.all(this._promises)}getFont(t,n="normal",r="regular"){if(Pe(r)&&(r=yF[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:t,style:n,weight:r};let a=this._fonts.get(i);return a||(a={metrics:void 0,texture:void 0},this._fonts.set(i,a),this._promises.push(this._loadFontEntry(a,i))),a}async _loadFontEntry(t,n){try{const r=await this._loadMetadata(n.family),i=xF(r,n),a=this.fontRepository+yw(n.family)+"/"+i.replace(/\.\w+/,""),o=this._createTexture(a+".png"),s=this._loadFont(a+".json");t.texture=await o,t.metrics=await s}catch(r){console.log("Cannot load font. Using default.",r),t.metrics=this._defaultFontEntry.metrics,t.texture=this._defaultFontEntry.texture}}_loadFont(t){let n=this._fontPromises.get(t);return n||(n=fetch(t).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>i0(r)),this._fontPromises.set(t,n)),n}_loadMetadata(t){const n=yw(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=>vF(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},(a,o,s)=>{a?i(a):r(o)})})}_createTextureNow(t){const n=this._webGLHelper.gl;let r;const i=new Promise((a,o)=>{r=Us(n,{src:t,min:n.LINEAR},(s,u,l)=>{s?o(s):a(u)})});return this._promises.push(i),r}}function yw(e){return e.toLowerCase().replaceAll(/[^\w]/g,"")}function vF(e){const t=e.split(`
288
298
  `),n=[];let r;for(const i of t)if(i.startsWith("fonts {")&&(r={name:void 0,style:void 0,weight:void 0,filename:void 0,post_script_name:void 0,full_name:void 0,copyright:void 0}),i.startsWith("}")&&(n.push(r),r=void 0),r){let a=i.match(/^\s*([A-Za-z_]+):[ ]?"(.*)"$/);if(a){const o=a[1];r[o]=a[2]}if(a=i.match(/^\s*([A-Za-z_]+):[ ]?(\d+)$/),a){const o=a[1];r[o]=+a[2]}}return n}function xF(e,t){let n,r=Number.POSITIVE_INFINITY;for(const i of e)if(t.family.localeCompare(i.name,void 0,{sensitivity:"accent"})==0&&t.style==i.style){const a=Math.abs(t.weight-i.weight);a<r&&(r=a,n=i)}return n==null?void 0:n.filename}function AF(e,t){const n=[];let r;for(const i of e.split(`
289
299
  `))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 EF{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=em([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 _F(e){const t={},n=["string","number","boolean"],r=["wheelDelta","wheelDeltaX","wheelDeltaY"];for(const i in e){const a=i;!r.includes(i)&&n.includes(typeof e[a])&&(t[a]=e[a])}return t}const ww=new Map;async function SF(e,t,n){const r=e.symbol;let i=ww.get(r)??await kF(e.symbol);return i?(ww.set(r,i),mn`
290
300
  <div class="title">
@@ -311,23 +321,23 @@ Reason: ${s.message}`)}));if(n.isViewSpec(a))return a.baseUrl=(o=i.match(/^[^?#]
311
321
  <div class="title">
312
322
  <strong>${o}</strong>
313
323
  </div>
314
- `:"";return mn`${s}${a}`}class $s extends Zi{constructor(n,r,i,a,o,s){super(n,r,i,a,o,s);ne(this,br,[]);this.spec=n,this.needsAxes={x:!0,y:!0}}async initializeChildren(){Xe(this,br,await Promise.all(this.spec.layer.map((n,r)=>this.context.createOrImportView(n,this,this,"grid"+r,i=>{if(!_0(i)&&!E0(i))throw new qi("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 a of W(this,br))a.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 xw{constructor(t,n){this.n=t,this.maxCols=n??1/0}get nRows(){return this.maxCols==1/0?1:Math.ceil(this.n/this.maxCols)}get nCols(){return Math.min(this.n,this.maxCols)}get rowIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const a=[];t.push(a);for(let o=0;o<n;o++){const s=i*n+o;s<this.n&&a.push(s)}}return t}get colIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const a=[];t.push(a);for(let o=0;o<r;o++){const s=o*n+i;s<this.n&&a.push(s)}}return t}getCellIndex(t,n){let r=0;if(this.maxCols==1/0)r=n==0?t:void 0;else{if(t>=this.maxCols)return;r=n*this.nCols+t}return r<this.n?r:void 0}getCellCoords(t){if(!(t<0||t>=this.n))return[t%this.nCols,Math.floor(t/this.nCols)]}}const FF="chromosome_ticks_and_labels",RF={x:"width",y:"height"};function w0(e){return e=="x"?"y":"x"}const Pf={x:["bottom","top"],y:["left","right"]},v0=Object.fromEntries(Object.entries(Pf).map(([e,t])=>t.map(n=>[n,e])).flat(1));function qr(e){return v0[e]}class Aw extends $s{constructor(t,n,r,i,a,o){const s=n=="locus",u={...s?PF:Ew,...MF(n,t),...t};super(s?LF(u,n):_w(u,n),r,i,a,`axis_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...o}),this.axisProps=u}getSize(){const t={px:this.getPerpendicularSize()},n={grow:1};return v0[this.axisProps.orient]=="x"?new jr(n,t):new jr(t,n)}getPerpendicularSize(){return x0(this.axisProps)}isPickingSupported(){return!1}}function x0(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 Ew={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 MF(e,t){const n=t.orient,r=e=="nominal"||e=="ordinal";let i="center",a="middle",o=t.labelAngle??((n=="top"||n=="bottom")&&r?-90:0);switch(n){case"left":i="right";break;case"right":i="left";break;case"top":case"bottom":Math.abs(o)>30?(i=o>0==(n=="bottom")?"left":"right",a="middle"):a=n=="top"?"alphabetic":"top";break}return{labelAlign:i,labelAngle:o,labelBaseline:a}}function _w(e,t){const n={...e,extent:x0(e)},r=qr(n.orient),i=w0(r),a=n.orient=="bottom"||n.orient=="right"?1:-1,o=n.orient=="bottom"||n.orient=="left"?1:0,s=()=>({name:"domain",data:{values:[0]},mark:{type:"rule",clip:!1,strokeDash:n.domainDash,strokeCap:n.domainCap,color:n.domainColor,[i]:o,size:n.domainWidth}}),u=()=>({name:"labels",mark:{type:"text",clip:!1,align:n.labelAlign,angle:n.labelAngle,baseline:n.labelBaseline,[i+"Offset"]:(n.tickSize+n.labelPadding)*a,[i]:o,size:n.labelFontSize,color:n.labelColor,minBufferSize:1500},encoding:{[r]:{field:"value",type:t},text:{field:"label"}}}),l=()=>({name:"ticks",mark:{type:"rule",clip:!1,strokeDash:n.tickDash,strokeCap:n.tickCap,color:n.tickColor,size:n.tickWidth,minBufferSize:300},encoding:{[i]:{value:o},[i+"2"]:{value:o-n.tickSize/n.extent*(o?1:-1)}}}),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-o}}),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"}},[RF[w0(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 PF={...Ew,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 LF(e,t){const n={...e,extent:x0(e)},r=qr(n.orient),i=w0(r),a=n.orient=="bottom"||n.orient=="left"?1:0,o=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:e.chromTickDash,strokeDashOffset:e.chromTickDashOffset,[i]:a,[i+"2"]:a-n.chromTickSize/n.extent*(a?1:-1),color:e.chromTickColor,size:n.chromTickWidth}}),s=()=>{let 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=_w({...e,...u},t);if(e.chromTicks||e.chromLabels){const f={name:FF,data:{lazy:{type:"axisGenome",channel:qr(n.orient)}},encoding:{[r]:{field:"continuousStart",type:t,band:0}},layer:[]};if(e.chromTicks&&f.layer.push(o()),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 NF extends $s{constructor(t,n,r,i,a,o){const u={...n=="locus"?OF:Sw,...t};super(HF(u,n),r,i,a,`axisGrid_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...o}),this.axisProps=u}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const Sw={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},OF={...Sw,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function zF(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 UF(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 GF(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 HF(e,t){const n={...e},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(GF(n,t)),n.chromGrid&&n.chromGridOpacity>0&&r.push(UF(n,t)),n.grid&&n.gridOpacity>0&&r.push(zF(n,t)),{name:"grid_layers",configurableVisibility:!1,resolve:{scale:{[qr(e.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const Cw={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"},VF={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},jF={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},qF={start:0,middle:.5,end:1},ZF={start:"left",middle:"center",end:"right"};function WF(e){if(!e)return;const t=Pe(e)?{text:e}:e;if(!t.text||t.orient=="none")return;const n={"track-title":VF,overlay:jF}[t.style]??{},r={...Cw,...n,...t};let i={},a={x:0,y:0};const o=qF[r.anchor??"middle"];switch(r.orient){case"top":a={x:o,y:1},i={baseline:"alphabetic",angle:0};break;case"right":a={x:1,y:1-o},i={baseline:"alphabetic",angle:90};break;case"bottom":a={x:o,y:0},i={baseline:"top",angle:0};break;case"left":a={x:0,y:o},i={baseline:"alphabetic",angle:-90};break}const s={...Cw,...i,...n,...t},u={xOffset:0,yOffset:0};switch(r.orient){case"top":u.yOffset=-s.offset;break;case"right":u.xOffset=s.offset;break;case"bottom":u.yOffset=s.offset;break;case"left":u.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...a,...u,text:s.text,align:s.align??ZF[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 YF(e,t,n,r){if(e.type=="wheel"){e.uiEvent.preventDefault();const i=e.uiEvent,a=i.deltaMode?120:1;let{x:o,y:s}=e.point;if(r){const u=r.mark.encoders;u.x&&!u.x2&&!u.x.constantValue&&(o=+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:o,y:s,xDelta:0,yDelta:0,zDelta:i.deltaY*a/300}):n({x:o,y:s,xDelta:-i.deltaX*a,yDelta:0,zDelta:0})}else if(e.type=="mousedown"&&e.uiEvent.button===0){const i=e.uiEvent;i.preventDefault();let a=i;const o=u=>{n({x:a.clientX,y:a.clientY,xDelta:u.clientX-a.clientX,yDelta:u.clientY-a.clientY,zDelta:0}),a=u},s=u=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",o,!1)}}class QF extends Zi{constructor(n,r,i,a,o,s,u){super(n,r,i,a,o,u);ne(this,yr);ne(this,zc);ne(this,ma);ne(this,eu);ne(this,tu);ne(this,nu);ne(this,Uc);ne(this,No);ne(this,Gc);ne(this,Mo,1/0);ne(this,Po,10);ne(this,Kt,[]);ne(this,ga,{});ne(this,Lo,0);this.spec=n,Xe(this,Po,n.spacing??10),Xe(this,Mo,s),Xe(this,Kt,[]),this.wrappingFacet=!1}appendChild(n){n.layoutParent??(n.layoutParent=this),W(this,Kt).push(new kw(n,this,W(this,Lo))),s_(this,Lo)._++}setChildren(n){Xe(this,Kt,[]);for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=W(this,Kt).findIndex(a=>a.view==n);if(i>=0)W(this,Kt)[i]=new kw(r,this,W(this,Lo));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 Ma){const i=this.resolutions.axis[r];if(i){const a=i.getAxisProps();if(a){const o={title:i.getTitle(),orient:Pf[r][0],...a},s=new Aw(o,i.scaleResolution.type,this.context,this,this);n.push(s.initializeChildren()),W(this,ga)[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,ga)))yield n}getOverhang(){return ee(this,Uc,d_).call(this).union(ee(this,No,Zc).call(this))}getSize(){return this._cache("size",()=>new jr(ee(this,tu,Zg).call(this,"column"),ee(this,tu,Zg).call(this,"row")).addPadding(ee(this,No,Zc).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(ee(this,No,Zc).call(this)),n.pushView(this,r);const a={devicePixelRatio:this.context.devicePixelRatio},o=Ry(ee(this,eu,qg).call(this,"column"),r.width,a),s=Ry(ee(this,eu,qg).call(this,"row"),r.height,a),u=new xw(W(this,yr,va).length,W(this,Mo)??1/0),l=f=>Math.round(f*devicePixelRatio)/devicePixelRatio;for(const[f,c]of W(this,yr,va).entries()){const{view:h,axes:d,gridLines:p,background:m,backgroundStroke:y,title:w}=c,[_,C]=u.getCellCoords(f),E=o[ee(this,nu,Wg).call(this,"column",_)],k=s[ee(this,nu,Wg).call(this,"row",C)],B=h.getViewportSize(),I=h.getSize(),R=h.getOverhang(),L=E.location-R.left,j=k.location-R.top,M=(Oe,N)=>(Oe[N].grow?(N=="width"?E:k).size:Oe[N].px)+R[N],ie=M(B,"width"),se=M(B,"height"),ge=M(I,"width"),Ie=M(I,"height"),$e=c.scrollbars.horizontal,De=c.scrollbars.vertical,Ke=$e?()=>l($e.viewportOffset):()=>0,Ze=De?()=>l(De.viewportOffset):()=>0,Je=new sr(()=>r.x+L,()=>r.y+j,()=>ie,()=>se),Ee=h.isScrollable(),_e=Ee?new sr(()=>r.x+L-Ke(),()=>r.y+j-Ze(),()=>ge,()=>Ie):Je;c.coords=Je;const pt=i.clipRect?Je.intersect(i.clipRect):Je;m==null||m.render(n,pt,{...i,clipRect:void 0});for(const Oe of Object.values(p))Oe.render(n,Je,i);const qt=JF(h)||Ee;qt&&h.render(n,_e,{...i,clipRect:pt}),y==null||y.render(n,pt,{...i,clipRect:void 0});for(const[Oe,N]of Object.entries(d)){const P=Oe=="left"||Oe=="right"?"vertical":"horizontal",q=c.scrollbars[P],H=q?Je.modify(P=="vertical"?{y:()=>_e.y,height:Ie}:{x:()=>_e.x,width:ge}):Je,Y=Tw(H,Oe,N);let S=i.clipRect;q&&(S=Y.intersect(S).intersect(q?Je.modify(P=="vertical"?{x:-1e5,width:2e5}:{y:-1e5,height:2e5}):void 0)),N.render(n,Y,{...i,clipRect:S})}for(const Oe of Object.values(W(this,ga))){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,Tw(Je.shrink(c.view.getOverhang()),P,Oe),i)}qt||h.render(n,_e,i);for(const Oe of Object.values(c.scrollbars))Oe.updateScrollbar(Je,_e),Oe.render(n,r,i);w==null||w.render(n,Je,i)}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=W(this,yr,va).find(a=>a.coords.containsPoint(n.point.x,n.point.y));for(const a of Object.values((r==null?void 0:r.scrollbars)??{}))if(a.coords.containsPoint(n.point.x,n.point.y)&&(a.propagateInteractionEvent(n),n.stopped))return;const i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof Yt||i instanceof $s)&&YF(n,r.coords,a=>ee(this,Gc,p_).call(this,r.coords,r.view,a),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}Mo=new WeakMap,Po=new WeakMap,Kt=new WeakMap,ga=new WeakMap,Lo=new WeakMap,yr=new WeakSet,va=function(){return W(this,Kt).filter(n=>n.view.isConfiguredVisible())},zc=new WeakSet,h_=function(){return new xw(W(this,yr,va).length,W(this,Mo)??1/0)},ma=new WeakSet,ou=function(n){const r=n=="column"?"width":"height",i=(a,o)=>a.map(s=>{const l=W(this,yr,va)[s].getOverhangAndPadding();return n=="column"?o?l.right:l.left:o?l.bottom:l.top}).reduce((s,u)=>Math.max(s,u),0);return this._cache(`size/directionSizes/${n}`,()=>W(this,zc,h_)[n=="column"?"colIndices":"rowIndices"].map(a=>({axisBefore:i(a,0),axisAfter:i(a,1),view:rD(a.map(o=>W(this,yr,va)[o].view.getViewportSize()[r]))})))},eu=new WeakSet,qg=function(n){const r=ee(this,ma,ou).call(this,n),i=[];i.push(js);for(const[a,o]of r.entries())a>0&&i.push({px:W(this,Po),grow:0}),(a==0||this.wrappingFacet)&&i.push(js),i.push({px:o.axisBefore,grow:0}),i.push(o.view),i.push({px:o.axisAfter,grow:0}),(a==r.length-1||this.wrappingFacet)&&i.push(js);return i},tu=new WeakSet,Zg=function(n){let r=0,i=0;const a=n=="row"?this.spec.height:this.spec.width;if(a||a===0)return Py(a);const o=ee(this,ma,ou).call(this,n);for(const[s,u]of o.entries())s>0&&(i+=W(this,Po)),(s==0||this.wrappingFacet)&&(i+=0),i+=u.axisBefore,i+=u.view.px??0,r+=u.view.grow??0,i+=u.axisAfter,(s==o.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},nu=new WeakSet,Wg=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},Uc=new WeakSet,d_=function(){const n=ee(this,ma,ou).call(this,"column"),r=ee(this,ma,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)},No=new WeakSet,Zc=function(){const n=r=>{const i=v0[r],a=W(this,ga)[i];return(a==null?void 0:a.axisProps.orient)!==r?0:Math.max(a.getPerpendicularSize()+a.axisProps.offset,0)};return new _t(n("top"),n("right"),n("bottom"),n("left"))},Gc=new WeakSet,p_=function(n,r,i){for(const[a,o]of Object.entries(KF(r))){if(o.size<=0)continue;const s=n.normalizePoint(i.x,i.y),u=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),l={x:u.x-s.x,y:u.y-s.y};for(const f of o)f.zoom(2**i.zDelta,a=="y"?1-s[a]:s[a],a=="x"?l.x:-l.y)}this.context.animator.requestRender()};function $F(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 XF(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 KF(e){const t={x:new Set,y:new Set};return e.visit(n=>{for(const[r,i]of Object.entries(t)){const a=n.getScaleResolution(r);a&&a.isZoomable()&&i.add(a)}}),t}function JF(e){let t=!0;return e.visit(n=>{n instanceof Yt&&t&&(t=n.mark.properties.clip===!0)}),t}function Tw(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 kw{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,a="view"in i?i==null?void 0:i.view:void 0,o=$F(a);o&&(this.background=new Yt(o,n.context,n,t,"background"+r,{blockEncodingInheritance:!0}));const s=XF(a);s&&(this.backgroundStroke=new Yt(s,n.context,n,t,"backgroundStroke"+r,{blockEncodingInheritance:!0}));const u=WF(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 Iw(this,"horizontal")),t.spec.viewportHeight!=null&&(this.scrollbars.vertical=new Iw(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 Pf[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()),!Pf[u].includes(f.orient))throw new Error(`Invalid axis orientation "${f.orient}" on channel "${u}"!`);return f},a=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 Aw(f,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);n[f.orient]=c,await c.initializeChildren()}},o=async(s,u,l)=>{const f=i(s,u);if(f&&(f.grid||f.chromGrid)){const c=new NF(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 a(u,s,t)}for(const s of["x","y"])if(t.needsAxes[s]){const u=t.getAxisResolution(s);if(!u)continue;await o(u,s,t)}if(t instanceof $s){for(const s of t)for(const[u,l]of Object.entries(s.resolutions.axis)){const f=l.getAxisProps();f&&f.orient&&await a(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 a(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 Iw 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,a)=>{if(a.stopPropagation(),this.maxScrollOffset<=0)return;const o=h=>n=="vertical"?h.clientY:h.clientX,s=a.uiEvent;s.preventDefault();const u=this.getScrollOffset(),l=o(s),f=h=>{const d=xs(o(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,a=this.scrollDirection=="horizontal"?"width":"height",o=Math.min(1,t[a]/n[a]),s=t[a]-2*r,u=o*s;this.maxScrollOffset=s-u,this.maxViewportOffset=n[a]-t[a],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 A0 extends QF{constructor(t,n,r,i,a){super(t,n,r,i,a,S0(t)?t.columns:Lf(t)?1:1/0),this.spec=t}async initializeChildren(){const t=this.spec,n=S0(t)?t.concat:Lf(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":Lf(this.spec)&&t==="x"||Dw(this.spec)&&t==="y"?"shared":"independent"}}const Bw="viewRoot";class eR{constructor(t={}){ne(this,Oo,new Map);this.options={allowImport:!0,wrapRoot:!0,...t};const n=r=>(i,a,o,s,u)=>new r(i,a,o,s,i.name??u);this.addViewType(_0,n($s)),this.addViewType(E0,n(Yt)),this.addViewType(Lf,n(A0)),this.addViewType(Dw,n(A0)),this.addViewType(S0,n(A0)),this.addViewType(nR,()=>{throw new Error("SampleView is not supported by the @genome-spy/core package. Use @genome-spy/app instead!")})}addViewType(t,n){W(this,Oo).set(t,n)}createView(t,n,r,i,a){for(const[o,s]of W(this,Oo))if(o(t))return s(t,n,r,i,a);throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(t)]))}isViewSpec(t){const n=[...W(this,Oo).keys()].filter(r=>r(t));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}async createOrImportView(t,n,r,i,a,o){let s;if(tR(t))if(this.options.allowImport)s=await lF(t,i.getBaseUrl(),n),o&&o(s);else throw new qi("Importing views is not allowed!",r);else s=t;!i&&this.options.wrapRoot&&(E0(s)||_0(s))&&a===Bw&&(s={name:"implicitRoot",vconcat:[s]});const u=this.createView(s,n,r,i,a);return u instanceof Zi&&await u.initializeChildren(),u}}Oo=new WeakMap;function E0(e){return"mark"in e&&(Pe(e.mark)||Rt(e.mark))}function _0(e){return"layer"in e&&Rt(e.layer)}function tR(e){return"import"in e}function Lf(e){return"vconcat"in e&&Ft(e.vconcat)}function Dw(e){return"hconcat"in e&&Ft(e.hconcat)}function S0(e){return"concat"in e&&Ft(e.concat)}function nR(e){return"samples"in e&&Rt(e.samples)&&"spec"in e&&Rt(e.spec)}class rR{constructor(){ne(this,zo,void 0);ne(this,ba,void 0);ne(this,ru,void 0);ne(this,ya,void 0);Xe(this,zo,new Map),Xe(this,ba,new Set),Xe(this,ya,new Map),Xe(this,ru,new Proxy(W(this,zo),{get(t,n){return Pe(n)?t.get(n):void 0}}))}allocateSetter(t){if(W(this,ba).has(t))throw new Error("Setter already allocated for parameter: "+t);return W(this,ba).add(t),n=>{W(this,zo).set(t,n);const r=W(this,ya).get(t);if(r)for(const i of r)i()}}createExpression(t){const n=Nu(t,W(this,ru));for(const r of n.globals)if(!W(this,ba).has(r))throw new Error(`Unknown variable "${r}" in expression: ${t}`);return n.addListener=r=>{for(const i of n.globals){const a=W(this,ya).get(i)??new Set;W(this,ya).set(i,a),a.add(r)}},n}}zo=new WeakMap,ba=new WeakMap,ru=new WeakMap,ya=new WeakMap,t1("fasta",AF);class Fw{constructor(t,n,r={}){this.container=t,this._destructionCallbacks=[];const i=document.createElement("style");i.innerHTML=yC,t.appendChild(i),this.spec=n,this.accessorFactory=new s5,this.viewFactory=new eR,this.namedDataProviders=[],this.animator=new gF(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=a=>a.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new EF(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this._extraBroadcastListeners=new Map,this.tooltipHandlers={default:DF,refseqgene:SF,...r.tooltipHandlers??{}},this.viewRoot=void 0,this._paramBroker=new rR,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),d0(r.hosts),this.animator.requestRender()}broadcast(t,n){var i;const r={type:t,payload:n};this.viewRoot.visit(a=>a.handleBroadcast(r)),(i=this._extraBroadcastListeners.get(t))==null||i.forEach(a=>a(r))}_updateLoadingIndicators(){const t=[],n=()=>[...this._loadingViews.values()].some(r=>r);for(const[r,i]of this._loadingViews){const a=r.coords;if(a){const o={left:`${a.x}px`,top:`${a.y}px`,width:`${a.width}px`,height:`${a.height}px`};t.push(mn`<div style=${mC(o)}>
324
+ `:"";return mn`${s}${a}`}class $s extends Zi{constructor(n,r,i,a,o,s){super(n,r,i,a,o,s);ne(this,br,[]);this.spec=n,this.needsAxes={x:!0,y:!0}}async initializeChildren(){Xe(this,br,await Promise.all(this.spec.layer.map((n,r)=>this.context.createOrImportView(n,this,this,"grid"+r,i=>{if(!_0(i)&&!E0(i))throw new qi("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 a of W(this,br))a.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 xw{constructor(t,n){this.n=t,this.maxCols=n??1/0}get nRows(){return this.maxCols==1/0?1:Math.ceil(this.n/this.maxCols)}get nCols(){return Math.min(this.n,this.maxCols)}get rowIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const a=[];t.push(a);for(let o=0;o<n;o++){const s=i*n+o;s<this.n&&a.push(s)}}return t}get colIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const a=[];t.push(a);for(let o=0;o<r;o++){const s=o*n+i;s<this.n&&a.push(s)}}return t}getCellIndex(t,n){let r=0;if(this.maxCols==1/0)r=n==0?t:void 0;else{if(t>=this.maxCols)return;r=n*this.nCols+t}return r<this.n?r:void 0}getCellCoords(t){if(!(t<0||t>=this.n))return[t%this.nCols,Math.floor(t/this.nCols)]}}const FF="chromosome_ticks_and_labels",RF={x:"width",y:"height"};function w0(e){return e=="x"?"y":"x"}const Pf={x:["bottom","top"],y:["left","right"]},v0=Object.fromEntries(Object.entries(Pf).map(([e,t])=>t.map(n=>[n,e])).flat(1));function qr(e){return v0[e]}class Aw extends $s{constructor(t,n,r,i,a,o){const s=n=="locus",u={...s?PF:Ew,...MF(n,t),...t};super(s?LF(u,n):_w(u,n),r,i,a,`axis_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...o}),this.axisProps=u}getSize(){const t={px:this.getPerpendicularSize()},n={grow:1};return v0[this.axisProps.orient]=="x"?new jr(n,t):new jr(t,n)}getPerpendicularSize(){return x0(this.axisProps)}isPickingSupported(){return!1}}function x0(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 Ew={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 MF(e,t){const n=t.orient,r=e=="nominal"||e=="ordinal";let i="center",a="middle",o=t.labelAngle??((n=="top"||n=="bottom")&&r?-90:0);switch(n){case"left":i="right";break;case"right":i="left";break;case"top":case"bottom":Math.abs(o)>30?(i=o>0==(n=="bottom")?"left":"right",a="middle"):a=n=="top"?"alphabetic":"top";break}return{labelAlign:i,labelAngle:o,labelBaseline:a}}function _w(e,t){const n={...e,extent:x0(e)},r=qr(n.orient),i=w0(r),a=n.orient=="bottom"||n.orient=="right"?1:-1,o=n.orient=="bottom"||n.orient=="left"?1:0,s=()=>({name:"domain",data:{values:[0]},mark:{type:"rule",clip:!1,strokeDash:n.domainDash,strokeCap:n.domainCap,color:n.domainColor,[i]:o,size:n.domainWidth}}),u=()=>({name:"labels",mark:{type:"text",clip:!1,align:n.labelAlign,angle:n.labelAngle,baseline:n.labelBaseline,[i+"Offset"]:(n.tickSize+n.labelPadding)*a,[i]:o,size:n.labelFontSize,color:n.labelColor,minBufferSize:1500},encoding:{[r]:{field:"value",type:t},text:{field:"label"}}}),l=()=>({name:"ticks",mark:{type:"rule",clip:!1,strokeDash:n.tickDash,strokeCap:n.tickCap,color:n.tickColor,size:n.tickWidth,minBufferSize:300},encoding:{[i]:{value:o},[i+"2"]:{value:o-n.tickSize/n.extent*(o?1:-1)}}}),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-o}}),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"}},[RF[w0(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 PF={...Ew,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 LF(e,t){const n={...e,extent:x0(e)},r=qr(n.orient),i=w0(r),a=n.orient=="bottom"||n.orient=="left"?1:0,o=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:e.chromTickDash,strokeDashOffset:e.chromTickDashOffset,[i]:a,[i+"2"]:a-n.chromTickSize/n.extent*(a?1:-1),color:e.chromTickColor,size:n.chromTickWidth}}),s=()=>{let 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=_w({...e,...u},t);if(e.chromTicks||e.chromLabels){const f={name:FF,data:{lazy:{type:"axisGenome",channel:qr(n.orient)}},encoding:{[r]:{field:"continuousStart",type:t,band:0}},layer:[]};if(e.chromTicks&&f.layer.push(o()),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 NF extends $s{constructor(t,n,r,i,a,o){const u={...n=="locus"?OF:Sw,...t};super(HF(u,n),r,i,a,`axisGrid_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...o}),this.axisProps=u}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const Sw={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},OF={...Sw,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function zF(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 UF(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 GF(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 HF(e,t){const n={...e},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(GF(n,t)),n.chromGrid&&n.chromGridOpacity>0&&r.push(UF(n,t)),n.grid&&n.gridOpacity>0&&r.push(zF(n,t)),{name:"grid_layers",configurableVisibility:!1,resolve:{scale:{[qr(e.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const Cw={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"},VF={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},jF={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},qF={start:0,middle:.5,end:1},ZF={start:"left",middle:"center",end:"right"};function WF(e){if(!e)return;const t=Pe(e)?{text:e}:e;if(!t.text||t.orient=="none")return;const n={"track-title":VF,overlay:jF}[t.style]??{},r={...Cw,...n,...t};let i={},a={x:0,y:0};const o=qF[r.anchor??"middle"];switch(r.orient){case"top":a={x:o,y:1},i={baseline:"alphabetic",angle:0};break;case"right":a={x:1,y:1-o},i={baseline:"alphabetic",angle:90};break;case"bottom":a={x:o,y:0},i={baseline:"top",angle:0};break;case"left":a={x:0,y:o},i={baseline:"alphabetic",angle:-90};break}const s={...Cw,...i,...n,...t},u={xOffset:0,yOffset:0};switch(r.orient){case"top":u.yOffset=-s.offset;break;case"right":u.xOffset=s.offset;break;case"bottom":u.yOffset=s.offset;break;case"left":u.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...a,...u,text:s.text,align:s.align??ZF[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 YF(e,t,n,r){if(e.type=="wheel"){e.uiEvent.preventDefault();const i=e.uiEvent,a=i.deltaMode?120:1;let{x:o,y:s}=e.point;if(r){const u=r.mark.encoders;u.x&&!u.x2&&!u.x.constantValue&&(o=+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:o,y:s,xDelta:0,yDelta:0,zDelta:i.deltaY*a/300}):n({x:o,y:s,xDelta:-i.deltaX*a,yDelta:0,zDelta:0})}else if(e.type=="mousedown"&&e.uiEvent.button===0){const i=e.uiEvent;i.preventDefault();let a=i;const o=u=>{n({x:a.clientX,y:a.clientY,xDelta:u.clientX-a.clientX,yDelta:u.clientY-a.clientY,zDelta:0}),a=u},s=u=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",o,!1)}}class QF extends Zi{constructor(n,r,i,a,o,s,u){super(n,r,i,a,o,u);ne(this,yr);ne(this,zc);ne(this,ma);ne(this,eu);ne(this,tu);ne(this,nu);ne(this,Uc);ne(this,No);ne(this,Gc);ne(this,Mo,1/0);ne(this,Po,10);ne(this,Kt,[]);ne(this,ga,{});ne(this,Lo,0);this.spec=n,Xe(this,Po,n.spacing??10),Xe(this,Mo,s),Xe(this,Kt,[]),this.wrappingFacet=!1}appendChild(n){n.layoutParent??(n.layoutParent=this),W(this,Kt).push(new kw(n,this,W(this,Lo))),s_(this,Lo)._++}setChildren(n){Xe(this,Kt,[]);for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=W(this,Kt).findIndex(a=>a.view==n);if(i>=0)W(this,Kt)[i]=new kw(r,this,W(this,Lo));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 Ma){const i=this.resolutions.axis[r];if(i){const a=i.getAxisProps();if(a){const o={title:i.getTitle(),orient:Pf[r][0],...a},s=new Aw(o,i.scaleResolution.type,this.context,this,this);n.push(s.initializeChildren()),W(this,ga)[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,ga)))yield n}getOverhang(){return ee(this,Uc,d_).call(this).union(ee(this,No,Zc).call(this))}getSize(){return this._cache("size",()=>new jr(ee(this,tu,Zg).call(this,"column"),ee(this,tu,Zg).call(this,"row")).addPadding(ee(this,No,Zc).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(ee(this,No,Zc).call(this)),n.pushView(this,r);const a={devicePixelRatio:this.context.devicePixelRatio},o=Ry(ee(this,eu,qg).call(this,"column"),r.width,a),s=Ry(ee(this,eu,qg).call(this,"row"),r.height,a),u=new xw(W(this,yr,va).length,W(this,Mo)??1/0),l=f=>Math.round(f*devicePixelRatio)/devicePixelRatio;for(const[f,c]of W(this,yr,va).entries()){const{view:h,axes:d,gridLines:p,background:b,backgroundStroke:y,title:w}=c,[E,C]=u.getCellCoords(f),_=o[ee(this,nu,Wg).call(this,"column",E)],k=s[ee(this,nu,Wg).call(this,"row",C)],I=h.getViewportSize(),B=h.getSize(),R=h.getOverhang(),L=_.location-R.left,j=k.location-R.top,M=(Oe,N)=>(Oe[N].grow?(N=="width"?_:k).size:Oe[N].px)+R[N],ie=M(I,"width"),se=M(I,"height"),ge=M(B,"width"),Ie=M(B,"height"),$e=c.scrollbars.horizontal,De=c.scrollbars.vertical,Ke=$e?()=>l($e.viewportOffset):()=>0,Ze=De?()=>l(De.viewportOffset):()=>0,Je=new sr(()=>r.x+L,()=>r.y+j,()=>ie,()=>se),Ee=h.isScrollable(),_e=Ee?new sr(()=>r.x+L-Ke(),()=>r.y+j-Ze(),()=>ge,()=>Ie):Je;c.coords=Je;const pt=i.clipRect?Je.intersect(i.clipRect):Je;b==null||b.render(n,pt,{...i,clipRect:void 0});for(const Oe of Object.values(p))Oe.render(n,Je,i);const qt=JF(h)||Ee;qt&&h.render(n,_e,{...i,clipRect:pt}),y==null||y.render(n,pt,{...i,clipRect:void 0});for(const[Oe,N]of Object.entries(d)){const P=Oe=="left"||Oe=="right"?"vertical":"horizontal",q=c.scrollbars[P],H=q?Je.modify(P=="vertical"?{y:()=>_e.y,height:Ie}:{x:()=>_e.x,width:ge}):Je,Y=Tw(H,Oe,N);let S=i.clipRect;q&&(S=Y.intersect(S).intersect(q?Je.modify(P=="vertical"?{x:-1e5,width:2e5}:{y:-1e5,height:2e5}):void 0)),N.render(n,Y,{...i,clipRect:S})}for(const Oe of Object.values(W(this,ga))){const P=Oe.axisProps.orient;(P=="left"&&E==0||P=="right"&&E==u.nCols-1||P=="top"&&C==0||P=="bottom"&&C==u.nRows-1)&&Oe.render(n,Tw(Je.shrink(c.view.getOverhang()),P,Oe),i)}qt||h.render(n,_e,i);for(const Oe of Object.values(c.scrollbars))Oe.updateScrollbar(Je,_e),Oe.render(n,r,i);w==null||w.render(n,Je,i)}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=W(this,yr,va).find(a=>a.coords.containsPoint(n.point.x,n.point.y));for(const a of Object.values((r==null?void 0:r.scrollbars)??{}))if(a.coords.containsPoint(n.point.x,n.point.y)&&(a.propagateInteractionEvent(n),n.stopped))return;const i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof Yt||i instanceof $s)&&YF(n,r.coords,a=>ee(this,Gc,p_).call(this,r.coords,r.view,a),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}Mo=new WeakMap,Po=new WeakMap,Kt=new WeakMap,ga=new WeakMap,Lo=new WeakMap,yr=new WeakSet,va=function(){return W(this,Kt).filter(n=>n.view.isConfiguredVisible())},zc=new WeakSet,h_=function(){return new xw(W(this,yr,va).length,W(this,Mo)??1/0)},ma=new WeakSet,ou=function(n){const r=n=="column"?"width":"height",i=(a,o)=>a.map(s=>{const l=W(this,yr,va)[s].getOverhangAndPadding();return n=="column"?o?l.right:l.left:o?l.bottom:l.top}).reduce((s,u)=>Math.max(s,u),0);return this._cache(`size/directionSizes/${n}`,()=>W(this,zc,h_)[n=="column"?"colIndices":"rowIndices"].map(a=>({axisBefore:i(a,0),axisAfter:i(a,1),view:rD(a.map(o=>W(this,yr,va)[o].view.getViewportSize()[r]))})))},eu=new WeakSet,qg=function(n){const r=ee(this,ma,ou).call(this,n),i=[];i.push(js);for(const[a,o]of r.entries())a>0&&i.push({px:W(this,Po),grow:0}),(a==0||this.wrappingFacet)&&i.push(js),i.push({px:o.axisBefore,grow:0}),i.push(o.view),i.push({px:o.axisAfter,grow:0}),(a==r.length-1||this.wrappingFacet)&&i.push(js);return i},tu=new WeakSet,Zg=function(n){let r=0,i=0;const a=n=="row"?this.spec.height:this.spec.width;if(a||a===0)return Py(a);const o=ee(this,ma,ou).call(this,n);for(const[s,u]of o.entries())s>0&&(i+=W(this,Po)),(s==0||this.wrappingFacet)&&(i+=0),i+=u.axisBefore,i+=u.view.px??0,r+=u.view.grow??0,i+=u.axisAfter,(s==o.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},nu=new WeakSet,Wg=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},Uc=new WeakSet,d_=function(){const n=ee(this,ma,ou).call(this,"column"),r=ee(this,ma,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)},No=new WeakSet,Zc=function(){const n=r=>{const i=v0[r],a=W(this,ga)[i];return(a==null?void 0:a.axisProps.orient)!==r?0:Math.max(a.getPerpendicularSize()+a.axisProps.offset,0)};return new _t(n("top"),n("right"),n("bottom"),n("left"))},Gc=new WeakSet,p_=function(n,r,i){for(const[a,o]of Object.entries(KF(r))){if(o.size<=0)continue;const s=n.normalizePoint(i.x,i.y),u=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),l={x:u.x-s.x,y:u.y-s.y};for(const f of o)f.zoom(2**i.zDelta,a=="y"?1-s[a]:s[a],a=="x"?l.x:-l.y)}this.context.animator.requestRender()};function $F(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 XF(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 KF(e){const t={x:new Set,y:new Set};return e.visit(n=>{for(const[r,i]of Object.entries(t)){const a=n.getScaleResolution(r);a&&a.isZoomable()&&i.add(a)}}),t}function JF(e){let t=!0;return e.visit(n=>{n instanceof Yt&&t&&(t=n.mark.properties.clip===!0)}),t}function Tw(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 kw{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,a="view"in i?i==null?void 0:i.view:void 0,o=$F(a);o&&(this.background=new Yt(o,n.context,n,t,"background"+r,{blockEncodingInheritance:!0}));const s=XF(a);s&&(this.backgroundStroke=new Yt(s,n.context,n,t,"backgroundStroke"+r,{blockEncodingInheritance:!0}));const u=WF(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 Iw(this,"horizontal")),t.spec.viewportHeight!=null&&(this.scrollbars.vertical=new Iw(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 Pf[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()),!Pf[u].includes(f.orient))throw new Error(`Invalid axis orientation "${f.orient}" on channel "${u}"!`);return f},a=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 Aw(f,s.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);n[f.orient]=c,await c.initializeChildren()}},o=async(s,u,l)=>{const f=i(s,u);if(f&&(f.grid||f.chromGrid)){const c=new NF(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 a(u,s,t)}for(const s of["x","y"])if(t.needsAxes[s]){const u=t.getAxisResolution(s);if(!u)continue;await o(u,s,t)}if(t instanceof $s){for(const s of t)for(const[u,l]of Object.entries(s.resolutions.axis)){const f=l.getAxisProps();f&&f.orient&&await a(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 a(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 Iw 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,a)=>{if(a.stopPropagation(),this.maxScrollOffset<=0)return;const o=h=>n=="vertical"?h.clientY:h.clientX,s=a.uiEvent;s.preventDefault();const u=this.getScrollOffset(),l=o(s),f=h=>{const d=xs(o(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,a=this.scrollDirection=="horizontal"?"width":"height",o=Math.min(1,t[a]/n[a]),s=t[a]-2*r,u=o*s;this.maxScrollOffset=s-u,this.maxViewportOffset=n[a]-t[a],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 A0 extends QF{constructor(t,n,r,i,a){super(t,n,r,i,a,S0(t)?t.columns:Lf(t)?1:1/0),this.spec=t}async initializeChildren(){const t=this.spec,n=S0(t)?t.concat:Lf(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":Lf(this.spec)&&t==="x"||Dw(this.spec)&&t==="y"?"shared":"independent"}}const Bw="viewRoot";class eR{constructor(t={}){ne(this,Oo,new Map);this.options={allowImport:!0,wrapRoot:!0,...t};const n=r=>(i,a,o,s,u)=>new r(i,a,o,s,i.name??u);this.addViewType(_0,n($s)),this.addViewType(E0,n(Yt)),this.addViewType(Lf,n(A0)),this.addViewType(Dw,n(A0)),this.addViewType(S0,n(A0)),this.addViewType(nR,()=>{throw new Error("SampleView is not supported by the @genome-spy/core package. Use @genome-spy/app instead!")})}addViewType(t,n){W(this,Oo).set(t,n)}createView(t,n,r,i,a){for(const[o,s]of W(this,Oo))if(o(t))return s(t,n,r,i,a);throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(t)]))}isViewSpec(t){const n=[...W(this,Oo).keys()].filter(r=>r(t));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}async createOrImportView(t,n,r,i,a,o){let s;if(tR(t))if(this.options.allowImport)s=await lF(t,i.getBaseUrl(),n),o&&o(s);else throw new qi("Importing views is not allowed!",r);else s=t;!i&&this.options.wrapRoot&&(E0(s)||_0(s))&&a===Bw&&(s={name:"implicitRoot",vconcat:[s]});const u=this.createView(s,n,r,i,a);return u instanceof Zi&&await u.initializeChildren(),u}}Oo=new WeakMap;function E0(e){return"mark"in e&&(Pe(e.mark)||Rt(e.mark))}function _0(e){return"layer"in e&&Rt(e.layer)}function tR(e){return"import"in e}function Lf(e){return"vconcat"in e&&Ft(e.vconcat)}function Dw(e){return"hconcat"in e&&Ft(e.hconcat)}function S0(e){return"concat"in e&&Ft(e.concat)}function nR(e){return"samples"in e&&Rt(e.samples)&&"spec"in e&&Rt(e.spec)}class rR{constructor(){ne(this,zo,void 0);ne(this,ba,void 0);ne(this,ru,void 0);ne(this,ya,void 0);Xe(this,zo,new Map),Xe(this,ba,new Set),Xe(this,ya,new Map),Xe(this,ru,new Proxy(W(this,zo),{get(t,n){return Pe(n)?t.get(n):void 0}}))}allocateSetter(t){if(W(this,ba).has(t))throw new Error("Setter already allocated for parameter: "+t);return W(this,ba).add(t),n=>{W(this,zo).set(t,n);const r=W(this,ya).get(t);if(r)for(const i of r)i()}}createExpression(t){const n=Nu(t,W(this,ru));for(const r of n.globals)if(!W(this,ba).has(r))throw new Error(`Unknown variable "${r}" in expression: ${t}`);return n.addListener=r=>{for(const i of n.globals){const a=W(this,ya).get(i)??new Set;W(this,ya).set(i,a),a.add(r)}},n}}zo=new WeakMap,ba=new WeakMap,ru=new WeakMap,ya=new WeakMap,t1("fasta",AF);class Fw{constructor(t,n,r={}){this.container=t,this._destructionCallbacks=[];const i=document.createElement("style");i.innerHTML=yC,t.appendChild(i),this.spec=n,this.accessorFactory=new s5,this.viewFactory=new eR,this.namedDataProviders=[],this.animator=new gF(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=a=>a.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new EF(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this._extraBroadcastListeners=new Map,this.tooltipHandlers={default:DF,refseqgene:SF,...r.tooltipHandlers??{}},this.viewRoot=void 0,this._paramBroker=new rR,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),d0(r.hosts),this.animator.requestRender()}broadcast(t,n){var i;const r={type:t,payload:n};this.viewRoot.visit(a=>a.handleBroadcast(r)),(i=this._extraBroadcastListeners.get(t))==null||i.forEach(a=>a(r))}_updateLoadingIndicators(){const t=[],n=()=>[...this._loadingViews.values()].some(r=>r);for(const[r,i]of this._loadingViews){const a=r.coords;if(a){const o={left:`${a.x}px`,top:`${a.y}px`,width:`${a.width}px`,height:`${a.height}px`};t.push(mn`<div style=${mC(o)}>
315
325
  <div class=${i?"loading":""}>
316
326
  <img src="${bC}" alt="" />
317
327
  <span>Loading...</span>
318
328
  </div>
319
- </div>`)}}n()?this.loadingIndicatorsElement.style.display="block":setTimeout(()=>{n()||(this.loadingIndicatorsElement.style.display="none")},3e3),kh(t,this.loadingIndicatorsElement)}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new _B(this.container,()=>this.viewRoot?uF(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 a=()=>{i!=null&&(i(),t());const o=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);o.addEventListener("change",a),i=()=>{o.removeEventListener("change",a)}};a(),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 vC(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 mF(this.spec.baseUrl),await this.genomeStore.initialize(this.spec.genome));const t=this,n={dataFlow:new dw,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new wF(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,Bw),oF(this.viewRoot),sF(this.viewRoot);const i=this.viewRoot.getDescendants();i.forEach(u=>u.configureViewOpacity()),this._glHelper.invalidateSize();const a=i.filter(u=>u instanceof Yt),o=eF(this.viewRoot,n.dataFlow);aF(o),this.broadcast("dataFlowBuilt",o),a.forEach(u=>u.mark.initializeEncoders());const s=Promise.all(a.map(u=>u.mark.initializeGraphics()));for(const u of a)o.addObserver(l=>{u.mark.initializeData(),u.mark.updateGraphicsData()},u);await n.fontManager.waitUntilReady(),o.initialize(),await Promise.all(o.dataSources.map(u=>u.load())),d0(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 a)u.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(u=>If(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),iR(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 a=t.getBoundingClientRect(),o=new hF(r.clientX-a.left-t.clientLeft,r.clientY-a.top-t.clientTop),s=u=>{this.viewRoot.propagateInteractionEvent(new cF(o,u)),this._tooltipUpdateRequested||this.tooltip.clear()};if(r.type!="wheel"&&this._wheelInertia.cancel(),r.type=="mousemove")this._handlePicking(o.x,o.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=_F(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 a;const r=this._glHelper.readPickingPixel(t,n),i=r[0]|r[1]<<8|r[2]<<16;if(i==0){this._currentHover=null;return}if(i!==((a=this._currentHover)==null?void 0:a.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(o=>{if(o instanceof Yt){if(o.mark.isPickingParticipant()){const s=o.mark.encoders.uniqueId.accessor;o.getCollector().visitData(u=>{s(u)==i&&(this._currentHover={mark:o.mark,datum:u,uniqueId:i})})}if(this._currentHover)return qs}}),this._currentHover){const o=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{if(!o.isPickingParticipant())return;const u=o.properties.tooltip;if(u!==null){const l=(u==null?void 0:u.handler)??"default",f=this.tooltipHandlers[l];if(!f)throw new Error("No such tooltip handler: "+l);return f(s,o,u==null?void 0:u.params)}})}}updateTooltip(t,n){if(!this._tooltipUpdateRequested||!t)this.tooltip.updateWithDatum(t,n),this._tooltipUpdateRequested=!0;else throw new Error("Tooltip has already been updated! Duplicate event handler?")}computeLayout(){const t=this.viewRoot;if(!t)return;this.broadcast("layout");const n=this._glHelper.getLogicalCanvasSize();if(isNaN(n.width)||isNaN(n.height)){console.log(`NaN in canvas size: ${n.width}x${n.height}. Skipping computeLayout().`);return}this._renderingContext=new bw({picking:!1},this._glHelper),this._pickingContext=new bw({picking:!0},this._glHelper),t.render(new fF(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 iR(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 aR="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 sR(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 a=Rt(t)?t:await Rw(t);if(a.baseUrl??(a.baseUrl=""),a.width??(a.width="container"),a.padding??(a.padding=10),r==document.body){const o=document.createElement("div");o.style.position="fixed",o.style.inset="0",o.style.overflow="hidden",r.appendChild(o),r=o}i=new Fw(r,a,n),lR(i,n),await i.launch()}catch(a){r.innerText=a.toString(),console.error(a)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(a,o){const s=i._eventListeners;let u=s.get(a);u||(u=new Set,s.set(a,u)),u.add(o)},removeEventListener(a,o){var u;(u=i._eventListeners.get(a))==null||u.delete(o)},getScaleResolutionByName(a){return i.getNamedScaleResolutions().get(a)},updateNamedData:i.updateNamedData.bind(i)}}function lR(e,t){t.namedDataProvider&&e.registerNamedDataProvider(t.namedDataProvider)}async function Rw(e){let t;try{t=JSON.parse(await Tu().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 Nf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function Xs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function uR(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={},Of={};Of.byteLength=hR,Of.toByteArray=pR,Of.fromByteArray=bR;for(var Gn=[],tn=[],fR=typeof Uint8Array<"u"?Uint8Array:Array,C0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Wa=0,cR=C0.length;Wa<cR;++Wa)Gn[Wa]=C0[Wa],tn[C0.charCodeAt(Wa)]=Wa;tn["-".charCodeAt(0)]=62,tn["_".charCodeAt(0)]=63;function Mw(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 hR(e){var t=Mw(e),n=t[0],r=t[1];return(n+r)*3/4-r}function dR(e,t,n){return(t+n)*3/4-n}function pR(e){var t,n=Mw(e),r=n[0],i=n[1],a=new fR(dR(e,r,i)),o=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)],a[o++]=t>>16&255,a[o++]=t>>8&255,a[o++]=t&255;return i===2&&(t=tn[e.charCodeAt(u)]<<2|tn[e.charCodeAt(u+1)]>>4,a[o++]=t&255),i===1&&(t=tn[e.charCodeAt(u)]<<10|tn[e.charCodeAt(u+1)]<<4|tn[e.charCodeAt(u+2)]>>2,a[o++]=t>>8&255,a[o++]=t&255),a}function gR(e){return Gn[e>>18&63]+Gn[e>>12&63]+Gn[e>>6&63]+Gn[e&63]}function mR(e,t,n){for(var r,i=[],a=t;a<n;a+=3)r=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(e[a+2]&255),i.push(gR(r));return i.join("")}function bR(e){for(var t,n=e.length,r=n%3,i=[],a=16383,o=0,s=n-r;o<s;o+=a)i.push(mR(e,o,o+a>s?s:o+a));return r===1?(t=e[n-1],i.push(Gn[t>>2]+Gn[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(Gn[t>>10]+Gn[t>>4&63]+Gn[t<<2&63]+"=")),i.join("")}var T0={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */T0.read=function(e,t,n,r,i){var a,o,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,a=d&(1<<-f)-1,d>>=-f,f+=s;f>0;a=a*256+e[t+c],c+=h,f-=8);for(o=a&(1<<-f)-1,a>>=-f,f+=r;f>0;o=o*256+e[t+c],c+=h,f-=8);if(a===0)a=1-l;else{if(a===u)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,r),a=a-l}return(d?-1:1)*o*Math.pow(2,a-r)},T0.write=function(e,t,n,r,i,a){var o,s,u,l=a*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:a-1,p=r?1:-1,m=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=f):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+c>=1?t+=h/u:t+=h*Math.pow(2,1-c),t*u>=2&&(o++,u/=2),o+c>=f?(s=0,o=f):o+c>=1?(s=(t*u-1)*Math.pow(2,i),o=o+c):(s=t*Math.pow(2,c-1)*Math.pow(2,i),o=0));i>=8;e[n+d]=s&255,d+=p,s/=256,i-=8);for(o=o<<i|s,l+=i;l>0;e[n+d]=o&255,d+=p,o/=256,l-=8);e[n+d-p]|=m*128};/*!
329
+ </div>`)}}n()?this.loadingIndicatorsElement.style.display="block":setTimeout(()=>{n()||(this.loadingIndicatorsElement.style.display="none")},3e3),kh(t,this.loadingIndicatorsElement)}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new _B(this.container,()=>this.viewRoot?uF(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 a=()=>{i!=null&&(i(),t());const o=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);o.addEventListener("change",a),i=()=>{o.removeEventListener("change",a)}};a(),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 vC(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 mF(this.spec.baseUrl),await this.genomeStore.initialize(this.spec.genome));const t=this,n={dataFlow:new dw,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new wF(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,Bw),oF(this.viewRoot),sF(this.viewRoot);const i=this.viewRoot.getDescendants();i.forEach(u=>u.configureViewOpacity()),this._glHelper.invalidateSize();const a=i.filter(u=>u instanceof Yt),o=eF(this.viewRoot,n.dataFlow);aF(o),this.broadcast("dataFlowBuilt",o),a.forEach(u=>u.mark.initializeEncoders());const s=Promise.all(a.map(u=>u.mark.initializeGraphics()));for(const u of a)o.addObserver(l=>{u.mark.initializeData(),u.mark.updateGraphicsData()},u);await n.fontManager.waitUntilReady(),o.initialize(),await Promise.all(o.dataSources.map(u=>u.load())),d0(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 a)u.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(u=>If(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),iR(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 a=t.getBoundingClientRect(),o=new hF(r.clientX-a.left-t.clientLeft,r.clientY-a.top-t.clientTop),s=u=>{this.viewRoot.propagateInteractionEvent(new cF(o,u)),this._tooltipUpdateRequested||this.tooltip.clear()};if(r.type!="wheel"&&this._wheelInertia.cancel(),r.type=="mousemove")this._handlePicking(o.x,o.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=_F(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 a;const r=this._glHelper.readPickingPixel(t,n),i=r[0]|r[1]<<8|r[2]<<16;if(i==0){this._currentHover=null;return}if(i!==((a=this._currentHover)==null?void 0:a.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(o=>{if(o instanceof Yt){if(o.mark.isPickingParticipant()){const s=o.mark.encoders.uniqueId.accessor;o.getCollector().visitData(u=>{s(u)==i&&(this._currentHover={mark:o.mark,datum:u,uniqueId:i})})}if(this._currentHover)return qs}}),this._currentHover){const o=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{if(!o.isPickingParticipant())return;const u=o.properties.tooltip;if(u!==null){const l=(u==null?void 0:u.handler)??"default",f=this.tooltipHandlers[l];if(!f)throw new Error("No such tooltip handler: "+l);return f(s,o,u==null?void 0:u.params)}})}}updateTooltip(t,n){if(!this._tooltipUpdateRequested||!t)this.tooltip.updateWithDatum(t,n),this._tooltipUpdateRequested=!0;else throw new Error("Tooltip has already been updated! Duplicate event handler?")}computeLayout(){const t=this.viewRoot;if(!t)return;this.broadcast("layout");const n=this._glHelper.getLogicalCanvasSize();if(isNaN(n.width)||isNaN(n.height)){console.log(`NaN in canvas size: ${n.width}x${n.height}. Skipping computeLayout().`);return}this._renderingContext=new bw({picking:!1},this._glHelper),this._pickingContext=new bw({picking:!0},this._glHelper),t.render(new fF(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 iR(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 aR="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 sR(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 a=Rt(t)?t:await Rw(t);if(a.baseUrl??(a.baseUrl=""),a.width??(a.width="container"),a.padding??(a.padding=10),r==document.body){const o=document.createElement("div");o.style.position="fixed",o.style.inset="0",o.style.overflow="hidden",r.appendChild(o),r=o}i=new Fw(r,a,n),lR(i,n),await i.launch()}catch(a){r.innerText=a.toString(),console.error(a)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(a,o){const s=i._eventListeners;let u=s.get(a);u||(u=new Set,s.set(a,u)),u.add(o)},removeEventListener(a,o){var u;(u=i._eventListeners.get(a))==null||u.delete(o)},getScaleResolutionByName(a){return i.getNamedScaleResolutions().get(a)},updateNamedData:i.updateNamedData.bind(i)}}function lR(e,t){t.namedDataProvider&&e.registerNamedDataProvider(t.namedDataProvider)}async function Rw(e){let t;try{t=JSON.parse(await Tu().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 Nf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function Xs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function uR(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={},Of={};Of.byteLength=hR,Of.toByteArray=pR,Of.fromByteArray=bR;for(var Gn=[],tn=[],fR=typeof Uint8Array<"u"?Uint8Array:Array,C0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Wa=0,cR=C0.length;Wa<cR;++Wa)Gn[Wa]=C0[Wa],tn[C0.charCodeAt(Wa)]=Wa;tn["-".charCodeAt(0)]=62,tn["_".charCodeAt(0)]=63;function Mw(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 hR(e){var t=Mw(e),n=t[0],r=t[1];return(n+r)*3/4-r}function dR(e,t,n){return(t+n)*3/4-n}function pR(e){var t,n=Mw(e),r=n[0],i=n[1],a=new fR(dR(e,r,i)),o=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)],a[o++]=t>>16&255,a[o++]=t>>8&255,a[o++]=t&255;return i===2&&(t=tn[e.charCodeAt(u)]<<2|tn[e.charCodeAt(u+1)]>>4,a[o++]=t&255),i===1&&(t=tn[e.charCodeAt(u)]<<10|tn[e.charCodeAt(u+1)]<<4|tn[e.charCodeAt(u+2)]>>2,a[o++]=t>>8&255,a[o++]=t&255),a}function gR(e){return Gn[e>>18&63]+Gn[e>>12&63]+Gn[e>>6&63]+Gn[e&63]}function mR(e,t,n){for(var r,i=[],a=t;a<n;a+=3)r=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(e[a+2]&255),i.push(gR(r));return i.join("")}function bR(e){for(var t,n=e.length,r=n%3,i=[],a=16383,o=0,s=n-r;o<s;o+=a)i.push(mR(e,o,o+a>s?s:o+a));return r===1?(t=e[n-1],i.push(Gn[t>>2]+Gn[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(Gn[t>>10]+Gn[t>>4&63]+Gn[t<<2&63]+"=")),i.join("")}var T0={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */T0.read=function(e,t,n,r,i){var a,o,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,a=d&(1<<-f)-1,d>>=-f,f+=s;f>0;a=a*256+e[t+c],c+=h,f-=8);for(o=a&(1<<-f)-1,a>>=-f,f+=r;f>0;o=o*256+e[t+c],c+=h,f-=8);if(a===0)a=1-l;else{if(a===u)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,r),a=a-l}return(d?-1:1)*o*Math.pow(2,a-r)},T0.write=function(e,t,n,r,i,a){var o,s,u,l=a*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:a-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,o=f):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+c>=1?t+=h/u:t+=h*Math.pow(2,1-c),t*u>=2&&(o++,u/=2),o+c>=f?(s=0,o=f):o+c>=1?(s=(t*u-1)*Math.pow(2,i),o=o+c):(s=t*Math.pow(2,c-1)*Math.pow(2,i),o=0));i>=8;e[n+d]=s&255,d+=p,s/=256,i-=8);for(o=o<<i|s,l+=i;l>0;e[n+d]=o&255,d+=p,o/=256,l-=8);e[n+d-p]|=b*128};/*!
320
330
  * The buffer module from node.js, for the browser.
321
331
  *
322
332
  * @author Feross Aboukhadijeh <https://feross.org>
323
333
  * @license MIT
324
- */(function(e){const t=Of,n=T0,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=a(),!s.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function a(){try{const v=new Uint8Array(1),g={foo:function(){return 42}};return Object.setPrototypeOf(g,Uint8Array.prototype),Object.setPrototypeOf(v,g),v.foo()===42}catch{return!1}}Object.defineProperty(s.prototype,"parent",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,"offset",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}});function o(v){if(v>i)throw new RangeError('The value "'+v+'" is invalid for option "size"');const g=new Uint8Array(v);return Object.setPrototypeOf(g,s.prototype),g}function s(v,g,b){if(typeof v=="number"){if(typeof g=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return c(v)}return u(v,g,b)}s.poolSize=8192;function u(v,g,b){if(typeof v=="string")return h(v,g);if(ArrayBuffer.isView(v))return p(v);if(v==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof v);if(St(v,ArrayBuffer)||v&&St(v.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(St(v,SharedArrayBuffer)||v&&St(v.buffer,SharedArrayBuffer)))return m(v,g,b);if(typeof v=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const T=v.valueOf&&v.valueOf();if(T!=null&&T!==v)return s.from(T,g,b);const F=y(v);if(F)return F;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof v[Symbol.toPrimitive]=="function")return s.from(v[Symbol.toPrimitive]("string"),g,b);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof v)}s.from=function(v,g,b){return u(v,g,b)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array);function l(v){if(typeof v!="number")throw new TypeError('"size" argument must be of type number');if(v<0)throw new RangeError('The value "'+v+'" is invalid for option "size"')}function f(v,g,b){return l(v),v<=0?o(v):g!==void 0?typeof b=="string"?o(v).fill(g,b):o(v).fill(g):o(v)}s.alloc=function(v,g,b){return f(v,g,b)};function c(v){return l(v),o(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 b=C(v,g)|0;let T=o(b);const F=T.write(v,g);return F!==b&&(T=T.slice(0,F)),T}function d(v){const g=v.length<0?0:w(v.length)|0,b=o(g);for(let T=0;T<g;T+=1)b[T]=v[T]&255;return b}function p(v){if(St(v,Uint8Array)){const g=new Uint8Array(v);return m(g.buffer,g.byteOffset,g.byteLength)}return d(v)}function m(v,g,b){if(g<0||v.byteLength<g)throw new RangeError('"offset" is outside of buffer bounds');if(v.byteLength<g+(b||0))throw new RangeError('"length" is outside of buffer bounds');let T;return g===void 0&&b===void 0?T=new Uint8Array(v):b===void 0?T=new Uint8Array(v,g):T=new Uint8Array(v,g,b),Object.setPrototypeOf(T,s.prototype),T}function y(v){if(s.isBuffer(v)){const g=w(v.length)|0,b=o(g);return b.length===0||v.copy(b,0,0,g),b}if(v.length!==void 0)return typeof v.length!="number"||wr(v.length)?o(0):d(v);if(v.type==="Buffer"&&Array.isArray(v.data))return d(v.data)}function w(v){if(v>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return v|0}function _(v){return+v!=v&&(v=0),s.alloc(+v)}s.isBuffer=function(g){return g!=null&&g._isBuffer===!0&&g!==s.prototype},s.compare=function(g,b){if(St(g,Uint8Array)&&(g=s.from(g,g.offset,g.byteLength)),St(b,Uint8Array)&&(b=s.from(b,b.offset,b.byteLength)),!s.isBuffer(g)||!s.isBuffer(b))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(g===b)return 0;let T=g.length,F=b.length;for(let O=0,V=Math.min(T,F);O<V;++O)if(g[O]!==b[O]){T=g[O],F=b[O];break}return T<F?-1:F<T?1:0},s.isEncoding=function(g){switch(String(g).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(g,b){if(!Array.isArray(g))throw new TypeError('"list" argument must be an Array of Buffers');if(g.length===0)return s.alloc(0);let T;if(b===void 0)for(b=0,T=0;T<g.length;++T)b+=g[T].length;const F=s.allocUnsafe(b);let O=0;for(T=0;T<g.length;++T){let V=g[T];if(St(V,Uint8Array))O+V.length>F.length?(s.isBuffer(V)||(V=s.from(V)),V.copy(F,O)):Uint8Array.prototype.set.call(F,V,O);else if(s.isBuffer(V))V.copy(F,O);else throw new TypeError('"list" argument must be an Array of Buffers');O+=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 b=v.length,T=arguments.length>2&&arguments[2]===!0;if(!T&&b===0)return 0;let F=!1;for(;;)switch(g){case"ascii":case"latin1":case"binary":return b;case"utf8":case"utf-8":return ue(v).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return b*2;case"hex":return b>>>1;case"base64":return ui(v).length;default:if(F)return T?-1:ue(v).length;g=(""+g).toLowerCase(),F=!0}}s.byteLength=C;function E(v,g,b){let T=!1;if((g===void 0||g<0)&&(g=0),g>this.length||((b===void 0||b>this.length)&&(b=this.length),b<=0)||(b>>>=0,g>>>=0,b<=g))return"";for(v||(v="utf8");;)switch(v){case"hex":return Ze(this,g,b);case"utf8":case"utf-8":return ge(this,g,b);case"ascii":return De(this,g,b);case"latin1":case"binary":return Ke(this,g,b);case"base64":return se(this,g,b);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Je(this,g,b);default:if(T)throw new TypeError("Unknown encoding: "+v);v=(v+"").toLowerCase(),T=!0}}s.prototype._isBuffer=!0;function k(v,g,b){const T=v[g];v[g]=v[b],v[b]=T}s.prototype.swap16=function(){const g=this.length;if(g%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let b=0;b<g;b+=2)k(this,b,b+1);return this},s.prototype.swap32=function(){const g=this.length;if(g%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let b=0;b<g;b+=4)k(this,b,b+3),k(this,b+1,b+2);return this},s.prototype.swap64=function(){const g=this.length;if(g%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let b=0;b<g;b+=8)k(this,b,b+7),k(this,b+1,b+6),k(this,b+2,b+5),k(this,b+3,b+4);return this},s.prototype.toString=function(){const g=this.length;return g===0?"":arguments.length===0?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 b=e.INSPECT_MAX_BYTES;return g=this.toString("hex",0,b).replace(/(.{2})/g,"$1 ").trim(),this.length>b&&(g+=" ... "),"<Buffer "+g+">"},r&&(s.prototype[r]=s.prototype.inspect),s.prototype.compare=function(g,b,T,F,O){if(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(b===void 0&&(b=0),T===void 0&&(T=g?g.length:0),F===void 0&&(F=0),O===void 0&&(O=this.length),b<0||T>g.length||F<0||O>this.length)throw new RangeError("out of range index");if(F>=O&&b>=T)return 0;if(F>=O)return-1;if(b>=T)return 1;if(b>>>=0,T>>>=0,F>>>=0,O>>>=0,this===g)return 0;let V=O-F,fe=T-b;const Ge=Math.min(V,fe),Me=this.slice(F,O),We=g.slice(b,T);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,b,T,F){if(v.length===0)return-1;if(typeof b=="string"?(T=b,b=0):b>2147483647?b=2147483647:b<-2147483648&&(b=-2147483648),b=+b,wr(b)&&(b=F?0:v.length-1),b<0&&(b=v.length+b),b>=v.length){if(F)return-1;b=v.length-1}else if(b<0)if(F)b=0;else return-1;if(typeof g=="string"&&(g=s.from(g,T)),s.isBuffer(g))return g.length===0?-1:I(v,g,b,T,F);if(typeof g=="number")return g=g&255,typeof Uint8Array.prototype.indexOf=="function"?F?Uint8Array.prototype.indexOf.call(v,g,b):Uint8Array.prototype.lastIndexOf.call(v,g,b):I(v,[g],b,T,F);throw new TypeError("val must be string, number or Buffer")}function I(v,g,b,T,F){let O=1,V=v.length,fe=g.length;if(T!==void 0&&(T=String(T).toLowerCase(),T==="ucs2"||T==="ucs-2"||T==="utf16le"||T==="utf-16le")){if(v.length<2||g.length<2)return-1;O=2,V/=2,fe/=2,b/=2}function Ge(We,Se){return O===1?We[Se]:We.readUInt16BE(Se*O)}let Me;if(F){let We=-1;for(Me=b;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*O}else We!==-1&&(Me-=Me-We),We=-1}else for(b+fe>V&&(b=V-fe),Me=b;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,b,T){return this.indexOf(g,b,T)!==-1},s.prototype.indexOf=function(g,b,T){return B(this,g,b,T,!0)},s.prototype.lastIndexOf=function(g,b,T){return B(this,g,b,T,!1)};function R(v,g,b,T){b=Number(b)||0;const F=v.length-b;T?(T=Number(T),T>F&&(T=F)):T=F;const O=g.length;T>O/2&&(T=O/2);let V;for(V=0;V<T;++V){const fe=parseInt(g.substr(V*2,2),16);if(wr(fe))return V;v[b+V]=fe}return V}function L(v,g,b,T){return fi(ue(g,v.length-b),v,b,T)}function j(v,g,b,T){return fi(Zt(g),v,b,T)}function M(v,g,b,T){return fi(ui(g),v,b,T)}function ie(v,g,b,T){return fi(li(g,v.length-b),v,b,T)}s.prototype.write=function(g,b,T,F){if(b===void 0)F="utf8",T=this.length,b=0;else if(T===void 0&&typeof b=="string")F=b,T=this.length,b=0;else if(isFinite(b))b=b>>>0,isFinite(T)?(T=T>>>0,F===void 0&&(F="utf8")):(F=T,T=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const O=this.length-b;if((T===void 0||T>O)&&(T=O),g.length>0&&(T<0||b<0)||b>this.length)throw new RangeError("Attempt to write outside buffer bounds");F||(F="utf8");let V=!1;for(;;)switch(F){case"hex":return R(this,g,b,T);case"utf8":case"utf-8":return L(this,g,b,T);case"ascii":case"latin1":case"binary":return j(this,g,b,T);case"base64":return M(this,g,b,T);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ie(this,g,b,T);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,b){return g===0&&b===v.length?t.fromByteArray(v):t.fromByteArray(v.slice(g,b))}function ge(v,g,b){b=Math.min(v.length,b);const T=[];let F=g;for(;F<b;){const O=v[F];let V=null,fe=O>239?4:O>223?3:O>191?2:1;if(F+fe<=b){let Ge,Me,We,Se;switch(fe){case 1:O<128&&(V=O);break;case 2:Ge=v[F+1],(Ge&192)===128&&(Se=(O&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=(O&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=(O&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,T.push(V>>>10&1023|55296),V=56320|V&1023),T.push(V),F+=fe}return $e(T)}const Ie=4096;function $e(v){const g=v.length;if(g<=Ie)return String.fromCharCode.apply(String,v);let b="",T=0;for(;T<g;)b+=String.fromCharCode.apply(String,v.slice(T,T+=Ie));return b}function De(v,g,b){let T="";b=Math.min(v.length,b);for(let F=g;F<b;++F)T+=String.fromCharCode(v[F]&127);return T}function Ke(v,g,b){let T="";b=Math.min(v.length,b);for(let F=g;F<b;++F)T+=String.fromCharCode(v[F]);return T}function Ze(v,g,b){const T=v.length;(!g||g<0)&&(g=0),(!b||b<0||b>T)&&(b=T);let F="";for(let O=g;O<b;++O)F+=ci[v[O]];return F}function Je(v,g,b){const T=v.slice(g,b);let F="";for(let O=0;O<T.length-1;O+=2)F+=String.fromCharCode(T[O]+T[O+1]*256);return F}s.prototype.slice=function(g,b){const T=this.length;g=~~g,b=b===void 0?T:~~b,g<0?(g+=T,g<0&&(g=0)):g>T&&(g=T),b<0?(b+=T,b<0&&(b=0)):b>T&&(b=T),b<g&&(b=g);const F=this.subarray(g,b);return Object.setPrototypeOf(F,s.prototype),F};function Ee(v,g,b){if(v%1!==0||v<0)throw new RangeError("offset is not uint");if(v+g>b)throw new RangeError("Trying to access beyond buffer length")}s.prototype.readUintLE=s.prototype.readUIntLE=function(g,b,T){g=g>>>0,b=b>>>0,T||Ee(g,b,this.length);let F=this[g],O=1,V=0;for(;++V<b&&(O*=256);)F+=this[g+V]*O;return F},s.prototype.readUintBE=s.prototype.readUIntBE=function(g,b,T){g=g>>>0,b=b>>>0,T||Ee(g,b,this.length);let F=this[g+--b],O=1;for(;b>0&&(O*=256);)F+=this[g+--b]*O;return F},s.prototype.readUint8=s.prototype.readUInt8=function(g,b){return g=g>>>0,b||Ee(g,1,this.length),this[g]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(g,b){return g=g>>>0,b||Ee(g,2,this.length),this[g]|this[g+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(g,b){return g=g>>>0,b||Ee(g,2,this.length),this[g]<<8|this[g+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(g,b){return g=g>>>0,b||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,b){return g=g>>>0,b||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 b=this[g],T=this[g+7];(b===void 0||T===void 0)&&Z(g,this.length-8);const F=b+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24,O=this[++g]+this[++g]*2**8+this[++g]*2**16+T*2**24;return BigInt(F)+(BigInt(O)<<BigInt(32))}),s.prototype.readBigUInt64BE=Wt(function(g){g=g>>>0,G(g,"offset");const b=this[g],T=this[g+7];(b===void 0||T===void 0)&&Z(g,this.length-8);const F=b*2**24+this[++g]*2**16+this[++g]*2**8+this[++g],O=this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+T;return(BigInt(F)<<BigInt(32))+BigInt(O)}),s.prototype.readIntLE=function(g,b,T){g=g>>>0,b=b>>>0,T||Ee(g,b,this.length);let F=this[g],O=1,V=0;for(;++V<b&&(O*=256);)F+=this[g+V]*O;return O*=128,F>=O&&(F-=Math.pow(2,8*b)),F},s.prototype.readIntBE=function(g,b,T){g=g>>>0,b=b>>>0,T||Ee(g,b,this.length);let F=b,O=1,V=this[g+--F];for(;F>0&&(O*=256);)V+=this[g+--F]*O;return O*=128,V>=O&&(V-=Math.pow(2,8*b)),V},s.prototype.readInt8=function(g,b){return g=g>>>0,b||Ee(g,1,this.length),this[g]&128?(255-this[g]+1)*-1:this[g]},s.prototype.readInt16LE=function(g,b){g=g>>>0,b||Ee(g,2,this.length);const T=this[g]|this[g+1]<<8;return T&32768?T|4294901760:T},s.prototype.readInt16BE=function(g,b){g=g>>>0,b||Ee(g,2,this.length);const T=this[g+1]|this[g]<<8;return T&32768?T|4294901760:T},s.prototype.readInt32LE=function(g,b){return g=g>>>0,b||Ee(g,4,this.length),this[g]|this[g+1]<<8|this[g+2]<<16|this[g+3]<<24},s.prototype.readInt32BE=function(g,b){return g=g>>>0,b||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 b=this[g],T=this[g+7];(b===void 0||T===void 0)&&Z(g,this.length-8);const F=this[g+4]+this[g+5]*2**8+this[g+6]*2**16+(T<<24);return(BigInt(F)<<BigInt(32))+BigInt(b+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24)}),s.prototype.readBigInt64BE=Wt(function(g){g=g>>>0,G(g,"offset");const b=this[g],T=this[g+7];(b===void 0||T===void 0)&&Z(g,this.length-8);const F=(b<<24)+this[++g]*2**16+this[++g]*2**8+this[++g];return(BigInt(F)<<BigInt(32))+BigInt(this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+T)}),s.prototype.readFloatLE=function(g,b){return g=g>>>0,b||Ee(g,4,this.length),n.read(this,g,!0,23,4)},s.prototype.readFloatBE=function(g,b){return g=g>>>0,b||Ee(g,4,this.length),n.read(this,g,!1,23,4)},s.prototype.readDoubleLE=function(g,b){return g=g>>>0,b||Ee(g,8,this.length),n.read(this,g,!0,52,8)},s.prototype.readDoubleBE=function(g,b){return g=g>>>0,b||Ee(g,8,this.length),n.read(this,g,!1,52,8)};function _e(v,g,b,T,F,O){if(!s.isBuffer(v))throw new TypeError('"buffer" argument must be a Buffer instance');if(g>F||g<O)throw new RangeError('"value" argument is out of bounds');if(b+T>v.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(g,b,T,F){if(g=+g,b=b>>>0,T=T>>>0,!F){const fe=Math.pow(2,8*T)-1;_e(this,g,b,T,fe,0)}let O=1,V=0;for(this[b]=g&255;++V<T&&(O*=256);)this[b+V]=g/O&255;return b+T},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(g,b,T,F){if(g=+g,b=b>>>0,T=T>>>0,!F){const fe=Math.pow(2,8*T)-1;_e(this,g,b,T,fe,0)}let O=T-1,V=1;for(this[b+O]=g&255;--O>=0&&(V*=256);)this[b+O]=g/V&255;return b+T},s.prototype.writeUint8=s.prototype.writeUInt8=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,1,255,0),this[b]=g&255,b+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,2,65535,0),this[b]=g&255,this[b+1]=g>>>8,b+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,2,65535,0),this[b]=g>>>8,this[b+1]=g&255,b+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,4,4294967295,0),this[b+3]=g>>>24,this[b+2]=g>>>16,this[b+1]=g>>>8,this[b]=g&255,b+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,4,4294967295,0),this[b]=g>>>24,this[b+1]=g>>>16,this[b+2]=g>>>8,this[b+3]=g&255,b+4};function pt(v,g,b,T,F){x(g,T,F,v,b,7);let O=Number(g&BigInt(4294967295));v[b++]=O,O=O>>8,v[b++]=O,O=O>>8,v[b++]=O,O=O>>8,v[b++]=O;let V=Number(g>>BigInt(32)&BigInt(4294967295));return v[b++]=V,V=V>>8,v[b++]=V,V=V>>8,v[b++]=V,V=V>>8,v[b++]=V,b}function qt(v,g,b,T,F){x(g,T,F,v,b,7);let O=Number(g&BigInt(4294967295));v[b+7]=O,O=O>>8,v[b+6]=O,O=O>>8,v[b+5]=O,O=O>>8,v[b+4]=O;let V=Number(g>>BigInt(32)&BigInt(4294967295));return v[b+3]=V,V=V>>8,v[b+2]=V,V=V>>8,v[b+1]=V,V=V>>8,v[b]=V,b+8}s.prototype.writeBigUInt64LE=Wt(function(g,b=0){return pt(this,g,b,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeBigUInt64BE=Wt(function(g,b=0){return qt(this,g,b,BigInt(0),BigInt("0xffffffffffffffff"))}),s.prototype.writeIntLE=function(g,b,T,F){if(g=+g,b=b>>>0,!F){const Ge=Math.pow(2,8*T-1);_e(this,g,b,T,Ge-1,-Ge)}let O=0,V=1,fe=0;for(this[b]=g&255;++O<T&&(V*=256);)g<0&&fe===0&&this[b+O-1]!==0&&(fe=1),this[b+O]=(g/V>>0)-fe&255;return b+T},s.prototype.writeIntBE=function(g,b,T,F){if(g=+g,b=b>>>0,!F){const Ge=Math.pow(2,8*T-1);_e(this,g,b,T,Ge-1,-Ge)}let O=T-1,V=1,fe=0;for(this[b+O]=g&255;--O>=0&&(V*=256);)g<0&&fe===0&&this[b+O+1]!==0&&(fe=1),this[b+O]=(g/V>>0)-fe&255;return b+T},s.prototype.writeInt8=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,1,127,-128),g<0&&(g=255+g+1),this[b]=g&255,b+1},s.prototype.writeInt16LE=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,2,32767,-32768),this[b]=g&255,this[b+1]=g>>>8,b+2},s.prototype.writeInt16BE=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,2,32767,-32768),this[b]=g>>>8,this[b+1]=g&255,b+2},s.prototype.writeInt32LE=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,4,2147483647,-2147483648),this[b]=g&255,this[b+1]=g>>>8,this[b+2]=g>>>16,this[b+3]=g>>>24,b+4},s.prototype.writeInt32BE=function(g,b,T){return g=+g,b=b>>>0,T||_e(this,g,b,4,2147483647,-2147483648),g<0&&(g=4294967295+g+1),this[b]=g>>>24,this[b+1]=g>>>16,this[b+2]=g>>>8,this[b+3]=g&255,b+4},s.prototype.writeBigInt64LE=Wt(function(g,b=0){return pt(this,g,b,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),s.prototype.writeBigInt64BE=Wt(function(g,b=0){return qt(this,g,b,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Oe(v,g,b,T,F,O){if(b+T>v.length)throw new RangeError("Index out of range");if(b<0)throw new RangeError("Index out of range")}function N(v,g,b,T,F){return g=+g,b=b>>>0,F||Oe(v,g,b,4),n.write(v,g,b,T,23,4),b+4}s.prototype.writeFloatLE=function(g,b,T){return N(this,g,b,!0,T)},s.prototype.writeFloatBE=function(g,b,T){return N(this,g,b,!1,T)};function P(v,g,b,T,F){return g=+g,b=b>>>0,F||Oe(v,g,b,8),n.write(v,g,b,T,52,8),b+8}s.prototype.writeDoubleLE=function(g,b,T){return P(this,g,b,!0,T)},s.prototype.writeDoubleBE=function(g,b,T){return P(this,g,b,!1,T)},s.prototype.copy=function(g,b,T,F){if(!s.isBuffer(g))throw new TypeError("argument should be a Buffer");if(T||(T=0),!F&&F!==0&&(F=this.length),b>=g.length&&(b=g.length),b||(b=0),F>0&&F<T&&(F=T),F===T||g.length===0||this.length===0)return 0;if(b<0)throw new RangeError("targetStart out of bounds");if(T<0||T>=this.length)throw new RangeError("Index out of range");if(F<0)throw new RangeError("sourceEnd out of bounds");F>this.length&&(F=this.length),g.length-b<F-T&&(F=g.length-b+T);const O=F-T;return this===g&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(b,T,F):Uint8Array.prototype.set.call(g,this.subarray(T,F),b),O},s.prototype.fill=function(g,b,T,F){if(typeof g=="string"){if(typeof b=="string"?(F=b,b=0,T=this.length):typeof T=="string"&&(F=T,T=this.length),F!==void 0&&typeof F!="string")throw new TypeError("encoding must be a string");if(typeof F=="string"&&!s.isEncoding(F))throw new TypeError("Unknown encoding: "+F);if(g.length===1){const 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(b<0||this.length<b||this.length<T)throw new RangeError("Out of range index");if(T<=b)return this;b=b>>>0,T=T===void 0?this.length:T>>>0,g||(g=0);let O;if(typeof g=="number")for(O=b;O<T;++O)this[O]=g;else{const 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(O=0;O<T-b;++O)this[O+b]=V[O%fe]}return this};const q={};function H(v,g,b){q[v]=class extends b{constructor(){super(),Object.defineProperty(this,"message",{value:g.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${v}]`,this.stack,delete this.name}get code(){return v}set code(F){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:F,writable:!0})}toString(){return`${this.name} [${v}]: ${this.message}`}}}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,b){let T=`The value of "${v}" is out of range.`,F=b;return Number.isInteger(b)&&Math.abs(b)>2**32?F=Y(String(b)):typeof b=="bigint"&&(F=String(b),(b>BigInt(2)**BigInt(32)||b<-(BigInt(2)**BigInt(32)))&&(F=Y(F)),F+="n"),T+=` It must be ${g}. Received ${F}`,T},RangeError);function Y(v){let g="",b=v.length;const T=v[0]==="-"?1:0;for(;b>=T+4;b-=3)g=`_${v.slice(b-3,b)}${g}`;return`${v.slice(0,b)}${g}`}function S(v,g,b){G(g,"offset"),(v[g]===void 0||v[g+b]===void 0)&&Z(g,v.length-(b+1))}function x(v,g,b,T,F,O){if(v>b||v<g){const V=typeof g=="bigint"?"n":"";let fe;throw O>3?g===0||g===BigInt(0)?fe=`>= 0${V} and < 2${V} ** ${(O+1)*8}${V}`:fe=`>= -(2${V} ** ${(O+1)*8-1}${V}) and < 2 ** ${(O+1)*8-1}${V}`:fe=`>= ${g}${V} and <= ${b}${V}`,new q.ERR_OUT_OF_RANGE("value",fe,v)}S(T,F,O)}function G(v,g){if(typeof v!="number")throw new q.ERR_INVALID_ARG_TYPE(g,"number",v)}function Z(v,g,b){throw Math.floor(v)!==v?(G(v,b),new q.ERR_OUT_OF_RANGE(b||"offset","an integer",v)):g<0?new q.ERR_BUFFER_OUT_OF_BOUNDS:new q.ERR_OUT_OF_RANGE(b||"offset",`>= ${b?1:0} and <= ${g}`,v)}const 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 b;const T=v.length;let F=null;const O=[];for(let V=0;V<T;++V){if(b=v.charCodeAt(V),b>55295&&b<57344){if(!F){if(b>56319){(g-=3)>-1&&O.push(239,191,189);continue}else if(V+1===T){(g-=3)>-1&&O.push(239,191,189);continue}F=b;continue}if(b<56320){(g-=3)>-1&&O.push(239,191,189),F=b;continue}b=(F-55296<<10|b-56320)+65536}else F&&(g-=3)>-1&&O.push(239,191,189);if(F=null,b<128){if((g-=1)<0)break;O.push(b)}else if(b<2048){if((g-=2)<0)break;O.push(b>>6|192,b&63|128)}else if(b<65536){if((g-=3)<0)break;O.push(b>>12|224,b>>6&63|128,b&63|128)}else if(b<1114112){if((g-=4)<0)break;O.push(b>>18|240,b>>12&63|128,b>>6&63|128,b&63|128)}else throw new Error("Invalid code point")}return O}function Zt(v){const g=[];for(let b=0;b<v.length;++b)g.push(v.charCodeAt(b)&255);return g}function li(v,g){let b,T,F;const O=[];for(let V=0;V<v.length&&!((g-=2)<0);++V)b=v.charCodeAt(V),T=b>>8,F=b%256,O.push(F),O.push(T);return O}function ui(v){return t.toByteArray(J(v))}function fi(v,g,b,T){let F;for(F=0;F<T&&!(F+b>=g.length||F>=v.length);++F)g[F+b]=v[F];return F}function 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 b=0;b<16;++b){const T=b*16;for(let F=0;F<16;++F)g[T+F]=v[b]+v[F]}return g}();function Wt(v){return typeof BigInt>"u"?Kn:v}function Kn(){throw new Error("BigInt not supported")}})(pe);const Pw=ve({__proto__:null,default:Xs(pe)},[pe]),ht={},yR=Object.freeze(Object.defineProperty({__proto__:null,default:ht},Symbol.toStringTag,{value:"Module"})),k0=typeof window<"u"?window:typeof self<"u"?self:{fetch:void 0};class Wi{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||k0.fetch&&k0.fetch.bind(k0);if(!r)throw new TypeError("no fetch function supplied, and none found in global environment");n.overrides&&(this.baseOverrides=n.overrides),this.fetchImplementation=r}async fetch(t,n){let r;try{r=await this.fetchImplementation(t,n)}catch(i){if(`${i}`.includes("Failed to fetch"))console.warn(`generic-filehandle: refetching ${t} to attempt to work around chrome CORS header caching bug`),r=await this.fetchImplementation(t,{...n,cache:"reload"});else throw i}return r}async read(t,n=0,r,i=0,a={}){const{headers:o={},signal:s,overrides:u={}}=a;r<1/0?o.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(o.range=`bytes=${i}-`);const l={...this.baseOverrides,...u,headers:{...o,...u.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:s},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:a,overrides:o={}}=r,s={headers:i,method:"GET",redirect:"follow",mode:"cors",signal:a,...this.baseOverrides,...o},u=await this.fetch(this.url,s);if(!u)throw new Error("generic-filehandle failed to fetch");if(u.status!==200)throw Object.assign(new Error(`HTTP ${u.status} fetching ${this.url}`),{status:u.status});if(n==="utf8")return u.text();if(n)throw new Error(`unsupported encoding: ${n}`);return this.getBufferFromResponse(u)}async stat(){if(!this._stat){const t=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 Lw(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 wR(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 vR{constructor(t){this.blob=t,this.size=t.size}async read(t,n=0,r,i=0){if(!r)return{bytesRead:0,buffer:t};const a=i,o=a+r,s=await Lw(this.blob.slice(a,o)),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 wR(this.blob);if(n)throw new Error(`unsupported encoding: ${n}`);const r=await Lw(this.blob);return pe.Buffer.from(r)}async stat(){return{size:this.size}}async close(){}}function Nw(e,t={}){return new Wi(e,t)}function xR(e,t,n,r={}){if(n!==void 0)return n;if(e!==void 0)return Nw(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:vR,LocalFile:ht,RemoteFile:Wi,fromUrl:Nw,open:xR},Symbol.toStringTag,{value:"Module"}));var lr={};(function(e){var t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function n(a,o){return Object.prototype.hasOwnProperty.call(a,o)}e.assign=function(a){for(var o=Array.prototype.slice.call(arguments,1);o.length;){var s=o.shift();if(s){if(typeof s!="object")throw new TypeError(s+"must be non-object");for(var u in s)n(s,u)&&(a[u]=s[u])}}return a},e.shrinkBuf=function(a,o){return a.length===o?a:a.subarray?a.subarray(0,o):(a.length=o,a)};var r={arraySet:function(a,o,s,u,l){if(o.subarray&&a.subarray){a.set(o.subarray(s,s+u),l);return}for(var f=0;f<u;f++)a[l+f]=o[s+f]},flattenChunks:function(a){var o,s,u,l,f,c;for(u=0,o=0,s=a.length;o<s;o++)u+=a[o].length;for(c=new Uint8Array(u),l=0,o=0,s=a.length;o<s;o++)f=a[o],c.set(f,l),l+=f.length;return c}},i={arraySet:function(a,o,s,u,l){for(var f=0;f<u;f++)a[l+f]=o[s+f]},flattenChunks:function(a){return[].concat.apply([],a)}};e.setTyped=function(a){a?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,r)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,i))},e.setTyped(t)})(lr);var Js={},Hn={},Ya={},AR=lr,ER=4,Ow=0,zw=1,_R=2;function Qa(e){for(var t=e.length;--t>=0;)e[t]=0}var SR=0,Uw=1,CR=2,TR=3,kR=258,I0=29,el=256,tl=el+1+I0,$a=30,B0=19,Gw=2*tl+1,Yi=15,D0=16,IR=7,F0=256,Hw=16,Vw=17,jw=18,R0=[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],zf=[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],BR=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],qw=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],DR=512,ur=new Array((tl+2)*2);Qa(ur);var nl=new Array($a*2);Qa(nl);var rl=new Array(DR);Qa(rl);var il=new Array(kR-TR+1);Qa(il);var M0=new Array(I0);Qa(M0);var Uf=new Array($a);Qa(Uf);function P0(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 Zw,Ww,Yw;function L0(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 al(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>D0-n?(e.bi_buf|=t<<e.bi_valid&65535,al(e,e.bi_buf),e.bi_buf=t>>D0-e.bi_valid,e.bi_valid+=n-D0):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function Vn(e,t,n){Gt(e,n[t*2],n[t*2+1])}function $w(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function FR(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)}function RR(e,t){var n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,u=t.stat_desc.max_length,l,f,c,h,d,p,m=0;for(h=0;h<=Yi;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Gw;l++)f=e.heap[l],h=n[n[f*2+1]*2+1]+1,h>u&&(h=u,m++),n[f*2+1]=h,!(f>r)&&(e.bl_count[h]++,d=0,f>=s&&(d=o[f-s]),p=n[f*2],e.opt_len+=p*(h+d),a&&(e.static_len+=p*(i[f*2+1]+d)));if(m!==0){do{for(h=u-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[u]--,m-=2}while(m>0);for(h=u;h!==0;h--)for(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 Xw(e,t,n){var r=new Array(Yi+1),i=0,a,o;for(a=1;a<=Yi;a++)r[a]=i=i+n[a-1]<<1;for(o=0;o<=t;o++){var s=e[o*2+1];s!==0&&(e[o*2]=$w(r[s]++,s))}}function MR(){var e,t,n,r,i,a=new Array(Yi+1);for(n=0,r=0;r<I0-1;r++)for(M0[r]=n,e=0;e<1<<R0[r];e++)il[n++]=r;for(il[n-1]=r,i=0,r=0;r<16;r++)for(Uf[r]=i,e=0;e<1<<zf[r];e++)rl[i++]=r;for(i>>=7;r<$a;r++)for(Uf[r]=i<<7,e=0;e<1<<zf[r]-7;e++)rl[256+i++]=r;for(t=0;t<=Yi;t++)a[t]=0;for(e=0;e<=143;)ur[e*2+1]=8,e++,a[8]++;for(;e<=255;)ur[e*2+1]=9,e++,a[9]++;for(;e<=279;)ur[e*2+1]=7,e++,a[7]++;for(;e<=287;)ur[e*2+1]=8,e++,a[8]++;for(Xw(ur,tl+1,a),e=0;e<$a;e++)nl[e*2+1]=5,nl[e*2]=$w(e,5);Zw=new P0(ur,R0,el+1,tl,Yi),Ww=new P0(nl,zf,0,$a,Yi),Yw=new P0(new Array(0),BR,0,B0,IR)}function Kw(e){var t;for(t=0;t<tl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<$a;t++)e.dyn_dtree[t*2]=0;for(t=0;t<B0;t++)e.bl_tree[t*2]=0;e.dyn_ltree[F0*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function Jw(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}function PR(e,t,n,r){Jw(e),r&&(al(e,n),al(e,~n)),AR.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function ev(e,t,n,r){var i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]}function N0(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&ev(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!ev(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function tv(e,t,n){var r,i,a=0,o,s;if(e.last_lit!==0)do r=e.pending_buf[e.d_buf+a*2]<<8|e.pending_buf[e.d_buf+a*2+1],i=e.pending_buf[e.l_buf+a],a++,r===0?Vn(e,i,t):(o=il[i],Vn(e,o+el+1,t),s=R0[o],s!==0&&(i-=M0[o],Gt(e,i,s)),r--,o=Qw(r),Vn(e,o,n),s=zf[o],s!==0&&(r-=Uf[o],Gt(e,r,s)));while(a<e.last_lit);Vn(e,F0,t)}function O0(e,t){var n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems,o,s,u=-1,l;for(e.heap_len=0,e.heap_max=Gw,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=u=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=u,o=e.heap_len>>1;o>=1;o--)N0(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],N0(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,N0(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],RR(e,t),Xw(n,u,e.bl_count)}function nv(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)&&(s<l?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[Hw*2]++):s<=10?e.bl_tree[Vw*2]++:e.bl_tree[jw*2]++,s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4))}function rv(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)){if(s<l)do Vn(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(Vn(e,a,e.bl_tree),s--),Vn(e,Hw,e.bl_tree),Gt(e,s-3,2)):s<=10?(Vn(e,Vw,e.bl_tree),Gt(e,s-3,3)):(Vn(e,jw,e.bl_tree),Gt(e,s-11,7));s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4)}}function LR(e){var t;for(nv(e,e.dyn_ltree,e.l_desc.max_code),nv(e,e.dyn_dtree,e.d_desc.max_code),O0(e,e.bl_desc),t=B0-1;t>=3&&e.bl_tree[qw[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function NR(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[qw[i]*2+1],3);rv(e,e.dyn_ltree,t-1),rv(e,e.dyn_dtree,n-1)}function OR(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Ow;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return zw;for(n=32;n<el;n++)if(e.dyn_ltree[n*2]!==0)return zw;return Ow}var iv=!1;function zR(e){iv||(MR(),iv=!0),e.l_desc=new L0(e.dyn_ltree,Zw),e.d_desc=new L0(e.dyn_dtree,Ww),e.bl_desc=new L0(e.bl_tree,Yw),e.bi_buf=0,e.bi_valid=0,Kw(e)}function av(e,t,n,r){Gt(e,(SR<<1)+(r?1:0),3),PR(e,t,n,!0)}function UR(e){Gt(e,Uw<<1,3),Vn(e,F0,ur),FR(e)}function GR(e,t,n,r){var i,a,o=0;e.level>0?(e.strm.data_type===_R&&(e.strm.data_type=OR(e)),O0(e,e.l_desc),O0(e,e.d_desc),o=LR(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&t!==-1?av(e,t,n,r):e.strategy===ER||a===i?(Gt(e,(Uw<<1)+(r?1:0),3),tv(e,ur,nl)):(Gt(e,(CR<<1)+(r?1:0),3),NR(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),tv(e,e.dyn_ltree,e.dyn_dtree)),Kw(e),r&&Jw(e)}function HR(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}Ya._tr_init=zR,Ya._tr_stored_block=av,Ya._tr_flush_block=GR,Ya._tr_tally=HR,Ya._tr_align=UR;function VR(e,t,n,r){for(var i=e&65535|0,a=e>>>16&65535|0,o=0;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0}var ov=VR;function jR(){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 qR=jR();function ZR(e,t,n,r){var i=qR,a=r+n;e^=-1;for(var o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1}var sv=ZR,z0={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=Ya,lv=ov,Zr=sv,WR=z0,Qi=0,YR=1,QR=3,Wr=4,uv=5,jn=0,fv=1,rn=-2,$R=-3,U0=-5,XR=-1,KR=1,Gf=2,JR=3,e7=4,t7=0,n7=2,Hf=8,r7=9,i7=15,a7=8,o7=29,s7=256,G0=s7+1+o7,l7=30,u7=19,f7=2*G0+1,c7=15,he=3,Yr=258,En=Yr+he+1,h7=32,Vf=42,H0=69,jf=73,qf=91,Zf=103,$i=113,ol=666,at=1,sl=2,Xi=3,Xa=4,d7=3;function Qr(e,t){return e.msg=WR[t],t}function cv(e){return(e<<1)-(e>4?9:0)}function $r(e){for(var t=e.length;--t>=0;)e[t]=0}function Xr(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,Xr(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 p7(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=lv(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 hv(e,t){var n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match,u=e.strstart>e.w_size-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+o-1],p=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(l[i+o]!==p||l[i+o-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(a=Yr-(h-r),r=h-Yr,a>o){if(e.match_start=t,o=a,a>=s)break;d=l[r+o-1],p=l[r+o]}}while((t=c[t&f])>u&&--n!==0);return o<=e.lookahead?o:e.lookahead}function Ki(e){var t=e.w_size,n,r,i,a,o;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-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);a+=t}if(e.strm.avail_in===0)break;if(r=p7(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=r,e.lookahead+e.insert>=he)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+he-1])&e.hash_mask,e.prev[o&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=o,o++,e.insert--,!(e.lookahead+e.insert<he)););}while(e.lookahead<En&&e.strm.avail_in!==0)}function g7(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Ki(e),e.lookahead===0&&t===Qi)return at;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 at}return e.insert=0,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Xa):(e.strstart>e.block_start&&(yt(e,!1),e.strm.avail_out===0),at)}function V0(e,t){for(var n,r;;){if(e.lookahead<En){if(Ki(e),e.lookahead<En&&t===Qi)return at;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=hv(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 at}return e.insert=e.strstart<he-1?e.strstart:he-1,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Xa):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?at:sl}function Ka(e,t){for(var n,r,i;;){if(e.lookahead<En){if(Ki(e),e.lookahead<En&&t===Qi)return at;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=hv(e,n),e.match_length<=5&&(e.strategy===KR||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 at}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 at}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:Xa):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?at:sl}function m7(e,t){for(var n,r,i,a,o=e.window;;){if(e.lookahead<=Yr){if(Ki(e),e.lookahead<=Yr&&t===Qi)return at;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=he&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+Yr;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=Yr-(a-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 at}return e.insert=0,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Xa):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?at:sl}function b7(e,t){for(var n;;){if(e.lookahead===0&&(Ki(e),e.lookahead===0)){if(t===Qi)return at;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 at}return e.insert=0,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Xa):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?at:sl}function qn(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}var Ja;Ja=[new qn(0,0,0,0,g7),new qn(4,4,8,4,V0),new qn(4,5,16,8,V0),new qn(4,6,32,32,V0),new qn(4,4,16,16,Ka),new qn(8,16,32,32,Ka),new qn(8,16,128,128,Ka),new qn(8,32,128,256,Ka),new qn(32,128,258,1024,Ka),new qn(32,258,258,4096,Ka)];function y7(e){e.window_size=2*e.w_size,$r(e.head),e.max_lazy_match=Ja[e.level].max_lazy,e.good_match=Ja[e.level].good_length,e.nice_match=Ja[e.level].nice_length,e.max_chain_length=Ja[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 w7(){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=Hf,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(f7*2),this.dyn_dtree=new It.Buf16((2*l7+1)*2),this.bl_tree=new It.Buf16((2*u7+1)*2),$r(this.dyn_ltree),$r(this.dyn_dtree),$r(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new It.Buf16(c7+1),this.heap=new It.Buf16(2*G0+1),$r(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new It.Buf16(2*G0+1),$r(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 dv(e){var t;return!e||!e.state?Qr(e,rn):(e.total_in=e.total_out=0,e.data_type=n7,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Vf:$i,e.adler=t.wrap===2?0:1,t.last_flush=Qi,nn._tr_init(t),jn)}function pv(e){var t=dv(e);return t===jn&&y7(e.state),t}function v7(e,t){return!e||!e.state||e.state.wrap!==2?rn:(e.state.gzhead=t,jn)}function gv(e,t,n,r,i,a){if(!e)return rn;var o=1;if(t===XR&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>r7||n!==Hf||r<8||r>15||t<0||t>9||a<0||a>e7)return Qr(e,rn);r===8&&(r=9);var s=new w7;return e.state=s,s.strm=e,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+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=a,s.method=n,pv(e)}function x7(e,t){return gv(e,t,Hf,i7,a7,t7)}function A7(e,t){var n,r,i,a;if(!e||!e.state||t>uv||t<0)return e?Qr(e,rn):rn;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===ol&&t!==Wr)return Qr(e,e.avail_out===0?U0:rn);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===Vf)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>=Gf||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=H0):(we(r,0),we(r,0),we(r,0),we(r,0),we(r,0),we(r,r.level===9?2:r.strategy>=Gf||r.level<2?4:0),we(r,d7),r.status=$i);else{var o=Hf+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=Gf||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,o|=s<<6,r.strstart!==0&&(o|=h7),o+=31-o%31,r.status=$i,ll(r,o),r.strstart!==0&&(ll(r,e.adler>>>16),ll(r,e.adler&65535)),e.adler=1}if(r.status===H0)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)),Xr(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=jf)}else r.status=jf;if(r.status===jf)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)),Xr(e),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.name.length?a=r.gzhead.name.charCodeAt(r.gzindex++)&255:a=0,we(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.gzindex=0,r.status=qf)}else r.status=qf;if(r.status===qf)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)),Xr(e),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.comment.length?a=r.gzhead.comment.charCodeAt(r.gzindex++)&255:a=0,we(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.status=Zf)}else r.status=Zf;if(r.status===Zf&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&Xr(e),r.pending+2<=r.pending_buf_size&&(we(r,e.adler&255),we(r,e.adler>>8&255),e.adler=0,r.status=$i)):r.status=$i),r.pending!==0){if(Xr(e),e.avail_out===0)return r.last_flush=-1,jn}else if(e.avail_in===0&&cv(t)<=cv(n)&&t!==Wr)return Qr(e,U0);if(r.status===ol&&e.avail_in!==0)return Qr(e,U0);if(e.avail_in!==0||r.lookahead!==0||t!==Qi&&r.status!==ol){var u=r.strategy===Gf?b7(r,t):r.strategy===JR?m7(r,t):Ja[r.level].func(r,t);if((u===Xi||u===Xa)&&(r.status=ol),u===at||u===Xi)return e.avail_out===0&&(r.last_flush=-1),jn;if(u===sl&&(t===YR?nn._tr_align(r):t!==uv&&(nn._tr_stored_block(r,0,0,!1),t===QR&&($r(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),Xr(e),e.avail_out===0))return r.last_flush=-1,jn}return t!==Wr?jn:r.wrap<=0?fv:(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)),Xr(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?jn:fv)}function E7(e){var t;return!e||!e.state?rn:(t=e.state.status,t!==Vf&&t!==H0&&t!==jf&&t!==qf&&t!==Zf&&t!==$i&&t!==ol?Qr(e,rn):(e.state=null,t===$i?Qr(e,$R):jn))}function _7(e,t){var n=t.length,r,i,a,o,s,u,l,f;if(!e||!e.state||(r=e.state,o=r.wrap,o===2||o===1&&r.status!==Vf||r.lookahead))return rn;for(o===1&&(e.adler=lv(e.adler,t,n,0)),r.wrap=0,n>=r.w_size&&(o===0&&($r(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,Ki(r);r.lookahead>=he;){i=r.strstart,a=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(--a);r.strstart=i,r.lookahead=he-1,Ki(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=o,jn}Hn.deflateInit=x7,Hn.deflateInit2=gv,Hn.deflateReset=pv,Hn.deflateResetKeep=dv,Hn.deflateSetHeader=v7,Hn.deflate=A7,Hn.deflateEnd=E7,Hn.deflateSetDictionary=_7,Hn.deflateInfo="pako deflate (from Nodeca project)";var Ji={},Wf=lr,mv=!0,bv=!0;try{String.fromCharCode.apply(null,[0])}catch{mv=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{bv=!1}for(var ul=new Wf.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,Ji.string2buf=function(e){var t,n,r,i,a,o=e.length,s=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Wf.Buf8(s),a=0,i=0;a<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t};function yv(e,t){if(t<65534&&(e.subarray&&bv||!e.subarray&&mv))return String.fromCharCode.apply(null,Wf.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}Ji.buf2binstring=function(e){return yv(e,e.length)},Ji.binstring2buf=function(e){for(var t=new Wf.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},Ji.buf2string=function(e,t){var n,r,i,a,o=t||e.length,s=new Array(o*2);for(r=0,n=0;n<o;){if(i=e[n++],i<128){s[r++]=i;continue}if(a=ul[i],a>4){s[r++]=65533,n+=a-1;continue}for(i&=a===2?31:a===3?15:7;a>1&&n<o;)i=i<<6|e[n++]&63,a--;if(a>1){s[r++]=65533;continue}i<65536?s[r++]=i:(i-=65536,s[r++]=55296|i>>10&1023,s[r++]=56320|i&1023)}return yv(s,r)},Ji.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 S7(){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 wv=S7,fl=Hn,cl=lr,j0=Ji,q0=z0,C7=wv,vv=Object.prototype.toString,T7=0,Z0=4,eo=0,xv=1,Av=2,k7=-1,I7=0,B7=8;function ea(e){if(!(this instanceof ea))return new ea(e);this.options=cl.assign({level:k7,method:B7,chunkSize:16384,windowBits:15,memLevel:8,strategy:I7,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 C7,this.strm.avail_out=0;var n=fl.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==eo)throw new Error(q0[n]);if(t.header&&fl.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(typeof t.dictionary=="string"?r=j0.string2buf(t.dictionary):vv.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=fl.deflateSetDictionary(this.strm,r),n!==eo)throw new Error(q0[n]);this._dict_set=!0}}ea.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i,a;if(this.ended)return!1;a=t===~~t?t:t===!0?Z0:T7,typeof e=="string"?n.input=j0.string2buf(e):vv.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,a),i!==xv&&i!==eo)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(a===Z0||a===Av))&&(this.options.to==="string"?this.onData(j0.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!==xv);return a===Z0?(i=fl.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===eo):(a===Av&&(this.onEnd(eo),n.avail_out=0),!0)},ea.prototype.onData=function(e){this.chunks.push(e)},ea.prototype.onEnd=function(e){e===eo&&(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 W0(e,t){var n=new ea(t);if(n.push(e,!0),n.err)throw n.msg||q0[n.err];return n.result}function D7(e,t){return t=t||{},t.raw=!0,W0(e,t)}function F7(e,t){return t=t||{},t.gzip=!0,W0(e,t)}Js.Deflate=ea,Js.deflate=W0,Js.deflateRaw=D7,Js.gzip=F7;var hl={},_n={},Yf=30,R7=12,M7=function(t,n){var r,i,a,o,s,u,l,f,c,h,d,p,m,y,w,_,C,E,k,B,I,R,L,j,M;r=t.state,i=t.next_in,j=t.input,a=i+(t.avail_in-5),o=t.next_out,M=t.output,s=o-(n-t.avail_out),u=o+(t.avail_out-257),l=r.dmax,f=r.wsize,c=r.whave,h=r.wnext,d=r.window,p=r.hold,m=r.bits,y=r.lencode,w=r.distcode,_=(1<<r.lenbits)-1,C=(1<<r.distbits)-1;e:do{m<15&&(p+=j[i++]<<m,m+=8,p+=j[i++]<<m,m+=8),E=y[p&_];t:for(;;){if(k=E>>>24,p>>>=k,m-=k,k=E>>>16&255,k===0)M[o++]=E&65535;else if(k&16){B=E&65535,k&=15,k&&(m<k&&(p+=j[i++]<<m,m+=8),B+=p&(1<<k)-1,p>>>=k,m-=k),m<15&&(p+=j[i++]<<m,m+=8,p+=j[i++]<<m,m+=8),E=w[p&C];n:for(;;){if(k=E>>>24,p>>>=k,m-=k,k=E>>>16&255,k&16){if(I=E&65535,k&=15,m<k&&(p+=j[i++]<<m,m+=8,m<k&&(p+=j[i++]<<m,m+=8)),I+=p&(1<<k)-1,I>l){t.msg="invalid distance too far back",r.mode=Yf;break e}if(p>>>=k,m-=k,k=o-s,I>k){if(k=I-k,k>c&&r.sane){t.msg="invalid distance too far back",r.mode=Yf;break e}if(R=0,L=d,h===0){if(R+=f-k,k<B){B-=k;do M[o++]=d[R++];while(--k);R=o-I,L=M}}else if(h<k){if(R+=f+h-k,k-=h,k<B){B-=k;do M[o++]=d[R++];while(--k);if(R=0,h<B){k=h,B-=k;do M[o++]=d[R++];while(--k);R=o-I,L=M}}}else if(R+=h-k,k<B){B-=k;do M[o++]=d[R++];while(--k);R=o-I,L=M}for(;B>2;)M[o++]=L[R++],M[o++]=L[R++],M[o++]=L[R++],B-=3;B&&(M[o++]=L[R++],B>1&&(M[o++]=L[R++]))}else{R=o-I;do M[o++]=M[R++],M[o++]=M[R++],M[o++]=M[R++],B-=3;while(B>2);B&&(M[o++]=M[R++],B>1&&(M[o++]=M[R++]))}}else if(k&64){t.msg="invalid distance code",r.mode=Yf;break e}else{E=w[(E&65535)+(p&(1<<k)-1)];continue n}break}}else if(k&64)if(k&32){r.mode=R7;break e}else{t.msg="invalid literal/length code",r.mode=Yf;break e}else{E=y[(E&65535)+(p&(1<<k)-1)];continue t}break}}while(i<a&&o<u);B=m>>3,i-=B,m-=B<<3,p&=(1<<m)-1,t.next_in=i,t.next_out=o,t.avail_in=i<a?5+(a-i):5-(i-a),t.avail_out=o<u?257+(u-o):257-(o-u),r.hold=p,r.bits=m},Ev=lr,to=15,_v=852,Sv=592,Cv=0,Y0=1,Tv=2,P7=[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],L7=[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],N7=[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],O7=[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],z7=function(t,n,r,i,a,o,s,u){var l=u.bits,f=0,c=0,h=0,d=0,p=0,m=0,y=0,w=0,_=0,C=0,E,k,B,I,R,L=null,j=0,M,ie=new Ev.Buf16(to+1),se=new Ev.Buf16(to+1),ge=null,Ie=0,$e,De,Ke;for(f=0;f<=to;f++)ie[f]=0;for(c=0;c<i;c++)ie[n[r+c]]++;for(p=l,d=to;d>=1&&ie[d]===0;d--);if(p>d&&(p=d),d===0)return a[o++]=1<<24|64<<16|0,a[o++]=1<<24|64<<16|0,u.bits=1,0;for(h=1;h<d&&ie[h]===0;h++);for(p<h&&(p=h),w=1,f=1;f<=to;f++)if(w<<=1,w-=ie[f],w<0)return-1;if(w>0&&(t===Cv||d!==1))return-1;for(se[1]=0,f=1;f<to;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===Cv?(L=ge=s,M=19):t===Y0?(L=P7,j-=257,ge=L7,Ie-=257,M=256):(L=N7,ge=O7,M=-1),C=0,c=0,f=h,R=o,m=p,y=0,B=-1,_=1<<p,I=_-1,t===Y0&&_>_v||t===Tv&&_>Sv)return 1;for(;;){$e=f-y,s[c]<M?(De=0,Ke=s[c]):s[c]>M?(De=ge[Ie+s[c]],Ke=L[j+s[c]]):(De=32+64,Ke=0),E=1<<f-y,k=1<<m,h=k;do k-=E,a[R+(C>>y)+k]=$e<<24|De<<16|Ke|0;while(k!==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,m=f-y,w=1<<m;m+y<d&&(w-=ie[m+y],!(w<=0));)m++,w<<=1;if(_+=1<<m,t===Y0&&_>_v||t===Tv&&_>Sv)return 1;B=C&I,a[B]=p<<24|m<<16|R-o|0}}return C!==0&&(a[R+C]=f-y<<24|64<<16|0),u.bits=p,0},Qt=lr,Q0=ov,Zn=sv,U7=M7,dl=z7,G7=0,kv=1,Iv=2,Bv=4,H7=5,Qf=6,ta=0,V7=1,j7=2,an=-2,Dv=-3,Fv=-4,q7=-5,Rv=8,Mv=1,Pv=2,Lv=3,Nv=4,Ov=5,zv=6,Uv=7,Gv=8,Hv=9,Vv=10,$f=11,fr=12,$0=13,jv=14,X0=15,qv=16,Zv=17,Wv=18,Yv=19,Xf=20,Kf=21,Qv=22,$v=23,Xv=24,Kv=25,Jv=26,K0=27,ex=28,tx=29,je=30,nx=31,Z7=32,W7=852,Y7=592,Q7=15,$7=Q7;function rx(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function X7(){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 ix(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=Mv,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(W7),t.distcode=t.distdyn=new Qt.Buf32(Y7),t.sane=1,t.back=-1,ta)}function ax(e){var t;return!e||!e.state?an:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,ix(e))}function ox(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,ax(e))}function sx(e,t){var n,r;return e?(r=new X7,e.state=r,r.window=null,n=ox(e,t),n!==ta&&(e.state=null),n):an}function K7(e){return sx(e,$7)}var lx=!0,J0,ep;function J7(e){if(lx){var t;for(J0=new Qt.Buf32(512),ep=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(kv,e.lens,0,288,J0,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;dl(Iv,e.lens,0,32,ep,0,e.work,{bits:5}),lx=!1}e.lencode=J0,e.lenbits=9,e.distcode=ep,e.distbits=5}function ux(e,t,n,r){var i,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Qt.Buf8(a.wsize)),r>=a.wsize?(Qt.arraySet(a.window,t,n-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),Qt.arraySet(a.window,t,n-r,i,a.wnext),r-=i,r?(Qt.arraySet(a.window,t,n-r,r,0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0}function eM(e,t){var n,r,i,a,o,s,u,l,f,c,h,d,p,m,y=0,w,_,C,E,k,B,I,R,L=new Qt.Buf8(4),j,M,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 an;n=e.state,n.mode===fr&&(n.mode=$0),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,f=n.bits,c=s,h=u,R=ta;e:for(;;)switch(n.mode){case Mv:if(n.wrap===0){n.mode=$0;break}for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.wrap&2&&l===35615){n.check=0,L[0]=l&255,L[1]=l>>>8&255,n.check=Zn(n.check,L,2,0),l=0,f=0,n.mode=Pv;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)!==Rv){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?Vv:fr,l=0,f=0;break;case Pv:for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.flags=l,(n.flags&255)!==Rv){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&&(L[0]=l&255,L[1]=l>>>8&255,n.check=Zn(n.check,L,2,0)),l=0,f=0,n.mode=Lv;case Lv:for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.head&&(n.head.time=l),n.flags&512&&(L[0]=l&255,L[1]=l>>>8&255,L[2]=l>>>16&255,L[3]=l>>>24&255,n.check=Zn(n.check,L,4,0)),l=0,f=0,n.mode=Nv;case Nv:for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&(L[0]=l&255,L[1]=l>>>8&255,n.check=Zn(n.check,L,2,0)),l=0,f=0,n.mode=Ov;case Ov:if(n.flags&1024){for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&(L[0]=l&255,L[1]=l>>>8&255,n.check=Zn(n.check,L,2,0)),l=0,f=0}else n.head&&(n.head.extra=null);n.mode=zv;case zv: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,a,d,I)),n.flags&512&&(n.check=Zn(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=Uv;case Uv:if(n.flags&2048){if(s===0)break e;d=0;do I=r[a+d++],n.head&&I&&n.length<65536&&(n.head.name+=String.fromCharCode(I));while(I&&d<s);if(n.flags&512&&(n.check=Zn(n.check,r,d,a)),s-=d,a+=d,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=Gv;case Gv:if(n.flags&4096){if(s===0)break e;d=0;do I=r[a+d++],n.head&&I&&n.length<65536&&(n.head.comment+=String.fromCharCode(I));while(I&&d<s);if(n.flags&512&&(n.check=Zn(n.check,r,d,a)),s-=d,a+=d,I)break e}else n.head&&(n.head.comment=null);n.mode=Hv;case Hv:if(n.flags&512){for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<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 Vv:for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}e.adler=n.check=rx(l),l=0,f=0,n.mode=$f;case $f:if(n.havedict===0)return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,j7;e.adler=n.check=1,n.mode=fr;case fr:if(t===H7||t===Qf)break e;case $0:if(n.last){l>>>=f&7,f-=f&7,n.mode=K0;break}for(;f<3;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}switch(n.last=l&1,l>>>=1,f-=1,l&3){case 0:n.mode=jv;break;case 1:if(J7(n),n.mode=Xf,t===Qf){l>>>=2,f-=2;break e}break;case 2:n.mode=Zv;break;case 3:e.msg="invalid block type",n.mode=je}l>>>=2,f-=2;break;case jv:for(l>>>=f&7,f-=f&7;f<32;){if(s===0)break e;s--,l+=r[a++]<<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=X0,t===Qf)break e;case X0:n.mode=qv;case qv:if(d=n.length,d){if(d>s&&(d=s),d>u&&(d=u),d===0)break e;Qt.arraySet(i,r,a,d,o),s-=d,a+=d,u-=d,o+=d,n.length-=d;break}n.mode=fr;break;case Zv:for(;f<14;){if(s===0)break e;s--,l+=r[a++]<<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=Wv;case Wv:for(;n.have<n.ncode;){for(;f<3;){if(s===0)break e;s--,l+=r[a++]<<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(G7,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=Yv;case Yv: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[a++]<<f,f+=8}if(C<16)l>>>=w,f-=w,n.lens[n.have++]=C;else{if(C===16){for(M=w+2;f<M;){if(s===0)break e;s--,l+=r[a++]<<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(M=w+3;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=w,f-=w,I=0,d=3+(l&7),l>>>=3,f-=3}else{for(M=w+7;f<M;){if(s===0)break e;s--,l+=r[a++]<<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(kv,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(Iv,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=Xf,t===Qf)break e;case Xf:n.mode=Kf;case Kf:if(s>=6&&u>=258){e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,U7(e,h),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,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[a++]<<f,f+=8}if(_&&!(_&240)){for(E=w,k=_,B=C;y=n.lencode[B+((l&(1<<E+k)-1)>>E)],w=y>>>24,_=y>>>16&255,C=y&65535,!(E+w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=E,f-=E,n.back+=E}if(l>>>=w,f-=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=Qv;case Qv:if(n.extra){for(M=n.extra;f<M;){if(s===0)break e;s--,l+=r[a++]<<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=$v;case $v: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[a++]<<f,f+=8}if(!(_&240)){for(E=w,k=_,B=C;y=n.distcode[B+((l&(1<<E+k)-1)>>E)],w=y>>>24,_=y>>>16&255,C=y&65535,!(E+w<=f);){if(s===0)break e;s--,l+=r[a++]<<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=Xv;case Xv:if(n.extra){for(M=n.extra;f<M;){if(s===0)break e;s--,l+=r[a++]<<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=Kv;case Kv: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),m=n.window}else m=i,p=o-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[o++]=m[p++];while(--d);n.length===0&&(n.mode=Kf);break;case Jv:if(u===0)break e;i[o++]=n.length,u--,n.mode=Kf;break;case K0:if(n.wrap){for(;f<32;){if(s===0)break e;s--,l|=r[a++]<<f,f+=8}if(h-=u,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?Zn(n.check,i,h,o-h):Q0(n.check,i,h,o-h)),h=u,(n.flags?l:rx(l))!==n.check){e.msg="incorrect data check",n.mode=je;break}l=0,f=0}n.mode=ex;case ex:if(n.wrap&&n.flags){for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=je;break}l=0,f=0}n.mode=tx;case tx:R=V7;break e;case je:R=Dv;break e;case nx:return Fv;case Z7:default:return an}return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,(n.wsize||h!==e.avail_out&&n.mode<je&&(n.mode<K0||t!==Bv))&&ux(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?Zn(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===Xf||n.mode===X0?256:0),(c===0&&h===0||t===Bv)&&R===ta&&(R=q7),R}function tM(e){if(!e||!e.state)return an;var t=e.state;return t.window&&(t.window=null),e.state=null,ta}function nM(e,t){var n;return!e||!e.state||(n=e.state,!(n.wrap&2))?an:(n.head=t,t.done=!1,ta)}function rM(e,t){var n=t.length,r,i,a;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==$f)?an:r.mode===$f&&(i=1,i=Q0(i,t,n,0),i!==r.check)?Dv:(a=ux(e,t,n,n),a?(r.mode=nx,Fv):(r.havedict=1,ta))}_n.inflateReset=ax,_n.inflateReset2=ox,_n.inflateResetKeep=ix,_n.inflateInit=K7,_n.inflateInit2=sx,_n.inflate=eM,_n.inflateEnd=tM,_n.inflateGetHeader=nM,_n.inflateSetDictionary=rM,_n.inflateInfo="pako inflate (from Nodeca project)";var fx={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 iM(){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 aM=iM,no=_n,pl=lr,Jf=Ji,tt=fx,tp=z0,oM=wv,sM=aM,cx=Object.prototype.toString;function na(e){if(!(this instanceof na))return new na(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 oM,this.strm.avail_out=0;var n=no.inflateInit2(this.strm,t.windowBits);if(n!==tt.Z_OK)throw new Error(tp[n]);if(this.header=new sM,no.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Jf.string2buf(t.dictionary):cx.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=no.inflateSetDictionary(this.strm,t.dictionary),n!==tt.Z_OK)))throw new Error(tp[n])}na.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,a,o,s,u,l,f=!1;if(this.ended)return!1;o=t===~~t?t:t===!0?tt.Z_FINISH:tt.Z_NO_FLUSH,typeof e=="string"?n.input=Jf.binstring2buf(e):cx.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),a=no.inflate(n,tt.Z_NO_FLUSH),a===tt.Z_NEED_DICT&&i&&(a=no.inflateSetDictionary(this.strm,i)),a===tt.Z_BUF_ERROR&&f===!0&&(a=tt.Z_OK,f=!1),a!==tt.Z_STREAM_END&&a!==tt.Z_OK)return this.onEnd(a),this.ended=!0,!1;n.next_out&&(n.avail_out===0||a===tt.Z_STREAM_END||n.avail_in===0&&(o===tt.Z_FINISH||o===tt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=Jf.utf8border(n.output,n.next_out),u=n.next_out-s,l=Jf.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)&&a!==tt.Z_STREAM_END);return a===tt.Z_STREAM_END&&(o=tt.Z_FINISH),o===tt.Z_FINISH?(a=no.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===tt.Z_OK):(o===tt.Z_SYNC_FLUSH&&(this.onEnd(tt.Z_OK),n.avail_out=0),!0)},na.prototype.onData=function(e){this.chunks.push(e)},na.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 np(e,t){var n=new na(t);if(n.push(e,!0),n.err)throw n.msg||tp[n.err];return n.result}function lM(e,t){return t=t||{},t.raw=!0,np(e,t)}hl.Inflate=na,hl.inflate=np,hl.inflateRaw=lM,hl.ungzip=np;var uM=lr.assign,fM=Js,cM=hl,hM=fx,hx={};uM(hx,fM,cM,hM);var ec=hx;async function Jr(e){try{let t,n=0,r=0;const i=[];let a=0,o;do{const u=e.subarray(n);if(o=new ec.Inflate,{strm:t}=o,o.push(u,ec.Z_SYNC_FLUSH),o.err)throw new Error(o.msg);n+=t.next_in,i[r]=o.result,a+=i[r].length,r+=1}while(t.avail_in);const s=new Uint8Array(a);for(let u=0,l=0;u<i.length;u++)s.set(i[u],l),l+=i[u].length;return pe.Buffer.from(s)}catch(t){throw`${t}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):t}}async function dx(e,t){try{let n;const{minv:r,maxv:i}=t;let a=r.blockPosition,o=r.dataPosition;const s=[],u=[],l=[];let f=0,c=0;do{const p=e.subarray(a-r.blockPosition),m=new ec.Inflate;if({strm:n}=m,m.push(p,ec.Z_SYNC_FLUSH),m.err)throw new Error(m.msg);const y=m.result;s.push(y);let w=y.length;u.push(a),l.push(o),s.length===1&&r.dataPosition&&(s[0]=s[0].subarray(r.dataPosition),w=s[0].length);const _=a;if(a+=n.next_in,o+=w,_>=i.blockPosition){s[c]=s[c].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),u.push(a),l.push(o),f+=s[c].length;break}f+=s[c].length,c++}while(n.avail_in);const h=new Uint8Array(f);for(let p=0,m=0;p<s.length;p++)h.set(s[p],m),m+=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 dM=Le,on=null;try{on=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 px={},gx={};function ra(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=gx[e],r)?r:(n=Ne(e,(e|0)<0?-1:0,!0),i&&(gx[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=px[e],r)?r:(n=Ne(e,e<0?-1:0,!1),i&&(px[e]=n),n))}Le.fromInt=ra;function sn(e,t){if(isNaN(e))return t?ia:ln;if(t){if(e<0)return ia;if(e>=bx)return Ax}else{if(e<=-yx)return Vt;if(e+1>=yx)return xx}return e<0?sn(-e,t).neg():Ne(e%ro|0,e/ro|0,t)}Le.fromNumber=sn;function Ne(e,t,n){return new Le(e,t,n)}Le.fromBits=Ne;var tc=Math.pow;function rp(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 rp(e.substring(1),t,n).neg();for(var i=sn(tc(n,8)),a=ln,o=0;o<e.length;o+=8){var s=Math.min(8,e.length-o),u=parseInt(e.substring(o,o+s),n);if(s<8){var l=sn(tc(n,s));a=a.mul(l).add(sn(u))}else a=a.mul(i),a=a.add(sn(u))}return a.unsigned=t,a}Le.fromString=rp;function Sn(e,t){return typeof e=="number"?sn(e,t):typeof e=="string"?rp(e,t):Ne(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}Le.fromValue=Sn;var mx=65536,pM=1<<24,ro=mx*mx,bx=ro*ro,yx=bx/2,wx=ra(pM),ln=ra(0);Le.ZERO=ln;var ia=ra(0,!0);Le.UZERO=ia;var io=ra(1);Le.ONE=io;var vx=ra(1,!0);Le.UONE=vx;var ip=ra(-1);Le.NEG_ONE=ip;var xx=Ne(-1,2147483647,!1);Le.MAX_VALUE=xx;var Ax=Ne(-1,-1,!0);Le.MAX_UNSIGNED_VALUE=Ax;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)*ro+(this.low>>>0):this.high*ro+(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 a=sn(tc(t,6),this.unsigned),o=this,s="";;){var u=o.div(a),l=o.sub(u.mul(a)).toInt()>>>0,f=l.toString(t);if(o=u,o.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(io)},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,a=this.low&65535,o=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+=a+l,h+=d>>>16,d&=65535,h+=i+u,c+=h>>>16,h&=65535,c+=r+s,f+=c>>>16,c&=65535,f+=n+o,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)),on){var n=on.mul(this.low,this.high,t.low,t.high);return Ne(n,on.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(wx)&&t.lt(wx))return sn(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=t.high>>>16,u=t.high&65535,l=t.low>>>16,f=t.low&65535,c=0,h=0,d=0,p=0;return p+=o*f,d+=p>>>16,p&=65535,d+=a*f,h+=d>>>16,d&=65535,d+=o*l,h+=d>>>16,d&=65535,h+=i*f,c+=h>>>16,h&=65535,h+=a*l,c+=h>>>16,h&=65535,h+=o*u,c+=h>>>16,h&=65535,c+=r*f+i*l+a*u+o*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(on){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?on.div_u:on.div_s)(this.low,this.high,t.low,t.high);return Ne(n,on.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?ia:ln;var r,i,a;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return ia;if(t.gt(this.shru(1)))return vx;a=ia}else{if(this.eq(Vt)){if(t.eq(io)||t.eq(ip))return Vt;if(t.eq(Vt))return io;var o=this.shr(1);return r=o.div(t).shl(1),r.eq(ln)?t.isNegative()?io:ip:(i=this.sub(t.mul(r)),a=r.add(i.div(t)),a)}else if(t.eq(Vt))return this.unsigned?ia: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();a=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:tc(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=io),a=a.add(l),i=i.sub(f)}return a},Q.div=Q.divide,Q.modulo=function(t){if(Ht(t)||(t=Sn(t)),on){var n=(this.unsigned?on.rem_u:on.rem_s)(this.low,this.high,t.low,t.high);return Ne(n,on.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 nc=Xs(dM),rc=1;class gM{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=nc.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 a=0;a<n;a+=1){const o=this._readLongWithOverflow(t,a*16),s=this._readLongWithOverflow(t,a*16+8);r[a+1]=[o,s]}return r}async getLastBlock(){const t=await this._getIndex();if(t.length)return t[t.length-1]}async getRelevantBlocksForRead(t,n){const r=n+t;if(t===0)return[];const i=await this._getIndex(),a=[],o=(h,d)=>{const p=h[rc],m=d?d[rc]:1/0;return p<=n&&m>n?0:p<n?-1:1};let s=0,u=i.length-1,l=Math.floor(i.length/2),f=o(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=o(i[l],i[l+1]);a.push(i[l]);let c=l+1;for(;c<i.length&&(a.push(i[c]),!(i[c][rc]>=r));c+=1);return a[a.length-1][rc]<r&&a.push([]),a}}class Ex{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 gM({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 a=r.readUInt32LE(0);return t+a}async _readAndUncompressBlock(t,[n],[r]){let i=r;i||(i=(await this.filehandle.stat()).size);const a=i-n;return await this.filehandle.read(t,0,a,n),await Jr(t.slice(0,a))}async read(t,n,r,i){const a=await this.gzi.getRelevantBlocksForRead(r,i),o=pe.Buffer.allocUnsafe(32768*2);let s=n,u=0;for(let l=0;l<a.length-1;l+=1){const f=await this._readAndUncompressBlock(o,a[l],a[l+1]),[,c]=a[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 _x(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}async function mM(e,t){const n=await e.readFile(t);if(!(n&&n.length))throw new Error("No data read from FASTA index (FAI) file");let r=0,i;const a=n.toString("utf8").split(/\r?\n/).filter(o=>/\S/.test(o)).map(o=>o.split(" ")).filter(o=>o[0]!=="").map(o=>((!i||i.name!==o[0])&&(i={name:o[0],id:r},r+=1),{id:i.id,name:o[0],length:+o[1],start:0,end:+o[1],offset:+o[2],lineLength:+o[3],lineBytes:+o[4]}));return{name:Object.fromEntries(a.map(o=>[o.name,o])),id:Object.fromEntries(a.map(o=>[o.id,o]))}}class Sx{constructor({fasta:t,fai:n,path:r,faiPath:i,chunkSizeLimit:a=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=a}async _getIndexes(t){return this.indexes||(this.indexes=mM(this.fai,t)),this.indexes}async getSequenceNames(t){return Object.keys((await this._getIndexes(t)).name)}async getSequenceSizes(t){const n={},r=await this._getIndexes(t),i=Object.values(r.id);for(let a=0;a<i.length;a+=1)n[i[a].name]=i[a].length;return n}async getSequenceSize(t,n){var r;return(r=(await this._getIndexes(n)).name[t])===null||r===void 0?void 0:r.length}async hasReferenceSequence(t,n){return!!(await this._getIndexes(n)).name[t]}async getResiduesById(t,n,r,i){const a=(await this._getIndexes(i)).id[t];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getResiduesByName(t,n,r,i){const a=(await this._getIndexes(i)).name[t];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getSequence(t,n,r,i){return this.getResiduesByName(t,n,r,i)}async _fetchFromIndexEntry(t,n=0,r,i){let a=r;if(n<0)throw new TypeError("regionStart cannot be less than 0");if((a===void 0||a>t.length)&&(a=t.length),n>=a)return"";const o=_x(t,n),s=_x(t,a)-o;if(s>this.chunkSizeLimit)throw new Error(`data size of ${s.toLocaleString()} bytes exceeded chunk size limit of ${this.chunkSizeLimit.toLocaleString()} bytes`);const u=Buffer.allocUnsafe(s);return await this.fasta.read(u,0,s,o,i),u.toString("utf8").replace(/\s+/g,"")}}class bM extends Sx{constructor({fasta:t,path:n,fai:r,faiPath:i,gzi:a,gziPath:o,chunkSizeLimit:s}){super({fasta:t,path:n,fai:r,faiPath:i,chunkSizeLimit:s}),t&&a?this.fasta=new Ex({filehandle:t,gziFilehandle:a}):n&&o&&(this.fasta=new Ex({path:n,gziPath:o}))}}function Cx(e){return e.split(">").filter(t=>/\S/.test(t)).map(t=>{const[n,...r]=t.split(`
334
+ */(function(e){const t=Of,n=T0,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=s,e.SlowBuffer=E,e.INSPECT_MAX_BYTES=50;const i=2147483647;e.kMaxLength=i,s.TYPED_ARRAY_SUPPORT=a(),!s.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function a(){try{const v=new Uint8Array(1),g={foo:function(){return 42}};return Object.setPrototypeOf(g,Uint8Array.prototype),Object.setPrototypeOf(v,g),v.foo()===42}catch{return!1}}Object.defineProperty(s.prototype,"parent",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,"offset",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}});function o(v){if(v>i)throw new RangeError('The value "'+v+'" is invalid for option "size"');const g=new Uint8Array(v);return Object.setPrototypeOf(g,s.prototype),g}function s(v,g,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 T=v.valueOf&&v.valueOf();if(T!=null&&T!==v)return s.from(T,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?o(v):g!==void 0?typeof m=="string"?o(v).fill(g,m):o(v).fill(g):o(v)}s.alloc=function(v,g,m){return f(v,g,m)};function c(v){return l(v),o(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 T=o(m);const F=T.write(v,g);return F!==m&&(T=T.slice(0,F)),T}function d(v){const g=v.length<0?0:w(v.length)|0,m=o(g);for(let T=0;T<g;T+=1)m[T]=v[T]&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 T;return g===void 0&&m===void 0?T=new Uint8Array(v):m===void 0?T=new Uint8Array(v,g):T=new Uint8Array(v,g,m),Object.setPrototypeOf(T,s.prototype),T}function y(v){if(s.isBuffer(v)){const g=w(v.length)|0,m=o(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)?o(0):d(v);if(v.type==="Buffer"&&Array.isArray(v.data))return d(v.data)}function w(v){if(v>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return v|0}function E(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 T=g.length,F=m.length;for(let O=0,V=Math.min(T,F);O<V;++O)if(g[O]!==m[O]){T=g[O],F=m[O];break}return T<F?-1:F<T?1:0},s.isEncoding=function(g){switch(String(g).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(g,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 T;if(m===void 0)for(m=0,T=0;T<g.length;++T)m+=g[T].length;const F=s.allocUnsafe(m);let O=0;for(T=0;T<g.length;++T){let V=g[T];if(St(V,Uint8Array))O+V.length>F.length?(s.isBuffer(V)||(V=s.from(V)),V.copy(F,O)):Uint8Array.prototype.set.call(F,V,O);else if(s.isBuffer(V))V.copy(F,O);else throw new TypeError('"list" argument must be an Array of Buffers');O+=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,T=arguments.length>2&&arguments[2]===!0;if(!T&&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 T?-1:ue(v).length;g=(""+g).toLowerCase(),F=!0}}s.byteLength=C;function _(v,g,m){let T=!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 Ke(this,g,m);case"base64":return se(this,g,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Je(this,g,m);default:if(T)throw new TypeError("Unknown encoding: "+v);v=(v+"").toLowerCase(),T=!0}}s.prototype._isBuffer=!0;function k(v,g,m){const T=v[g];v[g]=v[m],v[m]=T}s.prototype.swap16=function(){const g=this.length;if(g%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let m=0;m<g;m+=2)k(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)k(this,m,m+3),k(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)k(this,m,m+7),k(this,m+1,m+6),k(this,m+2,m+5),k(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):_.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,T,F,O){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),T===void 0&&(T=g?g.length:0),F===void 0&&(F=0),O===void 0&&(O=this.length),m<0||T>g.length||F<0||O>this.length)throw new RangeError("out of range index");if(F>=O&&m>=T)return 0;if(F>=O)return-1;if(m>=T)return 1;if(m>>>=0,T>>>=0,F>>>=0,O>>>=0,this===g)return 0;let V=O-F,fe=T-m;const Ge=Math.min(V,fe),Me=this.slice(F,O),We=g.slice(m,T);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 I(v,g,m,T,F){if(v.length===0)return-1;if(typeof m=="string"?(T=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,T)),s.isBuffer(g))return g.length===0?-1:B(v,g,m,T,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):B(v,[g],m,T,F);throw new TypeError("val must be string, number or Buffer")}function B(v,g,m,T,F){let O=1,V=v.length,fe=g.length;if(T!==void 0&&(T=String(T).toLowerCase(),T==="ucs2"||T==="ucs-2"||T==="utf16le"||T==="utf-16le")){if(v.length<2||g.length<2)return-1;O=2,V/=2,fe/=2,m/=2}function Ge(We,Se){return O===1?We[Se]:We.readUInt16BE(Se*O)}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*O}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,T){return this.indexOf(g,m,T)!==-1},s.prototype.indexOf=function(g,m,T){return I(this,g,m,T,!0)},s.prototype.lastIndexOf=function(g,m,T){return I(this,g,m,T,!1)};function R(v,g,m,T){m=Number(m)||0;const F=v.length-m;T?(T=Number(T),T>F&&(T=F)):T=F;const O=g.length;T>O/2&&(T=O/2);let V;for(V=0;V<T;++V){const fe=parseInt(g.substr(V*2,2),16);if(wr(fe))return V;v[m+V]=fe}return V}function L(v,g,m,T){return fi(ue(g,v.length-m),v,m,T)}function j(v,g,m,T){return fi(Zt(g),v,m,T)}function M(v,g,m,T){return fi(ui(g),v,m,T)}function ie(v,g,m,T){return fi(li(g,v.length-m),v,m,T)}s.prototype.write=function(g,m,T,F){if(m===void 0)F="utf8",T=this.length,m=0;else if(T===void 0&&typeof m=="string")F=m,T=this.length,m=0;else if(isFinite(m))m=m>>>0,isFinite(T)?(T=T>>>0,F===void 0&&(F="utf8")):(F=T,T=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const O=this.length-m;if((T===void 0||T>O)&&(T=O),g.length>0&&(T<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,T);case"utf8":case"utf-8":return L(this,g,m,T);case"ascii":case"latin1":case"binary":return j(this,g,m,T);case"base64":return M(this,g,m,T);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ie(this,g,m,T);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 T=[];let F=g;for(;F<m;){const O=v[F];let V=null,fe=O>239?4:O>223?3:O>191?2:1;if(F+fe<=m){let Ge,Me,We,Se;switch(fe){case 1:O<128&&(V=O);break;case 2:Ge=v[F+1],(Ge&192)===128&&(Se=(O&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=(O&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=(O&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,T.push(V>>>10&1023|55296),V=56320|V&1023),T.push(V),F+=fe}return $e(T)}const Ie=4096;function $e(v){const g=v.length;if(g<=Ie)return String.fromCharCode.apply(String,v);let m="",T=0;for(;T<g;)m+=String.fromCharCode.apply(String,v.slice(T,T+=Ie));return m}function De(v,g,m){let T="";m=Math.min(v.length,m);for(let F=g;F<m;++F)T+=String.fromCharCode(v[F]&127);return T}function Ke(v,g,m){let T="";m=Math.min(v.length,m);for(let F=g;F<m;++F)T+=String.fromCharCode(v[F]);return T}function Ze(v,g,m){const T=v.length;(!g||g<0)&&(g=0),(!m||m<0||m>T)&&(m=T);let F="";for(let O=g;O<m;++O)F+=ci[v[O]];return F}function Je(v,g,m){const T=v.slice(g,m);let F="";for(let O=0;O<T.length-1;O+=2)F+=String.fromCharCode(T[O]+T[O+1]*256);return F}s.prototype.slice=function(g,m){const T=this.length;g=~~g,m=m===void 0?T:~~m,g<0?(g+=T,g<0&&(g=0)):g>T&&(g=T),m<0?(m+=T,m<0&&(m=0)):m>T&&(m=T),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,T){g=g>>>0,m=m>>>0,T||Ee(g,m,this.length);let F=this[g],O=1,V=0;for(;++V<m&&(O*=256);)F+=this[g+V]*O;return F},s.prototype.readUintBE=s.prototype.readUIntBE=function(g,m,T){g=g>>>0,m=m>>>0,T||Ee(g,m,this.length);let F=this[g+--m],O=1;for(;m>0&&(O*=256);)F+=this[g+--m]*O;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],T=this[g+7];(m===void 0||T===void 0)&&Z(g,this.length-8);const F=m+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24,O=this[++g]+this[++g]*2**8+this[++g]*2**16+T*2**24;return BigInt(F)+(BigInt(O)<<BigInt(32))}),s.prototype.readBigUInt64BE=Wt(function(g){g=g>>>0,G(g,"offset");const m=this[g],T=this[g+7];(m===void 0||T===void 0)&&Z(g,this.length-8);const F=m*2**24+this[++g]*2**16+this[++g]*2**8+this[++g],O=this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+T;return(BigInt(F)<<BigInt(32))+BigInt(O)}),s.prototype.readIntLE=function(g,m,T){g=g>>>0,m=m>>>0,T||Ee(g,m,this.length);let F=this[g],O=1,V=0;for(;++V<m&&(O*=256);)F+=this[g+V]*O;return O*=128,F>=O&&(F-=Math.pow(2,8*m)),F},s.prototype.readIntBE=function(g,m,T){g=g>>>0,m=m>>>0,T||Ee(g,m,this.length);let F=m,O=1,V=this[g+--F];for(;F>0&&(O*=256);)V+=this[g+--F]*O;return O*=128,V>=O&&(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 T=this[g]|this[g+1]<<8;return T&32768?T|4294901760:T},s.prototype.readInt16BE=function(g,m){g=g>>>0,m||Ee(g,2,this.length);const T=this[g+1]|this[g]<<8;return T&32768?T|4294901760:T},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],T=this[g+7];(m===void 0||T===void 0)&&Z(g,this.length-8);const F=this[g+4]+this[g+5]*2**8+this[g+6]*2**16+(T<<24);return(BigInt(F)<<BigInt(32))+BigInt(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],T=this[g+7];(m===void 0||T===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+T)}),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,T,F,O){if(!s.isBuffer(v))throw new TypeError('"buffer" argument must be a Buffer instance');if(g>F||g<O)throw new RangeError('"value" argument is out of bounds');if(m+T>v.length)throw new RangeError("Index out of range")}s.prototype.writeUintLE=s.prototype.writeUIntLE=function(g,m,T,F){if(g=+g,m=m>>>0,T=T>>>0,!F){const fe=Math.pow(2,8*T)-1;_e(this,g,m,T,fe,0)}let O=1,V=0;for(this[m]=g&255;++V<T&&(O*=256);)this[m+V]=g/O&255;return m+T},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(g,m,T,F){if(g=+g,m=m>>>0,T=T>>>0,!F){const fe=Math.pow(2,8*T)-1;_e(this,g,m,T,fe,0)}let O=T-1,V=1;for(this[m+O]=g&255;--O>=0&&(V*=256);)this[m+O]=g/V&255;return m+T},s.prototype.writeUint8=s.prototype.writeUInt8=function(g,m,T){return g=+g,m=m>>>0,T||_e(this,g,m,1,255,0),this[m]=g&255,m+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(g,m,T){return g=+g,m=m>>>0,T||_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,T){return g=+g,m=m>>>0,T||_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,T){return g=+g,m=m>>>0,T||_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,T){return g=+g,m=m>>>0,T||_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,T,F){x(g,T,F,v,m,7);let O=Number(g&BigInt(4294967295));v[m++]=O,O=O>>8,v[m++]=O,O=O>>8,v[m++]=O,O=O>>8,v[m++]=O;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,T,F){x(g,T,F,v,m,7);let O=Number(g&BigInt(4294967295));v[m+7]=O,O=O>>8,v[m+6]=O,O=O>>8,v[m+5]=O,O=O>>8,v[m+4]=O;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,T,F){if(g=+g,m=m>>>0,!F){const Ge=Math.pow(2,8*T-1);_e(this,g,m,T,Ge-1,-Ge)}let O=0,V=1,fe=0;for(this[m]=g&255;++O<T&&(V*=256);)g<0&&fe===0&&this[m+O-1]!==0&&(fe=1),this[m+O]=(g/V>>0)-fe&255;return m+T},s.prototype.writeIntBE=function(g,m,T,F){if(g=+g,m=m>>>0,!F){const Ge=Math.pow(2,8*T-1);_e(this,g,m,T,Ge-1,-Ge)}let O=T-1,V=1,fe=0;for(this[m+O]=g&255;--O>=0&&(V*=256);)g<0&&fe===0&&this[m+O+1]!==0&&(fe=1),this[m+O]=(g/V>>0)-fe&255;return m+T},s.prototype.writeInt8=function(g,m,T){return g=+g,m=m>>>0,T||_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,T){return g=+g,m=m>>>0,T||_e(this,g,m,2,32767,-32768),this[m]=g&255,this[m+1]=g>>>8,m+2},s.prototype.writeInt16BE=function(g,m,T){return g=+g,m=m>>>0,T||_e(this,g,m,2,32767,-32768),this[m]=g>>>8,this[m+1]=g&255,m+2},s.prototype.writeInt32LE=function(g,m,T){return g=+g,m=m>>>0,T||_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,T){return g=+g,m=m>>>0,T||_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,T,F,O){if(m+T>v.length)throw new RangeError("Index out of range");if(m<0)throw new RangeError("Index out of range")}function N(v,g,m,T,F){return g=+g,m=m>>>0,F||Oe(v,g,m,4),n.write(v,g,m,T,23,4),m+4}s.prototype.writeFloatLE=function(g,m,T){return N(this,g,m,!0,T)},s.prototype.writeFloatBE=function(g,m,T){return N(this,g,m,!1,T)};function P(v,g,m,T,F){return g=+g,m=m>>>0,F||Oe(v,g,m,8),n.write(v,g,m,T,52,8),m+8}s.prototype.writeDoubleLE=function(g,m,T){return P(this,g,m,!0,T)},s.prototype.writeDoubleBE=function(g,m,T){return P(this,g,m,!1,T)},s.prototype.copy=function(g,m,T,F){if(!s.isBuffer(g))throw new TypeError("argument should be a Buffer");if(T||(T=0),!F&&F!==0&&(F=this.length),m>=g.length&&(m=g.length),m||(m=0),F>0&&F<T&&(F=T),F===T||g.length===0||this.length===0)return 0;if(m<0)throw new RangeError("targetStart out of bounds");if(T<0||T>=this.length)throw new RangeError("Index out of range");if(F<0)throw new RangeError("sourceEnd out of bounds");F>this.length&&(F=this.length),g.length-m<F-T&&(F=g.length-m+T);const O=F-T;return this===g&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(m,T,F):Uint8Array.prototype.set.call(g,this.subarray(T,F),m),O},s.prototype.fill=function(g,m,T,F){if(typeof g=="string"){if(typeof m=="string"?(F=m,m=0,T=this.length):typeof T=="string"&&(F=T,T=this.length),F!==void 0&&typeof F!="string")throw new TypeError("encoding must be a string");if(typeof F=="string"&&!s.isEncoding(F))throw new TypeError("Unknown encoding: "+F);if(g.length===1){const 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<T)throw new RangeError("Out of range index");if(T<=m)return this;m=m>>>0,T=T===void 0?this.length:T>>>0,g||(g=0);let O;if(typeof g=="number")for(O=m;O<T;++O)this[O]=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(O=0;O<T-m;++O)this[O+m]=V[O%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 T=`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"),T+=` It must be ${g}. Received ${F}`,T},RangeError);function Y(v){let g="",m=v.length;const T=v[0]==="-"?1:0;for(;m>=T+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,T,F,O){if(v>m||v<g){const V=typeof g=="bigint"?"n":"";let fe;throw O>3?g===0||g===BigInt(0)?fe=`>= 0${V} and < 2${V} ** ${(O+1)*8}${V}`:fe=`>= -(2${V} ** ${(O+1)*8-1}${V}) and < 2 ** ${(O+1)*8-1}${V}`:fe=`>= ${g}${V} and <= ${m}${V}`,new q.ERR_OUT_OF_RANGE("value",fe,v)}S(T,F,O)}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 T=v.length;let F=null;const O=[];for(let V=0;V<T;++V){if(m=v.charCodeAt(V),m>55295&&m<57344){if(!F){if(m>56319){(g-=3)>-1&&O.push(239,191,189);continue}else if(V+1===T){(g-=3)>-1&&O.push(239,191,189);continue}F=m;continue}if(m<56320){(g-=3)>-1&&O.push(239,191,189),F=m;continue}m=(F-55296<<10|m-56320)+65536}else F&&(g-=3)>-1&&O.push(239,191,189);if(F=null,m<128){if((g-=1)<0)break;O.push(m)}else if(m<2048){if((g-=2)<0)break;O.push(m>>6|192,m&63|128)}else if(m<65536){if((g-=3)<0)break;O.push(m>>12|224,m>>6&63|128,m&63|128)}else if(m<1114112){if((g-=4)<0)break;O.push(m>>18|240,m>>12&63|128,m>>6&63|128,m&63|128)}else throw new Error("Invalid code point")}return O}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,T,F;const O=[];for(let V=0;V<v.length&&!((g-=2)<0);++V)m=v.charCodeAt(V),T=m>>8,F=m%256,O.push(F),O.push(T);return O}function ui(v){return t.toByteArray(J(v))}function fi(v,g,m,T){let F;for(F=0;F<T&&!(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 T=m*16;for(let F=0;F<16;++F)g[T+F]=v[m]+v[F]}return g}();function Wt(v){return typeof BigInt>"u"?Kn:v}function Kn(){throw new Error("BigInt not supported")}})(pe);const Pw=ve({__proto__:null,default:Xs(pe)},[pe]),ht={},yR=Object.freeze(Object.defineProperty({__proto__:null,default:ht},Symbol.toStringTag,{value:"Module"})),k0=typeof window<"u"?window:typeof self<"u"?self:{fetch:void 0};class Wi{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||k0.fetch&&k0.fetch.bind(k0);if(!r)throw new TypeError("no fetch function supplied, and none found in global environment");n.overrides&&(this.baseOverrides=n.overrides),this.fetchImplementation=r}async fetch(t,n){let r;try{r=await this.fetchImplementation(t,n)}catch(i){if(`${i}`.includes("Failed to fetch"))console.warn(`generic-filehandle: refetching ${t} to attempt to work around chrome CORS header caching bug`),r=await this.fetchImplementation(t,{...n,cache:"reload"});else throw i}return r}async read(t,n=0,r,i=0,a={}){const{headers:o={},signal:s,overrides:u={}}=a;r<1/0?o.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(o.range=`bytes=${i}-`);const l={...this.baseOverrides,...u,headers:{...o,...u.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:s},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:a,overrides:o={}}=r,s={headers:i,method:"GET",redirect:"follow",mode:"cors",signal:a,...this.baseOverrides,...o},u=await this.fetch(this.url,s);if(!u)throw new Error("generic-filehandle failed to fetch");if(u.status!==200)throw Object.assign(new Error(`HTTP ${u.status} fetching ${this.url}`),{status:u.status});if(n==="utf8")return u.text();if(n)throw new Error(`unsupported encoding: ${n}`);return this.getBufferFromResponse(u)}async stat(){if(!this._stat){const t=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 Lw(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 wR(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 vR{constructor(t){this.blob=t,this.size=t.size}async read(t,n=0,r,i=0){if(!r)return{bytesRead:0,buffer:t};const a=i,o=a+r,s=await Lw(this.blob.slice(a,o)),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 wR(this.blob);if(n)throw new Error(`unsupported encoding: ${n}`);const r=await Lw(this.blob);return pe.Buffer.from(r)}async stat(){return{size:this.size}}async close(){}}function Nw(e,t={}){return new Wi(e,t)}function xR(e,t,n,r={}){if(n!==void 0)return n;if(e!==void 0)return Nw(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:vR,LocalFile:ht,RemoteFile:Wi,fromUrl:Nw,open:xR},Symbol.toStringTag,{value:"Module"}));var lr={};(function(e){var t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function n(a,o){return Object.prototype.hasOwnProperty.call(a,o)}e.assign=function(a){for(var o=Array.prototype.slice.call(arguments,1);o.length;){var s=o.shift();if(s){if(typeof s!="object")throw new TypeError(s+"must be non-object");for(var u in s)n(s,u)&&(a[u]=s[u])}}return a},e.shrinkBuf=function(a,o){return a.length===o?a:a.subarray?a.subarray(0,o):(a.length=o,a)};var r={arraySet:function(a,o,s,u,l){if(o.subarray&&a.subarray){a.set(o.subarray(s,s+u),l);return}for(var f=0;f<u;f++)a[l+f]=o[s+f]},flattenChunks:function(a){var o,s,u,l,f,c;for(u=0,o=0,s=a.length;o<s;o++)u+=a[o].length;for(c=new Uint8Array(u),l=0,o=0,s=a.length;o<s;o++)f=a[o],c.set(f,l),l+=f.length;return c}},i={arraySet:function(a,o,s,u,l){for(var f=0;f<u;f++)a[l+f]=o[s+f]},flattenChunks:function(a){return[].concat.apply([],a)}};e.setTyped=function(a){a?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,r)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,i))},e.setTyped(t)})(lr);var Js={},Hn={},Ya={},AR=lr,ER=4,Ow=0,zw=1,_R=2;function Qa(e){for(var t=e.length;--t>=0;)e[t]=0}var SR=0,Uw=1,CR=2,TR=3,kR=258,I0=29,el=256,tl=el+1+I0,$a=30,B0=19,Gw=2*tl+1,Yi=15,D0=16,IR=7,F0=256,Hw=16,Vw=17,jw=18,R0=[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],zf=[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],BR=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],qw=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],DR=512,ur=new Array((tl+2)*2);Qa(ur);var nl=new Array($a*2);Qa(nl);var rl=new Array(DR);Qa(rl);var il=new Array(kR-TR+1);Qa(il);var M0=new Array(I0);Qa(M0);var Uf=new Array($a);Qa(Uf);function P0(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 Zw,Ww,Yw;function L0(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 al(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>D0-n?(e.bi_buf|=t<<e.bi_valid&65535,al(e,e.bi_buf),e.bi_buf=t>>D0-e.bi_valid,e.bi_valid+=n-D0):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function Vn(e,t,n){Gt(e,n[t*2],n[t*2+1])}function $w(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function FR(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)}function RR(e,t){var n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,u=t.stat_desc.max_length,l,f,c,h,d,p,b=0;for(h=0;h<=Yi;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Gw;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=o[f-s]),p=n[f*2],e.opt_len+=p*(h+d),a&&(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 Xw(e,t,n){var r=new Array(Yi+1),i=0,a,o;for(a=1;a<=Yi;a++)r[a]=i=i+n[a-1]<<1;for(o=0;o<=t;o++){var s=e[o*2+1];s!==0&&(e[o*2]=$w(r[s]++,s))}}function MR(){var e,t,n,r,i,a=new Array(Yi+1);for(n=0,r=0;r<I0-1;r++)for(M0[r]=n,e=0;e<1<<R0[r];e++)il[n++]=r;for(il[n-1]=r,i=0,r=0;r<16;r++)for(Uf[r]=i,e=0;e<1<<zf[r];e++)rl[i++]=r;for(i>>=7;r<$a;r++)for(Uf[r]=i<<7,e=0;e<1<<zf[r]-7;e++)rl[256+i++]=r;for(t=0;t<=Yi;t++)a[t]=0;for(e=0;e<=143;)ur[e*2+1]=8,e++,a[8]++;for(;e<=255;)ur[e*2+1]=9,e++,a[9]++;for(;e<=279;)ur[e*2+1]=7,e++,a[7]++;for(;e<=287;)ur[e*2+1]=8,e++,a[8]++;for(Xw(ur,tl+1,a),e=0;e<$a;e++)nl[e*2+1]=5,nl[e*2]=$w(e,5);Zw=new P0(ur,R0,el+1,tl,Yi),Ww=new P0(nl,zf,0,$a,Yi),Yw=new P0(new Array(0),BR,0,B0,IR)}function Kw(e){var t;for(t=0;t<tl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<$a;t++)e.dyn_dtree[t*2]=0;for(t=0;t<B0;t++)e.bl_tree[t*2]=0;e.dyn_ltree[F0*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function Jw(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}function PR(e,t,n,r){Jw(e),r&&(al(e,n),al(e,~n)),AR.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function ev(e,t,n,r){var i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]}function N0(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&ev(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!ev(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function tv(e,t,n){var r,i,a=0,o,s;if(e.last_lit!==0)do r=e.pending_buf[e.d_buf+a*2]<<8|e.pending_buf[e.d_buf+a*2+1],i=e.pending_buf[e.l_buf+a],a++,r===0?Vn(e,i,t):(o=il[i],Vn(e,o+el+1,t),s=R0[o],s!==0&&(i-=M0[o],Gt(e,i,s)),r--,o=Qw(r),Vn(e,o,n),s=zf[o],s!==0&&(r-=Uf[o],Gt(e,r,s)));while(a<e.last_lit);Vn(e,F0,t)}function O0(e,t){var n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems,o,s,u=-1,l;for(e.heap_len=0,e.heap_max=Gw,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=u=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=u,o=e.heap_len>>1;o>=1;o--)N0(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],N0(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,N0(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],RR(e,t),Xw(n,u,e.bl_count)}function nv(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)&&(s<l?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[Hw*2]++):s<=10?e.bl_tree[Vw*2]++:e.bl_tree[jw*2]++,s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4))}function rv(e,t,n){var r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)){if(s<l)do Vn(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(Vn(e,a,e.bl_tree),s--),Vn(e,Hw,e.bl_tree),Gt(e,s-3,2)):s<=10?(Vn(e,Vw,e.bl_tree),Gt(e,s-3,3)):(Vn(e,jw,e.bl_tree),Gt(e,s-11,7));s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4)}}function LR(e){var t;for(nv(e,e.dyn_ltree,e.l_desc.max_code),nv(e,e.dyn_dtree,e.d_desc.max_code),O0(e,e.bl_desc),t=B0-1;t>=3&&e.bl_tree[qw[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function NR(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[qw[i]*2+1],3);rv(e,e.dyn_ltree,t-1),rv(e,e.dyn_dtree,n-1)}function OR(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Ow;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return zw;for(n=32;n<el;n++)if(e.dyn_ltree[n*2]!==0)return zw;return Ow}var iv=!1;function zR(e){iv||(MR(),iv=!0),e.l_desc=new L0(e.dyn_ltree,Zw),e.d_desc=new L0(e.dyn_dtree,Ww),e.bl_desc=new L0(e.bl_tree,Yw),e.bi_buf=0,e.bi_valid=0,Kw(e)}function av(e,t,n,r){Gt(e,(SR<<1)+(r?1:0),3),PR(e,t,n,!0)}function UR(e){Gt(e,Uw<<1,3),Vn(e,F0,ur),FR(e)}function GR(e,t,n,r){var i,a,o=0;e.level>0?(e.strm.data_type===_R&&(e.strm.data_type=OR(e)),O0(e,e.l_desc),O0(e,e.d_desc),o=LR(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&t!==-1?av(e,t,n,r):e.strategy===ER||a===i?(Gt(e,(Uw<<1)+(r?1:0),3),tv(e,ur,nl)):(Gt(e,(CR<<1)+(r?1:0),3),NR(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),tv(e,e.dyn_ltree,e.dyn_dtree)),Kw(e),r&&Jw(e)}function HR(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}Ya._tr_init=zR,Ya._tr_stored_block=av,Ya._tr_flush_block=GR,Ya._tr_tally=HR,Ya._tr_align=UR;function VR(e,t,n,r){for(var i=e&65535|0,a=e>>>16&65535|0,o=0;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0}var ov=VR;function jR(){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 qR=jR();function ZR(e,t,n,r){var i=qR,a=r+n;e^=-1;for(var o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1}var sv=ZR,z0={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=Ya,lv=ov,Zr=sv,WR=z0,Qi=0,YR=1,QR=3,Wr=4,uv=5,jn=0,fv=1,rn=-2,$R=-3,U0=-5,XR=-1,KR=1,Gf=2,JR=3,e7=4,t7=0,n7=2,Hf=8,r7=9,i7=15,a7=8,o7=29,s7=256,G0=s7+1+o7,l7=30,u7=19,f7=2*G0+1,c7=15,he=3,Yr=258,En=Yr+he+1,h7=32,Vf=42,H0=69,jf=73,qf=91,Zf=103,$i=113,ol=666,at=1,sl=2,Xi=3,Xa=4,d7=3;function Qr(e,t){return e.msg=WR[t],t}function cv(e){return(e<<1)-(e>4?9:0)}function $r(e){for(var t=e.length;--t>=0;)e[t]=0}function Xr(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,Xr(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 p7(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=lv(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 hv(e,t){var n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match,u=e.strstart>e.w_size-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+o-1],p=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(l[i+o]!==p||l[i+o-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(a=Yr-(h-r),r=h-Yr,a>o){if(e.match_start=t,o=a,a>=s)break;d=l[r+o-1],p=l[r+o]}}while((t=c[t&f])>u&&--n!==0);return o<=e.lookahead?o:e.lookahead}function Ki(e){var t=e.w_size,n,r,i,a,o;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-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);a+=t}if(e.strm.avail_in===0)break;if(r=p7(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=r,e.lookahead+e.insert>=he)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+he-1])&e.hash_mask,e.prev[o&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=o,o++,e.insert--,!(e.lookahead+e.insert<he)););}while(e.lookahead<En&&e.strm.avail_in!==0)}function g7(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Ki(e),e.lookahead===0&&t===Qi)return at;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 at}return e.insert=0,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Xa):(e.strstart>e.block_start&&(yt(e,!1),e.strm.avail_out===0),at)}function V0(e,t){for(var n,r;;){if(e.lookahead<En){if(Ki(e),e.lookahead<En&&t===Qi)return at;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=hv(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 at}return e.insert=e.strstart<he-1?e.strstart:he-1,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Xa):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?at:sl}function Ka(e,t){for(var n,r,i;;){if(e.lookahead<En){if(Ki(e),e.lookahead<En&&t===Qi)return at;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=hv(e,n),e.match_length<=5&&(e.strategy===KR||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 at}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 at}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:Xa):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?at:sl}function m7(e,t){for(var n,r,i,a,o=e.window;;){if(e.lookahead<=Yr){if(Ki(e),e.lookahead<=Yr&&t===Qi)return at;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=he&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+Yr;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=Yr-(a-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 at}return e.insert=0,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Xa):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?at:sl}function b7(e,t){for(var n;;){if(e.lookahead===0&&(Ki(e),e.lookahead===0)){if(t===Qi)return at;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 at}return e.insert=0,t===Wr?(yt(e,!0),e.strm.avail_out===0?Xi:Xa):e.last_lit&&(yt(e,!1),e.strm.avail_out===0)?at:sl}function qn(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}var Ja;Ja=[new qn(0,0,0,0,g7),new qn(4,4,8,4,V0),new qn(4,5,16,8,V0),new qn(4,6,32,32,V0),new qn(4,4,16,16,Ka),new qn(8,16,32,32,Ka),new qn(8,16,128,128,Ka),new qn(8,32,128,256,Ka),new qn(32,128,258,1024,Ka),new qn(32,258,258,4096,Ka)];function y7(e){e.window_size=2*e.w_size,$r(e.head),e.max_lazy_match=Ja[e.level].max_lazy,e.good_match=Ja[e.level].good_length,e.nice_match=Ja[e.level].nice_length,e.max_chain_length=Ja[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 w7(){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=Hf,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(f7*2),this.dyn_dtree=new It.Buf16((2*l7+1)*2),this.bl_tree=new It.Buf16((2*u7+1)*2),$r(this.dyn_ltree),$r(this.dyn_dtree),$r(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new It.Buf16(c7+1),this.heap=new It.Buf16(2*G0+1),$r(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new It.Buf16(2*G0+1),$r(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 dv(e){var t;return!e||!e.state?Qr(e,rn):(e.total_in=e.total_out=0,e.data_type=n7,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Vf:$i,e.adler=t.wrap===2?0:1,t.last_flush=Qi,nn._tr_init(t),jn)}function pv(e){var t=dv(e);return t===jn&&y7(e.state),t}function v7(e,t){return!e||!e.state||e.state.wrap!==2?rn:(e.state.gzhead=t,jn)}function gv(e,t,n,r,i,a){if(!e)return rn;var o=1;if(t===XR&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>r7||n!==Hf||r<8||r>15||t<0||t>9||a<0||a>e7)return Qr(e,rn);r===8&&(r=9);var s=new w7;return e.state=s,s.strm=e,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+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=a,s.method=n,pv(e)}function x7(e,t){return gv(e,t,Hf,i7,a7,t7)}function A7(e,t){var n,r,i,a;if(!e||!e.state||t>uv||t<0)return e?Qr(e,rn):rn;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===ol&&t!==Wr)return Qr(e,e.avail_out===0?U0:rn);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===Vf)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>=Gf||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=H0):(we(r,0),we(r,0),we(r,0),we(r,0),we(r,0),we(r,r.level===9?2:r.strategy>=Gf||r.level<2?4:0),we(r,d7),r.status=$i);else{var o=Hf+(r.w_bits-8<<4)<<8,s=-1;r.strategy>=Gf||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,o|=s<<6,r.strstart!==0&&(o|=h7),o+=31-o%31,r.status=$i,ll(r,o),r.strstart!==0&&(ll(r,e.adler>>>16),ll(r,e.adler&65535)),e.adler=1}if(r.status===H0)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)),Xr(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=jf)}else r.status=jf;if(r.status===jf)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)),Xr(e),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.name.length?a=r.gzhead.name.charCodeAt(r.gzindex++)&255:a=0,we(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.gzindex=0,r.status=qf)}else r.status=qf;if(r.status===qf)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)),Xr(e),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}r.gzindex<r.gzhead.comment.length?a=r.gzhead.comment.charCodeAt(r.gzindex++)&255:a=0,we(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=Zr(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.status=Zf)}else r.status=Zf;if(r.status===Zf&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&Xr(e),r.pending+2<=r.pending_buf_size&&(we(r,e.adler&255),we(r,e.adler>>8&255),e.adler=0,r.status=$i)):r.status=$i),r.pending!==0){if(Xr(e),e.avail_out===0)return r.last_flush=-1,jn}else if(e.avail_in===0&&cv(t)<=cv(n)&&t!==Wr)return Qr(e,U0);if(r.status===ol&&e.avail_in!==0)return Qr(e,U0);if(e.avail_in!==0||r.lookahead!==0||t!==Qi&&r.status!==ol){var u=r.strategy===Gf?b7(r,t):r.strategy===JR?m7(r,t):Ja[r.level].func(r,t);if((u===Xi||u===Xa)&&(r.status=ol),u===at||u===Xi)return e.avail_out===0&&(r.last_flush=-1),jn;if(u===sl&&(t===YR?nn._tr_align(r):t!==uv&&(nn._tr_stored_block(r,0,0,!1),t===QR&&($r(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),Xr(e),e.avail_out===0))return r.last_flush=-1,jn}return t!==Wr?jn:r.wrap<=0?fv:(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)),Xr(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?jn:fv)}function E7(e){var t;return!e||!e.state?rn:(t=e.state.status,t!==Vf&&t!==H0&&t!==jf&&t!==qf&&t!==Zf&&t!==$i&&t!==ol?Qr(e,rn):(e.state=null,t===$i?Qr(e,$R):jn))}function _7(e,t){var n=t.length,r,i,a,o,s,u,l,f;if(!e||!e.state||(r=e.state,o=r.wrap,o===2||o===1&&r.status!==Vf||r.lookahead))return rn;for(o===1&&(e.adler=lv(e.adler,t,n,0)),r.wrap=0,n>=r.w_size&&(o===0&&($r(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,Ki(r);r.lookahead>=he;){i=r.strstart,a=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(--a);r.strstart=i,r.lookahead=he-1,Ki(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=o,jn}Hn.deflateInit=x7,Hn.deflateInit2=gv,Hn.deflateReset=pv,Hn.deflateResetKeep=dv,Hn.deflateSetHeader=v7,Hn.deflate=A7,Hn.deflateEnd=E7,Hn.deflateSetDictionary=_7,Hn.deflateInfo="pako deflate (from Nodeca project)";var Ji={},Wf=lr,mv=!0,bv=!0;try{String.fromCharCode.apply(null,[0])}catch{mv=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{bv=!1}for(var ul=new Wf.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,Ji.string2buf=function(e){var t,n,r,i,a,o=e.length,s=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Wf.Buf8(s),a=0,i=0;a<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t};function yv(e,t){if(t<65534&&(e.subarray&&bv||!e.subarray&&mv))return String.fromCharCode.apply(null,Wf.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}Ji.buf2binstring=function(e){return yv(e,e.length)},Ji.binstring2buf=function(e){for(var t=new Wf.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},Ji.buf2string=function(e,t){var n,r,i,a,o=t||e.length,s=new Array(o*2);for(r=0,n=0;n<o;){if(i=e[n++],i<128){s[r++]=i;continue}if(a=ul[i],a>4){s[r++]=65533,n+=a-1;continue}for(i&=a===2?31:a===3?15:7;a>1&&n<o;)i=i<<6|e[n++]&63,a--;if(a>1){s[r++]=65533;continue}i<65536?s[r++]=i:(i-=65536,s[r++]=55296|i>>10&1023,s[r++]=56320|i&1023)}return yv(s,r)},Ji.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 S7(){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 wv=S7,fl=Hn,cl=lr,j0=Ji,q0=z0,C7=wv,vv=Object.prototype.toString,T7=0,Z0=4,eo=0,xv=1,Av=2,k7=-1,I7=0,B7=8;function ea(e){if(!(this instanceof ea))return new ea(e);this.options=cl.assign({level:k7,method:B7,chunkSize:16384,windowBits:15,memLevel:8,strategy:I7,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 C7,this.strm.avail_out=0;var n=fl.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==eo)throw new Error(q0[n]);if(t.header&&fl.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(typeof t.dictionary=="string"?r=j0.string2buf(t.dictionary):vv.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=fl.deflateSetDictionary(this.strm,r),n!==eo)throw new Error(q0[n]);this._dict_set=!0}}ea.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i,a;if(this.ended)return!1;a=t===~~t?t:t===!0?Z0:T7,typeof e=="string"?n.input=j0.string2buf(e):vv.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,a),i!==xv&&i!==eo)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(a===Z0||a===Av))&&(this.options.to==="string"?this.onData(j0.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!==xv);return a===Z0?(i=fl.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===eo):(a===Av&&(this.onEnd(eo),n.avail_out=0),!0)},ea.prototype.onData=function(e){this.chunks.push(e)},ea.prototype.onEnd=function(e){e===eo&&(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 W0(e,t){var n=new ea(t);if(n.push(e,!0),n.err)throw n.msg||q0[n.err];return n.result}function D7(e,t){return t=t||{},t.raw=!0,W0(e,t)}function F7(e,t){return t=t||{},t.gzip=!0,W0(e,t)}Js.Deflate=ea,Js.deflate=W0,Js.deflateRaw=D7,Js.gzip=F7;var hl={},_n={},Yf=30,R7=12,M7=function(t,n){var r,i,a,o,s,u,l,f,c,h,d,p,b,y,w,E,C,_,k,I,B,R,L,j,M;r=t.state,i=t.next_in,j=t.input,a=i+(t.avail_in-5),o=t.next_out,M=t.output,s=o-(n-t.avail_out),u=o+(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,E=(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),_=y[p&E];t:for(;;){if(k=_>>>24,p>>>=k,b-=k,k=_>>>16&255,k===0)M[o++]=_&65535;else if(k&16){I=_&65535,k&=15,k&&(b<k&&(p+=j[i++]<<b,b+=8),I+=p&(1<<k)-1,p>>>=k,b-=k),b<15&&(p+=j[i++]<<b,b+=8,p+=j[i++]<<b,b+=8),_=w[p&C];n:for(;;){if(k=_>>>24,p>>>=k,b-=k,k=_>>>16&255,k&16){if(B=_&65535,k&=15,b<k&&(p+=j[i++]<<b,b+=8,b<k&&(p+=j[i++]<<b,b+=8)),B+=p&(1<<k)-1,B>l){t.msg="invalid distance too far back",r.mode=Yf;break e}if(p>>>=k,b-=k,k=o-s,B>k){if(k=B-k,k>c&&r.sane){t.msg="invalid distance too far back",r.mode=Yf;break e}if(R=0,L=d,h===0){if(R+=f-k,k<I){I-=k;do M[o++]=d[R++];while(--k);R=o-B,L=M}}else if(h<k){if(R+=f+h-k,k-=h,k<I){I-=k;do M[o++]=d[R++];while(--k);if(R=0,h<I){k=h,I-=k;do M[o++]=d[R++];while(--k);R=o-B,L=M}}}else if(R+=h-k,k<I){I-=k;do M[o++]=d[R++];while(--k);R=o-B,L=M}for(;I>2;)M[o++]=L[R++],M[o++]=L[R++],M[o++]=L[R++],I-=3;I&&(M[o++]=L[R++],I>1&&(M[o++]=L[R++]))}else{R=o-B;do M[o++]=M[R++],M[o++]=M[R++],M[o++]=M[R++],I-=3;while(I>2);I&&(M[o++]=M[R++],I>1&&(M[o++]=M[R++]))}}else if(k&64){t.msg="invalid distance code",r.mode=Yf;break e}else{_=w[(_&65535)+(p&(1<<k)-1)];continue n}break}}else if(k&64)if(k&32){r.mode=R7;break e}else{t.msg="invalid literal/length code",r.mode=Yf;break e}else{_=y[(_&65535)+(p&(1<<k)-1)];continue t}break}}while(i<a&&o<u);I=b>>3,i-=I,b-=I<<3,p&=(1<<b)-1,t.next_in=i,t.next_out=o,t.avail_in=i<a?5+(a-i):5-(i-a),t.avail_out=o<u?257+(u-o):257-(o-u),r.hold=p,r.bits=b},Ev=lr,to=15,_v=852,Sv=592,Cv=0,Y0=1,Tv=2,P7=[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],L7=[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],N7=[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],O7=[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],z7=function(t,n,r,i,a,o,s,u){var l=u.bits,f=0,c=0,h=0,d=0,p=0,b=0,y=0,w=0,E=0,C=0,_,k,I,B,R,L=null,j=0,M,ie=new Ev.Buf16(to+1),se=new Ev.Buf16(to+1),ge=null,Ie=0,$e,De,Ke;for(f=0;f<=to;f++)ie[f]=0;for(c=0;c<i;c++)ie[n[r+c]]++;for(p=l,d=to;d>=1&&ie[d]===0;d--);if(p>d&&(p=d),d===0)return a[o++]=1<<24|64<<16|0,a[o++]=1<<24|64<<16|0,u.bits=1,0;for(h=1;h<d&&ie[h]===0;h++);for(p<h&&(p=h),w=1,f=1;f<=to;f++)if(w<<=1,w-=ie[f],w<0)return-1;if(w>0&&(t===Cv||d!==1))return-1;for(se[1]=0,f=1;f<to;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===Cv?(L=ge=s,M=19):t===Y0?(L=P7,j-=257,ge=L7,Ie-=257,M=256):(L=N7,ge=O7,M=-1),C=0,c=0,f=h,R=o,b=p,y=0,I=-1,E=1<<p,B=E-1,t===Y0&&E>_v||t===Tv&&E>Sv)return 1;for(;;){$e=f-y,s[c]<M?(De=0,Ke=s[c]):s[c]>M?(De=ge[Ie+s[c]],Ke=L[j+s[c]]):(De=32+64,Ke=0),_=1<<f-y,k=1<<b,h=k;do k-=_,a[R+(C>>y)+k]=$e<<24|De<<16|Ke|0;while(k!==0);for(_=1<<f-1;C&_;)_>>=1;if(_!==0?(C&=_-1,C+=_):C=0,c++,--ie[f]===0){if(f===d)break;f=n[r+s[c]]}if(f>p&&(C&B)!==I){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(E+=1<<b,t===Y0&&E>_v||t===Tv&&E>Sv)return 1;I=C&B,a[I]=p<<24|b<<16|R-o|0}}return C!==0&&(a[R+C]=f-y<<24|64<<16|0),u.bits=p,0},Qt=lr,Q0=ov,Zn=sv,U7=M7,dl=z7,G7=0,kv=1,Iv=2,Bv=4,H7=5,Qf=6,ta=0,V7=1,j7=2,an=-2,Dv=-3,Fv=-4,q7=-5,Rv=8,Mv=1,Pv=2,Lv=3,Nv=4,Ov=5,zv=6,Uv=7,Gv=8,Hv=9,Vv=10,$f=11,fr=12,$0=13,jv=14,X0=15,qv=16,Zv=17,Wv=18,Yv=19,Xf=20,Kf=21,Qv=22,$v=23,Xv=24,Kv=25,Jv=26,K0=27,ex=28,tx=29,je=30,nx=31,Z7=32,W7=852,Y7=592,Q7=15,$7=Q7;function rx(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function X7(){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 ix(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=Mv,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(W7),t.distcode=t.distdyn=new Qt.Buf32(Y7),t.sane=1,t.back=-1,ta)}function ax(e){var t;return!e||!e.state?an:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,ix(e))}function ox(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,ax(e))}function sx(e,t){var n,r;return e?(r=new X7,e.state=r,r.window=null,n=ox(e,t),n!==ta&&(e.state=null),n):an}function K7(e){return sx(e,$7)}var lx=!0,J0,ep;function J7(e){if(lx){var t;for(J0=new Qt.Buf32(512),ep=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(kv,e.lens,0,288,J0,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;dl(Iv,e.lens,0,32,ep,0,e.work,{bits:5}),lx=!1}e.lencode=J0,e.lenbits=9,e.distcode=ep,e.distbits=5}function ux(e,t,n,r){var i,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Qt.Buf8(a.wsize)),r>=a.wsize?(Qt.arraySet(a.window,t,n-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),Qt.arraySet(a.window,t,n-r,i,a.wnext),r-=i,r?(Qt.arraySet(a.window,t,n-r,r,0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0}function eM(e,t){var n,r,i,a,o,s,u,l,f,c,h,d,p,b,y=0,w,E,C,_,k,I,B,R,L=new Qt.Buf8(4),j,M,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 an;n=e.state,n.mode===fr&&(n.mode=$0),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,f=n.bits,c=s,h=u,R=ta;e:for(;;)switch(n.mode){case Mv:if(n.wrap===0){n.mode=$0;break}for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.wrap&2&&l===35615){n.check=0,L[0]=l&255,L[1]=l>>>8&255,n.check=Zn(n.check,L,2,0),l=0,f=0,n.mode=Pv;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)!==Rv){e.msg="unknown compression method",n.mode=je;break}if(l>>>=4,f-=4,B=(l&15)+8,n.wbits===0)n.wbits=B;else if(B>n.wbits){e.msg="invalid window size",n.mode=je;break}n.dmax=1<<B,e.adler=n.check=1,n.mode=l&512?Vv:fr,l=0,f=0;break;case Pv:for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.flags=l,(n.flags&255)!==Rv){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&&(L[0]=l&255,L[1]=l>>>8&255,n.check=Zn(n.check,L,2,0)),l=0,f=0,n.mode=Lv;case Lv:for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.head&&(n.head.time=l),n.flags&512&&(L[0]=l&255,L[1]=l>>>8&255,L[2]=l>>>16&255,L[3]=l>>>24&255,n.check=Zn(n.check,L,4,0)),l=0,f=0,n.mode=Nv;case Nv:for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&(L[0]=l&255,L[1]=l>>>8&255,n.check=Zn(n.check,L,2,0)),l=0,f=0,n.mode=Ov;case Ov:if(n.flags&1024){for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&(L[0]=l&255,L[1]=l>>>8&255,n.check=Zn(n.check,L,2,0)),l=0,f=0}else n.head&&(n.head.extra=null);n.mode=zv;case zv:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(B=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),Qt.arraySet(n.head.extra,r,a,d,B)),n.flags&512&&(n.check=Zn(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=Uv;case Uv:if(n.flags&2048){if(s===0)break e;d=0;do B=r[a+d++],n.head&&B&&n.length<65536&&(n.head.name+=String.fromCharCode(B));while(B&&d<s);if(n.flags&512&&(n.check=Zn(n.check,r,d,a)),s-=d,a+=d,B)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=Gv;case Gv:if(n.flags&4096){if(s===0)break e;d=0;do B=r[a+d++],n.head&&B&&n.length<65536&&(n.head.comment+=String.fromCharCode(B));while(B&&d<s);if(n.flags&512&&(n.check=Zn(n.check,r,d,a)),s-=d,a+=d,B)break e}else n.head&&(n.head.comment=null);n.mode=Hv;case Hv:if(n.flags&512){for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<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 Vv:for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}e.adler=n.check=rx(l),l=0,f=0,n.mode=$f;case $f:if(n.havedict===0)return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,j7;e.adler=n.check=1,n.mode=fr;case fr:if(t===H7||t===Qf)break e;case $0:if(n.last){l>>>=f&7,f-=f&7,n.mode=K0;break}for(;f<3;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}switch(n.last=l&1,l>>>=1,f-=1,l&3){case 0:n.mode=jv;break;case 1:if(J7(n),n.mode=Xf,t===Qf){l>>>=2,f-=2;break e}break;case 2:n.mode=Zv;break;case 3:e.msg="invalid block type",n.mode=je}l>>>=2,f-=2;break;case jv:for(l>>>=f&7,f-=f&7;f<32;){if(s===0)break e;s--,l+=r[a++]<<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=X0,t===Qf)break e;case X0:n.mode=qv;case qv:if(d=n.length,d){if(d>s&&(d=s),d>u&&(d=u),d===0)break e;Qt.arraySet(i,r,a,d,o),s-=d,a+=d,u-=d,o+=d,n.length-=d;break}n.mode=fr;break;case Zv:for(;f<14;){if(s===0)break e;s--,l+=r[a++]<<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=Wv;case Wv:for(;n.have<n.ncode;){for(;f<3;){if(s===0)break e;s--,l+=r[a++]<<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(G7,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=Yv;case Yv:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,E=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(C<16)l>>>=w,f-=w,n.lens[n.have++]=C;else{if(C===16){for(M=w+2;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(l>>>=w,f-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=je;break}B=n.lens[n.have-1],d=3+(l&3),l>>>=2,f-=2}else if(C===17){for(M=w+3;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=w,f-=w,B=0,d=3+(l&7),l>>>=3,f-=3}else{for(M=w+7;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=w,f-=w,B=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++]=B}}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(kv,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(Iv,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=Xf,t===Qf)break e;case Xf:n.mode=Kf;case Kf:if(s>=6&&u>=258){e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,U7(e,h),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,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,E=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(E&&!(E&240)){for(_=w,k=E,I=C;y=n.lencode[I+((l&(1<<_+k)-1)>>_)],w=y>>>24,E=y>>>16&255,C=y&65535,!(_+w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=_,f-=_,n.back+=_}if(l>>>=w,f-=w,n.back+=w,n.length=C,E===0){n.mode=Jv;break}if(E&32){n.back=-1,n.mode=fr;break}if(E&64){e.msg="invalid literal/length code",n.mode=je;break}n.extra=E&15,n.mode=Qv;case Qv:if(n.extra){for(M=n.extra;f<M;){if(s===0)break e;s--,l+=r[a++]<<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=$v;case $v:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,E=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(!(E&240)){for(_=w,k=E,I=C;y=n.distcode[I+((l&(1<<_+k)-1)>>_)],w=y>>>24,E=y>>>16&255,C=y&65535,!(_+w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=_,f-=_,n.back+=_}if(l>>>=w,f-=w,n.back+=w,E&64){e.msg="invalid distance code",n.mode=je;break}n.offset=C,n.extra=E&15,n.mode=Xv;case Xv:if(n.extra){for(M=n.extra;f<M;){if(s===0)break e;s--,l+=r[a++]<<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=Kv;case Kv: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=o-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[o++]=b[p++];while(--d);n.length===0&&(n.mode=Kf);break;case Jv:if(u===0)break e;i[o++]=n.length,u--,n.mode=Kf;break;case K0:if(n.wrap){for(;f<32;){if(s===0)break e;s--,l|=r[a++]<<f,f+=8}if(h-=u,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?Zn(n.check,i,h,o-h):Q0(n.check,i,h,o-h)),h=u,(n.flags?l:rx(l))!==n.check){e.msg="incorrect data check",n.mode=je;break}l=0,f=0}n.mode=ex;case ex:if(n.wrap&&n.flags){for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=je;break}l=0,f=0}n.mode=tx;case tx:R=V7;break e;case je:R=Dv;break e;case nx:return Fv;case Z7:default:return an}return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,(n.wsize||h!==e.avail_out&&n.mode<je&&(n.mode<K0||t!==Bv))&&ux(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?Zn(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===Xf||n.mode===X0?256:0),(c===0&&h===0||t===Bv)&&R===ta&&(R=q7),R}function tM(e){if(!e||!e.state)return an;var t=e.state;return t.window&&(t.window=null),e.state=null,ta}function nM(e,t){var n;return!e||!e.state||(n=e.state,!(n.wrap&2))?an:(n.head=t,t.done=!1,ta)}function rM(e,t){var n=t.length,r,i,a;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==$f)?an:r.mode===$f&&(i=1,i=Q0(i,t,n,0),i!==r.check)?Dv:(a=ux(e,t,n,n),a?(r.mode=nx,Fv):(r.havedict=1,ta))}_n.inflateReset=ax,_n.inflateReset2=ox,_n.inflateResetKeep=ix,_n.inflateInit=K7,_n.inflateInit2=sx,_n.inflate=eM,_n.inflateEnd=tM,_n.inflateGetHeader=nM,_n.inflateSetDictionary=rM,_n.inflateInfo="pako inflate (from Nodeca project)";var fx={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 iM(){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 aM=iM,no=_n,pl=lr,Jf=Ji,tt=fx,tp=z0,oM=wv,sM=aM,cx=Object.prototype.toString;function na(e){if(!(this instanceof na))return new na(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 oM,this.strm.avail_out=0;var n=no.inflateInit2(this.strm,t.windowBits);if(n!==tt.Z_OK)throw new Error(tp[n]);if(this.header=new sM,no.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Jf.string2buf(t.dictionary):cx.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=no.inflateSetDictionary(this.strm,t.dictionary),n!==tt.Z_OK)))throw new Error(tp[n])}na.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,a,o,s,u,l,f=!1;if(this.ended)return!1;o=t===~~t?t:t===!0?tt.Z_FINISH:tt.Z_NO_FLUSH,typeof e=="string"?n.input=Jf.binstring2buf(e):cx.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),a=no.inflate(n,tt.Z_NO_FLUSH),a===tt.Z_NEED_DICT&&i&&(a=no.inflateSetDictionary(this.strm,i)),a===tt.Z_BUF_ERROR&&f===!0&&(a=tt.Z_OK,f=!1),a!==tt.Z_STREAM_END&&a!==tt.Z_OK)return this.onEnd(a),this.ended=!0,!1;n.next_out&&(n.avail_out===0||a===tt.Z_STREAM_END||n.avail_in===0&&(o===tt.Z_FINISH||o===tt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(s=Jf.utf8border(n.output,n.next_out),u=n.next_out-s,l=Jf.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)&&a!==tt.Z_STREAM_END);return a===tt.Z_STREAM_END&&(o=tt.Z_FINISH),o===tt.Z_FINISH?(a=no.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===tt.Z_OK):(o===tt.Z_SYNC_FLUSH&&(this.onEnd(tt.Z_OK),n.avail_out=0),!0)},na.prototype.onData=function(e){this.chunks.push(e)},na.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 np(e,t){var n=new na(t);if(n.push(e,!0),n.err)throw n.msg||tp[n.err];return n.result}function lM(e,t){return t=t||{},t.raw=!0,np(e,t)}hl.Inflate=na,hl.inflate=np,hl.inflateRaw=lM,hl.ungzip=np;var uM=lr.assign,fM=Js,cM=hl,hM=fx,hx={};uM(hx,fM,cM,hM);var ec=hx;async function Jr(e){try{let t,n=0,r=0;const i=[];let a=0,o;do{const u=e.subarray(n);if(o=new ec.Inflate,{strm:t}=o,o.push(u,ec.Z_SYNC_FLUSH),o.err)throw new Error(o.msg);n+=t.next_in,i[r]=o.result,a+=i[r].length,r+=1}while(t.avail_in);const s=new Uint8Array(a);for(let u=0,l=0;u<i.length;u++)s.set(i[u],l),l+=i[u].length;return pe.Buffer.from(s)}catch(t){throw`${t}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):t}}async function dx(e,t){try{let n;const{minv:r,maxv:i}=t;let a=r.blockPosition,o=r.dataPosition;const s=[],u=[],l=[];let f=0,c=0;do{const p=e.subarray(a-r.blockPosition),b=new ec.Inflate;if({strm:n}=b,b.push(p,ec.Z_SYNC_FLUSH),b.err)throw new Error(b.msg);const y=b.result;s.push(y);let w=y.length;u.push(a),l.push(o),s.length===1&&r.dataPosition&&(s[0]=s[0].subarray(r.dataPosition),w=s[0].length);const E=a;if(a+=n.next_in,o+=w,E>=i.blockPosition){s[c]=s[c].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),u.push(a),l.push(o),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 dM=Le,on=null;try{on=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 px={},gx={};function ra(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=gx[e],r)?r:(n=Ne(e,(e|0)<0?-1:0,!0),i&&(gx[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=px[e],r)?r:(n=Ne(e,e<0?-1:0,!1),i&&(px[e]=n),n))}Le.fromInt=ra;function sn(e,t){if(isNaN(e))return t?ia:ln;if(t){if(e<0)return ia;if(e>=bx)return Ax}else{if(e<=-yx)return Vt;if(e+1>=yx)return xx}return e<0?sn(-e,t).neg():Ne(e%ro|0,e/ro|0,t)}Le.fromNumber=sn;function Ne(e,t,n){return new Le(e,t,n)}Le.fromBits=Ne;var tc=Math.pow;function rp(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 rp(e.substring(1),t,n).neg();for(var i=sn(tc(n,8)),a=ln,o=0;o<e.length;o+=8){var s=Math.min(8,e.length-o),u=parseInt(e.substring(o,o+s),n);if(s<8){var l=sn(tc(n,s));a=a.mul(l).add(sn(u))}else a=a.mul(i),a=a.add(sn(u))}return a.unsigned=t,a}Le.fromString=rp;function Sn(e,t){return typeof e=="number"?sn(e,t):typeof e=="string"?rp(e,t):Ne(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}Le.fromValue=Sn;var mx=65536,pM=1<<24,ro=mx*mx,bx=ro*ro,yx=bx/2,wx=ra(pM),ln=ra(0);Le.ZERO=ln;var ia=ra(0,!0);Le.UZERO=ia;var io=ra(1);Le.ONE=io;var vx=ra(1,!0);Le.UONE=vx;var ip=ra(-1);Le.NEG_ONE=ip;var xx=Ne(-1,2147483647,!1);Le.MAX_VALUE=xx;var Ax=Ne(-1,-1,!0);Le.MAX_UNSIGNED_VALUE=Ax;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)*ro+(this.low>>>0):this.high*ro+(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 a=sn(tc(t,6),this.unsigned),o=this,s="";;){var u=o.div(a),l=o.sub(u.mul(a)).toInt()>>>0,f=l.toString(t);if(o=u,o.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(io)},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,a=this.low&65535,o=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+=a+l,h+=d>>>16,d&=65535,h+=i+u,c+=h>>>16,h&=65535,c+=r+s,f+=c>>>16,c&=65535,f+=n+o,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)),on){var n=on.mul(this.low,this.high,t.low,t.high);return Ne(n,on.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(wx)&&t.lt(wx))return sn(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,a=this.low>>>16,o=this.low&65535,s=t.high>>>16,u=t.high&65535,l=t.low>>>16,f=t.low&65535,c=0,h=0,d=0,p=0;return p+=o*f,d+=p>>>16,p&=65535,d+=a*f,h+=d>>>16,d&=65535,d+=o*l,h+=d>>>16,d&=65535,h+=i*f,c+=h>>>16,h&=65535,h+=a*l,c+=h>>>16,h&=65535,h+=o*u,c+=h>>>16,h&=65535,c+=r*f+i*l+a*u+o*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(on){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?on.div_u:on.div_s)(this.low,this.high,t.low,t.high);return Ne(n,on.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?ia:ln;var r,i,a;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return ia;if(t.gt(this.shru(1)))return vx;a=ia}else{if(this.eq(Vt)){if(t.eq(io)||t.eq(ip))return Vt;if(t.eq(Vt))return io;var o=this.shr(1);return r=o.div(t).shl(1),r.eq(ln)?t.isNegative()?io:ip:(i=this.sub(t.mul(r)),a=r.add(i.div(t)),a)}else if(t.eq(Vt))return this.unsigned?ia: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();a=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:tc(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=io),a=a.add(l),i=i.sub(f)}return a},Q.div=Q.divide,Q.modulo=function(t){if(Ht(t)||(t=Sn(t)),on){var n=(this.unsigned?on.rem_u:on.rem_s)(this.low,this.high,t.low,t.high);return Ne(n,on.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 nc=Xs(dM),rc=1;class gM{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=nc.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 a=0;a<n;a+=1){const o=this._readLongWithOverflow(t,a*16),s=this._readLongWithOverflow(t,a*16+8);r[a+1]=[o,s]}return r}async getLastBlock(){const t=await this._getIndex();if(t.length)return t[t.length-1]}async getRelevantBlocksForRead(t,n){const r=n+t;if(t===0)return[];const i=await this._getIndex(),a=[],o=(h,d)=>{const p=h[rc],b=d?d[rc]: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=o(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=o(i[l],i[l+1]);a.push(i[l]);let c=l+1;for(;c<i.length&&(a.push(i[c]),!(i[c][rc]>=r));c+=1);return a[a.length-1][rc]<r&&a.push([]),a}}class Ex{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 gM({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 a=r.readUInt32LE(0);return t+a}async _readAndUncompressBlock(t,[n],[r]){let i=r;i||(i=(await this.filehandle.stat()).size);const a=i-n;return await this.filehandle.read(t,0,a,n),await Jr(t.slice(0,a))}async read(t,n,r,i){const a=await this.gzi.getRelevantBlocksForRead(r,i),o=pe.Buffer.allocUnsafe(32768*2);let s=n,u=0;for(let l=0;l<a.length-1;l+=1){const f=await this._readAndUncompressBlock(o,a[l],a[l+1]),[,c]=a[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 _x(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}async function mM(e,t){const n=await e.readFile(t);if(!(n&&n.length))throw new Error("No data read from FASTA index (FAI) file");let r=0,i;const a=n.toString("utf8").split(/\r?\n/).filter(o=>/\S/.test(o)).map(o=>o.split(" ")).filter(o=>o[0]!=="").map(o=>((!i||i.name!==o[0])&&(i={name:o[0],id:r},r+=1),{id:i.id,name:o[0],length:+o[1],start:0,end:+o[1],offset:+o[2],lineLength:+o[3],lineBytes:+o[4]}));return{name:Object.fromEntries(a.map(o=>[o.name,o])),id:Object.fromEntries(a.map(o=>[o.id,o]))}}class Sx{constructor({fasta:t,fai:n,path:r,faiPath:i,chunkSizeLimit:a=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=a}async _getIndexes(t){return this.indexes||(this.indexes=mM(this.fai,t)),this.indexes}async getSequenceNames(t){return Object.keys((await this._getIndexes(t)).name)}async getSequenceSizes(t){const n={},r=await this._getIndexes(t),i=Object.values(r.id);for(let a=0;a<i.length;a+=1)n[i[a].name]=i[a].length;return n}async getSequenceSize(t,n){var r;return(r=(await this._getIndexes(n)).name[t])===null||r===void 0?void 0:r.length}async hasReferenceSequence(t,n){return!!(await this._getIndexes(n)).name[t]}async getResiduesById(t,n,r,i){const a=(await this._getIndexes(i)).id[t];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getResiduesByName(t,n,r,i){const a=(await this._getIndexes(i)).name[t];if(a)return this._fetchFromIndexEntry(a,n,r,i)}async getSequence(t,n,r,i){return this.getResiduesByName(t,n,r,i)}async _fetchFromIndexEntry(t,n=0,r,i){let a=r;if(n<0)throw new TypeError("regionStart cannot be less than 0");if((a===void 0||a>t.length)&&(a=t.length),n>=a)return"";const o=_x(t,n),s=_x(t,a)-o;if(s>this.chunkSizeLimit)throw new Error(`data size of ${s.toLocaleString()} bytes exceeded chunk size limit of ${this.chunkSizeLimit.toLocaleString()} bytes`);const u=Buffer.allocUnsafe(s);return await this.fasta.read(u,0,s,o,i),u.toString("utf8").replace(/\s+/g,"")}}class bM extends Sx{constructor({fasta:t,path:n,fai:r,faiPath:i,gzi:a,gziPath:o,chunkSizeLimit:s}){super({fasta:t,path:n,fai:r,faiPath:i,chunkSizeLimit:s}),t&&a?this.fasta=new Ex({filehandle:t,gziFilehandle:a}):n&&o&&(this.fasta=new Ex({path:n,gziPath:o}))}}function Cx(e){return e.split(">").filter(t=>/\S/.test(t)).map(t=>{const[n,...r]=t.split(`
325
335
  `),[i,...a]=n.split(" "),o=r.join("").replace(/\s/g,"");return{id:i,description:a.join(" "),sequence:o}})}class yM{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 Cx(i)})}async fetch(t,n,r){const a=(await this.data).find(s=>s.id===t),o=r-n;if(!a)throw new Error(`no sequence with id ${t} exists`);return a.sequence.substr(n,o)}async getSequenceNames(){return(await this.data).map(n=>n.id)}}const wM=Object.freeze(Object.defineProperty({__proto__:null,BgzipIndexedFasta:bM,FetchableSmallFasta:yM,IndexedFasta:Sx,parseSmallFasta:Cx},Symbol.toStringTag,{value:"Module"})),ic=BigInt(32);function vM(e,t,n){const r=+!!n,i=+!n;return BigInt(e.getInt32(t,n)*i+e.getInt32(t+4,n)*r)<<ic|BigInt(e.getUint32(t,n)*r+e.getUint32(t+4,n)*i)}function xM(e,t,n){const r=e.getUint32(t,n),i=e.getUint32(t+4,n),a=+!!n,o=+!n;return BigInt(r*o+i*a)<<ic|BigInt(r*a+i*o)}function AM(e,t,n,r){const i=Number(n>>ic),a=Number(n&BigInt(4294967295));r?(e.setInt32(t+4,i,r),e.setUint32(t,a,r)):(e.setInt32(t,i,r),e.setUint32(t+4,a,r))}function EM(e,t,n,r){const i=Number(n>>ic),a=Number(n&BigInt(4294967295));r?(e.setUint32(t+4,i,r),e.setUint32(t,a,r)):(e.setUint32(t,i,r),e.setUint32(t+4,a,r))}"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(e,t){return vM(this,e,t)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(e,t){return xM(this,e,t)}),"setBigInt64"in DataView||(DataView.prototype.setBigInt64=function(e,t,n){AM(this,e,t,n)}),"setBigUint64"in DataView||(DataView.prototype.setBigUint64=function(e,t,n){EM(this,e,t,n)});class _M{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+`
326
- `}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,aa="___parser_",Tn={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},ac={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"},oc={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 ke=class Dn{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new Dn}primitiveGenerateN(t,n){const r=ac[t],i=oc[t];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${Tn[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 Tn))throw new Error(`Array element type "${n.type}" is unkown.`);return this.setNextParser("array",t,n)}choice(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n)throw new Error("tag and choices are are required for choice.");if(!n.tag)throw new Error("tag is requird for choice.");if(!n.choices)throw new Error("choices is required for choice.");for(const r in n.choices){const i=parseInt(r,10),a=n.choices[i];if(isNaN(i))throw new Error(`Choice key "${r}" is not a number.`);if(typeof a=="string"&&!Cn.has(a)&&!(a in Tn))throw new Error(`Choice type "${a}" is unkown.`)}return this.setNextParser("choice",t,n)}nest(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n||!n.type)throw new Error("type is required for nest.");if(!(n.type instanceof Dn)&&!Cn.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof Dn)&&!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 Tn)&&!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 _M(t,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${aa+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 ${aa+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(Tn).indexOf(this.type)>=0)t=Tn[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=Tn[this.options.type]:this.options.type instanceof Dn&&(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 Dn;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},a=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 o=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 m=-1>>>32-l;t.pushCode(`${f.varName} = (${r} & 0x${m.toString(16)}) << ${h-l};`),h-=l}o=0,l=u=a(i(c)-l)}const d=s?u-o-h:o,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),o+=h,l-=h}),t.bitFields=[]}}generateSeek(t){const n=t.generateOption(this.options.length);t.pushCode(`offset += ${n};`)}generateString(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable(),i=this.options.encoding,a=i.toLowerCase()==="hex",o='b => b.toString(16).padStart(2, "0")';if(this.options.length&&this.options.zeroTerminated){const s=this.options.length;t.pushCode(`var ${r} = offset;`),t.pushCode(`while(dataView.getUint8(offset++) !== 0 && offset - ${r} < ${s});`);const u=`offset - ${r} < ${s} ? offset - 1 : offset`;t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, ${u}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${u}));`)}else if(this.options.length){const s=t.generateOption(this.options.length);t.pushCode(a?`${n} = Array.from(buffer.subarray(offset, offset + ${s}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(offset, offset + ${s}));`),t.pushCode(`offset += ${s};`)}else this.options.zeroTerminated?(t.pushCode(`var ${r} = offset;`),t.pushCode("while(dataView.getUint8(offset++) !== 0);"),t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset - 1), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset - 1));`)):this.options.greedy&&(t.pushCode(`var ${r} = offset;`),t.pushCode("while(buffer.length > offset++);"),t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset));`));this.options.stripNull&&t.pushCode(`${n} = ${n}.replace(/\\x00+$/g, '')`)}generateBuffer(t){const n=t.generateVariable(this.varName);if(typeof this.options.readUntil=="function"){const r=this.options.readUntil,i=t.generateTmpVariable(),a=t.generateTmpVariable();t.pushCode(`var ${i} = offset;`),t.pushCode(`var ${a} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${a} = dataView.getUint8(offset);`);const o=t.addImport(r);t.pushCode(`if (${o}.call(${t.generateVariable()}, ${a}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${n} = buffer.subarray(${i}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${n} = buffer.subarray(offset);`);else{const r=t.generateOption(this.options.length);t.pushCode(`${n} = buffer.subarray(offset, offset + ${r});`),t.pushCode(`offset += ${r};`)}this.options.clone&&t.pushCode(`${n} = buffer.constructor.from(${n});`)}generateArray(t){const n=t.generateOption(this.options.length),r=t.generateOption(this.options.lengthInBytes),i=this.options.type,a=t.generateTmpVariable(),o=t.generateVariable(this.varName),s=t.generateTmpVariable(),u=this.options.key,l=typeof u=="string";if(l?t.pushCode(`${o} = {};`):t.pushCode(`${o} = [];`),typeof this.options.readUntil=="function"?t.pushCode("do {"):this.options.readUntil==="eof"?t.pushCode(`for (var ${a} = 0; offset < buffer.length; ${a}++) {`):r!==void 0?t.pushCode(`for (var ${a} = offset + ${r}; offset < ${a}; ) {`):t.pushCode(`for (var ${a} = ${n}; ${a} > 0; ${a}--) {`),typeof i=="string")if(Cn.get(i)){const f=t.generateTmpVariable();if(t.pushCode(`var ${f} = ${aa+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} - ${a},`)}t.pushCode("});"),t.pushCode(`var ${s} = ${f}.result; offset = ${f}.offset;`),i!==this.alias&&t.addReference(i)}else{const f=ac[i],c=oc[i];t.pushCode(`var ${s} = dataView.get${f}(offset, ${c});`),t.pushCode(`offset += ${Tn[i]};`)}else if(i instanceof Dn){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} - ${a};`)),i.generate(t),t.useContextVariables&&(t.pushCode(`delete ${s}.$parent;`),t.pushCode(`delete ${s}.$root;`),t.pushCode(`delete ${s}.$index;`)),t.popScope()}if(l?t.pushCode(`${o}[${s}.${u}] = ${s};`):t.pushCode(`${o}.push(${s});`),t.pushCode("}"),typeof this.options.readUntil=="function"){const 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 a=t.generateTmpVariable();t.pushCode(`var ${a} = ${aa+r}(offset, {`),t.useContextVariables&&(t.pushCode(`$parent: ${i}.$parent,`),t.pushCode(`$root: ${i}.$root,`)),t.pushCode("});"),t.pushCode(`${i} = ${a}.result; offset = ${a}.offset;`),r!==this.alias&&t.addReference(r)}else{const a=ac[r],o=oc[r];t.pushCode(`${i} = dataView.get${a}(offset, ${o});`),t.pushCode(`offset += ${Tn[r]}`)}}else r instanceof Dn&&(t.pushPath(n),r.generate(t),t.popPath(n))}generateChoice(t){const n=t.generateOption(this.options.tag),r=t.generateVariable(this.varName);if(this.varName&&(t.pushCode(`${r} = {};`),t.useContextVariables)){const i=t.generateVariable();t.pushCode(`${r}.$parent = ${i};`),t.pushCode(`${r}.$root = ${i}.$root;`)}t.pushCode(`switch(${n}) {`);for(const i in this.options.choices){const a=parseInt(i,10),o=this.options.choices[a];t.pushCode(`case ${a}:`),this.generateChoiceCase(t,this.varName,o),t.pushCode("break;")}t.pushCode("default:"),this.options.defaultChoice?this.generateChoiceCase(t,this.varName,this.options.defaultChoice):t.generateError(`"Met undefined tag value " + ${n} + " at choice"`),t.pushCode("}"),this.varName&&t.useContextVariables&&(t.pushCode(`delete ${r}.$parent;`),t.pushCode(`delete ${r}.$root;`))}generateNest(t){const n=t.generateVariable(this.varName);if(this.options.type instanceof Dn){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} = ${aa+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(),a=t.generateTmpVariable(),o=t.generateTmpVariable(),s=t.addImport(this.options.wrapper);if(t.pushCode(`${r} = ${s}.call(this, ${r}).subarray(0);`),t.pushCode(`var ${i} = buffer;`),t.pushCode(`var ${a} = offset;`),t.pushCode(`var ${o} = dataView;`),t.pushCode(`buffer = ${r};`),t.pushCode("offset = 0;"),t.pushCode("dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.options.type instanceof Dn)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} = ${aa+this.options.type}(0);`),t.pushCode(`${n} = ${u}.result;`),this.options.type!==this.alias&&t.addReference(this.options.type)}t.pushCode(`buffer = ${i};`),t.pushCode(`dataView = ${o};`),t.pushCode(`offset = ${a};`)}generateFormatter(t,n,r){if(typeof r=="function"){const i=t.addImport(r);t.pushCode(`${n} = ${i}.call(${t.generateVariable()}, ${n});`)}}generatePointer(t){const n=this.options.type,r=t.generateOption(this.options.offset),i=t.generateTmpVariable(),a=t.generateVariable(this.varName);if(t.pushCode(`var ${i} = offset;`),t.pushCode(`offset = ${r};`),this.options.type instanceof Dn){if(t.pushCode(`${a} = {};`),t.useContextVariables){const o=t.generateVariable();t.pushCode(`${a}.$parent = ${o};`),t.pushCode(`${a}.$root = ${o}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),t.useContextVariables&&(t.pushCode(`delete ${a}.$parent;`),t.pushCode(`delete ${a}.$root;`))}else if(Cn.has(this.options.type)){const o=t.generateTmpVariable();if(t.pushCode(`var ${o} = ${aa+this.options.type}(offset, {`),t.useContextVariables){const s=t.generateVariable();t.pushCode(`$parent: ${s},`),t.pushCode(`$root: ${s}.$root,`)}t.pushCode("});"),t.pushCode(`${a} = ${o}.result; offset = ${o}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}else if(Object.keys(Tn).indexOf(this.options.type)>=0){const o=ac[n],s=oc[n];t.pushCode(`${a} = dataView.get${o}(offset, ${s});`),t.pushCode(`offset += ${Tn[n]};`)}t.pushCode(`offset = ${i};`)}generateSaveOffset(t){const n=t.generateVariable(this.varName);t.pushCode(`${n} = offset`)}};var Tx={},ap={},oa={},gl={};Object.defineProperty(gl,"__esModule",{value:!0});function op(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function kx(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 sp(e,t,n){return t&&kx(e.prototype,t),n&&kx(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function SM(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&&lp(e,t)}function ao(e){return ao=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},ao(e)}function lp(e,t){return lp=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},lp(e,t)}function CM(){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 TM(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 kM(e){var t=CM();return function(){var r=ao(e),i;if(t){var a=ao(this).constructor;i=Reflect.construct(r,arguments,a)}else i=r.apply(this,arguments);return TM(this,i)}}function IM(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=ao(e),e!==null););return e}function sc(){return typeof Reflect<"u"&&Reflect.get?sc=Reflect.get.bind():sc=function(t,n,r){var i=IM(t,n);if(i){var a=Object.getOwnPropertyDescriptor(i,n);return a.get?a.get.call(arguments.length<3?t:r):a.value}},sc.apply(this,arguments)}var Ix=function(){function e(){op(this,e),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return sp(e,[{key:"addEventListener",value:function(n,r,i){n in this.listeners||(this.listeners[n]=[]),this.listeners[n].push({callback:r,options:i})}},{key:"removeEventListener",value:function(n,r){if(n in this.listeners){for(var i=this.listeners[n],a=0,o=i.length;a<o;a++)if(i[a].callback===r){i.splice(a,1);return}}}},{key:"dispatchEvent",value:function(n){if(n.type in this.listeners){for(var r=this.listeners[n.type],i=r.slice(),a=0,o=i.length;a<o;a++){var s=i[a];try{s.callback.call(this,n)}catch(u){Promise.resolve().then(function(){throw u})}s.options&&s.options.once&&this.removeEventListener(n.type,s.callback)}return!n.defaultPrevented}}}]),e}(),up=function(e){SM(n,e);var t=kM(n);function n(){var r;return op(this,n),r=t.call(this),r.listeners||Ix.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 sp(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)),sc(ao(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(Ix),Bx=function(){function e(){op(this,e),Object.defineProperty(this,"signal",{value:new up,writable:!0,configurable:!0})}return sp(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&&(Bx.prototype[Symbol.toStringTag]="AbortController",up.prototype[Symbol.toStringTag]="AbortSignal");function BM(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 DM(e){typeof e=="function"&&(e={fetch:e});var t=e,n=t.fetch,r=t.Request,i=r===void 0?n.Request:r,a=t.AbortController,o=t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,s=o===void 0?!1:o;if(!BM({fetch:n,Request:i,AbortController:a,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:s}))return{fetch:n,Request:u};var u=i;(u&&!u.prototype.hasOwnProperty("signal")||s)&&(u=function(h,d){var p;d&&d.signal&&(p=d.signal,delete d.signal);var m=new i(h,d);return p&&Object.defineProperty(m,"signal",{writable:!1,enumerable:!1,configurable:!0,value:p}),m},u.prototype=i.prototype);var l=n,f=function(h,d){var p=u&&u.prototype.isPrototypeOf(h)?h.signal:d?d.signal:void 0;if(p){var m;try{m=new DOMException("Aborted","AbortError")}catch{m=new Error("Aborted"),m.name="AbortError"}if(p.aborted)return Promise.reject(m);var y=new Promise(function(w,_){p.addEventListener("abort",function(){return _(m)},{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=Bx,gl.AbortSignal=up,gl.abortableFetch=DM,Object.defineProperty(oa,"__esModule",{value:!0}),oa.AbortSignal=oa.AbortController=void 0;const Dx=gl;var lc=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 FM=typeof lc().AbortController>"u"?Dx.AbortController:lc().AbortController;oa.AbortController=FM;let RM=typeof lc().AbortController>"u"?Dx.AbortSignal:lc().AbortSignal;oa.AbortSignal=RM;var fp={};Object.defineProperty(fp,"__esModule",{value:!0});const MM=oa;class PM{}class LM{constructor(){this.signals=new Set,this.abortController=new MM.AbortController}addSignal(t=new PM){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()}}fp.default=LM;var cp={};Object.defineProperty(cp,"__esModule",{value:!0});class NM{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)})}}cp.default=NM;var Fx=Nf&&Nf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ap,"__esModule",{value:!0});const OM=oa,zM=Fx(fp),UM=Fx(cp);class uc{constructor({fill:t,cache:n}){if(typeof t!="function")throw new TypeError("must pass a fill function");if(typeof n!="object")throw new TypeError("must pass a cache object");if(typeof n.get!="function"||typeof n.set!="function"||typeof n.delete!="function")throw new TypeError("cache must implement get(key), set(key, val), and and delete(key)");this.cache=n,this.fillCallback=t}static isAbortException(t){return t.name==="AbortError"||t.code==="ERR_ABORTED"||t.message==="AbortError: aborted"||t.message==="Error: aborted"}evict(t,n){this.cache.get(t)===n&&this.cache.delete(t)}fill(t,n,r,i){const a=new zM.default,o=new UM.default;o.addCallback(i);const s={aborter:a,promise:this.fillCallback(n,a.signal,u=>{o.callback(u)}),settled:!1,statusReporter:o,get aborted(){return this.aborter.signal.aborted}};s.aborter.addSignal(r),s.aborter.signal.addEventListener("abort",()=>{s.settled||this.evict(t,s)}),s.promise.then(()=>{s.settled=!0},()=>{s.settled=!0,this.evict(t,s)}).catch(u=>{throw console.error(u),u}),this.cache.set(t,s)}static checkSinglePromise(t,n){function r(){if(n&&n.aborted)throw Object.assign(new Error("aborted"),{code:"ERR_ABORTED"})}return t.then(i=>(r(),i),i=>{throw r(),i})}has(t){return this.cache.has(t)}get(t,n,r,i){if(!r&&n instanceof OM.AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const a=this.cache.get(t);return a?a.aborted&&!a.settled?(this.evict(t,a),this.get(t,n,r,i)):a.settled?a.promise:(a.aborter.addSignal(r),a.statusReporter.addCallback(i),uc.checkSinglePromise(a.promise,r)):(this.fill(t,n,r,i),uc.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}}ap.default=uc;var GM=Nf&&Nf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Tx,"__esModule",{value:!0});const HM=GM(ap);var fc=Tx.default=HM.default;class VM{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 jM=VM;const cc=Xs(jM);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 a=1;a<n.length;a+=1){const o=n[a];o.min()>i.max()+1?(r.push(i),i=o):o.max()>i.max()&&(i=new ei(i.min(),o.max()))}return r.push(i),r.length===1?r[0]:new ei(r)}intersection(t){let n=this,r=t;const i=this.ranges(),a=r.ranges(),o=i.length,s=a.length;let u=0,l=0;const f=[];for(;u<o&&l<s;){n=i[u],r=a[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 qM=4,Rx=0,Mx=1,ZM=2;function oo(e){let t=e.length;for(;--t>=0;)e[t]=0}const WM=0,Px=1,YM=2,QM=3,$M=258,hp=29,bl=256,yl=bl+1+hp,so=30,dp=19,Lx=2*yl+1,sa=15,pp=16,XM=7,gp=256,Nx=16,Ox=17,zx=18,mp=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]),hc=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]),KM=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Ux=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),JM=512,cr=new Array((yl+2)*2);oo(cr);const wl=new Array(so*2);oo(wl);const vl=new Array(JM);oo(vl);const xl=new Array($M-QM+1);oo(xl);const bp=new Array(hp);oo(bp);const dc=new Array(so);oo(dc);function yp(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 Gx,Hx,Vx;function wp(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const jx=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>pp-n?(e.bi_buf|=t<<e.bi_valid&65535,Al(e,e.bi_buf),e.bi_buf=t>>pp-e.bi_valid,e.bi_valid+=n-pp):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},Wn=(e,t,n)=>{jt(e,n[t*2],n[t*2+1])},qx=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},eP=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)},tP=(e,t)=>{const n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,u=t.stat_desc.max_length;let l,f,c,h,d,p,m=0;for(h=0;h<=sa;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Lx;l++)f=e.heap[l],h=n[n[f*2+1]*2+1]+1,h>u&&(h=u,m++),n[f*2+1]=h,!(f>r)&&(e.bl_count[h]++,d=0,f>=s&&(d=o[f-s]),p=n[f*2],e.opt_len+=p*(h+d),a&&(e.static_len+=p*(i[f*2+1]+d)));if(m!==0){do{for(h=u-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[u]--,m-=2}while(m>0);for(h=u;h!==0;h--)for(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--)}},Zx=(e,t,n)=>{const r=new Array(sa+1);let i=0,a,o;for(a=1;a<=sa;a++)i=i+n[a-1]<<1,r[a]=i;for(o=0;o<=t;o++){let s=e[o*2+1];s!==0&&(e[o*2]=qx(r[s]++,s))}},nP=()=>{let e,t,n,r,i;const a=new Array(sa+1);for(n=0,r=0;r<hp-1;r++)for(bp[r]=n,e=0;e<1<<mp[r];e++)xl[n++]=r;for(xl[n-1]=r,i=0,r=0;r<16;r++)for(dc[r]=i,e=0;e<1<<hc[r];e++)vl[i++]=r;for(i>>=7;r<so;r++)for(dc[r]=i<<7,e=0;e<1<<hc[r]-7;e++)vl[256+i++]=r;for(t=0;t<=sa;t++)a[t]=0;for(e=0;e<=143;)cr[e*2+1]=8,e++,a[8]++;for(;e<=255;)cr[e*2+1]=9,e++,a[9]++;for(;e<=279;)cr[e*2+1]=7,e++,a[7]++;for(;e<=287;)cr[e*2+1]=8,e++,a[8]++;for(Zx(cr,yl+1,a),e=0;e<so;e++)wl[e*2+1]=5,wl[e*2]=qx(e,5);Gx=new yp(cr,mp,bl+1,yl,sa),Hx=new yp(wl,hc,0,so,sa),Vx=new yp(new Array(0),KM,0,dp,XM)},Wx=e=>{let t;for(t=0;t<yl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<so;t++)e.dyn_dtree[t*2]=0;for(t=0;t<dp;t++)e.bl_tree[t*2]=0;e.dyn_ltree[gp*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Yx=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,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]},vp=(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},$x=(e,t,n)=>{let r,i,a=0,o,s;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+a++]&255,r+=(e.pending_buf[e.sym_buf+a++]&255)<<8,i=e.pending_buf[e.sym_buf+a++],r===0?Wn(e,i,t):(o=xl[i],Wn(e,o+bl+1,t),s=mp[o],s!==0&&(i-=bp[o],jt(e,i,s)),r--,o=jx(r),Wn(e,o,n),s=hc[o],s!==0&&(r-=dc[o],jt(e,r,s)));while(a<e.sym_next);Wn(e,gp,t)},xp=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems;let o,s,u=-1,l;for(e.heap_len=0,e.heap_max=Lx,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=u=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=u,o=e.heap_len>>1;o>=1;o--)vp(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],vp(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,vp(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],tP(e,t),Zx(n,u,e.bl_count)},Xx=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)&&(s<l?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[Nx*2]++):s<=10?e.bl_tree[Ox*2]++:e.bl_tree[zx*2]++,s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4))},Kx=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)){if(s<l)do Wn(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(Wn(e,a,e.bl_tree),s--),Wn(e,Nx,e.bl_tree),jt(e,s-3,2)):s<=10?(Wn(e,Ox,e.bl_tree),jt(e,s-3,3)):(Wn(e,zx,e.bl_tree),jt(e,s-11,7));s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4)}},rP=e=>{let t;for(Xx(e,e.dyn_ltree,e.l_desc.max_code),Xx(e,e.dyn_dtree,e.d_desc.max_code),xp(e,e.bl_desc),t=dp-1;t>=3&&e.bl_tree[Ux[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},iP=(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[Ux[i]*2+1],3);Kx(e,e.dyn_ltree,t-1),Kx(e,e.dyn_dtree,n-1)},aP=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Rx;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Mx;for(n=32;n<bl;n++)if(e.dyn_ltree[n*2]!==0)return Mx;return Rx};let Jx=!1;const oP=e=>{Jx||(nP(),Jx=!0),e.l_desc=new wp(e.dyn_ltree,Gx),e.d_desc=new wp(e.dyn_dtree,Hx),e.bl_desc=new wp(e.bl_tree,Vx),e.bi_buf=0,e.bi_valid=0,Wx(e)},eA=(e,t,n,r)=>{jt(e,(WM<<1)+(r?1:0),3),Yx(e),Al(e,n),Al(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},sP=e=>{jt(e,Px<<1,3),Wn(e,gp,cr),eP(e)},lP=(e,t,n,r)=>{let i,a,o=0;e.level>0?(e.strm.data_type===ZM&&(e.strm.data_type=aP(e)),xp(e,e.l_desc),xp(e,e.d_desc),o=rP(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&t!==-1?eA(e,t,n,r):e.strategy===qM||a===i?(jt(e,(Px<<1)+(r?1:0),3),$x(e,cr,wl)):(jt(e,(YM<<1)+(r?1:0),3),iP(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),$x(e,e.dyn_ltree,e.dyn_dtree)),Wx(e),r&&Yx(e)},uP=(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[jx(t)*2]++),e.sym_next===e.sym_end);var fP=oP,cP=eA,hP=lP,dP=uP,pP=sP,gP={_tr_init:fP,_tr_stored_block:cP,_tr_flush_block:hP,_tr_tally:dP,_tr_align:pP},El=(e,t,n,r)=>{let i=e&65535|0,a=e>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0};const mP=()=>{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},bP=new Uint32Array(mP());var dt=(e,t,n,r)=>{const i=bP,a=r+n;e^=-1;for(let o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1},lo={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:yP,_tr_stored_block:Ap,_tr_flush_block:wP,_tr_tally:ti,_tr_align:vP}=gP,{Z_NO_FLUSH:ni,Z_PARTIAL_FLUSH:xP,Z_FULL_FLUSH:AP,Z_FINISH:un,Z_BLOCK:tA,Z_OK:wt,Z_STREAM_END:nA,Z_STREAM_ERROR:Yn,Z_DATA_ERROR:EP,Z_BUF_ERROR:Ep,Z_DEFAULT_COMPRESSION:_P,Z_FILTERED:SP,Z_HUFFMAN_ONLY:pc,Z_RLE:CP,Z_FIXED:TP,Z_DEFAULT_STRATEGY:kP,Z_UNKNOWN:IP,Z_DEFLATED:gc}=_l,BP=9,DP=15,FP=8,RP=29,_p=256+1+RP,MP=30,PP=19,LP=2*_p+1,NP=15,de=3,ri=258,Qn=ri+de+1,OP=32,uo=42,Sp=57,Cp=69,Tp=73,kp=91,Ip=103,la=113,Sl=666,Bt=1,fo=2,ua=3,co=4,zP=3,fa=(e,t)=>(e.msg=lo[t],t),rA=e=>e*2-(e>4?9:0),ii=e=>{let t=e.length;for(;--t>=0;)e[t]=0},UP=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 ai=(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))},Xt=(e,t)=>{wP(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},Cl=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},Bp=(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)},iA=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match;const u=e.strstart>e.w_size-Qn?e.strstart-(e.w_size-Qn):0,l=e.window,f=e.w_mask,c=e.prev,h=e.strstart+ri;let d=l[r+o-1],p=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(l[i+o]!==p||l[i+o-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(a=ri-(h-r),r=h-ri,a>o){if(e.match_start=t,o=a,a>=s)break;d=l[r+o-1],p=l[r+o]}}while((t=c[t&f])>u&&--n!==0);return o<=e.lookahead?o:e.lookahead},ho=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Qn)&&(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),UP(e),r+=t),e.strm.avail_in===0)break;if(n=Bp(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=ai(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=ai(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<Qn&&e.strm.avail_in!==0)},aA=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,a,o=0,s=e.strm.avail_in;do{if(r=65535,a=e.bi_valid+42>>3,e.strm.avail_out<a||(a=e.strm.avail_out-a,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>a&&(r=a),r<n&&(r===0&&t!==un||t===ni||r!==i+e.strm.avail_in)))break;o=t===un&&r===i+e.strm.avail_in?1:0,Ap(e,0,0,o),e.pending_buf[e.pending-4]=r,e.pending_buf[e.pending-3]=r>>8,e.pending_buf[e.pending-2]=~r,e.pending_buf[e.pending-1]=~r>>8,$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&&(Bp(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(o===0);return s-=e.strm.avail_in,s&&(s>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=s&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-s,e.strm.next_in),e.strstart),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),o?co:t!==ni&&t!==un&&e.strm.avail_in===0&&e.strstart===e.block_start?fo:(a=e.window_size-e.strstart,e.strm.avail_in>a&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,a+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),a>e.strm.avail_in&&(a=e.strm.avail_in),a&&(Bp(e.strm,e.window,e.strstart,a),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.high_water<e.strstart&&(e.high_water=e.strstart),a=e.bi_valid+42>>3,a=e.pending_buf_size-a>65535?65535:e.pending_buf_size-a,n=a>e.w_size?e.w_size:a,i=e.strstart-e.block_start,(i>=n||(i||t===un)&&t!==ni&&e.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=t===un&&e.strm.avail_in===0&&r===i?1:0,Ap(e,e.block_start,r,o),e.block_start+=r,$t(e.strm)),o?ua:Bt)},Dp=(e,t)=>{let n,r;for(;;){if(e.lookahead<Qn){if(ho(e),e.lookahead<Qn&&t===ni)return Bt;if(e.lookahead===0)break}if(n=0,e.lookahead>=de&&(e.ins_h=ai(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-Qn&&(e.match_length=iA(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=ai(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=ai(e,e.ins_h,e.window[e.strstart+1]);else r=ti(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(Xt(e,!1),e.strm.avail_out===0))return Bt}return e.insert=e.strstart<de-1?e.strstart:de-1,t===un?(Xt(e,!0),e.strm.avail_out===0?ua:co):e.sym_next&&(Xt(e,!1),e.strm.avail_out===0)?Bt:fo},po=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<Qn){if(ho(e),e.lookahead<Qn&&t===ni)return Bt;if(e.lookahead===0)break}if(n=0,e.lookahead>=de&&(e.ins_h=ai(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-Qn&&(e.match_length=iA(e,n),e.match_length<=5&&(e.strategy===SP||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=ai(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&&(Xt(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&&Xt(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?(Xt(e,!0),e.strm.avail_out===0?ua:co):e.sym_next&&(Xt(e,!1),e.strm.avail_out===0)?Bt:fo},GP=(e,t)=>{let n,r,i,a;const o=e.window;for(;;){if(e.lookahead<=ri){if(ho(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=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+ri;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=ri-(a-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&&(Xt(e,!1),e.strm.avail_out===0))return Bt}return e.insert=0,t===un?(Xt(e,!0),e.strm.avail_out===0?ua:co):e.sym_next&&(Xt(e,!1),e.strm.avail_out===0)?Bt:fo},HP=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(ho(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&&(Xt(e,!1),e.strm.avail_out===0))return Bt}return e.insert=0,t===un?(Xt(e,!0),e.strm.avail_out===0?ua:co):e.sym_next&&(Xt(e,!1),e.strm.avail_out===0)?Bt:fo};function $n(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 Tl=[new $n(0,0,0,0,aA),new $n(4,4,8,4,Dp),new $n(4,5,16,8,Dp),new $n(4,6,32,32,Dp),new $n(4,4,16,16,po),new $n(8,16,32,32,po),new $n(8,16,128,128,po),new $n(8,32,128,256,po),new $n(32,128,258,1024,po),new $n(32,258,258,4096,po)],VP=e=>{e.window_size=2*e.w_size,ii(e.head),e.max_lazy_match=Tl[e.level].max_lazy,e.good_match=Tl[e.level].good_length,e.nice_match=Tl[e.level].nice_length,e.max_chain_length=Tl[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 jP(){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=gc,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(LP*2),this.dyn_dtree=new Uint16Array((2*MP+1)*2),this.bl_tree=new Uint16Array((2*PP+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(NP+1),this.heap=new Uint16Array(2*_p+1),ii(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*_p+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 kl=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==uo&&t.status!==Sp&&t.status!==Cp&&t.status!==Tp&&t.status!==kp&&t.status!==Ip&&t.status!==la&&t.status!==Sl?1:0},oA=e=>{if(kl(e))return fa(e,Yn);e.total_in=e.total_out=0,e.data_type=IP;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?Sp:t.wrap?uo:la,e.adler=t.wrap===2?0:1,t.last_flush=-2,yP(t),wt},sA=e=>{const t=oA(e);return t===wt&&VP(e.state),t},qP=(e,t)=>kl(e)||e.state.wrap!==2?Yn:(e.state.gzhead=t,wt),lA=(e,t,n,r,i,a)=>{if(!e)return Yn;let o=1;if(t===_P&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>BP||n!==gc||r<8||r>15||t<0||t>9||a<0||a>TP||r===8&&o!==1)return fa(e,Yn);r===8&&(r=9);const s=new jP;return e.state=s,s.strm=e,s.status=uo,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+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=a,s.method=n,sA(e)},ZP=(e,t)=>lA(e,t,gc,DP,FP,kP),WP=(e,t)=>{if(kl(e)||t>tA||t<0)return e?fa(e,Yn):Yn;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===Sl&&t!==un)return fa(e,e.avail_out===0?Ep:Yn);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,wt}else if(e.avail_in===0&&rA(t)<=rA(r)&&t!==un)return fa(e,Ep);if(n.status===Sl&&e.avail_in!==0)return fa(e,Ep);if(n.status===uo&&n.wrap===0&&(n.status=la),n.status===uo){let i=gc+(n.w_bits-8<<4)<<8,a=-1;if(n.strategy>=pc||n.level<2?a=0:n.level<6?a=1:n.level===6?a=2:a=3,i|=a<<6,n.strstart!==0&&(i|=OP),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=la,$t(e),n.pending!==0)return n.last_flush=-1,wt}if(n.status===Sp){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>=pc||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=Cp;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>=pc||n.level<2?4:0),xe(n,zP),n.status=la,$t(e),n.pending!==0)return n.last_flush=-1,wt}if(n.status===Cp){if(n.gzhead.extra){let i=n.pending,a=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+a>n.pending_buf_size;){let s=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,$t(e),n.pending!==0)return n.last_flush=-1,wt;i=0,a-=s}let o=new Uint8Array(n.gzhead.extra);n.pending_buf.set(o.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending+=a,n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=Tp}if(n.status===Tp){if(n.gzhead.name){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i)),$t(e),n.pending!==0)return n.last_flush=-1,wt;i=0}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,xe(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=kp}if(n.status===kp){if(n.gzhead.comment){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i)),$t(e),n.pending!==0)return n.last_flush=-1,wt;i=0}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,xe(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i))}n.status=Ip}if(n.status===Ip){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&($t(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=la,$t(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?aA(n,t):n.strategy===pc?HP(n,t):n.strategy===CP?GP(n,t):Tl[n.level].func(n,t);if((i===ua||i===co)&&(n.status=Sl),i===Bt||i===ua)return e.avail_out===0&&(n.last_flush=-1),wt;if(i===fo&&(t===xP?vP(n):t!==tA&&(Ap(n,0,0,!1),t===AP&&(ii(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,wt}return t!==un?wt:n.wrap<=0?nA:(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)),$t(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?wt:nA)},YP=e=>{if(kl(e))return Yn;const t=e.state.status;return e.state=null,t===la?fa(e,EP):wt},QP=(e,t)=>{let n=t.length;if(kl(e))return Yn;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==uo||r.lookahead)return Yn;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 a=e.avail_in,o=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,ho(r);r.lookahead>=de;){let u=r.strstart,l=r.lookahead-(de-1);do r.ins_h=ai(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,ho(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=o,e.input=s,e.avail_in=a,r.wrap=i,wt};var $P=ZP,XP=lA,KP=sA,JP=oA,eL=qP,tL=WP,nL=YP,rL=QP,iL="pako deflate (from Nodeca project)",Il={deflateInit:$P,deflateInit2:XP,deflateReset:KP,deflateResetKeep:JP,deflateSetHeader:eL,deflate:tL,deflateEnd:nL,deflateSetDictionary:rL,deflateInfo:iL};const aL=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var oL=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)aL(n,r)&&(e[r]=n[r])}}return e},sL=e=>{let t=0;for(let r=0,i=e.length;r<i;r++)t+=e[r].length;const n=new Uint8Array(t);for(let r=0,i=0,a=e.length;r<a;r++){let o=e[r];n.set(o,i),i+=o.length}return n},mc={assign:oL,flattenChunks:sL};let uA=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{uA=!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 lL=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,a,o=e.length,s=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(s),a=0,i=0;a<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t};const uL=(e,t)=>{if(t<65534&&e.subarray&&uA)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 fL=(e,t)=>{const n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let r,i;const a=new Array(n*2);for(i=0,r=0;r<n;){let o=e[r++];if(o<128){a[i++]=o;continue}let s=Bl[o];if(s>4){a[i++]=65533,r+=s-1;continue}for(o&=s===2?31:s===3?15:7;s>1&&r<n;)o=o<<6|e[r++]&63,s--;if(s>1){a[i++]=65533;continue}o<65536?a[i++]=o:(o-=65536,a[i++]=55296|o>>10&1023,a[i++]=56320|o&1023)}return uL(a,i)},cL=(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:lL,buf2string:fL,utf8border:cL};function hL(){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 fA=hL;const cA=Object.prototype.toString,{Z_NO_FLUSH:dL,Z_SYNC_FLUSH:pL,Z_FULL_FLUSH:gL,Z_FINISH:mL,Z_OK:bc,Z_STREAM_END:bL,Z_DEFAULT_COMPRESSION:yL,Z_DEFAULT_STRATEGY:wL,Z_DEFLATED:vL}=_l;function Fp(e){this.options=mc.assign({level:yL,method:vL,chunkSize:16384,windowBits:15,memLevel:8,strategy:wL},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 fA,this.strm.avail_out=0;let n=Il.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==bc)throw new Error(lo[n]);if(t.header&&Il.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=Dl.string2buf(t.dictionary):cA.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=Il.deflateSetDictionary(this.strm,r),n!==bc)throw new Error(lo[n]);this._dict_set=!0}}Fp.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let i,a;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?mL:dL,typeof e=="string"?n.input=Dl.string2buf(e):cA.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(a===pL||a===gL)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=Il.deflate(n,a),i===bL)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===bc;if(n.avail_out===0){this.onData(n.output);continue}if(a>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0},Fp.prototype.onData=function(e){this.chunks.push(e)},Fp.prototype.onEnd=function(e){e===bc&&(this.result=mc.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const yc=16209,xL=16191;var AL=function(t,n){let r,i,a,o,s,u,l,f,c,h,d,p,m,y,w,_,C,E,k,B,I,R,L,j;const M=t.state;r=t.next_in,L=t.input,i=r+(t.avail_in-5),a=t.next_out,j=t.output,o=a-(n-t.avail_out),s=a+(t.avail_out-257),u=M.dmax,l=M.wsize,f=M.whave,c=M.wnext,h=M.window,d=M.hold,p=M.bits,m=M.lencode,y=M.distcode,w=(1<<M.lenbits)-1,_=(1<<M.distbits)-1;e:do{p<15&&(d+=L[r++]<<p,p+=8,d+=L[r++]<<p,p+=8),C=m[d&w];t:for(;;){if(E=C>>>24,d>>>=E,p-=E,E=C>>>16&255,E===0)j[a++]=C&65535;else if(E&16){k=C&65535,E&=15,E&&(p<E&&(d+=L[r++]<<p,p+=8),k+=d&(1<<E)-1,d>>>=E,p-=E),p<15&&(d+=L[r++]<<p,p+=8,d+=L[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+=L[r++]<<p,p+=8,p<E&&(d+=L[r++]<<p,p+=8)),B+=d&(1<<E)-1,B>u){t.msg="invalid distance too far back",M.mode=yc;break e}if(d>>>=E,p-=E,E=a-o,B>E){if(E=B-E,E>f&&M.sane){t.msg="invalid distance too far back",M.mode=yc;break e}if(I=0,R=h,c===0){if(I+=l-E,E<k){k-=E;do j[a++]=h[I++];while(--E);I=a-B,R=j}}else if(c<E){if(I+=l+c-E,E-=c,E<k){k-=E;do j[a++]=h[I++];while(--E);if(I=0,c<k){E=c,k-=E;do j[a++]=h[I++];while(--E);I=a-B,R=j}}}else if(I+=c-E,E<k){k-=E;do j[a++]=h[I++];while(--E);I=a-B,R=j}for(;k>2;)j[a++]=R[I++],j[a++]=R[I++],j[a++]=R[I++],k-=3;k&&(j[a++]=R[I++],k>1&&(j[a++]=R[I++]))}else{I=a-B;do j[a++]=j[I++],j[a++]=j[I++],j[a++]=j[I++],k-=3;while(k>2);k&&(j[a++]=j[I++],k>1&&(j[a++]=j[I++]))}}else if(E&64){t.msg="invalid distance code",M.mode=yc;break e}else{C=y[(C&65535)+(d&(1<<E)-1)];continue n}break}}else if(E&64)if(E&32){M.mode=xL;break e}else{t.msg="invalid literal/length code",M.mode=yc;break e}else{C=m[(C&65535)+(d&(1<<E)-1)];continue t}break}}while(r<i&&a<s);k=p>>3,r-=k,p-=k<<3,d&=(1<<p)-1,t.next_in=r,t.next_out=a,t.avail_in=r<i?5+(i-r):5-(r-i),t.avail_out=a<s?257+(s-a):257-(a-s),M.hold=d,M.bits=p};const go=15,hA=852,dA=592,pA=0,Rp=1,gA=2,EL=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]),_L=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]),SL=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]),CL=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,a,o,s)=>{const u=s.bits;let l=0,f=0,c=0,h=0,d=0,p=0,m=0,y=0,w=0,_=0,C,E,k,B,I,R=null,L;const j=new Uint16Array(go+1),M=new Uint16Array(go+1);let ie=null,se,ge,Ie;for(l=0;l<=go;l++)j[l]=0;for(f=0;f<r;f++)j[t[n+f]]++;for(d=u,h=go;h>=1&&j[h]===0;h--);if(d>h&&(d=h),h===0)return i[a++]=1<<24|64<<16|0,i[a++]=1<<24|64<<16|0,s.bits=1,0;for(c=1;c<h&&j[c]===0;c++);for(d<c&&(d=c),y=1,l=1;l<=go;l++)if(y<<=1,y-=j[l],y<0)return-1;if(y>0&&(e===pA||h!==1))return-1;for(M[1]=0,l=1;l<go;l++)M[l+1]=M[l]+j[l];for(f=0;f<r;f++)t[n+f]!==0&&(o[M[t[n+f]]++]=f);if(e===pA?(R=ie=o,L=20):e===Rp?(R=EL,ie=_L,L=257):(R=SL,ie=CL,L=0),_=0,f=0,l=c,I=a,p=d,m=0,k=-1,w=1<<d,B=w-1,e===Rp&&w>hA||e===gA&&w>dA)return 1;for(;;){se=l-m,o[f]+1<L?(ge=0,Ie=o[f]):o[f]>=L?(ge=ie[o[f]-L],Ie=R[o[f]-L]):(ge=32+64,Ie=0),C=1<<l-m,E=1<<p,c=E;do E-=C,i[I+(_>>m)+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+o[f]]}if(l>d&&(_&B)!==k){for(m===0&&(m=d),I+=c,p=l-m,y=1<<p;p+m<h&&(y-=j[p+m],!(y<=0));)p++,y<<=1;if(w+=1<<p,e===Rp&&w>hA||e===gA&&w>dA)return 1;k=_&B,i[k]=d<<24|p<<16|I-a|0}}return _!==0&&(i[I+_]=l-m<<24|64<<16|0),s.bits=d,0};const TL=0,mA=1,bA=2,{Z_FINISH:yA,Z_BLOCK:kL,Z_TREES:wc,Z_OK:ca,Z_STREAM_END:IL,Z_NEED_DICT:BL,Z_STREAM_ERROR:fn,Z_DATA_ERROR:wA,Z_MEM_ERROR:vA,Z_BUF_ERROR:DL,Z_DEFLATED:xA}=_l,vc=16180,AA=16181,EA=16182,_A=16183,SA=16184,CA=16185,TA=16186,kA=16187,IA=16188,BA=16189,xc=16190,hr=16191,Mp=16192,DA=16193,Pp=16194,FA=16195,RA=16196,MA=16197,PA=16198,Ac=16199,Ec=16200,LA=16201,NA=16202,OA=16203,zA=16204,UA=16205,Lp=16206,GA=16207,HA=16208,qe=16209,VA=16210,jA=16211,FL=852,RL=592,ML=15,qA=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function PL(){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 ha=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<vc||t.mode>jA?1:0},ZA=e=>{if(ha(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=vc,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(FL),t.distcode=t.distdyn=new Int32Array(RL),t.sane=1,t.back=-1,ca},WA=e=>{if(ha(e))return fn;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,ZA(e)},YA=(e,t)=>{let n;if(ha(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,WA(e))},QA=(e,t)=>{if(!e)return fn;const n=new PL;e.state=n,n.strm=e,n.window=null,n.mode=vc;const r=YA(e,t);return r!==ca&&(e.state=null),r},LL=e=>QA(e,ML);let $A=!0,Np,Op;const NL=e=>{if($A){Np=new Int32Array(512),Op=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(mA,e.lens,0,288,Np,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Fl(bA,e.lens,0,32,Op,0,e.work,{bits:5}),$A=!1}e.lencode=Np,e.lenbits=9,e.distcode=Op,e.distbits=5},XA=(e,t,n,r)=>{let i;const a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),r>=a.wsize?(a.window.set(t.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),a.window.set(t.subarray(n-r,n-r+i),a.wnext),r-=i,r?(a.window.set(t.subarray(n-r,n),0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0},OL=(e,t)=>{let n,r,i,a,o,s,u,l,f,c,h,d,p,m,y=0,w,_,C,E,k,B,I,R;const L=new Uint8Array(4);let j,M;const ie=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(ha(e)||!e.output||!e.input&&e.avail_in!==0)return fn;n=e.state,n.mode===hr&&(n.mode=Mp),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,f=n.bits,c=s,h=u,R=ca;e:for(;;)switch(n.mode){case vc:if(n.wrap===0){n.mode=Mp;break}for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.wrap&2&&l===35615){n.wbits===0&&(n.wbits=15),n.check=0,L[0]=l&255,L[1]=l>>>8&255,n.check=dt(n.check,L,2,0),l=0,f=0,n.mode=AA;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)!==xA){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?BA:hr,l=0,f=0;break;case AA:for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.flags=l,(n.flags&255)!==xA){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&&(L[0]=l&255,L[1]=l>>>8&255,n.check=dt(n.check,L,2,0)),l=0,f=0,n.mode=EA;case EA:for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.head&&(n.head.time=l),n.flags&512&&n.wrap&4&&(L[0]=l&255,L[1]=l>>>8&255,L[2]=l>>>16&255,L[3]=l>>>24&255,n.check=dt(n.check,L,4,0)),l=0,f=0,n.mode=_A;case _A:for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&n.wrap&4&&(L[0]=l&255,L[1]=l>>>8&255,n.check=dt(n.check,L,2,0)),l=0,f=0,n.mode=SA;case SA:if(n.flags&1024){for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&n.wrap&4&&(L[0]=l&255,L[1]=l>>>8&255,n.check=dt(n.check,L,2,0)),l=0,f=0}else n.head&&(n.head.extra=null);n.mode=CA;case CA: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(a,a+d),I)),n.flags&512&&n.wrap&4&&(n.check=dt(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=TA;case TA:if(n.flags&2048){if(s===0)break e;d=0;do I=r[a+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,a)),s-=d,a+=d,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=kA;case kA:if(n.flags&4096){if(s===0)break e;d=0;do I=r[a+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,a)),s-=d,a+=d,I)break e}else n.head&&(n.head.comment=null);n.mode=IA;case IA:if(n.flags&512){for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<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 BA:for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}e.adler=n.check=qA(l),l=0,f=0,n.mode=xc;case xc:if(n.havedict===0)return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,BL;e.adler=n.check=1,n.mode=hr;case hr:if(t===kL||t===wc)break e;case Mp:if(n.last){l>>>=f&7,f-=f&7,n.mode=Lp;break}for(;f<3;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}switch(n.last=l&1,l>>>=1,f-=1,l&3){case 0:n.mode=DA;break;case 1:if(NL(n),n.mode=Ac,t===wc){l>>>=2,f-=2;break e}break;case 2:n.mode=RA;break;case 3:e.msg="invalid block type",n.mode=qe}l>>>=2,f-=2;break;case DA:for(l>>>=f&7,f-=f&7;f<32;){if(s===0)break e;s--,l+=r[a++]<<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=Pp,t===wc)break e;case Pp:n.mode=FA;case FA:if(d=n.length,d){if(d>s&&(d=s),d>u&&(d=u),d===0)break e;i.set(r.subarray(a,a+d),o),s-=d,a+=d,u-=d,o+=d,n.length-=d;break}n.mode=hr;break;case RA:for(;f<14;){if(s===0)break e;s--,l+=r[a++]<<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=MA;case MA:for(;n.have<n.ncode;){for(;f<3;){if(s===0)break e;s--,l+=r[a++]<<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(TL,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=PA;case PA: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[a++]<<f,f+=8}if(C<16)l>>>=w,f-=w,n.lens[n.have++]=C;else{if(C===16){for(M=w+2;f<M;){if(s===0)break e;s--,l+=r[a++]<<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(M=w+3;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=w,f-=w,I=0,d=3+(l&7),l>>>=3,f-=3}else{for(M=w+7;f<M;){if(s===0)break e;s--,l+=r[a++]<<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(mA,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(bA,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=Ac,t===wc)break e;case Ac:n.mode=Ec;case Ec:if(s>=6&&u>=258){e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,AL(e,h),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,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[a++]<<f,f+=8}if(_&&!(_&240)){for(E=w,k=_,B=C;y=n.lencode[B+((l&(1<<E+k)-1)>>E)],w=y>>>24,_=y>>>16&255,C=y&65535,!(E+w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=E,f-=E,n.back+=E}if(l>>>=w,f-=w,n.back+=w,n.length=C,_===0){n.mode=UA;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=LA;case LA:if(n.extra){for(M=n.extra;f<M;){if(s===0)break e;s--,l+=r[a++]<<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=NA;case NA: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[a++]<<f,f+=8}if(!(_&240)){for(E=w,k=_,B=C;y=n.distcode[B+((l&(1<<E+k)-1)>>E)],w=y>>>24,_=y>>>16&255,C=y&65535,!(E+w<=f);){if(s===0)break e;s--,l+=r[a++]<<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=OA;case OA:if(n.extra){for(M=n.extra;f<M;){if(s===0)break e;s--,l+=r[a++]<<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=zA;case zA:if(u===0)break e;if(d=h-u,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=qe;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),m=n.window}else m=i,p=o-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[o++]=m[p++];while(--d);n.length===0&&(n.mode=Ec);break;case UA:if(u===0)break e;i[o++]=n.length,u--,n.mode=Ec;break;case Lp:if(n.wrap){for(;f<32;){if(s===0)break e;s--,l|=r[a++]<<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,o-h):El(n.check,i,h,o-h)),h=u,n.wrap&4&&(n.flags?l:qA(l))!==n.check){e.msg="incorrect data check",n.mode=qe;break}l=0,f=0}n.mode=GA;case GA:if(n.wrap&&n.flags){for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<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=HA;case HA:R=IL;break e;case qe:R=wA;break e;case VA:return vA;case jA:default:return fn}return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,(n.wsize||h!==e.avail_out&&n.mode<qe&&(n.mode<Lp||t!==yA))&&XA(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===Ac||n.mode===Pp?256:0),(c===0&&h===0||t===yA)&&R===ca&&(R=DL),R},zL=e=>{if(ha(e))return fn;let t=e.state;return t.window&&(t.window=null),e.state=null,ca},UL=(e,t)=>{if(ha(e))return fn;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,ca):fn},GL=(e,t)=>{const n=t.length;let r,i,a;return ha(e)||(r=e.state,r.wrap!==0&&r.mode!==xc)?fn:r.mode===xc&&(i=1,i=El(i,t,n,0),i!==r.check)?wA:(a=XA(e,t,n,n),a?(r.mode=VA,vA):(r.havedict=1,ca))};var HL=WA,VL=YA,jL=ZA,qL=LL,ZL=QA,WL=OL,YL=zL,QL=UL,$L=GL,XL="pako inflate (from Nodeca project)",dr={inflateReset:HL,inflateReset2:VL,inflateResetKeep:jL,inflateInit:qL,inflateInit2:ZL,inflate:WL,inflateEnd:YL,inflateGetHeader:QL,inflateSetDictionary:$L,inflateInfo:XL};function KL(){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 JL=KL;const KA=Object.prototype.toString,{Z_NO_FLUSH:eN,Z_FINISH:tN,Z_OK:Rl,Z_STREAM_END:zp,Z_NEED_DICT:Up,Z_STREAM_ERROR:nN,Z_DATA_ERROR:JA,Z_MEM_ERROR:rN}=_l;function Ml(e){this.options=mc.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 fA,this.strm.avail_out=0;let n=dr.inflateInit2(this.strm,t.windowBits);if(n!==Rl)throw new Error(lo[n]);if(this.header=new JL,dr.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Dl.string2buf(t.dictionary):KA.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(lo[n])}Ml.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let a,o,s;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?tN:eN,KA.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),a=dr.inflate(n,o),a===Up&&i&&(a=dr.inflateSetDictionary(n,i),a===Rl?a=dr.inflate(n,o):a===JA&&(a=Up));n.avail_in>0&&a===zp&&n.state.wrap>0&&e[n.next_in]!==0;)dr.inflateReset(n),a=dr.inflate(n,o);switch(a){case nN:case JA:case Up:case rN:return this.onEnd(a),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||a===zp))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(!(a===Rl&&s===0)){if(a===zp)return a=dr.inflateEnd(this.strm),this.onEnd(a),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=mc.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Gp(e,t){const n=new Ml(t);if(n.push(e),n.err)throw n.msg||lo[n.err];return n.result}function iN(e,t){return t=t||{},t.raw=!0,Gp(e,t)}var aN=Ml,oN=Gp,sN=iN,lN=Gp,uN=_l,fN={Inflate:aN,inflate:oN,inflateRaw:sN,ungzip:lN,constants:uN};const{Inflate:iU,inflate:aU,inflateRaw:cN,ungzip:oU}=fN;var hN=cN;function dN(e){return hN(e.subarray(2))}let pN=class extends Error{constructor(t){super(t),this.code="ERR_ABORTED"}};function gN(e){e.sort((i,a)=>Number(i.offset)-Number(a.offset));const t=[];let n,r;for(const i of e)n&&r&&Number(i.offset)-r<=2e3?(n.length=BigInt(Number(n.length)+Number(i.length)-r+Number(i.offset)),n.blocks.push(i)):t.push(n={blocks:[i],length:i.length,offset:i.offset}),r=Number(n.offset)+Number(n.length);return t}function _c(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new pN("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}const mN=1,bN=2,yN=3;function Hp(e,t,n,r){return e<r&&t>=n}function wN(e){const t=e?"big":"little",n=new ke().endianess(t).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new ke().endianess(t).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new ke().endianess(t).array("blocksToFetch",{length:"cnt",type:new ke().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new ke().array("recurOffsets",{length:"cnt",type:new ke().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new ke().endianess(t).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new ke().endianess(t).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[yN]:new ke().array("items",{length:"itemCount",type:new ke().floatle("score")}),[bN]:new ke().array("items",{length:"itemCount",type:new ke().endianess(t).int32("start").floatle("score")}),[mN]:new ke().array("items",{length:"itemCount",type:new ke().endianess(t).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class e3{constructor(t,n,r,i,a,o){if(this.bbi=t,this.refsByName=n,this.cirTreeOffset=r,this.isBigEndian=i,this.isCompressed=a,this.blockType=o,this.featureCache=new fc({cache:new cc({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=wN(i);this.leafParser=s.leafParser,this.bigBedParser=s.bigBedParser}async readWigData(t,n,r,i,a){try{const{refsByName:o,bbi:s,cirTreeOffset:u,isBigEndian:l}=this,f=o[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),a));const{buffer:h}=await this.cirTreePromise,d=l?h.readUInt32BE(4):h.readUInt32LE(4);let p=[],m=0;const y=(E,k,B)=>{try{const I=E.subarray(k),R=this.leafParser.parse(I);if(R.blocksToFetch&&(p=p.concat(R.blocksToFetch.filter(L=>w(L)).map(L=>({offset:L.blockOffset,length:L.blockSize})))),R.recurOffsets){const L=R.recurOffsets.filter(j=>w(j)).map(j=>Number(j.blockOffset));L.length>0&&C(L,B+1)}}catch(I){i.error(I)}},w=E=>{const{startChrom:k,startBase:B,endChrom:I,endBase:R}=E;return(k<f||k===f&&B<=r)&&(I>f||I===f&&R>=n)},_=async(E,k,B)=>{try{const I=k.max()-k.min(),R=k.min(),L=await this.featureCache.get(`${I}_${R}`,{length:I,offset:R},a==null?void 0:a.signal);for(const j of E)k.contains(j)&&(y(L,j-R,B),m-=1,m===0&&this.readFeatures(i,p,{...a,request:c}))}catch(I){i.error(I)}},C=(E,k)=>{try{m+=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 L=new ei(E[R],E[R]+B);I=I.union(L)}I.getRanges().map(R=>_(E,R,k))}catch(B){i.error(B)}};return C([Number(u)+48],1)}catch(o){i.error(o)}}parseSummaryBlock(t,n,r){const i=[];let a=n;const o=new DataView(t.buffer,t.byteOffset,t.length);for(;a<t.byteLength;){const s=o.getUint32(a,!0);a+=4;const u=o.getUint32(a,!0);a+=4;const l=o.getUint32(a,!0);a+=4;const f=o.getUint32(a,!0);a+=4;const c=o.getFloat32(a,!0);a+=4;const h=o.getFloat32(a,!0);a+=4;const d=o.getFloat32(a,!0);a+=4,a+=4,(!r||s===r.chrId&&Hp(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 a=[];let o=n;for(;o<t.byteLength;){const s=this.bigBedParser.parse(t.subarray(o));s.uniqueId=`bb-${r+o}`,a.push(s),o+=s.offset}return i?a.filter(s=>Hp(s.start,s.end,i.start,i.end)):a}parseBigWigBlock(t,n,r){const i=t.subarray(n),a=new DataView(i.buffer,i.byteOffset,i.length);let o=0;o+=4;const s=a.getInt32(o,!0);o+=8;const u=a.getUint32(o,!0);o+=4;const l=a.getUint32(o,!0);o+=4;const f=a.getUint8(o);o+=2;const c=a.getUint16(o,!0);o+=2;const h=new Array(c);switch(f){case 1:{for(let d=0;d<c;d++){const p=a.getInt32(o,!0);o+=4;const m=a.getInt32(o,!0);o+=4;const y=a.getFloat32(o,!0);o+=4,h[d]={start:p,end:m,score:y}}break}case 2:{for(let d=0;d<c;d++){const p=a.getInt32(o,!0);o+=4;const m=a.getFloat32(o,!0);o+=4,h[d]={score:m,start:p,end:p+l}}break}case 3:{for(let d=0;d<c;d++){const p=a.getFloat32(o,!0);o+=4;const m=s+d*u;h[d]={score:p,start:m,end:m+l}}break}}return r?h.filter(d=>Hp(d.start,d.end,r.start,r.end)):h}async readFeatures(t,n,r={}){try{const{blockType:i,isCompressed:a}=this,{signal:o,request:s}=r,u=gN(n);_c(o),await Promise.all(u.map(async l=>{_c(o);const{length:f,offset:c}=l,h=await this.featureCache.get(`${f}_${c}`,l,o);for(const d of l.blocks){_c(o);let p=Number(d.offset)-Number(l.offset),m=h;switch(a&&(m=dN(h.subarray(p)),p=0),_c(o),i){case"summary":{t.next(this.parseSummaryBlock(m,p,s));break}case"bigwig":{t.next(this.parseBigWigBlock(m,p,s));break}case"bigbed":{t.next(this.parseBigBedBlock(m,p,Number(d.offset)*256,s));break}default:console.warn(`Don't know what to do with ${i}`)}}})),t.complete()}catch(i){t.error(i)}}}var Vp=function(e,t){return Vp=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])},Vp(e,t)};function jp(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Vp(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function vN(e,t,n,r){function i(a){return a instanceof n?a:new n(function(o){o(a)})}return new(n||(n=Promise))(function(a,o){function s(f){try{l(r.next(f))}catch(c){o(c)}}function u(f){try{l(r.throw(f))}catch(c){o(c)}}function l(f){f.done?a(f.value):i(f.value).then(s,u)}l((r=r.apply(e,t||[])).next())})}function t3(e,t){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,i,a,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(l){return function(f){return u([l,f])}}function u(l){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(n=0)),n;)try{if(r=1,i&&(a=l[0]&2?i.return:l[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,l[1])).done)return a;switch(i=0,a&&(l=[l[0]&2,a.value]),l[0]){case 0:case 1:a=l;break;case 4:return n.label++,{value:l[1],done:!1};case 5:n.label++,i=l[1],l=[0];continue;case 7:l=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(l[0]===6||l[0]===2)){n=0;continue}if(l[0]===3&&(!a||l[1]>a[0]&&l[1]<a[3])){n.label=l[1];break}if(l[0]===6&&n.label<a[1]){n.label=a[1],a=l;break}if(a&&n.label<a[2]){n.label=a[2],n.ops.push(l);break}a[2]&&n.ops.pop(),n.trys.pop();continue}l=t.call(e,n)}catch(f){l=[6,f],i=0}finally{r=a=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 qp(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,a=[],o;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)a.push(i.value)}catch(s){o={error:s}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a}function Zp(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||(a=Array.prototype.slice.call(t,0,r)),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}function mo(e){return this instanceof mo?(this.v=e,this):new mo(e)}function xN(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),i,a=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(h){r[h]&&(i[h]=function(d){return new Promise(function(p,m){a.push([h,d,p,m])>1||s(h,d)})})}function s(h,d){try{u(r[h](d))}catch(p){c(a[0][3],p)}}function u(h){h.value instanceof mo?Promise.resolve(h.value.v).then(l,f):c(a[0][2],h)}function l(h){s("next",h)}function f(h){s("throw",h)}function c(h,d){h(d),a.shift(),a.length&&s(a[0][0],a[0][1])}}function AN(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(a){n[a]=e[a]&&function(o){return new Promise(function(s,u){o=e[a](o),i(s,u,o.done,o.value)})}}function i(a,o,s,u){Promise.resolve(u).then(function(l){a({value:l,done:s})},o)}}typeof SuppressedError=="function"&&SuppressedError;function ot(e){return typeof e=="function"}function n3(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 Wp=n3(function(e){return function(n){e(this),this.message=n?n.length+` errors occurred during unsubscription:
336
+ `}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,aa="___parser_",Tn={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},ac={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"},oc={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 ke=class Dn{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new Dn}primitiveGenerateN(t,n){const r=ac[t],i=oc[t];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${Tn[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 Tn))throw new Error(`Array element type "${n.type}" is unkown.`);return this.setNextParser("array",t,n)}choice(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n)throw new Error("tag and choices are are required for choice.");if(!n.tag)throw new Error("tag is requird for choice.");if(!n.choices)throw new Error("choices is required for choice.");for(const r in n.choices){const i=parseInt(r,10),a=n.choices[i];if(isNaN(i))throw new Error(`Choice key "${r}" is not a number.`);if(typeof a=="string"&&!Cn.has(a)&&!(a in Tn))throw new Error(`Choice type "${a}" is unkown.`)}return this.setNextParser("choice",t,n)}nest(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n||!n.type)throw new Error("type is required for nest.");if(!(n.type instanceof Dn)&&!Cn.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof Dn)&&!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 Tn)&&!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 _M(t,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${aa+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 ${aa+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(Tn).indexOf(this.type)>=0)t=Tn[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=Tn[this.options.type]:this.options.type instanceof Dn&&(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 Dn;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},a=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 o=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}o=0,l=u=a(i(c)-l)}const d=s?u-o-h:o,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),o+=h,l-=h}),t.bitFields=[]}}generateSeek(t){const n=t.generateOption(this.options.length);t.pushCode(`offset += ${n};`)}generateString(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable(),i=this.options.encoding,a=i.toLowerCase()==="hex",o='b => b.toString(16).padStart(2, "0")';if(this.options.length&&this.options.zeroTerminated){const s=this.options.length;t.pushCode(`var ${r} = offset;`),t.pushCode(`while(dataView.getUint8(offset++) !== 0 && offset - ${r} < ${s});`);const u=`offset - ${r} < ${s} ? offset - 1 : offset`;t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, ${u}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${u}));`)}else if(this.options.length){const s=t.generateOption(this.options.length);t.pushCode(a?`${n} = Array.from(buffer.subarray(offset, offset + ${s}), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(offset, offset + ${s}));`),t.pushCode(`offset += ${s};`)}else this.options.zeroTerminated?(t.pushCode(`var ${r} = offset;`),t.pushCode("while(dataView.getUint8(offset++) !== 0);"),t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset - 1), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset - 1));`)):this.options.greedy&&(t.pushCode(`var ${r} = offset;`),t.pushCode("while(buffer.length > offset++);"),t.pushCode(a?`${n} = Array.from(buffer.subarray(${r}, offset), ${o}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset));`));this.options.stripNull&&t.pushCode(`${n} = ${n}.replace(/\\x00+$/g, '')`)}generateBuffer(t){const n=t.generateVariable(this.varName);if(typeof this.options.readUntil=="function"){const r=this.options.readUntil,i=t.generateTmpVariable(),a=t.generateTmpVariable();t.pushCode(`var ${i} = offset;`),t.pushCode(`var ${a} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${a} = dataView.getUint8(offset);`);const o=t.addImport(r);t.pushCode(`if (${o}.call(${t.generateVariable()}, ${a}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${n} = buffer.subarray(${i}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${n} = buffer.subarray(offset);`);else{const r=t.generateOption(this.options.length);t.pushCode(`${n} = buffer.subarray(offset, offset + ${r});`),t.pushCode(`offset += ${r};`)}this.options.clone&&t.pushCode(`${n} = buffer.constructor.from(${n});`)}generateArray(t){const n=t.generateOption(this.options.length),r=t.generateOption(this.options.lengthInBytes),i=this.options.type,a=t.generateTmpVariable(),o=t.generateVariable(this.varName),s=t.generateTmpVariable(),u=this.options.key,l=typeof u=="string";if(l?t.pushCode(`${o} = {};`):t.pushCode(`${o} = [];`),typeof this.options.readUntil=="function"?t.pushCode("do {"):this.options.readUntil==="eof"?t.pushCode(`for (var ${a} = 0; offset < buffer.length; ${a}++) {`):r!==void 0?t.pushCode(`for (var ${a} = offset + ${r}; offset < ${a}; ) {`):t.pushCode(`for (var ${a} = ${n}; ${a} > 0; ${a}--) {`),typeof i=="string")if(Cn.get(i)){const f=t.generateTmpVariable();if(t.pushCode(`var ${f} = ${aa+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} - ${a},`)}t.pushCode("});"),t.pushCode(`var ${s} = ${f}.result; offset = ${f}.offset;`),i!==this.alias&&t.addReference(i)}else{const f=ac[i],c=oc[i];t.pushCode(`var ${s} = dataView.get${f}(offset, ${c});`),t.pushCode(`offset += ${Tn[i]};`)}else if(i instanceof Dn){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} - ${a};`)),i.generate(t),t.useContextVariables&&(t.pushCode(`delete ${s}.$parent;`),t.pushCode(`delete ${s}.$root;`),t.pushCode(`delete ${s}.$index;`)),t.popScope()}if(l?t.pushCode(`${o}[${s}.${u}] = ${s};`):t.pushCode(`${o}.push(${s});`),t.pushCode("}"),typeof this.options.readUntil=="function"){const 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 a=t.generateTmpVariable();t.pushCode(`var ${a} = ${aa+r}(offset, {`),t.useContextVariables&&(t.pushCode(`$parent: ${i}.$parent,`),t.pushCode(`$root: ${i}.$root,`)),t.pushCode("});"),t.pushCode(`${i} = ${a}.result; offset = ${a}.offset;`),r!==this.alias&&t.addReference(r)}else{const a=ac[r],o=oc[r];t.pushCode(`${i} = dataView.get${a}(offset, ${o});`),t.pushCode(`offset += ${Tn[r]}`)}}else r instanceof Dn&&(t.pushPath(n),r.generate(t),t.popPath(n))}generateChoice(t){const n=t.generateOption(this.options.tag),r=t.generateVariable(this.varName);if(this.varName&&(t.pushCode(`${r} = {};`),t.useContextVariables)){const i=t.generateVariable();t.pushCode(`${r}.$parent = ${i};`),t.pushCode(`${r}.$root = ${i}.$root;`)}t.pushCode(`switch(${n}) {`);for(const i in this.options.choices){const a=parseInt(i,10),o=this.options.choices[a];t.pushCode(`case ${a}:`),this.generateChoiceCase(t,this.varName,o),t.pushCode("break;")}t.pushCode("default:"),this.options.defaultChoice?this.generateChoiceCase(t,this.varName,this.options.defaultChoice):t.generateError(`"Met undefined tag value " + ${n} + " at choice"`),t.pushCode("}"),this.varName&&t.useContextVariables&&(t.pushCode(`delete ${r}.$parent;`),t.pushCode(`delete ${r}.$root;`))}generateNest(t){const n=t.generateVariable(this.varName);if(this.options.type instanceof Dn){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} = ${aa+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(),a=t.generateTmpVariable(),o=t.generateTmpVariable(),s=t.addImport(this.options.wrapper);if(t.pushCode(`${r} = ${s}.call(this, ${r}).subarray(0);`),t.pushCode(`var ${i} = buffer;`),t.pushCode(`var ${a} = offset;`),t.pushCode(`var ${o} = dataView;`),t.pushCode(`buffer = ${r};`),t.pushCode("offset = 0;"),t.pushCode("dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.options.type instanceof Dn)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} = ${aa+this.options.type}(0);`),t.pushCode(`${n} = ${u}.result;`),this.options.type!==this.alias&&t.addReference(this.options.type)}t.pushCode(`buffer = ${i};`),t.pushCode(`dataView = ${o};`),t.pushCode(`offset = ${a};`)}generateFormatter(t,n,r){if(typeof r=="function"){const i=t.addImport(r);t.pushCode(`${n} = ${i}.call(${t.generateVariable()}, ${n});`)}}generatePointer(t){const n=this.options.type,r=t.generateOption(this.options.offset),i=t.generateTmpVariable(),a=t.generateVariable(this.varName);if(t.pushCode(`var ${i} = offset;`),t.pushCode(`offset = ${r};`),this.options.type instanceof Dn){if(t.pushCode(`${a} = {};`),t.useContextVariables){const o=t.generateVariable();t.pushCode(`${a}.$parent = ${o};`),t.pushCode(`${a}.$root = ${o}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),t.useContextVariables&&(t.pushCode(`delete ${a}.$parent;`),t.pushCode(`delete ${a}.$root;`))}else if(Cn.has(this.options.type)){const o=t.generateTmpVariable();if(t.pushCode(`var ${o} = ${aa+this.options.type}(offset, {`),t.useContextVariables){const s=t.generateVariable();t.pushCode(`$parent: ${s},`),t.pushCode(`$root: ${s}.$root,`)}t.pushCode("});"),t.pushCode(`${a} = ${o}.result; offset = ${o}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}else if(Object.keys(Tn).indexOf(this.options.type)>=0){const o=ac[n],s=oc[n];t.pushCode(`${a} = dataView.get${o}(offset, ${s});`),t.pushCode(`offset += ${Tn[n]};`)}t.pushCode(`offset = ${i};`)}generateSaveOffset(t){const n=t.generateVariable(this.varName);t.pushCode(`${n} = offset`)}};var Tx={},ap={},oa={},gl={};Object.defineProperty(gl,"__esModule",{value:!0});function op(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function kx(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 sp(e,t,n){return t&&kx(e.prototype,t),n&&kx(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function SM(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&&lp(e,t)}function ao(e){return ao=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},ao(e)}function lp(e,t){return lp=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},lp(e,t)}function CM(){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 TM(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 kM(e){var t=CM();return function(){var r=ao(e),i;if(t){var a=ao(this).constructor;i=Reflect.construct(r,arguments,a)}else i=r.apply(this,arguments);return TM(this,i)}}function IM(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=ao(e),e!==null););return e}function sc(){return typeof Reflect<"u"&&Reflect.get?sc=Reflect.get.bind():sc=function(t,n,r){var i=IM(t,n);if(i){var a=Object.getOwnPropertyDescriptor(i,n);return a.get?a.get.call(arguments.length<3?t:r):a.value}},sc.apply(this,arguments)}var Ix=function(){function e(){op(this,e),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return sp(e,[{key:"addEventListener",value:function(n,r,i){n in this.listeners||(this.listeners[n]=[]),this.listeners[n].push({callback:r,options:i})}},{key:"removeEventListener",value:function(n,r){if(n in this.listeners){for(var i=this.listeners[n],a=0,o=i.length;a<o;a++)if(i[a].callback===r){i.splice(a,1);return}}}},{key:"dispatchEvent",value:function(n){if(n.type in this.listeners){for(var r=this.listeners[n.type],i=r.slice(),a=0,o=i.length;a<o;a++){var s=i[a];try{s.callback.call(this,n)}catch(u){Promise.resolve().then(function(){throw u})}s.options&&s.options.once&&this.removeEventListener(n.type,s.callback)}return!n.defaultPrevented}}}]),e}(),up=function(e){SM(n,e);var t=kM(n);function n(){var r;return op(this,n),r=t.call(this),r.listeners||Ix.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 sp(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)),sc(ao(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(Ix),Bx=function(){function e(){op(this,e),Object.defineProperty(this,"signal",{value:new up,writable:!0,configurable:!0})}return sp(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&&(Bx.prototype[Symbol.toStringTag]="AbortController",up.prototype[Symbol.toStringTag]="AbortSignal");function BM(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 DM(e){typeof e=="function"&&(e={fetch:e});var t=e,n=t.fetch,r=t.Request,i=r===void 0?n.Request:r,a=t.AbortController,o=t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,s=o===void 0?!1:o;if(!BM({fetch:n,Request:i,AbortController:a,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:s}))return{fetch:n,Request:u};var u=i;(u&&!u.prototype.hasOwnProperty("signal")||s)&&(u=function(h,d){var p;d&&d.signal&&(p=d.signal,delete d.signal);var 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,E){p.addEventListener("abort",function(){return E(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=Bx,gl.AbortSignal=up,gl.abortableFetch=DM,Object.defineProperty(oa,"__esModule",{value:!0}),oa.AbortSignal=oa.AbortController=void 0;const Dx=gl;var lc=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 FM=typeof lc().AbortController>"u"?Dx.AbortController:lc().AbortController;oa.AbortController=FM;let RM=typeof lc().AbortController>"u"?Dx.AbortSignal:lc().AbortSignal;oa.AbortSignal=RM;var fp={};Object.defineProperty(fp,"__esModule",{value:!0});const MM=oa;class PM{}class LM{constructor(){this.signals=new Set,this.abortController=new MM.AbortController}addSignal(t=new PM){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()}}fp.default=LM;var cp={};Object.defineProperty(cp,"__esModule",{value:!0});class NM{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)})}}cp.default=NM;var Fx=Nf&&Nf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ap,"__esModule",{value:!0});const OM=oa,zM=Fx(fp),UM=Fx(cp);class uc{constructor({fill:t,cache:n}){if(typeof t!="function")throw new TypeError("must pass a fill function");if(typeof n!="object")throw new TypeError("must pass a cache object");if(typeof n.get!="function"||typeof n.set!="function"||typeof n.delete!="function")throw new TypeError("cache must implement get(key), set(key, val), and and delete(key)");this.cache=n,this.fillCallback=t}static isAbortException(t){return t.name==="AbortError"||t.code==="ERR_ABORTED"||t.message==="AbortError: aborted"||t.message==="Error: aborted"}evict(t,n){this.cache.get(t)===n&&this.cache.delete(t)}fill(t,n,r,i){const a=new zM.default,o=new UM.default;o.addCallback(i);const s={aborter:a,promise:this.fillCallback(n,a.signal,u=>{o.callback(u)}),settled:!1,statusReporter:o,get aborted(){return this.aborter.signal.aborted}};s.aborter.addSignal(r),s.aborter.signal.addEventListener("abort",()=>{s.settled||this.evict(t,s)}),s.promise.then(()=>{s.settled=!0},()=>{s.settled=!0,this.evict(t,s)}).catch(u=>{throw console.error(u),u}),this.cache.set(t,s)}static checkSinglePromise(t,n){function r(){if(n&&n.aborted)throw Object.assign(new Error("aborted"),{code:"ERR_ABORTED"})}return t.then(i=>(r(),i),i=>{throw r(),i})}has(t){return this.cache.has(t)}get(t,n,r,i){if(!r&&n instanceof OM.AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const a=this.cache.get(t);return a?a.aborted&&!a.settled?(this.evict(t,a),this.get(t,n,r,i)):a.settled?a.promise:(a.aborter.addSignal(r),a.statusReporter.addCallback(i),uc.checkSinglePromise(a.promise,r)):(this.fill(t,n,r,i),uc.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}}ap.default=uc;var GM=Nf&&Nf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Tx,"__esModule",{value:!0});const HM=GM(ap);var fc=Tx.default=HM.default;class VM{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 jM=VM;const cc=Xs(jM);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 a=1;a<n.length;a+=1){const o=n[a];o.min()>i.max()+1?(r.push(i),i=o):o.max()>i.max()&&(i=new ei(i.min(),o.max()))}return r.push(i),r.length===1?r[0]:new ei(r)}intersection(t){let n=this,r=t;const i=this.ranges(),a=r.ranges(),o=i.length,s=a.length;let u=0,l=0;const f=[];for(;u<o&&l<s;){n=i[u],r=a[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 qM=4,Rx=0,Mx=1,ZM=2;function oo(e){let t=e.length;for(;--t>=0;)e[t]=0}const WM=0,Px=1,YM=2,QM=3,$M=258,hp=29,bl=256,yl=bl+1+hp,so=30,dp=19,Lx=2*yl+1,sa=15,pp=16,XM=7,gp=256,Nx=16,Ox=17,zx=18,mp=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]),hc=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]),KM=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Ux=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),JM=512,cr=new Array((yl+2)*2);oo(cr);const wl=new Array(so*2);oo(wl);const vl=new Array(JM);oo(vl);const xl=new Array($M-QM+1);oo(xl);const bp=new Array(hp);oo(bp);const dc=new Array(so);oo(dc);function yp(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 Gx,Hx,Vx;function wp(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const jx=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>pp-n?(e.bi_buf|=t<<e.bi_valid&65535,Al(e,e.bi_buf),e.bi_buf=t>>pp-e.bi_valid,e.bi_valid+=n-pp):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},Wn=(e,t,n)=>{jt(e,n[t*2],n[t*2+1])},qx=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},eP=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)},tP=(e,t)=>{const n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,u=t.stat_desc.max_length;let l,f,c,h,d,p,b=0;for(h=0;h<=sa;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Lx;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=o[f-s]),p=n[f*2],e.opt_len+=p*(h+d),a&&(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--)}},Zx=(e,t,n)=>{const r=new Array(sa+1);let i=0,a,o;for(a=1;a<=sa;a++)i=i+n[a-1]<<1,r[a]=i;for(o=0;o<=t;o++){let s=e[o*2+1];s!==0&&(e[o*2]=qx(r[s]++,s))}},nP=()=>{let e,t,n,r,i;const a=new Array(sa+1);for(n=0,r=0;r<hp-1;r++)for(bp[r]=n,e=0;e<1<<mp[r];e++)xl[n++]=r;for(xl[n-1]=r,i=0,r=0;r<16;r++)for(dc[r]=i,e=0;e<1<<hc[r];e++)vl[i++]=r;for(i>>=7;r<so;r++)for(dc[r]=i<<7,e=0;e<1<<hc[r]-7;e++)vl[256+i++]=r;for(t=0;t<=sa;t++)a[t]=0;for(e=0;e<=143;)cr[e*2+1]=8,e++,a[8]++;for(;e<=255;)cr[e*2+1]=9,e++,a[9]++;for(;e<=279;)cr[e*2+1]=7,e++,a[7]++;for(;e<=287;)cr[e*2+1]=8,e++,a[8]++;for(Zx(cr,yl+1,a),e=0;e<so;e++)wl[e*2+1]=5,wl[e*2]=qx(e,5);Gx=new yp(cr,mp,bl+1,yl,sa),Hx=new yp(wl,hc,0,so,sa),Vx=new yp(new Array(0),KM,0,dp,XM)},Wx=e=>{let t;for(t=0;t<yl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<so;t++)e.dyn_dtree[t*2]=0;for(t=0;t<dp;t++)e.bl_tree[t*2]=0;e.dyn_ltree[gp*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Yx=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,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]},vp=(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},$x=(e,t,n)=>{let r,i,a=0,o,s;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+a++]&255,r+=(e.pending_buf[e.sym_buf+a++]&255)<<8,i=e.pending_buf[e.sym_buf+a++],r===0?Wn(e,i,t):(o=xl[i],Wn(e,o+bl+1,t),s=mp[o],s!==0&&(i-=bp[o],jt(e,i,s)),r--,o=jx(r),Wn(e,o,n),s=hc[o],s!==0&&(r-=dc[o],jt(e,r,s)));while(a<e.sym_next);Wn(e,gp,t)},xp=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems;let o,s,u=-1,l;for(e.heap_len=0,e.heap_max=Lx,o=0;o<a;o++)n[o*2]!==0?(e.heap[++e.heap_len]=u=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=u<2?++u:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=u,o=e.heap_len>>1;o>=1;o--)vp(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],vp(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,vp(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],tP(e,t),Zx(n,u,e.bl_count)},Xx=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)&&(s<l?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[Nx*2]++):s<=10?e.bl_tree[Ox*2]++:e.bl_tree[zx*2]++,s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4))},Kx=(e,t,n)=>{let r,i=-1,a,o=t[0*2+1],s=0,u=7,l=4;for(o===0&&(u=138,l=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<u&&a===o)){if(s<l)do Wn(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(Wn(e,a,e.bl_tree),s--),Wn(e,Nx,e.bl_tree),jt(e,s-3,2)):s<=10?(Wn(e,Ox,e.bl_tree),jt(e,s-3,3)):(Wn(e,zx,e.bl_tree),jt(e,s-11,7));s=0,i=a,o===0?(u=138,l=3):a===o?(u=6,l=3):(u=7,l=4)}},rP=e=>{let t;for(Xx(e,e.dyn_ltree,e.l_desc.max_code),Xx(e,e.dyn_dtree,e.d_desc.max_code),xp(e,e.bl_desc),t=dp-1;t>=3&&e.bl_tree[Ux[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},iP=(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[Ux[i]*2+1],3);Kx(e,e.dyn_ltree,t-1),Kx(e,e.dyn_dtree,n-1)},aP=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Rx;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Mx;for(n=32;n<bl;n++)if(e.dyn_ltree[n*2]!==0)return Mx;return Rx};let Jx=!1;const oP=e=>{Jx||(nP(),Jx=!0),e.l_desc=new wp(e.dyn_ltree,Gx),e.d_desc=new wp(e.dyn_dtree,Hx),e.bl_desc=new wp(e.bl_tree,Vx),e.bi_buf=0,e.bi_valid=0,Wx(e)},eA=(e,t,n,r)=>{jt(e,(WM<<1)+(r?1:0),3),Yx(e),Al(e,n),Al(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},sP=e=>{jt(e,Px<<1,3),Wn(e,gp,cr),eP(e)},lP=(e,t,n,r)=>{let i,a,o=0;e.level>0?(e.strm.data_type===ZM&&(e.strm.data_type=aP(e)),xp(e,e.l_desc),xp(e,e.d_desc),o=rP(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&t!==-1?eA(e,t,n,r):e.strategy===qM||a===i?(jt(e,(Px<<1)+(r?1:0),3),$x(e,cr,wl)):(jt(e,(YM<<1)+(r?1:0),3),iP(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),$x(e,e.dyn_ltree,e.dyn_dtree)),Wx(e),r&&Yx(e)},uP=(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[jx(t)*2]++),e.sym_next===e.sym_end);var fP=oP,cP=eA,hP=lP,dP=uP,pP=sP,gP={_tr_init:fP,_tr_stored_block:cP,_tr_flush_block:hP,_tr_tally:dP,_tr_align:pP},El=(e,t,n,r)=>{let i=e&65535|0,a=e>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0};const mP=()=>{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},bP=new Uint32Array(mP());var dt=(e,t,n,r)=>{const i=bP,a=r+n;e^=-1;for(let o=r;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1},lo={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:yP,_tr_stored_block:Ap,_tr_flush_block:wP,_tr_tally:ti,_tr_align:vP}=gP,{Z_NO_FLUSH:ni,Z_PARTIAL_FLUSH:xP,Z_FULL_FLUSH:AP,Z_FINISH:un,Z_BLOCK:tA,Z_OK:wt,Z_STREAM_END:nA,Z_STREAM_ERROR:Yn,Z_DATA_ERROR:EP,Z_BUF_ERROR:Ep,Z_DEFAULT_COMPRESSION:_P,Z_FILTERED:SP,Z_HUFFMAN_ONLY:pc,Z_RLE:CP,Z_FIXED:TP,Z_DEFAULT_STRATEGY:kP,Z_UNKNOWN:IP,Z_DEFLATED:gc}=_l,BP=9,DP=15,FP=8,RP=29,_p=256+1+RP,MP=30,PP=19,LP=2*_p+1,NP=15,de=3,ri=258,Qn=ri+de+1,OP=32,uo=42,Sp=57,Cp=69,Tp=73,kp=91,Ip=103,la=113,Sl=666,Bt=1,fo=2,ua=3,co=4,zP=3,fa=(e,t)=>(e.msg=lo[t],t),rA=e=>e*2-(e>4?9:0),ii=e=>{let t=e.length;for(;--t>=0;)e[t]=0},UP=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 ai=(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))},Xt=(e,t)=>{wP(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},Cl=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},Bp=(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)},iA=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match;const u=e.strstart>e.w_size-Qn?e.strstart-(e.w_size-Qn):0,l=e.window,f=e.w_mask,c=e.prev,h=e.strstart+ri;let d=l[r+o-1],p=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(l[i+o]!==p||l[i+o-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(a=ri-(h-r),r=h-ri,a>o){if(e.match_start=t,o=a,a>=s)break;d=l[r+o-1],p=l[r+o]}}while((t=c[t&f])>u&&--n!==0);return o<=e.lookahead?o:e.lookahead},ho=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Qn)&&(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),UP(e),r+=t),e.strm.avail_in===0)break;if(n=Bp(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=ai(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=ai(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<Qn&&e.strm.avail_in!==0)},aA=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,a,o=0,s=e.strm.avail_in;do{if(r=65535,a=e.bi_valid+42>>3,e.strm.avail_out<a||(a=e.strm.avail_out-a,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>a&&(r=a),r<n&&(r===0&&t!==un||t===ni||r!==i+e.strm.avail_in)))break;o=t===un&&r===i+e.strm.avail_in?1:0,Ap(e,0,0,o),e.pending_buf[e.pending-4]=r,e.pending_buf[e.pending-3]=r>>8,e.pending_buf[e.pending-2]=~r,e.pending_buf[e.pending-1]=~r>>8,$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&&(Bp(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(o===0);return s-=e.strm.avail_in,s&&(s>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=s&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-s,e.strm.next_in),e.strstart),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),o?co:t!==ni&&t!==un&&e.strm.avail_in===0&&e.strstart===e.block_start?fo:(a=e.window_size-e.strstart,e.strm.avail_in>a&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,a+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),a>e.strm.avail_in&&(a=e.strm.avail_in),a&&(Bp(e.strm,e.window,e.strstart,a),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.high_water<e.strstart&&(e.high_water=e.strstart),a=e.bi_valid+42>>3,a=e.pending_buf_size-a>65535?65535:e.pending_buf_size-a,n=a>e.w_size?e.w_size:a,i=e.strstart-e.block_start,(i>=n||(i||t===un)&&t!==ni&&e.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=t===un&&e.strm.avail_in===0&&r===i?1:0,Ap(e,e.block_start,r,o),e.block_start+=r,$t(e.strm)),o?ua:Bt)},Dp=(e,t)=>{let n,r;for(;;){if(e.lookahead<Qn){if(ho(e),e.lookahead<Qn&&t===ni)return Bt;if(e.lookahead===0)break}if(n=0,e.lookahead>=de&&(e.ins_h=ai(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-Qn&&(e.match_length=iA(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=ai(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=ai(e,e.ins_h,e.window[e.strstart+1]);else r=ti(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(Xt(e,!1),e.strm.avail_out===0))return Bt}return e.insert=e.strstart<de-1?e.strstart:de-1,t===un?(Xt(e,!0),e.strm.avail_out===0?ua:co):e.sym_next&&(Xt(e,!1),e.strm.avail_out===0)?Bt:fo},po=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<Qn){if(ho(e),e.lookahead<Qn&&t===ni)return Bt;if(e.lookahead===0)break}if(n=0,e.lookahead>=de&&(e.ins_h=ai(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-Qn&&(e.match_length=iA(e,n),e.match_length<=5&&(e.strategy===SP||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=ai(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&&(Xt(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&&Xt(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?(Xt(e,!0),e.strm.avail_out===0?ua:co):e.sym_next&&(Xt(e,!1),e.strm.avail_out===0)?Bt:fo},GP=(e,t)=>{let n,r,i,a;const o=e.window;for(;;){if(e.lookahead<=ri){if(ho(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=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+ri;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=ri-(a-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&&(Xt(e,!1),e.strm.avail_out===0))return Bt}return e.insert=0,t===un?(Xt(e,!0),e.strm.avail_out===0?ua:co):e.sym_next&&(Xt(e,!1),e.strm.avail_out===0)?Bt:fo},HP=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(ho(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&&(Xt(e,!1),e.strm.avail_out===0))return Bt}return e.insert=0,t===un?(Xt(e,!0),e.strm.avail_out===0?ua:co):e.sym_next&&(Xt(e,!1),e.strm.avail_out===0)?Bt:fo};function $n(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 Tl=[new $n(0,0,0,0,aA),new $n(4,4,8,4,Dp),new $n(4,5,16,8,Dp),new $n(4,6,32,32,Dp),new $n(4,4,16,16,po),new $n(8,16,32,32,po),new $n(8,16,128,128,po),new $n(8,32,128,256,po),new $n(32,128,258,1024,po),new $n(32,258,258,4096,po)],VP=e=>{e.window_size=2*e.w_size,ii(e.head),e.max_lazy_match=Tl[e.level].max_lazy,e.good_match=Tl[e.level].good_length,e.nice_match=Tl[e.level].nice_length,e.max_chain_length=Tl[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 jP(){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=gc,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(LP*2),this.dyn_dtree=new Uint16Array((2*MP+1)*2),this.bl_tree=new Uint16Array((2*PP+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(NP+1),this.heap=new Uint16Array(2*_p+1),ii(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*_p+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 kl=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==uo&&t.status!==Sp&&t.status!==Cp&&t.status!==Tp&&t.status!==kp&&t.status!==Ip&&t.status!==la&&t.status!==Sl?1:0},oA=e=>{if(kl(e))return fa(e,Yn);e.total_in=e.total_out=0,e.data_type=IP;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?Sp:t.wrap?uo:la,e.adler=t.wrap===2?0:1,t.last_flush=-2,yP(t),wt},sA=e=>{const t=oA(e);return t===wt&&VP(e.state),t},qP=(e,t)=>kl(e)||e.state.wrap!==2?Yn:(e.state.gzhead=t,wt),lA=(e,t,n,r,i,a)=>{if(!e)return Yn;let o=1;if(t===_P&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>BP||n!==gc||r<8||r>15||t<0||t>9||a<0||a>TP||r===8&&o!==1)return fa(e,Yn);r===8&&(r=9);const s=new jP;return e.state=s,s.strm=e,s.status=uo,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+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=a,s.method=n,sA(e)},ZP=(e,t)=>lA(e,t,gc,DP,FP,kP),WP=(e,t)=>{if(kl(e)||t>tA||t<0)return e?fa(e,Yn):Yn;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===Sl&&t!==un)return fa(e,e.avail_out===0?Ep:Yn);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,wt}else if(e.avail_in===0&&rA(t)<=rA(r)&&t!==un)return fa(e,Ep);if(n.status===Sl&&e.avail_in!==0)return fa(e,Ep);if(n.status===uo&&n.wrap===0&&(n.status=la),n.status===uo){let i=gc+(n.w_bits-8<<4)<<8,a=-1;if(n.strategy>=pc||n.level<2?a=0:n.level<6?a=1:n.level===6?a=2:a=3,i|=a<<6,n.strstart!==0&&(i|=OP),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=la,$t(e),n.pending!==0)return n.last_flush=-1,wt}if(n.status===Sp){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>=pc||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=Cp;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>=pc||n.level<2?4:0),xe(n,zP),n.status=la,$t(e),n.pending!==0)return n.last_flush=-1,wt}if(n.status===Cp){if(n.gzhead.extra){let i=n.pending,a=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+a>n.pending_buf_size;){let s=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,$t(e),n.pending!==0)return n.last_flush=-1,wt;i=0,a-=s}let o=new Uint8Array(n.gzhead.extra);n.pending_buf.set(o.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending+=a,n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=Tp}if(n.status===Tp){if(n.gzhead.name){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i)),$t(e),n.pending!==0)return n.last_flush=-1,wt;i=0}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,xe(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=kp}if(n.status===kp){if(n.gzhead.comment){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i)),$t(e),n.pending!==0)return n.last_flush=-1,wt;i=0}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,xe(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=dt(e.adler,n.pending_buf,n.pending-i,i))}n.status=Ip}if(n.status===Ip){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&($t(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=la,$t(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?aA(n,t):n.strategy===pc?HP(n,t):n.strategy===CP?GP(n,t):Tl[n.level].func(n,t);if((i===ua||i===co)&&(n.status=Sl),i===Bt||i===ua)return e.avail_out===0&&(n.last_flush=-1),wt;if(i===fo&&(t===xP?vP(n):t!==tA&&(Ap(n,0,0,!1),t===AP&&(ii(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,wt}return t!==un?wt:n.wrap<=0?nA:(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)),$t(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?wt:nA)},YP=e=>{if(kl(e))return Yn;const t=e.state.status;return e.state=null,t===la?fa(e,EP):wt},QP=(e,t)=>{let n=t.length;if(kl(e))return Yn;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==uo||r.lookahead)return Yn;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 a=e.avail_in,o=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,ho(r);r.lookahead>=de;){let u=r.strstart,l=r.lookahead-(de-1);do r.ins_h=ai(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,ho(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=o,e.input=s,e.avail_in=a,r.wrap=i,wt};var $P=ZP,XP=lA,KP=sA,JP=oA,eL=qP,tL=WP,nL=YP,rL=QP,iL="pako deflate (from Nodeca project)",Il={deflateInit:$P,deflateInit2:XP,deflateReset:KP,deflateResetKeep:JP,deflateSetHeader:eL,deflate:tL,deflateEnd:nL,deflateSetDictionary:rL,deflateInfo:iL};const aL=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var oL=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)aL(n,r)&&(e[r]=n[r])}}return e},sL=e=>{let t=0;for(let r=0,i=e.length;r<i;r++)t+=e[r].length;const n=new Uint8Array(t);for(let r=0,i=0,a=e.length;r<a;r++){let o=e[r];n.set(o,i),i+=o.length}return n},mc={assign:oL,flattenChunks:sL};let uA=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{uA=!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 lL=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,a,o=e.length,s=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(s),a=0,i=0;a<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t};const uL=(e,t)=>{if(t<65534&&e.subarray&&uA)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 fL=(e,t)=>{const n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let r,i;const a=new Array(n*2);for(i=0,r=0;r<n;){let o=e[r++];if(o<128){a[i++]=o;continue}let s=Bl[o];if(s>4){a[i++]=65533,r+=s-1;continue}for(o&=s===2?31:s===3?15:7;s>1&&r<n;)o=o<<6|e[r++]&63,s--;if(s>1){a[i++]=65533;continue}o<65536?a[i++]=o:(o-=65536,a[i++]=55296|o>>10&1023,a[i++]=56320|o&1023)}return uL(a,i)},cL=(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:lL,buf2string:fL,utf8border:cL};function hL(){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 fA=hL;const cA=Object.prototype.toString,{Z_NO_FLUSH:dL,Z_SYNC_FLUSH:pL,Z_FULL_FLUSH:gL,Z_FINISH:mL,Z_OK:bc,Z_STREAM_END:bL,Z_DEFAULT_COMPRESSION:yL,Z_DEFAULT_STRATEGY:wL,Z_DEFLATED:vL}=_l;function Fp(e){this.options=mc.assign({level:yL,method:vL,chunkSize:16384,windowBits:15,memLevel:8,strategy:wL},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 fA,this.strm.avail_out=0;let n=Il.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==bc)throw new Error(lo[n]);if(t.header&&Il.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=Dl.string2buf(t.dictionary):cA.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=Il.deflateSetDictionary(this.strm,r),n!==bc)throw new Error(lo[n]);this._dict_set=!0}}Fp.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let i,a;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?mL:dL,typeof e=="string"?n.input=Dl.string2buf(e):cA.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(a===pL||a===gL)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=Il.deflate(n,a),i===bL)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===bc;if(n.avail_out===0){this.onData(n.output);continue}if(a>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0},Fp.prototype.onData=function(e){this.chunks.push(e)},Fp.prototype.onEnd=function(e){e===bc&&(this.result=mc.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const yc=16209,xL=16191;var AL=function(t,n){let r,i,a,o,s,u,l,f,c,h,d,p,b,y,w,E,C,_,k,I,B,R,L,j;const M=t.state;r=t.next_in,L=t.input,i=r+(t.avail_in-5),a=t.next_out,j=t.output,o=a-(n-t.avail_out),s=a+(t.avail_out-257),u=M.dmax,l=M.wsize,f=M.whave,c=M.wnext,h=M.window,d=M.hold,p=M.bits,b=M.lencode,y=M.distcode,w=(1<<M.lenbits)-1,E=(1<<M.distbits)-1;e:do{p<15&&(d+=L[r++]<<p,p+=8,d+=L[r++]<<p,p+=8),C=b[d&w];t:for(;;){if(_=C>>>24,d>>>=_,p-=_,_=C>>>16&255,_===0)j[a++]=C&65535;else if(_&16){k=C&65535,_&=15,_&&(p<_&&(d+=L[r++]<<p,p+=8),k+=d&(1<<_)-1,d>>>=_,p-=_),p<15&&(d+=L[r++]<<p,p+=8,d+=L[r++]<<p,p+=8),C=y[d&E];n:for(;;){if(_=C>>>24,d>>>=_,p-=_,_=C>>>16&255,_&16){if(I=C&65535,_&=15,p<_&&(d+=L[r++]<<p,p+=8,p<_&&(d+=L[r++]<<p,p+=8)),I+=d&(1<<_)-1,I>u){t.msg="invalid distance too far back",M.mode=yc;break e}if(d>>>=_,p-=_,_=a-o,I>_){if(_=I-_,_>f&&M.sane){t.msg="invalid distance too far back",M.mode=yc;break e}if(B=0,R=h,c===0){if(B+=l-_,_<k){k-=_;do j[a++]=h[B++];while(--_);B=a-I,R=j}}else if(c<_){if(B+=l+c-_,_-=c,_<k){k-=_;do j[a++]=h[B++];while(--_);if(B=0,c<k){_=c,k-=_;do j[a++]=h[B++];while(--_);B=a-I,R=j}}}else if(B+=c-_,_<k){k-=_;do j[a++]=h[B++];while(--_);B=a-I,R=j}for(;k>2;)j[a++]=R[B++],j[a++]=R[B++],j[a++]=R[B++],k-=3;k&&(j[a++]=R[B++],k>1&&(j[a++]=R[B++]))}else{B=a-I;do j[a++]=j[B++],j[a++]=j[B++],j[a++]=j[B++],k-=3;while(k>2);k&&(j[a++]=j[B++],k>1&&(j[a++]=j[B++]))}}else if(_&64){t.msg="invalid distance code",M.mode=yc;break e}else{C=y[(C&65535)+(d&(1<<_)-1)];continue n}break}}else if(_&64)if(_&32){M.mode=xL;break e}else{t.msg="invalid literal/length code",M.mode=yc;break e}else{C=b[(C&65535)+(d&(1<<_)-1)];continue t}break}}while(r<i&&a<s);k=p>>3,r-=k,p-=k<<3,d&=(1<<p)-1,t.next_in=r,t.next_out=a,t.avail_in=r<i?5+(i-r):5-(r-i),t.avail_out=a<s?257+(s-a):257-(a-s),M.hold=d,M.bits=p};const go=15,hA=852,dA=592,pA=0,Rp=1,gA=2,EL=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]),_L=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]),SL=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]),CL=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,a,o,s)=>{const u=s.bits;let l=0,f=0,c=0,h=0,d=0,p=0,b=0,y=0,w=0,E=0,C,_,k,I,B,R=null,L;const j=new Uint16Array(go+1),M=new Uint16Array(go+1);let ie=null,se,ge,Ie;for(l=0;l<=go;l++)j[l]=0;for(f=0;f<r;f++)j[t[n+f]]++;for(d=u,h=go;h>=1&&j[h]===0;h--);if(d>h&&(d=h),h===0)return i[a++]=1<<24|64<<16|0,i[a++]=1<<24|64<<16|0,s.bits=1,0;for(c=1;c<h&&j[c]===0;c++);for(d<c&&(d=c),y=1,l=1;l<=go;l++)if(y<<=1,y-=j[l],y<0)return-1;if(y>0&&(e===pA||h!==1))return-1;for(M[1]=0,l=1;l<go;l++)M[l+1]=M[l]+j[l];for(f=0;f<r;f++)t[n+f]!==0&&(o[M[t[n+f]]++]=f);if(e===pA?(R=ie=o,L=20):e===Rp?(R=EL,ie=_L,L=257):(R=SL,ie=CL,L=0),E=0,f=0,l=c,B=a,p=d,b=0,k=-1,w=1<<d,I=w-1,e===Rp&&w>hA||e===gA&&w>dA)return 1;for(;;){se=l-b,o[f]+1<L?(ge=0,Ie=o[f]):o[f]>=L?(ge=ie[o[f]-L],Ie=R[o[f]-L]):(ge=32+64,Ie=0),C=1<<l-b,_=1<<p,c=_;do _-=C,i[B+(E>>b)+_]=se<<24|ge<<16|Ie|0;while(_!==0);for(C=1<<l-1;E&C;)C>>=1;if(C!==0?(E&=C-1,E+=C):E=0,f++,--j[l]===0){if(l===h)break;l=t[n+o[f]]}if(l>d&&(E&I)!==k){for(b===0&&(b=d),B+=c,p=l-b,y=1<<p;p+b<h&&(y-=j[p+b],!(y<=0));)p++,y<<=1;if(w+=1<<p,e===Rp&&w>hA||e===gA&&w>dA)return 1;k=E&I,i[k]=d<<24|p<<16|B-a|0}}return E!==0&&(i[B+E]=l-b<<24|64<<16|0),s.bits=d,0};const TL=0,mA=1,bA=2,{Z_FINISH:yA,Z_BLOCK:kL,Z_TREES:wc,Z_OK:ca,Z_STREAM_END:IL,Z_NEED_DICT:BL,Z_STREAM_ERROR:fn,Z_DATA_ERROR:wA,Z_MEM_ERROR:vA,Z_BUF_ERROR:DL,Z_DEFLATED:xA}=_l,vc=16180,AA=16181,EA=16182,_A=16183,SA=16184,CA=16185,TA=16186,kA=16187,IA=16188,BA=16189,xc=16190,hr=16191,Mp=16192,DA=16193,Pp=16194,FA=16195,RA=16196,MA=16197,PA=16198,Ac=16199,Ec=16200,LA=16201,NA=16202,OA=16203,zA=16204,UA=16205,Lp=16206,GA=16207,HA=16208,qe=16209,VA=16210,jA=16211,FL=852,RL=592,ML=15,qA=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function PL(){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 ha=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<vc||t.mode>jA?1:0},ZA=e=>{if(ha(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=vc,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(FL),t.distcode=t.distdyn=new Int32Array(RL),t.sane=1,t.back=-1,ca},WA=e=>{if(ha(e))return fn;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,ZA(e)},YA=(e,t)=>{let n;if(ha(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,WA(e))},QA=(e,t)=>{if(!e)return fn;const n=new PL;e.state=n,n.strm=e,n.window=null,n.mode=vc;const r=YA(e,t);return r!==ca&&(e.state=null),r},LL=e=>QA(e,ML);let $A=!0,Np,Op;const NL=e=>{if($A){Np=new Int32Array(512),Op=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(mA,e.lens,0,288,Np,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Fl(bA,e.lens,0,32,Op,0,e.work,{bits:5}),$A=!1}e.lencode=Np,e.lenbits=9,e.distcode=Op,e.distbits=5},XA=(e,t,n,r)=>{let i;const a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),r>=a.wsize?(a.window.set(t.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),a.window.set(t.subarray(n-r,n-r+i),a.wnext),r-=i,r?(a.window.set(t.subarray(n-r,n),0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0},OL=(e,t)=>{let n,r,i,a,o,s,u,l,f,c,h,d,p,b,y=0,w,E,C,_,k,I,B,R;const L=new Uint8Array(4);let j,M;const ie=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(ha(e)||!e.output||!e.input&&e.avail_in!==0)return fn;n=e.state,n.mode===hr&&(n.mode=Mp),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,f=n.bits,c=s,h=u,R=ca;e:for(;;)switch(n.mode){case vc:if(n.wrap===0){n.mode=Mp;break}for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.wrap&2&&l===35615){n.wbits===0&&(n.wbits=15),n.check=0,L[0]=l&255,L[1]=l>>>8&255,n.check=dt(n.check,L,2,0),l=0,f=0,n.mode=AA;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)!==xA){e.msg="unknown compression method",n.mode=qe;break}if(l>>>=4,f-=4,B=(l&15)+8,n.wbits===0&&(n.wbits=B),B>15||B>n.wbits){e.msg="invalid window size",n.mode=qe;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=l&512?BA:hr,l=0,f=0;break;case AA:for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(n.flags=l,(n.flags&255)!==xA){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&&(L[0]=l&255,L[1]=l>>>8&255,n.check=dt(n.check,L,2,0)),l=0,f=0,n.mode=EA;case EA:for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.head&&(n.head.time=l),n.flags&512&&n.wrap&4&&(L[0]=l&255,L[1]=l>>>8&255,L[2]=l>>>16&255,L[3]=l>>>24&255,n.check=dt(n.check,L,4,0)),l=0,f=0,n.mode=_A;case _A:for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&n.wrap&4&&(L[0]=l&255,L[1]=l>>>8&255,n.check=dt(n.check,L,2,0)),l=0,f=0,n.mode=SA;case SA:if(n.flags&1024){for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&n.wrap&4&&(L[0]=l&255,L[1]=l>>>8&255,n.check=dt(n.check,L,2,0)),l=0,f=0}else n.head&&(n.head.extra=null);n.mode=CA;case CA:if(n.flags&1024&&(d=n.length,d>s&&(d=s),d&&(n.head&&(B=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(a,a+d),B)),n.flags&512&&n.wrap&4&&(n.check=dt(n.check,r,d,a)),s-=d,a+=d,n.length-=d),n.length))break e;n.length=0,n.mode=TA;case TA:if(n.flags&2048){if(s===0)break e;d=0;do B=r[a+d++],n.head&&B&&n.length<65536&&(n.head.name+=String.fromCharCode(B));while(B&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=dt(n.check,r,d,a)),s-=d,a+=d,B)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=kA;case kA:if(n.flags&4096){if(s===0)break e;d=0;do B=r[a+d++],n.head&&B&&n.length<65536&&(n.head.comment+=String.fromCharCode(B));while(B&&d<s);if(n.flags&512&&n.wrap&4&&(n.check=dt(n.check,r,d,a)),s-=d,a+=d,B)break e}else n.head&&(n.head.comment=null);n.mode=IA;case IA:if(n.flags&512){for(;f<16;){if(s===0)break e;s--,l+=r[a++]<<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 BA:for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}e.adler=n.check=qA(l),l=0,f=0,n.mode=xc;case xc:if(n.havedict===0)return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,BL;e.adler=n.check=1,n.mode=hr;case hr:if(t===kL||t===wc)break e;case Mp:if(n.last){l>>>=f&7,f-=f&7,n.mode=Lp;break}for(;f<3;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}switch(n.last=l&1,l>>>=1,f-=1,l&3){case 0:n.mode=DA;break;case 1:if(NL(n),n.mode=Ac,t===wc){l>>>=2,f-=2;break e}break;case 2:n.mode=RA;break;case 3:e.msg="invalid block type",n.mode=qe}l>>>=2,f-=2;break;case DA:for(l>>>=f&7,f-=f&7;f<32;){if(s===0)break e;s--,l+=r[a++]<<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=Pp,t===wc)break e;case Pp:n.mode=FA;case FA:if(d=n.length,d){if(d>s&&(d=s),d>u&&(d=u),d===0)break e;i.set(r.subarray(a,a+d),o),s-=d,a+=d,u-=d,o+=d,n.length-=d;break}n.mode=hr;break;case RA:for(;f<14;){if(s===0)break e;s--,l+=r[a++]<<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=MA;case MA:for(;n.have<n.ncode;){for(;f<3;){if(s===0)break e;s--,l+=r[a++]<<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(TL,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=PA;case PA:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,E=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(C<16)l>>>=w,f-=w,n.lens[n.have++]=C;else{if(C===16){for(M=w+2;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(l>>>=w,f-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=qe;break}B=n.lens[n.have-1],d=3+(l&3),l>>>=2,f-=2}else if(C===17){for(M=w+3;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=w,f-=w,B=0,d=3+(l&7),l>>>=3,f-=3}else{for(M=w+7;f<M;){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=w,f-=w,B=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++]=B}}if(n.mode===qe)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=qe;break}if(n.lenbits=9,j={bits:n.lenbits},R=Fl(mA,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(bA,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=Ac,t===wc)break e;case Ac:n.mode=Ec;case Ec:if(s>=6&&u>=258){e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,AL(e,h),o=e.next_out,i=e.output,u=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,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,E=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(E&&!(E&240)){for(_=w,k=E,I=C;y=n.lencode[I+((l&(1<<_+k)-1)>>_)],w=y>>>24,E=y>>>16&255,C=y&65535,!(_+w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=_,f-=_,n.back+=_}if(l>>>=w,f-=w,n.back+=w,n.length=C,E===0){n.mode=UA;break}if(E&32){n.back=-1,n.mode=hr;break}if(E&64){e.msg="invalid literal/length code",n.mode=qe;break}n.extra=E&15,n.mode=LA;case LA:if(n.extra){for(M=n.extra;f<M;){if(s===0)break e;s--,l+=r[a++]<<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=NA;case NA:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,E=y>>>16&255,C=y&65535,!(w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}if(!(E&240)){for(_=w,k=E,I=C;y=n.distcode[I+((l&(1<<_+k)-1)>>_)],w=y>>>24,E=y>>>16&255,C=y&65535,!(_+w<=f);){if(s===0)break e;s--,l+=r[a++]<<f,f+=8}l>>>=_,f-=_,n.back+=_}if(l>>>=w,f-=w,n.back+=w,E&64){e.msg="invalid distance code",n.mode=qe;break}n.offset=C,n.extra=E&15,n.mode=OA;case OA:if(n.extra){for(M=n.extra;f<M;){if(s===0)break e;s--,l+=r[a++]<<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=zA;case zA: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=o-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[o++]=b[p++];while(--d);n.length===0&&(n.mode=Ec);break;case UA:if(u===0)break e;i[o++]=n.length,u--,n.mode=Ec;break;case Lp:if(n.wrap){for(;f<32;){if(s===0)break e;s--,l|=r[a++]<<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,o-h):El(n.check,i,h,o-h)),h=u,n.wrap&4&&(n.flags?l:qA(l))!==n.check){e.msg="incorrect data check",n.mode=qe;break}l=0,f=0}n.mode=GA;case GA:if(n.wrap&&n.flags){for(;f<32;){if(s===0)break e;s--,l+=r[a++]<<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=HA;case HA:R=IL;break e;case qe:R=wA;break e;case VA:return vA;case jA:default:return fn}return e.next_out=o,e.avail_out=u,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=f,(n.wsize||h!==e.avail_out&&n.mode<qe&&(n.mode<Lp||t!==yA))&&XA(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===Ac||n.mode===Pp?256:0),(c===0&&h===0||t===yA)&&R===ca&&(R=DL),R},zL=e=>{if(ha(e))return fn;let t=e.state;return t.window&&(t.window=null),e.state=null,ca},UL=(e,t)=>{if(ha(e))return fn;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,ca):fn},GL=(e,t)=>{const n=t.length;let r,i,a;return ha(e)||(r=e.state,r.wrap!==0&&r.mode!==xc)?fn:r.mode===xc&&(i=1,i=El(i,t,n,0),i!==r.check)?wA:(a=XA(e,t,n,n),a?(r.mode=VA,vA):(r.havedict=1,ca))};var HL=WA,VL=YA,jL=ZA,qL=LL,ZL=QA,WL=OL,YL=zL,QL=UL,$L=GL,XL="pako inflate (from Nodeca project)",dr={inflateReset:HL,inflateReset2:VL,inflateResetKeep:jL,inflateInit:qL,inflateInit2:ZL,inflate:WL,inflateEnd:YL,inflateGetHeader:QL,inflateSetDictionary:$L,inflateInfo:XL};function KL(){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 JL=KL;const KA=Object.prototype.toString,{Z_NO_FLUSH:eN,Z_FINISH:tN,Z_OK:Rl,Z_STREAM_END:zp,Z_NEED_DICT:Up,Z_STREAM_ERROR:nN,Z_DATA_ERROR:JA,Z_MEM_ERROR:rN}=_l;function Ml(e){this.options=mc.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 fA,this.strm.avail_out=0;let n=dr.inflateInit2(this.strm,t.windowBits);if(n!==Rl)throw new Error(lo[n]);if(this.header=new JL,dr.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Dl.string2buf(t.dictionary):KA.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(lo[n])}Ml.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let a,o,s;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?tN:eN,KA.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),a=dr.inflate(n,o),a===Up&&i&&(a=dr.inflateSetDictionary(n,i),a===Rl?a=dr.inflate(n,o):a===JA&&(a=Up));n.avail_in>0&&a===zp&&n.state.wrap>0&&e[n.next_in]!==0;)dr.inflateReset(n),a=dr.inflate(n,o);switch(a){case nN:case JA:case Up:case rN:return this.onEnd(a),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||a===zp))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(!(a===Rl&&s===0)){if(a===zp)return a=dr.inflateEnd(this.strm),this.onEnd(a),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=mc.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Gp(e,t){const n=new Ml(t);if(n.push(e),n.err)throw n.msg||lo[n.err];return n.result}function iN(e,t){return t=t||{},t.raw=!0,Gp(e,t)}var aN=Ml,oN=Gp,sN=iN,lN=Gp,uN=_l,fN={Inflate:aN,inflate:oN,inflateRaw:sN,ungzip:lN,constants:uN};const{Inflate:iU,inflate:aU,inflateRaw:cN,ungzip:oU}=fN;var hN=cN;function dN(e){return hN(e.subarray(2))}let pN=class extends Error{constructor(t){super(t),this.code="ERR_ABORTED"}};function gN(e){e.sort((i,a)=>Number(i.offset)-Number(a.offset));const t=[];let n,r;for(const i of e)n&&r&&Number(i.offset)-r<=2e3?(n.length=BigInt(Number(n.length)+Number(i.length)-r+Number(i.offset)),n.blocks.push(i)):t.push(n={blocks:[i],length:i.length,offset:i.offset}),r=Number(n.offset)+Number(n.length);return t}function _c(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new pN("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}const mN=1,bN=2,yN=3;function Hp(e,t,n,r){return e<r&&t>=n}function wN(e){const t=e?"big":"little",n=new ke().endianess(t).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new ke().endianess(t).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new ke().endianess(t).array("blocksToFetch",{length:"cnt",type:new ke().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new ke().array("recurOffsets",{length:"cnt",type:new ke().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new ke().endianess(t).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new ke().endianess(t).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[yN]:new ke().array("items",{length:"itemCount",type:new ke().floatle("score")}),[bN]:new ke().array("items",{length:"itemCount",type:new ke().endianess(t).int32("start").floatle("score")}),[mN]:new ke().array("items",{length:"itemCount",type:new ke().endianess(t).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class e3{constructor(t,n,r,i,a,o){if(this.bbi=t,this.refsByName=n,this.cirTreeOffset=r,this.isBigEndian=i,this.isCompressed=a,this.blockType=o,this.featureCache=new fc({cache:new cc({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=wN(i);this.leafParser=s.leafParser,this.bigBedParser=s.bigBedParser}async readWigData(t,n,r,i,a){try{const{refsByName:o,bbi:s,cirTreeOffset:u,isBigEndian:l}=this,f=o[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),a));const{buffer:h}=await this.cirTreePromise,d=l?h.readUInt32BE(4):h.readUInt32LE(4);let p=[],b=0;const y=(_,k,I)=>{try{const B=_.subarray(k),R=this.leafParser.parse(B);if(R.blocksToFetch&&(p=p.concat(R.blocksToFetch.filter(L=>w(L)).map(L=>({offset:L.blockOffset,length:L.blockSize})))),R.recurOffsets){const L=R.recurOffsets.filter(j=>w(j)).map(j=>Number(j.blockOffset));L.length>0&&C(L,I+1)}}catch(B){i.error(B)}},w=_=>{const{startChrom:k,startBase:I,endChrom:B,endBase:R}=_;return(k<f||k===f&&I<=r)&&(B>f||B===f&&R>=n)},E=async(_,k,I)=>{try{const B=k.max()-k.min(),R=k.min(),L=await this.featureCache.get(`${B}_${R}`,{length:B,offset:R},a==null?void 0:a.signal);for(const j of _)k.contains(j)&&(y(L,j-R,I),b-=1,b===0&&this.readFeatures(i,p,{...a,request:c}))}catch(B){i.error(B)}},C=(_,k)=>{try{b+=_.length;const I=4+Number(d)*32;let B=new ei(_[0],_[0]+I);for(let R=1;R<_.length;R+=1){const L=new ei(_[R],_[R]+I);B=B.union(L)}B.getRanges().map(R=>E(_,R,k))}catch(I){i.error(I)}};return C([Number(u)+48],1)}catch(o){i.error(o)}}parseSummaryBlock(t,n,r){const i=[];let a=n;const o=new DataView(t.buffer,t.byteOffset,t.length);for(;a<t.byteLength;){const s=o.getUint32(a,!0);a+=4;const u=o.getUint32(a,!0);a+=4;const l=o.getUint32(a,!0);a+=4;const f=o.getUint32(a,!0);a+=4;const c=o.getFloat32(a,!0);a+=4;const h=o.getFloat32(a,!0);a+=4;const d=o.getFloat32(a,!0);a+=4,a+=4,(!r||s===r.chrId&&Hp(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 a=[];let o=n;for(;o<t.byteLength;){const s=this.bigBedParser.parse(t.subarray(o));s.uniqueId=`bb-${r+o}`,a.push(s),o+=s.offset}return i?a.filter(s=>Hp(s.start,s.end,i.start,i.end)):a}parseBigWigBlock(t,n,r){const i=t.subarray(n),a=new DataView(i.buffer,i.byteOffset,i.length);let o=0;o+=4;const s=a.getInt32(o,!0);o+=8;const u=a.getUint32(o,!0);o+=4;const l=a.getUint32(o,!0);o+=4;const f=a.getUint8(o);o+=2;const c=a.getUint16(o,!0);o+=2;const h=new Array(c);switch(f){case 1:{for(let d=0;d<c;d++){const p=a.getInt32(o,!0);o+=4;const b=a.getInt32(o,!0);o+=4;const y=a.getFloat32(o,!0);o+=4,h[d]={start:p,end:b,score:y}}break}case 2:{for(let d=0;d<c;d++){const p=a.getInt32(o,!0);o+=4;const b=a.getFloat32(o,!0);o+=4,h[d]={score:b,start:p,end:p+l}}break}case 3:{for(let d=0;d<c;d++){const p=a.getFloat32(o,!0);o+=4;const b=s+d*u;h[d]={score:p,start:b,end:b+l}}break}}return r?h.filter(d=>Hp(d.start,d.end,r.start,r.end)):h}async readFeatures(t,n,r={}){try{const{blockType:i,isCompressed:a}=this,{signal:o,request:s}=r,u=gN(n);_c(o),await Promise.all(u.map(async l=>{_c(o);const{length:f,offset:c}=l,h=await this.featureCache.get(`${f}_${c}`,l,o);for(const d of l.blocks){_c(o);let p=Number(d.offset)-Number(l.offset),b=h;switch(a&&(b=dN(h.subarray(p)),p=0),_c(o),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 Vp=function(e,t){return Vp=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])},Vp(e,t)};function jp(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Vp(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function vN(e,t,n,r){function i(a){return a instanceof n?a:new n(function(o){o(a)})}return new(n||(n=Promise))(function(a,o){function s(f){try{l(r.next(f))}catch(c){o(c)}}function u(f){try{l(r.throw(f))}catch(c){o(c)}}function l(f){f.done?a(f.value):i(f.value).then(s,u)}l((r=r.apply(e,t||[])).next())})}function t3(e,t){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,i,a,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(l){return function(f){return u([l,f])}}function u(l){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(n=0)),n;)try{if(r=1,i&&(a=l[0]&2?i.return:l[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,l[1])).done)return a;switch(i=0,a&&(l=[l[0]&2,a.value]),l[0]){case 0:case 1:a=l;break;case 4:return n.label++,{value:l[1],done:!1};case 5:n.label++,i=l[1],l=[0];continue;case 7:l=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(l[0]===6||l[0]===2)){n=0;continue}if(l[0]===3&&(!a||l[1]>a[0]&&l[1]<a[3])){n.label=l[1];break}if(l[0]===6&&n.label<a[1]){n.label=a[1],a=l;break}if(a&&n.label<a[2]){n.label=a[2],n.ops.push(l);break}a[2]&&n.ops.pop(),n.trys.pop();continue}l=t.call(e,n)}catch(f){l=[6,f],i=0}finally{r=a=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 qp(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,a=[],o;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)a.push(i.value)}catch(s){o={error:s}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a}function Zp(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||(a=Array.prototype.slice.call(t,0,r)),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}function mo(e){return this instanceof mo?(this.v=e,this):new mo(e)}function xN(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),i,a=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(h){r[h]&&(i[h]=function(d){return new Promise(function(p,b){a.push([h,d,p,b])>1||s(h,d)})})}function s(h,d){try{u(r[h](d))}catch(p){c(a[0][3],p)}}function u(h){h.value instanceof mo?Promise.resolve(h.value.v).then(l,f):c(a[0][2],h)}function l(h){s("next",h)}function f(h){s("throw",h)}function c(h,d){h(d),a.shift(),a.length&&s(a[0][0],a[0][1])}}function AN(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(a){n[a]=e[a]&&function(o){return new Promise(function(s,u){o=e[a](o),i(s,u,o.done,o.value)})}}function i(a,o,s,u){Promise.resolve(u).then(function(l){a({value:l,done:s})},o)}}typeof SuppressedError=="function"&&SuppressedError;function ot(e){return typeof e=="function"}function n3(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 Wp=n3(function(e){return function(n){e(this),this.message=n?n.length+` errors occurred during unsubscription:
327
337
  `+n.map(function(r,i){return i+1+") "+r.toString()}).join(`
328
- `):"",this.name="UnsubscriptionError",this.errors=n}});function r3(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var Yp=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,n,r,i,a;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var s=Pl(o),u=s.next();!u.done;u=s.next()){var l=u.value;l.remove(this)}}catch(m){t={error:m}}finally{try{u&&!u.done&&(n=s.return)&&n.call(s)}finally{if(t)throw t.error}}else o.remove(this);var f=this.initialTeardown;if(ot(f))try{f()}catch(m){a=m instanceof Wp?m.errors:[m]}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{a3(p)}catch(m){a=a??[],m instanceof Wp?a=Zp(Zp([],qp(a)),qp(m.errors)):a.push(m)}}}catch(m){r={error:m}}finally{try{d&&!d.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}}if(a)throw new Wp(a)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)a3(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)&&r3(n,t)},e.prototype.remove=function(t){var n=this._finalizers;n&&r3(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();Yp.EMPTY;function i3(e){return e instanceof Yp||e&&"closed"in e&&ot(e.remove)&&ot(e.add)&&ot(e.unsubscribe)}function a3(e){ot(e)?e():e.unsubscribe()}var o3={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},s3={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return setTimeout.apply(void 0,Zp([e,t],qp(n)))},clearTimeout:function(e){var t=s3.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function l3(e){s3.setTimeout(function(){throw e})}function u3(){}function EN(e){e()}var Qp=function(e){jp(t,e);function t(n){var r=e.call(this)||this;return r.isStopped=!1,n?(r.destination=n,i3(n)&&n.add(r)):r.destination=TN,r}return t.create=function(n,r,i){return new Sc(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}(Yp),_N=Function.prototype.bind;function $p(e,t){return _N.call(e,t)}var SN=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){Cc(r)}},e.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(r){Cc(r)}else Cc(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(n){Cc(n)}},e}(),Sc=function(e){jp(t,e);function t(n,r,i){var a=e.call(this)||this,o;if(ot(n)||!n)o={next:n??void 0,error:r??void 0,complete:i??void 0};else{var s;a&&o3.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return a.unsubscribe()},o={next:n.next&&$p(n.next,s),error:n.error&&$p(n.error,s),complete:n.complete&&$p(n.complete,s)}):o=n}return a.destination=new SN(o),a}return t}(Qp);function Cc(e){l3(e)}function CN(e){throw e}var TN={closed:!0,next:u3,error:CN,complete:u3},Xp=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function f3(e){return e}function kN(e){return e.length===0?f3: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,a=BN(t)?t:new Sc(t,n,r);return EN(function(){var o=i,s=o.operator,u=o.source;a.add(s?s.call(a,u):u?i._subscribe(a):i._trySubscribe(a))}),a},e.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(n){t.error(n)}},e.prototype.forEach=function(t,n){var r=this;return n=c3(n),new n(function(i,a){var o=new Sc({next:function(s){try{t(s)}catch(u){a(u),o.unsubscribe()}},error:a,complete:i});r.subscribe(o)})},e.prototype._subscribe=function(t){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(t)},e.prototype[Xp]=function(){return this},e.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return kN(t)(this)},e.prototype.toPromise=function(t){var n=this;return t=c3(t),new t(function(r,i){var a;n.subscribe(function(o){return a=o},function(o){return i(o)},function(){return r(a)})})},e.create=function(t){return new e(t)},e}();function c3(e){var t;return(t=e??o3.Promise)!==null&&t!==void 0?t:Promise}function IN(e){return e&&ot(e.next)&&ot(e.error)&&ot(e.complete)}function BN(e){return e&&e instanceof Qp||IN(e)&&i3(e)}function DN(e){return ot(e==null?void 0:e.lift)}function bo(e){return function(t){if(DN(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 FN(e,t,n,r,i)}var FN=function(e){jp(t,e);function t(n,r,i,a,o,s){var u=e.call(this,n)||this;return u.onFinalize=o,u.shouldUnsubscribe=s,u._next=r?function(l){try{r(l)}catch(f){n.error(f)}}:e.prototype._next,u._error=a?function(l){try{a(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),RN=new cn(function(e){return e.complete()});function MN(e){return e&&ot(e.schedule)}function h3(e){return e[e.length-1]}function PN(e){return MN(h3(e))?e.pop():void 0}function LN(e,t){return typeof h3(e)=="number"?e.pop():t}var d3=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function p3(e){return ot(e==null?void 0:e.then)}function g3(e){return ot(e[Xp])}function m3(e){return Symbol.asyncIterator&&ot(e==null?void 0:e[Symbol.asyncIterator])}function b3(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 NN(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var y3=NN();function w3(e){return ot(e==null?void 0:e[y3])}function v3(e){return xN(this,arguments,function(){var n,r,i,a;return t3(this,function(o){switch(o.label){case 0:n=e.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,mo(n.read())];case 3:return r=o.sent(),i=r.value,a=r.done,a?[4,mo(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,mo(i)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function x3(e){return ot(e==null?void 0:e.getReader)}function yo(e){if(e instanceof cn)return e;if(e!=null){if(g3(e))return ON(e);if(d3(e))return zN(e);if(p3(e))return UN(e);if(m3(e))return A3(e);if(w3(e))return GN(e);if(x3(e))return HN(e)}throw b3(e)}function ON(e){return new cn(function(t){var n=e[Xp]();if(ot(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function zN(e){return new cn(function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()})}function UN(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,l3)})}function GN(e){return new cn(function(t){var n,r;try{for(var i=Pl(e),a=i.next();!a.done;a=i.next()){var o=a.value;if(t.next(o),t.closed)return}}catch(s){n={error:s}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}t.complete()})}function A3(e){return new cn(function(t){VN(e,t).catch(function(n){return t.error(n)})})}function HN(e){return A3(v3(e))}function VN(e,t){var n,r,i,a;return vN(this,void 0,void 0,function(){var o,s;return t3(this,function(u){switch(u.label){case 0:u.trys.push([0,5,6,11]),n=AN(e),u.label=1;case 1:return[4,n.next()];case 2:if(r=u.sent(),!!r.done)return[3,4];if(o=r.value,t.next(o),t.closed)return[2];u.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return s=u.sent(),i={error:s},[3,11];case 6:return u.trys.push([6,,9,10]),r&&!r.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:u.sent(),u.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})}function oi(e,t,n,r,i){r===void 0&&(r=0),i===void 0&&(i=!1);var a=t.schedule(function(){n(),i?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(a),!i)return a}function E3(e,t){return t===void 0&&(t=0),bo(function(n,r){n.subscribe(Ll(r,function(i){return oi(r,e,function(){return r.next(i)},t)},function(){return oi(r,e,function(){return r.complete()},t)},function(i){return oi(r,e,function(){return r.error(i)},t)}))})}function _3(e,t){return t===void 0&&(t=0),bo(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function jN(e,t){return yo(e).pipe(_3(t),E3(t))}function qN(e,t){return yo(e).pipe(_3(t),E3(t))}function ZN(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 WN(e,t){return new cn(function(n){var r;return oi(n,t,function(){r=e[y3](),oi(n,t,function(){var i,a,o;try{i=r.next(),a=i.value,o=i.done}catch(s){n.error(s);return}o?n.complete():n.next(a)},0,!0)}),function(){return ot(r==null?void 0:r.return)&&r.return()}})}function S3(e,t){if(!e)throw new Error("Iterable cannot be null");return new cn(function(n){oi(n,t,function(){var r=e[Symbol.asyncIterator]();oi(n,t,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function YN(e,t){return S3(v3(e),t)}function QN(e,t){if(e!=null){if(g3(e))return jN(e,t);if(d3(e))return ZN(e,t);if(p3(e))return qN(e,t);if(m3(e))return S3(e,t);if(w3(e))return WN(e,t);if(x3(e))return YN(e,t)}throw b3(e)}function $N(e,t){return t?QN(e,t):yo(e)}var XN=n3(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function C3(e,t){var n=typeof t=="object";return new Promise(function(r,i){var a=new Sc({next:function(o){r(o),a.unsubscribe()},error:i,complete:function(){n?r(t.defaultValue):i(new XN)}});e.subscribe(a)})}function T3(e,t){return bo(function(n,r){var i=0;n.subscribe(Ll(r,function(a){r.next(e.call(t,a,i++))}))})}function KN(e,t,n,r,i,a,o,s){var u=[],l=0,f=0,c=!1,h=function(){c&&!u.length&&!l&&t.complete()},d=function(m){return l<r?p(m):u.push(m)},p=function(m){a&&t.next(m),l++;var y=!1;yo(n(m,f++)).subscribe(Ll(t,function(w){i==null||i(w),a?d(w):t.next(w)},function(){y=!0},void 0,function(){if(y)try{l--;for(var w=function(){var _=u.shift();o?oi(t,o,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 k3(e,t,n){return n===void 0&&(n=1/0),ot(t)?k3(function(r,i){return T3(function(a,o){return t(r,a,i,o)})(yo(e(r,i)))},n):(typeof t=="number"&&(n=t),bo(function(r,i){return KN(r,i,e,n)}))}function JN(e){return e===void 0&&(e=1/0),k3(f3,e)}function eO(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=PN(e),r=LN(e,1/0),i=e;return i.length?i.length===1?yo(i[0]):JN(r)($N(i,n)):RN}function tO(e,t,n,r,i){return function(a,o){var s=n,u=t,l=0;a.subscribe(Ll(o,function(f){var c=l++;u=s?e(u,f,c):(s=!0,f),r&&o.next(u)},i&&function(){s&&o.next(u),o.complete()}))}}function I3(e,t){return bo(tO(e,t,arguments.length>=2,!1,!0))}var nO=function(e,t){return e.push(t),e};function rO(){return bo(function(e,t){I3(nO,[])(e).subscribe(t)})}const B3=-2003829722,Kp=-2021002517;function iO(e){return new TextDecoder().decode(e)}function D3(e){const t=e?"big":"little",n=new ke().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 ke().endianess(t).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new ke().endianess(t).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new ke().endianess(t).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),a=new ke().endianess(t).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:a}}class F3{getHeader(t){return this.headerP||(this.headerP=this._getHeader(t).catch(n=>{throw this.headerP=void 0,n})),this.headerP}constructor(t){const{filehandle:n,renameRefSeqs:r=o=>o,path:i,url:a}=t;if(this.renameRefSeqs=r,n)this.bbi=n;else if(a)this.bbi=new Wi(a);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),a=D3(i),o=a.headerParser.parse(r),{magic:s,asOffset:u,totalSummaryOffset:l}=o;if(o.fileType=s===Kp?"bigbed":"bigwig",u>n||l>n)return this._getMainHeader(t,n*2);if(u){const f=Number(o.asOffset);o.autoSql=iO(r.subarray(f,r.indexOf(0,f)))}if(o.totalSummaryOffset>n-8*5)return this._getMainHeader(t,n*2);if(o.totalSummaryOffset){const f=r.subarray(Number(o.totalSummaryOffset)),c=a.totalSummaryParser.parse(f);o.totalSummary={...c,basesCovered:Number(c.basesCovered)}}return{...o,isBigEndian:i}}_isBigEndian(t){let n=t.readInt32LE(0);if(n===B3||n===Kp)return!1;if(n=t.readInt32BE(0),n===B3||n===Kp)return!0;throw new Error("not a BigWig/BigBed file")}async _readChromTree(t,n){const r=t.isBigEndian,i=r?"big":"little",a=[],o={};let s=Number(t.unzoomedDataOffset);const u=Number(t.chromTreeOffset);for(;s%4!==0;)s+=1;const l=s-u,{buffer:f}=await this.bbi.read(pe.Buffer.alloc(l),0,l,Number(u),n),c=D3(r),{keySize:h}=c.chromTreeParser.parse(f),d=new ke().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),p=new ke().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),m=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:k}=C;if(_+=C.offset,E)for(let B=0;B<k;B+=1){const I=d.parse(f.subarray(_));_+=I.offset;const{key:R,refId:L,refSize:j}=I,M={name:R,id:L,length:j};o[this.renameRefSeqs(R)]=L,a[L]=M}else{const B=[];for(let I=0;I<k;I+=1){const R=p.parse(f.subarray(_)),{childOffset:L}=R;_+=R.offset,B.push(y(Number(L)-Number(u)))}await Promise.all(B)}};return await y(m),{refsByName:o,refsByNumber:a}}async getUnzoomedView(t){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:a,fileType:o}=await this.getHeader(t);return new e3(this.bbi,r,n,a,i>0,o)}async getFeatureStream(t,n,r,i){await this.getHeader(i);const a=this.renameRefSeqs(t);let o;const{basesPerSpan:s,scale:u}=i||{};return s?o=await this.getView(1/s,i):u?o=await this.getView(u,i):o=await this.getView(1,i),new cn(l=>{o.readWigData(a,n,r,l,i)})}async getFeatures(t,n,r,i){const a=await this.getFeatureStream(t,n,r,i);return(await C3(a.pipe(rO()))).flat()}}class aO extends F3{async getView(t,n){const{zoomLevels:r,refsByName:i,fileSize:a,isBigEndian:o,uncompressBufSize:s}=await this.getHeader(n),u=1/t;let l=r.length;a||(l-=1);for(let f=l;f>=0;f-=1){const c=r[f];if(c&&c.reductionLevel<=2*u){const h=Number(c.indexOffset);return new e3(this.bbi,i,h,o,s>0,"summary")}}return this.getUnzoomedView(n)}}function oO(e){return e.filter(t=>!!t)}class sO extends F3{constructor(){super(...arguments),this.readIndicesCache=new fc({cache:new cc({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)),a=r?"big":"little",o=new ke().endianess(a).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:u}=o;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 ke().endianess(a).int16("type").int16("fieldcount").uint64("offset").skip(4).int16("field"),d=[];for(let p=0;p<s;p+=1)d.push(h.parse(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 a=i.map(async o=>{const{offset:s,field:u}=o,{buffer:l}=await this.bbi.read(pe.Buffer.alloc(32),0,32,Number(s),n),f=r?"big":"little",c=new ke().endianess(f).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:p}=c.parse(l),m=new ke().endianess(f).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new ke().array("leafkeys",{length:"cnt",type:new ke().endianess(f).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new ke().array("keys",{length:"cnt",type:new ke().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:k}=await this.bbi.read(pe.Buffer.alloc(E),0,E,C,n),B=m.parse(k);if(B.leafkeys){let I;for(let R=0;R<B.leafkeys.length;R+=1){const{key:L}=B.leafkeys[R];if(t.localeCompare(L)<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 oO(await Promise.all(a))}async searchExtraIndex(t,n={}){const r=await this.searchExtraIndexBlocks(t,n);if(r.length===0)return[];const i=await this.getUnzoomedView(n),a=r.map(s=>new cn(u=>{i.readFeatures(u,[s],n)}).pipe(I3((u,l)=>u.concat(l)),T3(u=>{for(const l of u)l.field=s.field;return u})));return(await C3(eO(...a))).filter(s=>{var u;return((u=s.rest)===null||u===void 0?void 0:u.split(" ")[(s.field||0)-3])===t})}}const R3=Object.freeze(Object.defineProperty({__proto__:null,BigBed:sO,BigWig:aO},Symbol.toStringTag,{value:"Module"}));function lO(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function wo(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,wo)}lO(wo,Error),wo.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?a(l.parts[c][0])+"-"+a(l.parts[c][1]):a(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 a(l){return l.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(f){return"\\x0"+r(f)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(f){return"\\x"+r(f)})}function o(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]=o(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 uO(e,t){t=t!==void 0?t:{};var n={},r={declaration:n_},i=n_,a="(",o=Fe("(",!1),s=")",u=Fe(")",!1),l=function(A,z,$,X){return{type:A,name:z,comment:$,fields:X}},f="simple",c=Fe("simple",!1),h="object",d=Fe("object",!1),p="table",m=Fe("table",!1),y="auto",w=Fe("auto",!1),_="primary",C=Fe("primary",!1),E="index",k=Fe("index",!1),B="unique",I=Fe("unique",!1),R=function(A,z){return z},L=function(A,z){return A.name&&z.unshift(A),z},j="#",M=Fe("#",!1),ie=";",se=Fe(";",!1),ge=function(A,z,$){return{type:A,name:z,comment:$}},Ie="[",$e=Fe("[",!1),De="]",Ke=Fe("]",!1),Ze=function(A,z,$,X){return{type:A,size:z,name:$,comment:X}},Je=function(A,z,$,X){return{type:A,vals:z,name:$,comment:X}},Ee=",",_e=Fe(",",!1),pt=function(A,z){return z.unshift(A),z},qt="int",Oe=Fe("int",!1),N="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),Kn="double",v=Fe("double",!1),g="bigint",b=Fe("bigint",!1),T="set",F=Fe("set",!1),O=function(A,z){return A+" "+z},V=/^[a-zA-Z_]/,fe=iu([["a","z"],["A","Z"],"_"],!1,!1),Ge=/^[a-zA-Z0-9_]/,Me=iu([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),We=function(A){return KE()},Se=/^[^\n\r]/,WE=iu([`
338
+ `):"",this.name="UnsubscriptionError",this.errors=n}});function r3(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var Yp=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,n,r,i,a;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var s=Pl(o),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 o.remove(this);var f=this.initialTeardown;if(ot(f))try{f()}catch(b){a=b instanceof Wp?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{a3(p)}catch(b){a=a??[],b instanceof Wp?a=Zp(Zp([],qp(a)),qp(b.errors)):a.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(a)throw new Wp(a)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)a3(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)&&r3(n,t)},e.prototype.remove=function(t){var n=this._finalizers;n&&r3(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();Yp.EMPTY;function i3(e){return e instanceof Yp||e&&"closed"in e&&ot(e.remove)&&ot(e.add)&&ot(e.unsubscribe)}function a3(e){ot(e)?e():e.unsubscribe()}var o3={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},s3={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return setTimeout.apply(void 0,Zp([e,t],qp(n)))},clearTimeout:function(e){var t=s3.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function l3(e){s3.setTimeout(function(){throw e})}function u3(){}function EN(e){e()}var Qp=function(e){jp(t,e);function t(n){var r=e.call(this)||this;return r.isStopped=!1,n?(r.destination=n,i3(n)&&n.add(r)):r.destination=TN,r}return t.create=function(n,r,i){return new Sc(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}(Yp),_N=Function.prototype.bind;function $p(e,t){return _N.call(e,t)}var SN=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){Cc(r)}},e.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(r){Cc(r)}else Cc(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(n){Cc(n)}},e}(),Sc=function(e){jp(t,e);function t(n,r,i){var a=e.call(this)||this,o;if(ot(n)||!n)o={next:n??void 0,error:r??void 0,complete:i??void 0};else{var s;a&&o3.useDeprecatedNextContext?(s=Object.create(n),s.unsubscribe=function(){return a.unsubscribe()},o={next:n.next&&$p(n.next,s),error:n.error&&$p(n.error,s),complete:n.complete&&$p(n.complete,s)}):o=n}return a.destination=new SN(o),a}return t}(Qp);function Cc(e){l3(e)}function CN(e){throw e}var TN={closed:!0,next:u3,error:CN,complete:u3},Xp=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function f3(e){return e}function kN(e){return e.length===0?f3: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,a=BN(t)?t:new Sc(t,n,r);return EN(function(){var o=i,s=o.operator,u=o.source;a.add(s?s.call(a,u):u?i._subscribe(a):i._trySubscribe(a))}),a},e.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(n){t.error(n)}},e.prototype.forEach=function(t,n){var r=this;return n=c3(n),new n(function(i,a){var o=new Sc({next:function(s){try{t(s)}catch(u){a(u),o.unsubscribe()}},error:a,complete:i});r.subscribe(o)})},e.prototype._subscribe=function(t){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(t)},e.prototype[Xp]=function(){return this},e.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return kN(t)(this)},e.prototype.toPromise=function(t){var n=this;return t=c3(t),new t(function(r,i){var a;n.subscribe(function(o){return a=o},function(o){return i(o)},function(){return r(a)})})},e.create=function(t){return new e(t)},e}();function c3(e){var t;return(t=e??o3.Promise)!==null&&t!==void 0?t:Promise}function IN(e){return e&&ot(e.next)&&ot(e.error)&&ot(e.complete)}function BN(e){return e&&e instanceof Qp||IN(e)&&i3(e)}function DN(e){return ot(e==null?void 0:e.lift)}function bo(e){return function(t){if(DN(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 FN(e,t,n,r,i)}var FN=function(e){jp(t,e);function t(n,r,i,a,o,s){var u=e.call(this,n)||this;return u.onFinalize=o,u.shouldUnsubscribe=s,u._next=r?function(l){try{r(l)}catch(f){n.error(f)}}:e.prototype._next,u._error=a?function(l){try{a(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),RN=new cn(function(e){return e.complete()});function MN(e){return e&&ot(e.schedule)}function h3(e){return e[e.length-1]}function PN(e){return MN(h3(e))?e.pop():void 0}function LN(e,t){return typeof h3(e)=="number"?e.pop():t}var d3=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function p3(e){return ot(e==null?void 0:e.then)}function g3(e){return ot(e[Xp])}function m3(e){return Symbol.asyncIterator&&ot(e==null?void 0:e[Symbol.asyncIterator])}function b3(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 NN(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var y3=NN();function w3(e){return ot(e==null?void 0:e[y3])}function v3(e){return xN(this,arguments,function(){var n,r,i,a;return t3(this,function(o){switch(o.label){case 0:n=e.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,mo(n.read())];case 3:return r=o.sent(),i=r.value,a=r.done,a?[4,mo(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,mo(i)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function x3(e){return ot(e==null?void 0:e.getReader)}function yo(e){if(e instanceof cn)return e;if(e!=null){if(g3(e))return ON(e);if(d3(e))return zN(e);if(p3(e))return UN(e);if(m3(e))return A3(e);if(w3(e))return GN(e);if(x3(e))return HN(e)}throw b3(e)}function ON(e){return new cn(function(t){var n=e[Xp]();if(ot(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function zN(e){return new cn(function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()})}function UN(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,l3)})}function GN(e){return new cn(function(t){var n,r;try{for(var i=Pl(e),a=i.next();!a.done;a=i.next()){var o=a.value;if(t.next(o),t.closed)return}}catch(s){n={error:s}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}t.complete()})}function A3(e){return new cn(function(t){VN(e,t).catch(function(n){return t.error(n)})})}function HN(e){return A3(v3(e))}function VN(e,t){var n,r,i,a;return vN(this,void 0,void 0,function(){var o,s;return t3(this,function(u){switch(u.label){case 0:u.trys.push([0,5,6,11]),n=AN(e),u.label=1;case 1:return[4,n.next()];case 2:if(r=u.sent(),!!r.done)return[3,4];if(o=r.value,t.next(o),t.closed)return[2];u.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return s=u.sent(),i={error:s},[3,11];case 6:return u.trys.push([6,,9,10]),r&&!r.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:u.sent(),u.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})}function oi(e,t,n,r,i){r===void 0&&(r=0),i===void 0&&(i=!1);var a=t.schedule(function(){n(),i?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(a),!i)return a}function E3(e,t){return t===void 0&&(t=0),bo(function(n,r){n.subscribe(Ll(r,function(i){return oi(r,e,function(){return r.next(i)},t)},function(){return oi(r,e,function(){return r.complete()},t)},function(i){return oi(r,e,function(){return r.error(i)},t)}))})}function _3(e,t){return t===void 0&&(t=0),bo(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function jN(e,t){return yo(e).pipe(_3(t),E3(t))}function qN(e,t){return yo(e).pipe(_3(t),E3(t))}function ZN(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 WN(e,t){return new cn(function(n){var r;return oi(n,t,function(){r=e[y3](),oi(n,t,function(){var i,a,o;try{i=r.next(),a=i.value,o=i.done}catch(s){n.error(s);return}o?n.complete():n.next(a)},0,!0)}),function(){return ot(r==null?void 0:r.return)&&r.return()}})}function S3(e,t){if(!e)throw new Error("Iterable cannot be null");return new cn(function(n){oi(n,t,function(){var r=e[Symbol.asyncIterator]();oi(n,t,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function YN(e,t){return S3(v3(e),t)}function QN(e,t){if(e!=null){if(g3(e))return jN(e,t);if(d3(e))return ZN(e,t);if(p3(e))return qN(e,t);if(m3(e))return S3(e,t);if(w3(e))return WN(e,t);if(x3(e))return YN(e,t)}throw b3(e)}function $N(e,t){return t?QN(e,t):yo(e)}var XN=n3(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function C3(e,t){var n=typeof t=="object";return new Promise(function(r,i){var a=new Sc({next:function(o){r(o),a.unsubscribe()},error:i,complete:function(){n?r(t.defaultValue):i(new XN)}});e.subscribe(a)})}function T3(e,t){return bo(function(n,r){var i=0;n.subscribe(Ll(r,function(a){r.next(e.call(t,a,i++))}))})}function KN(e,t,n,r,i,a,o,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){a&&t.next(b),l++;var y=!1;yo(n(b,f++)).subscribe(Ll(t,function(w){i==null||i(w),a?d(w):t.next(w)},function(){y=!0},void 0,function(){if(y)try{l--;for(var w=function(){var E=u.shift();o?oi(t,o,function(){return p(E)}):p(E)};u.length&&l<r;)w();h()}catch(E){t.error(E)}}))};return e.subscribe(Ll(t,d,function(){c=!0,h()})),function(){s==null||s()}}function k3(e,t,n){return n===void 0&&(n=1/0),ot(t)?k3(function(r,i){return T3(function(a,o){return t(r,a,i,o)})(yo(e(r,i)))},n):(typeof t=="number"&&(n=t),bo(function(r,i){return KN(r,i,e,n)}))}function JN(e){return e===void 0&&(e=1/0),k3(f3,e)}function eO(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=PN(e),r=LN(e,1/0),i=e;return i.length?i.length===1?yo(i[0]):JN(r)($N(i,n)):RN}function tO(e,t,n,r,i){return function(a,o){var s=n,u=t,l=0;a.subscribe(Ll(o,function(f){var c=l++;u=s?e(u,f,c):(s=!0,f),r&&o.next(u)},i&&function(){s&&o.next(u),o.complete()}))}}function I3(e,t){return bo(tO(e,t,arguments.length>=2,!1,!0))}var nO=function(e,t){return e.push(t),e};function rO(){return bo(function(e,t){I3(nO,[])(e).subscribe(t)})}const B3=-2003829722,Kp=-2021002517;function iO(e){return new TextDecoder().decode(e)}function D3(e){const t=e?"big":"little",n=new ke().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 ke().endianess(t).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new ke().endianess(t).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new ke().endianess(t).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),a=new ke().endianess(t).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:a}}class F3{getHeader(t){return this.headerP||(this.headerP=this._getHeader(t).catch(n=>{throw this.headerP=void 0,n})),this.headerP}constructor(t){const{filehandle:n,renameRefSeqs:r=o=>o,path:i,url:a}=t;if(this.renameRefSeqs=r,n)this.bbi=n;else if(a)this.bbi=new Wi(a);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),a=D3(i),o=a.headerParser.parse(r),{magic:s,asOffset:u,totalSummaryOffset:l}=o;if(o.fileType=s===Kp?"bigbed":"bigwig",u>n||l>n)return this._getMainHeader(t,n*2);if(u){const f=Number(o.asOffset);o.autoSql=iO(r.subarray(f,r.indexOf(0,f)))}if(o.totalSummaryOffset>n-8*5)return this._getMainHeader(t,n*2);if(o.totalSummaryOffset){const f=r.subarray(Number(o.totalSummaryOffset)),c=a.totalSummaryParser.parse(f);o.totalSummary={...c,basesCovered:Number(c.basesCovered)}}return{...o,isBigEndian:i}}_isBigEndian(t){let n=t.readInt32LE(0);if(n===B3||n===Kp)return!1;if(n=t.readInt32BE(0),n===B3||n===Kp)return!0;throw new Error("not a BigWig/BigBed file")}async _readChromTree(t,n){const r=t.isBigEndian,i=r?"big":"little",a=[],o={};let s=Number(t.unzoomedDataOffset);const u=Number(t.chromTreeOffset);for(;s%4!==0;)s+=1;const l=s-u,{buffer:f}=await this.bbi.read(pe.Buffer.alloc(l),0,l,Number(u),n),c=D3(r),{keySize:h}=c.chromTreeParser.parse(f),d=new ke().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),p=new ke().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),b=32,y=async w=>{let E=w;if(E>=f.length)throw new Error("reading beyond end of buffer");const C=c.isLeafNode.parse(f.subarray(E)),{isLeafNode:_,cnt:k}=C;if(E+=C.offset,_)for(let I=0;I<k;I+=1){const B=d.parse(f.subarray(E));E+=B.offset;const{key:R,refId:L,refSize:j}=B,M={name:R,id:L,length:j};o[this.renameRefSeqs(R)]=L,a[L]=M}else{const I=[];for(let B=0;B<k;B+=1){const R=p.parse(f.subarray(E)),{childOffset:L}=R;E+=R.offset,I.push(y(Number(L)-Number(u)))}await Promise.all(I)}};return await y(b),{refsByName:o,refsByNumber:a}}async getUnzoomedView(t){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:a,fileType:o}=await this.getHeader(t);return new e3(this.bbi,r,n,a,i>0,o)}async getFeatureStream(t,n,r,i){await this.getHeader(i);const a=this.renameRefSeqs(t);let o;const{basesPerSpan:s,scale:u}=i||{};return s?o=await this.getView(1/s,i):u?o=await this.getView(u,i):o=await this.getView(1,i),new cn(l=>{o.readWigData(a,n,r,l,i)})}async getFeatures(t,n,r,i){const a=await this.getFeatureStream(t,n,r,i);return(await C3(a.pipe(rO()))).flat()}}class aO extends F3{async getView(t,n){const{zoomLevels:r,refsByName:i,fileSize:a,isBigEndian:o,uncompressBufSize:s}=await this.getHeader(n),u=1/t;let l=r.length;a||(l-=1);for(let f=l;f>=0;f-=1){const c=r[f];if(c&&c.reductionLevel<=2*u){const h=Number(c.indexOffset);return new e3(this.bbi,i,h,o,s>0,"summary")}}return this.getUnzoomedView(n)}}function oO(e){return e.filter(t=>!!t)}class sO extends F3{constructor(){super(...arguments),this.readIndicesCache=new fc({cache:new cc({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)),a=r?"big":"little",o=new ke().endianess(a).uint16("size").uint16("count").uint64("offset").parse(i),{count:s,offset:u}=o;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 ke().endianess(a).int16("type").int16("fieldcount").uint64("offset").skip(4).int16("field"),d=[];for(let p=0;p<s;p+=1)d.push(h.parse(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 a=i.map(async o=>{const{offset:s,field:u}=o,{buffer:l}=await this.bbi.read(pe.Buffer.alloc(32),0,32,Number(s),n),f=r?"big":"little",c=new ke().endianess(f).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:p}=c.parse(l),b=new ke().endianess(f).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new ke().array("leafkeys",{length:"cnt",type:new ke().endianess(f).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new ke().array("keys",{length:"cnt",type:new ke().endianess(f).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),y=async E=>{const C=Number(E),_=4+h*(d+p),{buffer:k}=await this.bbi.read(pe.Buffer.alloc(_),0,_,C,n),I=b.parse(k);if(I.leafkeys){let B;for(let R=0;R<I.leafkeys.length;R+=1){const{key:L}=I.leafkeys[R];if(t.localeCompare(L)<0&&B)return y(B);B=I.leafkeys[R].offset}return y(B)}for(let B=0;B<I.keys.length;B+=1)if(I.keys[B].key===t)return{...I.keys[B],field:u}},w=32;return y(Number(s)+w)});return oO(await Promise.all(a))}async searchExtraIndex(t,n={}){const r=await this.searchExtraIndexBlocks(t,n);if(r.length===0)return[];const i=await this.getUnzoomedView(n),a=r.map(s=>new cn(u=>{i.readFeatures(u,[s],n)}).pipe(I3((u,l)=>u.concat(l)),T3(u=>{for(const l of u)l.field=s.field;return u})));return(await C3(eO(...a))).filter(s=>{var u;return((u=s.rest)===null||u===void 0?void 0:u.split(" ")[(s.field||0)-3])===t})}}const R3=Object.freeze(Object.defineProperty({__proto__:null,BigBed:sO,BigWig:aO},Symbol.toStringTag,{value:"Module"}));function lO(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function wo(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,wo)}lO(wo,Error),wo.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?a(l.parts[c][0])+"-"+a(l.parts[c][1]):a(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 a(l){return l.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(f){return"\\x0"+r(f)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(f){return"\\x"+r(f)})}function o(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]=o(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 uO(e,t){t=t!==void 0?t:{};var n={},r={declaration:n_},i=n_,a="(",o=Fe("(",!1),s=")",u=Fe(")",!1),l=function(A,z,$,X){return{type:A,name:z,comment:$,fields:X}},f="simple",c=Fe("simple",!1),h="object",d=Fe("object",!1),p="table",b=Fe("table",!1),y="auto",w=Fe("auto",!1),E="primary",C=Fe("primary",!1),_="index",k=Fe("index",!1),I="unique",B=Fe("unique",!1),R=function(A,z){return z},L=function(A,z){return A.name&&z.unshift(A),z},j="#",M=Fe("#",!1),ie=";",se=Fe(";",!1),ge=function(A,z,$){return{type:A,name:z,comment:$}},Ie="[",$e=Fe("[",!1),De="]",Ke=Fe("]",!1),Ze=function(A,z,$,X){return{type:A,size:z,name:$,comment:X}},Je=function(A,z,$,X){return{type:A,vals:z,name:$,comment:X}},Ee=",",_e=Fe(",",!1),pt=function(A,z){return z.unshift(A),z},qt="int",Oe=Fe("int",!1),N="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),Kn="double",v=Fe("double",!1),g="bigint",m=Fe("bigint",!1),T="set",F=Fe("set",!1),O=function(A,z){return A+" "+z},V=/^[a-zA-Z_]/,fe=iu([["a","z"],["A","Z"],"_"],!1,!1),Ge=/^[a-zA-Z0-9_]/,Me=iu([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),We=function(A){return KE()},Se=/^[^\n\r]/,WE=iu([`
329
339
  `,"\r"],!0,!1),Iz=function(A){return A.join("").replace(/^"/,"").replace(/"$/,"")},Bz=JE("integer"),YE=/^[0-9]/,QE=iu([["0","9"]],!1,!1),Dz=function(){return parseInt(KE(),10)},Fz=JE("whitespace"),$E=/^[ \t\n\r]/,XE=iu([" "," ",`
330
- `,"\r"],!1,!1),D=0,Dt=0,Hc=[{line:1,column:1}],Jn=0,Pg=[],re=0,Vc;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 KE(){return e.substring(Dt,D)}function Fe(A,z){return{type:"literal",text:A,ignoreCase:z}}function iu(A,z,$){return{type:"class",parts:A,inverted:z,ignoreCase:$}}function Rz(){return{type:"end"}}function JE(A){return{type:"other",description:A}}function e_(A){var z=Hc[A],$;if(z)return z;for($=A-1;!Hc[$];)$--;for(z=Hc[$],z={line:z.line,column:z.column};$<A;)e.charCodeAt($)===10?(z.line++,z.column=1):z.column++,$++;return Hc[A]=z,z}function t_(A,z){var $=e_(A),X=e_(z);return{start:{offset:A,line:$.line,column:$.column},end:{offset:z,line:X.line,column:X.column}}}function ae(A){D<Jn||(D>Jn&&(Jn=D,Pg=[]),Pg.push(A))}function Mz(A,z,$){return new wo(wo.buildMessage(A,z),A,z,$)}function n_(){var A,z,$,X,te,ze,Ye,pn,hi,vr,di,xr,pi,Ar;return A=D,z=me(),z!==n?($=r_(),$!==n?(X=me(),X!==n?(te=i_(),te!==n?(ze=me(),ze!==n?(Ye=jc(),Ye!==n?(pn=me(),pn!==n?(e.charCodeAt(D)===40?(hi=a,D++):(hi=n,re===0&&ae(o)),hi!==n?(vr=me(),vr!==n?(di=Pz(),di!==n?(xr=me(),xr!==n?(e.charCodeAt(D)===41?(pi=s,D++):(pi=n,re===0&&ae(u)),pi!==n?(Ar=me(),Ar!==n?(Dt=A,z=l($,te,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 r_(){var A;return e.substr(D,6)===f?(A=f,D+=6):(A=n,re===0&&ae(c)),A===n&&(e.substr(D,6)===h?(A=h,D+=6):(A=n,re===0&&ae(d)),A===n&&(e.substr(D,5)===p?(A=p,D+=5):(A=n,re===0&&ae(m)))),A}function i_(){var A,z,$,X;return A=In(),A===n&&(A=D,z=In(),z!==n?($=a_(),$!==n?(z=[z,$],A=z):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=In(),z!==n?(e.substr(D,4)===y?($=y,D+=4):($=n,re===0&&ae(w)),$!==n?(z=[z,$],A=z):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=In(),z!==n?($=a_(),$!==n?(e.substr(D,4)===y?(X=y,D+=4):(X=n,re===0&&ae(w)),X!==n?(z=[z,$,X],A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)))),A}function a_(){var A;return e.substr(D,7)===_?(A=_,D+=7):(A=n,re===0&&ae(C)),A===n&&(e.substr(D,5)===E?(A=E,D+=5):(A=n,re===0&&ae(k)),A===n&&(e.substr(D,6)===B?(A=B,D+=6):(A=n,re===0&&ae(I)))),A}function jc(){var A;return A=o_(),A===n&&(A=me()),A}function Pz(){var A,z,$,X,te,ze,Ye;if(A=D,z=Lg(),z!==n)if($=me(),$!==n){for(X=[],te=D,ze=me(),ze!==n?(Ye=Lg(),Ye!==n?(Dt=te,ze=R(z,Ye),te=ze):(D=te,te=n)):(D=te,te=n);te!==n;)X.push(te),te=D,ze=me(),ze!==n?(Ye=Lg(),Ye!==n?(Dt=te,ze=R(z,Ye),te=ze):(D=te,te=n)):(D=te,te=n);X!==n?(te=me(),te!==n?(Dt=A,z=L(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 Lz(){var A;return e.charCodeAt(D)===35?(A=j,D++):(A=n,re===0&&ae(M)),A}function Nz(){var A,z,$,X,te;return A=D,z=me(),z!==n?($=Lz(),$!==n?(X=o_(),X!==n?(te=me(),te!==n?(z=[z,$,X,te],A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A}function Lg(){var A,z,$,X,te,ze,Ye,pn,hi,vr,di,xr,pi,Ar;return A=D,z=Ng(),z!==n?($=me(),$!==n?(X=In(),X!==n?(te=me(),te!==n?(e.charCodeAt(D)===59?(ze=ie,D++):(ze=n,re===0&&ae(se)),ze!==n?(Ye=me(),Ye!==n?(pn=jc(),pn!==n?(Dt=A,z=ge(z,X,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=Ng(),z!==n?($=me(),$!==n?(e.charCodeAt(D)===91?(X=Ie,D++):(X=n,re===0&&ae($e)),X!==n?(te=me(),te!==n?(ze=zz(),ze!==n?(Ye=me(),Ye!==n?(e.charCodeAt(D)===93?(pn=De,D++):(pn=n,re===0&&ae(Ke)),pn!==n?(hi=me(),hi!==n?(vr=In(),vr!==n?(di=me(),di!==n?(e.charCodeAt(D)===59?(xr=ie,D++):(xr=n,re===0&&ae(se)),xr!==n?(pi=me(),pi!==n?(Ar=jc(),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=Ng(),z!==n?($=me(),$!==n?(e.charCodeAt(D)===40?(X=a,D++):(X=n,re===0&&ae(o)),X!==n?(te=me(),te!==n?(ze=Oz(),ze!==n?(Ye=me(),Ye!==n?(e.charCodeAt(D)===41?(pn=s,D++):(pn=n,re===0&&ae(u)),pn!==n?(hi=me(),hi!==n?(vr=In(),vr!==n?(di=me(),di!==n?(e.charCodeAt(D)===59?(xr=ie,D++):(xr=n,re===0&&ae(se)),xr!==n?(pi=me(),pi!==n?(Ar=jc(),Ar!==n?(Dt=A,z=Je(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=Nz()))),A}function Oz(){var A,z,$,X,te,ze,Ye;if(A=D,z=In(),z!==n){for($=[],X=D,e.charCodeAt(D)===44?(te=Ee,D++):(te=n,re===0&&ae(_e)),te!==n?(ze=me(),ze!==n?(Ye=In(),Ye!==n?(Dt=X,te=R(z,Ye),X=te):(D=X,X=n)):(D=X,X=n)):(D=X,X=n);X!==n;)$.push(X),X=D,e.charCodeAt(D)===44?(te=Ee,D++):(te=n,re===0&&ae(_e)),te!==n?(ze=me(),ze!==n?(Ye=In(),Ye!==n?(Dt=X,te=R(z,Ye),X=te):(D=X,X=n)):(D=X,X=n)):(D=X,X=n);$!==n?(Dt=A,z=pt(z,$),A=z):(D=A,A=n)}else D=A,A=n;return A}function Ng(){var A,z,$,X;return e.substr(D,3)===qt?(A=qt,D+=3):(A=n,re===0&&ae(Oe)),A===n&&(e.substr(D,4)===N?(A=N,D+=4):(A=n,re===0&&ae(P)),A===n&&(e.substr(D,5)===q?(A=q,D+=5):(A=n,re===0&&ae(H)),A===n&&(e.substr(D,6)===Y?(A=Y,D+=6):(A=n,re===0&&ae(S)),A===n&&(e.substr(D,4)===x?(A=x,D+=4):(A=n,re===0&&ae(G)),A===n&&(e.substr(D,5)===Z?(A=Z,D+=5):(A=n,re===0&&ae(le)),A===n&&(e.substr(D,5)===J?(A=J,D+=5):(A=n,re===0&&ae(ue)),A===n&&(e.substr(D,4)===Zt?(A=Zt,D+=4):(A=n,re===0&&ae(li)),A===n&&(e.substr(D,6)===ui?(A=ui,D+=6):(A=n,re===0&&ae(fi)),A===n&&(e.substr(D,7)===St?(A=St,D+=7):(A=n,re===0&&ae(wr)),A===n&&(e.substr(D,4)===ci?(A=ci,D+=4):(A=n,re===0&&ae(Wt)),A===n&&(e.substr(D,6)===Kn?(A=Kn,D+=6):(A=n,re===0&&ae(v)),A===n&&(e.substr(D,6)===g?(A=g,D+=6):(A=n,re===0&&ae(b)),A===n&&(e.substr(D,3)===T?(A=T,D+=3):(A=n,re===0&&ae(F)),A===n&&(A=D,z=r_(),z!==n?($=me(),$!==n?(X=i_(),X!==n?(Dt=A,z=O(z,X),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n))))))))))))))),A}function zz(){var A;return A=Uz(),A===n&&(A=In()),A}function In(){var A,z,$,X,te;if(A=D,z=D,V.test(e.charAt(D))?($=e.charAt(D),D++):($=n,re===0&&ae(fe)),$!==n){for(X=[],Ge.test(e.charAt(D))?(te=e.charAt(D),D++):(te=n,re===0&&ae(Me));te!==n;)X.push(te),Ge.test(e.charAt(D))?(te=e.charAt(D),D++):(te=n,re===0&&ae(Me));X!==n?($=[$,X],z=$):(D=z,z=n)}else D=z,z=n;return z!==n&&(Dt=A,z=We()),A=z,A}function o_(){var A,z,$;for(A=D,z=[],Se.test(e.charAt(D))?($=e.charAt(D),D++):($=n,re===0&&ae(WE));$!==n;)z.push($),Se.test(e.charAt(D))?($=e.charAt(D),D++):($=n,re===0&&ae(WE));return z!==n&&(Dt=A,z=Iz(z)),A=z,A}function Uz(){var A,z,$,X;if(re++,A=D,z=me(),z!==n){if($=[],YE.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,re===0&&ae(QE)),X!==n)for(;X!==n;)$.push(X),YE.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,re===0&&ae(QE));else $=n;$!==n?(Dt=A,z=Dz(),A=z):(D=A,A=n)}else D=A,A=n;return re--,A===n&&(z=n,re===0&&ae(Bz)),A}function me(){var A,z;for(re++,A=[],$E.test(e.charAt(D))?(z=e.charAt(D),D++):(z=n,re===0&&ae(XE));z!==n;)A.push(z),$E.test(e.charAt(D))?(z=e.charAt(D),D++):(z=n,re===0&&ae(XE));return re--,A===n&&(z=n,re===0&&ae(Fz)),A}if(Vc=i(),Vc!==n&&D===e.length)return Vc;throw Vc!==n&&D<e.length&&ae(Rz()),Mz(Pg,Jn<e.length?e.charAt(Jn):null,Jn<e.length?t_(Jn,Jn+1):t_(Jn,Jn))}var M3={SyntaxError:wo,parse:uO};const fO=Xs(M3),Jp=Object.fromEntries(Object.entries(Object.freeze(Object.defineProperty({__proto__:null,bigChain:`table bigChain
340
+ `,"\r"],!1,!1),D=0,Dt=0,Hc=[{line:1,column:1}],Jn=0,Pg=[],re=0,Vc;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 KE(){return e.substring(Dt,D)}function Fe(A,z){return{type:"literal",text:A,ignoreCase:z}}function iu(A,z,$){return{type:"class",parts:A,inverted:z,ignoreCase:$}}function Rz(){return{type:"end"}}function JE(A){return{type:"other",description:A}}function e_(A){var z=Hc[A],$;if(z)return z;for($=A-1;!Hc[$];)$--;for(z=Hc[$],z={line:z.line,column:z.column};$<A;)e.charCodeAt($)===10?(z.line++,z.column=1):z.column++,$++;return Hc[A]=z,z}function t_(A,z){var $=e_(A),X=e_(z);return{start:{offset:A,line:$.line,column:$.column},end:{offset:z,line:X.line,column:X.column}}}function ae(A){D<Jn||(D>Jn&&(Jn=D,Pg=[]),Pg.push(A))}function Mz(A,z,$){return new wo(wo.buildMessage(A,z),A,z,$)}function n_(){var A,z,$,X,te,ze,Ye,pn,hi,vr,di,xr,pi,Ar;return A=D,z=me(),z!==n?($=r_(),$!==n?(X=me(),X!==n?(te=i_(),te!==n?(ze=me(),ze!==n?(Ye=jc(),Ye!==n?(pn=me(),pn!==n?(e.charCodeAt(D)===40?(hi=a,D++):(hi=n,re===0&&ae(o)),hi!==n?(vr=me(),vr!==n?(di=Pz(),di!==n?(xr=me(),xr!==n?(e.charCodeAt(D)===41?(pi=s,D++):(pi=n,re===0&&ae(u)),pi!==n?(Ar=me(),Ar!==n?(Dt=A,z=l($,te,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 r_(){var A;return e.substr(D,6)===f?(A=f,D+=6):(A=n,re===0&&ae(c)),A===n&&(e.substr(D,6)===h?(A=h,D+=6):(A=n,re===0&&ae(d)),A===n&&(e.substr(D,5)===p?(A=p,D+=5):(A=n,re===0&&ae(b)))),A}function i_(){var A,z,$,X;return A=In(),A===n&&(A=D,z=In(),z!==n?($=a_(),$!==n?(z=[z,$],A=z):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=In(),z!==n?(e.substr(D,4)===y?($=y,D+=4):($=n,re===0&&ae(w)),$!==n?(z=[z,$],A=z):(D=A,A=n)):(D=A,A=n),A===n&&(A=D,z=In(),z!==n?($=a_(),$!==n?(e.substr(D,4)===y?(X=y,D+=4):(X=n,re===0&&ae(w)),X!==n?(z=[z,$,X],A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)))),A}function a_(){var A;return e.substr(D,7)===E?(A=E,D+=7):(A=n,re===0&&ae(C)),A===n&&(e.substr(D,5)===_?(A=_,D+=5):(A=n,re===0&&ae(k)),A===n&&(e.substr(D,6)===I?(A=I,D+=6):(A=n,re===0&&ae(B)))),A}function jc(){var A;return A=o_(),A===n&&(A=me()),A}function Pz(){var A,z,$,X,te,ze,Ye;if(A=D,z=Lg(),z!==n)if($=me(),$!==n){for(X=[],te=D,ze=me(),ze!==n?(Ye=Lg(),Ye!==n?(Dt=te,ze=R(z,Ye),te=ze):(D=te,te=n)):(D=te,te=n);te!==n;)X.push(te),te=D,ze=me(),ze!==n?(Ye=Lg(),Ye!==n?(Dt=te,ze=R(z,Ye),te=ze):(D=te,te=n)):(D=te,te=n);X!==n?(te=me(),te!==n?(Dt=A,z=L(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 Lz(){var A;return e.charCodeAt(D)===35?(A=j,D++):(A=n,re===0&&ae(M)),A}function Nz(){var A,z,$,X,te;return A=D,z=me(),z!==n?($=Lz(),$!==n?(X=o_(),X!==n?(te=me(),te!==n?(z=[z,$,X,te],A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n)):(D=A,A=n),A}function Lg(){var A,z,$,X,te,ze,Ye,pn,hi,vr,di,xr,pi,Ar;return A=D,z=Ng(),z!==n?($=me(),$!==n?(X=In(),X!==n?(te=me(),te!==n?(e.charCodeAt(D)===59?(ze=ie,D++):(ze=n,re===0&&ae(se)),ze!==n?(Ye=me(),Ye!==n?(pn=jc(),pn!==n?(Dt=A,z=ge(z,X,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=Ng(),z!==n?($=me(),$!==n?(e.charCodeAt(D)===91?(X=Ie,D++):(X=n,re===0&&ae($e)),X!==n?(te=me(),te!==n?(ze=zz(),ze!==n?(Ye=me(),Ye!==n?(e.charCodeAt(D)===93?(pn=De,D++):(pn=n,re===0&&ae(Ke)),pn!==n?(hi=me(),hi!==n?(vr=In(),vr!==n?(di=me(),di!==n?(e.charCodeAt(D)===59?(xr=ie,D++):(xr=n,re===0&&ae(se)),xr!==n?(pi=me(),pi!==n?(Ar=jc(),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=Ng(),z!==n?($=me(),$!==n?(e.charCodeAt(D)===40?(X=a,D++):(X=n,re===0&&ae(o)),X!==n?(te=me(),te!==n?(ze=Oz(),ze!==n?(Ye=me(),Ye!==n?(e.charCodeAt(D)===41?(pn=s,D++):(pn=n,re===0&&ae(u)),pn!==n?(hi=me(),hi!==n?(vr=In(),vr!==n?(di=me(),di!==n?(e.charCodeAt(D)===59?(xr=ie,D++):(xr=n,re===0&&ae(se)),xr!==n?(pi=me(),pi!==n?(Ar=jc(),Ar!==n?(Dt=A,z=Je(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=Nz()))),A}function Oz(){var A,z,$,X,te,ze,Ye;if(A=D,z=In(),z!==n){for($=[],X=D,e.charCodeAt(D)===44?(te=Ee,D++):(te=n,re===0&&ae(_e)),te!==n?(ze=me(),ze!==n?(Ye=In(),Ye!==n?(Dt=X,te=R(z,Ye),X=te):(D=X,X=n)):(D=X,X=n)):(D=X,X=n);X!==n;)$.push(X),X=D,e.charCodeAt(D)===44?(te=Ee,D++):(te=n,re===0&&ae(_e)),te!==n?(ze=me(),ze!==n?(Ye=In(),Ye!==n?(Dt=X,te=R(z,Ye),X=te):(D=X,X=n)):(D=X,X=n)):(D=X,X=n);$!==n?(Dt=A,z=pt(z,$),A=z):(D=A,A=n)}else D=A,A=n;return A}function Ng(){var A,z,$,X;return e.substr(D,3)===qt?(A=qt,D+=3):(A=n,re===0&&ae(Oe)),A===n&&(e.substr(D,4)===N?(A=N,D+=4):(A=n,re===0&&ae(P)),A===n&&(e.substr(D,5)===q?(A=q,D+=5):(A=n,re===0&&ae(H)),A===n&&(e.substr(D,6)===Y?(A=Y,D+=6):(A=n,re===0&&ae(S)),A===n&&(e.substr(D,4)===x?(A=x,D+=4):(A=n,re===0&&ae(G)),A===n&&(e.substr(D,5)===Z?(A=Z,D+=5):(A=n,re===0&&ae(le)),A===n&&(e.substr(D,5)===J?(A=J,D+=5):(A=n,re===0&&ae(ue)),A===n&&(e.substr(D,4)===Zt?(A=Zt,D+=4):(A=n,re===0&&ae(li)),A===n&&(e.substr(D,6)===ui?(A=ui,D+=6):(A=n,re===0&&ae(fi)),A===n&&(e.substr(D,7)===St?(A=St,D+=7):(A=n,re===0&&ae(wr)),A===n&&(e.substr(D,4)===ci?(A=ci,D+=4):(A=n,re===0&&ae(Wt)),A===n&&(e.substr(D,6)===Kn?(A=Kn,D+=6):(A=n,re===0&&ae(v)),A===n&&(e.substr(D,6)===g?(A=g,D+=6):(A=n,re===0&&ae(m)),A===n&&(e.substr(D,3)===T?(A=T,D+=3):(A=n,re===0&&ae(F)),A===n&&(A=D,z=r_(),z!==n?($=me(),$!==n?(X=i_(),X!==n?(Dt=A,z=O(z,X),A=z):(D=A,A=n)):(D=A,A=n)):(D=A,A=n))))))))))))))),A}function zz(){var A;return A=Uz(),A===n&&(A=In()),A}function In(){var A,z,$,X,te;if(A=D,z=D,V.test(e.charAt(D))?($=e.charAt(D),D++):($=n,re===0&&ae(fe)),$!==n){for(X=[],Ge.test(e.charAt(D))?(te=e.charAt(D),D++):(te=n,re===0&&ae(Me));te!==n;)X.push(te),Ge.test(e.charAt(D))?(te=e.charAt(D),D++):(te=n,re===0&&ae(Me));X!==n?($=[$,X],z=$):(D=z,z=n)}else D=z,z=n;return z!==n&&(Dt=A,z=We()),A=z,A}function o_(){var A,z,$;for(A=D,z=[],Se.test(e.charAt(D))?($=e.charAt(D),D++):($=n,re===0&&ae(WE));$!==n;)z.push($),Se.test(e.charAt(D))?($=e.charAt(D),D++):($=n,re===0&&ae(WE));return z!==n&&(Dt=A,z=Iz(z)),A=z,A}function Uz(){var A,z,$,X;if(re++,A=D,z=me(),z!==n){if($=[],YE.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,re===0&&ae(QE)),X!==n)for(;X!==n;)$.push(X),YE.test(e.charAt(D))?(X=e.charAt(D),D++):(X=n,re===0&&ae(QE));else $=n;$!==n?(Dt=A,z=Dz(),A=z):(D=A,A=n)}else D=A,A=n;return re--,A===n&&(z=n,re===0&&ae(Bz)),A}function me(){var A,z;for(re++,A=[],$E.test(e.charAt(D))?(z=e.charAt(D),D++):(z=n,re===0&&ae(XE));z!==n;)A.push(z),$E.test(e.charAt(D))?(z=e.charAt(D),D++):(z=n,re===0&&ae(XE));return re--,A===n&&(z=n,re===0&&ae(Fz)),A}if(Vc=i(),Vc!==n&&D===e.length)return Vc;throw Vc!==n&&D<e.length&&ae(Rz()),Mz(Pg,Jn<e.length?e.charAt(Jn):null,Jn<e.length?t_(Jn,Jn+1):t_(Jn,Jn))}var M3={SyntaxError:wo,parse:uO};const fO=Xs(M3),Jp=Object.fromEntries(Object.entries(Object.freeze(Object.defineProperty({__proto__:null,bigChain:`table bigChain
331
341
  "bigChain pairwise alignment"
332
342
  (
333
343
  string chrom; "Reference sequence chromosome or scaffold"
@@ -486,9 +496,9 @@ Reason: ${s.message}`)}));if(n.isViewSpec(a))return a.baseUrl=(o=i.match(/^[^?#]
486
496
  float score; "Floating point score."
487
497
  char[1] leftStatus; "Gap/break annotation for preceding block"
488
498
  char[1] rightStatus; "Gap/break annotation for following block"
489
- )`},Symbol.toStringTag,{value:"Module"}))).map(([e,t])=>[e,M3.parse(t.trim())]));function eg(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 cO={".":0,"-":-1,"+":1};function hO(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 dO{constructor(t={}){if(t.autoSql)this.autoSql=eg(fO.parse(t.autoSql));else if(t.type){if(!Jp[t.type])throw new Error("Type not found");this.autoSql=eg(Jp[t.type])}else this.autoSql=eg(Jp.defaultBedSchema),this.attemptDefaultBed=!0}parseLine(t,n={}){const{autoSql:r}=this,{uniqueId:i}=n,a=Array.isArray(t)?t:t.split(" ");let o={};if(!this.attemptDefaultBed||this.attemptDefaultBed&&hO(a))for(let s=0;s<r.fields.length;s++){const u=r.fields[s];let l=a[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))));o[d]=l}}else{const s=["chrom","chromStart","chromEnd","name"];o=Object.fromEntries(a.map((u,l)=>[s[l]||"field"+l,u])),o.chromStart=+o.chromStart,o.chromEnd=+o.chromEnd,Number.isNaN(Number.parseFloat(o.field4))||(o.score=+o.field4,delete o.field4),(o.field5==="+"||o.field5==="-")&&(o.strand=o.field5,delete o.field5)}return i&&(o.uniqueId=i),o.strand=cO[o.strand]||0,o.chrom=decodeURIComponent(o.chrom),o}}const pO=Object.freeze(Object.defineProperty({__proto__:null,default:dO},Symbol.toStringTag,{value:"Module"}));let P3=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 vo(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new P3(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 L3=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 gO(e){return new Promise(t=>setTimeout(t,e))}function mO(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}function bO(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 yO(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function wO(e={}){return"aborted"in e?{signal:e}:e}function N3(e,t){const n=[];let r;if(e.length===0)return e;e.sort((i,a)=>{const o=i.minv.blockPosition-a.minv.blockPosition;return o===0?i.minv.dataPosition-a.minv.dataPosition:o});for(const i of e)(!t||i.maxv.compareTo(t)>0)&&(r===void 0?(n.push(i),r=i):yO(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i));return n}function O3(e,t){return{lineCount:mO(nc.fromBytesLE(Array.prototype.slice.call(e,t,t+8),!0))}}function Tc(e,t){return e?e.compareTo(t)>0?t:e:t}function vO(e,t=n=>n){let n=0,r=0;const i=[],a={};for(let o=0;o<e.length;o+=1)if(!e[o]){if(r<o){let s=e.toString("utf8",r,o);s=t(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}let z3=class{constructor({filehandle:t,renameRefSeq:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}};const xO=21578050;function AO(e,t){return e-e%t}function EO(e,t){return e-e%t+t}function _O(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 xo extends z3{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)!==xO)throw new Error("Not a BAI file");const r=n.readInt32LE(4),a=((1<<(5+1)*3)-1)/7;let o=8,s;const u=new Array(r);for(let l=0;l<r;l++){const f=n.readInt32LE(o);let c;o+=4;const h={};for(let m=0;m<f;m+=1){const y=n.readUInt32LE(o);if(o+=4,y===a+1)o+=4,c=O3(n,o+16),o+=32;else{if(y>a+1)throw new Error("bai index contains too many bins, please use CSI");{const w=n.readInt32LE(o);o+=4;const _=new Array(w);for(let C=0;C<w;C++){const E=vo(n,o);o+=8;const k=vo(n,o);o+=8,s=Tc(s,E),_[C]=new L3(E,k,y)}h[y]=_}}}const d=n.readInt32LE(o);o+=4;const p=new Array(d);for(let m=0;m<d;m++){const y=vo(n,o);o+=8,s=Tc(s,y),p[m]=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 o=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:EO(r,16384),h=n===void 0?0:AO(n,16384),d=o?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 m=l[h/16384].blockPosition;for(let y=h/16384,w=0;y<c/16384;y++,w++)d[w]={score:l[y+1].blockPosition-m,start:y*16384,end:y*16384+16384},m=l[y+1].blockPosition;return d.map(y=>({...y,score:y.score*((f==null?void 0:f.lineCount)||0)/p}))}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.indices[t];if(!o)return[];const s=_O(n,r),u=[];for(const[d,p]of s)for(let m=d;m<=p;m++)if(o.binIndex[m]){const y=o.binIndex[m];for(const w of y)u.push(w)}const l=o.linearIndex.length;let 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=o.linearIndex[d];p&&(!f||p.compareTo(f)<0)&&(f=p)}return N3(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,tg=[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"&&(tg=new Int32Array(tg));function U3(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 SO(e){var t=U3(4);return t.writeInt32BE(e,0),t}function ng(e,t){e=U3(e),si.isBuffer(t)&&(t=t.readUInt32BE(0));for(var n=~~t^-1,r=0;r<e.length;r++)n=tg[(n^e[r])&255]^n>>>8;return n^-1}function rg(){return SO(ng.apply(null,arguments))}rg.signed=function(){return ng.apply(null,arguments)},rg.unsigned=function(){return ng.apply(null,arguments)>>>0};var CO=rg;const TO=Xs(CO),kO=21582659,IO=38359875;function BO(e,t){return e*2**t}function G3(e,t){return Math.floor(e/2**t)}let kc=class extends z3{constructor(){super(...arguments),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n){var r,i;return((i=(r=(await this.parse(n)).indices[t])===null||r===void 0?void 0:r.stats)===null||i===void 0?void 0:i.lineCount)||0}async indexCov(){return[]}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",a={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!a)throw new Error(`invalid Tabix preset format flags ${r}`);const o={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},s=t.readInt32LE(n+16),u=s?String.fromCharCode(s):"",l=t.readInt32LE(n+20),f=t.readInt32LE(n+24);return{columnNumbers:o,coordinateType:i,metaValue:s,metaChar:u,skipLines:l,format:a,formatFlags:r,...vO(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)===kO)i=1;else if(r.readUInt32LE(0)===IO)i=2;else throw new Error("Not a CSI file");this.minShift=r.readInt32LE(4),this.depth=r.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const a=r.readInt32LE(12),o=a>=30?this.parseAuxData(r,16):void 0,s=r.readInt32LE(16+a);let u=16+a+4,l;const f=new Array(s);for(let c=0;c<s;c++){const h=r.readInt32LE(u);u+=4;const d={};let p;for(let m=0;m<h;m++){const y=r.readUInt32LE(u);if(u+=4,y>this.maxBinNumber)p=O3(r,u+28),u+=28+16;else{l=Tc(l,vo(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=vo(r,u);u+=8;const k=vo(r,u);u+=8,l=Tc(l,E),_[C]=new L3(E,k,y)}d[y]=_}}f[c]={binIndex:d,stats:p}}return{csiVersion:i,firstDataLine:l,indices:f,refCount:s,csi:!0,maxBlockSize:65536,...o}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i),o=a==null?void 0:a.indices[t];if(!o)return[];const s=this.reg2bins(n,r);if(s.length===0)return[];const u=[];for(const[l,f]of s)for(let c=l;c<=f;c++)if(o.binIndex[c]){const h=o.binIndex[c];for(const d of h)u.push(d)}return N3(u,new P3(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,a=this.minShift+this.depth*3;const o=[];for(;r<=this.depth;a-=3,i+=BO(1,r*3),r+=1){const s=i+G3(t,a),u=i+G3(n,a);if(u-s+o.length>this.maxBinNumber)throw new Error(`query ${t}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);o.push([s,u])}return o}async parse(t={}){return this.setupP||(this.setupP=this._parse(t).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}};const 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},H3="=ACMGRSVTWYHKDBN".split(""),Nl="MIDNSHP=X???????".split("");class V3{constructor(t){this.data={},this._tagList=[],this._allTagsParsed=!1;const{bytes:n,fileOffset:r}=t,{byteArray:i,start:a}=n;this.data={},this.bytes=n,this._id=r,this._refID=i.readInt32LE(a+4),this.data.start=i.readInt32LE(a+8),this.flags=(i.readInt32LE(a+16)&4294901760)>>16}get(t){return this[t]?this.data[t]?this.data[t]:(this.data[t]=this[t](),this.data[t]):this._get(t.toLowerCase())}end(){return this.get("start")+this.get("length_on_ref")}seq_id(){return this._refID}_get(t){return t in this.data?this.data[t]:(this.data[t]=this._parseTag(t),this.data[t])}_tags(){this._parseAllTags();let t=["seq"];this.isSegmentUnmapped()||t.push("start","end","strand","score","qual","MQ","CIGAR","length_on_ref","template_length"),this.isPaired()&&t.push("next_segment_position","pair_orientation"),t=t.concat(this._tagList||[]);for(const r of Object.keys(this.data))r[0]!=="_"&&r!=="next_seq_id"&&t.push(r);const n={};return t.filter(r=>{if(r in this.data&&this.data[r]===void 0||r==="CG"||r==="cg")return!1;const i=r.toLowerCase(),a=n[i];return n[i]=!0,!a})}parent(){}children(){return this.get("subfeatures")}id(){return this._id}mq(){const t=(this.get("_bin_mq_nl")&65280)>>8;return t===255?void 0:t}score(){return this.get("mq")}qual(){var t;return(t=this.qualRaw())===null||t===void 0?void 0:t.join(" ")}qualRaw(){if(this.isSegmentUnmapped())return;const{start:t,byteArray:n}=this.bytes,r=t+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes"),i=this.get("seq_length");return n.subarray(r,r+i)}strand(){return this.isReverseComplemented()?-1:1}multi_segment_next_segment_strand(){if(!this.isMateUnmapped())return this.isMateReverseComplemented()?-1:1}name(){return this.get("_read_name")}_read_name(){const t=this.get("_l_read_name"),{byteArray:n,start:r}=this.bytes;return n.toString("ascii",r+36,r+36+t-1)}_parseTag(t){if(this._allTagsParsed)return;const{byteArray:n,start:r}=this.bytes;let i=this._tagOffset||r+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes")+this.get("seq_length");const a=this.bytes.end;let o;for(;i<a&&o!==t;){const s=String.fromCharCode(n[i],n[i+1]);o=s.toLowerCase();const u=String.fromCharCode(n[i+2]);i+=3;let l;switch(u){case"A":{l=String.fromCharCode(n[i]),i+=1;break}case"i":{l=n.readInt32LE(i),i+=4;break}case"I":{l=n.readUInt32LE(i),i+=4;break}case"c":{l=n.readInt8(i),i+=1;break}case"C":{l=n.readUInt8(i),i+=1;break}case"s":{l=n.readInt16LE(i),i+=2;break}case"S":{l=n.readUInt16LE(i),i+=2;break}case"f":{l=n.readFloatLE(i),i+=4;break}case"Z":case"H":{for(l="";i<=a;){const 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),m=p>>4,y=Nl[p&15];l+=m+y,i+=4}else for(let d=0;d<h;d++)l+=n.readInt32LE(i),d+1<h&&(l+=","),i+=4;if(c==="I")if(s==="CG")for(let d=0;d<h;d++){const p=n.readUInt32LE(i),m=p>>4,y=Nl[p&15];l+=m+y,i+=4}else for(let d=0;d<h;d++)l+=n.readUInt32LE(i),d+1<h&&(l+=","),i+=4;if(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=a}if(this._tagOffset=i,this._tagList.push(s),o===t)return l;this.data[o]=l}this._allTagsParsed=!0}_parseAllTags(){this._parseTag("")}_parseCigar(t){return t.match(/\d+\D/g).map(n=>[n.match(/\D/)[0].toUpperCase(),Number.parseInt(n,10)])}isPaired(){return!!(this.flags&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 a=this.get("seq_length");let o="",s=0,u=t.readInt32LE(i),l=u>>4,f=Nl[u&15];if(f==="S"&&l===a)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],o+=l+f,f!=="H"&&f!=="S"&&f!=="I"&&(s+=l),i+=4;return this.data.length_on_ref=s,o}_flags(){}length_on_ref(){return this.data.length_on_ref?this.data.length_on_ref:(this.get("cigar"),this.data.length_on_ref)}_n_cigar_op(){return this.get("_flag_nc")&65535}_l_read_name(){return this.get("_bin_mq_nl")&255}_seq_bytes(){return this.get("seq_length")+1>>1}getReadBases(){return this.seq()}seq(){const{byteArray:t,start:n}=this.bytes,r=n+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4,i=this.get("_seq_bytes"),a=this.get("seq_length");let o="",s=0;for(let u=0;u<i;++u){const l=t[r+u];o+=H3[(l&240)>>4],s++,s<a&&(o+=H3[l&15],s++)}return o}getPairOrientation(){if(!this.isSegmentUnmapped()&&!this.isMateUnmapped()&&this._refID===this._next_refid()){const t=this.isReverseComplemented()?"R":"F",n=this.isMateReverseComplemented()?"R":"F";let r=" ",i=" ";this.isRead1()?(r="1",i="2"):this.isRead2()&&(r="2",i="1");const a=[];return this.template_length()>0?(a[0]=t,a[1]=r,a[2]=n,a[3]=i):(a[2]=t,a[3]=r,a[0]=n,a[1]=i),a.join("")}return""}_bin_mq_nl(){return this.bytes.byteArray.readInt32LE(this.bytes.start+12)}_flag_nc(){return this.bytes.byteArray.readInt32LE(this.bytes.start+16)}seq_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+20)}_next_refid(){return this.bytes.byteArray.readInt32LE(this.bytes.start+24)}_next_pos(){return this.bytes.byteArray.readInt32LE(this.bytes.start+28)}template_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+32)}toJSON(){const t={};for(const n of Object.keys(this))n.charAt(0)==="_"||n==="bytes"||(t[n]=this[n]);return t}}function j3(e){const t=e.split(/\r?\n/),n=[];for(const r of t){const[i,...a]=r.split(/\t/);i&&n.push({tag:i.slice(1),data:a.map(o=>{const[s,u]=o.split(":",2);return{tag:s,value:u}})})}return n}const q3=21840194,Z3=65536;async function DO(e){let t=[];for await(const n of e)t=t.concat(n);return t}class FO{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 W3{constructor({bamFilehandle:t,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:a,baiUrl:o,csiPath:s,csiFilehandle:u,csiUrl:l,htsget:f,yieldThreadTime:c=100,renameRefSeqs:h=d=>d}){if(this.htsget=!1,this.featureCache=new fc({cache:new cc({maxSize:50}),fill:async(d,p)=>{const{chunk:m,opts:y}=d,{data:w,cpositions:_,dpositions:C}=await this._readChunk({chunk:m,opts:{...y,signal:p}});return this.readBamFeatures(w,_,C,m)}}),this.renameRefSeq=h,t)this.bam=t;else if(n)this.bam=new ht(n);else if(r)this.bam=new Wi(r);else if(f)this.htsget=!0,this.bam=new FO;else throw new Error("unable to initialize bam");if(u)this.index=new kc({filehandle:u});else if(s)this.index=new kc({filehandle:new ht(s)});else if(l)this.index=new kc({filehandle:new Wi(l)});else if(a)this.index=new xo({filehandle:a});else if(i)this.index=new xo({filehandle:new ht(i)});else if(o)this.index=new xo({filehandle:new Wi(o)});else if(n)this.index=new xo({filehandle:new ht(`${n}.bai`)});else if(r)this.index=new xo({filehandle:new Wi(`${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=wO(t);if(!this.index)return;const r=await this.index.parse(n),i=r.firstDataLine?r.firstDataLine.blockPosition+65535:void 0;let a;if(i){const f=i+Z3,c=await this.bam.read(pe.Buffer.alloc(f),0,f,0,n);if(!c.bytesRead)throw new Error("Error reading header");a=c.buffer.subarray(0,Math.min(c.bytesRead,i))}else a=await this.bam.readFile(n);const o=await Jr(a);if(o.readInt32LE(0)!==q3)throw new Error("Not a BAM file");const s=o.readInt32LE(4);this.header=o.toString("utf8",8,8+s);const{chrToIndex:u,indexToChr:l}=await this._readRefSeqs(s+8,65535,n);return this.chrToIndex=u,this.indexToChr=l,j3(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+Z3,{bytesRead:a,buffer:o}=await this.bam.read(pe.Buffer.alloc(i),0,n,0,r);if(!a)throw new Error("Error reading refseqs from header");const s=await Jr(o.subarray(0,Math.min(a,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)),m=s.readInt32LE(l+d+4);if(f[p]=h,c.push({refName:p,length:m}),l=l+8+d,l>s.length)return console.warn(`BAM header is very big. Re-fetching ${n} bytes.`),this._readRefSeqs(t,n*2,r)}return{chrToIndex:f,indexToChr:c}}async getRecordsForRange(t,n,r,i){return DO(this.streamRecordsForRange(t,n,r,i))}async*streamRecordsForRange(t,n,r,i){var a;await this.getHeader(i);const o=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];if(o===void 0||!this.index)yield[];else{const s=await this.index.blocksForRange(o,n-1,r,i);yield*this._fetchChunkFeatures(s,o,n,r,i)}}async*_fetchChunkFeatures(t,n,r,i,a={}){const{viewAsPairs:o}=a,s=[];let u=!1;for(const l of t){const f=await this.featureCache.get(l.toString(),{chunk:l,opts:a},a.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}bO(a.signal),o&&(yield this.fetchPairs(n,s,a))}async fetchPairs(t,n,r){const{pairAcrossChr:i,maxInsertSize:a=2e5}=r,o={},s={};n.map(h=>{const d={};for(const p of h){const m=p.name(),y=p.id();d[m]||(d[m]=0),d[m]++,s[y]=1}for(const[p,m]of Object.entries(d))m===1&&(o[p]=!0)});const u=[];n.map(h=>{for(const d of h){const p=d.name(),m=d.get("start"),y=d._next_pos(),w=d._next_refid();this.index&&o[p]&&(i||w===t&&Math.abs(m-y)<a)&&u.push(this.index.blocksForRange(w,y,y+1,r))}});const l=new Map,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:m,chunk:y}=await this._readChunk({chunk:h,opts:r}),w=[];for(const _ of await this.readBamFeatures(d,p,m,y))o[_.get("name")]&&!s[_.id()]&&w.push(_);return w}))).flat()}async _readRegion(t,n,r={}){const{bytesRead:i,buffer:a}=await this.bam.read(pe.Buffer.alloc(n),0,n,t,r);return a.subarray(0,Math.min(i,n))}async _readChunk({chunk:t,opts:n}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n),{buffer:i,cpositions:a,dpositions:o}=await dx(r,t);return{data:i,cpositions:a,dpositions:o,chunk:t}}async readBamFeatures(t,n,r,i){let a=0;const o=[];let s=0,u=+Date.now();for(;a+4<t.length;){const l=t.readInt32LE(a),f=a+4+l-1;if(r){for(;a+i.minv.dataPosition>=r[s++];);s--}if(f<t.length){const c=new V3({bytes:{byteArray:t,start:a,end:f},fileOffset:n.length>0?n[s]*256+(a-r[s])+i.minv.dataPosition+1:TO.signed(t.slice(a,f))});o.push(c),this.yieldThreadTime&&+Date.now()-u>this.yieldThreadTime&&(await gO(1),u=+Date.now())}a=f+1}return o}async hasRefSeq(t){var n,r;const i=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return i===void 0?!1:(r=this.index)===null||r===void 0?void 0:r.hasRefSeq(i)}async lineCount(t){var n;const r=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return r===void 0||!this.index?0:this.index.lineCount(r)}async indexCov(t,n,r){var i;if(!this.index)return[];await this.index.parse();const a=(i=this.chrToIndex)===null||i===void 0?void 0:i[t];return a===void 0?[]:this.index.indexCov(a,n,r)}async blocksForRange(t,n,r,i){var a;if(!this.index)return[];await this.index.parse();const o=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];return o===void 0?[]:this.index.blocksForRange(o,n,r,i)}}async function Y3(e,t){const n=await Promise.all(e.map(async r=>{const{url:i,headers:a}=r;if(i.startsWith("data:"))return pe.Buffer.from(i.split(",")[1],"base64");{const{referer:o,...s}=a,u=await fetch(i,{...t,headers:{...t==null?void 0:t.headers,...s}});if(!u.ok)throw new Error(`HTTP ${u.status} fetching ${i}: ${await u.text()}`);return pe.Buffer.from(await u.arrayBuffer())}}));return pe.Buffer.concat(await Promise.all(n.map(r=>Jr(r))))}class RO extends W3{constructor(t){super({htsget:!0}),this.baseUrl=t.baseUrl,this.trackId=t.trackId}async*streamRecordsForRange(t,n,r,i){var a;const s=`${`${this.baseUrl}/${this.trackId}`}?referenceName=${t}&start=${n}&end=${r}&format=BAM`,u=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];if(u===void 0)yield[];else{const l=await fetch(s,{...i});if(!l.ok)throw new Error(`HTTP ${l.status} fetching ${s}: ${await l.text()}`);const f=await l.json(),c=await Y3(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(),a=await Y3(i.htsget.urls,t);if(a.readInt32LE(0)!==q3)throw new Error("Not a BAM file");const o=a.readInt32LE(4),s=a.toString("utf8",8,8+o),u=j3(s),l=[],f={},c=u.filter(h=>h.tag==="SQ");for(const[h,d]of c.entries()){let p="",m=0;for(const y of d.data)y.tag==="SN"?p=y.value:y.tag==="LN"&&(m=+y.value);f[p]=h,l[h]={refName:p,length:m}}return this.chrToIndex=f,this.indexToChr=l,u}}const MO=Object.freeze(Object.defineProperty({__proto__:null,BAI:xo,BamFile:W3,BamRecord:V3,CSI:kc,HtsgetFile:RO},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 PO extends Error{}function Ao(e){if(e&&e.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const t=new PO("aborted");throw t.code="ERR_ABORTED",t}}}function LO(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function $3(e,t){const n=[];let r=null;return e.length===0?e:(e.sort(function(i,a){const o=i.minv.blockPosition-a.minv.blockPosition;return o!==0?o:i.minv.dataPosition-a.minv.dataPosition}),e.forEach(i=>{(!t||i.maxv.compareTo(t)>0)&&(r===null?(n.push(i),r=i):LO(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}class ig{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 Eo(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new ig(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 Ic{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 X3{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 NO=21578324,K3=14;function OO(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 Bc extends X3{async lineCount(t,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[t];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}async _parse(t={}){const n=await this.filehandle.readFile(t),r=await Jr(n);if(Ao(t.signal),r.readUInt32LE(0)!==NO)throw new Error("Not a TBI file");const i=r.readInt32LE(4),a=r.readInt32LE(8),o=a&65536?"zero-based-half-open":"1-based-closed",u={0:"generic",1:"SAM",2:"VCF"}[a&15];if(!u)throw new Error(`invalid Tabix preset format flags ${a}`);const l={ref:r.readInt32LE(12),start:r.readInt32LE(16),end:r.readInt32LE(20)},f=r.readInt32LE(24),c=5,h=((1<<(c+1)*3)-1)/7,d=2**(14+c*3),p=f?String.fromCharCode(f):null,m=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 M=0;M<B;M+=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 $e=Eo(r,C),De=Eo(r,C+8);C+=16,E=this._findFirstData(E,$e),ge[Ie]=new Ic($e,De,ie)}I[ie]=ge}}const L=r.readInt32LE(C);C+=4;const j=new Array(L);for(let M=0;M<L;M+=1)j[M]=Eo(r,C),C+=8,E=this._findFirstData(E,j[M]);return{binIndex:I,linearIndex:j,stats:R}}),metaChar:p,maxBinNumber:h,maxRefLength:d,skipLines:m,firstDataLine:E,columnNumbers:l,coordinateType:o,format:u,refIdToName:_,refNameToId:w,maxBlockSize:65536}}parsePseudoBin(t,n){return{lineCount:Q3(nc.fromBytesLE(t.slice(n+16,n+24),!0))}}_parseNameBytes(t){let n=0,r=0;const i=[],a={};for(let o=0;o<t.length;o+=1)if(!t[o]){if(r<o){let s=t.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[t],s=a.indices[o];if(!s)return[];(s.linearIndex.length?s.linearIndex[n>>K3>=s.linearIndex.length?s.linearIndex.length-1:n>>K3]:new ig(0,0))||console.warn("querying outside of possible tabix range");const l=OO(n,r),f=[];for(const[m,y]of l)for(let w=m;w<=y;w++)if(s.binIndex[w])for(const _ of s.binIndex[w])f.push(new Ic(_.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 m=d;m<=p;++m){const y=s.linearIndex[m];y&&(!h||y.compareTo(h)<0)&&(h=y)}return $3(f,h)}}const zO=21582659,UO=38359875;function GO(e,t){return e*2**t}function J3(e,t){return Math.floor(e/2**t)}class ag extends X3{constructor(t){super(t),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[t];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}indexCov(){throw new Error("CSI indexes do not support indexcov")}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",a={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!a)throw new Error(`invalid Tabix preset format flags ${r}`);const o={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},s=t.readInt32LE(n+16),u=s?String.fromCharCode(s):null,l=t.readInt32LE(n+20),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:o,format:a,coordinateType:i}}_parseNameBytes(t){let n=0,r=0;const i=[],a={};for(let o=0;o<t.length;o+=1)if(!t[o]){if(r<o){let s=t.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async _parse(t={}){const n=await Jr(await this.filehandle.readFile(t));let r;if(n.readUInt32LE(0)===zO)r=1;else if(n.readUInt32LE(0)===UO)r=2;else throw new Error("Not a CSI file");this.minShift=n.readInt32LE(4),this.depth=n.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const i=2**(this.minShift+this.depth*3),a=n.readInt32LE(12),o=a&&a>=30?this.parseAuxData(n,16):{refIdToName:[],refNameToId:{},metaChar:null,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},s=n.readInt32LE(16+a);let u,l=16+a+4;const 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 m=n.readUInt32LE(l);if(m>this.maxBinNumber)d=this.parsePseudoBin(n,l+4),l+=4+8+4+16+16;else{const y=Eo(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=Eo(n,l),k=Eo(n,l+8);l+=16,_[C]=new Ic(E,k,m)}h[m]=_}}return{binIndex:h,stats:d}});return{...o,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(nc.fromBytesLE(t.slice(n+28,n+36),!0))}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[t],s=a.indices[o];if(!s)return[];const u=this.reg2bins(n,r),l=[];for(const[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 Ic(d.minv,d.maxv,h));return $3(l,new ig(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,a=this.minShift+this.depth*3;const o=[];for(;r<=this.depth;a-=3,i+=GO(1,r*3),r+=1){const s=i+J3(t,a),u=i+J3(n,a);if(u-s+o.length>this.maxBinNumber)throw new Error(`query ${t}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);o.push([s,u])}return o}}const og=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function HO(e){return new Promise(t=>setTimeout(t,e))}class VO{constructor({path:t,filehandle:n,tbiPath:r,tbiFilehandle:i,csiPath:a,csiFilehandle:o,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 Bc({filehandle:i,renameRefSeqs:l});else if(o)this.index=new ag({filehandle:o,renameRefSeqs:l});else if(r)this.index=new Bc({filehandle:new ht(r),renameRefSeqs:l});else if(a)this.index=new ag({filehandle:new ht(a),renameRefSeqs:l});else if(t)this.index=new Bc({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 fc({cache:new cc({maxSize:Math.floor(f/65536)}),fill:(c,h)=>this.readChunk(c,{signal:h})})}async getLines(t,n,r,i){var a;let o,s={},u;if(i===void 0)throw new TypeError("line callback must be provided");if(typeof i=="function"?u=i:(s=i,u=i.lineCallback,o=i.signal),t===void 0)throw new TypeError("must provide a reference sequence name");if(!u)throw new TypeError("line callback must be provided");const l=await this.index.getMetadata(s);Ao(o);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);Ao(o);for(const p of h){const m=p.fetchedSize();if(m>this.chunkSizeLimit)throw new Error(`Too much data. Chunk size ${m.toLocaleString()} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit.toLocaleString()}.`)}let d=Date.now();for(const p of h){let m;const{buffer:y,cpositions:w,dpositions:_}=await this.chunkCache.get(p.toString(),p,o);Ao(o);let C=0,E=0;for(;C<y.length;){const k=y.indexOf(`
490
- `,C);if(k===-1)break;const B=y.slice(C,k),I=(a=og==null?void 0:og.decode(B))!==null&&a!==void 0?a:B.toString();if(_){for(;C+p.minv.dataPosition>=_[E++];);E--}const{startCoordinate:R,overlaps:L}=this.checkLine(l,t,f,c,I);if(m!==void 0&&R!==void 0&&m>R)throw new Error(`Lines not sorted by start coordinate (${m} > ${R}), this file is not usable with Tabix.`);if(m=R,L)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(),Ao(o),await HO(1)),C=k+1}}}async getMetadata(t={}){return this.index.getMetadata(t)}async getHeaderBuffer(t={}){const{firstDataLine:n,metaChar:r,maxBlockSize:i}=await this.getMetadata(t);Ao(t.signal);const a=((n==null?void 0:n.blockPosition)||0)+i,o=await this._readRegion(0,a,t),s=await Jr(o);if(r){let u=-1;const l=`
491
- `.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,a){const{columnNumbers:o,metaChar:s,coordinateType:u,format:l}=t;if(s&&a.startsWith(s))return{overlaps:!1};let{ref:f,start:c,end:h}=o;f||(f=0),c||(c=0),h||(h=0),l==="VCF"&&(h=8);const d=Math.max(f,c,h);let p=1,m=0,y="",w=-1/0;for(let _=0;_<a.length+1;_+=1)if(a[_]===" "||_===a.length){if(p===f){if(this.renameRefSeq(a.slice(m,_))!==n)return{overlaps:!1}}else if(p===c){if(w=parseInt(a.slice(m,_),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=a.slice(m,_);else if(p===h&&(l==="VCF"?this._getVcfEnd(w,y,a.slice(m,_)):parseInt(a.slice(m,_),10))<=r)return{overlaps:!1};if(m=_+1,p+=1,p>d)break}return{startCoordinate:w,overlaps:!0}}_getVcfEnd(t,n,r){let i=t+n.length;const a=r.includes("SVTYPE=TRA");if(r[0]!=="."&&!a){let o=";";for(let s=0;s<r.length;s+=1){if(o===";"&&r.slice(s,s+4)==="END="){let u=r.indexOf(";",s);u===-1&&(u=r.length),i=parseInt(r.slice(s+4,u),10);break}o=r[s]}}else if(a)return t+1;return i}async lineCount(t,n={}){return this.index.lineCount(t,n)}async _readRegion(t,n,r={}){const i=pe.Buffer.alloc(n),{bytesRead:a,buffer:o}=await this.filehandle.read(i,0,n,t,r);return o.slice(0,a)}async readChunk(t,n={}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n);return dx(r,t)}}const jO=Object.freeze(Object.defineProperty({__proto__:null,CSI:ag,TBI:Bc,TabixIndexedFile:VO},Symbol.toStringTag,{value:"Module"}));var sg={exports:{}},_o=typeof Reflect=="object"?Reflect:null,eE=_o&&typeof _o.apply=="function"?_o.apply:function(t,n,r){return Function.prototype.apply.call(t,n,r)},Dc;_o&&typeof _o.ownKeys=="function"?Dc=_o.ownKeys:Object.getOwnPropertySymbols?Dc=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Dc=function(t){return Object.getOwnPropertyNames(t)};function qO(e){console&&console.warn&&console.warn(e)}var tE=Number.isNaN||function(t){return t!==t};function Be(){Be.init.call(this)}sg.exports=Be,sg.exports.once=QO,Be.EventEmitter=Be,Be.prototype._events=void 0,Be.prototype._eventsCount=0,Be.prototype._maxListeners=void 0;var nE=10;function Fc(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 nE},set:function(e){if(typeof e!="number"||e<0||tE(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");nE=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||tE(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 rE(e){return e._maxListeners===void 0?Be.defaultMaxListeners:e._maxListeners}Be.prototype.getMaxListeners=function(){return rE(this)},Be.prototype.emit=function(t){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=t==="error",a=this._events;if(a!==void 0)i=i&&a.error===void 0;else if(!i)return!1;if(i){var o;if(n.length>0&&(o=n[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var u=a[t];if(u===void 0)return!1;if(typeof u=="function")eE(u,this,n);else for(var l=u.length,f=lE(u,l),r=0;r<l;++r)eE(f[r],this,n);return!0};function iE(e,t,n,r){var i,a,o;if(Fc(n),a=e._events,a===void 0?(a=e._events=Object.create(null),e._eventsCount=0):(a.newListener!==void 0&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),o=a[t]),o===void 0)o=a[t]=n,++e._eventsCount;else if(typeof o=="function"?o=a[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),i=rE(e),i>0&&o.length>i&&!o.warned){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=o.length,qO(s)}return e}Be.prototype.addListener=function(t,n){return iE(this,t,n,!1)},Be.prototype.on=Be.prototype.addListener,Be.prototype.prependListener=function(t,n){return iE(this,t,n,!0)};function ZO(){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 aE(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=ZO.bind(r);return i.listener=n,r.wrapFn=i,i}Be.prototype.once=function(t,n){return Fc(n),this.on(t,aE(this,t,n)),this},Be.prototype.prependOnceListener=function(t,n){return Fc(n),this.prependListener(t,aE(this,t,n)),this},Be.prototype.removeListener=function(t,n){var r,i,a,o,s;if(Fc(n),i=this._events,i===void 0)return this;if(r=i[t],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,r.listener||n));else if(typeof r!="function"){for(a=-1,o=r.length-1;o>=0;o--)if(r[o]===n||r[o].listener===n){s=r[o].listener,a=o;break}if(a<0)return this;a===0?r.shift():WO(r,a),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 a=Object.keys(r),o;for(i=0;i<a.length;++i)o=a[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[t],typeof n=="function")this.removeListener(t,n);else if(n!==void 0)for(i=n.length-1;i>=0;i--)this.removeListener(t,n[i]);return this};function oE(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?YO(i):lE(i,i.length)}Be.prototype.listeners=function(t){return oE(this,t,!0)},Be.prototype.rawListeners=function(t){return oE(this,t,!1)},Be.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):sE.call(e,t)},Be.prototype.listenerCount=sE;function sE(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?Dc(this._events):[]};function lE(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function WO(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function YO(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function QO(e,t){return new Promise(function(n,r){function i(o){e.removeListener(t,a),r(o)}function a(){typeof e.removeListener=="function"&&e.removeListener("error",i),n([].slice.call(arguments))}uE(e,t,a,{once:!0}),t!=="error"&&$O(e,i,{once:!0})})}function $O(e,t,n){typeof e.on=="function"&&uE(e,"error",t,n)}function uE(e,t,n,r){if(typeof e.on=="function")r.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(a){r.once&&e.removeEventListener(t,i),n(a)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var lg=sg.exports,ug={exports:{}};typeof Object.create=="function"?ug.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:ug.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 So=ug.exports,fg,fE;function cE(){return fE||(fE=1,fg=lg.EventEmitter),fg}const hE=uR(yR);var cg,dE;function XO(){if(dE)return cg;dE=1;function e(p,m){var y=Object.keys(p);if(Object.getOwnPropertySymbols){var w=Object.getOwnPropertySymbols(p);m&&(w=w.filter(function(_){return Object.getOwnPropertyDescriptor(p,_).enumerable})),y.push.apply(y,w)}return y}function t(p){for(var m=1;m<arguments.length;m++){var y=arguments[m]!=null?arguments[m]:{};m%2?e(Object(y),!0).forEach(function(w){n(p,w,y[w])}):Object.getOwnPropertyDescriptors?Object.defineProperties(p,Object.getOwnPropertyDescriptors(y)):e(Object(y)).forEach(function(w){Object.defineProperty(p,w,Object.getOwnPropertyDescriptor(y,w))})}return p}function n(p,m,y){return m=o(m),m in p?Object.defineProperty(p,m,{value:y,enumerable:!0,configurable:!0,writable:!0}):p[m]=y,p}function r(p,m){if(!(p instanceof m))throw new TypeError("Cannot call a class as a function")}function i(p,m){for(var y=0;y<m.length;y++){var w=m[y];w.enumerable=w.enumerable||!1,w.configurable=!0,"value"in w&&(w.writable=!0),Object.defineProperty(p,o(w.key),w)}}function a(p,m,y){return m&&i(p.prototype,m),y&&i(p,y),Object.defineProperty(p,"prototype",{writable:!1}),p}function o(p){var m=s(p,"string");return typeof m=="symbol"?m:String(m)}function s(p,m){if(typeof p!="object"||p===null)return p;var y=p[Symbol.toPrimitive];if(y!==void 0){var w=y.call(p,m||"default");if(typeof w!="object")return w;throw new TypeError("@@toPrimitive must return a primitive value.")}return(m==="string"?String:Number)(p)}var u=pe,l=u.Buffer,f=hE,c=f.inspect,h=c&&c.custom||"inspect";function d(p,m,y){l.prototype.copy.call(p,m,y)}return cg=function(){function p(){r(this,p),this.head=null,this.tail=null,this.length=0}return a(p,[{key:"push",value:function(y){var w={data:y,next:null};this.length>0?this.tail.next=w:this.head=w,this.tail=w,++this.length}},{key:"unshift",value:function(y){var w={data:y,next:this.head};this.length===0&&(this.tail=w),this.head=w,++this.length}},{key:"shift",value:function(){if(this.length!==0){var y=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,y}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(y){if(this.length===0)return"";for(var w=this.head,_=""+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,k=y>E.length?E.length:y;if(k===E.length?C+=E:C+=E.slice(0,y),y-=k,y===0){k===E.length?(++_,w.next?this.head=w.next:this.head=this.tail=null):(this.head=w,w.data=E.slice(k));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,k=y>E.length?E.length:y;if(E.copy(w,w.length-y,0,k),y-=k,y===0){k===E.length?(++C,_.next?this.head=_.next:this.head=this.tail=null):(this.head=_,_.data=E.slice(k));break}++C}return this.length-=C,w}},{key:h,value:function(y,w){return c(this,t(t({},w),{},{depth:0,customInspect:!1}))}}]),p}(),cg}var hg,pE;function gE(){if(pE)return hg;pE=1;function e(o,s){var u=this,l=this._readableState&&this._readableState.destroyed,f=this._writableState&&this._writableState.destroyed;return l||f?(s?s(o):o&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(i,this,o)):process.nextTick(i,this,o)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(o||null,function(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(o,s){i(o,s),n(o)}function n(o){o._writableState&&!o._writableState.emitClose||o._readableState&&!o._readableState.emitClose||o.emit("close")}function r(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function i(o,s){o.emit("error",s)}function a(o,s){var u=o._readableState,l=o._writableState;u&&u.autoDestroy||l&&l.autoDestroy?o.destroy(s):o.emit("error",s)}return hg={destroy:e,undestroy:r,errorOrDestroy:a},hg}var dg={},mE;function Co(){if(mE)return dg;mE=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,m,y){return h.call(this,f(p,m,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 a(s,u,l){return(l===void 0||l>s.length)&&(l=s.length),s.substring(l-u.length,l)===u}function o(s,u,l){return typeof l!="number"&&(l=0),l+u.length>s.length?!1:s.indexOf(u,l)!==-1}return n("ERR_INVALID_OPT_VALUE",function(s,u){return'The value "'+u+'" is invalid for option "'+s+'"'},TypeError),n("ERR_INVALID_ARG_TYPE",function(s,u,l){var f;typeof u=="string"&&i(u,"not ")?(f="must not be",u=u.replace(/^not /,"")):f="must be";var c;if(a(s," argument"))c="The ".concat(s," ").concat(f," ").concat(r(u,"type"));else{var h=o(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"),dg.codes=t,dg}var pg,bE;function yE(){if(bE)return pg;bE=1;var e=Co().codes.ERR_INVALID_OPT_VALUE;function t(r,i,a){return r.highWaterMark!=null?r.highWaterMark:i?r[a]:null}function n(r,i,a,o){var s=t(i,o,a);if(s!=null){if(!(isFinite(s)&&Math.floor(s)===s)||s<0){var u=o?a:"highWaterMark";throw new e(u,s)}return Math.floor(s)}return r.objectMode?16:16*1024}return pg={getHighWaterMark:n},pg}var gg,wE;function KO(){if(wE)return gg;wE=1,gg=e;function e(n,r){if(t("noDeprecation"))return n;var i=!1;function a(){if(!i){if(t("throwDeprecation"))throw new Error(r);t("traceDeprecation")?console.trace(r):console.warn(r),i=!0}return n.apply(this,arguments)}return a}function t(n){try{if(!globalThis.localStorage)return!1}catch{return!1}var r=globalThis.localStorage[n];return r==null?!1:String(r).toLowerCase()==="true"}return gg}var mg,vE;function xE(){if(vE)return mg;vE=1,mg=R;function e(N){var P=this;this.next=null,this.entry=null,this.finish=function(){Oe(P,N)}}var t;R.WritableState=B;var n={deprecate:KO()},r=cE(),i=pe.Buffer,a=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function o(N){return i.from(N)}function s(N){return i.isBuffer(N)||N instanceof a}var u=gE(),l=yE(),f=l.getHighWaterMark,c=Co().codes,h=c.ERR_INVALID_ARG_TYPE,d=c.ERR_METHOD_NOT_IMPLEMENTED,p=c.ERR_MULTIPLE_CALLBACK,m=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;So(R,r);function k(){}function B(N,P,q){t=t||To(),N=N||{},typeof q!="boolean"&&(q=P instanceof t),this.objectMode=!!N.objectMode,q&&(this.objectMode=this.objectMode||!!N.writableObjectMode),this.highWaterMark=f(this,N,"writableHighWaterMark",q),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var H=N.decodeStrings===!1;this.decodeStrings=!H,this.defaultEncoding=N.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Y){$e(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=N.emitClose!==!1,this.autoDestroy=!!N.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(N){t=t||To();var P=this instanceof t;if(!P&&!I.call(R,this))return new R(N);this._writableState=new B(N,this,P),this.writable=!0,N&&(typeof N.write=="function"&&(this._write=N.write),typeof N.writev=="function"&&(this._writev=N.writev),typeof N.destroy=="function"&&(this._destroy=N.destroy),typeof N.final=="function"&&(this._final=N.final)),r.call(this)}R.prototype.pipe=function(){E(this,new m)};function L(N,P){var q=new _;E(N,q),process.nextTick(P,q)}function j(N,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(N,Y),process.nextTick(H,Y),!1):!0}R.prototype.write=function(N,P,q){var H=this._writableState,Y=!1,S=!H.objectMode&&s(N);return S&&!i.isBuffer(N)&&(N=o(N)),typeof P=="function"&&(q=P,P=null),S?P="buffer":P||(P=H.defaultEncoding),typeof q!="function"&&(q=k),H.ending?L(this,q):(S||j(this,H,N,q))&&(H.pendingcb++,Y=ie(this,H,S,N,P,q)),Y},R.prototype.cork=function(){this._writableState.corked++},R.prototype.uncork=function(){var N=this._writableState;N.corked&&(N.corked--,!N.writing&&!N.corked&&!N.bufferProcessing&&N.bufferedRequest&&Ze(this,N))},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 M(N,P,q){return!N.objectMode&&N.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(N,P,q,H,Y,S){if(!q){var x=M(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(N,P,!1,G,H,Y,S);return Z}function se(N,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?N._writev(Y,P.onwrite):N._write(Y,S,P.onwrite),P.sync=!1}function ge(N,P,q,H,Y){--P.pendingcb,q?(process.nextTick(Y,H),process.nextTick(pt,N,P),N._writableState.errorEmitted=!0,E(N,H)):(Y(H),N._writableState.errorEmitted=!0,E(N,H),pt(N,P))}function Ie(N){N.writing=!1,N.writecb=null,N.length-=N.writelen,N.writelen=0}function $e(N,P){var q=N._writableState,H=q.sync,Y=q.writecb;if(typeof Y!="function")throw new p;if(Ie(q),P)ge(N,q,H,P,Y);else{var S=Je(q)||N.destroyed;!S&&!q.corked&&!q.bufferProcessing&&q.bufferedRequest&&Ze(N,q),H?process.nextTick(De,N,q,S,Y):De(N,q,S,Y)}}function De(N,P,q,H){q||Ke(N,P),P.pendingcb--,H(),pt(N,P)}function Ke(N,P){P.length===0&&P.needDrain&&(P.needDrain=!1,N.emit("drain"))}function Ze(N,P){P.bufferProcessing=!0;var q=P.bufferedRequest;if(N._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(N,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(N,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(N,P,q){q(new d("_write()"))},R.prototype._writev=null,R.prototype.end=function(N,P,q){var H=this._writableState;return typeof N=="function"?(q=N,N=null,P=null):typeof P=="function"&&(q=P,P=null),N!=null&&this.write(N,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 Je(N){return N.ending&&N.length===0&&N.bufferedRequest===null&&!N.finished&&!N.writing}function Ee(N,P){N._final(function(q){P.pendingcb--,q&&E(N,q),P.prefinished=!0,N.emit("prefinish"),pt(N,P)})}function _e(N,P){!P.prefinished&&!P.finalCalled&&(typeof N._final=="function"&&!P.destroyed?(P.pendingcb++,P.finalCalled=!0,process.nextTick(Ee,N,P)):(P.prefinished=!0,N.emit("prefinish")))}function pt(N,P){var q=Je(P);if(q&&(_e(N,P),P.pendingcb===0&&(P.finished=!0,N.emit("finish"),P.autoDestroy))){var H=N._readableState;(!H||H.autoDestroy&&H.endEmitted)&&N.destroy()}return q}function qt(N,P,q){P.ending=!0,pt(N,P),q&&(P.finished?process.nextTick(q):N.once("finish",q)),P.ended=!0,N.writable=!1}function Oe(N,P,q){var H=N.entry;for(N.entry=null;H;){var Y=H.callback;P.pendingcb--,Y(q),H=H.next}P.corkedRequestsFree.next=N}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(N,P){P(N)},mg}var bg,AE;function To(){if(AE)return bg;AE=1;var e=Object.keys||function(l){var f=[];for(var c in l)f.push(c);return f};bg=o;var t=kE(),n=xE();So(o,t);for(var r=e(n.prototype),i=0;i<r.length;i++){var a=r[i];o.prototype[a]||(o.prototype[a]=n.prototype[a])}function o(l){if(!(this instanceof o))return new o(l);t.call(this,l),n.call(this,l),this.allowHalfOpen=!0,l&&(l.readable===!1&&(this.readable=!1),l.writable===!1&&(this.writable=!1),l.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",s)))}Object.defineProperty(o.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(o.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(o.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(){this._writableState.ended||process.nextTick(u,this)}function u(l){l.end()}return Object.defineProperty(o.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(f){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=f,this._writableState.destroyed=f)}}),bg}var yg={},wg={exports:{}};(function(e,t){var n=pe,r=n.Buffer;function i(o,s){for(var u in o)s[u]=o[u]}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?e.exports=n:(i(n,t),t.Buffer=a);function a(o,s,u){return r(o,s,u)}i(r,a),a.from=function(o,s,u){if(typeof o=="number")throw new TypeError("Argument must not be a number");return r(o,s,u)},a.alloc=function(o,s,u){if(typeof o!="number")throw new TypeError("Argument must be a number");var l=r(o);return s!==void 0?typeof u=="string"?l.fill(s,u):l.fill(s):l.fill(0),l},a.allocUnsafe=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return r(o)},a.allocUnsafeSlow=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return n.SlowBuffer(o)}})(wg,wg.exports);var JO=wg.exports,vg=JO.Buffer,EE=vg.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 ez(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 tz(e){var t=ez(e);if(typeof t!="string"&&(vg.isEncoding===EE||!EE(e)))throw new Error("Unknown encoding: "+e);return t||e}var nz=yg.StringDecoder=Ol;function Ol(e){this.encoding=tz(e);var t;switch(this.encoding){case"utf16le":this.text=lz,this.end=uz,t=4;break;case"utf8":this.fillLast=az,t=4;break;case"base64":this.text=fz,this.end=cz,t=3;break;default:this.write=hz,this.end=dz;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=vg.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=sz,Ol.prototype.text=oz,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 xg(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function rz(e,t,n){var r=t.length-1;if(r<n)return 0;var i=xg(t[r]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--r<n||i===-2?0:(i=xg(t[r]),i>=0?(i>0&&(e.lastNeed=i-2),i):--r<n||i===-2?0:(i=xg(t[r]),i>=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function iz(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 az(e){var t=this.lastTotal-this.lastNeed,n=iz(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 oz(e,t){var n=rz(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 sz(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function lz(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 uz(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 fz(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 cz(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function hz(e){return e.toString(this.encoding)}function dz(e){return e&&e.length?this.write(e):""}var Ag,_E;function Eg(){if(_E)return Ag;_E=1;var e=Co().codes.ERR_STREAM_PREMATURE_CLOSE;function t(a){var o=!1;return function(){if(!o){o=!0;for(var s=arguments.length,u=new Array(s),l=0;l<s;l++)u[l]=arguments[l];a.apply(this,u)}}}function n(){}function r(a){return a.setHeader&&typeof a.abort=="function"}function i(a,o,s){if(typeof o=="function")return i(a,null,o);o||(o={}),s=t(s||n);var u=o.readable||o.readable!==!1&&a.readable,l=o.writable||o.writable!==!1&&a.writable,f=function(){a.writable||h()},c=a._writableState&&a._writableState.finished,h=function(){l=!1,c=!0,u||s.call(a)},d=a._readableState&&a._readableState.endEmitted,p=function(){u=!1,d=!0,l||s.call(a)},m=function(C){s.call(a,C)},y=function(){var C;if(u&&!d)return(!a._readableState||!a._readableState.ended)&&(C=new e),s.call(a,C);if(l&&!c)return(!a._writableState||!a._writableState.ended)&&(C=new e),s.call(a,C)},w=function(){a.req.on("finish",h)};return r(a)?(a.on("complete",h),a.on("abort",y),a.req?w():a.on("request",w)):l&&!a._writableState&&(a.on("end",f),a.on("close",f)),a.on("end",p),a.on("finish",h),o.error!==!1&&a.on("error",m),a.on("close",y),function(){a.removeListener("complete",h),a.removeListener("abort",y),a.removeListener("request",w),a.req&&a.req.removeListener("finish",h),a.removeListener("end",f),a.removeListener("close",f),a.removeListener("finish",h),a.removeListener("end",p),a.removeListener("error",m),a.removeListener("close",y)}}return Ag=i,Ag}var _g,SE;function pz(){if(SE)return _g;SE=1;var e;function t(C,E,k){return E=n(E),E in C?Object.defineProperty(C,E,{value:k,enumerable:!0,configurable:!0,writable:!0}):C[E]=k,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 k=C[Symbol.toPrimitive];if(k!==void 0){var B=k.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=Eg(),a=Symbol("lastResolve"),o=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[a];if(E!==null){var k=C[c].read();k!==null&&(C[l]=null,C[a]=null,C[o]=null,E(h(k,!1)))}}function p(C){process.nextTick(d,C)}function m(C,E){return function(k,B){C.then(function(){if(E[u]){k(h(void 0,!0));return}E[f](k,B)},B)}}var y=Object.getPrototypeOf(function(){}),w=Object.setPrototypeOf((e={get stream(){return this[c]},next:function(){var E=this,k=this[s];if(k!==null)return Promise.reject(k);if(this[u])return Promise.resolve(h(void 0,!0));if(this[c].destroyed)return new Promise(function(L,j){process.nextTick(function(){E[s]?j(E[s]):L(h(void 0,!0))})});var B=this[l],I;if(B)I=new Promise(m(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(k,B){E[c].destroy(null,function(I){if(I){B(I);return}k(h(void 0,!0))})})}),e),y),_=function(E){var k,B=Object.create(w,(k={},t(k,c,{value:E,writable:!0}),t(k,a,{value:null,writable:!0}),t(k,o,{value:null,writable:!0}),t(k,s,{value:null,writable:!0}),t(k,u,{value:E._readableState.endEmitted,writable:!0}),t(k,f,{value:function(R,L){var j=B[c].read();j?(B[l]=null,B[a]=null,B[o]=null,R(h(j,!1))):(B[a]=R,B[o]=L)},writable:!0}),k));return B[l]=null,i(E,function(I){if(I&&I.code!=="ERR_STREAM_PREMATURE_CLOSE"){var R=B[o];R!==null&&(B[l]=null,B[a]=null,B[o]=null,R(I)),B[s]=I;return}var L=B[a];L!==null&&(B[l]=null,B[a]=null,B[o]=null,L(h(void 0,!0))),B[u]=!0}),E.on("readable",p.bind(null,B)),B};return _g=_,_g}var Sg,CE;function gz(){return CE||(CE=1,Sg=function(){throw new Error("Readable.from is not available in the browser")}),Sg}var Cg,TE;function kE(){if(TE)return Cg;TE=1,Cg=L;var e;L.ReadableState=R,lg.EventEmitter;var t=function(x,G){return x.listeners(G).length},n=cE(),r=pe.Buffer,i=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function a(S){return r.from(S)}function o(S){return r.isBuffer(S)||S instanceof i}var s=hE,u;s&&s.debuglog?u=s.debuglog("stream"):u=function(){};var l=XO(),f=gE(),c=yE(),h=c.getHighWaterMark,d=Co().codes,p=d.ERR_INVALID_ARG_TYPE,m=d.ERR_STREAM_PUSH_AFTER_EOF,y=d.ERR_METHOD_NOT_IMPLEMENTED,w=d.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,_,C,E;So(L,n);var k=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||To(),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&&(_||(_=yg.StringDecoder),this.decoder=new _(S.encoding),this.encoding=S.encoding)}function L(S){if(e=e||To(),!(this instanceof L))return new L(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(L.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(x){this._readableState&&(this._readableState.destroyed=x)}}),L.prototype.destroy=f.destroy,L.prototype._undestroy=f.undestroy,L.prototype._destroy=function(S,x){x(S)},L.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)},L.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,$e(S,J);else{var ue;if(le||(ue=ie(J,x)),ue)k(S,ue);else if(J.objectMode||x&&x.length>0)if(typeof x!="string"&&!J.objectMode&&Object.getPrototypeOf(x)!==r.prototype&&(x=a(x)),Z)J.endEmitted?k(S,new w):M(S,J,x,!0);else if(J.ended)k(S,new m);else{if(J.destroyed)return!1;J.reading=!1,J.decoder&&!G?(x=J.decoder.write(x),J.objectMode||x.length!==0?M(S,J,x,!1):Ze(S,J)):M(S,J,x,!1)}else Z||(J.reading=!1,Ze(S,J))}return!J.ended&&(J.length<J.highWaterMark||J.length===0)}function M(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!o(x)&&typeof x!="string"&&x!==void 0&&!S.objectMode&&(G=new p("chunk",["string","Buffer","Uint8Array"],x)),G}L.prototype.isPaused=function(){return this._readableState.flowing===!1},L.prototype.setEncoding=function(S){_||(_=yg.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))}L.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 $e(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,Ke(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(Ke,S))}function Ke(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,N(S)}function Ze(S,x){x.readingMore||(x.readingMore=!0,process.nextTick(Je,S,x))}function Je(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}L.prototype._read=function(S){k(this,new y("_read()"))},L.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:Kn;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",Kn),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),Kn(),S.removeListener("error",wr),t(S,"error")===0&&k(S,v)}I(S,"error",wr);function ci(){S.removeListener("finish",Wt),Kn()}S.once("close",ci);function Wt(){u("onfinish"),S.removeListener("close",ci),Kn()}S.once("finish",Wt);function Kn(){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,N(S))}}L.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)},L.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},L.prototype.addListener=L.prototype.on,L.prototype.removeListener=function(S,x){var G=n.prototype.removeListener.call(this,S,x);return S==="readable"&&process.nextTick(_e,this),G},L.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)}L.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"),N(S),x.flowing&&!x.reading&&S.read(0)}L.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 N(S){var x=S._readableState;for(u("flow",x.flowing);x.flowing&&S.read()!==null;);}L.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"&&(L.prototype[Symbol.asyncIterator]=function(){return C===void 0&&(C=pz()),C(this)}),Object.defineProperty(L.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(L.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(L.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(x){this._readableState&&(this._readableState.flowing=x)}}),L._fromList=P,Object.defineProperty(L.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"&&(L.from=function(S,x){return E===void 0&&(E=gz()),E(L,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 Cg}var Tg,IE;function BE(){if(IE)return Tg;IE=1,Tg=s;var e=Co().codes,t=e.ERR_METHOD_NOT_IMPLEMENTED,n=e.ERR_MULTIPLE_CALLBACK,r=e.ERR_TRANSFORM_ALREADY_TRANSFORMING,i=e.ERR_TRANSFORM_WITH_LENGTH_0,a=To();So(s,a);function o(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);a.call(this,f),this._transformState={afterTransform:o.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,a.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){a.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 Tg}var kg,DE;function mz(){if(DE)return kg;DE=1,kg=t;var e=BE();So(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)},kg}var Ig,FE;function bz(){if(FE)return Ig;FE=1;var e;function t(h){var d=!1;return function(){d||(d=!0,h.apply(void 0,arguments))}}var n=Co().codes,r=n.ERR_MISSING_ARGS,i=n.ERR_STREAM_DESTROYED;function a(h){if(h)throw h}function o(h){return h.setHeader&&typeof h.abort=="function"}function s(h,d,p,m){m=t(m);var y=!1;h.on("close",function(){y=!0}),e===void 0&&(e=Eg()),e(h,{readable:d,writable:p},function(_){if(_)return m(_);y=!0,m()});var w=!1;return function(_){if(!y&&!w){if(w=!0,o(h))return h.abort();if(typeof h.destroy=="function")return h.destroy();m(_||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"?a:h.pop()}function c(){for(var h=arguments.length,d=new Array(h),p=0;p<h;p++)d[p]=arguments[p];var m=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,k=C>0;return s(_,E,k,function(B){y||(y=B),B&&w.forEach(u),!E&&(w.forEach(u),m(y))})});return d.reduce(l)}return Ig=c,Ig}var RE=dn,Bg=lg.EventEmitter,yz=So;yz(dn,Bg),dn.Readable=kE(),dn.Writable=xE(),dn.Duplex=To(),dn.Transform=BE(),dn.PassThrough=mz(),dn.finished=Eg(),dn.pipeline=bz(),dn.Stream=dn;function dn(){Bg.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",o),n.on("close",s));var a=!1;function o(){a||(a=!0,e.end())}function s(){a||(a=!0,typeof e.destroy=="function"&&e.destroy())}function u(f){if(l(),Bg.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",o),n.removeListener("close",s),n.removeListener("error",u),e.removeListener("error",u),n.removeListener("end",l),n.removeListener("close",l),e.removeListener("close",l)}return n.on("end",l),n.on("close",l),e.on("close",l),e.emit("pipe",n),e};function zl(e){return e.replace(/%([0-9A-Fa-f]{2})/g,(t,n)=>String.fromCharCode(parseInt(n,16)))}function ME(e,t){return String(t).replace(e,n=>`%${n.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function Ul(e){return ME(/[\n;\r\t=%&,\x00-\x1f\x7f-\xff]/g,e)}function pr(e){return ME(/[\n\r\t%\x00-\x1f\x7f-\xff]/g,e)}function PE(e){if(!(e&&e.length)||e===".")return{};const t={};return e.replace(/\r?\n$/,"").split(";").forEach(n=>{const r=n.split("=",2);if(!(r[1]&&r[1].length))return;r[0]=r[0].trim();let i=t[r[0].trim()];i||(i=[],t[r[0]]=i),i.push(...r[1].split(",").map(a=>a.trim()).map(zl))}),t}function LE(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:PE(t[8])}}function NE(e){const t=/^\s*##\s*(\S+)\s*(.*)/.exec(e);if(!t)return null;const[,n]=t;let[,,r]=t;const i={directive:n};if(r.length&&(r=r.replace(/\r?\n$/,""),i.value=r),n==="sequence-region"){const a=r.split(/\s+/,3);return{...i,seq_id:a[0],start:a[1]&&a[1].replace(/\D/g,""),end:a[2]&&a[2].replace(/\D/g,"")}}else if(n==="genome-build"){const[a,o]=r.split(/\s+/,2);return{...i,source:a,buildName:o}}return i}function OE(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 wz(e,t){const n=e.attributes===null||e.attributes===void 0?".":OE(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(" ")}
499
+ )`},Symbol.toStringTag,{value:"Module"}))).map(([e,t])=>[e,M3.parse(t.trim())]));function eg(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 cO={".":0,"-":-1,"+":1};function hO(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 dO{constructor(t={}){if(t.autoSql)this.autoSql=eg(fO.parse(t.autoSql));else if(t.type){if(!Jp[t.type])throw new Error("Type not found");this.autoSql=eg(Jp[t.type])}else this.autoSql=eg(Jp.defaultBedSchema),this.attemptDefaultBed=!0}parseLine(t,n={}){const{autoSql:r}=this,{uniqueId:i}=n,a=Array.isArray(t)?t:t.split(" ");let o={};if(!this.attemptDefaultBed||this.attemptDefaultBed&&hO(a))for(let s=0;s<r.fields.length;s++){const u=r.fields[s];let l=a[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))));o[d]=l}}else{const s=["chrom","chromStart","chromEnd","name"];o=Object.fromEntries(a.map((u,l)=>[s[l]||"field"+l,u])),o.chromStart=+o.chromStart,o.chromEnd=+o.chromEnd,Number.isNaN(Number.parseFloat(o.field4))||(o.score=+o.field4,delete o.field4),(o.field5==="+"||o.field5==="-")&&(o.strand=o.field5,delete o.field5)}return i&&(o.uniqueId=i),o.strand=cO[o.strand]||0,o.chrom=decodeURIComponent(o.chrom),o}}const pO=Object.freeze(Object.defineProperty({__proto__:null,default:dO},Symbol.toStringTag,{value:"Module"}));let P3=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 vo(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new P3(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 L3=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 gO(e){return new Promise(t=>setTimeout(t,e))}function mO(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}function bO(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 yO(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function wO(e={}){return"aborted"in e?{signal:e}:e}function N3(e,t){const n=[];let r;if(e.length===0)return e;e.sort((i,a)=>{const o=i.minv.blockPosition-a.minv.blockPosition;return o===0?i.minv.dataPosition-a.minv.dataPosition:o});for(const i of e)(!t||i.maxv.compareTo(t)>0)&&(r===void 0?(n.push(i),r=i):yO(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i));return n}function O3(e,t){return{lineCount:mO(nc.fromBytesLE(Array.prototype.slice.call(e,t,t+8),!0))}}function Tc(e,t){return e?e.compareTo(t)>0?t:e:t}function vO(e,t=n=>n){let n=0,r=0;const i=[],a={};for(let o=0;o<e.length;o+=1)if(!e[o]){if(r<o){let s=e.toString("utf8",r,o);s=t(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}let z3=class{constructor({filehandle:t,renameRefSeq:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}};const xO=21578050;function AO(e,t){return e-e%t}function EO(e,t){return e-e%t+t}function _O(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 xo extends z3{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)!==xO)throw new Error("Not a BAI file");const r=n.readInt32LE(4),a=((1<<(5+1)*3)-1)/7;let o=8,s;const u=new Array(r);for(let l=0;l<r;l++){const f=n.readInt32LE(o);let c;o+=4;const h={};for(let b=0;b<f;b+=1){const y=n.readUInt32LE(o);if(o+=4,y===a+1)o+=4,c=O3(n,o+16),o+=32;else{if(y>a+1)throw new Error("bai index contains too many bins, please use CSI");{const w=n.readInt32LE(o);o+=4;const E=new Array(w);for(let C=0;C<w;C++){const _=vo(n,o);o+=8;const k=vo(n,o);o+=8,s=Tc(s,_),E[C]=new L3(_,k,y)}h[y]=E}}}const d=n.readInt32LE(o);o+=4;const p=new Array(d);for(let b=0;b<d;b++){const y=vo(n,o);o+=8,s=Tc(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 o=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:EO(r,16384),h=n===void 0?0:AO(n,16384),d=o?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 a=await this.parse(i);if(!a)return[];const o=a.indices[t];if(!o)return[];const s=_O(n,r),u=[];for(const[d,p]of s)for(let b=d;b<=p;b++)if(o.binIndex[b]){const y=o.binIndex[b];for(const w of y)u.push(w)}const l=o.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=o.linearIndex[d];p&&(!f||p.compareTo(f)<0)&&(f=p)}return N3(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,tg=[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"&&(tg=new Int32Array(tg));function U3(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 SO(e){var t=U3(4);return t.writeInt32BE(e,0),t}function ng(e,t){e=U3(e),si.isBuffer(t)&&(t=t.readUInt32BE(0));for(var n=~~t^-1,r=0;r<e.length;r++)n=tg[(n^e[r])&255]^n>>>8;return n^-1}function rg(){return SO(ng.apply(null,arguments))}rg.signed=function(){return ng.apply(null,arguments)},rg.unsigned=function(){return ng.apply(null,arguments)>>>0};var CO=rg;const TO=Xs(CO),kO=21582659,IO=38359875;function BO(e,t){return e*2**t}function G3(e,t){return Math.floor(e/2**t)}let kc=class extends z3{constructor(){super(...arguments),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n){var r,i;return((i=(r=(await this.parse(n)).indices[t])===null||r===void 0?void 0:r.stats)===null||i===void 0?void 0:i.lineCount)||0}async indexCov(){return[]}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",a={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!a)throw new Error(`invalid Tabix preset format flags ${r}`);const o={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},s=t.readInt32LE(n+16),u=s?String.fromCharCode(s):"",l=t.readInt32LE(n+20),f=t.readInt32LE(n+24);return{columnNumbers:o,coordinateType:i,metaValue:s,metaChar:u,skipLines:l,format:a,formatFlags:r,...vO(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)===kO)i=1;else if(r.readUInt32LE(0)===IO)i=2;else throw new Error("Not a CSI file");this.minShift=r.readInt32LE(4),this.depth=r.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const a=r.readInt32LE(12),o=a>=30?this.parseAuxData(r,16):void 0,s=r.readInt32LE(16+a);let u=16+a+4,l;const 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=O3(r,u+28),u+=28+16;else{l=Tc(l,vo(r,u)),u+=8;const w=r.readInt32LE(u);u+=4;const E=new Array(w);for(let C=0;C<w;C+=1){const _=vo(r,u);u+=8;const k=vo(r,u);u+=8,l=Tc(l,_),E[C]=new L3(_,k,y)}d[y]=E}}f[c]={binIndex:d,stats:p}}return{csiVersion:i,firstDataLine:l,indices:f,refCount:s,csi:!0,maxBlockSize:65536,...o}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i),o=a==null?void 0:a.indices[t];if(!o)return[];const s=this.reg2bins(n,r);if(s.length===0)return[];const u=[];for(const[l,f]of s)for(let c=l;c<=f;c++)if(o.binIndex[c]){const h=o.binIndex[c];for(const d of h)u.push(d)}return N3(u,new P3(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,a=this.minShift+this.depth*3;const o=[];for(;r<=this.depth;a-=3,i+=BO(1,r*3),r+=1){const s=i+G3(t,a),u=i+G3(n,a);if(u-s+o.length>this.maxBinNumber)throw new Error(`query ${t}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);o.push([s,u])}return o}async parse(t={}){return this.setupP||(this.setupP=this._parse(t).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}};const 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},H3="=ACMGRSVTWYHKDBN".split(""),Nl="MIDNSHP=X???????".split("");class V3{constructor(t){this.data={},this._tagList=[],this._allTagsParsed=!1;const{bytes:n,fileOffset:r}=t,{byteArray:i,start:a}=n;this.data={},this.bytes=n,this._id=r,this._refID=i.readInt32LE(a+4),this.data.start=i.readInt32LE(a+8),this.flags=(i.readInt32LE(a+16)&4294901760)>>16}get(t){return this[t]?this.data[t]?this.data[t]:(this.data[t]=this[t](),this.data[t]):this._get(t.toLowerCase())}end(){return this.get("start")+this.get("length_on_ref")}seq_id(){return this._refID}_get(t){return t in this.data?this.data[t]:(this.data[t]=this._parseTag(t),this.data[t])}_tags(){this._parseAllTags();let t=["seq"];this.isSegmentUnmapped()||t.push("start","end","strand","score","qual","MQ","CIGAR","length_on_ref","template_length"),this.isPaired()&&t.push("next_segment_position","pair_orientation"),t=t.concat(this._tagList||[]);for(const r of Object.keys(this.data))r[0]!=="_"&&r!=="next_seq_id"&&t.push(r);const n={};return t.filter(r=>{if(r in this.data&&this.data[r]===void 0||r==="CG"||r==="cg")return!1;const i=r.toLowerCase(),a=n[i];return n[i]=!0,!a})}parent(){}children(){return this.get("subfeatures")}id(){return this._id}mq(){const t=(this.get("_bin_mq_nl")&65280)>>8;return t===255?void 0:t}score(){return this.get("mq")}qual(){var t;return(t=this.qualRaw())===null||t===void 0?void 0:t.join(" ")}qualRaw(){if(this.isSegmentUnmapped())return;const{start:t,byteArray:n}=this.bytes,r=t+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes"),i=this.get("seq_length");return n.subarray(r,r+i)}strand(){return this.isReverseComplemented()?-1:1}multi_segment_next_segment_strand(){if(!this.isMateUnmapped())return this.isMateReverseComplemented()?-1:1}name(){return this.get("_read_name")}_read_name(){const t=this.get("_l_read_name"),{byteArray:n,start:r}=this.bytes;return n.toString("ascii",r+36,r+36+t-1)}_parseTag(t){if(this._allTagsParsed)return;const{byteArray:n,start:r}=this.bytes;let i=this._tagOffset||r+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes")+this.get("seq_length");const a=this.bytes.end;let o;for(;i<a&&o!==t;){const s=String.fromCharCode(n[i],n[i+1]);o=s.toLowerCase();const u=String.fromCharCode(n[i+2]);i+=3;let l;switch(u){case"A":{l=String.fromCharCode(n[i]),i+=1;break}case"i":{l=n.readInt32LE(i),i+=4;break}case"I":{l=n.readUInt32LE(i),i+=4;break}case"c":{l=n.readInt8(i),i+=1;break}case"C":{l=n.readUInt8(i),i+=1;break}case"s":{l=n.readInt16LE(i),i+=2;break}case"S":{l=n.readUInt16LE(i),i+=2;break}case"f":{l=n.readFloatLE(i),i+=4;break}case"Z":case"H":{for(l="";i<=a;){const 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=a}if(this._tagOffset=i,this._tagList.push(s),o===t)return l;this.data[o]=l}this._allTagsParsed=!0}_parseAllTags(){this._parseTag("")}_parseCigar(t){return t.match(/\d+\D/g).map(n=>[n.match(/\D/)[0].toUpperCase(),Number.parseInt(n,10)])}isPaired(){return!!(this.flags&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 a=this.get("seq_length");let o="",s=0,u=t.readInt32LE(i),l=u>>4,f=Nl[u&15];if(f==="S"&&l===a)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],o+=l+f,f!=="H"&&f!=="S"&&f!=="I"&&(s+=l),i+=4;return this.data.length_on_ref=s,o}_flags(){}length_on_ref(){return this.data.length_on_ref?this.data.length_on_ref:(this.get("cigar"),this.data.length_on_ref)}_n_cigar_op(){return this.get("_flag_nc")&65535}_l_read_name(){return this.get("_bin_mq_nl")&255}_seq_bytes(){return this.get("seq_length")+1>>1}getReadBases(){return this.seq()}seq(){const{byteArray:t,start:n}=this.bytes,r=n+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4,i=this.get("_seq_bytes"),a=this.get("seq_length");let o="",s=0;for(let u=0;u<i;++u){const l=t[r+u];o+=H3[(l&240)>>4],s++,s<a&&(o+=H3[l&15],s++)}return o}getPairOrientation(){if(!this.isSegmentUnmapped()&&!this.isMateUnmapped()&&this._refID===this._next_refid()){const t=this.isReverseComplemented()?"R":"F",n=this.isMateReverseComplemented()?"R":"F";let r=" ",i=" ";this.isRead1()?(r="1",i="2"):this.isRead2()&&(r="2",i="1");const a=[];return this.template_length()>0?(a[0]=t,a[1]=r,a[2]=n,a[3]=i):(a[2]=t,a[3]=r,a[0]=n,a[1]=i),a.join("")}return""}_bin_mq_nl(){return this.bytes.byteArray.readInt32LE(this.bytes.start+12)}_flag_nc(){return this.bytes.byteArray.readInt32LE(this.bytes.start+16)}seq_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+20)}_next_refid(){return this.bytes.byteArray.readInt32LE(this.bytes.start+24)}_next_pos(){return this.bytes.byteArray.readInt32LE(this.bytes.start+28)}template_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+32)}toJSON(){const t={};for(const n of Object.keys(this))n.charAt(0)==="_"||n==="bytes"||(t[n]=this[n]);return t}}function j3(e){const t=e.split(/\r?\n/),n=[];for(const r of t){const[i,...a]=r.split(/\t/);i&&n.push({tag:i.slice(1),data:a.map(o=>{const[s,u]=o.split(":",2);return{tag:s,value:u}})})}return n}const q3=21840194,Z3=65536;async function DO(e){let t=[];for await(const n of e)t=t.concat(n);return t}class FO{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 W3{constructor({bamFilehandle:t,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:a,baiUrl:o,csiPath:s,csiFilehandle:u,csiUrl:l,htsget:f,yieldThreadTime:c=100,renameRefSeqs:h=d=>d}){if(this.htsget=!1,this.featureCache=new fc({cache:new cc({maxSize:50}),fill:async(d,p)=>{const{chunk:b,opts:y}=d,{data:w,cpositions:E,dpositions:C}=await this._readChunk({chunk:b,opts:{...y,signal:p}});return this.readBamFeatures(w,E,C,b)}}),this.renameRefSeq=h,t)this.bam=t;else if(n)this.bam=new ht(n);else if(r)this.bam=new Wi(r);else if(f)this.htsget=!0,this.bam=new FO;else throw new Error("unable to initialize bam");if(u)this.index=new kc({filehandle:u});else if(s)this.index=new kc({filehandle:new ht(s)});else if(l)this.index=new kc({filehandle:new Wi(l)});else if(a)this.index=new xo({filehandle:a});else if(i)this.index=new xo({filehandle:new ht(i)});else if(o)this.index=new xo({filehandle:new Wi(o)});else if(n)this.index=new xo({filehandle:new ht(`${n}.bai`)});else if(r)this.index=new xo({filehandle:new Wi(`${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=wO(t);if(!this.index)return;const r=await this.index.parse(n),i=r.firstDataLine?r.firstDataLine.blockPosition+65535:void 0;let a;if(i){const f=i+Z3,c=await this.bam.read(pe.Buffer.alloc(f),0,f,0,n);if(!c.bytesRead)throw new Error("Error reading header");a=c.buffer.subarray(0,Math.min(c.bytesRead,i))}else a=await this.bam.readFile(n);const o=await Jr(a);if(o.readInt32LE(0)!==q3)throw new Error("Not a BAM file");const s=o.readInt32LE(4);this.header=o.toString("utf8",8,8+s);const{chrToIndex:u,indexToChr:l}=await this._readRefSeqs(s+8,65535,n);return this.chrToIndex=u,this.indexToChr=l,j3(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+Z3,{bytesRead:a,buffer:o}=await this.bam.read(pe.Buffer.alloc(i),0,n,0,r);if(!a)throw new Error("Error reading refseqs from header");const s=await Jr(o.subarray(0,Math.min(a,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 DO(this.streamRecordsForRange(t,n,r,i))}async*streamRecordsForRange(t,n,r,i){var a;await this.getHeader(i);const o=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];if(o===void 0||!this.index)yield[];else{const s=await this.index.blocksForRange(o,n-1,r,i);yield*this._fetchChunkFeatures(s,o,n,r,i)}}async*_fetchChunkFeatures(t,n,r,i,a={}){const{viewAsPairs:o}=a,s=[];let u=!1;for(const l of t){const f=await this.featureCache.get(l.toString(),{chunk:l,opts:a},a.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}bO(a.signal),o&&(yield this.fetchPairs(n,s,a))}async fetchPairs(t,n,r){const{pairAcrossChr:i,maxInsertSize:a=2e5}=r,o={},s={};n.map(h=>{const d={};for(const p of h){const 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&&(o[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&&o[p]&&(i||w===t&&Math.abs(b-y)<a)&&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 E of await this.readBamFeatures(d,p,b,y))o[E.get("name")]&&!s[E.id()]&&w.push(E);return w}))).flat()}async _readRegion(t,n,r={}){const{bytesRead:i,buffer:a}=await this.bam.read(pe.Buffer.alloc(n),0,n,t,r);return a.subarray(0,Math.min(i,n))}async _readChunk({chunk:t,opts:n}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n),{buffer:i,cpositions:a,dpositions:o}=await dx(r,t);return{data:i,cpositions:a,dpositions:o,chunk:t}}async readBamFeatures(t,n,r,i){let a=0;const o=[];let s=0,u=+Date.now();for(;a+4<t.length;){const l=t.readInt32LE(a),f=a+4+l-1;if(r){for(;a+i.minv.dataPosition>=r[s++];);s--}if(f<t.length){const c=new V3({bytes:{byteArray:t,start:a,end:f},fileOffset:n.length>0?n[s]*256+(a-r[s])+i.minv.dataPosition+1:TO.signed(t.slice(a,f))});o.push(c),this.yieldThreadTime&&+Date.now()-u>this.yieldThreadTime&&(await gO(1),u=+Date.now())}a=f+1}return o}async hasRefSeq(t){var n,r;const i=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return i===void 0?!1:(r=this.index)===null||r===void 0?void 0:r.hasRefSeq(i)}async lineCount(t){var n;const r=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return r===void 0||!this.index?0:this.index.lineCount(r)}async indexCov(t,n,r){var i;if(!this.index)return[];await this.index.parse();const a=(i=this.chrToIndex)===null||i===void 0?void 0:i[t];return a===void 0?[]:this.index.indexCov(a,n,r)}async blocksForRange(t,n,r,i){var a;if(!this.index)return[];await this.index.parse();const o=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];return o===void 0?[]:this.index.blocksForRange(o,n,r,i)}}async function Y3(e,t){const n=await Promise.all(e.map(async r=>{const{url:i,headers:a}=r;if(i.startsWith("data:"))return pe.Buffer.from(i.split(",")[1],"base64");{const{referer:o,...s}=a,u=await fetch(i,{...t,headers:{...t==null?void 0:t.headers,...s}});if(!u.ok)throw new Error(`HTTP ${u.status} fetching ${i}: ${await u.text()}`);return pe.Buffer.from(await u.arrayBuffer())}}));return pe.Buffer.concat(await Promise.all(n.map(r=>Jr(r))))}class RO extends W3{constructor(t){super({htsget:!0}),this.baseUrl=t.baseUrl,this.trackId=t.trackId}async*streamRecordsForRange(t,n,r,i){var a;const s=`${`${this.baseUrl}/${this.trackId}`}?referenceName=${t}&start=${n}&end=${r}&format=BAM`,u=(a=this.chrToIndex)===null||a===void 0?void 0:a[t];if(u===void 0)yield[];else{const l=await fetch(s,{...i});if(!l.ok)throw new Error(`HTTP ${l.status} fetching ${s}: ${await l.text()}`);const f=await l.json(),c=await Y3(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(),a=await Y3(i.htsget.urls,t);if(a.readInt32LE(0)!==q3)throw new Error("Not a BAM file");const o=a.readInt32LE(4),s=a.toString("utf8",8,8+o),u=j3(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 MO=Object.freeze(Object.defineProperty({__proto__:null,BAI:xo,BamFile:W3,BamRecord:V3,CSI:kc,HtsgetFile:RO},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 PO extends Error{}function Ao(e){if(e&&e.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const t=new PO("aborted");throw t.code="ERR_ABORTED",t}}}function LO(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function $3(e,t){const n=[];let r=null;return e.length===0?e:(e.sort(function(i,a){const o=i.minv.blockPosition-a.minv.blockPosition;return o!==0?o:i.minv.dataPosition-a.minv.dataPosition}),e.forEach(i=>{(!t||i.maxv.compareTo(t)>0)&&(r===null?(n.push(i),r=i):LO(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}class ig{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 Eo(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new ig(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 Ic{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 X3{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 NO=21578324,K3=14;function OO(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 Bc extends X3{async lineCount(t,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[t];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}async _parse(t={}){const n=await this.filehandle.readFile(t),r=await Jr(n);if(Ao(t.signal),r.readUInt32LE(0)!==NO)throw new Error("Not a TBI file");const i=r.readInt32LE(4),a=r.readInt32LE(8),o=a&65536?"zero-based-half-open":"1-based-closed",u={0:"generic",1:"SAM",2:"VCF"}[a&15];if(!u)throw new Error(`invalid Tabix preset format flags ${a}`);const l={ref:r.readInt32LE(12),start:r.readInt32LE(16),end:r.readInt32LE(20)},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:E}=this._parseNameBytes(r.slice(36,36+y));let C=36+y,_;return{indices:new Array(i).fill(0).map(()=>{const I=r.readInt32LE(C);C+=4;const B={};let R;for(let M=0;M<I;M+=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 $e=Eo(r,C),De=Eo(r,C+8);C+=16,_=this._findFirstData(_,$e),ge[Ie]=new Ic($e,De,ie)}B[ie]=ge}}const L=r.readInt32LE(C);C+=4;const j=new Array(L);for(let M=0;M<L;M+=1)j[M]=Eo(r,C),C+=8,_=this._findFirstData(_,j[M]);return{binIndex:B,linearIndex:j,stats:R}}),metaChar:p,maxBinNumber:h,maxRefLength:d,skipLines:b,firstDataLine:_,columnNumbers:l,coordinateType:o,format:u,refIdToName:E,refNameToId:w,maxBlockSize:65536}}parsePseudoBin(t,n){return{lineCount:Q3(nc.fromBytesLE(t.slice(n+16,n+24),!0))}}_parseNameBytes(t){let n=0,r=0;const i=[],a={};for(let o=0;o<t.length;o+=1)if(!t[o]){if(r<o){let s=t.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[t],s=a.indices[o];if(!s)return[];(s.linearIndex.length?s.linearIndex[n>>K3>=s.linearIndex.length?s.linearIndex.length-1:n>>K3]:new ig(0,0))||console.warn("querying outside of possible tabix range");const l=OO(n,r),f=[];for(const[b,y]of l)for(let w=b;w<=y;w++)if(s.binIndex[w])for(const E of s.binIndex[w])f.push(new Ic(E.minv,E.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 $3(f,h)}}const zO=21582659,UO=38359875;function GO(e,t){return e*2**t}function J3(e,t){return Math.floor(e/2**t)}class ag extends X3{constructor(t){super(t),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n={}){const r=await this.parse(n);if(!r)return-1;const i=r.refNameToId[t];if(!r.indices[i])return-1;const{stats:o}=r.indices[i];return o?o.lineCount:-1}indexCov(){throw new Error("CSI indexes do not support indexcov")}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",a={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!a)throw new Error(`invalid Tabix preset format flags ${r}`);const o={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},s=t.readInt32LE(n+16),u=s?String.fromCharCode(s):null,l=t.readInt32LE(n+20),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:o,format:a,coordinateType:i}}_parseNameBytes(t){let n=0,r=0;const i=[],a={};for(let o=0;o<t.length;o+=1)if(!t[o]){if(r<o){let s=t.toString("utf8",r,o);s=this.renameRefSeq(s),i[n]=s,a[s]=n}r=o+1,n+=1}return{refNameToId:a,refIdToName:i}}async _parse(t={}){const n=await Jr(await this.filehandle.readFile(t));let r;if(n.readUInt32LE(0)===zO)r=1;else if(n.readUInt32LE(0)===UO)r=2;else throw new Error("Not a CSI file");this.minShift=n.readInt32LE(4),this.depth=n.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const i=2**(this.minShift+this.depth*3),a=n.readInt32LE(12),o=a&&a>=30?this.parseAuxData(n,16):{refIdToName:[],refNameToId:{},metaChar:null,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},s=n.readInt32LE(16+a);let u,l=16+a+4;const 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=Eo(n,l+4);u=this._findFirstData(u,y);const w=n.readInt32LE(l+12);l+=16;const E=new Array(w);for(let C=0;C<w;C+=1){const _=Eo(n,l),k=Eo(n,l+8);l+=16,E[C]=new Ic(_,k,b)}h[b]=E}}return{binIndex:h,stats:d}});return{...o,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(nc.fromBytesLE(t.slice(n+28,n+36),!0))}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const a=await this.parse(i);if(!a)return[];const o=a.refNameToId[t],s=a.indices[o];if(!s)return[];const u=this.reg2bins(n,r),l=[];for(const[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 Ic(d.minv,d.maxv,h));return $3(l,new ig(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,a=this.minShift+this.depth*3;const o=[];for(;r<=this.depth;a-=3,i+=GO(1,r*3),r+=1){const s=i+J3(t,a),u=i+J3(n,a);if(u-s+o.length>this.maxBinNumber)throw new Error(`query ${t}-${n} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);o.push([s,u])}return o}}const og=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function HO(e){return new Promise(t=>setTimeout(t,e))}class VO{constructor({path:t,filehandle:n,tbiPath:r,tbiFilehandle:i,csiPath:a,csiFilehandle:o,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 Bc({filehandle:i,renameRefSeqs:l});else if(o)this.index=new ag({filehandle:o,renameRefSeqs:l});else if(r)this.index=new Bc({filehandle:new ht(r),renameRefSeqs:l});else if(a)this.index=new ag({filehandle:new ht(a),renameRefSeqs:l});else if(t)this.index=new Bc({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 fc({cache:new cc({maxSize:Math.floor(f/65536)}),fill:(c,h)=>this.readChunk(c,{signal:h})})}async getLines(t,n,r,i){var a;let o,s={},u;if(i===void 0)throw new TypeError("line callback must be provided");if(typeof i=="function"?u=i:(s=i,u=i.lineCallback,o=i.signal),t===void 0)throw new TypeError("must provide a reference sequence name");if(!u)throw new TypeError("line callback must be provided");const l=await this.index.getMetadata(s);Ao(o);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);Ao(o);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:E}=await this.chunkCache.get(p.toString(),p,o);Ao(o);let C=0,_=0;for(;C<y.length;){const k=y.indexOf(`
500
+ `,C);if(k===-1)break;const I=y.slice(C,k),B=(a=og==null?void 0:og.decode(I))!==null&&a!==void 0?a:I.toString();if(E){for(;C+p.minv.dataPosition>=E[_++];);_--}const{startCoordinate:R,overlaps:L}=this.checkLine(l,t,f,c,B);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,L)u(B.trim(),w[_]*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(),Ao(o),await HO(1)),C=k+1}}}async getMetadata(t={}){return this.index.getMetadata(t)}async getHeaderBuffer(t={}){const{firstDataLine:n,metaChar:r,maxBlockSize:i}=await this.getMetadata(t);Ao(t.signal);const a=((n==null?void 0:n.blockPosition)||0)+i,o=await this._readRegion(0,a,t),s=await Jr(o);if(r){let u=-1;const l=`
501
+ `.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,a){const{columnNumbers:o,metaChar:s,coordinateType:u,format:l}=t;if(s&&a.startsWith(s))return{overlaps:!1};let{ref:f,start:c,end:h}=o;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 E=0;E<a.length+1;E+=1)if(a[E]===" "||E===a.length){if(p===f){if(this.renameRefSeq(a.slice(b,E))!==n)return{overlaps:!1}}else if(p===c){if(w=parseInt(a.slice(b,E),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=a.slice(b,E);else if(p===h&&(l==="VCF"?this._getVcfEnd(w,y,a.slice(b,E)):parseInt(a.slice(b,E),10))<=r)return{overlaps:!1};if(b=E+1,p+=1,p>d)break}return{startCoordinate:w,overlaps:!0}}_getVcfEnd(t,n,r){let i=t+n.length;const a=r.includes("SVTYPE=TRA");if(r[0]!=="."&&!a){let o=";";for(let s=0;s<r.length;s+=1){if(o===";"&&r.slice(s,s+4)==="END="){let u=r.indexOf(";",s);u===-1&&(u=r.length),i=parseInt(r.slice(s+4,u),10);break}o=r[s]}}else if(a)return t+1;return i}async lineCount(t,n={}){return this.index.lineCount(t,n)}async _readRegion(t,n,r={}){const i=pe.Buffer.alloc(n),{bytesRead:a,buffer:o}=await this.filehandle.read(i,0,n,t,r);return o.slice(0,a)}async readChunk(t,n={}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n);return dx(r,t)}}const jO=Object.freeze(Object.defineProperty({__proto__:null,CSI:ag,TBI:Bc,TabixIndexedFile:VO},Symbol.toStringTag,{value:"Module"}));var sg={exports:{}},_o=typeof Reflect=="object"?Reflect:null,eE=_o&&typeof _o.apply=="function"?_o.apply:function(t,n,r){return Function.prototype.apply.call(t,n,r)},Dc;_o&&typeof _o.ownKeys=="function"?Dc=_o.ownKeys:Object.getOwnPropertySymbols?Dc=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Dc=function(t){return Object.getOwnPropertyNames(t)};function qO(e){console&&console.warn&&console.warn(e)}var tE=Number.isNaN||function(t){return t!==t};function Be(){Be.init.call(this)}sg.exports=Be,sg.exports.once=QO,Be.EventEmitter=Be,Be.prototype._events=void 0,Be.prototype._eventsCount=0,Be.prototype._maxListeners=void 0;var nE=10;function Fc(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 nE},set:function(e){if(typeof e!="number"||e<0||tE(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");nE=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||tE(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 rE(e){return e._maxListeners===void 0?Be.defaultMaxListeners:e._maxListeners}Be.prototype.getMaxListeners=function(){return rE(this)},Be.prototype.emit=function(t){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=t==="error",a=this._events;if(a!==void 0)i=i&&a.error===void 0;else if(!i)return!1;if(i){var o;if(n.length>0&&(o=n[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var u=a[t];if(u===void 0)return!1;if(typeof u=="function")eE(u,this,n);else for(var l=u.length,f=lE(u,l),r=0;r<l;++r)eE(f[r],this,n);return!0};function iE(e,t,n,r){var i,a,o;if(Fc(n),a=e._events,a===void 0?(a=e._events=Object.create(null),e._eventsCount=0):(a.newListener!==void 0&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),o=a[t]),o===void 0)o=a[t]=n,++e._eventsCount;else if(typeof o=="function"?o=a[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),i=rE(e),i>0&&o.length>i&&!o.warned){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=o.length,qO(s)}return e}Be.prototype.addListener=function(t,n){return iE(this,t,n,!1)},Be.prototype.on=Be.prototype.addListener,Be.prototype.prependListener=function(t,n){return iE(this,t,n,!0)};function ZO(){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 aE(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=ZO.bind(r);return i.listener=n,r.wrapFn=i,i}Be.prototype.once=function(t,n){return Fc(n),this.on(t,aE(this,t,n)),this},Be.prototype.prependOnceListener=function(t,n){return Fc(n),this.prependListener(t,aE(this,t,n)),this},Be.prototype.removeListener=function(t,n){var r,i,a,o,s;if(Fc(n),i=this._events,i===void 0)return this;if(r=i[t],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,r.listener||n));else if(typeof r!="function"){for(a=-1,o=r.length-1;o>=0;o--)if(r[o]===n||r[o].listener===n){s=r[o].listener,a=o;break}if(a<0)return this;a===0?r.shift():WO(r,a),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 a=Object.keys(r),o;for(i=0;i<a.length;++i)o=a[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[t],typeof n=="function")this.removeListener(t,n);else if(n!==void 0)for(i=n.length-1;i>=0;i--)this.removeListener(t,n[i]);return this};function oE(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?YO(i):lE(i,i.length)}Be.prototype.listeners=function(t){return oE(this,t,!0)},Be.prototype.rawListeners=function(t){return oE(this,t,!1)},Be.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):sE.call(e,t)},Be.prototype.listenerCount=sE;function sE(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?Dc(this._events):[]};function lE(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function WO(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function YO(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function QO(e,t){return new Promise(function(n,r){function i(o){e.removeListener(t,a),r(o)}function a(){typeof e.removeListener=="function"&&e.removeListener("error",i),n([].slice.call(arguments))}uE(e,t,a,{once:!0}),t!=="error"&&$O(e,i,{once:!0})})}function $O(e,t,n){typeof e.on=="function"&&uE(e,"error",t,n)}function uE(e,t,n,r){if(typeof e.on=="function")r.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(a){r.once&&e.removeEventListener(t,i),n(a)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var lg=sg.exports,ug={exports:{}};typeof Object.create=="function"?ug.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:ug.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 So=ug.exports,fg,fE;function cE(){return fE||(fE=1,fg=lg.EventEmitter),fg}const hE=uR(yR);var cg,dE;function XO(){if(dE)return cg;dE=1;function e(p,b){var y=Object.keys(p);if(Object.getOwnPropertySymbols){var w=Object.getOwnPropertySymbols(p);b&&(w=w.filter(function(E){return Object.getOwnPropertyDescriptor(p,E).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=o(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,o(w.key),w)}}function a(p,b,y){return b&&i(p.prototype,b),y&&i(p,y),Object.defineProperty(p,"prototype",{writable:!1}),p}function o(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=hE,c=f.inspect,h=c&&c.custom||"inspect";function d(p,b,y){l.prototype.copy.call(p,b,y)}return cg=function(){function p(){r(this,p),this.head=null,this.tail=null,this.length=0}return a(p,[{key:"push",value:function(y){var w={data:y,next:null};this.length>0?this.tail.next=w:this.head=w,this.tail=w,++this.length}},{key:"unshift",value:function(y){var w={data:y,next:this.head};this.length===0&&(this.tail=w),this.head=w,++this.length}},{key:"shift",value:function(){if(this.length!==0){var y=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,y}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(y){if(this.length===0)return"";for(var w=this.head,E=""+w.data;w=w.next;)E+=y+w.data;return E}},{key:"concat",value:function(y){if(this.length===0)return l.alloc(0);for(var w=l.allocUnsafe(y>>>0),E=this.head,C=0;E;)d(E.data,w,C),C+=E.data.length,E=E.next;return w}},{key:"consume",value:function(y,w){var E;return y<this.head.data.length?(E=this.head.data.slice(0,y),this.head.data=this.head.data.slice(y)):y===this.head.data.length?E=this.shift():E=w?this._getString(y):this._getBuffer(y),E}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(y){var w=this.head,E=1,C=w.data;for(y-=C.length;w=w.next;){var _=w.data,k=y>_.length?_.length:y;if(k===_.length?C+=_:C+=_.slice(0,y),y-=k,y===0){k===_.length?(++E,w.next?this.head=w.next:this.head=this.tail=null):(this.head=w,w.data=_.slice(k));break}++E}return this.length-=E,C}},{key:"_getBuffer",value:function(y){var w=l.allocUnsafe(y),E=this.head,C=1;for(E.data.copy(w),y-=E.data.length;E=E.next;){var _=E.data,k=y>_.length?_.length:y;if(_.copy(w,w.length-y,0,k),y-=k,y===0){k===_.length?(++C,E.next?this.head=E.next:this.head=this.tail=null):(this.head=E,E.data=_.slice(k));break}++C}return this.length-=C,w}},{key:h,value:function(y,w){return c(this,t(t({},w),{},{depth:0,customInspect:!1}))}}]),p}(),cg}var hg,pE;function gE(){if(pE)return hg;pE=1;function e(o,s){var u=this,l=this._readableState&&this._readableState.destroyed,f=this._writableState&&this._writableState.destroyed;return l||f?(s?s(o):o&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(i,this,o)):process.nextTick(i,this,o)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(o||null,function(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(o,s){i(o,s),n(o)}function n(o){o._writableState&&!o._writableState.emitClose||o._readableState&&!o._readableState.emitClose||o.emit("close")}function r(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function i(o,s){o.emit("error",s)}function a(o,s){var u=o._readableState,l=o._writableState;u&&u.autoDestroy||l&&l.autoDestroy?o.destroy(s):o.emit("error",s)}return hg={destroy:e,undestroy:r,errorOrDestroy:a},hg}var dg={},mE;function Co(){if(mE)return dg;mE=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 a(s,u,l){return(l===void 0||l>s.length)&&(l=s.length),s.substring(l-u.length,l)===u}function o(s,u,l){return typeof l!="number"&&(l=0),l+u.length>s.length?!1:s.indexOf(u,l)!==-1}return n("ERR_INVALID_OPT_VALUE",function(s,u){return'The value "'+u+'" is invalid for option "'+s+'"'},TypeError),n("ERR_INVALID_ARG_TYPE",function(s,u,l){var f;typeof u=="string"&&i(u,"not ")?(f="must not be",u=u.replace(/^not /,"")):f="must be";var c;if(a(s," argument"))c="The ".concat(s," ").concat(f," ").concat(r(u,"type"));else{var h=o(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"),dg.codes=t,dg}var pg,bE;function yE(){if(bE)return pg;bE=1;var e=Co().codes.ERR_INVALID_OPT_VALUE;function t(r,i,a){return r.highWaterMark!=null?r.highWaterMark:i?r[a]:null}function n(r,i,a,o){var s=t(i,o,a);if(s!=null){if(!(isFinite(s)&&Math.floor(s)===s)||s<0){var u=o?a:"highWaterMark";throw new e(u,s)}return Math.floor(s)}return r.objectMode?16:16*1024}return pg={getHighWaterMark:n},pg}var gg,wE;function KO(){if(wE)return gg;wE=1,gg=e;function e(n,r){if(t("noDeprecation"))return n;var i=!1;function a(){if(!i){if(t("throwDeprecation"))throw new Error(r);t("traceDeprecation")?console.trace(r):console.warn(r),i=!0}return n.apply(this,arguments)}return a}function t(n){try{if(!globalThis.localStorage)return!1}catch{return!1}var r=globalThis.localStorage[n];return r==null?!1:String(r).toLowerCase()==="true"}return gg}var mg,vE;function xE(){if(vE)return mg;vE=1,mg=R;function e(N){var P=this;this.next=null,this.entry=null,this.finish=function(){Oe(P,N)}}var t;R.WritableState=I;var n={deprecate:KO()},r=cE(),i=pe.Buffer,a=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function o(N){return i.from(N)}function s(N){return i.isBuffer(N)||N instanceof a}var u=gE(),l=yE(),f=l.getHighWaterMark,c=Co().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,E=c.ERR_STREAM_WRITE_AFTER_END,C=c.ERR_UNKNOWN_ENCODING,_=u.errorOrDestroy;So(R,r);function k(){}function I(N,P,q){t=t||To(),N=N||{},typeof q!="boolean"&&(q=P instanceof t),this.objectMode=!!N.objectMode,q&&(this.objectMode=this.objectMode||!!N.writableObjectMode),this.highWaterMark=f(this,N,"writableHighWaterMark",q),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var H=N.decodeStrings===!1;this.decodeStrings=!H,this.defaultEncoding=N.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Y){$e(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=N.emitClose!==!1,this.autoDestroy=!!N.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}I.prototype.getBuffer=function(){for(var P=this.bufferedRequest,q=[];P;)q.push(P),P=P.next;return q},function(){try{Object.defineProperty(I.prototype,"buffer",{get:n.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var B;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(B=Function.prototype[Symbol.hasInstance],Object.defineProperty(R,Symbol.hasInstance,{value:function(P){return B.call(this,P)?!0:this!==R?!1:P&&P._writableState instanceof I}})):B=function(P){return P instanceof this};function R(N){t=t||To();var P=this instanceof t;if(!P&&!B.call(R,this))return new R(N);this._writableState=new I(N,this,P),this.writable=!0,N&&(typeof N.write=="function"&&(this._write=N.write),typeof N.writev=="function"&&(this._writev=N.writev),typeof N.destroy=="function"&&(this._destroy=N.destroy),typeof N.final=="function"&&(this._final=N.final)),r.call(this)}R.prototype.pipe=function(){_(this,new b)};function L(N,P){var q=new E;_(N,q),process.nextTick(P,q)}function j(N,P,q,H){var Y;return q===null?Y=new w:typeof q!="string"&&!P.objectMode&&(Y=new h("chunk",["string","Buffer"],q)),Y?(_(N,Y),process.nextTick(H,Y),!1):!0}R.prototype.write=function(N,P,q){var H=this._writableState,Y=!1,S=!H.objectMode&&s(N);return S&&!i.isBuffer(N)&&(N=o(N)),typeof P=="function"&&(q=P,P=null),S?P="buffer":P||(P=H.defaultEncoding),typeof q!="function"&&(q=k),H.ending?L(this,q):(S||j(this,H,N,q))&&(H.pendingcb++,Y=ie(this,H,S,N,P,q)),Y},R.prototype.cork=function(){this._writableState.corked++},R.prototype.uncork=function(){var N=this._writableState;N.corked&&(N.corked--,!N.writing&&!N.corked&&!N.bufferProcessing&&N.bufferedRequest&&Ze(this,N))},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 M(N,P,q){return!N.objectMode&&N.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(N,P,q,H,Y,S){if(!q){var x=M(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(N,P,!1,G,H,Y,S);return Z}function se(N,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?N._writev(Y,P.onwrite):N._write(Y,S,P.onwrite),P.sync=!1}function ge(N,P,q,H,Y){--P.pendingcb,q?(process.nextTick(Y,H),process.nextTick(pt,N,P),N._writableState.errorEmitted=!0,_(N,H)):(Y(H),N._writableState.errorEmitted=!0,_(N,H),pt(N,P))}function Ie(N){N.writing=!1,N.writecb=null,N.length-=N.writelen,N.writelen=0}function $e(N,P){var q=N._writableState,H=q.sync,Y=q.writecb;if(typeof Y!="function")throw new p;if(Ie(q),P)ge(N,q,H,P,Y);else{var S=Je(q)||N.destroyed;!S&&!q.corked&&!q.bufferProcessing&&q.bufferedRequest&&Ze(N,q),H?process.nextTick(De,N,q,S,Y):De(N,q,S,Y)}}function De(N,P,q,H){q||Ke(N,P),P.pendingcb--,H(),pt(N,P)}function Ke(N,P){P.length===0&&P.needDrain&&(P.needDrain=!1,N.emit("drain"))}function Ze(N,P){P.bufferProcessing=!0;var q=P.bufferedRequest;if(N._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(N,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(N,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(N,P,q){q(new d("_write()"))},R.prototype._writev=null,R.prototype.end=function(N,P,q){var H=this._writableState;return typeof N=="function"?(q=N,N=null,P=null):typeof P=="function"&&(q=P,P=null),N!=null&&this.write(N,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 Je(N){return N.ending&&N.length===0&&N.bufferedRequest===null&&!N.finished&&!N.writing}function Ee(N,P){N._final(function(q){P.pendingcb--,q&&_(N,q),P.prefinished=!0,N.emit("prefinish"),pt(N,P)})}function _e(N,P){!P.prefinished&&!P.finalCalled&&(typeof N._final=="function"&&!P.destroyed?(P.pendingcb++,P.finalCalled=!0,process.nextTick(Ee,N,P)):(P.prefinished=!0,N.emit("prefinish")))}function pt(N,P){var q=Je(P);if(q&&(_e(N,P),P.pendingcb===0&&(P.finished=!0,N.emit("finish"),P.autoDestroy))){var H=N._readableState;(!H||H.autoDestroy&&H.endEmitted)&&N.destroy()}return q}function qt(N,P,q){P.ending=!0,pt(N,P),q&&(P.finished?process.nextTick(q):N.once("finish",q)),P.ended=!0,N.writable=!1}function Oe(N,P,q){var H=N.entry;for(N.entry=null;H;){var Y=H.callback;P.pendingcb--,Y(q),H=H.next}P.corkedRequestsFree.next=N}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(N,P){P(N)},mg}var bg,AE;function To(){if(AE)return bg;AE=1;var e=Object.keys||function(l){var f=[];for(var c in l)f.push(c);return f};bg=o;var t=kE(),n=xE();So(o,t);for(var r=e(n.prototype),i=0;i<r.length;i++){var a=r[i];o.prototype[a]||(o.prototype[a]=n.prototype[a])}function o(l){if(!(this instanceof o))return new o(l);t.call(this,l),n.call(this,l),this.allowHalfOpen=!0,l&&(l.readable===!1&&(this.readable=!1),l.writable===!1&&(this.writable=!1),l.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",s)))}Object.defineProperty(o.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(o.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(o.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function s(){this._writableState.ended||process.nextTick(u,this)}function u(l){l.end()}return Object.defineProperty(o.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(f){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=f,this._writableState.destroyed=f)}}),bg}var yg={},wg={exports:{}};(function(e,t){var n=pe,r=n.Buffer;function i(o,s){for(var u in o)s[u]=o[u]}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?e.exports=n:(i(n,t),t.Buffer=a);function a(o,s,u){return r(o,s,u)}i(r,a),a.from=function(o,s,u){if(typeof o=="number")throw new TypeError("Argument must not be a number");return r(o,s,u)},a.alloc=function(o,s,u){if(typeof o!="number")throw new TypeError("Argument must be a number");var l=r(o);return s!==void 0?typeof u=="string"?l.fill(s,u):l.fill(s):l.fill(0),l},a.allocUnsafe=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return r(o)},a.allocUnsafeSlow=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return n.SlowBuffer(o)}})(wg,wg.exports);var JO=wg.exports,vg=JO.Buffer,EE=vg.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 ez(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 tz(e){var t=ez(e);if(typeof t!="string"&&(vg.isEncoding===EE||!EE(e)))throw new Error("Unknown encoding: "+e);return t||e}var nz=yg.StringDecoder=Ol;function Ol(e){this.encoding=tz(e);var t;switch(this.encoding){case"utf16le":this.text=lz,this.end=uz,t=4;break;case"utf8":this.fillLast=az,t=4;break;case"base64":this.text=fz,this.end=cz,t=3;break;default:this.write=hz,this.end=dz;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=vg.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=sz,Ol.prototype.text=oz,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 xg(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function rz(e,t,n){var r=t.length-1;if(r<n)return 0;var i=xg(t[r]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--r<n||i===-2?0:(i=xg(t[r]),i>=0?(i>0&&(e.lastNeed=i-2),i):--r<n||i===-2?0:(i=xg(t[r]),i>=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function iz(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 az(e){var t=this.lastTotal-this.lastNeed,n=iz(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 oz(e,t){var n=rz(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 sz(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function lz(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 uz(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 fz(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 cz(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function hz(e){return e.toString(this.encoding)}function dz(e){return e&&e.length?this.write(e):""}var Ag,_E;function Eg(){if(_E)return Ag;_E=1;var e=Co().codes.ERR_STREAM_PREMATURE_CLOSE;function t(a){var o=!1;return function(){if(!o){o=!0;for(var s=arguments.length,u=new Array(s),l=0;l<s;l++)u[l]=arguments[l];a.apply(this,u)}}}function n(){}function r(a){return a.setHeader&&typeof a.abort=="function"}function i(a,o,s){if(typeof o=="function")return i(a,null,o);o||(o={}),s=t(s||n);var u=o.readable||o.readable!==!1&&a.readable,l=o.writable||o.writable!==!1&&a.writable,f=function(){a.writable||h()},c=a._writableState&&a._writableState.finished,h=function(){l=!1,c=!0,u||s.call(a)},d=a._readableState&&a._readableState.endEmitted,p=function(){u=!1,d=!0,l||s.call(a)},b=function(C){s.call(a,C)},y=function(){var C;if(u&&!d)return(!a._readableState||!a._readableState.ended)&&(C=new e),s.call(a,C);if(l&&!c)return(!a._writableState||!a._writableState.ended)&&(C=new e),s.call(a,C)},w=function(){a.req.on("finish",h)};return r(a)?(a.on("complete",h),a.on("abort",y),a.req?w():a.on("request",w)):l&&!a._writableState&&(a.on("end",f),a.on("close",f)),a.on("end",p),a.on("finish",h),o.error!==!1&&a.on("error",b),a.on("close",y),function(){a.removeListener("complete",h),a.removeListener("abort",y),a.removeListener("request",w),a.req&&a.req.removeListener("finish",h),a.removeListener("end",f),a.removeListener("close",f),a.removeListener("finish",h),a.removeListener("end",p),a.removeListener("error",b),a.removeListener("close",y)}}return Ag=i,Ag}var _g,SE;function pz(){if(SE)return _g;SE=1;var e;function t(C,_,k){return _=n(_),_ in C?Object.defineProperty(C,_,{value:k,enumerable:!0,configurable:!0,writable:!0}):C[_]=k,C}function n(C){var _=r(C,"string");return typeof _=="symbol"?_:String(_)}function r(C,_){if(typeof C!="object"||C===null)return C;var k=C[Symbol.toPrimitive];if(k!==void 0){var I=k.call(C,_||"default");if(typeof I!="object")return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_==="string"?String:Number)(C)}var i=Eg(),a=Symbol("lastResolve"),o=Symbol("lastReject"),s=Symbol("error"),u=Symbol("ended"),l=Symbol("lastPromise"),f=Symbol("handlePromise"),c=Symbol("stream");function h(C,_){return{value:C,done:_}}function d(C){var _=C[a];if(_!==null){var k=C[c].read();k!==null&&(C[l]=null,C[a]=null,C[o]=null,_(h(k,!1)))}}function p(C){process.nextTick(d,C)}function b(C,_){return function(k,I){C.then(function(){if(_[u]){k(h(void 0,!0));return}_[f](k,I)},I)}}var y=Object.getPrototypeOf(function(){}),w=Object.setPrototypeOf((e={get stream(){return this[c]},next:function(){var _=this,k=this[s];if(k!==null)return Promise.reject(k);if(this[u])return Promise.resolve(h(void 0,!0));if(this[c].destroyed)return new Promise(function(L,j){process.nextTick(function(){_[s]?j(_[s]):L(h(void 0,!0))})});var I=this[l],B;if(I)B=new Promise(b(I,this));else{var R=this[c].read();if(R!==null)return Promise.resolve(h(R,!1));B=new Promise(this[f])}return this[l]=B,B}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var _=this;return new Promise(function(k,I){_[c].destroy(null,function(B){if(B){I(B);return}k(h(void 0,!0))})})}),e),y),E=function(_){var k,I=Object.create(w,(k={},t(k,c,{value:_,writable:!0}),t(k,a,{value:null,writable:!0}),t(k,o,{value:null,writable:!0}),t(k,s,{value:null,writable:!0}),t(k,u,{value:_._readableState.endEmitted,writable:!0}),t(k,f,{value:function(R,L){var j=I[c].read();j?(I[l]=null,I[a]=null,I[o]=null,R(h(j,!1))):(I[a]=R,I[o]=L)},writable:!0}),k));return I[l]=null,i(_,function(B){if(B&&B.code!=="ERR_STREAM_PREMATURE_CLOSE"){var R=I[o];R!==null&&(I[l]=null,I[a]=null,I[o]=null,R(B)),I[s]=B;return}var L=I[a];L!==null&&(I[l]=null,I[a]=null,I[o]=null,L(h(void 0,!0))),I[u]=!0}),_.on("readable",p.bind(null,I)),I};return _g=E,_g}var Sg,CE;function gz(){return CE||(CE=1,Sg=function(){throw new Error("Readable.from is not available in the browser")}),Sg}var Cg,TE;function kE(){if(TE)return Cg;TE=1,Cg=L;var e;L.ReadableState=R,lg.EventEmitter;var t=function(x,G){return x.listeners(G).length},n=cE(),r=pe.Buffer,i=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function a(S){return r.from(S)}function o(S){return r.isBuffer(S)||S instanceof i}var s=hE,u;s&&s.debuglog?u=s.debuglog("stream"):u=function(){};var l=XO(),f=gE(),c=yE(),h=c.getHighWaterMark,d=Co().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,E,C,_;So(L,n);var k=f.errorOrDestroy,I=["error","close","destroy","pause","resume"];function B(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||To(),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&&(E||(E=yg.StringDecoder),this.decoder=new E(S.encoding),this.encoding=S.encoding)}function L(S){if(e=e||To(),!(this instanceof L))return new L(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(L.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(x){this._readableState&&(this._readableState.destroyed=x)}}),L.prototype.destroy=f.destroy,L.prototype._undestroy=f.undestroy,L.prototype._destroy=function(S,x){x(S)},L.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)},L.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,$e(S,J);else{var ue;if(le||(ue=ie(J,x)),ue)k(S,ue);else if(J.objectMode||x&&x.length>0)if(typeof x!="string"&&!J.objectMode&&Object.getPrototypeOf(x)!==r.prototype&&(x=a(x)),Z)J.endEmitted?k(S,new w):M(S,J,x,!0);else if(J.ended)k(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?M(S,J,x,!1):Ze(S,J)):M(S,J,x,!1)}else Z||(J.reading=!1,Ze(S,J))}return!J.ended&&(J.length<J.highWaterMark||J.length===0)}function M(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!o(x)&&typeof x!="string"&&x!==void 0&&!S.objectMode&&(G=new p("chunk",["string","Buffer","Uint8Array"],x)),G}L.prototype.isPaused=function(){return this._readableState.flowing===!1},L.prototype.setEncoding=function(S){E||(E=yg.StringDecoder);var x=new E(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))}L.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 $e(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,Ke(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(Ke,S))}function Ke(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,N(S)}function Ze(S,x){x.readingMore||(x.readingMore=!0,process.nextTick(Je,S,x))}function Je(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}L.prototype._read=function(S){k(this,new y("_read()"))},L.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:Kn;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",Kn),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),Kn(),S.removeListener("error",wr),t(S,"error")===0&&k(S,v)}B(S,"error",wr);function ci(){S.removeListener("finish",Wt),Kn()}S.once("close",ci);function Wt(){u("onfinish"),S.removeListener("close",ci),Kn()}S.once("finish",Wt);function Kn(){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,N(S))}}L.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)},L.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},L.prototype.addListener=L.prototype.on,L.prototype.removeListener=function(S,x){var G=n.prototype.removeListener.call(this,S,x);return S==="readable"&&process.nextTick(_e,this),G},L.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)}L.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"),N(S),x.flowing&&!x.reading&&S.read(0)}L.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 N(S){var x=S._readableState;for(u("flow",x.flowing);x.flowing&&S.read()!==null;);}L.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<I.length;J++)S.on(I[J],this.emit.bind(this,I[J]));return this._read=function(ue){u("wrapped _read",ue),Z&&(Z=!1,S.resume())},this},typeof Symbol=="function"&&(L.prototype[Symbol.asyncIterator]=function(){return C===void 0&&(C=pz()),C(this)}),Object.defineProperty(L.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(L.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(L.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(x){this._readableState&&(this._readableState.flowing=x)}}),L._fromList=P,Object.defineProperty(L.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"&&(L.from=function(S,x){return _===void 0&&(_=gz()),_(L,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 Cg}var Tg,IE;function BE(){if(IE)return Tg;IE=1,Tg=s;var e=Co().codes,t=e.ERR_METHOD_NOT_IMPLEMENTED,n=e.ERR_MULTIPLE_CALLBACK,r=e.ERR_TRANSFORM_ALREADY_TRANSFORMING,i=e.ERR_TRANSFORM_WITH_LENGTH_0,a=To();So(s,a);function o(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);a.call(this,f),this._transformState={afterTransform:o.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,a.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){a.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 Tg}var kg,DE;function mz(){if(DE)return kg;DE=1,kg=t;var e=BE();So(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)},kg}var Ig,FE;function bz(){if(FE)return Ig;FE=1;var e;function t(h){var d=!1;return function(){d||(d=!0,h.apply(void 0,arguments))}}var n=Co().codes,r=n.ERR_MISSING_ARGS,i=n.ERR_STREAM_DESTROYED;function a(h){if(h)throw h}function o(h){return h.setHeader&&typeof h.abort=="function"}function s(h,d,p,b){b=t(b);var y=!1;h.on("close",function(){y=!0}),e===void 0&&(e=Eg()),e(h,{readable:d,writable:p},function(E){if(E)return b(E);y=!0,b()});var w=!1;return function(E){if(!y&&!w){if(w=!0,o(h))return h.abort();if(typeof h.destroy=="function")return h.destroy();b(E||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"?a: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(E,C){var _=C<d.length-1,k=C>0;return s(E,_,k,function(I){y||(y=I),I&&w.forEach(u),!_&&(w.forEach(u),b(y))})});return d.reduce(l)}return Ig=c,Ig}var RE=dn,Bg=lg.EventEmitter,yz=So;yz(dn,Bg),dn.Readable=kE(),dn.Writable=xE(),dn.Duplex=To(),dn.Transform=BE(),dn.PassThrough=mz(),dn.finished=Eg(),dn.pipeline=bz(),dn.Stream=dn;function dn(){Bg.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",o),n.on("close",s));var a=!1;function o(){a||(a=!0,e.end())}function s(){a||(a=!0,typeof e.destroy=="function"&&e.destroy())}function u(f){if(l(),Bg.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",o),n.removeListener("close",s),n.removeListener("error",u),e.removeListener("error",u),n.removeListener("end",l),n.removeListener("close",l),e.removeListener("close",l)}return n.on("end",l),n.on("close",l),e.on("close",l),e.emit("pipe",n),e};function zl(e){return e.replace(/%([0-9A-Fa-f]{2})/g,(t,n)=>String.fromCharCode(parseInt(n,16)))}function ME(e,t){return String(t).replace(e,n=>`%${n.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function Ul(e){return ME(/[\n;\r\t=%&,\x00-\x1f\x7f-\xff]/g,e)}function pr(e){return ME(/[\n\r\t%\x00-\x1f\x7f-\xff]/g,e)}function PE(e){if(!(e&&e.length)||e===".")return{};const t={};return e.replace(/\r?\n$/,"").split(";").forEach(n=>{const r=n.split("=",2);if(!(r[1]&&r[1].length))return;r[0]=r[0].trim();let i=t[r[0].trim()];i||(i=[],t[r[0]]=i),i.push(...r[1].split(",").map(a=>a.trim()).map(zl))}),t}function LE(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:PE(t[8])}}function NE(e){const t=/^\s*##\s*(\S+)\s*(.*)/.exec(e);if(!t)return null;const[,n]=t;let[,,r]=t;const i={directive:n};if(r.length&&(r=r.replace(/\r?\n$/,""),i.value=r),n==="sequence-region"){const a=r.split(/\s+/,3);return{...i,seq_id:a[0],start:a[1]&&a[1].replace(/\D/g,""),end:a[2]&&a[2].replace(/\D/g,"")}}else if(n==="genome-build"){const[a,o]=r.split(/\s+/,2);return{...i,source:a,buildName:o}}return i}function OE(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 wz(e,t){const n=e.attributes===null||e.attributes===void 0?".":OE(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(" ")}
492
502
  `;return t[i]?"":(t[i]=!0,i)}function Rc(e,t){if(Array.isArray(e))return e.map(r=>Rc(r,t)).join("");const n=[wz(e,t)];return vz(e)&&n.push(...e.child_features.map(r=>Rc(r,t)),...e.derived_features.map(r=>Rc(r,t))),n.join("")}function zE(e){return Rc(e,{})}function UE(e){let t=`##${e.directive}`;return e.value&&(t+=` ${e.value}`),t+=`
493
503
  `,t}function GE(e){return`# ${e.comment}
494
504
  `}function Dg(e){return`>${e.id}${e.description?` ${e.description}`:""}