@genome-spy/core 0.54.0 → 0.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle/index.es.js +2942 -2858
- package/dist/bundle/index.js +91 -85
- package/dist/src/data/collector.d.ts.map +1 -1
- package/dist/src/data/collector.js +4 -0
- package/dist/src/data/flowNode.d.ts +14 -5
- package/dist/src/data/flowNode.d.ts.map +1 -1
- package/dist/src/data/flowNode.js +30 -7
- package/dist/src/data/sources/dataSource.d.ts +1 -2
- package/dist/src/data/sources/dataSource.d.ts.map +1 -1
- package/dist/src/data/sources/dataSource.js +0 -1
- package/dist/src/data/sources/inlineSource.d.ts +4 -0
- package/dist/src/data/sources/inlineSource.d.ts.map +1 -1
- package/dist/src/data/sources/inlineSource.js +18 -0
- package/dist/src/data/sources/lazy/axisGenomeSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/axisGenomeSource.js +4 -0
- package/dist/src/data/sources/lazy/axisTickSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/axisTickSource.js +4 -0
- package/dist/src/data/sources/lazy/bamSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/bamSource.js +4 -0
- package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/bigBedSource.js +4 -0
- package/dist/src/data/sources/lazy/bigWigSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/bigWigSource.js +4 -0
- package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/gff3Source.js +4 -0
- package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/indexedFastaSource.js +4 -0
- package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts +2 -0
- package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/singleAxisLazySource.js +2 -0
- package/dist/src/data/sources/namedSource.d.ts.map +1 -1
- package/dist/src/data/sources/namedSource.js +4 -0
- package/dist/src/data/sources/sequenceSource.d.ts.map +1 -1
- package/dist/src/data/sources/sequenceSource.js +4 -0
- package/dist/src/data/sources/urlSource.d.ts.map +1 -1
- package/dist/src/data/sources/urlSource.js +4 -0
- package/dist/src/data/transforms/aggregate.d.ts +2 -2
- package/dist/src/data/transforms/aggregate.d.ts.map +1 -1
- package/dist/src/data/transforms/aggregate.js +4 -3
- package/dist/src/data/transforms/clone.d.ts +2 -2
- package/dist/src/data/transforms/clone.d.ts.map +1 -1
- package/dist/src/data/transforms/clone.js +4 -3
- package/dist/src/data/transforms/coverage.d.ts +2 -2
- package/dist/src/data/transforms/coverage.d.ts.map +1 -1
- package/dist/src/data/transforms/coverage.js +4 -3
- package/dist/src/data/transforms/filter.d.ts +2 -2
- package/dist/src/data/transforms/filter.d.ts.map +1 -1
- package/dist/src/data/transforms/filter.js +3 -3
- package/dist/src/data/transforms/filterScoredLabels.d.ts +2 -2
- package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
- package/dist/src/data/transforms/filterScoredLabels.js +4 -3
- package/dist/src/data/transforms/flatten.d.ts +3 -2
- package/dist/src/data/transforms/flatten.d.ts.map +1 -1
- package/dist/src/data/transforms/flatten.js +6 -3
- package/dist/src/data/transforms/flattenCompressedExons.d.ts +2 -2
- package/dist/src/data/transforms/flattenCompressedExons.d.ts.map +1 -1
- package/dist/src/data/transforms/flattenCompressedExons.js +4 -3
- package/dist/src/data/transforms/flattenDelimited.d.ts +2 -2
- package/dist/src/data/transforms/flattenDelimited.d.ts.map +1 -1
- package/dist/src/data/transforms/flattenDelimited.js +4 -3
- package/dist/src/data/transforms/flattenSequence.d.ts +3 -2
- package/dist/src/data/transforms/flattenSequence.d.ts.map +1 -1
- package/dist/src/data/transforms/flattenSequence.js +6 -3
- package/dist/src/data/transforms/formula.d.ts +2 -2
- package/dist/src/data/transforms/formula.d.ts.map +1 -1
- package/dist/src/data/transforms/formula.js +4 -3
- package/dist/src/data/transforms/identifier.d.ts +2 -2
- package/dist/src/data/transforms/identifier.d.ts.map +1 -1
- package/dist/src/data/transforms/identifier.js +4 -3
- package/dist/src/data/transforms/linearizeGenomicCoordinate.d.ts +3 -2
- package/dist/src/data/transforms/linearizeGenomicCoordinate.d.ts.map +1 -1
- package/dist/src/data/transforms/linearizeGenomicCoordinate.js +11 -4
- package/dist/src/data/transforms/measureText.d.ts +5 -4
- package/dist/src/data/transforms/measureText.d.ts.map +1 -1
- package/dist/src/data/transforms/measureText.js +11 -8
- package/dist/src/data/transforms/pileup.d.ts +2 -2
- package/dist/src/data/transforms/pileup.d.ts.map +1 -1
- package/dist/src/data/transforms/pileup.js +4 -3
- package/dist/src/data/transforms/project.d.ts +3 -2
- package/dist/src/data/transforms/project.d.ts.map +1 -1
- package/dist/src/data/transforms/project.js +6 -3
- package/dist/src/data/transforms/regexExtract.d.ts +3 -2
- package/dist/src/data/transforms/regexExtract.d.ts.map +1 -1
- package/dist/src/data/transforms/regexExtract.js +6 -3
- package/dist/src/data/transforms/regexFold.d.ts +3 -2
- package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
- package/dist/src/data/transforms/regexFold.js +6 -3
- package/dist/src/data/transforms/sample.d.ts +3 -2
- package/dist/src/data/transforms/sample.d.ts.map +1 -1
- package/dist/src/data/transforms/sample.js +5 -3
- package/dist/src/data/transforms/stack.d.ts +2 -2
- package/dist/src/data/transforms/stack.d.ts.map +1 -1
- package/dist/src/data/transforms/stack.js +4 -3
- package/dist/src/data/transforms/transform.d.ts +10 -0
- package/dist/src/data/transforms/transform.d.ts.map +1 -0
- package/dist/src/data/transforms/transform.js +22 -0
- package/dist/src/view/axisView.js +2 -2
- package/package.json +2 -2
package/dist/bundle/index.js
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
(function(de,Se){typeof exports=="object"&&typeof module<"u"?Se(exports):typeof define=="function"&&define.amd?define(["exports"],Se):(de=typeof globalThis<"u"?globalThis:de||self,Se(de.genomeSpyEmbed={}))})(this,function(de){"use strict";var
|
|
1
|
+
(function(de,Se){typeof exports=="object"&&typeof module<"u"?Se(exports):typeof define=="function"&&define.amd?define(["exports"],Se):(de=typeof globalThis<"u"?globalThis:de||self,Se(de.genomeSpyEmbed={}))})(this,function(de){"use strict";var PG=Object.defineProperty;var cS=de=>{throw TypeError(de)};var LG=(de,Se,Le)=>Se in de?PG(de,Se,{enumerable:!0,configurable:!0,writable:!0,value:Le}):de[Se]=Le;var Bt=(de,Se,Le)=>LG(de,typeof Se!="symbol"?Se+"":Se,Le),mm=(de,Se,Le)=>Se.has(de)||cS("Cannot "+Le);var z=(de,Se,Le)=>(mm(de,Se,"read from private field"),Le?Le.call(de):Se.get(de)),J=(de,Se,Le)=>Se.has(de)?cS("Cannot add the same private member more than once"):Se instanceof WeakSet?Se.add(de):Se.set(de,Le),le=(de,Se,Le,No)=>(mm(de,Se,"write to private field"),No?No.call(de,Le):Se.set(de,Le),Le),Q=(de,Se,Le)=>(mm(de,Se,"access private method"),Le);var fS=(de,Se,Le,No)=>({set _(_h){le(de,Se,_h,Le)},get _(){return z(de,Se,No)}});var Y_,To,Ou,yu,wi,ko,Ws,Zs,wu,vu,Ys,hS,dS,or,vi,bm,ym,Qs,mh,pS,Tr,Xs,nn,Au,oe,wm,vm,Mr,Am,gS,mS,xm,Em,Ah,_m,Po,Sm,bS,xu,Cm,Ks,Eu,_u,Su,Cu,sr,zu,Tm,Tu,bh,yS,kr,ku,Io,Bo,rn,km,Im,Bm,wS,Js,ea,ta,Iu,na,ra,Bu,Dm,Du,Rm,Do,Ru,Fu,ia,Mu,Pu,Ir,Ro,Ai,xi,oa,sa,on,Fo,aa,ye,Lo,vS,Uu,Fm,Mm,Pm,AS,xh,xS,la,Lu,Ei,Mo,ua,En,Eh,ES,_S,SS;function Se(e,t){for(var n=0;n<t.length;n++){const r=t[n];if(typeof r!="string"&&!Array.isArray(r)){for(const i in r)if(i!=="default"&&!(i in e)){const o=Object.getOwnPropertyDescriptor(r,i);o&&Object.defineProperty(e,i,o.get?o:{enumerable:!0,get:()=>r[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function Le(e,t,n){return e.fields=t||[],e.fname=n,e}function No(e){return e==null?null:e.fname}function _h(e){return e==null?null:e.fields}function CS(e){return e.length===1?TS(e[0]):kS(e)}const TS=e=>function(t){return t[e]},kS=e=>{const t=e.length;return function(n){for(let r=0;r<t;++r)n=n[e[r]];return n}};function ot(e){throw Error(e)}function IS(e){const t=[],n=e.length;let r=null,i=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===r)l(),r=null,i=-1;else{if(r)continue;s===i&&u==='"'||s===i&&u==="'"?(s=a+1,r=u):u==="."&&!i?a>s?l():s=a+1:u==="["?(a>s&&l(),i=s=a+1):u==="]"&&(i||ot("Access path missing open bracket: "+e),i>0&&l(),i=0,s=a+1)}return i&&ot("Access path missing closing bracket: "+e),r&&ot("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function Gu(e,t,n){const r=IS(e);return e=r.length===1?r[0]:e,Le((n&&n.get||CS)(r),[e],t||e)}Gu("id");const Hu=Le(e=>e,[],"identity");Le(()=>0,[],"zero"),Le(()=>1,[],"one"),Le(()=>!0,[],"true"),Le(()=>!1,[],"false");var xt=Array.isArray;function Et(e){return e===Object(e)}function Sn(e){return e[e.length-1]}function ca(e){return e==null||e===""?null:+e}const Lm=e=>t=>e*Math.exp(t),Nm=e=>t=>Math.log(e*t),BS=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),DS=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,Vu=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function Sh(e,t,n,r){const i=n(e[0]),o=n(Sn(e)),s=(o-i)*t;return[r(i-s),r(o-s)]}function RS(e,t){return Sh(e,t,ca,Hu)}function FS(e,t){var n=Math.sign(e[0]);return Sh(e,t,Nm(n),Lm(n))}function MS(e,t,n){return Sh(e,t,Vu(n),Vu(1/n))}function ju(e,t,n,r,i){const o=r(e[0]),s=r(Sn(e)),a=t!=null?r(t):(o+s)/2;return[i(a+(o-a)*n),i(a+(s-a)*n)]}function Om(e,t,n){return ju(e,t,n,ca,Hu)}function zm(e,t,n){const r=Math.sign(e[0]);return ju(e,t,n,Nm(r),Lm(r))}function Ch(e,t,n,r){return ju(e,t,n,Vu(r),Vu(1/r))}function PS(e,t,n,r){return ju(e,t,n,BS(r),DS(r))}function Th(e){return e!=null?xt(e)?e:[e]:[]}function LS(e,t,n){let r=e[0],i=e[1],o;return i<r&&(o=i,i=r,r=o),o=i-r,o>=n-t?[t,n]:[r=Math.min(Math.max(r,t),n-o),r+o]}function sn(e){return typeof e=="function"}const NS="descending";function Um(e,t,n){n=n||{},t=Th(t)||[];const r=[],i=[],o={},s=n.comparator||OS;return Th(e).forEach((a,u)=>{a!=null&&(r.push(t[u]===NS?-1:1),i.push(a=sn(a)?a:Gu(a,null,n)),(_h(a)||[]).forEach(l=>o[l]=1))}),i.length===0?null:Le(s(i,r),Object.keys(o))}const Gm=(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),OS=(e,t)=>e.length===1?zS(e[0],t[0]):US(e,t,e.length),zS=(e,t)=>function(n,r){return Gm(e(n),e(r))*t},US=(e,t,n)=>(t.push(0),function(r,i){let o,s=0,a=-1;for(;s===0&&++a<n;)o=e[a],s=Gm(o(r),o(i));return s*t[a]});function GS(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 HS=Object.prototype.hasOwnProperty;function Oo(e,t){return HS.call(e,t)}function fa(e){return typeof e=="boolean"}function VS(e){return Object.prototype.toString.call(e)==="[object Date]"}function jS(e){return e&&sn(e[Symbol.iterator])}function Dt(e){return typeof e=="number"}function $S(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function De(e){return typeof e=="string"}function Hm(e,t){const n=e[0],r=Sn(e),i=+t;return i?i===1?r:n+i*(r-n):n}function $u(e){return e&&Sn(e)-e[0]||0}function kh(e){return xt(e)?"["+e.map(kh)+"]":Et(e)||De(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function qS(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const WS=e=>Dt(e)||VS(e)?e:Date.parse(e);function ZS(e,t){return t=t||WS,e==null||e===""?null:t(e)}function YS(e){return e==null||e===""?null:e+""}function qu(e){const t={},n=e.length;for(let r=0;r<n;++r)t[e[r]]=!0;return t}/**
|
|
2
2
|
* @license
|
|
3
3
|
* Copyright 2019 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
5
|
-
*/const
|
|
5
|
+
*/const Wu=globalThis,Ih=Wu.ShadowRoot&&(Wu.ShadyCSS===void 0||Wu.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,Vm=Symbol(),jm=new WeakMap;let QS=class{constructor(t,n,r){if(this._$cssResult$=!0,r!==Vm)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=n}get styleSheet(){let t=this.o;const n=this.t;if(Ih&&t===void 0){const r=n!==void 0&&n.length===1;r&&(t=jm.get(n)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),r&&jm.set(n,t))}return t}toString(){return this.cssText}};const XS=e=>new QS(typeof e=="string"?e:e+"",void 0,Vm),KS=(e,t)=>{if(Ih)e.adoptedStyleSheets=t.map(n=>n instanceof CSSStyleSheet?n:n.styleSheet);else for(const n of t){const r=document.createElement("style"),i=Wu.litNonce;i!==void 0&&r.setAttribute("nonce",i),r.textContent=n.cssText,e.appendChild(r)}},$m=Ih?e=>e:e=>e instanceof CSSStyleSheet?(t=>{let n="";for(const r of t.cssRules)n+=r.cssText;return XS(n)})(e):e;/**
|
|
6
6
|
* @license
|
|
7
7
|
* Copyright 2017 Google LLC
|
|
8
8
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
9
|
-
*/const{is:
|
|
9
|
+
*/const{is:JS,defineProperty:e4,getOwnPropertyDescriptor:t4,getOwnPropertyNames:n4,getOwnPropertySymbols:r4,getPrototypeOf:i4}=Object,Pr=globalThis,qm=Pr.trustedTypes,o4=qm?qm.emptyScript:"",Bh=Pr.reactiveElementPolyfillSupport,ha=(e,t)=>e,Dh={toAttribute(e,t){switch(t){case Boolean:e=e?o4:null;break;case Object:case Array:e=e==null?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=e!==null;break;case Number:n=e===null?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch{n=null}}return n}},Wm=(e,t)=>!JS(e,t),Zm={attribute:!0,type:String,converter:Dh,reflect:!1,hasChanged:Wm};Symbol.metadata??(Symbol.metadata=Symbol("metadata")),Pr.litPropertyMetadata??(Pr.litPropertyMetadata=new WeakMap);class zo extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??(this.l=[])).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,n=Zm){if(n.state&&(n.attribute=!1),this._$Ei(),this.elementProperties.set(t,n),!n.noAccessor){const r=Symbol(),i=this.getPropertyDescriptor(t,r,n);i!==void 0&&e4(this.prototype,t,i)}}static getPropertyDescriptor(t,n,r){const{get:i,set:o}=t4(this.prototype,t)??{get(){return this[n]},set(s){this[n]=s}};return{get(){return i==null?void 0:i.call(this)},set(s){const a=i==null?void 0:i.call(this);o.call(this,s),this.requestUpdate(t,a,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??Zm}static _$Ei(){if(this.hasOwnProperty(ha("elementProperties")))return;const t=i4(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(ha("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(ha("properties"))){const n=this.properties,r=[...n4(n),...r4(n)];for(const i of r)this.createProperty(i,n[i])}const t=this[Symbol.metadata];if(t!==null){const n=litPropertyMetadata.get(t);if(n!==void 0)for(const[r,i]of n)this.elementProperties.set(r,i)}this._$Eh=new Map;for(const[n,r]of this.elementProperties){const i=this._$Eu(n,r);i!==void 0&&this._$Eh.set(i,n)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const n=[];if(Array.isArray(t)){const r=new Set(t.flat(1/0).reverse());for(const i of r)n.unshift($m(i))}else t!==void 0&&n.push($m(t));return n}static _$Eu(t,n){const r=n.attribute;return r===!1?void 0:typeof r=="string"?r:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){var t;this._$ES=new Promise(n=>this.enableUpdating=n),this._$AL=new Map,this._$E_(),this.requestUpdate(),(t=this.constructor.l)==null||t.forEach(n=>n(this))}addController(t){var n;(this._$EO??(this._$EO=new Set)).add(t),this.renderRoot!==void 0&&this.isConnected&&((n=t.hostConnected)==null||n.call(t))}removeController(t){var n;(n=this._$EO)==null||n.delete(t)}_$E_(){const t=new Map,n=this.constructor.elementProperties;for(const r of n.keys())this.hasOwnProperty(r)&&(t.set(r,this[r]),delete this[r]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return KS(t,this.constructor.elementStyles),t}connectedCallback(){var t;this.renderRoot??(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(t=this._$EO)==null||t.forEach(n=>{var r;return(r=n.hostConnected)==null?void 0:r.call(n)})}enableUpdating(t){}disconnectedCallback(){var t;(t=this._$EO)==null||t.forEach(n=>{var r;return(r=n.hostDisconnected)==null?void 0:r.call(n)})}attributeChangedCallback(t,n,r){this._$AK(t,r)}_$EC(t,n){var o;const r=this.constructor.elementProperties.get(t),i=this.constructor._$Eu(t,r);if(i!==void 0&&r.reflect===!0){const s=(((o=r.converter)==null?void 0:o.toAttribute)!==void 0?r.converter:Dh).toAttribute(n,r.type);this._$Em=t,s==null?this.removeAttribute(i):this.setAttribute(i,s),this._$Em=null}}_$AK(t,n){var o;const r=this.constructor,i=r._$Eh.get(t);if(i!==void 0&&this._$Em!==i){const s=r.getPropertyOptions(i),a=typeof s.converter=="function"?{fromAttribute:s.converter}:((o=s.converter)==null?void 0:o.fromAttribute)!==void 0?s.converter:Dh;this._$Em=i,this[i]=a.fromAttribute(n,s.type),this._$Em=null}}requestUpdate(t,n,r){if(t!==void 0){if(r??(r=this.constructor.getPropertyOptions(t)),!(r.hasChanged??Wm)(this[t],n))return;this.P(t,n,r)}this.isUpdatePending===!1&&(this._$ES=this._$ET())}P(t,n,r){this._$AL.has(t)||this._$AL.set(t,n),r.reflect===!0&&this._$Em!==t&&(this._$Ej??(this._$Ej=new Set)).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(n){Promise.reject(n)}const t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var r;if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??(this.renderRoot=this.createRenderRoot()),this._$Ep){for(const[o,s]of this._$Ep)this[o]=s;this._$Ep=void 0}const i=this.constructor.elementProperties;if(i.size>0)for(const[o,s]of i)s.wrapped!==!0||this._$AL.has(o)||this[o]===void 0||this.P(o,this[o],s)}let t=!1;const n=this._$AL;try{t=this.shouldUpdate(n),t?(this.willUpdate(n),(r=this._$EO)==null||r.forEach(i=>{var o;return(o=i.hostUpdate)==null?void 0:o.call(i)}),this.update(n)):this._$EU()}catch(i){throw t=!1,this._$EU(),i}t&&this._$AE(n)}willUpdate(t){}_$AE(t){var n;(n=this._$EO)==null||n.forEach(r=>{var i;return(i=r.hostUpdated)==null?void 0:i.call(r)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&(this._$Ej=this._$Ej.forEach(n=>this._$EC(n,this[n]))),this._$EU()}updated(t){}firstUpdated(t){}}zo.elementStyles=[],zo.shadowRootOptions={mode:"open"},zo[ha("elementProperties")]=new Map,zo[ha("finalized")]=new Map,Bh==null||Bh({ReactiveElement:zo}),(Pr.reactiveElementVersions??(Pr.reactiveElementVersions=[])).push("2.0.4");/**
|
|
10
10
|
* @license
|
|
11
11
|
* Copyright 2017 Google LLC
|
|
12
12
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
13
|
-
*/const da=globalThis,
|
|
14
|
-
\f\r]`,ma=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,
|
|
15
|
-
\f\r"'\`<>=]|("|')|))|$)`,"g"),
|
|
13
|
+
*/const da=globalThis,Zu=da.trustedTypes,Ym=Zu?Zu.createPolicy("lit-html",{createHTML:e=>e}):void 0,Qm="$lit$",Lr=`lit$${Math.random().toFixed(9).slice(2)}$`,Xm="?"+Lr,s4=`<${Xm}>`,Di=document,pa=()=>Di.createComment(""),ga=e=>e===null||typeof e!="object"&&typeof e!="function",Km=Array.isArray,a4=e=>Km(e)||typeof(e==null?void 0:e[Symbol.iterator])=="function",Rh=`[
|
|
14
|
+
\f\r]`,ma=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Jm=/-->/g,e1=/>/g,Ri=RegExp(`>|${Rh}(?:([^\\s"'>=/]+)(${Rh}*=${Rh}*(?:[^
|
|
15
|
+
\f\r"'\`<>=]|("|')|))|$)`,"g"),t1=/'/g,n1=/"/g,r1=/^(?:script|style|textarea|title)$/i,l4=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),et=l4(1),Fi=Symbol.for("lit-noChange"),rt=Symbol.for("lit-nothing"),i1=new WeakMap,Mi=Di.createTreeWalker(Di,129);function o1(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return Ym!==void 0?Ym.createHTML(t):t}const u4=(e,t)=>{const n=e.length-1,r=[];let i,o=t===2?"<svg>":"",s=ma;for(let a=0;a<n;a++){const u=e[a];let l,c,f=-1,h=0;for(;h<u.length&&(s.lastIndex=h,c=s.exec(u),c!==null);)h=s.lastIndex,s===ma?c[1]==="!--"?s=Jm:c[1]!==void 0?s=e1:c[2]!==void 0?(r1.test(c[2])&&(i=RegExp("</"+c[2],"g")),s=Ri):c[3]!==void 0&&(s=Ri):s===Ri?c[0]===">"?(s=i??ma,f=-1):c[1]===void 0?f=-2:(f=s.lastIndex-c[2].length,l=c[1],s=c[3]===void 0?Ri:c[3]==='"'?n1:t1):s===n1||s===t1?s=Ri:s===Jm||s===e1?s=ma:(s=Ri,i=void 0);const d=s===Ri&&e[a+1].startsWith("/>")?" ":"";o+=s===ma?u+s4:f>=0?(r.push(l),u.slice(0,f)+Qm+u.slice(f)+Lr+d):u+Lr+(f===-2?a:d)}return[o1(e,o+(e[n]||"<?>")+(t===2?"</svg>":"")),r]};class ba{constructor({strings:t,_$litType$:n},r){let i;this.parts=[];let o=0,s=0;const a=t.length-1,u=this.parts,[l,c]=u4(t,n);if(this.el=ba.createElement(l,r),Mi.currentNode=this.el.content,n===2){const f=this.el.content.firstChild;f.replaceWith(...f.childNodes)}for(;(i=Mi.nextNode())!==null&&u.length<a;){if(i.nodeType===1){if(i.hasAttributes())for(const f of i.getAttributeNames())if(f.endsWith(Qm)){const h=c[s++],d=i.getAttribute(f).split(Lr),p=/([.?@])?(.*)/.exec(h);u.push({type:1,index:o,name:p[2],strings:d,ctor:p[1]==="."?f4:p[1]==="?"?h4:p[1]==="@"?d4:Yu}),i.removeAttribute(f)}else f.startsWith(Lr)&&(u.push({type:6,index:o}),i.removeAttribute(f));if(r1.test(i.tagName)){const f=i.textContent.split(Lr),h=f.length-1;if(h>0){i.textContent=Zu?Zu.emptyScript:"";for(let d=0;d<h;d++)i.append(f[d],pa()),Mi.nextNode(),u.push({type:2,index:++o});i.append(f[h],pa())}}}else if(i.nodeType===8)if(i.data===Xm)u.push({type:2,index:o});else{let f=-1;for(;(f=i.data.indexOf(Lr,f+1))!==-1;)u.push({type:7,index:o}),f+=Lr.length-1}o++}}static createElement(t,n){const r=Di.createElement("template");return r.innerHTML=t,r}}function Uo(e,t,n=e,r){var s,a;if(t===Fi)return t;let i=r!==void 0?(s=n._$Co)==null?void 0:s[r]:n._$Cl;const o=ga(t)?void 0:t._$litDirective$;return(i==null?void 0:i.constructor)!==o&&((a=i==null?void 0:i._$AO)==null||a.call(i,!1),o===void 0?i=void 0:(i=new o(e),i._$AT(e,n,r)),r!==void 0?(n._$Co??(n._$Co=[]))[r]=i:n._$Cl=i),i!==void 0&&(t=Uo(e,i._$AS(e,t.values),i,r)),t}class c4{constructor(t,n){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:n},parts:r}=this._$AD,i=((t==null?void 0:t.creationScope)??Di).importNode(n,!0);Mi.currentNode=i;let o=Mi.nextNode(),s=0,a=0,u=r[0];for(;u!==void 0;){if(s===u.index){let l;u.type===2?l=new ya(o,o.nextSibling,this,t):u.type===1?l=new u.ctor(o,u.name,u.strings,this,t):u.type===6&&(l=new p4(o,this,t)),this._$AV.push(l),u=r[++a]}s!==(u==null?void 0:u.index)&&(o=Mi.nextNode(),s++)}return Mi.currentNode=Di,i}p(t){let n=0;for(const r of this._$AV)r!==void 0&&(r.strings!==void 0?(r._$AI(t,r,n),n+=r.strings.length-2):r._$AI(t[n])),n++}}class ya{get _$AU(){var t;return((t=this._$AM)==null?void 0:t._$AU)??this._$Cv}constructor(t,n,r,i){this.type=2,this._$AH=rt,this._$AN=void 0,this._$AA=t,this._$AB=n,this._$AM=r,this.options=i,this._$Cv=(i==null?void 0:i.isConnected)??!0}get parentNode(){let t=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&(t==null?void 0:t.nodeType)===11&&(t=n.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,n=this){t=Uo(this,t,n),ga(t)?t===rt||t==null||t===""?(this._$AH!==rt&&this._$AR(),this._$AH=rt):t!==this._$AH&&t!==Fi&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):a4(t)?this.k(t):this._(t)}S(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.S(t))}_(t){this._$AH!==rt&&ga(this._$AH)?this._$AA.nextSibling.data=t:this.T(Di.createTextNode(t)),this._$AH=t}$(t){var o;const{values:n,_$litType$:r}=t,i=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=ba.createElement(o1(r.h,r.h[0]),this.options)),r);if(((o=this._$AH)==null?void 0:o._$AD)===i)this._$AH.p(n);else{const s=new c4(i,this),a=s.u(this.options);s.p(n),this.T(a),this._$AH=s}}_$AC(t){let n=i1.get(t.strings);return n===void 0&&i1.set(t.strings,n=new ba(t)),n}k(t){Km(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let r,i=0;for(const o of t)i===n.length?n.push(r=new ya(this.S(pa()),this.S(pa()),this,this.options)):r=n[i],r._$AI(o),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(t=this._$AA.nextSibling,n){var r;for((r=this._$AP)==null?void 0:r.call(this,!1,!0,n);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var n;this._$AM===void 0&&(this._$Cv=t,(n=this._$AP)==null||n.call(this,t))}}let Yu=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,n,r,i,o){this.type=1,this._$AH=rt,this._$AN=void 0,this.element=t,this.name=n,this._$AM=i,this.options=o,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=rt}_$AI(t,n=this,r,i){const o=this.strings;let s=!1;if(o===void 0)t=Uo(this,t,n,0),s=!ga(t)||t!==this._$AH&&t!==Fi,s&&(this._$AH=t);else{const a=t;let u,l;for(t=o[0],u=0;u<o.length-1;u++)l=Uo(this,a[r+u],n,u),l===Fi&&(l=this._$AH[u]),s||(s=!ga(l)||l!==this._$AH[u]),l===rt?t=rt:t!==rt&&(t+=(l??"")+o[u+1]),this._$AH[u]=l}s&&!i&&this.j(t)}j(t){t===rt?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}};class f4 extends Yu{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===rt?void 0:t}}class h4 extends Yu{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==rt)}}class d4 extends Yu{constructor(t,n,r,i,o){super(t,n,r,i,o),this.type=5}_$AI(t,n=this){if((t=Uo(this,t,n,0)??rt)===Fi)return;const r=this._$AH,i=t===rt&&r!==rt||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,o=t!==rt&&(r===rt||i);i&&this.element.removeEventListener(this.name,this,r),o&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var n;typeof this._$AH=="function"?this._$AH.call(((n=this.options)==null?void 0:n.host)??this.element,t):this._$AH.handleEvent(t)}}class p4{constructor(t,n,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=n,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){Uo(this,t)}}const Fh=da.litHtmlPolyfillSupport;Fh==null||Fh(ba,ya),(da.litHtmlVersions??(da.litHtmlVersions=[])).push("3.1.3");const wa=(e,t,n)=>{const r=(n==null?void 0:n.renderBefore)??t;let i=r._$litPart$;if(i===void 0){const o=(n==null?void 0:n.renderBefore)??null;r._$litPart$=i=new ya(t.insertBefore(pa(),o),o,void 0,n??{})}return i._$AI(e),i};/**
|
|
16
16
|
* @license
|
|
17
17
|
* Copyright 2017 Google LLC
|
|
18
18
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
19
|
-
*/class
|
|
20
|
-
\r]`),n=e.charCodeAt(0);function r(f,h){var d,p,m=i(f,function(y,w){if(d)return d(y,w-1);p=y,d=h?
|
|
21
|
-
`)}function a(f,h){return h==null&&(h=
|
|
19
|
+
*/class Qu extends zo{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var n;const t=super.createRenderRoot();return(n=this.renderOptions).renderBefore??(n.renderBefore=t.firstChild),t}update(t){const n=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=wa(n,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),(t=this._$Do)==null||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this._$Do)==null||t.setConnected(!1)}render(){return Fi}}Qu._$litElement$=!0,Qu.finalized=!0,(Y_=globalThis.litElementHydrateSupport)==null||Y_.call(globalThis,{LitElement:Qu});const Mh=globalThis.litElementPolyfillSupport;Mh==null||Mh({LitElement:Qu}),(globalThis.litElementVersions??(globalThis.litElementVersions=[])).push("4.0.5");var s1={},Ph={},Lh=34,va=10,Nh=13;function a1(e){return new Function("d","return {"+e.map(function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'}).join(",")+"}")}function g4(e,t){var n=a1(e);return function(r,i){return t(n(r),i,e)}}function l1(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 Ot(e,t){var n=e+"",r=n.length;return r<t?new Array(t-r+1).join(0)+n:n}function m4(e){return e<0?"-"+Ot(-e,6):e>9999?"+"+Ot(e,6):Ot(e,4)}function b4(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),r=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":m4(e.getUTCFullYear())+"-"+Ot(e.getUTCMonth()+1,2)+"-"+Ot(e.getUTCDate(),2)+(i?"T"+Ot(t,2)+":"+Ot(n,2)+":"+Ot(r,2)+"."+Ot(i,3)+"Z":r?"T"+Ot(t,2)+":"+Ot(n,2)+":"+Ot(r,2)+"Z":n||t?"T"+Ot(t,2)+":"+Ot(n,2)+"Z":"")}function u1(e){var t=new RegExp('["'+e+`
|
|
20
|
+
\r]`),n=e.charCodeAt(0);function r(f,h){var d,p,m=i(f,function(y,w){if(d)return d(y,w-1);p=y,d=h?g4(y,h):a1(y)});return m.columns=p||[],m}function i(f,h){var d=[],p=f.length,m=0,y=0,w,x=p<=0,S=!1;f.charCodeAt(p-1)===va&&--p,f.charCodeAt(p-1)===Nh&&--p;function _(){if(x)return Ph;if(S)return S=!1,s1;var B,I=m,D;if(f.charCodeAt(I)===Lh){for(;m++<p&&f.charCodeAt(m)!==Lh||f.charCodeAt(++m)===Lh;);return(B=m)>=p?x=!0:(D=f.charCodeAt(m++))===va?S=!0:D===Nh&&(S=!0,f.charCodeAt(m)===va&&++m),f.slice(I+1,B-1).replace(/""/g,'"')}for(;m<p;){if((D=f.charCodeAt(B=m++))===va)S=!0;else if(D===Nh)S=!0,f.charCodeAt(m)===va&&++m;else if(D!==n)continue;return f.slice(I,B)}return x=!0,f.slice(I,p)}for(;(w=_())!==Ph;){for(var T=[];w!==s1&&w!==Ph;)T.push(w),w=_();h&&(T=h(T,y++))==null||d.push(T)}return d}function o(f,h){return f.map(function(d){return h.map(function(p){return c(d[p])}).join(e)})}function s(f,h){return h==null&&(h=l1(f)),[h.map(c).join(e)].concat(o(f,h)).join(`
|
|
21
|
+
`)}function a(f,h){return h==null&&(h=l1(f)),o(f,h).join(`
|
|
22
22
|
`)}function u(f){return f.map(l).join(`
|
|
23
|
-
`)}function l(f){return f.map(c).join(e)}function c(f){return f==null?"":f instanceof Date?g4(f):t.test(f+="")?'"'+f.replace(/"/g,'""')+'"':f}return{parse:r,parseRows:i,format:s,formatBody:a,formatRows:u,formatRow:l,formatValue:c}}var m4=a1(" "),b4=m4.parseRows;function y4(e){return e}function w4(e){if(e==null)return y4;var t,n,r=e.scale[0],i=e.scale[1],o=e.translate[0],s=e.translate[1];return function(a,u){u||(t=n=0);var l=2,c=a.length,f=new Array(c);for(f[0]=(t+=a[0])*r+o,f[1]=(n+=a[1])*i+s;l<c;)f[l]=a[l],++l;return f}}function v4(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}function A4(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return l1(e,n)})}:l1(e,t)}function l1(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,o=u1(e,t);return n==null&&r==null?{type:"Feature",properties:i,geometry:o}:r==null?{type:"Feature",id:n,properties:i,geometry:o}:{type:"Feature",id:n,bbox:r,properties:i,geometry:o}}function u1(e,t){var n=w4(e.transform),r=e.arcs;function i(c,f){f.length&&f.pop();for(var h=r[c<0?~c:c],d=0,p=h.length;d<p;++d)f.push(n(h[d],d));c<0&&v4(f,p)}function o(c){return n(c)}function s(c){for(var f=[],h=0,d=c.length;h<d;++h)i(c[h],f);return f.length<2&&f.push(f[0]),f}function a(c){for(var f=s(c);f.length<4;)f.push(f[0]);return f}function u(c){return c.map(a)}function l(c){var f=c.type,h;switch(f){case"GeometryCollection":return{type:f,geometries:c.geometries.map(l)};case"Point":h=o(c.coordinates);break;case"MultiPoint":h=c.coordinates.map(o);break;case"LineString":h=s(c.arcs);break;case"MultiLineString":h=c.arcs.map(s);break;case"Polygon":h=u(c.arcs);break;case"MultiPolygon":h=c.arcs.map(u);break;default:return null}return{type:f,coordinates:h}}return l(t)}function x4(e,t){var n={},r={},i={},o=[],s=-1;t.forEach(function(l,c){var f=e.arcs[l<0?~l:l],h;f.length<3&&!f[1][0]&&!f[1][1]&&(h=t[++s],t[s]=l,t[c]=h)}),t.forEach(function(l){var c=a(l),f=c[0],h=c[1],d,p;if(d=i[f])if(delete i[d.end],d.push(l),d.end=h,p=r[h]){delete r[p.start];var m=p===d?d:d.concat(p);r[m.start=d.start]=i[m.end=p.end]=m}else r[d.start]=i[d.end]=d;else if(d=r[h])if(delete r[d.start],d.unshift(l),d.start=f,p=i[f]){delete i[p.end];var y=p===d?d:p.concat(d);r[y.start=p.start]=i[y.end=d.end]=y}else r[d.start]=i[d.end]=d;else d=[l],r[d.start=f]=i[d.end=h]=d});function a(l){var c=e.arcs[l<0?~l:l],f=c[0],h;return e.transform?(h=[0,0],c.forEach(function(d){h[0]+=d[0],h[1]+=d[1]})):h=c[c.length-1],l<0?[h,f]:[f,h]}function u(l,c){for(var f in l){var h=l[f];delete c[h.start],delete h.start,delete h.end,h.forEach(function(d){n[d<0?~d:d]=1}),o.push(h)}}return u(i,r),u(r,i),t.forEach(function(l){n[l<0?~l:l]||o.push([l])}),o}function E4(e){return u1(e,_4.apply(this,arguments))}function _4(e,t,n){var r,i,o;if(arguments.length>1)r=S4(e,t,n);else for(i=0,r=new Array(o=e.arcs.length);i<o;++i)r[i]=i;return{type:"MultiLineString",arcs:x4(e,r)}}function S4(e,t,n){var r=[],i=[],o;function s(f){var h=f<0?~f:f;(i[h]||(i[h]=[])).push({i:f,g:o})}function a(f){f.forEach(s)}function u(f){f.forEach(a)}function l(f){f.forEach(u)}function c(f){switch(o=f,f.type){case"GeometryCollection":f.geometries.forEach(c);break;case"LineString":a(f.arcs);break;case"MultiLineString":case"Polygon":u(f.arcs);break;case"MultiPolygon":l(f.arcs);break}}return c(t),i.forEach(n==null?function(f){r.push(f[0].i)}:function(f){n(f[0].g,f[f.length-1].g)&&r.push(f[0].i)}),r}function Pi(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function C4(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Go(e){let t,n,r;e.length!==2?(t=Pi,n=(a,u)=>Pi(e(a),u),r=(a,u)=>e(a)-u):(t=e===Pi||e===C4?e:T4,n=e,r=e);function i(a,u,l=0,c=a.length){if(l<c){if(t(u,u)!==0)return c;do{const f=l+c>>>1;n(a[f],u)<0?l=f+1:c=f}while(l<c)}return l}function o(a,u,l=0,c=a.length){if(l<c){if(t(u,u)!==0)return c;do{const f=l+c>>>1;n(a[f],u)<=0?l=f+1:c=f}while(l<c)}return l}function s(a,u,l=0,c=a.length){const f=i(a,u,l,c-1);return f>l&&r(a[f-1],u)>-r(a[f],u)?f-1:f}return{left:i,center:s,right:o}}function T4(){return 0}function c1(e){return e===null?NaN:+e}function*k4(e,t){if(t===void 0)for(let n of e)n!=null&&(n=+n)>=n&&(yield n);else{let n=-1;for(let r of e)(r=t(r,++n,e))!=null&&(r=+r)>=r&&(yield r)}}const f1=Go(Pi),Nr=f1.right;f1.left,Go(c1).center;function I4(e,t){let n=0;if(t===void 0)for(let r of e)r!=null&&(r=+r)>=r&&++n;else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(i=+i)>=i&&++n}return n}function B4(e,t){let n=0,r,i=0,o=0;if(t===void 0)for(let s of e)s!=null&&(s=+s)>=s&&(r=s-i,i+=r/++n,o+=r*(s-i));else{let s=-1;for(let a of e)(a=t(a,++s,e))!=null&&(a=+a)>=a&&(r=a-i,i+=r/++n,o+=r*(a-i))}if(n>1)return o/(n-1)}function D4(e,t){let n,r;for(const i of e)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));return[n,r]}class ur extends Map{constructor(t,n=M4){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(h1(this,t))}has(t){return super.has(h1(this,t))}set(t,n){return super.set(R4(this,t),n)}delete(t){return super.delete(F4(this,t))}}function h1({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function R4({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function F4({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function M4(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Nh(e){return e}function Qu(e,...t){return d1(e,Nh,Nh,t)}function P4(e,...t){return d1(e,Array.from,Nh,t)}function d1(e,t,n,r){return function i(o,s){if(s>=r.length)return n(o);const a=new ur,u=r[s++];let l=-1;for(const c of o){const f=u(c,++l,o),h=a.get(f);h?h.push(c):a.set(f,[c])}for(const[c,f]of a)a.set(c,i(f,s));return t(a)}(e,0)}function L4(e=Pi){if(e===Pi)return p1;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function p1(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:e>t?1:0)}const N4=Math.sqrt(50),O4=Math.sqrt(10),z4=Math.sqrt(2);function Xu(e,t,n){const r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),o=r/Math.pow(10,i),s=o>=N4?10:o>=O4?5:o>=z4?2:1;let a,u,l;return i<0?(l=Math.pow(10,-i)/s,a=Math.round(e*l),u=Math.round(t*l),a/l<e&&++a,u/l>t&&--u,l=-l):(l=Math.pow(10,i)*s,a=Math.round(e/l),u=Math.round(t/l),a*l<e&&++a,u*l>t&&--u),u<a&&.5<=n&&n<2?Xu(e,t,n*2):[a,u,l]}function Ku(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];const r=t<e,[i,o,s]=r?Xu(t,e,n):Xu(e,t,n);if(!(o>=i))return[];const a=o-i+1,u=new Array(a);if(r)if(s<0)for(let l=0;l<a;++l)u[l]=(o-l)/-s;else for(let l=0;l<a;++l)u[l]=(o-l)*s;else if(s<0)for(let l=0;l<a;++l)u[l]=(i+l)/-s;else for(let l=0;l<a;++l)u[l]=(i+l)*s;return u}function Oh(e,t,n){return t=+t,e=+e,n=+n,Xu(e,t,n)[2]}function Li(e,t,n){t=+t,e=+e,n=+n;const r=t<e,i=r?Oh(t,e,n):Oh(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function zh(e,t){let n;if(t===void 0)for(const r of e)r!=null&&(n<r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n<i||n===void 0&&i>=i)&&(n=i)}return n}function Uh(e,t){let n;if(t===void 0)for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function g1(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?p1:L4(i);r>n;){if(r-n>600){const u=r-n+1,l=t-n+1,c=Math.log(u),f=.5*Math.exp(2*c/3),h=.5*Math.sqrt(c*f*(u-f)/u)*(l-u/2<0?-1:1),d=Math.max(n,Math.floor(t-l*f/u+h)),p=Math.min(r,Math.floor(t+(u-l)*f/u+h));g1(e,t,d,p,i)}const o=e[t];let s=n,a=r;for(Aa(e,n,t),i(e[r],o)>0&&Aa(e,n,r);s<a;){for(Aa(e,s,a),++s,--a;i(e[s],o)<0;)++s;for(;i(e[a],o)>0;)--a}i(e[n],o)===0?Aa(e,n,a):(++a,Aa(e,a,r)),a<=t&&(n=a+1),t<=a&&(r=a-1)}return e}function Aa(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function U4(e,t,n){if(e=Float64Array.from(k4(e,n)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return Uh(e);if(t>=1)return zh(e);var r,i=(r-1)*t,o=Math.floor(i),s=zh(g1(e,o).subarray(0,o+1)),a=Uh(e.subarray(o+1));return s+(a-s)*(i-o)}}function m1(e,t,n=c1){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,o=Math.floor(i),s=+n(e[o],o,e),a=+n(e[o+1],o+1,e);return s+(a-s)*(i-o)}}function G4(e,t){let n=0,r=0;if(t===void 0)for(let i of e)i!=null&&(i=+i)>=i&&(++n,r+=i);else{let i=-1;for(let o of e)(o=t(o,++i,e))!=null&&(o=+o)>=o&&(++n,r+=o)}if(n)return r/n}function H4(e,t){return U4(e,.5,t)}function xa(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,o=new Array(i);++r<i;)o[r]=e+r*n;return o}function Ea(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 V4(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Ju(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function Ho(e){return e=Ju(Math.abs(e)),e?e[1]:NaN}function j4(e,t){return function(n,r){for(var i=n.length,o=[],s=0,a=e[0],u=0;i>0&&a>0&&(u+a+1>r&&(a=Math.max(1,r-u)),o.push(n.substring(i-=a,i+a)),!((u+=a+1)>r));)a=e[s=(s+1)%e.length];return o.reverse().join(t)}}function $4(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var q4=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Vo(e){if(!(t=q4.exec(e)))throw new Error("invalid format: "+e);var t;return new Gh({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]})}Vo.prototype=Gh.prototype;function Gh(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+""}Gh.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 W4(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 b1;function Z4(e,t){var n=Ju(e,t);if(!n)return e+"";var r=n[0],i=n[1],o=i-(b1=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,s=r.length;return o===s?r:o>s?r+new Array(o-s+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+Ju(e,Math.max(0,t+o-1))[0]}function y1(e,t){var n=Ju(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const w1={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:V4,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)=>y1(e*100,t),r:y1,s:Z4,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function v1(e){return e}var A1=Array.prototype.map,x1=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Y4(e){var t=e.grouping===void 0||e.thousands===void 0?v1:j4(A1.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",o=e.numerals===void 0?v1:$4(A1.call(e.numerals,String)),s=e.percent===void 0?"%":e.percent+"",a=e.minus===void 0?"−":e.minus+"",u=e.nan===void 0?"NaN":e.nan+"";function l(f){f=Vo(f);var h=f.fill,d=f.align,p=f.sign,m=f.symbol,y=f.zero,w=f.width,x=f.comma,S=f.precision,_=f.trim,T=f.type;T==="n"?(x=!0,T="g"):w1[T]||(S===void 0&&(S=12),_=!0,T="g"),(y||h==="0"&&d==="=")&&(y=!0,h="0",d="=");var B=m==="$"?n:m==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",I=m==="$"?r:/[%p]/.test(T)?s:"",D=w1[T],M=/[defgprs%]/.test(T);S=S===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,S)):Math.max(0,Math.min(20,S));function G(N){var ne=B,ie=I,pe,be,Pe;if(T==="c")ie=D(N)+ie,N="";else{N=+N;var _e=N<0||1/N<0;if(N=isNaN(N)?u:D(Math.abs(N),S),_&&(N=W4(N)),_e&&+N==0&&p!=="+"&&(_e=!1),ne=(_e?p==="("?p:a:p==="-"||p==="("?"":p)+ne,ie=(T==="s"?x1[8+b1/3]:"")+ie+(_e&&p==="("?")":""),M){for(pe=-1,be=N.length;++pe<be;)if(Pe=N.charCodeAt(pe),48>Pe||Pe>57){ie=(Pe===46?i+N.slice(pe+1):N.slice(pe))+ie,N=N.slice(0,pe);break}}}x&&!y&&(N=t(N,1/0));var Oe=ne.length+N.length+ie.length,Ue=Oe<w?new Array(w-Oe+1).join(h):"";switch(x&&y&&(N=t(Ue+N,Ue.length?w-ie.length:1/0),Ue=""),d){case"<":N=ne+N+ie+Ue;break;case"=":N=ne+Ue+N+ie;break;case"^":N=Ue.slice(0,Oe=Ue.length>>1)+ne+N+ie+Ue.slice(Oe);break;default:N=Ue+ne+N+ie;break}return o(N)}return G.toString=function(){return f+""},G}function c(f,h){var d=l((f=Vo(f),f.type="f",f)),p=Math.max(-8,Math.min(8,Math.floor(Ho(h)/3)))*3,m=Math.pow(10,-p),y=x1[8+p/3];return function(w){return d(m*w)+y}}return{format:l,formatPrefix:c}}var ec,_t,E1;Q4({thousands:",",grouping:[3],currency:["$",""]});function Q4(e){return ec=Y4(e),_t=ec.format,E1=ec.formatPrefix,ec}function X4(e){return Math.max(0,-Ho(Math.abs(e)))}function K4(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ho(t)/3)))*3-Ho(Math.abs(e)))}function J4(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Ho(t)-Ho(e))+1}const Hh=new Date,Vh=new Date;function at(e,t,n,r){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=o=>(e(o=new Date(+o)),o),i.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),i.round=o=>{const s=i(o),a=i.ceil(o);return o-s<a-o?s:a},i.offset=(o,s)=>(t(o=new Date(+o),s==null?1:Math.floor(s)),o),i.range=(o,s,a)=>{const u=[];if(o=i.ceil(o),a=a==null?1:Math.floor(a),!(o<s)||!(a>0))return u;let l;do u.push(l=new Date(+o)),t(o,a),e(o);while(l<o&&o<s);return u},i.filter=o=>at(s=>{if(s>=s)for(;e(s),!o(s);)s.setTime(s-1)},(s,a)=>{if(s>=s)if(a<0)for(;++a<=0;)for(;t(s,-1),!o(s););else for(;--a>=0;)for(;t(s,1),!o(s););}),n&&(i.count=(o,s)=>(Hh.setTime(+o),Vh.setTime(+s),e(Hh),e(Vh),Math.floor(n(Hh,Vh))),i.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?s=>r(s)%o===0:s=>i.count(0,s)%o===0):i)),i}const jo=at(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);jo.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?at(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):jo),jo.range;const cr=1e3,an=cr*60,fr=an*60,hr=fr*24,jh=hr*7,_1=hr*30,$h=hr*365,dr=at(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*cr)},(e,t)=>(t-e)/cr,e=>e.getUTCSeconds());dr.range;const tc=at(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*cr)},(e,t)=>{e.setTime(+e+t*an)},(e,t)=>(t-e)/an,e=>e.getMinutes());tc.range;const nc=at(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*an)},(e,t)=>(t-e)/an,e=>e.getUTCMinutes());nc.range;const rc=at(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*cr-e.getMinutes()*an)},(e,t)=>{e.setTime(+e+t*fr)},(e,t)=>(t-e)/fr,e=>e.getHours());rc.range;const ic=at(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*fr)},(e,t)=>(t-e)/fr,e=>e.getUTCHours());ic.range;const Or=at(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*an)/hr,e=>e.getDate()-1);Or.range;const Ni=at(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/hr,e=>e.getUTCDate()-1);Ni.range;const S1=at(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/hr,e=>Math.floor(e/hr));S1.range;function Oi(e){return at(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*an)/jh)}const _a=Oi(0),oc=Oi(1),eC=Oi(2),tC=Oi(3),$o=Oi(4),nC=Oi(5),rC=Oi(6);_a.range,oc.range,eC.range,tC.range,$o.range,nC.range,rC.range;function zi(e){return at(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/jh)}const Sa=zi(0),sc=zi(1),iC=zi(2),oC=zi(3),qo=zi(4),sC=zi(5),aC=zi(6);Sa.range,sc.range,iC.range,oC.range,qo.range,sC.range,aC.range;const Ca=at(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());Ca.range;const Ta=at(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());Ta.range;const zn=at(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());zn.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:at(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)}),zn.range;const Un=at(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());Un.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:at(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)}),Un.range;function C1(e,t,n,r,i,o){const s=[[dr,1,cr],[dr,5,5*cr],[dr,15,15*cr],[dr,30,30*cr],[o,1,an],[o,5,5*an],[o,15,15*an],[o,30,30*an],[i,1,fr],[i,3,3*fr],[i,6,6*fr],[i,12,12*fr],[r,1,hr],[r,2,2*hr],[n,1,jh],[t,1,_1],[t,3,3*_1],[e,1,$h]];function a(l,c,f){const h=c<l;h&&([l,c]=[c,l]);const d=f&&typeof f.range=="function"?f:u(l,c,f),p=d?d.range(l,+c+1):[];return h?p.reverse():p}function u(l,c,f){const h=Math.abs(c-l)/f,d=Go(([,,y])=>y).right(s,h);if(d===s.length)return e.every(Li(l/$h,c/$h,f));if(d===0)return jo.every(Math.max(Li(l,c,f),1));const[p,m]=s[h/s[d-1][2]<s[d][2]/h?d-1:d];return p.every(m)}return[a,u]}const[lC,uC]=C1(Un,Ta,Sa,S1,ic,nc),[cC,fC]=C1(zn,Ca,_a,Or,rc,tc),ka="year",Ia="quarter",Ba="month",Da="week",Ra="date",ac="day",qh="dayofyear",Fa="hours",Ma="minutes",Pa="seconds",lc="milliseconds";[ka,Ia,Ba,Da,Ra,ac,qh,Fa,Ma,Pa,lc].reduce((e,t,n)=>(e[t]=1+n,e),{});const hC={[ka]:zn,[Ia]:Ca.every(3),[Ba]:Ca,[Da]:_a,[Ra]:Or,[ac]:Or,[qh]:Or,[Fa]:rc,[Ma]:tc,[Pa]:dr,[lc]:jo},dC={[ka]:Un,[Ia]:Ta.every(3),[Ba]:Ta,[Da]:Sa,[Ra]:Ni,[ac]:Ni,[qh]:Ni,[Fa]:ic,[Ma]:nc,[Pa]:dr,[lc]:jo};function pC(e){return hC[e]}function gC(e){return dC[e]}function Wh(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 Zh(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 La(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function T1(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,o=e.days,s=e.shortDays,a=e.months,u=e.shortMonths,l=Na(i),c=Oa(i),f=Na(o),h=Oa(o),d=Na(s),p=Oa(s),m=Na(a),y=Oa(a),w=Na(u),x=Oa(u),S={a:_e,A:Oe,b:Ue,B:tt,c:null,d:F1,e:F1,f:OC,g:ZC,G:QC,H:PC,I:LC,j:NC,L:M1,m:zC,M:UC,p:ke,q:Ie,Q:U1,s:G1,S:GC,u:HC,U:VC,V:jC,w:$C,W:qC,x:null,X:null,y:WC,Y:YC,Z:XC,"%":z1},_={a:bt,A:Wt,b:$e,B:L,c:null,d:L1,e:L1,f:t6,g:f6,G:d6,H:KC,I:JC,j:e6,L:N1,m:n6,M:r6,p:P,q,Q:U1,s:G1,S:i6,u:o6,U:s6,V:a6,w:l6,W:u6,x:null,X:null,y:c6,Y:h6,Z:p6,"%":z1},T={a:G,A:N,b:ne,B:ie,c:pe,d:D1,e:D1,f:DC,g:B1,G:I1,H:R1,I:R1,j:TC,L:BC,m:CC,M:kC,p:M,q:SC,Q:FC,s:MC,S:IC,u:vC,U:AC,V:xC,w:wC,W:EC,x:be,X:Pe,y:B1,Y:I1,Z:_C,"%":RC};S.x=B(n,S),S.X=B(r,S),S.c=B(t,S),_.x=B(n,_),_.X=B(r,_),_.c=B(t,_);function B(j,Z){return function(C){var A=[],V=-1,W=0,ce=j.length,te,fe,Zt;for(C instanceof Date||(C=new Date(+C));++V<ce;)j.charCodeAt(V)===37&&(A.push(j.slice(W,V)),(fe=k1[te=j.charAt(++V)])!=null?te=j.charAt(++V):fe=te==="e"?" ":"0",(Zt=Z[te])&&(te=Zt(C,fe)),A.push(te),W=V+1);return A.push(j.slice(W,V)),A.join("")}}function I(j,Z){return function(C){var A=La(1900,void 0,1),V=D(A,j,C+="",0),W,ce;if(V!=C.length)return null;if("Q"in A)return new Date(A.Q);if("s"in A)return new Date(A.s*1e3+("L"in A?A.L:0));if(Z&&!("Z"in A)&&(A.Z=0),"p"in A&&(A.H=A.H%12+A.p*12),A.m===void 0&&(A.m="q"in A?A.q:0),"V"in A){if(A.V<1||A.V>53)return null;"w"in A||(A.w=1),"Z"in A?(W=Zh(La(A.y,0,1)),ce=W.getUTCDay(),W=ce>4||ce===0?sc.ceil(W):sc(W),W=Ni.offset(W,(A.V-1)*7),A.y=W.getUTCFullYear(),A.m=W.getUTCMonth(),A.d=W.getUTCDate()+(A.w+6)%7):(W=Wh(La(A.y,0,1)),ce=W.getDay(),W=ce>4||ce===0?oc.ceil(W):oc(W),W=Or.offset(W,(A.V-1)*7),A.y=W.getFullYear(),A.m=W.getMonth(),A.d=W.getDate()+(A.w+6)%7)}else("W"in A||"U"in A)&&("w"in A||(A.w="u"in A?A.u%7:"W"in A?1:0),ce="Z"in A?Zh(La(A.y,0,1)).getUTCDay():Wh(La(A.y,0,1)).getDay(),A.m=0,A.d="W"in A?(A.w+6)%7+A.W*7-(ce+5)%7:A.w+A.U*7-(ce+6)%7);return"Z"in A?(A.H+=A.Z/100|0,A.M+=A.Z%100,Zh(A)):Wh(A)}}function D(j,Z,C,A){for(var V=0,W=Z.length,ce=C.length,te,fe;V<W;){if(A>=ce)return-1;if(te=Z.charCodeAt(V++),te===37){if(te=Z.charAt(V++),fe=T[te in k1?Z.charAt(V++):te],!fe||(A=fe(j,C,A))<0)return-1}else if(te!=C.charCodeAt(A++))return-1}return A}function M(j,Z,C){var A=l.exec(Z.slice(C));return A?(j.p=c.get(A[0].toLowerCase()),C+A[0].length):-1}function G(j,Z,C){var A=d.exec(Z.slice(C));return A?(j.w=p.get(A[0].toLowerCase()),C+A[0].length):-1}function N(j,Z,C){var A=f.exec(Z.slice(C));return A?(j.w=h.get(A[0].toLowerCase()),C+A[0].length):-1}function ne(j,Z,C){var A=w.exec(Z.slice(C));return A?(j.m=x.get(A[0].toLowerCase()),C+A[0].length):-1}function ie(j,Z,C){var A=m.exec(Z.slice(C));return A?(j.m=y.get(A[0].toLowerCase()),C+A[0].length):-1}function pe(j,Z,C){return D(j,t,Z,C)}function be(j,Z,C){return D(j,n,Z,C)}function Pe(j,Z,C){return D(j,r,Z,C)}function _e(j){return s[j.getDay()]}function Oe(j){return o[j.getDay()]}function Ue(j){return u[j.getMonth()]}function tt(j){return a[j.getMonth()]}function ke(j){return i[+(j.getHours()>=12)]}function Ie(j){return 1+~~(j.getMonth()/3)}function bt(j){return s[j.getUTCDay()]}function Wt(j){return o[j.getUTCDay()]}function $e(j){return u[j.getUTCMonth()]}function L(j){return a[j.getUTCMonth()]}function P(j){return i[+(j.getUTCHours()>=12)]}function q(j){return 1+~~(j.getUTCMonth()/3)}return{format:function(j){var Z=B(j+="",S);return Z.toString=function(){return j},Z},parse:function(j){var Z=I(j+="",!1);return Z.toString=function(){return j},Z},utcFormat:function(j){var Z=B(j+="",_);return Z.toString=function(){return j},Z},utcParse:function(j){var Z=I(j+="",!0);return Z.toString=function(){return j},Z}}}var k1={"-":"",_:" ",0:"0"},ft=/^\s*\d+/,mC=/^%/,bC=/[\\^$*+?|[\]().{}]/g;function ve(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",o=i.length;return r+(o<n?new Array(n-o+1).join(t)+i:i)}function yC(e){return e.replace(bC,"\\$&")}function Na(e){return new RegExp("^(?:"+e.map(yC).join("|")+")","i")}function Oa(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function wC(e,t,n){var r=ft.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function vC(e,t,n){var r=ft.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function AC(e,t,n){var r=ft.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function xC(e,t,n){var r=ft.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function EC(e,t,n){var r=ft.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function I1(e,t,n){var r=ft.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function B1(e,t,n){var r=ft.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function _C(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 SC(e,t,n){var r=ft.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function CC(e,t,n){var r=ft.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function D1(e,t,n){var r=ft.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function TC(e,t,n){var r=ft.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function R1(e,t,n){var r=ft.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function kC(e,t,n){var r=ft.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function IC(e,t,n){var r=ft.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function BC(e,t,n){var r=ft.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function DC(e,t,n){var r=ft.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function RC(e,t,n){var r=mC.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function FC(e,t,n){var r=ft.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function MC(e,t,n){var r=ft.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function F1(e,t){return ve(e.getDate(),t,2)}function PC(e,t){return ve(e.getHours(),t,2)}function LC(e,t){return ve(e.getHours()%12||12,t,2)}function NC(e,t){return ve(1+Or.count(zn(e),e),t,3)}function M1(e,t){return ve(e.getMilliseconds(),t,3)}function OC(e,t){return M1(e,t)+"000"}function zC(e,t){return ve(e.getMonth()+1,t,2)}function UC(e,t){return ve(e.getMinutes(),t,2)}function GC(e,t){return ve(e.getSeconds(),t,2)}function HC(e){var t=e.getDay();return t===0?7:t}function VC(e,t){return ve(_a.count(zn(e)-1,e),t,2)}function P1(e){var t=e.getDay();return t>=4||t===0?$o(e):$o.ceil(e)}function jC(e,t){return e=P1(e),ve($o.count(zn(e),e)+(zn(e).getDay()===4),t,2)}function $C(e){return e.getDay()}function qC(e,t){return ve(oc.count(zn(e)-1,e),t,2)}function WC(e,t){return ve(e.getFullYear()%100,t,2)}function ZC(e,t){return e=P1(e),ve(e.getFullYear()%100,t,2)}function YC(e,t){return ve(e.getFullYear()%1e4,t,4)}function QC(e,t){var n=e.getDay();return e=n>=4||n===0?$o(e):$o.ceil(e),ve(e.getFullYear()%1e4,t,4)}function XC(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+ve(t/60|0,"0",2)+ve(t%60,"0",2)}function L1(e,t){return ve(e.getUTCDate(),t,2)}function KC(e,t){return ve(e.getUTCHours(),t,2)}function JC(e,t){return ve(e.getUTCHours()%12||12,t,2)}function e6(e,t){return ve(1+Ni.count(Un(e),e),t,3)}function N1(e,t){return ve(e.getUTCMilliseconds(),t,3)}function t6(e,t){return N1(e,t)+"000"}function n6(e,t){return ve(e.getUTCMonth()+1,t,2)}function r6(e,t){return ve(e.getUTCMinutes(),t,2)}function i6(e,t){return ve(e.getUTCSeconds(),t,2)}function o6(e){var t=e.getUTCDay();return t===0?7:t}function s6(e,t){return ve(Sa.count(Un(e)-1,e),t,2)}function O1(e){var t=e.getUTCDay();return t>=4||t===0?qo(e):qo.ceil(e)}function a6(e,t){return e=O1(e),ve(qo.count(Un(e),e)+(Un(e).getUTCDay()===4),t,2)}function l6(e){return e.getUTCDay()}function u6(e,t){return ve(sc.count(Un(e)-1,e),t,2)}function c6(e,t){return ve(e.getUTCFullYear()%100,t,2)}function f6(e,t){return e=O1(e),ve(e.getUTCFullYear()%100,t,2)}function h6(e,t){return ve(e.getUTCFullYear()%1e4,t,4)}function d6(e,t){var n=e.getUTCDay();return e=n>=4||n===0?qo(e):qo.ceil(e),ve(e.getUTCFullYear()%1e4,t,4)}function p6(){return"+0000"}function z1(){return"%"}function U1(e){return+e}function G1(e){return Math.floor(+e/1e3)}var Wo,Yh,H1,Qh,V1;g6({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 g6(e){return Wo=T1(e),Yh=Wo.format,H1=Wo.parse,Qh=Wo.utcFormat,V1=Wo.utcParse,Wo}function uc(e){const t={};return n=>t[n]||(t[n]=e(n))}function j1(e,t,n){n=n||{},Et(n)||st(`Invalid time multi-format specifier: ${n}`);const r=t(Pa),i=t(Ma),o=t(Fa),s=t(Ra),a=t(Da),u=t(Ba),l=t(Ia),c=t(ka),f=e(n[lc]||".%L"),h=e(n[Pa]||":%S"),d=e(n[Ma]||"%I:%M"),p=e(n[Fa]||"%I %p"),m=e(n[Ra]||n[ac]||"%a %d"),y=e(n[Da]||"%b %d"),w=e(n[Ba]||"%B"),x=e(n[Ia]||"%B"),S=e(n[ka]||"%Y");return _=>(r(_)<_?f:i(_)<_?h:o(_)<_?d:s(_)<_?p:u(_)<_?a(_)<_?m:y:c(_)<_?l(_)<_?w:x:S)(_)}function $1(e){const t=uc(e.format),n=uc(e.utcFormat);return{timeFormat:r=>De(r)?t(r):j1(t,pC,r),utcFormat:r=>De(r)?n(r):j1(n,gC,r),timeParse:uc(e.parse),utcParse:uc(e.utcParse)}}let Xh;m6();function m6(){return Xh=$1({format:Yh,parse:H1,utcFormat:Qh,utcParse:V1})}function b6(e){return $1(T1(e))}function y6(e){return arguments.length?Xh=b6(e):Xh}const w6=e=>e!=null&&e===e,v6=e=>e==="true"||e==="false"||e===!0||e===!1,A6=e=>!Number.isNaN(Date.parse(e)),q1=e=>!Number.isNaN(+e)&&!(e instanceof Date),x6=e=>q1(e)&&Number.isInteger(+e),W1={boolean:jS,integer:ca,number:ca,date:qS,string:WS,unknown:Gu},cc=[v6,x6,q1,A6],E6=["boolean","integer","number","date"];function _6(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=cc.length,i=cc.map((o,s)=>s+1);for(let o=0,s=0,a,u;o<n;++o)for(u=t?e[o][t]:e[o],a=0;a<r;++a)if(i[a]&&w6(u)&&!cc[a](u)&&(i[a]=0,++s,s===cc.length))return"string";return E6[i.reduce((o,s)=>o===0?s:o,0)-1]}function S6(e,t){return t.reduce((n,r)=>(n[r]=_6(e,r),n),{})}function Z1(e){const t=function(n,r){const i={delimiter:e};return Kh(n,r?zS(r,i):i)};return t.responseType="text",t}function Kh(e,t){return t.header&&(e=t.header.map(Th).join(t.delimiter)+`
|
|
24
|
-
`+e),
|
|
23
|
+
`)}function l(f){return f.map(c).join(e)}function c(f){return f==null?"":f instanceof Date?b4(f):t.test(f+="")?'"'+f.replace(/"/g,'""')+'"':f}return{parse:r,parseRows:i,format:s,formatBody:a,formatRows:u,formatRow:l,formatValue:c}}var y4=u1(" "),w4=y4.parseRows;function v4(e){return e}function A4(e){if(e==null)return v4;var t,n,r=e.scale[0],i=e.scale[1],o=e.translate[0],s=e.translate[1];return function(a,u){u||(t=n=0);var l=2,c=a.length,f=new Array(c);for(f[0]=(t+=a[0])*r+o,f[1]=(n+=a[1])*i+s;l<c;)f[l]=a[l],++l;return f}}function x4(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}function E4(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return c1(e,n)})}:c1(e,t)}function c1(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,o=f1(e,t);return n==null&&r==null?{type:"Feature",properties:i,geometry:o}:r==null?{type:"Feature",id:n,properties:i,geometry:o}:{type:"Feature",id:n,bbox:r,properties:i,geometry:o}}function f1(e,t){var n=A4(e.transform),r=e.arcs;function i(c,f){f.length&&f.pop();for(var h=r[c<0?~c:c],d=0,p=h.length;d<p;++d)f.push(n(h[d],d));c<0&&x4(f,p)}function o(c){return n(c)}function s(c){for(var f=[],h=0,d=c.length;h<d;++h)i(c[h],f);return f.length<2&&f.push(f[0]),f}function a(c){for(var f=s(c);f.length<4;)f.push(f[0]);return f}function u(c){return c.map(a)}function l(c){var f=c.type,h;switch(f){case"GeometryCollection":return{type:f,geometries:c.geometries.map(l)};case"Point":h=o(c.coordinates);break;case"MultiPoint":h=c.coordinates.map(o);break;case"LineString":h=s(c.arcs);break;case"MultiLineString":h=c.arcs.map(s);break;case"Polygon":h=u(c.arcs);break;case"MultiPolygon":h=c.arcs.map(u);break;default:return null}return{type:f,coordinates:h}}return l(t)}function _4(e,t){var n={},r={},i={},o=[],s=-1;t.forEach(function(l,c){var f=e.arcs[l<0?~l:l],h;f.length<3&&!f[1][0]&&!f[1][1]&&(h=t[++s],t[s]=l,t[c]=h)}),t.forEach(function(l){var c=a(l),f=c[0],h=c[1],d,p;if(d=i[f])if(delete i[d.end],d.push(l),d.end=h,p=r[h]){delete r[p.start];var m=p===d?d:d.concat(p);r[m.start=d.start]=i[m.end=p.end]=m}else r[d.start]=i[d.end]=d;else if(d=r[h])if(delete r[d.start],d.unshift(l),d.start=f,p=i[f]){delete i[p.end];var y=p===d?d:p.concat(d);r[y.start=p.start]=i[y.end=d.end]=y}else r[d.start]=i[d.end]=d;else d=[l],r[d.start=f]=i[d.end=h]=d});function a(l){var c=e.arcs[l<0?~l:l],f=c[0],h;return e.transform?(h=[0,0],c.forEach(function(d){h[0]+=d[0],h[1]+=d[1]})):h=c[c.length-1],l<0?[h,f]:[f,h]}function u(l,c){for(var f in l){var h=l[f];delete c[h.start],delete h.start,delete h.end,h.forEach(function(d){n[d<0?~d:d]=1}),o.push(h)}}return u(i,r),u(r,i),t.forEach(function(l){n[l<0?~l:l]||o.push([l])}),o}function S4(e){return f1(e,C4.apply(this,arguments))}function C4(e,t,n){var r,i,o;if(arguments.length>1)r=T4(e,t,n);else for(i=0,r=new Array(o=e.arcs.length);i<o;++i)r[i]=i;return{type:"MultiLineString",arcs:_4(e,r)}}function T4(e,t,n){var r=[],i=[],o;function s(f){var h=f<0?~f:f;(i[h]||(i[h]=[])).push({i:f,g:o})}function a(f){f.forEach(s)}function u(f){f.forEach(a)}function l(f){f.forEach(u)}function c(f){switch(o=f,f.type){case"GeometryCollection":f.geometries.forEach(c);break;case"LineString":a(f.arcs);break;case"MultiLineString":case"Polygon":u(f.arcs);break;case"MultiPolygon":l(f.arcs);break}}return c(t),i.forEach(n==null?function(f){r.push(f[0].i)}:function(f){n(f[0].g,f[f.length-1].g)&&r.push(f[0].i)}),r}function Pi(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function k4(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Go(e){let t,n,r;e.length!==2?(t=Pi,n=(a,u)=>Pi(e(a),u),r=(a,u)=>e(a)-u):(t=e===Pi||e===k4?e:I4,n=e,r=e);function i(a,u,l=0,c=a.length){if(l<c){if(t(u,u)!==0)return c;do{const f=l+c>>>1;n(a[f],u)<0?l=f+1:c=f}while(l<c)}return l}function o(a,u,l=0,c=a.length){if(l<c){if(t(u,u)!==0)return c;do{const f=l+c>>>1;n(a[f],u)<=0?l=f+1:c=f}while(l<c)}return l}function s(a,u,l=0,c=a.length){const f=i(a,u,l,c-1);return f>l&&r(a[f-1],u)>-r(a[f],u)?f-1:f}return{left:i,center:s,right:o}}function I4(){return 0}function h1(e){return e===null?NaN:+e}function*B4(e,t){if(t===void 0)for(let n of e)n!=null&&(n=+n)>=n&&(yield n);else{let n=-1;for(let r of e)(r=t(r,++n,e))!=null&&(r=+r)>=r&&(yield r)}}const d1=Go(Pi),Nr=d1.right;d1.left,Go(h1).center;function D4(e,t){let n=0;if(t===void 0)for(let r of e)r!=null&&(r=+r)>=r&&++n;else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(i=+i)>=i&&++n}return n}function R4(e,t){let n=0,r,i=0,o=0;if(t===void 0)for(let s of e)s!=null&&(s=+s)>=s&&(r=s-i,i+=r/++n,o+=r*(s-i));else{let s=-1;for(let a of e)(a=t(a,++s,e))!=null&&(a=+a)>=a&&(r=a-i,i+=r/++n,o+=r*(a-i))}if(n>1)return o/(n-1)}function F4(e,t){let n,r;for(const i of e)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));return[n,r]}class ur extends Map{constructor(t,n=L4){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(p1(this,t))}has(t){return super.has(p1(this,t))}set(t,n){return super.set(M4(this,t),n)}delete(t){return super.delete(P4(this,t))}}function p1({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function M4({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function P4({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function L4(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Oh(e){return e}function Xu(e,...t){return g1(e,Oh,Oh,t)}function N4(e,...t){return g1(e,Array.from,Oh,t)}function g1(e,t,n,r){return function i(o,s){if(s>=r.length)return n(o);const a=new ur,u=r[s++];let l=-1;for(const c of o){const f=u(c,++l,o),h=a.get(f);h?h.push(c):a.set(f,[c])}for(const[c,f]of a)a.set(c,i(f,s));return t(a)}(e,0)}function O4(e=Pi){if(e===Pi)return m1;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function m1(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:e>t?1:0)}const z4=Math.sqrt(50),U4=Math.sqrt(10),G4=Math.sqrt(2);function Ku(e,t,n){const r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),o=r/Math.pow(10,i),s=o>=z4?10:o>=U4?5:o>=G4?2:1;let a,u,l;return i<0?(l=Math.pow(10,-i)/s,a=Math.round(e*l),u=Math.round(t*l),a/l<e&&++a,u/l>t&&--u,l=-l):(l=Math.pow(10,i)*s,a=Math.round(e/l),u=Math.round(t/l),a*l<e&&++a,u*l>t&&--u),u<a&&.5<=n&&n<2?Ku(e,t,n*2):[a,u,l]}function Ju(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];const r=t<e,[i,o,s]=r?Ku(t,e,n):Ku(e,t,n);if(!(o>=i))return[];const a=o-i+1,u=new Array(a);if(r)if(s<0)for(let l=0;l<a;++l)u[l]=(o-l)/-s;else for(let l=0;l<a;++l)u[l]=(o-l)*s;else if(s<0)for(let l=0;l<a;++l)u[l]=(i+l)/-s;else for(let l=0;l<a;++l)u[l]=(i+l)*s;return u}function zh(e,t,n){return t=+t,e=+e,n=+n,Ku(e,t,n)[2]}function Li(e,t,n){t=+t,e=+e,n=+n;const r=t<e,i=r?zh(t,e,n):zh(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function Uh(e,t){let n;if(t===void 0)for(const r of e)r!=null&&(n<r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n<i||n===void 0&&i>=i)&&(n=i)}return n}function Gh(e,t){let n;if(t===void 0)for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function b1(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?m1:O4(i);r>n;){if(r-n>600){const u=r-n+1,l=t-n+1,c=Math.log(u),f=.5*Math.exp(2*c/3),h=.5*Math.sqrt(c*f*(u-f)/u)*(l-u/2<0?-1:1),d=Math.max(n,Math.floor(t-l*f/u+h)),p=Math.min(r,Math.floor(t+(u-l)*f/u+h));b1(e,t,d,p,i)}const o=e[t];let s=n,a=r;for(Aa(e,n,t),i(e[r],o)>0&&Aa(e,n,r);s<a;){for(Aa(e,s,a),++s,--a;i(e[s],o)<0;)++s;for(;i(e[a],o)>0;)--a}i(e[n],o)===0?Aa(e,n,a):(++a,Aa(e,a,r)),a<=t&&(n=a+1),t<=a&&(r=a-1)}return e}function Aa(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function H4(e,t,n){if(e=Float64Array.from(B4(e,n)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return Gh(e);if(t>=1)return Uh(e);var r,i=(r-1)*t,o=Math.floor(i),s=Uh(b1(e,o).subarray(0,o+1)),a=Gh(e.subarray(o+1));return s+(a-s)*(i-o)}}function y1(e,t,n=h1){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,o=Math.floor(i),s=+n(e[o],o,e),a=+n(e[o+1],o+1,e);return s+(a-s)*(i-o)}}function V4(e,t){let n=0,r=0;if(t===void 0)for(let i of e)i!=null&&(i=+i)>=i&&(++n,r+=i);else{let i=-1;for(let o of e)(o=t(o,++i,e))!=null&&(o=+o)>=o&&(++n,r+=o)}if(n)return r/n}function j4(e,t){return H4(e,.5,t)}function xa(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,o=new Array(i);++r<i;)o[r]=e+r*n;return o}function Ea(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 $4(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function ec(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 Ho(e){return e=ec(Math.abs(e)),e?e[1]:NaN}function q4(e,t){return function(n,r){for(var i=n.length,o=[],s=0,a=e[0],u=0;i>0&&a>0&&(u+a+1>r&&(a=Math.max(1,r-u)),o.push(n.substring(i-=a,i+a)),!((u+=a+1)>r));)a=e[s=(s+1)%e.length];return o.reverse().join(t)}}function W4(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var Z4=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Vo(e){if(!(t=Z4.exec(e)))throw new Error("invalid format: "+e);var t;return new Hh({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]})}Vo.prototype=Hh.prototype;function Hh(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+""}Hh.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 Y4(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 w1;function Q4(e,t){var n=ec(e,t);if(!n)return e+"";var r=n[0],i=n[1],o=i-(w1=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,s=r.length;return o===s?r:o>s?r+new Array(o-s+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+ec(e,Math.max(0,t+o-1))[0]}function v1(e,t){var n=ec(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 A1={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:$4,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)=>v1(e*100,t),r:v1,s:Q4,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function x1(e){return e}var E1=Array.prototype.map,_1=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function X4(e){var t=e.grouping===void 0||e.thousands===void 0?x1:q4(E1.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",o=e.numerals===void 0?x1:W4(E1.call(e.numerals,String)),s=e.percent===void 0?"%":e.percent+"",a=e.minus===void 0?"−":e.minus+"",u=e.nan===void 0?"NaN":e.nan+"";function l(f){f=Vo(f);var h=f.fill,d=f.align,p=f.sign,m=f.symbol,y=f.zero,w=f.width,x=f.comma,S=f.precision,_=f.trim,T=f.type;T==="n"?(x=!0,T="g"):A1[T]||(S===void 0&&(S=12),_=!0,T="g"),(y||h==="0"&&d==="=")&&(y=!0,h="0",d="=");var B=m==="$"?n:m==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",I=m==="$"?r:/[%p]/.test(T)?s:"",D=A1[T],M=/[defgprs%]/.test(T);S=S===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,S)):Math.max(0,Math.min(20,S));function G(N){var ne=B,ie=I,pe,be,Pe;if(T==="c")ie=D(N)+ie,N="";else{N=+N;var _e=N<0||1/N<0;if(N=isNaN(N)?u:D(Math.abs(N),S),_&&(N=Y4(N)),_e&&+N==0&&p!=="+"&&(_e=!1),ne=(_e?p==="("?p:a:p==="-"||p==="("?"":p)+ne,ie=(T==="s"?_1[8+w1/3]:"")+ie+(_e&&p==="("?")":""),M){for(pe=-1,be=N.length;++pe<be;)if(Pe=N.charCodeAt(pe),48>Pe||Pe>57){ie=(Pe===46?i+N.slice(pe+1):N.slice(pe))+ie,N=N.slice(0,pe);break}}}x&&!y&&(N=t(N,1/0));var Oe=ne.length+N.length+ie.length,Ue=Oe<w?new Array(w-Oe+1).join(h):"";switch(x&&y&&(N=t(Ue+N,Ue.length?w-ie.length:1/0),Ue=""),d){case"<":N=ne+N+ie+Ue;break;case"=":N=ne+Ue+N+ie;break;case"^":N=Ue.slice(0,Oe=Ue.length>>1)+ne+N+ie+Ue.slice(Oe);break;default:N=Ue+ne+N+ie;break}return o(N)}return G.toString=function(){return f+""},G}function c(f,h){var d=l((f=Vo(f),f.type="f",f)),p=Math.max(-8,Math.min(8,Math.floor(Ho(h)/3)))*3,m=Math.pow(10,-p),y=_1[8+p/3];return function(w){return d(m*w)+y}}return{format:l,formatPrefix:c}}var tc,_t,S1;K4({thousands:",",grouping:[3],currency:["$",""]});function K4(e){return tc=X4(e),_t=tc.format,S1=tc.formatPrefix,tc}function J4(e){return Math.max(0,-Ho(Math.abs(e)))}function eC(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ho(t)/3)))*3-Ho(Math.abs(e)))}function tC(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Ho(t)-Ho(e))+1}const Vh=new Date,jh=new Date;function st(e,t,n,r){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=o=>(e(o=new Date(+o)),o),i.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),i.round=o=>{const s=i(o),a=i.ceil(o);return o-s<a-o?s:a},i.offset=(o,s)=>(t(o=new Date(+o),s==null?1:Math.floor(s)),o),i.range=(o,s,a)=>{const u=[];if(o=i.ceil(o),a=a==null?1:Math.floor(a),!(o<s)||!(a>0))return u;let l;do u.push(l=new Date(+o)),t(o,a),e(o);while(l<o&&o<s);return u},i.filter=o=>st(s=>{if(s>=s)for(;e(s),!o(s);)s.setTime(s-1)},(s,a)=>{if(s>=s)if(a<0)for(;++a<=0;)for(;t(s,-1),!o(s););else for(;--a>=0;)for(;t(s,1),!o(s););}),n&&(i.count=(o,s)=>(Vh.setTime(+o),jh.setTime(+s),e(Vh),e(jh),Math.floor(n(Vh,jh))),i.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?s=>r(s)%o===0:s=>i.count(0,s)%o===0):i)),i}const jo=st(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);jo.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?st(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):jo),jo.range;const cr=1e3,an=cr*60,fr=an*60,hr=fr*24,$h=hr*7,C1=hr*30,qh=hr*365,dr=st(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*cr)},(e,t)=>(t-e)/cr,e=>e.getUTCSeconds());dr.range;const nc=st(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*cr)},(e,t)=>{e.setTime(+e+t*an)},(e,t)=>(t-e)/an,e=>e.getMinutes());nc.range;const rc=st(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*an)},(e,t)=>(t-e)/an,e=>e.getUTCMinutes());rc.range;const ic=st(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*cr-e.getMinutes()*an)},(e,t)=>{e.setTime(+e+t*fr)},(e,t)=>(t-e)/fr,e=>e.getHours());ic.range;const oc=st(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*fr)},(e,t)=>(t-e)/fr,e=>e.getUTCHours());oc.range;const Or=st(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*an)/hr,e=>e.getDate()-1);Or.range;const Ni=st(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/hr,e=>e.getUTCDate()-1);Ni.range;const T1=st(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/hr,e=>Math.floor(e/hr));T1.range;function Oi(e){return st(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*an)/$h)}const _a=Oi(0),sc=Oi(1),nC=Oi(2),rC=Oi(3),$o=Oi(4),iC=Oi(5),oC=Oi(6);_a.range,sc.range,nC.range,rC.range,$o.range,iC.range,oC.range;function zi(e){return st(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/$h)}const Sa=zi(0),ac=zi(1),sC=zi(2),aC=zi(3),qo=zi(4),lC=zi(5),uC=zi(6);Sa.range,ac.range,sC.range,aC.range,qo.range,lC.range,uC.range;const Ca=st(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());Ca.range;const Ta=st(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());Ta.range;const zn=st(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());zn.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:st(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)}),zn.range;const Un=st(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());Un.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:st(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)}),Un.range;function k1(e,t,n,r,i,o){const s=[[dr,1,cr],[dr,5,5*cr],[dr,15,15*cr],[dr,30,30*cr],[o,1,an],[o,5,5*an],[o,15,15*an],[o,30,30*an],[i,1,fr],[i,3,3*fr],[i,6,6*fr],[i,12,12*fr],[r,1,hr],[r,2,2*hr],[n,1,$h],[t,1,C1],[t,3,3*C1],[e,1,qh]];function a(l,c,f){const h=c<l;h&&([l,c]=[c,l]);const d=f&&typeof f.range=="function"?f:u(l,c,f),p=d?d.range(l,+c+1):[];return h?p.reverse():p}function u(l,c,f){const h=Math.abs(c-l)/f,d=Go(([,,y])=>y).right(s,h);if(d===s.length)return e.every(Li(l/qh,c/qh,f));if(d===0)return jo.every(Math.max(Li(l,c,f),1));const[p,m]=s[h/s[d-1][2]<s[d][2]/h?d-1:d];return p.every(m)}return[a,u]}const[cC,fC]=k1(Un,Ta,Sa,T1,oc,rc),[hC,dC]=k1(zn,Ca,_a,Or,ic,nc),ka="year",Ia="quarter",Ba="month",Da="week",Ra="date",lc="day",Wh="dayofyear",Fa="hours",Ma="minutes",Pa="seconds",uc="milliseconds";[ka,Ia,Ba,Da,Ra,lc,Wh,Fa,Ma,Pa,uc].reduce((e,t,n)=>(e[t]=1+n,e),{});const pC={[ka]:zn,[Ia]:Ca.every(3),[Ba]:Ca,[Da]:_a,[Ra]:Or,[lc]:Or,[Wh]:Or,[Fa]:ic,[Ma]:nc,[Pa]:dr,[uc]:jo},gC={[ka]:Un,[Ia]:Ta.every(3),[Ba]:Ta,[Da]:Sa,[Ra]:Ni,[lc]:Ni,[Wh]:Ni,[Fa]:oc,[Ma]:rc,[Pa]:dr,[uc]:jo};function mC(e){return pC[e]}function bC(e){return gC[e]}function Zh(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 Yh(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 La(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function I1(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,o=e.days,s=e.shortDays,a=e.months,u=e.shortMonths,l=Na(i),c=Oa(i),f=Na(o),h=Oa(o),d=Na(s),p=Oa(s),m=Na(a),y=Oa(a),w=Na(u),x=Oa(u),S={a:_e,A:Oe,b:Ue,B:tt,c:null,d:P1,e:P1,f:UC,g:QC,G:KC,H:NC,I:OC,j:zC,L:L1,m:GC,M:HC,p:ke,q:Ie,Q:H1,s:V1,S:VC,u:jC,U:$C,V:qC,w:WC,W:ZC,x:null,X:null,y:YC,Y:XC,Z:JC,"%":G1},_={a:bt,A:Wt,b:$e,B:L,c:null,d:O1,e:O1,f:r6,g:d6,G:g6,H:e6,I:t6,j:n6,L:z1,m:i6,M:o6,p:P,q,Q:H1,s:V1,S:s6,u:a6,U:l6,V:u6,w:c6,W:f6,x:null,X:null,y:h6,Y:p6,Z:m6,"%":G1},T={a:G,A:N,b:ne,B:ie,c:pe,d:F1,e:F1,f:FC,g:R1,G:D1,H:M1,I:M1,j:IC,L:RC,m:kC,M:BC,p:M,q:TC,Q:PC,s:LC,S:DC,u:xC,U:EC,V:_C,w:AC,W:SC,x:be,X:Pe,y:R1,Y:D1,Z:CC,"%":MC};S.x=B(n,S),S.X=B(r,S),S.c=B(t,S),_.x=B(n,_),_.X=B(r,_),_.c=B(t,_);function B(j,Z){return function(C){var A=[],V=-1,W=0,ce=j.length,te,fe,Zt;for(C instanceof Date||(C=new Date(+C));++V<ce;)j.charCodeAt(V)===37&&(A.push(j.slice(W,V)),(fe=B1[te=j.charAt(++V)])!=null?te=j.charAt(++V):fe=te==="e"?" ":"0",(Zt=Z[te])&&(te=Zt(C,fe)),A.push(te),W=V+1);return A.push(j.slice(W,V)),A.join("")}}function I(j,Z){return function(C){var A=La(1900,void 0,1),V=D(A,j,C+="",0),W,ce;if(V!=C.length)return null;if("Q"in A)return new Date(A.Q);if("s"in A)return new Date(A.s*1e3+("L"in A?A.L:0));if(Z&&!("Z"in A)&&(A.Z=0),"p"in A&&(A.H=A.H%12+A.p*12),A.m===void 0&&(A.m="q"in A?A.q:0),"V"in A){if(A.V<1||A.V>53)return null;"w"in A||(A.w=1),"Z"in A?(W=Yh(La(A.y,0,1)),ce=W.getUTCDay(),W=ce>4||ce===0?ac.ceil(W):ac(W),W=Ni.offset(W,(A.V-1)*7),A.y=W.getUTCFullYear(),A.m=W.getUTCMonth(),A.d=W.getUTCDate()+(A.w+6)%7):(W=Zh(La(A.y,0,1)),ce=W.getDay(),W=ce>4||ce===0?sc.ceil(W):sc(W),W=Or.offset(W,(A.V-1)*7),A.y=W.getFullYear(),A.m=W.getMonth(),A.d=W.getDate()+(A.w+6)%7)}else("W"in A||"U"in A)&&("w"in A||(A.w="u"in A?A.u%7:"W"in A?1:0),ce="Z"in A?Yh(La(A.y,0,1)).getUTCDay():Zh(La(A.y,0,1)).getDay(),A.m=0,A.d="W"in A?(A.w+6)%7+A.W*7-(ce+5)%7:A.w+A.U*7-(ce+6)%7);return"Z"in A?(A.H+=A.Z/100|0,A.M+=A.Z%100,Yh(A)):Zh(A)}}function D(j,Z,C,A){for(var V=0,W=Z.length,ce=C.length,te,fe;V<W;){if(A>=ce)return-1;if(te=Z.charCodeAt(V++),te===37){if(te=Z.charAt(V++),fe=T[te in B1?Z.charAt(V++):te],!fe||(A=fe(j,C,A))<0)return-1}else if(te!=C.charCodeAt(A++))return-1}return A}function M(j,Z,C){var A=l.exec(Z.slice(C));return A?(j.p=c.get(A[0].toLowerCase()),C+A[0].length):-1}function G(j,Z,C){var A=d.exec(Z.slice(C));return A?(j.w=p.get(A[0].toLowerCase()),C+A[0].length):-1}function N(j,Z,C){var A=f.exec(Z.slice(C));return A?(j.w=h.get(A[0].toLowerCase()),C+A[0].length):-1}function ne(j,Z,C){var A=w.exec(Z.slice(C));return A?(j.m=x.get(A[0].toLowerCase()),C+A[0].length):-1}function ie(j,Z,C){var A=m.exec(Z.slice(C));return A?(j.m=y.get(A[0].toLowerCase()),C+A[0].length):-1}function pe(j,Z,C){return D(j,t,Z,C)}function be(j,Z,C){return D(j,n,Z,C)}function Pe(j,Z,C){return D(j,r,Z,C)}function _e(j){return s[j.getDay()]}function Oe(j){return o[j.getDay()]}function Ue(j){return u[j.getMonth()]}function tt(j){return a[j.getMonth()]}function ke(j){return i[+(j.getHours()>=12)]}function Ie(j){return 1+~~(j.getMonth()/3)}function bt(j){return s[j.getUTCDay()]}function Wt(j){return o[j.getUTCDay()]}function $e(j){return u[j.getUTCMonth()]}function L(j){return a[j.getUTCMonth()]}function P(j){return i[+(j.getUTCHours()>=12)]}function q(j){return 1+~~(j.getUTCMonth()/3)}return{format:function(j){var Z=B(j+="",S);return Z.toString=function(){return j},Z},parse:function(j){var Z=I(j+="",!1);return Z.toString=function(){return j},Z},utcFormat:function(j){var Z=B(j+="",_);return Z.toString=function(){return j},Z},utcParse:function(j){var Z=I(j+="",!0);return Z.toString=function(){return j},Z}}}var B1={"-":"",_:" ",0:"0"},ft=/^\s*\d+/,yC=/^%/,wC=/[\\^$*+?|[\]().{}]/g;function ve(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",o=i.length;return r+(o<n?new Array(n-o+1).join(t)+i:i)}function vC(e){return e.replace(wC,"\\$&")}function Na(e){return new RegExp("^(?:"+e.map(vC).join("|")+")","i")}function Oa(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function AC(e,t,n){var r=ft.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function xC(e,t,n){var r=ft.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function EC(e,t,n){var r=ft.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function _C(e,t,n){var r=ft.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function SC(e,t,n){var r=ft.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function D1(e,t,n){var r=ft.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function R1(e,t,n){var r=ft.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function CC(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 TC(e,t,n){var r=ft.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function kC(e,t,n){var r=ft.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function F1(e,t,n){var r=ft.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function IC(e,t,n){var r=ft.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function M1(e,t,n){var r=ft.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function BC(e,t,n){var r=ft.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function DC(e,t,n){var r=ft.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function RC(e,t,n){var r=ft.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function FC(e,t,n){var r=ft.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function MC(e,t,n){var r=yC.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function PC(e,t,n){var r=ft.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function LC(e,t,n){var r=ft.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function P1(e,t){return ve(e.getDate(),t,2)}function NC(e,t){return ve(e.getHours(),t,2)}function OC(e,t){return ve(e.getHours()%12||12,t,2)}function zC(e,t){return ve(1+Or.count(zn(e),e),t,3)}function L1(e,t){return ve(e.getMilliseconds(),t,3)}function UC(e,t){return L1(e,t)+"000"}function GC(e,t){return ve(e.getMonth()+1,t,2)}function HC(e,t){return ve(e.getMinutes(),t,2)}function VC(e,t){return ve(e.getSeconds(),t,2)}function jC(e){var t=e.getDay();return t===0?7:t}function $C(e,t){return ve(_a.count(zn(e)-1,e),t,2)}function N1(e){var t=e.getDay();return t>=4||t===0?$o(e):$o.ceil(e)}function qC(e,t){return e=N1(e),ve($o.count(zn(e),e)+(zn(e).getDay()===4),t,2)}function WC(e){return e.getDay()}function ZC(e,t){return ve(sc.count(zn(e)-1,e),t,2)}function YC(e,t){return ve(e.getFullYear()%100,t,2)}function QC(e,t){return e=N1(e),ve(e.getFullYear()%100,t,2)}function XC(e,t){return ve(e.getFullYear()%1e4,t,4)}function KC(e,t){var n=e.getDay();return e=n>=4||n===0?$o(e):$o.ceil(e),ve(e.getFullYear()%1e4,t,4)}function JC(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+ve(t/60|0,"0",2)+ve(t%60,"0",2)}function O1(e,t){return ve(e.getUTCDate(),t,2)}function e6(e,t){return ve(e.getUTCHours(),t,2)}function t6(e,t){return ve(e.getUTCHours()%12||12,t,2)}function n6(e,t){return ve(1+Ni.count(Un(e),e),t,3)}function z1(e,t){return ve(e.getUTCMilliseconds(),t,3)}function r6(e,t){return z1(e,t)+"000"}function i6(e,t){return ve(e.getUTCMonth()+1,t,2)}function o6(e,t){return ve(e.getUTCMinutes(),t,2)}function s6(e,t){return ve(e.getUTCSeconds(),t,2)}function a6(e){var t=e.getUTCDay();return t===0?7:t}function l6(e,t){return ve(Sa.count(Un(e)-1,e),t,2)}function U1(e){var t=e.getUTCDay();return t>=4||t===0?qo(e):qo.ceil(e)}function u6(e,t){return e=U1(e),ve(qo.count(Un(e),e)+(Un(e).getUTCDay()===4),t,2)}function c6(e){return e.getUTCDay()}function f6(e,t){return ve(ac.count(Un(e)-1,e),t,2)}function h6(e,t){return ve(e.getUTCFullYear()%100,t,2)}function d6(e,t){return e=U1(e),ve(e.getUTCFullYear()%100,t,2)}function p6(e,t){return ve(e.getUTCFullYear()%1e4,t,4)}function g6(e,t){var n=e.getUTCDay();return e=n>=4||n===0?qo(e):qo.ceil(e),ve(e.getUTCFullYear()%1e4,t,4)}function m6(){return"+0000"}function G1(){return"%"}function H1(e){return+e}function V1(e){return Math.floor(+e/1e3)}var Wo,Qh,j1,Xh,$1;b6({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 b6(e){return Wo=I1(e),Qh=Wo.format,j1=Wo.parse,Xh=Wo.utcFormat,$1=Wo.utcParse,Wo}function cc(e){const t={};return n=>t[n]||(t[n]=e(n))}function q1(e,t,n){n=n||{},Et(n)||ot(`Invalid time multi-format specifier: ${n}`);const r=t(Pa),i=t(Ma),o=t(Fa),s=t(Ra),a=t(Da),u=t(Ba),l=t(Ia),c=t(ka),f=e(n[uc]||".%L"),h=e(n[Pa]||":%S"),d=e(n[Ma]||"%I:%M"),p=e(n[Fa]||"%I %p"),m=e(n[Ra]||n[lc]||"%a %d"),y=e(n[Da]||"%b %d"),w=e(n[Ba]||"%B"),x=e(n[Ia]||"%B"),S=e(n[ka]||"%Y");return _=>(r(_)<_?f:i(_)<_?h:o(_)<_?d:s(_)<_?p:u(_)<_?a(_)<_?m:y:c(_)<_?l(_)<_?w:x:S)(_)}function W1(e){const t=cc(e.format),n=cc(e.utcFormat);return{timeFormat:r=>De(r)?t(r):q1(t,mC,r),utcFormat:r=>De(r)?n(r):q1(n,bC,r),timeParse:cc(e.parse),utcParse:cc(e.utcParse)}}let Kh;y6();function y6(){return Kh=W1({format:Qh,parse:j1,utcFormat:Xh,utcParse:$1})}function w6(e){return W1(I1(e))}function v6(e){return arguments.length?Kh=w6(e):Kh}const A6=e=>e!=null&&e===e,x6=e=>e==="true"||e==="false"||e===!0||e===!1,E6=e=>!Number.isNaN(Date.parse(e)),Z1=e=>!Number.isNaN(+e)&&!(e instanceof Date),_6=e=>Z1(e)&&Number.isInteger(+e),Y1={boolean:qS,integer:ca,number:ca,date:ZS,string:YS,unknown:Hu},fc=[x6,_6,Z1,E6],S6=["boolean","integer","number","date"];function C6(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=fc.length,i=fc.map((o,s)=>s+1);for(let o=0,s=0,a,u;o<n;++o)for(u=t?e[o][t]:e[o],a=0;a<r;++a)if(i[a]&&A6(u)&&!fc[a](u)&&(i[a]=0,++s,s===fc.length))return"string";return S6[i.reduce((o,s)=>o===0?s:o,0)-1]}function T6(e,t){return t.reduce((n,r)=>(n[r]=C6(e,r),n),{})}function Q1(e){const t=function(n,r){const i={delimiter:e};return Jh(n,r?GS(r,i):i)};return t.responseType="text",t}function Jh(e,t){return t.header&&(e=t.header.map(kh).join(t.delimiter)+`
|
|
24
|
+
`+e),u1(t.delimiter).parse(e+"")}Jh.responseType="text";function k6(e){return typeof Buffer=="function"&&sn(Buffer.isBuffer)?Buffer.isBuffer(e):!1}function ed(e,t){const n=t&&t.property?Gu(t.property):Hu;return Et(e)&&!k6(e)?I6(n(e),t):n(JSON.parse(e))}ed.responseType="json";function I6(e,t){return!xt(e)&&jS(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}const B6={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function X1(e,t){let n,r,i,o;return e=ed(e,t),t&&t.feature?(n=E4,i=t.feature):t&&t.mesh?(n=S4,i=t.mesh,o=B6[t.filter]):ot("Missing TopoJSON feature or mesh parameter."),r=(r=e.objects[i])?n(e,r,o):ot("Invalid TopoJSON object: "+i),r&&r.features||[r]}X1.responseType="json";const td={dsv:Jh,csv:Q1(","),tsv:Q1(" "),json:ed,topojson:X1};function nd(e,t){return arguments.length>1?(td[e]=t,this):Oo(td,e)?td[e]:null}function K1(e,t,n,r){t=t||{};const i=nd(t.type||"json");return i||ot("Unknown data format type: "+t.type),e=i(e,t),t.parse&&D6(e,t.parse,n,r),Oo(e,"columns")&&delete e.columns,e}function D6(e,t,n,r){if(!e.length)return;const i=v6();n=n||i.timeParse,r=r||i.utcParse;let o=e.columns||Object.keys(e[0]),s,a,u,l,c,f;t==="auto"&&(t=T6(e,o)),o=Object.keys(t);const h=o.map(d=>{const p=t[d];let m,y;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return m=p.split(/:(.+)?/,2),y=m[1],(y[0]==="'"&&y[y.length-1]==="'"||y[0]==='"'&&y[y.length-1]==='"')&&(y=y.slice(1,-1)),(m[0]==="utc"?r:n)(y);if(!Y1[p])throw Error("Illegal format pattern: "+d+":"+p);return Y1[p]});for(u=0,c=e.length,f=o.length;u<c;++u)for(s=e[u],l=0;l<f;++l)a=o[l],s[a]=h[l](s[a])}/**
|
|
25
25
|
* @license
|
|
26
26
|
* Copyright 2017 Google LLC
|
|
27
27
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
28
|
-
*/const
|
|
28
|
+
*/const R6={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},F6=e=>(...t)=>({_$litDirective$:e,values:t});let M6=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,r){this._$Ct=t,this._$AM=n,this._$Ci=r}_$AS(t,n){return this.update(t,n)}update(t,n){return this.render(...n)}};/**
|
|
29
29
|
* @license
|
|
30
30
|
* Copyright 2018 Google LLC
|
|
31
31
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
32
|
-
*/const
|
|
32
|
+
*/const J1="important",P6=" !"+J1,L6=F6(class extends M6{constructor(e){var t;if(super(e),e.type!==R6.ATTRIBUTE||e.name!=="style"||((t=e.strings)==null?void 0:t.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(e){return Object.keys(e).reduce((t,n)=>{const r=e[n];return r==null?t:t+`${n=n.includes("-")?n:n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${r};`},"")}update(e,[t]){const{style:n}=e.element;if(this.ft===void 0)return this.ft=new Set(Object.keys(t)),this.render(t);for(const r of this.ft)t[r]==null&&(this.ft.delete(r),r.includes("-")?n.removeProperty(r):n[r]=null);for(const r in t){const i=t[r];if(i!=null){this.ft.add(r);const o=typeof i=="string"&&i.endsWith(P6);r.includes("-")||o?n.setProperty(r,o?i.slice(0,-11):i,o?J1:""):n[r]=i}}return Fi}}),N6="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cstyle%3e.spinner_ajPY{transform-origin:center;animation:spinner_AtaB%20.75s%20infinite%20linear}@keyframes%20spinner_AtaB{100%25{transform:rotate(360deg)}}%3c/style%3e%3cpath%20d='M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z'%20opacity='.25'/%3e%3cpath%20d='M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z'%20class='spinner_ajPY'/%3e%3c/svg%3e",O6=`
|
|
33
33
|
.genome-spy {
|
|
34
34
|
font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
|
35
35
|
position: relative;
|
|
@@ -222,9 +222,9 @@
|
|
|
222
222
|
font-size: 14px;
|
|
223
223
|
padding: 10px;
|
|
224
224
|
}
|
|
225
|
-
`;function
|
|
225
|
+
`;function z6(e,t){var n=e.getBoundingClientRect();return[t.clientX-n.left-e.clientLeft,t.clientY-n.top-e.clientTop]}function hc(e,t){return e.length==t.length&&e.every((n,r)=>e[r]===t[r])}function zt(e){return Array.isArray(e)?e:typeof e<"u"?[e]:[]}function za(e){return e[e.length-1]}class U6{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 za(this.enabledStack)??!0}pushEnabledState(t){this.enabledStack.push(t),t||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(t){this.mouseCoords=z6(this.container,t);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&G6(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&&(wa("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}wa(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(et` ${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 G6(e,t){let n=0;for(let r=0;r<e.length;r++)n+=(e[r]-t[r])**2;return Math.sqrt(n)}/* @license twgl.js 4.24.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
|
|
226
226
|
Available via the MIT license.
|
|
227
|
-
see: http://github.com/greggman/twgl.js for details */const nd=5120,Ua=5121,rd=5122,id=5123,od=5124,sd=5125,ad=5126,U6=32819,G6=32820,H6=33635,V6=5131,j6=33640,$6=35899,q6=35902,W6=36269,Z6=34042,K1={};{const e=K1;e[nd]=Int8Array,e[Ua]=Uint8Array,e[rd]=Int16Array,e[id]=Uint16Array,e[od]=Int32Array,e[sd]=Uint32Array,e[ad]=Float32Array,e[U6]=Uint16Array,e[G6]=Uint16Array,e[H6]=Uint16Array,e[V6]=Uint16Array,e[j6]=Uint32Array,e[$6]=Uint32Array,e[q6]=Uint32Array,e[W6]=Uint32Array,e[Z6]=Uint32Array}function ld(e){if(e instanceof Int8Array)return nd;if(e instanceof Uint8Array||e instanceof Uint8ClampedArray)return Ua;if(e instanceof Int16Array)return rd;if(e instanceof Uint16Array)return id;if(e instanceof Int32Array)return od;if(e instanceof Uint32Array)return sd;if(e instanceof Float32Array)return ad;throw new Error("unsupported typed array type")}function Y6(e){if(e===Int8Array)return nd;if(e===Uint8Array||e===Uint8ClampedArray)return Ua;if(e===Int16Array)return rd;if(e===Uint16Array)return id;if(e===Int32Array)return od;if(e===Uint32Array)return sd;if(e===Float32Array)return ad;throw new Error("unsupported typed array type")}function Q6(e){const t=K1[e];if(!t)throw new Error("unknown gl type");return t}const hc=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 X6(...e){console.error(...e)}function J1(...e){console.warn(...e)}function K6(e,t){return typeof WebGLBuffer<"u"&&t instanceof WebGLBuffer}function eb(e,t){return typeof WebGLRenderbuffer<"u"&&t instanceof WebGLRenderbuffer}function dc(e,t){return typeof WebGLTexture<"u"&&t instanceof WebGLTexture}function J6(e,t){return typeof WebGLSampler<"u"&&t instanceof WebGLSampler}const tb=35044,Gn=34962,e8=34963,t8=34660,n8=5120,r8=5121,i8=5122,o8=5123,s8=5124,a8=5125,l8=5126,nb={attribPrefix:""};function rb(e,t,n,r,i){e.bindBuffer(t,n),e.bufferData(t,r,i||tb)}function ib(e,t,n,r){if(K6(e,t))return t;n=n||Gn;const i=e.createBuffer();return rb(e,n,i,t,r),i}function ob(e){return e==="indices"}function u8(e){return e instanceof Int8Array||e instanceof Uint8Array}function c8(e){return e===Int8Array||e===Uint8Array}function f8(e){return e.length?e:e.data}const h8=/coord|texture/i,d8=/color|colour/i;function sb(e,t){let n;if(h8.test(e)?n=2:d8.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 p8(e,t){return e.numComponents||e.size||sb(t,f8(e).length)}function ud(e,t){if(hc(e))return e;if(hc(e.data))return e.data;Array.isArray(e)&&(e={data:e});let n=e.type;return n||(ob(t)?n=Uint16Array:n=Float32Array),new n(e.data)}function g8(e,t){const n={};return Object.keys(t).forEach(function(r){if(!ob(r)){const i=t[r],o=i.attrib||i.name||i.attribName||nb.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!hc(i.value))throw new Error("array.value is not array or typedarray");n[o]={value:i.value}}else{let s,a,u,l;if(i.buffer&&i.buffer instanceof WebGLBuffer)s=i.buffer,l=i.numComponents||i.size,a=i.type,u=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const c=i.data||i,f=i.type||Float32Array,h=c*f.BYTES_PER_ELEMENT;a=Y6(f),u=i.normalize!==void 0?i.normalize:c8(f),l=i.numComponents||i.size||sb(r,c),s=e.createBuffer(),e.bindBuffer(Gn,s),e.bufferData(Gn,h,i.drawType||tb)}else{const c=ud(i,r);s=ib(e,c,void 0,i.drawType),a=ld(c),u=i.normalize!==void 0?i.normalize:u8(c),l=p8(i,r)}n[o]={buffer:s,numComponents:l,type:a,normalize:u,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),e.bindBuffer(Gn,null),n}function m8(e,t,n,r){n=ud(n),r!==void 0?(e.bindBuffer(Gn,t.buffer),e.bufferSubData(Gn,r,n)):rb(e,Gn,t.buffer,n,t.drawType)}function b8(e,t){return t===n8||t===r8?1:t===i8||t===o8?2:t===s8||t===a8||t===l8?4:0}const cd=["position","positions","a_position"];function y8(e,t){let n,r;for(r=0;r<cd.length&&(n=cd[r],!(n in t||(n=nb.attribPrefix+n,n in t)));++r);r===cd.length&&(n=Object.keys(t)[0]);const i=t[n];if(!i.buffer)return 1;e.bindBuffer(Gn,i.buffer);const o=e.getBufferParameter(Gn,t8);e.bindBuffer(Gn,null);const s=b8(e,i.type),a=o/s,u=i.numComponents||i.size,l=a/u;if(l%1!==0)throw new Error(`numComponents ${u} not correct for length ${length}`);return l}function w8(e,t,n){const r=g8(e,t),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const o=t.indices;if(o){const s=ud(o,"indices");i.indices=ib(e,s,e8),i.numElements=s.length,i.elementType=ld(s)}else i.numElements||(i.numElements=y8(e,i.attribs));return i}function Zo(e){return!!e.texStorage2D}const fd=function(){const e={},t={};function n(r){const i=r.constructor.name;if(!e[i]){for(const o in r)if(typeof r[o]=="number"){const s=t[r[o]];t[r[o]]=s?`${s} | ${o}`:o}e[i]=!0}}return function(i,o){return n(i),t[o]||(typeof o=="number"?`0x${o.toString(16)}`:o)}}(),zr={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},Yo=hc,ab=function(){let e;return function(){return e=e||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),e}}(),hd=6406,ln=6407,He=6408,dd=6409,pd=6410,Qo=6402,gd=34041,pc=33071,v8=9728,A8=9729,pr=3553,gr=34067,Ur=32879,Gr=35866,gc=34069,x8=34070,E8=34071,_8=34072,S8=34073,C8=34074,md=10241,bd=10240,mc=10242,bc=10243,lb=32882,T8=33082,k8=33083,I8=33084,B8=33085,yd=3317,ub=3314,cb=32878,fb=3316,hb=3315,db=32877,D8=37443,R8=37441,F8=37440,M8=33321,P8=36756,L8=33325,N8=33326,O8=33330,z8=33329,U8=33338,G8=33337,H8=33340,V8=33339,j8=33323,$8=36757,q8=33327,W8=33328,Z8=33336,Y8=33335,Q8=33332,X8=33331,K8=33334,J8=33333,e5=32849,t5=35905,n5=36194,r5=36758,i5=35898,o5=35901,s5=34843,a5=34837,l5=36221,u5=36239,c5=36215,f5=36233,h5=36209,d5=36227,p5=32856,g5=35907,m5=36759,b5=32855,y5=32854,w5=32857,v5=34842,A5=34836,x5=36220,E5=36238,_5=36975,S5=36214,C5=36232,T5=36226,k5=36208,I5=33189,B5=33190,D5=36012,R5=36013,F5=35056,Hr=5120,Ye=5121,yc=5122,Xo=5123,wc=5124,Ui=5125,St=5126,pb=32819,gb=32820,mb=33635,Cn=5131,Ga=36193,wd=33640,M5=35899,P5=35902,L5=36269,N5=34042,Ha=33319,Gi=33320,Va=6403,Hi=36244,Vi=36248,Vr=36249,O5={};{const e=O5;e[hd]={numColorComponents:1},e[dd]={numColorComponents:1},e[pd]={numColorComponents:2},e[ln]={numColorComponents:3},e[He]={numColorComponents:4},e[Va]={numColorComponents:1},e[Hi]={numColorComponents:1},e[Ha]={numColorComponents:2},e[Gi]={numColorComponents:2},e[ln]={numColorComponents:3},e[Vi]={numColorComponents:3},e[He]={numColorComponents:4},e[Vr]={numColorComponents:4},e[Qo]={numColorComponents:1},e[gd]={numColorComponents:2}}let vd;function vc(e){if(!vd){const t={};t[hd]={textureFormat:hd,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ye,Cn,Ga,St]},t[dd]={textureFormat:dd,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ye,Cn,Ga,St]},t[pd]={textureFormat:pd,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[Ye,Cn,Ga,St]},t[ln]={textureFormat:ln,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[Ye,Cn,Ga,St,mb]},t[He]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[Ye,Cn,Ga,St,pb,gb]},t[Qo]={textureFormat:Qo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Ui,Xo]},t[M8]={textureFormat:Va,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[Ye]},t[P8]={textureFormat:Va,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[Hr]},t[L8]={textureFormat:Va,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[St,Cn]},t[N8]={textureFormat:Va,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[St]},t[O8]={textureFormat:Hi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ye]},t[z8]={textureFormat:Hi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Hr]},t[Q8]={textureFormat:Hi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Xo]},t[X8]={textureFormat:Hi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[yc]},t[K8]={textureFormat:Hi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ui]},t[J8]={textureFormat:Hi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[wc]},t[j8]={textureFormat:Ha,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[Ye]},t[$8]={textureFormat:Ha,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[Hr]},t[q8]={textureFormat:Ha,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[St,Cn]},t[W8]={textureFormat:Ha,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[St]},t[Z8]={textureFormat:Gi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ye]},t[Y8]={textureFormat:Gi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Hr]},t[U8]={textureFormat:Gi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Xo]},t[G8]={textureFormat:Gi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[yc]},t[H8]={textureFormat:Gi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ui]},t[V8]={textureFormat:Gi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[wc]},t[e5]={textureFormat:ln,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[Ye]},t[t5]={textureFormat:ln,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ye]},t[n5]={textureFormat:ln,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[Ye,mb]},t[r5]={textureFormat:ln,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Hr]},t[i5]={textureFormat:ln,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[St,Cn,M5]},t[o5]={textureFormat:ln,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[St,Cn,P5]},t[s5]={textureFormat:ln,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[St,Cn]},t[a5]={textureFormat:ln,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[St]},t[l5]={textureFormat:Vi,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ye]},t[u5]={textureFormat:Vi,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Hr]},t[c5]={textureFormat:Vi,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Xo]},t[f5]={textureFormat:Vi,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[yc]},t[h5]={textureFormat:Vi,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Ui]},t[d5]={textureFormat:Vi,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[wc]},t[p5]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ye]},t[g5]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ye]},t[m5]={textureFormat:He,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[Hr]},t[b5]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[Ye,gb,wd]},t[y5]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[Ye,pb]},t[w5]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[wd]},t[v5]={textureFormat:He,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[St,Cn]},t[A5]={textureFormat:He,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[St]},t[x5]={textureFormat:Vr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ye]},t[E5]={textureFormat:Vr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Hr]},t[_5]={textureFormat:Vr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[wd]},t[S5]={textureFormat:Vr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Xo]},t[C5]={textureFormat:Vr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[yc]},t[T5]={textureFormat:Vr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[wc]},t[k5]={textureFormat:Vr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Ui]},t[I5]={textureFormat:Qo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Xo,Ui]},t[B5]={textureFormat:Qo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ui]},t[D5]={textureFormat:Qo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[St]},t[F5]={textureFormat:gd,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[N5]},t[R5]={textureFormat:gd,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[L5]},Object.keys(t).forEach(function(n){const r=t[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,o){const s=r.type[o];r.bytesPerElementMap[s]=i})}),vd=t}return vd[e]}function z5(e,t){const n=vc(e);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[t];if(r===void 0)throw"unknown internal format";return r}function Ko(e){const t=vc(e);if(!t)throw"unknown internal format";return{format:t.textureFormat,type:t.type[0]}}function bb(e){return(e&e-1)===0}function U5(e,t,n,r){if(!Zo(e))return bb(t)&&bb(n);const i=vc(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function G5(e){const t=vc(e);if(!t)throw"unknown internal format";return t.textureFilterable}function yb(e,t,n){return Yo(t)?ld(t):n||Ye}function Ac(e,t,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const o=Math.sqrt(i/(t===gr?6:1));o%1===0?(n=o,r=o):(n=i,r=1)}else if(r){if(!n&&(n=i/r,n%1))throw"can't guess dimensions"}else if(r=i/n,r%1)throw"can't guess dimensions";return{width:n,height:r}}function Jo(e,t){t.colorspaceConversion!==void 0&&e.pixelStorei(D8,t.colorspaceConversion),t.premultiplyAlpha!==void 0&&e.pixelStorei(R8,t.premultiplyAlpha),t.flipY!==void 0&&e.pixelStorei(F8,t.flipY)}function wb(e){e.pixelStorei(yd,4),Zo(e)&&(e.pixelStorei(ub,0),e.pixelStorei(cb,0),e.pixelStorei(fb,0),e.pixelStorei(hb,0),e.pixelStorei(db,0))}function H5(e,t,n,r){r.minMag&&(n.call(e,t,md,r.minMag),n.call(e,t,bd,r.minMag)),r.min&&n.call(e,t,md,r.min),r.mag&&n.call(e,t,bd,r.mag),r.wrap&&(n.call(e,t,mc,r.wrap),n.call(e,t,bc,r.wrap),(t===Ur||J6(e,t))&&n.call(e,t,lb,r.wrap)),r.wrapR&&n.call(e,t,lb,r.wrapR),r.wrapS&&n.call(e,t,mc,r.wrapS),r.wrapT&&n.call(e,t,bc,r.wrapT),r.minLod&&n.call(e,t,T8,r.minLod),r.maxLod&&n.call(e,t,k8,r.maxLod),r.baseLevel&&n.call(e,t,I8,r.baseLevel),r.maxLevel&&n.call(e,t,B8,r.maxLevel)}function vb(e,t,n){const r=n.target||pr;e.bindTexture(r,t),H5(e,r,e.texParameteri,n)}function V5(e){return e=e||zr.textureColor,Yo(e)?e:new Uint8Array([e[0]*255,e[1]*255,e[2]*255,e[3]*255])}function Ad(e,t,n,r,i,o){n=n||zr.textureOptions,o=o||He;const s=n.target||pr;if(r=r||n.width,i=i||n.height,e.bindTexture(s,t),U5(e,r,i,o))e.generateMipmap(s);else{const a=G5(o)?A8:v8;e.texParameteri(s,md,a),e.texParameteri(s,bd,a),e.texParameteri(s,mc,pc),e.texParameteri(s,bc,pc)}}function ja(e){return e.auto===!0||e.auto===void 0&&e.level===void 0}function xd(e,t){return t=t||{},t.cubeFaceOrder||[gc,x8,E8,_8,S8,C8]}function Ed(e,t){const r=xd(e,t).map(function(i,o){return{face:i,ndx:o}});return r.sort(function(i,o){return i.face-o.face}),r}function Ab(e,t,n,r){r=r||zr.textureOptions;const i=r.target||pr,o=r.level||0;let s=n.width,a=n.height;const u=r.internalFormat||r.format||He,l=Ko(u),c=r.format||l.format,f=r.type||l.type;if(Jo(e,r),e.bindTexture(i,t),i===gr){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=ab();y?(y.canvas.width=p,y.canvas.height=p,s=p,a=p,Ed(e,r).forEach(function(w){const x=m[w.ndx*2+0]*p,S=m[w.ndx*2+1]*p;y.drawImage(n,x,S,p,p,0,0,p,p),e.texImage2D(w.face,o,u,c,f,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(s=p,a=p,Ed(e,r).forEach(function(w){const x=m[w.ndx*2+0]*p,S=m[w.ndx*2+1]*p;e.texImage2D(w.face,o,u,p,p,0,c,f,null),createImageBitmap(n,x,S,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(_){Jo(e,r),e.bindTexture(i,t),e.texImage2D(w.face,o,u,c,f,_),ja(r)&&Ad(e,t,r,s,a,u)})}))}else if(i===Ur||i===Gr){const h=Math.min(n.width,n.height),d=Math.max(n.width,n.height),p=d/h;if(p%1!==0)throw"can not compute 3D dimensions of element";const m=n.width===d?1:0,y=n.height===d?1:0;e.pixelStorei(yd,1),e.pixelStorei(ub,n.width),e.pixelStorei(cb,0),e.pixelStorei(db,0),e.texImage3D(i,o,u,h,h,h,0,c,f,null);for(let w=0;w<p;++w){const x=w*h*m,S=w*h*y;e.pixelStorei(fb,x),e.pixelStorei(hb,S),e.texSubImage3D(i,o,0,0,w,h,h,1,c,f,n)}wb(e)}else e.texImage2D(i,o,u,c,f,n);ja(r)&&Ad(e,t,r,s,a,u),vb(e,t,r)}function $a(){}function j5(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 $5(e,t){return t===void 0&&!j5(e)?"anonymous":t}function q5(e,t,n){n=n||$a;let r;if(t=t!==void 0?t:zr.crossOrigin,t=$5(e,t),typeof Image<"u"){r=new Image,t!==void 0&&(r.crossOrigin=t);const i=function(){r.removeEventListener("error",o),r.removeEventListener("load",s),r=null},o=function(){const u="couldn't load image: "+e;X6(u),n(u,r),i()},s=function(){n(null,r),i()};return r.addEventListener("error",o),r.addEventListener("load",s),r.src=e,r}else if(typeof ImageBitmap<"u"){let i,o;const s=function(){n(i,o)},a={};t&&(a.mode="cors"),fetch(e,a).then(function(u){if(!u.ok)throw u;return u.blob()}).then(function(u){return createImageBitmap(u,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(u){o=u,setTimeout(s)}).catch(function(u){i=u,setTimeout(s)}),r=null}return r}function xb(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof ImageData<"u"&&e instanceof ImageData||typeof HTMLElement<"u"&&e instanceof HTMLElement}function _d(e,t,n){return xb(e)?(setTimeout(function(){n(null,e)}),e):q5(e,t,n)}function Sd(e,t,n){n=n||zr.textureOptions;const r=n.target||pr;if(e.bindTexture(r,t),n.color===!1)return;const i=V5(n.color);if(r===gr)for(let o=0;o<6;++o)e.texImage2D(gc+o,0,He,1,1,0,He,Ye,i);else r===Ur||r===Gr?e.texImage3D(r,0,He,1,1,1,0,He,Ye,i):e.texImage2D(r,0,He,1,1,0,He,Ye,i)}function W5(e,t,n,r){return r=r||$a,n=n||zr.textureOptions,Sd(e,t,n),n=Object.assign({},n),_d(n.src,n.crossOrigin,function(o,s){o?r(o,t,s):(Ab(e,t,s,n),r(null,t,s))})}function Z5(e,t,n,r){r=r||$a;const i=n.src;if(i.length!==6)throw"there must be 6 urls for a cubemap";const o=n.level||0,s=n.internalFormat||n.format||He,a=Ko(s),u=n.format||a.format,l=n.type||Ye,c=n.target||pr;if(c!==gr)throw"target must be TEXTURE_CUBE_MAP";Sd(e,t,n),n=Object.assign({},n);let f=6;const h=[],d=xd(e,n);let p;function m(y){return function(w,x){--f,w?h.push(w):x.width!==x.height?h.push("cubemap face img is not a square: "+x.src):(Jo(e,n),e.bindTexture(c,t),f===5?xd().forEach(function(S){e.texImage2D(S,o,s,u,l,x)}):e.texImage2D(y,o,s,u,l,x),ja(n)&&e.generateMipmap(c)),f===0&&r(h.length?h:void 0,t,p)}}p=i.map(function(y,w){return _d(y,n.crossOrigin,m(d[w]))})}function Y5(e,t,n,r){r=r||$a;const i=n.src,o=n.internalFormat||n.format||He,s=Ko(o),a=n.format||s.format,u=n.type||Ye,l=n.target||Gr;if(l!==Ur&&l!==Gr)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";Sd(e,t,n),n=Object.assign({},n);let c=i.length;const f=[];let h;const d=n.level||0;let p=n.width,m=n.height;const y=i.length;let w=!0;function x(S){return function(_,T){if(--c,_)f.push(_);else{if(Jo(e,n),e.bindTexture(l,t),w){w=!1,p=n.width||T.width,m=n.height||T.height,e.texImage3D(l,d,o,p,m,y,0,a,u,null);for(let B=0;B<y;++B)e.texSubImage3D(l,d,0,0,B,p,m,1,a,u,T)}else{let B=T,I;(T.width!==p||T.height!==m)&&(I=ab(),B=I.canvas,I.canvas.width=p,I.canvas.height=m,I.drawImage(T,0,0,p,m)),e.texSubImage3D(l,d,0,0,S,p,m,1,a,u,B),I&&B===I.canvas&&(I.canvas.width=0,I.canvas.height=0)}ja(n)&&e.generateMipmap(l)}c===0&&r(f.length?f:void 0,t,h)}}h=i.map(function(S,_){return _d(S,n.crossOrigin,x(_))})}function Eb(e,t,n,r){r=r||zr.textureOptions;const i=r.target||pr;e.bindTexture(i,t);let o=r.width,s=r.height,a=r.depth;const u=r.level||0,l=r.internalFormat||r.format||He,c=Ko(l),f=r.format||c.format,h=r.type||yb(e,n,c.type);if(Yo(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=Q6(h);n=new y(n)}const d=z5(l,h),p=n.byteLength/d;if(p%1)throw"length wrong size for format: "+fd(e,f);let m;if(i===Ur||i===Gr)if(!o&&!s&&!a){const y=Math.cbrt(p);if(y%1!==0)throw"can't guess cube size of array of numElements: "+p;o=y,s=y,a=y}else o&&(!s||!a)?(m=Ac(e,i,s,a,p/o),s=m.width,a=m.height):s&&(!o||!a)?(m=Ac(e,i,o,a,p/s),o=m.width,a=m.height):(m=Ac(e,i,o,s,p/a),o=m.width,s=m.height);else m=Ac(e,i,o,s,p),o=m.width,s=m.height;if(wb(e),e.pixelStorei(yd,r.unpackAlignment||1),Jo(e,r),i===gr){const y=d/n.BYTES_PER_ELEMENT,w=p/6*y;Ed(e,r).forEach(x=>{const S=w*x.ndx,_=n.subarray(S,S+w);e.texImage2D(x.face,u,l,o,s,0,f,h,_)})}else i===Ur||i===Gr?e.texImage3D(i,u,l,o,s,a,0,f,h,n):e.texImage2D(i,u,l,o,s,0,f,h,n);return{width:o,height:s,depth:a,type:h}}function Q5(e,t,n){const r=n.target||pr;e.bindTexture(r,t);const i=n.level||0,o=n.internalFormat||n.format||He,s=Ko(o),a=n.format||s.format,u=n.type||s.type;if(Jo(e,n),r===gr)for(let l=0;l<6;++l)e.texImage2D(gc+l,i,o,n.width,n.height,0,a,u,null);else r===Ur||r===Gr?e.texImage3D(r,i,o,n.width,n.height,n.depth,0,a,u,null):e.texImage2D(r,i,o,n.width,n.height,0,a,u,null)}function qa(e,t,n){n=n||$a,t=t||zr.textureOptions;const r=e.createTexture(),i=t.target||pr;let o=t.width||1,s=t.height||1;const a=t.internalFormat||He;e.bindTexture(i,r),i===gr&&(e.texParameteri(i,mc,pc),e.texParameteri(i,bc,pc));let u=t.src;if(u)if(typeof u=="function"&&(u=u(e,t)),typeof u=="string")W5(e,r,t,n);else if(Yo(u)||Array.isArray(u)&&(typeof u[0]=="number"||Array.isArray(u[0])||Yo(u[0]))){const l=Eb(e,r,u,t);o=l.width,s=l.height}else Array.isArray(u)&&(typeof u[0]=="string"||xb(u[0]))?i===gr?Z5(e,r,t,n):Y5(e,r,t,n):(Ab(e,r,u,t),o=u.width,s=u.height);else Q5(e,r,t);return ja(t)&&Ad(e,r,t,o,s,a),vb(e,r,t),r}function X5(e,t,n,r,i,o){r=r||n.width,i=i||n.height,o=o||n.depth;const s=n.target||pr;e.bindTexture(s,t);const a=n.level||0,u=n.internalFormat||n.format||He,l=Ko(u),c=n.format||l.format;let f;const h=n.src;if(h&&(Yo(h)||Array.isArray(h)&&typeof h[0]=="number")?f=n.type||yb(e,h,l.type):f=n.type||l.type,s===gr)for(let d=0;d<6;++d)e.texImage2D(gc+d,a,u,r,i,0,c,f,null);else s===Ur||s===Gr?e.texImage3D(s,a,u,r,i,o,0,c,f,null):e.texImage2D(s,a,u,r,i,0,c,f,null)}const K5=J1,xc=33984,J5=35048,Ec=34962,eT=34963,Cd=35345,_b=35718,tT=35721,nT=35971,rT=35382,iT=35396,oT=35398,sT=35392,aT=35395,_c=5126,Sb=35664,Cb=35665,Tb=35666,Td=5124,kb=35667,Ib=35668,Bb=35669,Db=35670,Rb=35671,Fb=35672,Mb=35673,Pb=35674,Lb=35675,Nb=35676,lT=35678,uT=35680,cT=35679,fT=35682,hT=35685,dT=35686,pT=35687,gT=35688,mT=35689,bT=35690,yT=36289,wT=36292,vT=36293,kd=5125,Ob=36294,zb=36295,Ub=36296,AT=36298,xT=36299,ET=36300,_T=36303,ST=36306,CT=36307,TT=36308,kT=36311,Sc=3553,Cc=34067,Id=32879,Tc=35866,ue={};function Gb(e,t){return ue[t].bindPoint}function IT(e,t){return function(n){e.uniform1f(t,n)}}function BT(e,t){return function(n){e.uniform1fv(t,n)}}function DT(e,t){return function(n){e.uniform2fv(t,n)}}function RT(e,t){return function(n){e.uniform3fv(t,n)}}function FT(e,t){return function(n){e.uniform4fv(t,n)}}function Hb(e,t){return function(n){e.uniform1i(t,n)}}function Vb(e,t){return function(n){e.uniform1iv(t,n)}}function jb(e,t){return function(n){e.uniform2iv(t,n)}}function $b(e,t){return function(n){e.uniform3iv(t,n)}}function qb(e,t){return function(n){e.uniform4iv(t,n)}}function MT(e,t){return function(n){e.uniform1ui(t,n)}}function PT(e,t){return function(n){e.uniform1uiv(t,n)}}function LT(e,t){return function(n){e.uniform2uiv(t,n)}}function NT(e,t){return function(n){e.uniform3uiv(t,n)}}function OT(e,t){return function(n){e.uniform4uiv(t,n)}}function zT(e,t){return function(n){e.uniformMatrix2fv(t,!1,n)}}function UT(e,t){return function(n){e.uniformMatrix3fv(t,!1,n)}}function GT(e,t){return function(n){e.uniformMatrix4fv(t,!1,n)}}function HT(e,t){return function(n){e.uniformMatrix2x3fv(t,!1,n)}}function VT(e,t){return function(n){e.uniformMatrix3x2fv(t,!1,n)}}function jT(e,t){return function(n){e.uniformMatrix2x4fv(t,!1,n)}}function $T(e,t){return function(n){e.uniformMatrix4x2fv(t,!1,n)}}function qT(e,t){return function(n){e.uniformMatrix3x4fv(t,!1,n)}}function WT(e,t){return function(n){e.uniformMatrix4x3fv(t,!1,n)}}function Dt(e,t,n,r){const i=Gb(e,t);return Zo(e)?function(o){let s,a;dc(e,o)?(s=o,a=null):(s=o.texture,a=o.sampler),e.uniform1i(r,n),e.activeTexture(xc+n),e.bindTexture(i,s),e.bindSampler(n,a)}:function(o){e.uniform1i(r,n),e.activeTexture(xc+n),e.bindTexture(i,o)}}function Rt(e,t,n,r,i){const o=Gb(e,t),s=new Int32Array(i);for(let a=0;a<i;++a)s[a]=n+a;return Zo(e)?function(a){e.uniform1iv(r,s),a.forEach(function(u,l){e.activeTexture(xc+s[l]);let c,f;dc(e,u)?(c=u,f=null):(c=u.texture,f=u.sampler),e.bindSampler(n,f),e.bindTexture(o,c)})}:function(a){e.uniform1iv(r,s),a.forEach(function(u,l){e.activeTexture(xc+s[l]),e.bindTexture(o,u)})}}ue[_c]={Type:Float32Array,size:4,setter:IT,arraySetter:BT},ue[Sb]={Type:Float32Array,size:8,setter:DT,cols:2},ue[Cb]={Type:Float32Array,size:12,setter:RT,cols:3},ue[Tb]={Type:Float32Array,size:16,setter:FT,cols:4},ue[Td]={Type:Int32Array,size:4,setter:Hb,arraySetter:Vb},ue[kb]={Type:Int32Array,size:8,setter:jb,cols:2},ue[Ib]={Type:Int32Array,size:12,setter:$b,cols:3},ue[Bb]={Type:Int32Array,size:16,setter:qb,cols:4},ue[kd]={Type:Uint32Array,size:4,setter:MT,arraySetter:PT},ue[Ob]={Type:Uint32Array,size:8,setter:LT,cols:2},ue[zb]={Type:Uint32Array,size:12,setter:NT,cols:3},ue[Ub]={Type:Uint32Array,size:16,setter:OT,cols:4},ue[Db]={Type:Uint32Array,size:4,setter:Hb,arraySetter:Vb},ue[Rb]={Type:Uint32Array,size:8,setter:jb,cols:2},ue[Fb]={Type:Uint32Array,size:12,setter:$b,cols:3},ue[Mb]={Type:Uint32Array,size:16,setter:qb,cols:4},ue[Pb]={Type:Float32Array,size:32,setter:zT,rows:2,cols:2},ue[Lb]={Type:Float32Array,size:48,setter:UT,rows:3,cols:3},ue[Nb]={Type:Float32Array,size:64,setter:GT,rows:4,cols:4},ue[hT]={Type:Float32Array,size:32,setter:HT,rows:2,cols:3},ue[dT]={Type:Float32Array,size:32,setter:jT,rows:2,cols:4},ue[pT]={Type:Float32Array,size:48,setter:VT,rows:3,cols:2},ue[gT]={Type:Float32Array,size:48,setter:qT,rows:3,cols:4},ue[mT]={Type:Float32Array,size:64,setter:$T,rows:4,cols:2},ue[bT]={Type:Float32Array,size:64,setter:WT,rows:4,cols:3},ue[lT]={Type:null,size:0,setter:Dt,arraySetter:Rt,bindPoint:Sc},ue[uT]={Type:null,size:0,setter:Dt,arraySetter:Rt,bindPoint:Cc},ue[cT]={Type:null,size:0,setter:Dt,arraySetter:Rt,bindPoint:Id},ue[fT]={Type:null,size:0,setter:Dt,arraySetter:Rt,bindPoint:Sc},ue[yT]={Type:null,size:0,setter:Dt,arraySetter:Rt,bindPoint:Tc},ue[wT]={Type:null,size:0,setter:Dt,arraySetter:Rt,bindPoint:Tc},ue[vT]={Type:null,size:0,setter:Dt,arraySetter:Rt,bindPoint:Cc},ue[AT]={Type:null,size:0,setter:Dt,arraySetter:Rt,bindPoint:Sc},ue[xT]={Type:null,size:0,setter:Dt,arraySetter:Rt,bindPoint:Id},ue[ET]={Type:null,size:0,setter:Dt,arraySetter:Rt,bindPoint:Cc},ue[_T]={Type:null,size:0,setter:Dt,arraySetter:Rt,bindPoint:Tc},ue[ST]={Type:null,size:0,setter:Dt,arraySetter:Rt,bindPoint:Sc},ue[CT]={Type:null,size:0,setter:Dt,arraySetter:Rt,bindPoint:Id},ue[TT]={Type:null,size:0,setter:Dt,arraySetter:Rt,bindPoint:Cc},ue[kT]={Type:null,size:0,setter:Dt,arraySetter:Rt,bindPoint:Tc};function kc(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(Ec,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribPointer(t,n.numComponents||n.size,n.type||_c,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function jr(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(Ec,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||Td,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Ic(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(Ec,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||kd,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Bd(e,t,n){const r=n.size,i=n.count;return function(o){e.bindBuffer(Ec,o.buffer);const s=o.size||o.numComponents||r,a=s/i,u=o.type||_c,c=ue[u].size*s,f=o.normalize||!1,h=o.offset||0,d=c/i;for(let p=0;p<i;++p)e.enableVertexAttribArray(t+p),e.vertexAttribPointer(t+p,a,u,f,c,h+d*p),o.divisor!==void 0&&e.vertexAttribDivisor(t+p,o.divisor)}}const ot={};ot[_c]={size:4,setter:kc},ot[Sb]={size:8,setter:kc},ot[Cb]={size:12,setter:kc},ot[Tb]={size:16,setter:kc},ot[Td]={size:4,setter:jr},ot[kb]={size:8,setter:jr},ot[Ib]={size:12,setter:jr},ot[Bb]={size:16,setter:jr},ot[kd]={size:4,setter:Ic},ot[Ob]={size:8,setter:Ic},ot[zb]={size:12,setter:Ic},ot[Ub]={size:16,setter:Ic},ot[Db]={size:4,setter:jr},ot[Rb]={size:8,setter:jr},ot[Fb]={size:12,setter:jr},ot[Mb]={size:16,setter:jr},ot[Pb]={size:4,setter:Bd,count:2},ot[Lb]={size:9,setter:Bd,count:3},ot[Nb]={size:16,setter:Bd,count:4};function Wb(e){const t=e.name;return t.startsWith("gl_")||t.startsWith("webgl_")}const ZT=/(\.|\[|]|\w+)/g,YT=e=>e>="0"&&e<="9";function Zb(e,t,n,r){const i=e.split(ZT).filter(a=>a!=="");let o=0,s="";for(;;){const a=i[o++];s+=a;const u=YT(a[0]),l=u?parseInt(a):a;if(u&&(s+=i[o++]),o===i.length){n[l]=t;break}else{const f=i[o++],h=f==="[",d=n[l]||(h?[]:{});n[l]=d,n=d,r[s]=r[s]||function(p){return function(m){Jb(p,m)}}(d),s+=f}}}function QT(e,t){let n=0;function r(a,u,l){const c=u.name.endsWith("[0]"),f=u.type,h=ue[f];if(!h)throw new Error(`unknown type: 0x${f.toString(16)}`);let d;if(h.bindPoint){const p=n;n+=u.size,c?d=h.arraySetter(e,f,p,l,u.size):d=h.setter(e,f,p,l,u.size)}else h.arraySetter&&c?d=h.arraySetter(e,l):d=h.setter(e,l);return d.location=l,d}const i={},o={},s=e.getProgramParameter(t,_b);for(let a=0;a<s;++a){const u=e.getActiveUniform(t,a);if(Wb(u))continue;let l=u.name;l.endsWith("[0]")&&(l=l.substr(0,l.length-3));const c=e.getUniformLocation(t,u.name);if(c){const f=r(t,u,c);i[l]=f,Zb(l,f,o,i)}}return i}function XT(e,t){const n={},r=e.getProgramParameter(t,nT);for(let i=0;i<r;++i){const o=e.getTransformFeedbackVarying(t,i);n[o.name]={index:i,type:o.type,size:o.size}}return n}function KT(e,t){const n=e.getProgramParameter(t,_b),r=[],i=[];for(let a=0;a<n;++a){i.push(a),r.push({});const u=e.getActiveUniform(t,a);r[a].name=u.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(a){const u=a[0],l=a[1];e.getActiveUniforms(t,i,e[u]).forEach(function(c,f){r[f][l]=c})});const o={},s=e.getProgramParameter(t,rT);for(let a=0;a<s;++a){const u=e.getActiveUniformBlockName(t,a),l={index:e.getUniformBlockIndex(t,u),usedByVertexShader:e.getActiveUniformBlockParameter(t,a,iT),usedByFragmentShader:e.getActiveUniformBlockParameter(t,a,oT),size:e.getActiveUniformBlockParameter(t,a,sT),uniformIndices:e.getActiveUniformBlockParameter(t,a,aT)};l.used=l.usedByVertexShader||l.usedByFragmentShader,o[u]=l}return{blockSpecs:o,uniformData:r}}const Yb=/\[\d+\]\.$/,JT=(e,t)=>((e+(t-1))/t|0)*t;function ek(e,t,n,r){if(t||n){r=r||1;const o=e.length/4;return function(s){let a=0,u=0;for(let l=0;l<o;++l){for(let c=0;c<r;++c)e[a++]=s[u++];a+=4-r}}}else return function(i){i.length?e.set(i):e[0]=i}}function tk(e,t,n,r){const i=n.blockSpecs,o=n.uniformData,s=i[r];if(!s)return K5("no uniform block object named:",r),{name:r,uniforms:{}};const a=new ArrayBuffer(s.size),u=e.createBuffer(),l=s.index;e.bindBuffer(Cd,u),e.uniformBlockBinding(t,s.index,l);let c=r+".";Yb.test(c)&&(c=c.replace(Yb,"."));const f={},h={},d={};return s.uniformIndices.forEach(function(p){const m=o[p];let y=m.name;y.startsWith(c)&&(y=y.substr(c.length));const w=y.endsWith("[0]");w&&(y=y.substr(0,y.length-3));const x=ue[m.type],S=x.Type,_=w?JT(x.size,16)*m.size:x.size*m.size,T=new S(a,m.offset,_/S.BYTES_PER_ELEMENT);f[y]=T;const B=ek(T,w,x.rows,x.cols);h[y]=B,Zb(y,B,d,h)}),{name:r,array:a,asFloat:new Float32Array(a),buffer:u,uniforms:f,setters:h}}function Qb(e,t,n){return tk(e,t.program,t.uniformBlockSpec,n)}function Xb(e,t,n){const i=(t.uniformBlockSpec||t).blockSpecs[n.name];if(i){const o=i.index;return e.bindBufferRange(Cd,o,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function Kb(e,t,n){Xb(e,t,n)&&e.bufferData(Cd,n.array,J5)}function Wa(e,t){const n=e.setters;for(const r in t){const i=n[r];if(i){const o=t[r];i(o)}}}function Jb(e,t){for(const n in t){const r=e[n];typeof r=="function"?r(t[n]):Jb(e[n],t[n])}}function es(e,...t){const n=e.uniformSetters||e,r=t.length;for(let i=0;i<r;++i){const o=t[i];if(Array.isArray(o)){const s=o.length;for(let a=0;a<s;++a)es(n,o[a])}else for(const s in o){const a=n[s];a&&a(o[s])}}}function nk(e,t){const n={},r=e.getProgramParameter(t,tT);for(let i=0;i<r;++i){const o=e.getActiveAttrib(t,i);if(Wb(o))continue;const s=e.getAttribLocation(t,o.name),a=ot[o.type],u=a.setter(e,s,a);u.location=s,n[o.name]=u}return n}function rk(e,t){for(const n in t){const r=e[n];r&&r(t[n])}}function ji(e,t,n){n.vertexArrayObject?e.bindVertexArray(n.vertexArrayObject):(rk(t.attribSetters||t,n.attribs),n.indices&&e.bindBuffer(eT,n.indices))}function ik(e,t){const n=QT(e,t),r=nk(e,t),i={program:t,uniformSetters:n,attribSetters:r};return Zo(e)&&(i.uniformBlockSpec=KT(e,t),i.transformFeedbackInfo=XT(e,t)),i}const ok=4,e2=5123;function Bc(e,t,n,r,i,o){n=n===void 0?ok:n;const s=t.indices,a=t.elementType,u=r===void 0?t.numElements:r;i=i===void 0?0:i,a||s?o!==void 0?e.drawElementsInstanced(n,u,a===void 0?e2:t.elementType,i,o):e.drawElements(n,u,a===void 0?e2:t.elementType,i):o!==void 0?e.drawArraysInstanced(n,i,u,o):e.drawArrays(n,i,u)}const sk=36160,$i=36161,ak=3553,lk=5121,uk=6402,ck=6408,fk=33190,hk=36012,dk=35056,pk=36013,gk=32854,mk=32855,bk=36194,t2=33189,n2=6401,r2=36168,Dd=34041,Rd=36064,Dc=36096,i2=36128,Fd=33306,Md=33071,Pd=9729,o2=[{format:ck,type:lk,min:Pd,wrap:Md},{format:Dd}],Tn={};Tn[Dd]=Fd,Tn[n2]=i2,Tn[r2]=i2,Tn[uk]=Dc,Tn[t2]=Dc,Tn[fk]=Dc,Tn[hk]=Dc,Tn[dk]=Fd,Tn[pk]=Fd;function yk(e,t){return Tn[e]||Tn[t]}const $r={};$r[gk]=!0,$r[mk]=!0,$r[bk]=!0,$r[Dd]=!0,$r[t2]=!0,$r[n2]=!0,$r[r2]=!0;function wk(e){return $r[e]}const vk=32;function Ak(e){return e>=Rd&&e<Rd+vk}function xk(e,t,n,r){const i=sk,o=e.createFramebuffer();e.bindFramebuffer(i,o),n=n||e.drawingBufferWidth,r=r||e.drawingBufferHeight,t=t||o2;const s=[],a={framebuffer:o,attachments:[],width:n,height:r};return t.forEach(function(u,l){let c=u.attachment;const f=u.samples,h=u.format;let d=u.attachmentPoint||yk(h,u.internalFormat);if(d||(d=Rd+l),Ak(d)&&s.push(d),!c)if(f!==void 0||wk(h))c=e.createRenderbuffer(),e.bindRenderbuffer($i,c),f>1?e.renderbufferStorageMultisample($i,f,h,n,r):e.renderbufferStorage($i,h,n,r);else{const p=Object.assign({},u);p.width=n,p.height=r,p.auto===void 0&&(p.auto=!1,p.min=p.min||p.minMag||Pd,p.mag=p.mag||p.minMag||Pd,p.wrapS=p.wrapS||p.wrap||Md,p.wrapT=p.wrapT||p.wrap||Md),c=qa(e,p)}if(eb(e,c))e.framebufferRenderbuffer(i,d,$i,c);else if(dc(e,c))u.layer!==void 0?e.framebufferTextureLayer(i,d,c,u.level||0,u.layer):e.framebufferTexture2D(i,d,u.target||ak,c,u.level||0);else throw new Error("unknown attachment type");a.attachments.push(c)}),e.drawBuffers&&e.drawBuffers(s),a}function Ek(e,t,n,r,i){r=r||e.drawingBufferWidth,i=i||e.drawingBufferHeight,t.width=r,t.height=i,n=n||o2,n.forEach(function(o,s){const a=t.attachments[s],u=o.format,l=o.samples;if(l!==void 0||eb(e,a))e.bindRenderbuffer($i,a),l>1?e.renderbufferStorageMultisample($i,l,u,r,i):e.renderbufferStorage($i,u,r,i);else if(dc(e,a))X5(e,a,o,r,i);else throw new Error("unknown attachment type")})}function _k(e,t,n){const r=e.createVertexArray();return e.bindVertexArray(r),t.length||(t=[t]),t.forEach(function(i){ji(e,i,n)}),e.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const Sk=/^(.*?)_/;function Ck(e,t){fd(e,0);const n=e.getExtension(t);if(n){const r={},i=Sk.exec(t)[1],o="_"+i;for(const s in n){const a=n[s],u=typeof a=="function",l=u?i:o;let c=s;s.endsWith(l)&&(c=s.substring(0,s.length-l.length)),e[c]!==void 0?!u&&e[c]!==a&&J1(c,e[c],a,s):u?e[c]=function(f){return function(){return f.apply(n,arguments)}}(a):(e[c]=a,r[c]=a)}r.constructor={name:n.constructor.name},fd(r,0)}return n}const s2=["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 a2(e){for(let t=0;t<s2.length;++t)Ck(e,s2[t])}function Tk(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){a2(r);break}return r}function kk(e,t){return Tk(e,t)}const Ik=`out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out float vHalfStrokeWidth;out vec4 vCornerRadii;
|
|
227
|
+
see: http://github.com/greggman/twgl.js for details */const rd=5120,Ua=5121,id=5122,od=5123,sd=5124,ad=5125,ld=5126,H6=32819,V6=32820,j6=33635,$6=5131,q6=33640,W6=35899,Z6=35902,Y6=36269,Q6=34042,eb={};{const e=eb;e[rd]=Int8Array,e[Ua]=Uint8Array,e[id]=Int16Array,e[od]=Uint16Array,e[sd]=Int32Array,e[ad]=Uint32Array,e[ld]=Float32Array,e[H6]=Uint16Array,e[V6]=Uint16Array,e[j6]=Uint16Array,e[$6]=Uint16Array,e[q6]=Uint32Array,e[W6]=Uint32Array,e[Z6]=Uint32Array,e[Y6]=Uint32Array,e[Q6]=Uint32Array}function ud(e){if(e instanceof Int8Array)return rd;if(e instanceof Uint8Array||e instanceof Uint8ClampedArray)return Ua;if(e instanceof Int16Array)return id;if(e instanceof Uint16Array)return od;if(e instanceof Int32Array)return sd;if(e instanceof Uint32Array)return ad;if(e instanceof Float32Array)return ld;throw new Error("unsupported typed array type")}function X6(e){if(e===Int8Array)return rd;if(e===Uint8Array||e===Uint8ClampedArray)return Ua;if(e===Int16Array)return id;if(e===Uint16Array)return od;if(e===Int32Array)return sd;if(e===Uint32Array)return ad;if(e===Float32Array)return ld;throw new Error("unsupported typed array type")}function K6(e){const t=eb[e];if(!t)throw new Error("unknown gl type");return t}const dc=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 J6(...e){console.error(...e)}function tb(...e){console.warn(...e)}function e8(e,t){return typeof WebGLBuffer<"u"&&t instanceof WebGLBuffer}function nb(e,t){return typeof WebGLRenderbuffer<"u"&&t instanceof WebGLRenderbuffer}function pc(e,t){return typeof WebGLTexture<"u"&&t instanceof WebGLTexture}function t8(e,t){return typeof WebGLSampler<"u"&&t instanceof WebGLSampler}const rb=35044,Gn=34962,n8=34963,r8=34660,i8=5120,o8=5121,s8=5122,a8=5123,l8=5124,u8=5125,c8=5126,ib={attribPrefix:""};function ob(e,t,n,r,i){e.bindBuffer(t,n),e.bufferData(t,r,i||rb)}function sb(e,t,n,r){if(e8(e,t))return t;n=n||Gn;const i=e.createBuffer();return ob(e,n,i,t,r),i}function ab(e){return e==="indices"}function f8(e){return e instanceof Int8Array||e instanceof Uint8Array}function h8(e){return e===Int8Array||e===Uint8Array}function d8(e){return e.length?e:e.data}const p8=/coord|texture/i,g8=/color|colour/i;function lb(e,t){let n;if(p8.test(e)?n=2:g8.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 m8(e,t){return e.numComponents||e.size||lb(t,d8(e).length)}function cd(e,t){if(dc(e))return e;if(dc(e.data))return e.data;Array.isArray(e)&&(e={data:e});let n=e.type;return n||(ab(t)?n=Uint16Array:n=Float32Array),new n(e.data)}function b8(e,t){const n={};return Object.keys(t).forEach(function(r){if(!ab(r)){const i=t[r],o=i.attrib||i.name||i.attribName||ib.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!dc(i.value))throw new Error("array.value is not array or typedarray");n[o]={value:i.value}}else{let s,a,u,l;if(i.buffer&&i.buffer instanceof WebGLBuffer)s=i.buffer,l=i.numComponents||i.size,a=i.type,u=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const c=i.data||i,f=i.type||Float32Array,h=c*f.BYTES_PER_ELEMENT;a=X6(f),u=i.normalize!==void 0?i.normalize:h8(f),l=i.numComponents||i.size||lb(r,c),s=e.createBuffer(),e.bindBuffer(Gn,s),e.bufferData(Gn,h,i.drawType||rb)}else{const c=cd(i,r);s=sb(e,c,void 0,i.drawType),a=ud(c),u=i.normalize!==void 0?i.normalize:f8(c),l=m8(i,r)}n[o]={buffer:s,numComponents:l,type:a,normalize:u,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),e.bindBuffer(Gn,null),n}function y8(e,t,n,r){n=cd(n),r!==void 0?(e.bindBuffer(Gn,t.buffer),e.bufferSubData(Gn,r,n)):ob(e,Gn,t.buffer,n,t.drawType)}function w8(e,t){return t===i8||t===o8?1:t===s8||t===a8?2:t===l8||t===u8||t===c8?4:0}const fd=["position","positions","a_position"];function v8(e,t){let n,r;for(r=0;r<fd.length&&(n=fd[r],!(n in t||(n=ib.attribPrefix+n,n in t)));++r);r===fd.length&&(n=Object.keys(t)[0]);const i=t[n];if(!i.buffer)return 1;e.bindBuffer(Gn,i.buffer);const o=e.getBufferParameter(Gn,r8);e.bindBuffer(Gn,null);const s=w8(e,i.type),a=o/s,u=i.numComponents||i.size,l=a/u;if(l%1!==0)throw new Error(`numComponents ${u} not correct for length ${length}`);return l}function A8(e,t,n){const r=b8(e,t),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const o=t.indices;if(o){const s=cd(o,"indices");i.indices=sb(e,s,n8),i.numElements=s.length,i.elementType=ud(s)}else i.numElements||(i.numElements=v8(e,i.attribs));return i}function Zo(e){return!!e.texStorage2D}const hd=function(){const e={},t={};function n(r){const i=r.constructor.name;if(!e[i]){for(const o in r)if(typeof r[o]=="number"){const s=t[r[o]];t[r[o]]=s?`${s} | ${o}`:o}e[i]=!0}}return function(i,o){return n(i),t[o]||(typeof o=="number"?`0x${o.toString(16)}`:o)}}(),zr={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},Yo=dc,ub=function(){let e;return function(){return e=e||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),e}}(),dd=6406,ln=6407,He=6408,pd=6409,gd=6410,Qo=6402,md=34041,gc=33071,x8=9728,E8=9729,pr=3553,gr=34067,Ur=32879,Gr=35866,mc=34069,_8=34070,S8=34071,C8=34072,T8=34073,k8=34074,bd=10241,yd=10240,bc=10242,yc=10243,cb=32882,I8=33082,B8=33083,D8=33084,R8=33085,wd=3317,fb=3314,hb=32878,db=3316,pb=3315,gb=32877,F8=37443,M8=37441,P8=37440,L8=33321,N8=36756,O8=33325,z8=33326,U8=33330,G8=33329,H8=33338,V8=33337,j8=33340,$8=33339,q8=33323,W8=36757,Z8=33327,Y8=33328,Q8=33336,X8=33335,K8=33332,J8=33331,e5=33334,t5=33333,n5=32849,r5=35905,i5=36194,o5=36758,s5=35898,a5=35901,l5=34843,u5=34837,c5=36221,f5=36239,h5=36215,d5=36233,p5=36209,g5=36227,m5=32856,b5=35907,y5=36759,w5=32855,v5=32854,A5=32857,x5=34842,E5=34836,_5=36220,S5=36238,C5=36975,T5=36214,k5=36232,I5=36226,B5=36208,D5=33189,R5=33190,F5=36012,M5=36013,P5=35056,Hr=5120,Ye=5121,wc=5122,Xo=5123,vc=5124,Ui=5125,St=5126,mb=32819,bb=32820,yb=33635,Cn=5131,Ga=36193,vd=33640,L5=35899,N5=35902,O5=36269,z5=34042,Ha=33319,Gi=33320,Va=6403,Hi=36244,Vi=36248,Vr=36249,U5={};{const e=U5;e[dd]={numColorComponents:1},e[pd]={numColorComponents:1},e[gd]={numColorComponents:2},e[ln]={numColorComponents:3},e[He]={numColorComponents:4},e[Va]={numColorComponents:1},e[Hi]={numColorComponents:1},e[Ha]={numColorComponents:2},e[Gi]={numColorComponents:2},e[ln]={numColorComponents:3},e[Vi]={numColorComponents:3},e[He]={numColorComponents:4},e[Vr]={numColorComponents:4},e[Qo]={numColorComponents:1},e[md]={numColorComponents:2}}let Ad;function Ac(e){if(!Ad){const t={};t[dd]={textureFormat:dd,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ye,Cn,Ga,St]},t[pd]={textureFormat:pd,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[Ye,Cn,Ga,St]},t[gd]={textureFormat:gd,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[Ye,Cn,Ga,St]},t[ln]={textureFormat:ln,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[Ye,Cn,Ga,St,yb]},t[He]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[Ye,Cn,Ga,St,mb,bb]},t[Qo]={textureFormat:Qo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Ui,Xo]},t[L8]={textureFormat:Va,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[Ye]},t[N8]={textureFormat:Va,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[Hr]},t[O8]={textureFormat:Va,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[St,Cn]},t[z8]={textureFormat:Va,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[St]},t[U8]={textureFormat:Hi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Ye]},t[G8]={textureFormat:Hi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[Hr]},t[K8]={textureFormat:Hi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Xo]},t[J8]={textureFormat:Hi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[wc]},t[e5]={textureFormat:Hi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ui]},t[t5]={textureFormat:Hi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[vc]},t[q8]={textureFormat:Ha,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[Ye]},t[W8]={textureFormat:Ha,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[Hr]},t[Z8]={textureFormat:Ha,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[St,Cn]},t[Y8]={textureFormat:Ha,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[St]},t[Q8]={textureFormat:Gi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ye]},t[X8]={textureFormat:Gi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Hr]},t[H8]={textureFormat:Gi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Xo]},t[V8]={textureFormat:Gi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[wc]},t[j8]={textureFormat:Gi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ui]},t[$8]={textureFormat:Gi,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[vc]},t[n5]={textureFormat:ln,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[Ye]},t[r5]={textureFormat:ln,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Ye]},t[i5]={textureFormat:ln,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[Ye,yb]},t[o5]={textureFormat:ln,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[Hr]},t[s5]={textureFormat:ln,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[St,Cn,L5]},t[a5]={textureFormat:ln,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[St,Cn,N5]},t[l5]={textureFormat:ln,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[St,Cn]},t[u5]={textureFormat:ln,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[St]},t[c5]={textureFormat:Vi,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Ye]},t[f5]={textureFormat:Vi,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[Hr]},t[h5]={textureFormat:Vi,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Xo]},t[d5]={textureFormat:Vi,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[wc]},t[p5]={textureFormat:Vi,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Ui]},t[g5]={textureFormat:Vi,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[vc]},t[m5]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ye]},t[b5]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Ye]},t[y5]={textureFormat:He,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[Hr]},t[w5]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[Ye,bb,vd]},t[v5]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[Ye,mb]},t[A5]={textureFormat:He,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[vd]},t[x5]={textureFormat:He,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[St,Cn]},t[E5]={textureFormat:He,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[St]},t[_5]={textureFormat:Vr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ye]},t[S5]={textureFormat:Vr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Hr]},t[C5]={textureFormat:Vr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[vd]},t[T5]={textureFormat:Vr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Xo]},t[k5]={textureFormat:Vr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[wc]},t[I5]={textureFormat:Vr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[vc]},t[B5]={textureFormat:Vr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Ui]},t[D5]={textureFormat:Qo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Xo,Ui]},t[R5]={textureFormat:Qo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ui]},t[F5]={textureFormat:Qo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[St]},t[P5]={textureFormat:md,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[z5]},t[M5]={textureFormat:md,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[O5]},Object.keys(t).forEach(function(n){const r=t[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,o){const s=r.type[o];r.bytesPerElementMap[s]=i})}),Ad=t}return Ad[e]}function G5(e,t){const n=Ac(e);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[t];if(r===void 0)throw"unknown internal format";return r}function Ko(e){const t=Ac(e);if(!t)throw"unknown internal format";return{format:t.textureFormat,type:t.type[0]}}function wb(e){return(e&e-1)===0}function H5(e,t,n,r){if(!Zo(e))return wb(t)&&wb(n);const i=Ac(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function V5(e){const t=Ac(e);if(!t)throw"unknown internal format";return t.textureFilterable}function vb(e,t,n){return Yo(t)?ud(t):n||Ye}function xc(e,t,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const o=Math.sqrt(i/(t===gr?6:1));o%1===0?(n=o,r=o):(n=i,r=1)}else if(r){if(!n&&(n=i/r,n%1))throw"can't guess dimensions"}else if(r=i/n,r%1)throw"can't guess dimensions";return{width:n,height:r}}function Jo(e,t){t.colorspaceConversion!==void 0&&e.pixelStorei(F8,t.colorspaceConversion),t.premultiplyAlpha!==void 0&&e.pixelStorei(M8,t.premultiplyAlpha),t.flipY!==void 0&&e.pixelStorei(P8,t.flipY)}function Ab(e){e.pixelStorei(wd,4),Zo(e)&&(e.pixelStorei(fb,0),e.pixelStorei(hb,0),e.pixelStorei(db,0),e.pixelStorei(pb,0),e.pixelStorei(gb,0))}function j5(e,t,n,r){r.minMag&&(n.call(e,t,bd,r.minMag),n.call(e,t,yd,r.minMag)),r.min&&n.call(e,t,bd,r.min),r.mag&&n.call(e,t,yd,r.mag),r.wrap&&(n.call(e,t,bc,r.wrap),n.call(e,t,yc,r.wrap),(t===Ur||t8(e,t))&&n.call(e,t,cb,r.wrap)),r.wrapR&&n.call(e,t,cb,r.wrapR),r.wrapS&&n.call(e,t,bc,r.wrapS),r.wrapT&&n.call(e,t,yc,r.wrapT),r.minLod&&n.call(e,t,I8,r.minLod),r.maxLod&&n.call(e,t,B8,r.maxLod),r.baseLevel&&n.call(e,t,D8,r.baseLevel),r.maxLevel&&n.call(e,t,R8,r.maxLevel)}function xb(e,t,n){const r=n.target||pr;e.bindTexture(r,t),j5(e,r,e.texParameteri,n)}function $5(e){return e=e||zr.textureColor,Yo(e)?e:new Uint8Array([e[0]*255,e[1]*255,e[2]*255,e[3]*255])}function xd(e,t,n,r,i,o){n=n||zr.textureOptions,o=o||He;const s=n.target||pr;if(r=r||n.width,i=i||n.height,e.bindTexture(s,t),H5(e,r,i,o))e.generateMipmap(s);else{const a=V5(o)?E8:x8;e.texParameteri(s,bd,a),e.texParameteri(s,yd,a),e.texParameteri(s,bc,gc),e.texParameteri(s,yc,gc)}}function ja(e){return e.auto===!0||e.auto===void 0&&e.level===void 0}function Ed(e,t){return t=t||{},t.cubeFaceOrder||[mc,_8,S8,C8,T8,k8]}function _d(e,t){const r=Ed(e,t).map(function(i,o){return{face:i,ndx:o}});return r.sort(function(i,o){return i.face-o.face}),r}function Eb(e,t,n,r){r=r||zr.textureOptions;const i=r.target||pr,o=r.level||0;let s=n.width,a=n.height;const u=r.internalFormat||r.format||He,l=Ko(u),c=r.format||l.format,f=r.type||l.type;if(Jo(e,r),e.bindTexture(i,t),i===gr){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=ub();y?(y.canvas.width=p,y.canvas.height=p,s=p,a=p,_d(e,r).forEach(function(w){const x=m[w.ndx*2+0]*p,S=m[w.ndx*2+1]*p;y.drawImage(n,x,S,p,p,0,0,p,p),e.texImage2D(w.face,o,u,c,f,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(s=p,a=p,_d(e,r).forEach(function(w){const x=m[w.ndx*2+0]*p,S=m[w.ndx*2+1]*p;e.texImage2D(w.face,o,u,p,p,0,c,f,null),createImageBitmap(n,x,S,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(_){Jo(e,r),e.bindTexture(i,t),e.texImage2D(w.face,o,u,c,f,_),ja(r)&&xd(e,t,r,s,a,u)})}))}else if(i===Ur||i===Gr){const h=Math.min(n.width,n.height),d=Math.max(n.width,n.height),p=d/h;if(p%1!==0)throw"can not compute 3D dimensions of element";const m=n.width===d?1:0,y=n.height===d?1:0;e.pixelStorei(wd,1),e.pixelStorei(fb,n.width),e.pixelStorei(hb,0),e.pixelStorei(gb,0),e.texImage3D(i,o,u,h,h,h,0,c,f,null);for(let w=0;w<p;++w){const x=w*h*m,S=w*h*y;e.pixelStorei(db,x),e.pixelStorei(pb,S),e.texSubImage3D(i,o,0,0,w,h,h,1,c,f,n)}Ab(e)}else e.texImage2D(i,o,u,c,f,n);ja(r)&&xd(e,t,r,s,a,u),xb(e,t,r)}function $a(){}function q5(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 W5(e,t){return t===void 0&&!q5(e)?"anonymous":t}function Z5(e,t,n){n=n||$a;let r;if(t=t!==void 0?t:zr.crossOrigin,t=W5(e,t),typeof Image<"u"){r=new Image,t!==void 0&&(r.crossOrigin=t);const i=function(){r.removeEventListener("error",o),r.removeEventListener("load",s),r=null},o=function(){const u="couldn't load image: "+e;J6(u),n(u,r),i()},s=function(){n(null,r),i()};return r.addEventListener("error",o),r.addEventListener("load",s),r.src=e,r}else if(typeof ImageBitmap<"u"){let i,o;const s=function(){n(i,o)},a={};t&&(a.mode="cors"),fetch(e,a).then(function(u){if(!u.ok)throw u;return u.blob()}).then(function(u){return createImageBitmap(u,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(u){o=u,setTimeout(s)}).catch(function(u){i=u,setTimeout(s)}),r=null}return r}function _b(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof ImageData<"u"&&e instanceof ImageData||typeof HTMLElement<"u"&&e instanceof HTMLElement}function Sd(e,t,n){return _b(e)?(setTimeout(function(){n(null,e)}),e):Z5(e,t,n)}function Cd(e,t,n){n=n||zr.textureOptions;const r=n.target||pr;if(e.bindTexture(r,t),n.color===!1)return;const i=$5(n.color);if(r===gr)for(let o=0;o<6;++o)e.texImage2D(mc+o,0,He,1,1,0,He,Ye,i);else r===Ur||r===Gr?e.texImage3D(r,0,He,1,1,1,0,He,Ye,i):e.texImage2D(r,0,He,1,1,0,He,Ye,i)}function Y5(e,t,n,r){return r=r||$a,n=n||zr.textureOptions,Cd(e,t,n),n=Object.assign({},n),Sd(n.src,n.crossOrigin,function(o,s){o?r(o,t,s):(Eb(e,t,s,n),r(null,t,s))})}function Q5(e,t,n,r){r=r||$a;const i=n.src;if(i.length!==6)throw"there must be 6 urls for a cubemap";const o=n.level||0,s=n.internalFormat||n.format||He,a=Ko(s),u=n.format||a.format,l=n.type||Ye,c=n.target||pr;if(c!==gr)throw"target must be TEXTURE_CUBE_MAP";Cd(e,t,n),n=Object.assign({},n);let f=6;const h=[],d=Ed(e,n);let p;function m(y){return function(w,x){--f,w?h.push(w):x.width!==x.height?h.push("cubemap face img is not a square: "+x.src):(Jo(e,n),e.bindTexture(c,t),f===5?Ed().forEach(function(S){e.texImage2D(S,o,s,u,l,x)}):e.texImage2D(y,o,s,u,l,x),ja(n)&&e.generateMipmap(c)),f===0&&r(h.length?h:void 0,t,p)}}p=i.map(function(y,w){return Sd(y,n.crossOrigin,m(d[w]))})}function X5(e,t,n,r){r=r||$a;const i=n.src,o=n.internalFormat||n.format||He,s=Ko(o),a=n.format||s.format,u=n.type||Ye,l=n.target||Gr;if(l!==Ur&&l!==Gr)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";Cd(e,t,n),n=Object.assign({},n);let c=i.length;const f=[];let h;const d=n.level||0;let p=n.width,m=n.height;const y=i.length;let w=!0;function x(S){return function(_,T){if(--c,_)f.push(_);else{if(Jo(e,n),e.bindTexture(l,t),w){w=!1,p=n.width||T.width,m=n.height||T.height,e.texImage3D(l,d,o,p,m,y,0,a,u,null);for(let B=0;B<y;++B)e.texSubImage3D(l,d,0,0,B,p,m,1,a,u,T)}else{let B=T,I;(T.width!==p||T.height!==m)&&(I=ub(),B=I.canvas,I.canvas.width=p,I.canvas.height=m,I.drawImage(T,0,0,p,m)),e.texSubImage3D(l,d,0,0,S,p,m,1,a,u,B),I&&B===I.canvas&&(I.canvas.width=0,I.canvas.height=0)}ja(n)&&e.generateMipmap(l)}c===0&&r(f.length?f:void 0,t,h)}}h=i.map(function(S,_){return Sd(S,n.crossOrigin,x(_))})}function Sb(e,t,n,r){r=r||zr.textureOptions;const i=r.target||pr;e.bindTexture(i,t);let o=r.width,s=r.height,a=r.depth;const u=r.level||0,l=r.internalFormat||r.format||He,c=Ko(l),f=r.format||c.format,h=r.type||vb(e,n,c.type);if(Yo(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=K6(h);n=new y(n)}const d=G5(l,h),p=n.byteLength/d;if(p%1)throw"length wrong size for format: "+hd(e,f);let m;if(i===Ur||i===Gr)if(!o&&!s&&!a){const y=Math.cbrt(p);if(y%1!==0)throw"can't guess cube size of array of numElements: "+p;o=y,s=y,a=y}else o&&(!s||!a)?(m=xc(e,i,s,a,p/o),s=m.width,a=m.height):s&&(!o||!a)?(m=xc(e,i,o,a,p/s),o=m.width,a=m.height):(m=xc(e,i,o,s,p/a),o=m.width,s=m.height);else m=xc(e,i,o,s,p),o=m.width,s=m.height;if(Ab(e),e.pixelStorei(wd,r.unpackAlignment||1),Jo(e,r),i===gr){const y=d/n.BYTES_PER_ELEMENT,w=p/6*y;_d(e,r).forEach(x=>{const S=w*x.ndx,_=n.subarray(S,S+w);e.texImage2D(x.face,u,l,o,s,0,f,h,_)})}else i===Ur||i===Gr?e.texImage3D(i,u,l,o,s,a,0,f,h,n):e.texImage2D(i,u,l,o,s,0,f,h,n);return{width:o,height:s,depth:a,type:h}}function K5(e,t,n){const r=n.target||pr;e.bindTexture(r,t);const i=n.level||0,o=n.internalFormat||n.format||He,s=Ko(o),a=n.format||s.format,u=n.type||s.type;if(Jo(e,n),r===gr)for(let l=0;l<6;++l)e.texImage2D(mc+l,i,o,n.width,n.height,0,a,u,null);else r===Ur||r===Gr?e.texImage3D(r,i,o,n.width,n.height,n.depth,0,a,u,null):e.texImage2D(r,i,o,n.width,n.height,0,a,u,null)}function qa(e,t,n){n=n||$a,t=t||zr.textureOptions;const r=e.createTexture(),i=t.target||pr;let o=t.width||1,s=t.height||1;const a=t.internalFormat||He;e.bindTexture(i,r),i===gr&&(e.texParameteri(i,bc,gc),e.texParameteri(i,yc,gc));let u=t.src;if(u)if(typeof u=="function"&&(u=u(e,t)),typeof u=="string")Y5(e,r,t,n);else if(Yo(u)||Array.isArray(u)&&(typeof u[0]=="number"||Array.isArray(u[0])||Yo(u[0]))){const l=Sb(e,r,u,t);o=l.width,s=l.height}else Array.isArray(u)&&(typeof u[0]=="string"||_b(u[0]))?i===gr?Q5(e,r,t,n):X5(e,r,t,n):(Eb(e,r,u,t),o=u.width,s=u.height);else K5(e,r,t);return ja(t)&&xd(e,r,t,o,s,a),xb(e,r,t),r}function J5(e,t,n,r,i,o){r=r||n.width,i=i||n.height,o=o||n.depth;const s=n.target||pr;e.bindTexture(s,t);const a=n.level||0,u=n.internalFormat||n.format||He,l=Ko(u),c=n.format||l.format;let f;const h=n.src;if(h&&(Yo(h)||Array.isArray(h)&&typeof h[0]=="number")?f=n.type||vb(e,h,l.type):f=n.type||l.type,s===gr)for(let d=0;d<6;++d)e.texImage2D(mc+d,a,u,r,i,0,c,f,null);else s===Ur||s===Gr?e.texImage3D(s,a,u,r,i,o,0,c,f,null):e.texImage2D(s,a,u,r,i,0,c,f,null)}const eT=tb,Ec=33984,tT=35048,_c=34962,nT=34963,Td=35345,Cb=35718,rT=35721,iT=35971,oT=35382,sT=35396,aT=35398,lT=35392,uT=35395,Sc=5126,Tb=35664,kb=35665,Ib=35666,kd=5124,Bb=35667,Db=35668,Rb=35669,Fb=35670,Mb=35671,Pb=35672,Lb=35673,Nb=35674,Ob=35675,zb=35676,cT=35678,fT=35680,hT=35679,dT=35682,pT=35685,gT=35686,mT=35687,bT=35688,yT=35689,wT=35690,vT=36289,AT=36292,xT=36293,Id=5125,Ub=36294,Gb=36295,Hb=36296,ET=36298,_T=36299,ST=36300,CT=36303,TT=36306,kT=36307,IT=36308,BT=36311,Cc=3553,Tc=34067,Bd=32879,kc=35866,ue={};function Vb(e,t){return ue[t].bindPoint}function DT(e,t){return function(n){e.uniform1f(t,n)}}function RT(e,t){return function(n){e.uniform1fv(t,n)}}function FT(e,t){return function(n){e.uniform2fv(t,n)}}function MT(e,t){return function(n){e.uniform3fv(t,n)}}function PT(e,t){return function(n){e.uniform4fv(t,n)}}function jb(e,t){return function(n){e.uniform1i(t,n)}}function $b(e,t){return function(n){e.uniform1iv(t,n)}}function qb(e,t){return function(n){e.uniform2iv(t,n)}}function Wb(e,t){return function(n){e.uniform3iv(t,n)}}function Zb(e,t){return function(n){e.uniform4iv(t,n)}}function LT(e,t){return function(n){e.uniform1ui(t,n)}}function NT(e,t){return function(n){e.uniform1uiv(t,n)}}function OT(e,t){return function(n){e.uniform2uiv(t,n)}}function zT(e,t){return function(n){e.uniform3uiv(t,n)}}function UT(e,t){return function(n){e.uniform4uiv(t,n)}}function GT(e,t){return function(n){e.uniformMatrix2fv(t,!1,n)}}function HT(e,t){return function(n){e.uniformMatrix3fv(t,!1,n)}}function VT(e,t){return function(n){e.uniformMatrix4fv(t,!1,n)}}function jT(e,t){return function(n){e.uniformMatrix2x3fv(t,!1,n)}}function $T(e,t){return function(n){e.uniformMatrix3x2fv(t,!1,n)}}function qT(e,t){return function(n){e.uniformMatrix2x4fv(t,!1,n)}}function WT(e,t){return function(n){e.uniformMatrix4x2fv(t,!1,n)}}function ZT(e,t){return function(n){e.uniformMatrix3x4fv(t,!1,n)}}function YT(e,t){return function(n){e.uniformMatrix4x3fv(t,!1,n)}}function Rt(e,t,n,r){const i=Vb(e,t);return Zo(e)?function(o){let s,a;pc(e,o)?(s=o,a=null):(s=o.texture,a=o.sampler),e.uniform1i(r,n),e.activeTexture(Ec+n),e.bindTexture(i,s),e.bindSampler(n,a)}:function(o){e.uniform1i(r,n),e.activeTexture(Ec+n),e.bindTexture(i,o)}}function Ft(e,t,n,r,i){const o=Vb(e,t),s=new Int32Array(i);for(let a=0;a<i;++a)s[a]=n+a;return Zo(e)?function(a){e.uniform1iv(r,s),a.forEach(function(u,l){e.activeTexture(Ec+s[l]);let c,f;pc(e,u)?(c=u,f=null):(c=u.texture,f=u.sampler),e.bindSampler(n,f),e.bindTexture(o,c)})}:function(a){e.uniform1iv(r,s),a.forEach(function(u,l){e.activeTexture(Ec+s[l]),e.bindTexture(o,u)})}}ue[Sc]={Type:Float32Array,size:4,setter:DT,arraySetter:RT},ue[Tb]={Type:Float32Array,size:8,setter:FT,cols:2},ue[kb]={Type:Float32Array,size:12,setter:MT,cols:3},ue[Ib]={Type:Float32Array,size:16,setter:PT,cols:4},ue[kd]={Type:Int32Array,size:4,setter:jb,arraySetter:$b},ue[Bb]={Type:Int32Array,size:8,setter:qb,cols:2},ue[Db]={Type:Int32Array,size:12,setter:Wb,cols:3},ue[Rb]={Type:Int32Array,size:16,setter:Zb,cols:4},ue[Id]={Type:Uint32Array,size:4,setter:LT,arraySetter:NT},ue[Ub]={Type:Uint32Array,size:8,setter:OT,cols:2},ue[Gb]={Type:Uint32Array,size:12,setter:zT,cols:3},ue[Hb]={Type:Uint32Array,size:16,setter:UT,cols:4},ue[Fb]={Type:Uint32Array,size:4,setter:jb,arraySetter:$b},ue[Mb]={Type:Uint32Array,size:8,setter:qb,cols:2},ue[Pb]={Type:Uint32Array,size:12,setter:Wb,cols:3},ue[Lb]={Type:Uint32Array,size:16,setter:Zb,cols:4},ue[Nb]={Type:Float32Array,size:32,setter:GT,rows:2,cols:2},ue[Ob]={Type:Float32Array,size:48,setter:HT,rows:3,cols:3},ue[zb]={Type:Float32Array,size:64,setter:VT,rows:4,cols:4},ue[pT]={Type:Float32Array,size:32,setter:jT,rows:2,cols:3},ue[gT]={Type:Float32Array,size:32,setter:qT,rows:2,cols:4},ue[mT]={Type:Float32Array,size:48,setter:$T,rows:3,cols:2},ue[bT]={Type:Float32Array,size:48,setter:ZT,rows:3,cols:4},ue[yT]={Type:Float32Array,size:64,setter:WT,rows:4,cols:2},ue[wT]={Type:Float32Array,size:64,setter:YT,rows:4,cols:3},ue[cT]={Type:null,size:0,setter:Rt,arraySetter:Ft,bindPoint:Cc},ue[fT]={Type:null,size:0,setter:Rt,arraySetter:Ft,bindPoint:Tc},ue[hT]={Type:null,size:0,setter:Rt,arraySetter:Ft,bindPoint:Bd},ue[dT]={Type:null,size:0,setter:Rt,arraySetter:Ft,bindPoint:Cc},ue[vT]={Type:null,size:0,setter:Rt,arraySetter:Ft,bindPoint:kc},ue[AT]={Type:null,size:0,setter:Rt,arraySetter:Ft,bindPoint:kc},ue[xT]={Type:null,size:0,setter:Rt,arraySetter:Ft,bindPoint:Tc},ue[ET]={Type:null,size:0,setter:Rt,arraySetter:Ft,bindPoint:Cc},ue[_T]={Type:null,size:0,setter:Rt,arraySetter:Ft,bindPoint:Bd},ue[ST]={Type:null,size:0,setter:Rt,arraySetter:Ft,bindPoint:Tc},ue[CT]={Type:null,size:0,setter:Rt,arraySetter:Ft,bindPoint:kc},ue[TT]={Type:null,size:0,setter:Rt,arraySetter:Ft,bindPoint:Cc},ue[kT]={Type:null,size:0,setter:Rt,arraySetter:Ft,bindPoint:Bd},ue[IT]={Type:null,size:0,setter:Rt,arraySetter:Ft,bindPoint:Tc},ue[BT]={Type:null,size:0,setter:Rt,arraySetter:Ft,bindPoint:kc};function Ic(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(_c,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribPointer(t,n.numComponents||n.size,n.type||Sc,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function jr(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(_c,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||kd,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Bc(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(_c,n.buffer),e.enableVertexAttribArray(t),e.vertexAttribIPointer(t,n.numComponents||n.size,n.type||Id,n.stride||0,n.offset||0),n.divisor!==void 0&&e.vertexAttribDivisor(t,n.divisor)}}function Dd(e,t,n){const r=n.size,i=n.count;return function(o){e.bindBuffer(_c,o.buffer);const s=o.size||o.numComponents||r,a=s/i,u=o.type||Sc,c=ue[u].size*s,f=o.normalize||!1,h=o.offset||0,d=c/i;for(let p=0;p<i;++p)e.enableVertexAttribArray(t+p),e.vertexAttribPointer(t+p,a,u,f,c,h+d*p),o.divisor!==void 0&&e.vertexAttribDivisor(t+p,o.divisor)}}const it={};it[Sc]={size:4,setter:Ic},it[Tb]={size:8,setter:Ic},it[kb]={size:12,setter:Ic},it[Ib]={size:16,setter:Ic},it[kd]={size:4,setter:jr},it[Bb]={size:8,setter:jr},it[Db]={size:12,setter:jr},it[Rb]={size:16,setter:jr},it[Id]={size:4,setter:Bc},it[Ub]={size:8,setter:Bc},it[Gb]={size:12,setter:Bc},it[Hb]={size:16,setter:Bc},it[Fb]={size:4,setter:jr},it[Mb]={size:8,setter:jr},it[Pb]={size:12,setter:jr},it[Lb]={size:16,setter:jr},it[Nb]={size:4,setter:Dd,count:2},it[Ob]={size:9,setter:Dd,count:3},it[zb]={size:16,setter:Dd,count:4};function Yb(e){const t=e.name;return t.startsWith("gl_")||t.startsWith("webgl_")}const QT=/(\.|\[|]|\w+)/g,XT=e=>e>="0"&&e<="9";function Qb(e,t,n,r){const i=e.split(QT).filter(a=>a!=="");let o=0,s="";for(;;){const a=i[o++];s+=a;const u=XT(a[0]),l=u?parseInt(a):a;if(u&&(s+=i[o++]),o===i.length){n[l]=t;break}else{const f=i[o++],h=f==="[",d=n[l]||(h?[]:{});n[l]=d,n=d,r[s]=r[s]||function(p){return function(m){t2(p,m)}}(d),s+=f}}}function KT(e,t){let n=0;function r(a,u,l){const c=u.name.endsWith("[0]"),f=u.type,h=ue[f];if(!h)throw new Error(`unknown type: 0x${f.toString(16)}`);let d;if(h.bindPoint){const p=n;n+=u.size,c?d=h.arraySetter(e,f,p,l,u.size):d=h.setter(e,f,p,l,u.size)}else h.arraySetter&&c?d=h.arraySetter(e,l):d=h.setter(e,l);return d.location=l,d}const i={},o={},s=e.getProgramParameter(t,Cb);for(let a=0;a<s;++a){const u=e.getActiveUniform(t,a);if(Yb(u))continue;let l=u.name;l.endsWith("[0]")&&(l=l.substr(0,l.length-3));const c=e.getUniformLocation(t,u.name);if(c){const f=r(t,u,c);i[l]=f,Qb(l,f,o,i)}}return i}function JT(e,t){const n={},r=e.getProgramParameter(t,iT);for(let i=0;i<r;++i){const o=e.getTransformFeedbackVarying(t,i);n[o.name]={index:i,type:o.type,size:o.size}}return n}function ek(e,t){const n=e.getProgramParameter(t,Cb),r=[],i=[];for(let a=0;a<n;++a){i.push(a),r.push({});const u=e.getActiveUniform(t,a);r[a].name=u.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(a){const u=a[0],l=a[1];e.getActiveUniforms(t,i,e[u]).forEach(function(c,f){r[f][l]=c})});const o={},s=e.getProgramParameter(t,oT);for(let a=0;a<s;++a){const u=e.getActiveUniformBlockName(t,a),l={index:e.getUniformBlockIndex(t,u),usedByVertexShader:e.getActiveUniformBlockParameter(t,a,sT),usedByFragmentShader:e.getActiveUniformBlockParameter(t,a,aT),size:e.getActiveUniformBlockParameter(t,a,lT),uniformIndices:e.getActiveUniformBlockParameter(t,a,uT)};l.used=l.usedByVertexShader||l.usedByFragmentShader,o[u]=l}return{blockSpecs:o,uniformData:r}}const Xb=/\[\d+\]\.$/,tk=(e,t)=>((e+(t-1))/t|0)*t;function nk(e,t,n,r){if(t||n){r=r||1;const o=e.length/4;return function(s){let a=0,u=0;for(let l=0;l<o;++l){for(let c=0;c<r;++c)e[a++]=s[u++];a+=4-r}}}else return function(i){i.length?e.set(i):e[0]=i}}function rk(e,t,n,r){const i=n.blockSpecs,o=n.uniformData,s=i[r];if(!s)return eT("no uniform block object named:",r),{name:r,uniforms:{}};const a=new ArrayBuffer(s.size),u=e.createBuffer(),l=s.index;e.bindBuffer(Td,u),e.uniformBlockBinding(t,s.index,l);let c=r+".";Xb.test(c)&&(c=c.replace(Xb,"."));const f={},h={},d={};return s.uniformIndices.forEach(function(p){const m=o[p];let y=m.name;y.startsWith(c)&&(y=y.substr(c.length));const w=y.endsWith("[0]");w&&(y=y.substr(0,y.length-3));const x=ue[m.type],S=x.Type,_=w?tk(x.size,16)*m.size:x.size*m.size,T=new S(a,m.offset,_/S.BYTES_PER_ELEMENT);f[y]=T;const B=nk(T,w,x.rows,x.cols);h[y]=B,Qb(y,B,d,h)}),{name:r,array:a,asFloat:new Float32Array(a),buffer:u,uniforms:f,setters:h}}function Kb(e,t,n){return rk(e,t.program,t.uniformBlockSpec,n)}function Jb(e,t,n){const i=(t.uniformBlockSpec||t).blockSpecs[n.name];if(i){const o=i.index;return e.bindBufferRange(Td,o,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function e2(e,t,n){Jb(e,t,n)&&e.bufferData(Td,n.array,tT)}function Wa(e,t){const n=e.setters;for(const r in t){const i=n[r];if(i){const o=t[r];i(o)}}}function t2(e,t){for(const n in t){const r=e[n];typeof r=="function"?r(t[n]):t2(e[n],t[n])}}function es(e,...t){const n=e.uniformSetters||e,r=t.length;for(let i=0;i<r;++i){const o=t[i];if(Array.isArray(o)){const s=o.length;for(let a=0;a<s;++a)es(n,o[a])}else for(const s in o){const a=n[s];a&&a(o[s])}}}function ik(e,t){const n={},r=e.getProgramParameter(t,rT);for(let i=0;i<r;++i){const o=e.getActiveAttrib(t,i);if(Yb(o))continue;const s=e.getAttribLocation(t,o.name),a=it[o.type],u=a.setter(e,s,a);u.location=s,n[o.name]=u}return n}function ok(e,t){for(const n in t){const r=e[n];r&&r(t[n])}}function ji(e,t,n){n.vertexArrayObject?e.bindVertexArray(n.vertexArrayObject):(ok(t.attribSetters||t,n.attribs),n.indices&&e.bindBuffer(nT,n.indices))}function sk(e,t){const n=KT(e,t),r=ik(e,t),i={program:t,uniformSetters:n,attribSetters:r};return Zo(e)&&(i.uniformBlockSpec=ek(e,t),i.transformFeedbackInfo=JT(e,t)),i}const ak=4,n2=5123;function Dc(e,t,n,r,i,o){n=n===void 0?ak:n;const s=t.indices,a=t.elementType,u=r===void 0?t.numElements:r;i=i===void 0?0:i,a||s?o!==void 0?e.drawElementsInstanced(n,u,a===void 0?n2:t.elementType,i,o):e.drawElements(n,u,a===void 0?n2:t.elementType,i):o!==void 0?e.drawArraysInstanced(n,i,u,o):e.drawArrays(n,i,u)}const lk=36160,$i=36161,uk=3553,ck=5121,fk=6402,hk=6408,dk=33190,pk=36012,gk=35056,mk=36013,bk=32854,yk=32855,wk=36194,r2=33189,i2=6401,o2=36168,Rd=34041,Fd=36064,Rc=36096,s2=36128,Md=33306,Pd=33071,Ld=9729,a2=[{format:hk,type:ck,min:Ld,wrap:Pd},{format:Rd}],Tn={};Tn[Rd]=Md,Tn[i2]=s2,Tn[o2]=s2,Tn[fk]=Rc,Tn[r2]=Rc,Tn[dk]=Rc,Tn[pk]=Rc,Tn[gk]=Md,Tn[mk]=Md;function vk(e,t){return Tn[e]||Tn[t]}const $r={};$r[bk]=!0,$r[yk]=!0,$r[wk]=!0,$r[Rd]=!0,$r[r2]=!0,$r[i2]=!0,$r[o2]=!0;function Ak(e){return $r[e]}const xk=32;function Ek(e){return e>=Fd&&e<Fd+xk}function _k(e,t,n,r){const i=lk,o=e.createFramebuffer();e.bindFramebuffer(i,o),n=n||e.drawingBufferWidth,r=r||e.drawingBufferHeight,t=t||a2;const s=[],a={framebuffer:o,attachments:[],width:n,height:r};return t.forEach(function(u,l){let c=u.attachment;const f=u.samples,h=u.format;let d=u.attachmentPoint||vk(h,u.internalFormat);if(d||(d=Fd+l),Ek(d)&&s.push(d),!c)if(f!==void 0||Ak(h))c=e.createRenderbuffer(),e.bindRenderbuffer($i,c),f>1?e.renderbufferStorageMultisample($i,f,h,n,r):e.renderbufferStorage($i,h,n,r);else{const p=Object.assign({},u);p.width=n,p.height=r,p.auto===void 0&&(p.auto=!1,p.min=p.min||p.minMag||Ld,p.mag=p.mag||p.minMag||Ld,p.wrapS=p.wrapS||p.wrap||Pd,p.wrapT=p.wrapT||p.wrap||Pd),c=qa(e,p)}if(nb(e,c))e.framebufferRenderbuffer(i,d,$i,c);else if(pc(e,c))u.layer!==void 0?e.framebufferTextureLayer(i,d,c,u.level||0,u.layer):e.framebufferTexture2D(i,d,u.target||uk,c,u.level||0);else throw new Error("unknown attachment type");a.attachments.push(c)}),e.drawBuffers&&e.drawBuffers(s),a}function Sk(e,t,n,r,i){r=r||e.drawingBufferWidth,i=i||e.drawingBufferHeight,t.width=r,t.height=i,n=n||a2,n.forEach(function(o,s){const a=t.attachments[s],u=o.format,l=o.samples;if(l!==void 0||nb(e,a))e.bindRenderbuffer($i,a),l>1?e.renderbufferStorageMultisample($i,l,u,r,i):e.renderbufferStorage($i,u,r,i);else if(pc(e,a))J5(e,a,o,r,i);else throw new Error("unknown attachment type")})}function Ck(e,t,n){const r=e.createVertexArray();return e.bindVertexArray(r),t.length||(t=[t]),t.forEach(function(i){ji(e,i,n)}),e.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const Tk=/^(.*?)_/;function kk(e,t){hd(e,0);const n=e.getExtension(t);if(n){const r={},i=Tk.exec(t)[1],o="_"+i;for(const s in n){const a=n[s],u=typeof a=="function",l=u?i:o;let c=s;s.endsWith(l)&&(c=s.substring(0,s.length-l.length)),e[c]!==void 0?!u&&e[c]!==a&&tb(c,e[c],a,s):u?e[c]=function(f){return function(){return f.apply(n,arguments)}}(a):(e[c]=a,r[c]=a)}r.constructor={name:n.constructor.name},hd(r,0)}return n}const l2=["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 u2(e){for(let t=0;t<l2.length;++t)kk(e,l2[t])}function Ik(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){u2(r);break}return r}function Bk(e,t){return Ik(e,t)}const Dk=`out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out float vHalfStrokeWidth;out vec4 vCornerRadii;
|
|
228
228
|
#if defined(ROUNDED_CORNERS) || defined(STROKED)
|
|
229
229
|
out vec2 vPosInPixels;
|
|
230
230
|
#endif
|
|
@@ -232,7 +232,7 @@ out vec2 vHalfSizeInPixels;/***Clamps the minimumSize and returns an opacity tha
|
|
|
232
232
|
#if defined(ROUNDED_CORNERS) || defined(STROKED)
|
|
233
233
|
float aaPadding=1.0/uDevicePixelRatio;float strokeWidth=getScaled_strokeWidth();float strokeOpacity=getScaled_strokeOpacity()*opaFactor;vec2 centeredFrac=frac-0.5;vec2 expand=centeredFrac*(strokeWidth+aaPadding)/uViewportSize;pos+=expand;vec2 sizeInPixels=size*uViewportSize;vPosInPixels=(centeredFrac+expand/size)*sizeInPixels;vHalfSizeInPixels=sizeInPixels/2.0;vCornerRadii=min(cornerRadii,min(vHalfSizeInPixels.x,vHalfSizeInPixels.y));vHalfStrokeWidth=strokeWidth/2.0;vStrokeColor=vec4(getScaled_stroke()*strokeOpacity,strokeOpacity);
|
|
234
234
|
#endif
|
|
235
|
-
gl_Position=unitToNdc(pos);float fillOpacity=getScaled_fillOpacity()*opaFactor;vFillColor=vec4(getScaled_fill()*fillOpacity,fillOpacity);setupPicking();}`,
|
|
235
|
+
gl_Position=unitToNdc(pos);float fillOpacity=getScaled_fillOpacity()*opaFactor;vFillColor=vec4(getScaled_fill()*fillOpacity,fillOpacity);setupPicking();}`,Rk=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
|
|
236
236
|
in vec2 vPosInPixels;
|
|
237
237
|
#endif
|
|
238
238
|
in vec2 vHalfSizeInPixels;in lowp vec4 vFillColor;in lowp vec4 vStrokeColor;in float vHalfStrokeWidth;in vec4 vCornerRadii;out lowp vec4 fragColor;float sdRoundedBox(vec2 p,vec2 b,vec4 r){r.xy=p.x>0.0 ? r.xy : r.zw;r.x=p.y>0.0 ? r.x : r.y;vec2 q=abs(p)-b+r.x;return min(max(q.x,q.y),0.0)+length(max(q,0.0))-r.x;}float sdSharpBox(vec2 p,vec2 b){vec2 q=abs(p)-b;return max(q.x,q.y);}void main(void){
|
|
@@ -246,60 +246,66 @@ fragColor=distanceToColor(d,vFillColor,vStrokeColor,vHalfStrokeWidth);if(fragCol
|
|
|
246
246
|
#else
|
|
247
247
|
fragColor=vFillColor;
|
|
248
248
|
#endif
|
|
249
|
-
if(uPickingEnabled){fragColor=vPickingColor;}}`,
|
|
249
|
+
if(uPickingEnabled){fragColor=vPickingColor;}}`,Fk=`layout(std140)uniform Mark{uniform float uMinWidth;uniform float uMinHeight;uniform float uMinOpacity;uniform float uCornerRadiusTopRight;uniform float uCornerRadiusBottomRight;uniform float uCornerRadiusTopLeft;uniform float uCornerRadiusBottomLeft;
|
|
250
250
|
#pragma markUniforms
|
|
251
|
-
};`;function Hn(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function qr(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 Ld=Symbol("implicit");function Nd(){var e=new ur,t=[],n=[],r=Ld;function i(o){let s=e.get(o);if(s===void 0){if(r!==Ld)return r;e.set(o,s=t.push(o)-1)}return n[s%n.length]}return i.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new ur;for(const s of o)e.has(s)||e.set(s,t.push(s)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return Nd(t,n).unknown(r)},Hn.apply(i,arguments),i}function ts(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Za(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Wr(){}var qi=.7,ns=1/qi,rs="\\s*([+-]?\\d+)\\s*",Ya="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Vn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Rk=/^#([0-9a-f]{3,8})$/,Fk=new RegExp(`^rgb\\(${rs},${rs},${rs}\\)$`),Mk=new RegExp(`^rgb\\(${Vn},${Vn},${Vn}\\)$`),Pk=new RegExp(`^rgba\\(${rs},${rs},${rs},${Ya}\\)$`),Lk=new RegExp(`^rgba\\(${Vn},${Vn},${Vn},${Ya}\\)$`),Nk=new RegExp(`^hsl\\(${Ya},${Vn},${Vn}\\)$`),Ok=new RegExp(`^hsla\\(${Ya},${Vn},${Vn},${Ya}\\)$`),l2={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};ts(Wr,Zr,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:u2,formatHex:u2,formatHex8:zk,formatHsl:Uk,formatRgb:c2,toString:c2});function u2(){return this.rgb().formatHex()}function zk(){return this.rgb().formatHex8()}function Uk(){return g2(this).formatHsl()}function c2(){return this.rgb().formatRgb()}function Zr(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=Rk.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?f2(t):n===3?new ht(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Rc(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Rc(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=Fk.exec(e))?new ht(t[1],t[2],t[3],1):(t=Mk.exec(e))?new ht(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Pk.exec(e))?Rc(t[1],t[2],t[3],t[4]):(t=Lk.exec(e))?Rc(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Nk.exec(e))?p2(t[1],t[2]/100,t[3]/100,1):(t=Ok.exec(e))?p2(t[1],t[2]/100,t[3]/100,t[4]):l2.hasOwnProperty(e)?f2(l2[e]):e==="transparent"?new ht(NaN,NaN,NaN,0):null}function f2(e){return new ht(e>>16&255,e>>8&255,e&255,1)}function Rc(e,t,n,r){return r<=0&&(e=t=n=NaN),new ht(e,t,n,r)}function Od(e){return e instanceof Wr||(e=Zr(e)),e?(e=e.rgb(),new ht(e.r,e.g,e.b,e.opacity)):new ht}function Fc(e,t,n,r){return arguments.length===1?Od(e):new ht(e,t,n,r??1)}function ht(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}ts(ht,Fc,Za(Wr,{brighter(e){return e=e==null?ns:Math.pow(ns,e),new ht(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?qi:Math.pow(qi,e),new ht(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ht(Wi(this.r),Wi(this.g),Wi(this.b),Mc(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:h2,formatHex:h2,formatHex8:Gk,formatRgb:d2,toString:d2}));function h2(){return`#${Zi(this.r)}${Zi(this.g)}${Zi(this.b)}`}function Gk(){return`#${Zi(this.r)}${Zi(this.g)}${Zi(this.b)}${Zi((isNaN(this.opacity)?1:this.opacity)*255)}`}function d2(){const e=Mc(this.opacity);return`${e===1?"rgb(":"rgba("}${Wi(this.r)}, ${Wi(this.g)}, ${Wi(this.b)}${e===1?")":`, ${e})`}`}function Mc(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Wi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Zi(e){return e=Wi(e),(e<16?"0":"")+e.toString(16)}function p2(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new kn(e,t,n,r)}function g2(e){if(e instanceof kn)return new kn(e.h,e.s,e.l,e.opacity);if(e instanceof Wr||(e=Zr(e)),!e)return new kn;if(e instanceof kn)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),s=NaN,a=o-i,u=(o+i)/2;return a?(t===o?s=(n-r)/a+(n<r)*6:n===o?s=(r-t)/a+2:s=(t-n)/a+4,a/=u<.5?o+i:2-o-i,s*=60):a=u>0&&u<1?0:s,new kn(s,a,u,e.opacity)}function zd(e,t,n,r){return arguments.length===1?g2(e):new kn(e,t,n,r??1)}function kn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}ts(kn,zd,Za(Wr,{brighter(e){return e=e==null?ns:Math.pow(ns,e),new kn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?qi:Math.pow(qi,e),new kn(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 ht(Ud(e>=240?e-240:e+120,i,r),Ud(e,i,r),Ud(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new kn(m2(this.h),Pc(this.s),Pc(this.l),Mc(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=Mc(this.opacity);return`${e===1?"hsl(":"hsla("}${m2(this.h)}, ${Pc(this.s)*100}%, ${Pc(this.l)*100}%${e===1?")":`, ${e})`}`}}));function m2(e){return e=(e||0)%360,e<0?e+360:e}function Pc(e){return Math.max(0,Math.min(1,e||0))}function Ud(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 b2=Math.PI/180,y2=180/Math.PI,Lc=18,w2=.96422,v2=1,A2=.82521,x2=4/29,is=6/29,E2=3*is*is,Hk=is*is*is;function _2(e){if(e instanceof jn)return new jn(e.l,e.a,e.b,e.opacity);if(e instanceof mr)return S2(e);e instanceof ht||(e=Od(e));var t=$d(e.r),n=$d(e.g),r=$d(e.b),i=Hd((.2225045*t+.7168786*n+.0606169*r)/v2),o,s;return t===n&&n===r?o=s=i:(o=Hd((.4360747*t+.3850649*n+.1430804*r)/w2),s=Hd((.0139322*t+.0971045*n+.7141733*r)/A2)),new jn(116*i-16,500*(o-i),200*(i-s),e.opacity)}function Gd(e,t,n,r){return arguments.length===1?_2(e):new jn(e,t,n,r??1)}function jn(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}ts(jn,Gd,Za(Wr,{brighter(e){return new jn(this.l+Lc*(e??1),this.a,this.b,this.opacity)},darker(e){return new jn(this.l-Lc*(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=w2*Vd(t),e=v2*Vd(e),n=A2*Vd(n),new ht(jd(3.1338561*t-1.6168667*e-.4906146*n),jd(-.9787684*t+1.9161415*e+.033454*n),jd(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function Hd(e){return e>Hk?Math.pow(e,1/3):e/E2+x2}function Vd(e){return e>is?e*e*e:E2*(e-x2)}function jd(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function $d(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function Vk(e){if(e instanceof mr)return new mr(e.h,e.c,e.l,e.opacity);if(e instanceof jn||(e=_2(e)),e.a===0&&e.b===0)return new mr(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*y2;return new mr(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function qd(e,t,n,r){return arguments.length===1?Vk(e):new mr(e,t,n,r??1)}function mr(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function S2(e){if(isNaN(e.h))return new jn(e.l,0,0,e.opacity);var t=e.h*b2;return new jn(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}ts(mr,qd,Za(Wr,{brighter(e){return new mr(this.h,this.c,this.l+Lc*(e??1),this.opacity)},darker(e){return new mr(this.h,this.c,this.l-Lc*(e??1),this.opacity)},rgb(){return S2(this).rgb()}}));var C2=-.14861,Wd=1.78277,Zd=-.29227,Nc=-.90649,Qa=1.97294,T2=Qa*Nc,k2=Qa*Wd,I2=Wd*Zd-Nc*C2;function jk(e){if(e instanceof Yi)return new Yi(e.h,e.s,e.l,e.opacity);e instanceof ht||(e=Od(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(I2*r+T2*t-k2*n)/(I2+T2-k2),o=r-i,s=(Qa*(n-i)-Zd*o)/Nc,a=Math.sqrt(s*s+o*o)/(Qa*i*(1-i)),u=a?Math.atan2(s,o)*y2-120:NaN;return new Yi(u<0?u+360:u,a,i,e.opacity)}function Yd(e,t,n,r){return arguments.length===1?jk(e):new Yi(e,t,n,r??1)}function Yi(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}ts(Yi,Yd,Za(Wr,{brighter(e){return e=e==null?ns:Math.pow(ns,e),new Yi(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?qi:Math.pow(qi,e),new Yi(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*b2,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new ht(255*(t+n*(C2*r+Wd*i)),255*(t+n*(Zd*r+Nc*i)),255*(t+n*(Qa*r)),this.opacity)}}));function B2(e,t,n,r,i){var o=e*e,s=o*e;return((1-3*e+3*o-s)*t+(4-6*o+3*s)*n+(1+3*e+3*o-3*s)*r+s*i)/6}function D2(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],o=e[r+1],s=r>0?e[r-1]:2*i-o,a=r<t-1?e[r+2]:2*o-i;return B2((n-r/t)*t,s,i,o,a)}}function R2(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),i=e[(r+t-1)%t],o=e[r%t],s=e[(r+1)%t],a=e[(r+2)%t];return B2((n-r/t)*t,i,o,s,a)}}const Oc=e=>()=>e;function F2(e,t){return function(n){return e+n*t}}function $k(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 zc(e,t){var n=t-e;return n?F2(e,n>180||n<-180?n-360*Math.round(n/360):n):Oc(isNaN(e)?t:e)}function qk(e){return(e=+e)==1?dt:function(t,n){return n-t?$k(t,n,e):Oc(isNaN(t)?n:t)}}function dt(e,t){var n=t-e;return n?F2(e,n):Oc(isNaN(e)?t:e)}const Qd=function e(t){var n=qk(t);function r(i,o){var s=n((i=Fc(i)).r,(o=Fc(o)).r),a=n(i.g,o.g),u=n(i.b,o.b),l=dt(i.opacity,o.opacity);return function(c){return i.r=s(c),i.g=a(c),i.b=u(c),i.opacity=l(c),i+""}}return r.gamma=e,r}(1);function M2(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),o=new Array(n),s,a;for(s=0;s<n;++s)a=Fc(t[s]),r[s]=a.r||0,i[s]=a.g||0,o[s]=a.b||0;return r=e(r),i=e(i),o=e(o),a.opacity=1,function(u){return a.r=r(u),a.g=i(u),a.b=o(u),a+""}}}var Wk=M2(D2),Zk=M2(R2);function Xd(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(o){for(i=0;i<n;++i)r[i]=e[i]*(1-o)+t[i]*o;return r}}function P2(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Yk(e,t){return(P2(t)?Xd:L2)(e,t)}function L2(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),o=new Array(n),s;for(s=0;s<r;++s)i[s]=Yr(e[s],t[s]);for(;s<n;++s)o[s]=t[s];return function(a){for(s=0;s<r;++s)o[s]=i[s](a);return o}}function N2(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function In(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function O2(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]=Yr(e[i],t[i]):r[i]=t[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var Kd=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Jd=new RegExp(Kd.source,"g");function Qk(e){return function(){return e}}function Xk(e){return function(t){return e(t)+""}}function z2(e,t){var n=Kd.lastIndex=Jd.lastIndex=0,r,i,o,s=-1,a=[],u=[];for(e=e+"",t=t+"";(r=Kd.exec(e))&&(i=Jd.exec(t));)(o=i.index)>n&&(o=t.slice(n,o),a[s]?a[s]+=o:a[++s]=o),(r=r[0])===(i=i[0])?a[s]?a[s]+=i:a[++s]=i:(a[++s]=null,u.push({i:s,x:In(r,i)})),n=Jd.lastIndex;return n<t.length&&(o=t.slice(n),a[s]?a[s]+=o:a[++s]=o),a.length<2?u[0]?Xk(u[0].x):Qk(t):(t=u.length,function(l){for(var c=0,f;c<t;++c)a[(f=u[c]).i]=f.x(l);return a.join("")})}function Yr(e,t){var n=typeof t,r;return t==null||n==="boolean"?Oc(t):(n==="number"?In:n==="string"?(r=Zr(t))?(t=r,Qd):z2:t instanceof Zr?Qd:t instanceof Date?N2:P2(t)?Xd:Array.isArray(t)?L2:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?O2:In)(e,t)}function Kk(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function Jk(e,t){var n=zc(+e,+t);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function Xa(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var U2=180/Math.PI,e0={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function G2(e,t,n,r,i,o){var s,a,u;return(s=Math.sqrt(e*e+t*t))&&(e/=s,t/=s),(u=e*n+t*r)&&(n-=e*u,r-=t*u),(a=Math.sqrt(n*n+r*r))&&(n/=a,r/=a,u/=a),e*r<t*n&&(e=-e,t=-t,u=-u,s=-s),{translateX:i,translateY:o,rotate:Math.atan2(t,e)*U2,skewX:Math.atan(u)*U2,scaleX:s,scaleY:a}}var Uc;function eI(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?e0:G2(t.a,t.b,t.c,t.d,t.e,t.f)}function tI(e){return e==null||(Uc||(Uc=document.createElementNS("http://www.w3.org/2000/svg","g")),Uc.setAttribute("transform",e),!(e=Uc.transform.baseVal.consolidate()))?e0:(e=e.matrix,G2(e.a,e.b,e.c,e.d,e.e,e.f))}function H2(e,t,n,r){function i(l){return l.length?l.pop()+" ":""}function o(l,c,f,h,d,p){if(l!==f||c!==h){var m=d.push("translate(",null,t,null,n);p.push({i:m-4,x:In(l,f)},{i:m-2,x:In(c,h)})}else(f||h)&&d.push("translate("+f+t+h+n)}function s(l,c,f,h){l!==c?(l-c>180?c+=360:c-l>180&&(l+=360),h.push({i:f.push(i(f)+"rotate(",null,r)-2,x:In(l,c)})):c&&f.push(i(f)+"rotate("+c+r)}function a(l,c,f,h){l!==c?h.push({i:f.push(i(f)+"skewX(",null,r)-2,x:In(l,c)}):c&&f.push(i(f)+"skewX("+c+r)}function u(l,c,f,h,d,p){if(l!==f||c!==h){var m=d.push(i(d)+"scale(",null,",",null,")");p.push({i:m-4,x:In(l,f)},{i:m-2,x:In(c,h)})}else(f!==1||h!==1)&&d.push(i(d)+"scale("+f+","+h+")")}return function(l,c){var f=[],h=[];return l=e(l),c=e(c),o(l.translateX,l.translateY,c.translateX,c.translateY,f,h),s(l.rotate,c.rotate,f,h),a(l.skewX,c.skewX,f,h),u(l.scaleX,l.scaleY,c.scaleX,c.scaleY,f,h),l=c=null,function(d){for(var p=-1,m=h.length,y;++p<m;)f[(y=h[p]).i]=y.x(d);return f.join("")}}}var nI=H2(eI,"px, ","px)","deg)"),rI=H2(tI,", ",")",")"),iI=1e-12;function V2(e){return((e=Math.exp(e))+1/e)/2}function oI(e){return((e=Math.exp(e))-1/e)/2}function sI(e){return((e=Math.exp(2*e))-1)/(e+1)}const aI=function e(t,n,r){function i(o,s){var a=o[0],u=o[1],l=o[2],c=s[0],f=s[1],h=s[2],d=c-a,p=f-u,m=d*d+p*p,y,w;if(m<iI)w=Math.log(h/l)/t,y=function(I){return[a+I*d,u+I*p,l*Math.exp(t*I*w)]};else{var x=Math.sqrt(m),S=(h*h-l*l+r*m)/(2*l*n*x),_=(h*h-l*l-r*m)/(2*h*n*x),T=Math.log(Math.sqrt(S*S+1)-S),B=Math.log(Math.sqrt(_*_+1)-_);w=(B-T)/t,y=function(I){var D=I*w,M=V2(T),G=l/(n*x)*(M*sI(t*D+T)-oI(T));return[a+G*d,u+G*p,l*M/V2(t*D+T)]}}return y.duration=w*1e3*t/Math.SQRT2,y}return i.rho=function(o){var s=Math.max(.001,+o),a=s*s,u=a*a;return e(s,a,u)},i}(Math.SQRT2,2,4);function j2(e){return function(t,n){var r=e((t=zd(t)).h,(n=zd(n)).h),i=dt(t.s,n.s),o=dt(t.l,n.l),s=dt(t.opacity,n.opacity);return function(a){return t.h=r(a),t.s=i(a),t.l=o(a),t.opacity=s(a),t+""}}}const lI=j2(zc);var uI=j2(dt);function cI(e,t){var n=dt((e=Gd(e)).l,(t=Gd(t)).l),r=dt(e.a,t.a),i=dt(e.b,t.b),o=dt(e.opacity,t.opacity);return function(s){return e.l=n(s),e.a=r(s),e.b=i(s),e.opacity=o(s),e+""}}function $2(e){return function(t,n){var r=e((t=qd(t)).h,(n=qd(n)).h),i=dt(t.c,n.c),o=dt(t.l,n.l),s=dt(t.opacity,n.opacity);return function(a){return t.h=r(a),t.c=i(a),t.l=o(a),t.opacity=s(a),t+""}}}const fI=$2(zc);var hI=$2(dt);function q2(e){return function t(n){n=+n;function r(i,o){var s=e((i=Yd(i)).h,(o=Yd(o)).h),a=dt(i.s,o.s),u=dt(i.l,o.l),l=dt(i.opacity,o.opacity);return function(c){return i.h=s(c),i.s=a(c),i.l=u(Math.pow(c,n)),i.opacity=l(c),i+""}}return r.gamma=t,r}(1)}const dI=q2(zc);var pI=q2(dt);function t0(e,t){t===void 0&&(t=e,e=Yr);for(var n=0,r=t.length-1,i=t[0],o=new Array(r<0?0:r);n<r;)o[n]=e(i,i=t[++n]);return function(s){var a=Math.max(0,Math.min(r-1,Math.floor(s*=r)));return o[a](s-a)}}function gI(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}const mI=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Yr,interpolateArray:Yk,interpolateBasis:D2,interpolateBasisClosed:R2,interpolateCubehelix:dI,interpolateCubehelixLong:pI,interpolateDate:N2,interpolateDiscrete:Kk,interpolateHcl:fI,interpolateHclLong:hI,interpolateHsl:lI,interpolateHslLong:uI,interpolateHue:Jk,interpolateLab:cI,interpolateNumber:In,interpolateNumberArray:Xd,interpolateObject:O2,interpolateRgb:Qd,interpolateRgbBasis:Wk,interpolateRgbBasisClosed:Zk,interpolateRound:Xa,interpolateString:z2,interpolateTransformCss:nI,interpolateTransformSvg:rI,interpolateZoom:aI,piecewise:t0,quantize:gI},Symbol.toStringTag,{value:"Module"}));function bI(e){return function(){return e}}function n0(e){return+e}var W2=[0,1];function Ut(e){return e}function r0(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:bI(isNaN(t)?NaN:.5)}function yI(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function wI(e,t,n){var r=e[0],i=e[1],o=t[0],s=t[1];return i<r?(r=r0(i,r),o=n(s,o)):(r=r0(r,i),o=n(o,s)),function(a){return o(r(a))}}function vI(e,t,n){var r=Math.min(e.length,t.length)-1,i=new Array(r),o=new Array(r),s=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++s<r;)i[s]=r0(e[s],e[s+1]),o[s]=n(t[s],t[s+1]);return function(a){var u=Nr(e,a,1,r)-1;return o[u](i[u](a))}}function Ka(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Gc(){var e=W2,t=W2,n=Yr,r,i,o,s=Ut,a,u,l;function c(){var h=Math.min(e.length,t.length);return s!==Ut&&(s=yI(e[0],e[h-1])),a=h>2?vI:wI,u=l=null,f}function f(h){return h==null||isNaN(h=+h)?o:(u||(u=a(e.map(r),t,n)))(r(s(h)))}return f.invert=function(h){return s(i((l||(l=a(t,e.map(r),In)))(h)))},f.domain=function(h){return arguments.length?(e=Array.from(h,n0),c()):e.slice()},f.range=function(h){return arguments.length?(t=Array.from(h),c()):t.slice()},f.rangeRound=function(h){return t=Array.from(h),n=Xa,c()},f.clamp=function(h){return arguments.length?(s=h?!0:Ut,c()):s!==Ut},f.interpolate=function(h){return arguments.length?(n=h,c()):n},f.unknown=function(h){return arguments.length?(o=h,f):o},function(h,d){return r=h,i=d,c()}}function Z2(){return Gc()(Ut,Ut)}function Y2(e,t,n,r){var i=Li(e,t,n),o;switch(r=Vo(r??",f"),r.type){case"s":{var s=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(o=K4(i,s))&&(r.precision=o),E1(r,s)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=J4(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=X4(i))&&(r.precision=o-(r.type==="%")*2);break}}return _t(r)}function Qi(e){var t=e.domain;return e.ticks=function(n){var r=t();return Ku(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return Y2(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,o=r.length-1,s=r[i],a=r[o],u,l,c=10;for(a<s&&(l=s,s=a,a=l,l=i,i=o,o=l);c-- >0;){if(l=Oh(s,a,n),l===u)return r[i]=s,r[o]=a,t(r);if(l>0)s=Math.floor(s/l)*l,a=Math.ceil(a/l)*l;else if(l<0)s=Math.ceil(s*l)/l,a=Math.floor(a*l)/l;else break;u=l}return e},e}function Q2(){var e=Z2();return e.copy=function(){return Ka(e,Q2())},Hn.apply(e,arguments),Qi(e)}function X2(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,n0),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return X2(e).unknown(t)},e=arguments.length?Array.from(e,n0):[0,1],Qi(n)}function K2(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],o=e[r],s;return o<i&&(s=n,n=r,r=s,s=i,i=o,o=s),e[n]=t.floor(i),e[r]=t.ceil(o),e}function J2(e){return Math.log(e)}function ey(e){return Math.exp(e)}function AI(e){return-Math.log(-e)}function xI(e){return-Math.exp(-e)}function EI(e){return isFinite(e)?+("1e"+e):e<0?0:e}function _I(e){return e===10?EI:e===Math.E?Math.exp:t=>Math.pow(e,t)}function SI(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 ty(e){return(t,n)=>-e(-t,n)}function i0(e){const t=e(J2,ey),n=t.domain;let r=10,i,o;function s(){return i=SI(r),o=_I(r),n()[0]<0?(i=ty(i),o=ty(o),e(AI,xI)):e(J2,ey),t}return t.base=function(a){return arguments.length?(r=+a,s()):r},t.domain=function(a){return arguments.length?(n(a),s()):n()},t.ticks=a=>{const u=n();let l=u[0],c=u[u.length-1];const f=c<l;f&&([l,c]=[c,l]);let h=i(l),d=i(c),p,m;const y=a==null?10:+a;let w=[];if(!(r%1)&&d-h<y){if(h=Math.floor(h),d=Math.ceil(d),l>0){for(;h<=d;++h)for(p=1;p<r;++p)if(m=h<0?p/o(-h):p*o(h),!(m<l)){if(m>c)break;w.push(m)}}else for(;h<=d;++h)for(p=r-1;p>=1;--p)if(m=h>0?p/o(-h):p*o(h),!(m<l)){if(m>c)break;w.push(m)}w.length*2<y&&(w=Ku(l,c,y))}else w=Ku(h,d,Math.min(d-h,y)).map(o);return f?w.reverse():w},t.tickFormat=(a,u)=>{if(a==null&&(a=10),u==null&&(u=r===10?"s":","),typeof u!="function"&&(!(r%1)&&(u=Vo(u)).precision==null&&(u.trim=!0),u=_t(u)),a===1/0)return u;const l=Math.max(1,r*a/t.ticks().length);return c=>{let f=c/o(Math.round(i(c)));return f*r<r-.5&&(f*=r),f<=l?u(c):""}},t.nice=()=>n(K2(n(),{floor:a=>o(Math.floor(i(a))),ceil:a=>o(Math.ceil(i(a)))})),t}function o0(){const e=i0(Gc()).domain([1,10]);return e.copy=()=>Ka(e,o0()).base(e.base()),Hn.apply(e,arguments),e}function ny(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function ry(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function s0(e){var t=1,n=e(ny(t),ry(t));return n.constant=function(r){return arguments.length?e(ny(t=+r),ry(t)):t},Qi(n)}function iy(){var e=s0(Gc());return e.copy=function(){return Ka(e,iy()).constant(e.constant())},Hn.apply(e,arguments)}function oy(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function CI(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function TI(e){return e<0?-e*e:e*e}function a0(e){var t=e(Ut,Ut),n=1;function r(){return n===1?e(Ut,Ut):n===.5?e(CI,TI):e(oy(n),oy(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},Qi(t)}function l0(){var e=a0(Gc());return e.copy=function(){return Ka(e,l0()).exponent(e.exponent())},Hn.apply(e,arguments),e}function kI(){return l0.apply(null,arguments).exponent(.5)}function sy(){var e=[],t=[],n=[],r;function i(){var s=0,a=Math.max(1,t.length);for(n=new Array(a-1);++s<a;)n[s-1]=m1(e,s/a);return o}function o(s){return s==null||isNaN(s=+s)?r:t[Nr(n,s)]}return o.invertExtent=function(s){var a=t.indexOf(s);return a<0?[NaN,NaN]:[a>0?n[a-1]:e[0],a<n.length?n[a]:e[e.length-1]]},o.domain=function(s){if(!arguments.length)return e.slice();e=[];for(let a of s)a!=null&&!isNaN(a=+a)&&e.push(a);return e.sort(Pi),i()},o.range=function(s){return arguments.length?(t=Array.from(s),i()):t.slice()},o.unknown=function(s){return arguments.length?(r=s,o):r},o.quantiles=function(){return n.slice()},o.copy=function(){return sy().domain(e).range(t).unknown(r)},Hn.apply(o,arguments)}function ay(){var e=0,t=1,n=1,r=[.5],i=[0,1],o;function s(u){return u!=null&&u<=u?i[Nr(r,u,0,n)]:o}function a(){var u=-1;for(r=new Array(n);++u<n;)r[u]=((u+1)*t-(u-n)*e)/(n+1);return s}return s.domain=function(u){return arguments.length?([e,t]=u,e=+e,t=+t,a()):[e,t]},s.range=function(u){return arguments.length?(n=(i=Array.from(u)).length-1,a()):i.slice()},s.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]]},s.unknown=function(u){return arguments.length&&(o=u),s},s.thresholds=function(){return r.slice()},s.copy=function(){return ay().domain([e,t]).range(i).unknown(o)},Hn.apply(Qi(s),arguments)}function ly(){var e=[.5],t=[0,1],n,r=1;function i(o){return o!=null&&o<=o?t[Nr(e,o,0,r)]:n}return i.domain=function(o){return arguments.length?(e=Array.from(o),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(o){return arguments.length?(t=Array.from(o),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(o){var s=t.indexOf(o);return[e[s-1],e[s]]},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return ly().domain(e).range(t).unknown(n)},Hn.apply(i,arguments)}function II(e){return new Date(e)}function BI(e){return e instanceof Date?+e:+new Date(+e)}function u0(e,t,n,r,i,o,s,a,u,l){var c=Z2(),f=c.invert,h=c.domain,d=l(".%L"),p=l(":%S"),m=l("%I:%M"),y=l("%I %p"),w=l("%a %d"),x=l("%b %d"),S=l("%B"),_=l("%Y");function T(B){return(u(B)<B?d:a(B)<B?p:s(B)<B?m:o(B)<B?y:r(B)<B?i(B)<B?w:x:n(B)<B?S:_)(B)}return c.invert=function(B){return new Date(f(B))},c.domain=function(B){return arguments.length?h(Array.from(B,BI)):h().map(II)},c.ticks=function(B){var I=h();return e(I[0],I[I.length-1],B??10)},c.tickFormat=function(B,I){return I==null?T:l(I)},c.nice=function(B){var I=h();return(!B||typeof B.range!="function")&&(B=t(I[0],I[I.length-1],B??10)),B?h(K2(I,B)):c},c.copy=function(){return Ka(c,u0(e,t,n,r,i,o,s,a,u,l))},c}function DI(){return Hn.apply(u0(cC,fC,zn,Ca,_a,Or,rc,tc,dr,Yh).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function RI(){return Hn.apply(u0(lC,uC,Un,Ta,Sa,Ni,ic,nc,dr,Qh).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Hc(){var e=0,t=1,n,r,i,o,s=Ut,a=!1,u;function l(f){return f==null||isNaN(f=+f)?u:s(i===0?.5:(f=(o(f)-n)*i,a?Math.max(0,Math.min(1,f)):f))}l.domain=function(f){return arguments.length?([e,t]=f,n=o(e=+e),r=o(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(f){return arguments.length?(a=!!f,l):a},l.interpolator=function(f){return arguments.length?(s=f,l):s};function c(f){return function(h){var d,p;return arguments.length?([d,p]=h,s=f(d,p),l):[s(0),s(1)]}}return l.range=c(Yr),l.rangeRound=c(Xa),l.unknown=function(f){return arguments.length?(u=f,l):u},function(f){return o=f,n=f(e),r=f(t),i=n===r?0:1/(r-n),l}}function Qr(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function c0(){var e=Qi(Hc()(Ut));return e.copy=function(){return Qr(e,c0())},qr.apply(e,arguments)}function uy(){var e=i0(Hc()).domain([1,10]);return e.copy=function(){return Qr(e,uy()).base(e.base())},qr.apply(e,arguments)}function cy(){var e=s0(Hc());return e.copy=function(){return Qr(e,cy()).constant(e.constant())},qr.apply(e,arguments)}function f0(){var e=a0(Hc());return e.copy=function(){return Qr(e,f0()).exponent(e.exponent())},qr.apply(e,arguments)}function FI(){return f0.apply(null,arguments).exponent(.5)}function Vc(){var e=0,t=.5,n=1,r=1,i,o,s,a,u,l=Ut,c,f=!1,h;function d(m){return isNaN(m=+m)?h:(m=.5+((m=+c(m))-o)*(r*m<r*o?a:u),l(f?Math.max(0,Math.min(1,m)):m))}d.domain=function(m){return arguments.length?([e,t,n]=m,i=c(e=+e),o=c(t=+t),s=c(n=+n),a=i===o?0:.5/(o-i),u=o===s?0:.5/(s-o),r=o<i?-1:1,d):[e,t,n]},d.clamp=function(m){return arguments.length?(f=!!m,d):f},d.interpolator=function(m){return arguments.length?(l=m,d):l};function p(m){return function(y){var w,x,S;return arguments.length?([w,x,S]=y,l=t0(m,[w,x,S]),d):[l(0),l(.5),l(1)]}}return d.range=p(Yr),d.rangeRound=p(Xa),d.unknown=function(m){return arguments.length?(h=m,d):h},function(m){return c=m,i=m(e),o=m(t),s=m(n),a=i===o?0:.5/(o-i),u=o===s?0:.5/(s-o),r=o<i?-1:1,d}}function fy(){var e=Qi(Vc()(Ut));return e.copy=function(){return Qr(e,fy())},qr.apply(e,arguments)}function hy(){var e=i0(Vc()).domain([.1,1,10]);return e.copy=function(){return Qr(e,hy()).base(e.base())},qr.apply(e,arguments)}function dy(){var e=s0(Vc());return e.copy=function(){return Qr(e,dy()).constant(e.constant())},qr.apply(e,arguments)}function h0(){var e=a0(Vc());return e.copy=function(){return Qr(e,h0()).exponent(e.exponent())},qr.apply(e,arguments)}function MI(){return h0.apply(null,arguments).exponent(.5)}function d0(e,t,n){const r=e-t+n*2;return e?r>0?r:1:0}const PI="identity",os="linear",Xr="log",Ja="pow",el="sqrt",jc="symlog",py="time",gy="utc",$n="sequential",ss="diverging",p0="quantile",my="quantize",by="threshold",g0="ordinal",m0="point",yy="band",b0="bin-ordinal",lt="continuous",tl="discrete",nl="discretizing",un="interpolating",wy="temporal";function LI(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 NI(e){return function(t){const n=e.range();let r=t[0],i=t[1],o=-1,s,a,u,l;for(i<r&&(a=r,r=i,i=a),u=0,l=n.length;u<l;++u)n[u]>=r&&n[u]<=i&&(o<0&&(o=u),s=u);if(!(o<0))return r=e.invertExtent(n[o]),i=e.invertExtent(n[s]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function y0(){const e=Nd().unknown(void 0),t=e.domain,n=e.range;let r=[0,1],i,o,s=!1,a=0,u=0,l=.5;delete e.unknown;function c(){const f=t().length,h=r[1]<r[0],d=r[1-h],p=d0(f,a,u);let m=r[h-0];i=(d-m)/(p||1),s&&(i=Math.floor(i)),m+=(d-m-i*(f-a))*l,o=i*(1-a),s&&(m=Math.round(m),o=Math.round(o));const y=xa(f).map(w=>m+i*w);return n(h?y.reverse():y)}return e.domain=function(f){return arguments.length?(t(f),c()):t()},e.range=function(f){return arguments.length?(r=[+f[0],+f[1]],c()):r.slice()},e.rangeRound=function(f){return r=[+f[0],+f[1]],s=!0,c()},e.bandwidth=function(){return o},e.step=function(){return i},e.round=function(f){return arguments.length?(s=!!f,c()):s},e.padding=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),a=u,c()):a},e.paddingInner=function(f){return arguments.length?(a=Math.max(0,Math.min(1,f)),c()):a},e.paddingOuter=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),c()):u},e.align=function(f){return arguments.length?(l=Math.max(0,Math.min(1,f)),c()):l},e.invertRange=function(f){if(f[0]==null||f[1]==null)return;const h=r[1]<r[0],d=h?n().reverse():n(),p=d.length-1;let m=+f[0],y=+f[1],w,x,S;if(!(m!==m||y!==y)&&(y<m&&(S=m,m=y,y=S),!(y<d[0]||m>r[1-h])))return w=Math.max(0,Nr(d,m)-1),x=m===y?w:Nr(d,y)-1,m-d[w]>o+1e-10&&++w,h&&(S=w,w=p-x,x=p-S),w>x?void 0:t().slice(w,x+1)},e.invert=function(f){const h=e.invertRange([f,f]);return h&&h[0]},e.copy=function(){return y0().domain(t()).range(r).round(s).paddingInner(a).paddingOuter(u).align(l)},c()}function vy(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return vy(t())},e}function OI(){return vy(y0().paddingInner(1))}var zI=Array.prototype.map;function UI(e){return zI.call(e,ca)}const GI=Array.prototype.slice;function Ay(){let e=[],t=[];function n(r){return r==null||r!==r?void 0:t[(Nr(e,r)-1)%t.length]}return n.domain=function(r){return arguments.length?(e=UI(r),n):e.slice()},n.range=function(r){return arguments.length?(t=GI.call(r),n):t.slice()},n.tickFormat=function(r,i){return Y2(e[0],Sn(e),r??10,i)},n.copy=function(){return Ay().domain(n.domain()).range(n.range())},n}const $c=new Map,HI=Symbol("vega_scale");function VI(e){return e[HI]=!0,e}function jI(e,t,n){const r=function(){const o=t();return o.invertRange||(o.invertRange=o.invert?LI(o):o.invertExtent?NI(o):void 0),o.type=e,VI(o)};return r.metadata=$u(Ch(n)),r}function Te(e,t,n){return arguments.length>1?($c.set(e,jI(e,t,n)),this):$I(e)?$c.get(e):void 0}Te(PI,X2),Te(os,Q2,lt),Te(Xr,o0,[lt,Xr]),Te(Ja,l0,lt),Te(el,kI,lt),Te(jc,iy,lt),Te(py,DI,[lt,wy]),Te(gy,RI,[lt,wy]),Te($n,c0,[lt,un]),Te(`${$n}-${os}`,c0,[lt,un]),Te(`${$n}-${Xr}`,uy,[lt,un,Xr]),Te(`${$n}-${Ja}`,f0,[lt,un]),Te(`${$n}-${el}`,FI,[lt,un]),Te(`${$n}-${jc}`,cy,[lt,un]),Te(`${ss}-${os}`,fy,[lt,un]),Te(`${ss}-${Xr}`,hy,[lt,un,Xr]),Te(`${ss}-${Ja}`,h0,[lt,un]),Te(`${ss}-${el}`,MI,[lt,un]),Te(`${ss}-${jc}`,dy,[lt,un]),Te(p0,sy,[nl,p0]),Te(my,ay,nl),Te(by,ly,nl),Te(b0,Ay,[tl,nl]),Te(g0,Nd,tl),Te(yy,y0,tl),Te(m0,OI,tl);function $I(e){return $c.has(e)}function rl(e,t){const n=$c.get(e);return n&&n.metadata[t]}function yt(e){return rl(e,lt)}function Kr(e){return rl(e,tl)}function Xi(e){return rl(e,nl)}function xy(e){return rl(e,Xr)}function qc(e){return rl(e,un)}function qI(e,t){const n=t[0],r=Sn(t)-n;return function(i){return e(n+i*r)}}function Wc(e,t,n){return t0(Ey(t||"rgb",n),e)}function WI(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}function Ey(e,t){const n=mI[ZI(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function ZI(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const YI={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"},QI={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 _y(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 Sy(e,t){for(const n in e)w0(n,t(e[n]))}const Cy={};Sy(QI,_y),Sy(YI,e=>Wc(_y(e)));function w0(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(Cy[e]=t,this):Cy[e]}function Re(e,t=e){if(/^[A-Za-z0-9_]+$/.test(e)){const n=new Function("datum",`return datum[${JSON.stringify(e)}]`);return Le(n,[e],t)}else return Uu(e)}const XI="RawCode",KI="Literal",JI="Property",eB="Identifier",tB="ArrayExpression",nB="BinaryExpression",rB="CallExpression",iB="ConditionalExpression",oB="LogicalExpression",sB="MemberExpression",aB="ObjectExpression",lB="UnaryExpression";function Bn(e){this.type=e}Bn.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=uB(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};function uB(e){switch(e.type){case tB:return e.elements;case nB:case oB:return[e.left,e.right];case rB:return[e.callee].concat(e.arguments);case iB:return[e.test,e.consequent,e.alternate];case sB:return[e.object,e.property];case aB:return e.properties;case JI:return[e.key,e.value];case lB:return[e.argument];case eB:case KI:case XI:default:return[]}}var qn,J,H,Ct,Fe,Zc=1,il=2,Ki=3,Jr=4,Yc=5,Ji=6,Gt=7,ol=8,cB=9;qn={},qn[Zc]="Boolean",qn[il]="<end>",qn[Ki]="Identifier",qn[Jr]="Keyword",qn[Yc]="Null",qn[Ji]="Numeric",qn[Gt]="Punctuator",qn[ol]="String",qn[cB]="RegularExpression";var fB="ArrayExpression",hB="BinaryExpression",dB="CallExpression",pB="ConditionalExpression",Ty="Identifier",gB="Literal",mB="LogicalExpression",bB="MemberExpression",yB="ObjectExpression",wB="Property",vB="UnaryExpression",pt="Unexpected token %0",AB="Unexpected number",xB="Unexpected string",EB="Unexpected identifier",_B="Unexpected reserved word",SB="Unexpected end of input",v0="Invalid regular expression",A0="Invalid regular expression: missing /",ky="Octal literals are not allowed in strict mode.",CB="Duplicate data property in object literal not allowed in strict mode",wt="ILLEGAL",sl="Disabled.",TB=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]"),kB=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 Qc(e,t){if(!e)throw new Error("ASSERT: "+t)}function br(e){return e>=48&&e<=57}function x0(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function al(e){return"01234567".indexOf(e)>=0}function IB(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 ll(e){return e===10||e===13||e===8232||e===8233}function ul(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&TB.test(String.fromCharCode(e))}function Xc(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&kB.test(String.fromCharCode(e))}const BB={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 Iy(){for(;H<Ct;){const e=J.charCodeAt(H);if(IB(e)||ll(e))++H;else break}}function E0(e){var t,n,r,i=0;for(n=e==="u"?4:2,t=0;t<n;++t)H<Ct&&x0(J[H])?(r=J[H++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):Ae({},pt,wt);return String.fromCharCode(i)}function DB(){var e,t,n,r;for(e=J[H],t=0,e==="}"&&Ae({},pt,wt);H<Ct&&(e=J[H++],!!x0(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&Ae({},pt,wt),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,r=(t-65536&1023)+56320,String.fromCharCode(n,r))}function By(){var e,t;for(e=J.charCodeAt(H++),t=String.fromCharCode(e),e===92&&(J.charCodeAt(H)!==117&&Ae({},pt,wt),++H,e=E0("u"),(!e||e==="\\"||!ul(e.charCodeAt(0)))&&Ae({},pt,wt),t=e);H<Ct&&(e=J.charCodeAt(H),!!Xc(e));)++H,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),J.charCodeAt(H)!==117&&Ae({},pt,wt),++H,e=E0("u"),(!e||e==="\\"||!Xc(e.charCodeAt(0)))&&Ae({},pt,wt),t+=e);return t}function RB(){var e,t;for(e=H++;H<Ct;){if(t=J.charCodeAt(H),t===92)return H=e,By();if(Xc(t))++H;else break}return J.slice(e,H)}function FB(){var e,t,n;return e=H,t=J.charCodeAt(H)===92?By():RB(),t.length===1?n=Ki:BB.hasOwnProperty(t)?n=Jr:t==="null"?n=Yc:t==="true"||t==="false"?n=Zc:n=Ki,{type:n,value:t,start:e,end:H}}function _0(){var e=H,t=J.charCodeAt(H),n,r=J[H],i,o,s;switch(t){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++H,{type:Gt,value:String.fromCharCode(t),start:e,end:H};default:if(n=J.charCodeAt(H+1),n===61)switch(t){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return H+=2,{type:Gt,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:H};case 33:case 61:return H+=2,J.charCodeAt(H)===61&&++H,{type:Gt,value:J.slice(e,H),start:e,end:H}}}if(s=J.substr(H,4),s===">>>=")return H+=4,{type:Gt,value:s,start:e,end:H};if(o=s.substr(0,3),o===">>>"||o==="<<="||o===">>=")return H+=3,{type:Gt,value:o,start:e,end:H};if(i=o.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return H+=2,{type:Gt,value:i,start:e,end:H};if(i==="//"&&Ae({},pt,wt),"<>=!+-*%&|^/".indexOf(r)>=0)return++H,{type:Gt,value:r,start:e,end:H};Ae({},pt,wt)}function MB(e){let t="";for(;H<Ct&&x0(J[H]);)t+=J[H++];return t.length===0&&Ae({},pt,wt),ul(J.charCodeAt(H))&&Ae({},pt,wt),{type:Ji,value:parseInt("0x"+t,16),start:e,end:H}}function PB(e){let t="0"+J[H++];for(;H<Ct&&al(J[H]);)t+=J[H++];return(ul(J.charCodeAt(H))||br(J.charCodeAt(H)))&&Ae({},pt,wt),{type:Ji,value:parseInt(t,8),octal:!0,start:e,end:H}}function Dy(){var e,t,n;if(n=J[H],Qc(br(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=H,e="",n!=="."){if(e=J[H++],n=J[H],e==="0"){if(n==="x"||n==="X")return++H,MB(t);if(al(n))return PB(t);n&&br(n.charCodeAt(0))&&Ae({},pt,wt)}for(;br(J.charCodeAt(H));)e+=J[H++];n=J[H]}if(n==="."){for(e+=J[H++];br(J.charCodeAt(H));)e+=J[H++];n=J[H]}if(n==="e"||n==="E")if(e+=J[H++],n=J[H],(n==="+"||n==="-")&&(e+=J[H++]),br(J.charCodeAt(H)))for(;br(J.charCodeAt(H));)e+=J[H++];else Ae({},pt,wt);return ul(J.charCodeAt(H))&&Ae({},pt,wt),{type:Ji,value:parseFloat(e),start:t,end:H}}function LB(){var e="",t,n,r,i,o=!1;for(t=J[H],Qc(t==="'"||t==='"',"String literal must starts with a quote"),n=H,++H;H<Ct;)if(r=J[H++],r===t){t="";break}else if(r==="\\")if(r=J[H++],!r||!ll(r.charCodeAt(0)))switch(r){case"u":case"x":J[H]==="{"?(++H,e+=DB()):e+=E0(r);break;case"n":e+=`
|
|
252
|
-
`;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:al(r)?(i="01234567".indexOf(r),i!==0&&(o=!0),H<Ct&&al(
|
|
253
|
-
`&&++H;else{if(ll(r.charCodeAt(0)))break;e+=r}return t!==""&&Ae({},pt,wt),{type:ol,value:e,octal:o,start:n,end:H}}function NB(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";Ae({},v0)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{Ae({},v0)}try{return new RegExp(e,t)}catch{return null}}function OB(){var e,t,n,r,i;for(e=J[H],Qc(e==="/","Regular expression literal must start with a slash"),t=J[H++],n=!1,r=!1;H<Ct;)if(e=J[H++],t+=e,e==="\\")e=J[H++],ll(e.charCodeAt(0))&&Ae({},A0),t+=e;else if(ll(e.charCodeAt(0)))Ae({},A0);else if(n)e==="]"&&(n=!1);else if(e==="/"){r=!0;break}else e==="["&&(n=!0);return r||Ae({},A0),i=t.substr(1,t.length-2),{value:i,literal:t}}function zB(){var e,t,n;for(t="",n="";H<Ct&&(e=J[H],!!Xc(e.charCodeAt(0)));)++H,e==="\\"&&H<Ct?Ae({},pt,wt):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&Ae({},v0,n),{value:n,literal:t}}function UB(){var e,t,n,r;return Fe=null,Iy(),e=H,t=OB(),n=zB(),r=NB(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:H}}function GB(e){return e.type===Ki||e.type===Jr||e.type===Zc||e.type===Yc}function Ry(){if(Iy(),H>=Ct)return{type:il,start:H,end:H};const e=J.charCodeAt(H);return ul(e)?FB():e===40||e===41||e===59?_0():e===39||e===34?LB():e===46?br(J.charCodeAt(H+1))?Dy():_0():br(e)?Dy():_0()}function Ht(){const e=Fe;return H=e.end,Fe=Ry(),H=e.end,e}function Fy(){const e=H;Fe=Ry(),H=e}function HB(e){const t=new Bn(fB);return t.elements=e,t}function My(e,t,n){const r=new Bn(e==="||"||e==="&&"?mB:hB);return r.operator=e,r.left=t,r.right=n,r}function VB(e,t){const n=new Bn(dB);return n.callee=e,n.arguments=t,n}function jB(e,t,n){const r=new Bn(pB);return r.test=e,r.consequent=t,r.alternate=n,r}function S0(e){const t=new Bn(Ty);return t.name=e,t}function cl(e){const t=new Bn(gB);return t.value=e.value,t.raw=J.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function Py(e,t,n){const r=new Bn(bB);return r.computed=e==="[",r.object=t,r.property=n,r.computed||(n.member=!0),r}function $B(e){const t=new Bn(yB);return t.properties=e,t}function Ly(e,t,n){const r=new Bn(wB);return r.key=t,r.value=n,r.kind=e,r}function qB(e,t){const n=new Bn(vB);return n.operator=e,n.argument=t,n.prefix=!0,n}function Ae(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,(o,s)=>(Qc(s<r.length,"Message reference must be in range"),r[s]));throw n=new Error(i),n.index=H,n.description=i,n}function Kc(e){e.type===il&&Ae(e,SB),e.type===Ji&&Ae(e,AB),e.type===ol&&Ae(e,xB),e.type===Ki&&Ae(e,EB),e.type===Jr&&Ae(e,_B),Ae(e,pt,e.value)}function Tt(e){const t=Ht();(t.type!==Gt||t.value!==e)&&Kc(t)}function We(e){return Fe.type===Gt&&Fe.value===e}function C0(e){return Fe.type===Jr&&Fe.value===e}function WB(){const e=[];for(H=Fe.start,Tt("[");!We("]");)We(",")?(Ht(),e.push(null)):(e.push(eo()),We("]")||Tt(","));return Ht(),HB(e)}function Ny(){H=Fe.start;const e=Ht();return e.type===ol||e.type===Ji?(e.octal&&Ae(e,ky),cl(e)):S0(e.value)}function ZB(){var e,t,n,r;if(H=Fe.start,e=Fe,e.type===Ki)return n=Ny(),Tt(":"),r=eo(),Ly("init",n,r);if(e.type===il||e.type===Gt)Kc(e);else return t=Ny(),Tt(":"),r=eo(),Ly("init",t,r)}function YB(){var e=[],t,n,r,i={},o=String;for(H=Fe.start,Tt("{");!We("}");)t=ZB(),t.key.type===Ty?n=t.key.name:n=o(t.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?Ae({},CB):i[r]=!0,e.push(t),We("}")||Tt(",");return Tt("}"),$B(e)}function QB(){Tt("(");const e=T0();return Tt(")"),e}const XB={if:1};function KB(){var e,t,n;if(We("("))return QB();if(We("["))return WB();if(We("{"))return YB();if(e=Fe.type,H=Fe.start,e===Ki||XB[Fe.value])n=S0(Ht().value);else if(e===ol||e===Ji)Fe.octal&&Ae(Fe,ky),n=cl(Ht());else{if(e===Jr)throw new Error(sl);e===Zc?(t=Ht(),t.value=t.value==="true",n=cl(t)):e===Yc?(t=Ht(),t.value=null,n=cl(t)):We("/")||We("/=")?(n=cl(UB()),Fy()):Kc(Ht())}return n}function JB(){const e=[];if(Tt("("),!We(")"))for(;H<Ct&&(e.push(eo()),!We(")"));)Tt(",");return Tt(")"),e}function eD(){H=Fe.start;const e=Ht();return GB(e)||Kc(e),S0(e.value)}function tD(){return Tt("."),eD()}function nD(){Tt("[");const e=T0();return Tt("]"),e}function rD(){var e,t,n;for(e=KB();;)if(We("."))n=tD(),e=Py(".",e,n);else if(We("("))t=JB(),e=VB(e,t);else if(We("["))n=nD(),e=Py("[",e,n);else break;return e}function Oy(){const e=rD();if(Fe.type===Gt&&(We("++")||We("--")))throw new Error(sl);return e}function Jc(){var e,t;if(Fe.type!==Gt&&Fe.type!==Jr)t=Oy();else{if(We("++")||We("--"))throw new Error(sl);if(We("+")||We("-")||We("~")||We("!"))e=Ht(),t=Jc(),t=qB(e.value,t);else{if(C0("delete")||C0("void")||C0("typeof"))throw new Error(sl);t=Oy()}}return t}function zy(e){let t=0;if(e.type!==Gt&&e.type!==Jr)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 iD(){var e,t,n,r,i,o,s,a,u,l;if(e=Fe,u=Jc(),r=Fe,i=zy(r),i===0)return u;for(r.prec=i,Ht(),t=[e,Fe],s=Jc(),o=[u,r,s];(i=zy(Fe))>0;){for(;o.length>2&&i<=o[o.length-2].prec;)s=o.pop(),a=o.pop().value,u=o.pop(),t.pop(),n=My(a,u,s),o.push(n);r=Ht(),r.prec=i,o.push(r),t.push(Fe),n=Jc(),o.push(n)}for(l=o.length-1,n=o[l],t.pop();l>1;)t.pop(),n=My(o[l-1].value,o[l-2],n),l-=2;return n}function eo(){var e,t,n;return e=iD(),We("?")&&(Ht(),t=eo(),Tt(":"),n=eo(),e=jB(e,t,n)),e}function T0(){const e=eo();if(We(","))throw new Error(sl);return e}function oD(e){J=e,H=0,Ct=J.length,Fe=null,Fy();const t=T0();if(Fe.type!==il)throw new Error("Unexpect token after expression.");return t}var sD={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 Uy(e){function t(s,a,u,l){let c=e(a[0]);return u&&(c=u+"("+c+")",u.lastIndexOf("new ",0)===0&&(c="("+c+")")),c+"."+s+(l<0?"":l===0?"()":"("+a.slice(1).map(e).join(",")+")")}function n(s,a,u){return l=>t(s,l,a,u)}const r="new Date",i="String",o="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",hypot:"Math.hypot",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(s){s.length<3&&st("Missing arguments to clamp function."),s.length>3&&st("Too many arguments to clamp function.");const a=s.map(e);return"Math.max("+a[1]+", Math.min("+a[2]+","+a[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:o,test:n("test",o),if:function(s){s.length<3&&st("Missing arguments to if function."),s.length>3&&st("Too many arguments to if function.");const a=s.map(e);return"("+a[0]+"?"+a[1]+":"+a[2]+")"}}}function aD(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function lD(e){e=e||{};const t=e.allowed?$u(e.allowed):{},n=e.forbidden?$u(e.forbidden):{},r=e.constants||sD,i=(e.functions||Uy)(f),o=e.globalvar,s=e.fieldvar,a=sn(o)?o:p=>`${o}["${p}"]`;let u={},l={},c=0;function f(p){if(De(p))return p;const m=h[p.type];return m==null&&st("Unsupported type: "+p.type),m(p)}const h={Literal:p=>p.raw,Identifier:p=>{const m=p.name;return c>0?m:Oo(n,m)?st("Illegal identifier: "+m):Oo(r,m)?r[m]:Oo(t,m)?m:(u[m]=1,a(m))},MemberExpression:p=>{const m=!p.computed,y=f(p.object);m&&(c+=1);const w=f(p.property);return y===s&&(l[aD(w)]=1),m&&(c-=1),y+(m?"."+w:"["+w+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&st("Illegal callee type: "+p.callee.type);const m=p.callee.name,y=p.arguments,w=Oo(i,m)&&i[m];return w||st("Unrecognized function: "+m),sn(w)?w(y):w+"("+y.map(f).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(f).join(",")+"]",BinaryExpression:p=>"("+f(p.left)+" "+p.operator+" "+f(p.right)+")",UnaryExpression:p=>"("+p.operator+f(p.argument)+")",ConditionalExpression:p=>"("+f(p.test)+"?"+f(p.consequent)+":"+f(p.alternate)+")",LogicalExpression:p=>"("+f(p.left)+p.operator+f(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(f).join(",")+"}",Property:p=>{c+=1;const m=f(p.key);return c-=1,m+":"+f(p.value)}};function d(p){const m={code:f(p),globals:Object.keys(u),fields:Object.keys(l)};return u={},l={},m}return d.functions=i,d.constants=r,d}function Gy(e,t,n){return n=(n-e)/(t-e),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}function as(e,t=0,n=1){return Math.max(t,Math.min(n,e))}function uD(e,t,n){return as((n-e)/(t-e),0,1)}const Wn=1,ei=2,k0=4;class nt{constructor(t){ee(this,To);Nt(this,"paramMediatorProvider",null);this.paramMediatorProvider=t,this.children=[],this.parent=void 0,this.completed=!1}get behavior(){return 0}reset(){this.completed=!1;for(const t of this.children)t.reset()}initialize(){}setParent(t){this.parent=t}addChild(t){if(t.parent)throw new Error("Cannot add the child! It already has a parent.");return this.children.push(t),t.setParent(this),Q(this,To,Nu).call(this),this}adopt(t){t.parent&&t.parent.removeChild(t),this.addChild(t)}adoptChildrenOf(t){for(const n of t.children)this.adopt(n)}insertAsParent(t){var n;if(this.isRoot())throw new Error("Cannot insert a new parent for a root node!");t.parent=this.parent,this.parent.children[this.parent.children.indexOf(this)]=t,Q(n=this.parent,To,Nu).call(n),this.parent=void 0,t.addChild(this)}removeChild(t){const n=this.children.indexOf(t);if(n>-1)this.children.splice(n,1),t.parent=void 0,Q(this,To,Nu).call(this);else throw new Error("Trying to remove an unknown child node!")}excise(){var t;if(this.isRoot())throw new Error("Cannot excise root node!");if(this.isTerminal())this.parent.removeChild(this);else if(this.children.length==1){const n=this.children[0];n.setParent(this.parent),this.parent.children[this.parent.children.indexOf(this)]=n,Q(t=this.parent,To,Nu).call(t),this.setParent(void 0),this.children.length=0}else throw new Error("Cannot excise a node that has multiple children!")}isRoot(){return!this.parent}isBranching(){return this.children.length>1}isTerminal(){return this.children.length==0}visit(t){t(this);for(const n of this.children)n.visit(t);t.afterChildren&&t.afterChildren(this)}subtreeToString(t=0){const n=this.children.map(r=>r.subtreeToString(t+1)).join("");return`${" ".repeat(t*2)}* ${this.constructor.name}${("identifier"in this&&this.identifier?": "+this.identifier:"")??""}
|
|
254
|
-
${n}`}handle(t){this._propagate(t)}complete(){this.completed=!0;for(const t of this.children)t.complete()}beginBatch(t){for(const n of this.children)n.beginBatch(t)}get paramMediator(){if(this.paramMediatorProvider)return this.paramMediatorProvider.paramMediator;if(!this.parent)throw new Error("Cannot find paramMediator!");return this.parent.paramMediator}repropagate(){if(this.parent)this.parent.repropagate();else throw new Error("Cannot repropagate data, no FlowNode with stored data found!")}_propagate(t){}}To=new WeakSet,
|
|
255
|
-
`)+`return function propagate(datum) {
|
|
256
|
-
|
|
251
|
+
};`;function Hn(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function qr(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 Nd=Symbol("implicit");function Od(){var e=new ur,t=[],n=[],r=Nd;function i(o){let s=e.get(o);if(s===void 0){if(r!==Nd)return r;e.set(o,s=t.push(o)-1)}return n[s%n.length]}return i.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new ur;for(const s of o)e.has(s)||e.set(s,t.push(s)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return Od(t,n).unknown(r)},Hn.apply(i,arguments),i}function ts(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Za(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Wr(){}var qi=.7,ns=1/qi,rs="\\s*([+-]?\\d+)\\s*",Ya="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Vn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Mk=/^#([0-9a-f]{3,8})$/,Pk=new RegExp(`^rgb\\(${rs},${rs},${rs}\\)$`),Lk=new RegExp(`^rgb\\(${Vn},${Vn},${Vn}\\)$`),Nk=new RegExp(`^rgba\\(${rs},${rs},${rs},${Ya}\\)$`),Ok=new RegExp(`^rgba\\(${Vn},${Vn},${Vn},${Ya}\\)$`),zk=new RegExp(`^hsl\\(${Ya},${Vn},${Vn}\\)$`),Uk=new RegExp(`^hsla\\(${Ya},${Vn},${Vn},${Ya}\\)$`),c2={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};ts(Wr,Zr,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:f2,formatHex:f2,formatHex8:Gk,formatHsl:Hk,formatRgb:h2,toString:h2});function f2(){return this.rgb().formatHex()}function Gk(){return this.rgb().formatHex8()}function Hk(){return b2(this).formatHsl()}function h2(){return this.rgb().formatRgb()}function Zr(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=Mk.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?d2(t):n===3?new ht(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Fc(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Fc(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=Pk.exec(e))?new ht(t[1],t[2],t[3],1):(t=Lk.exec(e))?new ht(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Nk.exec(e))?Fc(t[1],t[2],t[3],t[4]):(t=Ok.exec(e))?Fc(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=zk.exec(e))?m2(t[1],t[2]/100,t[3]/100,1):(t=Uk.exec(e))?m2(t[1],t[2]/100,t[3]/100,t[4]):c2.hasOwnProperty(e)?d2(c2[e]):e==="transparent"?new ht(NaN,NaN,NaN,0):null}function d2(e){return new ht(e>>16&255,e>>8&255,e&255,1)}function Fc(e,t,n,r){return r<=0&&(e=t=n=NaN),new ht(e,t,n,r)}function zd(e){return e instanceof Wr||(e=Zr(e)),e?(e=e.rgb(),new ht(e.r,e.g,e.b,e.opacity)):new ht}function Mc(e,t,n,r){return arguments.length===1?zd(e):new ht(e,t,n,r??1)}function ht(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}ts(ht,Mc,Za(Wr,{brighter(e){return e=e==null?ns:Math.pow(ns,e),new ht(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?qi:Math.pow(qi,e),new ht(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ht(Wi(this.r),Wi(this.g),Wi(this.b),Pc(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:p2,formatHex:p2,formatHex8:Vk,formatRgb:g2,toString:g2}));function p2(){return`#${Zi(this.r)}${Zi(this.g)}${Zi(this.b)}`}function Vk(){return`#${Zi(this.r)}${Zi(this.g)}${Zi(this.b)}${Zi((isNaN(this.opacity)?1:this.opacity)*255)}`}function g2(){const e=Pc(this.opacity);return`${e===1?"rgb(":"rgba("}${Wi(this.r)}, ${Wi(this.g)}, ${Wi(this.b)}${e===1?")":`, ${e})`}`}function Pc(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Wi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Zi(e){return e=Wi(e),(e<16?"0":"")+e.toString(16)}function m2(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new kn(e,t,n,r)}function b2(e){if(e instanceof kn)return new kn(e.h,e.s,e.l,e.opacity);if(e instanceof Wr||(e=Zr(e)),!e)return new kn;if(e instanceof kn)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),s=NaN,a=o-i,u=(o+i)/2;return a?(t===o?s=(n-r)/a+(n<r)*6:n===o?s=(r-t)/a+2:s=(t-n)/a+4,a/=u<.5?o+i:2-o-i,s*=60):a=u>0&&u<1?0:s,new kn(s,a,u,e.opacity)}function Ud(e,t,n,r){return arguments.length===1?b2(e):new kn(e,t,n,r??1)}function kn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}ts(kn,Ud,Za(Wr,{brighter(e){return e=e==null?ns:Math.pow(ns,e),new kn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?qi:Math.pow(qi,e),new kn(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 ht(Gd(e>=240?e-240:e+120,i,r),Gd(e,i,r),Gd(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new kn(y2(this.h),Lc(this.s),Lc(this.l),Pc(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=Pc(this.opacity);return`${e===1?"hsl(":"hsla("}${y2(this.h)}, ${Lc(this.s)*100}%, ${Lc(this.l)*100}%${e===1?")":`, ${e})`}`}}));function y2(e){return e=(e||0)%360,e<0?e+360:e}function Lc(e){return Math.max(0,Math.min(1,e||0))}function Gd(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 w2=Math.PI/180,v2=180/Math.PI,Nc=18,A2=.96422,x2=1,E2=.82521,_2=4/29,is=6/29,S2=3*is*is,jk=is*is*is;function C2(e){if(e instanceof jn)return new jn(e.l,e.a,e.b,e.opacity);if(e instanceof mr)return T2(e);e instanceof ht||(e=zd(e));var t=qd(e.r),n=qd(e.g),r=qd(e.b),i=Vd((.2225045*t+.7168786*n+.0606169*r)/x2),o,s;return t===n&&n===r?o=s=i:(o=Vd((.4360747*t+.3850649*n+.1430804*r)/A2),s=Vd((.0139322*t+.0971045*n+.7141733*r)/E2)),new jn(116*i-16,500*(o-i),200*(i-s),e.opacity)}function Hd(e,t,n,r){return arguments.length===1?C2(e):new jn(e,t,n,r??1)}function jn(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}ts(jn,Hd,Za(Wr,{brighter(e){return new jn(this.l+Nc*(e??1),this.a,this.b,this.opacity)},darker(e){return new jn(this.l-Nc*(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=A2*jd(t),e=x2*jd(e),n=E2*jd(n),new ht($d(3.1338561*t-1.6168667*e-.4906146*n),$d(-.9787684*t+1.9161415*e+.033454*n),$d(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function Vd(e){return e>jk?Math.pow(e,1/3):e/S2+_2}function jd(e){return e>is?e*e*e:S2*(e-_2)}function $d(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function qd(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function $k(e){if(e instanceof mr)return new mr(e.h,e.c,e.l,e.opacity);if(e instanceof jn||(e=C2(e)),e.a===0&&e.b===0)return new mr(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*v2;return new mr(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function Wd(e,t,n,r){return arguments.length===1?$k(e):new mr(e,t,n,r??1)}function mr(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function T2(e){if(isNaN(e.h))return new jn(e.l,0,0,e.opacity);var t=e.h*w2;return new jn(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}ts(mr,Wd,Za(Wr,{brighter(e){return new mr(this.h,this.c,this.l+Nc*(e??1),this.opacity)},darker(e){return new mr(this.h,this.c,this.l-Nc*(e??1),this.opacity)},rgb(){return T2(this).rgb()}}));var k2=-.14861,Zd=1.78277,Yd=-.29227,Oc=-.90649,Qa=1.97294,I2=Qa*Oc,B2=Qa*Zd,D2=Zd*Yd-Oc*k2;function qk(e){if(e instanceof Yi)return new Yi(e.h,e.s,e.l,e.opacity);e instanceof ht||(e=zd(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(D2*r+I2*t-B2*n)/(D2+I2-B2),o=r-i,s=(Qa*(n-i)-Yd*o)/Oc,a=Math.sqrt(s*s+o*o)/(Qa*i*(1-i)),u=a?Math.atan2(s,o)*v2-120:NaN;return new Yi(u<0?u+360:u,a,i,e.opacity)}function Qd(e,t,n,r){return arguments.length===1?qk(e):new Yi(e,t,n,r??1)}function Yi(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}ts(Yi,Qd,Za(Wr,{brighter(e){return e=e==null?ns:Math.pow(ns,e),new Yi(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?qi:Math.pow(qi,e),new Yi(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*w2,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new ht(255*(t+n*(k2*r+Zd*i)),255*(t+n*(Yd*r+Oc*i)),255*(t+n*(Qa*r)),this.opacity)}}));function R2(e,t,n,r,i){var o=e*e,s=o*e;return((1-3*e+3*o-s)*t+(4-6*o+3*s)*n+(1+3*e+3*o-3*s)*r+s*i)/6}function F2(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],o=e[r+1],s=r>0?e[r-1]:2*i-o,a=r<t-1?e[r+2]:2*o-i;return R2((n-r/t)*t,s,i,o,a)}}function M2(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),i=e[(r+t-1)%t],o=e[r%t],s=e[(r+1)%t],a=e[(r+2)%t];return R2((n-r/t)*t,i,o,s,a)}}const zc=e=>()=>e;function P2(e,t){return function(n){return e+n*t}}function Wk(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 Uc(e,t){var n=t-e;return n?P2(e,n>180||n<-180?n-360*Math.round(n/360):n):zc(isNaN(e)?t:e)}function Zk(e){return(e=+e)==1?dt:function(t,n){return n-t?Wk(t,n,e):zc(isNaN(t)?n:t)}}function dt(e,t){var n=t-e;return n?P2(e,n):zc(isNaN(e)?t:e)}const Xd=function e(t){var n=Zk(t);function r(i,o){var s=n((i=Mc(i)).r,(o=Mc(o)).r),a=n(i.g,o.g),u=n(i.b,o.b),l=dt(i.opacity,o.opacity);return function(c){return i.r=s(c),i.g=a(c),i.b=u(c),i.opacity=l(c),i+""}}return r.gamma=e,r}(1);function L2(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),o=new Array(n),s,a;for(s=0;s<n;++s)a=Mc(t[s]),r[s]=a.r||0,i[s]=a.g||0,o[s]=a.b||0;return r=e(r),i=e(i),o=e(o),a.opacity=1,function(u){return a.r=r(u),a.g=i(u),a.b=o(u),a+""}}}var Yk=L2(F2),Qk=L2(M2);function Kd(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(o){for(i=0;i<n;++i)r[i]=e[i]*(1-o)+t[i]*o;return r}}function N2(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Xk(e,t){return(N2(t)?Kd:O2)(e,t)}function O2(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),o=new Array(n),s;for(s=0;s<r;++s)i[s]=Yr(e[s],t[s]);for(;s<n;++s)o[s]=t[s];return function(a){for(s=0;s<r;++s)o[s]=i[s](a);return o}}function z2(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function In(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function U2(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]=Yr(e[i],t[i]):r[i]=t[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var Jd=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,e0=new RegExp(Jd.source,"g");function Kk(e){return function(){return e}}function Jk(e){return function(t){return e(t)+""}}function G2(e,t){var n=Jd.lastIndex=e0.lastIndex=0,r,i,o,s=-1,a=[],u=[];for(e=e+"",t=t+"";(r=Jd.exec(e))&&(i=e0.exec(t));)(o=i.index)>n&&(o=t.slice(n,o),a[s]?a[s]+=o:a[++s]=o),(r=r[0])===(i=i[0])?a[s]?a[s]+=i:a[++s]=i:(a[++s]=null,u.push({i:s,x:In(r,i)})),n=e0.lastIndex;return n<t.length&&(o=t.slice(n),a[s]?a[s]+=o:a[++s]=o),a.length<2?u[0]?Jk(u[0].x):Kk(t):(t=u.length,function(l){for(var c=0,f;c<t;++c)a[(f=u[c]).i]=f.x(l);return a.join("")})}function Yr(e,t){var n=typeof t,r;return t==null||n==="boolean"?zc(t):(n==="number"?In:n==="string"?(r=Zr(t))?(t=r,Xd):G2:t instanceof Zr?Xd:t instanceof Date?z2:N2(t)?Kd:Array.isArray(t)?O2:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?U2:In)(e,t)}function eI(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function tI(e,t){var n=Uc(+e,+t);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function Xa(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var H2=180/Math.PI,t0={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function V2(e,t,n,r,i,o){var s,a,u;return(s=Math.sqrt(e*e+t*t))&&(e/=s,t/=s),(u=e*n+t*r)&&(n-=e*u,r-=t*u),(a=Math.sqrt(n*n+r*r))&&(n/=a,r/=a,u/=a),e*r<t*n&&(e=-e,t=-t,u=-u,s=-s),{translateX:i,translateY:o,rotate:Math.atan2(t,e)*H2,skewX:Math.atan(u)*H2,scaleX:s,scaleY:a}}var Gc;function nI(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?t0:V2(t.a,t.b,t.c,t.d,t.e,t.f)}function rI(e){return e==null||(Gc||(Gc=document.createElementNS("http://www.w3.org/2000/svg","g")),Gc.setAttribute("transform",e),!(e=Gc.transform.baseVal.consolidate()))?t0:(e=e.matrix,V2(e.a,e.b,e.c,e.d,e.e,e.f))}function j2(e,t,n,r){function i(l){return l.length?l.pop()+" ":""}function o(l,c,f,h,d,p){if(l!==f||c!==h){var m=d.push("translate(",null,t,null,n);p.push({i:m-4,x:In(l,f)},{i:m-2,x:In(c,h)})}else(f||h)&&d.push("translate("+f+t+h+n)}function s(l,c,f,h){l!==c?(l-c>180?c+=360:c-l>180&&(l+=360),h.push({i:f.push(i(f)+"rotate(",null,r)-2,x:In(l,c)})):c&&f.push(i(f)+"rotate("+c+r)}function a(l,c,f,h){l!==c?h.push({i:f.push(i(f)+"skewX(",null,r)-2,x:In(l,c)}):c&&f.push(i(f)+"skewX("+c+r)}function u(l,c,f,h,d,p){if(l!==f||c!==h){var m=d.push(i(d)+"scale(",null,",",null,")");p.push({i:m-4,x:In(l,f)},{i:m-2,x:In(c,h)})}else(f!==1||h!==1)&&d.push(i(d)+"scale("+f+","+h+")")}return function(l,c){var f=[],h=[];return l=e(l),c=e(c),o(l.translateX,l.translateY,c.translateX,c.translateY,f,h),s(l.rotate,c.rotate,f,h),a(l.skewX,c.skewX,f,h),u(l.scaleX,l.scaleY,c.scaleX,c.scaleY,f,h),l=c=null,function(d){for(var p=-1,m=h.length,y;++p<m;)f[(y=h[p]).i]=y.x(d);return f.join("")}}}var iI=j2(nI,"px, ","px)","deg)"),oI=j2(rI,", ",")",")"),sI=1e-12;function $2(e){return((e=Math.exp(e))+1/e)/2}function aI(e){return((e=Math.exp(e))-1/e)/2}function lI(e){return((e=Math.exp(2*e))-1)/(e+1)}const uI=function e(t,n,r){function i(o,s){var a=o[0],u=o[1],l=o[2],c=s[0],f=s[1],h=s[2],d=c-a,p=f-u,m=d*d+p*p,y,w;if(m<sI)w=Math.log(h/l)/t,y=function(I){return[a+I*d,u+I*p,l*Math.exp(t*I*w)]};else{var x=Math.sqrt(m),S=(h*h-l*l+r*m)/(2*l*n*x),_=(h*h-l*l-r*m)/(2*h*n*x),T=Math.log(Math.sqrt(S*S+1)-S),B=Math.log(Math.sqrt(_*_+1)-_);w=(B-T)/t,y=function(I){var D=I*w,M=$2(T),G=l/(n*x)*(M*lI(t*D+T)-aI(T));return[a+G*d,u+G*p,l*M/$2(t*D+T)]}}return y.duration=w*1e3*t/Math.SQRT2,y}return i.rho=function(o){var s=Math.max(.001,+o),a=s*s,u=a*a;return e(s,a,u)},i}(Math.SQRT2,2,4);function q2(e){return function(t,n){var r=e((t=Ud(t)).h,(n=Ud(n)).h),i=dt(t.s,n.s),o=dt(t.l,n.l),s=dt(t.opacity,n.opacity);return function(a){return t.h=r(a),t.s=i(a),t.l=o(a),t.opacity=s(a),t+""}}}const cI=q2(Uc);var fI=q2(dt);function hI(e,t){var n=dt((e=Hd(e)).l,(t=Hd(t)).l),r=dt(e.a,t.a),i=dt(e.b,t.b),o=dt(e.opacity,t.opacity);return function(s){return e.l=n(s),e.a=r(s),e.b=i(s),e.opacity=o(s),e+""}}function W2(e){return function(t,n){var r=e((t=Wd(t)).h,(n=Wd(n)).h),i=dt(t.c,n.c),o=dt(t.l,n.l),s=dt(t.opacity,n.opacity);return function(a){return t.h=r(a),t.c=i(a),t.l=o(a),t.opacity=s(a),t+""}}}const dI=W2(Uc);var pI=W2(dt);function Z2(e){return function t(n){n=+n;function r(i,o){var s=e((i=Qd(i)).h,(o=Qd(o)).h),a=dt(i.s,o.s),u=dt(i.l,o.l),l=dt(i.opacity,o.opacity);return function(c){return i.h=s(c),i.s=a(c),i.l=u(Math.pow(c,n)),i.opacity=l(c),i+""}}return r.gamma=t,r}(1)}const gI=Z2(Uc);var mI=Z2(dt);function n0(e,t){t===void 0&&(t=e,e=Yr);for(var n=0,r=t.length-1,i=t[0],o=new Array(r<0?0:r);n<r;)o[n]=e(i,i=t[++n]);return function(s){var a=Math.max(0,Math.min(r-1,Math.floor(s*=r)));return o[a](s-a)}}function bI(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}const yI=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Yr,interpolateArray:Xk,interpolateBasis:F2,interpolateBasisClosed:M2,interpolateCubehelix:gI,interpolateCubehelixLong:mI,interpolateDate:z2,interpolateDiscrete:eI,interpolateHcl:dI,interpolateHclLong:pI,interpolateHsl:cI,interpolateHslLong:fI,interpolateHue:tI,interpolateLab:hI,interpolateNumber:In,interpolateNumberArray:Kd,interpolateObject:U2,interpolateRgb:Xd,interpolateRgbBasis:Yk,interpolateRgbBasisClosed:Qk,interpolateRound:Xa,interpolateString:G2,interpolateTransformCss:iI,interpolateTransformSvg:oI,interpolateZoom:uI,piecewise:n0,quantize:bI},Symbol.toStringTag,{value:"Module"}));function wI(e){return function(){return e}}function r0(e){return+e}var Y2=[0,1];function Ut(e){return e}function i0(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:wI(isNaN(t)?NaN:.5)}function vI(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function AI(e,t,n){var r=e[0],i=e[1],o=t[0],s=t[1];return i<r?(r=i0(i,r),o=n(s,o)):(r=i0(r,i),o=n(o,s)),function(a){return o(r(a))}}function xI(e,t,n){var r=Math.min(e.length,t.length)-1,i=new Array(r),o=new Array(r),s=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++s<r;)i[s]=i0(e[s],e[s+1]),o[s]=n(t[s],t[s+1]);return function(a){var u=Nr(e,a,1,r)-1;return o[u](i[u](a))}}function Ka(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Hc(){var e=Y2,t=Y2,n=Yr,r,i,o,s=Ut,a,u,l;function c(){var h=Math.min(e.length,t.length);return s!==Ut&&(s=vI(e[0],e[h-1])),a=h>2?xI:AI,u=l=null,f}function f(h){return h==null||isNaN(h=+h)?o:(u||(u=a(e.map(r),t,n)))(r(s(h)))}return f.invert=function(h){return s(i((l||(l=a(t,e.map(r),In)))(h)))},f.domain=function(h){return arguments.length?(e=Array.from(h,r0),c()):e.slice()},f.range=function(h){return arguments.length?(t=Array.from(h),c()):t.slice()},f.rangeRound=function(h){return t=Array.from(h),n=Xa,c()},f.clamp=function(h){return arguments.length?(s=h?!0:Ut,c()):s!==Ut},f.interpolate=function(h){return arguments.length?(n=h,c()):n},f.unknown=function(h){return arguments.length?(o=h,f):o},function(h,d){return r=h,i=d,c()}}function Q2(){return Hc()(Ut,Ut)}function X2(e,t,n,r){var i=Li(e,t,n),o;switch(r=Vo(r??",f"),r.type){case"s":{var s=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(o=eC(i,s))&&(r.precision=o),S1(r,s)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=tC(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=J4(i))&&(r.precision=o-(r.type==="%")*2);break}}return _t(r)}function Qi(e){var t=e.domain;return e.ticks=function(n){var r=t();return Ju(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return X2(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,o=r.length-1,s=r[i],a=r[o],u,l,c=10;for(a<s&&(l=s,s=a,a=l,l=i,i=o,o=l);c-- >0;){if(l=zh(s,a,n),l===u)return r[i]=s,r[o]=a,t(r);if(l>0)s=Math.floor(s/l)*l,a=Math.ceil(a/l)*l;else if(l<0)s=Math.ceil(s*l)/l,a=Math.floor(a*l)/l;else break;u=l}return e},e}function K2(){var e=Q2();return e.copy=function(){return Ka(e,K2())},Hn.apply(e,arguments),Qi(e)}function J2(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,r0),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return J2(e).unknown(t)},e=arguments.length?Array.from(e,r0):[0,1],Qi(n)}function ey(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],o=e[r],s;return o<i&&(s=n,n=r,r=s,s=i,i=o,o=s),e[n]=t.floor(i),e[r]=t.ceil(o),e}function ty(e){return Math.log(e)}function ny(e){return Math.exp(e)}function EI(e){return-Math.log(-e)}function _I(e){return-Math.exp(-e)}function SI(e){return isFinite(e)?+("1e"+e):e<0?0:e}function CI(e){return e===10?SI:e===Math.E?Math.exp:t=>Math.pow(e,t)}function TI(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 ry(e){return(t,n)=>-e(-t,n)}function o0(e){const t=e(ty,ny),n=t.domain;let r=10,i,o;function s(){return i=TI(r),o=CI(r),n()[0]<0?(i=ry(i),o=ry(o),e(EI,_I)):e(ty,ny),t}return t.base=function(a){return arguments.length?(r=+a,s()):r},t.domain=function(a){return arguments.length?(n(a),s()):n()},t.ticks=a=>{const u=n();let l=u[0],c=u[u.length-1];const f=c<l;f&&([l,c]=[c,l]);let h=i(l),d=i(c),p,m;const y=a==null?10:+a;let w=[];if(!(r%1)&&d-h<y){if(h=Math.floor(h),d=Math.ceil(d),l>0){for(;h<=d;++h)for(p=1;p<r;++p)if(m=h<0?p/o(-h):p*o(h),!(m<l)){if(m>c)break;w.push(m)}}else for(;h<=d;++h)for(p=r-1;p>=1;--p)if(m=h>0?p/o(-h):p*o(h),!(m<l)){if(m>c)break;w.push(m)}w.length*2<y&&(w=Ju(l,c,y))}else w=Ju(h,d,Math.min(d-h,y)).map(o);return f?w.reverse():w},t.tickFormat=(a,u)=>{if(a==null&&(a=10),u==null&&(u=r===10?"s":","),typeof u!="function"&&(!(r%1)&&(u=Vo(u)).precision==null&&(u.trim=!0),u=_t(u)),a===1/0)return u;const l=Math.max(1,r*a/t.ticks().length);return c=>{let f=c/o(Math.round(i(c)));return f*r<r-.5&&(f*=r),f<=l?u(c):""}},t.nice=()=>n(ey(n(),{floor:a=>o(Math.floor(i(a))),ceil:a=>o(Math.ceil(i(a)))})),t}function s0(){const e=o0(Hc()).domain([1,10]);return e.copy=()=>Ka(e,s0()).base(e.base()),Hn.apply(e,arguments),e}function iy(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function oy(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function a0(e){var t=1,n=e(iy(t),oy(t));return n.constant=function(r){return arguments.length?e(iy(t=+r),oy(t)):t},Qi(n)}function sy(){var e=a0(Hc());return e.copy=function(){return Ka(e,sy()).constant(e.constant())},Hn.apply(e,arguments)}function ay(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function kI(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function II(e){return e<0?-e*e:e*e}function l0(e){var t=e(Ut,Ut),n=1;function r(){return n===1?e(Ut,Ut):n===.5?e(kI,II):e(ay(n),ay(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},Qi(t)}function u0(){var e=l0(Hc());return e.copy=function(){return Ka(e,u0()).exponent(e.exponent())},Hn.apply(e,arguments),e}function BI(){return u0.apply(null,arguments).exponent(.5)}function ly(){var e=[],t=[],n=[],r;function i(){var s=0,a=Math.max(1,t.length);for(n=new Array(a-1);++s<a;)n[s-1]=y1(e,s/a);return o}function o(s){return s==null||isNaN(s=+s)?r:t[Nr(n,s)]}return o.invertExtent=function(s){var a=t.indexOf(s);return a<0?[NaN,NaN]:[a>0?n[a-1]:e[0],a<n.length?n[a]:e[e.length-1]]},o.domain=function(s){if(!arguments.length)return e.slice();e=[];for(let a of s)a!=null&&!isNaN(a=+a)&&e.push(a);return e.sort(Pi),i()},o.range=function(s){return arguments.length?(t=Array.from(s),i()):t.slice()},o.unknown=function(s){return arguments.length?(r=s,o):r},o.quantiles=function(){return n.slice()},o.copy=function(){return ly().domain(e).range(t).unknown(r)},Hn.apply(o,arguments)}function uy(){var e=0,t=1,n=1,r=[.5],i=[0,1],o;function s(u){return u!=null&&u<=u?i[Nr(r,u,0,n)]:o}function a(){var u=-1;for(r=new Array(n);++u<n;)r[u]=((u+1)*t-(u-n)*e)/(n+1);return s}return s.domain=function(u){return arguments.length?([e,t]=u,e=+e,t=+t,a()):[e,t]},s.range=function(u){return arguments.length?(n=(i=Array.from(u)).length-1,a()):i.slice()},s.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]]},s.unknown=function(u){return arguments.length&&(o=u),s},s.thresholds=function(){return r.slice()},s.copy=function(){return uy().domain([e,t]).range(i).unknown(o)},Hn.apply(Qi(s),arguments)}function cy(){var e=[.5],t=[0,1],n,r=1;function i(o){return o!=null&&o<=o?t[Nr(e,o,0,r)]:n}return i.domain=function(o){return arguments.length?(e=Array.from(o),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(o){return arguments.length?(t=Array.from(o),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(o){var s=t.indexOf(o);return[e[s-1],e[s]]},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return cy().domain(e).range(t).unknown(n)},Hn.apply(i,arguments)}function DI(e){return new Date(e)}function RI(e){return e instanceof Date?+e:+new Date(+e)}function c0(e,t,n,r,i,o,s,a,u,l){var c=Q2(),f=c.invert,h=c.domain,d=l(".%L"),p=l(":%S"),m=l("%I:%M"),y=l("%I %p"),w=l("%a %d"),x=l("%b %d"),S=l("%B"),_=l("%Y");function T(B){return(u(B)<B?d:a(B)<B?p:s(B)<B?m:o(B)<B?y:r(B)<B?i(B)<B?w:x:n(B)<B?S:_)(B)}return c.invert=function(B){return new Date(f(B))},c.domain=function(B){return arguments.length?h(Array.from(B,RI)):h().map(DI)},c.ticks=function(B){var I=h();return e(I[0],I[I.length-1],B??10)},c.tickFormat=function(B,I){return I==null?T:l(I)},c.nice=function(B){var I=h();return(!B||typeof B.range!="function")&&(B=t(I[0],I[I.length-1],B??10)),B?h(ey(I,B)):c},c.copy=function(){return Ka(c,c0(e,t,n,r,i,o,s,a,u,l))},c}function FI(){return Hn.apply(c0(hC,dC,zn,Ca,_a,Or,ic,nc,dr,Qh).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function MI(){return Hn.apply(c0(cC,fC,Un,Ta,Sa,Ni,oc,rc,dr,Xh).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Vc(){var e=0,t=1,n,r,i,o,s=Ut,a=!1,u;function l(f){return f==null||isNaN(f=+f)?u:s(i===0?.5:(f=(o(f)-n)*i,a?Math.max(0,Math.min(1,f)):f))}l.domain=function(f){return arguments.length?([e,t]=f,n=o(e=+e),r=o(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(f){return arguments.length?(a=!!f,l):a},l.interpolator=function(f){return arguments.length?(s=f,l):s};function c(f){return function(h){var d,p;return arguments.length?([d,p]=h,s=f(d,p),l):[s(0),s(1)]}}return l.range=c(Yr),l.rangeRound=c(Xa),l.unknown=function(f){return arguments.length?(u=f,l):u},function(f){return o=f,n=f(e),r=f(t),i=n===r?0:1/(r-n),l}}function Qr(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function f0(){var e=Qi(Vc()(Ut));return e.copy=function(){return Qr(e,f0())},qr.apply(e,arguments)}function fy(){var e=o0(Vc()).domain([1,10]);return e.copy=function(){return Qr(e,fy()).base(e.base())},qr.apply(e,arguments)}function hy(){var e=a0(Vc());return e.copy=function(){return Qr(e,hy()).constant(e.constant())},qr.apply(e,arguments)}function h0(){var e=l0(Vc());return e.copy=function(){return Qr(e,h0()).exponent(e.exponent())},qr.apply(e,arguments)}function PI(){return h0.apply(null,arguments).exponent(.5)}function jc(){var e=0,t=.5,n=1,r=1,i,o,s,a,u,l=Ut,c,f=!1,h;function d(m){return isNaN(m=+m)?h:(m=.5+((m=+c(m))-o)*(r*m<r*o?a:u),l(f?Math.max(0,Math.min(1,m)):m))}d.domain=function(m){return arguments.length?([e,t,n]=m,i=c(e=+e),o=c(t=+t),s=c(n=+n),a=i===o?0:.5/(o-i),u=o===s?0:.5/(s-o),r=o<i?-1:1,d):[e,t,n]},d.clamp=function(m){return arguments.length?(f=!!m,d):f},d.interpolator=function(m){return arguments.length?(l=m,d):l};function p(m){return function(y){var w,x,S;return arguments.length?([w,x,S]=y,l=n0(m,[w,x,S]),d):[l(0),l(.5),l(1)]}}return d.range=p(Yr),d.rangeRound=p(Xa),d.unknown=function(m){return arguments.length?(h=m,d):h},function(m){return c=m,i=m(e),o=m(t),s=m(n),a=i===o?0:.5/(o-i),u=o===s?0:.5/(s-o),r=o<i?-1:1,d}}function dy(){var e=Qi(jc()(Ut));return e.copy=function(){return Qr(e,dy())},qr.apply(e,arguments)}function py(){var e=o0(jc()).domain([.1,1,10]);return e.copy=function(){return Qr(e,py()).base(e.base())},qr.apply(e,arguments)}function gy(){var e=a0(jc());return e.copy=function(){return Qr(e,gy()).constant(e.constant())},qr.apply(e,arguments)}function d0(){var e=l0(jc());return e.copy=function(){return Qr(e,d0()).exponent(e.exponent())},qr.apply(e,arguments)}function LI(){return d0.apply(null,arguments).exponent(.5)}function p0(e,t,n){const r=e-t+n*2;return e?r>0?r:1:0}const NI="identity",os="linear",Xr="log",Ja="pow",el="sqrt",$c="symlog",my="time",by="utc",$n="sequential",ss="diverging",g0="quantile",yy="quantize",wy="threshold",m0="ordinal",b0="point",vy="band",y0="bin-ordinal",at="continuous",tl="discrete",nl="discretizing",un="interpolating",Ay="temporal";function OI(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 zI(e){return function(t){const n=e.range();let r=t[0],i=t[1],o=-1,s,a,u,l;for(i<r&&(a=r,r=i,i=a),u=0,l=n.length;u<l;++u)n[u]>=r&&n[u]<=i&&(o<0&&(o=u),s=u);if(!(o<0))return r=e.invertExtent(n[o]),i=e.invertExtent(n[s]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function w0(){const e=Od().unknown(void 0),t=e.domain,n=e.range;let r=[0,1],i,o,s=!1,a=0,u=0,l=.5;delete e.unknown;function c(){const f=t().length,h=r[1]<r[0],d=r[1-h],p=p0(f,a,u);let m=r[h-0];i=(d-m)/(p||1),s&&(i=Math.floor(i)),m+=(d-m-i*(f-a))*l,o=i*(1-a),s&&(m=Math.round(m),o=Math.round(o));const y=xa(f).map(w=>m+i*w);return n(h?y.reverse():y)}return e.domain=function(f){return arguments.length?(t(f),c()):t()},e.range=function(f){return arguments.length?(r=[+f[0],+f[1]],c()):r.slice()},e.rangeRound=function(f){return r=[+f[0],+f[1]],s=!0,c()},e.bandwidth=function(){return o},e.step=function(){return i},e.round=function(f){return arguments.length?(s=!!f,c()):s},e.padding=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),a=u,c()):a},e.paddingInner=function(f){return arguments.length?(a=Math.max(0,Math.min(1,f)),c()):a},e.paddingOuter=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),c()):u},e.align=function(f){return arguments.length?(l=Math.max(0,Math.min(1,f)),c()):l},e.invertRange=function(f){if(f[0]==null||f[1]==null)return;const h=r[1]<r[0],d=h?n().reverse():n(),p=d.length-1;let m=+f[0],y=+f[1],w,x,S;if(!(m!==m||y!==y)&&(y<m&&(S=m,m=y,y=S),!(y<d[0]||m>r[1-h])))return w=Math.max(0,Nr(d,m)-1),x=m===y?w:Nr(d,y)-1,m-d[w]>o+1e-10&&++w,h&&(S=w,w=p-x,x=p-S),w>x?void 0:t().slice(w,x+1)},e.invert=function(f){const h=e.invertRange([f,f]);return h&&h[0]},e.copy=function(){return w0().domain(t()).range(r).round(s).paddingInner(a).paddingOuter(u).align(l)},c()}function xy(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return xy(t())},e}function UI(){return xy(w0().paddingInner(1))}var GI=Array.prototype.map;function HI(e){return GI.call(e,ca)}const VI=Array.prototype.slice;function Ey(){let e=[],t=[];function n(r){return r==null||r!==r?void 0:t[(Nr(e,r)-1)%t.length]}return n.domain=function(r){return arguments.length?(e=HI(r),n):e.slice()},n.range=function(r){return arguments.length?(t=VI.call(r),n):t.slice()},n.tickFormat=function(r,i){return X2(e[0],Sn(e),r??10,i)},n.copy=function(){return Ey().domain(n.domain()).range(n.range())},n}const qc=new Map,jI=Symbol("vega_scale");function $I(e){return e[jI]=!0,e}function qI(e,t,n){const r=function(){const o=t();return o.invertRange||(o.invertRange=o.invert?OI(o):o.invertExtent?zI(o):void 0),o.type=e,$I(o)};return r.metadata=qu(Th(n)),r}function Te(e,t,n){return arguments.length>1?(qc.set(e,qI(e,t,n)),this):WI(e)?qc.get(e):void 0}Te(NI,J2),Te(os,K2,at),Te(Xr,s0,[at,Xr]),Te(Ja,u0,at),Te(el,BI,at),Te($c,sy,at),Te(my,FI,[at,Ay]),Te(by,MI,[at,Ay]),Te($n,f0,[at,un]),Te(`${$n}-${os}`,f0,[at,un]),Te(`${$n}-${Xr}`,fy,[at,un,Xr]),Te(`${$n}-${Ja}`,h0,[at,un]),Te(`${$n}-${el}`,PI,[at,un]),Te(`${$n}-${$c}`,hy,[at,un]),Te(`${ss}-${os}`,dy,[at,un]),Te(`${ss}-${Xr}`,py,[at,un,Xr]),Te(`${ss}-${Ja}`,d0,[at,un]),Te(`${ss}-${el}`,LI,[at,un]),Te(`${ss}-${$c}`,gy,[at,un]),Te(g0,ly,[nl,g0]),Te(yy,uy,nl),Te(wy,cy,nl),Te(y0,Ey,[tl,nl]),Te(m0,Od,tl),Te(vy,w0,tl),Te(b0,UI,tl);function WI(e){return qc.has(e)}function rl(e,t){const n=qc.get(e);return n&&n.metadata[t]}function yt(e){return rl(e,at)}function Kr(e){return rl(e,tl)}function Xi(e){return rl(e,nl)}function _y(e){return rl(e,Xr)}function Wc(e){return rl(e,un)}function ZI(e,t){const n=t[0],r=Sn(t)-n;return function(i){return e(n+i*r)}}function Zc(e,t,n){return n0(Sy(t||"rgb",n),e)}function YI(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}function Sy(e,t){const n=yI[QI(e)];return t!=null&&n&&n.gamma?n.gamma(t):n}function QI(e){return"interpolate"+e.toLowerCase().split("-").map(t=>t[0].toUpperCase()+t.slice(1)).join("")}const XI={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"},KI={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 Cy(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 Ty(e,t){for(const n in e)v0(n,t(e[n]))}const ky={};Ty(KI,Cy),Ty(XI,e=>Zc(Cy(e)));function v0(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(ky[e]=t,this):ky[e]}function Re(e,t=e){if(/^[A-Za-z0-9_]+$/.test(e)){const n=new Function("datum",`return datum[${JSON.stringify(e)}]`);return Le(n,[e],t)}else return Gu(e)}const JI="RawCode",eB="Literal",tB="Property",nB="Identifier",rB="ArrayExpression",iB="BinaryExpression",oB="CallExpression",sB="ConditionalExpression",aB="LogicalExpression",lB="MemberExpression",uB="ObjectExpression",cB="UnaryExpression";function Bn(e){this.type=e}Bn.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=fB(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};function fB(e){switch(e.type){case rB:return e.elements;case iB:case aB:return[e.left,e.right];case oB:return[e.callee].concat(e.arguments);case sB:return[e.test,e.consequent,e.alternate];case lB:return[e.object,e.property];case uB:return e.properties;case tB:return[e.key,e.value];case cB:return[e.argument];case nB:case eB:case JI:default:return[]}}var qn,ee,H,Ct,Fe,Yc=1,il=2,Ki=3,Jr=4,Qc=5,Ji=6,Gt=7,ol=8,hB=9;qn={},qn[Yc]="Boolean",qn[il]="<end>",qn[Ki]="Identifier",qn[Jr]="Keyword",qn[Qc]="Null",qn[Ji]="Numeric",qn[Gt]="Punctuator",qn[ol]="String",qn[hB]="RegularExpression";var dB="ArrayExpression",pB="BinaryExpression",gB="CallExpression",mB="ConditionalExpression",Iy="Identifier",bB="Literal",yB="LogicalExpression",wB="MemberExpression",vB="ObjectExpression",AB="Property",xB="UnaryExpression",pt="Unexpected token %0",EB="Unexpected number",_B="Unexpected string",SB="Unexpected identifier",CB="Unexpected reserved word",TB="Unexpected end of input",A0="Invalid regular expression",x0="Invalid regular expression: missing /",By="Octal literals are not allowed in strict mode.",kB="Duplicate data property in object literal not allowed in strict mode",wt="ILLEGAL",sl="Disabled.",IB=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]"),BB=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 Xc(e,t){if(!e)throw new Error("ASSERT: "+t)}function br(e){return e>=48&&e<=57}function E0(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function al(e){return"01234567".indexOf(e)>=0}function DB(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 ll(e){return e===10||e===13||e===8232||e===8233}function ul(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&IB.test(String.fromCharCode(e))}function Kc(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&BB.test(String.fromCharCode(e))}const RB={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 Dy(){for(;H<Ct;){const e=ee.charCodeAt(H);if(DB(e)||ll(e))++H;else break}}function _0(e){var t,n,r,i=0;for(n=e==="u"?4:2,t=0;t<n;++t)H<Ct&&E0(ee[H])?(r=ee[H++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):Ae({},pt,wt);return String.fromCharCode(i)}function FB(){var e,t,n,r;for(e=ee[H],t=0,e==="}"&&Ae({},pt,wt);H<Ct&&(e=ee[H++],!!E0(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&Ae({},pt,wt),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,r=(t-65536&1023)+56320,String.fromCharCode(n,r))}function Ry(){var e,t;for(e=ee.charCodeAt(H++),t=String.fromCharCode(e),e===92&&(ee.charCodeAt(H)!==117&&Ae({},pt,wt),++H,e=_0("u"),(!e||e==="\\"||!ul(e.charCodeAt(0)))&&Ae({},pt,wt),t=e);H<Ct&&(e=ee.charCodeAt(H),!!Kc(e));)++H,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),ee.charCodeAt(H)!==117&&Ae({},pt,wt),++H,e=_0("u"),(!e||e==="\\"||!Kc(e.charCodeAt(0)))&&Ae({},pt,wt),t+=e);return t}function MB(){var e,t;for(e=H++;H<Ct;){if(t=ee.charCodeAt(H),t===92)return H=e,Ry();if(Kc(t))++H;else break}return ee.slice(e,H)}function PB(){var e,t,n;return e=H,t=ee.charCodeAt(H)===92?Ry():MB(),t.length===1?n=Ki:RB.hasOwnProperty(t)?n=Jr:t==="null"?n=Qc:t==="true"||t==="false"?n=Yc:n=Ki,{type:n,value:t,start:e,end:H}}function S0(){var e=H,t=ee.charCodeAt(H),n,r=ee[H],i,o,s;switch(t){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++H,{type:Gt,value:String.fromCharCode(t),start:e,end:H};default:if(n=ee.charCodeAt(H+1),n===61)switch(t){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return H+=2,{type:Gt,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:H};case 33:case 61:return H+=2,ee.charCodeAt(H)===61&&++H,{type:Gt,value:ee.slice(e,H),start:e,end:H}}}if(s=ee.substr(H,4),s===">>>=")return H+=4,{type:Gt,value:s,start:e,end:H};if(o=s.substr(0,3),o===">>>"||o==="<<="||o===">>=")return H+=3,{type:Gt,value:o,start:e,end:H};if(i=o.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return H+=2,{type:Gt,value:i,start:e,end:H};if(i==="//"&&Ae({},pt,wt),"<>=!+-*%&|^/".indexOf(r)>=0)return++H,{type:Gt,value:r,start:e,end:H};Ae({},pt,wt)}function LB(e){let t="";for(;H<Ct&&E0(ee[H]);)t+=ee[H++];return t.length===0&&Ae({},pt,wt),ul(ee.charCodeAt(H))&&Ae({},pt,wt),{type:Ji,value:parseInt("0x"+t,16),start:e,end:H}}function NB(e){let t="0"+ee[H++];for(;H<Ct&&al(ee[H]);)t+=ee[H++];return(ul(ee.charCodeAt(H))||br(ee.charCodeAt(H)))&&Ae({},pt,wt),{type:Ji,value:parseInt(t,8),octal:!0,start:e,end:H}}function Fy(){var e,t,n;if(n=ee[H],Xc(br(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=H,e="",n!=="."){if(e=ee[H++],n=ee[H],e==="0"){if(n==="x"||n==="X")return++H,LB(t);if(al(n))return NB(t);n&&br(n.charCodeAt(0))&&Ae({},pt,wt)}for(;br(ee.charCodeAt(H));)e+=ee[H++];n=ee[H]}if(n==="."){for(e+=ee[H++];br(ee.charCodeAt(H));)e+=ee[H++];n=ee[H]}if(n==="e"||n==="E")if(e+=ee[H++],n=ee[H],(n==="+"||n==="-")&&(e+=ee[H++]),br(ee.charCodeAt(H)))for(;br(ee.charCodeAt(H));)e+=ee[H++];else Ae({},pt,wt);return ul(ee.charCodeAt(H))&&Ae({},pt,wt),{type:Ji,value:parseFloat(e),start:t,end:H}}function OB(){var e="",t,n,r,i,o=!1;for(t=ee[H],Xc(t==="'"||t==='"',"String literal must starts with a quote"),n=H,++H;H<Ct;)if(r=ee[H++],r===t){t="";break}else if(r==="\\")if(r=ee[H++],!r||!ll(r.charCodeAt(0)))switch(r){case"u":case"x":ee[H]==="{"?(++H,e+=FB()):e+=_0(r);break;case"n":e+=`
|
|
252
|
+
`;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:al(r)?(i="01234567".indexOf(r),i!==0&&(o=!0),H<Ct&&al(ee[H])&&(o=!0,i=i*8+"01234567".indexOf(ee[H++]),"0123".indexOf(r)>=0&&H<Ct&&al(ee[H])&&(i=i*8+"01234567".indexOf(ee[H++]))),e+=String.fromCharCode(i)):e+=r;break}else r==="\r"&&ee[H]===`
|
|
253
|
+
`&&++H;else{if(ll(r.charCodeAt(0)))break;e+=r}return t!==""&&Ae({},pt,wt),{type:ol,value:e,octal:o,start:n,end:H}}function zB(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";Ae({},A0)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{Ae({},A0)}try{return new RegExp(e,t)}catch{return null}}function UB(){var e,t,n,r,i;for(e=ee[H],Xc(e==="/","Regular expression literal must start with a slash"),t=ee[H++],n=!1,r=!1;H<Ct;)if(e=ee[H++],t+=e,e==="\\")e=ee[H++],ll(e.charCodeAt(0))&&Ae({},x0),t+=e;else if(ll(e.charCodeAt(0)))Ae({},x0);else if(n)e==="]"&&(n=!1);else if(e==="/"){r=!0;break}else e==="["&&(n=!0);return r||Ae({},x0),i=t.substr(1,t.length-2),{value:i,literal:t}}function GB(){var e,t,n;for(t="",n="";H<Ct&&(e=ee[H],!!Kc(e.charCodeAt(0)));)++H,e==="\\"&&H<Ct?Ae({},pt,wt):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&Ae({},A0,n),{value:n,literal:t}}function HB(){var e,t,n,r;return Fe=null,Dy(),e=H,t=UB(),n=GB(),r=zB(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:H}}function VB(e){return e.type===Ki||e.type===Jr||e.type===Yc||e.type===Qc}function My(){if(Dy(),H>=Ct)return{type:il,start:H,end:H};const e=ee.charCodeAt(H);return ul(e)?PB():e===40||e===41||e===59?S0():e===39||e===34?OB():e===46?br(ee.charCodeAt(H+1))?Fy():S0():br(e)?Fy():S0()}function Ht(){const e=Fe;return H=e.end,Fe=My(),H=e.end,e}function Py(){const e=H;Fe=My(),H=e}function jB(e){const t=new Bn(dB);return t.elements=e,t}function Ly(e,t,n){const r=new Bn(e==="||"||e==="&&"?yB:pB);return r.operator=e,r.left=t,r.right=n,r}function $B(e,t){const n=new Bn(gB);return n.callee=e,n.arguments=t,n}function qB(e,t,n){const r=new Bn(mB);return r.test=e,r.consequent=t,r.alternate=n,r}function C0(e){const t=new Bn(Iy);return t.name=e,t}function cl(e){const t=new Bn(bB);return t.value=e.value,t.raw=ee.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function Ny(e,t,n){const r=new Bn(wB);return r.computed=e==="[",r.object=t,r.property=n,r.computed||(n.member=!0),r}function WB(e){const t=new Bn(vB);return t.properties=e,t}function Oy(e,t,n){const r=new Bn(AB);return r.key=t,r.value=n,r.kind=e,r}function ZB(e,t){const n=new Bn(xB);return n.operator=e,n.argument=t,n.prefix=!0,n}function Ae(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,(o,s)=>(Xc(s<r.length,"Message reference must be in range"),r[s]));throw n=new Error(i),n.index=H,n.description=i,n}function Jc(e){e.type===il&&Ae(e,TB),e.type===Ji&&Ae(e,EB),e.type===ol&&Ae(e,_B),e.type===Ki&&Ae(e,SB),e.type===Jr&&Ae(e,CB),Ae(e,pt,e.value)}function Tt(e){const t=Ht();(t.type!==Gt||t.value!==e)&&Jc(t)}function We(e){return Fe.type===Gt&&Fe.value===e}function T0(e){return Fe.type===Jr&&Fe.value===e}function YB(){const e=[];for(H=Fe.start,Tt("[");!We("]");)We(",")?(Ht(),e.push(null)):(e.push(eo()),We("]")||Tt(","));return Ht(),jB(e)}function zy(){H=Fe.start;const e=Ht();return e.type===ol||e.type===Ji?(e.octal&&Ae(e,By),cl(e)):C0(e.value)}function QB(){var e,t,n,r;if(H=Fe.start,e=Fe,e.type===Ki)return n=zy(),Tt(":"),r=eo(),Oy("init",n,r);if(e.type===il||e.type===Gt)Jc(e);else return t=zy(),Tt(":"),r=eo(),Oy("init",t,r)}function XB(){var e=[],t,n,r,i={},o=String;for(H=Fe.start,Tt("{");!We("}");)t=QB(),t.key.type===Iy?n=t.key.name:n=o(t.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?Ae({},kB):i[r]=!0,e.push(t),We("}")||Tt(",");return Tt("}"),WB(e)}function KB(){Tt("(");const e=k0();return Tt(")"),e}const JB={if:1};function eD(){var e,t,n;if(We("("))return KB();if(We("["))return YB();if(We("{"))return XB();if(e=Fe.type,H=Fe.start,e===Ki||JB[Fe.value])n=C0(Ht().value);else if(e===ol||e===Ji)Fe.octal&&Ae(Fe,By),n=cl(Ht());else{if(e===Jr)throw new Error(sl);e===Yc?(t=Ht(),t.value=t.value==="true",n=cl(t)):e===Qc?(t=Ht(),t.value=null,n=cl(t)):We("/")||We("/=")?(n=cl(HB()),Py()):Jc(Ht())}return n}function tD(){const e=[];if(Tt("("),!We(")"))for(;H<Ct&&(e.push(eo()),!We(")"));)Tt(",");return Tt(")"),e}function nD(){H=Fe.start;const e=Ht();return VB(e)||Jc(e),C0(e.value)}function rD(){return Tt("."),nD()}function iD(){Tt("[");const e=k0();return Tt("]"),e}function oD(){var e,t,n;for(e=eD();;)if(We("."))n=rD(),e=Ny(".",e,n);else if(We("("))t=tD(),e=$B(e,t);else if(We("["))n=iD(),e=Ny("[",e,n);else break;return e}function Uy(){const e=oD();if(Fe.type===Gt&&(We("++")||We("--")))throw new Error(sl);return e}function ef(){var e,t;if(Fe.type!==Gt&&Fe.type!==Jr)t=Uy();else{if(We("++")||We("--"))throw new Error(sl);if(We("+")||We("-")||We("~")||We("!"))e=Ht(),t=ef(),t=ZB(e.value,t);else{if(T0("delete")||T0("void")||T0("typeof"))throw new Error(sl);t=Uy()}}return t}function Gy(e){let t=0;if(e.type!==Gt&&e.type!==Jr)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 sD(){var e,t,n,r,i,o,s,a,u,l;if(e=Fe,u=ef(),r=Fe,i=Gy(r),i===0)return u;for(r.prec=i,Ht(),t=[e,Fe],s=ef(),o=[u,r,s];(i=Gy(Fe))>0;){for(;o.length>2&&i<=o[o.length-2].prec;)s=o.pop(),a=o.pop().value,u=o.pop(),t.pop(),n=Ly(a,u,s),o.push(n);r=Ht(),r.prec=i,o.push(r),t.push(Fe),n=ef(),o.push(n)}for(l=o.length-1,n=o[l],t.pop();l>1;)t.pop(),n=Ly(o[l-1].value,o[l-2],n),l-=2;return n}function eo(){var e,t,n;return e=sD(),We("?")&&(Ht(),t=eo(),Tt(":"),n=eo(),e=qB(e,t,n)),e}function k0(){const e=eo();if(We(","))throw new Error(sl);return e}function aD(e){ee=e,H=0,Ct=ee.length,Fe=null,Py();const t=k0();if(Fe.type!==il)throw new Error("Unexpect token after expression.");return t}var lD={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 Hy(e){function t(s,a,u,l){let c=e(a[0]);return u&&(c=u+"("+c+")",u.lastIndexOf("new ",0)===0&&(c="("+c+")")),c+"."+s+(l<0?"":l===0?"()":"("+a.slice(1).map(e).join(",")+")")}function n(s,a,u){return l=>t(s,l,a,u)}const r="new Date",i="String",o="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",hypot:"Math.hypot",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(s){s.length<3&&ot("Missing arguments to clamp function."),s.length>3&&ot("Too many arguments to clamp function.");const a=s.map(e);return"Math.max("+a[1]+", Math.min("+a[2]+","+a[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:o,test:n("test",o),if:function(s){s.length<3&&ot("Missing arguments to if function."),s.length>3&&ot("Too many arguments to if function.");const a=s.map(e);return"("+a[0]+"?"+a[1]+":"+a[2]+")"}}}function uD(e){const t=e&&e.length-1;return t&&(e[0]==='"'&&e[t]==='"'||e[0]==="'"&&e[t]==="'")?e.slice(1,-1):e}function cD(e){e=e||{};const t=e.allowed?qu(e.allowed):{},n=e.forbidden?qu(e.forbidden):{},r=e.constants||lD,i=(e.functions||Hy)(f),o=e.globalvar,s=e.fieldvar,a=sn(o)?o:p=>`${o}["${p}"]`;let u={},l={},c=0;function f(p){if(De(p))return p;const m=h[p.type];return m==null&&ot("Unsupported type: "+p.type),m(p)}const h={Literal:p=>p.raw,Identifier:p=>{const m=p.name;return c>0?m:Oo(n,m)?ot("Illegal identifier: "+m):Oo(r,m)?r[m]:Oo(t,m)?m:(u[m]=1,a(m))},MemberExpression:p=>{const m=!p.computed,y=f(p.object);m&&(c+=1);const w=f(p.property);return y===s&&(l[uD(w)]=1),m&&(c-=1),y+(m?"."+w:"["+w+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&ot("Illegal callee type: "+p.callee.type);const m=p.callee.name,y=p.arguments,w=Oo(i,m)&&i[m];return w||ot("Unrecognized function: "+m),sn(w)?w(y):w+"("+y.map(f).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(f).join(",")+"]",BinaryExpression:p=>"("+f(p.left)+" "+p.operator+" "+f(p.right)+")",UnaryExpression:p=>"("+p.operator+f(p.argument)+")",ConditionalExpression:p=>"("+f(p.test)+"?"+f(p.consequent)+":"+f(p.alternate)+")",LogicalExpression:p=>"("+f(p.left)+p.operator+f(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(f).join(",")+"}",Property:p=>{c+=1;const m=f(p.key);return c-=1,m+":"+f(p.value)}};function d(p){const m={code:f(p),globals:Object.keys(u),fields:Object.keys(l)};return u={},l={},m}return d.functions=i,d.constants=r,d}function Vy(e,t,n){return n=(n-e)/(t-e),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}function as(e,t=0,n=1){return Math.max(t,Math.min(n,e))}function fD(e,t,n){return as((n-e)/(t-e),0,1)}const Wn=1,ei=2,I0=4;class B0{constructor(t){J(this,To);Bt(this,"stats",{count:0,first:null});Bt(this,"paramMediatorProvider",null);this.paramMediatorProvider=t,this.children=[],this.parent=void 0,this.completed=!1}get behavior(){return 0}get label(){return`(${this.constructor.name})`}reset(){this.completed=!1;for(const t of this.children)t.reset();this.stats.count=0,this.stats.first=null}initialize(){}setParent(t){this.parent=t}addChild(t){if(t.parent)throw new Error("Cannot add the child! It already has a parent.");return this.children.push(t),t.setParent(this),Q(this,To,Ou).call(this),this}adopt(t){t.parent&&t.parent.removeChild(t),this.addChild(t)}adoptChildrenOf(t){for(const n of t.children)this.adopt(n)}insertAsParent(t){var n;if(this.isRoot())throw new Error("Cannot insert a new parent for a root node!");t.parent=this.parent,this.parent.children[this.parent.children.indexOf(this)]=t,Q(n=this.parent,To,Ou).call(n),this.parent=void 0,t.addChild(this)}removeChild(t){const n=this.children.indexOf(t);if(n>-1)this.children.splice(n,1),t.parent=void 0,Q(this,To,Ou).call(this);else throw new Error("Trying to remove an unknown child node!")}excise(){var t;if(this.isRoot())throw new Error("Cannot excise root node!");if(this.isTerminal())this.parent.removeChild(this);else if(this.children.length==1){const n=this.children[0];n.setParent(this.parent),this.parent.children[this.parent.children.indexOf(this)]=n,Q(t=this.parent,To,Ou).call(t),this.setParent(void 0),this.children.length=0}else throw new Error("Cannot excise a node that has multiple children!")}isRoot(){return!this.parent}isBranching(){return this.children.length>1}isTerminal(){return this.children.length==0}visit(t){t(this);for(const n of this.children)n.visit(t);t.afterChildren&&t.afterChildren(this)}subtreeToString(t=0){const n=this.children.map(r=>r.subtreeToString(t+1)).join("");return`${" ".repeat(t*2)}* ${this.label}${("identifier"in this&&this.identifier?": "+this.identifier:"")??""}
|
|
254
|
+
${n}`}handle(t){this._propagate(t)}complete(){this.completed=!0;for(const t of this.children)t.complete()}beginBatch(t){for(const n of this.children)n.beginBatch(t)}get paramMediator(){if(this.paramMediatorProvider)return this.paramMediatorProvider.paramMediator;if(!this.parent)throw new Error("Cannot find paramMediator!");return this.parent.paramMediator}repropagate(){if(this.parent)this.parent.repropagate();else throw new Error("Cannot repropagate data, no FlowNode with stored data found!")}_propagate(t){}}To=new WeakSet,Ou=function(){this._propagate=Function("children","stats",xa(this.children.length).map(t=>`const child${t} = children[${t}];`).join(`
|
|
255
|
+
`)+`return function propagate(datum) {
|
|
256
|
+
if (stats.count === 0) {
|
|
257
|
+
stats.first = structuredClone(datum);
|
|
258
|
+
}
|
|
259
|
+
stats.count++;
|
|
260
|
+
${xa(this.children.length).map(t=>`child${t}.handle(datum);`).join(`
|
|
261
|
+
`)}
|
|
262
|
+
};`)(this.children,this.stats)};function jy(e){return e.type=="file"}function hD(e){return e.type=="facet"}class lt extends B0{constructor(n,r){super(r);J(this,yu);le(this,yu,n.type)}get label(){return z(this,yu)}}yu=new WeakMap;const ti="_uniqueId",$y=1e4,qy=[null];class D0 extends lt{get behavior(){return ei}constructor(t){super(t),this.params=t,this.as=t.as??ti,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%$y==0&&(this._id=this._getBlock()*$y),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const t=qy.length;return qy[t]=this,this._blocks.push(t),this._usedBlocks++,t}}function Wy(e){return{type:"single",datum:e,uniqueId:e==null?void 0:e[ti]}}function dD(e,t,n=!0){if(!e||!t)return!1;if(Yy(e))return e.uniqueId==null?n:e.uniqueId===t[ti];if(pD(e))return e.uniqueIds.size==0?n:e.uniqueIds.has(t[ti]);throw new Error("Not a selection: "+JSON.stringify(e))}function Zy(e){return`selectionTest(${nf(e.param)}, datum, ${!!(e.empty??!0)})`}function Yy(e){return e.type==="single"}function pD(e){return e.type==="multi"}const Qy={clamp:as,isArray:xt,isBoolean:fa,isDefined(e){return e!==void 0},isNumber:Dt,isObject:Et,isRegExp:$S,isString:De,isValid(e){return e!=null&&e===e},lerp:Hm,linearstep:fD,smoothstep:Vy,selectionTest:dD};function gD(e){const t=Hy(e);for(const n in Qy)t[n]=`this.${n}`;return t}const mD=cD({forbidden:[],allowed:["datum","undefined"],globalvar:"globalObject",fieldvar:"datum",functions:gD});function bD(e,t={}){try{const n=aD(e),r=mD(n),i=Function("datum","globalObject",`"use strict";
|
|
257
263
|
try {
|
|
258
264
|
return (${r.code});
|
|
259
265
|
} catch (e) {
|
|
260
266
|
throw new Error("Error evaluating expression: " + ${JSON.stringify(e)} + ", " + e.message, e);
|
|
261
|
-
}`).bind(
|
|
267
|
+
}`).bind(Qy),o=s=>i(s,t);return o.fields=r.fields,o.globals=r.globals,o.code=r.code,o}catch(n){throw new Error(`Invalid expression: ${e}, ${n.message}`)}}class yD{constructor(t){J(this,wi);Bt(this,"paramListeners");J(this,ko,new Map);J(this,Ws,new Map);J(this,Zs,new Map);J(this,wu);le(this,wu,t??(()=>{})),le(this,wi,new Map),this.paramListeners=new Map}registerParam(t){const n=t.name;if("value"in t&&"expr"in t)throw new Error(`The parameter "${n}" must not have both value and expr properties!`);let r;if(t.push=="outer"){const i=this.findMediatorForParam(n);if(!i)throw new Error(`Parameter "${n}" not found in outer scope!`);const o=i.paramConfigs.get(n);if("expr"in o||"select"in o)throw new Error(`The outer parameter "${n}" must not have expr or select properties!`);r=i.getSetter(n),z(this,ko).set(n,r)}else if("value"in t)r=this.allocateSetter(n,t.value);else if("expr"in t){const i=this.createExpression(t.expr),o=this.allocateSetter(n,i(null));i.addListener(()=>o(i(null))),r=s=>{}}else r=this.allocateSetter(n,null);return"select"in t&&(De(t.select)?t.select:t.select.type)=="point"&&r(Wy(null)),z(this,Zs).set(n,t),r}allocateSetter(t,n,r=!1){if(nf(t),z(this,ko).has(t))throw new Error("Setter already allocated for parameter: "+t);const i=o=>{const s=z(this,wi).get(t);if(o!==s){z(this,wi).set(t,o);const a=this.paramListeners.get(t);if(a&&!r)for(const u of a)u()}};return i(n),z(this,ko).set(t,i),i}getSetter(t){const n=z(this,ko).get(t);if(!n)throw new Error("Setter not found for parameter: "+t);return n}getValue(t){return z(this,wi).get(t)}findValue(t){const n=this.findMediatorForParam(t);return n==null?void 0:n.getValue(t)}get paramConfigs(){return z(this,Zs)}findMediatorForParam(t){var n;return z(this,wi).has(t)?this:(n=z(this,wu).call(this))==null?void 0:n.findMediatorForParam(t)}createExpression(t){if(z(this,Ws).has(t))return z(this,Ws).get(t);const n={},r=bD(t,n),i=new Map;for(const s of r.globals){const a=this.findMediatorForParam(s);if(!a)throw new Error(`Unknown variable "${s}" in expression: ${t}`);i.set(s,a),Object.defineProperty(n,s,{enumerable:!0,get(){return a.getValue(s)}})}const o=new Set;return r.addListener=s=>{for(const[a,u]of i){const l=u.paramListeners.get(a)??new Set;u.paramListeners.set(a,l),l.add(s),o.add(s)}},r.invalidate=()=>{var s;for(const[a,u]of i)for(const l of o)(s=u.paramListeners.get(a))==null||s.delete(l)},r.identifier=()=>r.code,z(this,Ws).set(t,r),r}evaluateAndGet(t){return this.createExpression(t)()}hasPointSelections(){for(const t of z(this,Zs).values())if(vD(t)){const n=t.select;if(De(n)){if(n=="point")return!0}else if(n.type=="point")return!0}return!1}}wi=new WeakMap,ko=new WeakMap,Ws=new WeakMap,Zs=new WeakMap,wu=new WeakMap;function Mt(e){return typeof e=="object"&&e!=null&&"expr"in e&&De(e.expr)}function Qt(e){if(Mt(e))throw new Error(`ExprRef ${JSON.stringify(e)} not allowed here. Expected a scalar value.`);return e}function wD(e){return("expr"in e||"bind"in e)&&!("select"in e)}function vD(e){return!("expr"in e||"bind"in e)&&"select"in e}function tf(e,t,n){const r={...t},i=[],o=s=>{i.push(s),i.length===1&&queueMicrotask(()=>{n(i.slice()),i.length=0})};for(const[s,a]of Object.entries(t))if(Mt(a)){const u=e.createExpression(a.expr);n&&u.addListener(()=>o(s)),Object.defineProperty(r,s,{enumerable:!0,get(){return u()}})}else r[s]=a;return r}function nf(e){if(!/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(e))throw new Error(`Invalid parameter name: ${e}. Must be a valid JavaScript identifier.`);return e}function AD(e){return Object.assign(()=>e,{addListener:()=>{},invalidate:()=>{},identifier:()=>"constant",fields:[],globals:[],code:JSON.stringify(e)})}function Xy(e,t,n){if(!e)return;function r(o){const s=o;return s.fields??(s.fields=[]),s.constant=s.fields.length===0,s.channelDef=t,s.channel=e,s.scaleChannel=((Xt(t)&&t.resolutionChannel)??(pl(e)&&e))||void 0,"param"in t?(s.predicate=n.createExpression(Zy(t)),s.predicate.param=t.param,s.predicate.empty=t.empty??!0):(s.predicate=AD(!0),s.predicate.empty=!1),s.asNumberAccessor=()=>s,s}function i(o){if(Mt(o)){const s=r(n.createExpression(o.expr));if(s.fields.length>0)throw new Error("Expression in DatumDef/ValueDef cannot access data fields: "+o.expr);return s}else{const s=o;return r(()=>s)}}if(ni(t))try{return r(Re(t.field))}catch(o){throw new Error(`Invalid field definition: ${o.message}`)}else{if(hl(t))return r(n.createExpression(t.expr));if(fl(t))return i(t.datum);if(cn(t))return i(t.value);throw new Error(`Invalid channel definition: ${JSON.stringify(t)}. Cannot create an accessor for channel ${e}!`)}}function xD(e,t,n){const r=[];if(CD(t)||TD(t)){const i=Array.isArray(t.condition)?t.condition:[t.condition];for(const o of i)r.push(Xy(e,o,n))}if(r.push(Xy(e,t,n)),r.filter(i=>!i.constant).length>1)throw new Error("Only one accessor can be non-constant. Channel: "+e);return r}function ED(e,t){const n={},r=i=>{var o;return(o=e.getScaleResolution(i))==null?void 0:o.scale};for(const[i,o]of Object.entries(t))o&&(n[i]=_D(xD(i,o,e.paramMediator),r));return n}function _D(e,t){if(e.length===1)return Ky(e[0],t);const n=e.map(o=>o.predicate),r=e.map(o=>Ky(o,t));return Object.assign(o=>{for(let s=0;s<r.length;s++)if(n[s](o))return r[s](o)},{constant:!1,accessors:r.map(o=>o.accessors[0]),dataAccessor:r.map(o=>o.dataAccessor).find(o=>o),scale:r.map(o=>o.scale).find(o=>o),channelDef:e.at(-1).channelDef})}function Ky(e,t){const{channel:n,scaleChannel:r,channelDef:i}=e,o=e.scaleChannel?t(r):void 0;if(r&&!o)throw new Error(`Missing scale! "${n}": ${JSON.stringify(i)}`);return Object.assign(o?s=>o(e(s)):s=>e(s),{scale:o,constant:e.constant,accessors:[e],dataAccessor:e.constant?void 0:e,channelDef:i})}function cn(e){return e&&"value"in e}function ni(e){return e&&"field"in e}function fl(e){return e&&"datum"in e}function Xt(e){return ni(e)||fl(e)||hl(e)||Jy(e)}function SD(e,t){const n=e.mark.encoding[t];if(Xt(n))return n;throw new Error("Not a channel def with scale!")}function Jy(e){return e&&"chrom"in e}function hl(e){return e&&"expr"in e}function CD(e){return(ni(e)||fl(e))&&"condition"in e}function TD(e){return cn(e)&&"condition"in e}const ls=["x","y"],kD=["x2","y2"],ID=[...ls,...kD];function ew(e){return ls.includes(e)}function dl(e){return ID.includes(e)}const tw={x:"x2",y:"y2"},nw=Object.fromEntries(Object.entries(tw).map(e=>[e[1],e[0]]));function rw(e){return e in nw}function BD(e){const t=tw[e];if(t)return t;throw new Error(`${e} has no secondary channel!`)}function to(e){return nw[e]??e}function ri(e){return["color","fill","stroke"].includes(to(e))}function rf(e){return["shape"].includes(e)}function pl(e){return["x","y","x2","y2","color","fill","stroke","opacity","fillOpacity","strokeOpacity","strokeWidth","size","shape","angle","dx","dy"].includes(e)}function DD(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 iw(e){if(!rf(e))throw new Error("Not a discrete channel: "+e);const t=new Map(DD(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 R0(){const e=t=>t;return e.invert=t=>t,e.copy=R0,e.invertRange=()=>{},e.type="null",e}const gl="attr_",RD="uDomain_",FD="range_",MD="accessor_",ow="scale_",PD="getScaled_",F0="uRangeTexture_",M0="uParam_",sw=3402823466e29;function LD(e){const t=e.match(/^(?:(\w+)-)?(\w+)$/);if(!t)throw new Error("Not a scale type: "+e);return{family:t[1]||"continuous",transform:t[2]}}function ml(e,t){return`${MD}${e}_${t}`}function ND(e,t,n){let r;if(rf(e))r=no(iw(e)(n));else if(De(n))if(ri(e))r=HD(n);else throw new Error(`String values are not supported on the "${e}" channel: ${n}`);else if(fa(n))r=no(n?1:0);else if(n===null)if(ri(e))r=no([0,0,0]);else throw new Error(`null value is not supported on the "${e}" chanel.`);else r=no(n);const i=ml(e,t),o=`
|
|
262
268
|
${r.type} ${i}() {
|
|
263
269
|
// Constant value
|
|
264
270
|
return ${r};
|
|
265
|
-
}`;return{channel:e,accessorGlsl:o,accessorFunctionName:i}}function
|
|
271
|
+
}`;return{channel:e,accessorGlsl:o,accessorFunctionName:i}}function OD(e,t){let n="float",r=u=>u;ri(e)&&(n="vec3",r=u=>fw(u));const i=`u${WD(e)}_${t}`,o=` // Dynamic value
|
|
266
272
|
uniform ${n} ${i};`,s=ml(e,t);let a=`
|
|
267
273
|
${n} ${s}() {
|
|
268
274
|
// Dynamic value
|
|
269
275
|
return ${i};
|
|
270
|
-
}`;return{channel:e,uniformName:i,uniformGlsl:o,accessorGlsl:a,accessorFunctionName:s,adjuster:r}}function
|
|
276
|
+
}`;return{channel:e,uniformName:i,uniformGlsl:o,accessorGlsl:a,accessorFunctionName:s,adjuster:r}}function aw(e,t,n,r=[e]){const{attributeType:i}=bl(t,e),o=gl+L0(r),s=`in highp ${i} ${o};`,a=ml(e,n),u=`
|
|
271
277
|
${i} ${a}() {
|
|
272
278
|
return ${o};
|
|
273
|
-
}`;return{channel:e,attributeName:o,attributeGlsl:s,accessorGlsl:u,accessorFunctionName:a}}function
|
|
279
|
+
}`;return{channel:e,attributeName:o,attributeGlsl:s,accessorGlsl:u,accessorFunctionName:a}}function zD(e,t,n){const{attributeType:r}=bl(t,e),i=gl+L0(e),o=` uniform highp ${r} ${i};`,s=ml(e,n),a=`
|
|
274
280
|
${r} ${s}() {
|
|
275
281
|
return ${i};
|
|
276
|
-
}`;return{channel:e,uniformName:i,uniformGlsl:o,accessorGlsl:a,accessorFunctionName:s}}function
|
|
277
|
-
${y} ${
|
|
282
|
+
}`;return{channel:e,uniformName:i,uniformGlsl:o,accessorGlsl:a,accessorFunctionName:s}}function UD(e,t,n){t??(t=R0());const r=to(e),i=RD+r,o=FD+r,{hp:s,attributeType:a}=bl(t,e),u=t.domain?t.domain().length:void 0;let l;const c=[];c.push(""),c.push("/".repeat(70)),c.push(`// Channel: ${e}`),c.push("");const{transform:f}=LD(t.type),h=(I,...D)=>VD.apply(null,[I,"value",...D]);let d;switch(f){case"linear":d=h("scaleLinear","domain",o);break;case"log":d=h("scaleLog","domain",o,t.base());break;case"symlog":d=h("scaleSymlog","domain",o,t.constant());break;case"pow":case"sqrt":d=h("scalePow","domain",o,t.exponent());break;case"index":case"locus":d=h("scaleBandHp","domain",o,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"point":case"band":d=h("scaleBand","domain",o,t.paddingInner(),t.paddingOuter(),t.align(),n.band??.5);break;case"ordinal":case"null":case"identity":d=h("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${t.type}! ${e}: ${JSON.stringify(n)}`)}const p=mw(t,e);let m;if(p&&e==r){const I=t.props.range??[];if(Mt(I)||I.some(Mt)){if(p.length<1||p.length>4)throw new Error(`A range with ExprRefs must have 1-4 elements, not ${p.length}! Range: ${JSON.stringify(p)}`);m=` uniform ${uw(p.length)} ${o};`}else if(p.length&&p.every(Dt)){const D=hw(p);c.push(`const ${D.type} ${o} = ${D};`)}}const y=cw(e);let w;if(ri(e)){const I=F0+r;if(e==r&&c.push(`uniform sampler2D ${I};`),yt(t.type))w=`getInterpolatedColor(${I}, transformed)`;else if(Kr(t.type)||Xi(t.type))w=`getDiscreteColor(${I}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(t.type==="ordinal"||Xi(t.type)){const I=F0+r;e==r&&c.push(`uniform sampler2D ${I};`),w=`getDiscreteColor(${I}, int(transformed)).r`}const x=[],S=yt(t.type)&&u>2,_=Xi(t.type)||S;if(x.push("int slot = 0;"),_){const I=i;x.push(S?`while (slot < ${I}.length() - 2 && value >= ${I}[slot + 1]) { slot++; }`:`while (slot < ${I}.length() && value >= ${I}[slot]) { slot++; }`)}const T=yt(t.type)||Xi(t.type)||["band","point"].includes(t.type);if(d){const I=i;T&&(s?x.push(`vec3 domain = ${I};`):x.push(`vec2 domain = vec2(${I}[slot], ${I}[slot + 1]);`)),x.push(`float transformed = ${d};`),S&&x.push(`transformed = (float(slot) + transformed) / (float(${I}.length() - 1));`)}else x.push("float transformed = float(slot);");"clamp"in t&&t.clamp()&&x.push(`transformed = clampToRange(transformed, ${hw(p)});`),x.push(`return ${w??"transformed"};`),c.push(`
|
|
283
|
+
${y} ${ow}${e}(${a} value) {
|
|
278
284
|
${x.map(I=>` ${I}
|
|
279
285
|
`).join("")}
|
|
280
286
|
}`);const B=c.join(`
|
|
281
|
-
`);if(T&&e==r){const I=yt(t.type)||Xi(t.type)?u:2;l=s?` highp vec3 ${i};`:` mediump float ${i}[${I}];`}return{glsl:B,domainUniformName:i,domainUniform:l,rangeUniformName:o,rangeUniform:m}}function
|
|
282
|
-
${
|
|
287
|
+
`);if(T&&e==r){const I=yt(t.type)||Xi(t.type)?u:2;l=s?` highp vec3 ${i};`:` mediump float ${i}[${I}];`}return{glsl:B,domainUniformName:i,domainUniform:l,rangeUniformName:o,rangeUniform:m}}function GD(e,t){const n=cw(e),r=[],i=[];for(let o=0;o<t.length;o++){const s=t[o],a=ml(e,o),{param:u,empty:l}=s.predicate,c=M0+nf(u),f=gl+"uniqueId";r.push(u?`${f} == ${c}${l?` || ${c} == uint(0)`:""}`:null),i.push(s.scaleChannel?`return ${ow}${e}(${a}());`:`return ${a}();`)}return`${n} ${PD}${e}() {
|
|
288
|
+
${ZD(r,i)}
|
|
283
289
|
}
|
|
284
290
|
|
|
285
|
-
#define ${e}_DEFINED`}function
|
|
291
|
+
#define ${e}_DEFINED`}function lw(e){if(!Dt(e))throw new Error(`Not a number: ${e}`);if(e==1/0)return""+sw;if(e==-1/0)return""+-sw;{let t=`${e}`;return/^(-)?\d+$/.test(t)&&(t+=".0"),t}}function no(e){typeof e=="number"&&(e=[e]);const t=e.length;if(t<1||t>4)throw new Error("Invalid number of components: "+t);const n=uw(t),r=`${n}(${e.map(lw).join(", ")})`;return Object.assign(r,{type:n,numComponents:t})}function uw(e){switch(e){case 1:return"float";case 2:return"vec2";case 3:return"vec3";case 4:return"vec4";default:throw new Error("Invalid number of components: "+e)}}function cw(e){return ri(e)?"vec3":e=="uniqueId"?"uint":"float"}function fw(e){const t=Zr(e).rgb();return[t.r,t.g,t.b].map(n=>n/255)}function HD(e){return no(fw(e))}function hw(e){return no([e[0],za(e)])}function VD(e,...t){const n=[];for(const r of t)Dt(r)?n.push(lw(r)):xt(r)?n.push(no(r)):n.push(r);return`${e}(${n.join(", ")})`}function bl(e,t){var s;const n=e&&Kr(e.type),r=e&&dw(e.type),i=r&&jD(e.domain()),o=i?{attributeType:"uvec2",arrayConstructor:Uint32Array}:r?{attributeType:"uint",arrayConstructor:Uint32Array}:n?{attributeType:"uint",arrayConstructor:Uint16Array}:t=="uniqueId"?{attributeType:"uint",arrayConstructor:Uint32Array}:{attributeType:"float",arrayConstructor:Float32Array};return Object.assign(o,{numComponents:+(((s=o.attributeType.match(/^vec([234])$/))==null?void 0:s[1])??1),discrete:n,hp:r,largeHp:i})}function dw(e){return e=="index"||e=="locus"}function jD(e){return e[1]>2**32}const P0=2**12;function pw(e,t=[]){const n=e%P0,r=(e-n)/P0;return t[0]=r,t[1]=n,t}function $D(e){const t=e%P0;return[e-t,t]}function qD(e){return[...$D(e[0]),e[1]-e[0]]}function gw(e){const t=new ur([],JSON.stringify);for(const[n,r]of Object.entries(e)){const i=r.channelDef;if(ni(i)){const s=[i.field,r.scale?(yt(r.scale.type)||Xi(r.scale.type))??!1:!1];t.set(s,[...t.get(s)??[],n])}}return t}function L0(e){return zt(e).join("_")}function WD(e){return e[0].toUpperCase()+e.slice(1)}const mw=(e,t)=>Wc(e.type)||yt(e.type)&&ri(t)?[0,1]:e.range?e.range():void 0;function ZD(e,t){if(e.length!=t.length)throw new Error("Unequal array lengths");const n=e.length;if(n==0)return"";if(n==1&&e[0]==null)return t[0];const r=[];for(let i=0;i<n;i++){const o=e[i],s=i==0?`if (${o})`:o==null&&i==n-1?"else":`else if (${o})`;r.push(` ${s} {
|
|
286
292
|
${t[i]}
|
|
287
293
|
}`)}return r.join(`
|
|
288
|
-
`)}const
|
|
294
|
+
`)}const bw=1e4;class YD{constructor(t){J(this,Ys);J(this,vu,!1);this.size=t,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}configure(){if(z(this,vu))throw new Error("Already configured!");Q(this,Ys,hS).call(this),Q(this,Ys,dS).call(this),le(this,vu,!0)}addConverter(t,n){const r=this.createUpdater(gl+t,n.numComponents||1,n.targetArrayType??Float32Array,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?o=>r(i(o)):o=>r(i(o)))}createUpdater(t,n,r=Float32Array,i=void 0){if(!Dt(this.size))throw new Error("The number of vertices must be defined!");let o,s,a=0;const u=new r(this.size*n);if(this.arrays[t]={data:u,numComponents:n},n==1){let l=0;const c=f=>{l=+f};o=()=>{u[a++]=l},s=c}else{let l=i??[0];const c=i?f=>{}:f=>{l=f};switch(n){case 1:break;case 2:o=()=>{u[a++]=l[0],u[a++]=l[1]},s=c;break;case 3:o=()=>{u[a++]=l[0],u[a++]=l[1],u[a++]=l[2]},s=c;break;case 4:o=()=>{u[a++]=l[0],u[a++]=l[1],u[a++]=l[2],u[a++]=l[3]},s=c;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(o),s}pushAll(){throw new Error("Call configure() first!")}updateFromDatum(t){throw new Error("Call configure() first!")}pushFromDatum(t){this.updateFromDatum(t),this.pushAll()}}vu=new WeakMap,Ys=new WeakSet,hS=function(){if(this.size>bw){const t=this.pushers.map((r,i)=>`const p${i} = that.pushers[${i}];`).join(`
|
|
289
295
|
`),n=this.pushers.map((r,i)=>` p${i}();`).join(`
|
|
290
296
|
`);this.pushAll=new Function("that",`${t}
|
|
291
297
|
return function unrolledPushAll() {
|
|
292
298
|
${n}
|
|
293
299
|
that.vertexCount++;
|
|
294
|
-
};`)(this)}else this.pushAll=()=>{for(let t=0;t<this.pushers.length;t++)this.pushers[t]();this.vertexCount++}},
|
|
300
|
+
};`)(this)}else this.pushAll=()=>{for(let t=0;t<this.pushers.length;t++)this.pushers[t]();this.vertexCount++}},dS=function(){if(this.size>bw){const t=this.dataUpdaters.map((r,i)=>`const u${i} = that.dataUpdaters[${i}];`).join(`
|
|
295
301
|
`),n=this.dataUpdaters.map((r,i)=>` u${i}(datum);`).join(`
|
|
296
302
|
`);this.updateFromDatum=new Function("that","datum",`${t}
|
|
297
303
|
return function unrolledUpdateFromDatum(datum) {
|
|
298
304
|
${n}
|
|
299
|
-
};`)(this)}else this.updateFromDatum=t=>{for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](t)}};const us=5,
|
|
305
|
+
};`)(this)}else this.updateFromDatum=t=>{for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](t)}};const us=5,N0=127;function O0(e){const t=[];for(let p=0;p<=N0;p++)t.push(void 0);const n=new Map;for(const p of e.chars)p.id<=N0?t[p.id]=p:n.set(p.id,p);const r=8722;n.has(r)||n.set(r,t[45]);function i(p){return(p<=N0?t[p]:n.get(p))||t[63]}function o(p){return i(p.charCodeAt(0))}const s=e.common.base,a=o("x"),u=o("X"),l=o("q"),c=a.height-us*2,f=u.height-us*2,h=l.height-a.height+l.yoffset-a.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/s*m}return{measureWidth:d,getCharByCode:i,getChar:o,xHeight:c,capHeight:f,descent:h,common:e.common}}const yw=2**31-1,QD=-(2**31);function XD(e,t,n,r=n){const i=new Array(e);i.fill(yw);let o=QD,s=-1/0,a=!1;const u=new Array(e);u.fill(0);const l=t[0],f=(t[1]-t[0])/e,h=(w,x)=>{const S=(w-l)/f,_=Math.floor(S);return as(x&&_==S?_-1:_,0,e-1)};function d(w,x,S){if(a)return;if(x>o)o=x;else{a=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}const _=n(w);if(_<s){a=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}s=_;const T=h(_,!1);i[T]>x&&(i[T]=x),u[T]<S&&(u[T]=S)}function p(w,x,S){if(a)return;if(x>o)o=x;else{a=!0,console.debug("Items (vertices) are not ordered properly. Disabling binned index.");return}const _=n(w),T=r(w);if(_<s){a=!0,console.debug("Items are not ordered properly. Disabling binned index.");return}else if(T<_){a=!0,console.debug("End index is less than start index. Disabling binned index. Datum: ",w);return}s=_;const B=h(_,!1),I=h(T,!0);for(let D=B;D<=I;D++)i[D]>x&&(i[D]=x),u[D]<S&&(u[D]=S)}const m=(w,x,S=[0,0])=>{const _=h(w,!1),T=h(x,!0),B=i[_],I=Math.max(u[T],B);return S[0]=B,S[1]=I,S},y=()=>{if(a)return;for(let x=1;x<u.length;x++)u[x]<u[x-1]&&(u[x]=u[x-1]);let w=!0;for(let x=i.length-1;x>0;x--)w&&i[x]==yw?(i[x]=u[x],w=!1):i[x-1]>i[x]&&(i[x-1]=i[x]);return m};return d.getIndex=y,p.getIndex=y,n==r?d:p}function KD(){let e=0,t,n=0;const r=new Map,i=o=>(o===t||(n=r.get(o),n===void 0&&(n=e++,r.set(o,n)),t=o),n);return i.addAll=o=>{for(const s of o)i(s)},i.invert=o=>{for(const s of r.entries())if(s[1]==o)return s[0]},i.domain=()=>[...r.keys()],i}class yl{constructor({encoders:t,numVertices:n=void 0,attributes:r=[]}){this.encoders=t,this.variableEncoders=Object.fromEntries(Object.entries(t).filter(([o,s])=>r.includes(o)&&s&&!s.constant));const i=[...gw(t).entries()].filter(([o,s])=>o[1]&&s.length>1).map(([o,s])=>s);this.allocatedVertices=n,this.variableBuilder=new YD(n);for(const[o,s]of Object.entries(this.variableEncoders)){const a=s.dataAccessor;if(!a)continue;const u=i.find(S=>S.find(_=>_==o));if(u&&o!=u[0])continue;const l=a.asNumberAccessor(),c=s.scale,{largeHp:f,arrayConstructor:h,discrete:d,numComponents:p}=bl(c,o),m=[0,0];let y;c&&d&&"domain"in c&&(y=KD(),y.addAll(c.domain()));const w=y?S=>y(a(S)):f?S=>pw(l(S),m):l,x=u?L0(u):o;this.variableBuilder.addConverter(x,{f:w,numComponents:p,arrayReference:f?m:void 0,targetArrayType:h})}this.lastOffset=0,this.rangeMap=new ur([],JSON.stringify)}registerBatch(t){var o;const n=this.lastOffset,r=this.variableBuilder.vertexCount,i=r-n;i&&this.rangeMap.set(t,{offset:n,count:i,xIndex:(o=this.xIndexer)==null?void 0:o.getIndex()}),this.lastOffset=r}addBatches(t){for(const[n,r]of t)this.addBatch(n,r)}addBatch(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const s=n[o];this.variableBuilder.pushFromDatum(s),this.addToXIndex(s)}this.registerBatch(t)}prepareXIndexer(t,n=0,r=n+t.length){var l;const i=()=>{this.addToXIndex=c=>{},this.xIndexer=void 0},o=(l=this.encoders.x)==null?void 0:l.channelDef;if(!("buildIndex"in o)||!o.buildIndex||!t.length||r-n<0){i();return}const s=c=>{var f;return c&&yt((f=c.scale)==null?void 0:f.type)&&c},a=s(this.variableEncoders.x),u=s(this.variableEncoders.x2);if(a&&!a.constant&&(!u||!u.constant)){const c=a.dataAccessor.asNumberAccessor(),f=u?u.dataAccessor.asNumberAccessor():c,h=[c(t[n]),f(t[r-1])];if(h[1]>h[0]){this.xIndexer=XD(50,h,c,f);let d=this.variableBuilder.vertexCount;this.addToXIndex=p=>{let m=this.variableBuilder.vertexCount;this.xIndexer(p,d,m),d=m}}else i()}else i()}addToXIndex(t){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class JD extends yl{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() {
|
|
300
306
|
pushAll(); pushAll(); pushAll(); pushAll(); pushAll(); pushAll();
|
|
301
|
-
};`)(i):function(){i(),i(),i(),i(),i(),i()}}addBatch(t,n,r=0,i=n.length){if(!(i<=r)){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const s=n[o];this.variableBuilder.updateFromDatum(s),this.pushAllSixTimes(),this.addToXIndex(s)}this.registerBatch(t)}}}class
|
|
302
|
-
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);}/***Calculates a gamma for antialiasing opacity based on the color.*/float getGammaForColor(vec3 rgb){return mix(1.25,0.75,smoothstep(0.0,1.0,dot(rgb,vec3(0.299,0.587,0.114))));}/***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);}}`,
|
|
307
|
+
};`)(i):function(){i(),i(),i(),i(),i(),i()}}addBatch(t,n,r=0,i=n.length){if(!(i<=r)){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const s=n[o];this.variableBuilder.updateFromDatum(s),this.pushAllSixTimes(),this.addToXIndex(s)}this.registerBatch(t)}}}class eR extends yl{constructor({encoders:t,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:o}){super({encoders:t,attributes:n,numVertices:r==1/0?o*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateSide=this.variableBuilder.createUpdater("side",1),this.updatePos=this.variableBuilder.createUpdater("pos",1),this.variableBuilder.configure()}addBatch(t,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const s=n[o];this.variableBuilder.updateFromDatum(s),this.updateSide(-.5),this.updatePos(0),this.variableBuilder.pushAll();const a=1;for(let u=0;u<=a;u++)this.updatePos(u/a),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(s)}this.registerBatch(t)}}class tR extends yl{constructor({encoders:t,attributes:n,numItems:r=void 0}){super({encoders:t,attributes:n,numVertices:r}),this.variableBuilder.configure()}}class nR extends yl{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 rR extends yl{constructor({encoders:t,attributes:n,fontMetrics:r,properties:i,numCharacters:o=void 0}){super({encoders:t,attributes:n,numVertices:o*6}),this.metadata=r,this.metrics=r,this.properties=i;const a=t.text.channelDef;this.numberFormat=!cn(a)&&"format"in a&&a.format?_t(a.format):u=>u,this.updateVertexCoord=this.variableBuilder.createUpdater("vertexCoord",2),this.updateTextureCoord=this.variableBuilder.createUpdater("textureCoord",2),this.updateWidth=this.variableBuilder.createUpdater("width",1),this.variableBuilder.configure()}addBatch(t,n,r=0,i=n.length){const o=this.properties.align||"left",s=this.properties.logoLetters??!1,a=this.metadata.common.base,u=this.metadata.common.scaleH;let l=-us;switch(this.properties.baseline){case"top":l+=this.metrics.capHeight;break;case"middle":l+=this.metrics.capHeight/2;break;case"bottom":l-=this.metrics.descent;break}const c=this.encoders.text,f=[0,0];this.updateVertexCoord(f);const h=[0,0];this.updateTextureCoord(h),this.prepareXIndexer(n,r,i);for(let d=r;d<i;d++){const p=n[d],m=this.numberFormat(c(p)),y=De(m)?m:m===null?"":""+m;if(y.length==0)continue;this.variableBuilder.updateFromDatum(p);const w=s?y.length:this.metrics.measureWidth(y);this.updateWidth(w);let x=o=="right"?-w:o=="center"?-w/2:0;if(!s){const B=this.metrics.getCharByCode(y.charCodeAt(0));x-=(B.width-B.xadvance)/a/2}let S=-.5,_=1,T=1;for(let B=0;B<y.length;B++){const I=this.metrics.getCharByCode(y.charCodeAt(B)),D=s?1:I.xadvance/a;if(I.id==32){x+=D;continue}s?(T=(I.width+us*2)/I.width,x=-T/2,_=(I.height+us*2)/I.height,S=-.5-us/I.height):(_=I.height/a,S=-(I.height+I.yoffset+l)/a,T=I.width/a);const M=I.x,G=I.y;f[0]=x,f[1]=S+_,h[0]=M/u,h[1]=G/u,this.variableBuilder.pushAll(),f[0]=x+T,f[1]=S+_,h[0]=(M+I.width)/u,h[1]=G/u,this.variableBuilder.pushAll(),f[0]=x,f[1]=S,h[0]=M/u,h[1]=(G+I.height)/u,this.variableBuilder.pushAll(),f[0]=x+T,f[1]=S+_,h[0]=(M+I.width)/u,h[1]=G/u,this.variableBuilder.pushAll(),f[0]=x,f[1]=S,h[0]=M/u,h[1]=(G+I.height)/u,this.variableBuilder.pushAll(),f[0]=x+T,f[1]=S,h[0]=(M+I.width)/u,h[1]=(G+I.height)/u,this.variableBuilder.pushAll(),x+=D}this.addToXIndex(p)}this.registerBatch(t)}}const ww=`#define PI 3.141593
|
|
308
|
+
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);}/***Calculates a gamma for antialiasing opacity based on the color.*/float getGammaForColor(vec3 rgb){return mix(1.25,0.75,smoothstep(0.0,1.0,dot(rgb,vec3(0.299,0.587,0.114))));}/***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);}}`,iR="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));}",oR=`/***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;
|
|
303
309
|
#if !defined(SAMPLE_FACET_UNIFORM) && !defined(SAMPLE_FACET_TEXTURE)
|
|
304
310
|
SampleFacetPosition getSampleFacetPos(){return SampleFacetPosition(0.0,1.0,0.0,1.0);}
|
|
305
311
|
#elif defined(SAMPLE_FACET_UNIFORM)
|
|
@@ -307,37 +313,37 @@ SampleFacetPosition getSampleFacetPos(){return SampleFacetPosition(0.0,1.0,0.0,1
|
|
|
307
313
|
#elif defined(SAMPLE_FACET_TEXTURE)
|
|
308
314
|
uniform sampler2D uSampleFacetTexture;SampleFacetPosition getSampleFacetPos(){vec4 texel=texelFetch(uSampleFacetTexture,ivec2(int(attr_facetIndex),0),0);return SampleFacetPosition(1.0-texel.r-texel.g,texel.g,1.0-texel.r-texel.g,texel.g);}
|
|
309
315
|
#endif
|
|
310
|
-
bool isFacetedSamples(SampleFacetPosition facetPos){return facetPos!=SampleFacetPosition(0.0,1.0,0.0,1.0);}bool isFacetedSamples(){return isFacetedSamples(getSampleFacetPos());}bool isInTransit(){return uTransitionOffset>0.0;}float getTransitionFraction(float xPos){return smoothstep(0.0,0.7+uTransitionOffset,(xPos-uTransitionOffset)*2.0);}vec2 applySampleFacet(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return pos;}else if(isInTransit()){vec2 interpolated=mix(vec2(facetPos.pos,facetPos.height),vec2(facetPos.targetPos,facetPos.targetHeight),getTransitionFraction(pos.x));return vec2(pos.x,interpolated[0]+pos.y*interpolated[1]);}else{return vec2(pos.x,facetPos.pos+pos.y*facetPos.height);}}float getSampleFacetHeight(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return 1.0;}else if(isInTransit()){return mix(facetPos.height,facetPos.targetHeight,getTransitionFraction(pos.x));}else{return facetPos.height;}}`,
|
|
316
|
+
bool isFacetedSamples(SampleFacetPosition facetPos){return facetPos!=SampleFacetPosition(0.0,1.0,0.0,1.0);}bool isFacetedSamples(){return isFacetedSamples(getSampleFacetPos());}bool isInTransit(){return uTransitionOffset>0.0;}float getTransitionFraction(float xPos){return smoothstep(0.0,0.7+uTransitionOffset,(xPos-uTransitionOffset)*2.0);}vec2 applySampleFacet(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return pos;}else if(isInTransit()){vec2 interpolated=mix(vec2(facetPos.pos,facetPos.height),vec2(facetPos.targetPos,facetPos.targetHeight),getTransitionFraction(pos.x));return vec2(pos.x,interpolated[0]+pos.y*interpolated[1]);}else{return vec2(pos.x,facetPos.pos+pos.y*facetPos.height);}}float getSampleFacetHeight(vec2 pos){SampleFacetPosition facetPos=getSampleFacetPos();if(!isFacetedSamples(facetPos)){return 1.0;}else if(isInTransit()){return mix(facetPos.height,facetPos.targetHeight,getTransitionFraction(pos.x));}else{return facetPos.height;}}`,sR=`/**Based on concepts presented at:*https:*https:*/out highp vec4 vPickingColor;/***Passes the unique id to the fragment shader as a color if picking is enabled.*Returns true if picking is enabled.*/bool setupPicking(){if(uPickingEnabled){
|
|
311
317
|
#ifdef uniqueId_DEFINED
|
|
312
318
|
uint id=attr_uniqueId;vPickingColor=vec4(ivec4(id>>0,id>>8,id>>16,id>>24)&0xFF)/float(0xFF);
|
|
313
319
|
#else
|
|
314
320
|
vPickingColor=vec4(1.0);
|
|
315
321
|
#endif
|
|
316
|
-
return true;}return false;}`,
|
|
322
|
+
return true;}return false;}`,aR="in highp vec4 vPickingColor;",of=Symbol("cacheMap");function sf(e,t,n){let r=wl(e).get(t);return r===void 0&&(r=n(t),wl(e).set(t,r)),r}function lR(e,t){wl(e).delete(t)}function af(e,t){const n=wl(e);for(const r of n.keys())r.startsWith(t)&&n.delete(r);wl(e).delete(t)}function vw(e){e[of]=new Map}function wl(e){return e[of]||vw(e),e[of]}function uR(e,t,n,r){const i=De(e)?e:e.name,o=!De(e)&&e.extent||[0,1];if(n===void 0&&!De(e)&&(n=e.count),i){const s=v0(i);if(sn(s)){const a=Aw(s,{extent:o,count:n});return lf(t,{minMag:t.LINEAR,format:t.RGB,height:1,wrap:t.CLAMP_TO_EDGE},a,r)}else{if(xt(s))return z0(s,t);throw new Error("Unknown scheme: "+i)}}}function cR(e,t="rgb",n,r){const i=Zc(e,De(t)?t:t.type,De(t)?void 0:t.gamma),o=Aw(i);return lf(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},o,r)}function fR(e,t,n,r){const i=Math.max(e.length,n||0),o=new Float32Array(i);for(let s=0;s<i;s++)o[s]=e[s%e.length];return lf(t,{minMag:t.NEAREST,format:t.RED,internalFormat:t.R32F,height:1},o,r)}function z0(e,t,n,r){const i=xw(e,n);return lf(t,{minMag:t.NEAREST,format:t.RGB,height:1},i,r)}function Aw(e,{extent:t=[0,1],reverse:n=!1,count:r=256}={}){const i=t[0],o=za(t)-i,s=xa(r).map(a=>a/(r-1)).map(a=>i+a/o).map(e);return n&&s.reverse(),xw(s)}function xw(e,t){const n=Math.max(e.length,t||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const o=Zr(e[i%e.length]).rgb();r[i*3+0]=o.r,r[i*3+1]=o.g,r[i*3+2]=o.b}return r}class hR{constructor(t,n,r,i={}){this._container=t,this._sizeSource=n??(()=>({width:void 0,height:void 0})),this._shaderCache=new Map,this.rangeTextures=new WeakMap;const o=document.createElement("canvas");t.appendChild(o);const s=Bk(o,{antialias:!0,depth:!1,premultipliedAlpha:!0,...i});if(!s)throw new Error("Unable to initialize WebGL. Your browser or machine may not support it.");if(!Zo(s))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");if(u2(s),s.blendFunc(s.ONE,s.ONE_MINUS_SRC_ALPHA),this.canvas=o,this.gl=s,this._pickingAttachmentOptions=[{format:s.RGBA,type:s.UNSIGNED_BYTE,minMag:s.LINEAR,wrap:s.CLAMP_TO_EDGE}],this._pickingBufferInfo=_k(s,this._pickingAttachmentOptions),s.bindFramebuffer(s.FRAMEBUFFER,null),this.adjustGl(),this._updateDpr(),this._clearColor=[0,0,0,0],r){const a=Zr(r).rgb();this._clearColor=[a.r/255,a.g/255,a.b/255,a.opacity]}}invalidateSize(){this._logicalCanvasSize=void 0,this._updateDpr(),this.adjustGl()}_updateDpr(){this.dpr=window.devicePixelRatio}compileShader(t,n){const r="#version 300 es",i="precision mediump float;";xt(n)&&(n=n.join(`
|
|
317
323
|
|
|
318
324
|
`));const o=this.gl,s=n.replaceAll(/ {2,}|^\s*\/\/.*$/gm,"");let a=this._shaderCache.get(s);if(!a){const u=[r,i,n].join(`
|
|
319
325
|
|
|
320
|
-
`);a=o.createShader(t),o.shaderSource(a,u),o.compileShader(a),this._shaderCache.set(s,a)}return a}adjustGl(){const t=this.getLogicalCanvasSize();this.canvas.style.width=`${t.width}px`,this.canvas.style.height=`${t.height}px`;const n=this.getPhysicalCanvasSize(t);this.canvas.width=n.width,this.canvas.height=n.height,
|
|
326
|
+
`);a=o.createShader(t),o.shaderSource(a,u),o.compileShader(a),this._shaderCache.set(s,a)}return a}adjustGl(){const t=this.getLogicalCanvasSize();this.canvas.style.width=`${t.width}px`,this.canvas.style.height=`${t.height}px`;const n=this.getPhysicalCanvasSize(t);this.canvas.width=n.width,this.canvas.height=n.height,Sk(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this.canvas.remove()}getPhysicalCanvasSize(t){return t=t||this.getLogicalCanvasSize(),{width:t.width*this.dpr,height:t.height*this.dpr}}getLogicalCanvasSize(){if(this._logicalCanvasSize)return this._logicalCanvasSize;const t=this._sizeSource(),n=window.getComputedStyle(this._container,null),r=t.width??this._container.clientWidth-parseFloat(n.paddingLeft)-parseFloat(n.paddingRight),i=t.height??this._container.clientHeight-parseFloat(n.paddingTop)-parseFloat(n.paddingBottom);return this._logicalCanvasSize={width:r,height:i},this._logicalCanvasSize}readPickingPixel(t,n){const r=this.gl;t*=this.dpr,n*=this.dpr;const i=this.getPhysicalCanvasSize().height,o=new Uint8Array(4);return r.bindFramebuffer(r.FRAMEBUFFER,this._pickingBufferInfo.framebuffer),r.readPixels(t,i-n-1,1,1,r.RGBA,r.UNSIGNED_BYTE,o),r.bindFramebuffer(r.FRAMEBUFFER,null),o}clearAll(){const t=this.gl,{width:n,height:r}=this.getPhysicalCanvasSize();t.viewport(0,0,n,r),t.disable(t.SCISSOR_TEST),t.clearColor(...this._clearColor),t.clear(t.COLOR_BUFFER_BIT)}createRangeTexture(t,n=!1){const r=this.rangeTextures.get(t);if(!n&&r)return;function i(s,a){return Kr(a.type)?a.domain().length:a.type=="threshold"?a.domain().length+1:a.type=="quantize"||a.type=="quantile"?s??4:s}const o=t.channel;if(ri(o)){const s=t.scale,a=s.props,u=s.range();let l;if(a.scheme)if(s.type=="threshold"&&u)l=z0(u,this.gl,s.domain().length,r);else{let c=De(a.scheme)?void 0:a.scheme.count;c=i(c,s),l=uR(a.scheme,this.gl,c,r)}else Wc(s.type)||yt(s.type)&&u.length>1?l=cR(u,a.interpolate,this.gl,r):l=z0(u,this.gl,s.domain().length,r);this.rangeTextures.set(t,l)}else{const s=t.scale;if(s.type==="ordinal"||Xi(s.type)){const a=rf(o)?iw(o):l=>l,u=s.range();this.rangeTextures.set(t,fR(u.map(a),this.gl,s.domain().length,r))}}}}function dR(e,t="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...t.matchAll(r)],o=new Map(i.map((s,a)=>{const u=parseInt(s[1]),l=i[a+1],c=l?l.index:t.length,f=t.substring(s.index,c);return[u-1,f]}));return e.split(`
|
|
321
327
|
`).map((s,a)=>{const u=o.get(a);return`${a+1+n}: ${s}${u?`
|
|
322
328
|
|
|
323
329
|
^^^ ${u}`:""}`}).join(`
|
|
324
|
-
`)}function
|
|
325
|
-
Error compiling: ${o}`,e.deleteShader(u));e.deleteProgram(r)}if(o)return{message:o,detail:s}}return{program:r,getProgramErrors:i}}function
|
|
330
|
+
`)}function pR(e,t,n){const r=e.createProgram();e.attachShader(r,t),e.attachShader(r,n),e.linkProgram(r);function i(){let o,s;if(!e.getProgramParameter(r,e.LINK_STATUS)){o=e.getProgramInfoLog(r);for(const u of[t,n])e.getShaderParameter(u,e.COMPILE_STATUS)||(o=e.getShaderInfoLog(u),s=dR(e.getShaderSource(u),o,0)+`
|
|
331
|
+
Error compiling: ${o}`,e.deleteShader(u));e.deleteProgram(r)}if(o)return{message:o,detail:s}}return{program:r,getProgramErrors:i}}function lf(e,t,n,r){return r?Sb(e,r,n,t):r=qa(e,{...t,src:n}),r}function Ew(...e){const t={get(n,r,i){for(const o of e){const a=o()[r];if(a!==void 0)return a}},has(n,r,i){for(const o of e){const s=o();if(r in s)return!0}return!1}};return new Proxy({},t)}function gR(e){return De(e)||Dt(e)||fa(e)}class ro extends Error{constructor(t,n){super(t),this.name="ViewError",this.view=n}}const mR="SAMPLE_FACET_UNIFORM",_w="SAMPLE_FACET_TEXTURE";class vl{constructor(t){J(this,or,[]);this.unitView=t,this.encoders=void 0,this.bufferInfo=void 0,this.bytesPerElement=new Map,this.programInfo=void 0,this.vertexArrayInfo=void 0,this.viewUniformInfo=void 0,this.markUniformInfo=void 0,this.markUniformsAltered=!0,this.rangeMap=new bR,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=Ew(typeof this.unitView.spec.mark=="object"?()=>this.unitView.spec.mark:()=>({}),()=>this.defaultProperties)}augmentDefaultProperties(t){Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors(t))}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:ti}),t}fixEncoding(t){return t}setupExprRefsNeedingGraphicsUpdate(t){const n=this.getSupportedChannels(),r={};for(const o of t){const s=this.properties[o];if(s&&Mt(s)){const a=this.unitView.paramMediator.createExpression(s.expr);a.addListener(()=>{this.updateGraphicsData(),this.unitView.context.animator.requestRender()}),n.includes(o)||Object.defineProperty(r,o,{get(){return a()}})}}const i=this.properties;this.properties=Ew(()=>r,()=>i)}get encoding(){return sf(this,"encoding",()=>{var s;const t=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=a=>{const u=this.properties[a];return gR(u)||Mt(u)?{value:u}:void 0},i=Object.fromEntries(this.getSupportedChannels().map(a=>[a,r(a)]).filter(a=>cn(a[1]))),o=this.fixEncoding({...t,...i,...n});for(const a of Object.keys(o))this.getSupportedChannels().includes(a)||delete o[a];return o.x&&((s=o.x).buildIndex??(s.buildIndex=!0)),o})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=ED(this.unitView,this.encoding)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return _w;if(this.unitView.getLayoutAncestors().find(t=>"samples"in t.spec))return mR}createAndLinkShaders(t,n,r=[]){const i=this.getAttributes(),o=this.encoders,s=this.getSampleFacetMode();s&&r.push(`#define ${s}`);const a="// view: "+this.unitView.getPathString();let u=[];const l=new Set,c=gw(o),f=[],h=Object.values(o).flatMap(T=>T.accessors).map(T=>T.predicate).filter(T=>T.param),d=new Map;for(const T of h){const B=T.param,I=this.unitView.paramMediator.getValue(B);if(!I)throw new Error(`Cannot infer selection type as the parameter "${B}" has no value. Please ensure that the parameter is properly defined!`);if(Yy(I)){if(!d.has(B)){const D=M0+nf(B);d.set(B,"single"),f.push(" // Selection parameter"),f.push(` uniform highp uint ${D};`),z(this,or).push(()=>{this.registerMarkUniformValue(D,{expr:B},M=>M.uniqueId??0)})}}else throw new Error(`Unsupported selection (${B}) in condition: ${JSON.stringify(I)}`)}const p=(T,B,I,D)=>{const M=B.channelDef;if(cn(M))if(Mt(M.value)){const{uniformName:G,uniformGlsl:N,accessorGlsl:ne,adjuster:ie}=OD(T,I);u.push(ne),f.push(N),z(this,or).push(()=>{this.registerMarkUniformValue(G,M.value,ie)})}else u.push(ND(T,I,M.value).accessorGlsl);else if(fl(M)){const{uniformName:G,uniformGlsl:N,accessorGlsl:ne}=zD(T,D,I);f.push(N),u.push(ne);const{largeHp:ie,discrete:pe}=bl(D,T),be=pe&&"domain"in D?Pe=>D.domain().indexOf(Pe):ie?pw:Pe=>+Pe;z(this,or).push(()=>{this.registerMarkUniformValue(G,M.datum,be)})}else if(ni(M)){const G=c.get([M.field,!0]),{attributeGlsl:N,accessorGlsl:ne}=aw(T,D,I,G!=null&&G.includes(T)?G:void 0);l.add(N),u.push(ne)}else if(hl(M)){const{attributeGlsl:G,accessorGlsl:N}=aw(T,D,I);l.add(G),u.push(N)}else throw new ro(`Unsupported channel definition: ${JSON.stringify(M)}`,this.unitView)};for(const[T,B]of Object.entries(o)){if(!i.includes(T))continue;const{channelDef:I,accessors:D,scale:M}=B;for(let G=0;G<D.length;G++)p(T,D[G],G,M);if(M){const G=Xt(I)&&I.resolutionChannel||T,N=pl(G)?this.unitView.getScaleResolution(G):null,{glsl:ne,domainUniform:ie,domainUniformName:pe,rangeUniform:be,rangeUniformName:Pe}=UD(T,M,I);u.push(ne),f.push(ie),f.push(be),be&&z(this,or).push(()=>{const _e=this.createMarkUniformSetter(Pe),Oe=()=>_e(mw(M,T));N.addEventListener("range",Oe),Oe()}),ie&&z(this,or).push(()=>{const _e=this.createMarkUniformSetter(pe),Oe=()=>{const Ue=Kr(M.type)?[0,M.domain().length]:M.domain();_e(dw(M.type)?qD(Ue):Ue)};N.addEventListener("domain",Oe),Oe()})}u.push(GD(T,D))}const m=[...d.entries()].filter(([,T])=>T=="single").map(([T])=>`${M0}${T} == ${gl}uniqueId`);u.push("bool isPointSelected() {",this.encoders.uniqueId&&m.length>0?` return ${m.join(" || ")};`:" return false;","}");const y=`precision highp float;
|
|
326
332
|
precision highp int;`,w=T=>T.replace("#pragma markUniforms",f.join(`
|
|
327
|
-
`));r=r.map(w),t=w(t),n=w(n);const x=[y,a,...r,
|
|
328
|
-
`),...u,rR,iR,t],S=[y,a,...r,bw,oR,n],_=this.gl;this.programStatus=hR(_,this.glHelper.compileShader(_.VERTEX_SHADER,x),this.glHelper.compileShader(_.FRAGMENT_SHADER,S))}finalizeGraphicsInitialization(){const t=this.programStatus.getProgramErrors();if(t){t.detail&&console.warn(t.detail);const n=new Error("Cannot create shader program: "+t.message);throw n.view=this.unitView,n}this.programInfo=ik(this.gl,this.programStatus.program),delete this.programStatus,this.viewUniformInfo=Qb(this.gl,this.programInfo,"View"),this.markUniformInfo=Qb(this.gl,this.programInfo,"Mark"),this.gl.useProgram(this.programInfo.program),es(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0,uZero:0});for(const n of z(this,or))n();le(this,or,void 0)}createMarkUniformSetter(t){const n=this.markUniformInfo.setters[t];if(!n)throw new Error(`Uniform "${t}" not found int the Mark block!`);return r=>{n(r),this.markUniformsAltered=!0,this.unitView.context.animator.requestRender()}}registerMarkUniformValue(t,n,r=i=>i){const i=this.createMarkUniformSetter(t),o=s=>{if(s==null)throw new Error(`Trying to set null/undefined value for uniform: ${t}${Ft(n)?`Expr: ${n.expr}`:""}`);i(s)};if(Ft(n)){const s=this.unitView.paramMediator.createExpression(n.expr),a=()=>o(r(s(null)));s.addListener(a),a()}else o(r(n))}deleteGraphicsData(){const t=this.gl;if(this.vertexArrayInfo&&(this.gl.bindVertexArray(null),t.deleteVertexArray(this.vertexArrayInfo.vertexArrayObject),this.vertexArrayInfo=void 0),this.bufferInfo){for(let n=0;n<8;n++)t.disableVertexAttribArray(n);Object.values(this.bufferInfo.attribs).forEach(n=>this.gl.deleteBuffer(n.buffer)),this.bufferInfo.indices&&this.gl.deleteBuffer(this.bufferInfo.indices),this.bufferInfo=void 0}}updateBufferInfo(t){if(this.gl.bindVertexArray(null),this.bufferInfo&&t.vertexCount<=this.bufferInfo.allocatedVertices)for(const[n,r]of Object.entries(t.arrays))r.data&&m8(this.gl,this.bufferInfo.attribs[n],r.data,0);else{this.deleteGraphicsData(),this.bufferInfo=w8(this.gl,t.arrays,{numElements:t.vertexCount}),this.bufferInfo.allocatedVertices=t.allocatedVertices;for(const[n,r]of Object.entries(t.arrays))this.bytesPerElement.set(n,r.data.BYTES_PER_ELEMENT)}}get glHelper(){return this.getContext().glHelper}get gl(){return this.glHelper.gl}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}isReady(){return this.bufferInfo&&this.programInfo}isPickingParticipant(){if(this.properties.tooltip===null&&!this.unitView.paramMediator.hasPointSelections())return!1;for(const t of this.unitView.getLayoutAncestors())if(!t.isPickingSupported())return!1;return!0}bindOrSetMarkUniformBlock(){this.markUniformsAltered?(Kb(this.gl,this.programInfo,this.markUniformInfo),this.markUniformsAltered=!1):Xb(this.gl,this.programInfo,this.markUniformInfo)}prepareRender(t){const n=this.glHelper,r=this.gl,i=[];i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=_k(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)});for(const[s,a]of Object.entries(this.encoding))if(Xt(a)){const u=Xt(a)&&a.resolutionChannel||s;if(pl(u)){const l=this.unitView.getScaleResolution(u),c=n.rangeTextures.get(l);c&&i.push(()=>es(this.programInfo,{[D0+s]:c}))}}this.getSampleFacetMode()==xw&&i.push(()=>{let s;for(const a of this.unitView.getLayoutAncestors())if(s=a.getSampleFacetTexture(),s)break;if(!s)throw new Error("No facet texture available. This is bug.");es(this.programInfo,{uSampleFacetTexture:s})});const o=(t.picking??!1)&&this.isPickingParticipant();return i.push(()=>Wa(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:o})),this.opaque||t.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(t){const n=t.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,o=n.locSize?n.locSize.size:1;if(i>1||i+o<0)return!1;const s=n.targetLocSize?n.targetLocSize.location:i,a=n.targetLocSize?n.targetLocSize.size:o;this.gl.uniform4f(r.location,i,o,s,a)}return!0}render(t){}createRenderCallback(t,n){var f;if(!this.bufferInfo)return()=>{};const r=this;let i;const o=(f=this.unitView.getScaleResolution("x"))==null?void 0:f.scale,s=o&&yt(o.type),a=["index","locus"].includes(o==null?void 0:o.type)?-1:0,u=[0,0];i=h=>{if(s&&h.xIndex){const d=o.domain(),p=h.xIndex(d[0]+a,d[1],u),m=p[0],y=p[1]-m;y>0&&t(m,y)}else t(h.offset,h.count)};const l=this.rangeMap.get(void 0).count==0?n.facetId:void 0,c=this.rangeMap.get(l);return n.sampleFacetRenderingOptions?function(){c.count&&r.prepareSampleFacetRendering(n)&&i(c)}:function(){c.count&&i(c)}}setViewport(t,n){t=t.flatten();const r=this.unitView.context.devicePixelRatio,i=this.gl,o=this.properties,s=this.glHelper.getLogicalCanvasSize(),a=.5,u=(o.xOffset??0)+a,l=(o.yOffset??0)+a;let c,f=t;if(o.clip!=="never"&&(o.clip||n)){let h=0,d=0,p;if(n){if(f=t.intersect(n).flatten(),!f.isDefined())return!1;p=[t.width/f.width,t.height/f.height],d=Math.max(0,t.y2-n.y2),h=Math.min(0,t.x-n.x)}else p=[1,1];const m=[f.x,s.height-f.y2,f.width,f.height].map(S=>S*r),y=m.map(S=>Math.floor(S)),w=m[0]-y[0],x=m[1]-y[1];i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),c={uViewOffset:[(u+h+w/r)/f.width,-(l+d-x/r)/f.height],uViewScale:p}}else{if(!t.isDefined())return!1;i.viewport(0,0,s.width*r,s.height*r),i.disable(i.SCISSOR_TEST),c={uViewOffset:[(t.x+u)/s.width,(s.height-t.y-l-t.height)/s.height],uViewScale:[t.width/s.width,t.height/s.height]}}return Wa(this.viewUniformInfo,{...c,uViewportSize:[t.width,t.height],uDevicePixelRatio:r}),Kb(this.gl,this.programInfo,this.viewUniformInfo),!0}findDatumAt(t,n){}}or=new WeakMap;class gR extends ur{constructor(){super([],JSON.stringify)}get(t){let n=super.get(t);return n===void 0&&(n={offset:0,count:0,xIndex:void 0},super.set(t,n)),n}migrateEntries(t){for(const[n,r]of this.entries())t.has(n)||(r.offset=0,r.count=0,r.xIndex=void 0);for(const[n,r]of t.entries())Object.assign(this.get(n),r)}}function O0(e,t){const n=kD(t);let r=e[t]&&{...e[t]},i=e[n]&&{...e[n]};if(!(cn(r)||cn(i))){if(r){if(!Xt(e[t]))return;if(i){if(r.type!="quantitative"){const o=(1-(r.band||1))/2;r.band=o,i.band=-o}}else if(r.type=="quantitative")i={datum:0,contributesToScaleDomain:!1};else{i={...r};const o=(1-(r.band??1))/2;r.band=0+o,i.band=1-o}}else r={value:0},i={value:1};e[t]=r,e[n]=i}}function Ew(e,t){e.stroke||(t?e.stroke={value:null}:e.stroke={resolutionChannel:"color",...e.color}),cn(e.stroke)&&e.stroke.value===null&&(e.strokeWidth={value:0}),e.strokeOpacity||(e.strokeOpacity={resolutionChannel:"opacity",...e.opacity})}function _w(e,t){cn(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 mR extends vl{constructor(n){super(n);ee(this,vi);this.augmentDefaultProperties({x2:void 0,y2:void 0,filled:!0,color:"#4c78a8",opacity:1,strokeWidth:3,cornerRadius:0,minWidth:.5,minHeight:.5,minOpacity:1})}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 of(this,"opaque",()=>!Q(this,vi,gm).call(this)&&!Q(this,vi,mm).call(this)&&cn(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"),Ew(n,this.properties.filled),_w(n,this.properties.filled),delete n.color,delete n.opacity,n}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}async initializeGraphics(){await super.initializeGraphics();const n=[];Q(this,vi,gm).call(this)&&n.push("ROUNDED_CORNERS"),Q(this,vi,mm).call(this)&&n.push("STROKED"),this.createAndLinkShaders(Ik,Bk,[Dk,...n.map(r=>"#define "+r)])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const n=this.properties;this.registerMarkUniformValue("uMinWidth",n.minWidth),this.registerMarkUniformValue("uMinHeight",n.minHeight),this.registerMarkUniformValue("uMinOpacity",n.minOpacity),this.registerMarkUniformValue("uCornerRadiusTopRight",n.cornerRadiusTopRight??n.cornerRadius??0),this.registerMarkUniformValue("uCornerRadiusBottomRight",n.cornerRadiusBottomRight??n.cornerRadius??0),this.registerMarkUniformValue("uCornerRadiusTopLeft",n.cornerRadiusTopLeft??n.cornerRadius??0),this.registerMarkUniformValue("uCornerRadiusBottomLeft",n.cornerRadiusBottomLeft??n.cornerRadius??0)}updateGraphicsData(){const n=this.unitView.getCollector();if(!n){console.debug("No collector");return}const r=n.getItemCount(),i=new XD({encoders:this.encoders,attributes:this.getAttributes(),numItems:r});i.addBatches(n.facetBatches);const o=i.toArrays();this.rangeMap.migrateEntries(o.rangeMap),this.updateBufferInfo(o)}prepareRender(n){const r=super.prepareRender(n);return r.push(()=>this.bindOrSetMarkUniformBlock()),r.push(()=>ji(this.gl,this.programInfo,this.vertexArrayInfo)),r}render(n){const r=this.gl;return this.createRenderCallback((i,o)=>{Bc(r,this.vertexArrayInfo,r.TRIANGLE_STRIP,o,i)},n)}findDatumAt(n,r){n=zt(n);const i=this.unitView.getCollector().facetBatches.get(n);if(!i)return;const o=this.encoders,s=o.x.scale.type;if(Kr(s)){const a=o.x.dataAccessor;return i.find(u=>r==a(u))}else{const a=o.x.dataAccessor,u=o.x2.dataAccessor;return i.find(l=>r>=a(l)&&r<u(l))}}}vi=new WeakSet,gm=function(){const n=this.properties;return n.cornerRadius||n.cornerRadiusBottomLeft||n.cornerRadiusBottomRight||n.cornerRadiusTopLeft||n.cornerRadiusTopRight},mm=function(){const n=this.encoding.strokeWidth;return!(cn(n)&&!n.value)||"condition"in n};const bR=`out float vRadius;out float vRadiusWithPadding;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out lowp float vShape;out lowp float vHalfStrokeWidth;out mat2 vRotationMatrix;const float CIRCLE=0.0;const float SQUARE=1.0;const float CROSS=2.0;const float DIAMOND=3.0;const float TRIANGLE_UP=4.0;const float TRIANGLE_RIGHT=5.0;const float TRIANGLE_DOWN=6.0;const float TRIANGLE_LEFT=7.0;const float TICK_UP=8.0;const float TICK_RIGHT=9.0;const float TICK_DOWN=10.0;const float TICK_LEFT=11.0;float computeSemanticThresholdFactor(){return getScaled_semanticScore()>=uSemanticThreshold ? 1.0 : 0.0;}vec2 getDxDy(){
|
|
333
|
+
`));r=r.map(w),t=w(t),n=w(n);const x=[y,a,...r,ww,iR,[...l].join(`
|
|
334
|
+
`),...u,oR,sR,t],S=[y,a,...r,ww,aR,n],_=this.gl;this.programStatus=pR(_,this.glHelper.compileShader(_.VERTEX_SHADER,x),this.glHelper.compileShader(_.FRAGMENT_SHADER,S))}finalizeGraphicsInitialization(){const t=this.programStatus.getProgramErrors();if(t){t.detail&&console.warn(t.detail);const n=new Error("Cannot create shader program: "+t.message);throw n.view=this.unitView,n}this.programInfo=sk(this.gl,this.programStatus.program),delete this.programStatus,this.viewUniformInfo=Kb(this.gl,this.programInfo,"View"),this.markUniformInfo=Kb(this.gl,this.programInfo,"Mark"),this.gl.useProgram(this.programInfo.program),es(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0,uZero:0});for(const n of z(this,or))n();le(this,or,void 0)}createMarkUniformSetter(t){const n=this.markUniformInfo.setters[t];if(!n)throw new Error(`Uniform "${t}" not found int the Mark block!`);return r=>{n(r),this.markUniformsAltered=!0,this.unitView.context.animator.requestRender()}}registerMarkUniformValue(t,n,r=i=>i){const i=this.createMarkUniformSetter(t),o=s=>{if(s==null)throw new Error(`Trying to set null/undefined value for uniform: ${t}${Mt(n)?`Expr: ${n.expr}`:""}`);i(s)};if(Mt(n)){const s=this.unitView.paramMediator.createExpression(n.expr),a=()=>o(r(s(null)));s.addListener(a),a()}else o(r(n))}deleteGraphicsData(){const t=this.gl;if(this.vertexArrayInfo&&(this.gl.bindVertexArray(null),t.deleteVertexArray(this.vertexArrayInfo.vertexArrayObject),this.vertexArrayInfo=void 0),this.bufferInfo){for(let n=0;n<8;n++)t.disableVertexAttribArray(n);Object.values(this.bufferInfo.attribs).forEach(n=>this.gl.deleteBuffer(n.buffer)),this.bufferInfo.indices&&this.gl.deleteBuffer(this.bufferInfo.indices),this.bufferInfo=void 0}}updateBufferInfo(t){if(this.gl.bindVertexArray(null),this.bufferInfo&&t.vertexCount<=this.bufferInfo.allocatedVertices)for(const[n,r]of Object.entries(t.arrays))r.data&&y8(this.gl,this.bufferInfo.attribs[n],r.data,0);else{this.deleteGraphicsData(),this.bufferInfo=A8(this.gl,t.arrays,{numElements:t.vertexCount}),this.bufferInfo.allocatedVertices=t.allocatedVertices;for(const[n,r]of Object.entries(t.arrays))this.bytesPerElement.set(n,r.data.BYTES_PER_ELEMENT)}}get glHelper(){return this.getContext().glHelper}get gl(){return this.glHelper.gl}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}isReady(){return this.bufferInfo&&this.programInfo}isPickingParticipant(){if(this.properties.tooltip===null&&!this.unitView.paramMediator.hasPointSelections())return!1;for(const t of this.unitView.getLayoutAncestors())if(!t.isPickingSupported())return!1;return!0}bindOrSetMarkUniformBlock(){this.markUniformsAltered?(e2(this.gl,this.programInfo,this.markUniformInfo),this.markUniformsAltered=!1):Jb(this.gl,this.programInfo,this.markUniformInfo)}prepareRender(t){const n=this.glHelper,r=this.gl,i=[];i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=Ck(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)});for(const[s,a]of Object.entries(this.encoding))if(Xt(a)){const u=Xt(a)&&a.resolutionChannel||s;if(pl(u)){const l=this.unitView.getScaleResolution(u),c=n.rangeTextures.get(l);c&&i.push(()=>es(this.programInfo,{[F0+s]:c}))}}this.getSampleFacetMode()==_w&&i.push(()=>{let s;for(const a of this.unitView.getLayoutAncestors())if(s=a.getSampleFacetTexture(),s)break;if(!s)throw new Error("No facet texture available. This is bug.");es(this.programInfo,{uSampleFacetTexture:s})});const o=(t.picking??!1)&&this.isPickingParticipant();return i.push(()=>Wa(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:o})),this.opaque||t.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(t){const n=t.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,o=n.locSize?n.locSize.size:1;if(i>1||i+o<0)return!1;const s=n.targetLocSize?n.targetLocSize.location:i,a=n.targetLocSize?n.targetLocSize.size:o;this.gl.uniform4f(r.location,i,o,s,a)}return!0}render(t){}createRenderCallback(t,n){var f;if(!this.bufferInfo)return()=>{};const r=this;let i;const o=(f=this.unitView.getScaleResolution("x"))==null?void 0:f.scale,s=o&&yt(o.type),a=["index","locus"].includes(o==null?void 0:o.type)?-1:0,u=[0,0];i=h=>{if(s&&h.xIndex){const d=o.domain(),p=h.xIndex(d[0]+a,d[1],u),m=p[0],y=p[1]-m;y>0&&t(m,y)}else t(h.offset,h.count)};const l=this.rangeMap.get(void 0).count==0?n.facetId:void 0,c=this.rangeMap.get(l);return n.sampleFacetRenderingOptions?function(){c.count&&r.prepareSampleFacetRendering(n)&&i(c)}:function(){c.count&&i(c)}}setViewport(t,n){t=t.flatten();const r=this.unitView.context.devicePixelRatio,i=this.gl,o=this.properties,s=this.glHelper.getLogicalCanvasSize(),a=.5,u=(o.xOffset??0)+a,l=(o.yOffset??0)+a;let c,f=t;if(o.clip!=="never"&&(o.clip||n)){let h=0,d=0,p;if(n){if(f=t.intersect(n).flatten(),!f.isDefined())return!1;p=[t.width/f.width,t.height/f.height],d=Math.max(0,t.y2-n.y2),h=Math.min(0,t.x-n.x)}else p=[1,1];const m=[f.x,s.height-f.y2,f.width,f.height].map(S=>S*r),y=m.map(S=>Math.floor(S)),w=m[0]-y[0],x=m[1]-y[1];i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),c={uViewOffset:[(u+h+w/r)/f.width,-(l+d-x/r)/f.height],uViewScale:p}}else{if(!t.isDefined())return!1;i.viewport(0,0,s.width*r,s.height*r),i.disable(i.SCISSOR_TEST),c={uViewOffset:[(t.x+u)/s.width,(s.height-t.y-l-t.height)/s.height],uViewScale:[t.width/s.width,t.height/s.height]}}return Wa(this.viewUniformInfo,{...c,uViewportSize:[t.width,t.height],uDevicePixelRatio:r}),e2(this.gl,this.programInfo,this.viewUniformInfo),!0}findDatumAt(t,n){}}or=new WeakMap;class bR extends ur{constructor(){super([],JSON.stringify)}get(t){let n=super.get(t);return n===void 0&&(n={offset:0,count:0,xIndex:void 0},super.set(t,n)),n}migrateEntries(t){for(const[n,r]of this.entries())t.has(n)||(r.offset=0,r.count=0,r.xIndex=void 0);for(const[n,r]of t.entries())Object.assign(this.get(n),r)}}function U0(e,t){const n=BD(t);let r=e[t]&&{...e[t]},i=e[n]&&{...e[n]};if(!(cn(r)||cn(i))){if(r){if(!Xt(e[t]))return;if(i){if(r.type!="quantitative"){const o=(1-(r.band||1))/2;r.band=o,i.band=-o}}else if(r.type=="quantitative")i={datum:0,contributesToScaleDomain:!1};else{i={...r};const o=(1-(r.band??1))/2;r.band=0+o,i.band=1-o}}else r={value:0},i={value:1};e[t]=r,e[n]=i}}function Sw(e,t){e.stroke||(t?e.stroke={value:null}:e.stroke={resolutionChannel:"color",...e.color}),cn(e.stroke)&&e.stroke.value===null&&(e.strokeWidth={value:0}),e.strokeOpacity||(e.strokeOpacity={resolutionChannel:"opacity",...e.opacity})}function Cw(e,t){cn(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 yR extends vl{constructor(n){super(n);J(this,vi);this.augmentDefaultProperties({x2:void 0,y2:void 0,filled:!0,color:"#4c78a8",opacity:1,strokeWidth:3,cornerRadius:0,minWidth:.5,minHeight:.5,minOpacity:1})}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 sf(this,"opaque",()=>!Q(this,vi,bm).call(this)&&!Q(this,vi,ym).call(this)&&cn(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(n){return U0(n,"x"),U0(n,"y"),Sw(n,this.properties.filled),Cw(n,this.properties.filled),delete n.color,delete n.opacity,n}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}async initializeGraphics(){await super.initializeGraphics();const n=[];Q(this,vi,bm).call(this)&&n.push("ROUNDED_CORNERS"),Q(this,vi,ym).call(this)&&n.push("STROKED"),this.createAndLinkShaders(Dk,Rk,[Fk,...n.map(r=>"#define "+r)])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const n=this.properties;this.registerMarkUniformValue("uMinWidth",n.minWidth),this.registerMarkUniformValue("uMinHeight",n.minHeight),this.registerMarkUniformValue("uMinOpacity",n.minOpacity),this.registerMarkUniformValue("uCornerRadiusTopRight",n.cornerRadiusTopRight??n.cornerRadius??0),this.registerMarkUniformValue("uCornerRadiusBottomRight",n.cornerRadiusBottomRight??n.cornerRadius??0),this.registerMarkUniformValue("uCornerRadiusTopLeft",n.cornerRadiusTopLeft??n.cornerRadius??0),this.registerMarkUniformValue("uCornerRadiusBottomLeft",n.cornerRadiusBottomLeft??n.cornerRadius??0)}updateGraphicsData(){const n=this.unitView.getCollector();if(!n){console.debug("No collector");return}const r=n.getItemCount(),i=new JD({encoders:this.encoders,attributes:this.getAttributes(),numItems:r});i.addBatches(n.facetBatches);const o=i.toArrays();this.rangeMap.migrateEntries(o.rangeMap),this.updateBufferInfo(o)}prepareRender(n){const r=super.prepareRender(n);return r.push(()=>this.bindOrSetMarkUniformBlock()),r.push(()=>ji(this.gl,this.programInfo,this.vertexArrayInfo)),r}render(n){const r=this.gl;return this.createRenderCallback((i,o)=>{Dc(r,this.vertexArrayInfo,r.TRIANGLE_STRIP,o,i)},n)}findDatumAt(n,r){n=zt(n);const i=this.unitView.getCollector().facetBatches.get(n);if(!i)return;const o=this.encoders,s=o.x.scale.type;if(Kr(s)){const a=o.x.dataAccessor;return i.find(u=>r==a(u))}else{const a=o.x.dataAccessor,u=o.x2.dataAccessor;return i.find(l=>r>=a(l)&&r<u(l))}}}vi=new WeakSet,bm=function(){const n=this.properties;return n.cornerRadius||n.cornerRadiusBottomLeft||n.cornerRadiusBottomRight||n.cornerRadiusTopLeft||n.cornerRadiusTopRight},ym=function(){const n=this.encoding.strokeWidth;return!(cn(n)&&!n.value)||"condition"in n};const wR=`out float vRadius;out float vRadiusWithPadding;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out lowp float vShape;out lowp float vHalfStrokeWidth;out mat2 vRotationMatrix;const float CIRCLE=0.0;const float SQUARE=1.0;const float CROSS=2.0;const float DIAMOND=3.0;const float TRIANGLE_UP=4.0;const float TRIANGLE_RIGHT=5.0;const float TRIANGLE_DOWN=6.0;const float TRIANGLE_LEFT=7.0;const float TICK_UP=8.0;const float TICK_RIGHT=9.0;const float TICK_DOWN=10.0;const float TICK_LEFT=11.0;float computeSemanticThresholdFactor(){return getScaled_semanticScore()>=uSemanticThreshold ? 1.0 : 0.0;}vec2 getDxDy(){
|
|
329
335
|
#if defined(dx_DEFINED) || defined(dy_DEFINED)
|
|
330
336
|
return vec2(getScaled_dx(),getScaled_dy())/uViewportSize;
|
|
331
337
|
#else
|
|
332
338
|
return vec2(0.0,0.0);
|
|
333
339
|
#endif
|
|
334
|
-
}void main(void){float shapeAngle=0.0;float semanticThresholdFactor=computeSemanticThresholdFactor();if(semanticThresholdFactor<=0.0){gl_PointSize=0.0;gl_Position=vec4(100.0,0.0,0.0,0.0);return;}float size=getScaled_size();vec2 pos=vec2(getScaled_x(),getScaled_y())+getDxDy();gl_Position=unitToNdc(applySampleFacet(pos));float strokeWidth=getScaled_strokeWidth();float diameter=sqrt(size)*uScaleFactor*semanticThresholdFactor;float opacity=uViewOpacity;if(strokeWidth<=0.0||uInwardStroke){float minDiameter=1.0/uDevicePixelRatio;if(diameter<minDiameter){opacity*=pow(diameter/minDiameter,2.5);diameter=minDiameter;}}float fillOpa=getScaled_fillOpacity()*opacity;float strokeOpa=getScaled_strokeOpacity()*opacity;vShape=getScaled_shape();bool circle=vShape==0.0;if(vShape>TICK_UP&&vShape<=TICK_LEFT){shapeAngle=(vShape-TICK_UP)*90.0;vShape=TICK_UP;}else if(vShape>TRIANGLE_UP&&vShape<=TRIANGLE_LEFT){shapeAngle=(vShape-TRIANGLE_UP)*90.0;vShape=TRIANGLE_UP;}float angleInDegrees=getScaled_angle();float angle=-(shapeAngle+angleInDegrees)*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);vRotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);float roomForRotation=circle ? 1.0 : sin(mod(angle,PI/2.0)+PI/4.0)/sin(PI/4.0);float aaPadding=1.0/uDevicePixelRatio;float rotationPadding=(diameter*roomForRotation)-diameter;float strokePadding=uInwardStroke ? 0.0 : strokeWidth*(circle ? 1.0 : sqrt(3.0));float padding=rotationPadding+strokePadding+aaPadding;gl_PointSize=max((diameter+padding),uPickingEnabled ? uMinPickingSize : 0.0)*uDevicePixelRatio;vRadius=diameter/2.0;vRadiusWithPadding=vRadius+padding/2.0;vHalfStrokeWidth=strokeWidth/2.0;vFillColor=vec4(getScaled_fill()*fillOpa,fillOpa);vStrokeColor=vec4(getScaled_stroke()*strokeOpa,strokeOpa);setupPicking();}`,
|
|
340
|
+
}void main(void){float shapeAngle=0.0;float semanticThresholdFactor=computeSemanticThresholdFactor();if(semanticThresholdFactor<=0.0){gl_PointSize=0.0;gl_Position=vec4(100.0,0.0,0.0,0.0);return;}float size=getScaled_size();vec2 pos=vec2(getScaled_x(),getScaled_y())+getDxDy();gl_Position=unitToNdc(applySampleFacet(pos));float strokeWidth=getScaled_strokeWidth();float diameter=sqrt(size)*uScaleFactor*semanticThresholdFactor;float opacity=uViewOpacity;if(strokeWidth<=0.0||uInwardStroke){float minDiameter=1.0/uDevicePixelRatio;if(diameter<minDiameter){opacity*=pow(diameter/minDiameter,2.5);diameter=minDiameter;}}float fillOpa=getScaled_fillOpacity()*opacity;float strokeOpa=getScaled_strokeOpacity()*opacity;vShape=getScaled_shape();bool circle=vShape==0.0;if(vShape>TICK_UP&&vShape<=TICK_LEFT){shapeAngle=(vShape-TICK_UP)*90.0;vShape=TICK_UP;}else if(vShape>TRIANGLE_UP&&vShape<=TRIANGLE_LEFT){shapeAngle=(vShape-TRIANGLE_UP)*90.0;vShape=TRIANGLE_UP;}float angleInDegrees=getScaled_angle();float angle=-(shapeAngle+angleInDegrees)*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);vRotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);float roomForRotation=circle ? 1.0 : sin(mod(angle,PI/2.0)+PI/4.0)/sin(PI/4.0);float aaPadding=1.0/uDevicePixelRatio;float rotationPadding=(diameter*roomForRotation)-diameter;float strokePadding=uInwardStroke ? 0.0 : strokeWidth*(circle ? 1.0 : sqrt(3.0));float padding=rotationPadding+strokePadding+aaPadding;gl_PointSize=max((diameter+padding),uPickingEnabled ? uMinPickingSize : 0.0)*uDevicePixelRatio;vRadius=diameter/2.0;vRadiusWithPadding=vRadius+padding/2.0;vHalfStrokeWidth=strokeWidth/2.0;vFillColor=vec4(getScaled_fill()*fillOpa,fillOpa);vStrokeColor=vec4(getScaled_stroke()*strokeOpa,strokeOpa);setupPicking();}`,vR="const lowp vec4 white=vec4(1.0);const lowp vec4 black=vec4(0.0,0.0,0.0,1.0);in float vRadius;in float vRadiusWithPadding;in lowp vec4 vFillColor;in lowp vec4 vStrokeColor;in lowp float vShape;in lowp float vHalfStrokeWidth;in mat2 vRotationMatrix;out lowp vec4 fragColor;const float CIRCLE=0.0;const float SQUARE=1.0;const float CROSS=2.0;const float DIAMOND=3.0;const float TRIANGLE_UP=4.0;const float TICK_UP=8.0;float circle(vec2 p,float r){return length(p)-r;}float square(vec2 p,float r){p=abs(p);return max(p.x,p.y)-r;}float tickUp(vec2 p,float r){float halfR=r*0.5;p.y+=halfR;p=abs(p);return max(p.x-r*0.15,p.y-halfR);}float equilateralTriangle(vec2 p,float r){p.y=-p.y;float k=sqrt(3.0);float kr=k*r;p.y-=kr/2.0;return max((abs(p.x)*k+p.y)/2.0,-p.y-kr);}float crossShape(vec2 p,float r){p=abs(p);vec2 b=vec2(0.4,1.0)*r;vec2 v=abs(p)-b.xy;vec2 h=abs(p)-b.yx;return min(max(v.x,v.y),max(h.x,h.y));}float diamond(vec2 p,float r){p=abs(p);return(max(abs(p.x-p.y),abs(p.x+p.y))-r)/sqrt(2.0);}void main(){float d;vec2 p=vRotationMatrix*(2.0*gl_PointCoord-1.0)*vRadiusWithPadding;float r=vRadius;if(vShape==CIRCLE){d=circle(p,r);}else if(vShape==SQUARE){d=square(p,r);}else if(vShape==CROSS){d=crossShape(p,r);}else if(vShape==DIAMOND){d=diamond(p,r);}else if(vShape==TRIANGLE_UP){d=equilateralTriangle(p,r);}else if(vShape==TICK_UP){d=tickUp(p,r);}else{d=0.0;}if(!uPickingEnabled){lowp vec4 fillColor=mix(vFillColor,white,-d*uGradientStrength/vRadius);fragColor=distanceToColor(d+(uInwardStroke ? vHalfStrokeWidth : 0.0),fillColor,vStrokeColor,vHalfStrokeWidth);}else if(d-vHalfStrokeWidth<=0.0){fragColor=vPickingColor;}else{discard;}}",AR=`layout(std140)uniform Mark{/***The stroke should only grow inwards,e.g,the diameter/outline is not affected by the stroke width.*Thus,a point that has a zero size has no visible stroke. This allows strokes to be used with*geometric zoom,etc.*/uniform bool uInwardStroke;uniform float uMinPickingSize;uniform mediump float uScaleFactor;uniform mediump float uZoomLevel;uniform highp float uSemanticThreshold;uniform mediump float uGradientStrength;
|
|
335
341
|
#pragma markUniforms
|
|
336
|
-
};`;class
|
|
342
|
+
};`;class Tw extends lt{constructor(t){super(t),this.params=t,this.k=t.size||500,this.reset()}reset(){super.reset(),this.reservoir=[],this.W=void 0,this.ingester=this._initialIngester}_initialIngester(t){this.reservoir.push(t),this.reservoir.length==this.k&&(this.W=Math.exp(Math.log(Math.random())/this.k),this.i=this.k,this.next=this.i,this.ingester=this._finalIngester,this._setNextStop())}_finalIngester(t){++this.i==this.next&&(this.reservoir[Math.floor(Math.random()*this.k)]=t,this.W*=Math.exp(Math.log(Math.random())/this.k),this._setNextStop())}_setNextStop(){this.next+=Math.floor(Math.log(Math.random())/Math.log(1-this.W))+1}handle(t){this.ingester(t)}complete(){for(const t of this.reservoir)this._propagate(t);super.complete()}}function xR(e,t,n){const r=new Tw({type:"sample",size:e});for(const i of t)r.handle(n(i));return r.complete(),r.reservoir}const ER={};class _R extends vl{constructor(n){super(n);J(this,mh);J(this,Qs,()=>0);this.augmentDefaultProperties({x:.5,y:.5,color:"#4c78a8",filled:!0,opacity:1,size:100,semanticScore:0,shape:"circle",strokeWidth:2,fillGradientStrength:0,dx:0,dy:0,angle:0,sampleFacetPadding:.1,semanticZoomFraction:.02,minPickingSize:2});const r=this.properties.semanticZoomFraction;if(r!=null)if(Mt(r)){const i=this.unitView.paramMediator.createExpression(r.expr);i.addListener(()=>this.getContext().animator.requestRender()),le(this,Qs,i)}else le(this,Qs,()=>r)}getAttributes(){return["uniqueId","facetIndex","x","y","size","semanticScore","shape","strokeWidth","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"size","semanticScore","shape","strokeWidth","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getDefaultEncoding(){return{...super.getDefaultEncoding(),...ER}}fixEncoding(n){return Sw(n,this.properties.filled),Cw(n,this.properties.filled),delete n.color,delete n.opacity,n}initializeData(){var r,i;super.initializeData();const n=(i=(r=this.encoders.semanticScore)==null?void 0:r.dataAccessor)==null?void 0:i.asNumberAccessor();n&&(this.sampledSemanticScores=Float32Array.from(xR(1e4,this.unitView.getCollector().getData(),n)),this.sampledSemanticScores.sort((o,s)=>o-s))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(wR,vR,[AR])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const n=this.properties;this.registerMarkUniformValue("uInwardStroke",n.inwardStroke,r=>!!r),this.registerMarkUniformValue("uGradientStrength",n.fillGradientStrength),this.registerMarkUniformValue("uMinPickingSize",n.minPickingSize)}updateGraphicsData(){const n=this.unitView.getCollector();if(!n){console.debug("No collector");return}const r=n.getItemCount(),i=new tR({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(r,this.properties.minBufferSize||0)});i.addBatches(n.facetBatches);const o=i.toArrays();this.rangeMap.migrateEntries(o.rangeMap),this.updateBufferInfo(o)}getSemanticThreshold(){if(this.sampledSemanticScores){const n=Math.max(0,1-z(this,Qs).call(this)*this.unitView.getZoomLevel());if(n<=0)return-1/0;if(n>=1)return 1/0;{const r=this.sampledSemanticScores;return y1(r,n)}}else return-1}prepareRender(n){const r=super.prepareRender(n);return r.push(()=>{Wa(this.markUniformInfo,{uScaleFactor:Q(this,mh,pS).call(this),uSemanticThreshold:this.getSemanticThreshold()}),this.markUniformsAltered=!0}),r.push(()=>this.bindOrSetMarkUniformBlock()),r.push(()=>ji(this.gl,this.programInfo,this.vertexArrayInfo)),r}render(n){const r=this.gl;return this.createRenderCallback((i,o)=>{o&&Dc(r,this.vertexArrayInfo,r.POINTS,o,i)},n)}}Qs=new WeakMap,mh=new WeakSet,pS=function(){const n=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/n),1/3)};const SR="const int BUTT=0;const int SQUARE=1;const int ROUND=2;in float pos;in float side;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;out highp vec2 vPosInPixels;void main(void){float pixelSize=1.0/uDevicePixelRatio;float size=getScaled_size();float opacity=getScaled_opacity()*uViewOpacity;if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()));vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()));vec2 tangent=b-a;float offset=0.0;float relativeDiff=0.0;if(uMinLength>0.0||uStrokeCap!=BUTT){float len=length(tangent*uViewportSize);float diff=max(0.0,uMinLength-len);if(uStrokeCap!=BUTT){diff+=size;}relativeDiff=diff/len;offset=relativeDiff*(pos-0.5);}vec2 p=pos<1.0? a+tangent*(pos+offset): b+tangent*offset;float aaPadding=pixelSize;vec2 normal=normalize(vec2(-tangent.y,tangent.x)/uViewportSize);p+=normal*side*(size+aaPadding)/uViewportSize;gl_Position=unitToNdc(p);vColor=vec4(getScaled_color()*opacity,opacity);vSize=size;vNormalLengthInPixels=side*(size+aaPadding);vPosInPixels=vec2(pos,(1.0-pos))*(1.0+relativeDiff)*length(tangent*uViewportSize)-vec2(uStrokeCap!=BUTT ? size/2.0 : 0.0);setupPicking();}",CR="const int BUTT=0;const int SQUARE=1;const int ROUND=2;uniform sampler2D uDashTexture;in vec4 vColor;in float vSize;in vec2 vPosInPixels;in float vNormalLengthInPixels;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distanceFromEnd=-min(vPosInPixels[0],vPosInPixels[1]);float distance;if(distanceFromEnd>0.0&&uStrokeCap==ROUND){distance=length(vec2(distanceFromEnd,vNormalLengthInPixels));}else{distance=abs(vNormalLengthInPixels);}float opacity=clamp(((vSize/2.0-distance)*dpr),-0.5,0.5)+0.5;if(uDashTextureSize>0.0){float pos=(vPosInPixels[0]+uStrokeDashOffset)*dpr;float floored=floor(pos);vec2 texelPositions=(floored+vec2(0.5,1.5))/dpr/uDashTextureSize;opacity*=mix(texture(uDashTexture,vec2(texelPositions[0],0)).r,texture(uDashTexture,vec2(texelPositions[1],0)).r,clamp((pos-floored),0.0,1.0));}fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}",TR=`layout(std140)uniform Mark{uniform mediump float uMinLength;uniform mediump float uDashTextureSize;uniform lowp int uStrokeCap;uniform mediump float uStrokeDashOffset;
|
|
337
343
|
#pragma markUniforms
|
|
338
|
-
};`;class
|
|
344
|
+
};`;class kR extends vl{constructor(t){super(t),this.dashTextureSize=0,this.augmentDefaultProperties({x2:void 0,y2:void 0,size:1,color:"black",opacity:1,minLength:0,strokeDash:null,strokeDashOffset:0,strokeCap:"butt"})}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(t){if(!(t.x&&t.y&&t.x2&&t.y2))if(t.x&&t.x2&&!t.y)t.y={value:.5},t.y2=t.y;else if(t.y&&t.y2&&!t.x)t.x={value:.5},t.x2=t.x;else if(t.x&&!t.y)t.y={value:0},t.y2={value:1},t.x2=t.x;else if(t.y&&!t.x)t.x={value:0},t.x2={value:1},t.y2=t.y;else if(t.x&&t.y&&t.y2)t.x2=t.x;else if(t.y&&t.x&&t.x2)t.y2=t.y;else if(t.y&&t.x)if(!t.x2&&Xt(t.y)&&t.y.type=="quantitative")t.x2=t.x,t.y2={datum:0};else if(!t.y2&&Xt(t.x)&&t.x.type=="quantitative")t.y2=t.y,t.x2={datum:0};else throw new Error("A bug!");else throw new Error("Invalid x and y encodings for rule mark: "+JSON.stringify(t));return t}async initializeGraphics(){if(await super.initializeGraphics(),this.properties.strokeDash){const t=this.gl,n=IR(this.properties.strokeDash);this.dashTexture=qa(t,{mag:t.NEAREST,min:t.NEAREST,internalFormat:t.R8,format:t.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(SR,CR,[TR])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniformValue("uMinLength",t.minLength),this.registerMarkUniformValue("uStrokeCap",t.strokeCap??"butt",n=>["butt","square","round"].indexOf(n)),Wa(this.markUniformInfo,{uDashTextureSize:+this.dashTextureSize}),this.markUniformsAltered=!0}updateGraphicsData(){const t=this.unitView.getCollector();if(!t){console.debug("No collector");return}const n=t.getItemCount(),r=new eR({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>this.bindOrSetMarkUniformBlock()),this.dashTexture&&n.push(()=>es(this.programInfo,{uDashTexture:this.dashTexture})),n.push(()=>ji(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>Dc(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),t)}}function IR(e){if(e.length==0||e.length%2||e.findIndex(o=>Math.round(o)!=o||o<1||o>1e3)>=0)throw new Error("Invalid stroke dash pattern: "+JSON.stringify(e));const t=e.reduce((o,s)=>o+s),n=new Uint8Array(t);let r=!0,i=0;for(let o of e){for(;o;)n[i++]=r&&255||0,o--;r=!r}return n}const BR="out vec4 vColor;out float vSize;out float vNormalLengthInPixels;out float vGamma;const int SHAPE_ARC=0;const int SHAPE_DOME=1;const int SHAPE_DIAGONAL=2;const int SHAPE_LINE=3;const int ORIENT_VERTICAL=0;const int ORIENT_HORIZONTAL=1;float distanceFromLine(vec2 pointOnLine1,vec2 pointOnLine2,vec2 point){vec2 a=point-pointOnLine1;vec2 b=pointOnLine2-pointOnLine1;vec2 proj=dot(a,b)/dot(b,b)*b;return length(a-proj);}bool isInsideViewport(vec2 point,float marginFactor){vec2 margin=uViewportSize*vec2(marginFactor);return point.x>=-margin.x&&point.x<=uViewportSize.x+margin.x&&point.y>=-margin.y&&point.y<=uViewportSize.y+margin.y;}void main(void){float pixelSize=1.0/uDevicePixelRatio;float opacity=getScaled_opacity()*uViewOpacity;vec2 p1,p2,p3,p4;vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()))*uViewportSize;vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()))*uViewportSize;if(uShape<=SHAPE_DOME){if(uShape==SHAPE_DOME){vec2 height=vec2(0.0);if(uOrient==ORIENT_VERTICAL){p1=vec2(min(a.x,b.x),b.y);p4=vec2(max(a.x,b.x),b.y);height=vec2(0.0,a.y-b.y);if(uClampApex){if(p4.x>0.0){p1.x=max(p1.x,-p4.x);}if(p1.x<uViewportSize.x){p4.x=min(p4.x,2.0*uViewportSize.x-p1.x);}}}else{p1=vec2(b.x,min(a.y,b.y));p4=vec2(b.x,max(a.y,b.y));height=vec2(a.x-b.x,0.0);if(uClampApex){if(p4.y>0.0){p1.y=max(p1.y,-p4.y);}if(p1.y<uViewportSize.y){p4.y=min(p4.y,2.0*uViewportSize.y-p1.y);}}}vec2 controlOffset=height/0.75;p2=p1+controlOffset;p3=p4+controlOffset;}if(uShape==SHAPE_ARC){p1=a;p4=b;vec2 chordVector=p4-p1;vec2 unitChordVector=normalize(chordVector);vec2 chordNormal=vec2(-unitChordVector.y,unitChordVector.x);float chordLength=length(chordVector);if(chordLength>uMaxChordLength){if(isInsideViewport(p1,2.0)){chordLength=uMaxChordLength;p4=p1+unitChordVector*uMaxChordLength;}else if(isInsideViewport(p4,2.0)){chordLength=uMaxChordLength;p1=p4-unitChordVector*uMaxChordLength;}}float height=max(chordLength/2.0*uArcHeightFactor,uMinArcHeight);vec2 controlOffset=chordNormal*height/0.75;p2=p1+controlOffset;p3=p4+controlOffset;}}else if(uShape==SHAPE_DIAGONAL){if(uOrient==ORIENT_VERTICAL){p1=a;p2=vec2(a.x,(a.y+b.y)/2.0);p3=vec2(b.x,(a.y+b.y)/2.0);p4=b;}else{p1=a;p2=vec2((a.x+b.x)/2.0,a.y);p3=vec2((a.x+b.x)/2.0,b.y);p4=b;}}else if(uShape==SHAPE_LINE){p1=a;p2=(a+b)/2.0;p3=p2;p4=b;}vec2 strip=vec2(float(gl_VertexID/2)/float(uSegmentBreaks),float(gl_VertexID % 2)-0.5);float t=smoothstep(0.0,1.0,strip.x);vec2 C1=p4-3.0*p3+3.0*p2-p1;vec2 C2=3.0*p3-6.0*p2+3.0*p1;vec2 C3=3.0*p2-3.0*p1;vec2 C4=p1;vec2 p;if(t==0.0){p=p1;}else if(t==1.0){p=p4;}else{p=C1*t*t*t+C2*t*t+C3*t+C4;}vec2 tangent=normalize(3.0*C1*t*t+2.0*C2*t+C3);vec2 normal=vec2(-tangent.y,tangent.x);float size=getScaled_size();if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}float paddedSize=uPickingEnabled? max(size,uMinPickingSize): size+pixelSize;vNormalLengthInPixels=strip.y*paddedSize;if(uShape==SHAPE_ARC&&uArcFadingDistance[0]>0.0&&uArcFadingDistance[1]>0.0&&(!uNoFadingOnPointSelection||!isPointSelected())){float d=distanceFromLine(p1,p4,p);float distanceOpacity=smoothstep(uArcFadingDistance[1],uArcFadingDistance[0],d);opacity*=distanceOpacity;if(distanceOpacity<=0.0){vNormalLengthInPixels=0.0;}}p+=normal*vNormalLengthInPixels;gl_Position=pixelsToNdc(p);vec3 color=getScaled_color();vColor=vec4(color*opacity,opacity);vGamma=getGammaForColor(color);vSize=paddedSize;setupPicking();}",DR="in vec4 vColor;in float vSize;in float vNormalLengthInPixels;in float vGamma;out lowp vec4 fragColor;void main(void){float dpr=uDevicePixelRatio;float distance=abs(vNormalLengthInPixels);float opacity=clamp(((vSize/2.0-distance)*dpr),0.0,1.0);opacity=pow(opacity,vGamma);fragColor=vColor*opacity;if(uPickingEnabled){fragColor=vPickingColor;}}",RR=`layout(std140)uniform Mark{uniform float uArcHeightFactor;uniform float uMinArcHeight;uniform float uMinPickingSize;uniform int uShape;uniform int uOrient;uniform bool uClampApex;uniform float uMaxChordLength;uniform vec2 uArcFadingDistance;uniform bool uNoFadingOnPointSelection;uniform int uSegmentBreaks;
|
|
339
345
|
#pragma markUniforms
|
|
340
|
-
};`,
|
|
346
|
+
};`,FR=["arc","dome","diagonal","line"],MR=["vertical","horizontal"];class PR extends vl{constructor(t){super(t),this.augmentDefaultProperties({x:0,x2:void 0,y:0,y2:void 0,size:1,color:"black",opacity:1,segments:101,arcHeightFactor:1,minArcHeight:1.5,minPickingSize:3,clampApex:!1,maxChordLength:5e4,arcFadingDistance:!1,noFadingOnPointSelection:!0,linkShape:"arc",orient:"vertical"}),this._baseInstanceExt=this.gl.getExtension("WEBGL_draw_instanced_base_vertex_base_instance")}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(t){return t.x2||(Xt(t.x)?t.x2={datum:0}:t.x2=t.x),t.y2||(Xt(t.y)?t.y2={datum:0}:t.y2=t.y),t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(BR,DR,[RR])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniformValue("uArcFadingDistance",t.arcFadingDistance,n=>n||[0,0]),this.registerMarkUniformValue("uArcHeightFactor",t.arcHeightFactor),this.registerMarkUniformValue("uMinArcHeight",t.minArcHeight),this.registerMarkUniformValue("uMinPickingSize",t.minPickingSize),this.registerMarkUniformValue("uShape",t.linkShape,n=>FR.indexOf(n)),this.registerMarkUniformValue("uOrient",t.orient,n=>MR.indexOf(n)),this.registerMarkUniformValue("uClampApex",t.clampApex,n=>!!n),this.registerMarkUniformValue("uMaxChordLength",t.maxChordLength),this.registerMarkUniformValue("uSegmentBreaks",t.segments,n=>n),this.registerMarkUniformValue("uNoFadingOnPointSelection",t.noFadingOnPointSelection,n=>!!n)}updateGraphicsData(){const t=this.unitView.getCollector();if(!t){console.debug("No collector");return}const n=t.getItemCount(),r=new nR({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(t.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.arrays=Object.fromEntries(Object.entries(i.arrays).map(([o,s])=>[o,{...s,data:void 0}])),this.updateBufferInfo(i)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>this.bindOrSetMarkUniformBlock()),this._baseInstanceExt?n.push(()=>ji(this.gl,this.programInfo,this.vertexArrayInfo)):n.push(()=>this.gl.bindVertexArray(null)),n}render(t){const n=this.gl,r=()=>(this.markUniformInfo.uniforms.uSegmentBreaks[0]+1)*2;return this._baseInstanceExt?this.createRenderCallback((i,o)=>{this._baseInstanceExt.drawArraysInstancedBaseInstanceWEBGL(n.TRIANGLE_STRIP,0,r(),o,i)},t):this.createRenderCallback((i,o)=>{for(const s of Object.entries(this.bufferInfo.attribs)){const[a,u]=s;u.buffer&&u.numComponents&&u.divisor&&(u.offset=i*this.arrays[a].numComponents*this.bytesPerElement.get(a))}ji(n,this.programInfo,this.bufferInfo),n.drawArraysInstanced(n.TRIANGLE_STRIP,0,r(),o)},t)}}const LR=`in mediump vec2 vertexCoord;in lowp vec2 textureCoord;in float width;out vec2 vTexCoord;out vec4 vColor;out float vSlope;out float vEdgeFadeOpacity;out float vGamma;struct RangeResult{float pos;float scale;};float minValue(vec4 v){return min(min(v.x,v.y),min(v.z,v.w));}float maxValue(vec4 v){return max(max(v.x,v.y),max(v.z,v.w));}/***All measures are in[0,1]*/RangeResult positionInsideRange(float a,float b,float width,float padding,int align,bool flush){float span=b-a;float paddedWidth=width+2.0*padding;if(a>1.0||b<0.0){return RangeResult(0.0,0.0);}float extra=max(0.0,span-paddedWidth);float pos;if(align==0){float centre=a+b;if(flush){float leftOver=max(0.0,paddedWidth-centre);centre+=min(leftOver,extra);float rightOver=max(0.0,paddedWidth+centre-2.0);centre-=min(rightOver,extra);}pos=centre/2.0;}else if(align<0){float edge=a;if(flush){float over=max(0.0,-edge);edge+=min(over,extra);}pos=edge+padding;}else{float edge=b;if(flush){float over=max(0.0,edge-1.0);edge-=min(over,extra);}pos=edge-padding;}float scale=clamp((span-padding)/paddedWidth,0.0,1.0);return RangeResult(pos,scale);}vec2 calculateRotatedDimensions(float width,mat2 rotationMatrix){vec2 a=abs(rotationMatrix*vec2(width/2.0,0.5));vec2 b=abs(rotationMatrix*vec2(width/2.0,-0.5));return vec2(max(a.x,b.x),max(a.y,b.y))*2.0;}ivec2 fixAlignForAngle(ivec2 align,float angleInDegrees){float a=mod(angleInDegrees+45.0,360.0);int x=align.x;int y=-align.y;if(a<90.0){return ivec2(x,y);}else if(a<180.0){return ivec2(y,-x);}else if(a<270.0){return ivec2(-x,y);}else{return ivec2(-y,x);}}void main(void){float opacity=getScaled_opacity()*uViewOpacity;vec2 size=vec2(getScaled_size());float x=getScaled_x();float y=getScaled_y();float scale=1.0;float angleInDegrees=getScaled_angle();float angle=-angleInDegrees*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);mat2 rotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);vec2 flushSize=calculateRotatedDimensions(width,rotationMatrix);
|
|
341
347
|
#if defined(x2_DEFINED) || defined(y2_DEFINED)
|
|
342
348
|
ivec2 align=fixAlignForAngle(uAlign,angleInDegrees);
|
|
343
349
|
#else
|
|
@@ -350,9 +356,9 @@ vec2 pos=applySampleFacet(vec2(x,y));
|
|
|
350
356
|
#ifdef y2_DEFINED
|
|
351
357
|
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;}
|
|
352
358
|
#endif
|
|
353
|
-
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);vec3 color=getScaled_color();vColor=vec4(color*opacity,opacity);vGamma=getGammaForColor(color);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();}`,
|
|
359
|
+
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);vec3 color=getScaled_color();vColor=vec4(color*opacity,opacity);vGamma=getGammaForColor(color);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();}`,NR="uniform sampler2D uTexture;in vec2 vTexCoord;in float vEdgeFadeOpacity;in vec4 vColor;in float vSlope;in float vGamma;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*=clamp(vEdgeFadeOpacity,0.0,1.0);opa=pow(opa,vGamma);fragColor=vColor*opa;if(uPickingEnabled){fragColor=vPickingColor;}}",OR=`layout(std140)uniform Mark{uniform mediump float uSdfNumerator;uniform mediump vec2 uD;uniform mediump vec4 uViewportEdgeFadeWidth;uniform mediump vec4 uViewportEdgeFadeDistance;uniform bool uSqueeze;uniform bool uLogoLetter;uniform lowp ivec2 uAlign;uniform mediump float uPaddingX;uniform bool uFlushX;uniform mediump float uPaddingY;uniform bool uFlushY;
|
|
354
360
|
#pragma markUniforms
|
|
355
|
-
};`,
|
|
361
|
+
};`,zR={left:-1,center:0,right:1},UR={top:-1,middle:0,bottom:1,alphabetic:1};class GR extends vl{constructor(t){super(t),this.augmentDefaultProperties({x:.5,y:.5,x2:void 0,y2:void 0,text:"",size:11,color:"black",opacity:1,font:void 0,fontStyle:void 0,fontWeight:void 0,align:"center",baseline:"middle",dx:0,dy:0,angle:0,fitToBand:!1,squeeze:!0,paddingX:0,paddingY:0,flushX:!0,flushY:!0,logoLetters:!1,viewportEdgeFadeWidthTop:0,viewportEdgeFadeWidthRight:0,viewportEdgeFadeWidthBottom:0,viewportEdgeFadeWidthLeft:0,viewportEdgeFadeDistanceTop:-1/0,viewportEdgeFadeDistanceRight:-1/0,viewportEdgeFadeDistanceBottom:-1/0,viewportEdgeFadeDistanceLeft:-1/0}),this.font=this.properties.font?t.context.fontManager.getFont(this.properties.font,this.properties.fontStyle,this.properties.fontWeight):t.context.fontManager.getDefaultFont(),this.setupExprRefsNeedingGraphicsUpdate(["text","fitToBand","logoLetters"])}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","color","size","opacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size","text","angle"]}fixEncoding(t){for(const n of ls)this.properties.fitToBand&&U0(t,n);return t}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(LR,NR,[OR])}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const t=this.properties;this.registerMarkUniformValue("uSdfNumerator",{expr:"devicePixelRatio"},n=>{let r=.35;return this.properties.logoLetters&&(r/=2),this.font.metrics.common.base/(n/r)}),this.registerMarkUniformValue("uPaddingX",t.paddingX),this.registerMarkUniformValue("uPaddingY",t.paddingY),this.registerMarkUniformValue("uFlushX",t.flushX,n=>!!n),this.registerMarkUniformValue("uFlushY",t.flushY,n=>!!n),this.registerMarkUniformValue("uSqueeze",t.squeeze,n=>!!n),Wa(this.markUniformInfo,{uAlign:[zR[t.align],UR[t.baseline]],uD:[t.dx,-t.dy],uLogoLetter:!!t.logoLetters,uViewportEdgeFadeWidth:[t.viewportEdgeFadeWidthTop,t.viewportEdgeFadeWidthRight,t.viewportEdgeFadeWidthBottom,t.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[t.viewportEdgeFadeDistanceTop,t.viewportEdgeFadeDistanceRight,t.viewportEdgeFadeDistanceBottom,t.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const t=this.unitView.getCollector();if(!t){console.debug("No collector");return}const n=t.getData(),r=this.encoding,i=this.encoders.text;let o=0;const s="format"in r.text?_t(r.text.format):l=>l;for(const l of n){const c=s(i(l)),f=De(c)?c:c===null?"":""+c;o+=f&&f.length||0}const a=new rR({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(o,this.properties.minBufferSize||1024)});a.addBatches(t.facetBatches);const u=a.toArrays();this.rangeMap.migrateEntries(u.rangeMap),this.updateBufferInfo(u)}prepareRender(t){const n=super.prepareRender(t);return n.push(()=>{es(this.programInfo,{uTexture:this.font.texture})}),n.push(()=>this.bindOrSetMarkUniformBlock()),n.push(()=>ji(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(t){const n=this.gl;return this.createRenderCallback((r,i)=>Dc(n,this.vertexArrayInfo,n.TRIANGLES,i,r),t)}}const kw=1;function G0(){let e=[0,1],t=[0,1],n=1,r=1,i=0,o=0,s=.5,a=0;const l=c=>(c+s-e[0])/n*r+t[0];return l.invert=c=>(c-t[0])/r*n+e[0]-s,l.domain=function(c){if(arguments.length){e=F4(c),n=e[1]-e[0];const f=e[0]===0&&e[0]===0;if(n<kw&&!f){n=kw;const h=(e[0]+e[1])/2;e[0]=h-n/2,e[1]=h+n/2}return l}else return e.slice()},l.range=function(c){return arguments.length?(t=[...c],r=t[1]-t[0],l):t},l.numberingOffset=function(c){return arguments.length?(a=c,l):a},l.padding=function(c){return arguments.length?(o=c,i=Math.min(1,c),l):i},l.paddingInner=function(c){return arguments.length?(i=Math.min(1,c),l):i},l.paddingOuter=function(c){return arguments.length?(o=c,l):o},l.align=function(c){return arguments.length?(s=Math.max(0,Math.min(1,c)),l):s},l.step=()=>r/n,l.bandwidth=()=>l.step(),l.ticks=c=>{const f=l.align(),h=l.numberingOffset();return Ju(e[0]-f+h,e[1]-f+h,Math.min(c,Math.ceil(n))).filter(Number.isInteger).map(d=>d-a)},l.tickFormat=(c,f)=>{if(f)throw new Error("Index scale's tickFormat does not support a specifier!");const d=Li(e[0],e[1],Math.min(c,Math.ceil(n)))<1e5?_t(","):_t(".3s");return p=>d(p+a)},l.copy=()=>G0().domain(e).range(t).paddingInner(i).paddingOuter(o).numberingOffset(a),l}function HR(){const e=G0().numberingOffset(1);let t;e.genome=function(r){return arguments.length?(t=r,e):t},e.ticks=r=>{if(!t)return[];const i=e.domain(),o=e.numberingOffset(),[s,a]=[Math.max(i[0],0),Math.min(i[1],t.totalSize-1)].map(c=>t.toChromosome(c)),u=Math.max(1,Li(i[0],i[1],r)),l=[];for(let c=s.index;c<=a.index;c++){const f=t.chromosomes[c],h=Math.max(f.continuousStart+u,i[0]-(i[0]-f.continuousStart)%u),d=Math.min(f.continuousEnd-u/4,i[1]+1);for(let p=h;p<=d;p+=u){const m=p-o;m>=i[0]&&m<i[1]&&l.push(m)}}return l},e.tickFormat=(r,i)=>{if(!t)return;if(i)throw new Error("Locus scale's tickFormat does not support a specifier!");const o=e.domain(),s=o[1]-o[0],a=e.numberingOffset(),l=Li(o[0],o[1],Math.min(r,Math.ceil(s)))<1e6?_t(","):_t(".3s"),c=f=>f-t.toChromosome(f).continuousStart;return f=>l(c(f)+a)};const n=e.copy;return e.copy=()=>n().genome(t),e}function VR(e){return e.type=="locus"}function uf(e,t,n){if(n=n||[],e.some(s=>s===null)){if(e.every(s=>s===null))return null;throw console.warn(e),new Error("Cannot merge objects with nulls!")}const r={},i=(s,a)=>s===a||cs(s)&&cs(a)||cs(s)&&a===!0||s===!0&&Et(a),o=s=>{for(let a in s){const u=s[a];if(!n.includes(a)&&u!==void 0)if(r[a]!==void 0&&!i(r[a],u))console.warn(`Conflicting property ${a} of ${t}: (${JSON.stringify(r[a])} and ${JSON.stringify(s[a])}). Using ${JSON.stringify(r[a])}.`);else{const l=r[a];if(cs(l))cs(u)&&(r[a]=uf([l,u],a));else if(cs(u)){if(!(l===!0||l===void 0))throw new Error("Bug in merge! Target is: "+l);r[a]=uf([{},u],a)}else r[a]=u}}};for(const s of e)o(s);return r}function cs(e){return Et(e)&&!Array.isArray(e)}/*!
|
|
356
362
|
* Adapted from vega-encode:
|
|
357
363
|
* https://github.com/vega/vega/blob/master/packages/vega-encode/src/ticks.js
|
|
358
364
|
*
|
|
@@ -360,7 +366,7 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
|
|
|
360
366
|
* All rights reserved.
|
|
361
367
|
*
|
|
362
368
|
* BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
|
|
363
|
-
*/function
|
|
369
|
+
*/function Iw(e,t,n){return Dt(t)&&n!=null&&(t=Math.min(t,~~($u(e.domain())/n)||1)),Et(t)&&(t.step,t=t.interval),t}function Bw(e,t,n){var r=e.range(),i=Math.floor(r[0]),o=Math.ceil(Sn(r));if(i>o&&(r=o,o=i,i=r),t=t.filter(function(a){return a=e(a),i<=a&&a<=o}),n>0&&t.length>1){for(var s=[t[0],Sn(t)];t.length>n&&t.length>=3;)t=t.filter(function(a,u){return!(u%2)});t.length<3&&(t=s)}return t}function jR(e,t){return e.bins?Bw(e,$R(e.bins,t)):e.ticks?e.ticks(t):e.domain()}function $R(e,t){var n=e.length,r=~~(n/(t||n));return r<2?e.slice():e.filter(function(i,o){return!(o%r)})}function qR(e,t,n){var r=e.tickFormat?e.tickFormat(t,n):n?_t(n):String;if(_y(e.type)){var i=ZR(n);r=e.bins?i:WR(r,i)}return r}function WR(e,t){return function(n){return e(n)?t(n):""}}function ZR(e){var t=Vo(e||",");if(t.precision==null){switch(t.precision=12,t.type){case"%":t.precision-=2;break;case"e":t.precision-=1;break}return YR(_t(t),_t(".1f")(1)[1])}else return _t(t)}function YR(e,t){return function(n){var r=e(n),i=r.indexOf(t),o,s;if(i<0)return r;for(o=QR(r,i),s=o<r.length?r.slice(o):"";--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+s}}function QR(e,t){var n=e.lastIndexOf("e"),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.charCodeAt(n),r>=48&&r<=57)return n+1}/*!
|
|
364
370
|
* Adapted from vega-encode:
|
|
365
371
|
* https://github.com/vega/vega/blob/master/packages/vega-encode/src/Scale.js
|
|
366
372
|
*
|
|
@@ -368,7 +374,7 @@ if(scale<1.0){if(uSqueeze){vec2 scaleFadeExtent=vec2(3.0,6.0)/size;if(scale<scal
|
|
|
368
374
|
* All rights reserved.
|
|
369
375
|
*
|
|
370
376
|
* BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
|
|
371
|
-
*/const
|
|
377
|
+
*/const XR="locus",KR="index";var JR=5;function e9(e){const t=e.type;return!e.bins&&(t===os||t===Ja||t===el)}function Dw(e){return yt(e)&&![$n,KR,XR].includes(e)}function Rw(e){return e||{warn:(t,...n)=>console.warn(t,...n)}}var t9=qu(["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 Fw(e,t,n){n=Rw(n);for(const r in e)if(!t9[r]){if(r==="padding"&&Dw(t.type))continue;sn(t[r])?t[r](e[r]):n.warn("Unsupported scale property: "+r)}u9(t,e,l9(t,e,o9(t,e,n)))}function n9(e,t){const n=r9(e),r=Te(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return!e.domain&&yt(i.type)&&(e.domain=[0,0]),Fw(e,i,t),i}function r9(e){var t=e.type,n="",r;return t===$n?$n+"-"+os:(i9(e)&&(r=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(e.domainMid!=null):0,n=r===2?$n+"-":r===3?ss+"-":""),(n+t||os).toLowerCase())}function i9(e){const t=e.type;return yt(t)&&t!==my&&t!==by&&(e.scheme||e.range&&e.range.length&&e.range.every(De))}function o9(e,t,n){if(!e.domain)return 0;n=Rw(n);var r=s9(e,t.domainRaw,n);if(r>-1)return r;var i=t.domain,o=e.type,s=t.zero||t.zero===void 0&&e9(e),a,u;return i?(Dw(o)&&t.padding&&i[0]!==Sn(i)&&(i=a9(o,i,t.range,t.padding,t.exponent,t.constant)),(s||t.domainMin!=null||t.domainMax!=null||t.domainMid!=null)&&(a=(i=i.slice()).length-1||1,s&&(i[0]>0&&(i[0]=0),i[a]<0&&(i[a]=0)),t.domainMin!=null&&(i[0]=t.domainMin),t.domainMax!=null&&(i[a]=t.domainMax),t.domainMid!=null&&(u=t.domainMid,(u<i[0]||u>i[a])&&n.warn("Scale domainMid exceeds domain min or max.",u),i.splice(a,0,u))),e.domain(Mw(o,i,n)),o===m0&&e.unknown(t.domainImplicit?Nd:void 0),t.nice&&e.nice&&e.nice(t.nice!==!0&&Iw(e,t.nice)||null),i.length):0}function s9(e,t,n){return t?(e.domain(Mw(e.type,t,n)),t.length):-1}function a9(e,t,n,r,i,o){n??(n=[0,1]);var s=Math.abs(Sn(n)-n[0]),a=s/(s-2*r),u=e===Xr?zm(t,null,a):e===el?Ch(t,null,a,.5):e===Ja?Ch(t,null,a,i||1):e===$c?PS(t,null,a,o||1):Om(t,null,a);return t=t.slice(),t[0]=u[0],t[t.length-1]=u[1],t}function Mw(e,t,n){if(_y(e)){var r=Math.abs(t.reduce(function(i,o){return i+(o<0?-1:o>0?1:0)},0));r!==t.length&&n.warn("Log scale domain includes zero: "+kh(t))}return t}function l9(e,t,n){let r=t.bins;if(r&&!xt(r)){const i=(r.start==null||r.stop==null)&&e.domain(),o=r.start==null?i[0]:r.start,s=r.stop==null?Sn(i):r.stop,a=r.step;a||ot("Scale bins parameter missing step property."),r=xa(o,s+a,a)}return r?e.bins=r:e.bins&&delete e.bins,e.type===y0&&(r?!t.domain&&!t.domainRaw&&(e.domain(r),n=r.length):e.bins=e.domain()),n}function u9(e,t,n){var r=e.type,i=t.round||!1,o=t.range;if(t.rangeStep!=null)o=c9(r,t,n);else if(t.scheme&&(o=f9(r,t,n),sn(o))){if(e.interpolator)return e.interpolator(o);ot(`Scale type ${r} does not support interpolating color schemes.`)}if(o&&Wc(r))return e.interpolator(Zc(H0(o,t.reverse),t.interpolate,t.interpolateGamma));o&&t.interpolate&&e.interpolate?e.interpolate(Sy(t.interpolate,t.interpolateGamma)):sn(e.round)?e.round(i):sn(e.rangeRound)&&e.interpolate(i?Xa:Yr),o&&e.range(H0(o,t.reverse))}function c9(e,t,n){e!==vy&&e!==b0&&ot("Only band and point scales support rangeStep.");var r=(t.paddingOuter!=null?t.paddingOuter:t.padding)||0,i=e===b0?1:(t.paddingInner!=null?t.paddingInner:t.padding)||0;return[0,t.rangeStep*p0(n,i,r)]}function f9(e,t,n){var r=t.schemeExtent,i,o;return xt(t.scheme)?o=Zc(t.scheme,t.interpolate,t.interpolateGamma):(i=t.scheme.toLowerCase(),o=v0(i),o||ot(`Unrecognized scheme name: ${t.scheme}`)),n=e===wy?n+1:e===y0?n-1:e===g0||e===yy?+t.schemeCount||JR:n,Wc(e)?Pw(o,r,t.reverse):sn(o)?YI(Pw(o,r),n):e===m0?o:o.slice(0,n)}function Pw(e,t,n){return sn(e)&&(t||n)?ZI(e,H0(t||[0,1],n)):e}function H0(e,t){return t?e.slice().reverse():e}const Lw=_t(",d");function h9(e,t){return e.chrom+":"+Lw(Math.floor(e.pos+1))+"-"+(e.chrom!=t.chrom?t.chrom+":":"")+Lw(Math.ceil(t.pos))}const Nw={dm6:`chr3R 32079331
|
|
372
378
|
chr3L 28110227
|
|
373
379
|
chr2R 25286936
|
|
374
380
|
chrX 23542271
|
|
@@ -489,12 +495,12 @@ chr18 90702639
|
|
|
489
495
|
chr19 61431566
|
|
490
496
|
chrX 171031299
|
|
491
497
|
chrY 91744698
|
|
492
|
-
chrM 16299`};function
|
|
493
|
-
`).map(t=>{const n=t.split(" ");return{name:n[0],size:parseInt(n[1])}})}const h9=/^([A-Za-z]+:)?\/\//;function Al(e,t){if(t&&h9.test(t))return t;const n=typeof e=="function"?e():e;if(!n)return t;if(!t)return n;if(/[#?]/.test(n))throw new Error(`Cannot append to a url with query or hash. Append: ${t}, base: ${n}`);return Lw(n)+t}function Lw(e){const t=e.replace(/[^/]*$/,"");return t===""?void 0:t.endsWith("://")?e+"/":t}class d9{constructor(t){if(this.config={name:"custom",...t},"baseUrl"in t)throw new Error("The `baseUrl` property in genome config has been removed in GenomeSpy v0.52.0. Use `url` instead. See https://genomespy.app/docs/genomic-data/genomic-coordinates/.");if(!G0(t))throw new Error("Not a genome configuration: "+JSON.stringify(t));if(this.chromosomes=[],this.cumulativeChromPositions=new Map,this.chromosomesByName=new Map,this.startByIndex=[],this.totalSize=0,Ow(this.config))this.setChromSizes(this.config.contigs);else if(!H0(this.config)){const n=f9(this.config.name);if(n)this.setChromSizes(n);else throw new Error(`Unknown genome: ${this.config.name}. Please provide contigs or a URL. See https://genomespy.app/docs/genomic-data/genomic-coordinates/.`)}}get name(){return this.config.name}async load(t){if(H0(this.config))try{const n=Al(t,this.config.url),r=await fetch(n);if(!r.ok)throw new Error(`${r.status} ${r.statusText}`);this.setChromSizes(p9(await r.text()))}catch(n){throw new Error(`Could not load chrom sizes: ${this.config.url}. Reason: ${n.message}`)}}hasChrPrefix(){return this.chromosomes.some(t=>t.name.startsWith("chr"))}setChromSizes(t){let n=0;this.startByIndex=[0];for(let r=0;r<t.length;r++){this.startByIndex.push(n);const i=t[r].size,o={...t[r],continuousStart:n,continuousEnd:n+i,continuousInterval:[n,n+i],index:r,number:r+1,odd:!(r&1)};this.chromosomes.push(o);const s=o.name.replace(/^chr/i,"");for(const a of["chr"+s,"CHR"+s,"Chr"+s,o.number,""+o.number,s,o.name])this.cumulativeChromPositions.set(a,n),this.chromosomesByName.set(a,o);n+=o.size}this.totalSize=n}getExtent(){return[0,this.totalSize]}toContinuous(t,n){let r=this.cumulativeChromPositions.get(t);if(r===void 0)throw new Error("Unknown chromosome/contig: "+t);return r+ +n}toChromosome(t){if(t>this.totalSize)return;t=Math.floor(t);const n=Nr(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 c9(...this.toChromosomalInterval(t))}toChromosomalInterval(t){const n=this.toChromosomal(t[0]+.5),r=this.toChromosomal(t[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(t){var i;let[n,r]=t;return r||(r=n),[this.toContinuous(n.chrom,n.pos??0),this.toContinuous(r.chrom,r.pos??((i=this.chromosomesByName.get(r.chrom))==null?void 0:i.size))]}toDiscreteChromosomeIntervals(t){const n=t[0],r=t[1],i=[];if(n.chrom===r.chrom)i.push({chrom:n.chrom,startPos:n.pos,endPos:r.pos});else{const o=this.chromosomes.findIndex(a=>a.name===n.chrom),s=this.chromosomes.findIndex(a=>a.name===r.chrom);i.push({chrom:n.chrom,startPos:n.pos,endPos:this.chromosomes[o].size});for(let a=o+1;a<s;a++)i.push({chrom:this.chromosomes[a].name,startPos:0,endPos:this.chromosomes[a].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(a=>a===void 0)){const a=this.getChromosome(r);return a?[a.continuousStart,a.continuousEnd]:void 0}const i=n[3]||r,o=parseInt(n[2].replace(/,/g,"")),s=n[4]!==void 0?parseInt(n[4].replace(/,/g,"")):o;return[this.toContinuous(r,o-1),this.toContinuous(i,s)]}}}function p9(e){return b4(e).map(([t,n])=>({name:t,size:parseInt(n)}))}function Nw(e){return Et(e)&&"chrom"in e}function g9(e){return e.every(Nw)}function G0(e){return Et(e)&&("name"in e||H0(e)||Ow(e))}function H0(e){return G0(e)&&"url"in e}function Ow(e){return G0(e)&&"contigs"in e}class xl extends Array{constructor(){super(),this.type=void 0}extend(t){return this}extendAll(t){if(t instanceof xl&&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 V0 extends xl{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 zw extends xl{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 Uw extends zw{constructor(){super(),this.type="nominal"}}class m9 extends xl{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 Gw={quantitative:V0,index:V0,locus:V0,nominal:Uw,ordinal:zw};function Hw(e,t){if(e=="quantitative"&&b9(t)){const n=new m9(t);return n.type=e,n}else if(Gw[e]){const n=new Gw[e];return n.type=e,t&&n.extendAll(t),n}throw new Error("Unknown type: "+e)}function b9(e){return e&&e.length>0&&e.length!=2&&e.every(t=>typeof t=="number")}function y9(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}function w9(e,t,n){return e*Math.pow(t/e,n)}Te("index",z0,["continuous"]),Te("locus",UR,["continuous"]),Te("null",B0,[]);const Vw="quantitative",jw="ordinal",$w="nominal",qw="locus",v9="index";class A9{constructor(t){ee(this,oe);ee(this,Tr);ee(this,Xs,{domain:new Set,range:new Set});ee(this,nn);ee(this,vu,new Set);this.channel=t,this.members=[],this.type=null,this.name=void 0}addEventListener(t,n){z(this,Xs)[t].add(n)}removeEventListener(t,n){z(this,Xs)[t].delete(n)}addMember(t){var s;const{channel:n,channelDef:r}=t,i=r.type,o=(s=r==null?void 0:r.scale)==null?void 0:s.name;if(o){if(this.name!==void 0&&o!=this.name)throw new Error(`Shared scales have conflicting names: "${o}" vs. "${this.name}"!`);this.name=o}if(!this.type)this.type=i;else if(i!==this.type&&!tw(n))throw new Error(`Can not use shared scale for different data types: ${this.type} vs. ${i}. Use "resolve: independent" for channel ${this.channel}`);this.members.push(t)}getDataDomain(){return this.members.map(t=>{var n;return(n=t.dataDomainSource)==null?void 0:n.call(t,t.channel,this.type)}).filter(t=>!!t).reduce((t,n)=>t.extendAll(n))}reconfigure(){const t=z(this,nn);if(!t||t.type=="null")return;const n=Q(this,oe,dS).call(this),r=t.domain(),i=Q(this,oe,vm).call(this,!0);if(Dw({...i,range:void 0},t),t.props=i,Q(this,oe,Am).call(this),yt(t.type)&&le(this,Tr,Q(this,oe,Em).call(this)),!n){Q(this,oe,Mr).call(this,"domain");return}const o=t.domain();fc(o,r)||(this.isZoomable()?t.domain(r):Q(this,oe,Po).call(this)?(t.domain(r),this.zoomTo(o,500)):Q(this,oe,Mr).call(this,"domain"))}get scale(){if(z(this,nn))return z(this,nn);const t=Q(this,oe,vm).call(this),n=e9({...t,range:void 0});n.props=t,"unknown"in n&&n.unknown(null),le(this,nn,n),Q(this,oe,Am).call(this),GR(n)&&n.genome(this.getGenome()),yt(n.type)&&le(this,Tr,Q(this,oe,Em).call(this));const r=n.range;if(r){const i=()=>Q(this,oe,Mr).call(this,"range");n.range=function(o){if(arguments.length)r(o),i();else return r()},i()}return n}getDomain(){return this.scale.domain()}getComplexDomain(){var t;return((t=this.getGenome())==null?void 0:t.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return Q(this,oe,Po).call(this)&&fc(Q(this,oe,vh).call(this),this.getDomain())}isZoomable(){return Q(this,oe,Po).call(this)&&!!this.scale.props.zoom}zoom(t,n,r){if(!Q(this,oe,Po).call(this))return!1;const i=this.scale,o=i.domain();let s=[...o],a=i.invert(n);switch(i.props.reverse&&(r=-r),"align"in i&&(a+=i.align()),i.type){case"linear":case"index":case"locus":s=BS(s,r||0),s=Lm(s,a,t);break;case"log":s=DS(s,r||0),s=Nm(s,a,t);break;case"pow":case"sqrt":{const u=i;s=RS(s,r||0,u.exponent()),s=Sh(s,a,t,u.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return z(this,Tr)&&(s=MS(s,z(this,Tr)[0],z(this,Tr)[1])),[0,1].some(u=>s[u]!=o[u])?(i.domain(s),Q(this,oe,Mr).call(this,"domain"),!0):!1}async zoomTo(t,n=!1){if(fa(n)&&(n=n?700:0),!Q(this,oe,Po).call(this))throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(t),i=z(this,oe,ym).animator,o=this.scale,s=o.domain();if(n>0&&s.length==2){const a=s[1]-s[0],u=r[1]-r[0],l=s[0]+a/2,c=r[0]+u/2,f=s[0]==r[0],h=s[1]==r[1];await i.transition({duration:n,easingFunction:y9,onUpdate:d=>{const p=w9(a,u,d),m=a==u?d:(a-p)/(a-u),y=m*c+(1-m)*l,w=[f?s[0]:y-p/2,h?s[1]:y+p/2];o.domain(w),Q(this,oe,Mr).call(this,"domain")}}),o.domain(r),Q(this,oe,Mr).call(this,"domain")}else o.domain(r),i==null||i.requestRender(),Q(this,oe,Mr).call(this,"domain")}resetZoom(){if(!Q(this,oe,Po).call(this))throw new Error("Not a zoomable scale!");const t=this.getDomain(),n=Q(this,oe,vh).call(this);return[0,1].some(r=>n[r]!=t[r])?(z(this,nn).domain(n),Q(this,oe,Mr).call(this,"domain"),!0):!1}getZoomLevel(){return this.isZoomable()?ju(z(this,Tr))/ju(this.scale.domain()):1}getAxisLength(){if(this.channel!=="x"&&this.channel!=="y")throw new Error("Axis length is only defined for x and y channels!");const t=this.members.map(n=>{var r;return(r=n.view.coords)==null?void 0:r[this.channel==="x"?"width":"height"]}).filter(n=>n>0);return t.length?t.reduce((n,r)=>Math.min(n,r),1e4):0}getGenome(){var n;if(this.type!=="locus")return;const t=(n=z(this,oe,ym).genomeStore)==null?void 0:n.getGenome();if(!t)throw new Error("No genome has been defined!");return t}invertToComplex(t){const n=this.scale;if("invert"in n){const r=n.invert(t);return this.toComplex(r)}else throw new Error("The scale does not support inverting!")}toComplex(t){const n=this.getGenome();return n?n.toChromosomal(t):t}fromComplex(t){return Nw(t)?this.getGenome().toContinuous(t.chrom,t.pos):t}fromComplexInterval(t){return this.type==="locus"&&g9(t)?this.getGenome().toContinuousInterval(t):t}}Tr=new WeakMap,Xs=new WeakMap,nn=new WeakMap,vu=new WeakMap,oe=new WeakSet,bm=function(){return this.members[0].view},ym=function(){return z(this,oe,bm).context},Mr=function(t){for(const n of z(this,Xs)[t].values())n({type:t,scaleResolution:this})},wm=function(){return!!Q(this,oe,xm).call(this)},dS=function(){const t=z(this,nn);if(!t)return!1;const n=t.domain();return yt(t.type)?n.length>2||n.length==2&&(n[0]!==0||n[1]!==0):n.length>0},pS=function(){const t=this.members.map(n=>n.channelDef.scale).filter(n=>n!==void 0);return lf(t,"scale",["domain"])},vm=function(t=!1){const n=Q(this,oe,pS).call(this);if(n===null||n.type=="null")return{type:"null"};const r={...Q(this,oe,gS).call(this,this.type),...n};r.type||(r.type=x9(this.channel,this.type));const i=Q(this,oe,vh).call(this,t);return i&&i.length>0?r.domain=i:Kr(r.type)&&(r.domain=new Uw),!r.domain&&r.domainMid!==void 0&&(r.domain=[r.domainMin??0,r.domainMax??1]),this.channel=="y"&&Kr(r.type)&&r.reverse==null&&(r.reverse=!0),r.range&&r.scheme&&delete r.scheme,!("zoom"in r)&&["index","locus"].includes(r.type)&&(r.zoom=!0),E9(r,this.channel),r},Am=function(){const t=z(this,nn).props,n=t.range;if(z(this,vu).forEach(i=>i.invalidate()),!n||!xt(n))return;const r=(i,o)=>o?i.slice().reverse():i;if(n.some(Ft)){let i;const o=()=>{z(this,nn).range(r(i.map(s=>s()),t.reverse))};i=n.map(s=>{if(Ft(s)){const a=z(this,oe,bm).paramMediator.createExpression(s.expr);return a.addListener(o),z(this,vu).add(a),()=>a(null)}else return()=>s}),o()}else z(this,nn).range(r(n,t.reverse))},vh=function(t=!1){return Q(this,oe,xm).call(this)??(this.type==qw?this.getGenome().getExtent():t?this.getDataDomain():[])},xm=function(){const t=this.members.map(n=>n.channelDef).filter(n=>{var r;return(r=n.scale)==null?void 0:r.domain}).map(n=>Hw(n.type,this.fromComplexInterval(n.scale.domain)));if(t.length>0)return t.reduce((n,r)=>n.extendAll(r))},Po=function(){const t=this.scale.type;return yt(t)},Em=function(){const t=this.scale.props,n=t.zoom;if(_9(n)&&xt(n.extent))return this.fromComplexInterval(n.extent);if(n)return t.type=="locus"?this.getGenome().getExtent():z(this,nn).domain()},gS=function(t){const n=this.channel,r={};return Q(this,oe,wm).call(this)&&(r.zero=!1),dl(n)?r.nice=!Q(this,oe,wm).call(this):ri(n)?r.scheme=t==$w?"tableau10":t==jw?"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};function x9(e,t){if(t==v9||t==qw){if(Ky(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][[$w,jw,Vw].indexOf(t)]:t==Vw?"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 E9(e,t){dl(t)&&e.type!=="ordinal"&&(e.range=[0,1]),t=="opacity"&&yt(e.type)&&(e.clamp=!0)}function _9(e){return Et(e)}function j0(e){const t=new Set;function n(r){for(const i of Object.values(r.resolutions.scale))t.add(i)}for(const r of zt(e)){r.visit(n);for(const i of r.getDataAncestors()){if(!i.options.contributesToScaleDomain)break;n(i)}}t.forEach(r=>r.reconfigure())}function $0(...e){for(const t of e)if(t!==void 0)return t}class S9{constructor(t){this.channel=t,this.members=[]}get scaleResolution(){var t;return(t=za(this.members))==null?void 0:t.view.getScaleResolution(this.channel)}addMember(t){const{view:n}=t,r=n.getScaleResolution(this.channel);if(!r)throw new Error("Cannot find a scale resolution!");if(this.scaleResolution&&r!==this.scaleResolution)throw new Error(`Shared axes must have a shared scale! Channel: ${this.channel}, existing views: [${this.members.map(i=>i.view.getPathString()).join(", ")}], new view: ${n.getPathString()}.`);this.members.push(t)}getAxisProps(){return of(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:lf(t.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const t=o=>{var a;const s=ED(o.view,o.channel);if(!cn(s))return{member:o,explicitTitle:$0("axis"in s?(a=s.axis)==null?void 0:a.title:void 0,s.title),implicitTitle:$0(ni(s)?s.field:void 0,hl(s)?s.expr:void 0)}},n=this.members.map(t),r=n.filter(o=>{var s;if(tw(o.member.channel)&&!o.explicitTitle){const a=to(o.member.channel);return((s=n.find(u=>u.member.view==o.member.view&&u.member.channel==a))==null?void 0:s.explicitTitle)===void 0}return!0}),i=new Set(r.map(o=>$0(o.explicitTitle,o.implicitTitle)).filter(De));return i.size?[...i].join(", "):null}}function Ww(e,t,{spacing:n,devicePixelRatio:r,offset:i,reverse:o}={}){n=n||0,i=i||0;let s=0,a=0;for(const p of e)s+=uf(p.px)+(q0(p)?0:n),a+=uf(p.grow);s-=n;const u=Math.max(0,t-s),l=r!==void 0?p=>Math.round(p*r)/r:p=>p,c=[],f=[],h=p=>{const m=c.length;if(!m)return;const y=(p?n:0)*(o?-1:1);d-=y;for(let w=0;w<m;w++)f.push({location:d+(w+1)/(m+1)*y,size:0});d+=y,c.length=0};let d=o?Math.max(t,s):0+i;if(e.length==1&&q0(e[0]))return[{location:d,size:0}];for(let p=0;p<e.length;p++){const m=e[p];if(q0(m))c.push(m);else{h(f.length>0);const y=uf(m.px)+(a?uf(m.grow)/a*u:0);o&&(d-=y),f.push({location:l(d),size:l(y)}),o?d-=n:d+=y+n}}return d+=o?n:-n,h(!1),f}function C9(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 cm=class cm{constructor(t,n){ee(this,Au);this.width=t,this.height=n}addPadding(t){return Q(this,Au,_m).call(this,t.width,t.height)}subtractPadding(t){return Q(this,Au,_m).call(this,-t.width,-t.height)}isGrowing(){return!!(this.width.grow||this.height.grow)}};Au=new WeakSet,_m=function(t,n){return new cm({px:(this.width.px??0)+t,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};let ii=cm;const El=Object.freeze({px:0,grow:0}),Zw=new ii(El,El);function q0(e){return!e.px&&!e.grow}function uf(e){return e||0}function T9(e){return e&&(Bt(e.px)||Bt(e.grow))}function Yw(e){if(Kw(e))throw new Error("parseSizeDef does not accept step-based sizes.");if(T9(e))return e;if(Bt(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 kt{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 kt(this.top+t,this.right+t,this.bottom+t,this.left+t)}add(t){return new kt(this.top+t.top,this.right+t.right,this.bottom+t.bottom,this.left+t.left)}subtract(t){return new kt(this.top-t.top,this.right-t.right,this.bottom-t.bottom,this.left-t.left)}union(t){return new kt(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 kt(0,this.right,0,this.left)}getVertical(){return new kt(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):W0}static createFromRecord(t){return new kt(t.top,t.right,t.bottom,t.left)}static zero(){return W0}static createUniformPadding(t){return new kt(t,t,t,t)}}const W0=kt.createUniformPadding(0);Object.freeze(W0);function _l(e,t){return!t||/^(data:|([A-Za-z]+:)?\/\/)/.test(e)||e.startsWith("/")?e:(t.endsWith("/")||(t+="/"),t+e)}function k9(e){if(!e)return e;if(/[?#]/.test(e))throw new Error(`Invalid base URL: ${e} - cannot contain query or hash.`);return e.endsWith("/")?e:e+"/"}const I9="VISIT_SKIP",Sl="VISIT_STOP",Qw=e=>e;class Xw{constructor(t,n,r,i,o,s={}){ee(this,sr);ee(this,Ks,{});ee(this,xu,{});ee(this,Eu,{});ee(this,_u);ee(this,Su);Nt(this,"opacityFunction",Qw);Nt(this,"facetCoords",new ur([],JSON.stringify));var a;if(!t)throw new Error("View spec must be defined!");if(this.context=n,this.layoutParent=r,this.dataParent=i,this.name=t.name||o,this.spec=t,this.resolutions={scale:{},axis:{}},yw(this),this.options={blockEncodingInheritance:!1,contributesToScaleDomain:!0,...s},this.needsAxes={x:!1,y:!1},this.paramMediator=new mD(()=>{var u;return(u=this.dataParent)==null?void 0:u.paramMediator}),t.params)for(const u of t.params)this.paramMediator.registerParam(u);if(!((a=this.layoutParent)!=null&&a.options.layeredChildren)){const u=l=>this.paramMediator.findMediatorForParam(l)?void 0:this.paramMediator.allocateSetter(l,0);le(this,Su,u("height")),le(this,_u,u("width"))}}get coords(){return this.facetCoords.values().next().value}getPadding(){return this._cache("size/padding",()=>kt.createFromConfig(this.spec.padding))}getOverhang(){return kt.zero()}isScrollable(){return this.spec.viewportWidth!=null||this.spec.viewportHeight!=null}getSize(){return this._cache("size/size",()=>this.isConfiguredVisible()?new ii(Q(this,sr,Ou).call(this,"width"),Q(this,sr,Ou).call(this,"height")):Zw)}getViewportSize(){if(!this.isScrollable())return this.getSize();if(!this.isConfiguredVisible())return Zw;const t=this.getSize();return new ii(Q(this,sr,Ou).call(this,"viewportWidth")??t.width,Q(this,sr,Ou).call(this,"viewportHeight")??t.height)}isConfiguredVisible(){return this.context.isViewConfiguredVisible(this)}isVisibleInSpec(){return this.spec.visible??!0}isVisible(){return this.getLayoutAncestors().every(t=>t.isConfiguredVisible())}getEffectiveOpacity(){var t;return this.opacityFunction(((t=this.layoutParent)==null?void 0:t.getEffectiveOpacity())??1)}getPathString(){return this.getLayoutAncestors().map(t=>t.name).reverse().join("/")}getLayoutAncestors(){return Q(this,sr,Sm).call(this,"layoutParent")}getDataAncestors(){return Q(this,sr,Sm).call(this,"dataParent")}handleBroadcast(t){for(const n of z(this,Ks)[t.type]||[])n(t)}_addBroadcastHandler(t,n){let r=z(this,Ks)[t];r||(r=[],z(this,Ks)[t]=r),r.push(n)}handleInteractionEvent(t,n,r){const i=r?z(this,xu):z(this,Eu);for(const o of i[n.type]||[])o(t,n)}addInteractionEventListener(t,n,r){const i=r?z(this,xu):z(this,Eu);let o=i[t];o||(o=[],i[t]=o),o.push(n)}visit(t){try{const n=t(this);if(t.postOrder&&t.postOrder(this),n!==Sl)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===Qw)&&(this.opacityFunction=D9(this))}onBeforeRender(){}render(t,n,r={}){var i,o;r.firstFacet&&this.facetCoords.clear(),this.facetCoords.set(r.facetId,r.clipRect?n.intersect(r.clipRect):n),(i=z(this,_u))==null||i.call(this,n.width),(o=z(this,Su))==null||o.call(this,n.height)}getEncoding(){const t=this.dataParent&&!this.options.blockEncodingInheritance?this.dataParent.getEncoding():{},n=this.spec.encoding||{},r={...t,...n};for(const[i,o]of Object.entries(r))o===null&&delete r[i];return r}getFacetAccessor(t){if(this.layoutParent)return this.layoutParent.getFacetAccessor(this)}getFacetFields(t){var r;const n=this.getEncoding().sample;return ni(n)?[n.field]:(r=this.layoutParent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}getScaleResolution(t){const n=to(t);return this.getDataAncestors().map(r=>r.resolutions.scale[n]).find(r=>r)}getAxisResolution(t){const n=to(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 Al(()=>{var t;return(t=this.dataParent)==null?void 0:t.getBaseUrl()},k9(this.spec.baseUrl))}isPickingSupported(){return!0}getTitleText(){const t=this.spec.title;if(t)return De(t)?t:Ft(t.text)?this.paramMediator.evaluateAndGet(t.text.expr):t.text}_cache(t,n){return of(this,t,n)}_invalidateCacheByPrefix(t,n="self"){switch(n){case"self":sf(this,t);break;case"ancestors":for(const r of this.getLayoutAncestors())sf(r,t);break;case"progeny":this.visit(r=>sf(r,t));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(t){}}Ks=new WeakMap,xu=new WeakMap,Eu=new WeakMap,_u=new WeakMap,Su=new WeakMap,sr=new WeakSet,Ou=function(t){var i;let n=this.spec[t];const r=t=="viewportWidth"||t=="viewportHeight";if(Kw(n)){if(r)throw new ro(`Cannot use step-based size with "${t}"!`,this);const o=n.step,s=(i=this.getScaleResolution(t=="width"?"x":"y"))==null?void 0:i.scale;if(s){let a=0;if(Kr(s.type))a=s.domain().length;else if(["locus","index"].includes(s.type)){const l=s.domain();a=za(l)-l[0]}else throw new ro(`Cannot use step-based size with "${s.type}" scale!`,this);const u=s;return a=d0(a,u.paddingInner(),u.paddingOuter()),{px:a*o,grow:0}}else throw new ro("Cannot use 'step' size with missing scale!",this)}else return(n&&Yw(n))??(r?void 0:{px:0,grow:1})},Sm=function(t){const n=[];let r=this;do n.push(r),r=r[t];while(r);return n};function B9(e){return"unitsPerPixel"in e}function D9(e){const t="opacity"in e.spec?e.spec.opacity:void 0;if(t!==void 0){if(Bt(t))return n=>n*t;if(B9(t)){const n=o=>{var a;const s=(a=e.getScaleResolution(o))==null?void 0:a.scale;if(["linear","index","locus"].includes(s==null?void 0:s.type))return s},r=t.channel?n(t.channel):n("x")??n("y");if(!r)throw new ro("Cannot find a resolved quantitative scale for dynamic opacity!",e);const i=o0().domain(t.unitsPerPixel).range(t.values).clamp(!0);return o=>{const a=ju(r.domain())/1e3;return i(a)*o}}else if(Ft(t)){const n=e.paramMediator.createExpression(t.expr);return n.addListener(()=>e.context.animator.requestRender()),r=>n(null)*r}}return n=>n}const Kw=e=>!!(e!=null&&e.step),R9={point:xR,rect:mR,rule:CR,link:FR,text:zR};class Kt extends Xw{constructor(n,r,i,o,s,a){super(n,r,i,o,s,a);ee(this,mh);ee(this,Cu);this.spec=n;const u=R9[this.getMarkType()];if(u)this.mark=new u(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.resolve(),le(this,Cu,this.paramMediator.allocateSetter("zoomLevel",1)),["x","y"].forEach(l=>{var c;return(c=this.getScaleResolution(l))==null?void 0:c.addEventListener("domain",()=>z(this,Cu).call(this,Math.sqrt(this.getZoomLevel())))}),this.needsAxes={x:!0,y:!0},Q(this,mh,mS).call(this)}render(n,r,i={}){super.render(n,r,i),this.isConfiguredVisible()&&(n.pushView(this,r),n.renderMark(this.mark,i),n.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(n){n||(this.resolve("scale"),this.resolve("axis"));const r=this.mark.encoding;for(const[i,o]of Object.entries(r)){if(!Xt(o))continue;const s=to(o.resolutionChannel??i);if(!pl(s)||n=="axis"&&!dl(s))continue;let a=this;for(;(a.getConfiguredOrDefaultResolution(s,n)=="forced"||a.dataParent&&["shared","excluded","forced"].includes(a.dataParent.getConfiguredOrDefaultResolution(s,n)))&&a.getConfiguredOrDefaultResolution(s,n)!="excluded";)a=a.dataParent;if(n=="axis"&&dl(i)&&Ky(s))a.resolutions[n][s]||(a.resolutions[n][s]=new S9(s)),a.resolutions[n][s].addMember({view:this,channel:i,channelDef:o});else if(n=="scale"&&pl(i)){if(!a.resolutions[n][s]){const l=new A9(s);a.resolutions[n][s]=l,l.addEventListener("range",c=>{var f;(f=this.context.glHelper)==null||f.createRangeTexture(c.scaleResolution,!0)})}const u=this.getLayoutAncestors().some(l=>!l.options.contributesToScaleDomain)||Xt(o)&&o.contributesToScaleDomain===!1?void 0:this.extractDataDomain.bind(this);a.resolutions[n][s].addMember({view:this,channel:i,channelDef:o,dataDomainSource:u})}}}getDataAccessor(n){var r;return(r=this.mark.encoders[n])==null?void 0:r.dataAccessor}getFacetAccessor(n){const r=this.getDataAccessor("sample");return r||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}extractDataDomain(n,r){var o;let i=Hw(r);return(((o=this.mark.encoders[n])==null?void 0:o.accessors)??[]).filter(s=>s.scaleChannel).forEach(s=>{if(s.constant)i.extend(s({}));else{const a=this.getCollector();a!=null&&a.completed&&a.visitData(u=>i.extend(s(u)))}}),i}getZoomLevel(){const n=r=>{var i;return((i=this.getScaleResolution(r))==null?void 0:i.getZoomLevel())??1};return ls.map(n).reduce((r,i)=>r*i,1)}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0),n.target=this,!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return n=="x"?"shared":"independent"}}Cu=new WeakMap,mh=new WeakSet,mS=function(){for(const[n,r]of this.paramMediator.paramConfigs){if(!("select"in r))continue;const i=r.select;if((De(i)?i:i.type)==="point"){let a=-1;const u=this.paramMediator.getSetter(n),l=()=>{var h;const f=this.context.getCurrentHover();return((h=f==null?void 0:f.mark)==null?void 0:h.unitView)===this?f.datum:null},c=!De(i)&&"on"in i?i.on:"click";this.addInteractionEventListener(["mouseover","pointerover"].includes(c)?"mousemove":"click",(f,h)=>{const d=l(),p=d?d[ti]:-1;if(p!=a){a=p;const m=$y(l());u(m)}})}}};function*Z0(e,t=[]){for(const[n,r]of e.entries())if(r instanceof Map)for(const i of Z0(r,[...t,n]))yield i;else yield[[...t,n],r]}const Jw=2147483647,F9=ev([Jw]);function ev(e){let t=0;for(let n=0,r=e.length;n<r;n++)t=Math.max(t,e[n]);return Math.floor(Math.log2(t)/4)+1}function M9(e){const t=ev(e);let n=Array.from({length:e.length},(o,s)=>s),r=new Array(e.length);const i=new Array(16);for(let o=0;o<t;o++){i.fill(0);const s=o*4,a=Math.pow(16,o),u=l=>{const c=e[n[l]];return o>=F9?c>Jw?Math.floor(c/a)%16:0:c>>s&15};for(let l=0;l<e.length;l++)i[u(l)]++;for(let l=1;l<16;l++)i[l]+=i[l-1];for(let l=e.length-1;l>=0;l--)r[--i[u(l)]]=n[l];[n,r]=[r,n]}return n}class tv extends nt{constructor(n){super();ee(this,rn);ee(this,kr,[]);ee(this,Tu,Re(ti));ee(this,Io,[]);ee(this,Bo);this.params=n??{type:"collect"},this.observers=[],this.facetBatches=new ur([],JSON.stringify),Q(this,rn,Cm).call(this)}get behavior(){return k0}reset(){super.reset(),Q(this,rn,Cm).call(this)}handle(n){z(this,kr).push(n)}beginBatch(n){cD(n)&&(le(this,kr,[]),this.facetBatches.set(zt(n.facetId),z(this,kr)))}complete(){var o,s;le(this,kr,[]);const n=(o=this.params)==null?void 0:o.sort,r=n?Om(n.field,n.order):void 0,i=a=>{r&&a.sort(r)};if((s=this.params.groupby)!=null&&s.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const a=this.facetBatches.get(void 0),u=this.params.groupby.map(c=>Re(c)),l=u.length>1?Qu(a,...u):P9(a,u[0]);this.facetBatches.clear();for(const[c,f]of Z0(l))this.facetBatches.set(c,f)}for(const a of this.facetBatches.values())i(a);Q(this,rn,bS).call(this),Q(this,rn,Tm).call(this),super.complete();for(const a of this.observers)a(this)}repropagate(){for(const n of this.children)n.reset();Q(this,rn,Tm).call(this);for(const n of this.children)n.complete()}getData(){switch(Q(this,rn,km).call(this),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const n=this.facetBatches;return{[Symbol.iterator]:function*(){for(const i of n.values())yield*i}}}}}visitData(n){Q(this,rn,km).call(this);for(const r of this.facetBatches.values())for(let i=0;i<r.length;i++)n(r[i])}getItemCount(){let n=0;for(const r of this.facetBatches.values())n+=r.length;return n}findDatumByUniqueId(n){if(!z(this,Io).length)return;const r=Go(u=>u.start).right,i=z(this,Tu),o=Go(u=>i(s(u))).left,s=u=>{const l=r(z(this,Bo),u),c=z(this,Bo)[l-1];return!c||u>=c.stop?void 0:this.facetBatches.get(c.facetId)[u-c.start]},a=o(z(this,Io),n);if(a>=0){const u=s(z(this,Io)[a]);if(u&&i(u)===n)return u}}}kr=new WeakMap,Tu=new WeakMap,Io=new WeakMap,Bo=new WeakMap,rn=new WeakSet,Cm=function(){le(this,kr,[]),this.facetBatches.clear(),this.facetBatches.set(void 0,z(this,kr))},Tm=function(){if(this.children.length)for(const[n,r]of this.facetBatches.entries()){if(n){const i={type:"facet",facetId:n};for(const o of this.children)o.beginBatch(i)}for(let i=0,o=r.length;i<o;i++)this._propagate(r[i])}},km=function(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")},bS=function(){var s;le(this,Bo,[]);const n=(s=this.facetBatches.values().next().value)==null?void 0:s[0];if(n==null||!(ti in n))return;let r=0;const i=[],o=z(this,Tu);for(const[a,u]of this.facetBatches){z(this,Bo).push({start:r,stop:r+u.length,facetId:a}),r+=u.length;for(let l=0,c=u.length;l<c;l++)i.push(o(u[l]))}le(this,Io,M9(i))};function P9(e,t){const n=new Map;for(let r=0,i=e.length;r<i;r++){const o=e[r],s=t(o);let a=n.get(s);a||(a=[],n.set(s,a)),a.push(o)}return n}class cf{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(t,n){let r=this.length++;for(;r>0;){const i=r-1>>1,o=this.values[i];if(n>=o)break;this.ids[r]=this.ids[i],this.values[r]=o,r=i}this.ids[r]=t,this.values[r]=n}pop(){if(this.length===0)return;const t=this.ids[0];if(this.length--,this.length>0){const n=this.ids[0]=this.ids[this.length],r=this.values[0]=this.values[this.length],i=this.length>>1;let o=0;for(;o<i;){let s=(o<<1)+1;const a=s+1;let u=this.ids[s],l=this.values[s];const c=this.values[a];if(a<this.length&&c<l&&(s=a,u=this.ids[a],l=c),l>=r)break;this.ids[o]=u,this.values[o]=l,o=s}this.ids[o]=n,this.values[o]=r}return t}peek(){if(this.length!==0)return this.ids[0]}peekValue(){if(this.length!==0)return this.values[0]}shrink(){this.ids.length=this.values.length=this.length}}class L9 extends nt{get behavior(){return Wn}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 cf}reset(){super.reset(),this.initialize()}initialize(){const t=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,o=this.endAccessor,s=this.chromAccessor,a=this.weightAccessor;let u,l,c,f=0,h=NaN;const d=this.ends;d.clear();const p=w=>{this._propagate(w),u=null},m=(w,x,S)=>{if(w==x)return;let _=!1;u&&(u[t]===S?(u[n]=x,_=!0):u[t]!=0&&p(u)),_||(u=this.createSegment(w,x,S,c))},y=()=>{let w=0;for(;(w=d.peekValue())!==void 0;)m(h,w,f),h=w,f-=d.pop();h=NaN,u&&p(u)};this.handle=w=>{const x=i(w);let S=0;for(;(S=d.peekValue())!==void 0&&S<x;)m(h,S,f),h=S,f-=d.pop();if(r){let T=s(w);T!==l&&(y(),c=T,l=c)}isNaN(h)||m(h,x,f),h=x;const _=a(w);f+=_,d.push(_,o(w))},this.complete=()=>{y(),super.complete()},this.beginBatch=w=>{y(),l=null,super.beginBatch(w)}}}function N9(e,t,n=0,r=e.length){const i=new cf,o=r-n;let s;for(s=0;s<t&&s<o;s++)i.push(s,e[n+s]);for(;s<o;s++){const l=e[n+s];l>=i.peekValue()&&(i.push(s,l),i.pop())}const a=[];let u;for(;(u=i.pop())!==void 0;)a.push(n+u);return a.reverse()}class O9{constructor(t,n=-1/0,r=1/0){this.maxSize=t,this.lowerLimit=n,this.upperLimit=r;const i=this.maxSize*2+1;this.lowerLimits=new Float64Array(i),this.upperLimits=new Float64Array(i),this.lowerChildren=new Int32Array(i),this.upperChildren=new Int32Array(i),this.reset()}reset(){this.lowerLimits.fill(0),this.upperLimits.fill(0),this.lowerChildren.fill(0),this.upperChildren.fill(0),this.n=1,this.lowerLimits[0]=this.lowerLimit,this.upperLimits[0]=this.upperLimit}_findSlot(t,n,r=0){if(t>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const o=this._findSlot(t,n,i);return o>=0?o:this._findSlot(t,n,this.upperChildren[r])}else return r}else return-1}reserve(t,n){if(n-t<=0)throw new Error("Cannot reserve an empty or negative-size slot!");if(this.n+1>this.lowerLimits.length)return!1;const r=this._findSlot(t,n);if(r<0)return!1;const i=this.n++,o=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=t,this.lowerLimits[o]=n,this.upperLimits[o]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=o,!0}}class z9 extends nt{get behavior(){return k0}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=Go(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 O9(200));this.schedule(),super.complete()}_filterAndPropagate(){super.reset();const t=this.resolution.scale,n=this.resolution.getAxisLength();if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=t.domain(),o=N9(this._scores,70,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of o){const a=this._data[s],u=t(this.posAccessor(a))*n,l=this.widthAccessor(a)/2+this.padding;this.reservationMaps.get(this.laneAccessor(a)).reserve(u-l,u+l)&&this._propagate(a)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(t){this._data.push(t)}}class U9 extends nt{constructor(t,n){super(n),this.params=t,this.predicate=void 0}initialize(){let t="";if(G9(this.params))t=this.params.expr;else if(H9(this.params))t=qy(this.params);else throw new Error("Invalid filter params: "+JSON.stringify(this.params));this.predicate=this.paramMediator.createExpression(t),this.predicate.addListener(()=>this.repropagate())}handle(t){this.predicate(t)&&this._propagate(t)}}function G9(e){return"expr"in e}function H9(e){return"param"in e}class V9 extends nt{get behavior(){return Wn}constructor(t){super();const n=t.index;if(t.fields){const r=zt(t.fields).map(o=>Re(o)),i=zt(t.as||t.fields);if(r.length!==i.length)throw new Error(`Lengths of "fields" (${r.length}), and "as" (${i.length}) do not match!`);this.handle=o=>{const s=r.map((u,l)=>u(o)??[]),a=s[0].length;for(let u=0;u<a;u++){const l=Object.assign({},o);for(let c=0;c<r.length;c++)l[i[c]]=u<s[c].length?s[c][u]:null;n&&(l[n]=u),this._propagate(l)}}}else this.handle=r=>{for(let i=0;i<r.length;i++){const o=Object.assign({},r[i]);n&&(o[n]=i),this._propagate(o)}}}}const j9=48;function*$9(e,t=","){const n=t.charCodeAt(0);let r=0;for(let i=0;i<e.length;i++){const o=e.charCodeAt(i);o==n?(yield r,r=0):r=r*10+o-j9}yield r}class q9 extends nt{get behavior(){return Wn}constructor(t){super();const n=Re(t.exons??"exons"),r=Re(t.start??"start"),[i,o]=t.as||["exonStart","exonEnd"];this.handle=s=>{let a=r(s),u=a,l=!0;const c=n(s);for(const f of $9(c)){if(l)u=a+f;else{a=u+f;const h=Object.assign({},s);h[i]=u,h[o]=a,this._propagate(h)}l=!l}}}}class W9 extends nt{get behavior(){return Wn}constructor(t){super();const n=zt(t.field).map(o=>Re(o)),r=zt(t.separator),i=zt(t.as||t.field);if(n.length!==r.length||n.length!==i.length)throw new Error(`Lengths of "separator" (${r.length}), "fields" (${n.length}), and "as" (${i.length}) do not match!`);this.handle=o=>{if(n.some(u=>!u(o)))return;const s=n.map((u,l)=>u(o).split(r[l]));Z9(s,o);const a=s[0].length;for(let u=0;u<a;u++){const l=Object.assign({},o);for(let c=0;c<n.length;c++)l[i[c]]=s[c][u];this._propagate(l)}}}}function Z9(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 Y9 extends nt{get behavior(){return ei}constructor(t,n){super(n),this.params=t,this.as=t.as,this.fn=void 0}initialize(){this.fn=this.paramMediator.createExpression(this.params.expr),this.fn.addListener(()=>this.repropagate())}handle(t){t[this.as]=this.fn(t),this._propagate(t)}}class nv extends nt{get behavior(){return ei}constructor(t,n){super();const r=t.channel??"x";if(!["x","y"].includes(r))throw new Error("Invalid channel: "+r);const i=n.getScaleResolution(r).getGenome();if(!i)throw new Error("LinearizeGenomicCoordinate transform requires a locus scale!");const o=Re(t.chrom),s=zt(t.pos).map(p=>Re(p)),a=zt(t.as);if(s.length!=a.length)throw new Error('The number of "pos" and "as" elements must be equal!');const u=zt(t.offset);let l;if(u.length==0)l=new Array(s.length).fill(0);else if(u.length==1)l=new Array(s.length).fill(u[0]);else if(u.length==s.length)l=u;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(t.offset)}!`);const c=new Function("datum","chromOffset","posAccessors",a.map((p,m)=>`datum[${JSON.stringify(p)}] = chromOffset + +posAccessors[${m}](datum) - ${l[m]};`).join(`
|
|
494
|
-
`));let f,h=0;const d=p=>{if(p!==f){if(h=i.cumulativeChromPositions.get(p),h===void 0)throw new Error("Unknown chromosome/contig: "+p);f=p}return h};this.handle=p=>{c(p,d(o(p)),s),this._propagate(p)}}}const rv={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 Q9 extends nt{get behavior(){return ei}constructor(t){super();const n=L0(rv),r=Re(t.field),i=t.as,o=t.fontSize;this.handle=s=>{const a=r(s);a!==void 0?s[i]=n.measureWidth(a,o):s[i]=0,this._propagate(s)}}}const X9=65536;class K9 extends nt{get behavior(){return ei}constructor(t){super(),this.params=t}reset(){super.reset(),this.initialize()}initialize(){const t=this.params,n=t.as||"lane",r=Bt(t.spacing)?t.spacing:1,i=Re(t.start),o=Re(t.end);if(!t.preference!=!t.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(t.preference){const s=new Float64Array(X9),a=Re(t.preference),u=t.preferredOrder;let l=1/0;this.handle=c=>{const f=i(c);f<l&&s.fill(-1/0),l=f;const h=u.indexOf(a(c));let d=-1;if(h>=0&&s[h]<f)d=h;else{const p=i(c);for(d=0;d<s.length&&!(s[d]<p);d++);if(d>=s.length)throw new Error("Out of lanes!")}s[d]=o(c)+r,c[n]=d,this._propagate(c)}}else{const s=new cf,a=new cf;let u=-1/0,l=0;this.handle=c=>{const f=i(c);for(;s.length&&(s.peekValue()<=f||f<u);){const d=s.pop();a.push(d,d)}u=f;let h=a.pop();h===void 0&&(h=l++),c[n]=h,this._propagate(c),s.push(h,o(c)+r)}}}}class J9 extends nt{get behavior(){return Wn}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(No);this.handle=i=>{const o={};for(let s=0;s<n.length;s++)o[r[s]]=n[s](i);this._propagate(o)}}}class eF extends nt{get behavior(){return ei}constructor(t){super();const n=new RegExp(t.regex),r=typeof t.as=="string"?[t.as]:t.as,i=Re(t.field);this.handle=o=>{const s=i(o);if(De(s)){const a=s.match(n);if(a){if(a.length-1!=r.length)throw new Error('The number of RegEx groups and the length of "as" do not match!');for(let u=0;u<r.length;u++)o[r[u]]=a[u+1]}else if(t.skipInvalidInput)for(let u=0;u<r.length;u++)o[r[u]]=void 0;else throw new Error(`"${s}" 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 s}, field content: "${s}".`);this._propagate(o)}}}class tF extends nt{get behavior(){return Wn}constructor(t){super();const n=zt(t.columnRegex).map(h=>new RegExp(h)),r=zt(t.asValue);if(n.length!=r.length)throw new Error('Lengths of "columnRegex" and "as" are not equal!');const i=t.skipRegex?new RegExp(t.skipRegex):void 0,o=t.asKey||"sample";let s,a,u;const l=h=>{var y;const d=Object.keys(h);for(const w of n)if(!d.some(x=>w.test(x)))throw new Error(`No columns matching the regex ${w.toString()} found in the data!`);const p=new Map;for(const[w,x]of n.entries())for(const S of d){const _=(y=x.exec(S))==null?void 0:y[1];if(_!==void 0){let T=p.get(_);T||(T=[],p.set(_,T)),T[w]=S}}s=[...p.entries()],a=d.filter(w=>!n.some(x=>x.test(w))&&!(i&&i.test(w)));const m=[...a.map(w=>JSON.stringify(w)+": datum["+JSON.stringify(w)+"]"),JSON.stringify(o)+": sampleId",...r.map((w,x)=>JSON.stringify(w)+`: datum[attrs[${x}]]`)];u=new Function("datum","sampleId","attrs",`return {
|
|
498
|
+
chrM 16299`};function d9(e){if(!(e in Nw))throw new Error(`Unknown assembly: ${e}`);return Nw[e].split(`
|
|
499
|
+
`).map(t=>{const n=t.split(" ");return{name:n[0],size:parseInt(n[1])}})}const p9=/^([A-Za-z]+:)?\/\//;function Al(e,t){if(t&&p9.test(t))return t;const n=typeof e=="function"?e():e;if(!n)return t;if(!t)return n;if(/[#?]/.test(n))throw new Error(`Cannot append to a url with query or hash. Append: ${t}, base: ${n}`);return Ow(n)+t}function Ow(e){const t=e.replace(/[^/]*$/,"");return t===""?void 0:t.endsWith("://")?e+"/":t}class g9{constructor(t){if(this.config={name:"custom",...t},"baseUrl"in t)throw new Error("The `baseUrl` property in genome config has been removed in GenomeSpy v0.52.0. Use `url` instead. See https://genomespy.app/docs/genomic-data/genomic-coordinates/.");if(!V0(t))throw new Error("Not a genome configuration: "+JSON.stringify(t));if(this.chromosomes=[],this.cumulativeChromPositions=new Map,this.chromosomesByName=new Map,this.startByIndex=[],this.totalSize=0,Uw(this.config))this.setChromSizes(this.config.contigs);else if(!j0(this.config)){const n=d9(this.config.name);if(n)this.setChromSizes(n);else throw new Error(`Unknown genome: ${this.config.name}. Please provide contigs or a URL. See https://genomespy.app/docs/genomic-data/genomic-coordinates/.`)}}get name(){return this.config.name}async load(t){if(j0(this.config))try{const n=Al(t,this.config.url),r=await fetch(n);if(!r.ok)throw new Error(`${r.status} ${r.statusText}`);this.setChromSizes(m9(await r.text()))}catch(n){throw new Error(`Could not load chrom sizes: ${this.config.url}. Reason: ${n.message}`)}}hasChrPrefix(){return this.chromosomes.some(t=>t.name.startsWith("chr"))}setChromSizes(t){let n=0;this.startByIndex=[0];for(let r=0;r<t.length;r++){this.startByIndex.push(n);const i=t[r].size,o={...t[r],continuousStart:n,continuousEnd:n+i,continuousInterval:[n,n+i],index:r,number:r+1,odd:!(r&1)};this.chromosomes.push(o);const s=o.name.replace(/^chr/i,"");for(const a of["chr"+s,"CHR"+s,"Chr"+s,o.number,""+o.number,s,o.name])this.cumulativeChromPositions.set(a,n),this.chromosomesByName.set(a,o);n+=o.size}this.totalSize=n}getExtent(){return[0,this.totalSize]}toContinuous(t,n){let r=this.cumulativeChromPositions.get(t);if(r===void 0)throw new Error("Unknown chromosome/contig: "+t);return r+ +n}toChromosome(t){if(t>this.totalSize)return;t=Math.floor(t);const n=Nr(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 h9(...this.toChromosomalInterval(t))}toChromosomalInterval(t){const n=this.toChromosomal(t[0]+.5),r=this.toChromosomal(t[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(t){var i;let[n,r]=t;return r||(r=n),[this.toContinuous(n.chrom,n.pos??0),this.toContinuous(r.chrom,r.pos??((i=this.chromosomesByName.get(r.chrom))==null?void 0:i.size))]}toDiscreteChromosomeIntervals(t){const n=t[0],r=t[1],i=[];if(n.chrom===r.chrom)i.push({chrom:n.chrom,startPos:n.pos,endPos:r.pos});else{const o=this.chromosomes.findIndex(a=>a.name===n.chrom),s=this.chromosomes.findIndex(a=>a.name===r.chrom);i.push({chrom:n.chrom,startPos:n.pos,endPos:this.chromosomes[o].size});for(let a=o+1;a<s;a++)i.push({chrom:this.chromosomes[a].name,startPos:0,endPos:this.chromosomes[a].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(a=>a===void 0)){const a=this.getChromosome(r);return a?[a.continuousStart,a.continuousEnd]:void 0}const i=n[3]||r,o=parseInt(n[2].replace(/,/g,"")),s=n[4]!==void 0?parseInt(n[4].replace(/,/g,"")):o;return[this.toContinuous(r,o-1),this.toContinuous(i,s)]}}}function m9(e){return w4(e).map(([t,n])=>({name:t,size:parseInt(n)}))}function zw(e){return Et(e)&&"chrom"in e}function b9(e){return e.every(zw)}function V0(e){return Et(e)&&("name"in e||j0(e)||Uw(e))}function j0(e){return V0(e)&&"url"in e}function Uw(e){return V0(e)&&"contigs"in e}class xl extends Array{constructor(){super(),this.type=void 0}extend(t){return this}extendAll(t){if(t instanceof xl&&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 $0 extends xl{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 Gw extends xl{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 Hw extends Gw{constructor(){super(),this.type="nominal"}}class y9 extends xl{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 Vw={quantitative:$0,index:$0,locus:$0,nominal:Hw,ordinal:Gw};function jw(e,t){if(e=="quantitative"&&w9(t)){const n=new y9(t);return n.type=e,n}else if(Vw[e]){const n=new Vw[e];return n.type=e,t&&n.extendAll(t),n}throw new Error("Unknown type: "+e)}function w9(e){return e&&e.length>0&&e.length!=2&&e.every(t=>typeof t=="number")}function v9(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}function A9(e,t,n){return e*Math.pow(t/e,n)}Te("index",G0,["continuous"]),Te("locus",HR,["continuous"]),Te("null",R0,[]);const $w="quantitative",qw="ordinal",Ww="nominal",Zw="locus",x9="index";class E9{constructor(t){J(this,oe);J(this,Tr);J(this,Xs,{domain:new Set,range:new Set});J(this,nn);J(this,Au,new Set);this.channel=t,this.members=[],this.type=null,this.name=void 0}addEventListener(t,n){z(this,Xs)[t].add(n)}removeEventListener(t,n){z(this,Xs)[t].delete(n)}addMember(t){var s;const{channel:n,channelDef:r}=t,i=r.type,o=(s=r==null?void 0:r.scale)==null?void 0:s.name;if(o){if(this.name!==void 0&&o!=this.name)throw new Error(`Shared scales have conflicting names: "${o}" vs. "${this.name}"!`);this.name=o}if(!this.type)this.type=i;else if(i!==this.type&&!rw(n))throw new Error(`Can not use shared scale for different data types: ${this.type} vs. ${i}. Use "resolve: independent" for channel ${this.channel}`);this.members.push(t)}getDataDomain(){return this.members.map(t=>{var n;return(n=t.dataDomainSource)==null?void 0:n.call(t,t.channel,this.type)}).filter(t=>!!t).reduce((t,n)=>t.extendAll(n))}reconfigure(){const t=z(this,nn);if(!t||t.type=="null")return;const n=Q(this,oe,gS).call(this),r=t.domain(),i=Q(this,oe,xm).call(this,!0);if(Fw({...i,range:void 0},t),t.props=i,Q(this,oe,Em).call(this),yt(t.type)&&le(this,Tr,Q(this,oe,Sm).call(this)),!n){Q(this,oe,Mr).call(this,"domain");return}const o=t.domain();hc(o,r)||(this.isZoomable()?t.domain(r):Q(this,oe,Po).call(this)?(t.domain(r),this.zoomTo(o,500)):Q(this,oe,Mr).call(this,"domain"))}get scale(){if(z(this,nn))return z(this,nn);const t=Q(this,oe,xm).call(this),n=n9({...t,range:void 0});n.props=t,"unknown"in n&&n.unknown(null),le(this,nn,n),Q(this,oe,Em).call(this),VR(n)&&n.genome(this.getGenome()),yt(n.type)&&le(this,Tr,Q(this,oe,Sm).call(this));const r=n.range;if(r){const i=()=>Q(this,oe,Mr).call(this,"range");n.range=function(o){if(arguments.length)r(o),i();else return r()},i()}return n}getDomain(){return this.scale.domain()}getComplexDomain(){var t;return((t=this.getGenome())==null?void 0:t.toChromosomalInterval(this.getDomain()))??this.getDomain()}isZoomed(){return Q(this,oe,Po).call(this)&&hc(Q(this,oe,Ah).call(this),this.getDomain())}isZoomable(){return Q(this,oe,Po).call(this)&&!!this.scale.props.zoom}zoom(t,n,r){if(!Q(this,oe,Po).call(this))return!1;const i=this.scale,o=i.domain();let s=[...o],a=i.invert(n);switch(i.props.reverse&&(r=-r),"align"in i&&(a+=i.align()),i.type){case"linear":case"index":case"locus":s=RS(s,r||0),s=Om(s,a,t);break;case"log":s=FS(s,r||0),s=zm(s,a,t);break;case"pow":case"sqrt":{const u=i;s=MS(s,r||0,u.exponent()),s=Ch(s,a,t,u.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return z(this,Tr)&&(s=LS(s,z(this,Tr)[0],z(this,Tr)[1])),[0,1].some(u=>s[u]!=o[u])?(i.domain(s),Q(this,oe,Mr).call(this,"domain"),!0):!1}async zoomTo(t,n=!1){if(fa(n)&&(n=n?700:0),!Q(this,oe,Po).call(this))throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(t),i=z(this,oe,vm).animator,o=this.scale,s=o.domain();if(n>0&&s.length==2){const a=s[1]-s[0],u=r[1]-r[0],l=s[0]+a/2,c=r[0]+u/2,f=s[0]==r[0],h=s[1]==r[1];await i.transition({duration:n,easingFunction:v9,onUpdate:d=>{const p=A9(a,u,d),m=a==u?d:(a-p)/(a-u),y=m*c+(1-m)*l,w=[f?s[0]:y-p/2,h?s[1]:y+p/2];o.domain(w),Q(this,oe,Mr).call(this,"domain")}}),o.domain(r),Q(this,oe,Mr).call(this,"domain")}else o.domain(r),i==null||i.requestRender(),Q(this,oe,Mr).call(this,"domain")}resetZoom(){if(!Q(this,oe,Po).call(this))throw new Error("Not a zoomable scale!");const t=this.getDomain(),n=Q(this,oe,Ah).call(this);return[0,1].some(r=>n[r]!=t[r])?(z(this,nn).domain(n),Q(this,oe,Mr).call(this,"domain"),!0):!1}getZoomLevel(){return this.isZoomable()?$u(z(this,Tr))/$u(this.scale.domain()):1}getAxisLength(){if(this.channel!=="x"&&this.channel!=="y")throw new Error("Axis length is only defined for x and y channels!");const t=this.members.map(n=>{var r;return(r=n.view.coords)==null?void 0:r[this.channel==="x"?"width":"height"]}).filter(n=>n>0);return t.length?t.reduce((n,r)=>Math.min(n,r),1e4):0}getGenome(){var n;if(this.type!=="locus")return;const t=(n=z(this,oe,vm).genomeStore)==null?void 0:n.getGenome();if(!t)throw new Error("No genome has been defined!");return t}invertToComplex(t){const n=this.scale;if("invert"in n){const r=n.invert(t);return this.toComplex(r)}else throw new Error("The scale does not support inverting!")}toComplex(t){const n=this.getGenome();return n?n.toChromosomal(t):t}fromComplex(t){return zw(t)?this.getGenome().toContinuous(t.chrom,t.pos):t}fromComplexInterval(t){return this.type==="locus"&&b9(t)?this.getGenome().toContinuousInterval(t):t}}Tr=new WeakMap,Xs=new WeakMap,nn=new WeakMap,Au=new WeakMap,oe=new WeakSet,wm=function(){return this.members[0].view},vm=function(){return z(this,oe,wm).context},Mr=function(t){for(const n of z(this,Xs)[t].values())n({type:t,scaleResolution:this})},Am=function(){return!!Q(this,oe,_m).call(this)},gS=function(){const t=z(this,nn);if(!t)return!1;const n=t.domain();return yt(t.type)?n.length>2||n.length==2&&(n[0]!==0||n[1]!==0):n.length>0},mS=function(){const t=this.members.map(n=>n.channelDef.scale).filter(n=>n!==void 0);return uf(t,"scale",["domain"])},xm=function(t=!1){const n=Q(this,oe,mS).call(this);if(n===null||n.type=="null")return{type:"null"};const r={...Q(this,oe,bS).call(this,this.type),...n};r.type||(r.type=_9(this.channel,this.type));const i=Q(this,oe,Ah).call(this,t);return i&&i.length>0?r.domain=i:Kr(r.type)&&(r.domain=new Hw),!r.domain&&r.domainMid!==void 0&&(r.domain=[r.domainMin??0,r.domainMax??1]),this.channel=="y"&&Kr(r.type)&&r.reverse==null&&(r.reverse=!0),r.range&&r.scheme&&delete r.scheme,!("zoom"in r)&&["index","locus"].includes(r.type)&&(r.zoom=!0),S9(r,this.channel),r},Em=function(){const t=z(this,nn).props,n=t.range;if(z(this,Au).forEach(i=>i.invalidate()),!n||!xt(n))return;const r=(i,o)=>o?i.slice().reverse():i;if(n.some(Mt)){let i;const o=()=>{z(this,nn).range(r(i.map(s=>s()),t.reverse))};i=n.map(s=>{if(Mt(s)){const a=z(this,oe,wm).paramMediator.createExpression(s.expr);return a.addListener(o),z(this,Au).add(a),()=>a(null)}else return()=>s}),o()}else z(this,nn).range(r(n,t.reverse))},Ah=function(t=!1){return Q(this,oe,_m).call(this)??(this.type==Zw?this.getGenome().getExtent():t?this.getDataDomain():[])},_m=function(){const t=this.members.map(n=>n.channelDef).filter(n=>{var r;return(r=n.scale)==null?void 0:r.domain}).map(n=>jw(n.type,this.fromComplexInterval(n.scale.domain)));if(t.length>0)return t.reduce((n,r)=>n.extendAll(r))},Po=function(){const t=this.scale.type;return yt(t)},Sm=function(){const t=this.scale.props,n=t.zoom;if(C9(n)&&xt(n.extent))return this.fromComplexInterval(n.extent);if(n)return t.type=="locus"?this.getGenome().getExtent():z(this,nn).domain()},bS=function(t){const n=this.channel,r={};return Q(this,oe,Am).call(this)&&(r.zero=!1),dl(n)?r.nice=!Q(this,oe,Am).call(this):ri(n)?r.scheme=t==Ww?"tableau10":t==qw?"blues":"viridis":rf(n)?r.range=n=="shape"?["circle","square","triangle-up","cross","diamond"]:[]:n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r};function _9(e,t){if(t==x9||t==Zw){if(ew(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][[Ww,qw,$w].indexOf(t)]:t==$w?"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 S9(e,t){dl(t)&&e.type!=="ordinal"&&(e.range=[0,1]),t=="opacity"&&yt(e.type)&&(e.clamp=!0)}function C9(e){return Et(e)}function q0(e){const t=new Set;function n(r){for(const i of Object.values(r.resolutions.scale))t.add(i)}for(const r of zt(e)){r.visit(n);for(const i of r.getDataAncestors()){if(!i.options.contributesToScaleDomain)break;n(i)}}t.forEach(r=>r.reconfigure())}function W0(...e){for(const t of e)if(t!==void 0)return t}class T9{constructor(t){this.channel=t,this.members=[]}get scaleResolution(){var t;return(t=za(this.members))==null?void 0:t.view.getScaleResolution(this.channel)}addMember(t){const{view:n}=t,r=n.getScaleResolution(this.channel);if(!r)throw new Error("Cannot find a scale resolution!");if(this.scaleResolution&&r!==this.scaleResolution)throw new Error(`Shared axes must have a shared scale! Channel: ${this.channel}, existing views: [${this.members.map(i=>i.view.getPathString()).join(", ")}], new view: ${n.getPathString()}.`);this.members.push(t)}getAxisProps(){return sf(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:uf(t.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const t=o=>{var a;const s=SD(o.view,o.channel);if(!cn(s))return{member:o,explicitTitle:W0("axis"in s?(a=s.axis)==null?void 0:a.title:void 0,s.title),implicitTitle:W0(ni(s)?s.field:void 0,hl(s)?s.expr:void 0)}},n=this.members.map(t),r=n.filter(o=>{var s;if(rw(o.member.channel)&&!o.explicitTitle){const a=to(o.member.channel);return((s=n.find(u=>u.member.view==o.member.view&&u.member.channel==a))==null?void 0:s.explicitTitle)===void 0}return!0}),i=new Set(r.map(o=>W0(o.explicitTitle,o.implicitTitle)).filter(De));return i.size?[...i].join(", "):null}}function Yw(e,t,{spacing:n,devicePixelRatio:r,offset:i,reverse:o}={}){n=n||0,i=i||0;let s=0,a=0;for(const p of e)s+=cf(p.px)+(Z0(p)?0:n),a+=cf(p.grow);s-=n;const u=Math.max(0,t-s),l=r!==void 0?p=>Math.round(p*r)/r:p=>p,c=[],f=[],h=p=>{const m=c.length;if(!m)return;const y=(p?n:0)*(o?-1:1);d-=y;for(let w=0;w<m;w++)f.push({location:d+(w+1)/(m+1)*y,size:0});d+=y,c.length=0};let d=o?Math.max(t,s):0+i;if(e.length==1&&Z0(e[0]))return[{location:d,size:0}];for(let p=0;p<e.length;p++){const m=e[p];if(Z0(m))c.push(m);else{h(f.length>0);const y=cf(m.px)+(a?cf(m.grow)/a*u:0);o&&(d-=y),f.push({location:l(d),size:l(y)}),o?d-=n:d+=y+n}}return d+=o?n:-n,h(!1),f}function k9(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 hm=class hm{constructor(t,n){J(this,xu);this.width=t,this.height=n}addPadding(t){return Q(this,xu,Cm).call(this,t.width,t.height)}subtractPadding(t){return Q(this,xu,Cm).call(this,-t.width,-t.height)}isGrowing(){return!!(this.width.grow||this.height.grow)}};xu=new WeakSet,Cm=function(t,n){return new hm({px:(this.width.px??0)+t,grow:this.width.grow},{px:(this.height.px??0)+n,grow:this.height.grow})};let ii=hm;const El=Object.freeze({px:0,grow:0}),Qw=new ii(El,El);function Z0(e){return!e.px&&!e.grow}function cf(e){return e||0}function I9(e){return e&&(Dt(e.px)||Dt(e.grow))}function Xw(e){if(ev(e))throw new Error("parseSizeDef does not accept step-based sizes.");if(I9(e))return e;if(Dt(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 kt{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 kt(this.top+t,this.right+t,this.bottom+t,this.left+t)}add(t){return new kt(this.top+t.top,this.right+t.right,this.bottom+t.bottom,this.left+t.left)}subtract(t){return new kt(this.top-t.top,this.right-t.right,this.bottom-t.bottom,this.left-t.left)}union(t){return new kt(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 kt(0,this.right,0,this.left)}getVertical(){return new kt(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):Y0}static createFromRecord(t){return new kt(t.top,t.right,t.bottom,t.left)}static zero(){return Y0}static createUniformPadding(t){return new kt(t,t,t,t)}}const Y0=kt.createUniformPadding(0);Object.freeze(Y0);function _l(e,t){return!t||/^(data:|([A-Za-z]+:)?\/\/)/.test(e)||e.startsWith("/")?e:(t.endsWith("/")||(t+="/"),t+e)}function B9(e){if(!e)return e;if(/[?#]/.test(e))throw new Error(`Invalid base URL: ${e} - cannot contain query or hash.`);return e.endsWith("/")?e:e+"/"}const D9="VISIT_SKIP",Sl="VISIT_STOP",Kw=e=>e;class Jw{constructor(t,n,r,i,o,s={}){J(this,sr);J(this,Ks,{});J(this,Eu,{});J(this,_u,{});J(this,Su);J(this,Cu);Bt(this,"opacityFunction",Kw);Bt(this,"facetCoords",new ur([],JSON.stringify));var a;if(!t)throw new Error("View spec must be defined!");if(this.context=n,this.layoutParent=r,this.dataParent=i,this.name=t.name||o,this.spec=t,this.resolutions={scale:{},axis:{}},vw(this),this.options={blockEncodingInheritance:!1,contributesToScaleDomain:!0,...s},this.needsAxes={x:!1,y:!1},this.paramMediator=new yD(()=>{var u;return(u=this.dataParent)==null?void 0:u.paramMediator}),t.params)for(const u of t.params)this.paramMediator.registerParam(u);if(!((a=this.layoutParent)!=null&&a.options.layeredChildren)){const u=l=>this.paramMediator.findMediatorForParam(l)?void 0:this.paramMediator.allocateSetter(l,0);le(this,Cu,u("height")),le(this,Su,u("width"))}}get coords(){return this.facetCoords.values().next().value}getPadding(){return this._cache("size/padding",()=>kt.createFromConfig(this.spec.padding))}getOverhang(){return kt.zero()}isScrollable(){return this.spec.viewportWidth!=null||this.spec.viewportHeight!=null}getSize(){return this._cache("size/size",()=>this.isConfiguredVisible()?new ii(Q(this,sr,zu).call(this,"width"),Q(this,sr,zu).call(this,"height")):Qw)}getViewportSize(){if(!this.isScrollable())return this.getSize();if(!this.isConfiguredVisible())return Qw;const t=this.getSize();return new ii(Q(this,sr,zu).call(this,"viewportWidth")??t.width,Q(this,sr,zu).call(this,"viewportHeight")??t.height)}isConfiguredVisible(){return this.context.isViewConfiguredVisible(this)}isVisibleInSpec(){return this.spec.visible??!0}isVisible(){return this.getLayoutAncestors().every(t=>t.isConfiguredVisible())}getEffectiveOpacity(){var t;return this.opacityFunction(((t=this.layoutParent)==null?void 0:t.getEffectiveOpacity())??1)}getPathString(){return this.getLayoutAncestors().map(t=>t.name).reverse().join("/")}getLayoutAncestors(){return Q(this,sr,Tm).call(this,"layoutParent")}getDataAncestors(){return Q(this,sr,Tm).call(this,"dataParent")}handleBroadcast(t){for(const n of z(this,Ks)[t.type]||[])n(t)}_addBroadcastHandler(t,n){let r=z(this,Ks)[t];r||(r=[],z(this,Ks)[t]=r),r.push(n)}handleInteractionEvent(t,n,r){const i=r?z(this,Eu):z(this,_u);for(const o of i[n.type]||[])o(t,n)}addInteractionEventListener(t,n,r){const i=r?z(this,Eu):z(this,_u);let o=i[t];o||(o=[],i[t]=o),o.push(n)}visit(t){try{const n=t(this);if(t.postOrder&&t.postOrder(this),n!==Sl)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===Kw)&&(this.opacityFunction=F9(this))}onBeforeRender(){}render(t,n,r={}){var i,o;r.firstFacet&&this.facetCoords.clear(),this.facetCoords.set(r.facetId,r.clipRect?n.intersect(r.clipRect):n),(i=z(this,Su))==null||i.call(this,n.width),(o=z(this,Cu))==null||o.call(this,n.height)}getEncoding(){const t=this.dataParent&&!this.options.blockEncodingInheritance?this.dataParent.getEncoding():{},n=this.spec.encoding||{},r={...t,...n};for(const[i,o]of Object.entries(r))o===null&&delete r[i];return r}getFacetAccessor(t){if(this.layoutParent)return this.layoutParent.getFacetAccessor(this)}getFacetFields(t){var r;const n=this.getEncoding().sample;return ni(n)?[n.field]:(r=this.layoutParent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}getScaleResolution(t){const n=to(t);return this.getDataAncestors().map(r=>r.resolutions.scale[n]).find(r=>r)}getAxisResolution(t){const n=to(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 Al(()=>{var t;return(t=this.dataParent)==null?void 0:t.getBaseUrl()},B9(this.spec.baseUrl))}isPickingSupported(){return!0}getTitleText(){const t=this.spec.title;if(t)return De(t)?t:Mt(t.text)?this.paramMediator.evaluateAndGet(t.text.expr):t.text}_cache(t,n){return sf(this,t,n)}_invalidateCacheByPrefix(t,n="self"){switch(n){case"self":af(this,t);break;case"ancestors":for(const r of this.getLayoutAncestors())af(r,t);break;case"progeny":this.visit(r=>af(r,t));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(t){}}Ks=new WeakMap,Eu=new WeakMap,_u=new WeakMap,Su=new WeakMap,Cu=new WeakMap,sr=new WeakSet,zu=function(t){var i;let n=this.spec[t];const r=t=="viewportWidth"||t=="viewportHeight";if(ev(n)){if(r)throw new ro(`Cannot use step-based size with "${t}"!`,this);const o=n.step,s=(i=this.getScaleResolution(t=="width"?"x":"y"))==null?void 0:i.scale;if(s){let a=0;if(Kr(s.type))a=s.domain().length;else if(["locus","index"].includes(s.type)){const l=s.domain();a=za(l)-l[0]}else throw new ro(`Cannot use step-based size with "${s.type}" scale!`,this);const u=s;return a=p0(a,u.paddingInner(),u.paddingOuter()),{px:a*o,grow:0}}else throw new ro("Cannot use 'step' size with missing scale!",this)}else return(n&&Xw(n))??(r?void 0:{px:0,grow:1})},Tm=function(t){const n=[];let r=this;do n.push(r),r=r[t];while(r);return n};function R9(e){return"unitsPerPixel"in e}function F9(e){const t="opacity"in e.spec?e.spec.opacity:void 0;if(t!==void 0){if(Dt(t))return n=>n*t;if(R9(t)){const n=o=>{var a;const s=(a=e.getScaleResolution(o))==null?void 0:a.scale;if(["linear","index","locus"].includes(s==null?void 0:s.type))return s},r=t.channel?n(t.channel):n("x")??n("y");if(!r)throw new ro("Cannot find a resolved quantitative scale for dynamic opacity!",e);const i=s0().domain(t.unitsPerPixel).range(t.values).clamp(!0);return o=>{const a=$u(r.domain())/1e3;return i(a)*o}}else if(Mt(t)){const n=e.paramMediator.createExpression(t.expr);return n.addListener(()=>e.context.animator.requestRender()),r=>n(null)*r}}return n=>n}const ev=e=>!!(e!=null&&e.step),M9={point:_R,rect:yR,rule:kR,link:PR,text:GR};class Kt extends Jw{constructor(n,r,i,o,s,a){super(n,r,i,o,s,a);J(this,bh);J(this,Tu);this.spec=n;const u=M9[this.getMarkType()];if(u)this.mark=new u(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.resolve(),le(this,Tu,this.paramMediator.allocateSetter("zoomLevel",1)),["x","y"].forEach(l=>{var c;return(c=this.getScaleResolution(l))==null?void 0:c.addEventListener("domain",()=>z(this,Tu).call(this,Math.sqrt(this.getZoomLevel())))}),this.needsAxes={x:!0,y:!0},Q(this,bh,yS).call(this)}render(n,r,i={}){super.render(n,r,i),this.isConfiguredVisible()&&(n.pushView(this,r),n.renderMark(this.mark,i),n.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(n){n||(this.resolve("scale"),this.resolve("axis"));const r=this.mark.encoding;for(const[i,o]of Object.entries(r)){if(!Xt(o))continue;const s=to(o.resolutionChannel??i);if(!pl(s)||n=="axis"&&!dl(s))continue;let a=this;for(;(a.getConfiguredOrDefaultResolution(s,n)=="forced"||a.dataParent&&["shared","excluded","forced"].includes(a.dataParent.getConfiguredOrDefaultResolution(s,n)))&&a.getConfiguredOrDefaultResolution(s,n)!="excluded";)a=a.dataParent;if(n=="axis"&&dl(i)&&ew(s))a.resolutions[n][s]||(a.resolutions[n][s]=new T9(s)),a.resolutions[n][s].addMember({view:this,channel:i,channelDef:o});else if(n=="scale"&&pl(i)){if(!a.resolutions[n][s]){const l=new E9(s);a.resolutions[n][s]=l,l.addEventListener("range",c=>{var f;(f=this.context.glHelper)==null||f.createRangeTexture(c.scaleResolution,!0)})}const u=this.getLayoutAncestors().some(l=>!l.options.contributesToScaleDomain)||Xt(o)&&o.contributesToScaleDomain===!1?void 0:this.extractDataDomain.bind(this);a.resolutions[n][s].addMember({view:this,channel:i,channelDef:o,dataDomainSource:u})}}}getDataAccessor(n){var r;return(r=this.mark.encoders[n])==null?void 0:r.dataAccessor}getFacetAccessor(n){const r=this.getDataAccessor("sample");return r||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}extractDataDomain(n,r){var o;let i=jw(r);return(((o=this.mark.encoders[n])==null?void 0:o.accessors)??[]).filter(s=>s.scaleChannel).forEach(s=>{if(s.constant)i.extend(s({}));else{const a=this.getCollector();a!=null&&a.completed&&a.visitData(u=>i.extend(s(u)))}}),i}getZoomLevel(){const n=r=>{var i;return((i=this.getScaleResolution(r))==null?void 0:i.getZoomLevel())??1};return ls.map(n).reduce((r,i)=>r*i,1)}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0),n.target=this,!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return n=="x"?"shared":"independent"}}Tu=new WeakMap,bh=new WeakSet,yS=function(){for(const[n,r]of this.paramMediator.paramConfigs){if(!("select"in r))continue;const i=r.select;if((De(i)?i:i.type)==="point"){let a=-1;const u=this.paramMediator.getSetter(n),l=()=>{var h;const f=this.context.getCurrentHover();return((h=f==null?void 0:f.mark)==null?void 0:h.unitView)===this?f.datum:null},c=!De(i)&&"on"in i?i.on:"click";this.addInteractionEventListener(["mouseover","pointerover"].includes(c)?"mousemove":"click",(f,h)=>{const d=l(),p=d?d[ti]:-1;if(p!=a){a=p;const m=Wy(l());u(m)}})}}};function*Q0(e,t=[]){for(const[n,r]of e.entries())if(r instanceof Map)for(const i of Q0(r,[...t,n]))yield i;else yield[[...t,n],r]}const tv=2147483647,P9=nv([tv]);function nv(e){let t=0;for(let n=0,r=e.length;n<r;n++)t=Math.max(t,e[n]);return Math.floor(Math.log2(t)/4)+1}function L9(e){const t=nv(e);let n=Array.from({length:e.length},(o,s)=>s),r=new Array(e.length);const i=new Array(16);for(let o=0;o<t;o++){i.fill(0);const s=o*4,a=Math.pow(16,o),u=l=>{const c=e[n[l]];return o>=P9?c>tv?Math.floor(c/a)%16:0:c>>s&15};for(let l=0;l<e.length;l++)i[u(l)]++;for(let l=1;l<16;l++)i[l]+=i[l-1];for(let l=e.length-1;l>=0;l--)r[--i[u(l)]]=n[l];[n,r]=[r,n]}return n}class rv extends B0{constructor(n){super();J(this,rn);J(this,kr,[]);J(this,ku,Re(ti));J(this,Io,[]);J(this,Bo);this.params=n??{type:"collect"},this.observers=[],this.facetBatches=new ur([],JSON.stringify),Q(this,rn,km).call(this)}get behavior(){return I0}get label(){return"collect"}reset(){super.reset(),Q(this,rn,km).call(this)}handle(n){z(this,kr).push(n)}beginBatch(n){hD(n)&&(le(this,kr,[]),this.facetBatches.set(zt(n.facetId),z(this,kr)))}complete(){var o,s;le(this,kr,[]);const n=(o=this.params)==null?void 0:o.sort,r=n?Um(n.field,n.order):void 0,i=a=>{r&&a.sort(r)};if((s=this.params.groupby)!=null&&s.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const a=this.facetBatches.get(void 0),u=this.params.groupby.map(c=>Re(c)),l=u.length>1?Xu(a,...u):N9(a,u[0]);this.facetBatches.clear();for(const[c,f]of Q0(l))this.facetBatches.set(c,f)}for(const a of this.facetBatches.values())i(a);Q(this,rn,wS).call(this),Q(this,rn,Im).call(this),super.complete();for(const a of this.observers)a(this)}repropagate(){for(const n of this.children)n.reset();Q(this,rn,Im).call(this);for(const n of this.children)n.complete()}getData(){switch(Q(this,rn,Bm).call(this),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const n=this.facetBatches;return{[Symbol.iterator]:function*(){for(const i of n.values())yield*i}}}}}visitData(n){Q(this,rn,Bm).call(this);for(const r of this.facetBatches.values())for(let i=0;i<r.length;i++)n(r[i])}getItemCount(){let n=0;for(const r of this.facetBatches.values())n+=r.length;return n}findDatumByUniqueId(n){if(!z(this,Io).length)return;const r=Go(u=>u.start).right,i=z(this,ku),o=Go(u=>i(s(u))).left,s=u=>{const l=r(z(this,Bo),u),c=z(this,Bo)[l-1];return!c||u>=c.stop?void 0:this.facetBatches.get(c.facetId)[u-c.start]},a=o(z(this,Io),n);if(a>=0){const u=s(z(this,Io)[a]);if(u&&i(u)===n)return u}}}kr=new WeakMap,ku=new WeakMap,Io=new WeakMap,Bo=new WeakMap,rn=new WeakSet,km=function(){le(this,kr,[]),this.facetBatches.clear(),this.facetBatches.set(void 0,z(this,kr))},Im=function(){if(this.children.length)for(const[n,r]of this.facetBatches.entries()){if(n){const i={type:"facet",facetId:n};for(const o of this.children)o.beginBatch(i)}for(let i=0,o=r.length;i<o;i++)this._propagate(r[i])}},Bm=function(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")},wS=function(){var s;le(this,Bo,[]);const n=(s=this.facetBatches.values().next().value)==null?void 0:s[0];if(n==null||!(ti in n))return;let r=0;const i=[],o=z(this,ku);for(const[a,u]of this.facetBatches){z(this,Bo).push({start:r,stop:r+u.length,facetId:a}),r+=u.length;for(let l=0,c=u.length;l<c;l++)i.push(o(u[l]))}le(this,Io,L9(i))};function N9(e,t){const n=new Map;for(let r=0,i=e.length;r<i;r++){const o=e[r],s=t(o);let a=n.get(s);a||(a=[],n.set(s,a)),a.push(o)}return n}class ff{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(t,n){let r=this.length++;for(;r>0;){const i=r-1>>1,o=this.values[i];if(n>=o)break;this.ids[r]=this.ids[i],this.values[r]=o,r=i}this.ids[r]=t,this.values[r]=n}pop(){if(this.length===0)return;const t=this.ids[0];if(this.length--,this.length>0){const n=this.ids[0]=this.ids[this.length],r=this.values[0]=this.values[this.length],i=this.length>>1;let o=0;for(;o<i;){let s=(o<<1)+1;const a=s+1;let u=this.ids[s],l=this.values[s];const c=this.values[a];if(a<this.length&&c<l&&(s=a,u=this.ids[a],l=c),l>=r)break;this.ids[o]=u,this.values[o]=l,o=s}this.ids[o]=n,this.values[o]=r}return t}peek(){if(this.length!==0)return this.ids[0]}peekValue(){if(this.length!==0)return this.values[0]}shrink(){this.ids.length=this.values.length=this.length}}class O9 extends lt{get behavior(){return Wn}constructor(t){super(t),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 ff}reset(){super.reset(),this.initialize()}initialize(){const t=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,o=this.endAccessor,s=this.chromAccessor,a=this.weightAccessor;let u,l,c,f=0,h=NaN;const d=this.ends;d.clear();const p=w=>{this._propagate(w),u=null},m=(w,x,S)=>{if(w==x)return;let _=!1;u&&(u[t]===S?(u[n]=x,_=!0):u[t]!=0&&p(u)),_||(u=this.createSegment(w,x,S,c))},y=()=>{let w=0;for(;(w=d.peekValue())!==void 0;)m(h,w,f),h=w,f-=d.pop();h=NaN,u&&p(u)};this.handle=w=>{const x=i(w);let S=0;for(;(S=d.peekValue())!==void 0&&S<x;)m(h,S,f),h=S,f-=d.pop();if(r){let T=s(w);T!==l&&(y(),c=T,l=c)}isNaN(h)||m(h,x,f),h=x;const _=a(w);f+=_,d.push(_,o(w))},this.complete=()=>{y(),super.complete()},this.beginBatch=w=>{y(),l=null,super.beginBatch(w)}}}function z9(e,t,n=0,r=e.length){const i=new ff,o=r-n;let s;for(s=0;s<t&&s<o;s++)i.push(s,e[n+s]);for(;s<o;s++){const l=e[n+s];l>=i.peekValue()&&(i.push(s,l),i.pop())}const a=[];let u;for(;(u=i.pop())!==void 0;)a.push(n+u);return a.reverse()}class U9{constructor(t,n=-1/0,r=1/0){this.maxSize=t,this.lowerLimit=n,this.upperLimit=r;const i=this.maxSize*2+1;this.lowerLimits=new Float64Array(i),this.upperLimits=new Float64Array(i),this.lowerChildren=new Int32Array(i),this.upperChildren=new Int32Array(i),this.reset()}reset(){this.lowerLimits.fill(0),this.upperLimits.fill(0),this.lowerChildren.fill(0),this.upperChildren.fill(0),this.n=1,this.lowerLimits[0]=this.lowerLimit,this.upperLimits[0]=this.upperLimit}_findSlot(t,n,r=0){if(t>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const o=this._findSlot(t,n,i);return o>=0?o:this._findSlot(t,n,this.upperChildren[r])}else return r}else return-1}reserve(t,n){if(n-t<=0)throw new Error("Cannot reserve an empty or negative-size slot!");if(this.n+1>this.lowerLimits.length)return!1;const r=this._findSlot(t,n);if(r<0)return!1;const i=this.n++,o=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=t,this.lowerLimits[o]=n,this.upperLimits[o]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=o,!0}}class G9 extends lt{get behavior(){return I0}constructor(t,n){if(super(t),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=Go(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 U9(200));this.schedule(),super.complete()}_filterAndPropagate(){super.reset();const t=this.resolution.scale,n=this.resolution.getAxisLength();if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=t.domain(),o=z9(this._scores,70,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of o){const a=this._data[s],u=t(this.posAccessor(a))*n,l=this.widthAccessor(a)/2+this.padding;this.reservationMaps.get(this.laneAccessor(a)).reserve(u-l,u+l)&&this._propagate(a)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(t){this._data.push(t)}}class H9 extends lt{constructor(t,n){super(t,n),this.params=t,this.predicate=void 0}initialize(){let t="";if(V9(this.params))t=this.params.expr;else if(j9(this.params))t=Zy(this.params);else throw new Error("Invalid filter params: "+JSON.stringify(this.params));this.predicate=this.paramMediator.createExpression(t),this.predicate.addListener(()=>this.repropagate())}handle(t){this.predicate(t)&&this._propagate(t)}}function V9(e){return"expr"in e}function j9(e){return"param"in e}class $9 extends lt{get behavior(){return Wn}constructor(t){super(t),this.params=t;const n=t.index;if(t.fields){const r=zt(t.fields).map(o=>Re(o)),i=zt(t.as||t.fields);if(r.length!==i.length)throw new Error(`Lengths of "fields" (${r.length}), and "as" (${i.length}) do not match!`);this.handle=o=>{const s=r.map((u,l)=>u(o)??[]),a=s[0].length;for(let u=0;u<a;u++){const l=Object.assign({},o);for(let c=0;c<r.length;c++)l[i[c]]=u<s[c].length?s[c][u]:null;n&&(l[n]=u),this._propagate(l)}}}else this.handle=r=>{for(let i=0;i<r.length;i++){const o=Object.assign({},r[i]);n&&(o[n]=i),this._propagate(o)}}}}const q9=48;function*W9(e,t=","){const n=t.charCodeAt(0);let r=0;for(let i=0;i<e.length;i++){const o=e.charCodeAt(i);o==n?(yield r,r=0):r=r*10+o-q9}yield r}class Z9 extends lt{get behavior(){return Wn}constructor(t){super(t);const n=Re(t.exons??"exons"),r=Re(t.start??"start"),[i,o]=t.as||["exonStart","exonEnd"];this.handle=s=>{let a=r(s),u=a,l=!0;const c=n(s);for(const f of W9(c)){if(l)u=a+f;else{a=u+f;const h=Object.assign({},s);h[i]=u,h[o]=a,this._propagate(h)}l=!l}}}}class Y9 extends lt{get behavior(){return Wn}constructor(t){super(t);const n=zt(t.field).map(o=>Re(o)),r=zt(t.separator),i=zt(t.as||t.field);if(n.length!==r.length||n.length!==i.length)throw new Error(`Lengths of "separator" (${r.length}), "fields" (${n.length}), and "as" (${i.length}) do not match!`);this.handle=o=>{if(n.some(u=>!u(o)))return;const s=n.map((u,l)=>u(o).split(r[l]));Q9(s,o);const a=s[0].length;for(let u=0;u<a;u++){const l=Object.assign({},o);for(let c=0;c<n.length;c++)l[i[c]]=s[c][u];this._propagate(l)}}}}function Q9(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 X9 extends lt{get behavior(){return ei}constructor(t,n){super(t,n),this.params=t,this.as=t.as,this.fn=void 0}initialize(){this.fn=this.paramMediator.createExpression(this.params.expr),this.fn.addListener(()=>this.repropagate())}handle(t){t[this.as]=this.fn(t),this._propagate(t)}}class iv extends lt{get behavior(){return ei}constructor(t,n){t={channel:"x",...t},super(t),this.params=t;const r=t.channel;if(!["x","y"].includes(r))throw new Error("Invalid channel: "+r);const i=n.getScaleResolution(r).getGenome();if(!i)throw new Error("LinearizeGenomicCoordinate transform requires a locus scale!");const o=Re(t.chrom),s=zt(t.pos).map(p=>Re(p)),a=zt(t.as);if(s.length!=a.length)throw new Error('The number of "pos" and "as" elements must be equal!');const u=zt(t.offset);let l;if(u.length==0)l=new Array(s.length).fill(0);else if(u.length==1)l=new Array(s.length).fill(u[0]);else if(u.length==s.length)l=u;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(t.offset)}!`);const c=new Function("datum","chromOffset","posAccessors",a.map((p,m)=>`datum[${JSON.stringify(p)}] = chromOffset + +posAccessors[${m}](datum) - ${l[m]};`).join(`
|
|
500
|
+
`));let f,h=0;const d=p=>{if(p!==f){if(h=i.cumulativeChromPositions.get(p),h===void 0)throw new Error("Unknown chromosome/contig: "+p);f=p}return h};this.handle=p=>{c(p,d(o(p)),s),this._propagate(p)}}}const ov={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 K9 extends lt{get behavior(){return ei}constructor(t){super(t),this.params=t;const n=O0(ov),r=Re(t.field),i=t.as,o=t.fontSize;this.handle=s=>{const a=r(s);a!==void 0?s[i]=n.measureWidth(a,o):s[i]=0,this._propagate(s)}}}const J9=65536;class eF extends lt{get behavior(){return ei}constructor(t){super(t),this.params=t}reset(){super.reset(),this.initialize()}initialize(){const t=this.params,n=t.as||"lane",r=Dt(t.spacing)?t.spacing:1,i=Re(t.start),o=Re(t.end);if(!t.preference!=!t.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(t.preference){const s=new Float64Array(J9),a=Re(t.preference),u=t.preferredOrder;let l=1/0;this.handle=c=>{const f=i(c);f<l&&s.fill(-1/0),l=f;const h=u.indexOf(a(c));let d=-1;if(h>=0&&s[h]<f)d=h;else{const p=i(c);for(d=0;d<s.length&&!(s[d]<p);d++);if(d>=s.length)throw new Error("Out of lanes!")}s[d]=o(c)+r,c[n]=d,this._propagate(c)}}else{const s=new ff,a=new ff;let u=-1/0,l=0;this.handle=c=>{const f=i(c);for(;s.length&&(s.peekValue()<=f||f<u);){const d=s.pop();a.push(d,d)}u=f;let h=a.pop();h===void 0&&(h=l++),c[n]=h,this._propagate(c),s.push(h,o(c)+r)}}}}class tF extends lt{get behavior(){return Wn}constructor(t){if(super(t),this.params=t,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(No);this.handle=i=>{const o={};for(let s=0;s<n.length;s++)o[r[s]]=n[s](i);this._propagate(o)}}}class nF extends lt{get behavior(){return ei}constructor(t){super(t),this.params=t;const n=new RegExp(t.regex),r=typeof t.as=="string"?[t.as]:t.as,i=Re(t.field);this.handle=o=>{const s=i(o);if(De(s)){const a=s.match(n);if(a){if(a.length-1!=r.length)throw new Error('The number of RegEx groups and the length of "as" do not match!');for(let u=0;u<r.length;u++)o[r[u]]=a[u+1]}else if(t.skipInvalidInput)for(let u=0;u<r.length;u++)o[r[u]]=void 0;else throw new Error(`"${s}" 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 s}, field content: "${s}".`);this._propagate(o)}}}class rF extends lt{get behavior(){return Wn}constructor(t){super(t),this.params=t;const n=zt(t.columnRegex).map(h=>new RegExp(h)),r=zt(t.asValue);if(n.length!=r.length)throw new Error('Lengths of "columnRegex" and "as" are not equal!');const i=t.skipRegex?new RegExp(t.skipRegex):void 0,o=t.asKey||"sample";let s,a,u;const l=h=>{var y;const d=Object.keys(h);for(const w of n)if(!d.some(x=>w.test(x)))throw new Error(`No columns matching the regex ${w.toString()} found in the data!`);const p=new Map;for(const[w,x]of n.entries())for(const S of d){const _=(y=x.exec(S))==null?void 0:y[1];if(_!==void 0){let T=p.get(_);T||(T=[],p.set(_,T)),T[w]=S}}s=[...p.entries()],a=d.filter(w=>!n.some(x=>x.test(w))&&!(i&&i.test(w)));const m=[...a.map(w=>JSON.stringify(w)+": datum["+JSON.stringify(w)+"]"),JSON.stringify(o)+": sampleId",...r.map((w,x)=>JSON.stringify(w)+`: datum[attrs[${x}]]`)];u=new Function("datum","sampleId","attrs",`return {
|
|
495
501
|
`+m.join(`,
|
|
496
502
|
`)+`
|
|
497
|
-
};`)},c=h=>{s||l(h);for(let d=0;d<s.length;d++){const[p,m]=s[d],y=u(h,p,m);this._propagate(y)}},f=h=>{l(h),c(h),this.handle=c};this.handle=f,this.beginBatch=h=>{Hy(h)&&(this.handle=f),super.beginBatch(h)}}}class nF extends nt{get behavior(){return ei}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?Om(t.sort.field,t.sort.order):void 0,i=t.field?Re(t.field):()=>1,o=t.groupby.map(c=>Re(c)),s=P4(this.buffer,c=>o.map(f=>f(c)).join()).map(c=>c[1]);let a=c=>!0;if(t.baseField){const c=Re(t.baseField);a=f=>c(f)!==null}let u,l;switch(t.offset){case"normalize":u=(c,f)=>c/f,l=(c,f)=>Ea(c,f);break;case"center":u=(c,f)=>c-f/2,l=(c,f)=>Ea(c,f);break;case"information":{const c=Math.log2(t.cardinality??4);u=(f,h)=>f/h,l=(f,h)=>{const p=Ea(f,x=>+!a(x)),m=Ea(f,h),y=m-p;let w=0;for(let x=0;x<f.length;x++){const S=f[x];if(a(S)){const _=h(S)/y;w-=_*Math.log2(_)}}return y/(c-(w+0))*(y/m)}}break;default:u=(c,f)=>c,l=(c,f)=>1}for(const c of s){r&&c.sort(r);const f=l(c,i);let h=0;for(const d of c){const p=h+i(d);a(d)&&(d[n[0]]=u(h,f),d[n[1]]=u(p,f),this._propagate(d),h=p)}}super.complete()}}class rF extends nt{get behavior(){return Wn}constructor(t){super();const n=Re(t.field??"sequence"),[r,i]=t.as??["pos","sequence"];this.handle=o=>{const s=Object.assign({},o,{[i]:"",[r]:0}),a=n(o);for(let u=0;u<a.length;u++){const l=Object.assign({},s);l[r]=u,l[i]=a.charAt(u),this._propagate(l)}}}}const iv={count:e=>e.length,valid:I4,sum:Ea,min:Uh,max:zh,mean:G4,median:H4,variance:B4};class iF extends nt{get behavior(){return Wn}constructor(t){if(super(),this.params=t,this.buffer=[],this.ops=[],this.as=[],t.fields){if(t.fields.length!=t.ops.length)throw new Error("Fields and ops must have the same length!");if(t.as&&t.as.length!=t.ops.length)throw new Error('If "as" is defined, "fields" and "as" must have the same length!');t.fields.forEach((n,r)=>{const i=Re(n),o=iv[t.ops[r]];this.ops.push(s=>o(s,i)),this.as.push(t.as?t.as[r]:`${t.ops[r]}_${t.fields[r]}`)})}else this.ops.push(n=>iv.count(n)),this.as.push("count")}reset(){super.reset(),this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const t=this.params,n=t==null?void 0:t.groupby;if((n==null?void 0:n.length)>0){const r=n.map(o=>Re(o)),i=Qu(this.buffer,...r);for(const[o,s]of Z0(i)){const a={};for(let u=0;u<n.length;u++)a[n[u]]=o[u];this.ops.forEach((u,l)=>{a[this.as[l]]=u(s)}),this._propagate(a)}}else{const r={};this.ops.forEach((i,o)=>{r[this.as[o]]=i(this.buffer)}),this._propagate(r)}super.complete()}}const oF={aggregate:iF,collect:tv,coverage:L9,filterScoredLabels:z9,filter:U9,flatten:V9,flattenCompressedExons:q9,flattenDelimited:W9,flattenSequence:rF,formula:Y9,identifier:I0,linearizeGenomicCoordinate:nv,measureText:Q9,pileup:K9,project:J9,regexExtract:eF,regexFold:tF,sample:Sw,stack:nF};function sF(e,t){const n=oF[e.type];if(n)return new n(e,t);throw new Error("Unknown transform: "+e.type)}function ov(e){if(!lv(e)&&!av(e))return;const t={...e.format};if(t.type??(t.type=av(e)&&lF(Qt(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 aF(e){var t;return((t=td(e))==null?void 0:t.responseType)??"text"}function lF(e){var t;if(Array.isArray(e)&&(e=e[0]),e)return(t=e.match(/\.(csv|tsv|json)/))==null?void 0:t[1]}const sv=e=>typeof e!="object"?uF:cF,uF=e=>({data:e}),cF=e=>e;function av(e){return"url"in e}class fs extends nt{constructor(n){super();Nt(this,"view");this.view=n}get identifier(){}setLoadingStatus(n,r){this.view.context.setDataLoadingStatus(this.view,n,r)}get paramMediator(){return this.view.paramMediator}handle(n){throw new Error("Source does not handle incoming data!")}async load(){}repropagate(){this.load()}}function lv(e){return"values"in e}class fF extends fs{constructor(t,n){var r;if(super(n),this.params=t,typeof t.values=="string"&&!((r=t==null?void 0:t.format)!=null&&r.type))throw new Error("Data format type (csv, dsv, ...) must be specified if a string is provided!")}loadSynchronously(){const t=this.params.values;let n=[],r=i=>i;if(Array.isArray(t))t.length>0&&(n=t,r=sv(t[0]));else if(typeof t=="object")n=[t];else if(typeof t=="string")n=Q1(t,ov(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 hF(e){return"url"in e}class dF extends fs{constructor(t,n){super(n),this.params=ef(n.paramMediator,t,()=>this.load()),this.baseUrl=n==null?void 0:n.getBaseUrl()}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const t=Qt(this.params.url),n=Array.isArray(t)?t:[t],r=ov(this.params),i=aF(r.type);if(n.length===0||!n[0]){this.reset(),this.complete();return}const o=async a=>{try{const u=Al(this.baseUrl,a),l=await fetch(u);if(!l.ok)throw new Error(`${l.status} ${l.statusText}`);return typeof l[i]=="function"?l[i]():l.text()}catch(u){throw new Error(`Could not load data: ${a}. Reason: ${u.message}`)}},s=(a,u)=>{try{const l=Q1(a,r);this.beginBatch({type:"file",url:u});for(const c of l)this._propagate(c)}catch(l){throw new Error(`Cannot parse: ${u}: ${l.message}`)}};this.setLoadingStatus("loading"),this.reset();try{await Promise.all(n.map(a=>o(a).then(s))),this.setLoadingStatus("complete")}catch(a){this.setLoadingStatus("error",a.message)}this.complete()}}function pF(e){return"sequence"in e}class gF extends fs{constructor(t,n){if(super(n),this.sequence=ef(n.paramMediator,t.sequence,()=>this.loadSynchronously()),!("start"in this.sequence))throw new Error("'start' is missing from sequence parameters!");if(!("stop"in this.sequence))throw new Error("'stop' is missing from sequence parameters!")}loadSynchronously(){const t=Qt(this.sequence.as)??"data",n=Qt(this.sequence.start)??0,r=Qt(this.sequence.step)??1,i=Qt(this.sequence.stop);this.reset(),this.beginBatch({type:"file"});for(let o=n;o<i;o+=r)this._propagate({[t]:o});this.complete()}async load(){this.loadSynchronously()}}class Y0 extends fs{constructor(n,r){super(n);Nt(this,"initializedPromise",Promise.resolve());if(r){if(r!=="x"&&r!=="y")throw new Error(`Invalid channel specified for the lazy data source: ${r}. Must be either "x" or "y"`)}else throw new Error('No channel has been specified for the lazy data source. Must be either "x" or "y".');if(this.channel=r,this.scaleResolution=this.view.getScaleResolution(r),!this.scaleResolution){const o=[`The lazy data source cannot find a resolved scale for channel "${r}".`];throw this.view instanceof Kt||o.push('Make sure the view has a "shared" scale resolution as it is not a unit view.'),new Error(o.join(" "))}const i=()=>{this.view.isVisible()&&this.onDomainChanged(this.scaleResolution.getDomain(),this.scaleResolution.getComplexDomain())};this.scaleResolution.addEventListener("domain",i),this.view.context.addBroadcastListener("layoutComputed",i)}get genome(){return this.scaleResolution.getGenome()}onDomainChanged(n,r){}requestRender(){this.view.context.animator.requestRender()}async load(){this.reset(),this.complete()}publishData(n){this.reset(),this.beginBatch({type:"file"});for(const r of n)for(const i of r)this._propagate(i);this.complete(),j0(this.view)}}class mF extends Y0{constructor(n,r){const i={axis:{},...n};super(r,i.channel);Nt(this,"ticks",[]);this.params=n}async load(){this.ticks=null,this.onDomainChanged()}onDomainChanged(){const n=this.scaleResolution.scale,r=this.scaleResolution.getAxisLength(),i=this.params.axis,o=l=>25+60*Gy(100,700,l),s=Bt(i.tickCount)?i.tickCount:Math.round(r/o(r)),a=Tw(n,s,i.tickMinStep),u=i.values?kw(n,i.values,a):HR(n,a);if(this.ticks==null||!fc(u,this.ticks)){this.ticks=u;const l=jR(n,s,i.format);this.publishData([u.map(c=>({value:c,label:l(c)}))])}}}class bF extends Y0{constructor(t,n){super(n,t.channel)}async load(){this.publishData([this.genome.chromosomes])}}function ff(e,t,n=!0){let r,i=s=>{};return function(...a){return new Promise((u,l)=>{const c=()=>{clearTimeout(r),i=f=>{},u(e(...a))};n&&i("debounced"),clearTimeout(r),i=l,r=window.setTimeout(c,typeof t=="function"?t():t)})}}class Cl extends Y0{constructor(){super(...arguments);ee(this,Js,new AbortController);ee(this,ea,[0,0]);ee(this,ta,[0,0]);ee(this,ku,0);Nt(this,"params")}setupDebouncing(n){const r=()=>Qt(n.debounce),i=n.debounceMode;if(i=="domain")this.onDomainChanged=ff(this.onDomainChanged.bind(this),r,!1);else if(i=="window")this.loadInterval=ff(this.loadInterval.bind(this),r,!1);else throw new Error("Invalid debounceMode: "+i)}onDomainChanged(n){var i;le(this,ta,n);const r=Qt((i=this.params)==null?void 0:i.windowSize)??-1;n[1]-n[0]>r||this.callIfWindowsChanged(n,r,async o=>{await this.initializedPromise,this.loadInterval(o)})}reloadLastDomain(){const n=z(this,ta);le(this,ta,[0,0]),le(this,ea,[0,0]),this.onDomainChanged(n)}async loadInterval(n){}async discretizeAndLoad(n,r){z(this,Js).abort(),this.setLoadingStatus("loading"),le(this,Js,new AbortController);const i=z(this,Js).signal,o=this.genome.continuousToDiscreteChromosomeIntervals(n);try{const s=await Promise.all(o.map(async a=>r(a,i)));if(!i.aborted)return this.setLoadingStatus("complete"),s}catch(s){if(!i.aborted)throw this.setLoadingStatus("error",s.message),s}}callIfWindowsChanged(n,r,i){const o=[Math.max(Math.floor(n[0]/r)*r,0),Math.min(Math.ceil(n[1]/r)*r,this.genome.totalSize)],s=z(this,ea);(r!==z(this,ku)||o[0]<s[0]||o[1]>s[1])&&(le(this,ea,o),le(this,ku,r),i(o))}}Js=new WeakMap,ea=new WeakMap,ta=new WeakMap,ku=new WeakMap;class yF extends Cl{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(()=>Lv),Promise.resolve().then(()=>uL),Promise.resolve().then(()=>Il)]).then(([{Buffer:o},{IndexedFasta:s},{RemoteFile:a}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=o));const u=l=>new a(_l(l,this.view.getBaseUrl()));this.fasta=new s({fasta:u(this.params.url),fai:u(this.params.indexUrl??this.params.url+".fai")}),i()})})}async loadInterval(t){const n=await this.discretizeAndLoad(t,async(r,i)=>this.fasta.getSequence(r.chrom,r.startPos,r.endPos,{signal:i}).then(o=>({chrom:r.chrom,start:r.startPos,sequence:o})));n&&this.publishData([n])}}class wF extends Cl{constructor(n,r){const i={pixelsPerBin:2,channel:"x",debounce:200,debounceMode:"window",...n},o=ef(r.paramMediator,i,s=>{s.includes("url")?Q(this,Iu,Im).call(this).then(()=>this.reloadLastDomain()):s.includes("pixelsPerBin")&&this.reloadLastDomain()});super(r,o.channel);ee(this,Iu);ee(this,na,[]);ee(this,ra);if(this.params=o,!this.params.url)throw new Error("No URL provided for BigWigSource");this.setupDebouncing(this.params),Q(this,Iu,Im).call(this)}async onDomainChanged(n){await this.initializedPromise;const r=this.scaleResolution.getAxisLength()||700,i=vF(n,r,z(this,na)),o=Math.max(i*r,5e3);this.callIfWindowsChanged(n,o,s=>this.loadInterval(s,i))}async loadInterval(n,r){const i=.5/r/Qt(this.params.pixelsPerBin),o=await this.discretizeAndLoad(n,(s,a)=>z(this,ra).getFeatures(s.chrom,s.startPos,s.endPos,{scale:i,signal:a}).then(u=>u.map(l=>({chrom:s.chrom,start:l.start,end:l.end,score:l.score}))));o&&this.publishData(o)}}na=new WeakMap,ra=new WeakMap,Iu=new WeakSet,Im=function(){return this.initializedPromise=new Promise((n,r)=>{Promise.all([Promise.resolve().then(()=>FE),Promise.resolve().then(()=>Il)]).then(([{BigWig:i},{RemoteFile:o}])=>{le(this,ra,new i({filehandle:new o(_l(Qt(this.params.url),this.view.getBaseUrl()))})),this.setLoadingStatus("loading"),z(this,ra).getHeader().then(s=>{le(this,na,s.zoomLevels.map(a=>a.reductionLevel).reverse()),z(this,na).push(1),this.setLoadingStatus("complete"),n()}).catch(s=>{this.load(),this.setLoadingStatus("error",`${Qt(this.params.url)}: ${s.message}`),r(s)})})}),this.initializedPromise};function vF(e,t,n){const r=(e[1]-e[0])/t;return n.find(i=>i<r)??n.at(-1)}class AF extends Cl{constructor(n,r){const i={channel:"x",windowSize:1e6,debounce:200,debounceMode:"window",...n},o=ef(r.paramMediator,i,s=>{s.includes("url")?Q(this,Bu,Bm).call(this).then(()=>this.reloadLastDomain()):s.includes("windowSize")&&this.reloadLastDomain()});super(r,o.channel);ee(this,Bu);Nt(this,"parser");Nt(this,"bbi");Nt(this,"parseLine");if(this.params=o,!this.params.url)throw new Error("No URL provided for BigBedSource");this.setupDebouncing(this.params),Q(this,Bu,Bm).call(this)}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,o)=>this.bbi.getFeatures(i.chrom,i.startPos,i.endPos,{signal:o}).then(s=>s.map(a=>this.parseLine(i.chrom,a))));r&&this.publishData(r)}}Bu=new WeakSet,Bm=function(){return this.initializedPromise=new Promise((n,r)=>{Promise.all([Promise.resolve().then(()=>iU),Promise.resolve().then(()=>FE),Promise.resolve().then(()=>Il)]).then(([i,{BigBed:o},{RemoteFile:s}])=>{const a=i.default;this.bbi=new o({filehandle:new s(_l(Qt(this.params.url),this.view.getBaseUrl()))}),this.setLoadingStatus("loading"),this.bbi.getHeader().then(async u=>{this.parser=new a({autoSql:u.autoSql});try{const l=xF(this.parser);this.parseLine=(c,f)=>l(c,f.start,f.end,f.rest)}catch{this.parseLine=(c,f)=>this.parser.parseLine(`${c} ${f.start} ${f.end} ${f.rest}`)}this.setLoadingStatus("complete"),n()}).catch(u=>{this.load(),this.setLoadingStatus("error",`${Qt(this.params.url)}: ${u.message}`),r(u)})})}),this.initializedPromise};function xF(e){const t=e.autoSql.fields.filter(x=>x.type).slice(3);let n=0,r="",i=0,o={};const s=" ",a=s.charCodeAt(0),u=48,l=45;function c(){let x=r.indexOf(s,n);x<0&&(x=i);const S=r.substring(n,x);return n=x+1,S}function f(){let x=0,S=r.charCodeAt(n),_=1;S===l&&(_=-1,n++,S=r.charCodeAt(n));do{if(S===a){n++;break}x=x*10+S-u,S=r.charCodeAt(++n)}while(n<i);return x*_}const h=t.map(x=>`${JSON.stringify(x.name)}: ${x.isNumeric?"0":"emptyString"}`),d=new Function(`
|
|
503
|
+
};`)},c=h=>{s||l(h);for(let d=0;d<s.length;d++){const[p,m]=s[d],y=u(h,p,m);this._propagate(y)}},f=h=>{l(h),c(h),this.handle=c};this.handle=f,this.beginBatch=h=>{jy(h)&&(this.handle=f),super.beginBatch(h)}}}class iF extends lt{get behavior(){return ei}constructor(t){super(t),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?Um(t.sort.field,t.sort.order):void 0,i=t.field?Re(t.field):()=>1,o=t.groupby.map(c=>Re(c)),s=N4(this.buffer,c=>o.map(f=>f(c)).join()).map(c=>c[1]);let a=c=>!0;if(t.baseField){const c=Re(t.baseField);a=f=>c(f)!==null}let u,l;switch(t.offset){case"normalize":u=(c,f)=>c/f,l=(c,f)=>Ea(c,f);break;case"center":u=(c,f)=>c-f/2,l=(c,f)=>Ea(c,f);break;case"information":{const c=Math.log2(t.cardinality??4);u=(f,h)=>f/h,l=(f,h)=>{const p=Ea(f,x=>+!a(x)),m=Ea(f,h),y=m-p;let w=0;for(let x=0;x<f.length;x++){const S=f[x];if(a(S)){const _=h(S)/y;w-=_*Math.log2(_)}}return y/(c-(w+0))*(y/m)}}break;default:u=(c,f)=>c,l=(c,f)=>1}for(const c of s){r&&c.sort(r);const f=l(c,i);let h=0;for(const d of c){const p=h+i(d);a(d)&&(d[n[0]]=u(h,f),d[n[1]]=u(p,f),this._propagate(d),h=p)}}super.complete()}}class oF extends lt{get behavior(){return Wn}constructor(t){super(t),this.params=t;const n=Re(t.field??"sequence"),[r,i]=t.as??["pos","sequence"];this.handle=o=>{const s=Object.assign({},o,{[i]:"",[r]:0}),a=n(o);for(let u=0;u<a.length;u++){const l=Object.assign({},s);l[r]=u,l[i]=a.charAt(u),this._propagate(l)}}}}const sv={count:e=>e.length,valid:D4,sum:Ea,min:Gh,max:Uh,mean:V4,median:j4,variance:R4};class sF extends lt{get behavior(){return Wn}constructor(t){if(super(t),this.params=t,this.buffer=[],this.ops=[],this.as=[],t.fields){if(t.fields.length!=t.ops.length)throw new Error("Fields and ops must have the same length!");if(t.as&&t.as.length!=t.ops.length)throw new Error('If "as" is defined, "fields" and "as" must have the same length!');t.fields.forEach((n,r)=>{const i=Re(n),o=sv[t.ops[r]];this.ops.push(s=>o(s,i)),this.as.push(t.as?t.as[r]:`${t.ops[r]}_${t.fields[r]}`)})}else this.ops.push(n=>sv.count(n)),this.as.push("count")}reset(){super.reset(),this.buffer=[]}handle(t){this.buffer.push(t)}complete(){const t=this.params,n=t==null?void 0:t.groupby;if((n==null?void 0:n.length)>0){const r=n.map(o=>Re(o)),i=Xu(this.buffer,...r);for(const[o,s]of Q0(i)){const a={};for(let u=0;u<n.length;u++)a[n[u]]=o[u];this.ops.forEach((u,l)=>{a[this.as[l]]=u(s)}),this._propagate(a)}}else{const r={};this.ops.forEach((i,o)=>{r[this.as[o]]=i(this.buffer)}),this._propagate(r)}super.complete()}}const aF={aggregate:sF,collect:rv,coverage:O9,filterScoredLabels:G9,filter:H9,flatten:$9,flattenCompressedExons:Z9,flattenDelimited:Y9,flattenSequence:oF,formula:X9,identifier:D0,linearizeGenomicCoordinate:iv,measureText:K9,pileup:eF,project:tF,regexExtract:nF,regexFold:rF,sample:Tw,stack:iF};function lF(e,t){const n=aF[e.type];if(n)return new n(e,t);throw new Error("Unknown transform: "+e.type)}function av(e){if(!cv(e)&&!uv(e))return;const t={...e.format};if(t.type??(t.type=uv(e)&&cF(Qt(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 uF(e){var t;return((t=nd(e))==null?void 0:t.responseType)??"text"}function cF(e){var t;if(Array.isArray(e)&&(e=e[0]),e)return(t=e.match(/\.(csv|tsv|json)/))==null?void 0:t[1]}const lv=e=>typeof e!="object"?fF:hF,fF=e=>({data:e}),hF=e=>e;function uv(e){return"url"in e}class fs extends B0{constructor(n){super();Bt(this,"view");this.view=n}get identifier(){}setLoadingStatus(n,r){this.view.context.setDataLoadingStatus(this.view,n,r)}get paramMediator(){return this.view.paramMediator}handle(n){throw new Error("Source does not handle incoming data!")}async load(){}repropagate(){this.load()}}function cv(e){return"values"in e}class dF extends fs{constructor(t,n){var r;if(super(n),this.params=t,typeof t.values=="string"&&!((r=t==null?void 0:t.format)!=null&&r.type))throw new Error("Data format type (csv, dsv, ...) must be specified if a string is provided!")}get label(){return"inlineSource"}isTrivial(){const t=this.params.values,n=Array.isArray(t)?t[0]:t;return!!(n&&Object.keys(n).length==0&&n.constructor===Object)}loadSynchronously(){const t=this.params.values;let n=[],r=i=>i;if(Array.isArray(t))t.length>0&&(n=t,r=lv(t[0]));else if(typeof t=="object")n=[t];else if(typeof t=="string")n=K1(t,av(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 pF(e){return"url"in e}class gF extends fs{constructor(t,n){super(n),this.params=tf(n.paramMediator,t,()=>this.load()),this.baseUrl=n==null?void 0:n.getBaseUrl()}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}get label(){return"urlSource"}async load(){const t=Qt(this.params.url),n=Array.isArray(t)?t:[t],r=av(this.params),i=uF(r.type);if(n.length===0||!n[0]){this.reset(),this.complete();return}const o=async a=>{try{const u=Al(this.baseUrl,a),l=await fetch(u);if(!l.ok)throw new Error(`${l.status} ${l.statusText}`);return typeof l[i]=="function"?l[i]():l.text()}catch(u){throw new Error(`Could not load data: ${a}. Reason: ${u.message}`)}},s=(a,u)=>{try{const l=K1(a,r);this.beginBatch({type:"file",url:u});for(const c of l)this._propagate(c)}catch(l){throw new Error(`Cannot parse: ${u}: ${l.message}`)}};this.setLoadingStatus("loading"),this.reset();try{await Promise.all(n.map(a=>o(a).then(s))),this.setLoadingStatus("complete")}catch(a){this.setLoadingStatus("error",a.message)}this.complete()}}function mF(e){return"sequence"in e}class bF extends fs{constructor(t,n){if(super(n),this.sequence=tf(n.paramMediator,t.sequence,()=>this.loadSynchronously()),!("start"in this.sequence))throw new Error("'start' is missing from sequence parameters!");if(!("stop"in this.sequence))throw new Error("'stop' is missing from sequence parameters!")}get label(){return"sequenceSource"}loadSynchronously(){const t=Qt(this.sequence.as)??"data",n=Qt(this.sequence.start)??0,r=Qt(this.sequence.step)??1,i=Qt(this.sequence.stop);this.reset(),this.beginBatch({type:"file"});for(let o=n;o<i;o+=r)this._propagate({[t]:o});this.complete()}async load(){this.loadSynchronously()}}class X0 extends fs{constructor(n,r){super(n);Bt(this,"initializedPromise",Promise.resolve());if(r){if(r!=="x"&&r!=="y")throw new Error(`Invalid channel specified for the lazy data source: ${r}. Must be either "x" or "y"`)}else throw new Error('No channel has been specified for the lazy data source. Must be either "x" or "y".');if(this.channel=r,this.scaleResolution=this.view.getScaleResolution(r),!this.scaleResolution){const o=[`The lazy data source cannot find a resolved scale for channel "${r}".`];throw this.view instanceof Kt||o.push('Make sure the view has a "shared" scale resolution as it is not a unit view.'),new Error(o.join(" "))}const i=()=>{this.view.isVisible()&&this.onDomainChanged(this.scaleResolution.getDomain(),this.scaleResolution.getComplexDomain())};this.scaleResolution.addEventListener("domain",i),this.view.context.addBroadcastListener("layoutComputed",i)}get genome(){return this.scaleResolution.getGenome()}onDomainChanged(n,r){}requestRender(){this.view.context.animator.requestRender()}async load(){this.reset(),this.complete()}publishData(n){this.reset(),this.beginBatch({type:"file"});for(const r of n)for(const i of r)this._propagate(i);this.complete(),q0(this.view)}}class yF extends X0{constructor(n,r){const i={axis:{},...n};super(r,i.channel);Bt(this,"ticks",[]);this.params=n}get label(){return"axisTickSource"}async load(){this.ticks=null,this.onDomainChanged()}onDomainChanged(){const n=this.scaleResolution.scale,r=this.scaleResolution.getAxisLength(),i=this.params.axis,o=l=>25+60*Vy(100,700,l),s=Dt(i.tickCount)?i.tickCount:Math.round(r/o(r)),a=Iw(n,s,i.tickMinStep),u=i.values?Bw(n,i.values,a):jR(n,a);if(this.ticks==null||!hc(u,this.ticks)){this.ticks=u;const l=qR(n,s,i.format);this.publishData([u.map(c=>({value:c,label:l(c)}))])}}}class wF extends X0{constructor(t,n){super(n,t.channel)}get label(){return"axisGenomeSource"}async load(){this.publishData([this.genome.chromosomes])}}function hf(e,t,n=!0){let r,i=s=>{};return function(...a){return new Promise((u,l)=>{const c=()=>{clearTimeout(r),i=f=>{},u(e(...a))};n&&i("debounced"),clearTimeout(r),i=l,r=window.setTimeout(c,typeof t=="function"?t():t)})}}class Cl extends X0{constructor(){super(...arguments);J(this,Js,new AbortController);J(this,ea,[0,0]);J(this,ta,[0,0]);J(this,Iu,0);Bt(this,"params")}setupDebouncing(n){const r=()=>Qt(n.debounce),i=n.debounceMode;if(i=="domain")this.onDomainChanged=hf(this.onDomainChanged.bind(this),r,!1);else if(i=="window")this.loadInterval=hf(this.loadInterval.bind(this),r,!1);else throw new Error("Invalid debounceMode: "+i)}onDomainChanged(n){var i;le(this,ta,n);const r=Qt((i=this.params)==null?void 0:i.windowSize)??-1;n[1]-n[0]>r||this.callIfWindowsChanged(n,r,async o=>{await this.initializedPromise,this.loadInterval(o)})}reloadLastDomain(){const n=z(this,ta);le(this,ta,[0,0]),le(this,ea,[0,0]),this.onDomainChanged(n)}async loadInterval(n){}async discretizeAndLoad(n,r){z(this,Js).abort(),this.setLoadingStatus("loading"),le(this,Js,new AbortController);const i=z(this,Js).signal,o=this.genome.continuousToDiscreteChromosomeIntervals(n);try{const s=await Promise.all(o.map(async a=>r(a,i)));if(!i.aborted)return this.setLoadingStatus("complete"),s}catch(s){if(!i.aborted)throw this.setLoadingStatus("error",s.message),s}}callIfWindowsChanged(n,r,i){const o=[Math.max(Math.floor(n[0]/r)*r,0),Math.min(Math.ceil(n[1]/r)*r,this.genome.totalSize)],s=z(this,ea);(r!==z(this,Iu)||o[0]<s[0]||o[1]>s[1])&&(le(this,ea,o),le(this,Iu,r),i(o))}}Js=new WeakMap,ea=new WeakMap,ta=new WeakMap,Iu=new WeakMap;class vF extends Cl{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(()=>Ov),Promise.resolve().then(()=>fL),Promise.resolve().then(()=>Il)]).then(([{Buffer:o},{IndexedFasta:s},{RemoteFile:a}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=o));const u=l=>new a(_l(l,this.view.getBaseUrl()));this.fasta=new s({fasta:u(this.params.url),fai:u(this.params.indexUrl??this.params.url+".fai")}),i()})})}get label(){return"bigWigSource"}async loadInterval(t){const n=await this.discretizeAndLoad(t,async(r,i)=>this.fasta.getSequence(r.chrom,r.startPos,r.endPos,{signal:i}).then(o=>({chrom:r.chrom,start:r.startPos,sequence:o})));n&&this.publishData([n])}}class AF extends Cl{constructor(n,r){const i={pixelsPerBin:2,channel:"x",debounce:200,debounceMode:"window",...n},o=tf(r.paramMediator,i,s=>{s.includes("url")?Q(this,Bu,Dm).call(this).then(()=>this.reloadLastDomain()):s.includes("pixelsPerBin")&&this.reloadLastDomain()});super(r,o.channel);J(this,Bu);J(this,na,[]);J(this,ra);if(this.params=o,!this.params.url)throw new Error("No URL provided for BigWigSource");this.setupDebouncing(this.params),Q(this,Bu,Dm).call(this)}get label(){return"bigWigSource"}async onDomainChanged(n){await this.initializedPromise;const r=this.scaleResolution.getAxisLength()||700,i=xF(n,r,z(this,na)),o=Math.max(i*r,5e3);this.callIfWindowsChanged(n,o,s=>this.loadInterval(s,i))}async loadInterval(n,r){const i=.5/r/Qt(this.params.pixelsPerBin),o=await this.discretizeAndLoad(n,(s,a)=>z(this,ra).getFeatures(s.chrom,s.startPos,s.endPos,{scale:i,signal:a}).then(u=>u.map(l=>({chrom:s.chrom,start:l.start,end:l.end,score:l.score}))));o&&this.publishData(o)}}na=new WeakMap,ra=new WeakMap,Bu=new WeakSet,Dm=function(){return this.initializedPromise=new Promise((n,r)=>{Promise.all([Promise.resolve().then(()=>PE),Promise.resolve().then(()=>Il)]).then(([{BigWig:i},{RemoteFile:o}])=>{le(this,ra,new i({filehandle:new o(_l(Qt(this.params.url),this.view.getBaseUrl()))})),this.setLoadingStatus("loading"),z(this,ra).getHeader().then(s=>{le(this,na,s.zoomLevels.map(a=>a.reductionLevel).reverse()),z(this,na).push(1),this.setLoadingStatus("complete"),n()}).catch(s=>{this.load(),this.setLoadingStatus("error",`${Qt(this.params.url)}: ${s.message}`),r(s)})})}),this.initializedPromise};function xF(e,t,n){const r=(e[1]-e[0])/t;return n.find(i=>i<r)??n.at(-1)}class EF extends Cl{constructor(n,r){const i={channel:"x",windowSize:1e6,debounce:200,debounceMode:"window",...n},o=tf(r.paramMediator,i,s=>{s.includes("url")?Q(this,Du,Rm).call(this).then(()=>this.reloadLastDomain()):s.includes("windowSize")&&this.reloadLastDomain()});super(r,o.channel);J(this,Du);Bt(this,"parser");Bt(this,"bbi");Bt(this,"parseLine");if(this.params=o,!this.params.url)throw new Error("No URL provided for BigBedSource");this.setupDebouncing(this.params),Q(this,Du,Rm).call(this)}get label(){return"bigBedSource"}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,o)=>this.bbi.getFeatures(i.chrom,i.startPos,i.endPos,{signal:o}).then(s=>s.map(a=>this.parseLine(i.chrom,a))));r&&this.publishData(r)}}Du=new WeakSet,Rm=function(){return this.initializedPromise=new Promise((n,r)=>{Promise.all([Promise.resolve().then(()=>sU),Promise.resolve().then(()=>PE),Promise.resolve().then(()=>Il)]).then(([i,{BigBed:o},{RemoteFile:s}])=>{const a=i.default;this.bbi=new o({filehandle:new s(_l(Qt(this.params.url),this.view.getBaseUrl()))}),this.setLoadingStatus("loading"),this.bbi.getHeader().then(async u=>{this.parser=new a({autoSql:u.autoSql});try{const l=_F(this.parser);this.parseLine=(c,f)=>l(c,f.start,f.end,f.rest)}catch{this.parseLine=(c,f)=>this.parser.parseLine(`${c} ${f.start} ${f.end} ${f.rest}`)}this.setLoadingStatus("complete"),n()}).catch(u=>{this.load(),this.setLoadingStatus("error",`${Qt(this.params.url)}: ${u.message}`),r(u)})})}),this.initializedPromise};function _F(e){const t=e.autoSql.fields.filter(x=>x.type).slice(3);let n=0,r="",i=0,o={};const s=" ",a=s.charCodeAt(0),u=48,l=45;function c(){let x=r.indexOf(s,n);x<0&&(x=i);const S=r.substring(n,x);return n=x+1,S}function f(){let x=0,S=r.charCodeAt(n),_=1;S===l&&(_=-1,n++,S=r.charCodeAt(n));do{if(S===a){n++;break}x=x*10+S-u,S=r.charCodeAt(++n)}while(n<i);return x*_}const h=t.map(x=>`${JSON.stringify(x.name)}: ${x.isNumeric?"0":"emptyString"}`),d=new Function(`
|
|
498
504
|
const emptyString = "";
|
|
499
505
|
return function makeTemplate(chrom, chromStart, chromEnd) {
|
|
500
506
|
return {
|
|
@@ -504,21 +510,21 @@ chrM 16299`};function f9(e){if(!(e in Pw))throw new Error(`Unknown assembly: ${e
|
|
|
504
510
|
${h.join(`,
|
|
505
511
|
`)}
|
|
506
512
|
}
|
|
507
|
-
};`)(),p=t.map(x=>{const S=x.type,_=JSON.stringify(x.name);if(["ubyte","int","uint"].includes(S))return`d[${_}] = parseInt();`;if(x.isNumeric)return`d[${_}] = Number(parseString());`;if(["char","string","lstring"].includes(S))return`d[${_}] = parseString();`;throw new Error("Unsupported type: "+S)}),m=
|
|
513
|
+
};`)(),p=t.map(x=>{const S=x.type,_=JSON.stringify(x.name);if(["ubyte","int","uint"].includes(S))return`d[${_}] = parseInt();`;if(x.isNumeric)return`d[${_}] = Number(parseString());`;if(["char","string","lstring"].includes(S))return`d[${_}] = parseString();`;throw new Error("Unsupported type: "+S)}),m=SF(p,50).map((x,S)=>Function("parseInt","parseString",`return function parseFieldChunk${S}(d) {
|
|
508
514
|
${x.join(`
|
|
509
515
|
`)}
|
|
510
|
-
}`)(f,c));function y(x){r=x,i=x.length,n=0}function w(x,S,_,T){y(T),o=d(x,S,_);for(const B of m)B(o);return o}return w}function
|
|
511
|
-
`),{parseSequences:!1})}}
|
|
512
|
-
`)+" };");return n.properties=t,n}function uv(e){let t=[];do t=t.concat(Object.keys(e)),e=Object.getPrototypeOf(e);while(e&&e!==Object.prototype);return Array.from(new Set(t))}class hf extends nt{constructor(){super();ee(this,ia);ee(this,Fu,n=>n);const n=r=>{const i=uv(r);(!z(this,ia)||!fc(i,z(this,ia)))&&(le(this,ia,i),le(this,Fu,NF(r)));const o=z(this,Fu);this.handle=s=>this._propagate(o(s)),this.handle(r)};this.handle=n,this.beginBatch=r=>{Hy(r)&&(this.handle=n),super.beginBatch(r)}}get behavior(){return Wn}}ia=new WeakMap,Fu=new WeakMap;function OF(e){return"name"in e}class cv extends fs{constructor(n,r,i){super(r);ee(this,Mu);this.provider=i,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){le(this,Mu,n),this.loadSynchronously()}loadSynchronously(){const n=z(this,Mu)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=sv(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()}}Mu=new WeakMap;class fv{constructor(){this._dataSourcesByHost=new Map,this._collectorsByHost=new Map,this._observers=new Map}get dataSources(){return[...new Set(this._dataSourcesByHost.values()).values()]}get collectors(){return[...this._collectorsByHost.values()]}addObserver(t,n){let r=this._observers.get(n);r||(r=[],this._observers.set(n,r)),r.push(t)}_relayObserverCallback(t,n){const r=this._observers.get(n);if(r)for(const i of r)i(t)}addDataSource(t,n){this._dataSourcesByHost.set(n,t)}findDataSourceByKey(t){return this._dataSourcesByHost.get(t)}findNamedDataSource(t){let n,r=[];for(const[i,o]of this._dataSourcesByHost.entries())if(o instanceof cv&&t==o.identifier){if(n&&n!==o)throw new Error(`Found multiple instances of named data: ${t}. Data flow optimization is broken (it's a bug).`);n=o,r.push(i)}if(n)return{dataSource:n,hosts:r}}addCollector(t,n){this._collectorsByHost.set(n,t),t.observers.push(r=>this._relayObserverCallback(r,n))}findCollectorByKey(t){return this._collectorsByHost.get(t)}initialize(){for(const t of this.dataSources)t.visit(n=>n.initialize())}}function zF(e,t){const n=new Map,r=[];for(const i of e)n.set(i,{ref:i,children:[]});for(const i of n.values()){const o=n.get(t(i.ref));o?o.children.push(i):r.push(i)}return r}function hv(e,t,n){var i,o;const r=(i=t.preOrder)==null?void 0:i.call(t,e);if(r)return r;for(const s of n(e)){const a=hv(s,t,n);if(a==="stop")return a}return(o=t.postOrder)==null?void 0:o.call(t,e)}function UF(e,t){return hv(e,t,n=>n.children)}function GF(e,t){const n=[],r=[];let i;const o=t??new fv,s=[];function a(d,p=()=>{}){if(!i)throw p()||new Error("Cannot append data flow node, no parent exist!");return i.addChild(d),i=d,n.push(d),d}function u(d,p){return a(d,()=>new Error("Cannot append a transform because no (inherited) data are available! "))}function l(d,p){for(const m of d){let y;try{y=sF(m,p)}catch(w){throw console.warn(w),new Error(`Cannot initialize "${m.type}" transform: ${w}`)}y.behavior&ei&&u(new hf),u(y)}}function c(){return n.findLastIndex(d=>d instanceof I0)>n.findLastIndex(d=>d instanceof fs)}const f=d=>{if(d.spec.data){const p=OF(d.spec.data)?new cv(d.spec.data,d,d.context.getNamedDataFromProvider):TF(d.spec.data,d);i=p,n.push(p),o.addDataSource(p,d)}if(d.spec.transform&&l(d.spec.transform,d),d instanceof Kt){if(!i)throw new Error(`A unit view (${d.getPathString()}) has no (inherited) data source`);const p=HF(d);if(p){s.push(p.rewrite);for(const y of p.transforms)u(y)}d.mark.isPickingParticipant()&&!c()&&(u(new hf),u(new I0({type:"identifier"})));const m=new tv({type:"collect",groupby:d.getFacetFields(),sort:VF(d,p==null?void 0:p.rewrittenEncoding)});a(m),o.addCollector(m,d)}},h=zF(e.getDescendants(),d=>d.dataParent);for(const d of h)UF(d,{preOrder:p=>{r.push({view:p.ref,nodeStackDepth:n.length}),f(p.ref)},postOrder:()=>{const{nodeStackDepth:p}=r.pop();n.length=p,i=n.at(-1)}});return s.forEach(d=>d()),o}function HF(e){var o;const t=[],n={},r=[];for(const[s,a]of Object.entries(e.getEncoding())){const u=s;dl(u)&&Xy(a)&&r.push({channel:u,chromPosDef:a})}const i=Qu(r,s=>to(s.channel),s=>s.chromPosDef.chrom);for(const[s,a]of i.entries())for(const[u,l]of a.entries()){const c=[],f=[],h=[];for(const{channel:d,chromPosDef:p}of l){const m=x=>x.replace(/[^A-Za-z0-9_]/g,""),y=["_linearized_",m(p.chrom),"_",m(p.pos)].join(""),w={...((o=e.spec.encoding)==null?void 0:o[d])??e.getEncoding()[d]??{},field:y};delete w.chrom,delete w.pos,!w.type&&p.type&&(w.type=p.type),n[d]=w,c.push(p.pos),h.push(p.offset??0),f.push(y)}t.push(new hf),t.push(new nv({type:"linearizeGenomicCoordinate",channel:s,chrom:u,pos:c,offset:h,as:f},e))}return t.length?{transforms:t,rewrittenEncoding:n,rewrite:()=>{e.spec.encoding={...e.spec.encoding,...n},sR(e.mark,"encoding")}}:void 0}function VF(e,t){var r;const n={...e.getEncoding(),...t}.x;if(Xt(n)&&(r=e.getScaleResolution("x"))!=null&&r.isZoomable()){if(ni(n))return"buildIndex"in n&&n.buildIndex?{field:n.field}:null;if(!fl(n)){if(hl(n))throw new Error("A zoomable x channel must be mapped to a field.")}}}function dv(e,t=void 0){if(e.parent!==t)return!1;for(const n of e.children)if(!dv(n,e))return!1;return!0}function Q0(e,t=!1){if(e.behavior&k0&&(t=!0),e instanceof hf)if(t)t=!1;else{const n=e.children[0];e.excise(),n&&Q0(n,t);return}e.behavior&Wn&&(t=!1);for(let n=0,r=e.children.length;n<r;n++)Q0(e.children[n],t||r>1)}function jF(e){const t=[...e._dataSourcesByHost.entries()],n=new Map;for(const r of t){const i=r[1];i.identifier&&!n.has(i.identifier)&&n.set(i.identifier,i)}e._dataSourcesByHost.clear();for(let[r,i]of t){const o=n.get(i.identifier);o&&(o.adoptChildrenOf(i),i=o),e.addDataSource(i,r)}}function $F(e){if(Q0(e),!dv(e))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function qF(e){jF(e);for(const t of e.dataSources)$F(t)}function WF(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 ZF(e){for(const t of ls){const n=e.getScaleResolution(t);n&&!n.name&&n.isZoomable()&&(n.name=`${t}_at_root`)}}async function YF(e,t,n){const r=e.import;if(!("url"in r))throw new Error("Not an url import: "+JSON.stringify(r));const i=Al(t,r.url);let o;try{const s=await fetch(i);if(!s.ok)throw new Error(`${s.status} ${s.statusText}`);o=await s.json()}catch(s){throw new Error(`Could not load imported view spec: ${i}. Reason: ${s.message}`)}if(n.isViewSpec(o))return o.baseUrl=Al(Lw(r.url),o.baseUrl),o;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(e)}`)}function QF(e){const t=e.getSize(),n=e.getPadding(),r=(i,o)=>i.grow>0?void 0:i.px+o;return{width:r(t.width,n.horizontalTotal),height:r(t.height,n.verticalTotal)}}function yr(e){return()=>e}const Ln=class Ln{static create(t,n,r,i){return new Ln(yr(t),yr(n),yr(r),yr(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"?yr(i):typeof i=="function"?i:this._passThrough(r)};return new Ln(n("x"),n("y"),n("width"),n("height"))}translate(t,n){return t===0&&n===0?this:new Ln(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 Ln(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 Ln(()=>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 Ln(()=>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 Ln(yr(this.x),yr(this.y),yr(this.width),yr(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)}`}};Nt(Ln,"ZERO",Ln.create(0,0,0,0));let wr=Ln;class pv{constructor(t){this.globalOptions=t}pushView(t,n){}popView(t){}renderMark(t,n){}}class gv extends pv{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=s=>()=>{t&&s()},i=s=>()=>{t&&n&&s()},o=Qu(this.buffer.reverse(),s=>s.mark);for(const[s,a]of[...o.entries()].reverse()){if(!s.isReady())continue;this.batch.push(()=>{t=s.unitView.getEffectiveOpacity()>0}),this.batch.push(...s.prepareRender(this.globalOptions).map(l=>r(l)));let u;for(const l of a){const c=l.coords;c.equals(u)||this.batch.push(r(()=>{n=s.setViewport(c,l.clipRect)})),this.batch.push(i(l.callback)),u=l.coords}}}}class XF extends pv{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 KF{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 Zn{static fromMouseEvent(t){return new Zn(t.clientX,t.clientY)}constructor(t,n){this.x=t,this.y=n}subtract(t){return new Zn(this.x-t.x,this.y-t.y)}add(t){return new Zn(this.x-t.x,this.y-t.y)}multiply(t){return new Zn(this.x*t,this.y*t)}get length(){return Math.sqrt(this.x**2+this.y**2)}equals(t){return t?t===this||t.x===this.x&&t.y===this.y:!1}}const JF=e=>new Promise(t=>setTimeout(t,e));function e7(e){const t=e.requestAnimationFrame||window.requestAnimationFrame,n=e.signal,r=()=>new Promise((i,o)=>{if(n!=null&&n.aborted)return o("aborted");const s=performance.now(),a=s+(e.duration||1e3),u=typeof e.from=="number"?e.from:0,l=typeof e.to=="number"?e.to:1,c=e.easingFunction||(m=>m),f=m=>(m-s)/(a-s),h=m=>m*(l-u)+u,d=m=>Math.max(0,Math.min(1,m)),p=m=>{n!=null&&n.aborted?o("aborted"):(e.onUpdate(h(c(d(f(m))))),m<a?t(p):(e.onUpdate(h(c(1))),i()))};t(p)});return e.delay?n!=null&&n.aborted?Promise.reject("aborted"):JF(e.delay).then(r):r()}class t7{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 e7({requestAnimationFrame:n=>this.requestTransition(n),...t})}}function X0(e,t,n,r,i){let o=0,s=!0,a=structuredClone(i),u=a;function l(h,d,p,m){return d+(h-d)*Math.pow(2,-p/m)}function c(h){if(s)return;const d=h-o;o=h;for(const m of Object.keys(u))a[m]=l(a[m],u[m],d,n);t(a);let p=-1/0;for(const m of Object.keys(u))p=Math.max(p,Math.abs(u[m]-a[m]));p<r?(a=u,t(a),s=!0,p!=0&&e.requestRender()):e.requestTransition(m=>c(m))}function f(h){u=h,s&&(s=!1,o=+document.timeline.currentTime,c(o))}return f.stop=()=>{s=!0},f}class n7{constructor(t){this.genomes=new Map,this.baseUrl=t}async initialize(t){const n=new d9(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 r7="data:image/png;base64,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",i7={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class o7{constructor(t){this._webGLHelper=t,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new ur([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:L0(rv),texture:t?this._createTextureNow(r7):void 0}}async waitUntilReady(){await Promise.all(this._promises)}getFont(t,n="normal",r="regular"){if(De(r)&&(r=i7[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:t,style:n,weight:r};let o=this._fonts.get(i);return o||(o={metrics:void 0,texture:void 0},this._fonts.set(i,o),this._promises.push(this._loadFontEntry(o,i))),o}async _loadFontEntry(t,n){try{const r=await this._loadMetadata(n.family),i=a7(r,n),o=this.fontRepository+mv(n.family)+"/"+i.replace(/\.\w+/,""),s=this._createTexture(o+".png"),a=this._loadFont(o+".json");t.texture=await s,t.metrics=await a}catch{console.warn(`Cannot load font: "${n.family}". Using the embedded default font.`),t.metrics=this._defaultFontEntry.metrics,t.texture=this._defaultFontEntry.texture}}_loadFont(t){let n=this._fontPromises.get(t);return n||(n=fetch(t).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>L0(r)),this._fontPromises.set(t,n)),n}_loadMetadata(t){const n=mv(t);let r=this._metadataPromises.get(n);if(!r){const i=this.fontRepository+n+"/METADATA.pb";r=fetch(i).then(o=>{if(!o.ok)throw new Error("Could not load font metadata. Response status: "+o.status+", url: "+i);return o}).then(o=>o.text()).then(o=>s7(o)).catch(o=>{console.warn(o.message)}),this._metadataPromises.set(n,r)}return r}getDefaultFont(){return this._defaultFontEntry}_createTexture(t){const n=this._webGLHelper.gl;return new Promise((r,i)=>{qa(n,{src:t,min:n.LINEAR},(o,s,a)=>{o?i(o):r(s)})})}_createTextureNow(t){const n=this._webGLHelper.gl;let r;const i=new Promise((o,s)=>{r=qa(n,{src:t,min:n.LINEAR},(a,u,l)=>{a?s(a):o(u)})});return this._promises.push(i),r}}function mv(e){return e.toLowerCase().replaceAll(/[^\w]/g,"")}function s7(e){const t=e.split(`
|
|
513
|
-
`),n=[];let r;for(const i of t)if(i.startsWith("fonts {")&&(r={name:void 0,style:void 0,weight:void 0,filename:void 0,post_script_name:void 0,full_name:void 0,copyright:void 0}),i.startsWith("}")&&(n.push(r),r=void 0),r){let o=i.match(/^\s*([A-Za-z_]+):[ ]?"(.*)"$/);if(o){const s=o[1];r[s]=o[2]}if(o=i.match(/^\s*([A-Za-z_]+):[ ]?(\d+)$/),o){const s=o[1];r[s]=+o[2]}}return n}function
|
|
514
|
-
`))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
|
|
516
|
+
}`)(f,c));function y(x){r=x,i=x.length,n=0}function w(x,S,_,T){y(T),o=d(x,S,_);for(const B of m)B(o);return o}return w}function SF(e,t){return Array.from({length:Math.ceil(e.length/t)},(n,r)=>e.slice(r*t,r*t+t))}class CF extends Cl{constructor(n,r){const i={channel:"x",windowSize:2e4,debounce:200,debounceMode:"domain",...n};super(r,i.channel);J(this,Do);Bt(this,"chrPrefixFixer",n=>n);if(this.params=i,!this.params.url)throw new Error("No URL provided for BamSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(o=>{Promise.all([Promise.resolve().then(()=>kU),Promise.resolve().then(()=>Il)]).then(([{BamFile:s},{RemoteFile:a}])=>{const u=l=>new a(_l(l,this.view.getBaseUrl()));le(this,Do,new s({bamFilehandle:u(this.params.url),baiFilehandle:u(this.params.indexUrl??this.params.url+".bai")})),z(this,Do).getHeader().then(l=>{var h,d;const c=this.genome.hasChrPrefix(),f=(d=(h=z(this,Do).indexToChr)==null?void 0:h[0])==null?void 0:d.refName.startsWith("chr");c&&!f?this.chrPrefixFixer=p=>p.replace("chr",""):!c&&f&&(this.chrPrefixFixer=p=>"chr"+p),o()})})})}get label(){return"bamSource"}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,o)=>z(this,Do).getRecordsForRange(this.chrPrefixFixer(i.chrom),i.startPos,i.endPos,{signal:o}).then(s=>s.map(a=>({chrom:i.chrom,start:a.get("start"),end:a.get("end"),name:a.get("name"),MD:a.get("MD"),cigar:a.get("cigar"),mapq:a.get("mq"),strand:a.get("strand")===1?"+":"-"}))));r&&this.publishData(r)}}Do=new WeakMap;class TF extends Cl{constructor(n,r){const i={channel:"x",windowSize:3e6,debounce:200,debounceMode:"domain",...n};super(r,i.channel);J(this,Ru);if(this.params=i,!this.params.url)throw new Error("No URL provided for TabixSource");this.setupDebouncing(this.params),this.initializedPromise=new Promise(o=>{Promise.all([Promise.resolve().then(()=>Ov),Promise.resolve().then(()=>OU),Promise.resolve().then(()=>Il)]).then(([{Buffer:s},{TabixIndexedFile:a},{RemoteFile:u}])=>{typeof window<"u"&&(window.Buffer??(window.Buffer=s));const l=c=>new u(_l(c,this.view.getBaseUrl()));le(this,Ru,new a({filehandle:l(this.params.url),tbiFilehandle:l(this.params.indexUrl??this.params.url+".tbi")})),o()})})}async loadInterval(n){const r=await this.discretizeAndLoad(n,async(i,o)=>{const s=[];return await z(this,Ru).getLines(i.chrom,i.startPos,i.endPos,{lineCallback:a=>{s.push(a)},signal:o}),this._parseFeatures(s)});r&&this.publishData(r)}_parseFeatures(n){return[]}}Ru=new WeakMap;class kF extends TF{constructor(n,r){super(n,r);J(this,Fu);Promise.resolve().then(()=>xG).then(i=>{le(this,Fu,i.default)})}get label(){return"gff3Source"}_parseFeatures(n){var i;return(i=z(this,Fu))==null?void 0:i.parseStringSync(n.join(`
|
|
517
|
+
`),{parseSequences:!1})}}Fu=new WeakMap;function IF(e,t){if(cv(e))return new dF(e,t);if(pF(e))return new gF(e,t);if(mF(e))return new bF(e,t);if(BF(e))return OF(e.lazy,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function BF(e){return"lazy"in e}function DF(e){return(e==null?void 0:e.type)=="axisTicks"}function RF(e){return(e==null?void 0:e.type)=="axisGenome"}function FF(e){return(e==null?void 0:e.type)=="indexedFasta"}function MF(e){return(e==null?void 0:e.type)=="bigwig"}function PF(e){return(e==null?void 0:e.type)=="bigbed"}function LF(e){return(e==null?void 0:e.type)=="bam"}function NF(e){return(e==null?void 0:e.type)=="gff3"}function OF(e,t){if(DF(e))return new yF(e,t);if(RF(e))return new wF(e,t);if(FF(e))return new vF(e,t);if(MF(e))return new AF(e,t);if(PF(e))return new EF(e,t);if(LF(e))return new CF(e,t);if(NF(e))return new kF(e,t);throw new Error("Cannot figure out the data source type: "+JSON.stringify(e))}function zF(e){const t=fv(e).filter(r=>typeof r=="string"),n=new Function("source","return { "+t.map(r=>JSON.stringify(r)).map(r=>`${r}: source[${r}]`).join(`,
|
|
518
|
+
`)+" };");return n.properties=t,n}function fv(e){let t=[];do t=t.concat(Object.keys(e)),e=Object.getPrototypeOf(e);while(e&&e!==Object.prototype);return Array.from(new Set(t))}class df extends lt{constructor(){super({type:"clone"});J(this,ia);J(this,Mu,n=>n);const n=r=>{const i=fv(r);(!z(this,ia)||!hc(i,z(this,ia)))&&(le(this,ia,i),le(this,Mu,zF(r)));const o=z(this,Mu);this.handle=s=>this._propagate(o(s)),this.handle(r)};this.handle=n,this.beginBatch=r=>{jy(r)&&(this.handle=n),super.beginBatch(r)}}get behavior(){return Wn}}ia=new WeakMap,Mu=new WeakMap;function UF(e){return"name"in e}class hv extends fs{constructor(n,r,i){super(r);J(this,Pu);this.provider=i,this.params=n}get identifier(){return this.params.name}get label(){return"namedSource"}updateDynamicData(n){le(this,Pu,n),this.loadSynchronously()}loadSynchronously(){const n=z(this,Pu)??this.provider(this.params.name)??[];let r=i=>i;if(Array.isArray(n))n.length>0&&(r=lv(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()}}Pu=new WeakMap;class dv{constructor(){this._dataSourcesByHost=new Map,this._collectorsByHost=new Map,this._observers=new Map}get dataSources(){return[...new Set(this._dataSourcesByHost.values()).values()]}get collectors(){return[...this._collectorsByHost.values()]}addObserver(t,n){let r=this._observers.get(n);r||(r=[],this._observers.set(n,r)),r.push(t)}_relayObserverCallback(t,n){const r=this._observers.get(n);if(r)for(const i of r)i(t)}addDataSource(t,n){this._dataSourcesByHost.set(n,t)}findDataSourceByKey(t){return this._dataSourcesByHost.get(t)}findNamedDataSource(t){let n,r=[];for(const[i,o]of this._dataSourcesByHost.entries())if(o instanceof hv&&t==o.identifier){if(n&&n!==o)throw new Error(`Found multiple instances of named data: ${t}. Data flow optimization is broken (it's a bug).`);n=o,r.push(i)}if(n)return{dataSource:n,hosts:r}}addCollector(t,n){this._collectorsByHost.set(n,t),t.observers.push(r=>this._relayObserverCallback(r,n))}findCollectorByKey(t){return this._collectorsByHost.get(t)}initialize(){for(const t of this.dataSources)t.visit(n=>n.initialize())}}function GF(e,t){const n=new Map,r=[];for(const i of e)n.set(i,{ref:i,children:[]});for(const i of n.values()){const o=n.get(t(i.ref));o?o.children.push(i):r.push(i)}return r}function pv(e,t,n){var i,o;const r=(i=t.preOrder)==null?void 0:i.call(t,e);if(r)return r;for(const s of n(e)){const a=pv(s,t,n);if(a==="stop")return a}return(o=t.postOrder)==null?void 0:o.call(t,e)}function HF(e,t){return pv(e,t,n=>n.children)}function VF(e,t){const n=[],r=[];let i;const o=t??new dv,s=[];function a(d,p=()=>{}){if(!i)throw p()||new Error("Cannot append data flow node, no parent exist!");return i.addChild(d),i=d,n.push(d),d}function u(d,p){return a(d,()=>new Error("Cannot append a transform because no (inherited) data are available! "))}function l(d,p){for(const m of d){let y;try{y=lF(m,p)}catch(w){throw console.warn(w),new Error(`Cannot initialize "${m.type}" transform: ${w}`)}y.behavior&ei&&u(new df),u(y)}}function c(){return n.findLastIndex(d=>d instanceof D0)>n.findLastIndex(d=>d instanceof fs)}const f=d=>{if(d.spec.data){const p=UF(d.spec.data)?new hv(d.spec.data,d,d.context.getNamedDataFromProvider):IF(d.spec.data,d);i=p,n.push(p),o.addDataSource(p,d)}if(d.spec.transform&&l(d.spec.transform,d),d instanceof Kt){if(!i)throw new Error(`A unit view (${d.getPathString()}) has no (inherited) data source`);const p=jF(d);if(p){s.push(p.rewrite);for(const y of p.transforms)u(y)}d.mark.isPickingParticipant()&&!c()&&(u(new df),u(new D0({type:"identifier"})));const m=new rv({type:"collect",groupby:d.getFacetFields(),sort:$F(d,p==null?void 0:p.rewrittenEncoding)});a(m),o.addCollector(m,d)}},h=GF(e.getDescendants(),d=>d.dataParent);for(const d of h)HF(d,{preOrder:p=>{r.push({view:p.ref,nodeStackDepth:n.length}),f(p.ref)},postOrder:()=>{const{nodeStackDepth:p}=r.pop();n.length=p,i=n.at(-1)}});return s.forEach(d=>d()),o}function jF(e){var o;const t=[],n={},r=[];for(const[s,a]of Object.entries(e.getEncoding())){const u=s;dl(u)&&Jy(a)&&r.push({channel:u,chromPosDef:a})}const i=Xu(r,s=>to(s.channel),s=>s.chromPosDef.chrom);for(const[s,a]of i.entries())for(const[u,l]of a.entries()){const c=[],f=[],h=[];for(const{channel:d,chromPosDef:p}of l){const m=x=>x.replace(/[^A-Za-z0-9_]/g,""),y=["_linearized_",m(p.chrom),"_",m(p.pos)].join(""),w={...((o=e.spec.encoding)==null?void 0:o[d])??e.getEncoding()[d]??{},field:y};delete w.chrom,delete w.pos,!w.type&&p.type&&(w.type=p.type),n[d]=w,c.push(p.pos),h.push(p.offset??0),f.push(y)}t.push(new df),t.push(new iv({type:"linearizeGenomicCoordinate",channel:s,chrom:u,pos:c,offset:h,as:f},e))}return t.length?{transforms:t,rewrittenEncoding:n,rewrite:()=>{e.spec.encoding={...e.spec.encoding,...n},lR(e.mark,"encoding")}}:void 0}function $F(e,t){var r;const n={...e.getEncoding(),...t}.x;if(Xt(n)&&(r=e.getScaleResolution("x"))!=null&&r.isZoomable()){if(ni(n))return"buildIndex"in n&&n.buildIndex?{field:n.field}:null;if(!fl(n)){if(hl(n))throw new Error("A zoomable x channel must be mapped to a field.")}}}function gv(e,t=void 0){if(e.parent!==t)return!1;for(const n of e.children)if(!gv(n,e))return!1;return!0}function K0(e,t=!1){if(e.behavior&I0&&(t=!0),e instanceof df)if(t)t=!1;else{const n=e.children[0];e.excise(),n&&K0(n,t);return}e.behavior&Wn&&(t=!1);for(let n=0,r=e.children.length;n<r;n++)K0(e.children[n],t||r>1)}function qF(e){const t=[...e._dataSourcesByHost.entries()],n=new Map;for(const r of t){const i=r[1];i.identifier&&!n.has(i.identifier)&&n.set(i.identifier,i)}e._dataSourcesByHost.clear();for(let[r,i]of t){const o=n.get(i.identifier);o&&(o.adoptChildrenOf(i),i=o),e.addDataSource(i,r)}}function WF(e){if(K0(e),!gv(e))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function ZF(e){qF(e);for(const t of e.dataSources)WF(t)}function YF(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 QF(e){for(const t of ls){const n=e.getScaleResolution(t);n&&!n.name&&n.isZoomable()&&(n.name=`${t}_at_root`)}}async function XF(e,t,n){const r=e.import;if(!("url"in r))throw new Error("Not an url import: "+JSON.stringify(r));const i=Al(t,r.url);let o;try{const s=await fetch(i);if(!s.ok)throw new Error(`${s.status} ${s.statusText}`);o=await s.json()}catch(s){throw new Error(`Could not load imported view spec: ${i}. Reason: ${s.message}`)}if(n.isViewSpec(o))return o.baseUrl=Al(Ow(r.url),o.baseUrl),o;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(e)}`)}function KF(e){const t=e.getSize(),n=e.getPadding(),r=(i,o)=>i.grow>0?void 0:i.px+o;return{width:r(t.width,n.horizontalTotal),height:r(t.height,n.verticalTotal)}}function yr(e){return()=>e}const Ln=class Ln{static create(t,n,r,i){return new Ln(yr(t),yr(n),yr(r),yr(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"?yr(i):typeof i=="function"?i:this._passThrough(r)};return new Ln(n("x"),n("y"),n("width"),n("height"))}translate(t,n){return t===0&&n===0?this:new Ln(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 Ln(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 Ln(()=>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 Ln(()=>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 Ln(yr(this.x),yr(this.y),yr(this.width),yr(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)}`}};Bt(Ln,"ZERO",Ln.create(0,0,0,0));let wr=Ln;class mv{constructor(t){this.globalOptions=t}pushView(t,n){}popView(t){}renderMark(t,n){}}class bv extends mv{constructor(t,n){super(t),this.webGLHelper=n,this.buffer=[],this.coords=void 0,this.views=new Set}pushView(t,n){this.views.add(t),this.coords=n}renderMark(t,n){if(this.globalOptions.picking&&!t.isPickingParticipant())return;const r=t.render(n);r&&this.buffer.push({mark:t,callback:r,coords:this.coords,clipRect:n.clipRect})}render(){if(this.batch||this._buildBatch(),this.batch.length==0)return;const t=this.webGLHelper.gl,n=this.globalOptions.picking;t.bindFramebuffer(t.FRAMEBUFFER,n?this.webGLHelper._pickingBufferInfo.framebuffer:null),this.webGLHelper.clearAll();for(const r of this.views)r.onBeforeRender();for(const r of this.batch)r();n&&t.bindFramebuffer(t.FRAMEBUFFER,null)}_buildBatch(){this.batch=[];let t=!0,n=!0;const r=s=>()=>{t&&s()},i=s=>()=>{t&&n&&s()},o=Xu(this.buffer.reverse(),s=>s.mark);for(const[s,a]of[...o.entries()].reverse()){if(!s.isReady())continue;this.batch.push(()=>{t=s.unitView.getEffectiveOpacity()>0}),this.batch.push(...s.prepareRender(this.globalOptions).map(l=>r(l)));let u;for(const l of a){const c=l.coords;c.equals(u)||this.batch.push(r(()=>{n=s.setViewport(c,l.clipRect)})),this.batch.push(i(l.callback)),u=l.coords}}}}class JF extends mv{constructor(...t){super({}),this.contexts=t}pushView(t,n){for(const r of this.contexts)r.pushView(t,n)}popView(t){for(const n of this.contexts)n.popView(t)}renderMark(t,n){for(const r of this.contexts)r.renderMark(t,n)}}class e7{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 Zn{static fromMouseEvent(t){return new Zn(t.clientX,t.clientY)}constructor(t,n){this.x=t,this.y=n}subtract(t){return new Zn(this.x-t.x,this.y-t.y)}add(t){return new Zn(this.x-t.x,this.y-t.y)}multiply(t){return new Zn(this.x*t,this.y*t)}get length(){return Math.sqrt(this.x**2+this.y**2)}equals(t){return t?t===this||t.x===this.x&&t.y===this.y:!1}}const t7=e=>new Promise(t=>setTimeout(t,e));function n7(e){const t=e.requestAnimationFrame||window.requestAnimationFrame,n=e.signal,r=()=>new Promise((i,o)=>{if(n!=null&&n.aborted)return o("aborted");const s=performance.now(),a=s+(e.duration||1e3),u=typeof e.from=="number"?e.from:0,l=typeof e.to=="number"?e.to:1,c=e.easingFunction||(m=>m),f=m=>(m-s)/(a-s),h=m=>m*(l-u)+u,d=m=>Math.max(0,Math.min(1,m)),p=m=>{n!=null&&n.aborted?o("aborted"):(e.onUpdate(h(c(d(f(m))))),m<a?t(p):(e.onUpdate(h(c(1))),i()))};t(p)});return e.delay?n!=null&&n.aborted?Promise.reject("aborted"):t7(e.delay).then(r):r()}class r7{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 n7({requestAnimationFrame:n=>this.requestTransition(n),...t})}}function J0(e,t,n,r,i){let o=0,s=!0,a=structuredClone(i),u=a;function l(h,d,p,m){return d+(h-d)*Math.pow(2,-p/m)}function c(h){if(s)return;const d=h-o;o=h;for(const m of Object.keys(u))a[m]=l(a[m],u[m],d,n);t(a);let p=-1/0;for(const m of Object.keys(u))p=Math.max(p,Math.abs(u[m]-a[m]));p<r?(a=u,t(a),s=!0,p!=0&&e.requestRender()):e.requestTransition(m=>c(m))}function f(h){u=h,s&&(s=!1,o=+document.timeline.currentTime,c(o))}return f.stop=()=>{s=!0},f}class i7{constructor(t){this.genomes=new Map,this.baseUrl=t}async initialize(t){const n=new g9(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 o7="data:image/png;base64,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",s7={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class a7{constructor(t){this._webGLHelper=t,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new ur([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:O0(ov),texture:t?this._createTextureNow(o7):void 0}}async waitUntilReady(){await Promise.all(this._promises)}getFont(t,n="normal",r="regular"){if(De(r)&&(r=s7[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:t,style:n,weight:r};let o=this._fonts.get(i);return o||(o={metrics:void 0,texture:void 0},this._fonts.set(i,o),this._promises.push(this._loadFontEntry(o,i))),o}async _loadFontEntry(t,n){try{const r=await this._loadMetadata(n.family),i=u7(r,n),o=this.fontRepository+yv(n.family)+"/"+i.replace(/\.\w+/,""),s=this._createTexture(o+".png"),a=this._loadFont(o+".json");t.texture=await s,t.metrics=await a}catch{console.warn(`Cannot load font: "${n.family}". Using the embedded default font.`),t.metrics=this._defaultFontEntry.metrics,t.texture=this._defaultFontEntry.texture}}_loadFont(t){let n=this._fontPromises.get(t);return n||(n=fetch(t).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>O0(r)),this._fontPromises.set(t,n)),n}_loadMetadata(t){const n=yv(t);let r=this._metadataPromises.get(n);if(!r){const i=this.fontRepository+n+"/METADATA.pb";r=fetch(i).then(o=>{if(!o.ok)throw new Error("Could not load font metadata. Response status: "+o.status+", url: "+i);return o}).then(o=>o.text()).then(o=>l7(o)).catch(o=>{console.warn(o.message)}),this._metadataPromises.set(n,r)}return r}getDefaultFont(){return this._defaultFontEntry}_createTexture(t){const n=this._webGLHelper.gl;return new Promise((r,i)=>{qa(n,{src:t,min:n.LINEAR},(o,s,a)=>{o?i(o):r(s)})})}_createTextureNow(t){const n=this._webGLHelper.gl;let r;const i=new Promise((o,s)=>{r=qa(n,{src:t,min:n.LINEAR},(a,u,l)=>{a?s(a):o(u)})});return this._promises.push(i),r}}function yv(e){return e.toLowerCase().replaceAll(/[^\w]/g,"")}function l7(e){const t=e.split(`
|
|
519
|
+
`),n=[];let r;for(const i of t)if(i.startsWith("fonts {")&&(r={name:void 0,style:void 0,weight:void 0,filename:void 0,post_script_name:void 0,full_name:void 0,copyright:void 0}),i.startsWith("}")&&(n.push(r),r=void 0),r){let o=i.match(/^\s*([A-Za-z_]+):[ ]?"(.*)"$/);if(o){const s=o[1];r[s]=o[2]}if(o=i.match(/^\s*([A-Za-z_]+):[ ]?(\d+)$/),o){const s=o[1];r[s]=+o[2]}}return n}function u7(e,t){let n,r=Number.POSITIVE_INFINITY;for(const i of e)if(t.family.localeCompare(i.name,void 0,{sensitivity:"accent"})==0&&t.style==i.style){const o=Math.abs(t.weight-i.weight);o<r&&(r=o,n=i)}return n==null?void 0:n.filename}function c7(e,t){const n=[];let r;for(const i of e.split(`
|
|
520
|
+
`))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 f7{constructor(t,n){this.animator=t,this.disabled=!!n,this.maxDistance=500,this.callback=null,this.targetValue=0,this.lastValue=0,this.smoother=J0(t,r=>{var o;const i=r.x-this.lastValue;this.lastValue=r.x,(o=this.callback)==null||o.call(this,i)},40,.1,{x:0})}cancel(){this.lastValue!==this.targetValue&&(this.targetValue=Hm([this.lastValue,this.targetValue],.3),this.smoother({x:this.targetValue}))}setMomentum(t,n){if(this.disabled){n(t);return}this.callback=n;const r=as(this.targetValue+t-this.lastValue,-this.maxDistance,this.maxDistance);this.targetValue=this.lastValue+r,this.smoother({x:this.targetValue})}}function h7(e){const t={},n=["string","number","boolean"],r=["wheelDelta","wheelDeltaX","wheelDeltaY"];for(const i in e){const o=i;!r.includes(i)&&n.includes(typeof e[o])&&(t[o]=e[o])}return t}const wv=new Map;async function d7(e,t,n){const r=e.symbol;let i=wv.get(r)??await m7(e.symbol);return i?(wv.set(r,i),et`
|
|
515
521
|
<div class="title">
|
|
516
522
|
<strong>${i.name}</strong>
|
|
517
523
|
${i.description}
|
|
518
524
|
</div>
|
|
519
525
|
<p class="summary">${i.summary}</p>
|
|
520
526
|
<p class="source">Source: NCBI RefSeq Gene</p>
|
|
521
|
-
`):null}async function
|
|
527
|
+
`):null}async function p7(e){console.log("Searching: "+e);const t={mode:"cors"},r=(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=gene&term=${e}[GENE]&sort=relevance&retmode=json`,t).then(i=>i.json())).esearchresult.idlist[0];return r?(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=gene&id=${r}&retmode=json`,t).then(s=>s.json())).result[r]:null}const g7=hf(p7,500);function m7(e){return g7(e)}const b7=_t(".4~r"),y7=_t(".4~e");function vv(e){return e==null?et` <span class="na">NA</span> `:De(e)?e.substring(0,30):Number.isInteger(e)?""+e:Dt(e)?Math.abs(e)>Math.pow(10,8)||Math.abs(e)<Math.pow(10,-8)?y7(e):b7(e):fa(e)?e?"True":"False":xt(e)?et`${e.map((t,n)=>[vv(t),n<e.length-1?", ":rt])}`:"?"+typeof e+" "+e}async function w7(e,t,n){const r=(u,l)=>{var c;for(const[f,h]of Object.entries(t.encoders))if((c=h==null?void 0:h.dataAccessor)!=null&&c.fields.includes(u))switch(f){case"color":case"fill":case"stroke":return et`
|
|
522
528
|
<span
|
|
523
529
|
class="color-legend"
|
|
524
530
|
style=${`background-color: ${h(l)}`}
|
|
@@ -528,7 +534,7 @@ chrM 16299`};function f9(e){if(!(e in Pw))throw new Error(`Unknown assembly: ${e
|
|
|
528
534
|
${i.map(([u,l])=>et`
|
|
529
535
|
<tr>
|
|
530
536
|
<th>${u}</th>
|
|
531
|
-
<td>${
|
|
537
|
+
<td>${vv(l)} ${r(u,e)}</td>
|
|
532
538
|
</tr>
|
|
533
539
|
`)}
|
|
534
540
|
</table>
|
|
@@ -536,7 +542,7 @@ chrM 16299`};function f9(e){if(!(e in Pw))throw new Error(`Unknown assembly: ${e
|
|
|
536
542
|
<div class="title">
|
|
537
543
|
<strong>${s}</strong>
|
|
538
544
|
</div>
|
|
539
|
-
`:"";return et`${a}${o}`}class Tl extends Xw{constructor(t,n,r,i,o,s){super(t,n,r,i,o,s),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===Sl)return n;if(n!==I9){t.beforeChildren&&t.beforeChildren(this);for(const r of this){const i=r.visit(t);if(i===Sl)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 Tl)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,Sl}),n}getDefaultResolution(t,n){return"shared"}}class kl extends Tl{constructor(n,r,i,o,s,a){super(n,r,i,o,s,{layersChildren:!0,...a});ee(this,Ir,[]);this.spec=n,this.needsAxes={x:!0,y:!0}}async initializeChildren(){le(this,Ir,await Promise.all(this.spec.layer.map((n,r)=>this.context.createOrImportView(n,this,this,"grid"+r,i=>{if(!rp(i)&&!np(i))throw new ro("LayerView accepts only unit or layer specs as children!",this)}))))}get children(){return z(this,Ir).slice()}*[Symbol.iterator](){for(const n of z(this,Ir))yield n}render(n,r,i={}){if(super.render(n,r,i),!!this.isConfiguredVisible()){n.pushView(this,r);for(const o of z(this,Ir))o.render(n,r,i);n.popView(this)}}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0);for(let r=z(this,Ir).length-1;r>=0;r--)if(z(this,Ir)[r].propagateInteractionEvent(n),n.stopped)return;this.handleInteractionEvent(void 0,n,!1)}}Ir=new WeakMap;class wv{constructor(t,n){this.n=t,this.maxCols=n??1/0}get nRows(){return this.maxCols==1/0?1:Math.ceil(this.n/this.maxCols)}get nCols(){return Math.min(this.n,this.maxCols)}get rowIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const o=[];t.push(o);for(let s=0;s<n;s++){const a=i*n+s;a<this.n&&o.push(a)}}return t}get colIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const o=[];t.push(o);for(let s=0;s<r;s++){const a=s*n+i;a<this.n&&o.push(a)}}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 y7="chromosome_ticks_and_labels",w7={x:"width",y:"height"};function K0(e){return e=="x"?"y":"x"}const df={x:["bottom","top"],y:["left","right"]},J0=Object.fromEntries(Object.entries(df).map(([e,t])=>t.map(n=>[n,e])).flat(1));function oi(e){return J0[e]}class vv extends kl{constructor(t,n,r,i,o,s){const a=n=="locus",u={...a?A7:Av,...v7(n,t),...t};super(a?x7(u,n):xv(u,n),r,i,o,`axis_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...s}),this.axisProps=u}getSize(){const t={px:this.getPerpendicularSize()},n={grow:1};return J0[this.axisProps.orient]=="x"?new ii(n,t):new ii(t,n)}getPerpendicularSize(){return ep(this.axisProps)}isPickingSupported(){return!1}}function ep(e){const t=oi(e.orient);let n=e.ticks&&e.tickSize||0;return e.labels&&(n+=e.labelPadding,t=="x"?n+=e.labelFontSize:n+=30),e.title&&(n+=e.titlePadding+e.titleFontSize),n=Math.min(e.maxExtent||1/0,Math.max(e.minExtent||0,n)),n}const Av={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 v7(e,t){const n=t.orient,r=e=="nominal"||e=="ordinal";let i="center",o="middle",s=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(s)>30?(i=s>0==(n=="bottom")?"left":"right",o="middle"):o=n=="top"?"alphabetic":"top";break}return{labelAlign:i,labelAngle:s,labelBaseline:o}}function xv(e,t){const n={...e,extent:ep(e)},r=oi(n.orient),i=K0(r),o=n.orient=="bottom"||n.orient=="right"?1:-1,s=n.orient=="bottom"||n.orient=="left"?1:0,a=()=>({name:"domain",data:{values:[0]},mark:{type:"rule",clip:!1,strokeDash:n.domainDash,strokeCap:n.domainCap,color:n.domainColor,[i]:s,size:n.domainWidth}}),u=()=>({name:"labels",mark:{type:"text",clip:!1,align:n.labelAlign,angle:n.labelAngle,baseline:n.labelBaseline,[i+"Offset"]:(n.tickSize+n.labelPadding)*o,[i]:s,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:s},[i+"2"]:{value:s-n.tickSize/n.extent*(s?1:-1)}}}),c=()=>({name:"title",data:{values:[0]},mark:{type:"text",clip:!1,align:"center",baseline:n.orient=="bottom"?"bottom":"top",angle:[0,90,0,-90][["top","right","bottom","left"].indexOf(n.orient)],text:n.title,color:n.titleColor,[r]:.5,[i]:1-s}}),f=()=>{const d={name:"ticks_and_labels",encoding:{[r]:{field:"value",type:t}},layer:[]};return n.ticks&&d.layer.push(l()),n.labels&&d.layer.push(u()),d},h={resolve:{scale:{[r]:"forced"}},[w7[K0(r)]]:n.extent,data:{lazy:{type:"axisTicks",channel:r,axis:e}},layer:[]};return n.domain&&h.layer.push(a()),(n.ticks||n.labels)&&h.layer.push(f()),n.title&&h.layer.push(c()),h}const A7={...Av,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 x7(e,t){const n={...e,extent:ep(e)},r=oi(n.orient),i=K0(r),o=n.orient=="bottom"||n.orient=="left"?1:0,s=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:e.chromTickDash,strokeDashOffset:e.chromTickDashOffset,[i]:o,[i+"2"]:o-n.chromTickSize/n.extent*(o?1:-1),color:e.chromTickColor,size:n.chromTickWidth}}),a=()=>{let c;switch(n.orient){case"top":c={y:0,angle:0,paddingX:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":c={y:1,angle:0,paddingX:4,dy:n.chromLabelPadding+n.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":c={x:1,angle:-90,paddingY:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":c={x:0,angle:90,align:"right",paddingY:4,dy:-n.chromLabelPadding};break;default:c={}}return{name:"chromosome_labels",mark:{type:"text",size:n.chromLabelFontSize,font:n.chromLabelFont,fontWeight:n.chromLabelFontWeight,fontStyle:n.chromLabelFontStyle,color:n.chromLabelColor,align:e.chromLabelAlign,baseline:"alphabetic",clip:!1,...c},encoding:{[r+"2"]:{field:"continuousEnd",type:t},text:{field:"name"}}}};let u;switch(n.orient){case"bottom":case"top":u={};break;case"left":u={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":u={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:u={}}const l=xv({...e,...u},t);if(e.chromTicks||e.chromLabels){const c={name:y7,data:{lazy:{type:"axisGenome",channel:oi(n.orient)}},encoding:{[r]:{field:"continuousStart",type:t,band:0}},layer:[]};if(e.chromTicks&&c.layer.push(s()),e.chromLabels){c.layer.push(a());let f;l.layer.filter(h=>h.name=="ticks_and_labels").forEach(h=>h.layer.filter(d=>d.name=="labels").forEach(d=>{f=d.mark})),f&&(n.orient=="top"||n.orient=="bottom"?(f.viewportEdgeFadeWidthLeft=30,f.viewportEdgeFadeDistanceLeft=40):(f.viewportEdgeFadeWidthBottom=30,f.viewportEdgeFadeDistanceBottom=40))}l.layer.push(c)}return l}class E7 extends kl{constructor(t,n,r,i,o,s){const u={...n=="locus"?_7:Ev,...t};super(k7(u,n),r,i,o,`axisGrid_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...s}),this.axisProps=u}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const Ev={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},_7={...Ev,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function S7(e,t){const n=e,r=oi(n.orient);return{name:"grid_lines",data:{lazy:{type:"axisTicks",channel:r,axis:e}},mark:{type:"rule",strokeDash:n.gridDash,strokeCap:n.gridCap,color:n.gridColor,size:n.gridWidth,opacity:n.gridOpacity,minBufferSize:300},encoding:{[r]:{field:"value",type:t}}}}function C7(e,t){const n=e,r=oi(n.orient);return{name:"chromosome_lines",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rule",strokeDash:n.chromGridDash,strokeCap:n.chromGridCap,color:n.chromGridColor,size:n.chromGridWidth,opacity:n.chromGridOpacity},encoding:{[r]:{field:"continuousStart",type:t,band:0}}}}function T7(e,t){const n=e,r=oi(n.orient);return{name:"chromosome_fill",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rect"},encoding:{[r]:{field:"continuousStart",type:t,band:0},[r+"2"]:{field:"continuousEnd",band:0},fill:{field:"odd",type:"nominal",scale:{domain:[!1,!0],range:[n.chromGridFillEven??"white",n.chromGridFillOdd??"white"]}},opacity:{field:"odd",type:"nominal",scale:{type:"ordinal",domain:[!1,!0],range:[n.chromGridFillEven?1:0,n.chromGridFillOdd?1:0]}}}}}function k7(e,t){const n={...e},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(T7(n,t)),n.chromGrid&&n.chromGridOpacity>0&&r.push(C7(n,t)),n.grid&&n.gridOpacity>0&&r.push(S7(n,t)),{name:"grid_layers",configurableVisibility:!1,resolve:{scale:{[oi(e.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const _v={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"},I7={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},B7={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},D7={start:0,middle:.5,end:1},R7={start:"left",middle:"center",end:"right"};function F7(e){if(!e)return;const t=De(e)?{text:e}:e;if(!t.text||t.orient=="none")return;const n={"track-title":I7,overlay:B7}[t.style]??{},r={..._v,...n,...t};let i={},o={x:0,y:0};const s=D7[r.anchor??"middle"];switch(r.orient){case"top":o={x:s,y:1},i={baseline:"alphabetic",angle:0};break;case"right":o={x:1,y:1-s},i={baseline:"alphabetic",angle:90};break;case"bottom":o={x:s,y:0},i={baseline:"top",angle:0};break;case"left":o={x:0,y:s},i={baseline:"alphabetic",angle:-90};break}const a={..._v,...i,...n,...t},u={xOffset:0,yOffset:0};switch(r.orient){case"top":u.yOffset=-a.offset;break;case"right":u.xOffset=a.offset;break;case"bottom":u.yOffset=a.offset;break;case"left":u.xOffset=-a.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...o,...u,text:a.text,align:a.align??R7[a.anchor],angle:a.angle,baseline:a.baseline,dx:a.dx,dy:a.dy,color:a.color,font:a.font,size:a.fontSize,fontStyle:a.fontStyle,fontWeight:a.fontWeight}}}class M7{constructor(t){ee(this,Ro);ee(this,Ai,0);ee(this,xi,0);le(this,Ro,new Array(t))}push(t){z(this,Ro)[z(this,Ai)]=t,le(this,Ai,(z(this,Ai)+1)%this.size),le(this,xi,Math.min(z(this,xi)+1,this.size))}get(){const t=z(this,Ro);return z(this,xi)<this.size?t.slice(0,z(this,xi)):t.slice(z(this,Ai),this.size).concat(t.slice(0,z(this,Ai)))}get size(){return z(this,Ro).length}get length(){return z(this,xi)}}Ro=new WeakMap,Ai=new WeakMap,xi=new WeakMap;let io,Sv=0;function Cv(){return performance.now()-Sv<50}function P7(e){return function(...t){Sv=performance.now(),e(...t)}}function L7(e,t,n,r,i){if(n=P7(n),e.type=="wheel"){e.uiEvent.preventDefault();const o=e.uiEvent,s=o.deltaMode?120:1;if(!o.deltaX&&!o.deltaY)return;io==null||io.stop();let{x:a,y:u}=e.point;if(r){const l=r.mark.encoders;l.x&&!l.x2&&!l.x.constant&&(a=+l.x(r.datum)*t.width+t.x),l.y&&!l.y2&&!l.y.constant&&(u=(1-+l.y(r.datum))*t.height+t.y)}Math.abs(o.deltaX)<Math.abs(o.deltaY)?n({x:a,y:u,xDelta:0,yDelta:0,zDelta:o.deltaY*s/300}):n({x:a,y:u,xDelta:-o.deltaX*s,yDelta:0,zDelta:0})}else if(e.type=="mousedown"&&e.uiEvent.button===0){io&&io.stop();const o=new M7(30),s=e.uiEvent;s.preventDefault();let a=Zn.fromMouseEvent(s);const u=f=>{const h=Zn.fromMouseEvent(f);o.push({point:h,timestamp:performance.now()});const d=h.subtract(a);n({x:a.x,y:a.y,xDelta:d.x,yDelta:d.y,zDelta:0}),a=h},l=()=>{const h=performance.now(),d=o.get().filter(S=>h-S.timestamp<160);if(d.length<5||!i||N7(d))return;const p=d.at(-1),m=d[0],y=p.point.subtract(m.point).multiply(1/(p.timestamp-m.timestamp));let w=a.x,x=a.y;io=X0(i,S=>{n({x:S.x,y:S.y,xDelta:w-S.x,yDelta:x-S.y,zDelta:0}),w=S.x,x=S.y},150,.5,{x:w,y:x}),io({x:a.x-y.x*250,y:a.y-y.y*250})},c=()=>{document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",c),l()};document.addEventListener("mouseup",c,!1),document.addEventListener("mousemove",u,!1)}}function N7(e){const t=e[Math.floor(e.length/2)],n=t.point.subtract(e[0].point).multiply(t.timestamp-e[0].timestamp),r=e.at(-1).point.subtract(t.point).multiply(e.at(-1).timestamp-t.timestamp),i=n.length;return r.length/i<.4}class O7 extends Tl{constructor(n,r,i,o,s,a,u){super(n,r,i,o,s,u);ee(this,ye);ee(this,oa,1/0);ee(this,sa,10);ee(this,on,[]);ee(this,Fo,{});ee(this,aa,0);this.spec=n,le(this,sa,n.spacing??10),le(this,oa,a),le(this,on,[]),this.wrappingFacet=!1}appendChild(n){n.layoutParent??(n.layoutParent=this),z(this,on).push(new kv(n,this,z(this,aa))),uS(this,aa)._++}setChildren(n){le(this,on,[]);for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=z(this,on).findIndex(o=>o.view==n);if(i>=0)z(this,on)[i]=new kv(r,this,z(this,aa));else throw new Error("Not my child view!")}get children(){return z(this,on).map(n=>n.view)}get childCount(){return z(this,on).length}async createAxes(){const n=[];for(const r of ls){const i=this.resolutions.axis[r];if(i){const o=i.getAxisProps();if(o){const s={title:i.getTitle(),orient:df[r][0],...o},a=new vv(s,i.scaleResolution.type,this.context,this,this);n.push(a.initializeChildren()),z(this,Fo)[r]=a}}}return Promise.all([...n,...z(this,on).map(r=>r.createAxes())])}*[Symbol.iterator](){for(const n of z(this,on))yield*n.getChildren();for(const n of Object.values(z(this,Fo)))yield n}getOverhang(){return Q(this,ye,wS).call(this).union(Q(this,ye,Ah).call(this))}getSize(){return this._cache("size",()=>new ii(Q(this,ye,Rm).call(this,"column"),Q(this,ye,Rm).call(this,"row")).addPadding(Q(this,ye,Ah).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(Q(this,ye,Ah).call(this)),n.pushView(this,r);const o={devicePixelRatio:this.context.devicePixelRatio},s=Ww(Q(this,ye,Dm).call(this,"column"),r.width,o),a=Ww(Q(this,ye,Dm).call(this,"row"),r.height,o),u=new wv(z(this,ye,Lo).length,z(this,oa)??1/0),l=c=>Math.round(c*devicePixelRatio)/devicePixelRatio;for(const[c,f]of z(this,ye,Lo).entries()){const{view:h,axes:d,gridLines:p,background:m,backgroundStroke:y,title:w}=f,[x,S]=u.getCellCoords(c),_=s[Q(this,ye,Fm).call(this,"column",x)],T=a[Q(this,ye,Fm).call(this,"row",S)],B=h.getViewportSize(),I=h.getSize(),D=h.getOverhang(),M=_.location-D.left,G=T.location-D.top,N=($e,L)=>($e[L].grow?(L=="width"?_:T).size:$e[L].px)+D[L],ne=N(B,"width"),ie=N(B,"height"),pe=N(I,"width"),be=N(I,"height"),Pe=f.scrollbars.horizontal,_e=f.scrollbars.vertical,Oe=Pe?()=>l(Pe.viewportOffset):()=>0,Ue=_e?()=>l(_e.viewportOffset):()=>0,tt=new wr(()=>r.x+M,()=>r.y+G,()=>ne,()=>ie),ke=h.isScrollable(),Ie=ke?new wr(()=>r.x+M-Oe(),()=>r.y+G-Ue(),()=>pe,()=>be):tt;f.coords=tt;const bt=i.clipRect?tt.intersect(i.clipRect):tt;m==null||m.render(n,bt,{...i,clipRect:void 0});for(const $e of Object.values(p))$e.render(n,tt,i);const Wt=H7(h)||ke;Wt&&h.render(n,Ie,{...i,clipRect:bt}),y==null||y.render(n,bt,{...i,clipRect:void 0});for(const[$e,L]of Object.entries(d)){const P=$e=="left"||$e=="right"?"vertical":"horizontal",q=f.scrollbars[P],j=q?tt.modify(P=="vertical"?{y:()=>Ie.y,height:be}:{x:()=>Ie.x,width:pe}):tt,Z=Tv(j,$e,L);let C=i.clipRect;q&&(C=Z.intersect(C).intersect(q?tt.modify(P=="vertical"?{x:-1e5,width:2e5}:{y:-1e5,height:2e5}):void 0)),L.render(n,Z,{...i,clipRect:C})}for(const $e of Object.values(z(this,Fo))){const P=$e.axisProps.orient;(P=="left"&&x==0||P=="right"&&x==u.nCols-1||P=="top"&&S==0||P=="bottom"&&S==u.nRows-1)&&$e.render(n,Tv(tt.shrink(f.view.getOverhang()),P,$e),i)}Wt||h.render(n,Ie,i);for(const $e of Object.values(f.scrollbars))$e.updateScrollbar(tt,Ie),$e.render(n,r,i);w==null||w.render(n,tt,i)}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=z(this,ye,Lo).find(o=>o.coords.containsPoint(n.point.x,n.point.y));for(const o of Object.values((r==null?void 0:r.scrollbars)??{}))if(o.coords.containsPoint(n.point.x,n.point.y)&&(o.propagateInteractionEvent(n),n.stopped))return;const i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof Kt||i instanceof kl)&&L7(n,r.coords,o=>Q(this,ye,vS).call(this,r.coords,r.view,o),this.context.getCurrentHover(),this.context.animator)),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}oa=new WeakMap,sa=new WeakMap,on=new WeakMap,Fo=new WeakMap,aa=new WeakMap,ye=new WeakSet,Lo=function(){return z(this,on).filter(n=>n.view.isConfiguredVisible())},yS=function(){return new wv(z(this,ye,Lo).length,z(this,oa)??1/0)},zu=function(n){const r=n=="column"?"width":"height",i=(o,s)=>o.map(a=>{const l=z(this,ye,Lo)[a].getOverhangAndPadding();return n=="column"?s?l.right:l.left:s?l.bottom:l.top}).reduce((a,u)=>Math.max(a,u),0);return this._cache(`size/directionSizes/${n}`,()=>z(this,ye,yS)[n=="column"?"colIndices":"rowIndices"].map(o=>({axisBefore:i(o,0),axisAfter:i(o,1),view:C9(o.map(s=>z(this,ye,Lo)[s].view.getViewportSize()[r]))})))},Dm=function(n){const r=Q(this,ye,zu).call(this,n),i=[];i.push(El);for(const[o,s]of r.entries())o>0&&i.push({px:z(this,sa),grow:0}),(o==0||this.wrappingFacet)&&i.push(El),i.push({px:s.axisBefore,grow:0}),i.push(s.view),i.push({px:s.axisAfter,grow:0}),(o==r.length-1||this.wrappingFacet)&&i.push(El);return i},Rm=function(n){let r=0,i=0;const o=n=="row"?this.spec.height:this.spec.width;if(o||o===0)return Yw(o);const s=Q(this,ye,zu).call(this,n);for(const[a,u]of s.entries())a>0&&(i+=z(this,sa)),(a==0||this.wrappingFacet)&&(i+=0),i+=u.axisBefore,i+=u.view.px??0,r+=u.view.grow??0,i+=u.axisAfter,(a==s.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},Fm=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},wS=function(){const n=Q(this,ye,zu).call(this,"column"),r=Q(this,ye,zu).call(this,"row");return!n.length||!r.length?kt.zero():new kt(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)},Ah=function(){const n=r=>{const i=J0[r],o=z(this,Fo)[i];return(o==null?void 0:o.axisProps.orient)!==r?0:Math.max(o.getPerpendicularSize()+o.axisProps.offset,0)};return new kt(n("top"),n("right"),n("bottom"),n("left"))},vS=function(n,r,i){for(const[o,s]of Object.entries(G7(r))){if(s.size<=0)continue;const a=n.normalizePoint(i.x,i.y),u=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),l={x:u.x-a.x,y:u.y-a.y};for(const c of s)c.zoom(2**i.zDelta,o=="y"?1-a[o]:a[o],o=="x"?l.x:-l.y)}this.context.animator.requestRender()};function z7(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 U7(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",opacity: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 G7(e){const t={x:new Set,y:new Set};return e.visit(n=>{for(const[r,i]of Object.entries(t)){const o=n.getScaleResolution(r);o&&o.isZoomable()&&i.add(o)}}),t}function H7(e){let t=!0;return e.visit(n=>{n instanceof Kt&&t&&(t=n.mark.properties.clip===!0)}),t}function Tv(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 kv{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=wr.ZERO,t.needsAxes.x||t.needsAxes.y){const i=t.spec,o="view"in i?i==null?void 0:i.view:void 0,s=z7(o);s&&(this.background=new Kt(s,n.context,n,t,"background"+r,{blockEncodingInheritance:!0}));const a=U7(o);a&&(this.backgroundStroke=new Kt(a,n.context,n,t,"backgroundStroke"+r,{blockEncodingInheritance:!0}));const u=F7(t.spec.title);if(u){const l=new Kt(u,n.context,n,t,"title"+r,{blockEncodingInheritance:!0});this.title=l}}t.spec.viewportWidth!=null&&(this.scrollbars.horizontal=new Iv(this,"horizontal")),t.spec.viewportHeight!=null&&(this.scrollbars.vertical=new Iv(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=(a,u)=>{const l=a.getAxisProps();if(l===null)return;const c=l?{...l}:{};if(!c.orient){for(const f of df[u])if(!n[f]){c.orient=f;break}if(!c.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(c.title??(c.title=a.getTitle()),!df[u].includes(c.orient))throw new Error(`Invalid axis orientation "${c.orient}" on channel "${u}"!`);return c},o=async(a,u,l)=>{const c=i(a,u);if(c){if(n[c.orient])throw new Error(`An axis with the orient "${c.orient}" already exists!`);const f=new vv(c,a.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);n[c.orient]=f,await f.initializeChildren()}},s=async(a,u,l)=>{const c=i(a,u);if(c&&(c.grid||c.chromGrid)){const f=new E7(c,a.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);r[c.orient]=f,await f.initializeChildren()}};for(const a of["x","y"])if(t.needsAxes[a]){const u=t.resolutions.axis[a];if(!u)continue;await o(u,a,t)}for(const a of["x","y"])if(t.needsAxes[a]&&t.getConfiguredOrDefaultResolution(a,"axis")!="excluded"){const u=t.getAxisResolution(a);if(!u)continue;await s(u,a,t)}if(t instanceof kl){for(const a of t)for(const[u,l]of Object.entries(a.resolutions.axis)){const c=l.getAxisProps();c&&c.orient&&await o(l,u,a)}for(const a of t)for(const[u,l]of Object.entries(a.resolutions.axis)){const c=l.getAxisProps();c&&!c.orient&&await o(l,u,a)}}[...Object.values(n),...Object.values(r)].forEach(a=>a.visit(u=>{u instanceof Kt&&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 kt(t("top"),t("right"),t("bottom"),t("left")).add(this.view.getOverhang())}getOverhangAndPadding(){return this.getOverhang().add(this.view.getPadding())}}class Iv extends Kt{constructor(n,r){const i={scrollbarSize:8,scrollbarPadding:2};super({data:{values:[{}]},mark:{type:"rect",fill:"#b0b0b0",fillOpacity:.6,stroke:"white",strokeWidth:1,strokeOpacity:1,cornerRadius:5,clip:!1},configurableVisibility:!1},n.layoutParent.context,n.layoutParent,n.view,"scrollbar-"+r,{blockEncodingInheritance:!0});ee(this,la);ee(this,Pu,wr.ZERO);ee(this,Ei,0);ee(this,Mo,0);Nt(this,"viewportOffset",0);this.config=i,le(this,la,r),this.interpolateViewportOffset=X0(this.context.animator,o=>{this.viewportOffset=o.x},50,.4,{x:this.viewportOffset}),this.addInteractionEventListener("mousedown",(o,s)=>{if(s.stopPropagation(),z(this,Ei)<=0)return;const a=d=>r=="vertical"?d.clientY:d.clientX,u=s.uiEvent;u.preventDefault();const l=this.scrollOffset,c=a(u),f=d=>{const p=as(a(d)-c+l,0,z(this,Ei));this.interpolateViewportOffset({x:p/z(this,Ei)*z(this,Mo)})},h=()=>{document.removeEventListener("mousemove",f),document.removeEventListener("mouseup",h)};document.addEventListener("mouseup",h,!1),document.addEventListener("mousemove",f,!1)})}get scrollOffset(){return this.viewportOffset/z(this,Mo)*z(this,Ei)}render(n,r,i){super.render(n,z(this,Pu),i)}updateScrollbar(n,r){const i=this.config.scrollbarPadding,o=this.config.scrollbarSize,s=z(this,la)=="horizontal"?"width":"height",a=Math.min(1,n[s]/r[s]),u=n[s]-2*i,l=a*u;le(this,Ei,u-l),le(this,Mo,r[s]-n[s]),this.viewportOffset=as(this.viewportOffset,0,z(this,Mo)),le(this,Pu,z(this,la)=="vertical"?new wr(()=>n.x+n.width-o-i,()=>n.y+i+this.scrollOffset,()=>o,()=>l):new wr(()=>n.x+i+this.scrollOffset,()=>n.y+n.height-o-i,()=>l,()=>o))}}la=new WeakMap,Pu=new WeakMap,Ei=new WeakMap,Mo=new WeakMap;class tp extends O7{constructor(t,n,r,i,o){super(t,n,r,i,o,ip(t)?t.columns:pf(t)?1:1/0),this.spec=t}async initializeChildren(){const t=this.spec,n=ip(t)?t.concat:pf(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":pf(this.spec)&&t==="x"||Rv(this.spec)&&t==="y"?"shared":"independent"}}const Bv="viewRoot";class V7{constructor(t={}){ee(this,ua,new Map);this.options={allowImport:!0,wrapRoot:!0,...t};const n=r=>(i,o,s,a,u)=>new r(i,o,s,a,i.name??u);this.addViewType(rp,n(kl)),this.addViewType(np,n(Kt)),this.addViewType(pf,n(tp)),this.addViewType(Rv,n(tp)),this.addViewType(ip,n(tp)),this.addViewType(q7,()=>{throw new Error("SampleView is not supported by the @genome-spy/core package. Use @genome-spy/app instead!")})}addViewType(t,n){z(this,ua).set(t,n)}createView(t,n,r,i,o){for(const[s,a]of z(this,ua))if(s(t))return a(t,n,r,i,o);throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(t)]))}isViewSpec(t){const n=[...z(this,ua).keys()].filter(r=>r(t));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}async createOrImportView(t,n,r,i,o,s){let a;if($7(t)){let l;if("url"in t.import)if(this.options.allowImport)l=await YF(t,i.getBaseUrl(),n);else throw new ro("Importing views is not allowed!",r);else if("template"in t.import)l=Dv(t.import.template,i);else throw new Error("Invalid import: "+JSON.stringify(t));s==null||s(l),j7(l,t),a=l}else a=t;!i&&this.options.wrapRoot&&(np(a)||rp(a))&&o===Bv&&(a={name:"implicitRoot",vconcat:[a]});const u=this.createView(a,n,r,i,o);return u instanceof Tl&&await u.initializeChildren(),u}}ua=new WeakMap;function Dv(e,t){var r,i;const n=(i=(r=t.spec)==null?void 0:r.templates)==null?void 0:i[e];if(n)return structuredClone(n);if(t.dataParent)return Dv(e,t.dataParent);throw new Error(`Cannot find template "${e}" in current view or its ancestors!`)}function j7(e,t){t.name!=null&&(e.name=t.name);const n=xt(t.params)?t.params:Et(t.params)?Object.entries(t.params).map(([r,i])=>({name:r,value:i})):[];if(n.length){e.params??(e.params=[]);for(const r of n){const i=e.params.findIndex(o=>o.name==r.name);i>=0&&(e.params[i]=r)}for(const r of n)e.params.some(i=>i.name==r.name)||e.params.push(r)}}function np(e){return"mark"in e&&(De(e.mark)||Et(e.mark))}function rp(e){return"layer"in e&&Et(e.layer)}function $7(e){return"import"in e}function pf(e){return"vconcat"in e&&xt(e.vconcat)}function Rv(e){return"hconcat"in e&&xt(e.hconcat)}function ip(e){return"concat"in e&&xt(e.concat)}function q7(e){return"samples"in e&&Et(e.samples)&&"spec"in e&&Et(e.spec)}function W7(e){const t=Math.floor(Math.random()*16777215).toString(16),n=[];for(const r of e.paramConfigs.values()){if(!bD(r))continue;const i=r.bind;if(!i||!("input"in i))continue;const o=r.name,s=e.getSetter(o),a=e.getValue(o),u=i.name??o,l=i.debounce?ff(s,i.debounce,!1):s,c=`${t}-param-${o}`;if(i.input=="range")n.push(et`<label for=${c}>${u}</label>
|
|
545
|
+
`:"";return et`${a}${o}`}class Tl extends Jw{constructor(t,n,r,i,o,s){super(t,n,r,i,o,s),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===Sl)return n;if(n!==D9){t.beforeChildren&&t.beforeChildren(this);for(const r of this){const i=r.visit(t);if(i===Sl)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 Tl)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,Sl}),n}getDefaultResolution(t,n){return"shared"}}class kl extends Tl{constructor(n,r,i,o,s,a){super(n,r,i,o,s,{layersChildren:!0,...a});J(this,Ir,[]);this.spec=n,this.needsAxes={x:!0,y:!0}}async initializeChildren(){le(this,Ir,await Promise.all(this.spec.layer.map((n,r)=>this.context.createOrImportView(n,this,this,"grid"+r,i=>{if(!op(i)&&!ip(i))throw new ro("LayerView accepts only unit or layer specs as children!",this)}))))}get children(){return z(this,Ir).slice()}*[Symbol.iterator](){for(const n of z(this,Ir))yield n}render(n,r,i={}){if(super.render(n,r,i),!!this.isConfiguredVisible()){n.pushView(this,r);for(const o of z(this,Ir))o.render(n,r,i);n.popView(this)}}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0);for(let r=z(this,Ir).length-1;r>=0;r--)if(z(this,Ir)[r].propagateInteractionEvent(n),n.stopped)return;this.handleInteractionEvent(void 0,n,!1)}}Ir=new WeakMap;class Av{constructor(t,n){this.n=t,this.maxCols=n??1/0}get nRows(){return this.maxCols==1/0?1:Math.ceil(this.n/this.maxCols)}get nCols(){return Math.min(this.n,this.maxCols)}get rowIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const o=[];t.push(o);for(let s=0;s<n;s++){const a=i*n+s;a<this.n&&o.push(a)}}return t}get colIndices(){const t=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const o=[];t.push(o);for(let s=0;s<r;s++){const a=s*n+i;a<this.n&&o.push(a)}}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 v7="chromosome_ticks_and_labels",A7={x:"width",y:"height"};function ep(e){return e=="x"?"y":"x"}const pf={x:["bottom","top"],y:["left","right"]},tp=Object.fromEntries(Object.entries(pf).map(([e,t])=>t.map(n=>[n,e])).flat(1));function oi(e){return tp[e]}class xv extends kl{constructor(t,n,r,i,o,s){const a=n=="locus",u={...a?E7:Ev,...x7(n,t),...t};super(a?_7(u,n):_v(u,n),r,i,o,`axis_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...s}),this.axisProps=u}getSize(){const t={px:this.getPerpendicularSize()},n={grow:1};return tp[this.axisProps.orient]=="x"?new ii(n,t):new ii(t,n)}getPerpendicularSize(){return np(this.axisProps)}isPickingSupported(){return!1}}function np(e){const t=oi(e.orient);let n=e.ticks&&e.tickSize||0;return e.labels&&(n+=e.labelPadding,t=="x"?n+=e.labelFontSize:n+=30),e.title&&(n+=e.titlePadding+e.titleFontSize),n=Math.min(e.maxExtent||1/0,Math.max(e.minExtent||0,n)),n}const Ev={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 x7(e,t){const n=t.orient,r=e=="nominal"||e=="ordinal";let i="center",o="middle",s=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(s)>30?(i=s>0==(n=="bottom")?"left":"right",o="middle"):o=n=="top"?"alphabetic":"top";break}return{labelAlign:i,labelAngle:s,labelBaseline:o}}function _v(e,t){const n={...e,extent:np(e)},r=oi(n.orient),i=ep(r),o=n.orient=="bottom"||n.orient=="right"?1:-1,s=n.orient=="bottom"||n.orient=="left"?1:0,a=()=>({name:"domain",data:{values:[{}]},mark:{type:"rule",clip:!1,strokeDash:n.domainDash,strokeCap:n.domainCap,color:n.domainColor,[i]:s,size:n.domainWidth}}),u=()=>({name:"labels",mark:{type:"text",clip:!1,align:n.labelAlign,angle:n.labelAngle,baseline:n.labelBaseline,[i+"Offset"]:(n.tickSize+n.labelPadding)*o,[i]:s,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:s},[i+"2"]:{value:s-n.tickSize/n.extent*(s?1:-1)}}}),c=()=>({name:"title",data:{values:[{}]},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-s}}),f=()=>{const d={name:"ticks_and_labels",encoding:{[r]:{field:"value",type:t}},layer:[]};return n.ticks&&d.layer.push(l()),n.labels&&d.layer.push(u()),d},h={resolve:{scale:{[r]:"forced"}},[A7[ep(r)]]:n.extent,data:{lazy:{type:"axisTicks",channel:r,axis:e}},layer:[]};return n.domain&&h.layer.push(a()),(n.ticks||n.labels)&&h.layer.push(f()),n.title&&h.layer.push(c()),h}const E7={...Ev,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 _7(e,t){const n={...e,extent:np(e)},r=oi(n.orient),i=ep(r),o=n.orient=="bottom"||n.orient=="left"?1:0,s=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:e.chromTickDash,strokeDashOffset:e.chromTickDashOffset,[i]:o,[i+"2"]:o-n.chromTickSize/n.extent*(o?1:-1),color:e.chromTickColor,size:n.chromTickWidth}}),a=()=>{let c;switch(n.orient){case"top":c={y:0,angle:0,paddingX:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":c={y:1,angle:0,paddingX:4,dy:n.chromLabelPadding+n.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":c={x:1,angle:-90,paddingY:4,dy:-n.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":c={x:0,angle:90,align:"right",paddingY:4,dy:-n.chromLabelPadding};break;default:c={}}return{name:"chromosome_labels",mark:{type:"text",size:n.chromLabelFontSize,font:n.chromLabelFont,fontWeight:n.chromLabelFontWeight,fontStyle:n.chromLabelFontStyle,color:n.chromLabelColor,align:e.chromLabelAlign,baseline:"alphabetic",clip:!1,...c},encoding:{[r+"2"]:{field:"continuousEnd",type:t},text:{field:"name"}}}};let u;switch(n.orient){case"bottom":case"top":u={};break;case"left":u={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":u={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:u={}}const l=_v({...e,...u},t);if(e.chromTicks||e.chromLabels){const c={name:v7,data:{lazy:{type:"axisGenome",channel:oi(n.orient)}},encoding:{[r]:{field:"continuousStart",type:t,band:0}},layer:[]};if(e.chromTicks&&c.layer.push(s()),e.chromLabels){c.layer.push(a());let f;l.layer.filter(h=>h.name=="ticks_and_labels").forEach(h=>h.layer.filter(d=>d.name=="labels").forEach(d=>{f=d.mark})),f&&(n.orient=="top"||n.orient=="bottom"?(f.viewportEdgeFadeWidthLeft=30,f.viewportEdgeFadeDistanceLeft=40):(f.viewportEdgeFadeWidthBottom=30,f.viewportEdgeFadeDistanceBottom=40))}l.layer.push(c)}return l}class S7 extends kl{constructor(t,n,r,i,o,s){const u={...n=="locus"?C7:Sv,...t};super(B7(u,n),r,i,o,`axisGrid_${t.orient}`,{blockEncodingInheritance:!0,contributesToScaleDomain:!1,...s}),this.axisProps=u}getOrient(){return this.axisProps.orient}isPickingSupported(){return!1}}const Sv={values:null,grid:!1,gridCap:"butt",gridColor:"lightgray",gridDash:null,gridOpacity:1,gridWidth:1,tickCount:null,tickMinStep:null},C7={...Sv,chromGrid:!1,chromGridCap:"butt",chromGridColor:"gray",chromGridDash:[1,5],chromGridOpacity:1,chromGridWidth:1};function T7(e,t){const n=e,r=oi(n.orient);return{name:"grid_lines",data:{lazy:{type:"axisTicks",channel:r,axis:e}},mark:{type:"rule",strokeDash:n.gridDash,strokeCap:n.gridCap,color:n.gridColor,size:n.gridWidth,opacity:n.gridOpacity,minBufferSize:300},encoding:{[r]:{field:"value",type:t}}}}function k7(e,t){const n=e,r=oi(n.orient);return{name:"chromosome_lines",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rule",strokeDash:n.chromGridDash,strokeCap:n.chromGridCap,color:n.chromGridColor,size:n.chromGridWidth,opacity:n.chromGridOpacity},encoding:{[r]:{field:"continuousStart",type:t,band:0}}}}function I7(e,t){const n=e,r=oi(n.orient);return{name:"chromosome_fill",data:{lazy:{type:"axisGenome",channel:r}},mark:{type:"rect"},encoding:{[r]:{field:"continuousStart",type:t,band:0},[r+"2"]:{field:"continuousEnd",band:0},fill:{field:"odd",type:"nominal",scale:{domain:[!1,!0],range:[n.chromGridFillEven??"white",n.chromGridFillOdd??"white"]}},opacity:{field:"odd",type:"nominal",scale:{type:"ordinal",domain:[!1,!0],range:[n.chromGridFillEven?1:0,n.chromGridFillOdd?1:0]}}}}}function B7(e,t){const n={...e},r=[];return n.chromGrid&&(n.chromGridFillOdd||n.chromGridFillEven)&&r.push(I7(n,t)),n.chromGrid&&n.chromGridOpacity>0&&r.push(k7(n,t)),n.grid&&n.gridOpacity>0&&r.push(T7(n,t)),{name:"grid_layers",configurableVisibility:!1,resolve:{scale:{[oi(e.orient)]:"forced",fill:"independent",opacity:"independent"}},layer:r}}const Cv={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"},D7={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},R7={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},F7={start:0,middle:.5,end:1},M7={start:"left",middle:"center",end:"right"};function P7(e){if(!e)return;const t=De(e)?{text:e}:e;if(!t.text||t.orient=="none")return;const n={"track-title":D7,overlay:R7}[t.style]??{},r={...Cv,...n,...t};let i={},o={x:0,y:0};const s=F7[r.anchor??"middle"];switch(r.orient){case"top":o={x:s,y:1},i={baseline:"alphabetic",angle:0};break;case"right":o={x:1,y:1-s},i={baseline:"alphabetic",angle:90};break;case"bottom":o={x:s,y:0},i={baseline:"top",angle:0};break;case"left":o={x:0,y:s},i={baseline:"alphabetic",angle:-90};break}const a={...Cv,...i,...n,...t},u={xOffset:0,yOffset:0};switch(r.orient){case"top":u.yOffset=-a.offset;break;case"right":u.xOffset=a.offset;break;case"bottom":u.yOffset=a.offset;break;case"left":u.xOffset=-a.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...o,...u,text:a.text,align:a.align??M7[a.anchor],angle:a.angle,baseline:a.baseline,dx:a.dx,dy:a.dy,color:a.color,font:a.font,size:a.fontSize,fontStyle:a.fontStyle,fontWeight:a.fontWeight}}}class L7{constructor(t){J(this,Ro);J(this,Ai,0);J(this,xi,0);le(this,Ro,new Array(t))}push(t){z(this,Ro)[z(this,Ai)]=t,le(this,Ai,(z(this,Ai)+1)%this.size),le(this,xi,Math.min(z(this,xi)+1,this.size))}get(){const t=z(this,Ro);return z(this,xi)<this.size?t.slice(0,z(this,xi)):t.slice(z(this,Ai),this.size).concat(t.slice(0,z(this,Ai)))}get size(){return z(this,Ro).length}get length(){return z(this,xi)}}Ro=new WeakMap,Ai=new WeakMap,xi=new WeakMap;let io,Tv=0;function kv(){return performance.now()-Tv<50}function N7(e){return function(...t){Tv=performance.now(),e(...t)}}function O7(e,t,n,r,i){if(n=N7(n),e.type=="wheel"){e.uiEvent.preventDefault();const o=e.uiEvent,s=o.deltaMode?120:1;if(!o.deltaX&&!o.deltaY)return;io==null||io.stop();let{x:a,y:u}=e.point;if(r){const l=r.mark.encoders;l.x&&!l.x2&&!l.x.constant&&(a=+l.x(r.datum)*t.width+t.x),l.y&&!l.y2&&!l.y.constant&&(u=(1-+l.y(r.datum))*t.height+t.y)}Math.abs(o.deltaX)<Math.abs(o.deltaY)?n({x:a,y:u,xDelta:0,yDelta:0,zDelta:o.deltaY*s/300}):n({x:a,y:u,xDelta:-o.deltaX*s,yDelta:0,zDelta:0})}else if(e.type=="mousedown"&&e.uiEvent.button===0){io&&io.stop();const o=new L7(30),s=e.uiEvent;s.preventDefault();let a=Zn.fromMouseEvent(s);const u=f=>{const h=Zn.fromMouseEvent(f);o.push({point:h,timestamp:performance.now()});const d=h.subtract(a);n({x:a.x,y:a.y,xDelta:d.x,yDelta:d.y,zDelta:0}),a=h},l=()=>{const h=performance.now(),d=o.get().filter(S=>h-S.timestamp<160);if(d.length<5||!i||z7(d))return;const p=d.at(-1),m=d[0],y=p.point.subtract(m.point).multiply(1/(p.timestamp-m.timestamp));let w=a.x,x=a.y;io=J0(i,S=>{n({x:S.x,y:S.y,xDelta:w-S.x,yDelta:x-S.y,zDelta:0}),w=S.x,x=S.y},150,.5,{x:w,y:x}),io({x:a.x-y.x*250,y:a.y-y.y*250})},c=()=>{document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",c),l()};document.addEventListener("mouseup",c,!1),document.addEventListener("mousemove",u,!1)}}function z7(e){const t=e[Math.floor(e.length/2)],n=t.point.subtract(e[0].point).multiply(t.timestamp-e[0].timestamp),r=e.at(-1).point.subtract(t.point).multiply(e.at(-1).timestamp-t.timestamp),i=n.length;return r.length/i<.4}class U7 extends Tl{constructor(n,r,i,o,s,a,u){super(n,r,i,o,s,u);J(this,ye);J(this,oa,1/0);J(this,sa,10);J(this,on,[]);J(this,Fo,{});J(this,aa,0);this.spec=n,le(this,sa,n.spacing??10),le(this,oa,a),le(this,on,[]),this.wrappingFacet=!1}appendChild(n){n.layoutParent??(n.layoutParent=this),z(this,on).push(new Bv(n,this,z(this,aa))),fS(this,aa)._++}setChildren(n){le(this,on,[]);for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=z(this,on).findIndex(o=>o.view==n);if(i>=0)z(this,on)[i]=new Bv(r,this,z(this,aa));else throw new Error("Not my child view!")}get children(){return z(this,on).map(n=>n.view)}get childCount(){return z(this,on).length}async createAxes(){const n=[];for(const r of ls){const i=this.resolutions.axis[r];if(i){const o=i.getAxisProps();if(o){const s={title:i.getTitle(),orient:pf[r][0],...o},a=new xv(s,i.scaleResolution.type,this.context,this,this);n.push(a.initializeChildren()),z(this,Fo)[r]=a}}}return Promise.all([...n,...z(this,on).map(r=>r.createAxes())])}*[Symbol.iterator](){for(const n of z(this,on))yield*n.getChildren();for(const n of Object.values(z(this,Fo)))yield n}getOverhang(){return Q(this,ye,AS).call(this).union(Q(this,ye,xh).call(this))}getSize(){return this._cache("size",()=>new ii(Q(this,ye,Mm).call(this,"column"),Q(this,ye,Mm).call(this,"row")).addPadding(Q(this,ye,xh).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(Q(this,ye,xh).call(this)),n.pushView(this,r);const o={devicePixelRatio:this.context.devicePixelRatio},s=Yw(Q(this,ye,Fm).call(this,"column"),r.width,o),a=Yw(Q(this,ye,Fm).call(this,"row"),r.height,o),u=new Av(z(this,ye,Lo).length,z(this,oa)??1/0),l=c=>Math.round(c*devicePixelRatio)/devicePixelRatio;for(const[c,f]of z(this,ye,Lo).entries()){const{view:h,axes:d,gridLines:p,background:m,backgroundStroke:y,title:w}=f,[x,S]=u.getCellCoords(c),_=s[Q(this,ye,Pm).call(this,"column",x)],T=a[Q(this,ye,Pm).call(this,"row",S)],B=h.getViewportSize(),I=h.getSize(),D=h.getOverhang(),M=_.location-D.left,G=T.location-D.top,N=($e,L)=>($e[L].grow?(L=="width"?_:T).size:$e[L].px)+D[L],ne=N(B,"width"),ie=N(B,"height"),pe=N(I,"width"),be=N(I,"height"),Pe=f.scrollbars.horizontal,_e=f.scrollbars.vertical,Oe=Pe?()=>l(Pe.viewportOffset):()=>0,Ue=_e?()=>l(_e.viewportOffset):()=>0,tt=new wr(()=>r.x+M,()=>r.y+G,()=>ne,()=>ie),ke=h.isScrollable(),Ie=ke?new wr(()=>r.x+M-Oe(),()=>r.y+G-Ue(),()=>pe,()=>be):tt;f.coords=tt;const bt=i.clipRect?tt.intersect(i.clipRect):tt;m==null||m.render(n,bt,{...i,clipRect:void 0});for(const $e of Object.values(p))$e.render(n,tt,i);const Wt=j7(h)||ke;Wt&&h.render(n,Ie,{...i,clipRect:bt}),y==null||y.render(n,bt,{...i,clipRect:void 0});for(const[$e,L]of Object.entries(d)){const P=$e=="left"||$e=="right"?"vertical":"horizontal",q=f.scrollbars[P],j=q?tt.modify(P=="vertical"?{y:()=>Ie.y,height:be}:{x:()=>Ie.x,width:pe}):tt,Z=Iv(j,$e,L);let C=i.clipRect;q&&(C=Z.intersect(C).intersect(q?tt.modify(P=="vertical"?{x:-1e5,width:2e5}:{y:-1e5,height:2e5}):void 0)),L.render(n,Z,{...i,clipRect:C})}for(const $e of Object.values(z(this,Fo))){const P=$e.axisProps.orient;(P=="left"&&x==0||P=="right"&&x==u.nCols-1||P=="top"&&S==0||P=="bottom"&&S==u.nRows-1)&&$e.render(n,Iv(tt.shrink(f.view.getOverhang()),P,$e),i)}Wt||h.render(n,Ie,i);for(const $e of Object.values(f.scrollbars))$e.updateScrollbar(tt,Ie),$e.render(n,r,i);w==null||w.render(n,tt,i)}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=z(this,ye,Lo).find(o=>o.coords.containsPoint(n.point.x,n.point.y));for(const o of Object.values((r==null?void 0:r.scrollbars)??{}))if(o.coords.containsPoint(n.point.x,n.point.y)&&(o.propagateInteractionEvent(n),n.stopped))return;const i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof Kt||i instanceof kl)&&O7(n,r.coords,o=>Q(this,ye,xS).call(this,r.coords,r.view,o),this.context.getCurrentHover(),this.context.animator)),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}oa=new WeakMap,sa=new WeakMap,on=new WeakMap,Fo=new WeakMap,aa=new WeakMap,ye=new WeakSet,Lo=function(){return z(this,on).filter(n=>n.view.isConfiguredVisible())},vS=function(){return new Av(z(this,ye,Lo).length,z(this,oa)??1/0)},Uu=function(n){const r=n=="column"?"width":"height",i=(o,s)=>o.map(a=>{const l=z(this,ye,Lo)[a].getOverhangAndPadding();return n=="column"?s?l.right:l.left:s?l.bottom:l.top}).reduce((a,u)=>Math.max(a,u),0);return this._cache(`size/directionSizes/${n}`,()=>z(this,ye,vS)[n=="column"?"colIndices":"rowIndices"].map(o=>({axisBefore:i(o,0),axisAfter:i(o,1),view:k9(o.map(s=>z(this,ye,Lo)[s].view.getViewportSize()[r]))})))},Fm=function(n){const r=Q(this,ye,Uu).call(this,n),i=[];i.push(El);for(const[o,s]of r.entries())o>0&&i.push({px:z(this,sa),grow:0}),(o==0||this.wrappingFacet)&&i.push(El),i.push({px:s.axisBefore,grow:0}),i.push(s.view),i.push({px:s.axisAfter,grow:0}),(o==r.length-1||this.wrappingFacet)&&i.push(El);return i},Mm=function(n){let r=0,i=0;const o=n=="row"?this.spec.height:this.spec.width;if(o||o===0)return Xw(o);const s=Q(this,ye,Uu).call(this,n);for(const[a,u]of s.entries())a>0&&(i+=z(this,sa)),(a==0||this.wrappingFacet)&&(i+=0),i+=u.axisBefore,i+=u.view.px??0,r+=u.view.grow??0,i+=u.axisAfter,(a==s.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},Pm=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},AS=function(){const n=Q(this,ye,Uu).call(this,"column"),r=Q(this,ye,Uu).call(this,"row");return!n.length||!r.length?kt.zero():new kt(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)},xh=function(){const n=r=>{const i=tp[r],o=z(this,Fo)[i];return(o==null?void 0:o.axisProps.orient)!==r?0:Math.max(o.getPerpendicularSize()+o.axisProps.offset,0)};return new kt(n("top"),n("right"),n("bottom"),n("left"))},xS=function(n,r,i){for(const[o,s]of Object.entries(V7(r))){if(s.size<=0)continue;const a=n.normalizePoint(i.x,i.y),u=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),l={x:u.x-a.x,y:u.y-a.y};for(const c of s)c.zoom(2**i.zDelta,o=="y"?1-a[o]:a[o],o=="x"?l.x:-l.y)}this.context.animator.requestRender()};function G7(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 H7(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",opacity: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 V7(e){const t={x:new Set,y:new Set};return e.visit(n=>{for(const[r,i]of Object.entries(t)){const o=n.getScaleResolution(r);o&&o.isZoomable()&&i.add(o)}}),t}function j7(e){let t=!0;return e.visit(n=>{n instanceof Kt&&t&&(t=n.mark.properties.clip===!0)}),t}function Iv(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 Bv{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=wr.ZERO,t.needsAxes.x||t.needsAxes.y){const i=t.spec,o="view"in i?i==null?void 0:i.view:void 0,s=G7(o);s&&(this.background=new Kt(s,n.context,n,t,"background"+r,{blockEncodingInheritance:!0}));const a=H7(o);a&&(this.backgroundStroke=new Kt(a,n.context,n,t,"backgroundStroke"+r,{blockEncodingInheritance:!0}));const u=P7(t.spec.title);if(u){const l=new Kt(u,n.context,n,t,"title"+r,{blockEncodingInheritance:!0});this.title=l}}t.spec.viewportWidth!=null&&(this.scrollbars.horizontal=new Dv(this,"horizontal")),t.spec.viewportHeight!=null&&(this.scrollbars.vertical=new Dv(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=(a,u)=>{const l=a.getAxisProps();if(l===null)return;const c=l?{...l}:{};if(!c.orient){for(const f of pf[u])if(!n[f]){c.orient=f;break}if(!c.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if(c.title??(c.title=a.getTitle()),!pf[u].includes(c.orient))throw new Error(`Invalid axis orientation "${c.orient}" on channel "${u}"!`);return c},o=async(a,u,l)=>{const c=i(a,u);if(c){if(n[c.orient])throw new Error(`An axis with the orient "${c.orient}" already exists!`);const f=new xv(c,a.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);n[c.orient]=f,await f.initializeChildren()}},s=async(a,u,l)=>{const c=i(a,u);if(c&&(c.grid||c.chromGrid)){const f=new S7(c,a.scaleResolution.type,this.layoutParent.context,this.layoutParent,l);r[c.orient]=f,await f.initializeChildren()}};for(const a of["x","y"])if(t.needsAxes[a]){const u=t.resolutions.axis[a];if(!u)continue;await o(u,a,t)}for(const a of["x","y"])if(t.needsAxes[a]&&t.getConfiguredOrDefaultResolution(a,"axis")!="excluded"){const u=t.getAxisResolution(a);if(!u)continue;await s(u,a,t)}if(t instanceof kl){for(const a of t)for(const[u,l]of Object.entries(a.resolutions.axis)){const c=l.getAxisProps();c&&c.orient&&await o(l,u,a)}for(const a of t)for(const[u,l]of Object.entries(a.resolutions.axis)){const c=l.getAxisProps();c&&!c.orient&&await o(l,u,a)}}[...Object.values(n),...Object.values(r)].forEach(a=>a.visit(u=>{u instanceof Kt&&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 kt(t("top"),t("right"),t("bottom"),t("left")).add(this.view.getOverhang())}getOverhangAndPadding(){return this.getOverhang().add(this.view.getPadding())}}class Dv extends Kt{constructor(n,r){const i={scrollbarSize:8,scrollbarPadding:2};super({data:{values:[{}]},mark:{type:"rect",fill:"#b0b0b0",fillOpacity:.6,stroke:"white",strokeWidth:1,strokeOpacity:1,cornerRadius:5,clip:!1},configurableVisibility:!1},n.layoutParent.context,n.layoutParent,n.view,"scrollbar-"+r,{blockEncodingInheritance:!0});J(this,la);J(this,Lu,wr.ZERO);J(this,Ei,0);J(this,Mo,0);Bt(this,"viewportOffset",0);this.config=i,le(this,la,r),this.interpolateViewportOffset=J0(this.context.animator,o=>{this.viewportOffset=o.x},50,.4,{x:this.viewportOffset}),this.addInteractionEventListener("mousedown",(o,s)=>{if(s.stopPropagation(),z(this,Ei)<=0)return;const a=d=>r=="vertical"?d.clientY:d.clientX,u=s.uiEvent;u.preventDefault();const l=this.scrollOffset,c=a(u),f=d=>{const p=as(a(d)-c+l,0,z(this,Ei));this.interpolateViewportOffset({x:p/z(this,Ei)*z(this,Mo)})},h=()=>{document.removeEventListener("mousemove",f),document.removeEventListener("mouseup",h)};document.addEventListener("mouseup",h,!1),document.addEventListener("mousemove",f,!1)})}get scrollOffset(){return this.viewportOffset/z(this,Mo)*z(this,Ei)}render(n,r,i){super.render(n,z(this,Lu),i)}updateScrollbar(n,r){const i=this.config.scrollbarPadding,o=this.config.scrollbarSize,s=z(this,la)=="horizontal"?"width":"height",a=Math.min(1,n[s]/r[s]),u=n[s]-2*i,l=a*u;le(this,Ei,u-l),le(this,Mo,r[s]-n[s]),this.viewportOffset=as(this.viewportOffset,0,z(this,Mo)),le(this,Lu,z(this,la)=="vertical"?new wr(()=>n.x+n.width-o-i,()=>n.y+i+this.scrollOffset,()=>o,()=>l):new wr(()=>n.x+i+this.scrollOffset,()=>n.y+n.height-o-i,()=>l,()=>o))}}la=new WeakMap,Lu=new WeakMap,Ei=new WeakMap,Mo=new WeakMap;class rp extends U7{constructor(t,n,r,i,o){super(t,n,r,i,o,sp(t)?t.columns:gf(t)?1:1/0),this.spec=t}async initializeChildren(){const t=this.spec,n=sp(t)?t.concat:gf(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":gf(this.spec)&&t==="x"||Mv(this.spec)&&t==="y"?"shared":"independent"}}const Rv="viewRoot";class $7{constructor(t={}){J(this,ua,new Map);this.options={allowImport:!0,wrapRoot:!0,...t};const n=r=>(i,o,s,a,u)=>new r(i,o,s,a,i.name??u);this.addViewType(op,n(kl)),this.addViewType(ip,n(Kt)),this.addViewType(gf,n(rp)),this.addViewType(Mv,n(rp)),this.addViewType(sp,n(rp)),this.addViewType(Z7,()=>{throw new Error("SampleView is not supported by the @genome-spy/core package. Use @genome-spy/app instead!")})}addViewType(t,n){z(this,ua).set(t,n)}createView(t,n,r,i,o){for(const[s,a]of z(this,ua))if(s(t))return a(t,n,r,i,o);throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(t)]))}isViewSpec(t){const n=[...z(this,ua).keys()].filter(r=>r(t));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}async createOrImportView(t,n,r,i,o,s){let a;if(W7(t)){let l;if("url"in t.import)if(this.options.allowImport)l=await XF(t,i.getBaseUrl(),n);else throw new ro("Importing views is not allowed!",r);else if("template"in t.import)l=Fv(t.import.template,i);else throw new Error("Invalid import: "+JSON.stringify(t));s==null||s(l),q7(l,t),a=l}else a=t;!i&&this.options.wrapRoot&&(ip(a)||op(a))&&o===Rv&&(a={name:"implicitRoot",vconcat:[a]});const u=this.createView(a,n,r,i,o);return u instanceof Tl&&await u.initializeChildren(),u}}ua=new WeakMap;function Fv(e,t){var r,i;const n=(i=(r=t.spec)==null?void 0:r.templates)==null?void 0:i[e];if(n)return structuredClone(n);if(t.dataParent)return Fv(e,t.dataParent);throw new Error(`Cannot find template "${e}" in current view or its ancestors!`)}function q7(e,t){t.name!=null&&(e.name=t.name);const n=xt(t.params)?t.params:Et(t.params)?Object.entries(t.params).map(([r,i])=>({name:r,value:i})):[];if(n.length){e.params??(e.params=[]);for(const r of n){const i=e.params.findIndex(o=>o.name==r.name);i>=0&&(e.params[i]=r)}for(const r of n)e.params.some(i=>i.name==r.name)||e.params.push(r)}}function ip(e){return"mark"in e&&(De(e.mark)||Et(e.mark))}function op(e){return"layer"in e&&Et(e.layer)}function W7(e){return"import"in e}function gf(e){return"vconcat"in e&&xt(e.vconcat)}function Mv(e){return"hconcat"in e&&xt(e.hconcat)}function sp(e){return"concat"in e&&xt(e.concat)}function Z7(e){return"samples"in e&&Et(e.samples)&&"spec"in e&&Et(e.spec)}function Y7(e){const t=Math.floor(Math.random()*16777215).toString(16),n=[];for(const r of e.paramConfigs.values()){if(!wD(r))continue;const i=r.bind;if(!i||!("input"in i))continue;const o=r.name,s=e.getSetter(o),a=e.getValue(o),u=i.name??o,l=i.debounce?hf(s,i.debounce,!1):s,c=`${t}-param-${o}`;if(i.input=="range")n.push(et`<label for=${c}>${u}</label>
|
|
540
546
|
<div>
|
|
541
547
|
<input
|
|
542
548
|
id=${c}
|
|
@@ -586,28 +592,28 @@ chrM 16299`};function f9(e){if(!(e in Pw))throw new Error(`Unknown assembly: ${e
|
|
|
586
592
|
@focus=${f=>f.target.select()}
|
|
587
593
|
@input=${f=>{l(i.input=="number"?f.target.valueAsNumber:f.target.value)}}
|
|
588
594
|
/>
|
|
589
|
-
</div>`);else throw new Error("Unsupported input type: "+i.input);i.description&&n.push(et`<div class="description">${i.description}</div>`)}return n}
|
|
595
|
+
</div>`);else throw new Error("Unsupported input type: "+i.input);i.description&&n.push(et`<div class="description">${i.description}</div>`)}return n}nd("fasta",c7);class Pv{constructor(t,n,r={}){J(this,En);this.container=t,this.options=r,r.inputBindingContainer??(r.inputBindingContainer="default"),this._destructionCallbacks=[],this.spec=n,this.viewFactory=new $7,this.namedDataProviders=[],this.animator=new r7(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=i=>i.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new f7(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this._extraBroadcastListeners=new Map,this.tooltipHandlers={default:w7,refseqgene:d7,...r.tooltipHandlers??{}},this.viewRoot=void 0,this._loadingViews=new Map,this._inputBindingContainer=void 0,this._mouseDownCoords=void 0}registerNamedDataProvider(t){this.namedDataProviders.unshift(t)}getNamedDataFromProvider(t){for(const n of this.namedDataProviders){const r=n(t);if(r)return r}}updateNamedData(t,n){const r=this.viewRoot.context.dataFlow.findNamedDataSource(t);if(!r)throw new Error("No such named data source: "+t);r.dataSource.updateDynamicData(n),q0(r.hosts),this.animator.requestRender()}broadcast(t,n){var i;const r={type:t,payload:n};this.viewRoot.visit(o=>o.handleBroadcast(r)),(i=this._extraBroadcastListeners.get(t))==null||i.forEach(o=>o(r))}_updateLoadingIndicators(){const t=[],n=()=>[...this._loadingViews.values()].some(r=>r.status=="loading"||r.status=="error");for(const[r,i]of this._loadingViews){const o=r.coords;if(o){const s={left:`${o.x}px`,top:`${o.y}px`,width:`${o.width}px`,height:`${o.height}px`};t.push(et`<div style=${L6(s)}>
|
|
590
596
|
<div class=${i.status}>
|
|
591
597
|
${i.status=="error"?et`<span
|
|
592
598
|
>Loading
|
|
593
|
-
failed${i.detail?et`: ${i.detail}`:
|
|
599
|
+
failed${i.detail?et`: ${i.detail}`:rt}</span
|
|
594
600
|
>`:et`
|
|
595
|
-
<img src="${
|
|
601
|
+
<img src="${N6}" alt="" />
|
|
596
602
|
<span>Loading...</span>
|
|
597
603
|
`}
|
|
598
604
|
</div>
|
|
599
|
-
</div>`)}}n()?this.loadingIndicatorsElement.style.display="block":setTimeout(()=>{n()||(this.loadingIndicatorsElement.style.display="none")},3e3),wa(t,this.loadingIndicatorsElement)}destroy(){var n;const t=z(this,En,xh);this.container.classList.remove("genome-spy"),t.classList.remove("loading");for(const[r,i]of this._keyboardListeners)for(const o of i)document.removeEventListener(r,o);for(this._destructionCallbacks.forEach(r=>r()),this._glHelper.finalize(),(n=this._inputBindingContainer)==null||n.remove();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new n7(this.spec.baseUrl),await this.genomeStore.initialize(this.spec.genome));const t=this,n={dataFlow:new fv,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new o7(this._glHelper),get devicePixelRatio(){return t._glHelper.dpr},requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,setDataLoadingStatus:(u,l,c)=>{this._loadingViews.set(u,{status:l,detail:c}),this._updateLoadingIndicators()},addKeyboardListener:(u,l)=>{document.addEventListener(u,l);let c=this._keyboardListeners.get(u);c||(c=[],this._keyboardListeners.set(u,c)),c.push(l)},addBroadcastListener(u,l){const c=t._extraBroadcastListeners;let f=c.get(u);f||(f=new Set,c.set(u,f)),f.add(l)},removeBroadcastListener(u,l){var f;(f=t._extraBroadcastListeners.get(u))==null||f.delete(l)},isViewConfiguredVisible:t.viewVisibilityPredicate,isViewSpec:u=>t.viewFactory.isViewSpec(u),createView:function(u,l,c,f){return t.viewFactory.createView(u,n,l,c,f)},createOrImportView:async function(u,l,c,f,h){return t.viewFactory.createOrImportView(u,n,l,c,f,h)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(u=>r.datasets[u]),this.viewRoot=await n.createOrImportView(r,null,null,Bv),z(this,En,xh).style.flexGrow=this.viewRoot.getSize().height.grow>0?"1":"0",Q(this,En,AS).call(this),WF(this.viewRoot),ZF(this.viewRoot);const i=this.viewRoot.getDescendants();i.forEach(u=>u.configureViewOpacity()),this._glHelper.invalidateSize(),Q(this,En,xS).call(this);const o=i.filter(u=>u instanceof Kt),s=GF(this.viewRoot,n.dataFlow);qF(s),this.broadcast("dataFlowBuilt",s),o.forEach(u=>u.mark.initializeEncoders());const a=Promise.all(o.map(u=>u.mark.initializeGraphics()));for(const u of o)s.addObserver(l=>{u.mark.initializeData(),u.mark.updateGraphicsData(),n.animator.requestRender()},u);await n.fontManager.waitUntilReady(),s.initialize(),await Promise.all(s.dataSources.map(u=>u.load())),j0(this.viewRoot),this.broadcast("dataLoaded"),await a;for(const u of o)u.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(u=>sf(u,"size")),this._glHelper.invalidateSize()}async launch(){try{return Q(this,En,ES).call(this),await this._prepareViewsAndData(),this.registerMouseEvents(),this.computeLayout(),this.animator.requestRender(),!0}catch(t){const n=`${t.view?`At "${t.view.getPathString()}": `:""}${t.toString()}`;return console.error(t.stack),Z7(this.container,n),!1}finally{z(this,En,xh).classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const t=this._glHelper.canvas;let n=performance.now();const r=i=>{var a,u;const o=performance.now(),s=o-n<200;if(i instanceof MouseEvent){const l=t.getBoundingClientRect(),c=new Zn(i.clientX-l.left-t.clientLeft,i.clientY-l.top-t.clientTop);i.type=="mousemove"&&!s&&(this.tooltip.handleMouseMove(i),this._tooltipUpdateRequested=!1,i.buttons==0&&!Cv()&&(this.renderPickingFramebuffer(),this._handlePicking(c.x,c.y)));const f=h=>{this.viewRoot.propagateInteractionEvent(new KF(c,h)),this._tooltipUpdateRequested||this.tooltip.clear()};if(i.type!="wheel"&&this._wheelInertia.cancel(),(i.type=="mousedown"||i.type=="mouseup")&&!Cv())this.renderPickingFramebuffer();else if(i.type=="wheel"){n=o,this._tooltipUpdateRequested=!1;const h=i;if(Math.abs(h.deltaX)>Math.abs(h.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const d=c7(h);this._wheelInertia.setMomentum(h.deltaY*(h.deltaMode?80:1),p=>{const m=new WheelEvent("wheel",{...d,deltaMode:0,deltaX:0,deltaY:p});f(m)}),h.preventDefault();return}}if(i.type=="click"){const h=this._currentHover?{type:i.type,viewPath:this._currentHover.mark.unitView.getLayoutAncestors().map(d=>d.name).reverse(),datum:this._currentHover.datum}:{type:i.type,viewPath:null,datum:null};(a=this._eventListeners.get("click"))==null||a.forEach(d=>d(h))}(i.type!="click"||((u=this._mouseDownCoords)==null?void 0:u.subtract(Zn.fromMouseEvent(i)).length)<3)&&f(i)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(i=>t.addEventListener(i,r)),t.addEventListener("mousedown",i=>{this._mouseDownCoords=Zn.fromMouseEvent(i),document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),t.addEventListener("dragstart",i=>i.stopPropagation())}_handlePicking(t,n){var o;const r=this._glHelper.readPickingPixel(t,n),i=r[0]|r[1]<<8|r[2]<<16|r[3]<<24;if(i==0){this._currentHover=null;return}if(i!==((o=this._currentHover)==null?void 0:o.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(s=>{if(s instanceof Kt){if(s.mark.isPickingParticipant()&&[...s.facetCoords.values()].some(a=>a.containsPoint(t,n))){const a=s.getCollector().findDatumByUniqueId(i);a&&(this._currentHover={mark:s.mark,datum:a,uniqueId:i})}if(this._currentHover)return Sl}}),this._currentHover){const s=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async a=>{if(!s.isPickingParticipant())return;const u=s.properties.tooltip;if(u!==null){const l=(u==null?void 0:u.handler)??"default",c=this.tooltipHandlers[l];if(!c)throw new Error("No such tooltip handler: "+l);return c(a,s,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 gv({picking:!1},this._glHelper),this._pickingContext=new gv({picking:!0},this._glHelper),t.render(new XF(this._renderingContext,this._pickingContext),wr.create(0,0,n.width,n.height)),this._updateLoadingIndicators(),this.broadcast("layoutComputed")}renderAll(){var t;(t=this._renderingContext)==null||t.render(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){this._dirtyPickingBuffer&&(this._pickingContext.render(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const t=[];return this.viewRoot.visit(n=>{n instanceof Kt&&n.getDataAccessor("search")&&t.push(n)}),t}getNamedScaleResolutions(){const t=new Map;return this.viewRoot.visit(n=>{for(const r of Object.values(n.resolutions.scale))r.name&&t.set(r.name,r)}),t}}En=new WeakSet,xh=function(){return this.container.querySelector(".canvas-wrapper")},AS=function(){const t=[];this.viewRoot.visit(r=>{const i=r.paramMediator;t.push(...W7(i))});const n=this.options.inputBindingContainer;if(!(!n||n=="none"||!t.length)){if(this._inputBindingContainer=gf("div",{className:"gs-input-bindings"}),n=="default")this.container.appendChild(this._inputBindingContainer);else if(n instanceof HTMLElement)n.appendChild(this._inputBindingContainer);else throw new Error("Invalid inputBindingContainer");t.length&&wa(et`<div class="gs-input-binding">${t}</div>`,this._inputBindingContainer)}},xS=function(){const t=this.viewRoot.paramMediator.allocateSetter("devicePixelRatio",window.devicePixelRatio),n=()=>{this._glHelper.invalidateSize(),t(window.devicePixelRatio),this.computeLayout(),this.renderAll()};if(this.viewRoot.getSize().isGrowing()){const o=new ResizeObserver(n);o.observe(this.container),this._destructionCallbacks.push(()=>o.disconnect())}let r=null;const i=()=>{r!=null&&(r(),n());const o=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);o.addEventListener("change",i),r=()=>{o.removeEventListener("change",i)}};i(),r&&this._destructionCallbacks.push(r)},ES=function(){this.container.classList.add("genome-spy");const t=document.createElement("style");t.innerHTML=L6,this.container.appendChild(t);const n=gf("div",{class:"canvas-wrapper"});this.container.appendChild(n),n.classList.add("loading"),this._glHelper=new cR(n,()=>this.viewRoot?QF(this.viewRoot):{width:void 0,height:void 0},this.spec.background,{powerPreference:this.options.powerPreference??"default"}),this.loadingMessageElement=gf("div",{class:"loading-message",innerHTML:'<div class="message">Loading<span class="ellipsis">...</span></div>'}),n.appendChild(this.loadingMessageElement),this.loadingIndicatorsElement=gf("div",{class:"loading-indicators"}),n.appendChild(this.loadingIndicatorsElement),this.tooltip=new O6(this.container),this.loadingMessageElement.querySelector(".message").addEventListener("transitionend",()=>{this.loadingMessageElement.style.display="none"})};function Z7(e,t){const n=document.createElement("div");n.className="message-box";const r=document.createElement("div");r.textContent=t,n.appendChild(r),e.appendChild(n)}function gf(e,t){const n=document.createElement(e);for(const[r,i]of Object.entries(t))["innerHTML","innerText","className"].includes(r)&&(n[r]=i),n.setAttribute(r,i);return n}const Y7="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",Q7="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5'%20viewBox='0%200%2064%2064'%3e%3cpath%20d='M208.6%20548.2s11.2%2046.2%2031.2%2071c20%2024.9%2079.3%2061.6%2079.3%2061.6S385.6%20623%20438%20498.3c0%200%2018.1%201%2036-11.9%2017.7-12.7%2016.3-7.9%2021-24.8%200%200%2057%206.3%20131-9.7%2041.7-9.1%2084.3-26.3%20121.5-58.8%200%200-25.4-32.9-58-101.7-12.4-26.1-41.9-34.3-98.7-88L438.1%20391.2%20208.6%20548.2Z'%20style='fill-opacity:.11'%20transform='matrix(.10221%20.00684%20-.00671%20.10035%20-8%20-13.2)'/%3e%3cg%20transform='rotate(-35.4%2034.2%2080.8)%20scale(.10057)'%3e%3cpath%20d='M561.6%20349.2s-45.3-77.9-232.8-97.2c0%200-26.5%2073.2-21.1%20116%205.3%2043-4.7%2088.1%2021.4%20133.2%200%200%20114%205.5%20225.5-72.7l74.6%203.6S673.8%20534.4%20857%20554.4c0%200%2029.7-62.6%2022.2-137-8-78.7-7.5-124-7.5-124s-96.2-9.5-236.3%2068.4l-73.8-12.6Z'%20style='fill:%237fbbdd'/%3e%3cclipPath%20id='a'%3e%3cpath%20d='M561.6%20349.2s-45.3-77.9-232.8-97.2c0%200-26.5%2073.2-21.1%20116%205.3%2043-4.7%2088.1%2021.4%20133.2%200%200%20114%205.5%20225.5-72.7l74.6%203.6S673.8%20534.4%20857%20554.4c0%200%2029.7-62.6%2022.2-137-8-78.7-7.5-124-7.5-124s-96.2-9.5-236.3%2068.4l-73.8-12.6Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23a)'%3e%3cpath%20d='M386.9%20397.2c-15.6-13.6-51.8-22.4-96.3-16.7-44.5%205.8-93.8%2021.8-111.8%2031.6-10.6%205.7-27.3%2017.3-28.1%2027.2-1.2%2014.2%202.9%2037.8%2015%2052%206%207.2%2014.2%2012.1%2028.1%2014.1%2017.9%202.6%2059-24.8%2081.6-36.2%2024-12%2038.6-14.6%2063-22.2%200%200-47%2031.6-68.2%2047.4-30.6%2022.9-51.6%2028-57.3%2045.5-3.1%209.4-.7%2027.9%207.5%2037.6%209%2011%2012.8%2017.6%2034.2%2020.1%2012.7%201.5%2022%201.2%2059.8-28.6%2021.7-17.2%2055.9-59.2%2067-74.4%2016.2-22%2023.8-43.1%2021.3-59.6-3.7-23.6-8.4-31.3-15.8-37.8Z'%20style='fill:%23fff'%20transform='scale(.88664)%20rotate(31.2%20485%20792.2)'/%3e%3cpath%20d='M484.7%20379c-5.4-11.1-17.6-28.5-.8-53.8a739%20739%200%200%201%2044.2-60.6c13.2-16.3%2046.7-46.2%2059.6-52%2013-6%2033.3-8.7%2044.2.2%2011%209.1%2016.5%2020.6%2023%2032.7%207.4%2013.8%2012.4%2029.3%201.6%2042.8-15.4%2019.2-34.3%2017-61.6%2031.5-27.7%2014.8-42.3%2023.1-55.7%2035.9%200%200%2052.2-21.6%2082-31.2%2029.8-9.7%2059.8-20%2074.8-8.5s14.6%2015.5%2018.4%2031.2c4.7%2019.4-7.2%2038-20.1%2048.6-13%2010.7-34.3%2016-57.4%2021-30.5%206.8-96.6%2015.1-124%202.6-27.5-12.6-24.4-32.8-28.2-40.5Z'%20style='fill:%23fff'%20transform='scale(.87906)%20rotate(31.2%20487.2%20893.5)'/%3e%3c/g%3e%3cpath%20d='M561.6%20349.2s-45.3-77.9-232.8-97.2c0%200-26.5%2073.2-21.1%20116%205.3%2043-4.7%2088.1%2021.4%20133.2%200%200%20114%205.5%20225.5-72.7l74.6%203.6S673.8%20534.4%20857%20554.4c0%200%2029.7-62.6%2022.2-137-8-78.7-7.5-124-7.5-124s-96.2-9.5-236.3%2068.4l-73.8-12.6Z'%20style='fill:none;stroke:%23000;stroke-width:16.57px'/%3e%3c/g%3e%3cg%20transform='rotate(-4.2%20-78%20211)%20scale(.10057)'%3e%3cpath%20d='M385%20385.5s45.8-37.6%2065-35.4c21.7%202.5%2040.5%2057.6%2040.2%2074.3-.3%2016.7-47.3%2045.5-67.7%2041.8%200%200%203-24-10.4-52.9-13.4-28.8-27.2-27.8-27.2-27.8Z'%20style='fill:%237fbbdd'/%3e%3cclipPath%20id='b'%3e%3cpath%20d='M385%20385.5s45.8-37.6%2065-35.4c21.7%202.5%2040.5%2057.6%2040.2%2074.3-.3%2016.7-47.3%2045.5-67.7%2041.8%200%200%203-24-10.4-52.9-13.4-28.8-27.2-27.8-27.2-27.8Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23b)'%3e%3cpath%20d='M413.3%20402.7c17.5%2018.9%2010%2045.7%2028.4%2043.4%2021.7-2.7%2030.9-15.7%2031.6-32.7.7-17-1-19.5-7.1-38-6.1-18.7-18.2-23.2-43.4-18.2-20.8%204.1-17.8%203-24%2010-6.4%207-14.5%2026-14.5%2026s8.4-12.7%2029%209.5Z'%20style='fill:%23fff'%20transform='matrix(.90907%200%200%20.85852%2037%2052.2)'/%3e%3c/g%3e%3cpath%20d='M385%20385.5s45.8-37.6%2065-35.4c21.7%202.5%2040.5%2057.6%2040.2%2074.3-.3%2016.7-47.3%2045.5-67.7%2041.8%200%200%203-24-10.4-52.9-13.4-28.8-27.2-27.8-27.2-27.8Z'%20style='fill:none;stroke:%23000;stroke-width:16.57px'/%3e%3c/g%3e%3c/svg%3e";async function X7(e,t,n={}){let r;if(De(e)){if(r=document.querySelector(e),!r)throw new Error(`No such element: ${e}`)}else if(e instanceof HTMLElement)r=e;else throw new Error(`Invalid element: ${e}`);let i;try{const o=Et(t)?t:await Mv(t);if(o.baseUrl??(o.baseUrl=""),o.width??(o.width="container"),o.padding??(o.padding=10),r==document.body){const s=document.createElement("div");s.style.position="fixed",s.style.inset="0",s.style.overflow="hidden",r.appendChild(s),r=s}i=new Fv(r,o,n),K7(i,n),await i.launch()}catch(o){r.innerText=o.toString(),console.error(o)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(o,s){const a=i._eventListeners;let u=a.get(o);u||(u=new Set,a.set(o,u)),u.add(s)},removeEventListener(o,s){var u;(u=i._eventListeners.get(o))==null||u.delete(s)},getScaleResolutionByName(o){return i.getNamedScaleResolutions().get(o)},updateNamedData:i.updateNamedData.bind(i)}}function K7(e,t){t.namedDataProvider&&e.registerNamedDataProvider(t.namedDataProvider)}async function Mv(e){let t;try{const n=await fetch(e);if(!n.ok)throw new Error(`${n.status} ${n.statusText}`);t=await n.json()}catch(n){throw new Error(`Could not load or parse configuration: ${e}, reason: ${n.message}`)}if(!t.baseUrl){const n=e.match(/^[^?#]*\//);t.baseUrl=n&&n[0]||"./"}return t}var mf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function bf(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function J7(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 xe={},yf={};yf.byteLength=nM,yf.toByteArray=iM,yf.fromByteArray=aM;for(var Yn=[],fn=[],eM=typeof Uint8Array<"u"?Uint8Array:Array,op="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",hs=0,tM=op.length;hs<tM;++hs)Yn[hs]=op[hs],fn[op.charCodeAt(hs)]=hs;fn[45]=62,fn[95]=63;function Pv(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 nM(e){var t=Pv(e),n=t[0],r=t[1];return(n+r)*3/4-r}function rM(e,t,n){return(t+n)*3/4-n}function iM(e){var t,n=Pv(e),r=n[0],i=n[1],o=new eM(rM(e,r,i)),s=0,a=i>0?r-4:r,u;for(u=0;u<a;u+=4)t=fn[e.charCodeAt(u)]<<18|fn[e.charCodeAt(u+1)]<<12|fn[e.charCodeAt(u+2)]<<6|fn[e.charCodeAt(u+3)],o[s++]=t>>16&255,o[s++]=t>>8&255,o[s++]=t&255;return i===2&&(t=fn[e.charCodeAt(u)]<<2|fn[e.charCodeAt(u+1)]>>4,o[s++]=t&255),i===1&&(t=fn[e.charCodeAt(u)]<<10|fn[e.charCodeAt(u+1)]<<4|fn[e.charCodeAt(u+2)]>>2,o[s++]=t>>8&255,o[s++]=t&255),o}function oM(e){return Yn[e>>18&63]+Yn[e>>12&63]+Yn[e>>6&63]+Yn[e&63]}function sM(e,t,n){for(var r,i=[],o=t;o<n;o+=3)r=(e[o]<<16&16711680)+(e[o+1]<<8&65280)+(e[o+2]&255),i.push(oM(r));return i.join("")}function aM(e){for(var t,n=e.length,r=n%3,i=[],o=16383,s=0,a=n-r;s<a;s+=o)i.push(sM(e,s,s+o>a?a:s+o));return r===1?(t=e[n-1],i.push(Yn[t>>2]+Yn[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(Yn[t>>10]+Yn[t>>4&63]+Yn[t<<2&63]+"=")),i.join("")}var sp={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */sp.read=function(e,t,n,r,i){var o,s,a=i*8-r-1,u=(1<<a)-1,l=u>>1,c=-7,f=n?i-1:0,h=n?-1:1,d=e[t+f];for(f+=h,o=d&(1<<-c)-1,d>>=-c,c+=a;c>0;o=o*256+e[t+f],f+=h,c-=8);for(s=o&(1<<-c)-1,o>>=-c,c+=r;c>0;s=s*256+e[t+f],f+=h,c-=8);if(o===0)o=1-l;else{if(o===u)return s?NaN:(d?-1:1)*(1/0);s=s+Math.pow(2,r),o=o-l}return(d?-1:1)*s*Math.pow(2,o-r)},sp.write=function(e,t,n,r,i,o){var s,a,u,l=o*8-i-1,c=(1<<l)-1,f=c>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,p=r?1:-1,m=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=c):(s=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-s))<1&&(s--,u*=2),s+f>=1?t+=h/u:t+=h*Math.pow(2,1-f),t*u>=2&&(s++,u/=2),s+f>=c?(a=0,s=c):s+f>=1?(a=(t*u-1)*Math.pow(2,i),s=s+f):(a=t*Math.pow(2,f-1)*Math.pow(2,i),s=0));i>=8;e[n+d]=a&255,d+=p,a/=256,i-=8);for(s=s<<i|a,l+=i;l>0;e[n+d]=s&255,d+=p,s/=256,l-=8);e[n+d-p]|=m*128};/*!
|
|
605
|
+
</div>`)}}n()?this.loadingIndicatorsElement.style.display="block":setTimeout(()=>{n()||(this.loadingIndicatorsElement.style.display="none")},3e3),wa(t,this.loadingIndicatorsElement)}destroy(){var n;const t=z(this,En,Eh);this.container.classList.remove("genome-spy"),t.classList.remove("loading");for(const[r,i]of this._keyboardListeners)for(const o of i)document.removeEventListener(r,o);for(this._destructionCallbacks.forEach(r=>r()),this._glHelper.finalize(),(n=this._inputBindingContainer)==null||n.remove();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new i7(this.spec.baseUrl),await this.genomeStore.initialize(this.spec.genome));const t=this,n={dataFlow:new dv,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new a7(this._glHelper),get devicePixelRatio(){return t._glHelper.dpr},requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,setDataLoadingStatus:(u,l,c)=>{this._loadingViews.set(u,{status:l,detail:c}),this._updateLoadingIndicators()},addKeyboardListener:(u,l)=>{document.addEventListener(u,l);let c=this._keyboardListeners.get(u);c||(c=[],this._keyboardListeners.set(u,c)),c.push(l)},addBroadcastListener(u,l){const c=t._extraBroadcastListeners;let f=c.get(u);f||(f=new Set,c.set(u,f)),f.add(l)},removeBroadcastListener(u,l){var f;(f=t._extraBroadcastListeners.get(u))==null||f.delete(l)},isViewConfiguredVisible:t.viewVisibilityPredicate,isViewSpec:u=>t.viewFactory.isViewSpec(u),createView:function(u,l,c,f){return t.viewFactory.createView(u,n,l,c,f)},createOrImportView:async function(u,l,c,f,h){return t.viewFactory.createOrImportView(u,n,l,c,f,h)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(u=>r.datasets[u]),this.viewRoot=await n.createOrImportView(r,null,null,Rv),z(this,En,Eh).style.flexGrow=this.viewRoot.getSize().height.grow>0?"1":"0",Q(this,En,ES).call(this),YF(this.viewRoot),QF(this.viewRoot);const i=this.viewRoot.getDescendants();i.forEach(u=>u.configureViewOpacity()),this._glHelper.invalidateSize(),Q(this,En,_S).call(this);const o=i.filter(u=>u instanceof Kt),s=VF(this.viewRoot,n.dataFlow);ZF(s),this.broadcast("dataFlowBuilt",s),o.forEach(u=>u.mark.initializeEncoders());const a=Promise.all(o.map(u=>u.mark.initializeGraphics()));for(const u of o)s.addObserver(l=>{u.mark.initializeData(),u.mark.updateGraphicsData(),n.animator.requestRender()},u);await n.fontManager.waitUntilReady(),s.initialize(),await Promise.all(s.dataSources.map(u=>u.load())),q0(this.viewRoot),this.broadcast("dataLoaded"),await a;for(const u of o)u.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(u=>af(u,"size")),this._glHelper.invalidateSize()}async launch(){try{return Q(this,En,SS).call(this),await this._prepareViewsAndData(),this.registerMouseEvents(),this.computeLayout(),this.animator.requestRender(),!0}catch(t){const n=`${t.view?`At "${t.view.getPathString()}": `:""}${t.toString()}`;return console.error(t.stack),Q7(this.container,n),!1}finally{z(this,En,Eh).classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const t=this._glHelper.canvas;let n=performance.now();const r=i=>{var a,u;const o=performance.now(),s=o-n<200;if(i instanceof MouseEvent){const l=t.getBoundingClientRect(),c=new Zn(i.clientX-l.left-t.clientLeft,i.clientY-l.top-t.clientTop);i.type=="mousemove"&&!s&&(this.tooltip.handleMouseMove(i),this._tooltipUpdateRequested=!1,i.buttons==0&&!kv()&&(this.renderPickingFramebuffer(),this._handlePicking(c.x,c.y)));const f=h=>{this.viewRoot.propagateInteractionEvent(new e7(c,h)),this._tooltipUpdateRequested||this.tooltip.clear()};if(i.type!="wheel"&&this._wheelInertia.cancel(),(i.type=="mousedown"||i.type=="mouseup")&&!kv())this.renderPickingFramebuffer();else if(i.type=="wheel"){n=o,this._tooltipUpdateRequested=!1;const h=i;if(Math.abs(h.deltaX)>Math.abs(h.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const d=h7(h);this._wheelInertia.setMomentum(h.deltaY*(h.deltaMode?80:1),p=>{const m=new WheelEvent("wheel",{...d,deltaMode:0,deltaX:0,deltaY:p});f(m)}),h.preventDefault();return}}if(i.type=="click"){const h=this._currentHover?{type:i.type,viewPath:this._currentHover.mark.unitView.getLayoutAncestors().map(d=>d.name).reverse(),datum:this._currentHover.datum}:{type:i.type,viewPath:null,datum:null};(a=this._eventListeners.get("click"))==null||a.forEach(d=>d(h))}(i.type!="click"||((u=this._mouseDownCoords)==null?void 0:u.subtract(Zn.fromMouseEvent(i)).length)<3)&&f(i)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(i=>t.addEventListener(i,r)),t.addEventListener("mousedown",i=>{this._mouseDownCoords=Zn.fromMouseEvent(i),document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),t.addEventListener("dragstart",i=>i.stopPropagation())}_handlePicking(t,n){var o;const r=this._glHelper.readPickingPixel(t,n),i=r[0]|r[1]<<8|r[2]<<16|r[3]<<24;if(i==0){this._currentHover=null;return}if(i!==((o=this._currentHover)==null?void 0:o.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(s=>{if(s instanceof Kt){if(s.mark.isPickingParticipant()&&[...s.facetCoords.values()].some(a=>a.containsPoint(t,n))){const a=s.getCollector().findDatumByUniqueId(i);a&&(this._currentHover={mark:s.mark,datum:a,uniqueId:i})}if(this._currentHover)return Sl}}),this._currentHover){const s=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async a=>{if(!s.isPickingParticipant())return;const u=s.properties.tooltip;if(u!==null){const l=(u==null?void 0:u.handler)??"default",c=this.tooltipHandlers[l];if(!c)throw new Error("No such tooltip handler: "+l);return c(a,s,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 bv({picking:!1},this._glHelper),this._pickingContext=new bv({picking:!0},this._glHelper),t.render(new JF(this._renderingContext,this._pickingContext),wr.create(0,0,n.width,n.height)),this._updateLoadingIndicators(),this.broadcast("layoutComputed")}renderAll(){var t;(t=this._renderingContext)==null||t.render(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){this._dirtyPickingBuffer&&(this._pickingContext.render(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const t=[];return this.viewRoot.visit(n=>{n instanceof Kt&&n.getDataAccessor("search")&&t.push(n)}),t}getNamedScaleResolutions(){const t=new Map;return this.viewRoot.visit(n=>{for(const r of Object.values(n.resolutions.scale))r.name&&t.set(r.name,r)}),t}}En=new WeakSet,Eh=function(){return this.container.querySelector(".canvas-wrapper")},ES=function(){const t=[];this.viewRoot.visit(r=>{const i=r.paramMediator;t.push(...Y7(i))});const n=this.options.inputBindingContainer;if(!(!n||n=="none"||!t.length)){if(this._inputBindingContainer=mf("div",{className:"gs-input-bindings"}),n=="default")this.container.appendChild(this._inputBindingContainer);else if(n instanceof HTMLElement)n.appendChild(this._inputBindingContainer);else throw new Error("Invalid inputBindingContainer");t.length&&wa(et`<div class="gs-input-binding">${t}</div>`,this._inputBindingContainer)}},_S=function(){const t=this.viewRoot.paramMediator.allocateSetter("devicePixelRatio",window.devicePixelRatio),n=()=>{this._glHelper.invalidateSize(),t(window.devicePixelRatio),this.computeLayout(),this.renderAll()};if(this.viewRoot.getSize().isGrowing()){const o=new ResizeObserver(n);o.observe(this.container),this._destructionCallbacks.push(()=>o.disconnect())}let r=null;const i=()=>{r!=null&&(r(),n());const o=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);o.addEventListener("change",i),r=()=>{o.removeEventListener("change",i)}};i(),r&&this._destructionCallbacks.push(r)},SS=function(){this.container.classList.add("genome-spy");const t=document.createElement("style");t.innerHTML=O6,this.container.appendChild(t);const n=mf("div",{class:"canvas-wrapper"});this.container.appendChild(n),n.classList.add("loading"),this._glHelper=new hR(n,()=>this.viewRoot?KF(this.viewRoot):{width:void 0,height:void 0},this.spec.background,{powerPreference:this.options.powerPreference??"default"}),this.loadingMessageElement=mf("div",{class:"loading-message",innerHTML:'<div class="message">Loading<span class="ellipsis">...</span></div>'}),n.appendChild(this.loadingMessageElement),this.loadingIndicatorsElement=mf("div",{class:"loading-indicators"}),n.appendChild(this.loadingIndicatorsElement),this.tooltip=new U6(this.container),this.loadingMessageElement.querySelector(".message").addEventListener("transitionend",()=>{this.loadingMessageElement.style.display="none"})};function Q7(e,t){const n=document.createElement("div");n.className="message-box";const r=document.createElement("div");r.textContent=t,n.appendChild(r),e.appendChild(n)}function mf(e,t){const n=document.createElement(e);for(const[r,i]of Object.entries(t))["innerHTML","innerText","className"].includes(r)&&(n[r]=i),n.setAttribute(r,i);return n}const X7="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",K7="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5'%20viewBox='0%200%2064%2064'%3e%3cpath%20d='M208.6%20548.2s11.2%2046.2%2031.2%2071c20%2024.9%2079.3%2061.6%2079.3%2061.6S385.6%20623%20438%20498.3c0%200%2018.1%201%2036-11.9%2017.7-12.7%2016.3-7.9%2021-24.8%200%200%2057%206.3%20131-9.7%2041.7-9.1%2084.3-26.3%20121.5-58.8%200%200-25.4-32.9-58-101.7-12.4-26.1-41.9-34.3-98.7-88L438.1%20391.2%20208.6%20548.2Z'%20style='fill-opacity:.11'%20transform='matrix(.10221%20.00684%20-.00671%20.10035%20-8%20-13.2)'/%3e%3cg%20transform='rotate(-35.4%2034.2%2080.8)%20scale(.10057)'%3e%3cpath%20d='M561.6%20349.2s-45.3-77.9-232.8-97.2c0%200-26.5%2073.2-21.1%20116%205.3%2043-4.7%2088.1%2021.4%20133.2%200%200%20114%205.5%20225.5-72.7l74.6%203.6S673.8%20534.4%20857%20554.4c0%200%2029.7-62.6%2022.2-137-8-78.7-7.5-124-7.5-124s-96.2-9.5-236.3%2068.4l-73.8-12.6Z'%20style='fill:%237fbbdd'/%3e%3cclipPath%20id='a'%3e%3cpath%20d='M561.6%20349.2s-45.3-77.9-232.8-97.2c0%200-26.5%2073.2-21.1%20116%205.3%2043-4.7%2088.1%2021.4%20133.2%200%200%20114%205.5%20225.5-72.7l74.6%203.6S673.8%20534.4%20857%20554.4c0%200%2029.7-62.6%2022.2-137-8-78.7-7.5-124-7.5-124s-96.2-9.5-236.3%2068.4l-73.8-12.6Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23a)'%3e%3cpath%20d='M386.9%20397.2c-15.6-13.6-51.8-22.4-96.3-16.7-44.5%205.8-93.8%2021.8-111.8%2031.6-10.6%205.7-27.3%2017.3-28.1%2027.2-1.2%2014.2%202.9%2037.8%2015%2052%206%207.2%2014.2%2012.1%2028.1%2014.1%2017.9%202.6%2059-24.8%2081.6-36.2%2024-12%2038.6-14.6%2063-22.2%200%200-47%2031.6-68.2%2047.4-30.6%2022.9-51.6%2028-57.3%2045.5-3.1%209.4-.7%2027.9%207.5%2037.6%209%2011%2012.8%2017.6%2034.2%2020.1%2012.7%201.5%2022%201.2%2059.8-28.6%2021.7-17.2%2055.9-59.2%2067-74.4%2016.2-22%2023.8-43.1%2021.3-59.6-3.7-23.6-8.4-31.3-15.8-37.8Z'%20style='fill:%23fff'%20transform='scale(.88664)%20rotate(31.2%20485%20792.2)'/%3e%3cpath%20d='M484.7%20379c-5.4-11.1-17.6-28.5-.8-53.8a739%20739%200%200%201%2044.2-60.6c13.2-16.3%2046.7-46.2%2059.6-52%2013-6%2033.3-8.7%2044.2.2%2011%209.1%2016.5%2020.6%2023%2032.7%207.4%2013.8%2012.4%2029.3%201.6%2042.8-15.4%2019.2-34.3%2017-61.6%2031.5-27.7%2014.8-42.3%2023.1-55.7%2035.9%200%200%2052.2-21.6%2082-31.2%2029.8-9.7%2059.8-20%2074.8-8.5s14.6%2015.5%2018.4%2031.2c4.7%2019.4-7.2%2038-20.1%2048.6-13%2010.7-34.3%2016-57.4%2021-30.5%206.8-96.6%2015.1-124%202.6-27.5-12.6-24.4-32.8-28.2-40.5Z'%20style='fill:%23fff'%20transform='scale(.87906)%20rotate(31.2%20487.2%20893.5)'/%3e%3c/g%3e%3cpath%20d='M561.6%20349.2s-45.3-77.9-232.8-97.2c0%200-26.5%2073.2-21.1%20116%205.3%2043-4.7%2088.1%2021.4%20133.2%200%200%20114%205.5%20225.5-72.7l74.6%203.6S673.8%20534.4%20857%20554.4c0%200%2029.7-62.6%2022.2-137-8-78.7-7.5-124-7.5-124s-96.2-9.5-236.3%2068.4l-73.8-12.6Z'%20style='fill:none;stroke:%23000;stroke-width:16.57px'/%3e%3c/g%3e%3cg%20transform='rotate(-4.2%20-78%20211)%20scale(.10057)'%3e%3cpath%20d='M385%20385.5s45.8-37.6%2065-35.4c21.7%202.5%2040.5%2057.6%2040.2%2074.3-.3%2016.7-47.3%2045.5-67.7%2041.8%200%200%203-24-10.4-52.9-13.4-28.8-27.2-27.8-27.2-27.8Z'%20style='fill:%237fbbdd'/%3e%3cclipPath%20id='b'%3e%3cpath%20d='M385%20385.5s45.8-37.6%2065-35.4c21.7%202.5%2040.5%2057.6%2040.2%2074.3-.3%2016.7-47.3%2045.5-67.7%2041.8%200%200%203-24-10.4-52.9-13.4-28.8-27.2-27.8-27.2-27.8Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23b)'%3e%3cpath%20d='M413.3%20402.7c17.5%2018.9%2010%2045.7%2028.4%2043.4%2021.7-2.7%2030.9-15.7%2031.6-32.7.7-17-1-19.5-7.1-38-6.1-18.7-18.2-23.2-43.4-18.2-20.8%204.1-17.8%203-24%2010-6.4%207-14.5%2026-14.5%2026s8.4-12.7%2029%209.5Z'%20style='fill:%23fff'%20transform='matrix(.90907%200%200%20.85852%2037%2052.2)'/%3e%3c/g%3e%3cpath%20d='M385%20385.5s45.8-37.6%2065-35.4c21.7%202.5%2040.5%2057.6%2040.2%2074.3-.3%2016.7-47.3%2045.5-67.7%2041.8%200%200%203-24-10.4-52.9-13.4-28.8-27.2-27.8-27.2-27.8Z'%20style='fill:none;stroke:%23000;stroke-width:16.57px'/%3e%3c/g%3e%3c/svg%3e";async function J7(e,t,n={}){let r;if(De(e)){if(r=document.querySelector(e),!r)throw new Error(`No such element: ${e}`)}else if(e instanceof HTMLElement)r=e;else throw new Error(`Invalid element: ${e}`);let i;try{const o=Et(t)?t:await Lv(t);if(o.baseUrl??(o.baseUrl=""),o.width??(o.width="container"),o.padding??(o.padding=10),r==document.body){const s=document.createElement("div");s.style.position="fixed",s.style.inset="0",s.style.overflow="hidden",r.appendChild(s),r=s}i=new Pv(r,o,n),eM(i,n),await i.launch()}catch(o){r.innerText=o.toString(),console.error(o)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(o,s){const a=i._eventListeners;let u=a.get(o);u||(u=new Set,a.set(o,u)),u.add(s)},removeEventListener(o,s){var u;(u=i._eventListeners.get(o))==null||u.delete(s)},getScaleResolutionByName(o){return i.getNamedScaleResolutions().get(o)},updateNamedData:i.updateNamedData.bind(i)}}function eM(e,t){t.namedDataProvider&&e.registerNamedDataProvider(t.namedDataProvider)}async function Lv(e){let t;try{const n=await fetch(e);if(!n.ok)throw new Error(`${n.status} ${n.statusText}`);t=await n.json()}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 bf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function yf(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function tM(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 xe={},wf={};wf.byteLength=iM,wf.toByteArray=sM,wf.fromByteArray=uM;for(var Yn=[],fn=[],nM=typeof Uint8Array<"u"?Uint8Array:Array,ap="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",hs=0,rM=ap.length;hs<rM;++hs)Yn[hs]=ap[hs],fn[ap.charCodeAt(hs)]=hs;fn[45]=62,fn[95]=63;function Nv(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 iM(e){var t=Nv(e),n=t[0],r=t[1];return(n+r)*3/4-r}function oM(e,t,n){return(t+n)*3/4-n}function sM(e){var t,n=Nv(e),r=n[0],i=n[1],o=new nM(oM(e,r,i)),s=0,a=i>0?r-4:r,u;for(u=0;u<a;u+=4)t=fn[e.charCodeAt(u)]<<18|fn[e.charCodeAt(u+1)]<<12|fn[e.charCodeAt(u+2)]<<6|fn[e.charCodeAt(u+3)],o[s++]=t>>16&255,o[s++]=t>>8&255,o[s++]=t&255;return i===2&&(t=fn[e.charCodeAt(u)]<<2|fn[e.charCodeAt(u+1)]>>4,o[s++]=t&255),i===1&&(t=fn[e.charCodeAt(u)]<<10|fn[e.charCodeAt(u+1)]<<4|fn[e.charCodeAt(u+2)]>>2,o[s++]=t>>8&255,o[s++]=t&255),o}function aM(e){return Yn[e>>18&63]+Yn[e>>12&63]+Yn[e>>6&63]+Yn[e&63]}function lM(e,t,n){for(var r,i=[],o=t;o<n;o+=3)r=(e[o]<<16&16711680)+(e[o+1]<<8&65280)+(e[o+2]&255),i.push(aM(r));return i.join("")}function uM(e){for(var t,n=e.length,r=n%3,i=[],o=16383,s=0,a=n-r;s<a;s+=o)i.push(lM(e,s,s+o>a?a:s+o));return r===1?(t=e[n-1],i.push(Yn[t>>2]+Yn[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(Yn[t>>10]+Yn[t>>4&63]+Yn[t<<2&63]+"=")),i.join("")}var lp={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */lp.read=function(e,t,n,r,i){var o,s,a=i*8-r-1,u=(1<<a)-1,l=u>>1,c=-7,f=n?i-1:0,h=n?-1:1,d=e[t+f];for(f+=h,o=d&(1<<-c)-1,d>>=-c,c+=a;c>0;o=o*256+e[t+f],f+=h,c-=8);for(s=o&(1<<-c)-1,o>>=-c,c+=r;c>0;s=s*256+e[t+f],f+=h,c-=8);if(o===0)o=1-l;else{if(o===u)return s?NaN:(d?-1:1)*(1/0);s=s+Math.pow(2,r),o=o-l}return(d?-1:1)*s*Math.pow(2,o-r)},lp.write=function(e,t,n,r,i,o){var s,a,u,l=o*8-i-1,c=(1<<l)-1,f=c>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,p=r?1:-1,m=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=c):(s=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-s))<1&&(s--,u*=2),s+f>=1?t+=h/u:t+=h*Math.pow(2,1-f),t*u>=2&&(s++,u/=2),s+f>=c?(a=0,s=c):s+f>=1?(a=(t*u-1)*Math.pow(2,i),s=s+f):(a=t*Math.pow(2,f-1)*Math.pow(2,i),s=0));i>=8;e[n+d]=a&255,d+=p,a/=256,i-=8);for(s=s<<i|a,l+=i;l>0;e[n+d]=s&255,d+=p,s/=256,l-=8);e[n+d-p]|=m*128};/*!
|
|
600
606
|
* The buffer module from node.js, for the browser.
|
|
601
607
|
*
|
|
602
608
|
* @author Feross Aboukhadijeh <https://feross.org>
|
|
603
609
|
* @license MIT
|
|
604
|
-
*/(function(e){const t=yf,n=sp,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=a,e.SlowBuffer=x,e.INSPECT_MAX_BYTES=50;const i=2147483647;e.kMaxLength=i,a.TYPED_ARRAY_SUPPORT=o(),!a.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function o(){try{const v=new Uint8Array(1),g={foo:function(){return 42}};return Object.setPrototypeOf(g,Uint8Array.prototype),Object.setPrototypeOf(v,g),v.foo()===42}catch{return!1}}Object.defineProperty(a.prototype,"parent",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.buffer}}),Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.byteOffset}});function s(v){if(v>i)throw new RangeError('The value "'+v+'" is invalid for option "size"');const g=new Uint8Array(v);return Object.setPrototypeOf(g,a.prototype),g}function a(v,g,b){if(typeof v=="number"){if(typeof g=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return f(v)}return u(v,g,b)}a.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(It(v,ArrayBuffer)||v&&It(v.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(It(v,SharedArrayBuffer)||v&&It(v.buffer,SharedArrayBuffer)))return m(v,g,b);if(typeof v=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const k=v.valueOf&&v.valueOf();if(k!=null&&k!==v)return a.from(k,g,b);const F=y(v);if(F)return F;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof v[Symbol.toPrimitive]=="function")return a.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)}a.from=function(v,g,b){return u(v,g,b)},Object.setPrototypeOf(a.prototype,Uint8Array.prototype),Object.setPrototypeOf(a,Uint8Array);function l(v){if(typeof v!="number")throw new TypeError('"size" argument must be of type number');if(v<0)throw new RangeError('The value "'+v+'" is invalid for option "size"')}function c(v,g,b){return l(v),v<=0?s(v):g!==void 0?typeof b=="string"?s(v).fill(g,b):s(v).fill(g):s(v)}a.alloc=function(v,g,b){return c(v,g,b)};function f(v){return l(v),s(v<0?0:w(v)|0)}a.allocUnsafe=function(v){return f(v)},a.allocUnsafeSlow=function(v){return f(v)};function h(v,g){if((typeof g!="string"||g==="")&&(g="utf8"),!a.isEncoding(g))throw new TypeError("Unknown encoding: "+g);const b=S(v,g)|0;let k=s(b);const F=k.write(v,g);return F!==b&&(k=k.slice(0,F)),k}function d(v){const g=v.length<0?0:w(v.length)|0,b=s(g);for(let k=0;k<g;k+=1)b[k]=v[k]&255;return b}function p(v){if(It(v,Uint8Array)){const g=new Uint8Array(v);return m(g.buffer,g.byteOffset,g.byteLength)}return d(v)}function m(v,g,b){if(g<0||v.byteLength<g)throw new RangeError('"offset" is outside of buffer bounds');if(v.byteLength<g+(b||0))throw new RangeError('"length" is outside of buffer bounds');let k;return g===void 0&&b===void 0?k=new Uint8Array(v):b===void 0?k=new Uint8Array(v,g):k=new Uint8Array(v,g,b),Object.setPrototypeOf(k,a.prototype),k}function y(v){if(a.isBuffer(v)){const g=w(v.length)|0,b=s(g);return b.length===0||v.copy(b,0,0,g),b}if(v.length!==void 0)return typeof v.length!="number"||Br(v.length)?s(0):d(v);if(v.type==="Buffer"&&Array.isArray(v.data))return d(v.data)}function w(v){if(v>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return v|0}function x(v){return+v!=v&&(v=0),a.alloc(+v)}a.isBuffer=function(g){return g!=null&&g._isBuffer===!0&&g!==a.prototype},a.compare=function(g,b){if(It(g,Uint8Array)&&(g=a.from(g,g.offset,g.byteLength)),It(b,Uint8Array)&&(b=a.from(b,b.offset,b.byteLength)),!a.isBuffer(g)||!a.isBuffer(b))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(g===b)return 0;let k=g.length,F=b.length;for(let O=0,$=Math.min(k,F);O<$;++O)if(g[O]!==b[O]){k=g[O],F=b[O];break}return k<F?-1:F<k?1:0},a.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}},a.concat=function(g,b){if(!Array.isArray(g))throw new TypeError('"list" argument must be an Array of Buffers');if(g.length===0)return a.alloc(0);let k;if(b===void 0)for(b=0,k=0;k<g.length;++k)b+=g[k].length;const F=a.allocUnsafe(b);let O=0;for(k=0;k<g.length;++k){let $=g[k];if(It($,Uint8Array))O+$.length>F.length?(a.isBuffer($)||($=a.from($)),$.copy(F,O)):Uint8Array.prototype.set.call(F,$,O);else if(a.isBuffer($))$.copy(F,O);else throw new TypeError('"list" argument must be an Array of Buffers');O+=$.length}return F};function S(v,g){if(a.isBuffer(v))return v.length;if(ArrayBuffer.isView(v)||It(v,ArrayBuffer))return v.byteLength;if(typeof v!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof v);const b=v.length,k=arguments.length>2&&arguments[2]===!0;if(!k&&b===0)return 0;let F=!1;for(;;)switch(g){case"ascii":case"latin1":case"binary":return b;case"utf8":case"utf-8":return fe(v).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return b*2;case"hex":return b>>>1;case"base64":return Si(v).length;default:if(F)return k?-1:fe(v).length;g=(""+g).toLowerCase(),F=!0}}a.byteLength=S;function _(v,g,b){let k=!1;if((g===void 0||g<0)&&(g=0),g>this.length||((b===void 0||b>this.length)&&(b=this.length),b<=0)||(b>>>=0,g>>>=0,b<=g))return"";for(v||(v="utf8");;)switch(v){case"hex":return Ue(this,g,b);case"utf8":case"utf-8":return pe(this,g,b);case"ascii":return _e(this,g,b);case"latin1":case"binary":return Oe(this,g,b);case"base64":return ie(this,g,b);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return tt(this,g,b);default:if(k)throw new TypeError("Unknown encoding: "+v);v=(v+"").toLowerCase(),k=!0}}a.prototype._isBuffer=!0;function T(v,g,b){const k=v[g];v[g]=v[b],v[b]=k}a.prototype.swap16=function(){const g=this.length;if(g%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let b=0;b<g;b+=2)T(this,b,b+1);return this},a.prototype.swap32=function(){const g=this.length;if(g%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let b=0;b<g;b+=4)T(this,b,b+3),T(this,b+1,b+2);return this},a.prototype.swap64=function(){const g=this.length;if(g%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let b=0;b<g;b+=8)T(this,b,b+7),T(this,b+1,b+6),T(this,b+2,b+5),T(this,b+3,b+4);return this},a.prototype.toString=function(){const g=this.length;return g===0?"":arguments.length===0?pe(this,0,g):_.apply(this,arguments)},a.prototype.toLocaleString=a.prototype.toString,a.prototype.equals=function(g){if(!a.isBuffer(g))throw new TypeError("Argument must be a Buffer");return this===g?!0:a.compare(this,g)===0},a.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&&(a.prototype[r]=a.prototype.inspect),a.prototype.compare=function(g,b,k,F,O){if(It(g,Uint8Array)&&(g=a.from(g,g.offset,g.byteLength)),!a.isBuffer(g))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof g);if(b===void 0&&(b=0),k===void 0&&(k=g?g.length:0),F===void 0&&(F=0),O===void 0&&(O=this.length),b<0||k>g.length||F<0||O>this.length)throw new RangeError("out of range index");if(F>=O&&b>=k)return 0;if(F>=O)return-1;if(b>=k)return 1;if(b>>>=0,k>>>=0,F>>>=0,O>>>=0,this===g)return 0;let $=O-F,he=k-b;const Ze=Math.min($,he),Ge=this.slice(F,O),Ke=g.slice(b,k);for(let Be=0;Be<Ze;++Be)if(Ge[Be]!==Ke[Be]){$=Ge[Be],he=Ke[Be];break}return $<he?-1:he<$?1:0};function B(v,g,b,k,F){if(v.length===0)return-1;if(typeof b=="string"?(k=b,b=0):b>2147483647?b=2147483647:b<-2147483648&&(b=-2147483648),b=+b,Br(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=a.from(g,k)),a.isBuffer(g))return g.length===0?-1:I(v,g,b,k,F);if(typeof g=="number")return g=g&255,typeof Uint8Array.prototype.indexOf=="function"?F?Uint8Array.prototype.indexOf.call(v,g,b):Uint8Array.prototype.lastIndexOf.call(v,g,b):I(v,[g],b,k,F);throw new TypeError("val must be string, number or Buffer")}function I(v,g,b,k,F){let O=1,$=v.length,he=g.length;if(k!==void 0&&(k=String(k).toLowerCase(),k==="ucs2"||k==="ucs-2"||k==="utf16le"||k==="utf-16le")){if(v.length<2||g.length<2)return-1;O=2,$/=2,he/=2,b/=2}function Ze(Ke,Be){return O===1?Ke[Be]:Ke.readUInt16BE(Be*O)}let Ge;if(F){let Ke=-1;for(Ge=b;Ge<$;Ge++)if(Ze(v,Ge)===Ze(g,Ke===-1?0:Ge-Ke)){if(Ke===-1&&(Ke=Ge),Ge-Ke+1===he)return Ke*O}else Ke!==-1&&(Ge-=Ge-Ke),Ke=-1}else for(b+he>$&&(b=$-he),Ge=b;Ge>=0;Ge--){let Ke=!0;for(let Be=0;Be<he;Be++)if(Ze(v,Ge+Be)!==Ze(g,Be)){Ke=!1;break}if(Ke)return Ge}return-1}a.prototype.includes=function(g,b,k){return this.indexOf(g,b,k)!==-1},a.prototype.indexOf=function(g,b,k){return B(this,g,b,k,!0)},a.prototype.lastIndexOf=function(g,b,k){return B(this,g,b,k,!1)};function D(v,g,b,k){b=Number(b)||0;const F=v.length-b;k?(k=Number(k),k>F&&(k=F)):k=F;const O=g.length;k>O/2&&(k=O/2);let $;for($=0;$<k;++$){const he=parseInt(g.substr($*2,2),16);if(Br(he))return $;v[b+$]=he}return $}function M(v,g,b,k){return Ci(fe(g,v.length-b),v,b,k)}function G(v,g,b,k){return Ci(Zt(g),v,b,k)}function N(v,g,b,k){return Ci(Si(g),v,b,k)}function ne(v,g,b,k){return Ci(_i(g,v.length-b),v,b,k)}a.prototype.write=function(g,b,k,F){if(b===void 0)F="utf8",k=this.length,b=0;else if(k===void 0&&typeof b=="string")F=b,k=this.length,b=0;else if(isFinite(b))b=b>>>0,isFinite(k)?(k=k>>>0,F===void 0&&(F="utf8")):(F=k,k=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const O=this.length-b;if((k===void 0||k>O)&&(k=O),g.length>0&&(k<0||b<0)||b>this.length)throw new RangeError("Attempt to write outside buffer bounds");F||(F="utf8");let $=!1;for(;;)switch(F){case"hex":return D(this,g,b,k);case"utf8":case"utf-8":return M(this,g,b,k);case"ascii":case"latin1":case"binary":return G(this,g,b,k);case"base64":return N(this,g,b,k);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ne(this,g,b,k);default:if($)throw new TypeError("Unknown encoding: "+F);F=(""+F).toLowerCase(),$=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function ie(v,g,b){return g===0&&b===v.length?t.fromByteArray(v):t.fromByteArray(v.slice(g,b))}function pe(v,g,b){b=Math.min(v.length,b);const k=[];let F=g;for(;F<b;){const O=v[F];let $=null,he=O>239?4:O>223?3:O>191?2:1;if(F+he<=b){let Ze,Ge,Ke,Be;switch(he){case 1:O<128&&($=O);break;case 2:Ze=v[F+1],(Ze&192)===128&&(Be=(O&31)<<6|Ze&63,Be>127&&($=Be));break;case 3:Ze=v[F+1],Ge=v[F+2],(Ze&192)===128&&(Ge&192)===128&&(Be=(O&15)<<12|(Ze&63)<<6|Ge&63,Be>2047&&(Be<55296||Be>57343)&&($=Be));break;case 4:Ze=v[F+1],Ge=v[F+2],Ke=v[F+3],(Ze&192)===128&&(Ge&192)===128&&(Ke&192)===128&&(Be=(O&15)<<18|(Ze&63)<<12|(Ge&63)<<6|Ke&63,Be>65535&&Be<1114112&&($=Be))}}$===null?($=65533,he=1):$>65535&&($-=65536,k.push($>>>10&1023|55296),$=56320|$&1023),k.push($),F+=he}return Pe(k)}const be=4096;function Pe(v){const g=v.length;if(g<=be)return String.fromCharCode.apply(String,v);let b="",k=0;for(;k<g;)b+=String.fromCharCode.apply(String,v.slice(k,k+=be));return b}function _e(v,g,b){let k="";b=Math.min(v.length,b);for(let F=g;F<b;++F)k+=String.fromCharCode(v[F]&127);return k}function Oe(v,g,b){let k="";b=Math.min(v.length,b);for(let F=g;F<b;++F)k+=String.fromCharCode(v[F]);return k}function Ue(v,g,b){const k=v.length;(!g||g<0)&&(g=0),(!b||b<0||b>k)&&(b=k);let F="";for(let O=g;O<b;++O)F+=Ti[v[O]];return F}function tt(v,g,b){const k=v.slice(g,b);let F="";for(let O=0;O<k.length-1;O+=2)F+=String.fromCharCode(k[O]+k[O+1]*256);return F}a.prototype.slice=function(g,b){const k=this.length;g=~~g,b=b===void 0?k:~~b,g<0?(g+=k,g<0&&(g=0)):g>k&&(g=k),b<0?(b+=k,b<0&&(b=0)):b>k&&(b=k),b<g&&(b=g);const F=this.subarray(g,b);return Object.setPrototypeOf(F,a.prototype),F};function ke(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")}a.prototype.readUintLE=a.prototype.readUIntLE=function(g,b,k){g=g>>>0,b=b>>>0,k||ke(g,b,this.length);let F=this[g],O=1,$=0;for(;++$<b&&(O*=256);)F+=this[g+$]*O;return F},a.prototype.readUintBE=a.prototype.readUIntBE=function(g,b,k){g=g>>>0,b=b>>>0,k||ke(g,b,this.length);let F=this[g+--b],O=1;for(;b>0&&(O*=256);)F+=this[g+--b]*O;return F},a.prototype.readUint8=a.prototype.readUInt8=function(g,b){return g=g>>>0,b||ke(g,1,this.length),this[g]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(g,b){return g=g>>>0,b||ke(g,2,this.length),this[g]|this[g+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(g,b){return g=g>>>0,b||ke(g,2,this.length),this[g]<<8|this[g+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(g,b){return g=g>>>0,b||ke(g,4,this.length),(this[g]|this[g+1]<<8|this[g+2]<<16)+this[g+3]*16777216},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(g,b){return g=g>>>0,b||ke(g,4,this.length),this[g]*16777216+(this[g+1]<<16|this[g+2]<<8|this[g+3])},a.prototype.readBigUInt64LE=Yt(function(g){g=g>>>0,V(g,"offset");const b=this[g],k=this[g+7];(b===void 0||k===void 0)&&W(g,this.length-8);const F=b+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24,O=this[++g]+this[++g]*2**8+this[++g]*2**16+k*2**24;return BigInt(F)+(BigInt(O)<<BigInt(32))}),a.prototype.readBigUInt64BE=Yt(function(g){g=g>>>0,V(g,"offset");const b=this[g],k=this[g+7];(b===void 0||k===void 0)&&W(g,this.length-8);const F=b*2**24+this[++g]*2**16+this[++g]*2**8+this[++g],O=this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+k;return(BigInt(F)<<BigInt(32))+BigInt(O)}),a.prototype.readIntLE=function(g,b,k){g=g>>>0,b=b>>>0,k||ke(g,b,this.length);let F=this[g],O=1,$=0;for(;++$<b&&(O*=256);)F+=this[g+$]*O;return O*=128,F>=O&&(F-=Math.pow(2,8*b)),F},a.prototype.readIntBE=function(g,b,k){g=g>>>0,b=b>>>0,k||ke(g,b,this.length);let F=b,O=1,$=this[g+--F];for(;F>0&&(O*=256);)$+=this[g+--F]*O;return O*=128,$>=O&&($-=Math.pow(2,8*b)),$},a.prototype.readInt8=function(g,b){return g=g>>>0,b||ke(g,1,this.length),this[g]&128?(255-this[g]+1)*-1:this[g]},a.prototype.readInt16LE=function(g,b){g=g>>>0,b||ke(g,2,this.length);const k=this[g]|this[g+1]<<8;return k&32768?k|4294901760:k},a.prototype.readInt16BE=function(g,b){g=g>>>0,b||ke(g,2,this.length);const k=this[g+1]|this[g]<<8;return k&32768?k|4294901760:k},a.prototype.readInt32LE=function(g,b){return g=g>>>0,b||ke(g,4,this.length),this[g]|this[g+1]<<8|this[g+2]<<16|this[g+3]<<24},a.prototype.readInt32BE=function(g,b){return g=g>>>0,b||ke(g,4,this.length),this[g]<<24|this[g+1]<<16|this[g+2]<<8|this[g+3]},a.prototype.readBigInt64LE=Yt(function(g){g=g>>>0,V(g,"offset");const b=this[g],k=this[g+7];(b===void 0||k===void 0)&&W(g,this.length-8);const F=this[g+4]+this[g+5]*2**8+this[g+6]*2**16+(k<<24);return(BigInt(F)<<BigInt(32))+BigInt(b+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24)}),a.prototype.readBigInt64BE=Yt(function(g){g=g>>>0,V(g,"offset");const b=this[g],k=this[g+7];(b===void 0||k===void 0)&&W(g,this.length-8);const F=(b<<24)+this[++g]*2**16+this[++g]*2**8+this[++g];return(BigInt(F)<<BigInt(32))+BigInt(this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+k)}),a.prototype.readFloatLE=function(g,b){return g=g>>>0,b||ke(g,4,this.length),n.read(this,g,!0,23,4)},a.prototype.readFloatBE=function(g,b){return g=g>>>0,b||ke(g,4,this.length),n.read(this,g,!1,23,4)},a.prototype.readDoubleLE=function(g,b){return g=g>>>0,b||ke(g,8,this.length),n.read(this,g,!0,52,8)},a.prototype.readDoubleBE=function(g,b){return g=g>>>0,b||ke(g,8,this.length),n.read(this,g,!1,52,8)};function Ie(v,g,b,k,F,O){if(!a.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+k>v.length)throw new RangeError("Index out of range")}a.prototype.writeUintLE=a.prototype.writeUIntLE=function(g,b,k,F){if(g=+g,b=b>>>0,k=k>>>0,!F){const he=Math.pow(2,8*k)-1;Ie(this,g,b,k,he,0)}let O=1,$=0;for(this[b]=g&255;++$<k&&(O*=256);)this[b+$]=g/O&255;return b+k},a.prototype.writeUintBE=a.prototype.writeUIntBE=function(g,b,k,F){if(g=+g,b=b>>>0,k=k>>>0,!F){const he=Math.pow(2,8*k)-1;Ie(this,g,b,k,he,0)}let O=k-1,$=1;for(this[b+O]=g&255;--O>=0&&($*=256);)this[b+O]=g/$&255;return b+k},a.prototype.writeUint8=a.prototype.writeUInt8=function(g,b,k){return g=+g,b=b>>>0,k||Ie(this,g,b,1,255,0),this[b]=g&255,b+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(g,b,k){return g=+g,b=b>>>0,k||Ie(this,g,b,2,65535,0),this[b]=g&255,this[b+1]=g>>>8,b+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(g,b,k){return g=+g,b=b>>>0,k||Ie(this,g,b,2,65535,0),this[b]=g>>>8,this[b+1]=g&255,b+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(g,b,k){return g=+g,b=b>>>0,k||Ie(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},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(g,b,k){return g=+g,b=b>>>0,k||Ie(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 bt(v,g,b,k,F){A(g,k,F,v,b,7);let O=Number(g&BigInt(4294967295));v[b++]=O,O=O>>8,v[b++]=O,O=O>>8,v[b++]=O,O=O>>8,v[b++]=O;let $=Number(g>>BigInt(32)&BigInt(4294967295));return v[b++]=$,$=$>>8,v[b++]=$,$=$>>8,v[b++]=$,$=$>>8,v[b++]=$,b}function Wt(v,g,b,k,F){A(g,k,F,v,b,7);let O=Number(g&BigInt(4294967295));v[b+7]=O,O=O>>8,v[b+6]=O,O=O>>8,v[b+5]=O,O=O>>8,v[b+4]=O;let $=Number(g>>BigInt(32)&BigInt(4294967295));return v[b+3]=$,$=$>>8,v[b+2]=$,$=$>>8,v[b+1]=$,$=$>>8,v[b]=$,b+8}a.prototype.writeBigUInt64LE=Yt(function(g,b=0){return bt(this,g,b,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeBigUInt64BE=Yt(function(g,b=0){return Wt(this,g,b,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeIntLE=function(g,b,k,F){if(g=+g,b=b>>>0,!F){const Ze=Math.pow(2,8*k-1);Ie(this,g,b,k,Ze-1,-Ze)}let O=0,$=1,he=0;for(this[b]=g&255;++O<k&&($*=256);)g<0&&he===0&&this[b+O-1]!==0&&(he=1),this[b+O]=(g/$>>0)-he&255;return b+k},a.prototype.writeIntBE=function(g,b,k,F){if(g=+g,b=b>>>0,!F){const Ze=Math.pow(2,8*k-1);Ie(this,g,b,k,Ze-1,-Ze)}let O=k-1,$=1,he=0;for(this[b+O]=g&255;--O>=0&&($*=256);)g<0&&he===0&&this[b+O+1]!==0&&(he=1),this[b+O]=(g/$>>0)-he&255;return b+k},a.prototype.writeInt8=function(g,b,k){return g=+g,b=b>>>0,k||Ie(this,g,b,1,127,-128),g<0&&(g=255+g+1),this[b]=g&255,b+1},a.prototype.writeInt16LE=function(g,b,k){return g=+g,b=b>>>0,k||Ie(this,g,b,2,32767,-32768),this[b]=g&255,this[b+1]=g>>>8,b+2},a.prototype.writeInt16BE=function(g,b,k){return g=+g,b=b>>>0,k||Ie(this,g,b,2,32767,-32768),this[b]=g>>>8,this[b+1]=g&255,b+2},a.prototype.writeInt32LE=function(g,b,k){return g=+g,b=b>>>0,k||Ie(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},a.prototype.writeInt32BE=function(g,b,k){return g=+g,b=b>>>0,k||Ie(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},a.prototype.writeBigInt64LE=Yt(function(g,b=0){return bt(this,g,b,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),a.prototype.writeBigInt64BE=Yt(function(g,b=0){return Wt(this,g,b,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function $e(v,g,b,k,F,O){if(b+k>v.length)throw new RangeError("Index out of range");if(b<0)throw new RangeError("Index out of range")}function L(v,g,b,k,F){return g=+g,b=b>>>0,F||$e(v,g,b,4),n.write(v,g,b,k,23,4),b+4}a.prototype.writeFloatLE=function(g,b,k){return L(this,g,b,!0,k)},a.prototype.writeFloatBE=function(g,b,k){return L(this,g,b,!1,k)};function P(v,g,b,k,F){return g=+g,b=b>>>0,F||$e(v,g,b,8),n.write(v,g,b,k,52,8),b+8}a.prototype.writeDoubleLE=function(g,b,k){return P(this,g,b,!0,k)},a.prototype.writeDoubleBE=function(g,b,k){return P(this,g,b,!1,k)},a.prototype.copy=function(g,b,k,F){if(!a.isBuffer(g))throw new TypeError("argument should be a Buffer");if(k||(k=0),!F&&F!==0&&(F=this.length),b>=g.length&&(b=g.length),b||(b=0),F>0&&F<k&&(F=k),F===k||g.length===0||this.length===0)return 0;if(b<0)throw new RangeError("targetStart out of bounds");if(k<0||k>=this.length)throw new RangeError("Index out of range");if(F<0)throw new RangeError("sourceEnd out of bounds");F>this.length&&(F=this.length),g.length-b<F-k&&(F=g.length-b+k);const O=F-k;return this===g&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(b,k,F):Uint8Array.prototype.set.call(g,this.subarray(k,F),b),O},a.prototype.fill=function(g,b,k,F){if(typeof g=="string"){if(typeof b=="string"?(F=b,b=0,k=this.length):typeof k=="string"&&(F=k,k=this.length),F!==void 0&&typeof F!="string")throw new TypeError("encoding must be a string");if(typeof F=="string"&&!a.isEncoding(F))throw new TypeError("Unknown encoding: "+F);if(g.length===1){const $=g.charCodeAt(0);(F==="utf8"&&$<128||F==="latin1")&&(g=$)}}else typeof g=="number"?g=g&255:typeof g=="boolean"&&(g=Number(g));if(b<0||this.length<b||this.length<k)throw new RangeError("Out of range index");if(k<=b)return this;b=b>>>0,k=k===void 0?this.length:k>>>0,g||(g=0);let O;if(typeof g=="number")for(O=b;O<k;++O)this[O]=g;else{const $=a.isBuffer(g)?g:a.from(g,F),he=$.length;if(he===0)throw new TypeError('The value "'+g+'" is invalid for argument "value"');for(O=0;O<k-b;++O)this[O+b]=$[O%he]}return this};const q={};function j(v,g,b){q[v]=class extends b{constructor(){super(),Object.defineProperty(this,"message",{value:g.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${v}]`,this.stack,delete this.name}get code(){return v}set code(F){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:F,writable:!0})}toString(){return`${this.name} [${v}]: ${this.message}`}}}j("ERR_BUFFER_OUT_OF_BOUNDS",function(v){return v?`${v} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),j("ERR_INVALID_ARG_TYPE",function(v,g){return`The "${v}" argument must be of type number. Received type ${typeof g}`},TypeError),j("ERR_OUT_OF_RANGE",function(v,g,b){let k=`The value of "${v}" is out of range.`,F=b;return Number.isInteger(b)&&Math.abs(b)>2**32?F=Z(String(b)):typeof b=="bigint"&&(F=String(b),(b>BigInt(2)**BigInt(32)||b<-(BigInt(2)**BigInt(32)))&&(F=Z(F)),F+="n"),k+=` It must be ${g}. Received ${F}`,k},RangeError);function Z(v){let g="",b=v.length;const k=v[0]==="-"?1:0;for(;b>=k+4;b-=3)g=`_${v.slice(b-3,b)}${g}`;return`${v.slice(0,b)}${g}`}function C(v,g,b){V(g,"offset"),(v[g]===void 0||v[g+b]===void 0)&&W(g,v.length-(b+1))}function A(v,g,b,k,F,O){if(v>b||v<g){const $=typeof g=="bigint"?"n":"";let he;throw g===0||g===BigInt(0)?he=`>= 0${$} and < 2${$} ** ${(O+1)*8}${$}`:he=`>= -(2${$} ** ${(O+1)*8-1}${$}) and < 2 ** ${(O+1)*8-1}${$}`,new q.ERR_OUT_OF_RANGE("value",he,v)}C(k,F,O)}function V(v,g){if(typeof v!="number")throw new q.ERR_INVALID_ARG_TYPE(g,"number",v)}function W(v,g,b){throw Math.floor(v)!==v?(V(v,b),new q.ERR_OUT_OF_RANGE("offset","an integer",v)):g<0?new q.ERR_BUFFER_OUT_OF_BOUNDS:new q.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${g}`,v)}const ce=/[^+/0-9A-Za-z-_]/g;function te(v){if(v=v.split("=")[0],v=v.trim().replace(ce,""),v.length<2)return"";for(;v.length%4!==0;)v=v+"=";return v}function fe(v,g){g=g||1/0;let b;const k=v.length;let F=null;const O=[];for(let $=0;$<k;++$){if(b=v.charCodeAt($),b>55295&&b<57344){if(!F){if(b>56319){(g-=3)>-1&&O.push(239,191,189);continue}else if($+1===k){(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 _i(v,g){let b,k,F;const O=[];for(let $=0;$<v.length&&!((g-=2)<0);++$)b=v.charCodeAt($),k=b>>8,F=b%256,O.push(F),O.push(k);return O}function Si(v){return t.toByteArray(te(v))}function Ci(v,g,b,k){let F;for(F=0;F<k&&!(F+b>=g.length||F>=v.length);++F)g[F+b]=v[F];return F}function It(v,g){return v instanceof g||v!=null&&v.constructor!=null&&v.constructor.name!=null&&v.constructor.name===g.name}function Br(v){return v!==v}const Ti=function(){const v="0123456789abcdef",g=new Array(256);for(let b=0;b<16;++b){const k=b*16;for(let F=0;F<16;++F)g[k+F]=v[b]+v[F]}return g}();function Yt(v){return typeof BigInt>"u"?ar:v}function ar(){throw new Error("BigInt not supported")}})(xe);const Lv=Se({__proto__:null,default:bf(xe)},[xe]),gt={},lM=Object.freeze(Object.defineProperty({__proto__:null,default:gt},Symbol.toStringTag,{value:"Module"}));class oo{async getBufferFromResponse(t){const n=await t.arrayBuffer();return xe.Buffer.from(n)}constructor(t,n={}){this.baseOverrides={},this.url=t;const r=n.fetch||globalThis.fetch.bind(globalThis);if(!r)throw new TypeError("no fetch function supplied, and none found in global environment");n.overrides&&(this.baseOverrides=n.overrides),this.fetchImplementation=r}async fetch(t,n){let r;try{r=await this.fetchImplementation(t,n)}catch(i){if(`${i}`.includes("Failed to fetch"))console.warn(`generic-filehandle: refetching ${t} to attempt to work around chrome CORS header caching bug`),r=await this.fetchImplementation(t,{...n,cache:"reload"});else throw i}return r}async read(t,n=0,r,i=0,o={}){const{headers:s={},signal:a,overrides:u={}}=o;r<1/0?s.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(s.range=`bytes=${i}-`);const l={...this.baseOverrides,...u,headers:{...s,...u.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:a},c=await this.fetch(this.url,l);if(!c.ok)throw new Error(`HTTP ${c.status} ${c.statusText} ${this.url}`);if(c.status===200&&i===0||c.status===206){const f=await this.getBufferFromResponse(c),h=f.copy(t,n,0,Math.min(r,f.length)),d=c.headers.get("content-range"),p=/\/(\d+)$/.exec(d||"");return p!=null&&p[1]&&(this._stat={size:parseInt(p[1],10)}),{bytesRead:h,buffer:t}}throw c.status===200?new Error("${this.url} fetch returned status 200, expected 206"):new Error(`HTTP ${c.status} fetching ${this.url}`)}async readFile(t={}){let n,r;typeof t=="string"?(n=t,r={}):(n=t.encoding,r=t,delete r.encoding);const{headers:i={},signal:o,overrides:s={}}=r,a={headers:i,method:"GET",redirect:"follow",mode:"cors",signal:o,...this.baseOverrides,...s},u=await this.fetch(this.url,a);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=xe.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 Nv(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 uM(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 cM{constructor(t){this.blob=t,this.size=t.size}async read(t,n=0,r,i=0){if(!r)return{bytesRead:0,buffer:t};const o=i,s=o+r,a=await Nv(this.blob.slice(o,s)),u=xe.Buffer.from(a);return{bytesRead:u.copy(t,n),buffer:u}}async readFile(t){const n=typeof t=="string"?t:t==null?void 0:t.encoding;if(n==="utf8")return uM(this.blob);if(n)throw new Error(`unsupported encoding: ${n}`);const r=await Nv(this.blob);return xe.Buffer.from(r)}async stat(){return{size:this.size}}async close(){}}function Ov(e,t={}){return new oo(e,t)}function fM(e,t,n,r={}){if(n!==void 0)return n;if(e!==void 0)return Ov(e,r);if(t!==void 0)return new gt(t,r);throw new Error("no url, path, or filehandle provided, cannot open")}const Il=Object.freeze(Object.defineProperty({__proto__:null,BlobFile:cM,LocalFile:gt,RemoteFile:oo,fromUrl:Ov,open:fM},Symbol.toStringTag,{value:"Module"}));var vr={};(function(e){var t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function n(o,s){return Object.prototype.hasOwnProperty.call(o,s)}e.assign=function(o){for(var s=Array.prototype.slice.call(arguments,1);s.length;){var a=s.shift();if(a){if(typeof a!="object")throw new TypeError(a+"must be non-object");for(var u in a)n(a,u)&&(o[u]=a[u])}}return o},e.shrinkBuf=function(o,s){return o.length===s?o:o.subarray?o.subarray(0,s):(o.length=s,o)};var r={arraySet:function(o,s,a,u,l){if(s.subarray&&o.subarray){o.set(s.subarray(a,a+u),l);return}for(var c=0;c<u;c++)o[l+c]=s[a+c]},flattenChunks:function(o){var s,a,u,l,c,f;for(u=0,s=0,a=o.length;s<a;s++)u+=o[s].length;for(f=new Uint8Array(u),l=0,s=0,a=o.length;s<a;s++)c=o[s],f.set(c,l),l+=c.length;return f}},i={arraySet:function(o,s,a,u,l){for(var c=0;c<u;c++)o[l+c]=s[a+c]},flattenChunks:function(o){return[].concat.apply([],o)}};e.setTyped=function(o){o?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,r)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,i))},e.setTyped(t)})(vr);var Bl={},Qn={},ds={},hM=vr,dM=4,zv=0,Uv=1,pM=2;function ps(e){for(var t=e.length;--t>=0;)e[t]=0}var gM=0,Gv=1,mM=2,bM=3,yM=258,ap=29,Dl=256,Rl=Dl+1+ap,gs=30,lp=19,Hv=2*Rl+1,so=15,up=16,wM=7,cp=256,Vv=16,jv=17,$v=18,fp=[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],wf=[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],vM=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],qv=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],AM=512,Ar=new Array((Rl+2)*2);ps(Ar);var Fl=new Array(gs*2);ps(Fl);var Ml=new Array(AM);ps(Ml);var Pl=new Array(yM-bM+1);ps(Pl);var hp=new Array(ap);ps(hp);var vf=new Array(gs);ps(vf);function dp(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}var Wv,Zv,Yv;function pp(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function Qv(e){return e<256?Ml[e]:Ml[256+(e>>>7)]}function Ll(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function Vt(e,t,n){e.bi_valid>up-n?(e.bi_buf|=t<<e.bi_valid&65535,Ll(e,e.bi_buf),e.bi_buf=t>>up-e.bi_valid,e.bi_valid+=n-up):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function Xn(e,t,n){Vt(e,n[t*2],n[t*2+1])}function Xv(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function xM(e){e.bi_valid===16?(Ll(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 EM(e,t){var n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,o=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,u=t.stat_desc.max_length,l,c,f,h,d,p,m=0;for(h=0;h<=so;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Hv;l++)c=e.heap[l],h=n[n[c*2+1]*2+1]+1,h>u&&(h=u,m++),n[c*2+1]=h,!(c>r)&&(e.bl_count[h]++,d=0,c>=a&&(d=s[c-a]),p=n[c*2],e.opt_len+=p*(h+d),o&&(e.static_len+=p*(i[c*2+1]+d)));if(m!==0){do{for(h=u-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[u]--,m-=2}while(m>0);for(h=u;h!==0;h--)for(c=e.bl_count[h];c!==0;)f=e.heap[--l],!(f>r)&&(n[f*2+1]!==h&&(e.opt_len+=(h-n[f*2+1])*n[f*2],n[f*2+1]=h),c--)}}function Kv(e,t,n){var r=new Array(so+1),i=0,o,s;for(o=1;o<=so;o++)r[o]=i=i+n[o-1]<<1;for(s=0;s<=t;s++){var a=e[s*2+1];a!==0&&(e[s*2]=Xv(r[a]++,a))}}function _M(){var e,t,n,r,i,o=new Array(so+1);for(n=0,r=0;r<ap-1;r++)for(hp[r]=n,e=0;e<1<<fp[r];e++)Pl[n++]=r;for(Pl[n-1]=r,i=0,r=0;r<16;r++)for(vf[r]=i,e=0;e<1<<wf[r];e++)Ml[i++]=r;for(i>>=7;r<gs;r++)for(vf[r]=i<<7,e=0;e<1<<wf[r]-7;e++)Ml[256+i++]=r;for(t=0;t<=so;t++)o[t]=0;for(e=0;e<=143;)Ar[e*2+1]=8,e++,o[8]++;for(;e<=255;)Ar[e*2+1]=9,e++,o[9]++;for(;e<=279;)Ar[e*2+1]=7,e++,o[7]++;for(;e<=287;)Ar[e*2+1]=8,e++,o[8]++;for(Kv(Ar,Rl+1,o),e=0;e<gs;e++)Fl[e*2+1]=5,Fl[e*2]=Xv(e,5);Wv=new dp(Ar,fp,Dl+1,Rl,so),Zv=new dp(Fl,wf,0,gs,so),Yv=new dp(new Array(0),vM,0,lp,wM)}function Jv(e){var t;for(t=0;t<Rl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<gs;t++)e.dyn_dtree[t*2]=0;for(t=0;t<lp;t++)e.bl_tree[t*2]=0;e.dyn_ltree[cp*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function eA(e){e.bi_valid>8?Ll(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 SM(e,t,n,r){eA(e),Ll(e,n),Ll(e,~n),hM.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function tA(e,t,n,r){var i=t*2,o=n*2;return e[i]<e[o]||e[i]===e[o]&&r[t]<=r[n]}function gp(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&tA(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!tA(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function nA(e,t,n){var r,i,o=0,s,a;if(e.last_lit!==0)do r=e.pending_buf[e.d_buf+o*2]<<8|e.pending_buf[e.d_buf+o*2+1],i=e.pending_buf[e.l_buf+o],o++,r===0?Xn(e,i,t):(s=Pl[i],Xn(e,s+Dl+1,t),a=fp[s],a!==0&&(i-=hp[s],Vt(e,i,a)),r--,s=Qv(r),Xn(e,s,n),a=wf[s],a!==0&&(r-=vf[s],Vt(e,r,a)));while(o<e.last_lit);Xn(e,cp,t)}function mp(e,t){var n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,o=t.stat_desc.elems,s,a,u=-1,l;for(e.heap_len=0,e.heap_max=Hv,s=0;s<o;s++)n[s*2]!==0?(e.heap[++e.heap_len]=u=s,e.depth[s]=0):n[s*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,s=e.heap_len>>1;s>=1;s--)gp(e,n,s);l=o;do s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],gp(e,n,1),a=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=a,n[l*2]=n[s*2]+n[a*2],e.depth[l]=(e.depth[s]>=e.depth[a]?e.depth[s]:e.depth[a])+1,n[s*2+1]=n[a*2+1]=l,e.heap[1]=l++,gp(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],EM(e,t),Kv(n,u,e.bl_count)}function rA(e,t,n){var r,i=-1,o,s=t[0*2+1],a=0,u=7,l=4;for(s===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)o=s,s=t[(r+1)*2+1],!(++a<u&&o===s)&&(a<l?e.bl_tree[o*2]+=a:o!==0?(o!==i&&e.bl_tree[o*2]++,e.bl_tree[Vv*2]++):a<=10?e.bl_tree[jv*2]++:e.bl_tree[$v*2]++,a=0,i=o,s===0?(u=138,l=3):o===s?(u=6,l=3):(u=7,l=4))}function iA(e,t,n){var r,i=-1,o,s=t[0*2+1],a=0,u=7,l=4;for(s===0&&(u=138,l=3),r=0;r<=n;r++)if(o=s,s=t[(r+1)*2+1],!(++a<u&&o===s)){if(a<l)do Xn(e,o,e.bl_tree);while(--a!==0);else o!==0?(o!==i&&(Xn(e,o,e.bl_tree),a--),Xn(e,Vv,e.bl_tree),Vt(e,a-3,2)):a<=10?(Xn(e,jv,e.bl_tree),Vt(e,a-3,3)):(Xn(e,$v,e.bl_tree),Vt(e,a-11,7));a=0,i=o,s===0?(u=138,l=3):o===s?(u=6,l=3):(u=7,l=4)}}function CM(e){var t;for(rA(e,e.dyn_ltree,e.l_desc.max_code),rA(e,e.dyn_dtree,e.d_desc.max_code),mp(e,e.bl_desc),t=lp-1;t>=3&&e.bl_tree[qv[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function TM(e,t,n,r){var i;for(Vt(e,t-257,5),Vt(e,n-1,5),Vt(e,r-4,4),i=0;i<r;i++)Vt(e,e.bl_tree[qv[i]*2+1],3);iA(e,e.dyn_ltree,t-1),iA(e,e.dyn_dtree,n-1)}function kM(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return zv;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Uv;for(n=32;n<Dl;n++)if(e.dyn_ltree[n*2]!==0)return Uv;return zv}var oA=!1;function IM(e){oA||(_M(),oA=!0),e.l_desc=new pp(e.dyn_ltree,Wv),e.d_desc=new pp(e.dyn_dtree,Zv),e.bl_desc=new pp(e.bl_tree,Yv),e.bi_buf=0,e.bi_valid=0,Jv(e)}function sA(e,t,n,r){Vt(e,(gM<<1)+(r?1:0),3),SM(e,t,n)}function BM(e){Vt(e,Gv<<1,3),Xn(e,cp,Ar),xM(e)}function DM(e,t,n,r){var i,o,s=0;e.level>0?(e.strm.data_type===pM&&(e.strm.data_type=kM(e)),mp(e,e.l_desc),mp(e,e.d_desc),s=CM(e),i=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=i&&(i=o)):i=o=n+5,n+4<=i&&t!==-1?sA(e,t,n,r):e.strategy===dM||o===i?(Vt(e,(Gv<<1)+(r?1:0),3),nA(e,Ar,Fl)):(Vt(e,(mM<<1)+(r?1:0),3),TM(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),nA(e,e.dyn_ltree,e.dyn_dtree)),Jv(e),r&&eA(e)}function RM(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[(Pl[n]+Dl+1)*2]++,e.dyn_dtree[Qv(t)*2]++),e.last_lit===e.lit_bufsize-1}ds._tr_init=IM,ds._tr_stored_block=sA,ds._tr_flush_block=DM,ds._tr_tally=RM,ds._tr_align=BM;function FM(e,t,n,r){for(var i=e&65535|0,o=e>>>16&65535|0,s=0;n!==0;){s=n>2e3?2e3:n,n-=s;do i=i+t[r++]|0,o=o+i|0;while(--s);i%=65521,o%=65521}return i|o<<16|0}var aA=FM;function MM(){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 PM=MM();function LM(e,t,n,r){var i=PM,o=r+n;e^=-1;for(var s=r;s<o;s++)e=e>>>8^i[(e^t[s])&255];return e^-1}var lA=LM,bp={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"},Mt=vr,hn=ds,uA=aA,si=lA,NM=bp,ao=0,OM=1,zM=3,ai=4,cA=5,Kn=0,fA=1,dn=-2,UM=-3,yp=-5,GM=-1,HM=1,Af=2,VM=3,jM=4,$M=0,qM=2,xf=8,WM=9,ZM=15,YM=8,QM=29,XM=256,wp=XM+1+QM,KM=30,JM=19,eP=2*wp+1,tP=15,ge=3,li=258,Dn=li+ge+1,nP=32,Ef=42,vp=69,_f=73,Sf=91,Cf=103,lo=113,Nl=666,ut=1,Ol=2,uo=3,ms=4,rP=3;function ui(e,t){return e.msg=NM[t],t}function hA(e){return(e<<1)-(e>4?9:0)}function ci(e){for(var t=e.length;--t>=0;)e[t]=0}function fi(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(Mt.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 vt(e,t){hn._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,fi(e.strm)}function Ee(e,t){e.pending_buf[e.pending++]=t}function zl(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function iP(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,Mt.arraySet(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=uA(e.adler,t,i,n):e.state.wrap===2&&(e.adler=si(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function dA(e,t){var n=e.max_chain_length,r=e.strstart,i,o,s=e.prev_length,a=e.nice_match,u=e.strstart>e.w_size-Dn?e.strstart-(e.w_size-Dn):0,l=e.window,c=e.w_mask,f=e.prev,h=e.strstart+li,d=l[r+s-1],p=l[r+s];e.prev_length>=e.good_match&&(n>>=2),a>e.lookahead&&(a=e.lookahead);do if(i=t,!(l[i+s]!==p||l[i+s-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(o=li-(h-r),r=h-li,o>s){if(e.match_start=t,s=o,o>=a)break;d=l[r+s-1],p=l[r+s]}}while((t=f[t&c])>u&&--n!==0);return s<=e.lookahead?s:e.lookahead}function co(e){var t=e.w_size,n,r,i,o,s;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Dn)){Mt.arraySet(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,r=e.hash_size,n=r;do i=e.head[--n],e.head[n]=i>=t?i-t:0;while(--r);r=t,n=r;do i=e.prev[--n],e.prev[n]=i>=t?i-t:0;while(--r);o+=t}if(e.strm.avail_in===0)break;if(r=iP(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=r,e.lookahead+e.insert>=ge)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+ge-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<ge)););}while(e.lookahead<Dn&&e.strm.avail_in!==0)}function oP(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(co(e),e.lookahead===0&&t===ao)return ut;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,vt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-Dn&&(vt(e,!1),e.strm.avail_out===0))return ut}return e.insert=0,t===ai?(vt(e,!0),e.strm.avail_out===0?uo:ms):(e.strstart>e.block_start&&(vt(e,!1),e.strm.avail_out===0),ut)}function Ap(e,t){for(var n,r;;){if(e.lookahead<Dn){if(co(e),e.lookahead<Dn&&t===ao)return ut;if(e.lookahead===0)break}if(n=0,e.lookahead>=ge&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ge-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-Dn&&(e.match_length=dA(e,n)),e.match_length>=ge)if(r=hn._tr_tally(e,e.strstart-e.match_start,e.match_length-ge),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=ge){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ge-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=hn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(vt(e,!1),e.strm.avail_out===0))return ut}return e.insert=e.strstart<ge-1?e.strstart:ge-1,t===ai?(vt(e,!0),e.strm.avail_out===0?uo:ms):e.last_lit&&(vt(e,!1),e.strm.avail_out===0)?ut:Ol}function bs(e,t){for(var n,r,i;;){if(e.lookahead<Dn){if(co(e),e.lookahead<Dn&&t===ao)return ut;if(e.lookahead===0)break}if(n=0,e.lookahead>=ge&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ge-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=ge-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Dn&&(e.match_length=dA(e,n),e.match_length<=5&&(e.strategy===HM||e.match_length===ge&&e.strstart-e.match_start>4096)&&(e.match_length=ge-1)),e.prev_length>=ge&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-ge,r=hn._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-ge),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ge-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=ge-1,e.strstart++,r&&(vt(e,!1),e.strm.avail_out===0))return ut}else if(e.match_available){if(r=hn._tr_tally(e,0,e.window[e.strstart-1]),r&&vt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return ut}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=hn._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<ge-1?e.strstart:ge-1,t===ai?(vt(e,!0),e.strm.avail_out===0?uo:ms):e.last_lit&&(vt(e,!1),e.strm.avail_out===0)?ut:Ol}function sP(e,t){for(var n,r,i,o,s=e.window;;){if(e.lookahead<=li){if(co(e),e.lookahead<=li&&t===ao)return ut;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=ge&&e.strstart>0&&(i=e.strstart-1,r=s[i],r===s[++i]&&r===s[++i]&&r===s[++i])){o=e.strstart+li;do;while(r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&i<o);e.match_length=li-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=ge?(n=hn._tr_tally(e,1,e.match_length-ge),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=hn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(vt(e,!1),e.strm.avail_out===0))return ut}return e.insert=0,t===ai?(vt(e,!0),e.strm.avail_out===0?uo:ms):e.last_lit&&(vt(e,!1),e.strm.avail_out===0)?ut:Ol}function aP(e,t){for(var n;;){if(e.lookahead===0&&(co(e),e.lookahead===0)){if(t===ao)return ut;break}if(e.match_length=0,n=hn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(vt(e,!1),e.strm.avail_out===0))return ut}return e.insert=0,t===ai?(vt(e,!0),e.strm.avail_out===0?uo:ms):e.last_lit&&(vt(e,!1),e.strm.avail_out===0)?ut:Ol}function Jn(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}var ys;ys=[new Jn(0,0,0,0,oP),new Jn(4,4,8,4,Ap),new Jn(4,5,16,8,Ap),new Jn(4,6,32,32,Ap),new Jn(4,4,16,16,bs),new Jn(8,16,32,32,bs),new Jn(8,16,128,128,bs),new Jn(8,32,128,256,bs),new Jn(32,128,258,1024,bs),new Jn(32,258,258,4096,bs)];function lP(e){e.window_size=2*e.w_size,ci(e.head),e.max_lazy_match=ys[e.level].max_lazy,e.good_match=ys[e.level].good_length,e.nice_match=ys[e.level].nice_length,e.max_chain_length=ys[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=ge-1,e.match_available=0,e.ins_h=0}function uP(){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=xf,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 Mt.Buf16(eP*2),this.dyn_dtree=new Mt.Buf16((2*KM+1)*2),this.bl_tree=new Mt.Buf16((2*JM+1)*2),ci(this.dyn_ltree),ci(this.dyn_dtree),ci(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Mt.Buf16(tP+1),this.heap=new Mt.Buf16(2*wp+1),ci(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Mt.Buf16(2*wp+1),ci(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function pA(e){var t;return!e||!e.state?ui(e,dn):(e.total_in=e.total_out=0,e.data_type=qM,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Ef:lo,e.adler=t.wrap===2?0:1,t.last_flush=ao,hn._tr_init(t),Kn)}function gA(e){var t=pA(e);return t===Kn&&lP(e.state),t}function cP(e,t){return!e||!e.state||e.state.wrap!==2?dn:(e.state.gzhead=t,Kn)}function mA(e,t,n,r,i,o){if(!e)return dn;var s=1;if(t===GM&&(t=6),r<0?(s=0,r=-r):r>15&&(s=2,r-=16),i<1||i>WM||n!==xf||r<8||r>15||t<0||t>9||o<0||o>jM)return ui(e,dn);r===8&&(r=9);var a=new uP;return e.state=a,a.strm=e,a.wrap=s,a.gzhead=null,a.w_bits=r,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=i+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+ge-1)/ge),a.window=new Mt.Buf8(a.w_size*2),a.head=new Mt.Buf16(a.hash_size),a.prev=new Mt.Buf16(a.w_size),a.lit_bufsize=1<<i+6,a.pending_buf_size=a.lit_bufsize*4,a.pending_buf=new Mt.Buf8(a.pending_buf_size),a.d_buf=1*a.lit_bufsize,a.l_buf=3*a.lit_bufsize,a.level=t,a.strategy=o,a.method=n,gA(e)}function fP(e,t){return mA(e,t,xf,ZM,YM,$M)}function hP(e,t){var n,r,i,o;if(!e||!e.state||t>cA||t<0)return e?ui(e,dn):dn;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===Nl&&t!==ai)return ui(e,e.avail_out===0?yp:dn);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===Ef)if(r.wrap===2)e.adler=0,Ee(r,31),Ee(r,139),Ee(r,8),r.gzhead?(Ee(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)),Ee(r,r.gzhead.time&255),Ee(r,r.gzhead.time>>8&255),Ee(r,r.gzhead.time>>16&255),Ee(r,r.gzhead.time>>24&255),Ee(r,r.level===9?2:r.strategy>=Af||r.level<2?4:0),Ee(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(Ee(r,r.gzhead.extra.length&255),Ee(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=si(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=vp):(Ee(r,0),Ee(r,0),Ee(r,0),Ee(r,0),Ee(r,0),Ee(r,r.level===9?2:r.strategy>=Af||r.level<2?4:0),Ee(r,rP),r.status=lo);else{var s=xf+(r.w_bits-8<<4)<<8,a=-1;r.strategy>=Af||r.level<2?a=0:r.level<6?a=1:r.level===6?a=2:a=3,s|=a<<6,r.strstart!==0&&(s|=nP),s+=31-s%31,r.status=lo,zl(r,s),r.strstart!==0&&(zl(r,e.adler>>>16),zl(r,e.adler&65535)),e.adler=1}if(r.status===vp)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=si(e.adler,r.pending_buf,r.pending-i,i)),fi(e),i=r.pending,r.pending===r.pending_buf_size));)Ee(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=si(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=_f)}else r.status=_f;if(r.status===_f)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=si(e.adler,r.pending_buf,r.pending-i,i)),fi(e),i=r.pending,r.pending===r.pending_buf_size)){o=1;break}r.gzindex<r.gzhead.name.length?o=r.gzhead.name.charCodeAt(r.gzindex++)&255:o=0,Ee(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=si(e.adler,r.pending_buf,r.pending-i,i)),o===0&&(r.gzindex=0,r.status=Sf)}else r.status=Sf;if(r.status===Sf)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=si(e.adler,r.pending_buf,r.pending-i,i)),fi(e),i=r.pending,r.pending===r.pending_buf_size)){o=1;break}r.gzindex<r.gzhead.comment.length?o=r.gzhead.comment.charCodeAt(r.gzindex++)&255:o=0,Ee(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=si(e.adler,r.pending_buf,r.pending-i,i)),o===0&&(r.status=Cf)}else r.status=Cf;if(r.status===Cf&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&fi(e),r.pending+2<=r.pending_buf_size&&(Ee(r,e.adler&255),Ee(r,e.adler>>8&255),e.adler=0,r.status=lo)):r.status=lo),r.pending!==0){if(fi(e),e.avail_out===0)return r.last_flush=-1,Kn}else if(e.avail_in===0&&hA(t)<=hA(n)&&t!==ai)return ui(e,yp);if(r.status===Nl&&e.avail_in!==0)return ui(e,yp);if(e.avail_in!==0||r.lookahead!==0||t!==ao&&r.status!==Nl){var u=r.strategy===Af?aP(r,t):r.strategy===VM?sP(r,t):ys[r.level].func(r,t);if((u===uo||u===ms)&&(r.status=Nl),u===ut||u===uo)return e.avail_out===0&&(r.last_flush=-1),Kn;if(u===Ol&&(t===OM?hn._tr_align(r):t!==cA&&(hn._tr_stored_block(r,0,0,!1),t===zM&&(ci(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),fi(e),e.avail_out===0))return r.last_flush=-1,Kn}return t!==ai?Kn:r.wrap<=0?fA:(r.wrap===2?(Ee(r,e.adler&255),Ee(r,e.adler>>8&255),Ee(r,e.adler>>16&255),Ee(r,e.adler>>24&255),Ee(r,e.total_in&255),Ee(r,e.total_in>>8&255),Ee(r,e.total_in>>16&255),Ee(r,e.total_in>>24&255)):(zl(r,e.adler>>>16),zl(r,e.adler&65535)),fi(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?Kn:fA)}function dP(e){var t;return!e||!e.state?dn:(t=e.state.status,t!==Ef&&t!==vp&&t!==_f&&t!==Sf&&t!==Cf&&t!==lo&&t!==Nl?ui(e,dn):(e.state=null,t===lo?ui(e,UM):Kn))}function pP(e,t){var n=t.length,r,i,o,s,a,u,l,c;if(!e||!e.state||(r=e.state,s=r.wrap,s===2||s===1&&r.status!==Ef||r.lookahead))return dn;for(s===1&&(e.adler=uA(e.adler,t,n,0)),r.wrap=0,n>=r.w_size&&(s===0&&(ci(r.head),r.strstart=0,r.block_start=0,r.insert=0),c=new Mt.Buf8(r.w_size),Mt.arraySet(c,t,n-r.w_size,r.w_size,0),t=c,n=r.w_size),a=e.avail_in,u=e.next_in,l=e.input,e.avail_in=n,e.next_in=0,e.input=t,co(r);r.lookahead>=ge;){i=r.strstart,o=r.lookahead-(ge-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+ge-1])&r.hash_mask,r.prev[i&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=i,i++;while(--o);r.strstart=i,r.lookahead=ge-1,co(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=ge-1,r.match_available=0,e.next_in=u,e.input=l,e.avail_in=a,r.wrap=s,Kn}Qn.deflateInit=fP,Qn.deflateInit2=mA,Qn.deflateReset=gA,Qn.deflateResetKeep=pA,Qn.deflateSetHeader=cP,Qn.deflate=hP,Qn.deflateEnd=dP,Qn.deflateSetDictionary=pP,Qn.deflateInfo="pako deflate (from Nodeca project)";var fo={},Tf=vr,bA=!0,yA=!0;try{String.fromCharCode.apply(null,[0])}catch{bA=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{yA=!1}for(var Ul=new Tf.Buf8(256),hi=0;hi<256;hi++)Ul[hi]=hi>=252?6:hi>=248?5:hi>=240?4:hi>=224?3:hi>=192?2:1;Ul[254]=Ul[254]=1,fo.string2buf=function(e){var t,n,r,i,o,s=e.length,a=0;for(i=0;i<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<s&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),a+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Tf.Buf8(a),o=0,i=0;o<a;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<s&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[o++]=n:n<2048?(t[o++]=192|n>>>6,t[o++]=128|n&63):n<65536?(t[o++]=224|n>>>12,t[o++]=128|n>>>6&63,t[o++]=128|n&63):(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63,t[o++]=128|n>>>6&63,t[o++]=128|n&63);return t};function wA(e,t){if(t<65534&&(e.subarray&&yA||!e.subarray&&bA))return String.fromCharCode.apply(null,Tf.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}fo.buf2binstring=function(e){return wA(e,e.length)},fo.binstring2buf=function(e){for(var t=new Tf.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},fo.buf2string=function(e,t){var n,r,i,o,s=t||e.length,a=new Array(s*2);for(r=0,n=0;n<s;){if(i=e[n++],i<128){a[r++]=i;continue}if(o=Ul[i],o>4){a[r++]=65533,n+=o-1;continue}for(i&=o===2?31:o===3?15:7;o>1&&n<s;)i=i<<6|e[n++]&63,o--;if(o>1){a[r++]=65533;continue}i<65536?a[r++]=i:(i-=65536,a[r++]=55296|i>>10&1023,a[r++]=56320|i&1023)}return wA(a,r)},fo.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 gP(){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 vA=gP,Gl=Qn,Hl=vr,xp=fo,Ep=bp,mP=vA,AA=Object.prototype.toString,bP=0,_p=4,ws=0,xA=1,EA=2,yP=-1,wP=0,vP=8;function ho(e){if(!(this instanceof ho))return new ho(e);this.options=Hl.assign({level:yP,method:vP,chunkSize:16384,windowBits:15,memLevel:8,strategy:wP,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 mP,this.strm.avail_out=0;var n=Gl.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==ws)throw new Error(Ep[n]);if(t.header&&Gl.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(typeof t.dictionary=="string"?r=xp.string2buf(t.dictionary):AA.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=Gl.deflateSetDictionary(this.strm,r),n!==ws)throw new Error(Ep[n]);this._dict_set=!0}}ho.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i,o;if(this.ended)return!1;o=t===~~t?t:t===!0?_p:bP,typeof e=="string"?n.input=xp.string2buf(e):AA.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new Hl.Buf8(r),n.next_out=0,n.avail_out=r),i=Gl.deflate(n,o),i!==xA&&i!==ws)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(o===_p||o===EA))&&(this.options.to==="string"?this.onData(xp.buf2binstring(Hl.shrinkBuf(n.output,n.next_out))):this.onData(Hl.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==xA);return o===_p?(i=Gl.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===ws):(o===EA&&(this.onEnd(ws),n.avail_out=0),!0)},ho.prototype.onData=function(e){this.chunks.push(e)},ho.prototype.onEnd=function(e){e===ws&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Hl.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Sp(e,t){var n=new ho(t);if(n.push(e,!0),n.err)throw n.msg||Ep[n.err];return n.result}function AP(e,t){return t=t||{},t.raw=!0,Sp(e,t)}function xP(e,t){return t=t||{},t.gzip=!0,Sp(e,t)}Bl.Deflate=ho,Bl.deflate=Sp,Bl.deflateRaw=AP,Bl.gzip=xP;var Vl={},Rn={},kf=30,EP=12,_P=function(t,n){var r,i,o,s,a,u,l,c,f,h,d,p,m,y,w,x,S,_,T,B,I,D,M,G,N;r=t.state,i=t.next_in,G=t.input,o=i+(t.avail_in-5),s=t.next_out,N=t.output,a=s-(n-t.avail_out),u=s+(t.avail_out-257),l=r.dmax,c=r.wsize,f=r.whave,h=r.wnext,d=r.window,p=r.hold,m=r.bits,y=r.lencode,w=r.distcode,x=(1<<r.lenbits)-1,S=(1<<r.distbits)-1;e:do{m<15&&(p+=G[i++]<<m,m+=8,p+=G[i++]<<m,m+=8),_=y[p&x];t:for(;;){if(T=_>>>24,p>>>=T,m-=T,T=_>>>16&255,T===0)N[s++]=_&65535;else if(T&16){B=_&65535,T&=15,T&&(m<T&&(p+=G[i++]<<m,m+=8),B+=p&(1<<T)-1,p>>>=T,m-=T),m<15&&(p+=G[i++]<<m,m+=8,p+=G[i++]<<m,m+=8),_=w[p&S];n:for(;;){if(T=_>>>24,p>>>=T,m-=T,T=_>>>16&255,T&16){if(I=_&65535,T&=15,m<T&&(p+=G[i++]<<m,m+=8,m<T&&(p+=G[i++]<<m,m+=8)),I+=p&(1<<T)-1,I>l){t.msg="invalid distance too far back",r.mode=kf;break e}if(p>>>=T,m-=T,T=s-a,I>T){if(T=I-T,T>f&&r.sane){t.msg="invalid distance too far back",r.mode=kf;break e}if(D=0,M=d,h===0){if(D+=c-T,T<B){B-=T;do N[s++]=d[D++];while(--T);D=s-I,M=N}}else if(h<T){if(D+=c+h-T,T-=h,T<B){B-=T;do N[s++]=d[D++];while(--T);if(D=0,h<B){T=h,B-=T;do N[s++]=d[D++];while(--T);D=s-I,M=N}}}else if(D+=h-T,T<B){B-=T;do N[s++]=d[D++];while(--T);D=s-I,M=N}for(;B>2;)N[s++]=M[D++],N[s++]=M[D++],N[s++]=M[D++],B-=3;B&&(N[s++]=M[D++],B>1&&(N[s++]=M[D++]))}else{D=s-I;do N[s++]=N[D++],N[s++]=N[D++],N[s++]=N[D++],B-=3;while(B>2);B&&(N[s++]=N[D++],B>1&&(N[s++]=N[D++]))}}else if(T&64){t.msg="invalid distance code",r.mode=kf;break e}else{_=w[(_&65535)+(p&(1<<T)-1)];continue n}break}}else if(T&64)if(T&32){r.mode=EP;break e}else{t.msg="invalid literal/length code",r.mode=kf;break e}else{_=y[(_&65535)+(p&(1<<T)-1)];continue t}break}}while(i<o&&s<u);B=m>>3,i-=B,m-=B<<3,p&=(1<<m)-1,t.next_in=i,t.next_out=s,t.avail_in=i<o?5+(o-i):5-(i-o),t.avail_out=s<u?257+(u-s):257-(s-u),r.hold=p,r.bits=m},_A=vr,vs=15,SA=852,CA=592,TA=0,Cp=1,kA=2,SP=[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],CP=[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],TP=[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],kP=[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],IP=function(t,n,r,i,o,s,a,u){var l=u.bits,c=0,f=0,h=0,d=0,p=0,m=0,y=0,w=0,x=0,S=0,_,T,B,I,D,M=null,G=0,N,ne=new _A.Buf16(vs+1),ie=new _A.Buf16(vs+1),pe=null,be=0,Pe,_e,Oe;for(c=0;c<=vs;c++)ne[c]=0;for(f=0;f<i;f++)ne[n[r+f]]++;for(p=l,d=vs;d>=1&&ne[d]===0;d--);if(p>d&&(p=d),d===0)return o[s++]=1<<24|64<<16|0,o[s++]=1<<24|64<<16|0,u.bits=1,0;for(h=1;h<d&&ne[h]===0;h++);for(p<h&&(p=h),w=1,c=1;c<=vs;c++)if(w<<=1,w-=ne[c],w<0)return-1;if(w>0&&(t===TA||d!==1))return-1;for(ie[1]=0,c=1;c<vs;c++)ie[c+1]=ie[c]+ne[c];for(f=0;f<i;f++)n[r+f]!==0&&(a[ie[n[r+f]]++]=f);if(t===TA?(M=pe=a,N=19):t===Cp?(M=SP,G-=257,pe=CP,be-=257,N=256):(M=TP,pe=kP,N=-1),S=0,f=0,c=h,D=s,m=p,y=0,B=-1,x=1<<p,I=x-1,t===Cp&&x>SA||t===kA&&x>CA)return 1;for(;;){Pe=c-y,a[f]<N?(_e=0,Oe=a[f]):a[f]>N?(_e=pe[be+a[f]],Oe=M[G+a[f]]):(_e=96,Oe=0),_=1<<c-y,T=1<<m,h=T;do T-=_,o[D+(S>>y)+T]=Pe<<24|_e<<16|Oe|0;while(T!==0);for(_=1<<c-1;S&_;)_>>=1;if(_!==0?(S&=_-1,S+=_):S=0,f++,--ne[c]===0){if(c===d)break;c=n[r+a[f]]}if(c>p&&(S&I)!==B){for(y===0&&(y=p),D+=h,m=c-y,w=1<<m;m+y<d&&(w-=ne[m+y],!(w<=0));)m++,w<<=1;if(x+=1<<m,t===Cp&&x>SA||t===kA&&x>CA)return 1;B=S&I,o[B]=p<<24|m<<16|D-s|0}}return S!==0&&(o[D+S]=c-y<<24|64<<16|0),u.bits=p,0},Jt=vr,Tp=aA,er=lA,BP=_P,jl=IP,DP=0,IA=1,BA=2,DA=4,RP=5,If=6,po=0,FP=1,MP=2,pn=-2,RA=-3,FA=-4,PP=-5,MA=8,PA=1,LA=2,NA=3,OA=4,zA=5,UA=6,GA=7,HA=8,VA=9,jA=10,Bf=11,xr=12,kp=13,$A=14,Ip=15,qA=16,WA=17,ZA=18,YA=19,Df=20,Rf=21,QA=22,XA=23,KA=24,JA=25,ex=26,Bp=27,tx=28,nx=29,Qe=30,rx=31,LP=32,NP=852,OP=592,zP=15,UP=zP;function ix(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function GP(){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 Jt.Buf16(320),this.work=new Jt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function ox(e){var t;return!e||!e.state?pn:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=PA,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Jt.Buf32(NP),t.distcode=t.distdyn=new Jt.Buf32(OP),t.sane=1,t.back=-1,po)}function sx(e){var t;return!e||!e.state?pn:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,ox(e))}function ax(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))?pn:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,sx(e))}function lx(e,t){var n,r;return e?(r=new GP,e.state=r,r.window=null,n=ax(e,t),n!==po&&(e.state=null),n):pn}function HP(e){return lx(e,UP)}var ux=!0,Dp,Rp;function VP(e){if(ux){var t;for(Dp=new Jt.Buf32(512),Rp=new Jt.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(jl(IA,e.lens,0,288,Dp,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;jl(BA,e.lens,0,32,Rp,0,e.work,{bits:5}),ux=!1}e.lencode=Dp,e.lenbits=9,e.distcode=Rp,e.distbits=5}function cx(e,t,n,r){var i,o=e.state;return o.window===null&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Jt.Buf8(o.wsize)),r>=o.wsize?(Jt.arraySet(o.window,t,n-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),Jt.arraySet(o.window,t,n-r,i,o.wnext),r-=i,r?(Jt.arraySet(o.window,t,n-r,r,0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=i))),0}function jP(e,t){var n,r,i,o,s,a,u,l,c,f,h,d,p,m,y=0,w,x,S,_,T,B,I,D,M=new Jt.Buf8(4),G,N,ne=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return pn;n=e.state,n.mode===xr&&(n.mode=kp),s=e.next_out,i=e.output,u=e.avail_out,o=e.next_in,r=e.input,a=e.avail_in,l=n.hold,c=n.bits,f=a,h=u,D=po;e:for(;;)switch(n.mode){case PA:if(n.wrap===0){n.mode=kp;break}for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(n.wrap&2&&l===35615){n.check=0,M[0]=l&255,M[1]=l>>>8&255,n.check=er(n.check,M,2,0),l=0,c=0,n.mode=LA;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=Qe;break}if((l&15)!==MA){e.msg="unknown compression method",n.mode=Qe;break}if(l>>>=4,c-=4,I=(l&15)+8,n.wbits===0)n.wbits=I;else if(I>n.wbits){e.msg="invalid window size",n.mode=Qe;break}n.dmax=1<<I,e.adler=n.check=1,n.mode=l&512?jA:xr,l=0,c=0;break;case LA:for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(n.flags=l,(n.flags&255)!==MA){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&&(M[0]=l&255,M[1]=l>>>8&255,n.check=er(n.check,M,2,0)),l=0,c=0,n.mode=NA;case NA:for(;c<32;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.head&&(n.head.time=l),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,M[2]=l>>>16&255,M[3]=l>>>24&255,n.check=er(n.check,M,4,0)),l=0,c=0,n.mode=OA;case OA:for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=er(n.check,M,2,0)),l=0,c=0,n.mode=zA;case zA:if(n.flags&1024){for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=er(n.check,M,2,0)),l=0,c=0}else n.head&&(n.head.extra=null);n.mode=UA;case UA:if(n.flags&1024&&(d=n.length,d>a&&(d=a),d&&(n.head&&(I=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),Jt.arraySet(n.head.extra,r,o,d,I)),n.flags&512&&(n.check=er(n.check,r,d,o)),a-=d,o+=d,n.length-=d),n.length))break e;n.length=0,n.mode=GA;case GA:if(n.flags&2048){if(a===0)break e;d=0;do I=r[o+d++],n.head&&I&&n.length<65536&&(n.head.name+=String.fromCharCode(I));while(I&&d<a);if(n.flags&512&&(n.check=er(n.check,r,d,o)),a-=d,o+=d,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=HA;case HA:if(n.flags&4096){if(a===0)break e;d=0;do I=r[o+d++],n.head&&I&&n.length<65536&&(n.head.comment+=String.fromCharCode(I));while(I&&d<a);if(n.flags&512&&(n.check=er(n.check,r,d,o)),a-=d,o+=d,I)break e}else n.head&&(n.head.comment=null);n.mode=VA;case VA:if(n.flags&512){for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=Qe;break}l=0,c=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=xr;break;case jA:for(;c<32;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}e.adler=n.check=ix(l),l=0,c=0,n.mode=Bf;case Bf:if(n.havedict===0)return e.next_out=s,e.avail_out=u,e.next_in=o,e.avail_in=a,n.hold=l,n.bits=c,MP;e.adler=n.check=1,n.mode=xr;case xr:if(t===RP||t===If)break e;case kp:if(n.last){l>>>=c&7,c-=c&7,n.mode=Bp;break}for(;c<3;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}switch(n.last=l&1,l>>>=1,c-=1,l&3){case 0:n.mode=$A;break;case 1:if(VP(n),n.mode=Df,t===If){l>>>=2,c-=2;break e}break;case 2:n.mode=WA;break;case 3:e.msg="invalid block type",n.mode=Qe}l>>>=2,c-=2;break;case $A:for(l>>>=c&7,c-=c&7;c<32;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=Qe;break}if(n.length=l&65535,l=0,c=0,n.mode=Ip,t===If)break e;case Ip:n.mode=qA;case qA:if(d=n.length,d){if(d>a&&(d=a),d>u&&(d=u),d===0)break e;Jt.arraySet(i,r,o,d,s),a-=d,o+=d,u-=d,s+=d,n.length-=d;break}n.mode=xr;break;case WA:for(;c<14;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(n.nlen=(l&31)+257,l>>>=5,c-=5,n.ndist=(l&31)+1,l>>>=5,c-=5,n.ncode=(l&15)+4,l>>>=4,c-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=Qe;break}n.have=0,n.mode=ZA;case ZA:for(;n.have<n.ncode;){for(;c<3;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.lens[ne[n.have++]]=l&7,l>>>=3,c-=3}for(;n.have<19;)n.lens[ne[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,G={bits:n.lenbits},D=jl(DP,n.lens,0,19,n.lencode,0,n.work,G),n.lenbits=G.bits,D){e.msg="invalid code lengths set",n.mode=Qe;break}n.have=0,n.mode=YA;case YA:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,x=y>>>16&255,S=y&65535,!(w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(S<16)l>>>=w,c-=w,n.lens[n.have++]=S;else{if(S===16){for(N=w+2;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(l>>>=w,c-=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,c-=2}else if(S===17){for(N=w+3;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}l>>>=w,c-=w,I=0,d=3+(l&7),l>>>=3,c-=3}else{for(N=w+7;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}l>>>=w,c-=w,I=0,d=11+(l&127),l>>>=7,c-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=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,G={bits:n.lenbits},D=jl(IA,n.lens,0,n.nlen,n.lencode,0,n.work,G),n.lenbits=G.bits,D){e.msg="invalid literal/lengths set",n.mode=Qe;break}if(n.distbits=6,n.distcode=n.distdyn,G={bits:n.distbits},D=jl(BA,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,G),n.distbits=G.bits,D){e.msg="invalid distances set",n.mode=Qe;break}if(n.mode=Df,t===If)break e;case Df:n.mode=Rf;case Rf:if(a>=6&&u>=258){e.next_out=s,e.avail_out=u,e.next_in=o,e.avail_in=a,n.hold=l,n.bits=c,BP(e,h),s=e.next_out,i=e.output,u=e.avail_out,o=e.next_in,r=e.input,a=e.avail_in,l=n.hold,c=n.bits,n.mode===xr&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,x=y>>>16&255,S=y&65535,!(w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(x&&!(x&240)){for(_=w,T=x,B=S;y=n.lencode[B+((l&(1<<_+T)-1)>>_)],w=y>>>24,x=y>>>16&255,S=y&65535,!(_+w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,n.length=S,x===0){n.mode=ex;break}if(x&32){n.back=-1,n.mode=xr;break}if(x&64){e.msg="invalid literal/length code",n.mode=Qe;break}n.extra=x&15,n.mode=QA;case QA:if(n.extra){for(N=n.extra;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=XA;case XA:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,x=y>>>16&255,S=y&65535,!(w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(!(x&240)){for(_=w,T=x,B=S;y=n.distcode[B+((l&(1<<_+T)-1)>>_)],w=y>>>24,x=y>>>16&255,S=y&65535,!(_+w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,x&64){e.msg="invalid distance code",n.mode=Qe;break}n.offset=S,n.extra=x&15,n.mode=KA;case KA:if(n.extra){for(N=n.extra;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=Qe;break}n.mode=JA;case JA: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=s-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[s++]=m[p++];while(--d);n.length===0&&(n.mode=Rf);break;case ex:if(u===0)break e;i[s++]=n.length,u--,n.mode=Rf;break;case Bp:if(n.wrap){for(;c<32;){if(a===0)break e;a--,l|=r[o++]<<c,c+=8}if(h-=u,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?er(n.check,i,h,s-h):Tp(n.check,i,h,s-h)),h=u,(n.flags?l:ix(l))!==n.check){e.msg="incorrect data check",n.mode=Qe;break}l=0,c=0}n.mode=tx;case tx:if(n.wrap&&n.flags){for(;c<32;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=Qe;break}l=0,c=0}n.mode=nx;case nx:D=FP;break e;case Qe:D=RA;break e;case rx:return FA;case LP:default:return pn}return e.next_out=s,e.avail_out=u,e.next_in=o,e.avail_in=a,n.hold=l,n.bits=c,(n.wsize||h!==e.avail_out&&n.mode<Qe&&(n.mode<Bp||t!==DA))&&cx(e,e.output,e.next_out,h-e.avail_out),f-=e.avail_in,h-=e.avail_out,e.total_in+=f,e.total_out+=h,n.total+=h,n.wrap&&h&&(e.adler=n.check=n.flags?er(n.check,i,h,e.next_out-h):Tp(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===xr?128:0)+(n.mode===Df||n.mode===Ip?256:0),(f===0&&h===0||t===DA)&&D===po&&(D=PP),D}function $P(e){if(!e||!e.state)return pn;var t=e.state;return t.window&&(t.window=null),e.state=null,po}function qP(e,t){var n;return!e||!e.state||(n=e.state,!(n.wrap&2))?pn:(n.head=t,t.done=!1,po)}function WP(e,t){var n=t.length,r,i,o;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==Bf)?pn:r.mode===Bf&&(i=1,i=Tp(i,t,n,0),i!==r.check)?RA:(o=cx(e,t,n,n),o?(r.mode=rx,FA):(r.havedict=1,po))}Rn.inflateReset=sx,Rn.inflateReset2=ax,Rn.inflateResetKeep=ox,Rn.inflateInit=HP,Rn.inflateInit2=lx,Rn.inflate=jP,Rn.inflateEnd=$P,Rn.inflateGetHeader=qP,Rn.inflateSetDictionary=WP,Rn.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 ZP(){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 YP=ZP,As=Rn,$l=vr,Ff=fo,rt=fx,Fp=bp,QP=vA,XP=YP,hx=Object.prototype.toString;function go(e){if(!(this instanceof go))return new go(e);this.options=$l.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 QP,this.strm.avail_out=0;var n=As.inflateInit2(this.strm,t.windowBits);if(n!==rt.Z_OK)throw new Error(Fp[n]);if(this.header=new XP,As.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Ff.string2buf(t.dictionary):hx.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=As.inflateSetDictionary(this.strm,t.dictionary),n!==rt.Z_OK)))throw new Error(Fp[n])}go.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,o,s,a,u,l,c=!1;if(this.ended)return!1;s=t===~~t?t:t===!0?rt.Z_FINISH:rt.Z_NO_FLUSH,typeof e=="string"?n.input=Ff.binstring2buf(e):hx.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 $l.Buf8(r),n.next_out=0,n.avail_out=r),o=As.inflate(n,rt.Z_NO_FLUSH),o===rt.Z_NEED_DICT&&i&&(o=As.inflateSetDictionary(this.strm,i)),o===rt.Z_BUF_ERROR&&c===!0&&(o=rt.Z_OK,c=!1),o!==rt.Z_STREAM_END&&o!==rt.Z_OK)return this.onEnd(o),this.ended=!0,!1;n.next_out&&(n.avail_out===0||o===rt.Z_STREAM_END||n.avail_in===0&&(s===rt.Z_FINISH||s===rt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(a=Ff.utf8border(n.output,n.next_out),u=n.next_out-a,l=Ff.buf2string(n.output,a),n.next_out=u,n.avail_out=r-u,u&&$l.arraySet(n.output,n.output,a,u,0),this.onData(l)):this.onData($l.shrinkBuf(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(c=!0)}while((n.avail_in>0||n.avail_out===0)&&o!==rt.Z_STREAM_END);return o===rt.Z_STREAM_END&&(s=rt.Z_FINISH),s===rt.Z_FINISH?(o=As.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,o===rt.Z_OK):(s===rt.Z_SYNC_FLUSH&&(this.onEnd(rt.Z_OK),n.avail_out=0),!0)},go.prototype.onData=function(e){this.chunks.push(e)},go.prototype.onEnd=function(e){e===rt.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=$l.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Mp(e,t){var n=new go(t);if(n.push(e,!0),n.err)throw n.msg||Fp[n.err];return n.result}function KP(e,t){return t=t||{},t.raw=!0,Mp(e,t)}Vl.Inflate=go,Vl.inflate=Mp,Vl.inflateRaw=KP,Vl.ungzip=Mp;var JP=vr.assign,eL=Bl,tL=Vl,nL=fx,dx={};JP(dx,eL,tL,nL);var Mf=dx;async function di(e){try{let t,n=0,r=0;const i=[];let o=0,s;do{const u=e.subarray(n);if(s=new Mf.Inflate,{strm:t}=s,s.push(u,Mf.Z_SYNC_FLUSH),s.err)throw new Error(s.msg);n+=t.next_in,i[r]=s.result,o+=i[r].length,r+=1}while(t.avail_in);const a=new Uint8Array(o);for(let u=0,l=0;u<i.length;u++)a.set(i[u],l),l+=i[u].length;return xe.Buffer.from(a)}catch(t){throw`${t}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):t}}async function px(e,t){try{let n;const{minv:r,maxv:i}=t;let o=r.blockPosition,s=r.dataPosition;const a=[],u=[],l=[];let c=0,f=0;do{const p=e.subarray(o-r.blockPosition),m=new Mf.Inflate;if({strm:n}=m,m.push(p,Mf.Z_SYNC_FLUSH),m.err)throw new Error(m.msg);const y=m.result;a.push(y);let w=y.length;u.push(o),l.push(s),a.length===1&&r.dataPosition&&(a[0]=a[0].subarray(r.dataPosition),w=a[0].length);const x=o;if(o+=n.next_in,s+=w,x>=i.blockPosition){a[f]=a[f].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),u.push(o),l.push(s),c+=a[f].length;break}c+=a[f].length,f++}while(n.avail_in);const h=new Uint8Array(c);for(let p=0,m=0;p<a.length;p++)h.set(a[p],m),m+=a[p].length;return{buffer:xe.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 rL=Ve,gn=null;try{gn=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 Ve(e,t,n){this.low=e|0,this.high=t|0,this.unsigned=!!n}Ve.prototype.__isLong__,Object.defineProperty(Ve.prototype,"__isLong__",{value:!0});function jt(e){return(e&&e.__isLong__)===!0}Ve.isLong=jt;var gx={},mx={};function mo(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=mx[e],r)?r:(n=je(e,(e|0)<0?-1:0,!0),i&&(mx[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=gx[e],r)?r:(n=je(e,e<0?-1:0,!1),i&&(gx[e]=n),n))}Ve.fromInt=mo;function mn(e,t){if(isNaN(e))return t?bo:bn;if(t){if(e<0)return bo;if(e>=yx)return Ex}else{if(e<=-wx)return $t;if(e+1>=wx)return xx}return e<0?mn(-e,t).neg():je(e%xs|0,e/xs|0,t)}Ve.fromNumber=mn;function je(e,t,n){return new Ve(e,t,n)}Ve.fromBits=je;var Pf=Math.pow;function Pp(e,t,n){if(e.length===0)throw Error("empty string");if(e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return bn;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 Pp(e.substring(1),t,n).neg();for(var i=mn(Pf(n,8)),o=bn,s=0;s<e.length;s+=8){var a=Math.min(8,e.length-s),u=parseInt(e.substring(s,s+a),n);if(a<8){var l=mn(Pf(n,a));o=o.mul(l).add(mn(u))}else o=o.mul(i),o=o.add(mn(u))}return o.unsigned=t,o}Ve.fromString=Pp;function Fn(e,t){return typeof e=="number"?mn(e,t):typeof e=="string"?Pp(e,t):je(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}Ve.fromValue=Fn;var bx=65536,iL=1<<24,xs=bx*bx,yx=xs*xs,wx=yx/2,vx=mo(iL),bn=mo(0);Ve.ZERO=bn;var bo=mo(0,!0);Ve.UZERO=bo;var Es=mo(1);Ve.ONE=Es;var Ax=mo(1,!0);Ve.UONE=Ax;var Lp=mo(-1);Ve.NEG_ONE=Lp;var xx=je(-1,2147483647,!1);Ve.MAX_VALUE=xx;var Ex=je(-1,-1,!0);Ve.MAX_UNSIGNED_VALUE=Ex;var $t=je(0,-2147483648,!1);Ve.MIN_VALUE=$t;var Y=Ve.prototype;Y.toInt=function(){return this.unsigned?this.low>>>0:this.low},Y.toNumber=function(){return this.unsigned?(this.high>>>0)*xs+(this.low>>>0):this.high*xs+(this.low>>>0)},Y.toString=function(t){if(t=t||10,t<2||36<t)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq($t)){var n=mn(t),r=this.div(n),i=r.mul(n).sub(this);return r.toString(t)+i.toInt().toString(t)}else return"-"+this.neg().toString(t);for(var o=mn(Pf(t,6),this.unsigned),s=this,a="";;){var u=s.div(o),l=s.sub(u.mul(o)).toInt()>>>0,c=l.toString(t);if(s=u,s.isZero())return c+a;for(;c.length<6;)c="0"+c;a=""+c+a}},Y.getHighBits=function(){return this.high},Y.getHighBitsUnsigned=function(){return this.high>>>0},Y.getLowBits=function(){return this.low},Y.getLowBitsUnsigned=function(){return this.low>>>0},Y.getNumBitsAbs=function(){if(this.isNegative())return this.eq($t)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,n=31;n>0&&!(t&1<<n);n--);return this.high!=0?n+33:n+1},Y.isZero=function(){return this.high===0&&this.low===0},Y.eqz=Y.isZero,Y.isNegative=function(){return!this.unsigned&&this.high<0},Y.isPositive=function(){return this.unsigned||this.high>=0},Y.isOdd=function(){return(this.low&1)===1},Y.isEven=function(){return(this.low&1)===0},Y.equals=function(t){return jt(t)||(t=Fn(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},Y.eq=Y.equals,Y.notEquals=function(t){return!this.eq(t)},Y.neq=Y.notEquals,Y.ne=Y.notEquals,Y.lessThan=function(t){return this.comp(t)<0},Y.lt=Y.lessThan,Y.lessThanOrEqual=function(t){return this.comp(t)<=0},Y.lte=Y.lessThanOrEqual,Y.le=Y.lessThanOrEqual,Y.greaterThan=function(t){return this.comp(t)>0},Y.gt=Y.greaterThan,Y.greaterThanOrEqual=function(t){return this.comp(t)>=0},Y.gte=Y.greaterThanOrEqual,Y.ge=Y.greaterThanOrEqual,Y.compare=function(t){if(jt(t)||(t=Fn(t)),this.eq(t))return 0;var n=this.isNegative(),r=t.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1},Y.comp=Y.compare,Y.negate=function(){return!this.unsigned&&this.eq($t)?$t:this.not().add(Es)},Y.neg=Y.negate,Y.add=function(t){jt(t)||(t=Fn(t));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,o=this.low&65535,s=t.high>>>16,a=t.high&65535,u=t.low>>>16,l=t.low&65535,c=0,f=0,h=0,d=0;return d+=o+l,h+=d>>>16,d&=65535,h+=i+u,f+=h>>>16,h&=65535,f+=r+a,c+=f>>>16,f&=65535,c+=n+s,c&=65535,je(h<<16|d,c<<16|f,this.unsigned)},Y.subtract=function(t){return jt(t)||(t=Fn(t)),this.add(t.neg())},Y.sub=Y.subtract,Y.multiply=function(t){if(this.isZero())return bn;if(jt(t)||(t=Fn(t)),gn){var n=gn.mul(this.low,this.high,t.low,t.high);return je(n,gn.get_high(),this.unsigned)}if(t.isZero())return bn;if(this.eq($t))return t.isOdd()?$t:bn;if(t.eq($t))return this.isOdd()?$t:bn;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(vx)&&t.lt(vx))return mn(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,o=this.low>>>16,s=this.low&65535,a=t.high>>>16,u=t.high&65535,l=t.low>>>16,c=t.low&65535,f=0,h=0,d=0,p=0;return p+=s*c,d+=p>>>16,p&=65535,d+=o*c,h+=d>>>16,d&=65535,d+=s*l,h+=d>>>16,d&=65535,h+=i*c,f+=h>>>16,h&=65535,h+=o*l,f+=h>>>16,h&=65535,h+=s*u,f+=h>>>16,h&=65535,f+=r*c+i*l+o*u+s*a,f&=65535,je(d<<16|p,f<<16|h,this.unsigned)},Y.mul=Y.multiply,Y.divide=function(t){if(jt(t)||(t=Fn(t)),t.isZero())throw Error("division by zero");if(gn){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?gn.div_u:gn.div_s)(this.low,this.high,t.low,t.high);return je(n,gn.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?bo:bn;var r,i,o;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return bo;if(t.gt(this.shru(1)))return Ax;o=bo}else{if(this.eq($t)){if(t.eq(Es)||t.eq(Lp))return $t;if(t.eq($t))return Es;var s=this.shr(1);return r=s.div(t).shl(1),r.eq(bn)?t.isNegative()?Es:Lp:(i=this.sub(t.mul(r)),o=r.add(i.div(t)),o)}else if(t.eq($t))return this.unsigned?bo:bn;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();o=bn}for(i=this;i.gte(t);){r=Math.max(1,Math.floor(i.toNumber()/t.toNumber()));for(var a=Math.ceil(Math.log(r)/Math.LN2),u=a<=48?1:Pf(2,a-48),l=mn(r),c=l.mul(t);c.isNegative()||c.gt(i);)r-=u,l=mn(r,this.unsigned),c=l.mul(t);l.isZero()&&(l=Es),o=o.add(l),i=i.sub(c)}return o},Y.div=Y.divide,Y.modulo=function(t){if(jt(t)||(t=Fn(t)),gn){var n=(this.unsigned?gn.rem_u:gn.rem_s)(this.low,this.high,t.low,t.high);return je(n,gn.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},Y.mod=Y.modulo,Y.rem=Y.modulo,Y.not=function(){return je(~this.low,~this.high,this.unsigned)},Y.and=function(t){return jt(t)||(t=Fn(t)),je(this.low&t.low,this.high&t.high,this.unsigned)},Y.or=function(t){return jt(t)||(t=Fn(t)),je(this.low|t.low,this.high|t.high,this.unsigned)},Y.xor=function(t){return jt(t)||(t=Fn(t)),je(this.low^t.low,this.high^t.high,this.unsigned)},Y.shiftLeft=function(t){return jt(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?je(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):je(0,this.low<<t-32,this.unsigned)},Y.shl=Y.shiftLeft,Y.shiftRight=function(t){return jt(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?je(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):je(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},Y.shr=Y.shiftRight,Y.shiftRightUnsigned=function(t){if(jt(t)&&(t=t.toInt()),t&=63,t===0)return this;var n=this.high;if(t<32){var r=this.low;return je(r>>>t|n<<32-t,n>>>t,this.unsigned)}else return t===32?je(n,0,this.unsigned):je(n>>>t-32,0,this.unsigned)},Y.shru=Y.shiftRightUnsigned,Y.shr_u=Y.shiftRightUnsigned,Y.toSigned=function(){return this.unsigned?je(this.low,this.high,!1):this},Y.toUnsigned=function(){return this.unsigned?this:je(this.low,this.high,!0)},Y.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},Y.toBytesLE=function(){var t=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]},Y.toBytesBE=function(){var t=this.high,n=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},Ve.fromBytes=function(t,n,r){return r?Ve.fromBytesLE(t,n):Ve.fromBytesBE(t,n)},Ve.fromBytesLE=function(t,n){return new Ve(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n)},Ve.fromBytesBE=function(t,n){return new Ve(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],n)};const Lf=bf(rL),Nf=1;class oL{constructor({filehandle:t,path:n}){if(t)this.filehandle=t;else if(n)this.filehandle=new gt(n);else throw new TypeError("either filehandle or path must be defined")}_readLongWithOverflow(t,n=0,r=!0){const i=Lf.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=xe.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=xe.Buffer.allocUnsafe(i),await this.filehandle.read(t,0,i,8);for(let o=0;o<n;o+=1){const s=this._readLongWithOverflow(t,o*16),a=this._readLongWithOverflow(t,o*16+8);r[o+1]=[s,a]}return r}async getLastBlock(){const t=await this._getIndex();if(t.length)return t[t.length-1]}async getRelevantBlocksForRead(t,n){const r=n+t;if(t===0)return[];const i=await this._getIndex(),o=[],s=(h,d)=>{const p=h[Nf],m=d?d[Nf]:1/0;return p<=n&&m>n?0:p<n?-1:1};let a=0,u=i.length-1,l=Math.floor(i.length/2),c=s(i[l],i[l+1]);for(;c!==0;)c>0?u=l-1:c<0&&(a=l+1),l=Math.ceil((u-a)/2)+a,c=s(i[l],i[l+1]);o.push(i[l]);let f=l+1;for(;f<i.length&&(o.push(i[f]),!(i[f][Nf]>=r));f+=1);return o[o.length-1][Nf]<r&&o.push([]),o}}class _x{constructor({filehandle:t,path:n,gziFilehandle:r,gziPath:i}){if(t)this.filehandle=t;else if(n)this.filehandle=new gt(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 oL({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=xe.Buffer.allocUnsafe(4),{bytesRead:i}=await this.filehandle.read(r,0,4,n-28-4);if(i!==4)throw new Error("read error");const o=r.readUInt32LE(0);return t+o}async _readAndUncompressBlock(t,[n],[r]){let i=r;i||(i=(await this.filehandle.stat()).size);const o=i-n;return await this.filehandle.read(t,0,o,n),await di(t.slice(0,o))}async read(t,n,r,i){const o=await this.gzi.getRelevantBlocksForRead(r,i),s=xe.Buffer.allocUnsafe(32768*2);let a=n,u=0;for(let l=0;l<o.length-1;l+=1){const c=await this._readAndUncompressBlock(s,o[l],o[l+1]),[,f]=o[l],h=f>=i?0:i-f,d=Math.min(i+r,f+c.length)-f;h>=0&&h<c.length&&(c.copy(t,a,h,d),a+=d-h,u+=d-h)}return{bytesRead:u,buffer:t}}}function Sx(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}async function sL(e,t){const n=await e.readFile(t);if(!(n&&n.length))throw new Error("No data read from FASTA index (FAI) file");let r=0,i;const o=n.toString("utf8").split(/\r?\n/).filter(s=>/\S/.test(s)).map(s=>s.split(" ")).filter(s=>s[0]!=="").map(s=>((!i||i.name!==s[0])&&(i={name:s[0],id:r},r+=1),{id:i.id,name:s[0],length:+s[1],start:0,end:+s[1],offset:+s[2],lineLength:+s[3],lineBytes:+s[4]}));return{name:Object.fromEntries(o.map(s=>[s.name,s])),id:Object.fromEntries(o.map(s=>[s.id,s]))}}class Cx{constructor({fasta:t,fai:n,path:r,faiPath:i}){if(t)this.fasta=t;else if(r)this.fasta=new gt(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 gt(i);else if(r)this.fai=new gt(`${r}.fai`);else throw new Error("Need to pass filehandle for or path to localfile")}async _getIndexes(t){return this.indexes||(this.indexes=sL(this.fai,t)),this.indexes}async getSequenceNames(t){return Object.keys((await this._getIndexes(t)).name)}async getSequenceSizes(t){const n={},r=await this._getIndexes(t),i=Object.values(r.id);for(let o=0;o<i.length;o+=1)n[i[o].name]=i[o].length;return n}async getSequenceSize(t,n){var r;return(r=(await this._getIndexes(n)).name[t])===null||r===void 0?void 0:r.length}async hasReferenceSequence(t,n){return!!(await this._getIndexes(n)).name[t]}async getResiduesById(t,n,r,i){const o=(await this._getIndexes(i)).id[t];if(o)return this._fetchFromIndexEntry(o,n,r,i)}async getResiduesByName(t,n,r,i){const o=(await this._getIndexes(i)).name[t];if(o)return this._fetchFromIndexEntry(o,n,r,i)}async getSequence(t,n,r,i){return this.getResiduesByName(t,n,r,i)}async _fetchFromIndexEntry(t,n=0,r,i){let o=r;if(n<0)throw new TypeError("regionStart cannot be less than 0");if((o===void 0||o>t.length)&&(o=t.length),n>=o)return"";const s=Sx(t,n),a=Sx(t,o)-s,u=Buffer.allocUnsafe(a);return await this.fasta.read(u,0,a,s,i),u.toString("utf8").replace(/\s+/g,"")}}class aL extends Cx{constructor({fasta:t,path:n,fai:r,faiPath:i,gzi:o,gziPath:s}){super({fasta:t,path:n,fai:r,faiPath:i}),t&&o?this.fasta=new _x({filehandle:t,gziFilehandle:o}):n&&s&&(this.fasta=new _x({path:n,gziPath:s}))}}function Tx(e){return e.split(">").filter(t=>/\S/.test(t)).map(t=>{const[n,...r]=t.split(`
|
|
605
|
-
`),[i,...o]=n.split(" "),s=r.join("").replace(/\s/g,"");return{id:i,description:o.join(" "),sequence:s}})}class
|
|
606
|
-
`}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 Mn=new Map,yo="___parser_",Pn={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},zf={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"},Uf={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 Me=class On{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new On}primitiveGenerateN(t,n){const r=zf[t],i=Uf[t];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${Pn[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 Mn.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"&&!Mn.has(n.type)&&!(n.type in Pn))throw new Error(`Array element type "${n.type}" is unkown.`);return this.setNextParser("array",t,n)}choice(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n)throw new Error("tag and choices are are required for choice.");if(!n.tag)throw new Error("tag is requird for choice.");if(!n.choices)throw new Error("choices is required for choice.");for(const r in n.choices){const i=parseInt(r,10),o=n.choices[i];if(isNaN(i))throw new Error(`Choice key "${r}" is not a number.`);if(typeof o=="string"&&!Mn.has(o)&&!(o in Pn))throw new Error(`Choice type "${o}" is unkown.`)}return this.setNextParser("choice",t,n)}nest(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n||!n.type)throw new Error("type is required for nest.");if(!(n.type instanceof On)&&!Mn.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof On)&&!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 Pn)&&!Mn.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 pL(t,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${yo+this.alias}(0).result;`)):this.addRawCode(n),n}getCode(){return this.getContext("imports").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 ${yo+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=Mn.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(Pn).indexOf(this.type)>=0)t=Pn[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=Pn[this.options.type]:this.options.type instanceof On&&(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 On;return i.type=t,i.varName=n,i.options=r,i.endian=this.endian,this.head?this.head.next=i:this.next=i,this.head=i,this}generate(t){if(this.type){switch(this.type){case"uint8":case"uint16le":case"uint16be":case"uint32le":case"uint32be":case"int8":case"int16le":case"int16be":case"int32le":case"int32be":case"int64be":case"int64le":case"uint64be":case"uint64le":case"floatle":case"floatbe":case"doublele":case"doublebe":this.primitiveGenerateN(this.type,t);break;case"bit":this.generateBit(t);break;case"string":this.generateString(t);break;case"buffer":this.generateBuffer(t);break;case"seek":this.generateSeek(t);break;case"nest":this.generateNest(t);break;case"array":this.generateArray(t);break;case"choice":this.generateChoice(t);break;case"pointer":this.generatePointer(t);break;case"saveOffset":this.generateSaveOffset(t);break;case"wrapper":this.generateWrapper(t);break}this.type!=="bit"&&this.generateAssert(t)}const n=t.generateVariable(this.varName);return this.options.formatter&&this.type!=="bit"&&this.generateFormatter(t,n,this.options.formatter),this.generateNext(t)}generateAssert(t){if(!this.options.assert)return;const n=t.generateVariable(this.varName);switch(typeof this.options.assert){case"function":{const r=t.addImport(this.options.assert);t.pushCode(`if (!${r}.call(vars, ${n})) {`)}break;case"number":t.pushCode(`if (${this.options.assert} !== ${n}) {`);break;case"string":t.pushCode(`if (${JSON.stringify(this.options.assert)} !== ${n}) {`);break;default:throw new Error("assert option must be a string, number or a function.")}t.generateError(`"Assertion error: ${n} is " + ${JSON.stringify(this.options.assert.toString())}`),t.pushCode("}")}generateNext(t){return this.next&&(t=this.next.generate(t)),t}generateBit(t){const n=JSON.parse(JSON.stringify(this));if(n.options=this.options,n.generateAssert=this.generateAssert.bind(this),n.generateFormatter=this.generateFormatter.bind(this),n.varName=t.generateVariable(n.varName),t.bitFields.push(n),!this.next||this.next&&["bit","nest"].indexOf(this.next.type)<0){const r=t.generateTmpVariable();t.pushCode(`var ${r} = 0;`);const i=(c=0)=>{let f=0;for(let h=c;h<t.bitFields.length;h++){const d=t.bitFields[h].options.length;if(f+d>32)break;f+=d}return f},o=c=>(c<=8?(t.pushCode(`${r} = dataView.getUint8(offset);`),c=8):c<=16?(t.pushCode(`${r} = dataView.getUint16(offset);`),c=16):c<=24?(t.pushCode(`${r} = (dataView.getUint16(offset) << 8) | dataView.getUint8(offset + 2);`),c=24):(t.pushCode(`${r} = dataView.getUint32(offset);`),c=32),t.pushCode(`offset += ${c/8};`),c);let s=0;const a=this.endian==="be";let u=0,l=0;t.bitFields.forEach((c,f)=>{let h=c.options.length;if(h>l){if(l){const m=-1>>>32-l;t.pushCode(`${c.varName} = (${r} & 0x${m.toString(16)}) << ${h-l};`),h-=l}s=0,l=u=o(i(f)-l)}const d=a?u-s-h:s,p=-1>>>32-h;t.pushCode(`${c.varName} ${h<c.options.length?"|=":"="} ${r} >> ${d} & 0x${p.toString(16)};`),c.options.length===32&&t.pushCode(`${c.varName} >>>= 0`),c.options.assert&&c.generateAssert(t),c.options.formatter&&c.generateFormatter(t,c.varName,c.options.formatter),s+=h,l-=h}),t.bitFields=[]}}generateSeek(t){const n=t.generateOption(this.options.length);t.pushCode(`offset += ${n};`)}generateString(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable(),i=this.options.encoding,o=i.toLowerCase()==="hex",s='b => b.toString(16).padStart(2, "0")';if(this.options.length&&this.options.zeroTerminated){const a=this.options.length;t.pushCode(`var ${r} = offset;`),t.pushCode(`while(dataView.getUint8(offset++) !== 0 && offset - ${r} < ${a});`);const u=`offset - ${r} < ${a} ? offset - 1 : offset`;t.pushCode(o?`${n} = Array.from(buffer.subarray(${r}, ${u}), ${s}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${u}));`)}else if(this.options.length){const a=t.generateOption(this.options.length);t.pushCode(o?`${n} = Array.from(buffer.subarray(offset, offset + ${a}), ${s}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(offset, offset + ${a}));`),t.pushCode(`offset += ${a};`)}else this.options.zeroTerminated?(t.pushCode(`var ${r} = offset;`),t.pushCode("while(dataView.getUint8(offset++) !== 0);"),t.pushCode(o?`${n} = Array.from(buffer.subarray(${r}, offset - 1), ${s}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset - 1));`)):this.options.greedy&&(t.pushCode(`var ${r} = offset;`),t.pushCode("while(buffer.length > offset++);"),t.pushCode(o?`${n} = Array.from(buffer.subarray(${r}, offset), ${s}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset));`));this.options.stripNull&&t.pushCode(`${n} = ${n}.replace(/\\x00+$/g, '')`)}generateBuffer(t){const n=t.generateVariable(this.varName);if(typeof this.options.readUntil=="function"){const r=this.options.readUntil,i=t.generateTmpVariable(),o=t.generateTmpVariable();t.pushCode(`var ${i} = offset;`),t.pushCode(`var ${o} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${o} = dataView.getUint8(offset);`);const s=t.addImport(r);t.pushCode(`if (${s}.call(${t.generateVariable()}, ${o}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${n} = buffer.subarray(${i}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${n} = buffer.subarray(offset);`);else{const r=t.generateOption(this.options.length);t.pushCode(`${n} = buffer.subarray(offset, offset + ${r});`),t.pushCode(`offset += ${r};`)}this.options.clone&&t.pushCode(`${n} = buffer.constructor.from(${n});`)}generateArray(t){const n=t.generateOption(this.options.length),r=t.generateOption(this.options.lengthInBytes),i=this.options.type,o=t.generateTmpVariable(),s=t.generateVariable(this.varName),a=t.generateTmpVariable(),u=this.options.key,l=typeof u=="string";if(l?t.pushCode(`${s} = {};`):t.pushCode(`${s} = [];`),typeof this.options.readUntil=="function"?t.pushCode("do {"):this.options.readUntil==="eof"?t.pushCode(`for (var ${o} = 0; offset < buffer.length; ${o}++) {`):r!==void 0?t.pushCode(`for (var ${o} = offset + ${r}; offset < ${o}; ) {`):t.pushCode(`for (var ${o} = ${n}; ${o} > 0; ${o}--) {`),typeof i=="string")if(Mn.get(i)){const c=t.generateTmpVariable();if(t.pushCode(`var ${c} = ${yo+i}(offset, {`),t.useContextVariables){const f=t.generateVariable();t.pushCode(`$parent: ${f},`),t.pushCode(`$root: ${f}.$root,`),!this.options.readUntil&&r===void 0&&t.pushCode(`$index: ${n} - ${o},`)}t.pushCode("});"),t.pushCode(`var ${a} = ${c}.result; offset = ${c}.offset;`),i!==this.alias&&t.addReference(i)}else{const c=zf[i],f=Uf[i];t.pushCode(`var ${a} = dataView.get${c}(offset, ${f});`),t.pushCode(`offset += ${Pn[i]};`)}else if(i instanceof On){t.pushCode(`var ${a} = {};`);const c=t.generateVariable();t.pushScope(a),t.useContextVariables&&(t.pushCode(`${a}.$parent = ${c};`),t.pushCode(`${a}.$root = ${c}.$root;`),!this.options.readUntil&&r===void 0&&t.pushCode(`${a}.$index = ${n} - ${o};`)),i.generate(t),t.useContextVariables&&(t.pushCode(`delete ${a}.$parent;`),t.pushCode(`delete ${a}.$root;`),t.pushCode(`delete ${a}.$index;`)),t.popScope()}if(l?t.pushCode(`${s}[${a}.${u}] = ${a};`):t.pushCode(`${s}.push(${a});`),t.pushCode("}"),typeof this.options.readUntil=="function"){const c=this.options.readUntil,f=t.addImport(c);t.pushCode(`while (!${f}.call(${t.generateVariable()}, ${a}, buffer.subarray(offset)));`)}}generateChoiceCase(t,n,r){if(typeof r=="string"){const i=t.generateVariable(this.varName);if(Mn.has(r)){const o=t.generateTmpVariable();t.pushCode(`var ${o} = ${yo+r}(offset, {`),t.useContextVariables&&(t.pushCode(`$parent: ${i}.$parent,`),t.pushCode(`$root: ${i}.$root,`)),t.pushCode("});"),t.pushCode(`${i} = ${o}.result; offset = ${o}.offset;`),r!==this.alias&&t.addReference(r)}else{const o=zf[r],s=Uf[r];t.pushCode(`${i} = dataView.get${o}(offset, ${s});`),t.pushCode(`offset += ${Pn[r]}`)}}else r instanceof On&&(t.pushPath(n),r.generate(t),t.popPath(n))}generateChoice(t){const n=t.generateOption(this.options.tag),r=t.generateVariable(this.varName);if(this.varName&&(t.pushCode(`${r} = {};`),t.useContextVariables)){const i=t.generateVariable();t.pushCode(`${r}.$parent = ${i};`),t.pushCode(`${r}.$root = ${i}.$root;`)}t.pushCode(`switch(${n}) {`);for(const i in this.options.choices){const o=parseInt(i,10),s=this.options.choices[o];t.pushCode(`case ${o}:`),this.generateChoiceCase(t,this.varName,s),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 On){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(Mn.has(this.options.type)){const r=t.generateTmpVariable();if(t.pushCode(`var ${r} = ${yo+this.options.type}(offset, {`),t.useContextVariables){const i=t.generateVariable();t.pushCode(`$parent: ${i},`),t.pushCode(`$root: ${i}.$root,`)}t.pushCode("});"),t.pushCode(`${n} = ${r}.result; offset = ${r}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}}generateWrapper(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable();if(typeof this.options.readUntil=="function"){const u=this.options.readUntil,l=t.generateTmpVariable(),c=t.generateTmpVariable();t.pushCode(`var ${l} = offset;`),t.pushCode(`var ${c} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${c} = dataView.getUint8(offset);`);const f=t.addImport(u);t.pushCode(`if (${f}.call(${t.generateVariable()}, ${c}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${r} = buffer.subarray(${l}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${r} = buffer.subarray(offset);`);else{const u=t.generateOption(this.options.length);t.pushCode(`${r} = buffer.subarray(offset, offset + ${u});`),t.pushCode(`offset += ${u};`)}this.options.clone&&t.pushCode(`${r} = buffer.constructor.from(${r});`);const i=t.generateTmpVariable(),o=t.generateTmpVariable(),s=t.generateTmpVariable(),a=t.addImport(this.options.wrapper);if(t.pushCode(`${r} = ${a}.call(this, ${r}).subarray(0);`),t.pushCode(`var ${i} = buffer;`),t.pushCode(`var ${o} = offset;`),t.pushCode(`var ${s} = dataView;`),t.pushCode(`buffer = ${r};`),t.pushCode("offset = 0;"),t.pushCode("dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.options.type instanceof On)this.varName&&t.pushCode(`${n} = {};`),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(Mn.has(this.options.type)){const u=t.generateTmpVariable();t.pushCode(`var ${u} = ${yo+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 = ${s};`),t.pushCode(`offset = ${o};`)}generateFormatter(t,n,r){if(typeof r=="function"){const i=t.addImport(r);t.pushCode(`${n} = ${i}.call(${t.generateVariable()}, ${n});`)}}generatePointer(t){const n=this.options.type,r=t.generateOption(this.options.offset),i=t.generateTmpVariable(),o=t.generateVariable(this.varName);if(t.pushCode(`var ${i} = offset;`),t.pushCode(`offset = ${r};`),this.options.type instanceof On){if(t.pushCode(`${o} = {};`),t.useContextVariables){const s=t.generateVariable();t.pushCode(`${o}.$parent = ${s};`),t.pushCode(`${o}.$root = ${s}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),t.useContextVariables&&(t.pushCode(`delete ${o}.$parent;`),t.pushCode(`delete ${o}.$root;`))}else if(Mn.has(this.options.type)){const s=t.generateTmpVariable();if(t.pushCode(`var ${s} = ${yo+this.options.type}(offset, {`),t.useContextVariables){const a=t.generateVariable();t.pushCode(`$parent: ${a},`),t.pushCode(`$root: ${a}.$root,`)}t.pushCode("});"),t.pushCode(`${o} = ${s}.result; offset = ${s}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}else if(Object.keys(Pn).indexOf(this.options.type)>=0){const s=zf[n],a=Uf[n];t.pushCode(`${o} = dataView.get${s}(offset, ${a});`),t.pushCode(`offset += ${Pn[n]};`)}t.pushCode(`offset = ${i};`)}generateSaveOffset(t){const n=t.generateVariable(this.varName);t.pushCode(`${n} = offset`)}};var kx={},Np={},wo={},ql={};Object.defineProperty(ql,"__esModule",{value:!0});function Op(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function gL(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 zp(e,t,n){return t&&gL(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function mL(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&&Up(e,t)}function _s(e){return _s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},_s(e)}function Up(e,t){return Up=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Up(e,t)}function bL(){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 Wl(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function yL(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 Wl(e)}function wL(e){var t=bL();return function(){var r=_s(e),i;if(t){var o=_s(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return yL(this,i)}}function vL(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=_s(e),e!==null););return e}function Gf(){return typeof Reflect<"u"&&Reflect.get?Gf=Reflect.get.bind():Gf=function(t,n,r){var i=vL(t,n);if(i){var o=Object.getOwnPropertyDescriptor(i,n);return o.get?o.get.call(arguments.length<3?t:r):o.value}},Gf.apply(this,arguments)}var Ix=function(){function e(){Op(this,e),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return zp(e,[{key:"addEventListener",value:function(n,r,i){n in this.listeners||(this.listeners[n]=[]),this.listeners[n].push({callback:r,options:i})}},{key:"removeEventListener",value:function(n,r){if(n in this.listeners){for(var i=this.listeners[n],o=0,s=i.length;o<s;o++)if(i[o].callback===r){i.splice(o,1);return}}}},{key:"dispatchEvent",value:function(n){if(n.type in this.listeners){for(var r=this.listeners[n.type],i=r.slice(),o=0,s=i.length;o<s;o++){var a=i[o];try{a.callback.call(this,n)}catch(u){Promise.resolve().then(function(){throw u})}a.options&&a.options.once&&this.removeEventListener(n.type,a.callback)}return!n.defaultPrevented}}}]),e}(),Gp=function(e){mL(n,e);var t=wL(n);function n(){var r;return Op(this,n),r=t.call(this),r.listeners||Ix.call(Wl(r)),Object.defineProperty(Wl(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(Wl(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(Wl(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return zp(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)),Gf(_s(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(Ix),Bx=function(){function e(){Op(this,e),Object.defineProperty(this,"signal",{value:new Gp,writable:!0,configurable:!0})}return zp(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",Gp.prototype[Symbol.toStringTag]="AbortSignal");function AL(e){return e.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof e.Request=="function"&&!e.Request.prototype.hasOwnProperty("signal")||!e.AbortController}function xL(e){typeof e=="function"&&(e={fetch:e});var t=e,n=t.fetch,r=t.Request,i=r===void 0?n.Request:r,o=t.AbortController,s=t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,a=s===void 0?!1:s;if(!AL({fetch:n,Request:i,AbortController:o,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:a}))return{fetch:n,Request:u};var u=i;(u&&!u.prototype.hasOwnProperty("signal")||a)&&(u=function(h,d){var p;d&&d.signal&&(p=d.signal,delete d.signal);var m=new i(h,d);return p&&Object.defineProperty(m,"signal",{writable:!1,enumerable:!1,configurable:!0,value:p}),m},u.prototype=i.prototype);var l=n,c=function(h,d){var p=u&&u.prototype.isPrototypeOf(h)?h.signal:d?d.signal:void 0;if(p){var m;try{m=new DOMException("Aborted","AbortError")}catch{m=new Error("Aborted"),m.name="AbortError"}if(p.aborted)return Promise.reject(m);var y=new Promise(function(w,x){p.addEventListener("abort",function(){return x(m)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([y,l(h,d)])}return l(h,d)};return{fetch:c,Request:u}}ql.AbortController=Bx,ql.AbortSignal=Gp,ql.abortableFetch=xL,Object.defineProperty(wo,"__esModule",{value:!0}),wo.AbortSignal=wo.AbortController=void 0;const Dx=ql;var Hf=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 EL=typeof Hf().AbortController>"u"?Dx.AbortController:Hf().AbortController;wo.AbortController=EL;let _L=typeof Hf().AbortController>"u"?Dx.AbortSignal:Hf().AbortSignal;wo.AbortSignal=_L;var Hp={};Object.defineProperty(Hp,"__esModule",{value:!0});const SL=wo;class CL{}class TL{constructor(){this.signals=new Set,this.abortController=new SL.AbortController}addSignal(t=new CL){if(this.signal.aborted)throw new Error("cannot add a signal, already aborted!");this.signals.add(t),t.aborted?this.handleAborted(t):typeof t.addEventListener=="function"&&t.addEventListener("abort",()=>{this.handleAborted(t)})}handleAborted(t){this.signals.delete(t),this.signals.size===0&&this.abortController.abort()}get signal(){return this.abortController.signal}abort(){this.abortController.abort()}}Hp.default=TL;var Vp={};Object.defineProperty(Vp,"__esModule",{value:!0});class kL{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)})}}Vp.default=kL;var Rx=mf&&mf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Np,"__esModule",{value:!0});const IL=wo,BL=Rx(Hp),DL=Rx(Vp);class Vf{constructor({fill:t,cache:n}){if(typeof t!="function")throw new TypeError("must pass a fill function");if(typeof n!="object")throw new TypeError("must pass a cache object");if(typeof n.get!="function"||typeof n.set!="function"||typeof n.delete!="function")throw new TypeError("cache must implement get(key), set(key, val), and and delete(key)");this.cache=n,this.fillCallback=t}static isAbortException(t){return t.name==="AbortError"||t.code==="ERR_ABORTED"||t.message==="AbortError: aborted"||t.message==="Error: aborted"}evict(t,n){this.cache.get(t)===n&&this.cache.delete(t)}fill(t,n,r,i){const o=new BL.default,s=new DL.default;s.addCallback(i);const a={aborter:o,promise:this.fillCallback(n,o.signal,u=>{s.callback(u)}),settled:!1,statusReporter:s,get aborted(){return this.aborter.signal.aborted}};a.aborter.addSignal(r),a.aborter.signal.addEventListener("abort",()=>{a.settled||this.evict(t,a)}),a.promise.then(()=>{a.settled=!0},()=>{a.settled=!0,this.evict(t,a)}).catch(u=>{throw console.error(u),u}),this.cache.set(t,a)}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 IL.AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const o=this.cache.get(t);return o?o.aborted&&!o.settled?(this.evict(t,o),this.get(t,n,r,i)):o.settled?o.promise:(o.aborter.addSignal(r),o.statusReporter.addCallback(i),Vf.checkSinglePromise(o.promise,r)):(this.fill(t,n,r,i),Vf.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}}Np.default=Vf;var RL=mf&&mf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(kx,"__esModule",{value:!0});const FL=RL(Np);var jf=kx.default=FL.default;class ML{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 PL=ML;const $f=bf(PL);class Ss{constructor(t){this.ranges=t}get min(){return this.ranges[0].min}get max(){return this.ranges[this.ranges.length-1].max}contains(t){for(const n of this.ranges)if(n.min<=t&&n.max>=t)return!0;return!1}isContiguous(){return this.ranges.length>1}getRanges(){return this.ranges.map(t=>new Ss([{min:t.min,max:t.max}]))}toString(){return this.ranges.map(t=>`[${t.min}-${t.max}]`).join(",")}union(t){const n=[...this.getRanges(),...t.getRanges()].sort((o,s)=>o.min<s.min?-1:o.min>s.min?1:o.max<s.max?-1:s.max>o.max?1:0),r=[];let i=n[0];for(let o=1;o<n.length;o+=1){const s=n[o];s.min>i.max+1?(r.push(i),i=s):s.max>i.max&&(i=new Ss([{min:i.min,max:s.max}]))}return r.push(i),r.length===1?r[0]:new Ss(r)}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const LL=4,Fx=0,Mx=1,NL=2;function Cs(e){let t=e.length;for(;--t>=0;)e[t]=0}const OL=0,Px=1,zL=2,UL=3,GL=258,jp=29,Zl=256,Yl=Zl+1+jp,Ts=30,$p=19,Lx=2*Yl+1,vo=15,qp=16,HL=7,Wp=256,Nx=16,Ox=17,zx=18,Zp=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]),qf=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]),VL=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]),jL=512,Er=new Array((Yl+2)*2);Cs(Er);const Ql=new Array(Ts*2);Cs(Ql);const Xl=new Array(jL);Cs(Xl);const Kl=new Array(GL-UL+1);Cs(Kl);const Yp=new Array(jp);Cs(Yp);const Wf=new Array(Ts);Cs(Wf);function Qp(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 Xp(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const jx=e=>e<256?Xl[e]:Xl[256+(e>>>7)],Jl=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},qt=(e,t,n)=>{e.bi_valid>qp-n?(e.bi_buf|=t<<e.bi_valid&65535,Jl(e,e.bi_buf),e.bi_buf=t>>qp-e.bi_valid,e.bi_valid+=n-qp):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},tr=(e,t,n)=>{qt(e,n[t*2],n[t*2+1])},$x=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},$L=e=>{e.bi_valid===16?(Jl(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)},qL=(e,t)=>{const n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,o=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,u=t.stat_desc.max_length;let l,c,f,h,d,p,m=0;for(h=0;h<=vo;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Lx;l++)c=e.heap[l],h=n[n[c*2+1]*2+1]+1,h>u&&(h=u,m++),n[c*2+1]=h,!(c>r)&&(e.bl_count[h]++,d=0,c>=a&&(d=s[c-a]),p=n[c*2],e.opt_len+=p*(h+d),o&&(e.static_len+=p*(i[c*2+1]+d)));if(m!==0){do{for(h=u-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[u]--,m-=2}while(m>0);for(h=u;h!==0;h--)for(c=e.bl_count[h];c!==0;)f=e.heap[--l],!(f>r)&&(n[f*2+1]!==h&&(e.opt_len+=(h-n[f*2+1])*n[f*2],n[f*2+1]=h),c--)}},qx=(e,t,n)=>{const r=new Array(vo+1);let i=0,o,s;for(o=1;o<=vo;o++)i=i+n[o-1]<<1,r[o]=i;for(s=0;s<=t;s++){let a=e[s*2+1];a!==0&&(e[s*2]=$x(r[a]++,a))}},WL=()=>{let e,t,n,r,i;const o=new Array(vo+1);for(n=0,r=0;r<jp-1;r++)for(Yp[r]=n,e=0;e<1<<Zp[r];e++)Kl[n++]=r;for(Kl[n-1]=r,i=0,r=0;r<16;r++)for(Wf[r]=i,e=0;e<1<<qf[r];e++)Xl[i++]=r;for(i>>=7;r<Ts;r++)for(Wf[r]=i<<7,e=0;e<1<<qf[r]-7;e++)Xl[256+i++]=r;for(t=0;t<=vo;t++)o[t]=0;for(e=0;e<=143;)Er[e*2+1]=8,e++,o[8]++;for(;e<=255;)Er[e*2+1]=9,e++,o[9]++;for(;e<=279;)Er[e*2+1]=7,e++,o[7]++;for(;e<=287;)Er[e*2+1]=8,e++,o[8]++;for(qx(Er,Yl+1,o),e=0;e<Ts;e++)Ql[e*2+1]=5,Ql[e*2]=$x(e,5);Gx=new Qp(Er,Zp,Zl+1,Yl,vo),Hx=new Qp(Ql,qf,0,Ts,vo),Vx=new Qp(new Array(0),VL,0,$p,HL)},Wx=e=>{let t;for(t=0;t<Yl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Ts;t++)e.dyn_dtree[t*2]=0;for(t=0;t<$p;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Wp*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Zx=e=>{e.bi_valid>8?Jl(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Yx=(e,t,n,r)=>{const i=t*2,o=n*2;return e[i]<e[o]||e[i]===e[o]&&r[t]<=r[n]},Kp=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&Yx(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Yx(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},Qx=(e,t,n)=>{let r,i,o=0,s,a;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+o++]&255,r+=(e.pending_buf[e.sym_buf+o++]&255)<<8,i=e.pending_buf[e.sym_buf+o++],r===0?tr(e,i,t):(s=Kl[i],tr(e,s+Zl+1,t),a=Zp[s],a!==0&&(i-=Yp[s],qt(e,i,a)),r--,s=jx(r),tr(e,s,n),a=qf[s],a!==0&&(r-=Wf[s],qt(e,r,a)));while(o<e.sym_next);tr(e,Wp,t)},Jp=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,o=t.stat_desc.elems;let s,a,u=-1,l;for(e.heap_len=0,e.heap_max=Lx,s=0;s<o;s++)n[s*2]!==0?(e.heap[++e.heap_len]=u=s,e.depth[s]=0):n[s*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,s=e.heap_len>>1;s>=1;s--)Kp(e,n,s);l=o;do s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Kp(e,n,1),a=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=a,n[l*2]=n[s*2]+n[a*2],e.depth[l]=(e.depth[s]>=e.depth[a]?e.depth[s]:e.depth[a])+1,n[s*2+1]=n[a*2+1]=l,e.heap[1]=l++,Kp(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],qL(e,t),qx(n,u,e.bl_count)},Xx=(e,t,n)=>{let r,i=-1,o,s=t[0*2+1],a=0,u=7,l=4;for(s===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)o=s,s=t[(r+1)*2+1],!(++a<u&&o===s)&&(a<l?e.bl_tree[o*2]+=a:o!==0?(o!==i&&e.bl_tree[o*2]++,e.bl_tree[Nx*2]++):a<=10?e.bl_tree[Ox*2]++:e.bl_tree[zx*2]++,a=0,i=o,s===0?(u=138,l=3):o===s?(u=6,l=3):(u=7,l=4))},Kx=(e,t,n)=>{let r,i=-1,o,s=t[0*2+1],a=0,u=7,l=4;for(s===0&&(u=138,l=3),r=0;r<=n;r++)if(o=s,s=t[(r+1)*2+1],!(++a<u&&o===s)){if(a<l)do tr(e,o,e.bl_tree);while(--a!==0);else o!==0?(o!==i&&(tr(e,o,e.bl_tree),a--),tr(e,Nx,e.bl_tree),qt(e,a-3,2)):a<=10?(tr(e,Ox,e.bl_tree),qt(e,a-3,3)):(tr(e,zx,e.bl_tree),qt(e,a-11,7));a=0,i=o,s===0?(u=138,l=3):o===s?(u=6,l=3):(u=7,l=4)}},ZL=e=>{let t;for(Xx(e,e.dyn_ltree,e.l_desc.max_code),Xx(e,e.dyn_dtree,e.d_desc.max_code),Jp(e,e.bl_desc),t=$p-1;t>=3&&e.bl_tree[Ux[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},YL=(e,t,n,r)=>{let i;for(qt(e,t-257,5),qt(e,n-1,5),qt(e,r-4,4),i=0;i<r;i++)qt(e,e.bl_tree[Ux[i]*2+1],3);Kx(e,e.dyn_ltree,t-1),Kx(e,e.dyn_dtree,n-1)},QL=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Fx;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<Zl;n++)if(e.dyn_ltree[n*2]!==0)return Mx;return Fx};let Jx=!1;const XL=e=>{Jx||(WL(),Jx=!0),e.l_desc=new Xp(e.dyn_ltree,Gx),e.d_desc=new Xp(e.dyn_dtree,Hx),e.bl_desc=new Xp(e.bl_tree,Vx),e.bi_buf=0,e.bi_valid=0,Wx(e)},e3=(e,t,n,r)=>{qt(e,(OL<<1)+(r?1:0),3),Zx(e),Jl(e,n),Jl(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},KL=e=>{qt(e,Px<<1,3),tr(e,Wp,Er),$L(e)},JL=(e,t,n,r)=>{let i,o,s=0;e.level>0?(e.strm.data_type===NL&&(e.strm.data_type=QL(e)),Jp(e,e.l_desc),Jp(e,e.d_desc),s=ZL(e),i=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=i&&(i=o)):i=o=n+5,n+4<=i&&t!==-1?e3(e,t,n,r):e.strategy===LL||o===i?(qt(e,(Px<<1)+(r?1:0),3),Qx(e,Er,Ql)):(qt(e,(zL<<1)+(r?1:0),3),YL(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),Qx(e,e.dyn_ltree,e.dyn_dtree)),Wx(e),r&&Zx(e)},eN=(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[(Kl[n]+Zl+1)*2]++,e.dyn_dtree[jx(t)*2]++),e.sym_next===e.sym_end);var tN=XL,nN=e3,rN=JL,iN=eN,oN=KL,sN={_tr_init:tN,_tr_stored_block:nN,_tr_flush_block:rN,_tr_tally:iN,_tr_align:oN},eu=(e,t,n,r)=>{let i=e&65535|0,o=e>>>16&65535|0,s=0;for(;n!==0;){s=n>2e3?2e3:n,n-=s;do i=i+t[r++]|0,o=o+i|0;while(--s);i%=65521,o%=65521}return i|o<<16|0};const aN=()=>{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},lN=new Uint32Array(aN());var mt=(e,t,n,r)=>{const i=lN,o=r+n;e^=-1;for(let s=r;s<o;s++)e=e>>>8^i[(e^t[s])&255];return e^-1},ks={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"},tu={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:uN,_tr_stored_block:eg,_tr_flush_block:cN,_tr_tally:pi,_tr_align:fN}=sN,{Z_NO_FLUSH:gi,Z_PARTIAL_FLUSH:hN,Z_FULL_FLUSH:dN,Z_FINISH:yn,Z_BLOCK:t3,Z_OK:At,Z_STREAM_END:n3,Z_STREAM_ERROR:nr,Z_DATA_ERROR:pN,Z_BUF_ERROR:tg,Z_DEFAULT_COMPRESSION:gN,Z_FILTERED:mN,Z_HUFFMAN_ONLY:Zf,Z_RLE:bN,Z_FIXED:yN,Z_DEFAULT_STRATEGY:wN,Z_UNKNOWN:vN,Z_DEFLATED:Yf}=tu,AN=9,xN=15,EN=8,ng=256+1+29,_N=30,SN=19,CN=2*ng+1,TN=15,me=3,mi=258,rr=mi+me+1,kN=32,Is=42,rg=57,ig=69,og=73,sg=91,ag=103,Ao=113,nu=666,Pt=1,Bs=2,xo=3,Ds=4,IN=3,Eo=(e,t)=>(e.msg=ks[t],t),r3=e=>e*2-(e>4?9:0),bi=e=>{let t=e.length;for(;--t>=0;)e[t]=0},BN=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 yi=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const en=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))},tn=(e,t)=>{cN(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,en(e.strm)},Ce=(e,t)=>{e.pending_buf[e.pending++]=t},ru=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},lg=(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=eu(e.adler,t,i,n):e.state.wrap===2&&(e.adler=mt(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},i3=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,o,s=e.prev_length,a=e.nice_match;const u=e.strstart>e.w_size-rr?e.strstart-(e.w_size-rr):0,l=e.window,c=e.w_mask,f=e.prev,h=e.strstart+mi;let d=l[r+s-1],p=l[r+s];e.prev_length>=e.good_match&&(n>>=2),a>e.lookahead&&(a=e.lookahead);do if(i=t,!(l[i+s]!==p||l[i+s-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(o=mi-(h-r),r=h-mi,o>s){if(e.match_start=t,s=o,o>=a)break;d=l[r+s-1],p=l[r+s]}}while((t=f[t&c])>u&&--n!==0);return s<=e.lookahead?s:e.lookahead},Rs=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-rr)&&(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),BN(e),r+=t),e.strm.avail_in===0)break;if(n=lg(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=me)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=yi(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=yi(e,e.ins_h,e.window[i+me-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<me)););}while(e.lookahead<rr&&e.strm.avail_in!==0)},o3=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,o,s=0,a=e.strm.avail_in;do{if(r=65535,o=e.bi_valid+42>>3,e.strm.avail_out<o||(o=e.strm.avail_out-o,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>o&&(r=o),r<n&&(r===0&&t!==yn||t===gi||r!==i+e.strm.avail_in)))break;s=t===yn&&r===i+e.strm.avail_in?1:0,eg(e,0,0,s),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,en(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&&(lg(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(s===0);return a-=e.strm.avail_in,a&&(a>=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<=a&&(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-a,e.strm.next_in),e.strstart),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),s?Ds:t!==gi&&t!==yn&&e.strm.avail_in===0&&e.strstart===e.block_start?Bs:(o=e.window_size-e.strstart,e.strm.avail_in>o&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,o+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),o>e.strm.avail_in&&(o=e.strm.avail_in),o&&(lg(e.strm,e.window,e.strstart,o),e.strstart+=o,e.insert+=o>e.w_size-e.insert?e.w_size-e.insert:o),e.high_water<e.strstart&&(e.high_water=e.strstart),o=e.bi_valid+42>>3,o=e.pending_buf_size-o>65535?65535:e.pending_buf_size-o,n=o>e.w_size?e.w_size:o,i=e.strstart-e.block_start,(i>=n||(i||t===yn)&&t!==gi&&e.strm.avail_in===0&&i<=o)&&(r=i>o?o:i,s=t===yn&&e.strm.avail_in===0&&r===i?1:0,eg(e,e.block_start,r,s),e.block_start+=r,en(e.strm)),s?xo:Pt)},ug=(e,t)=>{let n,r;for(;;){if(e.lookahead<rr){if(Rs(e),e.lookahead<rr&&t===gi)return Pt;if(e.lookahead===0)break}if(n=0,e.lookahead>=me&&(e.ins_h=yi(e,e.ins_h,e.window[e.strstart+me-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-rr&&(e.match_length=i3(e,n)),e.match_length>=me)if(r=pi(e,e.strstart-e.match_start,e.match_length-me),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=me){e.match_length--;do e.strstart++,e.ins_h=yi(e,e.ins_h,e.window[e.strstart+me-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=yi(e,e.ins_h,e.window[e.strstart+1]);else r=pi(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(tn(e,!1),e.strm.avail_out===0))return Pt}return e.insert=e.strstart<me-1?e.strstart:me-1,t===yn?(tn(e,!0),e.strm.avail_out===0?xo:Ds):e.sym_next&&(tn(e,!1),e.strm.avail_out===0)?Pt:Bs},Fs=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<rr){if(Rs(e),e.lookahead<rr&&t===gi)return Pt;if(e.lookahead===0)break}if(n=0,e.lookahead>=me&&(e.ins_h=yi(e,e.ins_h,e.window[e.strstart+me-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=me-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-rr&&(e.match_length=i3(e,n),e.match_length<=5&&(e.strategy===mN||e.match_length===me&&e.strstart-e.match_start>4096)&&(e.match_length=me-1)),e.prev_length>=me&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-me,r=pi(e,e.strstart-1-e.prev_match,e.prev_length-me),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=yi(e,e.ins_h,e.window[e.strstart+me-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=me-1,e.strstart++,r&&(tn(e,!1),e.strm.avail_out===0))return Pt}else if(e.match_available){if(r=pi(e,0,e.window[e.strstart-1]),r&&tn(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Pt}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=pi(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<me-1?e.strstart:me-1,t===yn?(tn(e,!0),e.strm.avail_out===0?xo:Ds):e.sym_next&&(tn(e,!1),e.strm.avail_out===0)?Pt:Bs},DN=(e,t)=>{let n,r,i,o;const s=e.window;for(;;){if(e.lookahead<=mi){if(Rs(e),e.lookahead<=mi&&t===gi)return Pt;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=me&&e.strstart>0&&(i=e.strstart-1,r=s[i],r===s[++i]&&r===s[++i]&&r===s[++i])){o=e.strstart+mi;do;while(r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&i<o);e.match_length=mi-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=me?(n=pi(e,1,e.match_length-me),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=pi(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(tn(e,!1),e.strm.avail_out===0))return Pt}return e.insert=0,t===yn?(tn(e,!0),e.strm.avail_out===0?xo:Ds):e.sym_next&&(tn(e,!1),e.strm.avail_out===0)?Pt:Bs},RN=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(Rs(e),e.lookahead===0)){if(t===gi)return Pt;break}if(e.match_length=0,n=pi(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(tn(e,!1),e.strm.avail_out===0))return Pt}return e.insert=0,t===yn?(tn(e,!0),e.strm.avail_out===0?xo:Ds):e.sym_next&&(tn(e,!1),e.strm.avail_out===0)?Pt:Bs};function ir(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 iu=[new ir(0,0,0,0,o3),new ir(4,4,8,4,ug),new ir(4,5,16,8,ug),new ir(4,6,32,32,ug),new ir(4,4,16,16,Fs),new ir(8,16,32,32,Fs),new ir(8,16,128,128,Fs),new ir(8,32,128,256,Fs),new ir(32,128,258,1024,Fs),new ir(32,258,258,4096,Fs)],FN=e=>{e.window_size=2*e.w_size,bi(e.head),e.max_lazy_match=iu[e.level].max_lazy,e.good_match=iu[e.level].good_length,e.nice_match=iu[e.level].nice_length,e.max_chain_length=iu[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=me-1,e.match_available=0,e.ins_h=0};function MN(){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=Yf,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(CN*2),this.dyn_dtree=new Uint16Array((2*_N+1)*2),this.bl_tree=new Uint16Array((2*SN+1)*2),bi(this.dyn_ltree),bi(this.dyn_dtree),bi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(TN+1),this.heap=new Uint16Array(2*ng+1),bi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*ng+1),bi(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 ou=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==Is&&t.status!==rg&&t.status!==ig&&t.status!==og&&t.status!==sg&&t.status!==ag&&t.status!==Ao&&t.status!==nu?1:0},s3=e=>{if(ou(e))return Eo(e,nr);e.total_in=e.total_out=0,e.data_type=vN;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?rg:t.wrap?Is:Ao,e.adler=t.wrap===2?0:1,t.last_flush=-2,uN(t),At},a3=e=>{const t=s3(e);return t===At&&FN(e.state),t},PN=(e,t)=>ou(e)||e.state.wrap!==2?nr:(e.state.gzhead=t,At),l3=(e,t,n,r,i,o)=>{if(!e)return nr;let s=1;if(t===gN&&(t=6),r<0?(s=0,r=-r):r>15&&(s=2,r-=16),i<1||i>AN||n!==Yf||r<8||r>15||t<0||t>9||o<0||o>yN||r===8&&s!==1)return Eo(e,nr);r===8&&(r=9);const a=new MN;return e.state=a,a.strm=e,a.status=Is,a.wrap=s,a.gzhead=null,a.w_bits=r,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=i+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+me-1)/me),a.window=new Uint8Array(a.w_size*2),a.head=new Uint16Array(a.hash_size),a.prev=new Uint16Array(a.w_size),a.lit_bufsize=1<<i+6,a.pending_buf_size=a.lit_bufsize*4,a.pending_buf=new Uint8Array(a.pending_buf_size),a.sym_buf=a.lit_bufsize,a.sym_end=(a.lit_bufsize-1)*3,a.level=t,a.strategy=o,a.method=n,a3(e)},LN=(e,t)=>l3(e,t,Yf,xN,EN,wN),NN=(e,t)=>{if(ou(e)||t>t3||t<0)return e?Eo(e,nr):nr;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===nu&&t!==yn)return Eo(e,e.avail_out===0?tg:nr);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(en(e),e.avail_out===0)return n.last_flush=-1,At}else if(e.avail_in===0&&r3(t)<=r3(r)&&t!==yn)return Eo(e,tg);if(n.status===nu&&e.avail_in!==0)return Eo(e,tg);if(n.status===Is&&n.wrap===0&&(n.status=Ao),n.status===Is){let i=Yf+(n.w_bits-8<<4)<<8,o=-1;if(n.strategy>=Zf||n.level<2?o=0:n.level<6?o=1:n.level===6?o=2:o=3,i|=o<<6,n.strstart!==0&&(i|=kN),i+=31-i%31,ru(n,i),n.strstart!==0&&(ru(n,e.adler>>>16),ru(n,e.adler&65535)),e.adler=1,n.status=Ao,en(e),n.pending!==0)return n.last_flush=-1,At}if(n.status===rg){if(e.adler=0,Ce(n,31),Ce(n,139),Ce(n,8),n.gzhead)Ce(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)),Ce(n,n.gzhead.time&255),Ce(n,n.gzhead.time>>8&255),Ce(n,n.gzhead.time>>16&255),Ce(n,n.gzhead.time>>24&255),Ce(n,n.level===9?2:n.strategy>=Zf||n.level<2?4:0),Ce(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(Ce(n,n.gzhead.extra.length&255),Ce(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=mt(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=ig;else if(Ce(n,0),Ce(n,0),Ce(n,0),Ce(n,0),Ce(n,0),Ce(n,n.level===9?2:n.strategy>=Zf||n.level<2?4:0),Ce(n,IN),n.status=Ao,en(e),n.pending!==0)return n.last_flush=-1,At}if(n.status===ig){if(n.gzhead.extra){let i=n.pending,o=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+o>n.pending_buf_size;){let a=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(e.adler=mt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=a,en(e),n.pending!==0)return n.last_flush=-1,At;i=0,o-=a}let s=new Uint8Array(n.gzhead.extra);n.pending_buf.set(s.subarray(n.gzindex,n.gzindex+o),n.pending),n.pending+=o,n.gzhead.hcrc&&n.pending>i&&(e.adler=mt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=og}if(n.status===og){if(n.gzhead.name){let i=n.pending,o;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=mt(e.adler,n.pending_buf,n.pending-i,i)),en(e),n.pending!==0)return n.last_flush=-1,At;i=0}n.gzindex<n.gzhead.name.length?o=n.gzhead.name.charCodeAt(n.gzindex++)&255:o=0,Ce(n,o)}while(o!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=mt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=sg}if(n.status===sg){if(n.gzhead.comment){let i=n.pending,o;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=mt(e.adler,n.pending_buf,n.pending-i,i)),en(e),n.pending!==0)return n.last_flush=-1,At;i=0}n.gzindex<n.gzhead.comment.length?o=n.gzhead.comment.charCodeAt(n.gzindex++)&255:o=0,Ce(n,o)}while(o!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=mt(e.adler,n.pending_buf,n.pending-i,i))}n.status=ag}if(n.status===ag){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(en(e),n.pending!==0))return n.last_flush=-1,At;Ce(n,e.adler&255),Ce(n,e.adler>>8&255),e.adler=0}if(n.status=Ao,en(e),n.pending!==0)return n.last_flush=-1,At}if(e.avail_in!==0||n.lookahead!==0||t!==gi&&n.status!==nu){let i=n.level===0?o3(n,t):n.strategy===Zf?RN(n,t):n.strategy===bN?DN(n,t):iu[n.level].func(n,t);if((i===xo||i===Ds)&&(n.status=nu),i===Pt||i===xo)return e.avail_out===0&&(n.last_flush=-1),At;if(i===Bs&&(t===hN?fN(n):t!==t3&&(eg(n,0,0,!1),t===dN&&(bi(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),en(e),e.avail_out===0))return n.last_flush=-1,At}return t!==yn?At:n.wrap<=0?n3:(n.wrap===2?(Ce(n,e.adler&255),Ce(n,e.adler>>8&255),Ce(n,e.adler>>16&255),Ce(n,e.adler>>24&255),Ce(n,e.total_in&255),Ce(n,e.total_in>>8&255),Ce(n,e.total_in>>16&255),Ce(n,e.total_in>>24&255)):(ru(n,e.adler>>>16),ru(n,e.adler&65535)),en(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?At:n3)},ON=e=>{if(ou(e))return nr;const t=e.state.status;return e.state=null,t===Ao?Eo(e,pN):At},zN=(e,t)=>{let n=t.length;if(ou(e))return nr;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==Is||r.lookahead)return nr;if(i===1&&(e.adler=eu(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(bi(r.head),r.strstart=0,r.block_start=0,r.insert=0);let u=new Uint8Array(r.w_size);u.set(t.subarray(n-r.w_size,n),0),t=u,n=r.w_size}const o=e.avail_in,s=e.next_in,a=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,Rs(r);r.lookahead>=me;){let u=r.strstart,l=r.lookahead-(me-1);do r.ins_h=yi(r,r.ins_h,r.window[u+me-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=me-1,Rs(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=me-1,r.match_available=0,e.next_in=s,e.input=a,e.avail_in=o,r.wrap=i,At};var UN=LN,GN=l3,HN=a3,VN=s3,jN=PN,$N=NN,qN=ON,WN=zN,ZN="pako deflate (from Nodeca project)",su={deflateInit:UN,deflateInit2:GN,deflateReset:HN,deflateResetKeep:VN,deflateSetHeader:jN,deflate:$N,deflateEnd:qN,deflateSetDictionary:WN,deflateInfo:ZN};const YN=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var QN=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)YN(n,r)&&(e[r]=n[r])}}return e},XN=e=>{let t=0;for(let r=0,i=e.length;r<i;r++)t+=e[r].length;const n=new Uint8Array(t);for(let r=0,i=0,o=e.length;r<o;r++){let s=e[r];n.set(s,i),i+=s.length}return n},Qf={assign:QN,flattenChunks:XN};let u3=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{u3=!1}const au=new Uint8Array(256);for(let e=0;e<256;e++)au[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;au[254]=au[254]=1;var KN=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,o,s=e.length,a=0;for(i=0;i<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<s&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),a+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(a),o=0,i=0;o<a;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<s&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[o++]=n:n<2048?(t[o++]=192|n>>>6,t[o++]=128|n&63):n<65536?(t[o++]=224|n>>>12,t[o++]=128|n>>>6&63,t[o++]=128|n&63):(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63,t[o++]=128|n>>>6&63,t[o++]=128|n&63);return t};const JN=(e,t)=>{if(t<65534&&e.subarray&&u3)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 eO=(e,t)=>{const n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let r,i;const o=new Array(n*2);for(i=0,r=0;r<n;){let s=e[r++];if(s<128){o[i++]=s;continue}let a=au[s];if(a>4){o[i++]=65533,r+=a-1;continue}for(s&=a===2?31:a===3?15:7;a>1&&r<n;)s=s<<6|e[r++]&63,a--;if(a>1){o[i++]=65533;continue}s<65536?o[i++]=s:(s-=65536,o[i++]=55296|s>>10&1023,o[i++]=56320|s&1023)}return JN(o,i)},tO=(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+au[e[n]]>t?n:t},lu={string2buf:KN,buf2string:eO,utf8border:tO};function nO(){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 c3=nO;const f3=Object.prototype.toString,{Z_NO_FLUSH:rO,Z_SYNC_FLUSH:iO,Z_FULL_FLUSH:oO,Z_FINISH:sO,Z_OK:Xf,Z_STREAM_END:aO,Z_DEFAULT_COMPRESSION:lO,Z_DEFAULT_STRATEGY:uO,Z_DEFLATED:cO}=tu;function cg(e){this.options=Qf.assign({level:lO,method:cO,chunkSize:16384,windowBits:15,memLevel:8,strategy:uO},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 c3,this.strm.avail_out=0;let n=su.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Xf)throw new Error(ks[n]);if(t.header&&su.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=lu.string2buf(t.dictionary):f3.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=su.deflateSetDictionary(this.strm,r),n!==Xf)throw new Error(ks[n]);this._dict_set=!0}}cg.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let i,o;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?sO:rO,typeof e=="string"?n.input=lu.string2buf(e):f3.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(o===iO||o===oO)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=su.deflate(n,o),i===aO)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=su.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===Xf;if(n.avail_out===0){this.onData(n.output);continue}if(o>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0},cg.prototype.onData=function(e){this.chunks.push(e)},cg.prototype.onEnd=function(e){e===Xf&&(this.result=Qf.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const Kf=16209,fO=16191;var hO=function(t,n){let r,i,o,s,a,u,l,c,f,h,d,p,m,y,w,x,S,_,T,B,I,D,M,G;const N=t.state;r=t.next_in,M=t.input,i=r+(t.avail_in-5),o=t.next_out,G=t.output,s=o-(n-t.avail_out),a=o+(t.avail_out-257),u=N.dmax,l=N.wsize,c=N.whave,f=N.wnext,h=N.window,d=N.hold,p=N.bits,m=N.lencode,y=N.distcode,w=(1<<N.lenbits)-1,x=(1<<N.distbits)-1;e:do{p<15&&(d+=M[r++]<<p,p+=8,d+=M[r++]<<p,p+=8),S=m[d&w];t:for(;;){if(_=S>>>24,d>>>=_,p-=_,_=S>>>16&255,_===0)G[o++]=S&65535;else if(_&16){T=S&65535,_&=15,_&&(p<_&&(d+=M[r++]<<p,p+=8),T+=d&(1<<_)-1,d>>>=_,p-=_),p<15&&(d+=M[r++]<<p,p+=8,d+=M[r++]<<p,p+=8),S=y[d&x];n:for(;;){if(_=S>>>24,d>>>=_,p-=_,_=S>>>16&255,_&16){if(B=S&65535,_&=15,p<_&&(d+=M[r++]<<p,p+=8,p<_&&(d+=M[r++]<<p,p+=8)),B+=d&(1<<_)-1,B>u){t.msg="invalid distance too far back",N.mode=Kf;break e}if(d>>>=_,p-=_,_=o-s,B>_){if(_=B-_,_>c&&N.sane){t.msg="invalid distance too far back",N.mode=Kf;break e}if(I=0,D=h,f===0){if(I+=l-_,_<T){T-=_;do G[o++]=h[I++];while(--_);I=o-B,D=G}}else if(f<_){if(I+=l+f-_,_-=f,_<T){T-=_;do G[o++]=h[I++];while(--_);if(I=0,f<T){_=f,T-=_;do G[o++]=h[I++];while(--_);I=o-B,D=G}}}else if(I+=f-_,_<T){T-=_;do G[o++]=h[I++];while(--_);I=o-B,D=G}for(;T>2;)G[o++]=D[I++],G[o++]=D[I++],G[o++]=D[I++],T-=3;T&&(G[o++]=D[I++],T>1&&(G[o++]=D[I++]))}else{I=o-B;do G[o++]=G[I++],G[o++]=G[I++],G[o++]=G[I++],T-=3;while(T>2);T&&(G[o++]=G[I++],T>1&&(G[o++]=G[I++]))}}else if(_&64){t.msg="invalid distance code",N.mode=Kf;break e}else{S=y[(S&65535)+(d&(1<<_)-1)];continue n}break}}else if(_&64)if(_&32){N.mode=fO;break e}else{t.msg="invalid literal/length code",N.mode=Kf;break e}else{S=m[(S&65535)+(d&(1<<_)-1)];continue t}break}}while(r<i&&o<a);T=p>>3,r-=T,p-=T<<3,d&=(1<<p)-1,t.next_in=r,t.next_out=o,t.avail_in=r<i?5+(i-r):5-(r-i),t.avail_out=o<a?257+(a-o):257-(o-a),N.hold=d,N.bits=p};const Ms=15,h3=852,d3=592,p3=0,fg=1,g3=2,dO=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]),pO=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]),gO=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]),mO=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 uu=(e,t,n,r,i,o,s,a)=>{const u=a.bits;let l=0,c=0,f=0,h=0,d=0,p=0,m=0,y=0,w=0,x=0,S,_,T,B,I,D=null,M;const G=new Uint16Array(Ms+1),N=new Uint16Array(Ms+1);let ne=null,ie,pe,be;for(l=0;l<=Ms;l++)G[l]=0;for(c=0;c<r;c++)G[t[n+c]]++;for(d=u,h=Ms;h>=1&&G[h]===0;h--);if(d>h&&(d=h),h===0)return i[o++]=1<<24|64<<16|0,i[o++]=1<<24|64<<16|0,a.bits=1,0;for(f=1;f<h&&G[f]===0;f++);for(d<f&&(d=f),y=1,l=1;l<=Ms;l++)if(y<<=1,y-=G[l],y<0)return-1;if(y>0&&(e===p3||h!==1))return-1;for(N[1]=0,l=1;l<Ms;l++)N[l+1]=N[l]+G[l];for(c=0;c<r;c++)t[n+c]!==0&&(s[N[t[n+c]]++]=c);if(e===p3?(D=ne=s,M=20):e===fg?(D=dO,ne=pO,M=257):(D=gO,ne=mO,M=0),x=0,c=0,l=f,I=o,p=d,m=0,T=-1,w=1<<d,B=w-1,e===fg&&w>h3||e===g3&&w>d3)return 1;for(;;){ie=l-m,s[c]+1<M?(pe=0,be=s[c]):s[c]>=M?(pe=ne[s[c]-M],be=D[s[c]-M]):(pe=96,be=0),S=1<<l-m,_=1<<p,f=_;do _-=S,i[I+(x>>m)+_]=ie<<24|pe<<16|be|0;while(_!==0);for(S=1<<l-1;x&S;)S>>=1;if(S!==0?(x&=S-1,x+=S):x=0,c++,--G[l]===0){if(l===h)break;l=t[n+s[c]]}if(l>d&&(x&B)!==T){for(m===0&&(m=d),I+=f,p=l-m,y=1<<p;p+m<h&&(y-=G[p+m],!(y<=0));)p++,y<<=1;if(w+=1<<p,e===fg&&w>h3||e===g3&&w>d3)return 1;T=x&B,i[T]=d<<24|p<<16|I-o|0}}return x!==0&&(i[I+x]=l-m<<24|64<<16|0),a.bits=d,0};const bO=0,m3=1,b3=2,{Z_FINISH:y3,Z_BLOCK:yO,Z_TREES:Jf,Z_OK:_o,Z_STREAM_END:wO,Z_NEED_DICT:vO,Z_STREAM_ERROR:wn,Z_DATA_ERROR:w3,Z_MEM_ERROR:v3,Z_BUF_ERROR:AO,Z_DEFLATED:A3}=tu,eh=16180,x3=16181,E3=16182,_3=16183,S3=16184,C3=16185,T3=16186,k3=16187,I3=16188,B3=16189,th=16190,_r=16191,hg=16192,D3=16193,dg=16194,R3=16195,F3=16196,M3=16197,P3=16198,nh=16199,rh=16200,L3=16201,N3=16202,O3=16203,z3=16204,U3=16205,pg=16206,G3=16207,H3=16208,Xe=16209,V3=16210,j3=16211,xO=852,EO=592,_O=15,$3=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function SO(){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 So=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<eh||t.mode>j3?1:0},q3=e=>{if(So(e))return wn;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=eh,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(xO),t.distcode=t.distdyn=new Int32Array(EO),t.sane=1,t.back=-1,_o},W3=e=>{if(So(e))return wn;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,q3(e)},Z3=(e,t)=>{let n;if(So(e))return wn;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?wn:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,W3(e))},Y3=(e,t)=>{if(!e)return wn;const n=new SO;e.state=n,n.strm=e,n.window=null,n.mode=eh;const r=Z3(e,t);return r!==_o&&(e.state=null),r},CO=e=>Y3(e,_O);let Q3=!0,gg,mg;const TO=e=>{if(Q3){gg=new Int32Array(512),mg=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(uu(m3,e.lens,0,288,gg,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;uu(b3,e.lens,0,32,mg,0,e.work,{bits:5}),Q3=!1}e.lencode=gg,e.lenbits=9,e.distcode=mg,e.distbits=5},X3=(e,t,n,r)=>{let i;const o=e.state;return o.window===null&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Uint8Array(o.wsize)),r>=o.wsize?(o.window.set(t.subarray(n-o.wsize,n),0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),o.window.set(t.subarray(n-r,n-r+i),o.wnext),r-=i,r?(o.window.set(t.subarray(n-r,n),0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=i))),0},kO=(e,t)=>{let n,r,i,o,s,a,u,l,c,f,h,d,p,m,y=0,w,x,S,_,T,B,I,D;const M=new Uint8Array(4);let G,N;const ne=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(So(e)||!e.output||!e.input&&e.avail_in!==0)return wn;n=e.state,n.mode===_r&&(n.mode=hg),s=e.next_out,i=e.output,u=e.avail_out,o=e.next_in,r=e.input,a=e.avail_in,l=n.hold,c=n.bits,f=a,h=u,D=_o;e:for(;;)switch(n.mode){case eh:if(n.wrap===0){n.mode=hg;break}for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(n.wrap&2&&l===35615){n.wbits===0&&(n.wbits=15),n.check=0,M[0]=l&255,M[1]=l>>>8&255,n.check=mt(n.check,M,2,0),l=0,c=0,n.mode=x3;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",n.mode=Xe;break}if((l&15)!==A3){e.msg="unknown compression method",n.mode=Xe;break}if(l>>>=4,c-=4,I=(l&15)+8,n.wbits===0&&(n.wbits=I),I>15||I>n.wbits){e.msg="invalid window size",n.mode=Xe;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=l&512?B3:_r,l=0,c=0;break;case x3:for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(n.flags=l,(n.flags&255)!==A3){e.msg="unknown compression method",n.mode=Xe;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=Xe;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=mt(n.check,M,2,0)),l=0,c=0,n.mode=E3;case E3:for(;c<32;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.head&&(n.head.time=l),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,M[2]=l>>>16&255,M[3]=l>>>24&255,n.check=mt(n.check,M,4,0)),l=0,c=0,n.mode=_3;case _3:for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=mt(n.check,M,2,0)),l=0,c=0,n.mode=S3;case S3:if(n.flags&1024){for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=mt(n.check,M,2,0)),l=0,c=0}else n.head&&(n.head.extra=null);n.mode=C3;case C3:if(n.flags&1024&&(d=n.length,d>a&&(d=a),d&&(n.head&&(I=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(o,o+d),I)),n.flags&512&&n.wrap&4&&(n.check=mt(n.check,r,d,o)),a-=d,o+=d,n.length-=d),n.length))break e;n.length=0,n.mode=T3;case T3:if(n.flags&2048){if(a===0)break e;d=0;do I=r[o+d++],n.head&&I&&n.length<65536&&(n.head.name+=String.fromCharCode(I));while(I&&d<a);if(n.flags&512&&n.wrap&4&&(n.check=mt(n.check,r,d,o)),a-=d,o+=d,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=k3;case k3:if(n.flags&4096){if(a===0)break e;d=0;do I=r[o+d++],n.head&&I&&n.length<65536&&(n.head.comment+=String.fromCharCode(I));while(I&&d<a);if(n.flags&512&&n.wrap&4&&(n.check=mt(n.check,r,d,o)),a-=d,o+=d,I)break e}else n.head&&(n.head.comment=null);n.mode=I3;case I3:if(n.flags&512){for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(n.wrap&4&&l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=Xe;break}l=0,c=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=_r;break;case B3:for(;c<32;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}e.adler=n.check=$3(l),l=0,c=0,n.mode=th;case th:if(n.havedict===0)return e.next_out=s,e.avail_out=u,e.next_in=o,e.avail_in=a,n.hold=l,n.bits=c,vO;e.adler=n.check=1,n.mode=_r;case _r:if(t===yO||t===Jf)break e;case hg:if(n.last){l>>>=c&7,c-=c&7,n.mode=pg;break}for(;c<3;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}switch(n.last=l&1,l>>>=1,c-=1,l&3){case 0:n.mode=D3;break;case 1:if(TO(n),n.mode=nh,t===Jf){l>>>=2,c-=2;break e}break;case 2:n.mode=F3;break;case 3:e.msg="invalid block type",n.mode=Xe}l>>>=2,c-=2;break;case D3:for(l>>>=c&7,c-=c&7;c<32;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=Xe;break}if(n.length=l&65535,l=0,c=0,n.mode=dg,t===Jf)break e;case dg:n.mode=R3;case R3:if(d=n.length,d){if(d>a&&(d=a),d>u&&(d=u),d===0)break e;i.set(r.subarray(o,o+d),s),a-=d,o+=d,u-=d,s+=d,n.length-=d;break}n.mode=_r;break;case F3:for(;c<14;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(n.nlen=(l&31)+257,l>>>=5,c-=5,n.ndist=(l&31)+1,l>>>=5,c-=5,n.ncode=(l&15)+4,l>>>=4,c-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=Xe;break}n.have=0,n.mode=M3;case M3:for(;n.have<n.ncode;){for(;c<3;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.lens[ne[n.have++]]=l&7,l>>>=3,c-=3}for(;n.have<19;)n.lens[ne[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,G={bits:n.lenbits},D=uu(bO,n.lens,0,19,n.lencode,0,n.work,G),n.lenbits=G.bits,D){e.msg="invalid code lengths set",n.mode=Xe;break}n.have=0,n.mode=P3;case P3:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,x=y>>>16&255,S=y&65535,!(w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(S<16)l>>>=w,c-=w,n.lens[n.have++]=S;else{if(S===16){for(N=w+2;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(l>>>=w,c-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=Xe;break}I=n.lens[n.have-1],d=3+(l&3),l>>>=2,c-=2}else if(S===17){for(N=w+3;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}l>>>=w,c-=w,I=0,d=3+(l&7),l>>>=3,c-=3}else{for(N=w+7;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}l>>>=w,c-=w,I=0,d=11+(l&127),l>>>=7,c-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=Xe;break}for(;d--;)n.lens[n.have++]=I}}if(n.mode===Xe)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=Xe;break}if(n.lenbits=9,G={bits:n.lenbits},D=uu(m3,n.lens,0,n.nlen,n.lencode,0,n.work,G),n.lenbits=G.bits,D){e.msg="invalid literal/lengths set",n.mode=Xe;break}if(n.distbits=6,n.distcode=n.distdyn,G={bits:n.distbits},D=uu(b3,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,G),n.distbits=G.bits,D){e.msg="invalid distances set",n.mode=Xe;break}if(n.mode=nh,t===Jf)break e;case nh:n.mode=rh;case rh:if(a>=6&&u>=258){e.next_out=s,e.avail_out=u,e.next_in=o,e.avail_in=a,n.hold=l,n.bits=c,hO(e,h),s=e.next_out,i=e.output,u=e.avail_out,o=e.next_in,r=e.input,a=e.avail_in,l=n.hold,c=n.bits,n.mode===_r&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,x=y>>>16&255,S=y&65535,!(w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(x&&!(x&240)){for(_=w,T=x,B=S;y=n.lencode[B+((l&(1<<_+T)-1)>>_)],w=y>>>24,x=y>>>16&255,S=y&65535,!(_+w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,n.length=S,x===0){n.mode=U3;break}if(x&32){n.back=-1,n.mode=_r;break}if(x&64){e.msg="invalid literal/length code",n.mode=Xe;break}n.extra=x&15,n.mode=L3;case L3:if(n.extra){for(N=n.extra;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=N3;case N3:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,x=y>>>16&255,S=y&65535,!(w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(!(x&240)){for(_=w,T=x,B=S;y=n.distcode[B+((l&(1<<_+T)-1)>>_)],w=y>>>24,x=y>>>16&255,S=y&65535,!(_+w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,x&64){e.msg="invalid distance code",n.mode=Xe;break}n.offset=S,n.extra=x&15,n.mode=O3;case O3:if(n.extra){for(N=n.extra;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=Xe;break}n.mode=z3;case z3: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=Xe;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=s-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[s++]=m[p++];while(--d);n.length===0&&(n.mode=rh);break;case U3:if(u===0)break e;i[s++]=n.length,u--,n.mode=rh;break;case pg:if(n.wrap){for(;c<32;){if(a===0)break e;a--,l|=r[o++]<<c,c+=8}if(h-=u,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?mt(n.check,i,h,s-h):eu(n.check,i,h,s-h)),h=u,n.wrap&4&&(n.flags?l:$3(l))!==n.check){e.msg="incorrect data check",n.mode=Xe;break}l=0,c=0}n.mode=G3;case G3:if(n.wrap&&n.flags){for(;c<32;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(n.wrap&4&&l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=Xe;break}l=0,c=0}n.mode=H3;case H3:D=wO;break e;case Xe:D=w3;break e;case V3:return v3;case j3:default:return wn}return e.next_out=s,e.avail_out=u,e.next_in=o,e.avail_in=a,n.hold=l,n.bits=c,(n.wsize||h!==e.avail_out&&n.mode<Xe&&(n.mode<pg||t!==y3))&&X3(e,e.output,e.next_out,h-e.avail_out),f-=e.avail_in,h-=e.avail_out,e.total_in+=f,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?mt(n.check,i,h,e.next_out-h):eu(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===_r?128:0)+(n.mode===nh||n.mode===dg?256:0),(f===0&&h===0||t===y3)&&D===_o&&(D=AO),D},IO=e=>{if(So(e))return wn;let t=e.state;return t.window&&(t.window=null),e.state=null,_o},BO=(e,t)=>{if(So(e))return wn;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,_o):wn},DO=(e,t)=>{const n=t.length;let r,i,o;return So(e)||(r=e.state,r.wrap!==0&&r.mode!==th)?wn:r.mode===th&&(i=1,i=eu(i,t,n,0),i!==r.check)?w3:(o=X3(e,t,n,n),o?(r.mode=V3,v3):(r.havedict=1,_o))};var RO=W3,FO=Z3,MO=q3,PO=CO,LO=Y3,NO=kO,OO=IO,zO=BO,UO=DO,GO="pako inflate (from Nodeca project)",Sr={inflateReset:RO,inflateReset2:FO,inflateResetKeep:MO,inflateInit:PO,inflateInit2:LO,inflate:NO,inflateEnd:OO,inflateGetHeader:zO,inflateSetDictionary:UO,inflateInfo:GO};function HO(){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 VO=HO;const K3=Object.prototype.toString,{Z_NO_FLUSH:jO,Z_FINISH:$O,Z_OK:cu,Z_STREAM_END:bg,Z_NEED_DICT:yg,Z_STREAM_ERROR:qO,Z_DATA_ERROR:J3,Z_MEM_ERROR:WO}=tu;function fu(e){this.options=Qf.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 c3,this.strm.avail_out=0;let n=Sr.inflateInit2(this.strm,t.windowBits);if(n!==cu)throw new Error(ks[n]);if(this.header=new VO,Sr.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=lu.string2buf(t.dictionary):K3.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=Sr.inflateSetDictionary(this.strm,t.dictionary),n!==cu)))throw new Error(ks[n])}fu.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let o,s,a;if(this.ended)return!1;for(t===~~t?s=t:s=t===!0?$O:jO,K3.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),o=Sr.inflate(n,s),o===yg&&i&&(o=Sr.inflateSetDictionary(n,i),o===cu?o=Sr.inflate(n,s):o===J3&&(o=yg));n.avail_in>0&&o===bg&&n.state.wrap>0&&e[n.next_in]!==0;)Sr.inflateReset(n),o=Sr.inflate(n,s);switch(o){case qO:case J3:case yg:case WO:return this.onEnd(o),this.ended=!0,!1}if(a=n.avail_out,n.next_out&&(n.avail_out===0||o===bg))if(this.options.to==="string"){let u=lu.utf8border(n.output,n.next_out),l=n.next_out-u,c=lu.buf2string(n.output,u);n.next_out=l,n.avail_out=r-l,l&&n.output.set(n.output.subarray(u,u+l),0),this.onData(c)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(o===cu&&a===0)){if(o===bg)return o=Sr.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},fu.prototype.onData=function(e){this.chunks.push(e)},fu.prototype.onEnd=function(e){e===cu&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Qf.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function wg(e,t){const n=new fu(t);if(n.push(e),n.err)throw n.msg||ks[n.err];return n.result}function ZO(e,t){return t=t||{},t.raw=!0,wg(e,t)}var YO=fu,QO=wg,XO=ZO,KO=wg,JO=tu,ez={Inflate:YO,inflate:QO,inflateRaw:XO,ungzip:KO,constants:JO};const{Inflate:nH,inflate:rH,inflateRaw:tz,ungzip:iH}=ez;var nz=tz;function rz(e){return nz(e.subarray(2))}let iz=class extends Error{constructor(t){super(t),this.code="ERR_ABORTED"}};function oz(e){e.sort((i,o)=>Number(i.offset)-Number(o.offset));const t=[];let n,r;for(const i of e)n&&r&&Number(i.offset)-r<=2e3?(n.length=BigInt(Number(n.length)+Number(i.length)-r+Number(i.offset)),n.blocks.push(i)):t.push(n={blocks:[i],length:i.length,offset:i.offset}),r=Number(n.offset)+Number(n.length);return t}function ih(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new iz("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}const sz=1,az=2,lz=3;function vg(e,t,n,r){return e<r&&t>=n}function uz(e){const t=e?"big":"little",n=new Me().endianess(t).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new Me().endianess(t).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new Me().endianess(t).array("blocksToFetch",{length:"cnt",type:new Me().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new Me().array("recurOffsets",{length:"cnt",type:new Me().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new Me().endianess(t).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new Me().endianess(t).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[lz]:new Me().array("items",{length:"itemCount",type:new Me().floatle("score")}),[az]:new Me().array("items",{length:"itemCount",type:new Me().endianess(t).int32("start").floatle("score")}),[sz]:new Me().array("items",{length:"itemCount",type:new Me().endianess(t).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class eE{constructor(t,n,r,i,o,s){if(this.bbi=t,this.refsByName=n,this.cirTreeOffset=r,this.isBigEndian=i,this.isCompressed=o,this.blockType=s,this.featureCache=new jf({cache:new $f({maxSize:1e3}),fill:async(u,l)=>{const c=Number(u.length),f=Number(u.offset),{buffer:h}=await this.bbi.read(xe.Buffer.alloc(c),0,c,f,{signal:l});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const a=uz(i);this.leafParser=a.leafParser,this.bigBedParser=a.bigBedParser}async readWigData(t,n,r,i,o){try{const{refsByName:s,bbi:a,cirTreeOffset:u,isBigEndian:l}=this,c=s[t];c===void 0&&i.complete();const f={chrId:c,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=a.read(xe.Buffer.alloc(48),0,48,Number(u),o));const{buffer:h}=await this.cirTreePromise,d=l?h.readUInt32BE(4):h.readUInt32LE(4);let p=[],m=0;const y=(_,T,B)=>{try{const I=_.subarray(T),D=this.leafParser.parse(I);if(D.blocksToFetch&&(p=p.concat(D.blocksToFetch.filter(M=>w(M)).map(M=>({offset:M.blockOffset,length:M.blockSize})))),D.recurOffsets){const M=D.recurOffsets.filter(G=>w(G)).map(G=>Number(G.blockOffset));M.length>0&&S(M,B+1)}}catch(I){i.error(I)}},w=_=>{const{startChrom:T,startBase:B,endChrom:I,endBase:D}=_;return(T<c||T===c&&B<=r)&&(I>c||I===c&&D>=n)},x=async(_,T,B)=>{try{const I=T.max-T.min,D=T.min,M=await this.featureCache.get(`${I}_${D}`,{length:I,offset:D},o==null?void 0:o.signal);for(const G of _)T.contains(G)&&(y(M,G-D,B),m-=1,m===0&&this.readFeatures(i,p,{...o,request:f}).catch(N=>i.error(N)))}catch(I){i.error(I)}},S=(_,T)=>{try{m+=_.length;const B=4+Number(d)*32;let I=new Ss([{min:_[0],max:_[0]+B}]);for(let D=1;D<_.length;D+=1){const M=new Ss([{min:_[D],max:_[D]+B}]);I=I.union(M)}I.getRanges().map(D=>x(_,D,T))}catch(B){i.error(B)}};return S([Number(u)+48],1)}catch(s){i.error(s)}}parseSummaryBlock(t,n,r){const i=[];let o=n;const s=new DataView(t.buffer,t.byteOffset,t.length);for(;o<t.byteLength;){const a=s.getUint32(o,!0);o+=4;const u=s.getUint32(o,!0);o+=4;const l=s.getUint32(o,!0);o+=4;const c=s.getUint32(o,!0);o+=4;const f=s.getFloat32(o,!0);o+=4;const h=s.getFloat32(o,!0);o+=4;const d=s.getFloat32(o,!0);o+=4,o+=4,(!r||a===r.chrId&&vg(u,l,r.start,r.end))&&i.push({start:u,end:l,maxScore:h,minScore:f,summary:!0,score:d/(c||1)})}return i}parseBigBedBlock(t,n,r,i){const o=[];let s=n;for(;s<t.byteLength;){const a=this.bigBedParser.parse(t.subarray(s));a.uniqueId=`bb-${r+s}`,o.push(a),s+=a.offset}return i?o.filter(a=>vg(a.start,a.end,i.start,i.end)):o}parseBigWigBlock(t,n,r){const i=t.subarray(n),o=new DataView(i.buffer,i.byteOffset,i.length);let s=0;s+=4;const a=o.getInt32(s,!0);s+=8;const u=o.getUint32(s,!0);s+=4;const l=o.getUint32(s,!0);s+=4;const c=o.getUint8(s);s+=2;const f=o.getUint16(s,!0);s+=2;const h=new Array(f);switch(c){case 1:{for(let d=0;d<f;d++){const p=o.getInt32(s,!0);s+=4;const m=o.getInt32(s,!0);s+=4;const y=o.getFloat32(s,!0);s+=4,h[d]={start:p,end:m,score:y}}break}case 2:{for(let d=0;d<f;d++){const p=o.getInt32(s,!0);s+=4;const m=o.getFloat32(s,!0);s+=4,h[d]={score:m,start:p,end:p+l}}break}case 3:{for(let d=0;d<f;d++){const p=o.getFloat32(s,!0);s+=4;const m=a+d*u;h[d]={score:p,start:m,end:m+l}}break}}return r?h.filter(d=>vg(d.start,d.end,r.start,r.end)):h}async readFeatures(t,n,r={}){try{const{blockType:i,isCompressed:o}=this,{signal:s,request:a}=r,u=oz(n);ih(s),await Promise.all(u.map(async l=>{ih(s);const{length:c,offset:f}=l,h=await this.featureCache.get(`${c}_${f}`,l,s);for(const d of l.blocks){ih(s);let p=Number(d.offset)-Number(l.offset),m=h;switch(o&&(m=rz(h.subarray(p)),p=0),ih(s),i){case"summary":{t.next(this.parseSummaryBlock(m,p,a));break}case"bigwig":{t.next(this.parseBigWigBlock(m,p,a));break}case"bigbed":{t.next(this.parseBigBedBlock(m,p,Number(d.offset)*256,a));break}default:console.warn(`Don't know what to do with ${i}`)}}})),t.complete()}catch(i){t.error(i)}}}var Ag=function(e,t){return Ag=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])},Ag(e,t)};function xg(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Ag(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function cz(e,t,n,r){function i(o){return o instanceof n?o:new n(function(s){s(o)})}return new(n||(n=Promise))(function(o,s){function a(c){try{l(r.next(c))}catch(f){s(f)}}function u(c){try{l(r.throw(c))}catch(f){s(f)}}function l(c){c.done?o(c.value):i(c.value).then(a,u)}l((r=r.apply(e,t||[])).next())})}function tE(e,t){var n={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},r,i,o,s;return s={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function a(l){return function(c){return u([l,c])}}function u(l){if(r)throw new TypeError("Generator is already executing.");for(;s&&(s=0,l[0]&&(n=0)),n;)try{if(r=1,i&&(o=l[0]&2?i.return:l[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,l[1])).done)return o;switch(i=0,o&&(l=[l[0]&2,o.value]),l[0]){case 0:case 1:o=l;break;case 4:return n.label++,{value:l[1],done:!1};case 5:n.label++,i=l[1],l=[0];continue;case 7:l=n.ops.pop(),n.trys.pop();continue;default:if(o=n.trys,!(o=o.length>0&&o[o.length-1])&&(l[0]===6||l[0]===2)){n=0;continue}if(l[0]===3&&(!o||l[1]>o[0]&&l[1]<o[3])){n.label=l[1];break}if(l[0]===6&&n.label<o[1]){n.label=o[1],o=l;break}if(o&&n.label<o[2]){n.label=o[2],n.ops.push(l);break}o[2]&&n.ops.pop(),n.trys.pop();continue}l=t.call(e,n)}catch(c){l=[6,c],i=0}finally{r=o=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function hu(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 Eg(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,o=[],s;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)o.push(i.value)}catch(a){s={error:a}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(s)throw s.error}}return o}function _g(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,o;r<i;r++)(o||!(r in t))&&(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return e.concat(o||Array.prototype.slice.call(t))}function Ps(e){return this instanceof Ps?(this.v=e,this):new Ps(e)}function fz(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),i,o=[];return i={},s("next"),s("throw"),s("return"),i[Symbol.asyncIterator]=function(){return this},i;function s(h){r[h]&&(i[h]=function(d){return new Promise(function(p,m){o.push([h,d,p,m])>1||a(h,d)})})}function a(h,d){try{u(r[h](d))}catch(p){f(o[0][3],p)}}function u(h){h.value instanceof Ps?Promise.resolve(h.value.v).then(l,c):f(o[0][2],h)}function l(h){a("next",h)}function c(h){a("throw",h)}function f(h,d){h(d),o.shift(),o.length&&a(o[0][0],o[0][1])}}function hz(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 hu=="function"?hu(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(o){n[o]=e[o]&&function(s){return new Promise(function(a,u){s=e[o](s),i(a,u,s.done,s.value)})}}function i(o,s,a,u){Promise.resolve(u).then(function(l){o({value:l,done:a})},s)}}typeof SuppressedError=="function"&&SuppressedError;function ct(e){return typeof e=="function"}function nE(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 Sg=nE(function(e){return function(n){e(this),this.message=n?n.length+` errors occurred during unsubscription:
|
|
610
|
+
*/(function(e){const t=wf,n=lp,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=a,e.SlowBuffer=x,e.INSPECT_MAX_BYTES=50;const i=2147483647;e.kMaxLength=i,a.TYPED_ARRAY_SUPPORT=o(),!a.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function o(){try{const v=new Uint8Array(1),g={foo:function(){return 42}};return Object.setPrototypeOf(g,Uint8Array.prototype),Object.setPrototypeOf(v,g),v.foo()===42}catch{return!1}}Object.defineProperty(a.prototype,"parent",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.buffer}}),Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.byteOffset}});function s(v){if(v>i)throw new RangeError('The value "'+v+'" is invalid for option "size"');const g=new Uint8Array(v);return Object.setPrototypeOf(g,a.prototype),g}function a(v,g,b){if(typeof v=="number"){if(typeof g=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return f(v)}return u(v,g,b)}a.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(It(v,ArrayBuffer)||v&&It(v.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(It(v,SharedArrayBuffer)||v&&It(v.buffer,SharedArrayBuffer)))return m(v,g,b);if(typeof v=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const k=v.valueOf&&v.valueOf();if(k!=null&&k!==v)return a.from(k,g,b);const F=y(v);if(F)return F;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof v[Symbol.toPrimitive]=="function")return a.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)}a.from=function(v,g,b){return u(v,g,b)},Object.setPrototypeOf(a.prototype,Uint8Array.prototype),Object.setPrototypeOf(a,Uint8Array);function l(v){if(typeof v!="number")throw new TypeError('"size" argument must be of type number');if(v<0)throw new RangeError('The value "'+v+'" is invalid for option "size"')}function c(v,g,b){return l(v),v<=0?s(v):g!==void 0?typeof b=="string"?s(v).fill(g,b):s(v).fill(g):s(v)}a.alloc=function(v,g,b){return c(v,g,b)};function f(v){return l(v),s(v<0?0:w(v)|0)}a.allocUnsafe=function(v){return f(v)},a.allocUnsafeSlow=function(v){return f(v)};function h(v,g){if((typeof g!="string"||g==="")&&(g="utf8"),!a.isEncoding(g))throw new TypeError("Unknown encoding: "+g);const b=S(v,g)|0;let k=s(b);const F=k.write(v,g);return F!==b&&(k=k.slice(0,F)),k}function d(v){const g=v.length<0?0:w(v.length)|0,b=s(g);for(let k=0;k<g;k+=1)b[k]=v[k]&255;return b}function p(v){if(It(v,Uint8Array)){const g=new Uint8Array(v);return m(g.buffer,g.byteOffset,g.byteLength)}return d(v)}function m(v,g,b){if(g<0||v.byteLength<g)throw new RangeError('"offset" is outside of buffer bounds');if(v.byteLength<g+(b||0))throw new RangeError('"length" is outside of buffer bounds');let k;return g===void 0&&b===void 0?k=new Uint8Array(v):b===void 0?k=new Uint8Array(v,g):k=new Uint8Array(v,g,b),Object.setPrototypeOf(k,a.prototype),k}function y(v){if(a.isBuffer(v)){const g=w(v.length)|0,b=s(g);return b.length===0||v.copy(b,0,0,g),b}if(v.length!==void 0)return typeof v.length!="number"||Br(v.length)?s(0):d(v);if(v.type==="Buffer"&&Array.isArray(v.data))return d(v.data)}function w(v){if(v>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return v|0}function x(v){return+v!=v&&(v=0),a.alloc(+v)}a.isBuffer=function(g){return g!=null&&g._isBuffer===!0&&g!==a.prototype},a.compare=function(g,b){if(It(g,Uint8Array)&&(g=a.from(g,g.offset,g.byteLength)),It(b,Uint8Array)&&(b=a.from(b,b.offset,b.byteLength)),!a.isBuffer(g)||!a.isBuffer(b))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(g===b)return 0;let k=g.length,F=b.length;for(let O=0,$=Math.min(k,F);O<$;++O)if(g[O]!==b[O]){k=g[O],F=b[O];break}return k<F?-1:F<k?1:0},a.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}},a.concat=function(g,b){if(!Array.isArray(g))throw new TypeError('"list" argument must be an Array of Buffers');if(g.length===0)return a.alloc(0);let k;if(b===void 0)for(b=0,k=0;k<g.length;++k)b+=g[k].length;const F=a.allocUnsafe(b);let O=0;for(k=0;k<g.length;++k){let $=g[k];if(It($,Uint8Array))O+$.length>F.length?(a.isBuffer($)||($=a.from($)),$.copy(F,O)):Uint8Array.prototype.set.call(F,$,O);else if(a.isBuffer($))$.copy(F,O);else throw new TypeError('"list" argument must be an Array of Buffers');O+=$.length}return F};function S(v,g){if(a.isBuffer(v))return v.length;if(ArrayBuffer.isView(v)||It(v,ArrayBuffer))return v.byteLength;if(typeof v!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof v);const b=v.length,k=arguments.length>2&&arguments[2]===!0;if(!k&&b===0)return 0;let F=!1;for(;;)switch(g){case"ascii":case"latin1":case"binary":return b;case"utf8":case"utf-8":return fe(v).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return b*2;case"hex":return b>>>1;case"base64":return Si(v).length;default:if(F)return k?-1:fe(v).length;g=(""+g).toLowerCase(),F=!0}}a.byteLength=S;function _(v,g,b){let k=!1;if((g===void 0||g<0)&&(g=0),g>this.length||((b===void 0||b>this.length)&&(b=this.length),b<=0)||(b>>>=0,g>>>=0,b<=g))return"";for(v||(v="utf8");;)switch(v){case"hex":return Ue(this,g,b);case"utf8":case"utf-8":return pe(this,g,b);case"ascii":return _e(this,g,b);case"latin1":case"binary":return Oe(this,g,b);case"base64":return ie(this,g,b);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return tt(this,g,b);default:if(k)throw new TypeError("Unknown encoding: "+v);v=(v+"").toLowerCase(),k=!0}}a.prototype._isBuffer=!0;function T(v,g,b){const k=v[g];v[g]=v[b],v[b]=k}a.prototype.swap16=function(){const g=this.length;if(g%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let b=0;b<g;b+=2)T(this,b,b+1);return this},a.prototype.swap32=function(){const g=this.length;if(g%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let b=0;b<g;b+=4)T(this,b,b+3),T(this,b+1,b+2);return this},a.prototype.swap64=function(){const g=this.length;if(g%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let b=0;b<g;b+=8)T(this,b,b+7),T(this,b+1,b+6),T(this,b+2,b+5),T(this,b+3,b+4);return this},a.prototype.toString=function(){const g=this.length;return g===0?"":arguments.length===0?pe(this,0,g):_.apply(this,arguments)},a.prototype.toLocaleString=a.prototype.toString,a.prototype.equals=function(g){if(!a.isBuffer(g))throw new TypeError("Argument must be a Buffer");return this===g?!0:a.compare(this,g)===0},a.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&&(a.prototype[r]=a.prototype.inspect),a.prototype.compare=function(g,b,k,F,O){if(It(g,Uint8Array)&&(g=a.from(g,g.offset,g.byteLength)),!a.isBuffer(g))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof g);if(b===void 0&&(b=0),k===void 0&&(k=g?g.length:0),F===void 0&&(F=0),O===void 0&&(O=this.length),b<0||k>g.length||F<0||O>this.length)throw new RangeError("out of range index");if(F>=O&&b>=k)return 0;if(F>=O)return-1;if(b>=k)return 1;if(b>>>=0,k>>>=0,F>>>=0,O>>>=0,this===g)return 0;let $=O-F,he=k-b;const Ze=Math.min($,he),Ge=this.slice(F,O),Ke=g.slice(b,k);for(let Be=0;Be<Ze;++Be)if(Ge[Be]!==Ke[Be]){$=Ge[Be],he=Ke[Be];break}return $<he?-1:he<$?1:0};function B(v,g,b,k,F){if(v.length===0)return-1;if(typeof b=="string"?(k=b,b=0):b>2147483647?b=2147483647:b<-2147483648&&(b=-2147483648),b=+b,Br(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=a.from(g,k)),a.isBuffer(g))return g.length===0?-1:I(v,g,b,k,F);if(typeof g=="number")return g=g&255,typeof Uint8Array.prototype.indexOf=="function"?F?Uint8Array.prototype.indexOf.call(v,g,b):Uint8Array.prototype.lastIndexOf.call(v,g,b):I(v,[g],b,k,F);throw new TypeError("val must be string, number or Buffer")}function I(v,g,b,k,F){let O=1,$=v.length,he=g.length;if(k!==void 0&&(k=String(k).toLowerCase(),k==="ucs2"||k==="ucs-2"||k==="utf16le"||k==="utf-16le")){if(v.length<2||g.length<2)return-1;O=2,$/=2,he/=2,b/=2}function Ze(Ke,Be){return O===1?Ke[Be]:Ke.readUInt16BE(Be*O)}let Ge;if(F){let Ke=-1;for(Ge=b;Ge<$;Ge++)if(Ze(v,Ge)===Ze(g,Ke===-1?0:Ge-Ke)){if(Ke===-1&&(Ke=Ge),Ge-Ke+1===he)return Ke*O}else Ke!==-1&&(Ge-=Ge-Ke),Ke=-1}else for(b+he>$&&(b=$-he),Ge=b;Ge>=0;Ge--){let Ke=!0;for(let Be=0;Be<he;Be++)if(Ze(v,Ge+Be)!==Ze(g,Be)){Ke=!1;break}if(Ke)return Ge}return-1}a.prototype.includes=function(g,b,k){return this.indexOf(g,b,k)!==-1},a.prototype.indexOf=function(g,b,k){return B(this,g,b,k,!0)},a.prototype.lastIndexOf=function(g,b,k){return B(this,g,b,k,!1)};function D(v,g,b,k){b=Number(b)||0;const F=v.length-b;k?(k=Number(k),k>F&&(k=F)):k=F;const O=g.length;k>O/2&&(k=O/2);let $;for($=0;$<k;++$){const he=parseInt(g.substr($*2,2),16);if(Br(he))return $;v[b+$]=he}return $}function M(v,g,b,k){return Ci(fe(g,v.length-b),v,b,k)}function G(v,g,b,k){return Ci(Zt(g),v,b,k)}function N(v,g,b,k){return Ci(Si(g),v,b,k)}function ne(v,g,b,k){return Ci(_i(g,v.length-b),v,b,k)}a.prototype.write=function(g,b,k,F){if(b===void 0)F="utf8",k=this.length,b=0;else if(k===void 0&&typeof b=="string")F=b,k=this.length,b=0;else if(isFinite(b))b=b>>>0,isFinite(k)?(k=k>>>0,F===void 0&&(F="utf8")):(F=k,k=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const O=this.length-b;if((k===void 0||k>O)&&(k=O),g.length>0&&(k<0||b<0)||b>this.length)throw new RangeError("Attempt to write outside buffer bounds");F||(F="utf8");let $=!1;for(;;)switch(F){case"hex":return D(this,g,b,k);case"utf8":case"utf-8":return M(this,g,b,k);case"ascii":case"latin1":case"binary":return G(this,g,b,k);case"base64":return N(this,g,b,k);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ne(this,g,b,k);default:if($)throw new TypeError("Unknown encoding: "+F);F=(""+F).toLowerCase(),$=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function ie(v,g,b){return g===0&&b===v.length?t.fromByteArray(v):t.fromByteArray(v.slice(g,b))}function pe(v,g,b){b=Math.min(v.length,b);const k=[];let F=g;for(;F<b;){const O=v[F];let $=null,he=O>239?4:O>223?3:O>191?2:1;if(F+he<=b){let Ze,Ge,Ke,Be;switch(he){case 1:O<128&&($=O);break;case 2:Ze=v[F+1],(Ze&192)===128&&(Be=(O&31)<<6|Ze&63,Be>127&&($=Be));break;case 3:Ze=v[F+1],Ge=v[F+2],(Ze&192)===128&&(Ge&192)===128&&(Be=(O&15)<<12|(Ze&63)<<6|Ge&63,Be>2047&&(Be<55296||Be>57343)&&($=Be));break;case 4:Ze=v[F+1],Ge=v[F+2],Ke=v[F+3],(Ze&192)===128&&(Ge&192)===128&&(Ke&192)===128&&(Be=(O&15)<<18|(Ze&63)<<12|(Ge&63)<<6|Ke&63,Be>65535&&Be<1114112&&($=Be))}}$===null?($=65533,he=1):$>65535&&($-=65536,k.push($>>>10&1023|55296),$=56320|$&1023),k.push($),F+=he}return Pe(k)}const be=4096;function Pe(v){const g=v.length;if(g<=be)return String.fromCharCode.apply(String,v);let b="",k=0;for(;k<g;)b+=String.fromCharCode.apply(String,v.slice(k,k+=be));return b}function _e(v,g,b){let k="";b=Math.min(v.length,b);for(let F=g;F<b;++F)k+=String.fromCharCode(v[F]&127);return k}function Oe(v,g,b){let k="";b=Math.min(v.length,b);for(let F=g;F<b;++F)k+=String.fromCharCode(v[F]);return k}function Ue(v,g,b){const k=v.length;(!g||g<0)&&(g=0),(!b||b<0||b>k)&&(b=k);let F="";for(let O=g;O<b;++O)F+=Ti[v[O]];return F}function tt(v,g,b){const k=v.slice(g,b);let F="";for(let O=0;O<k.length-1;O+=2)F+=String.fromCharCode(k[O]+k[O+1]*256);return F}a.prototype.slice=function(g,b){const k=this.length;g=~~g,b=b===void 0?k:~~b,g<0?(g+=k,g<0&&(g=0)):g>k&&(g=k),b<0?(b+=k,b<0&&(b=0)):b>k&&(b=k),b<g&&(b=g);const F=this.subarray(g,b);return Object.setPrototypeOf(F,a.prototype),F};function ke(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")}a.prototype.readUintLE=a.prototype.readUIntLE=function(g,b,k){g=g>>>0,b=b>>>0,k||ke(g,b,this.length);let F=this[g],O=1,$=0;for(;++$<b&&(O*=256);)F+=this[g+$]*O;return F},a.prototype.readUintBE=a.prototype.readUIntBE=function(g,b,k){g=g>>>0,b=b>>>0,k||ke(g,b,this.length);let F=this[g+--b],O=1;for(;b>0&&(O*=256);)F+=this[g+--b]*O;return F},a.prototype.readUint8=a.prototype.readUInt8=function(g,b){return g=g>>>0,b||ke(g,1,this.length),this[g]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(g,b){return g=g>>>0,b||ke(g,2,this.length),this[g]|this[g+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(g,b){return g=g>>>0,b||ke(g,2,this.length),this[g]<<8|this[g+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(g,b){return g=g>>>0,b||ke(g,4,this.length),(this[g]|this[g+1]<<8|this[g+2]<<16)+this[g+3]*16777216},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(g,b){return g=g>>>0,b||ke(g,4,this.length),this[g]*16777216+(this[g+1]<<16|this[g+2]<<8|this[g+3])},a.prototype.readBigUInt64LE=Yt(function(g){g=g>>>0,V(g,"offset");const b=this[g],k=this[g+7];(b===void 0||k===void 0)&&W(g,this.length-8);const F=b+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24,O=this[++g]+this[++g]*2**8+this[++g]*2**16+k*2**24;return BigInt(F)+(BigInt(O)<<BigInt(32))}),a.prototype.readBigUInt64BE=Yt(function(g){g=g>>>0,V(g,"offset");const b=this[g],k=this[g+7];(b===void 0||k===void 0)&&W(g,this.length-8);const F=b*2**24+this[++g]*2**16+this[++g]*2**8+this[++g],O=this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+k;return(BigInt(F)<<BigInt(32))+BigInt(O)}),a.prototype.readIntLE=function(g,b,k){g=g>>>0,b=b>>>0,k||ke(g,b,this.length);let F=this[g],O=1,$=0;for(;++$<b&&(O*=256);)F+=this[g+$]*O;return O*=128,F>=O&&(F-=Math.pow(2,8*b)),F},a.prototype.readIntBE=function(g,b,k){g=g>>>0,b=b>>>0,k||ke(g,b,this.length);let F=b,O=1,$=this[g+--F];for(;F>0&&(O*=256);)$+=this[g+--F]*O;return O*=128,$>=O&&($-=Math.pow(2,8*b)),$},a.prototype.readInt8=function(g,b){return g=g>>>0,b||ke(g,1,this.length),this[g]&128?(255-this[g]+1)*-1:this[g]},a.prototype.readInt16LE=function(g,b){g=g>>>0,b||ke(g,2,this.length);const k=this[g]|this[g+1]<<8;return k&32768?k|4294901760:k},a.prototype.readInt16BE=function(g,b){g=g>>>0,b||ke(g,2,this.length);const k=this[g+1]|this[g]<<8;return k&32768?k|4294901760:k},a.prototype.readInt32LE=function(g,b){return g=g>>>0,b||ke(g,4,this.length),this[g]|this[g+1]<<8|this[g+2]<<16|this[g+3]<<24},a.prototype.readInt32BE=function(g,b){return g=g>>>0,b||ke(g,4,this.length),this[g]<<24|this[g+1]<<16|this[g+2]<<8|this[g+3]},a.prototype.readBigInt64LE=Yt(function(g){g=g>>>0,V(g,"offset");const b=this[g],k=this[g+7];(b===void 0||k===void 0)&&W(g,this.length-8);const F=this[g+4]+this[g+5]*2**8+this[g+6]*2**16+(k<<24);return(BigInt(F)<<BigInt(32))+BigInt(b+this[++g]*2**8+this[++g]*2**16+this[++g]*2**24)}),a.prototype.readBigInt64BE=Yt(function(g){g=g>>>0,V(g,"offset");const b=this[g],k=this[g+7];(b===void 0||k===void 0)&&W(g,this.length-8);const F=(b<<24)+this[++g]*2**16+this[++g]*2**8+this[++g];return(BigInt(F)<<BigInt(32))+BigInt(this[++g]*2**24+this[++g]*2**16+this[++g]*2**8+k)}),a.prototype.readFloatLE=function(g,b){return g=g>>>0,b||ke(g,4,this.length),n.read(this,g,!0,23,4)},a.prototype.readFloatBE=function(g,b){return g=g>>>0,b||ke(g,4,this.length),n.read(this,g,!1,23,4)},a.prototype.readDoubleLE=function(g,b){return g=g>>>0,b||ke(g,8,this.length),n.read(this,g,!0,52,8)},a.prototype.readDoubleBE=function(g,b){return g=g>>>0,b||ke(g,8,this.length),n.read(this,g,!1,52,8)};function Ie(v,g,b,k,F,O){if(!a.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+k>v.length)throw new RangeError("Index out of range")}a.prototype.writeUintLE=a.prototype.writeUIntLE=function(g,b,k,F){if(g=+g,b=b>>>0,k=k>>>0,!F){const he=Math.pow(2,8*k)-1;Ie(this,g,b,k,he,0)}let O=1,$=0;for(this[b]=g&255;++$<k&&(O*=256);)this[b+$]=g/O&255;return b+k},a.prototype.writeUintBE=a.prototype.writeUIntBE=function(g,b,k,F){if(g=+g,b=b>>>0,k=k>>>0,!F){const he=Math.pow(2,8*k)-1;Ie(this,g,b,k,he,0)}let O=k-1,$=1;for(this[b+O]=g&255;--O>=0&&($*=256);)this[b+O]=g/$&255;return b+k},a.prototype.writeUint8=a.prototype.writeUInt8=function(g,b,k){return g=+g,b=b>>>0,k||Ie(this,g,b,1,255,0),this[b]=g&255,b+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(g,b,k){return g=+g,b=b>>>0,k||Ie(this,g,b,2,65535,0),this[b]=g&255,this[b+1]=g>>>8,b+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(g,b,k){return g=+g,b=b>>>0,k||Ie(this,g,b,2,65535,0),this[b]=g>>>8,this[b+1]=g&255,b+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(g,b,k){return g=+g,b=b>>>0,k||Ie(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},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(g,b,k){return g=+g,b=b>>>0,k||Ie(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 bt(v,g,b,k,F){A(g,k,F,v,b,7);let O=Number(g&BigInt(4294967295));v[b++]=O,O=O>>8,v[b++]=O,O=O>>8,v[b++]=O,O=O>>8,v[b++]=O;let $=Number(g>>BigInt(32)&BigInt(4294967295));return v[b++]=$,$=$>>8,v[b++]=$,$=$>>8,v[b++]=$,$=$>>8,v[b++]=$,b}function Wt(v,g,b,k,F){A(g,k,F,v,b,7);let O=Number(g&BigInt(4294967295));v[b+7]=O,O=O>>8,v[b+6]=O,O=O>>8,v[b+5]=O,O=O>>8,v[b+4]=O;let $=Number(g>>BigInt(32)&BigInt(4294967295));return v[b+3]=$,$=$>>8,v[b+2]=$,$=$>>8,v[b+1]=$,$=$>>8,v[b]=$,b+8}a.prototype.writeBigUInt64LE=Yt(function(g,b=0){return bt(this,g,b,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeBigUInt64BE=Yt(function(g,b=0){return Wt(this,g,b,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeIntLE=function(g,b,k,F){if(g=+g,b=b>>>0,!F){const Ze=Math.pow(2,8*k-1);Ie(this,g,b,k,Ze-1,-Ze)}let O=0,$=1,he=0;for(this[b]=g&255;++O<k&&($*=256);)g<0&&he===0&&this[b+O-1]!==0&&(he=1),this[b+O]=(g/$>>0)-he&255;return b+k},a.prototype.writeIntBE=function(g,b,k,F){if(g=+g,b=b>>>0,!F){const Ze=Math.pow(2,8*k-1);Ie(this,g,b,k,Ze-1,-Ze)}let O=k-1,$=1,he=0;for(this[b+O]=g&255;--O>=0&&($*=256);)g<0&&he===0&&this[b+O+1]!==0&&(he=1),this[b+O]=(g/$>>0)-he&255;return b+k},a.prototype.writeInt8=function(g,b,k){return g=+g,b=b>>>0,k||Ie(this,g,b,1,127,-128),g<0&&(g=255+g+1),this[b]=g&255,b+1},a.prototype.writeInt16LE=function(g,b,k){return g=+g,b=b>>>0,k||Ie(this,g,b,2,32767,-32768),this[b]=g&255,this[b+1]=g>>>8,b+2},a.prototype.writeInt16BE=function(g,b,k){return g=+g,b=b>>>0,k||Ie(this,g,b,2,32767,-32768),this[b]=g>>>8,this[b+1]=g&255,b+2},a.prototype.writeInt32LE=function(g,b,k){return g=+g,b=b>>>0,k||Ie(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},a.prototype.writeInt32BE=function(g,b,k){return g=+g,b=b>>>0,k||Ie(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},a.prototype.writeBigInt64LE=Yt(function(g,b=0){return bt(this,g,b,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),a.prototype.writeBigInt64BE=Yt(function(g,b=0){return Wt(this,g,b,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function $e(v,g,b,k,F,O){if(b+k>v.length)throw new RangeError("Index out of range");if(b<0)throw new RangeError("Index out of range")}function L(v,g,b,k,F){return g=+g,b=b>>>0,F||$e(v,g,b,4),n.write(v,g,b,k,23,4),b+4}a.prototype.writeFloatLE=function(g,b,k){return L(this,g,b,!0,k)},a.prototype.writeFloatBE=function(g,b,k){return L(this,g,b,!1,k)};function P(v,g,b,k,F){return g=+g,b=b>>>0,F||$e(v,g,b,8),n.write(v,g,b,k,52,8),b+8}a.prototype.writeDoubleLE=function(g,b,k){return P(this,g,b,!0,k)},a.prototype.writeDoubleBE=function(g,b,k){return P(this,g,b,!1,k)},a.prototype.copy=function(g,b,k,F){if(!a.isBuffer(g))throw new TypeError("argument should be a Buffer");if(k||(k=0),!F&&F!==0&&(F=this.length),b>=g.length&&(b=g.length),b||(b=0),F>0&&F<k&&(F=k),F===k||g.length===0||this.length===0)return 0;if(b<0)throw new RangeError("targetStart out of bounds");if(k<0||k>=this.length)throw new RangeError("Index out of range");if(F<0)throw new RangeError("sourceEnd out of bounds");F>this.length&&(F=this.length),g.length-b<F-k&&(F=g.length-b+k);const O=F-k;return this===g&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(b,k,F):Uint8Array.prototype.set.call(g,this.subarray(k,F),b),O},a.prototype.fill=function(g,b,k,F){if(typeof g=="string"){if(typeof b=="string"?(F=b,b=0,k=this.length):typeof k=="string"&&(F=k,k=this.length),F!==void 0&&typeof F!="string")throw new TypeError("encoding must be a string");if(typeof F=="string"&&!a.isEncoding(F))throw new TypeError("Unknown encoding: "+F);if(g.length===1){const $=g.charCodeAt(0);(F==="utf8"&&$<128||F==="latin1")&&(g=$)}}else typeof g=="number"?g=g&255:typeof g=="boolean"&&(g=Number(g));if(b<0||this.length<b||this.length<k)throw new RangeError("Out of range index");if(k<=b)return this;b=b>>>0,k=k===void 0?this.length:k>>>0,g||(g=0);let O;if(typeof g=="number")for(O=b;O<k;++O)this[O]=g;else{const $=a.isBuffer(g)?g:a.from(g,F),he=$.length;if(he===0)throw new TypeError('The value "'+g+'" is invalid for argument "value"');for(O=0;O<k-b;++O)this[O+b]=$[O%he]}return this};const q={};function j(v,g,b){q[v]=class extends b{constructor(){super(),Object.defineProperty(this,"message",{value:g.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${v}]`,this.stack,delete this.name}get code(){return v}set code(F){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:F,writable:!0})}toString(){return`${this.name} [${v}]: ${this.message}`}}}j("ERR_BUFFER_OUT_OF_BOUNDS",function(v){return v?`${v} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),j("ERR_INVALID_ARG_TYPE",function(v,g){return`The "${v}" argument must be of type number. Received type ${typeof g}`},TypeError),j("ERR_OUT_OF_RANGE",function(v,g,b){let k=`The value of "${v}" is out of range.`,F=b;return Number.isInteger(b)&&Math.abs(b)>2**32?F=Z(String(b)):typeof b=="bigint"&&(F=String(b),(b>BigInt(2)**BigInt(32)||b<-(BigInt(2)**BigInt(32)))&&(F=Z(F)),F+="n"),k+=` It must be ${g}. Received ${F}`,k},RangeError);function Z(v){let g="",b=v.length;const k=v[0]==="-"?1:0;for(;b>=k+4;b-=3)g=`_${v.slice(b-3,b)}${g}`;return`${v.slice(0,b)}${g}`}function C(v,g,b){V(g,"offset"),(v[g]===void 0||v[g+b]===void 0)&&W(g,v.length-(b+1))}function A(v,g,b,k,F,O){if(v>b||v<g){const $=typeof g=="bigint"?"n":"";let he;throw g===0||g===BigInt(0)?he=`>= 0${$} and < 2${$} ** ${(O+1)*8}${$}`:he=`>= -(2${$} ** ${(O+1)*8-1}${$}) and < 2 ** ${(O+1)*8-1}${$}`,new q.ERR_OUT_OF_RANGE("value",he,v)}C(k,F,O)}function V(v,g){if(typeof v!="number")throw new q.ERR_INVALID_ARG_TYPE(g,"number",v)}function W(v,g,b){throw Math.floor(v)!==v?(V(v,b),new q.ERR_OUT_OF_RANGE("offset","an integer",v)):g<0?new q.ERR_BUFFER_OUT_OF_BOUNDS:new q.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${g}`,v)}const ce=/[^+/0-9A-Za-z-_]/g;function te(v){if(v=v.split("=")[0],v=v.trim().replace(ce,""),v.length<2)return"";for(;v.length%4!==0;)v=v+"=";return v}function fe(v,g){g=g||1/0;let b;const k=v.length;let F=null;const O=[];for(let $=0;$<k;++$){if(b=v.charCodeAt($),b>55295&&b<57344){if(!F){if(b>56319){(g-=3)>-1&&O.push(239,191,189);continue}else if($+1===k){(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 _i(v,g){let b,k,F;const O=[];for(let $=0;$<v.length&&!((g-=2)<0);++$)b=v.charCodeAt($),k=b>>8,F=b%256,O.push(F),O.push(k);return O}function Si(v){return t.toByteArray(te(v))}function Ci(v,g,b,k){let F;for(F=0;F<k&&!(F+b>=g.length||F>=v.length);++F)g[F+b]=v[F];return F}function It(v,g){return v instanceof g||v!=null&&v.constructor!=null&&v.constructor.name!=null&&v.constructor.name===g.name}function Br(v){return v!==v}const Ti=function(){const v="0123456789abcdef",g=new Array(256);for(let b=0;b<16;++b){const k=b*16;for(let F=0;F<16;++F)g[k+F]=v[b]+v[F]}return g}();function Yt(v){return typeof BigInt>"u"?ar:v}function ar(){throw new Error("BigInt not supported")}})(xe);const Ov=Se({__proto__:null,default:yf(xe)},[xe]),gt={},cM=Object.freeze(Object.defineProperty({__proto__:null,default:gt},Symbol.toStringTag,{value:"Module"}));class oo{async getBufferFromResponse(t){const n=await t.arrayBuffer();return xe.Buffer.from(n)}constructor(t,n={}){this.baseOverrides={},this.url=t;const r=n.fetch||globalThis.fetch.bind(globalThis);if(!r)throw new TypeError("no fetch function supplied, and none found in global environment");n.overrides&&(this.baseOverrides=n.overrides),this.fetchImplementation=r}async fetch(t,n){let r;try{r=await this.fetchImplementation(t,n)}catch(i){if(`${i}`.includes("Failed to fetch"))console.warn(`generic-filehandle: refetching ${t} to attempt to work around chrome CORS header caching bug`),r=await this.fetchImplementation(t,{...n,cache:"reload"});else throw i}return r}async read(t,n=0,r,i=0,o={}){const{headers:s={},signal:a,overrides:u={}}=o;r<1/0?s.range=`bytes=${i}-${i+r}`:r===1/0&&i!==0&&(s.range=`bytes=${i}-`);const l={...this.baseOverrides,...u,headers:{...s,...u.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:a},c=await this.fetch(this.url,l);if(!c.ok)throw new Error(`HTTP ${c.status} ${c.statusText} ${this.url}`);if(c.status===200&&i===0||c.status===206){const f=await this.getBufferFromResponse(c),h=f.copy(t,n,0,Math.min(r,f.length)),d=c.headers.get("content-range"),p=/\/(\d+)$/.exec(d||"");return p!=null&&p[1]&&(this._stat={size:parseInt(p[1],10)}),{bytesRead:h,buffer:t}}throw c.status===200?new Error("${this.url} fetch returned status 200, expected 206"):new Error(`HTTP ${c.status} fetching ${this.url}`)}async readFile(t={}){let n,r;typeof t=="string"?(n=t,r={}):(n=t.encoding,r=t,delete r.encoding);const{headers:i={},signal:o,overrides:s={}}=r,a={headers:i,method:"GET",redirect:"follow",mode:"cors",signal:o,...this.baseOverrides,...s},u=await this.fetch(this.url,a);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=xe.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 zv(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 fM(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 hM{constructor(t){this.blob=t,this.size=t.size}async read(t,n=0,r,i=0){if(!r)return{bytesRead:0,buffer:t};const o=i,s=o+r,a=await zv(this.blob.slice(o,s)),u=xe.Buffer.from(a);return{bytesRead:u.copy(t,n),buffer:u}}async readFile(t){const n=typeof t=="string"?t:t==null?void 0:t.encoding;if(n==="utf8")return fM(this.blob);if(n)throw new Error(`unsupported encoding: ${n}`);const r=await zv(this.blob);return xe.Buffer.from(r)}async stat(){return{size:this.size}}async close(){}}function Uv(e,t={}){return new oo(e,t)}function dM(e,t,n,r={}){if(n!==void 0)return n;if(e!==void 0)return Uv(e,r);if(t!==void 0)return new gt(t,r);throw new Error("no url, path, or filehandle provided, cannot open")}const Il=Object.freeze(Object.defineProperty({__proto__:null,BlobFile:hM,LocalFile:gt,RemoteFile:oo,fromUrl:Uv,open:dM},Symbol.toStringTag,{value:"Module"}));var vr={};(function(e){var t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function n(o,s){return Object.prototype.hasOwnProperty.call(o,s)}e.assign=function(o){for(var s=Array.prototype.slice.call(arguments,1);s.length;){var a=s.shift();if(a){if(typeof a!="object")throw new TypeError(a+"must be non-object");for(var u in a)n(a,u)&&(o[u]=a[u])}}return o},e.shrinkBuf=function(o,s){return o.length===s?o:o.subarray?o.subarray(0,s):(o.length=s,o)};var r={arraySet:function(o,s,a,u,l){if(s.subarray&&o.subarray){o.set(s.subarray(a,a+u),l);return}for(var c=0;c<u;c++)o[l+c]=s[a+c]},flattenChunks:function(o){var s,a,u,l,c,f;for(u=0,s=0,a=o.length;s<a;s++)u+=o[s].length;for(f=new Uint8Array(u),l=0,s=0,a=o.length;s<a;s++)c=o[s],f.set(c,l),l+=c.length;return f}},i={arraySet:function(o,s,a,u,l){for(var c=0;c<u;c++)o[l+c]=s[a+c]},flattenChunks:function(o){return[].concat.apply([],o)}};e.setTyped=function(o){o?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,r)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,i))},e.setTyped(t)})(vr);var Bl={},Qn={},ds={},pM=vr,gM=4,Gv=0,Hv=1,mM=2;function ps(e){for(var t=e.length;--t>=0;)e[t]=0}var bM=0,Vv=1,yM=2,wM=3,vM=258,up=29,Dl=256,Rl=Dl+1+up,gs=30,cp=19,jv=2*Rl+1,so=15,fp=16,AM=7,hp=256,$v=16,qv=17,Wv=18,dp=[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],vf=[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],xM=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Zv=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],EM=512,Ar=new Array((Rl+2)*2);ps(Ar);var Fl=new Array(gs*2);ps(Fl);var Ml=new Array(EM);ps(Ml);var Pl=new Array(vM-wM+1);ps(Pl);var pp=new Array(up);ps(pp);var Af=new Array(gs);ps(Af);function gp(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 Yv,Qv,Xv;function mp(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function Kv(e){return e<256?Ml[e]:Ml[256+(e>>>7)]}function Ll(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function Vt(e,t,n){e.bi_valid>fp-n?(e.bi_buf|=t<<e.bi_valid&65535,Ll(e,e.bi_buf),e.bi_buf=t>>fp-e.bi_valid,e.bi_valid+=n-fp):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function Xn(e,t,n){Vt(e,n[t*2],n[t*2+1])}function Jv(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function _M(e){e.bi_valid===16?(Ll(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 SM(e,t){var n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,o=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,u=t.stat_desc.max_length,l,c,f,h,d,p,m=0;for(h=0;h<=so;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<jv;l++)c=e.heap[l],h=n[n[c*2+1]*2+1]+1,h>u&&(h=u,m++),n[c*2+1]=h,!(c>r)&&(e.bl_count[h]++,d=0,c>=a&&(d=s[c-a]),p=n[c*2],e.opt_len+=p*(h+d),o&&(e.static_len+=p*(i[c*2+1]+d)));if(m!==0){do{for(h=u-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[u]--,m-=2}while(m>0);for(h=u;h!==0;h--)for(c=e.bl_count[h];c!==0;)f=e.heap[--l],!(f>r)&&(n[f*2+1]!==h&&(e.opt_len+=(h-n[f*2+1])*n[f*2],n[f*2+1]=h),c--)}}function eA(e,t,n){var r=new Array(so+1),i=0,o,s;for(o=1;o<=so;o++)r[o]=i=i+n[o-1]<<1;for(s=0;s<=t;s++){var a=e[s*2+1];a!==0&&(e[s*2]=Jv(r[a]++,a))}}function CM(){var e,t,n,r,i,o=new Array(so+1);for(n=0,r=0;r<up-1;r++)for(pp[r]=n,e=0;e<1<<dp[r];e++)Pl[n++]=r;for(Pl[n-1]=r,i=0,r=0;r<16;r++)for(Af[r]=i,e=0;e<1<<vf[r];e++)Ml[i++]=r;for(i>>=7;r<gs;r++)for(Af[r]=i<<7,e=0;e<1<<vf[r]-7;e++)Ml[256+i++]=r;for(t=0;t<=so;t++)o[t]=0;for(e=0;e<=143;)Ar[e*2+1]=8,e++,o[8]++;for(;e<=255;)Ar[e*2+1]=9,e++,o[9]++;for(;e<=279;)Ar[e*2+1]=7,e++,o[7]++;for(;e<=287;)Ar[e*2+1]=8,e++,o[8]++;for(eA(Ar,Rl+1,o),e=0;e<gs;e++)Fl[e*2+1]=5,Fl[e*2]=Jv(e,5);Yv=new gp(Ar,dp,Dl+1,Rl,so),Qv=new gp(Fl,vf,0,gs,so),Xv=new gp(new Array(0),xM,0,cp,AM)}function tA(e){var t;for(t=0;t<Rl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<gs;t++)e.dyn_dtree[t*2]=0;for(t=0;t<cp;t++)e.bl_tree[t*2]=0;e.dyn_ltree[hp*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function nA(e){e.bi_valid>8?Ll(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 TM(e,t,n,r){nA(e),Ll(e,n),Ll(e,~n),pM.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function rA(e,t,n,r){var i=t*2,o=n*2;return e[i]<e[o]||e[i]===e[o]&&r[t]<=r[n]}function bp(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&rA(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!rA(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function iA(e,t,n){var r,i,o=0,s,a;if(e.last_lit!==0)do r=e.pending_buf[e.d_buf+o*2]<<8|e.pending_buf[e.d_buf+o*2+1],i=e.pending_buf[e.l_buf+o],o++,r===0?Xn(e,i,t):(s=Pl[i],Xn(e,s+Dl+1,t),a=dp[s],a!==0&&(i-=pp[s],Vt(e,i,a)),r--,s=Kv(r),Xn(e,s,n),a=vf[s],a!==0&&(r-=Af[s],Vt(e,r,a)));while(o<e.last_lit);Xn(e,hp,t)}function yp(e,t){var n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,o=t.stat_desc.elems,s,a,u=-1,l;for(e.heap_len=0,e.heap_max=jv,s=0;s<o;s++)n[s*2]!==0?(e.heap[++e.heap_len]=u=s,e.depth[s]=0):n[s*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,s=e.heap_len>>1;s>=1;s--)bp(e,n,s);l=o;do s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],bp(e,n,1),a=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=a,n[l*2]=n[s*2]+n[a*2],e.depth[l]=(e.depth[s]>=e.depth[a]?e.depth[s]:e.depth[a])+1,n[s*2+1]=n[a*2+1]=l,e.heap[1]=l++,bp(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],SM(e,t),eA(n,u,e.bl_count)}function oA(e,t,n){var r,i=-1,o,s=t[0*2+1],a=0,u=7,l=4;for(s===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)o=s,s=t[(r+1)*2+1],!(++a<u&&o===s)&&(a<l?e.bl_tree[o*2]+=a:o!==0?(o!==i&&e.bl_tree[o*2]++,e.bl_tree[$v*2]++):a<=10?e.bl_tree[qv*2]++:e.bl_tree[Wv*2]++,a=0,i=o,s===0?(u=138,l=3):o===s?(u=6,l=3):(u=7,l=4))}function sA(e,t,n){var r,i=-1,o,s=t[0*2+1],a=0,u=7,l=4;for(s===0&&(u=138,l=3),r=0;r<=n;r++)if(o=s,s=t[(r+1)*2+1],!(++a<u&&o===s)){if(a<l)do Xn(e,o,e.bl_tree);while(--a!==0);else o!==0?(o!==i&&(Xn(e,o,e.bl_tree),a--),Xn(e,$v,e.bl_tree),Vt(e,a-3,2)):a<=10?(Xn(e,qv,e.bl_tree),Vt(e,a-3,3)):(Xn(e,Wv,e.bl_tree),Vt(e,a-11,7));a=0,i=o,s===0?(u=138,l=3):o===s?(u=6,l=3):(u=7,l=4)}}function kM(e){var t;for(oA(e,e.dyn_ltree,e.l_desc.max_code),oA(e,e.dyn_dtree,e.d_desc.max_code),yp(e,e.bl_desc),t=cp-1;t>=3&&e.bl_tree[Zv[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function IM(e,t,n,r){var i;for(Vt(e,t-257,5),Vt(e,n-1,5),Vt(e,r-4,4),i=0;i<r;i++)Vt(e,e.bl_tree[Zv[i]*2+1],3);sA(e,e.dyn_ltree,t-1),sA(e,e.dyn_dtree,n-1)}function BM(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Gv;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Hv;for(n=32;n<Dl;n++)if(e.dyn_ltree[n*2]!==0)return Hv;return Gv}var aA=!1;function DM(e){aA||(CM(),aA=!0),e.l_desc=new mp(e.dyn_ltree,Yv),e.d_desc=new mp(e.dyn_dtree,Qv),e.bl_desc=new mp(e.bl_tree,Xv),e.bi_buf=0,e.bi_valid=0,tA(e)}function lA(e,t,n,r){Vt(e,(bM<<1)+(r?1:0),3),TM(e,t,n)}function RM(e){Vt(e,Vv<<1,3),Xn(e,hp,Ar),_M(e)}function FM(e,t,n,r){var i,o,s=0;e.level>0?(e.strm.data_type===mM&&(e.strm.data_type=BM(e)),yp(e,e.l_desc),yp(e,e.d_desc),s=kM(e),i=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=i&&(i=o)):i=o=n+5,n+4<=i&&t!==-1?lA(e,t,n,r):e.strategy===gM||o===i?(Vt(e,(Vv<<1)+(r?1:0),3),iA(e,Ar,Fl)):(Vt(e,(yM<<1)+(r?1:0),3),IM(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),iA(e,e.dyn_ltree,e.dyn_dtree)),tA(e),r&&nA(e)}function MM(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[(Pl[n]+Dl+1)*2]++,e.dyn_dtree[Kv(t)*2]++),e.last_lit===e.lit_bufsize-1}ds._tr_init=DM,ds._tr_stored_block=lA,ds._tr_flush_block=FM,ds._tr_tally=MM,ds._tr_align=RM;function PM(e,t,n,r){for(var i=e&65535|0,o=e>>>16&65535|0,s=0;n!==0;){s=n>2e3?2e3:n,n-=s;do i=i+t[r++]|0,o=o+i|0;while(--s);i%=65521,o%=65521}return i|o<<16|0}var uA=PM;function LM(){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 NM=LM();function OM(e,t,n,r){var i=NM,o=r+n;e^=-1;for(var s=r;s<o;s++)e=e>>>8^i[(e^t[s])&255];return e^-1}var cA=OM,wp={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"},Pt=vr,hn=ds,fA=uA,si=cA,zM=wp,ao=0,UM=1,GM=3,ai=4,hA=5,Kn=0,dA=1,dn=-2,HM=-3,vp=-5,VM=-1,jM=1,xf=2,$M=3,qM=4,WM=0,ZM=2,Ef=8,YM=9,QM=15,XM=8,KM=29,JM=256,Ap=JM+1+KM,eP=30,tP=19,nP=2*Ap+1,rP=15,ge=3,li=258,Dn=li+ge+1,iP=32,_f=42,xp=69,Sf=73,Cf=91,Tf=103,lo=113,Nl=666,ut=1,Ol=2,uo=3,ms=4,oP=3;function ui(e,t){return e.msg=zM[t],t}function pA(e){return(e<<1)-(e>4?9:0)}function ci(e){for(var t=e.length;--t>=0;)e[t]=0}function fi(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(Pt.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 vt(e,t){hn._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,fi(e.strm)}function Ee(e,t){e.pending_buf[e.pending++]=t}function zl(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function sP(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,Pt.arraySet(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=fA(e.adler,t,i,n):e.state.wrap===2&&(e.adler=si(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function gA(e,t){var n=e.max_chain_length,r=e.strstart,i,o,s=e.prev_length,a=e.nice_match,u=e.strstart>e.w_size-Dn?e.strstart-(e.w_size-Dn):0,l=e.window,c=e.w_mask,f=e.prev,h=e.strstart+li,d=l[r+s-1],p=l[r+s];e.prev_length>=e.good_match&&(n>>=2),a>e.lookahead&&(a=e.lookahead);do if(i=t,!(l[i+s]!==p||l[i+s-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(o=li-(h-r),r=h-li,o>s){if(e.match_start=t,s=o,o>=a)break;d=l[r+s-1],p=l[r+s]}}while((t=f[t&c])>u&&--n!==0);return s<=e.lookahead?s:e.lookahead}function co(e){var t=e.w_size,n,r,i,o,s;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Dn)){Pt.arraySet(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,r=e.hash_size,n=r;do i=e.head[--n],e.head[n]=i>=t?i-t:0;while(--r);r=t,n=r;do i=e.prev[--n],e.prev[n]=i>=t?i-t:0;while(--r);o+=t}if(e.strm.avail_in===0)break;if(r=sP(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=r,e.lookahead+e.insert>=ge)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+ge-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<ge)););}while(e.lookahead<Dn&&e.strm.avail_in!==0)}function aP(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(co(e),e.lookahead===0&&t===ao)return ut;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,vt(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-Dn&&(vt(e,!1),e.strm.avail_out===0))return ut}return e.insert=0,t===ai?(vt(e,!0),e.strm.avail_out===0?uo:ms):(e.strstart>e.block_start&&(vt(e,!1),e.strm.avail_out===0),ut)}function Ep(e,t){for(var n,r;;){if(e.lookahead<Dn){if(co(e),e.lookahead<Dn&&t===ao)return ut;if(e.lookahead===0)break}if(n=0,e.lookahead>=ge&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ge-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-Dn&&(e.match_length=gA(e,n)),e.match_length>=ge)if(r=hn._tr_tally(e,e.strstart-e.match_start,e.match_length-ge),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=ge){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ge-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=hn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(vt(e,!1),e.strm.avail_out===0))return ut}return e.insert=e.strstart<ge-1?e.strstart:ge-1,t===ai?(vt(e,!0),e.strm.avail_out===0?uo:ms):e.last_lit&&(vt(e,!1),e.strm.avail_out===0)?ut:Ol}function bs(e,t){for(var n,r,i;;){if(e.lookahead<Dn){if(co(e),e.lookahead<Dn&&t===ao)return ut;if(e.lookahead===0)break}if(n=0,e.lookahead>=ge&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ge-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=ge-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Dn&&(e.match_length=gA(e,n),e.match_length<=5&&(e.strategy===jM||e.match_length===ge&&e.strstart-e.match_start>4096)&&(e.match_length=ge-1)),e.prev_length>=ge&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-ge,r=hn._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-ge),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ge-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=ge-1,e.strstart++,r&&(vt(e,!1),e.strm.avail_out===0))return ut}else if(e.match_available){if(r=hn._tr_tally(e,0,e.window[e.strstart-1]),r&&vt(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return ut}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=hn._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<ge-1?e.strstart:ge-1,t===ai?(vt(e,!0),e.strm.avail_out===0?uo:ms):e.last_lit&&(vt(e,!1),e.strm.avail_out===0)?ut:Ol}function lP(e,t){for(var n,r,i,o,s=e.window;;){if(e.lookahead<=li){if(co(e),e.lookahead<=li&&t===ao)return ut;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=ge&&e.strstart>0&&(i=e.strstart-1,r=s[i],r===s[++i]&&r===s[++i]&&r===s[++i])){o=e.strstart+li;do;while(r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&i<o);e.match_length=li-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=ge?(n=hn._tr_tally(e,1,e.match_length-ge),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=hn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(vt(e,!1),e.strm.avail_out===0))return ut}return e.insert=0,t===ai?(vt(e,!0),e.strm.avail_out===0?uo:ms):e.last_lit&&(vt(e,!1),e.strm.avail_out===0)?ut:Ol}function uP(e,t){for(var n;;){if(e.lookahead===0&&(co(e),e.lookahead===0)){if(t===ao)return ut;break}if(e.match_length=0,n=hn._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(vt(e,!1),e.strm.avail_out===0))return ut}return e.insert=0,t===ai?(vt(e,!0),e.strm.avail_out===0?uo:ms):e.last_lit&&(vt(e,!1),e.strm.avail_out===0)?ut:Ol}function Jn(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}var ys;ys=[new Jn(0,0,0,0,aP),new Jn(4,4,8,4,Ep),new Jn(4,5,16,8,Ep),new Jn(4,6,32,32,Ep),new Jn(4,4,16,16,bs),new Jn(8,16,32,32,bs),new Jn(8,16,128,128,bs),new Jn(8,32,128,256,bs),new Jn(32,128,258,1024,bs),new Jn(32,258,258,4096,bs)];function cP(e){e.window_size=2*e.w_size,ci(e.head),e.max_lazy_match=ys[e.level].max_lazy,e.good_match=ys[e.level].good_length,e.nice_match=ys[e.level].nice_length,e.max_chain_length=ys[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=ge-1,e.match_available=0,e.ins_h=0}function fP(){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=Ef,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 Pt.Buf16(nP*2),this.dyn_dtree=new Pt.Buf16((2*eP+1)*2),this.bl_tree=new Pt.Buf16((2*tP+1)*2),ci(this.dyn_ltree),ci(this.dyn_dtree),ci(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Pt.Buf16(rP+1),this.heap=new Pt.Buf16(2*Ap+1),ci(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Pt.Buf16(2*Ap+1),ci(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function mA(e){var t;return!e||!e.state?ui(e,dn):(e.total_in=e.total_out=0,e.data_type=ZM,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?_f:lo,e.adler=t.wrap===2?0:1,t.last_flush=ao,hn._tr_init(t),Kn)}function bA(e){var t=mA(e);return t===Kn&&cP(e.state),t}function hP(e,t){return!e||!e.state||e.state.wrap!==2?dn:(e.state.gzhead=t,Kn)}function yA(e,t,n,r,i,o){if(!e)return dn;var s=1;if(t===VM&&(t=6),r<0?(s=0,r=-r):r>15&&(s=2,r-=16),i<1||i>YM||n!==Ef||r<8||r>15||t<0||t>9||o<0||o>qM)return ui(e,dn);r===8&&(r=9);var a=new fP;return e.state=a,a.strm=e,a.wrap=s,a.gzhead=null,a.w_bits=r,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=i+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+ge-1)/ge),a.window=new Pt.Buf8(a.w_size*2),a.head=new Pt.Buf16(a.hash_size),a.prev=new Pt.Buf16(a.w_size),a.lit_bufsize=1<<i+6,a.pending_buf_size=a.lit_bufsize*4,a.pending_buf=new Pt.Buf8(a.pending_buf_size),a.d_buf=1*a.lit_bufsize,a.l_buf=3*a.lit_bufsize,a.level=t,a.strategy=o,a.method=n,bA(e)}function dP(e,t){return yA(e,t,Ef,QM,XM,WM)}function pP(e,t){var n,r,i,o;if(!e||!e.state||t>hA||t<0)return e?ui(e,dn):dn;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===Nl&&t!==ai)return ui(e,e.avail_out===0?vp:dn);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===_f)if(r.wrap===2)e.adler=0,Ee(r,31),Ee(r,139),Ee(r,8),r.gzhead?(Ee(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)),Ee(r,r.gzhead.time&255),Ee(r,r.gzhead.time>>8&255),Ee(r,r.gzhead.time>>16&255),Ee(r,r.gzhead.time>>24&255),Ee(r,r.level===9?2:r.strategy>=xf||r.level<2?4:0),Ee(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(Ee(r,r.gzhead.extra.length&255),Ee(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=si(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=xp):(Ee(r,0),Ee(r,0),Ee(r,0),Ee(r,0),Ee(r,0),Ee(r,r.level===9?2:r.strategy>=xf||r.level<2?4:0),Ee(r,oP),r.status=lo);else{var s=Ef+(r.w_bits-8<<4)<<8,a=-1;r.strategy>=xf||r.level<2?a=0:r.level<6?a=1:r.level===6?a=2:a=3,s|=a<<6,r.strstart!==0&&(s|=iP),s+=31-s%31,r.status=lo,zl(r,s),r.strstart!==0&&(zl(r,e.adler>>>16),zl(r,e.adler&65535)),e.adler=1}if(r.status===xp)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=si(e.adler,r.pending_buf,r.pending-i,i)),fi(e),i=r.pending,r.pending===r.pending_buf_size));)Ee(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=si(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=Sf)}else r.status=Sf;if(r.status===Sf)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=si(e.adler,r.pending_buf,r.pending-i,i)),fi(e),i=r.pending,r.pending===r.pending_buf_size)){o=1;break}r.gzindex<r.gzhead.name.length?o=r.gzhead.name.charCodeAt(r.gzindex++)&255:o=0,Ee(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=si(e.adler,r.pending_buf,r.pending-i,i)),o===0&&(r.gzindex=0,r.status=Cf)}else r.status=Cf;if(r.status===Cf)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=si(e.adler,r.pending_buf,r.pending-i,i)),fi(e),i=r.pending,r.pending===r.pending_buf_size)){o=1;break}r.gzindex<r.gzhead.comment.length?o=r.gzhead.comment.charCodeAt(r.gzindex++)&255:o=0,Ee(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=si(e.adler,r.pending_buf,r.pending-i,i)),o===0&&(r.status=Tf)}else r.status=Tf;if(r.status===Tf&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&fi(e),r.pending+2<=r.pending_buf_size&&(Ee(r,e.adler&255),Ee(r,e.adler>>8&255),e.adler=0,r.status=lo)):r.status=lo),r.pending!==0){if(fi(e),e.avail_out===0)return r.last_flush=-1,Kn}else if(e.avail_in===0&&pA(t)<=pA(n)&&t!==ai)return ui(e,vp);if(r.status===Nl&&e.avail_in!==0)return ui(e,vp);if(e.avail_in!==0||r.lookahead!==0||t!==ao&&r.status!==Nl){var u=r.strategy===xf?uP(r,t):r.strategy===$M?lP(r,t):ys[r.level].func(r,t);if((u===uo||u===ms)&&(r.status=Nl),u===ut||u===uo)return e.avail_out===0&&(r.last_flush=-1),Kn;if(u===Ol&&(t===UM?hn._tr_align(r):t!==hA&&(hn._tr_stored_block(r,0,0,!1),t===GM&&(ci(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),fi(e),e.avail_out===0))return r.last_flush=-1,Kn}return t!==ai?Kn:r.wrap<=0?dA:(r.wrap===2?(Ee(r,e.adler&255),Ee(r,e.adler>>8&255),Ee(r,e.adler>>16&255),Ee(r,e.adler>>24&255),Ee(r,e.total_in&255),Ee(r,e.total_in>>8&255),Ee(r,e.total_in>>16&255),Ee(r,e.total_in>>24&255)):(zl(r,e.adler>>>16),zl(r,e.adler&65535)),fi(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?Kn:dA)}function gP(e){var t;return!e||!e.state?dn:(t=e.state.status,t!==_f&&t!==xp&&t!==Sf&&t!==Cf&&t!==Tf&&t!==lo&&t!==Nl?ui(e,dn):(e.state=null,t===lo?ui(e,HM):Kn))}function mP(e,t){var n=t.length,r,i,o,s,a,u,l,c;if(!e||!e.state||(r=e.state,s=r.wrap,s===2||s===1&&r.status!==_f||r.lookahead))return dn;for(s===1&&(e.adler=fA(e.adler,t,n,0)),r.wrap=0,n>=r.w_size&&(s===0&&(ci(r.head),r.strstart=0,r.block_start=0,r.insert=0),c=new Pt.Buf8(r.w_size),Pt.arraySet(c,t,n-r.w_size,r.w_size,0),t=c,n=r.w_size),a=e.avail_in,u=e.next_in,l=e.input,e.avail_in=n,e.next_in=0,e.input=t,co(r);r.lookahead>=ge;){i=r.strstart,o=r.lookahead-(ge-1);do r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+ge-1])&r.hash_mask,r.prev[i&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=i,i++;while(--o);r.strstart=i,r.lookahead=ge-1,co(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=ge-1,r.match_available=0,e.next_in=u,e.input=l,e.avail_in=a,r.wrap=s,Kn}Qn.deflateInit=dP,Qn.deflateInit2=yA,Qn.deflateReset=bA,Qn.deflateResetKeep=mA,Qn.deflateSetHeader=hP,Qn.deflate=pP,Qn.deflateEnd=gP,Qn.deflateSetDictionary=mP,Qn.deflateInfo="pako deflate (from Nodeca project)";var fo={},kf=vr,wA=!0,vA=!0;try{String.fromCharCode.apply(null,[0])}catch{wA=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{vA=!1}for(var Ul=new kf.Buf8(256),hi=0;hi<256;hi++)Ul[hi]=hi>=252?6:hi>=248?5:hi>=240?4:hi>=224?3:hi>=192?2:1;Ul[254]=Ul[254]=1,fo.string2buf=function(e){var t,n,r,i,o,s=e.length,a=0;for(i=0;i<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<s&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),a+=n<128?1:n<2048?2:n<65536?3:4;for(t=new kf.Buf8(a),o=0,i=0;o<a;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<s&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[o++]=n:n<2048?(t[o++]=192|n>>>6,t[o++]=128|n&63):n<65536?(t[o++]=224|n>>>12,t[o++]=128|n>>>6&63,t[o++]=128|n&63):(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63,t[o++]=128|n>>>6&63,t[o++]=128|n&63);return t};function AA(e,t){if(t<65534&&(e.subarray&&vA||!e.subarray&&wA))return String.fromCharCode.apply(null,kf.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}fo.buf2binstring=function(e){return AA(e,e.length)},fo.binstring2buf=function(e){for(var t=new kf.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},fo.buf2string=function(e,t){var n,r,i,o,s=t||e.length,a=new Array(s*2);for(r=0,n=0;n<s;){if(i=e[n++],i<128){a[r++]=i;continue}if(o=Ul[i],o>4){a[r++]=65533,n+=o-1;continue}for(i&=o===2?31:o===3?15:7;o>1&&n<s;)i=i<<6|e[n++]&63,o--;if(o>1){a[r++]=65533;continue}i<65536?a[r++]=i:(i-=65536,a[r++]=55296|i>>10&1023,a[r++]=56320|i&1023)}return AA(a,r)},fo.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 bP(){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 xA=bP,Gl=Qn,Hl=vr,_p=fo,Sp=wp,yP=xA,EA=Object.prototype.toString,wP=0,Cp=4,ws=0,_A=1,SA=2,vP=-1,AP=0,xP=8;function ho(e){if(!(this instanceof ho))return new ho(e);this.options=Hl.assign({level:vP,method:xP,chunkSize:16384,windowBits:15,memLevel:8,strategy:AP,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 yP,this.strm.avail_out=0;var n=Gl.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==ws)throw new Error(Sp[n]);if(t.header&&Gl.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(typeof t.dictionary=="string"?r=_p.string2buf(t.dictionary):EA.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=Gl.deflateSetDictionary(this.strm,r),n!==ws)throw new Error(Sp[n]);this._dict_set=!0}}ho.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i,o;if(this.ended)return!1;o=t===~~t?t:t===!0?Cp:wP,typeof e=="string"?n.input=_p.string2buf(e):EA.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;do{if(n.avail_out===0&&(n.output=new Hl.Buf8(r),n.next_out=0,n.avail_out=r),i=Gl.deflate(n,o),i!==_A&&i!==ws)return this.onEnd(i),this.ended=!0,!1;(n.avail_out===0||n.avail_in===0&&(o===Cp||o===SA))&&(this.options.to==="string"?this.onData(_p.buf2binstring(Hl.shrinkBuf(n.output,n.next_out))):this.onData(Hl.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||n.avail_out===0)&&i!==_A);return o===Cp?(i=Gl.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===ws):(o===SA&&(this.onEnd(ws),n.avail_out=0),!0)},ho.prototype.onData=function(e){this.chunks.push(e)},ho.prototype.onEnd=function(e){e===ws&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Hl.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Tp(e,t){var n=new ho(t);if(n.push(e,!0),n.err)throw n.msg||Sp[n.err];return n.result}function EP(e,t){return t=t||{},t.raw=!0,Tp(e,t)}function _P(e,t){return t=t||{},t.gzip=!0,Tp(e,t)}Bl.Deflate=ho,Bl.deflate=Tp,Bl.deflateRaw=EP,Bl.gzip=_P;var Vl={},Rn={},If=30,SP=12,CP=function(t,n){var r,i,o,s,a,u,l,c,f,h,d,p,m,y,w,x,S,_,T,B,I,D,M,G,N;r=t.state,i=t.next_in,G=t.input,o=i+(t.avail_in-5),s=t.next_out,N=t.output,a=s-(n-t.avail_out),u=s+(t.avail_out-257),l=r.dmax,c=r.wsize,f=r.whave,h=r.wnext,d=r.window,p=r.hold,m=r.bits,y=r.lencode,w=r.distcode,x=(1<<r.lenbits)-1,S=(1<<r.distbits)-1;e:do{m<15&&(p+=G[i++]<<m,m+=8,p+=G[i++]<<m,m+=8),_=y[p&x];t:for(;;){if(T=_>>>24,p>>>=T,m-=T,T=_>>>16&255,T===0)N[s++]=_&65535;else if(T&16){B=_&65535,T&=15,T&&(m<T&&(p+=G[i++]<<m,m+=8),B+=p&(1<<T)-1,p>>>=T,m-=T),m<15&&(p+=G[i++]<<m,m+=8,p+=G[i++]<<m,m+=8),_=w[p&S];n:for(;;){if(T=_>>>24,p>>>=T,m-=T,T=_>>>16&255,T&16){if(I=_&65535,T&=15,m<T&&(p+=G[i++]<<m,m+=8,m<T&&(p+=G[i++]<<m,m+=8)),I+=p&(1<<T)-1,I>l){t.msg="invalid distance too far back",r.mode=If;break e}if(p>>>=T,m-=T,T=s-a,I>T){if(T=I-T,T>f&&r.sane){t.msg="invalid distance too far back",r.mode=If;break e}if(D=0,M=d,h===0){if(D+=c-T,T<B){B-=T;do N[s++]=d[D++];while(--T);D=s-I,M=N}}else if(h<T){if(D+=c+h-T,T-=h,T<B){B-=T;do N[s++]=d[D++];while(--T);if(D=0,h<B){T=h,B-=T;do N[s++]=d[D++];while(--T);D=s-I,M=N}}}else if(D+=h-T,T<B){B-=T;do N[s++]=d[D++];while(--T);D=s-I,M=N}for(;B>2;)N[s++]=M[D++],N[s++]=M[D++],N[s++]=M[D++],B-=3;B&&(N[s++]=M[D++],B>1&&(N[s++]=M[D++]))}else{D=s-I;do N[s++]=N[D++],N[s++]=N[D++],N[s++]=N[D++],B-=3;while(B>2);B&&(N[s++]=N[D++],B>1&&(N[s++]=N[D++]))}}else if(T&64){t.msg="invalid distance code",r.mode=If;break e}else{_=w[(_&65535)+(p&(1<<T)-1)];continue n}break}}else if(T&64)if(T&32){r.mode=SP;break e}else{t.msg="invalid literal/length code",r.mode=If;break e}else{_=y[(_&65535)+(p&(1<<T)-1)];continue t}break}}while(i<o&&s<u);B=m>>3,i-=B,m-=B<<3,p&=(1<<m)-1,t.next_in=i,t.next_out=s,t.avail_in=i<o?5+(o-i):5-(i-o),t.avail_out=s<u?257+(u-s):257-(s-u),r.hold=p,r.bits=m},CA=vr,vs=15,TA=852,kA=592,IA=0,kp=1,BA=2,TP=[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],kP=[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],IP=[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],BP=[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],DP=function(t,n,r,i,o,s,a,u){var l=u.bits,c=0,f=0,h=0,d=0,p=0,m=0,y=0,w=0,x=0,S=0,_,T,B,I,D,M=null,G=0,N,ne=new CA.Buf16(vs+1),ie=new CA.Buf16(vs+1),pe=null,be=0,Pe,_e,Oe;for(c=0;c<=vs;c++)ne[c]=0;for(f=0;f<i;f++)ne[n[r+f]]++;for(p=l,d=vs;d>=1&&ne[d]===0;d--);if(p>d&&(p=d),d===0)return o[s++]=1<<24|64<<16|0,o[s++]=1<<24|64<<16|0,u.bits=1,0;for(h=1;h<d&&ne[h]===0;h++);for(p<h&&(p=h),w=1,c=1;c<=vs;c++)if(w<<=1,w-=ne[c],w<0)return-1;if(w>0&&(t===IA||d!==1))return-1;for(ie[1]=0,c=1;c<vs;c++)ie[c+1]=ie[c]+ne[c];for(f=0;f<i;f++)n[r+f]!==0&&(a[ie[n[r+f]]++]=f);if(t===IA?(M=pe=a,N=19):t===kp?(M=TP,G-=257,pe=kP,be-=257,N=256):(M=IP,pe=BP,N=-1),S=0,f=0,c=h,D=s,m=p,y=0,B=-1,x=1<<p,I=x-1,t===kp&&x>TA||t===BA&&x>kA)return 1;for(;;){Pe=c-y,a[f]<N?(_e=0,Oe=a[f]):a[f]>N?(_e=pe[be+a[f]],Oe=M[G+a[f]]):(_e=96,Oe=0),_=1<<c-y,T=1<<m,h=T;do T-=_,o[D+(S>>y)+T]=Pe<<24|_e<<16|Oe|0;while(T!==0);for(_=1<<c-1;S&_;)_>>=1;if(_!==0?(S&=_-1,S+=_):S=0,f++,--ne[c]===0){if(c===d)break;c=n[r+a[f]]}if(c>p&&(S&I)!==B){for(y===0&&(y=p),D+=h,m=c-y,w=1<<m;m+y<d&&(w-=ne[m+y],!(w<=0));)m++,w<<=1;if(x+=1<<m,t===kp&&x>TA||t===BA&&x>kA)return 1;B=S&I,o[B]=p<<24|m<<16|D-s|0}}return S!==0&&(o[D+S]=c-y<<24|64<<16|0),u.bits=p,0},Jt=vr,Ip=uA,er=cA,RP=CP,jl=DP,FP=0,DA=1,RA=2,FA=4,MP=5,Bf=6,po=0,PP=1,LP=2,pn=-2,MA=-3,PA=-4,NP=-5,LA=8,NA=1,OA=2,zA=3,UA=4,GA=5,HA=6,VA=7,jA=8,$A=9,qA=10,Df=11,xr=12,Bp=13,WA=14,Dp=15,ZA=16,YA=17,QA=18,XA=19,Rf=20,Ff=21,KA=22,JA=23,ex=24,tx=25,nx=26,Rp=27,rx=28,ix=29,Qe=30,ox=31,OP=32,zP=852,UP=592,GP=15,HP=GP;function sx(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function VP(){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 Jt.Buf16(320),this.work=new Jt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function ax(e){var t;return!e||!e.state?pn:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=NA,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Jt.Buf32(zP),t.distcode=t.distdyn=new Jt.Buf32(UP),t.sane=1,t.back=-1,po)}function lx(e){var t;return!e||!e.state?pn:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,ax(e))}function ux(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))?pn:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,lx(e))}function cx(e,t){var n,r;return e?(r=new VP,e.state=r,r.window=null,n=ux(e,t),n!==po&&(e.state=null),n):pn}function jP(e){return cx(e,HP)}var fx=!0,Fp,Mp;function $P(e){if(fx){var t;for(Fp=new Jt.Buf32(512),Mp=new Jt.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(jl(DA,e.lens,0,288,Fp,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;jl(RA,e.lens,0,32,Mp,0,e.work,{bits:5}),fx=!1}e.lencode=Fp,e.lenbits=9,e.distcode=Mp,e.distbits=5}function hx(e,t,n,r){var i,o=e.state;return o.window===null&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Jt.Buf8(o.wsize)),r>=o.wsize?(Jt.arraySet(o.window,t,n-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),Jt.arraySet(o.window,t,n-r,i,o.wnext),r-=i,r?(Jt.arraySet(o.window,t,n-r,r,0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=i))),0}function qP(e,t){var n,r,i,o,s,a,u,l,c,f,h,d,p,m,y=0,w,x,S,_,T,B,I,D,M=new Jt.Buf8(4),G,N,ne=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return pn;n=e.state,n.mode===xr&&(n.mode=Bp),s=e.next_out,i=e.output,u=e.avail_out,o=e.next_in,r=e.input,a=e.avail_in,l=n.hold,c=n.bits,f=a,h=u,D=po;e:for(;;)switch(n.mode){case NA:if(n.wrap===0){n.mode=Bp;break}for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(n.wrap&2&&l===35615){n.check=0,M[0]=l&255,M[1]=l>>>8&255,n.check=er(n.check,M,2,0),l=0,c=0,n.mode=OA;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=Qe;break}if((l&15)!==LA){e.msg="unknown compression method",n.mode=Qe;break}if(l>>>=4,c-=4,I=(l&15)+8,n.wbits===0)n.wbits=I;else if(I>n.wbits){e.msg="invalid window size",n.mode=Qe;break}n.dmax=1<<I,e.adler=n.check=1,n.mode=l&512?qA:xr,l=0,c=0;break;case OA:for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(n.flags=l,(n.flags&255)!==LA){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&&(M[0]=l&255,M[1]=l>>>8&255,n.check=er(n.check,M,2,0)),l=0,c=0,n.mode=zA;case zA:for(;c<32;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.head&&(n.head.time=l),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,M[2]=l>>>16&255,M[3]=l>>>24&255,n.check=er(n.check,M,4,0)),l=0,c=0,n.mode=UA;case UA:for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=er(n.check,M,2,0)),l=0,c=0,n.mode=GA;case GA:if(n.flags&1024){for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&(M[0]=l&255,M[1]=l>>>8&255,n.check=er(n.check,M,2,0)),l=0,c=0}else n.head&&(n.head.extra=null);n.mode=HA;case HA:if(n.flags&1024&&(d=n.length,d>a&&(d=a),d&&(n.head&&(I=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),Jt.arraySet(n.head.extra,r,o,d,I)),n.flags&512&&(n.check=er(n.check,r,d,o)),a-=d,o+=d,n.length-=d),n.length))break e;n.length=0,n.mode=VA;case VA:if(n.flags&2048){if(a===0)break e;d=0;do I=r[o+d++],n.head&&I&&n.length<65536&&(n.head.name+=String.fromCharCode(I));while(I&&d<a);if(n.flags&512&&(n.check=er(n.check,r,d,o)),a-=d,o+=d,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=jA;case jA:if(n.flags&4096){if(a===0)break e;d=0;do I=r[o+d++],n.head&&I&&n.length<65536&&(n.head.comment+=String.fromCharCode(I));while(I&&d<a);if(n.flags&512&&(n.check=er(n.check,r,d,o)),a-=d,o+=d,I)break e}else n.head&&(n.head.comment=null);n.mode=$A;case $A:if(n.flags&512){for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=Qe;break}l=0,c=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=xr;break;case qA:for(;c<32;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}e.adler=n.check=sx(l),l=0,c=0,n.mode=Df;case Df:if(n.havedict===0)return e.next_out=s,e.avail_out=u,e.next_in=o,e.avail_in=a,n.hold=l,n.bits=c,LP;e.adler=n.check=1,n.mode=xr;case xr:if(t===MP||t===Bf)break e;case Bp:if(n.last){l>>>=c&7,c-=c&7,n.mode=Rp;break}for(;c<3;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}switch(n.last=l&1,l>>>=1,c-=1,l&3){case 0:n.mode=WA;break;case 1:if($P(n),n.mode=Rf,t===Bf){l>>>=2,c-=2;break e}break;case 2:n.mode=YA;break;case 3:e.msg="invalid block type",n.mode=Qe}l>>>=2,c-=2;break;case WA:for(l>>>=c&7,c-=c&7;c<32;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=Qe;break}if(n.length=l&65535,l=0,c=0,n.mode=Dp,t===Bf)break e;case Dp:n.mode=ZA;case ZA:if(d=n.length,d){if(d>a&&(d=a),d>u&&(d=u),d===0)break e;Jt.arraySet(i,r,o,d,s),a-=d,o+=d,u-=d,s+=d,n.length-=d;break}n.mode=xr;break;case YA:for(;c<14;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(n.nlen=(l&31)+257,l>>>=5,c-=5,n.ndist=(l&31)+1,l>>>=5,c-=5,n.ncode=(l&15)+4,l>>>=4,c-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=Qe;break}n.have=0,n.mode=QA;case QA:for(;n.have<n.ncode;){for(;c<3;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.lens[ne[n.have++]]=l&7,l>>>=3,c-=3}for(;n.have<19;)n.lens[ne[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,G={bits:n.lenbits},D=jl(FP,n.lens,0,19,n.lencode,0,n.work,G),n.lenbits=G.bits,D){e.msg="invalid code lengths set",n.mode=Qe;break}n.have=0,n.mode=XA;case XA:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,x=y>>>16&255,S=y&65535,!(w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(S<16)l>>>=w,c-=w,n.lens[n.have++]=S;else{if(S===16){for(N=w+2;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(l>>>=w,c-=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,c-=2}else if(S===17){for(N=w+3;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}l>>>=w,c-=w,I=0,d=3+(l&7),l>>>=3,c-=3}else{for(N=w+7;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}l>>>=w,c-=w,I=0,d=11+(l&127),l>>>=7,c-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=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,G={bits:n.lenbits},D=jl(DA,n.lens,0,n.nlen,n.lencode,0,n.work,G),n.lenbits=G.bits,D){e.msg="invalid literal/lengths set",n.mode=Qe;break}if(n.distbits=6,n.distcode=n.distdyn,G={bits:n.distbits},D=jl(RA,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,G),n.distbits=G.bits,D){e.msg="invalid distances set",n.mode=Qe;break}if(n.mode=Rf,t===Bf)break e;case Rf:n.mode=Ff;case Ff:if(a>=6&&u>=258){e.next_out=s,e.avail_out=u,e.next_in=o,e.avail_in=a,n.hold=l,n.bits=c,RP(e,h),s=e.next_out,i=e.output,u=e.avail_out,o=e.next_in,r=e.input,a=e.avail_in,l=n.hold,c=n.bits,n.mode===xr&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,x=y>>>16&255,S=y&65535,!(w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(x&&!(x&240)){for(_=w,T=x,B=S;y=n.lencode[B+((l&(1<<_+T)-1)>>_)],w=y>>>24,x=y>>>16&255,S=y&65535,!(_+w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,n.length=S,x===0){n.mode=nx;break}if(x&32){n.back=-1,n.mode=xr;break}if(x&64){e.msg="invalid literal/length code",n.mode=Qe;break}n.extra=x&15,n.mode=KA;case KA:if(n.extra){for(N=n.extra;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=JA;case JA:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,x=y>>>16&255,S=y&65535,!(w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(!(x&240)){for(_=w,T=x,B=S;y=n.distcode[B+((l&(1<<_+T)-1)>>_)],w=y>>>24,x=y>>>16&255,S=y&65535,!(_+w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,x&64){e.msg="invalid distance code",n.mode=Qe;break}n.offset=S,n.extra=x&15,n.mode=ex;case ex:if(n.extra){for(N=n.extra;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=Qe;break}n.mode=tx;case tx: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=s-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[s++]=m[p++];while(--d);n.length===0&&(n.mode=Ff);break;case nx:if(u===0)break e;i[s++]=n.length,u--,n.mode=Ff;break;case Rp:if(n.wrap){for(;c<32;){if(a===0)break e;a--,l|=r[o++]<<c,c+=8}if(h-=u,e.total_out+=h,n.total+=h,h&&(e.adler=n.check=n.flags?er(n.check,i,h,s-h):Ip(n.check,i,h,s-h)),h=u,(n.flags?l:sx(l))!==n.check){e.msg="incorrect data check",n.mode=Qe;break}l=0,c=0}n.mode=rx;case rx:if(n.wrap&&n.flags){for(;c<32;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=Qe;break}l=0,c=0}n.mode=ix;case ix:D=PP;break e;case Qe:D=MA;break e;case ox:return PA;case OP:default:return pn}return e.next_out=s,e.avail_out=u,e.next_in=o,e.avail_in=a,n.hold=l,n.bits=c,(n.wsize||h!==e.avail_out&&n.mode<Qe&&(n.mode<Rp||t!==FA))&&hx(e,e.output,e.next_out,h-e.avail_out),f-=e.avail_in,h-=e.avail_out,e.total_in+=f,e.total_out+=h,n.total+=h,n.wrap&&h&&(e.adler=n.check=n.flags?er(n.check,i,h,e.next_out-h):Ip(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===xr?128:0)+(n.mode===Rf||n.mode===Dp?256:0),(f===0&&h===0||t===FA)&&D===po&&(D=NP),D}function WP(e){if(!e||!e.state)return pn;var t=e.state;return t.window&&(t.window=null),e.state=null,po}function ZP(e,t){var n;return!e||!e.state||(n=e.state,!(n.wrap&2))?pn:(n.head=t,t.done=!1,po)}function YP(e,t){var n=t.length,r,i,o;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==Df)?pn:r.mode===Df&&(i=1,i=Ip(i,t,n,0),i!==r.check)?MA:(o=hx(e,t,n,n),o?(r.mode=ox,PA):(r.havedict=1,po))}Rn.inflateReset=lx,Rn.inflateReset2=ux,Rn.inflateResetKeep=ax,Rn.inflateInit=jP,Rn.inflateInit2=cx,Rn.inflate=qP,Rn.inflateEnd=WP,Rn.inflateGetHeader=ZP,Rn.inflateSetDictionary=YP,Rn.inflateInfo="pako inflate (from Nodeca project)";var dx={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 QP(){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 XP=QP,As=Rn,$l=vr,Mf=fo,nt=dx,Pp=wp,KP=xA,JP=XP,px=Object.prototype.toString;function go(e){if(!(this instanceof go))return new go(e);this.options=$l.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 KP,this.strm.avail_out=0;var n=As.inflateInit2(this.strm,t.windowBits);if(n!==nt.Z_OK)throw new Error(Pp[n]);if(this.header=new JP,As.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Mf.string2buf(t.dictionary):px.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=As.inflateSetDictionary(this.strm,t.dictionary),n!==nt.Z_OK)))throw new Error(Pp[n])}go.prototype.push=function(e,t){var n=this.strm,r=this.options.chunkSize,i=this.options.dictionary,o,s,a,u,l,c=!1;if(this.ended)return!1;s=t===~~t?t:t===!0?nt.Z_FINISH:nt.Z_NO_FLUSH,typeof e=="string"?n.input=Mf.binstring2buf(e):px.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 $l.Buf8(r),n.next_out=0,n.avail_out=r),o=As.inflate(n,nt.Z_NO_FLUSH),o===nt.Z_NEED_DICT&&i&&(o=As.inflateSetDictionary(this.strm,i)),o===nt.Z_BUF_ERROR&&c===!0&&(o=nt.Z_OK,c=!1),o!==nt.Z_STREAM_END&&o!==nt.Z_OK)return this.onEnd(o),this.ended=!0,!1;n.next_out&&(n.avail_out===0||o===nt.Z_STREAM_END||n.avail_in===0&&(s===nt.Z_FINISH||s===nt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(a=Mf.utf8border(n.output,n.next_out),u=n.next_out-a,l=Mf.buf2string(n.output,a),n.next_out=u,n.avail_out=r-u,u&&$l.arraySet(n.output,n.output,a,u,0),this.onData(l)):this.onData($l.shrinkBuf(n.output,n.next_out))),n.avail_in===0&&n.avail_out===0&&(c=!0)}while((n.avail_in>0||n.avail_out===0)&&o!==nt.Z_STREAM_END);return o===nt.Z_STREAM_END&&(s=nt.Z_FINISH),s===nt.Z_FINISH?(o=As.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,o===nt.Z_OK):(s===nt.Z_SYNC_FLUSH&&(this.onEnd(nt.Z_OK),n.avail_out=0),!0)},go.prototype.onData=function(e){this.chunks.push(e)},go.prototype.onEnd=function(e){e===nt.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=$l.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Lp(e,t){var n=new go(t);if(n.push(e,!0),n.err)throw n.msg||Pp[n.err];return n.result}function eL(e,t){return t=t||{},t.raw=!0,Lp(e,t)}Vl.Inflate=go,Vl.inflate=Lp,Vl.inflateRaw=eL,Vl.ungzip=Lp;var tL=vr.assign,nL=Bl,rL=Vl,iL=dx,gx={};tL(gx,nL,rL,iL);var Pf=gx;async function di(e){try{let t,n=0,r=0;const i=[];let o=0,s;do{const u=e.subarray(n);if(s=new Pf.Inflate,{strm:t}=s,s.push(u,Pf.Z_SYNC_FLUSH),s.err)throw new Error(s.msg);n+=t.next_in,i[r]=s.result,o+=i[r].length,r+=1}while(t.avail_in);const a=new Uint8Array(o);for(let u=0,l=0;u<i.length;u++)a.set(i[u],l),l+=i[u].length;return xe.Buffer.from(a)}catch(t){throw`${t}`.match(/incorrect header check/)?new Error("problem decompressing block: incorrect gzip header check"):t}}async function mx(e,t){try{let n;const{minv:r,maxv:i}=t;let o=r.blockPosition,s=r.dataPosition;const a=[],u=[],l=[];let c=0,f=0;do{const p=e.subarray(o-r.blockPosition),m=new Pf.Inflate;if({strm:n}=m,m.push(p,Pf.Z_SYNC_FLUSH),m.err)throw new Error(m.msg);const y=m.result;a.push(y);let w=y.length;u.push(o),l.push(s),a.length===1&&r.dataPosition&&(a[0]=a[0].subarray(r.dataPosition),w=a[0].length);const x=o;if(o+=n.next_in,s+=w,x>=i.blockPosition){a[f]=a[f].subarray(0,i.blockPosition===r.blockPosition?i.dataPosition-r.dataPosition+1:i.dataPosition+1),u.push(o),l.push(s),c+=a[f].length;break}c+=a[f].length,f++}while(n.avail_in);const h=new Uint8Array(c);for(let p=0,m=0;p<a.length;p++)h.set(a[p],m),m+=a[p].length;return{buffer:xe.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 oL=Ve,gn=null;try{gn=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 Ve(e,t,n){this.low=e|0,this.high=t|0,this.unsigned=!!n}Ve.prototype.__isLong__,Object.defineProperty(Ve.prototype,"__isLong__",{value:!0});function jt(e){return(e&&e.__isLong__)===!0}Ve.isLong=jt;var bx={},yx={};function mo(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=yx[e],r)?r:(n=je(e,(e|0)<0?-1:0,!0),i&&(yx[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=bx[e],r)?r:(n=je(e,e<0?-1:0,!1),i&&(bx[e]=n),n))}Ve.fromInt=mo;function mn(e,t){if(isNaN(e))return t?bo:bn;if(t){if(e<0)return bo;if(e>=vx)return Sx}else{if(e<=-Ax)return $t;if(e+1>=Ax)return _x}return e<0?mn(-e,t).neg():je(e%xs|0,e/xs|0,t)}Ve.fromNumber=mn;function je(e,t,n){return new Ve(e,t,n)}Ve.fromBits=je;var Lf=Math.pow;function Np(e,t,n){if(e.length===0)throw Error("empty string");if(e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return bn;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 Np(e.substring(1),t,n).neg();for(var i=mn(Lf(n,8)),o=bn,s=0;s<e.length;s+=8){var a=Math.min(8,e.length-s),u=parseInt(e.substring(s,s+a),n);if(a<8){var l=mn(Lf(n,a));o=o.mul(l).add(mn(u))}else o=o.mul(i),o=o.add(mn(u))}return o.unsigned=t,o}Ve.fromString=Np;function Fn(e,t){return typeof e=="number"?mn(e,t):typeof e=="string"?Np(e,t):je(e.low,e.high,typeof t=="boolean"?t:e.unsigned)}Ve.fromValue=Fn;var wx=65536,sL=1<<24,xs=wx*wx,vx=xs*xs,Ax=vx/2,xx=mo(sL),bn=mo(0);Ve.ZERO=bn;var bo=mo(0,!0);Ve.UZERO=bo;var Es=mo(1);Ve.ONE=Es;var Ex=mo(1,!0);Ve.UONE=Ex;var Op=mo(-1);Ve.NEG_ONE=Op;var _x=je(-1,2147483647,!1);Ve.MAX_VALUE=_x;var Sx=je(-1,-1,!0);Ve.MAX_UNSIGNED_VALUE=Sx;var $t=je(0,-2147483648,!1);Ve.MIN_VALUE=$t;var Y=Ve.prototype;Y.toInt=function(){return this.unsigned?this.low>>>0:this.low},Y.toNumber=function(){return this.unsigned?(this.high>>>0)*xs+(this.low>>>0):this.high*xs+(this.low>>>0)},Y.toString=function(t){if(t=t||10,t<2||36<t)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq($t)){var n=mn(t),r=this.div(n),i=r.mul(n).sub(this);return r.toString(t)+i.toInt().toString(t)}else return"-"+this.neg().toString(t);for(var o=mn(Lf(t,6),this.unsigned),s=this,a="";;){var u=s.div(o),l=s.sub(u.mul(o)).toInt()>>>0,c=l.toString(t);if(s=u,s.isZero())return c+a;for(;c.length<6;)c="0"+c;a=""+c+a}},Y.getHighBits=function(){return this.high},Y.getHighBitsUnsigned=function(){return this.high>>>0},Y.getLowBits=function(){return this.low},Y.getLowBitsUnsigned=function(){return this.low>>>0},Y.getNumBitsAbs=function(){if(this.isNegative())return this.eq($t)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,n=31;n>0&&!(t&1<<n);n--);return this.high!=0?n+33:n+1},Y.isZero=function(){return this.high===0&&this.low===0},Y.eqz=Y.isZero,Y.isNegative=function(){return!this.unsigned&&this.high<0},Y.isPositive=function(){return this.unsigned||this.high>=0},Y.isOdd=function(){return(this.low&1)===1},Y.isEven=function(){return(this.low&1)===0},Y.equals=function(t){return jt(t)||(t=Fn(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low},Y.eq=Y.equals,Y.notEquals=function(t){return!this.eq(t)},Y.neq=Y.notEquals,Y.ne=Y.notEquals,Y.lessThan=function(t){return this.comp(t)<0},Y.lt=Y.lessThan,Y.lessThanOrEqual=function(t){return this.comp(t)<=0},Y.lte=Y.lessThanOrEqual,Y.le=Y.lessThanOrEqual,Y.greaterThan=function(t){return this.comp(t)>0},Y.gt=Y.greaterThan,Y.greaterThanOrEqual=function(t){return this.comp(t)>=0},Y.gte=Y.greaterThanOrEqual,Y.ge=Y.greaterThanOrEqual,Y.compare=function(t){if(jt(t)||(t=Fn(t)),this.eq(t))return 0;var n=this.isNegative(),r=t.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1},Y.comp=Y.compare,Y.negate=function(){return!this.unsigned&&this.eq($t)?$t:this.not().add(Es)},Y.neg=Y.negate,Y.add=function(t){jt(t)||(t=Fn(t));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,o=this.low&65535,s=t.high>>>16,a=t.high&65535,u=t.low>>>16,l=t.low&65535,c=0,f=0,h=0,d=0;return d+=o+l,h+=d>>>16,d&=65535,h+=i+u,f+=h>>>16,h&=65535,f+=r+a,c+=f>>>16,f&=65535,c+=n+s,c&=65535,je(h<<16|d,c<<16|f,this.unsigned)},Y.subtract=function(t){return jt(t)||(t=Fn(t)),this.add(t.neg())},Y.sub=Y.subtract,Y.multiply=function(t){if(this.isZero())return bn;if(jt(t)||(t=Fn(t)),gn){var n=gn.mul(this.low,this.high,t.low,t.high);return je(n,gn.get_high(),this.unsigned)}if(t.isZero())return bn;if(this.eq($t))return t.isOdd()?$t:bn;if(t.eq($t))return this.isOdd()?$t:bn;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(xx)&&t.lt(xx))return mn(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,o=this.low>>>16,s=this.low&65535,a=t.high>>>16,u=t.high&65535,l=t.low>>>16,c=t.low&65535,f=0,h=0,d=0,p=0;return p+=s*c,d+=p>>>16,p&=65535,d+=o*c,h+=d>>>16,d&=65535,d+=s*l,h+=d>>>16,d&=65535,h+=i*c,f+=h>>>16,h&=65535,h+=o*l,f+=h>>>16,h&=65535,h+=s*u,f+=h>>>16,h&=65535,f+=r*c+i*l+o*u+s*a,f&=65535,je(d<<16|p,f<<16|h,this.unsigned)},Y.mul=Y.multiply,Y.divide=function(t){if(jt(t)||(t=Fn(t)),t.isZero())throw Error("division by zero");if(gn){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?gn.div_u:gn.div_s)(this.low,this.high,t.low,t.high);return je(n,gn.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?bo:bn;var r,i,o;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return bo;if(t.gt(this.shru(1)))return Ex;o=bo}else{if(this.eq($t)){if(t.eq(Es)||t.eq(Op))return $t;if(t.eq($t))return Es;var s=this.shr(1);return r=s.div(t).shl(1),r.eq(bn)?t.isNegative()?Es:Op:(i=this.sub(t.mul(r)),o=r.add(i.div(t)),o)}else if(t.eq($t))return this.unsigned?bo:bn;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();o=bn}for(i=this;i.gte(t);){r=Math.max(1,Math.floor(i.toNumber()/t.toNumber()));for(var a=Math.ceil(Math.log(r)/Math.LN2),u=a<=48?1:Lf(2,a-48),l=mn(r),c=l.mul(t);c.isNegative()||c.gt(i);)r-=u,l=mn(r,this.unsigned),c=l.mul(t);l.isZero()&&(l=Es),o=o.add(l),i=i.sub(c)}return o},Y.div=Y.divide,Y.modulo=function(t){if(jt(t)||(t=Fn(t)),gn){var n=(this.unsigned?gn.rem_u:gn.rem_s)(this.low,this.high,t.low,t.high);return je(n,gn.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},Y.mod=Y.modulo,Y.rem=Y.modulo,Y.not=function(){return je(~this.low,~this.high,this.unsigned)},Y.and=function(t){return jt(t)||(t=Fn(t)),je(this.low&t.low,this.high&t.high,this.unsigned)},Y.or=function(t){return jt(t)||(t=Fn(t)),je(this.low|t.low,this.high|t.high,this.unsigned)},Y.xor=function(t){return jt(t)||(t=Fn(t)),je(this.low^t.low,this.high^t.high,this.unsigned)},Y.shiftLeft=function(t){return jt(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?je(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):je(0,this.low<<t-32,this.unsigned)},Y.shl=Y.shiftLeft,Y.shiftRight=function(t){return jt(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?je(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):je(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},Y.shr=Y.shiftRight,Y.shiftRightUnsigned=function(t){if(jt(t)&&(t=t.toInt()),t&=63,t===0)return this;var n=this.high;if(t<32){var r=this.low;return je(r>>>t|n<<32-t,n>>>t,this.unsigned)}else return t===32?je(n,0,this.unsigned):je(n>>>t-32,0,this.unsigned)},Y.shru=Y.shiftRightUnsigned,Y.shr_u=Y.shiftRightUnsigned,Y.toSigned=function(){return this.unsigned?je(this.low,this.high,!1):this},Y.toUnsigned=function(){return this.unsigned?this:je(this.low,this.high,!0)},Y.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},Y.toBytesLE=function(){var t=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]},Y.toBytesBE=function(){var t=this.high,n=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,n>>>24,n>>>16&255,n>>>8&255,n&255]},Ve.fromBytes=function(t,n,r){return r?Ve.fromBytesLE(t,n):Ve.fromBytesBE(t,n)},Ve.fromBytesLE=function(t,n){return new Ve(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n)},Ve.fromBytesBE=function(t,n){return new Ve(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],n)};const Nf=yf(oL),Of=1;class aL{constructor({filehandle:t,path:n}){if(t)this.filehandle=t;else if(n)this.filehandle=new gt(n);else throw new TypeError("either filehandle or path must be defined")}_readLongWithOverflow(t,n=0,r=!0){const i=Nf.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=xe.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=xe.Buffer.allocUnsafe(i),await this.filehandle.read(t,0,i,8);for(let o=0;o<n;o+=1){const s=this._readLongWithOverflow(t,o*16),a=this._readLongWithOverflow(t,o*16+8);r[o+1]=[s,a]}return r}async getLastBlock(){const t=await this._getIndex();if(t.length)return t[t.length-1]}async getRelevantBlocksForRead(t,n){const r=n+t;if(t===0)return[];const i=await this._getIndex(),o=[],s=(h,d)=>{const p=h[Of],m=d?d[Of]:1/0;return p<=n&&m>n?0:p<n?-1:1};let a=0,u=i.length-1,l=Math.floor(i.length/2),c=s(i[l],i[l+1]);for(;c!==0;)c>0?u=l-1:c<0&&(a=l+1),l=Math.ceil((u-a)/2)+a,c=s(i[l],i[l+1]);o.push(i[l]);let f=l+1;for(;f<i.length&&(o.push(i[f]),!(i[f][Of]>=r));f+=1);return o[o.length-1][Of]<r&&o.push([]),o}}class Cx{constructor({filehandle:t,path:n,gziFilehandle:r,gziPath:i}){if(t)this.filehandle=t;else if(n)this.filehandle=new gt(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 aL({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=xe.Buffer.allocUnsafe(4),{bytesRead:i}=await this.filehandle.read(r,0,4,n-28-4);if(i!==4)throw new Error("read error");const o=r.readUInt32LE(0);return t+o}async _readAndUncompressBlock(t,[n],[r]){let i=r;i||(i=(await this.filehandle.stat()).size);const o=i-n;return await this.filehandle.read(t,0,o,n),await di(t.slice(0,o))}async read(t,n,r,i){const o=await this.gzi.getRelevantBlocksForRead(r,i),s=xe.Buffer.allocUnsafe(32768*2);let a=n,u=0;for(let l=0;l<o.length-1;l+=1){const c=await this._readAndUncompressBlock(s,o[l],o[l+1]),[,f]=o[l],h=f>=i?0:i-f,d=Math.min(i+r,f+c.length)-f;h>=0&&h<c.length&&(c.copy(t,a,h,d),a+=d-h,u+=d-h)}return{bytesRead:u,buffer:t}}}function Tx(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}async function lL(e,t){const n=await e.readFile(t);if(!(n&&n.length))throw new Error("No data read from FASTA index (FAI) file");let r=0,i;const o=n.toString("utf8").split(/\r?\n/).filter(s=>/\S/.test(s)).map(s=>s.split(" ")).filter(s=>s[0]!=="").map(s=>((!i||i.name!==s[0])&&(i={name:s[0],id:r},r+=1),{id:i.id,name:s[0],length:+s[1],start:0,end:+s[1],offset:+s[2],lineLength:+s[3],lineBytes:+s[4]}));return{name:Object.fromEntries(o.map(s=>[s.name,s])),id:Object.fromEntries(o.map(s=>[s.id,s]))}}class kx{constructor({fasta:t,fai:n,path:r,faiPath:i}){if(t)this.fasta=t;else if(r)this.fasta=new gt(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 gt(i);else if(r)this.fai=new gt(`${r}.fai`);else throw new Error("Need to pass filehandle for or path to localfile")}async _getIndexes(t){return this.indexes||(this.indexes=lL(this.fai,t)),this.indexes}async getSequenceNames(t){return Object.keys((await this._getIndexes(t)).name)}async getSequenceSizes(t){const n={},r=await this._getIndexes(t),i=Object.values(r.id);for(let o=0;o<i.length;o+=1)n[i[o].name]=i[o].length;return n}async getSequenceSize(t,n){var r;return(r=(await this._getIndexes(n)).name[t])===null||r===void 0?void 0:r.length}async hasReferenceSequence(t,n){return!!(await this._getIndexes(n)).name[t]}async getResiduesById(t,n,r,i){const o=(await this._getIndexes(i)).id[t];if(o)return this._fetchFromIndexEntry(o,n,r,i)}async getResiduesByName(t,n,r,i){const o=(await this._getIndexes(i)).name[t];if(o)return this._fetchFromIndexEntry(o,n,r,i)}async getSequence(t,n,r,i){return this.getResiduesByName(t,n,r,i)}async _fetchFromIndexEntry(t,n=0,r,i){let o=r;if(n<0)throw new TypeError("regionStart cannot be less than 0");if((o===void 0||o>t.length)&&(o=t.length),n>=o)return"";const s=Tx(t,n),a=Tx(t,o)-s,u=Buffer.allocUnsafe(a);return await this.fasta.read(u,0,a,s,i),u.toString("utf8").replace(/\s+/g,"")}}class uL extends kx{constructor({fasta:t,path:n,fai:r,faiPath:i,gzi:o,gziPath:s}){super({fasta:t,path:n,fai:r,faiPath:i}),t&&o?this.fasta=new Cx({filehandle:t,gziFilehandle:o}):n&&s&&(this.fasta=new Cx({path:n,gziPath:s}))}}function Ix(e){return e.split(">").filter(t=>/\S/.test(t)).map(t=>{const[n,...r]=t.split(`
|
|
611
|
+
`),[i,...o]=n.split(" "),s=r.join("").replace(/\s/g,"");return{id:i,description:o.join(" "),sequence:s}})}class cL{constructor({fasta:t,path:n}){if(t)this.fasta=t;else if(n)this.fasta=new gt(n);else throw new Error("Need to pass fasta or path");this.data=this.fasta.readFile().then(r=>{const i=r.toString("utf8");return Ix(i)})}async fetch(t,n,r){const o=(await this.data).find(a=>a.id===t),s=r-n;if(!o)throw new Error(`no sequence with id ${t} exists`);return o.sequence.substr(n,s)}async getSequenceNames(){return(await this.data).map(n=>n.id)}}const fL=Object.freeze(Object.defineProperty({__proto__:null,BgzipIndexedFasta:uL,FetchableSmallFasta:cL,IndexedFasta:kx,parseSmallFasta:Ix},Symbol.toStringTag,{value:"Module"})),zf=BigInt(32);function hL(e,t,n){const r=+!!n,i=+!n;return BigInt(e.getInt32(t,n)*i+e.getInt32(t+4,n)*r)<<zf|BigInt(e.getUint32(t,n)*r+e.getUint32(t+4,n)*i)}function dL(e,t,n){const r=e.getUint32(t,n),i=e.getUint32(t+4,n),o=+!!n,s=+!n;return BigInt(r*s+i*o)<<zf|BigInt(r*o+i*s)}function pL(e,t,n,r){const i=Number(n>>zf),o=Number(n&BigInt(4294967295));r?(e.setInt32(t+4,i,r),e.setUint32(t,o,r)):(e.setInt32(t,i,r),e.setUint32(t+4,o,r))}function gL(e,t,n,r){const i=Number(n>>zf),o=Number(n&BigInt(4294967295));r?(e.setUint32(t+4,i,r),e.setUint32(t,o,r)):(e.setUint32(t,i,r),e.setUint32(t+4,o,r))}"getBigInt64"in DataView||(DataView.prototype.getBigInt64=function(e,t){return hL(this,e,t)}),"getBigUint64"in DataView||(DataView.prototype.getBigUint64=function(e,t){return dL(this,e,t)}),"setBigInt64"in DataView||(DataView.prototype.setBigInt64=function(e,t,n){pL(this,e,t,n)}),"setBigUint64"in DataView||(DataView.prototype.setBigUint64=function(e,t,n){gL(this,e,t,n)});class mL{constructor(t,n){this.code="",this.scopes=[["vars"]],this.bitFields=[],this.tmpVariableCount=0,this.references=new Map,this.imports=[],this.reverseImports=new Map,this.useContextVariables=!1,this.importPath=t,this.useContextVariables=n}generateVariable(t){const n=[...this.scopes[this.scopes.length-1]];return t&&n.push(t),n.join(".")}generateOption(t){switch(typeof t){case"number":return t.toString();case"string":return this.generateVariable(t);case"function":return`${this.addImport(t)}.call(${this.generateVariable()}, vars)`}}generateError(t){this.pushCode(`throw new Error(${t});`)}generateTmpVariable(){return"$tmp"+this.tmpVariableCount++}pushCode(t){this.code+=t+`
|
|
612
|
+
`}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 Mn=new Map,yo="___parser_",Pn={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},Uf={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"},Gf={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 Me=class On{constructor(){this.varName="",this.type="",this.options={},this.endian="be",this.useContextVariables=!1}static start(){return new On}primitiveGenerateN(t,n){const r=Uf[t],i=Gf[t];n.pushCode(`${n.generateVariable(this.varName)} = dataView.get${r}(offset, ${i});`),n.pushCode(`offset += ${Pn[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 Mn.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"&&!Mn.has(n.type)&&!(n.type in Pn))throw new Error(`Array element type "${n.type}" is unkown.`);return this.setNextParser("array",t,n)}choice(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n)throw new Error("tag and choices are are required for choice.");if(!n.tag)throw new Error("tag is requird for choice.");if(!n.choices)throw new Error("choices is required for choice.");for(const r in n.choices){const i=parseInt(r,10),o=n.choices[i];if(isNaN(i))throw new Error(`Choice key "${r}" is not a number.`);if(typeof o=="string"&&!Mn.has(o)&&!(o in Pn))throw new Error(`Choice type "${o}" is unkown.`)}return this.setNextParser("choice",t,n)}nest(t,n){if(typeof n!="object"&&typeof t=="object"&&(n=t,t=""),!n||!n.type)throw new Error("type is required for nest.");if(!(n.type instanceof On)&&!Mn.has(n.type))throw new Error("type must be a known parser name or a Parser object.");if(!(n.type instanceof On)&&!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 Pn)&&!Mn.has(n.type))throw new Error(`Pointer type "${n.type}" is unkown.`);return this.setNextParser("pointer",t,n)}saveOffset(t,n={}){return this.setNextParser("saveOffset",t,n)}endianness(t){switch(t.toLowerCase()){case"little":this.endian="le";break;case"big":this.endian="be";break;default:throw new Error('endianness must be one of "little" or "big"')}return this}endianess(t){return this.endianness(t)}useContextVars(t=!0){return this.useContextVariables=t,this}create(t){if(!(t instanceof Function))throw new Error("Constructor must be a Function object.");return this.constructorFn=t,this}getContext(t){const n=new mL(t,this.useContextVariables);return n.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(n),n.pushCode(`return ${yo+this.alias}(0).result;`)):this.addRawCode(n),n}getCode(){return this.getContext("imports").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 ${yo+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=Mn.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(Pn).indexOf(this.type)>=0)t=Pn[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=Pn[this.options.type]:this.options.type instanceof On&&(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 On;return i.type=t,i.varName=n,i.options=r,i.endian=this.endian,this.head?this.head.next=i:this.next=i,this.head=i,this}generate(t){if(this.type){switch(this.type){case"uint8":case"uint16le":case"uint16be":case"uint32le":case"uint32be":case"int8":case"int16le":case"int16be":case"int32le":case"int32be":case"int64be":case"int64le":case"uint64be":case"uint64le":case"floatle":case"floatbe":case"doublele":case"doublebe":this.primitiveGenerateN(this.type,t);break;case"bit":this.generateBit(t);break;case"string":this.generateString(t);break;case"buffer":this.generateBuffer(t);break;case"seek":this.generateSeek(t);break;case"nest":this.generateNest(t);break;case"array":this.generateArray(t);break;case"choice":this.generateChoice(t);break;case"pointer":this.generatePointer(t);break;case"saveOffset":this.generateSaveOffset(t);break;case"wrapper":this.generateWrapper(t);break}this.type!=="bit"&&this.generateAssert(t)}const n=t.generateVariable(this.varName);return this.options.formatter&&this.type!=="bit"&&this.generateFormatter(t,n,this.options.formatter),this.generateNext(t)}generateAssert(t){if(!this.options.assert)return;const n=t.generateVariable(this.varName);switch(typeof this.options.assert){case"function":{const r=t.addImport(this.options.assert);t.pushCode(`if (!${r}.call(vars, ${n})) {`)}break;case"number":t.pushCode(`if (${this.options.assert} !== ${n}) {`);break;case"string":t.pushCode(`if (${JSON.stringify(this.options.assert)} !== ${n}) {`);break;default:throw new Error("assert option must be a string, number or a function.")}t.generateError(`"Assertion error: ${n} is " + ${JSON.stringify(this.options.assert.toString())}`),t.pushCode("}")}generateNext(t){return this.next&&(t=this.next.generate(t)),t}generateBit(t){const n=JSON.parse(JSON.stringify(this));if(n.options=this.options,n.generateAssert=this.generateAssert.bind(this),n.generateFormatter=this.generateFormatter.bind(this),n.varName=t.generateVariable(n.varName),t.bitFields.push(n),!this.next||this.next&&["bit","nest"].indexOf(this.next.type)<0){const r=t.generateTmpVariable();t.pushCode(`var ${r} = 0;`);const i=(c=0)=>{let f=0;for(let h=c;h<t.bitFields.length;h++){const d=t.bitFields[h].options.length;if(f+d>32)break;f+=d}return f},o=c=>(c<=8?(t.pushCode(`${r} = dataView.getUint8(offset);`),c=8):c<=16?(t.pushCode(`${r} = dataView.getUint16(offset);`),c=16):c<=24?(t.pushCode(`${r} = (dataView.getUint16(offset) << 8) | dataView.getUint8(offset + 2);`),c=24):(t.pushCode(`${r} = dataView.getUint32(offset);`),c=32),t.pushCode(`offset += ${c/8};`),c);let s=0;const a=this.endian==="be";let u=0,l=0;t.bitFields.forEach((c,f)=>{let h=c.options.length;if(h>l){if(l){const m=-1>>>32-l;t.pushCode(`${c.varName} = (${r} & 0x${m.toString(16)}) << ${h-l};`),h-=l}s=0,l=u=o(i(f)-l)}const d=a?u-s-h:s,p=-1>>>32-h;t.pushCode(`${c.varName} ${h<c.options.length?"|=":"="} ${r} >> ${d} & 0x${p.toString(16)};`),c.options.length===32&&t.pushCode(`${c.varName} >>>= 0`),c.options.assert&&c.generateAssert(t),c.options.formatter&&c.generateFormatter(t,c.varName,c.options.formatter),s+=h,l-=h}),t.bitFields=[]}}generateSeek(t){const n=t.generateOption(this.options.length);t.pushCode(`offset += ${n};`)}generateString(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable(),i=this.options.encoding,o=i.toLowerCase()==="hex",s='b => b.toString(16).padStart(2, "0")';if(this.options.length&&this.options.zeroTerminated){const a=this.options.length;t.pushCode(`var ${r} = offset;`),t.pushCode(`while(dataView.getUint8(offset++) !== 0 && offset - ${r} < ${a});`);const u=`offset - ${r} < ${a} ? offset - 1 : offset`;t.pushCode(o?`${n} = Array.from(buffer.subarray(${r}, ${u}), ${s}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, ${u}));`)}else if(this.options.length){const a=t.generateOption(this.options.length);t.pushCode(o?`${n} = Array.from(buffer.subarray(offset, offset + ${a}), ${s}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(offset, offset + ${a}));`),t.pushCode(`offset += ${a};`)}else this.options.zeroTerminated?(t.pushCode(`var ${r} = offset;`),t.pushCode("while(dataView.getUint8(offset++) !== 0);"),t.pushCode(o?`${n} = Array.from(buffer.subarray(${r}, offset - 1), ${s}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset - 1));`)):this.options.greedy&&(t.pushCode(`var ${r} = offset;`),t.pushCode("while(buffer.length > offset++);"),t.pushCode(o?`${n} = Array.from(buffer.subarray(${r}, offset), ${s}).join('');`:`${n} = new TextDecoder('${i}').decode(buffer.subarray(${r}, offset));`));this.options.stripNull&&t.pushCode(`${n} = ${n}.replace(/\\x00+$/g, '')`)}generateBuffer(t){const n=t.generateVariable(this.varName);if(typeof this.options.readUntil=="function"){const r=this.options.readUntil,i=t.generateTmpVariable(),o=t.generateTmpVariable();t.pushCode(`var ${i} = offset;`),t.pushCode(`var ${o} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${o} = dataView.getUint8(offset);`);const s=t.addImport(r);t.pushCode(`if (${s}.call(${t.generateVariable()}, ${o}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${n} = buffer.subarray(${i}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${n} = buffer.subarray(offset);`);else{const r=t.generateOption(this.options.length);t.pushCode(`${n} = buffer.subarray(offset, offset + ${r});`),t.pushCode(`offset += ${r};`)}this.options.clone&&t.pushCode(`${n} = buffer.constructor.from(${n});`)}generateArray(t){const n=t.generateOption(this.options.length),r=t.generateOption(this.options.lengthInBytes),i=this.options.type,o=t.generateTmpVariable(),s=t.generateVariable(this.varName),a=t.generateTmpVariable(),u=this.options.key,l=typeof u=="string";if(l?t.pushCode(`${s} = {};`):t.pushCode(`${s} = [];`),typeof this.options.readUntil=="function"?t.pushCode("do {"):this.options.readUntil==="eof"?t.pushCode(`for (var ${o} = 0; offset < buffer.length; ${o}++) {`):r!==void 0?t.pushCode(`for (var ${o} = offset + ${r}; offset < ${o}; ) {`):t.pushCode(`for (var ${o} = ${n}; ${o} > 0; ${o}--) {`),typeof i=="string")if(Mn.get(i)){const c=t.generateTmpVariable();if(t.pushCode(`var ${c} = ${yo+i}(offset, {`),t.useContextVariables){const f=t.generateVariable();t.pushCode(`$parent: ${f},`),t.pushCode(`$root: ${f}.$root,`),!this.options.readUntil&&r===void 0&&t.pushCode(`$index: ${n} - ${o},`)}t.pushCode("});"),t.pushCode(`var ${a} = ${c}.result; offset = ${c}.offset;`),i!==this.alias&&t.addReference(i)}else{const c=Uf[i],f=Gf[i];t.pushCode(`var ${a} = dataView.get${c}(offset, ${f});`),t.pushCode(`offset += ${Pn[i]};`)}else if(i instanceof On){t.pushCode(`var ${a} = {};`);const c=t.generateVariable();t.pushScope(a),t.useContextVariables&&(t.pushCode(`${a}.$parent = ${c};`),t.pushCode(`${a}.$root = ${c}.$root;`),!this.options.readUntil&&r===void 0&&t.pushCode(`${a}.$index = ${n} - ${o};`)),i.generate(t),t.useContextVariables&&(t.pushCode(`delete ${a}.$parent;`),t.pushCode(`delete ${a}.$root;`),t.pushCode(`delete ${a}.$index;`)),t.popScope()}if(l?t.pushCode(`${s}[${a}.${u}] = ${a};`):t.pushCode(`${s}.push(${a});`),t.pushCode("}"),typeof this.options.readUntil=="function"){const c=this.options.readUntil,f=t.addImport(c);t.pushCode(`while (!${f}.call(${t.generateVariable()}, ${a}, buffer.subarray(offset)));`)}}generateChoiceCase(t,n,r){if(typeof r=="string"){const i=t.generateVariable(this.varName);if(Mn.has(r)){const o=t.generateTmpVariable();t.pushCode(`var ${o} = ${yo+r}(offset, {`),t.useContextVariables&&(t.pushCode(`$parent: ${i}.$parent,`),t.pushCode(`$root: ${i}.$root,`)),t.pushCode("});"),t.pushCode(`${i} = ${o}.result; offset = ${o}.offset;`),r!==this.alias&&t.addReference(r)}else{const o=Uf[r],s=Gf[r];t.pushCode(`${i} = dataView.get${o}(offset, ${s});`),t.pushCode(`offset += ${Pn[r]}`)}}else r instanceof On&&(t.pushPath(n),r.generate(t),t.popPath(n))}generateChoice(t){const n=t.generateOption(this.options.tag),r=t.generateVariable(this.varName);if(this.varName&&(t.pushCode(`${r} = {};`),t.useContextVariables)){const i=t.generateVariable();t.pushCode(`${r}.$parent = ${i};`),t.pushCode(`${r}.$root = ${i}.$root;`)}t.pushCode(`switch(${n}) {`);for(const i in this.options.choices){const o=parseInt(i,10),s=this.options.choices[o];t.pushCode(`case ${o}:`),this.generateChoiceCase(t,this.varName,s),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 On){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(Mn.has(this.options.type)){const r=t.generateTmpVariable();if(t.pushCode(`var ${r} = ${yo+this.options.type}(offset, {`),t.useContextVariables){const i=t.generateVariable();t.pushCode(`$parent: ${i},`),t.pushCode(`$root: ${i}.$root,`)}t.pushCode("});"),t.pushCode(`${n} = ${r}.result; offset = ${r}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}}generateWrapper(t){const n=t.generateVariable(this.varName),r=t.generateTmpVariable();if(typeof this.options.readUntil=="function"){const u=this.options.readUntil,l=t.generateTmpVariable(),c=t.generateTmpVariable();t.pushCode(`var ${l} = offset;`),t.pushCode(`var ${c} = 0;`),t.pushCode("while (offset < buffer.length) {"),t.pushCode(`${c} = dataView.getUint8(offset);`);const f=t.addImport(u);t.pushCode(`if (${f}.call(${t.generateVariable()}, ${c}, buffer.subarray(offset))) break;`),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(`${r} = buffer.subarray(${l}, offset);`)}else if(this.options.readUntil==="eof")t.pushCode(`${r} = buffer.subarray(offset);`);else{const u=t.generateOption(this.options.length);t.pushCode(`${r} = buffer.subarray(offset, offset + ${u});`),t.pushCode(`offset += ${u};`)}this.options.clone&&t.pushCode(`${r} = buffer.constructor.from(${r});`);const i=t.generateTmpVariable(),o=t.generateTmpVariable(),s=t.generateTmpVariable(),a=t.addImport(this.options.wrapper);if(t.pushCode(`${r} = ${a}.call(this, ${r}).subarray(0);`),t.pushCode(`var ${i} = buffer;`),t.pushCode(`var ${o} = offset;`),t.pushCode(`var ${s} = dataView;`),t.pushCode(`buffer = ${r};`),t.pushCode("offset = 0;"),t.pushCode("dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.options.type instanceof On)this.varName&&t.pushCode(`${n} = {};`),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(Mn.has(this.options.type)){const u=t.generateTmpVariable();t.pushCode(`var ${u} = ${yo+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 = ${s};`),t.pushCode(`offset = ${o};`)}generateFormatter(t,n,r){if(typeof r=="function"){const i=t.addImport(r);t.pushCode(`${n} = ${i}.call(${t.generateVariable()}, ${n});`)}}generatePointer(t){const n=this.options.type,r=t.generateOption(this.options.offset),i=t.generateTmpVariable(),o=t.generateVariable(this.varName);if(t.pushCode(`var ${i} = offset;`),t.pushCode(`offset = ${r};`),this.options.type instanceof On){if(t.pushCode(`${o} = {};`),t.useContextVariables){const s=t.generateVariable();t.pushCode(`${o}.$parent = ${s};`),t.pushCode(`${o}.$root = ${s}.$root;`)}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),t.useContextVariables&&(t.pushCode(`delete ${o}.$parent;`),t.pushCode(`delete ${o}.$root;`))}else if(Mn.has(this.options.type)){const s=t.generateTmpVariable();if(t.pushCode(`var ${s} = ${yo+this.options.type}(offset, {`),t.useContextVariables){const a=t.generateVariable();t.pushCode(`$parent: ${a},`),t.pushCode(`$root: ${a}.$root,`)}t.pushCode("});"),t.pushCode(`${o} = ${s}.result; offset = ${s}.offset;`),this.options.type!==this.alias&&t.addReference(this.options.type)}else if(Object.keys(Pn).indexOf(this.options.type)>=0){const s=Uf[n],a=Gf[n];t.pushCode(`${o} = dataView.get${s}(offset, ${a});`),t.pushCode(`offset += ${Pn[n]};`)}t.pushCode(`offset = ${i};`)}generateSaveOffset(t){const n=t.generateVariable(this.varName);t.pushCode(`${n} = offset`)}};var Bx={},zp={},wo={},ql={};Object.defineProperty(ql,"__esModule",{value:!0});function Up(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function bL(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 Gp(e,t,n){return t&&bL(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function yL(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&&Hp(e,t)}function _s(e){return _s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},_s(e)}function Hp(e,t){return Hp=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Hp(e,t)}function wL(){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 Wl(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function vL(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 Wl(e)}function AL(e){var t=wL();return function(){var r=_s(e),i;if(t){var o=_s(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return vL(this,i)}}function xL(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=_s(e),e!==null););return e}function Hf(){return typeof Reflect<"u"&&Reflect.get?Hf=Reflect.get.bind():Hf=function(t,n,r){var i=xL(t,n);if(i){var o=Object.getOwnPropertyDescriptor(i,n);return o.get?o.get.call(arguments.length<3?t:r):o.value}},Hf.apply(this,arguments)}var Dx=function(){function e(){Up(this,e),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return Gp(e,[{key:"addEventListener",value:function(n,r,i){n in this.listeners||(this.listeners[n]=[]),this.listeners[n].push({callback:r,options:i})}},{key:"removeEventListener",value:function(n,r){if(n in this.listeners){for(var i=this.listeners[n],o=0,s=i.length;o<s;o++)if(i[o].callback===r){i.splice(o,1);return}}}},{key:"dispatchEvent",value:function(n){if(n.type in this.listeners){for(var r=this.listeners[n.type],i=r.slice(),o=0,s=i.length;o<s;o++){var a=i[o];try{a.callback.call(this,n)}catch(u){Promise.resolve().then(function(){throw u})}a.options&&a.options.once&&this.removeEventListener(n.type,a.callback)}return!n.defaultPrevented}}}]),e}(),Vp=function(e){yL(n,e);var t=AL(n);function n(){var r;return Up(this,n),r=t.call(this),r.listeners||Dx.call(Wl(r)),Object.defineProperty(Wl(r),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(Wl(r),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(Wl(r),"reason",{value:void 0,writable:!0,configurable:!0}),r}return Gp(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)),Hf(_s(n.prototype),"dispatchEvent",this).call(this,i)}}]),n}(Dx),Rx=function(){function e(){Up(this,e),Object.defineProperty(this,"signal",{value:new Vp,writable:!0,configurable:!0})}return Gp(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&&(Rx.prototype[Symbol.toStringTag]="AbortController",Vp.prototype[Symbol.toStringTag]="AbortSignal");function EL(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 _L(e){typeof e=="function"&&(e={fetch:e});var t=e,n=t.fetch,r=t.Request,i=r===void 0?n.Request:r,o=t.AbortController,s=t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,a=s===void 0?!1:s;if(!EL({fetch:n,Request:i,AbortController:o,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:a}))return{fetch:n,Request:u};var u=i;(u&&!u.prototype.hasOwnProperty("signal")||a)&&(u=function(h,d){var p;d&&d.signal&&(p=d.signal,delete d.signal);var m=new i(h,d);return p&&Object.defineProperty(m,"signal",{writable:!1,enumerable:!1,configurable:!0,value:p}),m},u.prototype=i.prototype);var l=n,c=function(h,d){var p=u&&u.prototype.isPrototypeOf(h)?h.signal:d?d.signal:void 0;if(p){var m;try{m=new DOMException("Aborted","AbortError")}catch{m=new Error("Aborted"),m.name="AbortError"}if(p.aborted)return Promise.reject(m);var y=new Promise(function(w,x){p.addEventListener("abort",function(){return x(m)},{once:!0})});return d&&d.signal&&delete d.signal,Promise.race([y,l(h,d)])}return l(h,d)};return{fetch:c,Request:u}}ql.AbortController=Rx,ql.AbortSignal=Vp,ql.abortableFetch=_L,Object.defineProperty(wo,"__esModule",{value:!0}),wo.AbortSignal=wo.AbortController=void 0;const Fx=ql;var Vf=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof globalThis<"u")return globalThis;throw new Error("unable to locate global object")};let SL=typeof Vf().AbortController>"u"?Fx.AbortController:Vf().AbortController;wo.AbortController=SL;let CL=typeof Vf().AbortController>"u"?Fx.AbortSignal:Vf().AbortSignal;wo.AbortSignal=CL;var jp={};Object.defineProperty(jp,"__esModule",{value:!0});const TL=wo;class kL{}class IL{constructor(){this.signals=new Set,this.abortController=new TL.AbortController}addSignal(t=new kL){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()}}jp.default=IL;var $p={};Object.defineProperty($p,"__esModule",{value:!0});class BL{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)})}}$p.default=BL;var Mx=bf&&bf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(zp,"__esModule",{value:!0});const DL=wo,RL=Mx(jp),FL=Mx($p);class jf{constructor({fill:t,cache:n}){if(typeof t!="function")throw new TypeError("must pass a fill function");if(typeof n!="object")throw new TypeError("must pass a cache object");if(typeof n.get!="function"||typeof n.set!="function"||typeof n.delete!="function")throw new TypeError("cache must implement get(key), set(key, val), and and delete(key)");this.cache=n,this.fillCallback=t}static isAbortException(t){return t.name==="AbortError"||t.code==="ERR_ABORTED"||t.message==="AbortError: aborted"||t.message==="Error: aborted"}evict(t,n){this.cache.get(t)===n&&this.cache.delete(t)}fill(t,n,r,i){const o=new RL.default,s=new FL.default;s.addCallback(i);const a={aborter:o,promise:this.fillCallback(n,o.signal,u=>{s.callback(u)}),settled:!1,statusReporter:s,get aborted(){return this.aborter.signal.aborted}};a.aborter.addSignal(r),a.aborter.signal.addEventListener("abort",()=>{a.settled||this.evict(t,a)}),a.promise.then(()=>{a.settled=!0},()=>{a.settled=!0,this.evict(t,a)}).catch(u=>{throw console.error(u),u}),this.cache.set(t,a)}static checkSinglePromise(t,n){function r(){if(n&&n.aborted)throw Object.assign(new Error("aborted"),{code:"ERR_ABORTED"})}return t.then(i=>(r(),i),i=>{throw r(),i})}has(t){return this.cache.has(t)}get(t,n,r,i){if(!r&&n instanceof DL.AbortSignal)throw new TypeError("second get argument appears to be an AbortSignal, perhaps you meant to pass `null` for the fill data?");const o=this.cache.get(t);return o?o.aborted&&!o.settled?(this.evict(t,o),this.get(t,n,r,i)):o.settled?o.promise:(o.aborter.addSignal(r),o.statusReporter.addCallback(i),jf.checkSinglePromise(o.promise,r)):(this.fill(t,n,r,i),jf.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}}zp.default=jf;var ML=bf&&bf.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Bx,"__esModule",{value:!0});const PL=ML(zp);var $f=Bx.default=PL.default;class LL{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 NL=LL;const qf=yf(NL);class Ss{constructor(t){this.ranges=t}get min(){return this.ranges[0].min}get max(){return this.ranges[this.ranges.length-1].max}contains(t){for(const n of this.ranges)if(n.min<=t&&n.max>=t)return!0;return!1}isContiguous(){return this.ranges.length>1}getRanges(){return this.ranges.map(t=>new Ss([{min:t.min,max:t.max}]))}toString(){return this.ranges.map(t=>`[${t.min}-${t.max}]`).join(",")}union(t){const n=[...this.getRanges(),...t.getRanges()].sort((o,s)=>o.min<s.min?-1:o.min>s.min?1:o.max<s.max?-1:s.max>o.max?1:0),r=[];let i=n[0];for(let o=1;o<n.length;o+=1){const s=n[o];s.min>i.max+1?(r.push(i),i=s):s.max>i.max&&(i=new Ss([{min:i.min,max:s.max}]))}return r.push(i),r.length===1?r[0]:new Ss(r)}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const OL=4,Px=0,Lx=1,zL=2;function Cs(e){let t=e.length;for(;--t>=0;)e[t]=0}const UL=0,Nx=1,GL=2,HL=3,VL=258,qp=29,Zl=256,Yl=Zl+1+qp,Ts=30,Wp=19,Ox=2*Yl+1,vo=15,Zp=16,jL=7,Yp=256,zx=16,Ux=17,Gx=18,Qp=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]),Wf=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]),$L=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Hx=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),qL=512,Er=new Array((Yl+2)*2);Cs(Er);const Ql=new Array(Ts*2);Cs(Ql);const Xl=new Array(qL);Cs(Xl);const Kl=new Array(VL-HL+1);Cs(Kl);const Xp=new Array(qp);Cs(Xp);const Zf=new Array(Ts);Cs(Zf);function Kp(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 Vx,jx,$x;function Jp(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const qx=e=>e<256?Xl[e]:Xl[256+(e>>>7)],Jl=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},qt=(e,t,n)=>{e.bi_valid>Zp-n?(e.bi_buf|=t<<e.bi_valid&65535,Jl(e,e.bi_buf),e.bi_buf=t>>Zp-e.bi_valid,e.bi_valid+=n-Zp):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},tr=(e,t,n)=>{qt(e,n[t*2],n[t*2+1])},Wx=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},WL=e=>{e.bi_valid===16?(Jl(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)},ZL=(e,t)=>{const n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,o=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,u=t.stat_desc.max_length;let l,c,f,h,d,p,m=0;for(h=0;h<=vo;h++)e.bl_count[h]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Ox;l++)c=e.heap[l],h=n[n[c*2+1]*2+1]+1,h>u&&(h=u,m++),n[c*2+1]=h,!(c>r)&&(e.bl_count[h]++,d=0,c>=a&&(d=s[c-a]),p=n[c*2],e.opt_len+=p*(h+d),o&&(e.static_len+=p*(i[c*2+1]+d)));if(m!==0){do{for(h=u-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[u]--,m-=2}while(m>0);for(h=u;h!==0;h--)for(c=e.bl_count[h];c!==0;)f=e.heap[--l],!(f>r)&&(n[f*2+1]!==h&&(e.opt_len+=(h-n[f*2+1])*n[f*2],n[f*2+1]=h),c--)}},Zx=(e,t,n)=>{const r=new Array(vo+1);let i=0,o,s;for(o=1;o<=vo;o++)i=i+n[o-1]<<1,r[o]=i;for(s=0;s<=t;s++){let a=e[s*2+1];a!==0&&(e[s*2]=Wx(r[a]++,a))}},YL=()=>{let e,t,n,r,i;const o=new Array(vo+1);for(n=0,r=0;r<qp-1;r++)for(Xp[r]=n,e=0;e<1<<Qp[r];e++)Kl[n++]=r;for(Kl[n-1]=r,i=0,r=0;r<16;r++)for(Zf[r]=i,e=0;e<1<<Wf[r];e++)Xl[i++]=r;for(i>>=7;r<Ts;r++)for(Zf[r]=i<<7,e=0;e<1<<Wf[r]-7;e++)Xl[256+i++]=r;for(t=0;t<=vo;t++)o[t]=0;for(e=0;e<=143;)Er[e*2+1]=8,e++,o[8]++;for(;e<=255;)Er[e*2+1]=9,e++,o[9]++;for(;e<=279;)Er[e*2+1]=7,e++,o[7]++;for(;e<=287;)Er[e*2+1]=8,e++,o[8]++;for(Zx(Er,Yl+1,o),e=0;e<Ts;e++)Ql[e*2+1]=5,Ql[e*2]=Wx(e,5);Vx=new Kp(Er,Qp,Zl+1,Yl,vo),jx=new Kp(Ql,Wf,0,Ts,vo),$x=new Kp(new Array(0),$L,0,Wp,jL)},Yx=e=>{let t;for(t=0;t<Yl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Ts;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Wp;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Yp*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Qx=e=>{e.bi_valid>8?Jl(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Xx=(e,t,n,r)=>{const i=t*2,o=n*2;return e[i]<e[o]||e[i]===e[o]&&r[t]<=r[n]},eg=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&Xx(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Xx(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},Kx=(e,t,n)=>{let r,i,o=0,s,a;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+o++]&255,r+=(e.pending_buf[e.sym_buf+o++]&255)<<8,i=e.pending_buf[e.sym_buf+o++],r===0?tr(e,i,t):(s=Kl[i],tr(e,s+Zl+1,t),a=Qp[s],a!==0&&(i-=Xp[s],qt(e,i,a)),r--,s=qx(r),tr(e,s,n),a=Wf[s],a!==0&&(r-=Zf[s],qt(e,r,a)));while(o<e.sym_next);tr(e,Yp,t)},tg=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,o=t.stat_desc.elems;let s,a,u=-1,l;for(e.heap_len=0,e.heap_max=Ox,s=0;s<o;s++)n[s*2]!==0?(e.heap[++e.heap_len]=u=s,e.depth[s]=0):n[s*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,s=e.heap_len>>1;s>=1;s--)eg(e,n,s);l=o;do s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],eg(e,n,1),a=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=a,n[l*2]=n[s*2]+n[a*2],e.depth[l]=(e.depth[s]>=e.depth[a]?e.depth[s]:e.depth[a])+1,n[s*2+1]=n[a*2+1]=l,e.heap[1]=l++,eg(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],ZL(e,t),Zx(n,u,e.bl_count)},Jx=(e,t,n)=>{let r,i=-1,o,s=t[0*2+1],a=0,u=7,l=4;for(s===0&&(u=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)o=s,s=t[(r+1)*2+1],!(++a<u&&o===s)&&(a<l?e.bl_tree[o*2]+=a:o!==0?(o!==i&&e.bl_tree[o*2]++,e.bl_tree[zx*2]++):a<=10?e.bl_tree[Ux*2]++:e.bl_tree[Gx*2]++,a=0,i=o,s===0?(u=138,l=3):o===s?(u=6,l=3):(u=7,l=4))},e3=(e,t,n)=>{let r,i=-1,o,s=t[0*2+1],a=0,u=7,l=4;for(s===0&&(u=138,l=3),r=0;r<=n;r++)if(o=s,s=t[(r+1)*2+1],!(++a<u&&o===s)){if(a<l)do tr(e,o,e.bl_tree);while(--a!==0);else o!==0?(o!==i&&(tr(e,o,e.bl_tree),a--),tr(e,zx,e.bl_tree),qt(e,a-3,2)):a<=10?(tr(e,Ux,e.bl_tree),qt(e,a-3,3)):(tr(e,Gx,e.bl_tree),qt(e,a-11,7));a=0,i=o,s===0?(u=138,l=3):o===s?(u=6,l=3):(u=7,l=4)}},QL=e=>{let t;for(Jx(e,e.dyn_ltree,e.l_desc.max_code),Jx(e,e.dyn_dtree,e.d_desc.max_code),tg(e,e.bl_desc),t=Wp-1;t>=3&&e.bl_tree[Hx[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},XL=(e,t,n,r)=>{let i;for(qt(e,t-257,5),qt(e,n-1,5),qt(e,r-4,4),i=0;i<r;i++)qt(e,e.bl_tree[Hx[i]*2+1],3);e3(e,e.dyn_ltree,t-1),e3(e,e.dyn_dtree,n-1)},KL=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Px;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Lx;for(n=32;n<Zl;n++)if(e.dyn_ltree[n*2]!==0)return Lx;return Px};let t3=!1;const JL=e=>{t3||(YL(),t3=!0),e.l_desc=new Jp(e.dyn_ltree,Vx),e.d_desc=new Jp(e.dyn_dtree,jx),e.bl_desc=new Jp(e.bl_tree,$x),e.bi_buf=0,e.bi_valid=0,Yx(e)},n3=(e,t,n,r)=>{qt(e,(UL<<1)+(r?1:0),3),Qx(e),Jl(e,n),Jl(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},eN=e=>{qt(e,Nx<<1,3),tr(e,Yp,Er),WL(e)},tN=(e,t,n,r)=>{let i,o,s=0;e.level>0?(e.strm.data_type===zL&&(e.strm.data_type=KL(e)),tg(e,e.l_desc),tg(e,e.d_desc),s=QL(e),i=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=i&&(i=o)):i=o=n+5,n+4<=i&&t!==-1?n3(e,t,n,r):e.strategy===OL||o===i?(qt(e,(Nx<<1)+(r?1:0),3),Kx(e,Er,Ql)):(qt(e,(GL<<1)+(r?1:0),3),XL(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),Kx(e,e.dyn_ltree,e.dyn_dtree)),Yx(e),r&&Qx(e)},nN=(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[(Kl[n]+Zl+1)*2]++,e.dyn_dtree[qx(t)*2]++),e.sym_next===e.sym_end);var rN=JL,iN=n3,oN=tN,sN=nN,aN=eN,lN={_tr_init:rN,_tr_stored_block:iN,_tr_flush_block:oN,_tr_tally:sN,_tr_align:aN},eu=(e,t,n,r)=>{let i=e&65535|0,o=e>>>16&65535|0,s=0;for(;n!==0;){s=n>2e3?2e3:n,n-=s;do i=i+t[r++]|0,o=o+i|0;while(--s);i%=65521,o%=65521}return i|o<<16|0};const uN=()=>{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},cN=new Uint32Array(uN());var mt=(e,t,n,r)=>{const i=cN,o=r+n;e^=-1;for(let s=r;s<o;s++)e=e>>>8^i[(e^t[s])&255];return e^-1},ks={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"},tu={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:fN,_tr_stored_block:ng,_tr_flush_block:hN,_tr_tally:pi,_tr_align:dN}=lN,{Z_NO_FLUSH:gi,Z_PARTIAL_FLUSH:pN,Z_FULL_FLUSH:gN,Z_FINISH:yn,Z_BLOCK:r3,Z_OK:At,Z_STREAM_END:i3,Z_STREAM_ERROR:nr,Z_DATA_ERROR:mN,Z_BUF_ERROR:rg,Z_DEFAULT_COMPRESSION:bN,Z_FILTERED:yN,Z_HUFFMAN_ONLY:Yf,Z_RLE:wN,Z_FIXED:vN,Z_DEFAULT_STRATEGY:AN,Z_UNKNOWN:xN,Z_DEFLATED:Qf}=tu,EN=9,_N=15,SN=8,ig=256+1+29,CN=30,TN=19,kN=2*ig+1,IN=15,me=3,mi=258,rr=mi+me+1,BN=32,Is=42,og=57,sg=69,ag=73,lg=91,ug=103,Ao=113,nu=666,Lt=1,Bs=2,xo=3,Ds=4,DN=3,Eo=(e,t)=>(e.msg=ks[t],t),o3=e=>e*2-(e>4?9:0),bi=e=>{let t=e.length;for(;--t>=0;)e[t]=0},RN=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 yi=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const en=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))},tn=(e,t)=>{hN(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,en(e.strm)},Ce=(e,t)=>{e.pending_buf[e.pending++]=t},ru=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},cg=(e,t,n,r)=>{let i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),n),e.state.wrap===1?e.adler=eu(e.adler,t,i,n):e.state.wrap===2&&(e.adler=mt(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},s3=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,o,s=e.prev_length,a=e.nice_match;const u=e.strstart>e.w_size-rr?e.strstart-(e.w_size-rr):0,l=e.window,c=e.w_mask,f=e.prev,h=e.strstart+mi;let d=l[r+s-1],p=l[r+s];e.prev_length>=e.good_match&&(n>>=2),a>e.lookahead&&(a=e.lookahead);do if(i=t,!(l[i+s]!==p||l[i+s-1]!==d||l[i]!==l[r]||l[++i]!==l[r+1])){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(o=mi-(h-r),r=h-mi,o>s){if(e.match_start=t,s=o,o>=a)break;d=l[r+s-1],p=l[r+s]}}while((t=f[t&c])>u&&--n!==0);return s<=e.lookahead?s:e.lookahead},Rs=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-rr)&&(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),RN(e),r+=t),e.strm.avail_in===0)break;if(n=cg(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=me)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=yi(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=yi(e,e.ins_h,e.window[i+me-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<me)););}while(e.lookahead<rr&&e.strm.avail_in!==0)},a3=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,o,s=0,a=e.strm.avail_in;do{if(r=65535,o=e.bi_valid+42>>3,e.strm.avail_out<o||(o=e.strm.avail_out-o,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>o&&(r=o),r<n&&(r===0&&t!==yn||t===gi||r!==i+e.strm.avail_in)))break;s=t===yn&&r===i+e.strm.avail_in?1:0,ng(e,0,0,s),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,en(e.strm),i&&(i>r&&(i=r),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,r-=i),r&&(cg(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(s===0);return a-=e.strm.avail_in,a&&(a>=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<=a&&(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-a,e.strm.next_in),e.strstart),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),s?Ds:t!==gi&&t!==yn&&e.strm.avail_in===0&&e.strstart===e.block_start?Bs:(o=e.window_size-e.strstart,e.strm.avail_in>o&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,o+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),o>e.strm.avail_in&&(o=e.strm.avail_in),o&&(cg(e.strm,e.window,e.strstart,o),e.strstart+=o,e.insert+=o>e.w_size-e.insert?e.w_size-e.insert:o),e.high_water<e.strstart&&(e.high_water=e.strstart),o=e.bi_valid+42>>3,o=e.pending_buf_size-o>65535?65535:e.pending_buf_size-o,n=o>e.w_size?e.w_size:o,i=e.strstart-e.block_start,(i>=n||(i||t===yn)&&t!==gi&&e.strm.avail_in===0&&i<=o)&&(r=i>o?o:i,s=t===yn&&e.strm.avail_in===0&&r===i?1:0,ng(e,e.block_start,r,s),e.block_start+=r,en(e.strm)),s?xo:Lt)},fg=(e,t)=>{let n,r;for(;;){if(e.lookahead<rr){if(Rs(e),e.lookahead<rr&&t===gi)return Lt;if(e.lookahead===0)break}if(n=0,e.lookahead>=me&&(e.ins_h=yi(e,e.ins_h,e.window[e.strstart+me-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-rr&&(e.match_length=s3(e,n)),e.match_length>=me)if(r=pi(e,e.strstart-e.match_start,e.match_length-me),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=me){e.match_length--;do e.strstart++,e.ins_h=yi(e,e.ins_h,e.window[e.strstart+me-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=yi(e,e.ins_h,e.window[e.strstart+1]);else r=pi(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(tn(e,!1),e.strm.avail_out===0))return Lt}return e.insert=e.strstart<me-1?e.strstart:me-1,t===yn?(tn(e,!0),e.strm.avail_out===0?xo:Ds):e.sym_next&&(tn(e,!1),e.strm.avail_out===0)?Lt:Bs},Fs=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<rr){if(Rs(e),e.lookahead<rr&&t===gi)return Lt;if(e.lookahead===0)break}if(n=0,e.lookahead>=me&&(e.ins_h=yi(e,e.ins_h,e.window[e.strstart+me-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=me-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-rr&&(e.match_length=s3(e,n),e.match_length<=5&&(e.strategy===yN||e.match_length===me&&e.strstart-e.match_start>4096)&&(e.match_length=me-1)),e.prev_length>=me&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-me,r=pi(e,e.strstart-1-e.prev_match,e.prev_length-me),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=yi(e,e.ins_h,e.window[e.strstart+me-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=me-1,e.strstart++,r&&(tn(e,!1),e.strm.avail_out===0))return Lt}else if(e.match_available){if(r=pi(e,0,e.window[e.strstart-1]),r&&tn(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Lt}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=pi(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<me-1?e.strstart:me-1,t===yn?(tn(e,!0),e.strm.avail_out===0?xo:Ds):e.sym_next&&(tn(e,!1),e.strm.avail_out===0)?Lt:Bs},FN=(e,t)=>{let n,r,i,o;const s=e.window;for(;;){if(e.lookahead<=mi){if(Rs(e),e.lookahead<=mi&&t===gi)return Lt;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=me&&e.strstart>0&&(i=e.strstart-1,r=s[i],r===s[++i]&&r===s[++i]&&r===s[++i])){o=e.strstart+mi;do;while(r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&i<o);e.match_length=mi-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=me?(n=pi(e,1,e.match_length-me),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=pi(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(tn(e,!1),e.strm.avail_out===0))return Lt}return e.insert=0,t===yn?(tn(e,!0),e.strm.avail_out===0?xo:Ds):e.sym_next&&(tn(e,!1),e.strm.avail_out===0)?Lt:Bs},MN=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(Rs(e),e.lookahead===0)){if(t===gi)return Lt;break}if(e.match_length=0,n=pi(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(tn(e,!1),e.strm.avail_out===0))return Lt}return e.insert=0,t===yn?(tn(e,!0),e.strm.avail_out===0?xo:Ds):e.sym_next&&(tn(e,!1),e.strm.avail_out===0)?Lt:Bs};function ir(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 iu=[new ir(0,0,0,0,a3),new ir(4,4,8,4,fg),new ir(4,5,16,8,fg),new ir(4,6,32,32,fg),new ir(4,4,16,16,Fs),new ir(8,16,32,32,Fs),new ir(8,16,128,128,Fs),new ir(8,32,128,256,Fs),new ir(32,128,258,1024,Fs),new ir(32,258,258,4096,Fs)],PN=e=>{e.window_size=2*e.w_size,bi(e.head),e.max_lazy_match=iu[e.level].max_lazy,e.good_match=iu[e.level].good_length,e.nice_match=iu[e.level].nice_length,e.max_chain_length=iu[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=me-1,e.match_available=0,e.ins_h=0};function LN(){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=Qf,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(kN*2),this.dyn_dtree=new Uint16Array((2*CN+1)*2),this.bl_tree=new Uint16Array((2*TN+1)*2),bi(this.dyn_ltree),bi(this.dyn_dtree),bi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(IN+1),this.heap=new Uint16Array(2*ig+1),bi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*ig+1),bi(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 ou=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==Is&&t.status!==og&&t.status!==sg&&t.status!==ag&&t.status!==lg&&t.status!==ug&&t.status!==Ao&&t.status!==nu?1:0},l3=e=>{if(ou(e))return Eo(e,nr);e.total_in=e.total_out=0,e.data_type=xN;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?og:t.wrap?Is:Ao,e.adler=t.wrap===2?0:1,t.last_flush=-2,fN(t),At},u3=e=>{const t=l3(e);return t===At&&PN(e.state),t},NN=(e,t)=>ou(e)||e.state.wrap!==2?nr:(e.state.gzhead=t,At),c3=(e,t,n,r,i,o)=>{if(!e)return nr;let s=1;if(t===bN&&(t=6),r<0?(s=0,r=-r):r>15&&(s=2,r-=16),i<1||i>EN||n!==Qf||r<8||r>15||t<0||t>9||o<0||o>vN||r===8&&s!==1)return Eo(e,nr);r===8&&(r=9);const a=new LN;return e.state=a,a.strm=e,a.status=Is,a.wrap=s,a.gzhead=null,a.w_bits=r,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=i+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+me-1)/me),a.window=new Uint8Array(a.w_size*2),a.head=new Uint16Array(a.hash_size),a.prev=new Uint16Array(a.w_size),a.lit_bufsize=1<<i+6,a.pending_buf_size=a.lit_bufsize*4,a.pending_buf=new Uint8Array(a.pending_buf_size),a.sym_buf=a.lit_bufsize,a.sym_end=(a.lit_bufsize-1)*3,a.level=t,a.strategy=o,a.method=n,u3(e)},ON=(e,t)=>c3(e,t,Qf,_N,SN,AN),zN=(e,t)=>{if(ou(e)||t>r3||t<0)return e?Eo(e,nr):nr;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===nu&&t!==yn)return Eo(e,e.avail_out===0?rg:nr);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(en(e),e.avail_out===0)return n.last_flush=-1,At}else if(e.avail_in===0&&o3(t)<=o3(r)&&t!==yn)return Eo(e,rg);if(n.status===nu&&e.avail_in!==0)return Eo(e,rg);if(n.status===Is&&n.wrap===0&&(n.status=Ao),n.status===Is){let i=Qf+(n.w_bits-8<<4)<<8,o=-1;if(n.strategy>=Yf||n.level<2?o=0:n.level<6?o=1:n.level===6?o=2:o=3,i|=o<<6,n.strstart!==0&&(i|=BN),i+=31-i%31,ru(n,i),n.strstart!==0&&(ru(n,e.adler>>>16),ru(n,e.adler&65535)),e.adler=1,n.status=Ao,en(e),n.pending!==0)return n.last_flush=-1,At}if(n.status===og){if(e.adler=0,Ce(n,31),Ce(n,139),Ce(n,8),n.gzhead)Ce(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)),Ce(n,n.gzhead.time&255),Ce(n,n.gzhead.time>>8&255),Ce(n,n.gzhead.time>>16&255),Ce(n,n.gzhead.time>>24&255),Ce(n,n.level===9?2:n.strategy>=Yf||n.level<2?4:0),Ce(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(Ce(n,n.gzhead.extra.length&255),Ce(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=mt(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=sg;else if(Ce(n,0),Ce(n,0),Ce(n,0),Ce(n,0),Ce(n,0),Ce(n,n.level===9?2:n.strategy>=Yf||n.level<2?4:0),Ce(n,DN),n.status=Ao,en(e),n.pending!==0)return n.last_flush=-1,At}if(n.status===sg){if(n.gzhead.extra){let i=n.pending,o=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+o>n.pending_buf_size;){let a=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(e.adler=mt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=a,en(e),n.pending!==0)return n.last_flush=-1,At;i=0,o-=a}let s=new Uint8Array(n.gzhead.extra);n.pending_buf.set(s.subarray(n.gzindex,n.gzindex+o),n.pending),n.pending+=o,n.gzhead.hcrc&&n.pending>i&&(e.adler=mt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=ag}if(n.status===ag){if(n.gzhead.name){let i=n.pending,o;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=mt(e.adler,n.pending_buf,n.pending-i,i)),en(e),n.pending!==0)return n.last_flush=-1,At;i=0}n.gzindex<n.gzhead.name.length?o=n.gzhead.name.charCodeAt(n.gzindex++)&255:o=0,Ce(n,o)}while(o!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=mt(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=lg}if(n.status===lg){if(n.gzhead.comment){let i=n.pending,o;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=mt(e.adler,n.pending_buf,n.pending-i,i)),en(e),n.pending!==0)return n.last_flush=-1,At;i=0}n.gzindex<n.gzhead.comment.length?o=n.gzhead.comment.charCodeAt(n.gzindex++)&255:o=0,Ce(n,o)}while(o!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=mt(e.adler,n.pending_buf,n.pending-i,i))}n.status=ug}if(n.status===ug){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(en(e),n.pending!==0))return n.last_flush=-1,At;Ce(n,e.adler&255),Ce(n,e.adler>>8&255),e.adler=0}if(n.status=Ao,en(e),n.pending!==0)return n.last_flush=-1,At}if(e.avail_in!==0||n.lookahead!==0||t!==gi&&n.status!==nu){let i=n.level===0?a3(n,t):n.strategy===Yf?MN(n,t):n.strategy===wN?FN(n,t):iu[n.level].func(n,t);if((i===xo||i===Ds)&&(n.status=nu),i===Lt||i===xo)return e.avail_out===0&&(n.last_flush=-1),At;if(i===Bs&&(t===pN?dN(n):t!==r3&&(ng(n,0,0,!1),t===gN&&(bi(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),en(e),e.avail_out===0))return n.last_flush=-1,At}return t!==yn?At:n.wrap<=0?i3:(n.wrap===2?(Ce(n,e.adler&255),Ce(n,e.adler>>8&255),Ce(n,e.adler>>16&255),Ce(n,e.adler>>24&255),Ce(n,e.total_in&255),Ce(n,e.total_in>>8&255),Ce(n,e.total_in>>16&255),Ce(n,e.total_in>>24&255)):(ru(n,e.adler>>>16),ru(n,e.adler&65535)),en(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?At:i3)},UN=e=>{if(ou(e))return nr;const t=e.state.status;return e.state=null,t===Ao?Eo(e,mN):At},GN=(e,t)=>{let n=t.length;if(ou(e))return nr;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==Is||r.lookahead)return nr;if(i===1&&(e.adler=eu(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(bi(r.head),r.strstart=0,r.block_start=0,r.insert=0);let u=new Uint8Array(r.w_size);u.set(t.subarray(n-r.w_size,n),0),t=u,n=r.w_size}const o=e.avail_in,s=e.next_in,a=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,Rs(r);r.lookahead>=me;){let u=r.strstart,l=r.lookahead-(me-1);do r.ins_h=yi(r,r.ins_h,r.window[u+me-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=me-1,Rs(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=me-1,r.match_available=0,e.next_in=s,e.input=a,e.avail_in=o,r.wrap=i,At};var HN=ON,VN=c3,jN=u3,$N=l3,qN=NN,WN=zN,ZN=UN,YN=GN,QN="pako deflate (from Nodeca project)",su={deflateInit:HN,deflateInit2:VN,deflateReset:jN,deflateResetKeep:$N,deflateSetHeader:qN,deflate:WN,deflateEnd:ZN,deflateSetDictionary:YN,deflateInfo:QN};const XN=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var KN=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)XN(n,r)&&(e[r]=n[r])}}return e},JN=e=>{let t=0;for(let r=0,i=e.length;r<i;r++)t+=e[r].length;const n=new Uint8Array(t);for(let r=0,i=0,o=e.length;r<o;r++){let s=e[r];n.set(s,i),i+=s.length}return n},Xf={assign:KN,flattenChunks:JN};let f3=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{f3=!1}const au=new Uint8Array(256);for(let e=0;e<256;e++)au[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;au[254]=au[254]=1;var eO=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,o,s=e.length,a=0;for(i=0;i<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<s&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),a+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(a),o=0,i=0;o<a;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<s&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[o++]=n:n<2048?(t[o++]=192|n>>>6,t[o++]=128|n&63):n<65536?(t[o++]=224|n>>>12,t[o++]=128|n>>>6&63,t[o++]=128|n&63):(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63,t[o++]=128|n>>>6&63,t[o++]=128|n&63);return t};const tO=(e,t)=>{if(t<65534&&e.subarray&&f3)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 nO=(e,t)=>{const n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let r,i;const o=new Array(n*2);for(i=0,r=0;r<n;){let s=e[r++];if(s<128){o[i++]=s;continue}let a=au[s];if(a>4){o[i++]=65533,r+=a-1;continue}for(s&=a===2?31:a===3?15:7;a>1&&r<n;)s=s<<6|e[r++]&63,a--;if(a>1){o[i++]=65533;continue}s<65536?o[i++]=s:(s-=65536,o[i++]=55296|s>>10&1023,o[i++]=56320|s&1023)}return tO(o,i)},rO=(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+au[e[n]]>t?n:t},lu={string2buf:eO,buf2string:nO,utf8border:rO};function iO(){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 h3=iO;const d3=Object.prototype.toString,{Z_NO_FLUSH:oO,Z_SYNC_FLUSH:sO,Z_FULL_FLUSH:aO,Z_FINISH:lO,Z_OK:Kf,Z_STREAM_END:uO,Z_DEFAULT_COMPRESSION:cO,Z_DEFAULT_STRATEGY:fO,Z_DEFLATED:hO}=tu;function hg(e){this.options=Xf.assign({level:cO,method:hO,chunkSize:16384,windowBits:15,memLevel:8,strategy:fO},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 h3,this.strm.avail_out=0;let n=su.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Kf)throw new Error(ks[n]);if(t.header&&su.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=lu.string2buf(t.dictionary):d3.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=su.deflateSetDictionary(this.strm,r),n!==Kf)throw new Error(ks[n]);this._dict_set=!0}}hg.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let i,o;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?lO:oO,typeof e=="string"?n.input=lu.string2buf(e):d3.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(o===sO||o===aO)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=su.deflate(n,o),i===uO)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=su.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===Kf;if(n.avail_out===0){this.onData(n.output);continue}if(o>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0},hg.prototype.onData=function(e){this.chunks.push(e)},hg.prototype.onEnd=function(e){e===Kf&&(this.result=Xf.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const Jf=16209,dO=16191;var pO=function(t,n){let r,i,o,s,a,u,l,c,f,h,d,p,m,y,w,x,S,_,T,B,I,D,M,G;const N=t.state;r=t.next_in,M=t.input,i=r+(t.avail_in-5),o=t.next_out,G=t.output,s=o-(n-t.avail_out),a=o+(t.avail_out-257),u=N.dmax,l=N.wsize,c=N.whave,f=N.wnext,h=N.window,d=N.hold,p=N.bits,m=N.lencode,y=N.distcode,w=(1<<N.lenbits)-1,x=(1<<N.distbits)-1;e:do{p<15&&(d+=M[r++]<<p,p+=8,d+=M[r++]<<p,p+=8),S=m[d&w];t:for(;;){if(_=S>>>24,d>>>=_,p-=_,_=S>>>16&255,_===0)G[o++]=S&65535;else if(_&16){T=S&65535,_&=15,_&&(p<_&&(d+=M[r++]<<p,p+=8),T+=d&(1<<_)-1,d>>>=_,p-=_),p<15&&(d+=M[r++]<<p,p+=8,d+=M[r++]<<p,p+=8),S=y[d&x];n:for(;;){if(_=S>>>24,d>>>=_,p-=_,_=S>>>16&255,_&16){if(B=S&65535,_&=15,p<_&&(d+=M[r++]<<p,p+=8,p<_&&(d+=M[r++]<<p,p+=8)),B+=d&(1<<_)-1,B>u){t.msg="invalid distance too far back",N.mode=Jf;break e}if(d>>>=_,p-=_,_=o-s,B>_){if(_=B-_,_>c&&N.sane){t.msg="invalid distance too far back",N.mode=Jf;break e}if(I=0,D=h,f===0){if(I+=l-_,_<T){T-=_;do G[o++]=h[I++];while(--_);I=o-B,D=G}}else if(f<_){if(I+=l+f-_,_-=f,_<T){T-=_;do G[o++]=h[I++];while(--_);if(I=0,f<T){_=f,T-=_;do G[o++]=h[I++];while(--_);I=o-B,D=G}}}else if(I+=f-_,_<T){T-=_;do G[o++]=h[I++];while(--_);I=o-B,D=G}for(;T>2;)G[o++]=D[I++],G[o++]=D[I++],G[o++]=D[I++],T-=3;T&&(G[o++]=D[I++],T>1&&(G[o++]=D[I++]))}else{I=o-B;do G[o++]=G[I++],G[o++]=G[I++],G[o++]=G[I++],T-=3;while(T>2);T&&(G[o++]=G[I++],T>1&&(G[o++]=G[I++]))}}else if(_&64){t.msg="invalid distance code",N.mode=Jf;break e}else{S=y[(S&65535)+(d&(1<<_)-1)];continue n}break}}else if(_&64)if(_&32){N.mode=dO;break e}else{t.msg="invalid literal/length code",N.mode=Jf;break e}else{S=m[(S&65535)+(d&(1<<_)-1)];continue t}break}}while(r<i&&o<a);T=p>>3,r-=T,p-=T<<3,d&=(1<<p)-1,t.next_in=r,t.next_out=o,t.avail_in=r<i?5+(i-r):5-(r-i),t.avail_out=o<a?257+(a-o):257-(o-a),N.hold=d,N.bits=p};const Ms=15,p3=852,g3=592,m3=0,dg=1,b3=2,gO=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),mO=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),bO=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]),yO=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 uu=(e,t,n,r,i,o,s,a)=>{const u=a.bits;let l=0,c=0,f=0,h=0,d=0,p=0,m=0,y=0,w=0,x=0,S,_,T,B,I,D=null,M;const G=new Uint16Array(Ms+1),N=new Uint16Array(Ms+1);let ne=null,ie,pe,be;for(l=0;l<=Ms;l++)G[l]=0;for(c=0;c<r;c++)G[t[n+c]]++;for(d=u,h=Ms;h>=1&&G[h]===0;h--);if(d>h&&(d=h),h===0)return i[o++]=1<<24|64<<16|0,i[o++]=1<<24|64<<16|0,a.bits=1,0;for(f=1;f<h&&G[f]===0;f++);for(d<f&&(d=f),y=1,l=1;l<=Ms;l++)if(y<<=1,y-=G[l],y<0)return-1;if(y>0&&(e===m3||h!==1))return-1;for(N[1]=0,l=1;l<Ms;l++)N[l+1]=N[l]+G[l];for(c=0;c<r;c++)t[n+c]!==0&&(s[N[t[n+c]]++]=c);if(e===m3?(D=ne=s,M=20):e===dg?(D=gO,ne=mO,M=257):(D=bO,ne=yO,M=0),x=0,c=0,l=f,I=o,p=d,m=0,T=-1,w=1<<d,B=w-1,e===dg&&w>p3||e===b3&&w>g3)return 1;for(;;){ie=l-m,s[c]+1<M?(pe=0,be=s[c]):s[c]>=M?(pe=ne[s[c]-M],be=D[s[c]-M]):(pe=96,be=0),S=1<<l-m,_=1<<p,f=_;do _-=S,i[I+(x>>m)+_]=ie<<24|pe<<16|be|0;while(_!==0);for(S=1<<l-1;x&S;)S>>=1;if(S!==0?(x&=S-1,x+=S):x=0,c++,--G[l]===0){if(l===h)break;l=t[n+s[c]]}if(l>d&&(x&B)!==T){for(m===0&&(m=d),I+=f,p=l-m,y=1<<p;p+m<h&&(y-=G[p+m],!(y<=0));)p++,y<<=1;if(w+=1<<p,e===dg&&w>p3||e===b3&&w>g3)return 1;T=x&B,i[T]=d<<24|p<<16|I-o|0}}return x!==0&&(i[I+x]=l-m<<24|64<<16|0),a.bits=d,0};const wO=0,y3=1,w3=2,{Z_FINISH:v3,Z_BLOCK:vO,Z_TREES:eh,Z_OK:_o,Z_STREAM_END:AO,Z_NEED_DICT:xO,Z_STREAM_ERROR:wn,Z_DATA_ERROR:A3,Z_MEM_ERROR:x3,Z_BUF_ERROR:EO,Z_DEFLATED:E3}=tu,th=16180,_3=16181,S3=16182,C3=16183,T3=16184,k3=16185,I3=16186,B3=16187,D3=16188,R3=16189,nh=16190,_r=16191,pg=16192,F3=16193,gg=16194,M3=16195,P3=16196,L3=16197,N3=16198,rh=16199,ih=16200,O3=16201,z3=16202,U3=16203,G3=16204,H3=16205,mg=16206,V3=16207,j3=16208,Xe=16209,$3=16210,q3=16211,_O=852,SO=592,CO=15,W3=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function TO(){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 So=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<th||t.mode>q3?1:0},Z3=e=>{if(So(e))return wn;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=th,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(_O),t.distcode=t.distdyn=new Int32Array(SO),t.sane=1,t.back=-1,_o},Y3=e=>{if(So(e))return wn;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Z3(e)},Q3=(e,t)=>{let n;if(So(e))return wn;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?wn:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,Y3(e))},X3=(e,t)=>{if(!e)return wn;const n=new TO;e.state=n,n.strm=e,n.window=null,n.mode=th;const r=Q3(e,t);return r!==_o&&(e.state=null),r},kO=e=>X3(e,CO);let K3=!0,bg,yg;const IO=e=>{if(K3){bg=new Int32Array(512),yg=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(uu(y3,e.lens,0,288,bg,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;uu(w3,e.lens,0,32,yg,0,e.work,{bits:5}),K3=!1}e.lencode=bg,e.lenbits=9,e.distcode=yg,e.distbits=5},J3=(e,t,n,r)=>{let i;const o=e.state;return o.window===null&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Uint8Array(o.wsize)),r>=o.wsize?(o.window.set(t.subarray(n-o.wsize,n),0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),o.window.set(t.subarray(n-r,n-r+i),o.wnext),r-=i,r?(o.window.set(t.subarray(n-r,n),0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=i))),0},BO=(e,t)=>{let n,r,i,o,s,a,u,l,c,f,h,d,p,m,y=0,w,x,S,_,T,B,I,D;const M=new Uint8Array(4);let G,N;const ne=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(So(e)||!e.output||!e.input&&e.avail_in!==0)return wn;n=e.state,n.mode===_r&&(n.mode=pg),s=e.next_out,i=e.output,u=e.avail_out,o=e.next_in,r=e.input,a=e.avail_in,l=n.hold,c=n.bits,f=a,h=u,D=_o;e:for(;;)switch(n.mode){case th:if(n.wrap===0){n.mode=pg;break}for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(n.wrap&2&&l===35615){n.wbits===0&&(n.wbits=15),n.check=0,M[0]=l&255,M[1]=l>>>8&255,n.check=mt(n.check,M,2,0),l=0,c=0,n.mode=_3;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",n.mode=Xe;break}if((l&15)!==E3){e.msg="unknown compression method",n.mode=Xe;break}if(l>>>=4,c-=4,I=(l&15)+8,n.wbits===0&&(n.wbits=I),I>15||I>n.wbits){e.msg="invalid window size",n.mode=Xe;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=l&512?R3:_r,l=0,c=0;break;case _3:for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(n.flags=l,(n.flags&255)!==E3){e.msg="unknown compression method",n.mode=Xe;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=Xe;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=mt(n.check,M,2,0)),l=0,c=0,n.mode=S3;case S3:for(;c<32;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.head&&(n.head.time=l),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,M[2]=l>>>16&255,M[3]=l>>>24&255,n.check=mt(n.check,M,4,0)),l=0,c=0,n.mode=C3;case C3:for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=mt(n.check,M,2,0)),l=0,c=0,n.mode=T3;case T3:if(n.flags&1024){for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&n.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,n.check=mt(n.check,M,2,0)),l=0,c=0}else n.head&&(n.head.extra=null);n.mode=k3;case k3:if(n.flags&1024&&(d=n.length,d>a&&(d=a),d&&(n.head&&(I=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(o,o+d),I)),n.flags&512&&n.wrap&4&&(n.check=mt(n.check,r,d,o)),a-=d,o+=d,n.length-=d),n.length))break e;n.length=0,n.mode=I3;case I3:if(n.flags&2048){if(a===0)break e;d=0;do I=r[o+d++],n.head&&I&&n.length<65536&&(n.head.name+=String.fromCharCode(I));while(I&&d<a);if(n.flags&512&&n.wrap&4&&(n.check=mt(n.check,r,d,o)),a-=d,o+=d,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=B3;case B3:if(n.flags&4096){if(a===0)break e;d=0;do I=r[o+d++],n.head&&I&&n.length<65536&&(n.head.comment+=String.fromCharCode(I));while(I&&d<a);if(n.flags&512&&n.wrap&4&&(n.check=mt(n.check,r,d,o)),a-=d,o+=d,I)break e}else n.head&&(n.head.comment=null);n.mode=D3;case D3:if(n.flags&512){for(;c<16;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(n.wrap&4&&l!==(n.check&65535)){e.msg="header crc mismatch",n.mode=Xe;break}l=0,c=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=_r;break;case R3:for(;c<32;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}e.adler=n.check=W3(l),l=0,c=0,n.mode=nh;case nh:if(n.havedict===0)return e.next_out=s,e.avail_out=u,e.next_in=o,e.avail_in=a,n.hold=l,n.bits=c,xO;e.adler=n.check=1,n.mode=_r;case _r:if(t===vO||t===eh)break e;case pg:if(n.last){l>>>=c&7,c-=c&7,n.mode=mg;break}for(;c<3;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}switch(n.last=l&1,l>>>=1,c-=1,l&3){case 0:n.mode=F3;break;case 1:if(IO(n),n.mode=rh,t===eh){l>>>=2,c-=2;break e}break;case 2:n.mode=P3;break;case 3:e.msg="invalid block type",n.mode=Xe}l>>>=2,c-=2;break;case F3:for(l>>>=c&7,c-=c&7;c<32;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=Xe;break}if(n.length=l&65535,l=0,c=0,n.mode=gg,t===eh)break e;case gg:n.mode=M3;case M3:if(d=n.length,d){if(d>a&&(d=a),d>u&&(d=u),d===0)break e;i.set(r.subarray(o,o+d),s),a-=d,o+=d,u-=d,s+=d,n.length-=d;break}n.mode=_r;break;case P3:for(;c<14;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(n.nlen=(l&31)+257,l>>>=5,c-=5,n.ndist=(l&31)+1,l>>>=5,c-=5,n.ncode=(l&15)+4,l>>>=4,c-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=Xe;break}n.have=0,n.mode=L3;case L3:for(;n.have<n.ncode;){for(;c<3;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.lens[ne[n.have++]]=l&7,l>>>=3,c-=3}for(;n.have<19;)n.lens[ne[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,G={bits:n.lenbits},D=uu(wO,n.lens,0,19,n.lencode,0,n.work,G),n.lenbits=G.bits,D){e.msg="invalid code lengths set",n.mode=Xe;break}n.have=0,n.mode=N3;case N3:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,x=y>>>16&255,S=y&65535,!(w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(S<16)l>>>=w,c-=w,n.lens[n.have++]=S;else{if(S===16){for(N=w+2;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(l>>>=w,c-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=Xe;break}I=n.lens[n.have-1],d=3+(l&3),l>>>=2,c-=2}else if(S===17){for(N=w+3;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}l>>>=w,c-=w,I=0,d=3+(l&7),l>>>=3,c-=3}else{for(N=w+7;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}l>>>=w,c-=w,I=0,d=11+(l&127),l>>>=7,c-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=Xe;break}for(;d--;)n.lens[n.have++]=I}}if(n.mode===Xe)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=Xe;break}if(n.lenbits=9,G={bits:n.lenbits},D=uu(y3,n.lens,0,n.nlen,n.lencode,0,n.work,G),n.lenbits=G.bits,D){e.msg="invalid literal/lengths set",n.mode=Xe;break}if(n.distbits=6,n.distcode=n.distdyn,G={bits:n.distbits},D=uu(w3,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,G),n.distbits=G.bits,D){e.msg="invalid distances set",n.mode=Xe;break}if(n.mode=rh,t===eh)break e;case rh:n.mode=ih;case ih:if(a>=6&&u>=258){e.next_out=s,e.avail_out=u,e.next_in=o,e.avail_in=a,n.hold=l,n.bits=c,pO(e,h),s=e.next_out,i=e.output,u=e.avail_out,o=e.next_in,r=e.input,a=e.avail_in,l=n.hold,c=n.bits,n.mode===_r&&(n.back=-1);break}for(n.back=0;y=n.lencode[l&(1<<n.lenbits)-1],w=y>>>24,x=y>>>16&255,S=y&65535,!(w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(x&&!(x&240)){for(_=w,T=x,B=S;y=n.lencode[B+((l&(1<<_+T)-1)>>_)],w=y>>>24,x=y>>>16&255,S=y&65535,!(_+w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,n.length=S,x===0){n.mode=H3;break}if(x&32){n.back=-1,n.mode=_r;break}if(x&64){e.msg="invalid literal/length code",n.mode=Xe;break}n.extra=x&15,n.mode=O3;case O3:if(n.extra){for(N=n.extra;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=z3;case z3:for(;y=n.distcode[l&(1<<n.distbits)-1],w=y>>>24,x=y>>>16&255,S=y&65535,!(w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(!(x&240)){for(_=w,T=x,B=S;y=n.distcode[B+((l&(1<<_+T)-1)>>_)],w=y>>>24,x=y>>>16&255,S=y&65535,!(_+w<=c);){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}l>>>=_,c-=_,n.back+=_}if(l>>>=w,c-=w,n.back+=w,x&64){e.msg="invalid distance code",n.mode=Xe;break}n.offset=S,n.extra=x&15,n.mode=U3;case U3:if(n.extra){for(N=n.extra;c<N;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,c-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=Xe;break}n.mode=G3;case G3: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=Xe;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=s-n.offset,d=n.length;d>u&&(d=u),u-=d,n.length-=d;do i[s++]=m[p++];while(--d);n.length===0&&(n.mode=ih);break;case H3:if(u===0)break e;i[s++]=n.length,u--,n.mode=ih;break;case mg:if(n.wrap){for(;c<32;){if(a===0)break e;a--,l|=r[o++]<<c,c+=8}if(h-=u,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?mt(n.check,i,h,s-h):eu(n.check,i,h,s-h)),h=u,n.wrap&4&&(n.flags?l:W3(l))!==n.check){e.msg="incorrect data check",n.mode=Xe;break}l=0,c=0}n.mode=V3;case V3:if(n.wrap&&n.flags){for(;c<32;){if(a===0)break e;a--,l+=r[o++]<<c,c+=8}if(n.wrap&4&&l!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=Xe;break}l=0,c=0}n.mode=j3;case j3:D=AO;break e;case Xe:D=A3;break e;case $3:return x3;case q3:default:return wn}return e.next_out=s,e.avail_out=u,e.next_in=o,e.avail_in=a,n.hold=l,n.bits=c,(n.wsize||h!==e.avail_out&&n.mode<Xe&&(n.mode<mg||t!==v3))&&J3(e,e.output,e.next_out,h-e.avail_out),f-=e.avail_in,h-=e.avail_out,e.total_in+=f,e.total_out+=h,n.total+=h,n.wrap&4&&h&&(e.adler=n.check=n.flags?mt(n.check,i,h,e.next_out-h):eu(n.check,i,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===_r?128:0)+(n.mode===rh||n.mode===gg?256:0),(f===0&&h===0||t===v3)&&D===_o&&(D=EO),D},DO=e=>{if(So(e))return wn;let t=e.state;return t.window&&(t.window=null),e.state=null,_o},RO=(e,t)=>{if(So(e))return wn;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,_o):wn},FO=(e,t)=>{const n=t.length;let r,i,o;return So(e)||(r=e.state,r.wrap!==0&&r.mode!==nh)?wn:r.mode===nh&&(i=1,i=eu(i,t,n,0),i!==r.check)?A3:(o=J3(e,t,n,n),o?(r.mode=$3,x3):(r.havedict=1,_o))};var MO=Y3,PO=Q3,LO=Z3,NO=kO,OO=X3,zO=BO,UO=DO,GO=RO,HO=FO,VO="pako inflate (from Nodeca project)",Sr={inflateReset:MO,inflateReset2:PO,inflateResetKeep:LO,inflateInit:NO,inflateInit2:OO,inflate:zO,inflateEnd:UO,inflateGetHeader:GO,inflateSetDictionary:HO,inflateInfo:VO};function jO(){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 $O=jO;const eE=Object.prototype.toString,{Z_NO_FLUSH:qO,Z_FINISH:WO,Z_OK:cu,Z_STREAM_END:wg,Z_NEED_DICT:vg,Z_STREAM_ERROR:ZO,Z_DATA_ERROR:tE,Z_MEM_ERROR:YO}=tu;function fu(e){this.options=Xf.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 h3,this.strm.avail_out=0;let n=Sr.inflateInit2(this.strm,t.windowBits);if(n!==cu)throw new Error(ks[n]);if(this.header=new $O,Sr.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=lu.string2buf(t.dictionary):eE.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=Sr.inflateSetDictionary(this.strm,t.dictionary),n!==cu)))throw new Error(ks[n])}fu.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let o,s,a;if(this.ended)return!1;for(t===~~t?s=t:s=t===!0?WO:qO,eE.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),o=Sr.inflate(n,s),o===vg&&i&&(o=Sr.inflateSetDictionary(n,i),o===cu?o=Sr.inflate(n,s):o===tE&&(o=vg));n.avail_in>0&&o===wg&&n.state.wrap>0&&e[n.next_in]!==0;)Sr.inflateReset(n),o=Sr.inflate(n,s);switch(o){case ZO:case tE:case vg:case YO:return this.onEnd(o),this.ended=!0,!1}if(a=n.avail_out,n.next_out&&(n.avail_out===0||o===wg))if(this.options.to==="string"){let u=lu.utf8border(n.output,n.next_out),l=n.next_out-u,c=lu.buf2string(n.output,u);n.next_out=l,n.avail_out=r-l,l&&n.output.set(n.output.subarray(u,u+l),0),this.onData(c)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(o===cu&&a===0)){if(o===wg)return o=Sr.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},fu.prototype.onData=function(e){this.chunks.push(e)},fu.prototype.onEnd=function(e){e===cu&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Xf.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Ag(e,t){const n=new fu(t);if(n.push(e),n.err)throw n.msg||ks[n.err];return n.result}function QO(e,t){return t=t||{},t.raw=!0,Ag(e,t)}var XO=fu,KO=Ag,JO=QO,ez=Ag,tz=tu,nz={Inflate:XO,inflate:KO,inflateRaw:JO,ungzip:ez,constants:tz};const{Inflate:iH,inflate:oH,inflateRaw:rz,ungzip:sH}=nz;var iz=rz;function oz(e){return iz(e.subarray(2))}let sz=class extends Error{constructor(t){super(t),this.code="ERR_ABORTED"}};function az(e){e.sort((i,o)=>Number(i.offset)-Number(o.offset));const t=[];let n,r;for(const i of e)n&&r&&Number(i.offset)-r<=2e3?(n.length=BigInt(Number(n.length)+Number(i.length)-r+Number(i.offset)),n.blocks.push(i)):t.push(n={blocks:[i],length:i.length,offset:i.offset}),r=Number(n.offset)+Number(n.length);return t}function oh(e){if(e&&e.aborted)if(typeof DOMException>"u"){const t=new sz("aborted");throw t.code="ERR_ABORTED",t}else throw new DOMException("aborted","AbortError")}const lz=1,uz=2,cz=3;function xg(e,t,n,r){return e<r&&t>=n}function fz(e){const t=e?"big":"little",n=new Me().endianess(t).uint32("chromId").uint32("start").uint32("end").uint32("validCnt").floatle("minScore").floatle("maxScore").floatle("sumData").floatle("sumSqData").saveOffset("offset"),r=new Me().endianess(t).uint8("isLeaf").skip(1).uint16("cnt").choice({tag:"isLeaf",choices:{1:new Me().endianess(t).array("blocksToFetch",{length:"cnt",type:new Me().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").uint64("blockSize").saveOffset("offset")}),0:new Me().array("recurOffsets",{length:"cnt",type:new Me().endianess(t).uint32("startChrom").uint32("startBase").uint32("endChrom").uint32("endBase").uint64("blockOffset").saveOffset("offset")})}}),i=new Me().endianess(t).uint32("chromId").int32("start").int32("end").string("rest",{zeroTerminated:!0}).saveOffset("offset");return{bigWigParser:new Me().endianess(t).skip(4).int32("blockStart").skip(4).uint32("itemStep").uint32("itemSpan").uint8("blockType").skip(1).uint16("itemCount").choice({tag:"blockType",choices:{[cz]:new Me().array("items",{length:"itemCount",type:new Me().floatle("score")}),[uz]:new Me().array("items",{length:"itemCount",type:new Me().endianess(t).int32("start").floatle("score")}),[lz]:new Me().array("items",{length:"itemCount",type:new Me().endianess(t).int32("start").int32("end").floatle("score")})}}),bigBedParser:i,summaryParser:n,leafParser:r}}class nE{constructor(t,n,r,i,o,s){if(this.bbi=t,this.refsByName=n,this.cirTreeOffset=r,this.isBigEndian=i,this.isCompressed=o,this.blockType=s,this.featureCache=new $f({cache:new qf({maxSize:1e3}),fill:async(u,l)=>{const c=Number(u.length),f=Number(u.offset),{buffer:h}=await this.bbi.read(xe.Buffer.alloc(c),0,c,f,{signal:l});return h}}),!(r>=0))throw new Error("invalid cirTreeOffset!");const a=fz(i);this.leafParser=a.leafParser,this.bigBedParser=a.bigBedParser}async readWigData(t,n,r,i,o){try{const{refsByName:s,bbi:a,cirTreeOffset:u,isBigEndian:l}=this,c=s[t];c===void 0&&i.complete();const f={chrId:c,start:n,end:r};this.cirTreePromise||(this.cirTreePromise=a.read(xe.Buffer.alloc(48),0,48,Number(u),o));const{buffer:h}=await this.cirTreePromise,d=l?h.readUInt32BE(4):h.readUInt32LE(4);let p=[],m=0;const y=(_,T,B)=>{try{const I=_.subarray(T),D=this.leafParser.parse(I);if(D.blocksToFetch&&(p=p.concat(D.blocksToFetch.filter(M=>w(M)).map(M=>({offset:M.blockOffset,length:M.blockSize})))),D.recurOffsets){const M=D.recurOffsets.filter(G=>w(G)).map(G=>Number(G.blockOffset));M.length>0&&S(M,B+1)}}catch(I){i.error(I)}},w=_=>{const{startChrom:T,startBase:B,endChrom:I,endBase:D}=_;return(T<c||T===c&&B<=r)&&(I>c||I===c&&D>=n)},x=async(_,T,B)=>{try{const I=T.max-T.min,D=T.min,M=await this.featureCache.get(`${I}_${D}`,{length:I,offset:D},o==null?void 0:o.signal);for(const G of _)T.contains(G)&&(y(M,G-D,B),m-=1,m===0&&this.readFeatures(i,p,{...o,request:f}).catch(N=>i.error(N)))}catch(I){i.error(I)}},S=(_,T)=>{try{m+=_.length;const B=4+Number(d)*32;let I=new Ss([{min:_[0],max:_[0]+B}]);for(let D=1;D<_.length;D+=1){const M=new Ss([{min:_[D],max:_[D]+B}]);I=I.union(M)}I.getRanges().map(D=>x(_,D,T))}catch(B){i.error(B)}};return S([Number(u)+48],1)}catch(s){i.error(s)}}parseSummaryBlock(t,n,r){const i=[];let o=n;const s=new DataView(t.buffer,t.byteOffset,t.length);for(;o<t.byteLength;){const a=s.getUint32(o,!0);o+=4;const u=s.getUint32(o,!0);o+=4;const l=s.getUint32(o,!0);o+=4;const c=s.getUint32(o,!0);o+=4;const f=s.getFloat32(o,!0);o+=4;const h=s.getFloat32(o,!0);o+=4;const d=s.getFloat32(o,!0);o+=4,o+=4,(!r||a===r.chrId&&xg(u,l,r.start,r.end))&&i.push({start:u,end:l,maxScore:h,minScore:f,summary:!0,score:d/(c||1)})}return i}parseBigBedBlock(t,n,r,i){const o=[];let s=n;for(;s<t.byteLength;){const a=this.bigBedParser.parse(t.subarray(s));a.uniqueId=`bb-${r+s}`,o.push(a),s+=a.offset}return i?o.filter(a=>xg(a.start,a.end,i.start,i.end)):o}parseBigWigBlock(t,n,r){const i=t.subarray(n),o=new DataView(i.buffer,i.byteOffset,i.length);let s=0;s+=4;const a=o.getInt32(s,!0);s+=8;const u=o.getUint32(s,!0);s+=4;const l=o.getUint32(s,!0);s+=4;const c=o.getUint8(s);s+=2;const f=o.getUint16(s,!0);s+=2;const h=new Array(f);switch(c){case 1:{for(let d=0;d<f;d++){const p=o.getInt32(s,!0);s+=4;const m=o.getInt32(s,!0);s+=4;const y=o.getFloat32(s,!0);s+=4,h[d]={start:p,end:m,score:y}}break}case 2:{for(let d=0;d<f;d++){const p=o.getInt32(s,!0);s+=4;const m=o.getFloat32(s,!0);s+=4,h[d]={score:m,start:p,end:p+l}}break}case 3:{for(let d=0;d<f;d++){const p=o.getFloat32(s,!0);s+=4;const m=a+d*u;h[d]={score:p,start:m,end:m+l}}break}}return r?h.filter(d=>xg(d.start,d.end,r.start,r.end)):h}async readFeatures(t,n,r={}){try{const{blockType:i,isCompressed:o}=this,{signal:s,request:a}=r,u=az(n);oh(s),await Promise.all(u.map(async l=>{oh(s);const{length:c,offset:f}=l,h=await this.featureCache.get(`${c}_${f}`,l,s);for(const d of l.blocks){oh(s);let p=Number(d.offset)-Number(l.offset),m=h;switch(o&&(m=oz(h.subarray(p)),p=0),oh(s),i){case"summary":{t.next(this.parseSummaryBlock(m,p,a));break}case"bigwig":{t.next(this.parseBigWigBlock(m,p,a));break}case"bigbed":{t.next(this.parseBigBedBlock(m,p,Number(d.offset)*256,a));break}default:console.warn(`Don't know what to do with ${i}`)}}})),t.complete()}catch(i){t.error(i)}}}var Eg=function(e,t){return Eg=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])},Eg(e,t)};function _g(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Eg(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function hz(e,t,n,r){function i(o){return o instanceof n?o:new n(function(s){s(o)})}return new(n||(n=Promise))(function(o,s){function a(c){try{l(r.next(c))}catch(f){s(f)}}function u(c){try{l(r.throw(c))}catch(f){s(f)}}function l(c){c.done?o(c.value):i(c.value).then(a,u)}l((r=r.apply(e,t||[])).next())})}function rE(e,t){var n={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},r,i,o,s;return s={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function a(l){return function(c){return u([l,c])}}function u(l){if(r)throw new TypeError("Generator is already executing.");for(;s&&(s=0,l[0]&&(n=0)),n;)try{if(r=1,i&&(o=l[0]&2?i.return:l[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,l[1])).done)return o;switch(i=0,o&&(l=[l[0]&2,o.value]),l[0]){case 0:case 1:o=l;break;case 4:return n.label++,{value:l[1],done:!1};case 5:n.label++,i=l[1],l=[0];continue;case 7:l=n.ops.pop(),n.trys.pop();continue;default:if(o=n.trys,!(o=o.length>0&&o[o.length-1])&&(l[0]===6||l[0]===2)){n=0;continue}if(l[0]===3&&(!o||l[1]>o[0]&&l[1]<o[3])){n.label=l[1];break}if(l[0]===6&&n.label<o[1]){n.label=o[1],o=l;break}if(o&&n.label<o[2]){n.label=o[2],n.ops.push(l);break}o[2]&&n.ops.pop(),n.trys.pop();continue}l=t.call(e,n)}catch(c){l=[6,c],i=0}finally{r=o=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function hu(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 Sg(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,o=[],s;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)o.push(i.value)}catch(a){s={error:a}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(s)throw s.error}}return o}function Cg(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,o;r<i;r++)(o||!(r in t))&&(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return e.concat(o||Array.prototype.slice.call(t))}function Ps(e){return this instanceof Ps?(this.v=e,this):new Ps(e)}function dz(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),i,o=[];return i={},s("next"),s("throw"),s("return"),i[Symbol.asyncIterator]=function(){return this},i;function s(h){r[h]&&(i[h]=function(d){return new Promise(function(p,m){o.push([h,d,p,m])>1||a(h,d)})})}function a(h,d){try{u(r[h](d))}catch(p){f(o[0][3],p)}}function u(h){h.value instanceof Ps?Promise.resolve(h.value.v).then(l,c):f(o[0][2],h)}function l(h){a("next",h)}function c(h){a("throw",h)}function f(h,d){h(d),o.shift(),o.length&&a(o[0][0],o[0][1])}}function pz(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 hu=="function"?hu(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(o){n[o]=e[o]&&function(s){return new Promise(function(a,u){s=e[o](s),i(a,u,s.done,s.value)})}}function i(o,s,a,u){Promise.resolve(u).then(function(l){o({value:l,done:a})},s)}}typeof SuppressedError=="function"&&SuppressedError;function ct(e){return typeof e=="function"}function iE(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 Tg=iE(function(e){return function(n){e(this),this.message=n?n.length+` errors occurred during unsubscription:
|
|
607
613
|
`+n.map(function(r,i){return i+1+") "+r.toString()}).join(`
|
|
608
|
-
`):"",this.name="UnsubscriptionError",this.errors=n}});function rE(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var Cg=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,n,r,i,o;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var a=hu(s),u=a.next();!u.done;u=a.next()){var l=u.value;l.remove(this)}}catch(m){t={error:m}}finally{try{u&&!u.done&&(n=a.return)&&n.call(a)}finally{if(t)throw t.error}}else s.remove(this);var c=this.initialTeardown;if(ct(c))try{c()}catch(m){o=m instanceof Sg?m.errors:[m]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var h=hu(f),d=h.next();!d.done;d=h.next()){var p=d.value;try{oE(p)}catch(m){o=o??[],m instanceof Sg?o=_g(_g([],Eg(o)),Eg(m.errors)):o.push(m)}}}catch(m){r={error:m}}finally{try{d&&!d.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}}if(o)throw new Sg(o)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)oE(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)&&rE(n,t)},e.prototype.remove=function(t){var n=this._finalizers;n&&rE(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();Cg.EMPTY;function iE(e){return e instanceof Cg||e&&"closed"in e&&ct(e.remove)&&ct(e.add)&&ct(e.unsubscribe)}function oE(e){ct(e)?e():e.unsubscribe()}var sE={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},aE={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return setTimeout.apply(void 0,_g([e,t],Eg(n)))},clearTimeout:function(e){var t=aE.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function lE(e){aE.setTimeout(function(){throw e})}function uE(){}function dz(e){e()}var Tg=function(e){xg(t,e);function t(n){var r=e.call(this)||this;return r.isStopped=!1,n?(r.destination=n,iE(n)&&n.add(r)):r.destination=bz,r}return t.create=function(n,r,i){return new oh(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}(Cg),pz=Function.prototype.bind;function kg(e,t){return pz.call(e,t)}var gz=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){sh(r)}},e.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(r){sh(r)}else sh(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(n){sh(n)}},e}(),oh=function(e){xg(t,e);function t(n,r,i){var o=e.call(this)||this,s;if(ct(n)||!n)s={next:n??void 0,error:r??void 0,complete:i??void 0};else{var a;o&&sE.useDeprecatedNextContext?(a=Object.create(n),a.unsubscribe=function(){return o.unsubscribe()},s={next:n.next&&kg(n.next,a),error:n.error&&kg(n.error,a),complete:n.complete&&kg(n.complete,a)}):s=n}return o.destination=new gz(s),o}return t}(Tg);function sh(e){lE(e)}function mz(e){throw e}var bz={closed:!0,next:uE,error:mz,complete:uE},Ig=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function cE(e){return e}function yz(e){return e.length===0?cE:e.length===1?e[0]:function(n){return e.reduce(function(r,i){return i(r)},n)}}var vn=function(){function e(t){t&&(this._subscribe=t)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(t,n,r){var i=this,o=vz(t)?t:new oh(t,n,r);return dz(function(){var s=i,a=s.operator,u=s.source;o.add(a?a.call(o,u):u?i._subscribe(o):i._trySubscribe(o))}),o},e.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(n){t.error(n)}},e.prototype.forEach=function(t,n){var r=this;return n=fE(n),new n(function(i,o){var s=new oh({next:function(a){try{t(a)}catch(u){o(u),s.unsubscribe()}},error:o,complete:i});r.subscribe(s)})},e.prototype._subscribe=function(t){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(t)},e.prototype[Ig]=function(){return this},e.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return yz(t)(this)},e.prototype.toPromise=function(t){var n=this;return t=fE(t),new t(function(r,i){var o;n.subscribe(function(s){return o=s},function(s){return i(s)},function(){return r(o)})})},e.create=function(t){return new e(t)},e}();function fE(e){var t;return(t=e??sE.Promise)!==null&&t!==void 0?t:Promise}function wz(e){return e&&ct(e.next)&&ct(e.error)&&ct(e.complete)}function vz(e){return e&&e instanceof Tg||wz(e)&&iE(e)}function Az(e){return ct(e==null?void 0:e.lift)}function Ls(e){return function(t){if(Az(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 du(e,t,n,r,i){return new xz(e,t,n,r,i)}var xz=function(e){xg(t,e);function t(n,r,i,o,s,a){var u=e.call(this,n)||this;return u.onFinalize=s,u.shouldUnsubscribe=a,u._next=r?function(l){try{r(l)}catch(c){n.error(c)}}:e.prototype._next,u._error=o?function(l){try{o(l)}catch(c){n.error(c)}finally{this.unsubscribe()}}:e.prototype._error,u._complete=i?function(){try{i()}catch(l){n.error(l)}finally{this.unsubscribe()}}:e.prototype._complete,u}return t.prototype.unsubscribe=function(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;e.prototype.unsubscribe.call(this),!r&&((n=this.onFinalize)===null||n===void 0||n.call(this))}},t}(Tg),Ez=new vn(function(e){return e.complete()});function _z(e){return e&&ct(e.schedule)}function hE(e){return e[e.length-1]}function Sz(e){return _z(hE(e))?e.pop():void 0}function Cz(e,t){return typeof hE(e)=="number"?e.pop():t}var dE=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function pE(e){return ct(e==null?void 0:e.then)}function gE(e){return ct(e[Ig])}function mE(e){return Symbol.asyncIterator&&ct(e==null?void 0:e[Symbol.asyncIterator])}function bE(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 Tz(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var yE=Tz();function wE(e){return ct(e==null?void 0:e[yE])}function vE(e){return fz(this,arguments,function(){var n,r,i,o;return tE(this,function(s){switch(s.label){case 0:n=e.getReader(),s.label=1;case 1:s.trys.push([1,,9,10]),s.label=2;case 2:return[4,Ps(n.read())];case 3:return r=s.sent(),i=r.value,o=r.done,o?[4,Ps(void 0)]:[3,5];case 4:return[2,s.sent()];case 5:return[4,Ps(i)];case 6:return[4,s.sent()];case 7:return s.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function AE(e){return ct(e==null?void 0:e.getReader)}function Ns(e){if(e instanceof vn)return e;if(e!=null){if(gE(e))return kz(e);if(dE(e))return Iz(e);if(pE(e))return Bz(e);if(mE(e))return xE(e);if(wE(e))return Dz(e);if(AE(e))return Rz(e)}throw bE(e)}function kz(e){return new vn(function(t){var n=e[Ig]();if(ct(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Iz(e){return new vn(function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()})}function Bz(e){return new vn(function(t){e.then(function(n){t.closed||(t.next(n),t.complete())},function(n){return t.error(n)}).then(null,lE)})}function Dz(e){return new vn(function(t){var n,r;try{for(var i=hu(e),o=i.next();!o.done;o=i.next()){var s=o.value;if(t.next(s),t.closed)return}}catch(a){n={error:a}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}t.complete()})}function xE(e){return new vn(function(t){Fz(e,t).catch(function(n){return t.error(n)})})}function Rz(e){return xE(vE(e))}function Fz(e,t){var n,r,i,o;return cz(this,void 0,void 0,function(){var s,a;return tE(this,function(u){switch(u.label){case 0:u.trys.push([0,5,6,11]),n=hz(e),u.label=1;case 1:return[4,n.next()];case 2:if(r=u.sent(),!!r.done)return[3,4];if(s=r.value,t.next(s),t.closed)return[2];u.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return a=u.sent(),i={error:a},[3,11];case 6:return u.trys.push([6,,9,10]),r&&!r.done&&(o=n.return)?[4,o.call(n)]:[3,8];case 7:u.sent(),u.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})}function Co(e,t,n,r,i){r===void 0&&(r=0),i===void 0&&(i=!1);var o=t.schedule(function(){n(),i?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(o),!i)return o}function EE(e,t){return t===void 0&&(t=0),Ls(function(n,r){n.subscribe(du(r,function(i){return Co(r,e,function(){return r.next(i)},t)},function(){return Co(r,e,function(){return r.complete()},t)},function(i){return Co(r,e,function(){return r.error(i)},t)}))})}function _E(e,t){return t===void 0&&(t=0),Ls(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function Mz(e,t){return Ns(e).pipe(_E(t),EE(t))}function Pz(e,t){return Ns(e).pipe(_E(t),EE(t))}function Lz(e,t){return new vn(function(n){var r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function Nz(e,t){return new vn(function(n){var r;return Co(n,t,function(){r=e[yE](),Co(n,t,function(){var i,o,s;try{i=r.next(),o=i.value,s=i.done}catch(a){n.error(a);return}s?n.complete():n.next(o)},0,!0)}),function(){return ct(r==null?void 0:r.return)&&r.return()}})}function SE(e,t){if(!e)throw new Error("Iterable cannot be null");return new vn(function(n){Co(n,t,function(){var r=e[Symbol.asyncIterator]();Co(n,t,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function Oz(e,t){return SE(vE(e),t)}function zz(e,t){if(e!=null){if(gE(e))return Mz(e,t);if(dE(e))return Lz(e,t);if(pE(e))return Pz(e,t);if(mE(e))return SE(e,t);if(wE(e))return Nz(e,t);if(AE(e))return Oz(e,t)}throw bE(e)}function Uz(e,t){return t?zz(e,t):Ns(e)}var Gz=nE(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function CE(e,t){return new Promise(function(n,r){var i=new oh({next:function(o){n(o),i.unsubscribe()},error:r,complete:function(){r(new Gz)}});e.subscribe(i)})}function TE(e,t){return Ls(function(n,r){var i=0;n.subscribe(du(r,function(o){r.next(e.call(t,o,i++))}))})}function Hz(e,t,n,r,i,o,s,a){var u=[],l=0,c=0,f=!1,h=function(){f&&!u.length&&!l&&t.complete()},d=function(m){return l<r?p(m):u.push(m)},p=function(m){l++;var y=!1;Ns(n(m,c++)).subscribe(du(t,function(w){t.next(w)},function(){y=!0},void 0,function(){if(y)try{l--;for(var w=function(){var x=u.shift();s||p(x)};u.length&&l<r;)w();h()}catch(x){t.error(x)}}))};return e.subscribe(du(t,d,function(){f=!0,h()})),function(){}}function kE(e,t,n){return n===void 0&&(n=1/0),ct(t)?kE(function(r,i){return TE(function(o,s){return t(r,o,i,s)})(Ns(e(r,i)))},n):(typeof t=="number"&&(n=t),Ls(function(r,i){return Hz(r,i,e,n)}))}function Vz(e){return e===void 0&&(e=1/0),kE(cE,e)}function jz(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Sz(e),r=Cz(e,1/0),i=e;return i.length?i.length===1?Ns(i[0]):Vz(r)(Uz(i,n)):Ez}function $z(e,t,n,r,i){return function(o,s){var a=n,u=t,l=0;o.subscribe(du(s,function(c){var f=l++;u=a?e(u,c,f):(a=!0,c)},function(){a&&s.next(u),s.complete()}))}}function IE(e,t){return Ls($z(e,t,arguments.length>=2,!1,!0))}var qz=function(e,t){return e.push(t),e};function Wz(){return Ls(function(e,t){IE(qz,[])(e).subscribe(t)})}const BE=-2003829722,Bg=-2021002517;function Zz(e){return new TextDecoder().decode(e)}function DE(e){const t=e?"big":"little",n=new Me().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 Me().endianess(t).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new Me().endianess(t).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new Me().endianess(t).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),o=new Me().endianess(t).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:o}}class RE{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=s=>s,path:i,url:o}=t;if(this.renameRefSeqs=r,n)this.bbi=n;else if(o)this.bbi=new oo(o);else if(i)this.bbi=new gt(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(xe.Buffer.alloc(n),0,n,0,t),i=this._isBigEndian(r),o=DE(i),s=o.headerParser.parse(r),{magic:a,asOffset:u,totalSummaryOffset:l}=s;if(s.fileType=a===Bg?"bigbed":"bigwig",u>n||l>n)return this._getMainHeader(t,n*2);if(u){const c=Number(s.asOffset);s.autoSql=Zz(r.subarray(c,r.indexOf(0,c)))}if(s.totalSummaryOffset>n-8*5)return this._getMainHeader(t,n*2);if(s.totalSummaryOffset){const c=r.subarray(Number(s.totalSummaryOffset)),f=o.totalSummaryParser.parse(c);s.totalSummary={...f,basesCovered:Number(f.basesCovered)}}return{...s,isBigEndian:i}}_isBigEndian(t){let n=t.readInt32LE(0);if(n===BE||n===Bg)return!1;if(n=t.readInt32BE(0),n===BE||n===Bg)return!0;throw new Error("not a BigWig/BigBed file")}async _readChromTree(t,n){const r=t.isBigEndian,i=r?"big":"little",o=[],s={};let a=Number(t.unzoomedDataOffset);const u=Number(t.chromTreeOffset);for(;a%4!==0;)a+=1;const l=a-u,{buffer:c}=await this.bbi.read(xe.Buffer.alloc(l),0,l,Number(u),n),f=DE(r),{keySize:h}=f.chromTreeParser.parse(c),d=new Me().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),p=new Me().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),m=32,y=async w=>{let x=w;if(x>=c.length)throw new Error("reading beyond end of buffer");const S=f.isLeafNode.parse(c.subarray(x)),{isLeafNode:_,cnt:T}=S;if(x+=S.offset,_)for(let B=0;B<T;B+=1){const I=d.parse(c.subarray(x));x+=I.offset;const{key:D,refId:M,refSize:G}=I,N={name:D,id:M,length:G};s[this.renameRefSeqs(D)]=M,o[M]=N}else{const B=[];for(let I=0;I<T;I+=1){const D=p.parse(c.subarray(x)),{childOffset:M}=D;x+=D.offset,B.push(y(Number(M)-Number(u)))}await Promise.all(B)}};return await y(m),{refsByName:s,refsByNumber:o}}async getUnzoomedView(t){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:o,fileType:s}=await this.getHeader(t);return new eE(this.bbi,r,n,o,i>0,s)}async getFeatureStream(t,n,r,i){await this.getHeader(i);const o=this.renameRefSeqs(t);let s;const{basesPerSpan:a,scale:u}=i||{};return a?s=await this.getView(1/a,i):u?s=await this.getView(u,i):s=await this.getView(1,i),new vn(l=>{s.readWigData(o,n,r,l,i)})}async getFeatures(t,n,r,i){const o=await this.getFeatureStream(t,n,r,i);return(await CE(o.pipe(Wz()))).flat()}}class Yz extends RE{async getView(t,n){const{zoomLevels:r,refsByName:i,fileSize:o,isBigEndian:s,uncompressBufSize:a}=await this.getHeader(n),u=1/t;let l=r.length;o||(l-=1);for(let c=l;c>=0;c-=1){const f=r[c];if(f&&f.reductionLevel<=2*u){const h=Number(f.indexOffset);return new eE(this.bbi,i,h,s,a>0,"summary")}}return this.getUnzoomedView(n)}}function Qz(e){return e.filter(t=>!!t)}class Xz extends RE{constructor(){super(...arguments),this.readIndicesCache=new jf({cache:new $f({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(xe.Buffer.alloc(64),0,64,Number(n)),o=r?"big":"little",s=new Me().endianess(o).uint16("size").uint16("count").uint64("offset").parse(i),{count:a,offset:u}=s;if(a===0)return[];const l=20,c=l*a,{buffer:f}=await this.bbi.read(xe.Buffer.alloc(c),0,c,Number(u)),h=new Me().endianess(o).int16("type").int16("fieldcount").uint64("offset").skip(4).int16("field"),d=[];for(let p=0;p<a;p+=1)d.push(h.parse(f.subarray(p*l)));return d}async searchExtraIndexBlocks(t,n={}){const{isBigEndian:r}=await this.getHeader(n),i=await this.readIndices(n);if(i.length===0)return[];const o=i.map(async s=>{const{offset:a,field:u}=s,{buffer:l}=await this.bbi.read(xe.Buffer.alloc(32),0,32,Number(a),n),c=r?"big":"little",f=new Me().endianess(c).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:p}=f.parse(l),m=new Me().endianess(c).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new Me().array("leafkeys",{length:"cnt",type:new Me().endianess(c).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new Me().array("keys",{length:"cnt",type:new Me().endianess(c).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),y=async x=>{const S=Number(x),_=4+h*(d+p),{buffer:T}=await this.bbi.read(xe.Buffer.alloc(_),0,_,S,n),B=m.parse(T);if(B.leafkeys){let I;for(let D=0;D<B.leafkeys.length;D+=1){const{key:M}=B.leafkeys[D];if(t.localeCompare(M)<0&&I)return y(I);I=B.leafkeys[D].offset}return y(I)}for(let I=0;I<B.keys.length;I+=1)if(B.keys[I].key===t)return{...B.keys[I],field:u}};return y(Number(a)+32)});return Qz(await Promise.all(o))}async searchExtraIndex(t,n={}){const r=await this.searchExtraIndexBlocks(t,n);if(r.length===0)return[];const i=await this.getUnzoomedView(n),o=r.map(a=>new vn(u=>{i.readFeatures(u,[a],n)}).pipe(IE((u,l)=>u.concat(l)),TE(u=>{for(const l of u)l.field=a.field;return u})));return(await CE(jz(...o))).filter(a=>{var u;return((u=a.rest)===null||u===void 0?void 0:u.split(" ")[(a.field||0)-3])===t})}}const FE=Object.freeze(Object.defineProperty({__proto__:null,BigBed:Xz,BigWig:Yz},Symbol.toStringTag,{value:"Module"}));function Kz(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function Os(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,Os)}Kz(Os,Error),Os.buildMessage=function(e,t){var n={literal:function(l){return'"'+i(l.text)+'"'},class:function(l){var c="",f;for(f=0;f<l.parts.length;f++)c+=l.parts[f]instanceof Array?o(l.parts[f][0])+"-"+o(l.parts[f][1]):o(l.parts[f]);return"["+(l.inverted?"^":"")+c+"]"},any:function(l){return"any character"},end:function(l){return"end of input"},other:function(l){return l.description}};function r(l){return l.charCodeAt(0).toString(16).toUpperCase()}function i(l){return l.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(c){return"\\x0"+r(c)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(c){return"\\x"+r(c)})}function o(l){return l.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(c){return"\\x0"+r(c)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(c){return"\\x"+r(c)})}function s(l){return n[l.type](l)}function a(l){var c=new Array(l.length),f,h;for(f=0;f<l.length;f++)c[f]=s(l[f]);if(c.sort(),c.length>0){for(f=1,h=1;f<c.length;f++)c[f-1]!==c[f]&&(c[h]=c[f],h++);c.length=h}switch(c.length){case 1:return c[0];case 2:return c[0]+" or "+c[1];default:return c.slice(0,-1).join(", ")+", or "+c[c.length-1]}}function u(l){return l?'"'+i(l)+'"':"end of input"}return"Expected "+a(e)+" but "+u(t)+" found."};function Jz(e,t){t=t!==void 0?t:{};var n={},r={declaration:rS},i=rS,o="(",s=ze("(",!1),a=")",u=ze(")",!1),l=function(E,U,X,K){return{type:E,name:U,comment:X,fields:K}},c="simple",f=ze("simple",!1),h="object",d=ze("object",!1),p="table",m=ze("table",!1),y="auto",w=ze("auto",!1),x="primary",S=ze("primary",!1),_="index",T=ze("index",!1),B="unique",I=ze("unique",!1),D=function(E,U){return U},M=function(E,U){return E.name&&U.unshift(E),U},G="#",N=ze("#",!1),ne=";",ie=ze(";",!1),pe=function(E,U,X){return{type:E,name:U,comment:X}},be="[",Pe=ze("[",!1),_e="]",Oe=ze("]",!1),Ue=function(E,U,X,K){return{type:E,size:U,name:X,comment:K}},tt=function(E,U,X,K){return{type:E,vals:U,name:X,comment:K}},ke=",",Ie=ze(",",!1),bt=function(E,U){return U.unshift(E),U},Wt="int",$e=ze("int",!1),L="uint",P=ze("uint",!1),q="short",j=ze("short",!1),Z="ushort",C=ze("ushort",!1),A="byte",V=ze("byte",!1),W="ubyte",ce=ze("ubyte",!1),te="float",fe=ze("float",!1),Zt="char",_i=ze("char",!1),Si="string",Ci=ze("string",!1),It="lstring",Br=ze("lstring",!1),Ti="enum",Yt=ze("enum",!1),ar="double",v=ze("double",!1),g="bigint",b=ze("bigint",!1),k="set",F=ze("set",!1),O=function(E,U){return E+" "+U},$=/^[a-zA-Z_]/,he=Lu([["a","z"],["A","Z"],"_"],!1,!1),Ze=/^[a-zA-Z0-9_]/,Ge=Lu([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),Ke=function(E){return J_()},Be=/^[^\n\r]/,Z_=Lu([`
|
|
609
|
-
`,"\r"],!0,!1),
|
|
610
|
-
`,"\r"],!1,!1),R=0,
|
|
614
|
+
`):"",this.name="UnsubscriptionError",this.errors=n}});function oE(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var kg=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,n,r,i,o;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var a=hu(s),u=a.next();!u.done;u=a.next()){var l=u.value;l.remove(this)}}catch(m){t={error:m}}finally{try{u&&!u.done&&(n=a.return)&&n.call(a)}finally{if(t)throw t.error}}else s.remove(this);var c=this.initialTeardown;if(ct(c))try{c()}catch(m){o=m instanceof Tg?m.errors:[m]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var h=hu(f),d=h.next();!d.done;d=h.next()){var p=d.value;try{aE(p)}catch(m){o=o??[],m instanceof Tg?o=Cg(Cg([],Sg(o)),Sg(m.errors)):o.push(m)}}}catch(m){r={error:m}}finally{try{d&&!d.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}}if(o)throw new Tg(o)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)aE(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)&&oE(n,t)},e.prototype.remove=function(t){var n=this._finalizers;n&&oE(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();kg.EMPTY;function sE(e){return e instanceof kg||e&&"closed"in e&&ct(e.remove)&&ct(e.add)&&ct(e.unsubscribe)}function aE(e){ct(e)?e():e.unsubscribe()}var lE={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},uE={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return setTimeout.apply(void 0,Cg([e,t],Sg(n)))},clearTimeout:function(e){var t=uE.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function cE(e){uE.setTimeout(function(){throw e})}function fE(){}function gz(e){e()}var Ig=function(e){_g(t,e);function t(n){var r=e.call(this)||this;return r.isStopped=!1,n?(r.destination=n,sE(n)&&n.add(r)):r.destination=wz,r}return t.create=function(n,r,i){return new sh(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}(kg),mz=Function.prototype.bind;function Bg(e,t){return mz.call(e,t)}var bz=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){ah(r)}},e.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(r){ah(r)}else ah(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(n){ah(n)}},e}(),sh=function(e){_g(t,e);function t(n,r,i){var o=e.call(this)||this,s;if(ct(n)||!n)s={next:n??void 0,error:r??void 0,complete:i??void 0};else{var a;o&&lE.useDeprecatedNextContext?(a=Object.create(n),a.unsubscribe=function(){return o.unsubscribe()},s={next:n.next&&Bg(n.next,a),error:n.error&&Bg(n.error,a),complete:n.complete&&Bg(n.complete,a)}):s=n}return o.destination=new bz(s),o}return t}(Ig);function ah(e){cE(e)}function yz(e){throw e}var wz={closed:!0,next:fE,error:yz,complete:fE},Dg=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function hE(e){return e}function vz(e){return e.length===0?hE:e.length===1?e[0]:function(n){return e.reduce(function(r,i){return i(r)},n)}}var vn=function(){function e(t){t&&(this._subscribe=t)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(t,n,r){var i=this,o=xz(t)?t:new sh(t,n,r);return gz(function(){var s=i,a=s.operator,u=s.source;o.add(a?a.call(o,u):u?i._subscribe(o):i._trySubscribe(o))}),o},e.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(n){t.error(n)}},e.prototype.forEach=function(t,n){var r=this;return n=dE(n),new n(function(i,o){var s=new sh({next:function(a){try{t(a)}catch(u){o(u),s.unsubscribe()}},error:o,complete:i});r.subscribe(s)})},e.prototype._subscribe=function(t){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(t)},e.prototype[Dg]=function(){return this},e.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return vz(t)(this)},e.prototype.toPromise=function(t){var n=this;return t=dE(t),new t(function(r,i){var o;n.subscribe(function(s){return o=s},function(s){return i(s)},function(){return r(o)})})},e.create=function(t){return new e(t)},e}();function dE(e){var t;return(t=e??lE.Promise)!==null&&t!==void 0?t:Promise}function Az(e){return e&&ct(e.next)&&ct(e.error)&&ct(e.complete)}function xz(e){return e&&e instanceof Ig||Az(e)&&sE(e)}function Ez(e){return ct(e==null?void 0:e.lift)}function Ls(e){return function(t){if(Ez(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 du(e,t,n,r,i){return new _z(e,t,n,r,i)}var _z=function(e){_g(t,e);function t(n,r,i,o,s,a){var u=e.call(this,n)||this;return u.onFinalize=s,u.shouldUnsubscribe=a,u._next=r?function(l){try{r(l)}catch(c){n.error(c)}}:e.prototype._next,u._error=o?function(l){try{o(l)}catch(c){n.error(c)}finally{this.unsubscribe()}}:e.prototype._error,u._complete=i?function(){try{i()}catch(l){n.error(l)}finally{this.unsubscribe()}}:e.prototype._complete,u}return t.prototype.unsubscribe=function(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;e.prototype.unsubscribe.call(this),!r&&((n=this.onFinalize)===null||n===void 0||n.call(this))}},t}(Ig),Sz=new vn(function(e){return e.complete()});function Cz(e){return e&&ct(e.schedule)}function pE(e){return e[e.length-1]}function Tz(e){return Cz(pE(e))?e.pop():void 0}function kz(e,t){return typeof pE(e)=="number"?e.pop():t}var gE=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function mE(e){return ct(e==null?void 0:e.then)}function bE(e){return ct(e[Dg])}function yE(e){return Symbol.asyncIterator&&ct(e==null?void 0:e[Symbol.asyncIterator])}function wE(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 Iz(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var vE=Iz();function AE(e){return ct(e==null?void 0:e[vE])}function xE(e){return dz(this,arguments,function(){var n,r,i,o;return rE(this,function(s){switch(s.label){case 0:n=e.getReader(),s.label=1;case 1:s.trys.push([1,,9,10]),s.label=2;case 2:return[4,Ps(n.read())];case 3:return r=s.sent(),i=r.value,o=r.done,o?[4,Ps(void 0)]:[3,5];case 4:return[2,s.sent()];case 5:return[4,Ps(i)];case 6:return[4,s.sent()];case 7:return s.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function EE(e){return ct(e==null?void 0:e.getReader)}function Ns(e){if(e instanceof vn)return e;if(e!=null){if(bE(e))return Bz(e);if(gE(e))return Dz(e);if(mE(e))return Rz(e);if(yE(e))return _E(e);if(AE(e))return Fz(e);if(EE(e))return Mz(e)}throw wE(e)}function Bz(e){return new vn(function(t){var n=e[Dg]();if(ct(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Dz(e){return new vn(function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()})}function Rz(e){return new vn(function(t){e.then(function(n){t.closed||(t.next(n),t.complete())},function(n){return t.error(n)}).then(null,cE)})}function Fz(e){return new vn(function(t){var n,r;try{for(var i=hu(e),o=i.next();!o.done;o=i.next()){var s=o.value;if(t.next(s),t.closed)return}}catch(a){n={error:a}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}t.complete()})}function _E(e){return new vn(function(t){Pz(e,t).catch(function(n){return t.error(n)})})}function Mz(e){return _E(xE(e))}function Pz(e,t){var n,r,i,o;return hz(this,void 0,void 0,function(){var s,a;return rE(this,function(u){switch(u.label){case 0:u.trys.push([0,5,6,11]),n=pz(e),u.label=1;case 1:return[4,n.next()];case 2:if(r=u.sent(),!!r.done)return[3,4];if(s=r.value,t.next(s),t.closed)return[2];u.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return a=u.sent(),i={error:a},[3,11];case 6:return u.trys.push([6,,9,10]),r&&!r.done&&(o=n.return)?[4,o.call(n)]:[3,8];case 7:u.sent(),u.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})}function Co(e,t,n,r,i){r===void 0&&(r=0),i===void 0&&(i=!1);var o=t.schedule(function(){n(),i?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(o),!i)return o}function SE(e,t){return t===void 0&&(t=0),Ls(function(n,r){n.subscribe(du(r,function(i){return Co(r,e,function(){return r.next(i)},t)},function(){return Co(r,e,function(){return r.complete()},t)},function(i){return Co(r,e,function(){return r.error(i)},t)}))})}function CE(e,t){return t===void 0&&(t=0),Ls(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function Lz(e,t){return Ns(e).pipe(CE(t),SE(t))}function Nz(e,t){return Ns(e).pipe(CE(t),SE(t))}function Oz(e,t){return new vn(function(n){var r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function zz(e,t){return new vn(function(n){var r;return Co(n,t,function(){r=e[vE](),Co(n,t,function(){var i,o,s;try{i=r.next(),o=i.value,s=i.done}catch(a){n.error(a);return}s?n.complete():n.next(o)},0,!0)}),function(){return ct(r==null?void 0:r.return)&&r.return()}})}function TE(e,t){if(!e)throw new Error("Iterable cannot be null");return new vn(function(n){Co(n,t,function(){var r=e[Symbol.asyncIterator]();Co(n,t,function(){r.next().then(function(i){i.done?n.complete():n.next(i.value)})},0,!0)})})}function Uz(e,t){return TE(xE(e),t)}function Gz(e,t){if(e!=null){if(bE(e))return Lz(e,t);if(gE(e))return Oz(e,t);if(mE(e))return Nz(e,t);if(yE(e))return TE(e,t);if(AE(e))return zz(e,t);if(EE(e))return Uz(e,t)}throw wE(e)}function Hz(e,t){return t?Gz(e,t):Ns(e)}var Vz=iE(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function kE(e,t){return new Promise(function(n,r){var i=new sh({next:function(o){n(o),i.unsubscribe()},error:r,complete:function(){r(new Vz)}});e.subscribe(i)})}function IE(e,t){return Ls(function(n,r){var i=0;n.subscribe(du(r,function(o){r.next(e.call(t,o,i++))}))})}function jz(e,t,n,r,i,o,s,a){var u=[],l=0,c=0,f=!1,h=function(){f&&!u.length&&!l&&t.complete()},d=function(m){return l<r?p(m):u.push(m)},p=function(m){l++;var y=!1;Ns(n(m,c++)).subscribe(du(t,function(w){t.next(w)},function(){y=!0},void 0,function(){if(y)try{l--;for(var w=function(){var x=u.shift();s||p(x)};u.length&&l<r;)w();h()}catch(x){t.error(x)}}))};return e.subscribe(du(t,d,function(){f=!0,h()})),function(){}}function BE(e,t,n){return n===void 0&&(n=1/0),ct(t)?BE(function(r,i){return IE(function(o,s){return t(r,o,i,s)})(Ns(e(r,i)))},n):(typeof t=="number"&&(n=t),Ls(function(r,i){return jz(r,i,e,n)}))}function $z(e){return e===void 0&&(e=1/0),BE(hE,e)}function qz(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Tz(e),r=kz(e,1/0),i=e;return i.length?i.length===1?Ns(i[0]):$z(r)(Hz(i,n)):Sz}function Wz(e,t,n,r,i){return function(o,s){var a=n,u=t,l=0;o.subscribe(du(s,function(c){var f=l++;u=a?e(u,c,f):(a=!0,c)},function(){a&&s.next(u),s.complete()}))}}function DE(e,t){return Ls(Wz(e,t,arguments.length>=2,!1,!0))}var Zz=function(e,t){return e.push(t),e};function Yz(){return Ls(function(e,t){DE(Zz,[])(e).subscribe(t)})}const RE=-2003829722,Rg=-2021002517;function Qz(e){return new TextDecoder().decode(e)}function FE(e){const t=e?"big":"little",n=new Me().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 Me().endianess(t).uint32("reductionLevel").uint32("reserved").uint64("dataOffset").uint64("indexOffset")}),r=new Me().endianess(t).uint64("basesCovered").doublele("scoreMin").doublele("scoreMax").doublele("scoreSum").doublele("scoreSumSquares"),i=new Me().endianess(t).uint32("magic").uint32("blockSize").uint32("keySize").uint32("valSize").uint64("itemCount"),o=new Me().endianess(t).uint8("isLeafNode").skip(1).uint16("cnt").saveOffset("offset");return{chromTreeParser:i,totalSummaryParser:r,headerParser:n,isLeafNode:o}}class ME{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=s=>s,path:i,url:o}=t;if(this.renameRefSeqs=r,n)this.bbi=n;else if(o)this.bbi=new oo(o);else if(i)this.bbi=new gt(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(xe.Buffer.alloc(n),0,n,0,t),i=this._isBigEndian(r),o=FE(i),s=o.headerParser.parse(r),{magic:a,asOffset:u,totalSummaryOffset:l}=s;if(s.fileType=a===Rg?"bigbed":"bigwig",u>n||l>n)return this._getMainHeader(t,n*2);if(u){const c=Number(s.asOffset);s.autoSql=Qz(r.subarray(c,r.indexOf(0,c)))}if(s.totalSummaryOffset>n-8*5)return this._getMainHeader(t,n*2);if(s.totalSummaryOffset){const c=r.subarray(Number(s.totalSummaryOffset)),f=o.totalSummaryParser.parse(c);s.totalSummary={...f,basesCovered:Number(f.basesCovered)}}return{...s,isBigEndian:i}}_isBigEndian(t){let n=t.readInt32LE(0);if(n===RE||n===Rg)return!1;if(n=t.readInt32BE(0),n===RE||n===Rg)return!0;throw new Error("not a BigWig/BigBed file")}async _readChromTree(t,n){const r=t.isBigEndian,i=r?"big":"little",o=[],s={};let a=Number(t.unzoomedDataOffset);const u=Number(t.chromTreeOffset);for(;a%4!==0;)a+=1;const l=a-u,{buffer:c}=await this.bbi.read(xe.Buffer.alloc(l),0,l,Number(u),n),f=FE(r),{keySize:h}=f.chromTreeParser.parse(c),d=new Me().endianess(i).string("key",{stripNull:!0,length:h}).uint32("refId").uint32("refSize").saveOffset("offset"),p=new Me().endianess(i).skip(h).uint64("childOffset").saveOffset("offset"),m=32,y=async w=>{let x=w;if(x>=c.length)throw new Error("reading beyond end of buffer");const S=f.isLeafNode.parse(c.subarray(x)),{isLeafNode:_,cnt:T}=S;if(x+=S.offset,_)for(let B=0;B<T;B+=1){const I=d.parse(c.subarray(x));x+=I.offset;const{key:D,refId:M,refSize:G}=I,N={name:D,id:M,length:G};s[this.renameRefSeqs(D)]=M,o[M]=N}else{const B=[];for(let I=0;I<T;I+=1){const D=p.parse(c.subarray(x)),{childOffset:M}=D;x+=D.offset,B.push(y(Number(M)-Number(u)))}await Promise.all(B)}};return await y(m),{refsByName:s,refsByNumber:o}}async getUnzoomedView(t){const{unzoomedIndexOffset:n,refsByName:r,uncompressBufSize:i,isBigEndian:o,fileType:s}=await this.getHeader(t);return new nE(this.bbi,r,n,o,i>0,s)}async getFeatureStream(t,n,r,i){await this.getHeader(i);const o=this.renameRefSeqs(t);let s;const{basesPerSpan:a,scale:u}=i||{};return a?s=await this.getView(1/a,i):u?s=await this.getView(u,i):s=await this.getView(1,i),new vn(l=>{s.readWigData(o,n,r,l,i)})}async getFeatures(t,n,r,i){const o=await this.getFeatureStream(t,n,r,i);return(await kE(o.pipe(Yz()))).flat()}}class Xz extends ME{async getView(t,n){const{zoomLevels:r,refsByName:i,fileSize:o,isBigEndian:s,uncompressBufSize:a}=await this.getHeader(n),u=1/t;let l=r.length;o||(l-=1);for(let c=l;c>=0;c-=1){const f=r[c];if(f&&f.reductionLevel<=2*u){const h=Number(f.indexOffset);return new nE(this.bbi,i,h,s,a>0,"summary")}}return this.getUnzoomedView(n)}}function Kz(e){return e.filter(t=>!!t)}class Jz extends ME{constructor(){super(...arguments),this.readIndicesCache=new $f({cache:new qf({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(xe.Buffer.alloc(64),0,64,Number(n)),o=r?"big":"little",s=new Me().endianess(o).uint16("size").uint16("count").uint64("offset").parse(i),{count:a,offset:u}=s;if(a===0)return[];const l=20,c=l*a,{buffer:f}=await this.bbi.read(xe.Buffer.alloc(c),0,c,Number(u)),h=new Me().endianess(o).int16("type").int16("fieldcount").uint64("offset").skip(4).int16("field"),d=[];for(let p=0;p<a;p+=1)d.push(h.parse(f.subarray(p*l)));return d}async searchExtraIndexBlocks(t,n={}){const{isBigEndian:r}=await this.getHeader(n),i=await this.readIndices(n);if(i.length===0)return[];const o=i.map(async s=>{const{offset:a,field:u}=s,{buffer:l}=await this.bbi.read(xe.Buffer.alloc(32),0,32,Number(a),n),c=r?"big":"little",f=new Me().endianess(c).int32("magic").int32("blockSize").int32("keySize").int32("valSize").uint64("itemCount"),{blockSize:h,keySize:d,valSize:p}=f.parse(l),m=new Me().endianess(c).int8("nodeType").skip(1).int16("cnt").choice({tag:"nodeType",choices:{0:new Me().array("leafkeys",{length:"cnt",type:new Me().endianess(c).string("key",{length:d,stripNull:!0}).uint64("offset")}),1:new Me().array("keys",{length:"cnt",type:new Me().endianess(c).string("key",{length:d,stripNull:!0}).uint64("offset").uint32("length").uint32("reserved")})}}),y=async x=>{const S=Number(x),_=4+h*(d+p),{buffer:T}=await this.bbi.read(xe.Buffer.alloc(_),0,_,S,n),B=m.parse(T);if(B.leafkeys){let I;for(let D=0;D<B.leafkeys.length;D+=1){const{key:M}=B.leafkeys[D];if(t.localeCompare(M)<0&&I)return y(I);I=B.leafkeys[D].offset}return y(I)}for(let I=0;I<B.keys.length;I+=1)if(B.keys[I].key===t)return{...B.keys[I],field:u}};return y(Number(a)+32)});return Kz(await Promise.all(o))}async searchExtraIndex(t,n={}){const r=await this.searchExtraIndexBlocks(t,n);if(r.length===0)return[];const i=await this.getUnzoomedView(n),o=r.map(a=>new vn(u=>{i.readFeatures(u,[a],n)}).pipe(DE((u,l)=>u.concat(l)),IE(u=>{for(const l of u)l.field=a.field;return u})));return(await kE(qz(...o))).filter(a=>{var u;return((u=a.rest)===null||u===void 0?void 0:u.split(" ")[(a.field||0)-3])===t})}}const PE=Object.freeze(Object.defineProperty({__proto__:null,BigBed:Jz,BigWig:Xz},Symbol.toStringTag,{value:"Module"}));function eU(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function Os(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,Os)}eU(Os,Error),Os.buildMessage=function(e,t){var n={literal:function(l){return'"'+i(l.text)+'"'},class:function(l){var c="",f;for(f=0;f<l.parts.length;f++)c+=l.parts[f]instanceof Array?o(l.parts[f][0])+"-"+o(l.parts[f][1]):o(l.parts[f]);return"["+(l.inverted?"^":"")+c+"]"},any:function(l){return"any character"},end:function(l){return"end of input"},other:function(l){return l.description}};function r(l){return l.charCodeAt(0).toString(16).toUpperCase()}function i(l){return l.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(c){return"\\x0"+r(c)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(c){return"\\x"+r(c)})}function o(l){return l.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(c){return"\\x0"+r(c)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(c){return"\\x"+r(c)})}function s(l){return n[l.type](l)}function a(l){var c=new Array(l.length),f,h;for(f=0;f<l.length;f++)c[f]=s(l[f]);if(c.sort(),c.length>0){for(f=1,h=1;f<c.length;f++)c[f-1]!==c[f]&&(c[h]=c[f],h++);c.length=h}switch(c.length){case 1:return c[0];case 2:return c[0]+" or "+c[1];default:return c.slice(0,-1).join(", ")+", or "+c[c.length-1]}}function u(l){return l?'"'+i(l)+'"':"end of input"}return"Expected "+a(e)+" but "+u(t)+" found."};function tU(e,t){t=t!==void 0?t:{};var n={},r={declaration:oS},i=oS,o="(",s=ze("(",!1),a=")",u=ze(")",!1),l=function(E,U,X,K){return{type:E,name:U,comment:X,fields:K}},c="simple",f=ze("simple",!1),h="object",d=ze("object",!1),p="table",m=ze("table",!1),y="auto",w=ze("auto",!1),x="primary",S=ze("primary",!1),_="index",T=ze("index",!1),B="unique",I=ze("unique",!1),D=function(E,U){return U},M=function(E,U){return E.name&&U.unshift(E),U},G="#",N=ze("#",!1),ne=";",ie=ze(";",!1),pe=function(E,U,X){return{type:E,name:U,comment:X}},be="[",Pe=ze("[",!1),_e="]",Oe=ze("]",!1),Ue=function(E,U,X,K){return{type:E,size:U,name:X,comment:K}},tt=function(E,U,X,K){return{type:E,vals:U,name:X,comment:K}},ke=",",Ie=ze(",",!1),bt=function(E,U){return U.unshift(E),U},Wt="int",$e=ze("int",!1),L="uint",P=ze("uint",!1),q="short",j=ze("short",!1),Z="ushort",C=ze("ushort",!1),A="byte",V=ze("byte",!1),W="ubyte",ce=ze("ubyte",!1),te="float",fe=ze("float",!1),Zt="char",_i=ze("char",!1),Si="string",Ci=ze("string",!1),It="lstring",Br=ze("lstring",!1),Ti="enum",Yt=ze("enum",!1),ar="double",v=ze("double",!1),g="bigint",b=ze("bigint",!1),k="set",F=ze("set",!1),O=function(E,U){return E+" "+U},$=/^[a-zA-Z_]/,he=Nu([["a","z"],["A","Z"],"_"],!1,!1),Ze=/^[a-zA-Z0-9_]/,Ge=Nu([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),Ke=function(E){return tS()},Be=/^[^\n\r]/,Q_=Nu([`
|
|
615
|
+
`,"\r"],!0,!1),EG=function(E){return E.join("").replace(/^"/,"").replace(/"$/,"")},_G=nS("integer"),X_=/^[0-9]/,K_=Nu([["0","9"]],!1,!1),SG=function(){return parseInt(tS(),10)},CG=nS("whitespace"),J_=/^[ \t\n\r]/,eS=Nu([" "," ",`
|
|
616
|
+
`,"\r"],!1,!1),R=0,Nt=0,yh=[{line:1,column:1}],lr=0,dm=[],se=0,wh;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 tS(){return e.substring(Nt,R)}function ze(E,U){return{type:"literal",text:E,ignoreCase:U}}function Nu(E,U,X){return{type:"class",parts:E,inverted:U,ignoreCase:X}}function TG(){return{type:"end"}}function nS(E){return{type:"other",description:E}}function rS(E){var U=yh[E],X;if(U)return U;for(X=E-1;!yh[X];)X--;for(U=yh[X],U={line:U.line,column:U.column};X<E;)e.charCodeAt(X)===10?(U.line++,U.column=1):U.column++,X++;return yh[E]=U,U}function iS(E,U){var X=rS(E),K=rS(U);return{start:{offset:E,line:X.line,column:X.column},end:{offset:U,line:K.line,column:K.column}}}function ae(E){R<lr||(R>lr&&(lr=R,dm=[]),dm.push(E))}function kG(E,U,X){return new Os(Os.buildMessage(E,U),E,U,X)}function oS(){var E,U,X,K,re,qe,Je,_n,ki,Dr,Ii,Rr,Bi,Fr;return E=R,U=we(),U!==n?(X=sS(),X!==n?(K=we(),K!==n?(re=aS(),re!==n?(qe=we(),qe!==n?(Je=vh(),Je!==n?(_n=we(),_n!==n?(e.charCodeAt(R)===40?(ki=o,R++):(ki=n,se===0&&ae(s)),ki!==n?(Dr=we(),Dr!==n?(Ii=IG(),Ii!==n?(Rr=we(),Rr!==n?(e.charCodeAt(R)===41?(Bi=a,R++):(Bi=n,se===0&&ae(u)),Bi!==n?(Fr=we(),Fr!==n?(Nt=E,U=l(X,re,Je,Ii),E=U):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n),E}function sS(){var E;return e.substr(R,6)===c?(E=c,R+=6):(E=n,se===0&&ae(f)),E===n&&(e.substr(R,6)===h?(E=h,R+=6):(E=n,se===0&&ae(d)),E===n&&(e.substr(R,5)===p?(E=p,R+=5):(E=n,se===0&&ae(m)))),E}function aS(){var E,U,X,K;return E=Nn(),E===n&&(E=R,U=Nn(),U!==n?(X=lS(),X!==n?(U=[U,X],E=U):(R=E,E=n)):(R=E,E=n),E===n&&(E=R,U=Nn(),U!==n?(e.substr(R,4)===y?(X=y,R+=4):(X=n,se===0&&ae(w)),X!==n?(U=[U,X],E=U):(R=E,E=n)):(R=E,E=n),E===n&&(E=R,U=Nn(),U!==n?(X=lS(),X!==n?(e.substr(R,4)===y?(K=y,R+=4):(K=n,se===0&&ae(w)),K!==n?(U=[U,X,K],E=U):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)))),E}function lS(){var E;return e.substr(R,7)===x?(E=x,R+=7):(E=n,se===0&&ae(S)),E===n&&(e.substr(R,5)===_?(E=_,R+=5):(E=n,se===0&&ae(T)),E===n&&(e.substr(R,6)===B?(E=B,R+=6):(E=n,se===0&&ae(I)))),E}function vh(){var E;return E=uS(),E===n&&(E=we()),E}function IG(){var E,U,X,K,re,qe,Je;if(E=R,U=pm(),U!==n)if(X=we(),X!==n){for(K=[],re=R,qe=we(),qe!==n?(Je=pm(),Je!==n?(Nt=re,qe=D(U,Je),re=qe):(R=re,re=n)):(R=re,re=n);re!==n;)K.push(re),re=R,qe=we(),qe!==n?(Je=pm(),Je!==n?(Nt=re,qe=D(U,Je),re=qe):(R=re,re=n)):(R=re,re=n);K!==n?(re=we(),re!==n?(Nt=E,U=M(U,K),E=U):(R=E,E=n)):(R=E,E=n)}else R=E,E=n;else R=E,E=n;return E}function BG(){var E;return e.charCodeAt(R)===35?(E=G,R++):(E=n,se===0&&ae(N)),E}function DG(){var E,U,X,K,re;return E=R,U=we(),U!==n?(X=BG(),X!==n?(K=uS(),K!==n?(re=we(),re!==n?(U=[U,X,K,re],E=U):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n),E}function pm(){var E,U,X,K,re,qe,Je,_n,ki,Dr,Ii,Rr,Bi,Fr;return E=R,U=gm(),U!==n?(X=we(),X!==n?(K=Nn(),K!==n?(re=we(),re!==n?(e.charCodeAt(R)===59?(qe=ne,R++):(qe=n,se===0&&ae(ie)),qe!==n?(Je=we(),Je!==n?(_n=vh(),_n!==n?(Nt=E,U=pe(U,K,_n),E=U):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n),E===n&&(E=R,U=gm(),U!==n?(X=we(),X!==n?(e.charCodeAt(R)===91?(K=be,R++):(K=n,se===0&&ae(Pe)),K!==n?(re=we(),re!==n?(qe=FG(),qe!==n?(Je=we(),Je!==n?(e.charCodeAt(R)===93?(_n=_e,R++):(_n=n,se===0&&ae(Oe)),_n!==n?(ki=we(),ki!==n?(Dr=Nn(),Dr!==n?(Ii=we(),Ii!==n?(e.charCodeAt(R)===59?(Rr=ne,R++):(Rr=n,se===0&&ae(ie)),Rr!==n?(Bi=we(),Bi!==n?(Fr=vh(),Fr!==n?(Nt=E,U=Ue(U,qe,Dr,Fr),E=U):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n),E===n&&(E=R,U=gm(),U!==n?(X=we(),X!==n?(e.charCodeAt(R)===40?(K=o,R++):(K=n,se===0&&ae(s)),K!==n?(re=we(),re!==n?(qe=RG(),qe!==n?(Je=we(),Je!==n?(e.charCodeAt(R)===41?(_n=a,R++):(_n=n,se===0&&ae(u)),_n!==n?(ki=we(),ki!==n?(Dr=Nn(),Dr!==n?(Ii=we(),Ii!==n?(e.charCodeAt(R)===59?(Rr=ne,R++):(Rr=n,se===0&&ae(ie)),Rr!==n?(Bi=we(),Bi!==n?(Fr=vh(),Fr!==n?(Nt=E,U=tt(U,qe,Dr,Fr),E=U):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n)):(R=E,E=n),E===n&&(E=DG()))),E}function RG(){var E,U,X,K,re,qe,Je;if(E=R,U=Nn(),U!==n){for(X=[],K=R,e.charCodeAt(R)===44?(re=ke,R++):(re=n,se===0&&ae(Ie)),re!==n?(qe=we(),qe!==n?(Je=Nn(),Je!==n?(Nt=K,re=D(U,Je),K=re):(R=K,K=n)):(R=K,K=n)):(R=K,K=n);K!==n;)X.push(K),K=R,e.charCodeAt(R)===44?(re=ke,R++):(re=n,se===0&&ae(Ie)),re!==n?(qe=we(),qe!==n?(Je=Nn(),Je!==n?(Nt=K,re=D(U,Je),K=re):(R=K,K=n)):(R=K,K=n)):(R=K,K=n);X!==n?(Nt=E,U=bt(U,X),E=U):(R=E,E=n)}else R=E,E=n;return E}function gm(){var E,U,X,K;return e.substr(R,3)===Wt?(E=Wt,R+=3):(E=n,se===0&&ae($e)),E===n&&(e.substr(R,4)===L?(E=L,R+=4):(E=n,se===0&&ae(P)),E===n&&(e.substr(R,5)===q?(E=q,R+=5):(E=n,se===0&&ae(j)),E===n&&(e.substr(R,6)===Z?(E=Z,R+=6):(E=n,se===0&&ae(C)),E===n&&(e.substr(R,4)===A?(E=A,R+=4):(E=n,se===0&&ae(V)),E===n&&(e.substr(R,5)===W?(E=W,R+=5):(E=n,se===0&&ae(ce)),E===n&&(e.substr(R,5)===te?(E=te,R+=5):(E=n,se===0&&ae(fe)),E===n&&(e.substr(R,4)===Zt?(E=Zt,R+=4):(E=n,se===0&&ae(_i)),E===n&&(e.substr(R,6)===Si?(E=Si,R+=6):(E=n,se===0&&ae(Ci)),E===n&&(e.substr(R,7)===It?(E=It,R+=7):(E=n,se===0&&ae(Br)),E===n&&(e.substr(R,4)===Ti?(E=Ti,R+=4):(E=n,se===0&&ae(Yt)),E===n&&(e.substr(R,6)===ar?(E=ar,R+=6):(E=n,se===0&&ae(v)),E===n&&(e.substr(R,6)===g?(E=g,R+=6):(E=n,se===0&&ae(b)),E===n&&(e.substr(R,3)===k?(E=k,R+=3):(E=n,se===0&&ae(F)),E===n&&(E=R,U=sS(),U!==n?(X=we(),X!==n?(K=aS(),K!==n?(Nt=E,U=O(U,K),E=U):(R=E,E=n)):(R=E,E=n)):(R=E,E=n))))))))))))))),E}function FG(){var E;return E=MG(),E===n&&(E=Nn()),E}function Nn(){var E,U,X,K,re;if(E=R,U=R,$.test(e.charAt(R))?(X=e.charAt(R),R++):(X=n,se===0&&ae(he)),X!==n){for(K=[],Ze.test(e.charAt(R))?(re=e.charAt(R),R++):(re=n,se===0&&ae(Ge));re!==n;)K.push(re),Ze.test(e.charAt(R))?(re=e.charAt(R),R++):(re=n,se===0&&ae(Ge));K!==n?(X=[X,K],U=X):(R=U,U=n)}else R=U,U=n;return U!==n&&(Nt=E,U=Ke()),E=U,E}function uS(){var E,U,X;for(E=R,U=[],Be.test(e.charAt(R))?(X=e.charAt(R),R++):(X=n,se===0&&ae(Q_));X!==n;)U.push(X),Be.test(e.charAt(R))?(X=e.charAt(R),R++):(X=n,se===0&&ae(Q_));return U!==n&&(Nt=E,U=EG(U)),E=U,E}function MG(){var E,U,X,K;if(se++,E=R,U=we(),U!==n){if(X=[],X_.test(e.charAt(R))?(K=e.charAt(R),R++):(K=n,se===0&&ae(K_)),K!==n)for(;K!==n;)X.push(K),X_.test(e.charAt(R))?(K=e.charAt(R),R++):(K=n,se===0&&ae(K_));else X=n;X!==n?(Nt=E,U=SG(),E=U):(R=E,E=n)}else R=E,E=n;return se--,E===n&&(U=n,se===0&&ae(_G)),E}function we(){var E,U;for(se++,E=[],J_.test(e.charAt(R))?(U=e.charAt(R),R++):(U=n,se===0&&ae(eS));U!==n;)E.push(U),J_.test(e.charAt(R))?(U=e.charAt(R),R++):(U=n,se===0&&ae(eS));return se--,E===n&&(U=n,se===0&&ae(CG)),E}if(wh=i(),wh!==n&&R===e.length)return wh;throw wh!==n&&R<e.length&&ae(TG()),kG(dm,lr<e.length?e.charAt(lr):null,lr<e.length?iS(lr,lr+1):iS(lr,lr))}var LE={SyntaxError:Os,parse:tU};const nU=yf(LE),Fg=Object.fromEntries(Object.entries(Object.freeze(Object.defineProperty({__proto__:null,bigChain:`table bigChain
|
|
611
617
|
"bigChain pairwise alignment"
|
|
612
618
|
(
|
|
613
619
|
string chrom; "Reference sequence chromosome or scaffold"
|
|
@@ -766,16 +772,16 @@ chrM 16299`};function f9(e){if(!(e in Pw))throw new Error(`Unknown assembly: ${e
|
|
|
766
772
|
float score; "Floating point score."
|
|
767
773
|
char[1] leftStatus; "Gap/break annotation for preceding block"
|
|
768
774
|
char[1] rightStatus; "Gap/break annotation for following block"
|
|
769
|
-
)`},Symbol.toStringTag,{value:"Module"}))).map(([e,t])=>[e,ME.parse(t.trim())]));function Rg(e){const t=new Set(["uint","int","float","long"]);return{...e,fields:e.fields.map(n=>({...n,isArray:n.size&&n.type!=="char",arrayIsNumeric:n.size&&t.has(n.type),isNumeric:!n.size&&t.has(n.type)})).filter(n=>!!n.name)}}const tU={".":0,"-":-1,"+":1};function nU(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 rU{constructor(t={}){if(t.autoSql)this.autoSql=Rg(eU.parse(t.autoSql));else if(t.type){if(!Dg[t.type])throw new Error("Type not found");this.autoSql=Rg(Dg[t.type])}else this.autoSql=Rg(Dg.defaultBedSchema),this.attemptDefaultBed=!0}parseLine(t,n={}){const{autoSql:r}=this,{uniqueId:i}=n,o=Array.isArray(t)?t:t.split(" ");let s={};if(!this.attemptDefaultBed||this.attemptDefaultBed&&nU(o))for(let a=0;a<r.fields.length;a++){const u=r.fields[a];let l=o[a];const{isNumeric:c,isArray:f,arrayIsNumeric:h,name:d}=u;if(l==null)break;if(l!=="."){if(c){const p=Number(l);l=Number.isNaN(p)?l:p}else f&&(l=l.split(","),l[l.length-1]===""&&l.pop(),h&&(l=l.map(Number)));s[d]=l}}else{const a=["chrom","chromStart","chromEnd","name"];s=Object.fromEntries(o.map((u,l)=>[a[l]||"field"+l,u])),s.chromStart=+s.chromStart,s.chromEnd=+s.chromEnd,Number.isNaN(Number.parseFloat(s.field4))||(s.score=+s.field4,delete s.field4),(s.field5==="+"||s.field5==="-")&&(s.strand=s.field5,delete s.field5)}return i&&(s.uniqueId=i),s.strand=tU[s.strand]||0,s.chrom=decodeURIComponent(s.chrom),s}}const iU=Object.freeze(Object.defineProperty({__proto__:null,default:rU},Symbol.toStringTag,{value:"Module"}));let PE=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 zs(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new PE(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 LE=class{constructor(t,n,r,i){this.minv=t,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv.toString()}..${this.maxv.toString()} (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 oU(e){return new Promise(t=>setTimeout(t,e))}function sU(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}function aU(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 lU(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function uU(e={}){return"aborted"in e?{signal:e}:e}function NE(e,t){const n=[];let r;if(e.length===0)return e;e.sort((i,o)=>{const s=i.minv.blockPosition-o.minv.blockPosition;return s===0?i.minv.dataPosition-o.minv.dataPosition:s});for(const i of e)(!t||i.maxv.compareTo(t)>0)&&(r===void 0?(n.push(i),r=i):lU(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i));return n}function OE(e,t){return{lineCount:sU(Lf.fromBytesLE(Array.prototype.slice.call(e,t,t+8),!0))}}function ah(e,t){return e?e.compareTo(t)>0?t:e:t}function cU(e,t=n=>n){let n=0,r=0;const i=[],o={};for(let s=0;s<e.length;s+=1)if(!e[s]){if(r<s){let a=e.toString("utf8",r,s);a=t(a),i[n]=a,o[a]=n}r=s+1,n+=1}return{refNameToId:o,refIdToName:i}}let zE=class{constructor({filehandle:t,renameRefSeq:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}};const fU=21578050;function hU(e,t){return e-e%t}function dU(e,t){return e-e%t+t}function pU(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 Us extends zE{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)!==fU)throw new Error("Not a BAI file");const r=n.readInt32LE(4),o=((1<<(5+1)*3)-1)/7;let s=8,a;const u=new Array(r);for(let l=0;l<r;l++){const c=n.readInt32LE(s);let f;s+=4;const h={};for(let m=0;m<c;m+=1){const y=n.readUInt32LE(s);if(s+=4,y===o+1)s+=4,f=OE(n,s+16),s+=32;else{if(y>o+1)throw new Error("bai index contains too many bins, please use CSI");{const w=n.readInt32LE(s);s+=4;const x=new Array(w);for(let S=0;S<w;S++){const _=zs(n,s);s+=8;const T=zs(n,s);s+=8,a=ah(a,_),x[S]=new LE(_,T,y)}h[y]=x}}}const d=n.readInt32LE(s);s+=4;const p=new Array(d);for(let m=0;m<d;m++){const y=zs(n,s);s+=8,a=ah(a,y),p[m]=y}u[l]={binIndex:h,linearIndex:p,stats:f}}return{bai:!0,firstDataLine:a,maxBlockSize:65536,indices:u,refCount:r}}async indexCov(t,n,r,i={}){const s=n!==void 0,u=(await this.parse(i)).indices[t];if(!u)return[];const{linearIndex:l=[],stats:c}=u;if(l.length===0)return[];const f=r===void 0?(l.length-1)*16384:dU(r,16384),h=n===void 0?0:hU(n,16384),d=s?new Array((f-h)/16384):new Array(l.length-1),p=l[l.length-1].blockPosition;if(f>(l.length-1)*16384)throw new Error("query outside of range of linear index");let m=l[h/16384].blockPosition;for(let y=h/16384,w=0;y<f/16384;y++,w++)d[w]={score:l[y+1].blockPosition-m,start:y*16384,end:y*16384+16384},m=l[y+1].blockPosition;return d.map(y=>({...y,score:y.score*((c==null?void 0:c.lineCount)||0)/p}))}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const o=await this.parse(i);if(!o)return[];const s=o.indices[t];if(!s)return[];const a=pU(n,r),u=[];for(const[d,p]of a)for(let m=d;m<=p;m++)if(s.binIndex[m]){const y=s.binIndex[m];for(const w of y)u.push(w)}const l=s.linearIndex.length;let c;const f=Math.min(n>>14,l-1),h=Math.min(r>>14,l-1);for(let d=f;d<=h;++d){const p=s.linearIndex[d];p&&(!c||p.compareTo(c)<0)&&(c=p)}return NE(u,c)}async parse(t={}){return this.setupP||(this.setupP=this._parse(t).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}}function gU(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}const mU=new Int32Array([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]);function UE(e){if(Buffer.isBuffer(e))return e;if(typeof e=="number")return Buffer.alloc(e);if(typeof e=="string")return Buffer.from(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function bU(e){const t=UE(4);return t.writeInt32BE(e,0),t}function Fg(e,t){e=UE(e),Buffer.isBuffer(t)&&(t=t.readUInt32BE(0));let n=~~t^-1;for(var r=0;r<e.length;r++)n=mU[(n^e[r])&255]^n>>>8;return n^-1}function Mg(){return bU(Fg.apply(null,arguments))}Mg.signed=function(){return Fg.apply(null,arguments)},Mg.unsigned=function(){return Fg.apply(null,arguments)>>>0};var yU=Mg;const wU=gU(yU),vU=21582659,AU=38359875;function xU(e,t){return e*2**t}function GE(e,t){return Math.floor(e/2**t)}let lh=class extends zE{constructor(){super(...arguments),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n){var r,i;return((i=(r=(await this.parse(n)).indices[t])===null||r===void 0?void 0:r.stats)===null||i===void 0?void 0:i.lineCount)||0}async indexCov(){return[]}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",o={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!o)throw new Error(`invalid Tabix preset format flags ${r}`);const s={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},a=t.readInt32LE(n+16),u=a?String.fromCharCode(a):"",l=t.readInt32LE(n+20),c=t.readInt32LE(n+24);return{columnNumbers:s,coordinateType:i,metaValue:a,metaChar:u,skipLines:l,format:o,formatFlags:r,...cU(t.subarray(n+28,n+28+c),this.renameRefSeq)}}async _parse(t){const n=await this.filehandle.readFile(t),r=await di(n);let i;if(r.readUInt32LE(0)===vU)i=1;else if(r.readUInt32LE(0)===AU)i=2;else throw new Error("Not a CSI file");this.minShift=r.readInt32LE(4),this.depth=r.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const o=r.readInt32LE(12),s=o>=30?this.parseAuxData(r,16):void 0,a=r.readInt32LE(16+o);let u=16+o+4,l;const c=new Array(a);for(let f=0;f<a;f++){const h=r.readInt32LE(u);u+=4;const d={};let p;for(let m=0;m<h;m++){const y=r.readUInt32LE(u);if(u+=4,y>this.maxBinNumber)p=OE(r,u+28),u+=44;else{l=ah(l,zs(r,u)),u+=8;const w=r.readInt32LE(u);u+=4;const x=new Array(w);for(let S=0;S<w;S+=1){const _=zs(r,u);u+=8;const T=zs(r,u);u+=8,l=ah(l,_),x[S]=new LE(_,T,y)}d[y]=x}}c[f]={binIndex:d,stats:p}}return{csiVersion:i,firstDataLine:l,indices:c,refCount:a,csi:!0,maxBlockSize:65536,...s}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const o=await this.parse(i),s=o==null?void 0:o.indices[t];if(!s)return[];const a=this.reg2bins(n,r);if(a.length===0)return[];const u=[];for(const[l,c]of a)for(let f=l;f<=c;f++)if(s.binIndex[f]){const h=s.binIndex[f];for(const d of h)u.push(d)}return NE(u,new PE(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,o=this.minShift+this.depth*3;const s=[];for(;r<=this.depth;o-=3,i+=xU(1,r*3),r+=1){const a=i+GE(t,o),u=i+GE(n,o);if(u-a+s.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`);s.push([a,u])}return s}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 An={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},HE="=ACMGRSVTWYHKDBN".split(""),pu="MIDNSHP=X???????".split("");class VE{constructor(t){this.data={},this._tagList=[],this._allTagsParsed=!1;const{bytes:n,fileOffset:r}=t,{byteArray:i,start:o}=n;this.data={},this.bytes=n,this._id=r,this._refID=i.readInt32LE(o+4),this.data.start=i.readInt32LE(o+8),this.flags=(i.readInt32LE(o+16)&4294901760)>>16}get(t){return this[t]?this.data[t]?this.data[t]:(this.data[t]=this[t](),this.data[t]):this._get(t.toLowerCase())}end(){return this.get("start")+this.get("length_on_ref")}seq_id(){return this._refID}_get(t){return t in this.data?this.data[t]:(this.data[t]=this._parseTag(t),this.data[t])}_tags(){this._parseAllTags();let t=["seq"];this.isSegmentUnmapped()||t.push("start","end","strand","score","qual","MQ","CIGAR","length_on_ref","template_length"),this.isPaired()&&t.push("next_segment_position","pair_orientation"),t=t.concat(this._tagList||[]);for(const r of Object.keys(this.data))!r.startsWith("_")&&r!=="next_seq_id"&&t.push(r);const n={};return t.filter(r=>{if(r in this.data&&this.data[r]===void 0||r==="CG"||r==="cg")return!1;const i=r.toLowerCase(),o=n[i];return n[i]=!0,!o})}parent(){}children(){return this.get("subfeatures")}id(){return this._id}mq(){const t=(this.get("_bin_mq_nl")&65280)>>8;return t===255?void 0:t}score(){return this.get("mq")}qual(){var t;return(t=this.qualRaw())===null||t===void 0?void 0:t.join(" ")}qualRaw(){if(this.isSegmentUnmapped())return;const{start:t,byteArray:n}=this.bytes,r=t+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes"),i=this.get("seq_length");return n.subarray(r,r+i)}strand(){return this.isReverseComplemented()?-1:1}multi_segment_next_segment_strand(){if(!this.isMateUnmapped())return this.isMateReverseComplemented()?-1:1}name(){return this.get("_read_name")}_read_name(){const t=this.get("_l_read_name"),{byteArray:n,start:r}=this.bytes;return n.toString("ascii",r+36,r+36+t-1)}_parseTag(t){if(this._allTagsParsed)return;const{byteArray:n,start:r}=this.bytes;let i=this._tagOffset||r+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes")+this.get("seq_length");const o=this.bytes.end;let s;for(;i<o&&s!==t;){const a=String.fromCharCode(n[i],n[i+1]);s=a.toLowerCase();const u=String.fromCharCode(n[i+2]);i+=3;let l;switch(u){case"A":{l=String.fromCharCode(n[i]),i+=1;break}case"i":{l=n.readInt32LE(i),i+=4;break}case"I":{l=n.readUInt32LE(i),i+=4;break}case"c":{l=n.readInt8(i),i+=1;break}case"C":{l=n.readUInt8(i),i+=1;break}case"s":{l=n.readInt16LE(i),i+=2;break}case"S":{l=n.readUInt16LE(i),i+=2;break}case"f":{l=n.readFloatLE(i),i+=4;break}case"Z":case"H":{for(l="";i<=o;){const c=n[i++];if(c===0)break;l+=String.fromCharCode(c)}break}case"B":{l="";const c=n[i++],f=String.fromCharCode(c),h=n.readInt32LE(i);if(i+=4,f==="i")if(a==="CG")for(let d=0;d<h;d++){const p=n.readInt32LE(i),m=p>>4,y=pu[p&15];l+=m+y,i+=4}else for(let d=0;d<h;d++)l+=n.readInt32LE(i),d+1<h&&(l+=","),i+=4;if(f==="I")if(a==="CG")for(let d=0;d<h;d++){const p=n.readUInt32LE(i),m=p>>4,y=pu[p&15];l+=m+y,i+=4}else for(let d=0;d<h;d++)l+=n.readUInt32LE(i),d+1<h&&(l+=","),i+=4;if(f==="s")for(let d=0;d<h;d++)l+=n.readInt16LE(i),d+1<h&&(l+=","),i+=2;if(f==="S")for(let d=0;d<h;d++)l+=n.readUInt16LE(i),d+1<h&&(l+=","),i+=2;if(f==="c")for(let d=0;d<h;d++)l+=n.readInt8(i),d+1<h&&(l+=","),i+=1;if(f==="C")for(let d=0;d<h;d++)l+=n.readUInt8(i),d+1<h&&(l+=","),i+=1;if(f==="f")for(let d=0;d<h;d++)l+=n.readFloatLE(i),d+1<h&&(l+=","),i+=4;break}default:console.warn(`Unknown BAM tag type '${u}', tags may be incomplete`),l=void 0,i=o}if(this._tagOffset=i,this._tagList.push(a),s===t)return l;this.data[s]=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&An.BAM_FPAIRED)}isProperlyPaired(){return!!(this.flags&An.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return!!(this.flags&An.BAM_FUNMAP)}isMateUnmapped(){return!!(this.flags&An.BAM_FMUNMAP)}isReverseComplemented(){return!!(this.flags&An.BAM_FREVERSE)}isMateReverseComplemented(){return!!(this.flags&An.BAM_FMREVERSE)}isRead1(){return!!(this.flags&An.BAM_FREAD1)}isRead2(){return!!(this.flags&An.BAM_FREAD2)}isSecondary(){return!!(this.flags&An.BAM_FSECONDARY)}isFailedQc(){return!!(this.flags&An.BAM_FQCFAIL)}isDuplicate(){return!!(this.flags&An.BAM_FDUP)}isSupplementary(){return!!(this.flags&An.BAM_FSUPPLEMENTARY)}cigar(){if(this.isSegmentUnmapped())return;const{byteArray:t,start:n}=this.bytes,r=this.get("_n_cigar_op");let i=n+36+this.get("_l_read_name");const o=this.get("seq_length");let s="",a=0,u=t.readInt32LE(i),l=u>>4,c=pu[u&15];if(c==="S"&&l===o)return i+=4,u=t.readInt32LE(i),l=u>>4,c=pu[u&15],c!=="N"&&console.warn("CG tag with no N tag"),this.data.length_on_ref=l,this.get("CG");for(let f=0;f<r;++f)u=t.readInt32LE(i),l=u>>4,c=pu[u&15],s+=l+c,c!=="H"&&c!=="S"&&c!=="I"&&(a+=l),i+=4;return this.data.length_on_ref=a,s}length_on_ref(){return this.data.length_on_ref?this.data.length_on_ref:(this.get("cigar"),this.data.length_on_ref)}_n_cigar_op(){return this.get("_flag_nc")&65535}_l_read_name(){return this.get("_bin_mq_nl")&255}_seq_bytes(){return this.get("seq_length")+1>>1}getReadBases(){return this.seq()}seq(){const{byteArray:t,start:n}=this.bytes,r=n+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4,i=this.get("_seq_bytes"),o=this.get("seq_length");let s="",a=0;for(let u=0;u<i;++u){const l=t[r+u];s+=HE[(l&240)>>4],a++,a<o&&(s+=HE[l&15],a++)}return s}getPairOrientation(){if(!this.isSegmentUnmapped()&&!this.isMateUnmapped()&&this._refID===this._next_refid()){const t=this.isReverseComplemented()?"R":"F",n=this.isMateReverseComplemented()?"R":"F";let r=" ",i=" ";this.isRead1()?(r="1",i="2"):this.isRead2()&&(r="2",i="1");const o=[];return this.template_length()>0?(o[0]=t,o[1]=r,o[2]=n,o[3]=i):(o[2]=t,o[3]=r,o[0]=n,o[1]=i),o.join("")}return""}_bin_mq_nl(){return this.bytes.byteArray.readInt32LE(this.bytes.start+12)}_flag_nc(){return this.bytes.byteArray.readInt32LE(this.bytes.start+16)}seq_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+20)}_next_refid(){return this.bytes.byteArray.readInt32LE(this.bytes.start+24)}_next_pos(){return this.bytes.byteArray.readInt32LE(this.bytes.start+28)}template_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+32)}toJSON(){const t={};for(const n of Object.keys(this))n.startsWith("_")||n==="bytes"||(t[n]=this[n]);return t}}function jE(e){const t=e.split(/\r?\n/),n=[];for(const r of t){const[i,...o]=r.split(/\t/);i&&n.push({tag:i.slice(1),data:o.map(s=>{const a=s.indexOf(":"),u=s.slice(0,a),l=s.slice(a+1);return{tag:u,value:l}})})}return n}const $E=21840194,qE=65536;async function EU(e){let t=[];for await(const n of e)t=t.concat(n);return t}class _U{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 WE{constructor({bamFilehandle:t,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:o,baiUrl:s,csiPath:a,csiFilehandle:u,csiUrl:l,htsget:c,yieldThreadTime:f=100,renameRefSeqs:h=d=>d}){if(this.htsget=!1,this.featureCache=new jf({cache:new $f({maxSize:50}),fill:async(d,p)=>{const{chunk:m,opts:y}=d,{data:w,cpositions:x,dpositions:S}=await this._readChunk({chunk:m,opts:{...y,signal:p}});return this.readBamFeatures(w,x,S,m)}}),this.renameRefSeq=h,t)this.bam=t;else if(n)this.bam=new gt(n);else if(r)this.bam=new oo(r);else if(c)this.htsget=!0,this.bam=new _U;else throw new Error("unable to initialize bam");if(u)this.index=new lh({filehandle:u});else if(a)this.index=new lh({filehandle:new gt(a)});else if(l)this.index=new lh({filehandle:new oo(l)});else if(o)this.index=new Us({filehandle:o});else if(i)this.index=new Us({filehandle:new gt(i)});else if(s)this.index=new Us({filehandle:new oo(s)});else if(n)this.index=new Us({filehandle:new gt(`${n}.bai`)});else if(r)this.index=new Us({filehandle:new oo(`${r}.bai`)});else if(c)this.htsget=!0;else throw new Error("unable to infer index format");this.yieldThreadTime=f}async getHeaderPre(t){const n=uU(t);if(!this.index)return;const r=await this.index.parse(n),i=r.firstDataLine?r.firstDataLine.blockPosition+65535:void 0;let o;if(i){const c=i+qE,f=await this.bam.read(xe.Buffer.alloc(c),0,c,0,n);if(!f.bytesRead)throw new Error("Error reading header");o=f.buffer.subarray(0,Math.min(f.bytesRead,i))}else o=await this.bam.readFile(n);const s=await di(o);if(s.readInt32LE(0)!==$E)throw new Error("Not a BAM file");const a=s.readInt32LE(4);this.header=s.toString("utf8",8,8+a);const{chrToIndex:u,indexToChr:l}=await this._readRefSeqs(a+8,65535,n);return this.chrToIndex=u,this.indexToChr=l,jE(this.header)}getHeader(t){return this.headerP||(this.headerP=this.getHeaderPre(t).catch(n=>{throw this.headerP=void 0,n})),this.headerP}async getHeaderText(t={}){return await this.getHeader(t),this.header}async _readRefSeqs(t,n,r){if(t>n)return this._readRefSeqs(t,n*2,r);const i=n+qE,{bytesRead:o,buffer:s}=await this.bam.read(xe.Buffer.alloc(i),0,n,0,r);if(!o)throw new Error("Error reading refseqs from header");const a=await di(s.subarray(0,Math.min(o,n))),u=a.readInt32LE(t);let l=t+4;const c={},f=[];for(let h=0;h<u;h+=1){const d=a.readInt32LE(l),p=this.renameRefSeq(a.toString("utf8",l+4,l+4+d-1)),m=a.readInt32LE(l+d+4);if(c[p]=h,f.push({refName:p,length:m}),l=l+8+d,l>a.length)return console.warn(`BAM header is very big. Re-fetching ${n} bytes.`),this._readRefSeqs(t,n*2,r)}return{chrToIndex:c,indexToChr:f}}async getRecordsForRange(t,n,r,i){return EU(this.streamRecordsForRange(t,n,r,i))}async*streamRecordsForRange(t,n,r,i){var o;await this.getHeader(i);const s=(o=this.chrToIndex)===null||o===void 0?void 0:o[t];if(s===void 0||!this.index)yield[];else{const a=await this.index.blocksForRange(s,n-1,r,i);yield*this._fetchChunkFeatures(a,s,n,r,i)}}async*_fetchChunkFeatures(t,n,r,i,o={}){const{viewAsPairs:s}=o,a=[];let u=!1;for(const l of t){const c=await this.featureCache.get(l.toString(),{chunk:l,opts:o},o.signal),f=[];for(const h of c)if(h.seq_id()===n)if(h.get("start")>=i){u=!0;break}else h.get("end")>=r&&f.push(h);if(a.push(f),yield f,u)break}aU(o.signal),s&&(yield this.fetchPairs(n,a,o))}async fetchPairs(t,n,r){const{pairAcrossChr:i,maxInsertSize:o=2e5}=r,s={},a={};n.map(h=>{const d={};for(const p of h){const m=p.name(),y=p.id();d[m]||(d[m]=0),d[m]++,a[y]=1}for(const[p,m]of Object.entries(d))m===1&&(s[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&&s[p]&&(i||w===t&&Math.abs(m-y)<o)&&u.push(this.index.blocksForRange(w,y,y+1,r))}});const l=new Map,c=await Promise.all(u);for(const h of c.flat())l.has(h.toString())||l.set(h.toString(),h);return(await Promise.all([...l.values()].map(async h=>{const{data:d,cpositions:p,dpositions:m,chunk:y}=await this._readChunk({chunk:h,opts:r}),w=[];for(const x of await this.readBamFeatures(d,p,m,y))s[x.get("name")]&&!a[x.id()]&&w.push(x);return w}))).flat()}async _readRegion(t,n,r={}){const{bytesRead:i,buffer:o}=await this.bam.read(xe.Buffer.alloc(n),0,n,t,r);return o.subarray(0,Math.min(i,n))}async _readChunk({chunk:t,opts:n}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n),{buffer:i,cpositions:o,dpositions:s}=await px(r,t);return{data:i,cpositions:o,dpositions:s,chunk:t}}async readBamFeatures(t,n,r,i){let o=0;const s=[];let a=0,u=+Date.now();for(;o+4<t.length;){const l=t.readInt32LE(o),c=o+4+l-1;if(r){for(;o+i.minv.dataPosition>=r[a++];);a--}if(c<t.length){const f=new VE({bytes:{byteArray:t,start:o,end:c},fileOffset:n.length>0?n[a]*256+(o-r[a])+i.minv.dataPosition+1:wU.signed(t.slice(o,c))});s.push(f),this.yieldThreadTime&&+Date.now()-u>this.yieldThreadTime&&(await oU(1),u=+Date.now())}o=c+1}return s}async hasRefSeq(t){var n,r;const i=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return i===void 0?!1:(r=this.index)===null||r===void 0?void 0:r.hasRefSeq(i)}async lineCount(t){var n;const r=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return r===void 0||!this.index?0:this.index.lineCount(r)}async indexCov(t,n,r){var i;if(!this.index)return[];await this.index.parse();const o=(i=this.chrToIndex)===null||i===void 0?void 0:i[t];return o===void 0?[]:this.index.indexCov(o,n,r)}async blocksForRange(t,n,r,i){var o;if(!this.index)return[];await this.index.parse();const s=(o=this.chrToIndex)===null||o===void 0?void 0:o[t];return s===void 0?[]:this.index.blocksForRange(s,n,r,i)}}async function ZE(e,t){const n=await Promise.all(e.map(async r=>{const{url:i,headers:o}=r;if(i.startsWith("data:"))return xe.Buffer.from(i.split(",")[1],"base64");{const{referer:s,...a}=o,u=await fetch(i,{...t,headers:{...t==null?void 0:t.headers,...a}});if(!u.ok)throw new Error(`HTTP ${u.status} fetching ${i}: ${await u.text()}`);return xe.Buffer.from(await u.arrayBuffer())}}));return xe.Buffer.concat(await Promise.all(n.map(r=>di(r))))}class SU extends WE{constructor(t){super({htsget:!0}),this.baseUrl=t.baseUrl,this.trackId=t.trackId}async*streamRecordsForRange(t,n,r,i){var o;const a=`${`${this.baseUrl}/${this.trackId}`}?referenceName=${t}&start=${n}&end=${r}&format=BAM`,u=(o=this.chrToIndex)===null||o===void 0?void 0:o[t];if(u===void 0)yield[];else{const l=await fetch(a,{...i});if(!l.ok)throw new Error(`HTTP ${l.status} fetching ${a}: ${await l.text()}`);const c=await l.json(),f=await ZE(c.htsget.urls.slice(1),i);yield*this._fetchChunkFeatures([{buffer:f,_fetchedSize:void 0,bin:0,compareTo(){return 0},toUniqueString(){return`${t}_${n}_${r}`},fetchedSize(){return 0},minv:{dataPosition:0,blockPosition:0,compareTo:()=>0},maxv:{dataPosition:Number.MAX_SAFE_INTEGER,blockPosition:0,compareTo:()=>0},toString(){return`${t}_${n}_${r}`}}],u,n,r,i)}}async _readChunk({chunk:t}){if(!t.buffer)throw new Error("expected chunk.buffer in htsget");return{data:t.buffer,cpositions:[],dpositions:[],chunk:t}}async getHeader(t={}){const n=`${this.baseUrl}/${this.trackId}?referenceName=na&class=header`,r=await fetch(n,t);if(!r.ok)throw new Error(`HTTP ${r.status} fetching ${n}: ${await r.text()}`);const i=await r.json(),o=await ZE(i.htsget.urls,t);if(o.readInt32LE(0)!==$E)throw new Error("Not a BAM file");const s=o.readInt32LE(4),a=o.toString("utf8",8,8+s),u=jE(a),l=[],c={},f=u.filter(h=>h.tag==="SQ");for(const[h,d]of f.entries()){let p="",m=0;for(const y of d.data)y.tag==="SN"?p=y.value:y.tag==="LN"&&(m=+y.value);c[p]=h,l[h]={refName:p,length:m}}return this.chrToIndex=c,this.indexToChr=l,u}}const CU=Object.freeze(Object.defineProperty({__proto__:null,BAI:Us,BamFile:WE,BamRecord:VE,CSI:lh,HtsgetFile:SU},Symbol.toStringTag,{value:"Module"}));function YE(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}class TU extends Error{}function Gs(e){if(e&&e.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const t=new TU("aborted");throw t.code="ERR_ABORTED",t}}}function kU(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function QE(e,t){const n=[];let r=null;return e.length===0?e:(e.sort(function(i,o){const s=i.minv.blockPosition-o.minv.blockPosition;return s!==0?s:i.minv.dataPosition-o.minv.dataPosition}),e.forEach(i=>{(!t||i.maxv.compareTo(t)>0)&&(r===null?(n.push(i),r=i):kU(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}class Pg{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 Hs(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new Pg(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 uh{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 XE{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 IU=21578324,KE=14;function BU(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 ch extends XE{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:s}=r.indices[i];return s?s.lineCount:-1}async _parse(t={}){const n=await this.filehandle.readFile(t),r=await di(n);if(Gs(t.signal),r.readUInt32LE(0)!==IU)throw new Error("Not a TBI file");const i=r.readInt32LE(4),o=r.readInt32LE(8),s=o&65536?"zero-based-half-open":"1-based-closed",u={0:"generic",1:"SAM",2:"VCF"}[o&15];if(!u)throw new Error(`invalid Tabix preset format flags ${o}`);const l={ref:r.readInt32LE(12),start:r.readInt32LE(16),end:r.readInt32LE(20)},c=r.readInt32LE(24),f=5,h=((1<<(f+1)*3)-1)/7,d=2**(14+f*3),p=c?String.fromCharCode(c):null,m=r.readInt32LE(28),y=r.readInt32LE(32),{refNameToId:w,refIdToName:x}=this._parseNameBytes(r.slice(36,36+y));let S=36+y,_;return{indices:new Array(i).fill(0).map(()=>{const B=r.readInt32LE(S);S+=4;const I={};let D;for(let N=0;N<B;N+=1){const ne=r.readUInt32LE(S);if(S+=4,ne>h+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(ne===h+1){const ie=r.readInt32LE(S);S+=4,ie===2&&(D=this.parsePseudoBin(r,S)),S+=16*ie}else{const ie=r.readInt32LE(S);S+=4;const pe=new Array(ie);for(let be=0;be<ie;be+=1){const Pe=Hs(r,S),_e=Hs(r,S+8);S+=16,_=this._findFirstData(_,Pe),pe[be]=new uh(Pe,_e,ne)}I[ne]=pe}}const M=r.readInt32LE(S);S+=4;const G=new Array(M);for(let N=0;N<M;N+=1)G[N]=Hs(r,S),S+=8,_=this._findFirstData(_,G[N]);return{binIndex:I,linearIndex:G,stats:D}}),metaChar:p,maxBinNumber:h,maxRefLength:d,skipLines:m,firstDataLine:_,columnNumbers:l,coordinateType:s,format:u,refIdToName:x,refNameToId:w,maxBlockSize:65536}}parsePseudoBin(t,n){return{lineCount:YE(Lf.fromBytesLE(t.slice(n+16,n+24),!0))}}_parseNameBytes(t){let n=0,r=0;const i=[],o={};for(let s=0;s<t.length;s+=1)if(!t[s]){if(r<s){let a=t.toString("utf8",r,s);a=this.renameRefSeq(a),i[n]=a,o[a]=n}r=s+1,n+=1}return{refNameToId:o,refIdToName:i}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const o=await this.parse(i);if(!o)return[];const s=o.refNameToId[t],a=o.indices[s];if(!a)return[];(a.linearIndex.length?a.linearIndex[n>>KE>=a.linearIndex.length?a.linearIndex.length-1:n>>KE]:new Pg(0,0))||console.warn("querying outside of possible tabix range");const l=BU(n,r),c=[];for(const[m,y]of l)for(let w=m;w<=y;w++)if(a.binIndex[w])for(const x of a.binIndex[w])c.push(new uh(x.minv,x.maxv,w));const f=a.linearIndex.length;let h=null;const d=Math.min(n>>14,f-1),p=Math.min(r>>14,f-1);for(let m=d;m<=p;++m){const y=a.linearIndex[m];y&&(!h||y.compareTo(h)<0)&&(h=y)}return QE(c,h)}}const DU=21582659,RU=38359875;function FU(e,t){return e*2**t}function JE(e,t){return Math.floor(e/2**t)}class Lg extends XE{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:s}=r.indices[i];return s?s.lineCount:-1}indexCov(){throw new Error("CSI indexes do not support indexcov")}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",o={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!o)throw new Error(`invalid Tabix preset format flags ${r}`);const s={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},a=t.readInt32LE(n+16),u=a?String.fromCharCode(a):null,l=t.readInt32LE(n+20),c=t.readInt32LE(n+24),{refIdToName:f,refNameToId:h}=this._parseNameBytes(t.slice(n+28,n+28+c));return{refIdToName:f,refNameToId:h,skipLines:l,metaChar:u,columnNumbers:s,format:o,coordinateType:i}}_parseNameBytes(t){let n=0,r=0;const i=[],o={};for(let s=0;s<t.length;s+=1)if(!t[s]){if(r<s){let a=t.toString("utf8",r,s);a=this.renameRefSeq(a),i[n]=a,o[a]=n}r=s+1,n+=1}return{refNameToId:o,refIdToName:i}}async _parse(t={}){const n=await di(await this.filehandle.readFile(t));let r;if(n.readUInt32LE(0)===DU)r=1;else if(n.readUInt32LE(0)===RU)r=2;else throw new Error("Not a CSI file");this.minShift=n.readInt32LE(4),this.depth=n.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const i=2**(this.minShift+this.depth*3),o=n.readInt32LE(12),s=o&&o>=30?this.parseAuxData(n,16):{refIdToName:[],refNameToId:{},metaChar:null,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},a=n.readInt32LE(16+o);let u,l=16+o+4;const c=new Array(a).fill(0).map(()=>{const f=n.readInt32LE(l);l+=4;const h={};let d;for(let p=0;p<f;p+=1){const m=n.readUInt32LE(l);if(m>this.maxBinNumber)d=this.parsePseudoBin(n,l+4),l+=48;else{const y=Hs(n,l+4);u=this._findFirstData(u,y);const w=n.readInt32LE(l+12);l+=16;const x=new Array(w);for(let S=0;S<w;S+=1){const _=Hs(n,l),T=Hs(n,l+8);l+=16,x[S]=new uh(_,T,m)}h[m]=x}}return{binIndex:h,stats:d}});return{...s,csi:!0,refCount:a,maxBlockSize:65536,firstDataLine:u,csiVersion:r,indices:c,depth:this.depth,maxBinNumber:this.maxBinNumber,maxRefLength:i}}parsePseudoBin(t,n){return{lineCount:YE(Lf.fromBytesLE(t.slice(n+28,n+36),!0))}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const o=await this.parse(i);if(!o)return[];const s=o.refNameToId[t],a=o.indices[s];if(!a)return[];const u=this.reg2bins(n,r),l=[];for(const[c,f]of u)for(let h=c;h<=f;h++)if(a.binIndex[h])for(const d of a.binIndex[h])l.push(new uh(d.minv,d.maxv,h));return QE(l,new Pg(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,o=this.minShift+this.depth*3;const s=[];for(;r<=this.depth;o-=3,i+=FU(1,r*3),r+=1){const a=i+JE(t,o),u=i+JE(n,o);if(u-a+s.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`);s.push([a,u])}return s}}const Ng=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function MU(e){return new Promise(t=>setTimeout(t,e))}class PU{constructor({path:t,filehandle:n,tbiPath:r,tbiFilehandle:i,csiPath:o,csiFilehandle:s,yieldTime:a=500,chunkSizeLimit:u=5e7,renameRefSeqs:l=f=>f,chunkCacheSize:c=5*2**20}){if(n)this.filehandle=n;else if(t)this.filehandle=new gt(t);else throw new TypeError("must provide either filehandle or path");if(i)this.index=new ch({filehandle:i,renameRefSeqs:l});else if(s)this.index=new Lg({filehandle:s,renameRefSeqs:l});else if(r)this.index=new ch({filehandle:new gt(r),renameRefSeqs:l});else if(o)this.index=new Lg({filehandle:new gt(o),renameRefSeqs:l});else if(t)this.index=new ch({filehandle:new gt(`${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=a,this.chunkCache=new jf({cache:new $f({maxSize:Math.floor(c/65536)}),fill:(f,h)=>this.readChunk(f,{signal:h})})}async getLines(t,n,r,i){var o;let s,a={},u;if(i===void 0)throw new TypeError("line callback must be provided");if(typeof i=="function"?u=i:(a=i,u=i.lineCallback,s=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(a);Gs(s);const c=n??0,f=r??l.maxRefLength;if(!(c<=f))throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(c===f)return;const h=await this.index.blocksForRange(t,c,f,a);Gs(s);for(const p of h){const m=p.fetchedSize();if(m>this.chunkSizeLimit)throw new Error(`Too much data. Chunk size ${m.toLocaleString()} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit.toLocaleString()}.`)}let d=Date.now();for(const p of h){let m;const{buffer:y,cpositions:w,dpositions:x}=await this.chunkCache.get(p.toString(),p,s);Gs(s);let S=0,_=0;for(;S<y.length;){const T=y.indexOf(`
|
|
770
|
-
`,S);if(T===-1)break;const B=y.slice(S,T),I=(o=Ng==null?void 0:Ng.decode(B))!==null&&o!==void 0?o:B.toString();if(x){for(;S+p.minv.dataPosition>=x[_++];);_--}const{startCoordinate:D,overlaps:M}=this.checkLine(l,t,c,f,I);if(m!==void 0&&D!==void 0&&m>D)throw new Error(`Lines not sorted by start coordinate (${m} > ${D}), this file is not usable with Tabix.`);if(m=D,M)u(I.trim(),w[_]*256+(S-x[_])+p.minv.dataPosition+1);else if(D!==void 0&&D>=f)return;this.yieldTime&&d-Date.now()>this.yieldTime&&(d=Date.now(),Gs(s),await MU(1)),S=T+1}}}async getMetadata(t={}){return this.index.getMetadata(t)}async getHeaderBuffer(t={}){const{firstDataLine:n,metaChar:r,maxBlockSize:i}=await this.getMetadata(t);Gs(t.signal);const o=((n==null?void 0:n.blockPosition)||0)+i,s=await this._readRegion(0,o,t),a=await di(s);if(r){let u=-1;const l=10,c=r.charCodeAt(0);for(let f=0;f<a.length&&!(f===u+1&&a[f]!==c);f+=1)a[f]===l&&(u=f);return a.slice(0,u+1)}return a}async getHeader(t={}){return(await this.getHeaderBuffer(t)).toString("utf8")}async getReferenceSequenceNames(t={}){return(await this.getMetadata(t)).refIdToName}checkLine(t,n,r,i,o){const{columnNumbers:s,metaChar:a,coordinateType:u,format:l}=t;if(a&&o.startsWith(a))return{overlaps:!1};let{ref:c,start:f,end:h}=s;c||(c=0),f||(f=0),h||(h=0),l==="VCF"&&(h=8);const d=Math.max(c,f,h);let p=1,m=0,y="",w=-1/0;for(let x=0;x<o.length+1;x+=1)if(o[x]===" "||x===o.length){if(p===c){if(this.renameRefSeq(o.slice(m,x))!==n)return{overlaps:!1}}else if(p===f){if(w=parseInt(o.slice(m,x),10),u==="1-based-closed"&&(w-=1),w>=i)return{startCoordinate:w,overlaps:!1};if((h===0||h===f)&&w+1<=r)return{startCoordinate:w,overlaps:!1}}else if(l==="VCF"&&p===4)y=o.slice(m,x);else if(p===h&&(l==="VCF"?this._getVcfEnd(w,y,o.slice(m,x)):parseInt(o.slice(m,x),10))<=r)return{overlaps:!1};if(m=x+1,p+=1,p>d)break}return{startCoordinate:w,overlaps:!0}}_getVcfEnd(t,n,r){let i=t+n.length;const o=r.includes("SVTYPE=TRA");if(r[0]!=="."&&!o){let s=";";for(let a=0;a<r.length;a+=1){if(s===";"&&r.slice(a,a+4)==="END="){let u=r.indexOf(";",a);u===-1&&(u=r.length),i=parseInt(r.slice(a+4,u),10);break}s=r[a]}}else if(o)return t+1;return i}async lineCount(t,n={}){return this.index.lineCount(t,n)}async _readRegion(t,n,r={}){const i=xe.Buffer.alloc(n),{bytesRead:o,buffer:s}=await this.filehandle.read(i,0,n,t,r);return s.slice(0,o)}async readChunk(t,n={}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n);return px(r,t)}}const LU=Object.freeze(Object.defineProperty({__proto__:null,CSI:Lg,TBI:ch,TabixIndexedFile:PU},Symbol.toStringTag,{value:"Module"}));var Og={exports:{}},Vs=typeof Reflect=="object"?Reflect:null,e_=Vs&&typeof Vs.apply=="function"?Vs.apply:function(t,n,r){return Function.prototype.apply.call(t,n,r)},fh;Vs&&typeof Vs.ownKeys=="function"?fh=Vs.ownKeys:Object.getOwnPropertySymbols?fh=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:fh=function(t){return Object.getOwnPropertyNames(t)};function NU(e){console&&console.warn&&console.warn(e)}var t_=Number.isNaN||function(t){return t!==t};function Ne(){Ne.init.call(this)}Og.exports=Ne,Og.exports.once=GU,Ne.EventEmitter=Ne,Ne.prototype._events=void 0,Ne.prototype._eventsCount=0,Ne.prototype._maxListeners=void 0;var n_=10;function hh(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(Ne,"defaultMaxListeners",{enumerable:!0,get:function(){return n_},set:function(e){if(typeof e!="number"||e<0||t_(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");n_=e}}),Ne.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},Ne.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||t_(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 r_(e){return e._maxListeners===void 0?Ne.defaultMaxListeners:e._maxListeners}Ne.prototype.getMaxListeners=function(){return r_(this)},Ne.prototype.emit=function(t){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=t==="error",o=this._events;if(o!==void 0)i=i&&o.error===void 0;else if(!i)return!1;if(i){var s;if(n.length>0&&(s=n[0]),s instanceof Error)throw s;var a=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw a.context=s,a}var u=o[t];if(u===void 0)return!1;if(typeof u=="function")e_(u,this,n);else for(var l=u.length,c=l_(u,l),r=0;r<l;++r)e_(c[r],this,n);return!0};function i_(e,t,n,r){var i,o,s;if(hh(n),o=e._events,o===void 0?(o=e._events=Object.create(null),e._eventsCount=0):(o.newListener!==void 0&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),s=o[t]),s===void 0)s=o[t]=n,++e._eventsCount;else if(typeof s=="function"?s=o[t]=r?[n,s]:[s,n]:r?s.unshift(n):s.push(n),i=r_(e),i>0&&s.length>i&&!s.warned){s.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=e,a.type=t,a.count=s.length,NU(a)}return e}Ne.prototype.addListener=function(t,n){return i_(this,t,n,!1)},Ne.prototype.on=Ne.prototype.addListener,Ne.prototype.prependListener=function(t,n){return i_(this,t,n,!0)};function OU(){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 o_(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=OU.bind(r);return i.listener=n,r.wrapFn=i,i}Ne.prototype.once=function(t,n){return hh(n),this.on(t,o_(this,t,n)),this},Ne.prototype.prependOnceListener=function(t,n){return hh(n),this.prependListener(t,o_(this,t,n)),this},Ne.prototype.removeListener=function(t,n){var r,i,o,s,a;if(hh(n),i=this._events,i===void 0)return this;if(r=i[t],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,r.listener||n));else if(typeof r!="function"){for(o=-1,s=r.length-1;s>=0;s--)if(r[s]===n||r[s].listener===n){a=r[s].listener,o=s;break}if(o<0)return this;o===0?r.shift():zU(r,o),r.length===1&&(i[t]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",t,a||n)}return this},Ne.prototype.off=Ne.prototype.removeListener,Ne.prototype.removeAllListeners=function(t){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[t]),this;if(arguments.length===0){var o=Object.keys(r),s;for(i=0;i<o.length;++i)s=o[i],s!=="removeListener"&&this.removeAllListeners(s);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 s_(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?UU(i):l_(i,i.length)}Ne.prototype.listeners=function(t){return s_(this,t,!0)},Ne.prototype.rawListeners=function(t){return s_(this,t,!1)},Ne.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):a_.call(e,t)},Ne.prototype.listenerCount=a_;function a_(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}Ne.prototype.eventNames=function(){return this._eventsCount>0?fh(this._events):[]};function l_(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function zU(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function UU(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function GU(e,t){return new Promise(function(n,r){function i(s){e.removeListener(t,o),r(s)}function o(){typeof e.removeListener=="function"&&e.removeListener("error",i),n([].slice.call(arguments))}u_(e,t,o,{once:!0}),t!=="error"&&HU(e,i,{once:!0})})}function HU(e,t,n){typeof e.on=="function"&&u_(e,"error",t,n)}function u_(e,t,n,r){if(typeof e.on=="function")r.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(o){r.once&&e.removeEventListener(t,i),n(o)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var zg=Og.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 js=Ug.exports,Gg,c_;function f_(){return c_||(c_=1,Gg=zg.EventEmitter),Gg}const h_=J7(lM);var Hg,d_;function VU(){if(d_)return Hg;d_=1;function e(p,m){var y=Object.keys(p);if(Object.getOwnPropertySymbols){var w=Object.getOwnPropertySymbols(p);m&&(w=w.filter(function(x){return Object.getOwnPropertyDescriptor(p,x).enumerable})),y.push.apply(y,w)}return y}function t(p){for(var m=1;m<arguments.length;m++){var y=arguments[m]!=null?arguments[m]:{};m%2?e(Object(y),!0).forEach(function(w){n(p,w,y[w])}):Object.getOwnPropertyDescriptors?Object.defineProperties(p,Object.getOwnPropertyDescriptors(y)):e(Object(y)).forEach(function(w){Object.defineProperty(p,w,Object.getOwnPropertyDescriptor(y,w))})}return p}function n(p,m,y){return m=s(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,s(w.key),w)}}function o(p,m,y){return m&&i(p.prototype,m),Object.defineProperty(p,"prototype",{writable:!1}),p}function s(p){var m=a(p,"string");return typeof m=="symbol"?m:String(m)}function a(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=xe,l=u.Buffer,c=h_,f=c.inspect,h=f&&f.custom||"inspect";function d(p,m,y){l.prototype.copy.call(p,m,y)}return Hg=function(){function p(){r(this,p),this.head=null,this.tail=null,this.length=0}return o(p,[{key:"push",value:function(y){var w={data:y,next:null};this.length>0?this.tail.next=w:this.head=w,this.tail=w,++this.length}},{key:"unshift",value:function(y){var w={data:y,next:this.head};this.length===0&&(this.tail=w),this.head=w,++this.length}},{key:"shift",value:function(){if(this.length!==0){var y=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,y}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(y){if(this.length===0)return"";for(var w=this.head,x=""+w.data;w=w.next;)x+=y+w.data;return x}},{key:"concat",value:function(y){if(this.length===0)return l.alloc(0);for(var w=l.allocUnsafe(y>>>0),x=this.head,S=0;x;)d(x.data,w,S),S+=x.data.length,x=x.next;return w}},{key:"consume",value:function(y,w){var x;return y<this.head.data.length?(x=this.head.data.slice(0,y),this.head.data=this.head.data.slice(y)):y===this.head.data.length?x=this.shift():x=w?this._getString(y):this._getBuffer(y),x}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(y){var w=this.head,x=1,S=w.data;for(y-=S.length;w=w.next;){var _=w.data,T=y>_.length?_.length:y;if(T===_.length?S+=_:S+=_.slice(0,y),y-=T,y===0){T===_.length?(++x,w.next?this.head=w.next:this.head=this.tail=null):(this.head=w,w.data=_.slice(T));break}++x}return this.length-=x,S}},{key:"_getBuffer",value:function(y){var w=l.allocUnsafe(y),x=this.head,S=1;for(x.data.copy(w),y-=x.data.length;x=x.next;){var _=x.data,T=y>_.length?_.length:y;if(_.copy(w,w.length-y,0,T),y-=T,y===0){T===_.length?(++S,x.next?this.head=x.next:this.head=this.tail=null):(this.head=x,x.data=_.slice(T));break}++S}return this.length-=S,w}},{key:h,value:function(y,w){return f(this,t(t({},w),{},{depth:0,customInspect:!1}))}}]),p}(),Hg}var Vg,p_;function g_(){if(p_)return Vg;p_=1;function e(s,a){var u=this,l=this._readableState&&this._readableState.destroyed,c=this._writableState&&this._writableState.destroyed;return l||c?(a?a(s):s&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(i,this,s)):process.nextTick(i,this,s)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(s||null,function(f){!a&&f?u._writableState?u._writableState.errorEmitted?process.nextTick(n,u):(u._writableState.errorEmitted=!0,process.nextTick(t,u,f)):process.nextTick(t,u,f):a?(process.nextTick(n,u),a(f)):process.nextTick(n,u)}),this)}function t(s,a){i(s,a),n(s)}function n(s){s._writableState&&!s._writableState.emitClose||s._readableState&&!s._readableState.emitClose||s.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(s,a){s.emit("error",a)}function o(s,a){var u=s._readableState,l=s._writableState;u&&u.autoDestroy||l&&l.autoDestroy?s.destroy(a):s.emit("error",a)}return Vg={destroy:e,undestroy:r,errorOrDestroy:o},Vg}var jg={},m_;function $s(){if(m_)return jg;m_=1;function e(a,u){a.prototype=Object.create(u.prototype),a.prototype.constructor=a,a.__proto__=u}var t={};function n(a,u,l){l||(l=Error);function c(h,d,p){return typeof u=="string"?u:u(h,d,p)}var f=function(h){e(d,h);function d(p,m,y){return h.call(this,c(p,m,y))||this}return d}(l);f.prototype.name=l.name,f.prototype.code=a,t[a]=f}function r(a,u){if(Array.isArray(a)){var l=a.length;return a=a.map(function(c){return String(c)}),l>2?"one of ".concat(u," ").concat(a.slice(0,l-1).join(", "),", or ")+a[l-1]:l===2?"one of ".concat(u," ").concat(a[0]," or ").concat(a[1]):"of ".concat(u," ").concat(a[0])}else return"of ".concat(u," ").concat(String(a))}function i(a,u,l){return a.substr(0,u.length)===u}function o(a,u,l){return(l===void 0||l>a.length)&&(l=a.length),a.substring(l-u.length,l)===u}function s(a,u,l){return typeof l!="number"&&(l=0),l+u.length>a.length?!1:a.indexOf(u,l)!==-1}return n("ERR_INVALID_OPT_VALUE",function(a,u){return'The value "'+u+'" is invalid for option "'+a+'"'},TypeError),n("ERR_INVALID_ARG_TYPE",function(a,u,l){var c;typeof u=="string"&&i(u,"not ")?(c="must not be",u=u.replace(/^not /,"")):c="must be";var f;if(o(a," argument"))f="The ".concat(a," ").concat(c," ").concat(r(u,"type"));else{var h=s(a,".")?"property":"argument";f='The "'.concat(a,'" ').concat(h," ").concat(c," ").concat(r(u,"type"))}return f+=". Received type ".concat(typeof l),f},TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",function(a){return"The "+a+" method is not implemented"}),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",function(a){return"Cannot call "+a+" 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(a){return"Unknown encoding: "+a},TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),jg.codes=t,jg}var $g,b_;function y_(){if(b_)return $g;b_=1;var e=$s().codes.ERR_INVALID_OPT_VALUE;function t(r,i,o){return r.highWaterMark!=null?r.highWaterMark:i?r[o]:null}function n(r,i,o,s){var a=t(i,s,o);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var u=s?o:"highWaterMark";throw new e(u,a)}return Math.floor(a)}return r.objectMode?16:16*1024}return $g={getHighWaterMark:n},$g}var qg,w_;function jU(){if(w_)return qg;w_=1,qg=e;function e(n,r){if(t("noDeprecation"))return n;var i=!1;function o(){if(!i){if(t("throwDeprecation"))throw new Error(r);t("traceDeprecation")?console.trace(r):console.warn(r),i=!0}return n.apply(this,arguments)}return o}function t(n){try{if(!globalThis.localStorage)return!1}catch{return!1}var r=globalThis.localStorage[n];return r==null?!1:String(r).toLowerCase()==="true"}return qg}var Wg,v_;function A_(){if(v_)return Wg;v_=1,Wg=D;function e(L){var P=this;this.next=null,this.entry=null,this.finish=function(){$e(P,L)}}var t;D.WritableState=B;var n={deprecate:jU()},r=f_(),i=xe.Buffer,o=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function s(L){return i.from(L)}function a(L){return i.isBuffer(L)||L instanceof o}var u=g_(),l=y_(),c=l.getHighWaterMark,f=$s().codes,h=f.ERR_INVALID_ARG_TYPE,d=f.ERR_METHOD_NOT_IMPLEMENTED,p=f.ERR_MULTIPLE_CALLBACK,m=f.ERR_STREAM_CANNOT_PIPE,y=f.ERR_STREAM_DESTROYED,w=f.ERR_STREAM_NULL_VALUES,x=f.ERR_STREAM_WRITE_AFTER_END,S=f.ERR_UNKNOWN_ENCODING,_=u.errorOrDestroy;js(D,r);function T(){}function B(L,P,q){t=t||qs(),L=L||{},typeof q!="boolean"&&(q=P instanceof t),this.objectMode=!!L.objectMode,q&&(this.objectMode=this.objectMode||!!L.writableObjectMode),this.highWaterMark=c(this,L,"writableHighWaterMark",q),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var j=L.decodeStrings===!1;this.decodeStrings=!j,this.defaultEncoding=L.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Z){Pe(P,Z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=L.emitClose!==!1,this.autoDestroy=!!L.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}B.prototype.getBuffer=function(){for(var P=this.bufferedRequest,q=[];P;)q.push(P),P=P.next;return q},function(){try{Object.defineProperty(B.prototype,"buffer",{get:n.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var I;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(I=Function.prototype[Symbol.hasInstance],Object.defineProperty(D,Symbol.hasInstance,{value:function(P){return I.call(this,P)?!0:this!==D?!1:P&&P._writableState instanceof B}})):I=function(P){return P instanceof this};function D(L){t=t||qs();var P=this instanceof t;if(!P&&!I.call(D,this))return new D(L);this._writableState=new B(L,this,P),this.writable=!0,L&&(typeof L.write=="function"&&(this._write=L.write),typeof L.writev=="function"&&(this._writev=L.writev),typeof L.destroy=="function"&&(this._destroy=L.destroy),typeof L.final=="function"&&(this._final=L.final)),r.call(this)}D.prototype.pipe=function(){_(this,new m)};function M(L,P){var q=new x;_(L,q),process.nextTick(P,q)}function G(L,P,q,j){var Z;return q===null?Z=new w:typeof q!="string"&&!P.objectMode&&(Z=new h("chunk",["string","Buffer"],q)),Z?(_(L,Z),process.nextTick(j,Z),!1):!0}D.prototype.write=function(L,P,q){var j=this._writableState,Z=!1,C=!j.objectMode&&a(L);return C&&!i.isBuffer(L)&&(L=s(L)),typeof P=="function"&&(q=P,P=null),C?P="buffer":P||(P=j.defaultEncoding),typeof q!="function"&&(q=T),j.ending?M(this,q):(C||G(this,j,L,q))&&(j.pendingcb++,Z=ne(this,j,C,L,P,q)),Z},D.prototype.cork=function(){this._writableState.corked++},D.prototype.uncork=function(){var L=this._writableState;L.corked&&(L.corked--,!L.writing&&!L.corked&&!L.bufferProcessing&&L.bufferedRequest&&Ue(this,L))},D.prototype.setDefaultEncoding=function(P){if(typeof P=="string"&&(P=P.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((P+"").toLowerCase())>-1))throw new S(P);return this._writableState.defaultEncoding=P,this},Object.defineProperty(D.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function N(L,P,q){return!L.objectMode&&L.decodeStrings!==!1&&typeof P=="string"&&(P=i.from(P,q)),P}Object.defineProperty(D.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function ne(L,P,q,j,Z,C){if(!q){var A=N(P,j,Z);j!==A&&(q=!0,Z="buffer",j=A)}var V=P.objectMode?1:j.length;P.length+=V;var W=P.length<P.highWaterMark;if(W||(P.needDrain=!0),P.writing||P.corked){var ce=P.lastBufferedRequest;P.lastBufferedRequest={chunk:j,encoding:Z,isBuf:q,callback:C,next:null},ce?ce.next=P.lastBufferedRequest:P.bufferedRequest=P.lastBufferedRequest,P.bufferedRequestCount+=1}else ie(L,P,!1,V,j,Z,C);return W}function ie(L,P,q,j,Z,C,A){P.writelen=j,P.writecb=A,P.writing=!0,P.sync=!0,P.destroyed?P.onwrite(new y("write")):q?L._writev(Z,P.onwrite):L._write(Z,C,P.onwrite),P.sync=!1}function pe(L,P,q,j,Z){--P.pendingcb,q?(process.nextTick(Z,j),process.nextTick(bt,L,P),L._writableState.errorEmitted=!0,_(L,j)):(Z(j),L._writableState.errorEmitted=!0,_(L,j),bt(L,P))}function be(L){L.writing=!1,L.writecb=null,L.length-=L.writelen,L.writelen=0}function Pe(L,P){var q=L._writableState,j=q.sync,Z=q.writecb;if(typeof Z!="function")throw new p;if(be(q),P)pe(L,q,j,P,Z);else{var C=tt(q)||L.destroyed;!C&&!q.corked&&!q.bufferProcessing&&q.bufferedRequest&&Ue(L,q),j?process.nextTick(_e,L,q,C,Z):_e(L,q,C,Z)}}function _e(L,P,q,j){q||Oe(L,P),P.pendingcb--,j(),bt(L,P)}function Oe(L,P){P.length===0&&P.needDrain&&(P.needDrain=!1,L.emit("drain"))}function Ue(L,P){P.bufferProcessing=!0;var q=P.bufferedRequest;if(L._writev&&q&&q.next){var j=P.bufferedRequestCount,Z=new Array(j),C=P.corkedRequestsFree;C.entry=q;for(var A=0,V=!0;q;)Z[A]=q,q.isBuf||(V=!1),q=q.next,A+=1;Z.allBuffers=V,ie(L,P,!0,P.length,Z,"",C.finish),P.pendingcb++,P.lastBufferedRequest=null,C.next?(P.corkedRequestsFree=C.next,C.next=null):P.corkedRequestsFree=new e(P),P.bufferedRequestCount=0}else{for(;q;){var W=q.chunk,ce=q.encoding,te=q.callback,fe=P.objectMode?1:W.length;if(ie(L,P,!1,fe,W,ce,te),q=q.next,P.bufferedRequestCount--,P.writing)break}q===null&&(P.lastBufferedRequest=null)}P.bufferedRequest=q,P.bufferProcessing=!1}D.prototype._write=function(L,P,q){q(new d("_write()"))},D.prototype._writev=null,D.prototype.end=function(L,P,q){var j=this._writableState;return typeof L=="function"?(q=L,L=null,P=null):typeof P=="function"&&(q=P,P=null),L!=null&&this.write(L,P),j.corked&&(j.corked=1,this.uncork()),j.ending||Wt(this,j,q),this},Object.defineProperty(D.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function tt(L){return L.ending&&L.length===0&&L.bufferedRequest===null&&!L.finished&&!L.writing}function ke(L,P){L._final(function(q){P.pendingcb--,q&&_(L,q),P.prefinished=!0,L.emit("prefinish"),bt(L,P)})}function Ie(L,P){!P.prefinished&&!P.finalCalled&&(typeof L._final=="function"&&!P.destroyed?(P.pendingcb++,P.finalCalled=!0,process.nextTick(ke,L,P)):(P.prefinished=!0,L.emit("prefinish")))}function bt(L,P){var q=tt(P);if(q&&(Ie(L,P),P.pendingcb===0&&(P.finished=!0,L.emit("finish"),P.autoDestroy))){var j=L._readableState;(!j||j.autoDestroy&&j.endEmitted)&&L.destroy()}return q}function Wt(L,P,q){P.ending=!0,bt(L,P),q&&(P.finished?process.nextTick(q):L.once("finish",q)),P.ended=!0,L.writable=!1}function $e(L,P,q){var j=L.entry;for(L.entry=null;j;){var Z=j.callback;P.pendingcb--,Z(q),j=j.next}P.corkedRequestsFree.next=L}return Object.defineProperty(D.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(P){this._writableState&&(this._writableState.destroyed=P)}}),D.prototype.destroy=u.destroy,D.prototype._undestroy=u.undestroy,D.prototype._destroy=function(L,P){P(L)},Wg}var Zg,x_;function qs(){if(x_)return Zg;x_=1;var e=Object.keys||function(l){var c=[];for(var f in l)c.push(f);return c};Zg=s;var t=k_(),n=A_();js(s,t);for(var r=e(n.prototype),i=0;i<r.length;i++){var o=r[i];s.prototype[o]||(s.prototype[o]=n.prototype[o])}function s(l){if(!(this instanceof s))return new s(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",a)))}Object.defineProperty(s.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(s.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(s.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function a(){this._writableState.ended||process.nextTick(u,this)}function u(l){l.end()}return Object.defineProperty(s.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(c){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=c,this._writableState.destroyed=c)}}),Zg}var Yg={},Qg={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */(function(e,t){var n=xe,r=n.Buffer;function i(s,a){for(var u in s)a[u]=s[u]}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?e.exports=n:(i(n,t),t.Buffer=o);function o(s,a,u){return r(s,a,u)}o.prototype=Object.create(r.prototype),i(r,o),o.from=function(s,a,u){if(typeof s=="number")throw new TypeError("Argument must not be a number");return r(s,a,u)},o.alloc=function(s,a,u){if(typeof s!="number")throw new TypeError("Argument must be a number");var l=r(s);return a!==void 0?typeof u=="string"?l.fill(a,u):l.fill(a):l.fill(0),l},o.allocUnsafe=function(s){if(typeof s!="number")throw new TypeError("Argument must be a number");return r(s)},o.allocUnsafeSlow=function(s){if(typeof s!="number")throw new TypeError("Argument must be a number");return n.SlowBuffer(s)}})(Qg,Qg.exports);var $U=Qg.exports,Xg=$U.Buffer,E_=Xg.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 qU(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 WU(e){var t=qU(e);if(typeof t!="string"&&(Xg.isEncoding===E_||!E_(e)))throw new Error("Unknown encoding: "+e);return t||e}var ZU=Yg.StringDecoder=gu;function gu(e){this.encoding=WU(e);var t;switch(this.encoding){case"utf16le":this.text=eG,this.end=tG,t=4;break;case"utf8":this.fillLast=XU,t=4;break;case"base64":this.text=nG,this.end=rG,t=3;break;default:this.write=iG,this.end=oG;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Xg.allocUnsafe(t)}gu.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||""},gu.prototype.end=JU,gu.prototype.text=KU,gu.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 Kg(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function YU(e,t,n){var r=t.length-1;if(r<n)return 0;var i=Kg(t[r]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--r<n||i===-2?0:(i=Kg(t[r]),i>=0?(i>0&&(e.lastNeed=i-2),i):--r<n||i===-2?0:(i=Kg(t[r]),i>=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function QU(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 XU(e){var t=this.lastTotal-this.lastNeed,n=QU(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 KU(e,t){var n=YU(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 JU(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function eG(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 tG(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 nG(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 rG(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function iG(e){return e.toString(this.encoding)}function oG(e){return e&&e.length?this.write(e):""}var Jg,__;function em(){if(__)return Jg;__=1;var e=$s().codes.ERR_STREAM_PREMATURE_CLOSE;function t(o){var s=!1;return function(){if(!s){s=!0;for(var a=arguments.length,u=new Array(a),l=0;l<a;l++)u[l]=arguments[l];o.apply(this,u)}}}function n(){}function r(o){return o.setHeader&&typeof o.abort=="function"}function i(o,s,a){if(typeof s=="function")return i(o,null,s);s||(s={}),a=t(a||n);var u=s.readable||s.readable!==!1&&o.readable,l=s.writable||s.writable!==!1&&o.writable,c=function(){o.writable||h()},f=o._writableState&&o._writableState.finished,h=function(){l=!1,f=!0,u||a.call(o)},d=o._readableState&&o._readableState.endEmitted,p=function(){u=!1,d=!0,l||a.call(o)},m=function(S){a.call(o,S)},y=function(){var S;if(u&&!d)return(!o._readableState||!o._readableState.ended)&&(S=new e),a.call(o,S);if(l&&!f)return(!o._writableState||!o._writableState.ended)&&(S=new e),a.call(o,S)},w=function(){o.req.on("finish",h)};return r(o)?(o.on("complete",h),o.on("abort",y),o.req?w():o.on("request",w)):l&&!o._writableState&&(o.on("end",c),o.on("close",c)),o.on("end",p),o.on("finish",h),s.error!==!1&&o.on("error",m),o.on("close",y),function(){o.removeListener("complete",h),o.removeListener("abort",y),o.removeListener("request",w),o.req&&o.req.removeListener("finish",h),o.removeListener("end",c),o.removeListener("close",c),o.removeListener("finish",h),o.removeListener("end",p),o.removeListener("error",m),o.removeListener("close",y)}}return Jg=i,Jg}var tm,S_;function sG(){if(S_)return tm;S_=1;var e;function t(S,_,T){return _=n(_),_ in S?Object.defineProperty(S,_,{value:T,enumerable:!0,configurable:!0,writable:!0}):S[_]=T,S}function n(S){var _=r(S,"string");return typeof _=="symbol"?_:String(_)}function r(S,_){if(typeof S!="object"||S===null)return S;var T=S[Symbol.toPrimitive];if(T!==void 0){var B=T.call(S,_||"default");if(typeof B!="object")return B;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_==="string"?String:Number)(S)}var i=em(),o=Symbol("lastResolve"),s=Symbol("lastReject"),a=Symbol("error"),u=Symbol("ended"),l=Symbol("lastPromise"),c=Symbol("handlePromise"),f=Symbol("stream");function h(S,_){return{value:S,done:_}}function d(S){var _=S[o];if(_!==null){var T=S[f].read();T!==null&&(S[l]=null,S[o]=null,S[s]=null,_(h(T,!1)))}}function p(S){process.nextTick(d,S)}function m(S,_){return function(T,B){S.then(function(){if(_[u]){T(h(void 0,!0));return}_[c](T,B)},B)}}var y=Object.getPrototypeOf(function(){}),w=Object.setPrototypeOf((e={get stream(){return this[f]},next:function(){var _=this,T=this[a];if(T!==null)return Promise.reject(T);if(this[u])return Promise.resolve(h(void 0,!0));if(this[f].destroyed)return new Promise(function(M,G){process.nextTick(function(){_[a]?G(_[a]):M(h(void 0,!0))})});var B=this[l],I;if(B)I=new Promise(m(B,this));else{var D=this[f].read();if(D!==null)return Promise.resolve(h(D,!1));I=new Promise(this[c])}return this[l]=I,I}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var _=this;return new Promise(function(T,B){_[f].destroy(null,function(I){if(I){B(I);return}T(h(void 0,!0))})})}),e),y),x=function(_){var T,B=Object.create(w,(T={},t(T,f,{value:_,writable:!0}),t(T,o,{value:null,writable:!0}),t(T,s,{value:null,writable:!0}),t(T,a,{value:null,writable:!0}),t(T,u,{value:_._readableState.endEmitted,writable:!0}),t(T,c,{value:function(D,M){var G=B[f].read();G?(B[l]=null,B[o]=null,B[s]=null,D(h(G,!1))):(B[o]=D,B[s]=M)},writable:!0}),T));return B[l]=null,i(_,function(I){if(I&&I.code!=="ERR_STREAM_PREMATURE_CLOSE"){var D=B[s];D!==null&&(B[l]=null,B[o]=null,B[s]=null,D(I)),B[a]=I;return}var M=B[o];M!==null&&(B[l]=null,B[o]=null,B[s]=null,M(h(void 0,!0))),B[u]=!0}),_.on("readable",p.bind(null,B)),B};return tm=x,tm}var nm,C_;function aG(){return C_||(C_=1,nm=function(){throw new Error("Readable.from is not available in the browser")}),nm}var rm,T_;function k_(){if(T_)return rm;T_=1,rm=M;var e;M.ReadableState=D,zg.EventEmitter;var t=function(A,V){return A.listeners(V).length},n=f_(),r=xe.Buffer,i=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function o(C){return r.from(C)}function s(C){return r.isBuffer(C)||C instanceof i}var a=h_,u;a&&a.debuglog?u=a.debuglog("stream"):u=function(){};var l=VU(),c=g_(),f=y_(),h=f.getHighWaterMark,d=$s().codes,p=d.ERR_INVALID_ARG_TYPE,m=d.ERR_STREAM_PUSH_AFTER_EOF,y=d.ERR_METHOD_NOT_IMPLEMENTED,w=d.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,x,S,_;js(M,n);var T=c.errorOrDestroy,B=["error","close","destroy","pause","resume"];function I(C,A,V){if(typeof C.prependListener=="function")return C.prependListener(A,V);!C._events||!C._events[A]?C.on(A,V):Array.isArray(C._events[A])?C._events[A].unshift(V):C._events[A]=[V,C._events[A]]}function D(C,A,V){e=e||qs(),C=C||{},typeof V!="boolean"&&(V=A instanceof e),this.objectMode=!!C.objectMode,V&&(this.objectMode=this.objectMode||!!C.readableObjectMode),this.highWaterMark=h(this,C,"readableHighWaterMark",V),this.buffer=new l,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=C.emitClose!==!1,this.autoDestroy=!!C.autoDestroy,this.destroyed=!1,this.defaultEncoding=C.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,C.encoding&&(x||(x=Yg.StringDecoder),this.decoder=new x(C.encoding),this.encoding=C.encoding)}function M(C){if(e=e||qs(),!(this instanceof M))return new M(C);var A=this instanceof e;this._readableState=new D(C,this,A),this.readable=!0,C&&(typeof C.read=="function"&&(this._read=C.read),typeof C.destroy=="function"&&(this._destroy=C.destroy)),n.call(this)}Object.defineProperty(M.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(A){this._readableState&&(this._readableState.destroyed=A)}}),M.prototype.destroy=c.destroy,M.prototype._undestroy=c.undestroy,M.prototype._destroy=function(C,A){A(C)},M.prototype.push=function(C,A){var V=this._readableState,W;return V.objectMode?W=!0:typeof C=="string"&&(A=A||V.defaultEncoding,A!==V.encoding&&(C=r.from(C,A),A=""),W=!0),G(this,C,A,!1,W)},M.prototype.unshift=function(C){return G(this,C,null,!0,!1)};function G(C,A,V,W,ce){u("readableAddChunk",A);var te=C._readableState;if(A===null)te.reading=!1,Pe(C,te);else{var fe;if(ce||(fe=ne(te,A)),fe)T(C,fe);else if(te.objectMode||A&&A.length>0)if(typeof A!="string"&&!te.objectMode&&Object.getPrototypeOf(A)!==r.prototype&&(A=o(A)),W)te.endEmitted?T(C,new w):N(C,te,A,!0);else if(te.ended)T(C,new m);else{if(te.destroyed)return!1;te.reading=!1,te.decoder&&!V?(A=te.decoder.write(A),te.objectMode||A.length!==0?N(C,te,A,!1):Ue(C,te)):N(C,te,A,!1)}else W||(te.reading=!1,Ue(C,te))}return!te.ended&&(te.length<te.highWaterMark||te.length===0)}function N(C,A,V,W){A.flowing&&A.length===0&&!A.sync?(A.awaitDrain=0,C.emit("data",V)):(A.length+=A.objectMode?1:V.length,W?A.buffer.unshift(V):A.buffer.push(V),A.needReadable&&_e(C)),Ue(C,A)}function ne(C,A){var V;return!s(A)&&typeof A!="string"&&A!==void 0&&!C.objectMode&&(V=new p("chunk",["string","Buffer","Uint8Array"],A)),V}M.prototype.isPaused=function(){return this._readableState.flowing===!1},M.prototype.setEncoding=function(C){x||(x=Yg.StringDecoder);var A=new x(C);this._readableState.decoder=A,this._readableState.encoding=this._readableState.decoder.encoding;for(var V=this._readableState.buffer.head,W="";V!==null;)W+=A.write(V.data),V=V.next;return this._readableState.buffer.clear(),W!==""&&this._readableState.buffer.push(W),this._readableState.length=W.length,this};var ie=1073741824;function pe(C){return C>=ie?C=ie:(C--,C|=C>>>1,C|=C>>>2,C|=C>>>4,C|=C>>>8,C|=C>>>16,C++),C}function be(C,A){return C<=0||A.length===0&&A.ended?0:A.objectMode?1:C!==C?A.flowing&&A.length?A.buffer.head.data.length:A.length:(C>A.highWaterMark&&(A.highWaterMark=pe(C)),C<=A.length?C:A.ended?A.length:(A.needReadable=!0,0))}M.prototype.read=function(C){u("read",C),C=parseInt(C,10);var A=this._readableState,V=C;if(C!==0&&(A.emittedReadable=!1),C===0&&A.needReadable&&((A.highWaterMark!==0?A.length>=A.highWaterMark:A.length>0)||A.ended))return u("read: emitReadable",A.length,A.ended),A.length===0&&A.ended?q(this):_e(this),null;if(C=be(C,A),C===0&&A.ended)return A.length===0&&q(this),null;var W=A.needReadable;u("need readable",W),(A.length===0||A.length-C<A.highWaterMark)&&(W=!0,u("length less than watermark",W)),A.ended||A.reading?(W=!1,u("reading or ended",W)):W&&(u("do read"),A.reading=!0,A.sync=!0,A.length===0&&(A.needReadable=!0),this._read(A.highWaterMark),A.sync=!1,A.reading||(C=be(V,A)));var ce;return C>0?ce=P(C,A):ce=null,ce===null?(A.needReadable=A.length<=A.highWaterMark,C=0):(A.length-=C,A.awaitDrain=0),A.length===0&&(A.ended||(A.needReadable=!0),V!==C&&A.ended&&q(this)),ce!==null&&this.emit("data",ce),ce};function Pe(C,A){if(u("onEofChunk"),!A.ended){if(A.decoder){var V=A.decoder.end();V&&V.length&&(A.buffer.push(V),A.length+=A.objectMode?1:V.length)}A.ended=!0,A.sync?_e(C):(A.needReadable=!1,A.emittedReadable||(A.emittedReadable=!0,Oe(C)))}}function _e(C){var A=C._readableState;u("emitReadable",A.needReadable,A.emittedReadable),A.needReadable=!1,A.emittedReadable||(u("emitReadable",A.flowing),A.emittedReadable=!0,process.nextTick(Oe,C))}function Oe(C){var A=C._readableState;u("emitReadable_",A.destroyed,A.length,A.ended),!A.destroyed&&(A.length||A.ended)&&(C.emit("readable"),A.emittedReadable=!1),A.needReadable=!A.flowing&&!A.ended&&A.length<=A.highWaterMark,L(C)}function Ue(C,A){A.readingMore||(A.readingMore=!0,process.nextTick(tt,C,A))}function tt(C,A){for(;!A.reading&&!A.ended&&(A.length<A.highWaterMark||A.flowing&&A.length===0);){var V=A.length;if(u("maybeReadMore read 0"),C.read(0),V===A.length)break}A.readingMore=!1}M.prototype._read=function(C){T(this,new y("_read()"))},M.prototype.pipe=function(C,A){var V=this,W=this._readableState;switch(W.pipesCount){case 0:W.pipes=C;break;case 1:W.pipes=[W.pipes,C];break;default:W.pipes.push(C);break}W.pipesCount+=1,u("pipe count=%d opts=%j",W.pipesCount,A);var ce=(!A||A.end!==!1)&&C!==process.stdout&&C!==process.stderr,te=ce?Zt:ar;W.endEmitted?process.nextTick(te):V.once("end",te),C.on("unpipe",fe);function fe(v,g){u("onunpipe"),v===V&&g&&g.hasUnpiped===!1&&(g.hasUnpiped=!0,Ci())}function Zt(){u("onend"),C.end()}var _i=ke(V);C.on("drain",_i);var Si=!1;function Ci(){u("cleanup"),C.removeListener("close",Ti),C.removeListener("finish",Yt),C.removeListener("drain",_i),C.removeListener("error",Br),C.removeListener("unpipe",fe),V.removeListener("end",Zt),V.removeListener("end",ar),V.removeListener("data",It),Si=!0,W.awaitDrain&&(!C._writableState||C._writableState.needDrain)&&_i()}V.on("data",It);function It(v){u("ondata");var g=C.write(v);u("dest.write",g),g===!1&&((W.pipesCount===1&&W.pipes===C||W.pipesCount>1&&Z(W.pipes,C)!==-1)&&!Si&&(u("false write response, pause",W.awaitDrain),W.awaitDrain++),V.pause())}function Br(v){u("onerror",v),ar(),C.removeListener("error",Br),t(C,"error")===0&&T(C,v)}I(C,"error",Br);function Ti(){C.removeListener("finish",Yt),ar()}C.once("close",Ti);function Yt(){u("onfinish"),C.removeListener("close",Ti),ar()}C.once("finish",Yt);function ar(){u("unpipe"),V.unpipe(C)}return C.emit("pipe",V),W.flowing||(u("pipe resume"),V.resume()),C};function ke(C){return function(){var V=C._readableState;u("pipeOnDrain",V.awaitDrain),V.awaitDrain&&V.awaitDrain--,V.awaitDrain===0&&t(C,"data")&&(V.flowing=!0,L(C))}}M.prototype.unpipe=function(C){var A=this._readableState,V={hasUnpiped:!1};if(A.pipesCount===0)return this;if(A.pipesCount===1)return C&&C!==A.pipes?this:(C||(C=A.pipes),A.pipes=null,A.pipesCount=0,A.flowing=!1,C&&C.emit("unpipe",this,V),this);if(!C){var W=A.pipes,ce=A.pipesCount;A.pipes=null,A.pipesCount=0,A.flowing=!1;for(var te=0;te<ce;te++)W[te].emit("unpipe",this,{hasUnpiped:!1});return this}var fe=Z(A.pipes,C);return fe===-1?this:(A.pipes.splice(fe,1),A.pipesCount-=1,A.pipesCount===1&&(A.pipes=A.pipes[0]),C.emit("unpipe",this,V),this)},M.prototype.on=function(C,A){var V=n.prototype.on.call(this,C,A),W=this._readableState;return C==="data"?(W.readableListening=this.listenerCount("readable")>0,W.flowing!==!1&&this.resume()):C==="readable"&&!W.endEmitted&&!W.readableListening&&(W.readableListening=W.needReadable=!0,W.flowing=!1,W.emittedReadable=!1,u("on readable",W.length,W.reading),W.length?_e(this):W.reading||process.nextTick(bt,this)),V},M.prototype.addListener=M.prototype.on,M.prototype.removeListener=function(C,A){var V=n.prototype.removeListener.call(this,C,A);return C==="readable"&&process.nextTick(Ie,this),V},M.prototype.removeAllListeners=function(C){var A=n.prototype.removeAllListeners.apply(this,arguments);return(C==="readable"||C===void 0)&&process.nextTick(Ie,this),A};function Ie(C){var A=C._readableState;A.readableListening=C.listenerCount("readable")>0,A.resumeScheduled&&!A.paused?A.flowing=!0:C.listenerCount("data")>0&&C.resume()}function bt(C){u("readable nexttick read 0"),C.read(0)}M.prototype.resume=function(){var C=this._readableState;return C.flowing||(u("resume"),C.flowing=!C.readableListening,Wt(this,C)),C.paused=!1,this};function Wt(C,A){A.resumeScheduled||(A.resumeScheduled=!0,process.nextTick($e,C,A))}function $e(C,A){u("resume",A.reading),A.reading||C.read(0),A.resumeScheduled=!1,C.emit("resume"),L(C),A.flowing&&!A.reading&&C.read(0)}M.prototype.pause=function(){return u("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(u("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function L(C){var A=C._readableState;for(u("flow",A.flowing);A.flowing&&C.read()!==null;);}M.prototype.wrap=function(C){var A=this,V=this._readableState,W=!1;C.on("end",function(){if(u("wrapped end"),V.decoder&&!V.ended){var fe=V.decoder.end();fe&&fe.length&&A.push(fe)}A.push(null)}),C.on("data",function(fe){if(u("wrapped data"),V.decoder&&(fe=V.decoder.write(fe)),!(V.objectMode&&fe==null)&&!(!V.objectMode&&(!fe||!fe.length))){var Zt=A.push(fe);Zt||(W=!0,C.pause())}});for(var ce in C)this[ce]===void 0&&typeof C[ce]=="function"&&(this[ce]=function(Zt){return function(){return C[Zt].apply(C,arguments)}}(ce));for(var te=0;te<B.length;te++)C.on(B[te],this.emit.bind(this,B[te]));return this._read=function(fe){u("wrapped _read",fe),W&&(W=!1,C.resume())},this},typeof Symbol=="function"&&(M.prototype[Symbol.asyncIterator]=function(){return S===void 0&&(S=sG()),S(this)}),Object.defineProperty(M.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(M.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(M.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(A){this._readableState&&(this._readableState.flowing=A)}}),M._fromList=P,Object.defineProperty(M.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function P(C,A){if(A.length===0)return null;var V;return A.objectMode?V=A.buffer.shift():!C||C>=A.length?(A.decoder?V=A.buffer.join(""):A.buffer.length===1?V=A.buffer.first():V=A.buffer.concat(A.length),A.buffer.clear()):V=A.buffer.consume(C,A.decoder),V}function q(C){var A=C._readableState;u("endReadable",A.endEmitted),A.endEmitted||(A.ended=!0,process.nextTick(j,A,C))}function j(C,A){if(u("endReadableNT",C.endEmitted,C.length),!C.endEmitted&&C.length===0&&(C.endEmitted=!0,A.readable=!1,A.emit("end"),C.autoDestroy)){var V=A._writableState;(!V||V.autoDestroy&&V.finished)&&A.destroy()}}typeof Symbol=="function"&&(M.from=function(C,A){return _===void 0&&(_=aG()),_(M,C,A)});function Z(C,A){for(var V=0,W=C.length;V<W;V++)if(C[V]===A)return V;return-1}return rm}var im,I_;function B_(){if(I_)return im;I_=1,im=a;var e=$s().codes,t=e.ERR_METHOD_NOT_IMPLEMENTED,n=e.ERR_MULTIPLE_CALLBACK,r=e.ERR_TRANSFORM_ALREADY_TRANSFORMING,i=e.ERR_TRANSFORM_WITH_LENGTH_0,o=qs();js(a,o);function s(c,f){var h=this._transformState;h.transforming=!1;var d=h.writecb;if(d===null)return this.emit("error",new n);h.writechunk=null,h.writecb=null,f!=null&&this.push(f),d(c);var p=this._readableState;p.reading=!1,(p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}function a(c){if(!(this instanceof a))return new a(c);o.call(this,c),this._transformState={afterTransform:s.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,c&&(typeof c.transform=="function"&&(this._transform=c.transform),typeof c.flush=="function"&&(this._flush=c.flush)),this.on("prefinish",u)}function u(){var c=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(f,h){l(c,f,h)}):l(this,null,null)}a.prototype.push=function(c,f){return this._transformState.needTransform=!1,o.prototype.push.call(this,c,f)},a.prototype._transform=function(c,f,h){h(new t("_transform()"))},a.prototype._write=function(c,f,h){var d=this._transformState;if(d.writecb=h,d.writechunk=c,d.writeencoding=f,!d.transforming){var p=this._readableState;(d.needTransform||p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}},a.prototype._read=function(c){var f=this._transformState;f.writechunk!==null&&!f.transforming?(f.transforming=!0,this._transform(f.writechunk,f.writeencoding,f.afterTransform)):f.needTransform=!0},a.prototype._destroy=function(c,f){o.prototype._destroy.call(this,c,function(h){f(h)})};function l(c,f,h){if(f)return c.emit("error",f);if(h!=null&&c.push(h),c._writableState.length)throw new i;if(c._transformState.transforming)throw new r;return c.push(null)}return im}var om,D_;function lG(){if(D_)return om;D_=1,om=t;var e=B_();js(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)},om}var sm,R_;function uG(){if(R_)return sm;R_=1;var e;function t(h){var d=!1;return function(){d||(d=!0,h.apply(void 0,arguments))}}var n=$s().codes,r=n.ERR_MISSING_ARGS,i=n.ERR_STREAM_DESTROYED;function o(h){if(h)throw h}function s(h){return h.setHeader&&typeof h.abort=="function"}function a(h,d,p,m){m=t(m);var y=!1;h.on("close",function(){y=!0}),e===void 0&&(e=em()),e(h,{readable:d,writable:p},function(x){if(x)return m(x);y=!0,m()});var w=!1;return function(x){if(!y&&!w){if(w=!0,s(h))return h.abort();if(typeof h.destroy=="function")return h.destroy();m(x||new i("pipe"))}}}function u(h){h()}function l(h,d){return h.pipe(d)}function c(h){return!h.length||typeof h[h.length-1]!="function"?o:h.pop()}function f(){for(var h=arguments.length,d=new Array(h),p=0;p<h;p++)d[p]=arguments[p];var m=c(d);if(Array.isArray(d[0])&&(d=d[0]),d.length<2)throw new r("streams");var y,w=d.map(function(x,S){var _=S<d.length-1,T=S>0;return a(x,_,T,function(B){y||(y=B),B&&w.forEach(u),!_&&(w.forEach(u),m(y))})});return d.reduce(l)}return sm=f,sm}var F_=xn,am=zg.EventEmitter,cG=js;cG(xn,am),xn.Readable=k_(),xn.Writable=A_(),xn.Duplex=qs(),xn.Transform=B_(),xn.PassThrough=lG(),xn.finished=em(),xn.pipeline=uG(),xn.Stream=xn;function xn(){am.call(this)}xn.prototype.pipe=function(e,t){var n=this;function r(c){e.writable&&e.write(c)===!1&&n.pause&&n.pause()}n.on("data",r);function i(){n.readable&&n.resume&&n.resume()}e.on("drain",i),!e._isStdio&&(!t||t.end!==!1)&&(n.on("end",s),n.on("close",a));var o=!1;function s(){o||(o=!0,e.end())}function a(){o||(o=!0,typeof e.destroy=="function"&&e.destroy())}function u(c){if(l(),am.listenerCount(this,"error")===0)throw c}n.on("error",u),e.on("error",u);function l(){n.removeListener("data",r),e.removeListener("drain",i),n.removeListener("end",s),n.removeListener("close",a),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 mu(e){return e.replace(/%([0-9A-Fa-f]{2})/g,(t,n)=>String.fromCharCode(parseInt(n,16)))}function M_(e,t){return String(t).replace(e,n=>`%${n.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function bu(e){return M_(/[\n;\r\t=%&,\x00-\x1f\x7f-\xff]/g,e)}function Cr(e){return M_(/[\n\r\t%\x00-\x1f\x7f-\xff]/g,e)}function P_(e){if(!(e&&e.length)||e===".")return{};const t={};return e.replace(/\r?\n$/,"").split(";").forEach(n=>{const r=n.split("=",2);if(!(r[1]&&r[1].length))return;r[0]=r[0].trim();let i=t[r[0].trim()];i||(i=[],t[r[0]]=i),i.push(...r[1].split(",").map(o=>o.trim()).map(mu))}),t}function L_(e){const t=e.split(" ").map(r=>r==="."||r===""?null:r);return{seq_id:t[0]&&mu(t[0]),source:t[1]&&mu(t[1]),type:t[2]&&mu(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:P_(t[8])}}function N_(e){const t=/^\s*##\s*(\S+)\s*(.*)/.exec(e);if(!t)return null;const[,n]=t;let[,,r]=t;const i={directive:n};if(r.length&&(r=r.replace(/\r?\n$/,""),i.value=r),n==="sequence-region"){const o=r.split(/\s+/,3);return{...i,seq_id:o[0],start:o[1]&&o[1].replace(/\D/g,""),end:o[2]&&o[2].replace(/\D/g,"")}}else if(n==="genome-build"){const[o,s]=r.split(/\s+/,2);return{...i,source:o,buildName:s}}return i}function O_(e){const t=[];return Object.entries(e).forEach(([n,r])=>{if(!r)return;let i;r.hasOwnProperty("toString")?i=bu(r.toString()):Array.isArray(r)?i=r.map(bu).join(","):i=bu(r),t.push(`${bu(n)}=${i}`)}),t.length?t.join(";"):"."}function fG(e,t){const n=e.attributes===null||e.attributes===void 0?".":O_(e.attributes),i=`${[e.seq_id===null?".":Cr(e.seq_id),e.source===null?".":Cr(e.source),e.type===null?".":Cr(e.type),e.start===null?".":Cr(e.start),e.end===null?".":Cr(e.end),e.score===null?".":Cr(e.score),e.strand===null?".":Cr(e.strand),e.phase===null?".":Cr(e.phase),n].join(" ")}
|
|
771
|
-
`;return t[i]?"":(t[i]=!0,i)}function
|
|
772
|
-
`,t}function
|
|
773
|
-
`}function
|
|
775
|
+
)`},Symbol.toStringTag,{value:"Module"}))).map(([e,t])=>[e,LE.parse(t.trim())]));function Mg(e){const t=new Set(["uint","int","float","long"]);return{...e,fields:e.fields.map(n=>({...n,isArray:n.size&&n.type!=="char",arrayIsNumeric:n.size&&t.has(n.type),isNumeric:!n.size&&t.has(n.type)})).filter(n=>!!n.name)}}const rU={".":0,"-":-1,"+":1};function iU(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 oU{constructor(t={}){if(t.autoSql)this.autoSql=Mg(nU.parse(t.autoSql));else if(t.type){if(!Fg[t.type])throw new Error("Type not found");this.autoSql=Mg(Fg[t.type])}else this.autoSql=Mg(Fg.defaultBedSchema),this.attemptDefaultBed=!0}parseLine(t,n={}){const{autoSql:r}=this,{uniqueId:i}=n,o=Array.isArray(t)?t:t.split(" ");let s={};if(!this.attemptDefaultBed||this.attemptDefaultBed&&iU(o))for(let a=0;a<r.fields.length;a++){const u=r.fields[a];let l=o[a];const{isNumeric:c,isArray:f,arrayIsNumeric:h,name:d}=u;if(l==null)break;if(l!=="."){if(c){const p=Number(l);l=Number.isNaN(p)?l:p}else f&&(l=l.split(","),l[l.length-1]===""&&l.pop(),h&&(l=l.map(Number)));s[d]=l}}else{const a=["chrom","chromStart","chromEnd","name"];s=Object.fromEntries(o.map((u,l)=>[a[l]||"field"+l,u])),s.chromStart=+s.chromStart,s.chromEnd=+s.chromEnd,Number.isNaN(Number.parseFloat(s.field4))||(s.score=+s.field4,delete s.field4),(s.field5==="+"||s.field5==="-")&&(s.strand=s.field5,delete s.field5)}return i&&(s.uniqueId=i),s.strand=rU[s.strand]||0,s.chrom=decodeURIComponent(s.chrom),s}}const sU=Object.freeze(Object.defineProperty({__proto__:null,default:oU},Symbol.toStringTag,{value:"Module"}));let NE=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 zs(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new NE(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 OE=class{constructor(t,n,r,i){this.minv=t,this.maxv=n,this.bin=r,this._fetchedSize=i}toUniqueString(){return`${this.minv.toString()}..${this.maxv.toString()} (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 aU(e){return new Promise(t=>setTimeout(t,e))}function lU(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}function uU(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 cU(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function fU(e={}){return"aborted"in e?{signal:e}:e}function zE(e,t){const n=[];let r;if(e.length===0)return e;e.sort((i,o)=>{const s=i.minv.blockPosition-o.minv.blockPosition;return s===0?i.minv.dataPosition-o.minv.dataPosition:s});for(const i of e)(!t||i.maxv.compareTo(t)>0)&&(r===void 0?(n.push(i),r=i):cU(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i));return n}function UE(e,t){return{lineCount:lU(Nf.fromBytesLE(Array.prototype.slice.call(e,t,t+8),!0))}}function lh(e,t){return e?e.compareTo(t)>0?t:e:t}function hU(e,t=n=>n){let n=0,r=0;const i=[],o={};for(let s=0;s<e.length;s+=1)if(!e[s]){if(r<s){let a=e.toString("utf8",r,s);a=t(a),i[n]=a,o[a]=n}r=s+1,n+=1}return{refNameToId:o,refIdToName:i}}let GE=class{constructor({filehandle:t,renameRefSeq:n=r=>r}){this.filehandle=t,this.renameRefSeq=n}};const dU=21578050;function pU(e,t){return e-e%t}function gU(e,t){return e-e%t+t}function mU(e,t){return t-=1,[[0,0],[1+(e>>26),1+(t>>26)],[9+(e>>23),9+(t>>23)],[73+(e>>20),73+(t>>20)],[585+(e>>17),585+(t>>17)],[4681+(e>>14),4681+(t>>14)]]}class Us extends GE{async lineCount(t,n){var r,i;return((i=(r=(await this.parse(n)).indices[t])===null||r===void 0?void 0:r.stats)===null||i===void 0?void 0:i.lineCount)||0}async _parse(t){const n=await this.filehandle.readFile(t);if(n.readUInt32LE(0)!==dU)throw new Error("Not a BAI file");const r=n.readInt32LE(4),o=((1<<(5+1)*3)-1)/7;let s=8,a;const u=new Array(r);for(let l=0;l<r;l++){const c=n.readInt32LE(s);let f;s+=4;const h={};for(let m=0;m<c;m+=1){const y=n.readUInt32LE(s);if(s+=4,y===o+1)s+=4,f=UE(n,s+16),s+=32;else{if(y>o+1)throw new Error("bai index contains too many bins, please use CSI");{const w=n.readInt32LE(s);s+=4;const x=new Array(w);for(let S=0;S<w;S++){const _=zs(n,s);s+=8;const T=zs(n,s);s+=8,a=lh(a,_),x[S]=new OE(_,T,y)}h[y]=x}}}const d=n.readInt32LE(s);s+=4;const p=new Array(d);for(let m=0;m<d;m++){const y=zs(n,s);s+=8,a=lh(a,y),p[m]=y}u[l]={binIndex:h,linearIndex:p,stats:f}}return{bai:!0,firstDataLine:a,maxBlockSize:65536,indices:u,refCount:r}}async indexCov(t,n,r,i={}){const s=n!==void 0,u=(await this.parse(i)).indices[t];if(!u)return[];const{linearIndex:l=[],stats:c}=u;if(l.length===0)return[];const f=r===void 0?(l.length-1)*16384:gU(r,16384),h=n===void 0?0:pU(n,16384),d=s?new Array((f-h)/16384):new Array(l.length-1),p=l[l.length-1].blockPosition;if(f>(l.length-1)*16384)throw new Error("query outside of range of linear index");let m=l[h/16384].blockPosition;for(let y=h/16384,w=0;y<f/16384;y++,w++)d[w]={score:l[y+1].blockPosition-m,start:y*16384,end:y*16384+16384},m=l[y+1].blockPosition;return d.map(y=>({...y,score:y.score*((c==null?void 0:c.lineCount)||0)/p}))}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const o=await this.parse(i);if(!o)return[];const s=o.indices[t];if(!s)return[];const a=mU(n,r),u=[];for(const[d,p]of a)for(let m=d;m<=p;m++)if(s.binIndex[m]){const y=s.binIndex[m];for(const w of y)u.push(w)}const l=s.linearIndex.length;let c;const f=Math.min(n>>14,l-1),h=Math.min(r>>14,l-1);for(let d=f;d<=h;++d){const p=s.linearIndex[d];p&&(!c||p.compareTo(c)<0)&&(c=p)}return zE(u,c)}async parse(t={}){return this.setupP||(this.setupP=this._parse(t).catch(n=>{throw this.setupP=void 0,n})),this.setupP}async hasRefSeq(t,n={}){var r;return!!(!((r=(await this.parse(n)).indices[t])===null||r===void 0)&&r.binIndex)}}function bU(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}const yU=new Int32Array([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]);function HE(e){if(Buffer.isBuffer(e))return e;if(typeof e=="number")return Buffer.alloc(e);if(typeof e=="string")return Buffer.from(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function wU(e){const t=HE(4);return t.writeInt32BE(e,0),t}function Pg(e,t){e=HE(e),Buffer.isBuffer(t)&&(t=t.readUInt32BE(0));let n=~~t^-1;for(var r=0;r<e.length;r++)n=yU[(n^e[r])&255]^n>>>8;return n^-1}function Lg(){return wU(Pg.apply(null,arguments))}Lg.signed=function(){return Pg.apply(null,arguments)},Lg.unsigned=function(){return Pg.apply(null,arguments)>>>0};var vU=Lg;const AU=bU(vU),xU=21582659,EU=38359875;function _U(e,t){return e*2**t}function VE(e,t){return Math.floor(e/2**t)}let uh=class extends GE{constructor(){super(...arguments),this.maxBinNumber=0,this.depth=0,this.minShift=0}async lineCount(t,n){var r,i;return((i=(r=(await this.parse(n)).indices[t])===null||r===void 0?void 0:r.stats)===null||i===void 0?void 0:i.lineCount)||0}async indexCov(){return[]}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",o={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!o)throw new Error(`invalid Tabix preset format flags ${r}`);const s={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},a=t.readInt32LE(n+16),u=a?String.fromCharCode(a):"",l=t.readInt32LE(n+20),c=t.readInt32LE(n+24);return{columnNumbers:s,coordinateType:i,metaValue:a,metaChar:u,skipLines:l,format:o,formatFlags:r,...hU(t.subarray(n+28,n+28+c),this.renameRefSeq)}}async _parse(t){const n=await this.filehandle.readFile(t),r=await di(n);let i;if(r.readUInt32LE(0)===xU)i=1;else if(r.readUInt32LE(0)===EU)i=2;else throw new Error("Not a CSI file");this.minShift=r.readInt32LE(4),this.depth=r.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const o=r.readInt32LE(12),s=o>=30?this.parseAuxData(r,16):void 0,a=r.readInt32LE(16+o);let u=16+o+4,l;const c=new Array(a);for(let f=0;f<a;f++){const h=r.readInt32LE(u);u+=4;const d={};let p;for(let m=0;m<h;m++){const y=r.readUInt32LE(u);if(u+=4,y>this.maxBinNumber)p=UE(r,u+28),u+=44;else{l=lh(l,zs(r,u)),u+=8;const w=r.readInt32LE(u);u+=4;const x=new Array(w);for(let S=0;S<w;S+=1){const _=zs(r,u);u+=8;const T=zs(r,u);u+=8,l=lh(l,_),x[S]=new OE(_,T,y)}d[y]=x}}c[f]={binIndex:d,stats:p}}return{csiVersion:i,firstDataLine:l,indices:c,refCount:a,csi:!0,maxBlockSize:65536,...s}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const o=await this.parse(i),s=o==null?void 0:o.indices[t];if(!s)return[];const a=this.reg2bins(n,r);if(a.length===0)return[];const u=[];for(const[l,c]of a)for(let f=l;f<=c;f++)if(s.binIndex[f]){const h=s.binIndex[f];for(const d of h)u.push(d)}return zE(u,new NE(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,o=this.minShift+this.depth*3;const s=[];for(;r<=this.depth;o-=3,i+=_U(1,r*3),r+=1){const a=i+VE(t,o),u=i+VE(n,o);if(u-a+s.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`);s.push([a,u])}return s}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 An={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},jE="=ACMGRSVTWYHKDBN".split(""),pu="MIDNSHP=X???????".split("");class $E{constructor(t){this.data={},this._tagList=[],this._allTagsParsed=!1;const{bytes:n,fileOffset:r}=t,{byteArray:i,start:o}=n;this.data={},this.bytes=n,this._id=r,this._refID=i.readInt32LE(o+4),this.data.start=i.readInt32LE(o+8),this.flags=(i.readInt32LE(o+16)&4294901760)>>16}get(t){return this[t]?this.data[t]?this.data[t]:(this.data[t]=this[t](),this.data[t]):this._get(t.toLowerCase())}end(){return this.get("start")+this.get("length_on_ref")}seq_id(){return this._refID}_get(t){return t in this.data?this.data[t]:(this.data[t]=this._parseTag(t),this.data[t])}_tags(){this._parseAllTags();let t=["seq"];this.isSegmentUnmapped()||t.push("start","end","strand","score","qual","MQ","CIGAR","length_on_ref","template_length"),this.isPaired()&&t.push("next_segment_position","pair_orientation"),t=t.concat(this._tagList||[]);for(const r of Object.keys(this.data))!r.startsWith("_")&&r!=="next_seq_id"&&t.push(r);const n={};return t.filter(r=>{if(r in this.data&&this.data[r]===void 0||r==="CG"||r==="cg")return!1;const i=r.toLowerCase(),o=n[i];return n[i]=!0,!o})}parent(){}children(){return this.get("subfeatures")}id(){return this._id}mq(){const t=(this.get("_bin_mq_nl")&65280)>>8;return t===255?void 0:t}score(){return this.get("mq")}qual(){var t;return(t=this.qualRaw())===null||t===void 0?void 0:t.join(" ")}qualRaw(){if(this.isSegmentUnmapped())return;const{start:t,byteArray:n}=this.bytes,r=t+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes"),i=this.get("seq_length");return n.subarray(r,r+i)}strand(){return this.isReverseComplemented()?-1:1}multi_segment_next_segment_strand(){if(!this.isMateUnmapped())return this.isMateReverseComplemented()?-1:1}name(){return this.get("_read_name")}_read_name(){const t=this.get("_l_read_name"),{byteArray:n,start:r}=this.bytes;return n.toString("ascii",r+36,r+36+t-1)}_parseTag(t){if(this._allTagsParsed)return;const{byteArray:n,start:r}=this.bytes;let i=this._tagOffset||r+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4+this.get("_seq_bytes")+this.get("seq_length");const o=this.bytes.end;let s;for(;i<o&&s!==t;){const a=String.fromCharCode(n[i],n[i+1]);s=a.toLowerCase();const u=String.fromCharCode(n[i+2]);i+=3;let l;switch(u){case"A":{l=String.fromCharCode(n[i]),i+=1;break}case"i":{l=n.readInt32LE(i),i+=4;break}case"I":{l=n.readUInt32LE(i),i+=4;break}case"c":{l=n.readInt8(i),i+=1;break}case"C":{l=n.readUInt8(i),i+=1;break}case"s":{l=n.readInt16LE(i),i+=2;break}case"S":{l=n.readUInt16LE(i),i+=2;break}case"f":{l=n.readFloatLE(i),i+=4;break}case"Z":case"H":{for(l="";i<=o;){const c=n[i++];if(c===0)break;l+=String.fromCharCode(c)}break}case"B":{l="";const c=n[i++],f=String.fromCharCode(c),h=n.readInt32LE(i);if(i+=4,f==="i")if(a==="CG")for(let d=0;d<h;d++){const p=n.readInt32LE(i),m=p>>4,y=pu[p&15];l+=m+y,i+=4}else for(let d=0;d<h;d++)l+=n.readInt32LE(i),d+1<h&&(l+=","),i+=4;if(f==="I")if(a==="CG")for(let d=0;d<h;d++){const p=n.readUInt32LE(i),m=p>>4,y=pu[p&15];l+=m+y,i+=4}else for(let d=0;d<h;d++)l+=n.readUInt32LE(i),d+1<h&&(l+=","),i+=4;if(f==="s")for(let d=0;d<h;d++)l+=n.readInt16LE(i),d+1<h&&(l+=","),i+=2;if(f==="S")for(let d=0;d<h;d++)l+=n.readUInt16LE(i),d+1<h&&(l+=","),i+=2;if(f==="c")for(let d=0;d<h;d++)l+=n.readInt8(i),d+1<h&&(l+=","),i+=1;if(f==="C")for(let d=0;d<h;d++)l+=n.readUInt8(i),d+1<h&&(l+=","),i+=1;if(f==="f")for(let d=0;d<h;d++)l+=n.readFloatLE(i),d+1<h&&(l+=","),i+=4;break}default:console.warn(`Unknown BAM tag type '${u}', tags may be incomplete`),l=void 0,i=o}if(this._tagOffset=i,this._tagList.push(a),s===t)return l;this.data[s]=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&An.BAM_FPAIRED)}isProperlyPaired(){return!!(this.flags&An.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return!!(this.flags&An.BAM_FUNMAP)}isMateUnmapped(){return!!(this.flags&An.BAM_FMUNMAP)}isReverseComplemented(){return!!(this.flags&An.BAM_FREVERSE)}isMateReverseComplemented(){return!!(this.flags&An.BAM_FMREVERSE)}isRead1(){return!!(this.flags&An.BAM_FREAD1)}isRead2(){return!!(this.flags&An.BAM_FREAD2)}isSecondary(){return!!(this.flags&An.BAM_FSECONDARY)}isFailedQc(){return!!(this.flags&An.BAM_FQCFAIL)}isDuplicate(){return!!(this.flags&An.BAM_FDUP)}isSupplementary(){return!!(this.flags&An.BAM_FSUPPLEMENTARY)}cigar(){if(this.isSegmentUnmapped())return;const{byteArray:t,start:n}=this.bytes,r=this.get("_n_cigar_op");let i=n+36+this.get("_l_read_name");const o=this.get("seq_length");let s="",a=0,u=t.readInt32LE(i),l=u>>4,c=pu[u&15];if(c==="S"&&l===o)return i+=4,u=t.readInt32LE(i),l=u>>4,c=pu[u&15],c!=="N"&&console.warn("CG tag with no N tag"),this.data.length_on_ref=l,this.get("CG");for(let f=0;f<r;++f)u=t.readInt32LE(i),l=u>>4,c=pu[u&15],s+=l+c,c!=="H"&&c!=="S"&&c!=="I"&&(a+=l),i+=4;return this.data.length_on_ref=a,s}length_on_ref(){return this.data.length_on_ref?this.data.length_on_ref:(this.get("cigar"),this.data.length_on_ref)}_n_cigar_op(){return this.get("_flag_nc")&65535}_l_read_name(){return this.get("_bin_mq_nl")&255}_seq_bytes(){return this.get("seq_length")+1>>1}getReadBases(){return this.seq()}seq(){const{byteArray:t,start:n}=this.bytes,r=n+36+this.get("_l_read_name")+this.get("_n_cigar_op")*4,i=this.get("_seq_bytes"),o=this.get("seq_length");let s="",a=0;for(let u=0;u<i;++u){const l=t[r+u];s+=jE[(l&240)>>4],a++,a<o&&(s+=jE[l&15],a++)}return s}getPairOrientation(){if(!this.isSegmentUnmapped()&&!this.isMateUnmapped()&&this._refID===this._next_refid()){const t=this.isReverseComplemented()?"R":"F",n=this.isMateReverseComplemented()?"R":"F";let r=" ",i=" ";this.isRead1()?(r="1",i="2"):this.isRead2()&&(r="2",i="1");const o=[];return this.template_length()>0?(o[0]=t,o[1]=r,o[2]=n,o[3]=i):(o[2]=t,o[3]=r,o[0]=n,o[1]=i),o.join("")}return""}_bin_mq_nl(){return this.bytes.byteArray.readInt32LE(this.bytes.start+12)}_flag_nc(){return this.bytes.byteArray.readInt32LE(this.bytes.start+16)}seq_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+20)}_next_refid(){return this.bytes.byteArray.readInt32LE(this.bytes.start+24)}_next_pos(){return this.bytes.byteArray.readInt32LE(this.bytes.start+28)}template_length(){return this.bytes.byteArray.readInt32LE(this.bytes.start+32)}toJSON(){const t={};for(const n of Object.keys(this))n.startsWith("_")||n==="bytes"||(t[n]=this[n]);return t}}function qE(e){const t=e.split(/\r?\n/),n=[];for(const r of t){const[i,...o]=r.split(/\t/);i&&n.push({tag:i.slice(1),data:o.map(s=>{const a=s.indexOf(":"),u=s.slice(0,a),l=s.slice(a+1);return{tag:u,value:l}})})}return n}const WE=21840194,ZE=65536;async function SU(e){let t=[];for await(const n of e)t=t.concat(n);return t}class CU{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 YE{constructor({bamFilehandle:t,bamPath:n,bamUrl:r,baiPath:i,baiFilehandle:o,baiUrl:s,csiPath:a,csiFilehandle:u,csiUrl:l,htsget:c,yieldThreadTime:f=100,renameRefSeqs:h=d=>d}){if(this.htsget=!1,this.featureCache=new $f({cache:new qf({maxSize:50}),fill:async(d,p)=>{const{chunk:m,opts:y}=d,{data:w,cpositions:x,dpositions:S}=await this._readChunk({chunk:m,opts:{...y,signal:p}});return this.readBamFeatures(w,x,S,m)}}),this.renameRefSeq=h,t)this.bam=t;else if(n)this.bam=new gt(n);else if(r)this.bam=new oo(r);else if(c)this.htsget=!0,this.bam=new CU;else throw new Error("unable to initialize bam");if(u)this.index=new uh({filehandle:u});else if(a)this.index=new uh({filehandle:new gt(a)});else if(l)this.index=new uh({filehandle:new oo(l)});else if(o)this.index=new Us({filehandle:o});else if(i)this.index=new Us({filehandle:new gt(i)});else if(s)this.index=new Us({filehandle:new oo(s)});else if(n)this.index=new Us({filehandle:new gt(`${n}.bai`)});else if(r)this.index=new Us({filehandle:new oo(`${r}.bai`)});else if(c)this.htsget=!0;else throw new Error("unable to infer index format");this.yieldThreadTime=f}async getHeaderPre(t){const n=fU(t);if(!this.index)return;const r=await this.index.parse(n),i=r.firstDataLine?r.firstDataLine.blockPosition+65535:void 0;let o;if(i){const c=i+ZE,f=await this.bam.read(xe.Buffer.alloc(c),0,c,0,n);if(!f.bytesRead)throw new Error("Error reading header");o=f.buffer.subarray(0,Math.min(f.bytesRead,i))}else o=await this.bam.readFile(n);const s=await di(o);if(s.readInt32LE(0)!==WE)throw new Error("Not a BAM file");const a=s.readInt32LE(4);this.header=s.toString("utf8",8,8+a);const{chrToIndex:u,indexToChr:l}=await this._readRefSeqs(a+8,65535,n);return this.chrToIndex=u,this.indexToChr=l,qE(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+ZE,{bytesRead:o,buffer:s}=await this.bam.read(xe.Buffer.alloc(i),0,n,0,r);if(!o)throw new Error("Error reading refseqs from header");const a=await di(s.subarray(0,Math.min(o,n))),u=a.readInt32LE(t);let l=t+4;const c={},f=[];for(let h=0;h<u;h+=1){const d=a.readInt32LE(l),p=this.renameRefSeq(a.toString("utf8",l+4,l+4+d-1)),m=a.readInt32LE(l+d+4);if(c[p]=h,f.push({refName:p,length:m}),l=l+8+d,l>a.length)return console.warn(`BAM header is very big. Re-fetching ${n} bytes.`),this._readRefSeqs(t,n*2,r)}return{chrToIndex:c,indexToChr:f}}async getRecordsForRange(t,n,r,i){return SU(this.streamRecordsForRange(t,n,r,i))}async*streamRecordsForRange(t,n,r,i){var o;await this.getHeader(i);const s=(o=this.chrToIndex)===null||o===void 0?void 0:o[t];if(s===void 0||!this.index)yield[];else{const a=await this.index.blocksForRange(s,n-1,r,i);yield*this._fetchChunkFeatures(a,s,n,r,i)}}async*_fetchChunkFeatures(t,n,r,i,o={}){const{viewAsPairs:s}=o,a=[];let u=!1;for(const l of t){const c=await this.featureCache.get(l.toString(),{chunk:l,opts:o},o.signal),f=[];for(const h of c)if(h.seq_id()===n)if(h.get("start")>=i){u=!0;break}else h.get("end")>=r&&f.push(h);if(a.push(f),yield f,u)break}uU(o.signal),s&&(yield this.fetchPairs(n,a,o))}async fetchPairs(t,n,r){const{pairAcrossChr:i,maxInsertSize:o=2e5}=r,s={},a={};n.map(h=>{const d={};for(const p of h){const m=p.name(),y=p.id();d[m]||(d[m]=0),d[m]++,a[y]=1}for(const[p,m]of Object.entries(d))m===1&&(s[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&&s[p]&&(i||w===t&&Math.abs(m-y)<o)&&u.push(this.index.blocksForRange(w,y,y+1,r))}});const l=new Map,c=await Promise.all(u);for(const h of c.flat())l.has(h.toString())||l.set(h.toString(),h);return(await Promise.all([...l.values()].map(async h=>{const{data:d,cpositions:p,dpositions:m,chunk:y}=await this._readChunk({chunk:h,opts:r}),w=[];for(const x of await this.readBamFeatures(d,p,m,y))s[x.get("name")]&&!a[x.id()]&&w.push(x);return w}))).flat()}async _readRegion(t,n,r={}){const{bytesRead:i,buffer:o}=await this.bam.read(xe.Buffer.alloc(n),0,n,t,r);return o.subarray(0,Math.min(i,n))}async _readChunk({chunk:t,opts:n}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n),{buffer:i,cpositions:o,dpositions:s}=await mx(r,t);return{data:i,cpositions:o,dpositions:s,chunk:t}}async readBamFeatures(t,n,r,i){let o=0;const s=[];let a=0,u=+Date.now();for(;o+4<t.length;){const l=t.readInt32LE(o),c=o+4+l-1;if(r){for(;o+i.minv.dataPosition>=r[a++];);a--}if(c<t.length){const f=new $E({bytes:{byteArray:t,start:o,end:c},fileOffset:n.length>0?n[a]*256+(o-r[a])+i.minv.dataPosition+1:AU.signed(t.slice(o,c))});s.push(f),this.yieldThreadTime&&+Date.now()-u>this.yieldThreadTime&&(await aU(1),u=+Date.now())}o=c+1}return s}async hasRefSeq(t){var n,r;const i=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return i===void 0?!1:(r=this.index)===null||r===void 0?void 0:r.hasRefSeq(i)}async lineCount(t){var n;const r=(n=this.chrToIndex)===null||n===void 0?void 0:n[t];return r===void 0||!this.index?0:this.index.lineCount(r)}async indexCov(t,n,r){var i;if(!this.index)return[];await this.index.parse();const o=(i=this.chrToIndex)===null||i===void 0?void 0:i[t];return o===void 0?[]:this.index.indexCov(o,n,r)}async blocksForRange(t,n,r,i){var o;if(!this.index)return[];await this.index.parse();const s=(o=this.chrToIndex)===null||o===void 0?void 0:o[t];return s===void 0?[]:this.index.blocksForRange(s,n,r,i)}}async function QE(e,t){const n=await Promise.all(e.map(async r=>{const{url:i,headers:o}=r;if(i.startsWith("data:"))return xe.Buffer.from(i.split(",")[1],"base64");{const{referer:s,...a}=o,u=await fetch(i,{...t,headers:{...t==null?void 0:t.headers,...a}});if(!u.ok)throw new Error(`HTTP ${u.status} fetching ${i}: ${await u.text()}`);return xe.Buffer.from(await u.arrayBuffer())}}));return xe.Buffer.concat(await Promise.all(n.map(r=>di(r))))}class TU extends YE{constructor(t){super({htsget:!0}),this.baseUrl=t.baseUrl,this.trackId=t.trackId}async*streamRecordsForRange(t,n,r,i){var o;const a=`${`${this.baseUrl}/${this.trackId}`}?referenceName=${t}&start=${n}&end=${r}&format=BAM`,u=(o=this.chrToIndex)===null||o===void 0?void 0:o[t];if(u===void 0)yield[];else{const l=await fetch(a,{...i});if(!l.ok)throw new Error(`HTTP ${l.status} fetching ${a}: ${await l.text()}`);const c=await l.json(),f=await QE(c.htsget.urls.slice(1),i);yield*this._fetchChunkFeatures([{buffer:f,_fetchedSize:void 0,bin:0,compareTo(){return 0},toUniqueString(){return`${t}_${n}_${r}`},fetchedSize(){return 0},minv:{dataPosition:0,blockPosition:0,compareTo:()=>0},maxv:{dataPosition:Number.MAX_SAFE_INTEGER,blockPosition:0,compareTo:()=>0},toString(){return`${t}_${n}_${r}`}}],u,n,r,i)}}async _readChunk({chunk:t}){if(!t.buffer)throw new Error("expected chunk.buffer in htsget");return{data:t.buffer,cpositions:[],dpositions:[],chunk:t}}async getHeader(t={}){const n=`${this.baseUrl}/${this.trackId}?referenceName=na&class=header`,r=await fetch(n,t);if(!r.ok)throw new Error(`HTTP ${r.status} fetching ${n}: ${await r.text()}`);const i=await r.json(),o=await QE(i.htsget.urls,t);if(o.readInt32LE(0)!==WE)throw new Error("Not a BAM file");const s=o.readInt32LE(4),a=o.toString("utf8",8,8+s),u=qE(a),l=[],c={},f=u.filter(h=>h.tag==="SQ");for(const[h,d]of f.entries()){let p="",m=0;for(const y of d.data)y.tag==="SN"?p=y.value:y.tag==="LN"&&(m=+y.value);c[p]=h,l[h]={refName:p,length:m}}return this.chrToIndex=c,this.indexToChr=l,u}}const kU=Object.freeze(Object.defineProperty({__proto__:null,BAI:Us,BamFile:YE,BamRecord:$E,CSI:uh,HtsgetFile:TU},Symbol.toStringTag,{value:"Module"}));function XE(e){if(e.greaterThan(Number.MAX_SAFE_INTEGER)||e.lessThan(Number.MIN_SAFE_INTEGER))throw new Error("integer overflow");return e.toNumber()}class IU extends Error{}function Gs(e){if(e&&e.aborted){if(typeof DOMException<"u")throw new DOMException("aborted","AbortError");{const t=new IU("aborted");throw t.code="ERR_ABORTED",t}}}function BU(e,t){return t.minv.blockPosition-e.maxv.blockPosition<65e3&&t.maxv.blockPosition-e.minv.blockPosition<5e6}function KE(e,t){const n=[];let r=null;return e.length===0?e:(e.sort(function(i,o){const s=i.minv.blockPosition-o.minv.blockPosition;return s!==0?s:i.minv.dataPosition-o.minv.dataPosition}),e.forEach(i=>{(!t||i.maxv.compareTo(t)>0)&&(r===null?(n.push(i),r=i):BU(r,i)?i.maxv.compareTo(r.maxv)>0&&(r.maxv=i.maxv):(n.push(i),r=i))}),n)}class Ng{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 Hs(e,t=0,n=!1){if(n)throw new Error("big-endian virtual file offsets not implemented");return new Ng(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 ch{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 JE{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 DU=21578324,e_=14;function RU(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 fh extends JE{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:s}=r.indices[i];return s?s.lineCount:-1}async _parse(t={}){const n=await this.filehandle.readFile(t),r=await di(n);if(Gs(t.signal),r.readUInt32LE(0)!==DU)throw new Error("Not a TBI file");const i=r.readInt32LE(4),o=r.readInt32LE(8),s=o&65536?"zero-based-half-open":"1-based-closed",u={0:"generic",1:"SAM",2:"VCF"}[o&15];if(!u)throw new Error(`invalid Tabix preset format flags ${o}`);const l={ref:r.readInt32LE(12),start:r.readInt32LE(16),end:r.readInt32LE(20)},c=r.readInt32LE(24),f=5,h=((1<<(f+1)*3)-1)/7,d=2**(14+f*3),p=c?String.fromCharCode(c):null,m=r.readInt32LE(28),y=r.readInt32LE(32),{refNameToId:w,refIdToName:x}=this._parseNameBytes(r.slice(36,36+y));let S=36+y,_;return{indices:new Array(i).fill(0).map(()=>{const B=r.readInt32LE(S);S+=4;const I={};let D;for(let N=0;N<B;N+=1){const ne=r.readUInt32LE(S);if(S+=4,ne>h+1)throw new Error("tabix index contains too many bins, please use a CSI index");if(ne===h+1){const ie=r.readInt32LE(S);S+=4,ie===2&&(D=this.parsePseudoBin(r,S)),S+=16*ie}else{const ie=r.readInt32LE(S);S+=4;const pe=new Array(ie);for(let be=0;be<ie;be+=1){const Pe=Hs(r,S),_e=Hs(r,S+8);S+=16,_=this._findFirstData(_,Pe),pe[be]=new ch(Pe,_e,ne)}I[ne]=pe}}const M=r.readInt32LE(S);S+=4;const G=new Array(M);for(let N=0;N<M;N+=1)G[N]=Hs(r,S),S+=8,_=this._findFirstData(_,G[N]);return{binIndex:I,linearIndex:G,stats:D}}),metaChar:p,maxBinNumber:h,maxRefLength:d,skipLines:m,firstDataLine:_,columnNumbers:l,coordinateType:s,format:u,refIdToName:x,refNameToId:w,maxBlockSize:65536}}parsePseudoBin(t,n){return{lineCount:XE(Nf.fromBytesLE(t.slice(n+16,n+24),!0))}}_parseNameBytes(t){let n=0,r=0;const i=[],o={};for(let s=0;s<t.length;s+=1)if(!t[s]){if(r<s){let a=t.toString("utf8",r,s);a=this.renameRefSeq(a),i[n]=a,o[a]=n}r=s+1,n+=1}return{refNameToId:o,refIdToName:i}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const o=await this.parse(i);if(!o)return[];const s=o.refNameToId[t],a=o.indices[s];if(!a)return[];(a.linearIndex.length?a.linearIndex[n>>e_>=a.linearIndex.length?a.linearIndex.length-1:n>>e_]:new Ng(0,0))||console.warn("querying outside of possible tabix range");const l=RU(n,r),c=[];for(const[m,y]of l)for(let w=m;w<=y;w++)if(a.binIndex[w])for(const x of a.binIndex[w])c.push(new ch(x.minv,x.maxv,w));const f=a.linearIndex.length;let h=null;const d=Math.min(n>>14,f-1),p=Math.min(r>>14,f-1);for(let m=d;m<=p;++m){const y=a.linearIndex[m];y&&(!h||y.compareTo(h)<0)&&(h=y)}return KE(c,h)}}const FU=21582659,MU=38359875;function PU(e,t){return e*2**t}function t_(e,t){return Math.floor(e/2**t)}class Og extends JE{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:s}=r.indices[i];return s?s.lineCount:-1}indexCov(){throw new Error("CSI indexes do not support indexcov")}parseAuxData(t,n){const r=t.readInt32LE(n),i=r&65536?"zero-based-half-open":"1-based-closed",o={0:"generic",1:"SAM",2:"VCF"}[r&15];if(!o)throw new Error(`invalid Tabix preset format flags ${r}`);const s={ref:t.readInt32LE(n+4),start:t.readInt32LE(n+8),end:t.readInt32LE(n+12)},a=t.readInt32LE(n+16),u=a?String.fromCharCode(a):null,l=t.readInt32LE(n+20),c=t.readInt32LE(n+24),{refIdToName:f,refNameToId:h}=this._parseNameBytes(t.slice(n+28,n+28+c));return{refIdToName:f,refNameToId:h,skipLines:l,metaChar:u,columnNumbers:s,format:o,coordinateType:i}}_parseNameBytes(t){let n=0,r=0;const i=[],o={};for(let s=0;s<t.length;s+=1)if(!t[s]){if(r<s){let a=t.toString("utf8",r,s);a=this.renameRefSeq(a),i[n]=a,o[a]=n}r=s+1,n+=1}return{refNameToId:o,refIdToName:i}}async _parse(t={}){const n=await di(await this.filehandle.readFile(t));let r;if(n.readUInt32LE(0)===FU)r=1;else if(n.readUInt32LE(0)===MU)r=2;else throw new Error("Not a CSI file");this.minShift=n.readInt32LE(4),this.depth=n.readInt32LE(8),this.maxBinNumber=((1<<(this.depth+1)*3)-1)/7;const i=2**(this.minShift+this.depth*3),o=n.readInt32LE(12),s=o&&o>=30?this.parseAuxData(n,16):{refIdToName:[],refNameToId:{},metaChar:null,columnNumbers:{ref:0,start:1,end:2},coordinateType:"zero-based-half-open",format:"generic"},a=n.readInt32LE(16+o);let u,l=16+o+4;const c=new Array(a).fill(0).map(()=>{const f=n.readInt32LE(l);l+=4;const h={};let d;for(let p=0;p<f;p+=1){const m=n.readUInt32LE(l);if(m>this.maxBinNumber)d=this.parsePseudoBin(n,l+4),l+=48;else{const y=Hs(n,l+4);u=this._findFirstData(u,y);const w=n.readInt32LE(l+12);l+=16;const x=new Array(w);for(let S=0;S<w;S+=1){const _=Hs(n,l),T=Hs(n,l+8);l+=16,x[S]=new ch(_,T,m)}h[m]=x}}return{binIndex:h,stats:d}});return{...s,csi:!0,refCount:a,maxBlockSize:65536,firstDataLine:u,csiVersion:r,indices:c,depth:this.depth,maxBinNumber:this.maxBinNumber,maxRefLength:i}}parsePseudoBin(t,n){return{lineCount:XE(Nf.fromBytesLE(t.slice(n+28,n+36),!0))}}async blocksForRange(t,n,r,i={}){n<0&&(n=0);const o=await this.parse(i);if(!o)return[];const s=o.refNameToId[t],a=o.indices[s];if(!a)return[];const u=this.reg2bins(n,r),l=[];for(const[c,f]of u)for(let h=c;h<=f;h++)if(a.binIndex[h])for(const d of a.binIndex[h])l.push(new ch(d.minv,d.maxv,h));return KE(l,new Ng(0,0))}reg2bins(t,n){t-=1,t<1&&(t=1),n>2**50&&(n=2**34),n-=1;let r=0,i=0,o=this.minShift+this.depth*3;const s=[];for(;r<=this.depth;o-=3,i+=PU(1,r*3),r+=1){const a=i+t_(t,o),u=i+t_(n,o);if(u-a+s.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`);s.push([a,u])}return s}}const zg=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function LU(e){return new Promise(t=>setTimeout(t,e))}class NU{constructor({path:t,filehandle:n,tbiPath:r,tbiFilehandle:i,csiPath:o,csiFilehandle:s,yieldTime:a=500,chunkSizeLimit:u=5e7,renameRefSeqs:l=f=>f,chunkCacheSize:c=5*2**20}){if(n)this.filehandle=n;else if(t)this.filehandle=new gt(t);else throw new TypeError("must provide either filehandle or path");if(i)this.index=new fh({filehandle:i,renameRefSeqs:l});else if(s)this.index=new Og({filehandle:s,renameRefSeqs:l});else if(r)this.index=new fh({filehandle:new gt(r),renameRefSeqs:l});else if(o)this.index=new Og({filehandle:new gt(o),renameRefSeqs:l});else if(t)this.index=new fh({filehandle:new gt(`${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=a,this.chunkCache=new $f({cache:new qf({maxSize:Math.floor(c/65536)}),fill:(f,h)=>this.readChunk(f,{signal:h})})}async getLines(t,n,r,i){var o;let s,a={},u;if(i===void 0)throw new TypeError("line callback must be provided");if(typeof i=="function"?u=i:(a=i,u=i.lineCallback,s=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(a);Gs(s);const c=n??0,f=r??l.maxRefLength;if(!(c<=f))throw new TypeError("invalid start and end coordinates. start must be less than or equal to end");if(c===f)return;const h=await this.index.blocksForRange(t,c,f,a);Gs(s);for(const p of h){const m=p.fetchedSize();if(m>this.chunkSizeLimit)throw new Error(`Too much data. Chunk size ${m.toLocaleString()} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit.toLocaleString()}.`)}let d=Date.now();for(const p of h){let m;const{buffer:y,cpositions:w,dpositions:x}=await this.chunkCache.get(p.toString(),p,s);Gs(s);let S=0,_=0;for(;S<y.length;){const T=y.indexOf(`
|
|
776
|
+
`,S);if(T===-1)break;const B=y.slice(S,T),I=(o=zg==null?void 0:zg.decode(B))!==null&&o!==void 0?o:B.toString();if(x){for(;S+p.minv.dataPosition>=x[_++];);_--}const{startCoordinate:D,overlaps:M}=this.checkLine(l,t,c,f,I);if(m!==void 0&&D!==void 0&&m>D)throw new Error(`Lines not sorted by start coordinate (${m} > ${D}), this file is not usable with Tabix.`);if(m=D,M)u(I.trim(),w[_]*256+(S-x[_])+p.minv.dataPosition+1);else if(D!==void 0&&D>=f)return;this.yieldTime&&d-Date.now()>this.yieldTime&&(d=Date.now(),Gs(s),await LU(1)),S=T+1}}}async getMetadata(t={}){return this.index.getMetadata(t)}async getHeaderBuffer(t={}){const{firstDataLine:n,metaChar:r,maxBlockSize:i}=await this.getMetadata(t);Gs(t.signal);const o=((n==null?void 0:n.blockPosition)||0)+i,s=await this._readRegion(0,o,t),a=await di(s);if(r){let u=-1;const l=10,c=r.charCodeAt(0);for(let f=0;f<a.length&&!(f===u+1&&a[f]!==c);f+=1)a[f]===l&&(u=f);return a.slice(0,u+1)}return a}async getHeader(t={}){return(await this.getHeaderBuffer(t)).toString("utf8")}async getReferenceSequenceNames(t={}){return(await this.getMetadata(t)).refIdToName}checkLine(t,n,r,i,o){const{columnNumbers:s,metaChar:a,coordinateType:u,format:l}=t;if(a&&o.startsWith(a))return{overlaps:!1};let{ref:c,start:f,end:h}=s;c||(c=0),f||(f=0),h||(h=0),l==="VCF"&&(h=8);const d=Math.max(c,f,h);let p=1,m=0,y="",w=-1/0;for(let x=0;x<o.length+1;x+=1)if(o[x]===" "||x===o.length){if(p===c){if(this.renameRefSeq(o.slice(m,x))!==n)return{overlaps:!1}}else if(p===f){if(w=parseInt(o.slice(m,x),10),u==="1-based-closed"&&(w-=1),w>=i)return{startCoordinate:w,overlaps:!1};if((h===0||h===f)&&w+1<=r)return{startCoordinate:w,overlaps:!1}}else if(l==="VCF"&&p===4)y=o.slice(m,x);else if(p===h&&(l==="VCF"?this._getVcfEnd(w,y,o.slice(m,x)):parseInt(o.slice(m,x),10))<=r)return{overlaps:!1};if(m=x+1,p+=1,p>d)break}return{startCoordinate:w,overlaps:!0}}_getVcfEnd(t,n,r){let i=t+n.length;const o=r.includes("SVTYPE=TRA");if(r[0]!=="."&&!o){let s=";";for(let a=0;a<r.length;a+=1){if(s===";"&&r.slice(a,a+4)==="END="){let u=r.indexOf(";",a);u===-1&&(u=r.length),i=parseInt(r.slice(a+4,u),10);break}s=r[a]}}else if(o)return t+1;return i}async lineCount(t,n={}){return this.index.lineCount(t,n)}async _readRegion(t,n,r={}){const i=xe.Buffer.alloc(n),{bytesRead:o,buffer:s}=await this.filehandle.read(i,0,n,t,r);return s.slice(0,o)}async readChunk(t,n={}){const r=await this._readRegion(t.minv.blockPosition,t.fetchedSize(),n);return mx(r,t)}}const OU=Object.freeze(Object.defineProperty({__proto__:null,CSI:Og,TBI:fh,TabixIndexedFile:NU},Symbol.toStringTag,{value:"Module"}));var Ug={exports:{}},Vs=typeof Reflect=="object"?Reflect:null,n_=Vs&&typeof Vs.apply=="function"?Vs.apply:function(t,n,r){return Function.prototype.apply.call(t,n,r)},hh;Vs&&typeof Vs.ownKeys=="function"?hh=Vs.ownKeys:Object.getOwnPropertySymbols?hh=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:hh=function(t){return Object.getOwnPropertyNames(t)};function zU(e){console&&console.warn&&console.warn(e)}var r_=Number.isNaN||function(t){return t!==t};function Ne(){Ne.init.call(this)}Ug.exports=Ne,Ug.exports.once=VU,Ne.EventEmitter=Ne,Ne.prototype._events=void 0,Ne.prototype._eventsCount=0,Ne.prototype._maxListeners=void 0;var i_=10;function dh(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(Ne,"defaultMaxListeners",{enumerable:!0,get:function(){return i_},set:function(e){if(typeof e!="number"||e<0||r_(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");i_=e}}),Ne.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},Ne.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||r_(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 o_(e){return e._maxListeners===void 0?Ne.defaultMaxListeners:e._maxListeners}Ne.prototype.getMaxListeners=function(){return o_(this)},Ne.prototype.emit=function(t){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=t==="error",o=this._events;if(o!==void 0)i=i&&o.error===void 0;else if(!i)return!1;if(i){var s;if(n.length>0&&(s=n[0]),s instanceof Error)throw s;var a=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw a.context=s,a}var u=o[t];if(u===void 0)return!1;if(typeof u=="function")n_(u,this,n);else for(var l=u.length,c=c_(u,l),r=0;r<l;++r)n_(c[r],this,n);return!0};function s_(e,t,n,r){var i,o,s;if(dh(n),o=e._events,o===void 0?(o=e._events=Object.create(null),e._eventsCount=0):(o.newListener!==void 0&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),s=o[t]),s===void 0)s=o[t]=n,++e._eventsCount;else if(typeof s=="function"?s=o[t]=r?[n,s]:[s,n]:r?s.unshift(n):s.push(n),i=o_(e),i>0&&s.length>i&&!s.warned){s.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=e,a.type=t,a.count=s.length,zU(a)}return e}Ne.prototype.addListener=function(t,n){return s_(this,t,n,!1)},Ne.prototype.on=Ne.prototype.addListener,Ne.prototype.prependListener=function(t,n){return s_(this,t,n,!0)};function UU(){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 a_(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=UU.bind(r);return i.listener=n,r.wrapFn=i,i}Ne.prototype.once=function(t,n){return dh(n),this.on(t,a_(this,t,n)),this},Ne.prototype.prependOnceListener=function(t,n){return dh(n),this.prependListener(t,a_(this,t,n)),this},Ne.prototype.removeListener=function(t,n){var r,i,o,s,a;if(dh(n),i=this._events,i===void 0)return this;if(r=i[t],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,r.listener||n));else if(typeof r!="function"){for(o=-1,s=r.length-1;s>=0;s--)if(r[s]===n||r[s].listener===n){a=r[s].listener,o=s;break}if(o<0)return this;o===0?r.shift():GU(r,o),r.length===1&&(i[t]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",t,a||n)}return this},Ne.prototype.off=Ne.prototype.removeListener,Ne.prototype.removeAllListeners=function(t){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[t]),this;if(arguments.length===0){var o=Object.keys(r),s;for(i=0;i<o.length;++i)s=o[i],s!=="removeListener"&&this.removeAllListeners(s);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 l_(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?HU(i):c_(i,i.length)}Ne.prototype.listeners=function(t){return l_(this,t,!0)},Ne.prototype.rawListeners=function(t){return l_(this,t,!1)},Ne.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):u_.call(e,t)},Ne.prototype.listenerCount=u_;function u_(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}Ne.prototype.eventNames=function(){return this._eventsCount>0?hh(this._events):[]};function c_(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function GU(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function HU(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function VU(e,t){return new Promise(function(n,r){function i(s){e.removeListener(t,o),r(s)}function o(){typeof e.removeListener=="function"&&e.removeListener("error",i),n([].slice.call(arguments))}f_(e,t,o,{once:!0}),t!=="error"&&jU(e,i,{once:!0})})}function jU(e,t,n){typeof e.on=="function"&&f_(e,"error",t,n)}function f_(e,t,n,r){if(typeof e.on=="function")r.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(o){r.once&&e.removeEventListener(t,i),n(o)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var Gg=Ug.exports,Hg={exports:{}};typeof Object.create=="function"?Hg.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:Hg.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 js=Hg.exports,Vg,h_;function d_(){return h_||(h_=1,Vg=Gg.EventEmitter),Vg}const p_=tM(cM);var jg,g_;function $U(){if(g_)return jg;g_=1;function e(p,m){var y=Object.keys(p);if(Object.getOwnPropertySymbols){var w=Object.getOwnPropertySymbols(p);m&&(w=w.filter(function(x){return Object.getOwnPropertyDescriptor(p,x).enumerable})),y.push.apply(y,w)}return y}function t(p){for(var m=1;m<arguments.length;m++){var y=arguments[m]!=null?arguments[m]:{};m%2?e(Object(y),!0).forEach(function(w){n(p,w,y[w])}):Object.getOwnPropertyDescriptors?Object.defineProperties(p,Object.getOwnPropertyDescriptors(y)):e(Object(y)).forEach(function(w){Object.defineProperty(p,w,Object.getOwnPropertyDescriptor(y,w))})}return p}function n(p,m,y){return m=s(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,s(w.key),w)}}function o(p,m,y){return m&&i(p.prototype,m),Object.defineProperty(p,"prototype",{writable:!1}),p}function s(p){var m=a(p,"string");return typeof m=="symbol"?m:String(m)}function a(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=xe,l=u.Buffer,c=p_,f=c.inspect,h=f&&f.custom||"inspect";function d(p,m,y){l.prototype.copy.call(p,m,y)}return jg=function(){function p(){r(this,p),this.head=null,this.tail=null,this.length=0}return o(p,[{key:"push",value:function(y){var w={data:y,next:null};this.length>0?this.tail.next=w:this.head=w,this.tail=w,++this.length}},{key:"unshift",value:function(y){var w={data:y,next:this.head};this.length===0&&(this.tail=w),this.head=w,++this.length}},{key:"shift",value:function(){if(this.length!==0){var y=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,y}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(y){if(this.length===0)return"";for(var w=this.head,x=""+w.data;w=w.next;)x+=y+w.data;return x}},{key:"concat",value:function(y){if(this.length===0)return l.alloc(0);for(var w=l.allocUnsafe(y>>>0),x=this.head,S=0;x;)d(x.data,w,S),S+=x.data.length,x=x.next;return w}},{key:"consume",value:function(y,w){var x;return y<this.head.data.length?(x=this.head.data.slice(0,y),this.head.data=this.head.data.slice(y)):y===this.head.data.length?x=this.shift():x=w?this._getString(y):this._getBuffer(y),x}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(y){var w=this.head,x=1,S=w.data;for(y-=S.length;w=w.next;){var _=w.data,T=y>_.length?_.length:y;if(T===_.length?S+=_:S+=_.slice(0,y),y-=T,y===0){T===_.length?(++x,w.next?this.head=w.next:this.head=this.tail=null):(this.head=w,w.data=_.slice(T));break}++x}return this.length-=x,S}},{key:"_getBuffer",value:function(y){var w=l.allocUnsafe(y),x=this.head,S=1;for(x.data.copy(w),y-=x.data.length;x=x.next;){var _=x.data,T=y>_.length?_.length:y;if(_.copy(w,w.length-y,0,T),y-=T,y===0){T===_.length?(++S,x.next?this.head=x.next:this.head=this.tail=null):(this.head=x,x.data=_.slice(T));break}++S}return this.length-=S,w}},{key:h,value:function(y,w){return f(this,t(t({},w),{},{depth:0,customInspect:!1}))}}]),p}(),jg}var $g,m_;function b_(){if(m_)return $g;m_=1;function e(s,a){var u=this,l=this._readableState&&this._readableState.destroyed,c=this._writableState&&this._writableState.destroyed;return l||c?(a?a(s):s&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(i,this,s)):process.nextTick(i,this,s)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(s||null,function(f){!a&&f?u._writableState?u._writableState.errorEmitted?process.nextTick(n,u):(u._writableState.errorEmitted=!0,process.nextTick(t,u,f)):process.nextTick(t,u,f):a?(process.nextTick(n,u),a(f)):process.nextTick(n,u)}),this)}function t(s,a){i(s,a),n(s)}function n(s){s._writableState&&!s._writableState.emitClose||s._readableState&&!s._readableState.emitClose||s.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(s,a){s.emit("error",a)}function o(s,a){var u=s._readableState,l=s._writableState;u&&u.autoDestroy||l&&l.autoDestroy?s.destroy(a):s.emit("error",a)}return $g={destroy:e,undestroy:r,errorOrDestroy:o},$g}var qg={},y_;function $s(){if(y_)return qg;y_=1;function e(a,u){a.prototype=Object.create(u.prototype),a.prototype.constructor=a,a.__proto__=u}var t={};function n(a,u,l){l||(l=Error);function c(h,d,p){return typeof u=="string"?u:u(h,d,p)}var f=function(h){e(d,h);function d(p,m,y){return h.call(this,c(p,m,y))||this}return d}(l);f.prototype.name=l.name,f.prototype.code=a,t[a]=f}function r(a,u){if(Array.isArray(a)){var l=a.length;return a=a.map(function(c){return String(c)}),l>2?"one of ".concat(u," ").concat(a.slice(0,l-1).join(", "),", or ")+a[l-1]:l===2?"one of ".concat(u," ").concat(a[0]," or ").concat(a[1]):"of ".concat(u," ").concat(a[0])}else return"of ".concat(u," ").concat(String(a))}function i(a,u,l){return a.substr(0,u.length)===u}function o(a,u,l){return(l===void 0||l>a.length)&&(l=a.length),a.substring(l-u.length,l)===u}function s(a,u,l){return typeof l!="number"&&(l=0),l+u.length>a.length?!1:a.indexOf(u,l)!==-1}return n("ERR_INVALID_OPT_VALUE",function(a,u){return'The value "'+u+'" is invalid for option "'+a+'"'},TypeError),n("ERR_INVALID_ARG_TYPE",function(a,u,l){var c;typeof u=="string"&&i(u,"not ")?(c="must not be",u=u.replace(/^not /,"")):c="must be";var f;if(o(a," argument"))f="The ".concat(a," ").concat(c," ").concat(r(u,"type"));else{var h=s(a,".")?"property":"argument";f='The "'.concat(a,'" ').concat(h," ").concat(c," ").concat(r(u,"type"))}return f+=". Received type ".concat(typeof l),f},TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",function(a){return"The "+a+" method is not implemented"}),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",function(a){return"Cannot call "+a+" 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(a){return"Unknown encoding: "+a},TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),qg.codes=t,qg}var Wg,w_;function v_(){if(w_)return Wg;w_=1;var e=$s().codes.ERR_INVALID_OPT_VALUE;function t(r,i,o){return r.highWaterMark!=null?r.highWaterMark:i?r[o]:null}function n(r,i,o,s){var a=t(i,s,o);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var u=s?o:"highWaterMark";throw new e(u,a)}return Math.floor(a)}return r.objectMode?16:16*1024}return Wg={getHighWaterMark:n},Wg}var Zg,A_;function qU(){if(A_)return Zg;A_=1,Zg=e;function e(n,r){if(t("noDeprecation"))return n;var i=!1;function o(){if(!i){if(t("throwDeprecation"))throw new Error(r);t("traceDeprecation")?console.trace(r):console.warn(r),i=!0}return n.apply(this,arguments)}return o}function t(n){try{if(!globalThis.localStorage)return!1}catch{return!1}var r=globalThis.localStorage[n];return r==null?!1:String(r).toLowerCase()==="true"}return Zg}var Yg,x_;function E_(){if(x_)return Yg;x_=1,Yg=D;function e(L){var P=this;this.next=null,this.entry=null,this.finish=function(){$e(P,L)}}var t;D.WritableState=B;var n={deprecate:qU()},r=d_(),i=xe.Buffer,o=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function s(L){return i.from(L)}function a(L){return i.isBuffer(L)||L instanceof o}var u=b_(),l=v_(),c=l.getHighWaterMark,f=$s().codes,h=f.ERR_INVALID_ARG_TYPE,d=f.ERR_METHOD_NOT_IMPLEMENTED,p=f.ERR_MULTIPLE_CALLBACK,m=f.ERR_STREAM_CANNOT_PIPE,y=f.ERR_STREAM_DESTROYED,w=f.ERR_STREAM_NULL_VALUES,x=f.ERR_STREAM_WRITE_AFTER_END,S=f.ERR_UNKNOWN_ENCODING,_=u.errorOrDestroy;js(D,r);function T(){}function B(L,P,q){t=t||qs(),L=L||{},typeof q!="boolean"&&(q=P instanceof t),this.objectMode=!!L.objectMode,q&&(this.objectMode=this.objectMode||!!L.writableObjectMode),this.highWaterMark=c(this,L,"writableHighWaterMark",q),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var j=L.decodeStrings===!1;this.decodeStrings=!j,this.defaultEncoding=L.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Z){Pe(P,Z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=L.emitClose!==!1,this.autoDestroy=!!L.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}B.prototype.getBuffer=function(){for(var P=this.bufferedRequest,q=[];P;)q.push(P),P=P.next;return q},function(){try{Object.defineProperty(B.prototype,"buffer",{get:n.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var I;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(I=Function.prototype[Symbol.hasInstance],Object.defineProperty(D,Symbol.hasInstance,{value:function(P){return I.call(this,P)?!0:this!==D?!1:P&&P._writableState instanceof B}})):I=function(P){return P instanceof this};function D(L){t=t||qs();var P=this instanceof t;if(!P&&!I.call(D,this))return new D(L);this._writableState=new B(L,this,P),this.writable=!0,L&&(typeof L.write=="function"&&(this._write=L.write),typeof L.writev=="function"&&(this._writev=L.writev),typeof L.destroy=="function"&&(this._destroy=L.destroy),typeof L.final=="function"&&(this._final=L.final)),r.call(this)}D.prototype.pipe=function(){_(this,new m)};function M(L,P){var q=new x;_(L,q),process.nextTick(P,q)}function G(L,P,q,j){var Z;return q===null?Z=new w:typeof q!="string"&&!P.objectMode&&(Z=new h("chunk",["string","Buffer"],q)),Z?(_(L,Z),process.nextTick(j,Z),!1):!0}D.prototype.write=function(L,P,q){var j=this._writableState,Z=!1,C=!j.objectMode&&a(L);return C&&!i.isBuffer(L)&&(L=s(L)),typeof P=="function"&&(q=P,P=null),C?P="buffer":P||(P=j.defaultEncoding),typeof q!="function"&&(q=T),j.ending?M(this,q):(C||G(this,j,L,q))&&(j.pendingcb++,Z=ne(this,j,C,L,P,q)),Z},D.prototype.cork=function(){this._writableState.corked++},D.prototype.uncork=function(){var L=this._writableState;L.corked&&(L.corked--,!L.writing&&!L.corked&&!L.bufferProcessing&&L.bufferedRequest&&Ue(this,L))},D.prototype.setDefaultEncoding=function(P){if(typeof P=="string"&&(P=P.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((P+"").toLowerCase())>-1))throw new S(P);return this._writableState.defaultEncoding=P,this},Object.defineProperty(D.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function N(L,P,q){return!L.objectMode&&L.decodeStrings!==!1&&typeof P=="string"&&(P=i.from(P,q)),P}Object.defineProperty(D.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function ne(L,P,q,j,Z,C){if(!q){var A=N(P,j,Z);j!==A&&(q=!0,Z="buffer",j=A)}var V=P.objectMode?1:j.length;P.length+=V;var W=P.length<P.highWaterMark;if(W||(P.needDrain=!0),P.writing||P.corked){var ce=P.lastBufferedRequest;P.lastBufferedRequest={chunk:j,encoding:Z,isBuf:q,callback:C,next:null},ce?ce.next=P.lastBufferedRequest:P.bufferedRequest=P.lastBufferedRequest,P.bufferedRequestCount+=1}else ie(L,P,!1,V,j,Z,C);return W}function ie(L,P,q,j,Z,C,A){P.writelen=j,P.writecb=A,P.writing=!0,P.sync=!0,P.destroyed?P.onwrite(new y("write")):q?L._writev(Z,P.onwrite):L._write(Z,C,P.onwrite),P.sync=!1}function pe(L,P,q,j,Z){--P.pendingcb,q?(process.nextTick(Z,j),process.nextTick(bt,L,P),L._writableState.errorEmitted=!0,_(L,j)):(Z(j),L._writableState.errorEmitted=!0,_(L,j),bt(L,P))}function be(L){L.writing=!1,L.writecb=null,L.length-=L.writelen,L.writelen=0}function Pe(L,P){var q=L._writableState,j=q.sync,Z=q.writecb;if(typeof Z!="function")throw new p;if(be(q),P)pe(L,q,j,P,Z);else{var C=tt(q)||L.destroyed;!C&&!q.corked&&!q.bufferProcessing&&q.bufferedRequest&&Ue(L,q),j?process.nextTick(_e,L,q,C,Z):_e(L,q,C,Z)}}function _e(L,P,q,j){q||Oe(L,P),P.pendingcb--,j(),bt(L,P)}function Oe(L,P){P.length===0&&P.needDrain&&(P.needDrain=!1,L.emit("drain"))}function Ue(L,P){P.bufferProcessing=!0;var q=P.bufferedRequest;if(L._writev&&q&&q.next){var j=P.bufferedRequestCount,Z=new Array(j),C=P.corkedRequestsFree;C.entry=q;for(var A=0,V=!0;q;)Z[A]=q,q.isBuf||(V=!1),q=q.next,A+=1;Z.allBuffers=V,ie(L,P,!0,P.length,Z,"",C.finish),P.pendingcb++,P.lastBufferedRequest=null,C.next?(P.corkedRequestsFree=C.next,C.next=null):P.corkedRequestsFree=new e(P),P.bufferedRequestCount=0}else{for(;q;){var W=q.chunk,ce=q.encoding,te=q.callback,fe=P.objectMode?1:W.length;if(ie(L,P,!1,fe,W,ce,te),q=q.next,P.bufferedRequestCount--,P.writing)break}q===null&&(P.lastBufferedRequest=null)}P.bufferedRequest=q,P.bufferProcessing=!1}D.prototype._write=function(L,P,q){q(new d("_write()"))},D.prototype._writev=null,D.prototype.end=function(L,P,q){var j=this._writableState;return typeof L=="function"?(q=L,L=null,P=null):typeof P=="function"&&(q=P,P=null),L!=null&&this.write(L,P),j.corked&&(j.corked=1,this.uncork()),j.ending||Wt(this,j,q),this},Object.defineProperty(D.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function tt(L){return L.ending&&L.length===0&&L.bufferedRequest===null&&!L.finished&&!L.writing}function ke(L,P){L._final(function(q){P.pendingcb--,q&&_(L,q),P.prefinished=!0,L.emit("prefinish"),bt(L,P)})}function Ie(L,P){!P.prefinished&&!P.finalCalled&&(typeof L._final=="function"&&!P.destroyed?(P.pendingcb++,P.finalCalled=!0,process.nextTick(ke,L,P)):(P.prefinished=!0,L.emit("prefinish")))}function bt(L,P){var q=tt(P);if(q&&(Ie(L,P),P.pendingcb===0&&(P.finished=!0,L.emit("finish"),P.autoDestroy))){var j=L._readableState;(!j||j.autoDestroy&&j.endEmitted)&&L.destroy()}return q}function Wt(L,P,q){P.ending=!0,bt(L,P),q&&(P.finished?process.nextTick(q):L.once("finish",q)),P.ended=!0,L.writable=!1}function $e(L,P,q){var j=L.entry;for(L.entry=null;j;){var Z=j.callback;P.pendingcb--,Z(q),j=j.next}P.corkedRequestsFree.next=L}return Object.defineProperty(D.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(P){this._writableState&&(this._writableState.destroyed=P)}}),D.prototype.destroy=u.destroy,D.prototype._undestroy=u.undestroy,D.prototype._destroy=function(L,P){P(L)},Yg}var Qg,__;function qs(){if(__)return Qg;__=1;var e=Object.keys||function(l){var c=[];for(var f in l)c.push(f);return c};Qg=s;var t=B_(),n=E_();js(s,t);for(var r=e(n.prototype),i=0;i<r.length;i++){var o=r[i];s.prototype[o]||(s.prototype[o]=n.prototype[o])}function s(l){if(!(this instanceof s))return new s(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",a)))}Object.defineProperty(s.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(s.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(s.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function a(){this._writableState.ended||process.nextTick(u,this)}function u(l){l.end()}return Object.defineProperty(s.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(c){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=c,this._writableState.destroyed=c)}}),Qg}var Xg={},Kg={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */(function(e,t){var n=xe,r=n.Buffer;function i(s,a){for(var u in s)a[u]=s[u]}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?e.exports=n:(i(n,t),t.Buffer=o);function o(s,a,u){return r(s,a,u)}o.prototype=Object.create(r.prototype),i(r,o),o.from=function(s,a,u){if(typeof s=="number")throw new TypeError("Argument must not be a number");return r(s,a,u)},o.alloc=function(s,a,u){if(typeof s!="number")throw new TypeError("Argument must be a number");var l=r(s);return a!==void 0?typeof u=="string"?l.fill(a,u):l.fill(a):l.fill(0),l},o.allocUnsafe=function(s){if(typeof s!="number")throw new TypeError("Argument must be a number");return r(s)},o.allocUnsafeSlow=function(s){if(typeof s!="number")throw new TypeError("Argument must be a number");return n.SlowBuffer(s)}})(Kg,Kg.exports);var WU=Kg.exports,Jg=WU.Buffer,S_=Jg.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 ZU(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 YU(e){var t=ZU(e);if(typeof t!="string"&&(Jg.isEncoding===S_||!S_(e)))throw new Error("Unknown encoding: "+e);return t||e}var QU=Xg.StringDecoder=gu;function gu(e){this.encoding=YU(e);var t;switch(this.encoding){case"utf16le":this.text=nG,this.end=rG,t=4;break;case"utf8":this.fillLast=JU,t=4;break;case"base64":this.text=iG,this.end=oG,t=3;break;default:this.write=sG,this.end=aG;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Jg.allocUnsafe(t)}gu.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||""},gu.prototype.end=tG,gu.prototype.text=eG,gu.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 em(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function XU(e,t,n){var r=t.length-1;if(r<n)return 0;var i=em(t[r]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--r<n||i===-2?0:(i=em(t[r]),i>=0?(i>0&&(e.lastNeed=i-2),i):--r<n||i===-2?0:(i=em(t[r]),i>=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function KU(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 JU(e){var t=this.lastTotal-this.lastNeed,n=KU(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 eG(e,t){var n=XU(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 tG(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function nG(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 rG(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 iG(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 oG(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function sG(e){return e.toString(this.encoding)}function aG(e){return e&&e.length?this.write(e):""}var tm,C_;function nm(){if(C_)return tm;C_=1;var e=$s().codes.ERR_STREAM_PREMATURE_CLOSE;function t(o){var s=!1;return function(){if(!s){s=!0;for(var a=arguments.length,u=new Array(a),l=0;l<a;l++)u[l]=arguments[l];o.apply(this,u)}}}function n(){}function r(o){return o.setHeader&&typeof o.abort=="function"}function i(o,s,a){if(typeof s=="function")return i(o,null,s);s||(s={}),a=t(a||n);var u=s.readable||s.readable!==!1&&o.readable,l=s.writable||s.writable!==!1&&o.writable,c=function(){o.writable||h()},f=o._writableState&&o._writableState.finished,h=function(){l=!1,f=!0,u||a.call(o)},d=o._readableState&&o._readableState.endEmitted,p=function(){u=!1,d=!0,l||a.call(o)},m=function(S){a.call(o,S)},y=function(){var S;if(u&&!d)return(!o._readableState||!o._readableState.ended)&&(S=new e),a.call(o,S);if(l&&!f)return(!o._writableState||!o._writableState.ended)&&(S=new e),a.call(o,S)},w=function(){o.req.on("finish",h)};return r(o)?(o.on("complete",h),o.on("abort",y),o.req?w():o.on("request",w)):l&&!o._writableState&&(o.on("end",c),o.on("close",c)),o.on("end",p),o.on("finish",h),s.error!==!1&&o.on("error",m),o.on("close",y),function(){o.removeListener("complete",h),o.removeListener("abort",y),o.removeListener("request",w),o.req&&o.req.removeListener("finish",h),o.removeListener("end",c),o.removeListener("close",c),o.removeListener("finish",h),o.removeListener("end",p),o.removeListener("error",m),o.removeListener("close",y)}}return tm=i,tm}var rm,T_;function lG(){if(T_)return rm;T_=1;var e;function t(S,_,T){return _=n(_),_ in S?Object.defineProperty(S,_,{value:T,enumerable:!0,configurable:!0,writable:!0}):S[_]=T,S}function n(S){var _=r(S,"string");return typeof _=="symbol"?_:String(_)}function r(S,_){if(typeof S!="object"||S===null)return S;var T=S[Symbol.toPrimitive];if(T!==void 0){var B=T.call(S,_||"default");if(typeof B!="object")return B;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_==="string"?String:Number)(S)}var i=nm(),o=Symbol("lastResolve"),s=Symbol("lastReject"),a=Symbol("error"),u=Symbol("ended"),l=Symbol("lastPromise"),c=Symbol("handlePromise"),f=Symbol("stream");function h(S,_){return{value:S,done:_}}function d(S){var _=S[o];if(_!==null){var T=S[f].read();T!==null&&(S[l]=null,S[o]=null,S[s]=null,_(h(T,!1)))}}function p(S){process.nextTick(d,S)}function m(S,_){return function(T,B){S.then(function(){if(_[u]){T(h(void 0,!0));return}_[c](T,B)},B)}}var y=Object.getPrototypeOf(function(){}),w=Object.setPrototypeOf((e={get stream(){return this[f]},next:function(){var _=this,T=this[a];if(T!==null)return Promise.reject(T);if(this[u])return Promise.resolve(h(void 0,!0));if(this[f].destroyed)return new Promise(function(M,G){process.nextTick(function(){_[a]?G(_[a]):M(h(void 0,!0))})});var B=this[l],I;if(B)I=new Promise(m(B,this));else{var D=this[f].read();if(D!==null)return Promise.resolve(h(D,!1));I=new Promise(this[c])}return this[l]=I,I}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var _=this;return new Promise(function(T,B){_[f].destroy(null,function(I){if(I){B(I);return}T(h(void 0,!0))})})}),e),y),x=function(_){var T,B=Object.create(w,(T={},t(T,f,{value:_,writable:!0}),t(T,o,{value:null,writable:!0}),t(T,s,{value:null,writable:!0}),t(T,a,{value:null,writable:!0}),t(T,u,{value:_._readableState.endEmitted,writable:!0}),t(T,c,{value:function(D,M){var G=B[f].read();G?(B[l]=null,B[o]=null,B[s]=null,D(h(G,!1))):(B[o]=D,B[s]=M)},writable:!0}),T));return B[l]=null,i(_,function(I){if(I&&I.code!=="ERR_STREAM_PREMATURE_CLOSE"){var D=B[s];D!==null&&(B[l]=null,B[o]=null,B[s]=null,D(I)),B[a]=I;return}var M=B[o];M!==null&&(B[l]=null,B[o]=null,B[s]=null,M(h(void 0,!0))),B[u]=!0}),_.on("readable",p.bind(null,B)),B};return rm=x,rm}var im,k_;function uG(){return k_||(k_=1,im=function(){throw new Error("Readable.from is not available in the browser")}),im}var om,I_;function B_(){if(I_)return om;I_=1,om=M;var e;M.ReadableState=D,Gg.EventEmitter;var t=function(A,V){return A.listeners(V).length},n=d_(),r=xe.Buffer,i=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function o(C){return r.from(C)}function s(C){return r.isBuffer(C)||C instanceof i}var a=p_,u;a&&a.debuglog?u=a.debuglog("stream"):u=function(){};var l=$U(),c=b_(),f=v_(),h=f.getHighWaterMark,d=$s().codes,p=d.ERR_INVALID_ARG_TYPE,m=d.ERR_STREAM_PUSH_AFTER_EOF,y=d.ERR_METHOD_NOT_IMPLEMENTED,w=d.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,x,S,_;js(M,n);var T=c.errorOrDestroy,B=["error","close","destroy","pause","resume"];function I(C,A,V){if(typeof C.prependListener=="function")return C.prependListener(A,V);!C._events||!C._events[A]?C.on(A,V):Array.isArray(C._events[A])?C._events[A].unshift(V):C._events[A]=[V,C._events[A]]}function D(C,A,V){e=e||qs(),C=C||{},typeof V!="boolean"&&(V=A instanceof e),this.objectMode=!!C.objectMode,V&&(this.objectMode=this.objectMode||!!C.readableObjectMode),this.highWaterMark=h(this,C,"readableHighWaterMark",V),this.buffer=new l,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=C.emitClose!==!1,this.autoDestroy=!!C.autoDestroy,this.destroyed=!1,this.defaultEncoding=C.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,C.encoding&&(x||(x=Xg.StringDecoder),this.decoder=new x(C.encoding),this.encoding=C.encoding)}function M(C){if(e=e||qs(),!(this instanceof M))return new M(C);var A=this instanceof e;this._readableState=new D(C,this,A),this.readable=!0,C&&(typeof C.read=="function"&&(this._read=C.read),typeof C.destroy=="function"&&(this._destroy=C.destroy)),n.call(this)}Object.defineProperty(M.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(A){this._readableState&&(this._readableState.destroyed=A)}}),M.prototype.destroy=c.destroy,M.prototype._undestroy=c.undestroy,M.prototype._destroy=function(C,A){A(C)},M.prototype.push=function(C,A){var V=this._readableState,W;return V.objectMode?W=!0:typeof C=="string"&&(A=A||V.defaultEncoding,A!==V.encoding&&(C=r.from(C,A),A=""),W=!0),G(this,C,A,!1,W)},M.prototype.unshift=function(C){return G(this,C,null,!0,!1)};function G(C,A,V,W,ce){u("readableAddChunk",A);var te=C._readableState;if(A===null)te.reading=!1,Pe(C,te);else{var fe;if(ce||(fe=ne(te,A)),fe)T(C,fe);else if(te.objectMode||A&&A.length>0)if(typeof A!="string"&&!te.objectMode&&Object.getPrototypeOf(A)!==r.prototype&&(A=o(A)),W)te.endEmitted?T(C,new w):N(C,te,A,!0);else if(te.ended)T(C,new m);else{if(te.destroyed)return!1;te.reading=!1,te.decoder&&!V?(A=te.decoder.write(A),te.objectMode||A.length!==0?N(C,te,A,!1):Ue(C,te)):N(C,te,A,!1)}else W||(te.reading=!1,Ue(C,te))}return!te.ended&&(te.length<te.highWaterMark||te.length===0)}function N(C,A,V,W){A.flowing&&A.length===0&&!A.sync?(A.awaitDrain=0,C.emit("data",V)):(A.length+=A.objectMode?1:V.length,W?A.buffer.unshift(V):A.buffer.push(V),A.needReadable&&_e(C)),Ue(C,A)}function ne(C,A){var V;return!s(A)&&typeof A!="string"&&A!==void 0&&!C.objectMode&&(V=new p("chunk",["string","Buffer","Uint8Array"],A)),V}M.prototype.isPaused=function(){return this._readableState.flowing===!1},M.prototype.setEncoding=function(C){x||(x=Xg.StringDecoder);var A=new x(C);this._readableState.decoder=A,this._readableState.encoding=this._readableState.decoder.encoding;for(var V=this._readableState.buffer.head,W="";V!==null;)W+=A.write(V.data),V=V.next;return this._readableState.buffer.clear(),W!==""&&this._readableState.buffer.push(W),this._readableState.length=W.length,this};var ie=1073741824;function pe(C){return C>=ie?C=ie:(C--,C|=C>>>1,C|=C>>>2,C|=C>>>4,C|=C>>>8,C|=C>>>16,C++),C}function be(C,A){return C<=0||A.length===0&&A.ended?0:A.objectMode?1:C!==C?A.flowing&&A.length?A.buffer.head.data.length:A.length:(C>A.highWaterMark&&(A.highWaterMark=pe(C)),C<=A.length?C:A.ended?A.length:(A.needReadable=!0,0))}M.prototype.read=function(C){u("read",C),C=parseInt(C,10);var A=this._readableState,V=C;if(C!==0&&(A.emittedReadable=!1),C===0&&A.needReadable&&((A.highWaterMark!==0?A.length>=A.highWaterMark:A.length>0)||A.ended))return u("read: emitReadable",A.length,A.ended),A.length===0&&A.ended?q(this):_e(this),null;if(C=be(C,A),C===0&&A.ended)return A.length===0&&q(this),null;var W=A.needReadable;u("need readable",W),(A.length===0||A.length-C<A.highWaterMark)&&(W=!0,u("length less than watermark",W)),A.ended||A.reading?(W=!1,u("reading or ended",W)):W&&(u("do read"),A.reading=!0,A.sync=!0,A.length===0&&(A.needReadable=!0),this._read(A.highWaterMark),A.sync=!1,A.reading||(C=be(V,A)));var ce;return C>0?ce=P(C,A):ce=null,ce===null?(A.needReadable=A.length<=A.highWaterMark,C=0):(A.length-=C,A.awaitDrain=0),A.length===0&&(A.ended||(A.needReadable=!0),V!==C&&A.ended&&q(this)),ce!==null&&this.emit("data",ce),ce};function Pe(C,A){if(u("onEofChunk"),!A.ended){if(A.decoder){var V=A.decoder.end();V&&V.length&&(A.buffer.push(V),A.length+=A.objectMode?1:V.length)}A.ended=!0,A.sync?_e(C):(A.needReadable=!1,A.emittedReadable||(A.emittedReadable=!0,Oe(C)))}}function _e(C){var A=C._readableState;u("emitReadable",A.needReadable,A.emittedReadable),A.needReadable=!1,A.emittedReadable||(u("emitReadable",A.flowing),A.emittedReadable=!0,process.nextTick(Oe,C))}function Oe(C){var A=C._readableState;u("emitReadable_",A.destroyed,A.length,A.ended),!A.destroyed&&(A.length||A.ended)&&(C.emit("readable"),A.emittedReadable=!1),A.needReadable=!A.flowing&&!A.ended&&A.length<=A.highWaterMark,L(C)}function Ue(C,A){A.readingMore||(A.readingMore=!0,process.nextTick(tt,C,A))}function tt(C,A){for(;!A.reading&&!A.ended&&(A.length<A.highWaterMark||A.flowing&&A.length===0);){var V=A.length;if(u("maybeReadMore read 0"),C.read(0),V===A.length)break}A.readingMore=!1}M.prototype._read=function(C){T(this,new y("_read()"))},M.prototype.pipe=function(C,A){var V=this,W=this._readableState;switch(W.pipesCount){case 0:W.pipes=C;break;case 1:W.pipes=[W.pipes,C];break;default:W.pipes.push(C);break}W.pipesCount+=1,u("pipe count=%d opts=%j",W.pipesCount,A);var ce=(!A||A.end!==!1)&&C!==process.stdout&&C!==process.stderr,te=ce?Zt:ar;W.endEmitted?process.nextTick(te):V.once("end",te),C.on("unpipe",fe);function fe(v,g){u("onunpipe"),v===V&&g&&g.hasUnpiped===!1&&(g.hasUnpiped=!0,Ci())}function Zt(){u("onend"),C.end()}var _i=ke(V);C.on("drain",_i);var Si=!1;function Ci(){u("cleanup"),C.removeListener("close",Ti),C.removeListener("finish",Yt),C.removeListener("drain",_i),C.removeListener("error",Br),C.removeListener("unpipe",fe),V.removeListener("end",Zt),V.removeListener("end",ar),V.removeListener("data",It),Si=!0,W.awaitDrain&&(!C._writableState||C._writableState.needDrain)&&_i()}V.on("data",It);function It(v){u("ondata");var g=C.write(v);u("dest.write",g),g===!1&&((W.pipesCount===1&&W.pipes===C||W.pipesCount>1&&Z(W.pipes,C)!==-1)&&!Si&&(u("false write response, pause",W.awaitDrain),W.awaitDrain++),V.pause())}function Br(v){u("onerror",v),ar(),C.removeListener("error",Br),t(C,"error")===0&&T(C,v)}I(C,"error",Br);function Ti(){C.removeListener("finish",Yt),ar()}C.once("close",Ti);function Yt(){u("onfinish"),C.removeListener("close",Ti),ar()}C.once("finish",Yt);function ar(){u("unpipe"),V.unpipe(C)}return C.emit("pipe",V),W.flowing||(u("pipe resume"),V.resume()),C};function ke(C){return function(){var V=C._readableState;u("pipeOnDrain",V.awaitDrain),V.awaitDrain&&V.awaitDrain--,V.awaitDrain===0&&t(C,"data")&&(V.flowing=!0,L(C))}}M.prototype.unpipe=function(C){var A=this._readableState,V={hasUnpiped:!1};if(A.pipesCount===0)return this;if(A.pipesCount===1)return C&&C!==A.pipes?this:(C||(C=A.pipes),A.pipes=null,A.pipesCount=0,A.flowing=!1,C&&C.emit("unpipe",this,V),this);if(!C){var W=A.pipes,ce=A.pipesCount;A.pipes=null,A.pipesCount=0,A.flowing=!1;for(var te=0;te<ce;te++)W[te].emit("unpipe",this,{hasUnpiped:!1});return this}var fe=Z(A.pipes,C);return fe===-1?this:(A.pipes.splice(fe,1),A.pipesCount-=1,A.pipesCount===1&&(A.pipes=A.pipes[0]),C.emit("unpipe",this,V),this)},M.prototype.on=function(C,A){var V=n.prototype.on.call(this,C,A),W=this._readableState;return C==="data"?(W.readableListening=this.listenerCount("readable")>0,W.flowing!==!1&&this.resume()):C==="readable"&&!W.endEmitted&&!W.readableListening&&(W.readableListening=W.needReadable=!0,W.flowing=!1,W.emittedReadable=!1,u("on readable",W.length,W.reading),W.length?_e(this):W.reading||process.nextTick(bt,this)),V},M.prototype.addListener=M.prototype.on,M.prototype.removeListener=function(C,A){var V=n.prototype.removeListener.call(this,C,A);return C==="readable"&&process.nextTick(Ie,this),V},M.prototype.removeAllListeners=function(C){var A=n.prototype.removeAllListeners.apply(this,arguments);return(C==="readable"||C===void 0)&&process.nextTick(Ie,this),A};function Ie(C){var A=C._readableState;A.readableListening=C.listenerCount("readable")>0,A.resumeScheduled&&!A.paused?A.flowing=!0:C.listenerCount("data")>0&&C.resume()}function bt(C){u("readable nexttick read 0"),C.read(0)}M.prototype.resume=function(){var C=this._readableState;return C.flowing||(u("resume"),C.flowing=!C.readableListening,Wt(this,C)),C.paused=!1,this};function Wt(C,A){A.resumeScheduled||(A.resumeScheduled=!0,process.nextTick($e,C,A))}function $e(C,A){u("resume",A.reading),A.reading||C.read(0),A.resumeScheduled=!1,C.emit("resume"),L(C),A.flowing&&!A.reading&&C.read(0)}M.prototype.pause=function(){return u("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(u("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function L(C){var A=C._readableState;for(u("flow",A.flowing);A.flowing&&C.read()!==null;);}M.prototype.wrap=function(C){var A=this,V=this._readableState,W=!1;C.on("end",function(){if(u("wrapped end"),V.decoder&&!V.ended){var fe=V.decoder.end();fe&&fe.length&&A.push(fe)}A.push(null)}),C.on("data",function(fe){if(u("wrapped data"),V.decoder&&(fe=V.decoder.write(fe)),!(V.objectMode&&fe==null)&&!(!V.objectMode&&(!fe||!fe.length))){var Zt=A.push(fe);Zt||(W=!0,C.pause())}});for(var ce in C)this[ce]===void 0&&typeof C[ce]=="function"&&(this[ce]=function(Zt){return function(){return C[Zt].apply(C,arguments)}}(ce));for(var te=0;te<B.length;te++)C.on(B[te],this.emit.bind(this,B[te]));return this._read=function(fe){u("wrapped _read",fe),W&&(W=!1,C.resume())},this},typeof Symbol=="function"&&(M.prototype[Symbol.asyncIterator]=function(){return S===void 0&&(S=lG()),S(this)}),Object.defineProperty(M.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(M.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(M.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(A){this._readableState&&(this._readableState.flowing=A)}}),M._fromList=P,Object.defineProperty(M.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function P(C,A){if(A.length===0)return null;var V;return A.objectMode?V=A.buffer.shift():!C||C>=A.length?(A.decoder?V=A.buffer.join(""):A.buffer.length===1?V=A.buffer.first():V=A.buffer.concat(A.length),A.buffer.clear()):V=A.buffer.consume(C,A.decoder),V}function q(C){var A=C._readableState;u("endReadable",A.endEmitted),A.endEmitted||(A.ended=!0,process.nextTick(j,A,C))}function j(C,A){if(u("endReadableNT",C.endEmitted,C.length),!C.endEmitted&&C.length===0&&(C.endEmitted=!0,A.readable=!1,A.emit("end"),C.autoDestroy)){var V=A._writableState;(!V||V.autoDestroy&&V.finished)&&A.destroy()}}typeof Symbol=="function"&&(M.from=function(C,A){return _===void 0&&(_=uG()),_(M,C,A)});function Z(C,A){for(var V=0,W=C.length;V<W;V++)if(C[V]===A)return V;return-1}return om}var sm,D_;function R_(){if(D_)return sm;D_=1,sm=a;var e=$s().codes,t=e.ERR_METHOD_NOT_IMPLEMENTED,n=e.ERR_MULTIPLE_CALLBACK,r=e.ERR_TRANSFORM_ALREADY_TRANSFORMING,i=e.ERR_TRANSFORM_WITH_LENGTH_0,o=qs();js(a,o);function s(c,f){var h=this._transformState;h.transforming=!1;var d=h.writecb;if(d===null)return this.emit("error",new n);h.writechunk=null,h.writecb=null,f!=null&&this.push(f),d(c);var p=this._readableState;p.reading=!1,(p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}function a(c){if(!(this instanceof a))return new a(c);o.call(this,c),this._transformState={afterTransform:s.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,c&&(typeof c.transform=="function"&&(this._transform=c.transform),typeof c.flush=="function"&&(this._flush=c.flush)),this.on("prefinish",u)}function u(){var c=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(f,h){l(c,f,h)}):l(this,null,null)}a.prototype.push=function(c,f){return this._transformState.needTransform=!1,o.prototype.push.call(this,c,f)},a.prototype._transform=function(c,f,h){h(new t("_transform()"))},a.prototype._write=function(c,f,h){var d=this._transformState;if(d.writecb=h,d.writechunk=c,d.writeencoding=f,!d.transforming){var p=this._readableState;(d.needTransform||p.needReadable||p.length<p.highWaterMark)&&this._read(p.highWaterMark)}},a.prototype._read=function(c){var f=this._transformState;f.writechunk!==null&&!f.transforming?(f.transforming=!0,this._transform(f.writechunk,f.writeencoding,f.afterTransform)):f.needTransform=!0},a.prototype._destroy=function(c,f){o.prototype._destroy.call(this,c,function(h){f(h)})};function l(c,f,h){if(f)return c.emit("error",f);if(h!=null&&c.push(h),c._writableState.length)throw new i;if(c._transformState.transforming)throw new r;return c.push(null)}return sm}var am,F_;function cG(){if(F_)return am;F_=1,am=t;var e=R_();js(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)},am}var lm,M_;function fG(){if(M_)return lm;M_=1;var e;function t(h){var d=!1;return function(){d||(d=!0,h.apply(void 0,arguments))}}var n=$s().codes,r=n.ERR_MISSING_ARGS,i=n.ERR_STREAM_DESTROYED;function o(h){if(h)throw h}function s(h){return h.setHeader&&typeof h.abort=="function"}function a(h,d,p,m){m=t(m);var y=!1;h.on("close",function(){y=!0}),e===void 0&&(e=nm()),e(h,{readable:d,writable:p},function(x){if(x)return m(x);y=!0,m()});var w=!1;return function(x){if(!y&&!w){if(w=!0,s(h))return h.abort();if(typeof h.destroy=="function")return h.destroy();m(x||new i("pipe"))}}}function u(h){h()}function l(h,d){return h.pipe(d)}function c(h){return!h.length||typeof h[h.length-1]!="function"?o:h.pop()}function f(){for(var h=arguments.length,d=new Array(h),p=0;p<h;p++)d[p]=arguments[p];var m=c(d);if(Array.isArray(d[0])&&(d=d[0]),d.length<2)throw new r("streams");var y,w=d.map(function(x,S){var _=S<d.length-1,T=S>0;return a(x,_,T,function(B){y||(y=B),B&&w.forEach(u),!_&&(w.forEach(u),m(y))})});return d.reduce(l)}return lm=f,lm}var P_=xn,um=Gg.EventEmitter,hG=js;hG(xn,um),xn.Readable=B_(),xn.Writable=E_(),xn.Duplex=qs(),xn.Transform=R_(),xn.PassThrough=cG(),xn.finished=nm(),xn.pipeline=fG(),xn.Stream=xn;function xn(){um.call(this)}xn.prototype.pipe=function(e,t){var n=this;function r(c){e.writable&&e.write(c)===!1&&n.pause&&n.pause()}n.on("data",r);function i(){n.readable&&n.resume&&n.resume()}e.on("drain",i),!e._isStdio&&(!t||t.end!==!1)&&(n.on("end",s),n.on("close",a));var o=!1;function s(){o||(o=!0,e.end())}function a(){o||(o=!0,typeof e.destroy=="function"&&e.destroy())}function u(c){if(l(),um.listenerCount(this,"error")===0)throw c}n.on("error",u),e.on("error",u);function l(){n.removeListener("data",r),e.removeListener("drain",i),n.removeListener("end",s),n.removeListener("close",a),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 mu(e){return e.replace(/%([0-9A-Fa-f]{2})/g,(t,n)=>String.fromCharCode(parseInt(n,16)))}function L_(e,t){return String(t).replace(e,n=>`%${n.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function bu(e){return L_(/[\n;\r\t=%&,\x00-\x1f\x7f-\xff]/g,e)}function Cr(e){return L_(/[\n\r\t%\x00-\x1f\x7f-\xff]/g,e)}function N_(e){if(!(e&&e.length)||e===".")return{};const t={};return e.replace(/\r?\n$/,"").split(";").forEach(n=>{const r=n.split("=",2);if(!(r[1]&&r[1].length))return;r[0]=r[0].trim();let i=t[r[0].trim()];i||(i=[],t[r[0]]=i),i.push(...r[1].split(",").map(o=>o.trim()).map(mu))}),t}function O_(e){const t=e.split(" ").map(r=>r==="."||r===""?null:r);return{seq_id:t[0]&&mu(t[0]),source:t[1]&&mu(t[1]),type:t[2]&&mu(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:N_(t[8])}}function z_(e){const t=/^\s*##\s*(\S+)\s*(.*)/.exec(e);if(!t)return null;const[,n]=t;let[,,r]=t;const i={directive:n};if(r.length&&(r=r.replace(/\r?\n$/,""),i.value=r),n==="sequence-region"){const o=r.split(/\s+/,3);return{...i,seq_id:o[0],start:o[1]&&o[1].replace(/\D/g,""),end:o[2]&&o[2].replace(/\D/g,"")}}else if(n==="genome-build"){const[o,s]=r.split(/\s+/,2);return{...i,source:o,buildName:s}}return i}function U_(e){const t=[];return Object.entries(e).forEach(([n,r])=>{if(!r)return;let i;r.hasOwnProperty("toString")?i=bu(r.toString()):Array.isArray(r)?i=r.map(bu).join(","):i=bu(r),t.push(`${bu(n)}=${i}`)}),t.length?t.join(";"):"."}function dG(e,t){const n=e.attributes===null||e.attributes===void 0?".":U_(e.attributes),i=`${[e.seq_id===null?".":Cr(e.seq_id),e.source===null?".":Cr(e.source),e.type===null?".":Cr(e.type),e.start===null?".":Cr(e.start),e.end===null?".":Cr(e.end),e.score===null?".":Cr(e.score),e.strand===null?".":Cr(e.strand),e.phase===null?".":Cr(e.phase),n].join(" ")}
|
|
777
|
+
`;return t[i]?"":(t[i]=!0,i)}function ph(e,t){if(Array.isArray(e))return e.map(r=>ph(r,t)).join("");const n=[dG(e,t)];return pG(e)&&n.push(...e.child_features.map(r=>ph(r,t)),...e.derived_features.map(r=>ph(r,t))),n.join("")}function G_(e){return ph(e,{})}function H_(e){let t=`##${e.directive}`;return e.value&&(t+=` ${e.value}`),t+=`
|
|
778
|
+
`,t}function V_(e){return`# ${e.comment}
|
|
779
|
+
`}function cm(e){return`>${e.id}${e.description?` ${e.description}`:""}
|
|
774
780
|
${e.sequence}
|
|
775
|
-
`}function
|
|
776
|
-
`}return Array.isArray(e)?e.map(t):t(e)}function
|
|
777
|
-
`,r+=n.map(
|
|
781
|
+
`}function gh(e){function t(n){return"attributes"in n?G_(n):"directive"in n?H_(n):"sequence"in n?cm(n):"comment"in n?V_(n):`# (invalid item found during format)
|
|
782
|
+
`}return Array.isArray(e)?e.map(t):t(e)}function pG(e){return e.child_features!==void 0&&e.derived_features!==void 0}const gG=Object.freeze(Object.defineProperty({__proto__:null,escape:bu,escapeColumn:Cr,formatAttributes:U_,formatComment:V_,formatDirective:H_,formatFeature:G_,formatItem:gh,formatSequence:cm,parseAttributes:N_,parseDirective:z_,parseFeature:O_,unescape:mu},Symbol.toStringTag,{value:"Module"})),j_={Parent:"child_features",Derives_from:"derived_features"};class $_{constructor(t){this.seqCallback=t,this.currentSequence=void 0}addLine(t){const n=/^>\s*(\S+)\s*(.*)/.exec(t);n?(this._flush(),this.currentSequence={id:n[1],sequence:""},n[2]&&(this.currentSequence.description=n[2].trim())):this.currentSequence&&/\S/.test(t)&&(this.currentSequence.sequence+=t.replace(/\s/g,""))}_flush(){this.currentSequence&&this.seqCallback(this.currentSequence)}finish(){this._flush()}}class q_{constructor(t){this.fastaParser=void 0,this.eof=!1,this.lineNumber=0,this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},this._underConstructionOrphans={};const n=()=>{};this.featureCallback=t.featureCallback||n,this.endCallback=t.endCallback||n,this.commentCallback=t.commentCallback||n,this.errorCallback=t.errorCallback||n,this.directiveCallback=t.directiveCallback||n,this.sequenceCallback=t.sequenceCallback||n,this.disableDerivesFromReferences=t.disableDerivesFromReferences||!1,this.bufferSize=t.bufferSize===void 0?1e3:t.bufferSize}addLine(t){if(this.fastaParser){this.fastaParser.addLine(t);return}if(this.eof)return;if(this.lineNumber+=1,/^\s*[^#\s>]/.test(t)){this._bufferLine(t);return}const n=/^\s*(#+)(.*)/.exec(t);if(n){const[,r]=n;let[,,i]=n;if(r.length===3)this._emitAllUnderConstructionFeatures();else if(r.length===2){const o=z_(t);o&&(o.directive==="FASTA"?(this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new $_(this.sequenceCallback)):this._emitItem(o))}else i=i.replace(/\s*/,""),this._emitItem({comment:i})}else if(!/^\s*$/.test(t))if(/^\s*>/.test(t))this._emitAllUnderConstructionFeatures(),this.eof=!0,this.fastaParser=new $_(this.sequenceCallback),this.fastaParser.addLine(t);else{const r=t.replace(/\r?\n?$/g,"");throw new Error(`GFF3 parse error. Cannot parse '${r}'.`)}}finish(){this._emitAllUnderConstructionFeatures(),this.fastaParser&&this.fastaParser.finish(),this.endCallback()}_emitItem(t){Array.isArray(t)?this.featureCallback(t):"directive"in t?this.directiveCallback(t):"comment"in t&&this.commentCallback(t)}_enforceBufferSizeLimit(t=0){const n=r=>{r&&Array.isArray(r)&&r[0].attributes&&r[0].attributes.ID&&r[0].attributes.ID[0]&&(r[0].attributes.ID.forEach(o=>{delete this._underConstructionById[o],delete this._completedReferences[o]}),r.forEach(o=>{o.child_features&&o.child_features.forEach(s=>n(s)),o.derived_features&&o.derived_features.forEach(s=>n(s))}))};for(;this._underConstructionTopLevel.length+t>this.bufferSize;){const r=this._underConstructionTopLevel.shift();r&&(this._emitItem(r),n(r))}}_emitAllUnderConstructionFeatures(){if(this._underConstructionTopLevel.forEach(this._emitItem.bind(this)),this._underConstructionTopLevel=[],this._underConstructionById={},this._completedReferences={},Array.from(Object.values(this._underConstructionOrphans)).length)throw new Error(`some features reference other features that do not exist in the file (or in the same '###' scope). ${Object.keys(this._underConstructionOrphans)}`)}_bufferLine(t){var n,r,i;const s={...O_(t),child_features:[],derived_features:[]},a=((n=s.attributes)===null||n===void 0?void 0:n.ID)||[],u=((r=s.attributes)===null||r===void 0?void 0:r.Parent)||[],l=this.disableDerivesFromReferences?[]:((i=s.attributes)===null||i===void 0?void 0:i.Derives_from)||[];if(!a.length&&!u.length&&!l.length){this._emitItem([s]);return}let c;a.forEach(f=>{const h=this._underConstructionById[f];h?(h[h.length-1].type!==s.type&&this._parseError(`multi-line feature "${f}" has inconsistent types: "${s.type}", "${h[h.length-1].type}"`),h.push(s),c=h):(c=[s],this._enforceBufferSizeLimit(1),!u.length&&!l.length&&this._underConstructionTopLevel.push(c),this._underConstructionById[f]=c,this._resolveReferencesTo(c,f))}),this._resolveReferencesFrom(c||[s],{Parent:u,Derives_from:l},a)}_resolveReferencesTo(t,n){const r=this._underConstructionOrphans[n];r&&(t.forEach(i=>{i.child_features.push(...r.Parent)}),t.forEach(i=>{i.derived_features.push(...r.Derives_from)}),delete this._underConstructionOrphans[n])}_parseError(t){this.eof=!0,this.errorCallback(`${this.lineNumber}: ${t}`)}_resolveReferencesFrom(t,n,r){function i(o,s,a){let u=o[s];u||(u={},o[s]=u);const l=u[a]||!1;return u[a]=!0,l}n.Parent.forEach(o=>{const s=this._underConstructionById[o];if(s){const a=j_.Parent;r.filter(u=>i(this._completedReferences,u,`Parent,${o}`)).length||s.forEach(u=>{u[a].push(t)})}else{let a=this._underConstructionOrphans[o];a||(a={Parent:[],Derives_from:[]},this._underConstructionOrphans[o]=a),a.Parent.push(t)}}),n.Derives_from.forEach(o=>{const s=this._underConstructionById[o];if(s){const a=j_.Derives_from;r.filter(u=>i(this._completedReferences,u,`Derives_from,${o}`)).length||s.forEach(u=>{u[a].push(t)})}else{let a=this._underConstructionOrphans[o];a||(a={Parent:[],Derives_from:[]},this._underConstructionOrphans[o]=a),a.Derives_from.push(t)}})}}function fm(e){process&&process.nextTick?process.nextTick(e):e()}function W_(e){const t={encoding:"utf8",parseFeatures:!0,parseDirectives:!1,parseSequences:!0,parseComments:!1,bufferSize:1e3,disableDerivesFromReferences:!1,...e};return e.parseAll&&(t.parseFeatures=!0,t.parseDirectives=!0,t.parseComments=!0,t.parseSequences=!0),t}class mG extends P_.Transform{constructor(t={}){super({objectMode:!0}),this.textBuffer="";const n=W_(t);this.encoding=t.encoding||"utf8",this.decoder=new QU;const r=this.push.bind(this);this.parser=new q_({featureCallback:n.parseFeatures?r:void 0,directiveCallback:n.parseDirectives?r:void 0,commentCallback:n.parseComments?r:void 0,sequenceCallback:n.parseSequences?r:void 0,errorCallback:i=>this.emit("error",i),bufferSize:n.bufferSize,disableDerivesFromReferences:n.disableDerivesFromReferences})}_addLine(t){t&&this.parser.addLine(t)}_nextText(t){const n=(this.textBuffer+t).split(/\r?\n/);this.textBuffer=n.pop()||"",n.forEach(r=>this._addLine(r))}_transform(t,n,r){this._nextText(this.decoder.write(t)),fm(r)}_flush(t){this.decoder.end&&this._nextText(this.decoder.end()),this.textBuffer!=null&&this._addLine(this.textBuffer),this.parser.finish(),fm(t)}}function bG(e={}){return new mG(e)}function yG(e,t={}){if(!e)return[];const n=W_(t),r=[],i=r.push.bind(r),o=new q_({featureCallback:n.parseFeatures?i:void 0,directiveCallback:n.parseDirectives?i:void 0,commentCallback:n.parseComments?i:void 0,sequenceCallback:n.parseSequences?i:void 0,disableDerivesFromReferences:n.disableDerivesFromReferences||!1,bufferSize:1/0,errorCallback:s=>{throw s}});return e.split(/\r?\n/).forEach(o.addLine.bind(o)),o.finish(),r}function wG(e){const t=[],n=[];e.forEach(i=>{"sequence"in i?n.push(i):t.push(i)});let r=t.map(gh).join("");return n.length&&(r+=`##FASTA
|
|
783
|
+
`,r+=n.map(cm).join("")),r}class Z_ extends P_.Transform{constructor(t={}){super(Object.assign(t,{objectMode:!0})),this.linesSinceLastSyncMark=0,this.haveWeEmittedData=!1,this.fastaMode=!1,this.minLinesBetweenSyncMarks=t.minSyncLines||100,this.insertVersionDirective=t.insertVersionDirective||!1}_transform(t,n,r){let i;if(!this.haveWeEmittedData&&this.insertVersionDirective){const o=Array.isArray(t)?t[0]:t;"directive"in o&&o.directive!=="gff-version"&&this.push(`##gff-version 3
|
|
778
784
|
`)}if("sequence"in t&&!this.fastaMode&&(this.push(`##FASTA
|
|
779
|
-
`),this.fastaMode=!0),Array.isArray(t)?i=t.map(
|
|
785
|
+
`),this.fastaMode=!0),Array.isArray(t)?i=t.map(gh).join(""):i=gh(t),this.push(i),this.linesSinceLastSyncMark>=this.minLinesBetweenSyncMarks)this.push(`###
|
|
780
786
|
`),this.linesSinceLastSyncMark=0;else{let o=0;for(let s=0;s<i.length;s+=1)i[s]===`
|
|
781
|
-
`&&(o+=1);this.linesSinceLastSyncMark+=o}this.haveWeEmittedData=!0,
|
|
787
|
+
`&&(o+=1);this.linesSinceLastSyncMark+=o}this.haveWeEmittedData=!0,fm(r)}}function vG(e={}){return new Z_(e)}function AG(e,t,n={}){const r={insertVersionDirective:!0,...n};return new Promise((i,o)=>{e.pipe(new Z_(r)).on("end",()=>i(null)).on("error",o).pipe(t)})}const xG=Object.freeze(Object.defineProperty({__proto__:null,default:{parseStream:bG,parseStringSync:yG,formatSync:wG,formatStream:vG,formatFile:AG,util:gG}},Symbol.toStringTag,{value:"Module"}));de.GenomeSpy=Pv,de.embed=J7,de.favIcon=K7,de.html=et,de.icon=X7,de.loadSpec=Lv,Object.defineProperty(de,Symbol.toStringTag,{value:"Module"})});
|