@genome-spy/app 0.24.2 → 0.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,17 +1,17 @@
1
- var Uk=Object.defineProperty;var Gk=(j,z,ae)=>z in j?Uk(j,z,{enumerable:!0,configurable:!0,writable:!0,value:ae}):j[z]=ae;var W2=(j,z,ae)=>(Gk(j,typeof z!="symbol"?z+"":z,ae),ae),nd=(j,z,ae)=>{if(!z.has(j))throw TypeError("Cannot "+ae)};var ie=(j,z,ae)=>(nd(j,z,"read from private field"),ae?ae.call(j):z.get(j)),De=(j,z,ae)=>{if(z.has(j))throw TypeError("Cannot add the same private member more than once");z instanceof WeakSet?z.add(j):z.set(j,ae)},Uo=(j,z,ae,wn)=>(nd(j,z,"write to private field"),wn?wn.call(j,ae):z.set(j,ae),ae),X2=(j,z,ae,wn)=>({set _(Ys){Uo(j,z,Ys,ae)},get _(){return ie(j,z,wn)}}),be=(j,z,ae)=>(nd(j,z,"access private method"),ae);(function(j,z){typeof exports=="object"&&typeof module<"u"?z(exports):typeof define=="function"&&define.amd?define(["exports"],z):(j=typeof globalThis<"u"?globalThis:j||self,z(j.genomeSpyApp={}))})(this,function(j){var Bo,rd,ri,ii,et,oi,Oo,id,Ct,xn,Us,Z2,Gs,q2,fr,Go,Po,od,Fo,ad,zo,sd,Hs,K2,Qs,J2;"use strict";function z(t,e,n){return t.fields=e||[],t.fname=n,t}function ae(t){return t==null?null:t.fname}function wn(t){return t==null?null:t.fields}function Ys(t){return t.length===1?$2(t[0]):eb(t)}const $2=t=>function(e){return e[t]},eb=t=>{const e=t.length;return function(n){for(let r=0;r<e;++r)n=n[t[r]];return n}};function oe(t){throw Error(t)}function tb(t){const e=[],n=t.length;let r=null,i=0,o="",a,s,c;t=t+"";function u(){e.push(o+t.substring(a,s)),o="",a=s+1}for(a=s=0;s<n;++s)if(c=t[s],c==="\\")o+=t.substring(a,s),o+=t.substring(++s,++s),a=s;else if(c===r)u(),r=null,i=-1;else{if(r)continue;a===i&&c==='"'||a===i&&c==="'"?(a=s+1,r=c):c==="."&&!i?s>a?u():a=s+1:c==="["?(s>a&&u(),i=a=s+1):c==="]"&&(i||oe("Access path missing open bracket: "+t),i>0&&u(),i=0,a=s+1)}return i&&oe("Access path missing closing bracket: "+t),r&&oe("Access path missing closing quote: "+t),s>a&&(s++,u()),e}function Ho(t,e,n){const r=tb(t);return t=r.length===1?r[0]:t,z((n&&n.get||Ys)(r),[t],e||t)}Ho("id");const Qo=z(t=>t,[],"identity");z(()=>0,[],"zero"),z(()=>1,[],"one"),z(()=>!0,[],"true"),z(()=>!1,[],"false");var We=Array.isArray;function ze(t){return t===Object(t)}function tt(t){return t[t.length-1]}function ai(t){return t==null||t===""?null:+t}const cd=t=>e=>t*Math.exp(e),ud=t=>e=>Math.log(t*e),nb=t=>e=>Math.sign(e)*Math.log1p(Math.abs(e/t)),rb=t=>e=>Math.sign(e)*Math.expm1(Math.abs(e))*t,Vo=t=>e=>e<0?-Math.pow(-e,t):Math.pow(e,t);function _s(t,e,n,r){const i=n(t[0]),o=n(tt(t)),a=(o-i)*e;return[r(i-a),r(o-a)]}function ib(t,e){return _s(t,e,ai,Qo)}function ob(t,e){var n=Math.sign(t[0]);return _s(t,e,ud(n),cd(n))}function ab(t,e,n){return _s(t,e,Vo(n),Vo(1/n))}function Yo(t,e,n,r,i){const o=r(t[0]),a=r(tt(t)),s=e!=null?r(e):(o+a)/2;return[i(s+(o-s)*n),i(s+(a-s)*n)]}function Ws(t,e,n){return Yo(t,e,n,ai,Qo)}function ld(t,e,n){const r=Math.sign(t[0]);return Yo(t,e,n,ud(r),cd(r))}function Xs(t,e,n,r){return Yo(t,e,n,Vo(r),Vo(1/r))}function sb(t,e,n,r){return Yo(t,e,n,nb(r),rb(r))}function Zs(t){return t!=null?We(t)?t:[t]:[]}function cb(t,e,n){let r=t[0],i=t[1],o;return i<r&&(o=i,i=r,r=o),o=i-r,o>=n-e?[e,n]:[r=Math.min(Math.max(r,e),n-o),r+o]}function ke(t){return typeof t=="function"}const ub="descending";function fd(t,e,n){n=n||{},e=Zs(e)||[];const r=[],i=[],o={},a=n.comparator||lb;return Zs(t).forEach((s,c)=>{s!=null&&(r.push(e[c]===ub?-1:1),i.push(s=ke(s)?s:Ho(s,null,n)),(wn(s)||[]).forEach(u=>o[u]=1))}),i.length===0?null:z(a(i,r),Object.keys(o))}const dd=(t,e)=>(t<e||t==null)&&e!=null?-1:(t>e||e==null)&&t!=null?1:(e=e instanceof Date?+e:e,(t=t instanceof Date?+t:t)!==t&&e===e?-1:e!==e&&t===t?1:0),lb=(t,e)=>t.length===1?fb(t[0],e[0]):db(t,e,t.length),fb=(t,e)=>function(n,r){return dd(t(n),t(r))*e},db=(t,e,n)=>(e.push(0),function(r,i){let o,a=0,s=-1;for(;a===0&&++s<n;)o=t[s],a=dd(o(r),o(i));return a*e[s]});function hb(t){return ke(t)?t:()=>t}function qs(t){for(let e,n,r=1,i=arguments.length;r<i;++r){e=arguments[r];for(n in e)t[n]=e[n]}return t}const pb=Object.prototype.hasOwnProperty;function Cn(t,e){return pb.call(t,e)}function _o(t){return typeof t=="boolean"}function mb(t){return Object.prototype.toString.call(t)==="[object Date]"}function gb(t){return t&&ke(t[Symbol.iterator])}function ce(t){return typeof t=="number"}function ee(t){return typeof t=="string"}function yb(t,e){const n=t[0],r=tt(t),i=+e;return i?i===1?r:n+i*(r-n):n}function Wo(t){return t&&tt(t)-t[0]||0}function Xo(t){return We(t)?"["+t.map(Xo)+"]":ze(t)||ee(t)?JSON.stringify(t).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):t}function bb(t){return t==null||t===""?null:!t||t==="false"||t==="0"?!1:!!t}const vb=t=>ce(t)||mb(t)?t:Date.parse(t);function Ab(t,e){return e=e||vb,t==null||t===""?null:e(t)}function xb(t){return t==null||t===""?null:t+""}function Zo(t){const e={},n=t.length;for(let r=0;r<n;++r)e[t[r]]=!0;return e}var hd={},Ks={},Js=34,si=10,$s=13;function pd(t){return new Function("d","return {"+t.map(function(e,n){return JSON.stringify(e)+": d["+n+'] || ""'}).join(",")+"}")}function wb(t,e){var n=pd(t);return function(r,i){return e(n(r),i,t)}}function md(t){var e=Object.create(null),n=[];return t.forEach(function(r){for(var i in r)i in e||n.push(e[i]=i)}),n}function Ne(t,e){var n=t+"",r=n.length;return r<e?new Array(e-r+1).join(0)+n:n}function Cb(t){return t<0?"-"+Ne(-t,6):t>9999?"+"+Ne(t,6):Ne(t,4)}function Sb(t){var e=t.getUTCHours(),n=t.getUTCMinutes(),r=t.getUTCSeconds(),i=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":Cb(t.getUTCFullYear())+"-"+Ne(t.getUTCMonth()+1,2)+"-"+Ne(t.getUTCDate(),2)+(i?"T"+Ne(e,2)+":"+Ne(n,2)+":"+Ne(r,2)+"."+Ne(i,3)+"Z":r?"T"+Ne(e,2)+":"+Ne(n,2)+":"+Ne(r,2)+"Z":n||e?"T"+Ne(e,2)+":"+Ne(n,2)+"Z":"")}function gd(t){var e=new RegExp('["'+t+`
2
- \r]`),n=t.charCodeAt(0);function r(l,d){var h,p,m=i(l,function(y,g){if(h)return h(y,g-1);p=y,h=d?wb(y,d):pd(y)});return m.columns=p||[],m}function i(l,d){var h=[],p=l.length,m=0,y=0,g,x=p<=0,A=!1;l.charCodeAt(p-1)===si&&--p,l.charCodeAt(p-1)===$s&&--p;function C(){if(x)return Ks;if(A)return A=!1,hd;var b,w=m,E;if(l.charCodeAt(w)===Js){for(;m++<p&&l.charCodeAt(m)!==Js||l.charCodeAt(++m)===Js;);return(b=m)>=p?x=!0:(E=l.charCodeAt(m++))===si?A=!0:E===$s&&(A=!0,l.charCodeAt(m)===si&&++m),l.slice(w+1,b-1).replace(/""/g,'"')}for(;m<p;){if((E=l.charCodeAt(b=m++))===si)A=!0;else if(E===$s)A=!0,l.charCodeAt(m)===si&&++m;else if(E!==n)continue;return l.slice(w,b)}return x=!0,l.slice(w,p)}for(;(g=C())!==Ks;){for(var v=[];g!==hd&&g!==Ks;)v.push(g),g=C();d&&(v=d(v,y++))==null||h.push(v)}return h}function o(l,d){return l.map(function(h){return d.map(function(p){return f(h[p])}).join(t)})}function a(l,d){return d==null&&(d=md(l)),[d.map(f).join(t)].concat(o(l,d)).join(`
3
- `)}function s(l,d){return d==null&&(d=md(l)),o(l,d).join(`
1
+ var Vk=Object.defineProperty;var Yk=(j,z,ae)=>z in j?Vk(j,z,{enumerable:!0,configurable:!0,writable:!0,value:ae}):j[z]=ae;var ad=(j,z,ae)=>(Yk(j,typeof z!="symbol"?z+"":z,ae),ae),sd=(j,z,ae)=>{if(!z.has(j))throw TypeError("Cannot "+ae)};var ee=(j,z,ae)=>(sd(j,z,"read from private field"),ae?ae.call(j):z.get(j)),xe=(j,z,ae)=>{if(z.has(j))throw TypeError("Cannot add the same private member more than once");z instanceof WeakSet?z.add(j):z.set(j,ae)},ai=(j,z,ae,wn)=>(sd(j,z,"write to private field"),wn?wn.call(j,ae):z.set(j,ae),ae),J2=(j,z,ae,wn)=>({set _(Ws){ai(j,z,Ws,ae)},get _(){return ee(j,z,wn)}}),be=(j,z,ae)=>(sd(j,z,"access private method"),ae);(function(j,z){typeof exports=="object"&&typeof module<"u"?z(exports):typeof define=="function"&&define.amd?define(["exports"],z):(j=typeof globalThis<"u"?globalThis:j||self,z(j.genomeSpyApp={}))})(this,function(j){var Oo,cd,ri,ii,et,oi,Po,ud,Ct,xn,Hs,$2,Qs,eb,fr,Ho,Fo,ld,zo,fd,Ro,dd,Vs,tb,jo,Ys,nb;"use strict";function z(t,e,n){return t.fields=e||[],t.fname=n,t}function ae(t){return t==null?null:t.fname}function wn(t){return t==null?null:t.fields}function Ws(t){return t.length===1?rb(t[0]):ib(t)}const rb=t=>function(e){return e[t]},ib=t=>{const e=t.length;return function(n){for(let r=0;r<e;++r)n=n[t[r]];return n}};function oe(t){throw Error(t)}function ob(t){const e=[],n=t.length;let r=null,i=0,o="",a,s,c;t=t+"";function u(){e.push(o+t.substring(a,s)),o="",a=s+1}for(a=s=0;s<n;++s)if(c=t[s],c==="\\")o+=t.substring(a,s),o+=t.substring(++s,++s),a=s;else if(c===r)u(),r=null,i=-1;else{if(r)continue;a===i&&c==='"'||a===i&&c==="'"?(a=s+1,r=c):c==="."&&!i?s>a?u():a=s+1:c==="["?(s>a&&u(),i=a=s+1):c==="]"&&(i||oe("Access path missing open bracket: "+t),i>0&&u(),i=0,a=s+1)}return i&&oe("Access path missing closing bracket: "+t),r&&oe("Access path missing closing quote: "+t),s>a&&(s++,u()),e}function Qo(t,e,n){const r=ob(t);return t=r.length===1?r[0]:t,z((n&&n.get||Ws)(r),[t],e||t)}Qo("id");const Vo=z(t=>t,[],"identity");z(()=>0,[],"zero"),z(()=>1,[],"one"),z(()=>!0,[],"true"),z(()=>!1,[],"false");var We=Array.isArray;function ze(t){return t===Object(t)}function tt(t){return t[t.length-1]}function si(t){return t==null||t===""?null:+t}const hd=t=>e=>t*Math.exp(e),pd=t=>e=>Math.log(t*e),ab=t=>e=>Math.sign(e)*Math.log1p(Math.abs(e/t)),sb=t=>e=>Math.sign(e)*Math.expm1(Math.abs(e))*t,Yo=t=>e=>e<0?-Math.pow(-e,t):Math.pow(e,t);function Xs(t,e,n,r){const i=n(t[0]),o=n(tt(t)),a=(o-i)*e;return[r(i-a),r(o-a)]}function cb(t,e){return Xs(t,e,si,Vo)}function ub(t,e){var n=Math.sign(t[0]);return Xs(t,e,pd(n),hd(n))}function lb(t,e,n){return Xs(t,e,Yo(n),Yo(1/n))}function _o(t,e,n,r,i){const o=r(t[0]),a=r(tt(t)),s=e!=null?r(e):(o+a)/2;return[i(s+(o-s)*n),i(s+(a-s)*n)]}function Zs(t,e,n){return _o(t,e,n,si,Vo)}function md(t,e,n){const r=Math.sign(t[0]);return _o(t,e,n,pd(r),hd(r))}function qs(t,e,n,r){return _o(t,e,n,Yo(r),Yo(1/r))}function fb(t,e,n,r){return _o(t,e,n,ab(r),sb(r))}function Ks(t){return t!=null?We(t)?t:[t]:[]}function db(t,e,n){let r=t[0],i=t[1],o;return i<r&&(o=i,i=r,r=o),o=i-r,o>=n-e?[e,n]:[r=Math.min(Math.max(r,e),n-o),r+o]}function ke(t){return typeof t=="function"}const hb="descending";function gd(t,e,n){n=n||{},e=Ks(e)||[];const r=[],i=[],o={},a=n.comparator||pb;return Ks(t).forEach((s,c)=>{s!=null&&(r.push(e[c]===hb?-1:1),i.push(s=ke(s)?s:Qo(s,null,n)),(wn(s)||[]).forEach(u=>o[u]=1))}),i.length===0?null:z(a(i,r),Object.keys(o))}const yd=(t,e)=>(t<e||t==null)&&e!=null?-1:(t>e||e==null)&&t!=null?1:(e=e instanceof Date?+e:e,(t=t instanceof Date?+t:t)!==t&&e===e?-1:e!==e&&t===t?1:0),pb=(t,e)=>t.length===1?mb(t[0],e[0]):gb(t,e,t.length),mb=(t,e)=>function(n,r){return yd(t(n),t(r))*e},gb=(t,e,n)=>(e.push(0),function(r,i){let o,a=0,s=-1;for(;a===0&&++s<n;)o=t[s],a=yd(o(r),o(i));return a*e[s]});function yb(t){return ke(t)?t:()=>t}function Js(t){for(let e,n,r=1,i=arguments.length;r<i;++r){e=arguments[r];for(n in e)t[n]=e[n]}return t}const bb=Object.prototype.hasOwnProperty;function Cn(t,e){return bb.call(t,e)}function Wo(t){return typeof t=="boolean"}function vb(t){return Object.prototype.toString.call(t)==="[object Date]"}function Ab(t){return t&&ke(t[Symbol.iterator])}function ce(t){return typeof t=="number"}function te(t){return typeof t=="string"}function xb(t,e){const n=t[0],r=tt(t),i=+e;return i?i===1?r:n+i*(r-n):n}function Xo(t){return t&&tt(t)-t[0]||0}function Zo(t){return We(t)?"["+t.map(Zo)+"]":ze(t)||te(t)?JSON.stringify(t).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):t}function wb(t){return t==null||t===""?null:!t||t==="false"||t==="0"?!1:!!t}const Cb=t=>ce(t)||vb(t)?t:Date.parse(t);function Sb(t,e){return e=e||Cb,t==null||t===""?null:e(t)}function Eb(t){return t==null||t===""?null:t+""}function qo(t){const e={},n=t.length;for(let r=0;r<n;++r)e[t[r]]=!0;return e}var bd={},$s={},ec=34,ci=10,tc=13;function vd(t){return new Function("d","return {"+t.map(function(e,n){return JSON.stringify(e)+": d["+n+'] || ""'}).join(",")+"}")}function Db(t,e){var n=vd(t);return function(r,i){return e(n(r),i,t)}}function Ad(t){var e=Object.create(null),n=[];return t.forEach(function(r){for(var i in r)i in e||n.push(e[i]=i)}),n}function Ne(t,e){var n=t+"",r=n.length;return r<e?new Array(e-r+1).join(0)+n:n}function Mb(t){return t<0?"-"+Ne(-t,6):t>9999?"+"+Ne(t,6):Ne(t,4)}function Tb(t){var e=t.getUTCHours(),n=t.getUTCMinutes(),r=t.getUTCSeconds(),i=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":Mb(t.getUTCFullYear())+"-"+Ne(t.getUTCMonth()+1,2)+"-"+Ne(t.getUTCDate(),2)+(i?"T"+Ne(e,2)+":"+Ne(n,2)+":"+Ne(r,2)+"."+Ne(i,3)+"Z":r?"T"+Ne(e,2)+":"+Ne(n,2)+":"+Ne(r,2)+"Z":n||e?"T"+Ne(e,2)+":"+Ne(n,2)+"Z":"")}function xd(t){var e=new RegExp('["'+t+`
2
+ \r]`),n=t.charCodeAt(0);function r(l,d){var h,p,m=i(l,function(y,g){if(h)return h(y,g-1);p=y,h=d?Db(y,d):vd(y)});return m.columns=p||[],m}function i(l,d){var h=[],p=l.length,m=0,y=0,g,x=p<=0,A=!1;l.charCodeAt(p-1)===ci&&--p,l.charCodeAt(p-1)===tc&&--p;function C(){if(x)return $s;if(A)return A=!1,bd;var b,w=m,E;if(l.charCodeAt(w)===ec){for(;m++<p&&l.charCodeAt(m)!==ec||l.charCodeAt(++m)===ec;);return(b=m)>=p?x=!0:(E=l.charCodeAt(m++))===ci?A=!0:E===tc&&(A=!0,l.charCodeAt(m)===ci&&++m),l.slice(w+1,b-1).replace(/""/g,'"')}for(;m<p;){if((E=l.charCodeAt(b=m++))===ci)A=!0;else if(E===tc)A=!0,l.charCodeAt(m)===ci&&++m;else if(E!==n)continue;return l.slice(w,b)}return x=!0,l.slice(w,p)}for(;(g=C())!==$s;){for(var v=[];g!==bd&&g!==$s;)v.push(g),g=C();d&&(v=d(v,y++))==null||h.push(v)}return h}function o(l,d){return l.map(function(h){return d.map(function(p){return f(h[p])}).join(t)})}function a(l,d){return d==null&&(d=Ad(l)),[d.map(f).join(t)].concat(o(l,d)).join(`
3
+ `)}function s(l,d){return d==null&&(d=Ad(l)),o(l,d).join(`
4
4
  `)}function c(l){return l.map(u).join(`
5
- `)}function u(l){return l.map(f).join(t)}function f(l){return l==null?"":l instanceof Date?Sb(l):e.test(l+="")?'"'+l.replace(/"/g,'""')+'"':l}return{parse:r,parseRows:i,format:a,formatBody:s,formatRows:c,formatRow:u,formatValue:f}}var Eb=gd(" "),Db=Eb.parseRows;function Mb(t){return t}function Tb(t){if(t==null)return Mb;var e,n,r=t.scale[0],i=t.scale[1],o=t.translate[0],a=t.translate[1];return function(s,c){c||(e=n=0);var u=2,f=s.length,l=new Array(f);for(l[0]=(e+=s[0])*r+o,l[1]=(n+=s[1])*i+a;u<f;)l[u]=s[u],++u;return l}}function Ib(t,e){for(var n,r=t.length,i=r-e;i<--r;)n=t[i],t[i++]=t[r],t[r]=n}function kb(t,e){return typeof e=="string"&&(e=t.objects[e]),e.type==="GeometryCollection"?{type:"FeatureCollection",features:e.geometries.map(function(n){return yd(t,n)})}:yd(t,e)}function yd(t,e){var n=e.id,r=e.bbox,i=e.properties==null?{}:e.properties,o=bd(t,e);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 bd(t,e){var n=Tb(t.transform),r=t.arcs;function i(f,l){l.length&&l.pop();for(var d=r[f<0?~f:f],h=0,p=d.length;h<p;++h)l.push(n(d[h],h));f<0&&Ib(l,p)}function o(f){return n(f)}function a(f){for(var l=[],d=0,h=f.length;d<h;++d)i(f[d],l);return l.length<2&&l.push(l[0]),l}function s(f){for(var l=a(f);l.length<4;)l.push(l[0]);return l}function c(f){return f.map(s)}function u(f){var l=f.type,d;switch(l){case"GeometryCollection":return{type:l,geometries:f.geometries.map(u)};case"Point":d=o(f.coordinates);break;case"MultiPoint":d=f.coordinates.map(o);break;case"LineString":d=a(f.arcs);break;case"MultiLineString":d=f.arcs.map(a);break;case"Polygon":d=c(f.arcs);break;case"MultiPolygon":d=f.arcs.map(c);break;default:return null}return{type:l,coordinates:d}}return u(e)}function Nb(t,e){var n={},r={},i={},o=[],a=-1;e.forEach(function(u,f){var l=t.arcs[u<0?~u:u],d;l.length<3&&!l[1][0]&&!l[1][1]&&(d=e[++a],e[a]=u,e[f]=d)}),e.forEach(function(u){var f=s(u),l=f[0],d=f[1],h,p;if(h=i[l])if(delete i[h.end],h.push(u),h.end=d,p=r[d]){delete r[p.start];var m=p===h?h:h.concat(p);r[m.start=h.start]=i[m.end=p.end]=m}else r[h.start]=i[h.end]=h;else if(h=r[d])if(delete r[h.start],h.unshift(u),h.start=l,p=i[l]){delete i[p.end];var y=p===h?h:p.concat(h);r[y.start=p.start]=i[y.end=h.end]=y}else r[h.start]=i[h.end]=h;else h=[u],r[h.start=l]=i[h.end=d]=h});function s(u){var f=t.arcs[u<0?~u:u],l=f[0],d;return t.transform?(d=[0,0],f.forEach(function(h){d[0]+=h[0],d[1]+=h[1]})):d=f[f.length-1],u<0?[d,l]:[l,d]}function c(u,f){for(var l in u){var d=u[l];delete f[d.start],delete d.start,delete d.end,d.forEach(function(h){n[h<0?~h:h]=1}),o.push(d)}}return c(i,r),c(r,i),e.forEach(function(u){n[u<0?~u:u]||o.push([u])}),o}function Lb(t){return bd(t,Bb.apply(this,arguments))}function Bb(t,e,n){var r,i,o;if(arguments.length>1)r=Ob(t,e,n);else for(i=0,r=new Array(o=t.arcs.length);i<o;++i)r[i]=i;return{type:"MultiLineString",arcs:Nb(t,r)}}function Ob(t,e,n){var r=[],i=[],o;function a(l){var d=l<0?~l:l;(i[d]||(i[d]=[])).push({i:l,g:o})}function s(l){l.forEach(a)}function c(l){l.forEach(s)}function u(l){l.forEach(c)}function f(l){switch(o=l,l.type){case"GeometryCollection":l.geometries.forEach(f);break;case"LineString":s(l.arcs);break;case"MultiLineString":case"Polygon":c(l.arcs);break;case"MultiPolygon":u(l.arcs);break}}return f(e),i.forEach(n==null?function(l){r.push(l[0].i)}:function(l){n(l[0].g,l[l.length-1].g)&&r.push(l[0].i)}),r}function Sn(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Pb(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function qo(t){let e,n,r;t.length!==2?(e=Sn,n=(s,c)=>Sn(t(s),c),r=(s,c)=>t(s)-c):(e=t===Sn||t===Pb?t:Fb,n=t,r=t);function i(s,c,u=0,f=s.length){if(u<f){if(e(c,c)!==0)return f;do{const l=u+f>>>1;n(s[l],c)<0?u=l+1:f=l}while(u<f)}return u}function o(s,c,u=0,f=s.length){if(u<f){if(e(c,c)!==0)return f;do{const l=u+f>>>1;n(s[l],c)<=0?u=l+1:f=l}while(u<f)}return u}function a(s,c,u=0,f=s.length){const l=i(s,c,u,f-1);return l>u&&r(s[l-1],c)>-r(s[l],c)?l-1:l}return{left:i,center:a,right:o}}function Fb(){return 0}function vd(t){return t===null?NaN:+t}const Ad=qo(Sn),ec=Ad.right;Ad.left,qo(vd).center;const hr=ec;function zb(t,e){let n,r;if(e===void 0)for(const i of t)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let o of t)(o=e(o,++i,t))!=null&&(n===void 0?o>=o&&(n=r=o):(n>o&&(n=o),r<o&&(r=o)))}return[n,r]}class En extends Map{constructor(e,n=Ub){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const[r,i]of e)this.set(r,i)}get(e){return super.get(xd(this,e))}has(e){return super.has(xd(this,e))}set(e,n){return super.set(Rb(this,e),n)}delete(e){return super.delete(jb(this,e))}}function xd({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):n}function Rb({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function jb({_intern:t,_key:e},n){const r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function Ub(t){return t!==null&&typeof t=="object"?t.valueOf():t}function Ko(t){return t}function ci(t,...e){return tc(t,Ko,Ko,e)}function Gb(t,...e){return tc(t,Array.from,Ko,e)}function Hb(t,e,...n){return tc(t,Ko,e,n)}function tc(t,e,n,r){return function i(o,a){if(a>=r.length)return n(o);const s=new En,c=r[a++];let u=-1;for(const f of o){const l=c(f,++u,o),d=s.get(l);d?d.push(f):s.set(l,[f])}for(const[f,l]of s)s.set(f,i(l,a));return e(s)}(t,0)}function Qb(t,e){return Array.from(e,n=>t[n])}function Vb(t,...e){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");t=Array.from(t);let[n]=e;if(n&&n.length!==2||e.length>1){const r=Uint32Array.from(t,(i,o)=>o);return e.length>1?(e=e.map(i=>t.map(i)),r.sort((i,o)=>{for(const a of e){const s=nc(a[i],a[o]);if(s)return s}})):(n=t.map(n),r.sort((i,o)=>nc(n[i],n[o]))),Qb(t,r)}return t.sort(Yb(n))}function Yb(t=Sn){if(t===Sn)return nc;if(typeof t!="function")throw new TypeError("compare is not a function");return(e,n)=>{const r=t(e,n);return r||r===0?r:(t(n,n)===0)-(t(e,e)===0)}}function nc(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(t<e?-1:t>e?1:0)}var rc=Math.sqrt(50),ic=Math.sqrt(10),oc=Math.sqrt(2);function Jo(t,e,n){var r,i=-1,o,a,s;if(e=+e,t=+t,n=+n,t===e&&n>0)return[t];if((r=e<t)&&(o=t,t=e,e=o),(s=wd(t,e,n))===0||!isFinite(s))return[];if(s>0){let c=Math.round(t/s),u=Math.round(e/s);for(c*s<t&&++c,u*s>e&&--u,a=new Array(o=u-c+1);++i<o;)a[i]=(c+i)*s}else{s=-s;let c=Math.round(t*s),u=Math.round(e*s);for(c/s<t&&++c,u/s>e&&--u,a=new Array(o=u-c+1);++i<o;)a[i]=(c+i)/s}return r&&a.reverse(),a}function wd(t,e,n){var r=(e-t)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),o=r/Math.pow(10,i);return i>=0?(o>=rc?10:o>=ic?5:o>=oc?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=rc?10:o>=ic?5:o>=oc?2:1)}function Dn(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=rc?i*=10:o>=ic?i*=5:o>=oc&&(i*=2),e<t?-i:i}function ac(t,e,n=vd){if(!!(r=t.length)){if((e=+e)<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,i=(r-1)*e,o=Math.floor(i),a=+n(t[o],o,t),s=+n(t[o+1],o+1,t);return a+(s-a)*(i-o)}}function Yt(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((e-t)/n))|0,o=new Array(i);++r<i;)o[r]=t+r*n;return o}function $o(t,e){let n=0;if(e===void 0)for(let r of t)(r=+r)&&(n+=r);else{let r=-1;for(let i of t)(i=+e(i,++r,t))&&(n+=i)}return n}function _b(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function ea(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function pr(t){return t=ea(Math.abs(t)),t?t[1]:NaN}function Wb(t,e){return function(n,r){for(var i=n.length,o=[],a=0,s=t[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),o.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}}function Xb(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var Zb=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function _t(t){if(!(e=Zb.exec(t)))throw new Error("invalid format: "+t);var e;return new sc({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}_t.prototype=sc.prototype;function sc(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}sc.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 qb(t){e:for(var e=t.length,n=1,r=-1,i;n<e;++n)switch(t[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+t[n])break e;r>0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(i+1):t}var Cd;function Kb(t,e){var n=ea(t,e);if(!n)return t+"";var r=n[0],i=n[1],o=i-(Cd=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+ea(t,Math.max(0,e+o-1))[0]}function Sd(t,e){var n=ea(t,e);if(!n)return t+"";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 Ed={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:_b,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Sd(t*100,e),r:Sd,s:Kb,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Dd(t){return t}var Md=Array.prototype.map,Td=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function Jb(t){var e=t.grouping===void 0||t.thousands===void 0?Dd:Wb(Md.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",o=t.numerals===void 0?Dd:Xb(Md.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"\u2212":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function u(l){l=_t(l);var d=l.fill,h=l.align,p=l.sign,m=l.symbol,y=l.zero,g=l.width,x=l.comma,A=l.precision,C=l.trim,v=l.type;v==="n"?(x=!0,v="g"):Ed[v]||(A===void 0&&(A=12),C=!0,v="g"),(y||d==="0"&&h==="=")&&(y=!0,d="0",h="=");var b=m==="$"?n:m==="#"&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",w=m==="$"?r:/[%p]/.test(v)?a:"",E=Ed[v],I=/[defgprs%]/.test(v);A=A===void 0?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,A)):Math.max(0,Math.min(20,A));function L(T){var O=b,H=w,U,Ae,Ie;if(v==="c")H=E(T)+H,T="";else{T=+T;var An=T<0||1/T<0;if(T=isNaN(T)?c:E(Math.abs(T),A),C&&(T=qb(T)),An&&+T==0&&p!=="+"&&(An=!1),O=(An?p==="("?p:s:p==="-"||p==="("?"":p)+O,H=(v==="s"?Td[8+Cd/3]:"")+H+(An&&p==="("?")":""),I){for(U=-1,Ae=T.length;++U<Ae;)if(Ie=T.charCodeAt(U),48>Ie||Ie>57){H=(Ie===46?i+T.slice(U+1):T.slice(U))+H,T=T.slice(0,U);break}}}x&&!y&&(T=e(T,1/0));var Y=O.length+T.length+H.length,Ve=Y<g?new Array(g-Y+1).join(d):"";switch(x&&y&&(T=e(Ve+T,Ve.length?g-H.length:1/0),Ve=""),h){case"<":T=O+T+H+Ve;break;case"=":T=O+Ve+T+H;break;case"^":T=Ve.slice(0,Y=Ve.length>>1)+O+T+H+Ve.slice(Y);break;default:T=Ve+O+T+H;break}return o(T)}return L.toString=function(){return l+""},L}function f(l,d){var h=u((l=_t(l),l.type="f",l)),p=Math.max(-8,Math.min(8,Math.floor(pr(d)/3)))*3,m=Math.pow(10,-p),y=Td[8+p/3];return function(g){return h(m*g)+y}}return{format:u,formatPrefix:f}}var ta,le,cc;$b({thousands:",",grouping:[3],currency:["$",""]});function $b(t){return ta=Jb(t),le=ta.format,cc=ta.formatPrefix,ta}function Id(t){return Math.max(0,-pr(Math.abs(t)))}function kd(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(pr(e)/3)))*3-pr(Math.abs(t)))}function Nd(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,pr(e)-pr(t))+1}var uc=new Date,lc=new Date;function de(t,e,n,r){function i(o){return t(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=function(o){return t(o=new Date(+o)),o},i.ceil=function(o){return t(o=new Date(o-1)),e(o,1),t(o),o},i.round=function(o){var a=i(o),s=i.ceil(o);return o-a<s-o?a:s},i.offset=function(o,a){return e(o=new Date(+o),a==null?1:Math.floor(a)),o},i.range=function(o,a,s){var c=[],u;if(o=i.ceil(o),s=s==null?1:Math.floor(s),!(o<a)||!(s>0))return c;do c.push(u=new Date(+o)),e(o,s),t(o);while(u<o&&o<a);return c},i.filter=function(o){return de(function(a){if(a>=a)for(;t(a),!o(a);)a.setTime(a-1)},function(a,s){if(a>=a)if(s<0)for(;++s<=0;)for(;e(a,-1),!o(a););else for(;--s>=0;)for(;e(a,1),!o(a););})},n&&(i.count=function(o,a){return uc.setTime(+o),lc.setTime(+a),t(uc),t(lc),Math.floor(n(uc,lc))},i.every=function(o){return o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?function(a){return r(a)%o===0}:function(a){return i.count(0,a)%o===0}):i}),i}var na=de(function(){},function(t,e){t.setTime(+t+e)},function(t,e){return e-t});na.every=function(t){return t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?de(function(e){e.setTime(Math.floor(e/t)*t)},function(e,n){e.setTime(+e+n*t)},function(e,n){return(n-e)/t}):na};const fc=na;na.range;const St=1e3,Xe=St*60,Et=Xe*60,Mn=Et*24,dc=Mn*7,Ld=Mn*30,hc=Mn*365;var Bd=de(function(t){t.setTime(t-t.getMilliseconds())},function(t,e){t.setTime(+t+e*St)},function(t,e){return(e-t)/St},function(t){return t.getUTCSeconds()});const Wt=Bd;Bd.range;var Od=de(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*St)},function(t,e){t.setTime(+t+e*Xe)},function(t,e){return(e-t)/Xe},function(t){return t.getMinutes()});const pc=Od;Od.range;var Pd=de(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*St-t.getMinutes()*Xe)},function(t,e){t.setTime(+t+e*Et)},function(t,e){return(e-t)/Et},function(t){return t.getHours()});const mc=Pd;Pd.range;var Fd=de(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Xe)/Mn,t=>t.getDate()-1);const Tn=Fd;Fd.range;function In(t){return de(function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},function(e,n){e.setDate(e.getDate()+n*7)},function(e,n){return(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*Xe)/dc})}var ui=In(0),ra=In(1),ev=In(2),tv=In(3),mr=In(4),nv=In(5),rv=In(6);ui.range,ra.range,ev.range,tv.range,mr.range,nv.range,rv.range;var zd=de(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,e){t.setMonth(t.getMonth()+e)},function(t,e){return e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12},function(t){return t.getMonth()});const ia=zd;zd.range;var gc=de(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t,e){return e.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});gc.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:de(function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,n){e.setFullYear(e.getFullYear()+n*t)})};const Xt=gc;gc.range;var Rd=de(function(t){t.setUTCSeconds(0,0)},function(t,e){t.setTime(+t+e*Xe)},function(t,e){return(e-t)/Xe},function(t){return t.getUTCMinutes()});const yc=Rd;Rd.range;var jd=de(function(t){t.setUTCMinutes(0,0,0)},function(t,e){t.setTime(+t+e*Et)},function(t,e){return(e-t)/Et},function(t){return t.getUTCHours()});const bc=jd;jd.range;var Ud=de(function(t){t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+e)},function(t,e){return(e-t)/Mn},function(t){return t.getUTCDate()-1});const kn=Ud;Ud.range;function Nn(t){return de(function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCDate(e.getUTCDate()+n*7)},function(e,n){return(n-e)/dc})}var li=Nn(0),oa=Nn(1),iv=Nn(2),ov=Nn(3),gr=Nn(4),av=Nn(5),sv=Nn(6);li.range,oa.range,iv.range,ov.range,gr.range,av.range,sv.range;var Gd=de(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCMonth(t.getUTCMonth()+e)},function(t,e){return e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12},function(t){return t.getUTCMonth()});const aa=Gd;Gd.range;var vc=de(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)},function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});vc.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:de(function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})};const Zt=vc;vc.range;function Hd(t,e,n,r,i,o){const a=[[Wt,1,St],[Wt,5,5*St],[Wt,15,15*St],[Wt,30,30*St],[o,1,Xe],[o,5,5*Xe],[o,15,15*Xe],[o,30,30*Xe],[i,1,Et],[i,3,3*Et],[i,6,6*Et],[i,12,12*Et],[r,1,Mn],[r,2,2*Mn],[n,1,dc],[e,1,Ld],[e,3,3*Ld],[t,1,hc]];function s(u,f,l){const d=f<u;d&&([u,f]=[f,u]);const h=l&&typeof l.range=="function"?l:c(u,f,l),p=h?h.range(u,+f+1):[];return d?p.reverse():p}function c(u,f,l){const d=Math.abs(f-u)/l,h=qo(([,,y])=>y).right(a,d);if(h===a.length)return t.every(Dn(u/hc,f/hc,l));if(h===0)return fc.every(Math.max(Dn(u,f,l),1));const[p,m]=a[d/a[h-1][2]<a[h][2]/d?h-1:h];return p.every(m)}return[s,c]}const[cv,uv]=Hd(Zt,aa,li,kn,bc,yc),[lv,fv]=Hd(Xt,ia,ui,Tn,mc,pc),fi="year",di="quarter",hi="month",pi="week",mi="date",sa="day",Ac="dayofyear",gi="hours",yi="minutes",bi="seconds",ca="milliseconds";[fi,di,hi,pi,mi,sa,Ac,gi,yi,bi,ca].reduce((t,e,n)=>(t[e]=1+n,t),{});const dv={[fi]:Xt,[di]:ia.every(3),[hi]:ia,[pi]:ui,[mi]:Tn,[sa]:Tn,[Ac]:Tn,[gi]:mc,[yi]:pc,[bi]:Wt,[ca]:fc},hv={[fi]:Zt,[di]:aa.every(3),[hi]:aa,[pi]:li,[mi]:kn,[sa]:kn,[Ac]:kn,[gi]:bc,[yi]:yc,[bi]:Wt,[ca]:fc};function pv(t){return dv[t]}function mv(t){return hv[t]}function xc(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function wc(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function vi(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function Qd(t){var e=t.dateTime,n=t.date,r=t.time,i=t.periods,o=t.days,a=t.shortDays,s=t.months,c=t.shortMonths,u=Ai(i),f=xi(i),l=Ai(o),d=xi(o),h=Ai(a),p=xi(a),m=Ai(s),y=xi(s),g=Ai(c),x=xi(c),A={a:An,A:Y,b:Ve,B:Ro,c:null,d:Zd,e:Zd,f:Rv,g:Xv,G:qv,H:Pv,I:Fv,j:zv,L:qd,m:jv,M:Uv,p:jo,q:Vs,Q:nh,s:rh,S:Gv,u:Hv,U:Qv,V:Vv,w:Yv,W:_v,x:null,X:null,y:Wv,Y:Zv,Z:Kv,"%":th},C={a:td,A:Pk,b:Fk,B:zk,c:null,d:Jd,e:Jd,f:tA,g:fA,G:hA,H:Jv,I:$v,j:eA,L:$d,m:nA,M:rA,p:Rk,q:jk,Q:nh,s:rh,S:iA,u:oA,U:aA,V:sA,w:cA,W:uA,x:null,X:null,y:lA,Y:dA,Z:pA,"%":th},v={a:L,A:T,b:O,B:H,c:U,d:Wd,e:Wd,f:Nv,g:_d,G:Yd,H:Xd,I:Xd,j:Mv,L:kv,m:Dv,M:Tv,p:I,q:Ev,Q:Bv,s:Ov,S:Iv,u:Av,U:xv,V:wv,w:vv,W:Cv,x:Ae,X:Ie,y:_d,Y:Yd,Z:Sv,"%":Lv};A.x=b(n,A),A.X=b(r,A),A.c=b(e,A),C.x=b(n,C),C.X=b(r,C),C.c=b(e,C);function b(B,G){return function(_){var M=[],Fe=-1,K=0,Ye=B.length,_e,dr,_2;for(_ instanceof Date||(_=new Date(+_));++Fe<Ye;)B.charCodeAt(Fe)===37&&(M.push(B.slice(K,Fe)),(dr=Vd[_e=B.charAt(++Fe)])!=null?_e=B.charAt(++Fe):dr=_e==="e"?" ":"0",(_2=G[_e])&&(_e=_2(_,dr)),M.push(_e),K=Fe+1);return M.push(B.slice(K,Fe)),M.join("")}}function w(B,G){return function(_){var M=vi(1900,void 0,1),Fe=E(M,B,_+="",0),K,Ye;if(Fe!=_.length)return null;if("Q"in M)return new Date(M.Q);if("s"in M)return new Date(M.s*1e3+("L"in M?M.L:0));if(G&&!("Z"in M)&&(M.Z=0),"p"in M&&(M.H=M.H%12+M.p*12),M.m===void 0&&(M.m="q"in M?M.q:0),"V"in M){if(M.V<1||M.V>53)return null;"w"in M||(M.w=1),"Z"in M?(K=wc(vi(M.y,0,1)),Ye=K.getUTCDay(),K=Ye>4||Ye===0?oa.ceil(K):oa(K),K=kn.offset(K,(M.V-1)*7),M.y=K.getUTCFullYear(),M.m=K.getUTCMonth(),M.d=K.getUTCDate()+(M.w+6)%7):(K=xc(vi(M.y,0,1)),Ye=K.getDay(),K=Ye>4||Ye===0?ra.ceil(K):ra(K),K=Tn.offset(K,(M.V-1)*7),M.y=K.getFullYear(),M.m=K.getMonth(),M.d=K.getDate()+(M.w+6)%7)}else("W"in M||"U"in M)&&("w"in M||(M.w="u"in M?M.u%7:"W"in M?1:0),Ye="Z"in M?wc(vi(M.y,0,1)).getUTCDay():xc(vi(M.y,0,1)).getDay(),M.m=0,M.d="W"in M?(M.w+6)%7+M.W*7-(Ye+5)%7:M.w+M.U*7-(Ye+6)%7);return"Z"in M?(M.H+=M.Z/100|0,M.M+=M.Z%100,wc(M)):xc(M)}}function E(B,G,_,M){for(var Fe=0,K=G.length,Ye=_.length,_e,dr;Fe<K;){if(M>=Ye)return-1;if(_e=G.charCodeAt(Fe++),_e===37){if(_e=G.charAt(Fe++),dr=v[_e in Vd?G.charAt(Fe++):_e],!dr||(M=dr(B,_,M))<0)return-1}else if(_e!=_.charCodeAt(M++))return-1}return M}function I(B,G,_){var M=u.exec(G.slice(_));return M?(B.p=f.get(M[0].toLowerCase()),_+M[0].length):-1}function L(B,G,_){var M=h.exec(G.slice(_));return M?(B.w=p.get(M[0].toLowerCase()),_+M[0].length):-1}function T(B,G,_){var M=l.exec(G.slice(_));return M?(B.w=d.get(M[0].toLowerCase()),_+M[0].length):-1}function O(B,G,_){var M=g.exec(G.slice(_));return M?(B.m=x.get(M[0].toLowerCase()),_+M[0].length):-1}function H(B,G,_){var M=m.exec(G.slice(_));return M?(B.m=y.get(M[0].toLowerCase()),_+M[0].length):-1}function U(B,G,_){return E(B,e,G,_)}function Ae(B,G,_){return E(B,n,G,_)}function Ie(B,G,_){return E(B,r,G,_)}function An(B){return a[B.getDay()]}function Y(B){return o[B.getDay()]}function Ve(B){return c[B.getMonth()]}function Ro(B){return s[B.getMonth()]}function jo(B){return i[+(B.getHours()>=12)]}function Vs(B){return 1+~~(B.getMonth()/3)}function td(B){return a[B.getUTCDay()]}function Pk(B){return o[B.getUTCDay()]}function Fk(B){return c[B.getUTCMonth()]}function zk(B){return s[B.getUTCMonth()]}function Rk(B){return i[+(B.getUTCHours()>=12)]}function jk(B){return 1+~~(B.getUTCMonth()/3)}return{format:function(B){var G=b(B+="",A);return G.toString=function(){return B},G},parse:function(B){var G=w(B+="",!1);return G.toString=function(){return B},G},utcFormat:function(B){var G=b(B+="",C);return G.toString=function(){return B},G},utcParse:function(B){var G=w(B+="",!0);return G.toString=function(){return B},G}}}var Vd={"-":"",_:" ",0:"0"},he=/^\s*\d+/,gv=/^%/,yv=/[\\^$*+?|[\]().{}]/g;function Q(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<n?new Array(n-o+1).join(e)+i:i)}function bv(t){return t.replace(yv,"\\$&")}function Ai(t){return new RegExp("^(?:"+t.map(bv).join("|")+")","i")}function xi(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function vv(t,e,n){var r=he.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function Av(t,e,n){var r=he.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function xv(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function wv(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function Cv(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Yd(t,e,n){var r=he.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function _d(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Sv(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Ev(t,e,n){var r=he.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function Dv(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Wd(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Mv(t,e,n){var r=he.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Xd(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function Tv(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function Iv(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function kv(t,e,n){var r=he.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function Nv(t,e,n){var r=he.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Lv(t,e,n){var r=gv.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function Bv(t,e,n){var r=he.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function Ov(t,e,n){var r=he.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Zd(t,e){return Q(t.getDate(),e,2)}function Pv(t,e){return Q(t.getHours(),e,2)}function Fv(t,e){return Q(t.getHours()%12||12,e,2)}function zv(t,e){return Q(1+Tn.count(Xt(t),t),e,3)}function qd(t,e){return Q(t.getMilliseconds(),e,3)}function Rv(t,e){return qd(t,e)+"000"}function jv(t,e){return Q(t.getMonth()+1,e,2)}function Uv(t,e){return Q(t.getMinutes(),e,2)}function Gv(t,e){return Q(t.getSeconds(),e,2)}function Hv(t){var e=t.getDay();return e===0?7:e}function Qv(t,e){return Q(ui.count(Xt(t)-1,t),e,2)}function Kd(t){var e=t.getDay();return e>=4||e===0?mr(t):mr.ceil(t)}function Vv(t,e){return t=Kd(t),Q(mr.count(Xt(t),t)+(Xt(t).getDay()===4),e,2)}function Yv(t){return t.getDay()}function _v(t,e){return Q(ra.count(Xt(t)-1,t),e,2)}function Wv(t,e){return Q(t.getFullYear()%100,e,2)}function Xv(t,e){return t=Kd(t),Q(t.getFullYear()%100,e,2)}function Zv(t,e){return Q(t.getFullYear()%1e4,e,4)}function qv(t,e){var n=t.getDay();return t=n>=4||n===0?mr(t):mr.ceil(t),Q(t.getFullYear()%1e4,e,4)}function Kv(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Q(e/60|0,"0",2)+Q(e%60,"0",2)}function Jd(t,e){return Q(t.getUTCDate(),e,2)}function Jv(t,e){return Q(t.getUTCHours(),e,2)}function $v(t,e){return Q(t.getUTCHours()%12||12,e,2)}function eA(t,e){return Q(1+kn.count(Zt(t),t),e,3)}function $d(t,e){return Q(t.getUTCMilliseconds(),e,3)}function tA(t,e){return $d(t,e)+"000"}function nA(t,e){return Q(t.getUTCMonth()+1,e,2)}function rA(t,e){return Q(t.getUTCMinutes(),e,2)}function iA(t,e){return Q(t.getUTCSeconds(),e,2)}function oA(t){var e=t.getUTCDay();return e===0?7:e}function aA(t,e){return Q(li.count(Zt(t)-1,t),e,2)}function eh(t){var e=t.getUTCDay();return e>=4||e===0?gr(t):gr.ceil(t)}function sA(t,e){return t=eh(t),Q(gr.count(Zt(t),t)+(Zt(t).getUTCDay()===4),e,2)}function cA(t){return t.getUTCDay()}function uA(t,e){return Q(oa.count(Zt(t)-1,t),e,2)}function lA(t,e){return Q(t.getUTCFullYear()%100,e,2)}function fA(t,e){return t=eh(t),Q(t.getUTCFullYear()%100,e,2)}function dA(t,e){return Q(t.getUTCFullYear()%1e4,e,4)}function hA(t,e){var n=t.getUTCDay();return t=n>=4||n===0?gr(t):gr.ceil(t),Q(t.getUTCFullYear()%1e4,e,4)}function pA(){return"+0000"}function th(){return"%"}function nh(t){return+t}function rh(t){return Math.floor(+t/1e3)}var yr,Cc,ih,Sc,oh;mA({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 mA(t){return yr=Qd(t),Cc=yr.format,ih=yr.parse,Sc=yr.utcFormat,oh=yr.utcParse,yr}function wi(t){const e={};return n=>e[n]||(e[n]=t(n))}function gA(t,e){return n=>{const r=t(n),i=r.indexOf(e);if(i<0)return r;let o=yA(r,i);const a=o<r.length?r.slice(o):"";for(;--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+a}}function yA(t,e){let n=t.lastIndexOf("e"),r;if(n>0)return n;for(n=t.length;--n>e;)if(r=t.charCodeAt(n),r>=48&&r<=57)return n+1}function bA(t){const e=wi(t.format),n=t.formatPrefix;return{format:e,formatPrefix:n,formatFloat(r){const i=_t(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return gA(e(i),e(".1f")(1)[1])}else return e(i)},formatSpan(r,i,o,a){a=_t(a==null?",f":a);const s=Dn(r,i,o),c=Math.max(Math.abs(r),Math.abs(i));let u;if(a.precision==null)switch(a.type){case"s":return isNaN(u=kd(s,c))||(a.precision=u),n(a,c);case"":case"e":case"g":case"p":case"r":{isNaN(u=Nd(s,c))||(a.precision=u-(a.type==="e"));break}case"f":case"%":{isNaN(u=Id(s))||(a.precision=u-(a.type==="%")*2);break}}return e(a)}}}vA();function vA(){return bA({format:le,formatPrefix:cc})}function ah(t,e,n){n=n||{},ze(n)||oe("Invalid time multi-format specifier: ".concat(n));const r=e(bi),i=e(yi),o=e(gi),a=e(mi),s=e(pi),c=e(hi),u=e(di),f=e(fi),l=t(n[ca]||".%L"),d=t(n[bi]||":%S"),h=t(n[yi]||"%I:%M"),p=t(n[gi]||"%I %p"),m=t(n[mi]||n[sa]||"%a %d"),y=t(n[pi]||"%b %d"),g=t(n[hi]||"%B"),x=t(n[di]||"%B"),A=t(n[fi]||"%Y");return C=>(r(C)<C?l:i(C)<C?d:o(C)<C?h:a(C)<C?p:c(C)<C?s(C)<C?m:y:f(C)<C?u(C)<C?g:x:A)(C)}function sh(t){const e=wi(t.format),n=wi(t.utcFormat);return{timeFormat:r=>ee(r)?e(r):ah(e,pv,r),utcFormat:r=>ee(r)?n(r):ah(n,mv,r),timeParse:wi(t.parse),utcParse:wi(t.utcParse)}}let Ec;AA();function AA(){return Ec=sh({format:Cc,parse:ih,utcFormat:Sc,utcParse:oh})}function xA(t){return sh(Qd(t))}function wA(t){return arguments.length?Ec=xA(t):Ec}const CA=/^(data:|([A-Za-z]+:)?\/\/)/,SA=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,EA=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,ch="file://";function DA(t,e){return n=>({options:n||{},sanitize:TA,load:MA,fileAccess:!!e,file:IA(e),http:NA(t)})}async function MA(t,e){const n=await this.sanitize(t,e),r=n.href;return n.localFile?this.file(r):this.http(r,e)}async function TA(t,e){e=qs({},this.options,e);const n=this.fileAccess,r={href:null};let i,o,a;const s=SA.test(t.replace(EA,""));(t==null||typeof t!="string"||!s)&&oe("Sanitize failure, invalid URI: "+Xo(t));const c=CA.test(t);return(a=e.baseURL)&&!c&&(!t.startsWith("/")&&!a.endsWith("/")&&(t="/"+t),t=a+t),o=(i=t.startsWith(ch))||e.mode==="file"||e.mode!=="http"&&!c&&n,i?t=t.slice(ch.length):t.startsWith("//")&&(e.defaultProtocol==="file"?(t=t.slice(2),o=!0):t=(e.defaultProtocol||"http")+":"+t),Object.defineProperty(r,"localFile",{value:!!o}),r.href=t,e.target&&(r.target=e.target+""),e.rel&&(r.rel=e.rel+""),e.context==="image"&&e.crossOrigin&&(r.crossOrigin=e.crossOrigin+""),r}function IA(t){return t?e=>new Promise((n,r)=>{t.readFile(e,(i,o)=>{i?r(i):n(o)})}):kA}async function kA(){oe("No file system access.")}function NA(t){return t?async function(e,n){const r=qs({},this.options.http,n),i=n&&n.response,o=await t(e,r);return o.ok?ke(o[i])?o[i]():o.text():oe(o.status+""+o.statusText)}:LA}async function LA(){oe("No HTTP fetch method available.")}const BA=t=>t!=null&&t===t,OA=t=>t==="true"||t==="false"||t===!0||t===!1,PA=t=>!Number.isNaN(Date.parse(t)),uh=t=>!Number.isNaN(+t)&&!(t instanceof Date),FA=t=>uh(t)&&Number.isInteger(+t),lh={boolean:bb,integer:ai,number:ai,date:Ab,string:xb,unknown:Qo},ua=[OA,FA,uh,PA],zA=["boolean","integer","number","date"];function fh(t,e){if(!t||!t.length)return"unknown";const n=t.length,r=ua.length,i=ua.map((o,a)=>a+1);for(let o=0,a=0,s,c;o<n;++o)for(c=e?t[o][e]:t[o],s=0;s<r;++s)if(i[s]&&BA(c)&&!ua[s](c)&&(i[s]=0,++a,a===ua.length))return"string";return zA[i.reduce((o,a)=>o===0?a:o,0)-1]}function RA(t,e){return e.reduce((n,r)=>(n[r]=fh(t,r),n),{})}function dh(t){const e=function(n,r){const i={delimiter:t};return Dc(n,r?qs(r,i):i)};return e.responseType="text",e}function Dc(t,e){return e.header&&(t=e.header.map(Xo).join(e.delimiter)+`
6
- `+t),gd(e.delimiter).parse(t+"")}Dc.responseType="text";function jA(t){return typeof Buffer=="function"&&ke(Buffer.isBuffer)?Buffer.isBuffer(t):!1}function Mc(t,e){const n=e&&e.property?Ho(e.property):Qo;return ze(t)&&!jA(t)?UA(n(t),e):n(JSON.parse(t))}Mc.responseType="json";function UA(t,e){return!We(t)&&gb(t)&&(t=[...t]),e&&e.copy?JSON.parse(JSON.stringify(t)):t}const GA={interior:(t,e)=>t!==e,exterior:(t,e)=>t===e};function hh(t,e){let n,r,i,o;return t=Mc(t,e),e&&e.feature?(n=kb,i=e.feature):e&&e.mesh?(n=Lb,i=e.mesh,o=GA[e.filter]):oe("Missing TopoJSON feature or mesh parameter."),r=(r=t.objects[i])?n(t,r,o):oe("Invalid TopoJSON object: "+i),r&&r.features||[r]}hh.responseType="json";const Tc={dsv:Dc,csv:dh(","),tsv:dh(" "),json:Mc,topojson:hh};function ph(t,e){return arguments.length>1?(Tc[t]=e,this):Cn(Tc,t)?Tc[t]:null}function mh(t,e,n,r){e=e||{};const i=ph(e.type||"json");return i||oe("Unknown data format type: "+e.type),t=i(t,e),e.parse&&HA(t,e.parse,n,r),Cn(t,"columns")&&delete t.columns,t}function HA(t,e,n,r){if(!t.length)return;const i=wA();n=n||i.timeParse,r=r||i.utcParse;let o=t.columns||Object.keys(t[0]),a,s,c,u,f,l;e==="auto"&&(e=RA(t,o)),o=Object.keys(e);const d=o.map(h=>{const p=e[h];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(!lh[p])throw Error("Illegal format pattern: "+h+":"+p);return lh[p]});for(c=0,f=t.length,l=o.length;c<f;++c)for(a=t[c],u=0;u<l;++u)s=o[u],a[s]=d[u](a[s])}const Ci=DA(typeof fetch<"u"&&fetch,null),gh=1;function Ic(){let t=[0,1],e=[0,1],n=1,r=1,i=0,o=0,a=.5,s=0;const u=f=>(f+a-t[0])/n*r+e[0];return u.invert=f=>(f-e[0])/r*n+t[0]-a,u.domain=function(f){if(arguments.length){if(t=zb(f),n=t[1]-t[0],n<gh){n=gh;const l=(t[0]+t[1])/2;t[0]=l-n/2,t[1]=l+n/2}return u}else return t},u.range=function(f){return arguments.length?(e=[...f],r=e[1]-e[0],u):e},u.numberingOffset=function(f){return arguments.length?(s=f,u):s},u.padding=function(f){return arguments.length?(o=f,i=Math.min(1,f),u):i},u.paddingInner=function(f){return arguments.length?(i=Math.min(1,f),u):i},u.paddingOuter=function(f){return arguments.length?(o=f,u):o},u.align=function(f){return arguments.length?(a=Math.max(0,Math.min(1,f)),u):a},u.step=()=>r/n,u.bandwidth=()=>u.step(),u.ticks=f=>{const l=u.align(),d=u.numberingOffset();return Jo(t[0]-l+d,t[1]-l+d,Math.min(f,Math.ceil(n))).filter(Number.isInteger).map(h=>h-s)},u.tickFormat=(f,l)=>{if(l)throw new Error("Index scale's tickFormat does not support a specifier!");const h=Dn(t[0],t[1],Math.min(f,Math.ceil(n)))<1e5?le(","):le(".3s");return p=>h(p+s)},u.copy=()=>Ic().domain(t).range(e).paddingInner(i).paddingOuter(o).numberingOffset(s),u}function QA(){const t=Ic().numberingOffset(1);let e;t.genome=function(r){return arguments.length?(e=r,t):e},t.ticks=r=>{if(!e)return[];const i=t.domain(),o=t.numberingOffset(),[a,s]=[Math.max(i[0],0),Math.min(i[1],e.totalSize-1)].map(f=>e.toChromosome(f)),c=Math.max(1,Dn(i[0],i[1],r)),u=[];for(let f=a.index;f<=s.index;f++){const l=e.chromosomes[f],d=Math.max(l.continuousStart+c,i[0]-(i[0]-l.continuousStart)%c),h=Math.min(l.continuousEnd-c/4,i[1]+1);for(let p=d;p<=h;p+=c){const m=p-o;m>=i[0]&&m<i[1]&&u.push(m)}}return u},t.tickFormat=(r,i)=>{if(!e)return;if(i)throw new Error("Locus scale's tickFormat does not support a specifier!");const o=t.domain(),a=o[1]-o[0],s=t.numberingOffset(),u=Dn(o[0],o[1],Math.min(r,Math.ceil(a)))<1e6?le(","):le(".3s"),f=l=>l-e.toChromosome(l).continuousStart;return l=>u(f(l)+s)};const n=t.copy;return t.copy=()=>n().genome(e),t}function VA(t){return t.type=="locus"}function lt(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function qt(t,e){switch(arguments.length){case 0:break;case 1:{typeof t=="function"?this.interpolator(t):this.range(t);break}default:{this.domain(t),typeof e=="function"?this.interpolator(e):this.range(e);break}}return this}const kc=Symbol("implicit");function Nc(){var t=new En,e=[],n=[],r=kc;function i(o){let a=t.get(o);if(a===void 0){if(r!==kc)return r;t.set(o,a=e.push(o)-1)}return n[a%n.length]}return i.domain=function(o){if(!arguments.length)return e.slice();e=[],t=new En;for(const a of o)t.has(a)||t.set(a,e.push(a)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return Nc(e,n).unknown(r)},lt.apply(i,arguments),i}function br(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Si(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function Kt(){}var Ln=.7,vr=1/Ln,Ar="\\s*([+-]?\\d+)\\s*",Ei="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ft="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",YA=/^#([0-9a-f]{3,8})$/,_A=new RegExp(`^rgb\\(${Ar},${Ar},${Ar}\\)$`),WA=new RegExp(`^rgb\\(${ft},${ft},${ft}\\)$`),XA=new RegExp(`^rgba\\(${Ar},${Ar},${Ar},${Ei}\\)$`),ZA=new RegExp(`^rgba\\(${ft},${ft},${ft},${Ei}\\)$`),qA=new RegExp(`^hsl\\(${Ei},${ft},${ft}\\)$`),KA=new RegExp(`^hsla\\(${Ei},${ft},${ft},${Ei}\\)$`),yh={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};br(Kt,Bn,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:bh,formatHex:bh,formatHex8:JA,formatHsl:$A,formatRgb:vh,toString:vh});function bh(){return this.rgb().formatHex()}function JA(){return this.rgb().formatHex8()}function $A(){return Sh(this).formatHsl()}function vh(){return this.rgb().formatRgb()}function Bn(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=YA.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?Ah(e):n===3?new pe(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?la(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?la(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=_A.exec(t))?new pe(e[1],e[2],e[3],1):(e=WA.exec(t))?new pe(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=XA.exec(t))?la(e[1],e[2],e[3],e[4]):(e=ZA.exec(t))?la(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=qA.exec(t))?Ch(e[1],e[2]/100,e[3]/100,1):(e=KA.exec(t))?Ch(e[1],e[2]/100,e[3]/100,e[4]):yh.hasOwnProperty(t)?Ah(yh[t]):t==="transparent"?new pe(NaN,NaN,NaN,0):null}function Ah(t){return new pe(t>>16&255,t>>8&255,t&255,1)}function la(t,e,n,r){return r<=0&&(t=e=n=NaN),new pe(t,e,n,r)}function Lc(t){return t instanceof Kt||(t=Bn(t)),t?(t=t.rgb(),new pe(t.r,t.g,t.b,t.opacity)):new pe}function fa(t,e,n,r){return arguments.length===1?Lc(t):new pe(t,e,n,r==null?1:r)}function pe(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}br(pe,fa,Si(Kt,{brighter(t){return t=t==null?vr:Math.pow(vr,t),new pe(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Ln:Math.pow(Ln,t),new pe(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new pe(On(this.r),On(this.g),On(this.b),da(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:xh,formatHex:xh,formatHex8:ex,formatRgb:wh,toString:wh}));function xh(){return`#${Pn(this.r)}${Pn(this.g)}${Pn(this.b)}`}function ex(){return`#${Pn(this.r)}${Pn(this.g)}${Pn(this.b)}${Pn((isNaN(this.opacity)?1:this.opacity)*255)}`}function wh(){const t=da(this.opacity);return`${t===1?"rgb(":"rgba("}${On(this.r)}, ${On(this.g)}, ${On(this.b)}${t===1?")":`, ${t})`}`}function da(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function On(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Pn(t){return t=On(t),(t<16?"0":"")+t.toString(16)}function Ch(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new nt(t,e,n,r)}function Sh(t){if(t instanceof nt)return new nt(t.h,t.s,t.l,t.opacity);if(t instanceof Kt||(t=Bn(t)),!t)return new nt;if(t instanceof nt)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),o=Math.max(e,n,r),a=NaN,s=o-i,c=(o+i)/2;return s?(e===o?a=(n-r)/s+(n<r)*6:n===o?a=(r-e)/s+2:a=(e-n)/s+4,s/=c<.5?o+i:2-o-i,a*=60):s=c>0&&c<1?0:a,new nt(a,s,c,t.opacity)}function Bc(t,e,n,r){return arguments.length===1?Sh(t):new nt(t,e,n,r==null?1:r)}function nt(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}br(nt,Bc,Si(Kt,{brighter(t){return t=t==null?vr:Math.pow(vr,t),new nt(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Ln:Math.pow(Ln,t),new nt(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new pe(Oc(t>=240?t-240:t+120,i,r),Oc(t,i,r),Oc(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new nt(Eh(this.h),ha(this.s),ha(this.l),da(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 t=da(this.opacity);return`${t===1?"hsl(":"hsla("}${Eh(this.h)}, ${ha(this.s)*100}%, ${ha(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Eh(t){return t=(t||0)%360,t<0?t+360:t}function ha(t){return Math.max(0,Math.min(1,t||0))}function Oc(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const Dh=Math.PI/180,Mh=180/Math.PI,pa=18,Th=.96422,Ih=1,kh=.82521,Nh=4/29,xr=6/29,Lh=3*xr*xr,tx=xr*xr*xr;function Bh(t){if(t instanceof dt)return new dt(t.l,t.a,t.b,t.opacity);if(t instanceof Dt)return Oh(t);t instanceof pe||(t=Lc(t));var e=jc(t.r),n=jc(t.g),r=jc(t.b),i=Fc((.2225045*e+.7168786*n+.0606169*r)/Ih),o,a;return e===n&&n===r?o=a=i:(o=Fc((.4360747*e+.3850649*n+.1430804*r)/Th),a=Fc((.0139322*e+.0971045*n+.7141733*r)/kh)),new dt(116*i-16,500*(o-i),200*(i-a),t.opacity)}function Pc(t,e,n,r){return arguments.length===1?Bh(t):new dt(t,e,n,r==null?1:r)}function dt(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}br(dt,Pc,Si(Kt,{brighter(t){return new dt(this.l+pa*(t==null?1:t),this.a,this.b,this.opacity)},darker(t){return new dt(this.l-pa*(t==null?1:t),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=Th*zc(e),t=Ih*zc(t),n=kh*zc(n),new pe(Rc(3.1338561*e-1.6168667*t-.4906146*n),Rc(-.9787684*e+1.9161415*t+.033454*n),Rc(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function Fc(t){return t>tx?Math.pow(t,1/3):t/Lh+Nh}function zc(t){return t>xr?t*t*t:Lh*(t-Nh)}function Rc(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function jc(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function nx(t){if(t instanceof Dt)return new Dt(t.h,t.c,t.l,t.opacity);if(t instanceof dt||(t=Bh(t)),t.a===0&&t.b===0)return new Dt(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*Mh;return new Dt(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function Uc(t,e,n,r){return arguments.length===1?nx(t):new Dt(t,e,n,r==null?1:r)}function Dt(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}function Oh(t){if(isNaN(t.h))return new dt(t.l,0,0,t.opacity);var e=t.h*Dh;return new dt(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}br(Dt,Uc,Si(Kt,{brighter(t){return new Dt(this.h,this.c,this.l+pa*(t==null?1:t),this.opacity)},darker(t){return new Dt(this.h,this.c,this.l-pa*(t==null?1:t),this.opacity)},rgb(){return Oh(this).rgb()}}));var Ph=-.14861,Gc=1.78277,Hc=-.29227,ma=-.90649,Di=1.97294,Fh=Di*ma,zh=Di*Gc,Rh=Gc*Hc-ma*Ph;function rx(t){if(t instanceof Fn)return new Fn(t.h,t.s,t.l,t.opacity);t instanceof pe||(t=Lc(t));var e=t.r/255,n=t.g/255,r=t.b/255,i=(Rh*r+Fh*e-zh*n)/(Rh+Fh-zh),o=r-i,a=(Di*(n-i)-Hc*o)/ma,s=Math.sqrt(a*a+o*o)/(Di*i*(1-i)),c=s?Math.atan2(a,o)*Mh-120:NaN;return new Fn(c<0?c+360:c,s,i,t.opacity)}function Qc(t,e,n,r){return arguments.length===1?rx(t):new Fn(t,e,n,r==null?1:r)}function Fn(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}br(Fn,Qc,Si(Kt,{brighter(t){return t=t==null?vr:Math.pow(vr,t),new Fn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Ln:Math.pow(Ln,t),new Fn(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*Dh,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new pe(255*(e+n*(Ph*r+Gc*i)),255*(e+n*(Hc*r+ma*i)),255*(e+n*(Di*r)),this.opacity)}}));function jh(t,e,n,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*n+(1+3*t+3*o-3*a)*r+a*i)/6}function Uh(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,s=r<e-1?t[r+2]:2*o-i;return jh((n-r/e)*e,a,i,o,s)}}function Gh(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],o=t[r%e],a=t[(r+1)%e],s=t[(r+2)%e];return jh((n-r/e)*e,i,o,a,s)}}const ga=t=>()=>t;function Hh(t,e){return function(n){return t+n*e}}function ix(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function ya(t,e){var n=e-t;return n?Hh(t,n>180||n<-180?n-360*Math.round(n/360):n):ga(isNaN(t)?e:t)}function ox(t){return(t=+t)==1?me:function(e,n){return n-e?ix(e,n,t):ga(isNaN(e)?n:e)}}function me(t,e){var n=e-t;return n?Hh(t,n):ga(isNaN(t)?e:t)}const Vc=function t(e){var n=ox(e);function r(i,o){var a=n((i=fa(i)).r,(o=fa(o)).r),s=n(i.g,o.g),c=n(i.b,o.b),u=me(i.opacity,o.opacity);return function(f){return i.r=a(f),i.g=s(f),i.b=c(f),i.opacity=u(f),i+""}}return r.gamma=t,r}(1);function Qh(t){return function(e){var n=e.length,r=new Array(n),i=new Array(n),o=new Array(n),a,s;for(a=0;a<n;++a)s=fa(e[a]),r[a]=s.r||0,i[a]=s.g||0,o[a]=s.b||0;return r=t(r),i=t(i),o=t(o),s.opacity=1,function(c){return s.r=r(c),s.g=i(c),s.b=o(c),s+""}}}var ax=Qh(Uh),sx=Qh(Gh);function Yc(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),i;return function(o){for(i=0;i<n;++i)r[i]=t[i]*(1-o)+e[i]*o;return r}}function Vh(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function cx(t,e){return(Vh(e)?Yc:Yh)(t,e)}function Yh(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,i=new Array(r),o=new Array(n),a;for(a=0;a<r;++a)i[a]=Jt(t[a],e[a]);for(;a<n;++a)o[a]=e[a];return function(s){for(a=0;a<r;++a)o[a]=i[a](s);return o}}function _h(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function rt(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function Wh(t,e){var n={},r={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?n[i]=Jt(t[i],e[i]):r[i]=e[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var _c=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Wc=new RegExp(_c.source,"g");function ux(t){return function(){return t}}function lx(t){return function(e){return t(e)+""}}function Xh(t,e){var n=_c.lastIndex=Wc.lastIndex=0,r,i,o,a=-1,s=[],c=[];for(t=t+"",e=e+"";(r=_c.exec(t))&&(i=Wc.exec(e));)(o=i.index)>n&&(o=e.slice(n,o),s[a]?s[a]+=o:s[++a]=o),(r=r[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,c.push({i:a,x:rt(r,i)})),n=Wc.lastIndex;return n<e.length&&(o=e.slice(n),s[a]?s[a]+=o:s[++a]=o),s.length<2?c[0]?lx(c[0].x):ux(e):(e=c.length,function(u){for(var f=0,l;f<e;++f)s[(l=c[f]).i]=l.x(u);return s.join("")})}function Jt(t,e){var n=typeof e,r;return e==null||n==="boolean"?ga(e):(n==="number"?rt:n==="string"?(r=Bn(e))?(e=r,Vc):Xh:e instanceof Bn?Vc:e instanceof Date?_h:Vh(e)?Yc:Array.isArray(e)?Yh:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?Wh:rt)(t,e)}function fx(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}function dx(t,e){var n=ya(+t,+e);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function Mi(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var Zh=180/Math.PI,Xc={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function qh(t,e,n,r,i,o){var a,s,c;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(c=t*n+e*r)&&(n-=t*c,r-=e*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),t*r<e*n&&(t=-t,e=-e,c=-c,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(e,t)*Zh,skewX:Math.atan(c)*Zh,scaleX:a,scaleY:s}}var ba;function hx(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?Xc:qh(e.a,e.b,e.c,e.d,e.e,e.f)}function px(t){return t==null||(ba||(ba=document.createElementNS("http://www.w3.org/2000/svg","g")),ba.setAttribute("transform",t),!(t=ba.transform.baseVal.consolidate()))?Xc:(t=t.matrix,qh(t.a,t.b,t.c,t.d,t.e,t.f))}function Kh(t,e,n,r){function i(u){return u.length?u.pop()+" ":""}function o(u,f,l,d,h,p){if(u!==l||f!==d){var m=h.push("translate(",null,e,null,n);p.push({i:m-4,x:rt(u,l)},{i:m-2,x:rt(f,d)})}else(l||d)&&h.push("translate("+l+e+d+n)}function a(u,f,l,d){u!==f?(u-f>180?f+=360:f-u>180&&(u+=360),d.push({i:l.push(i(l)+"rotate(",null,r)-2,x:rt(u,f)})):f&&l.push(i(l)+"rotate("+f+r)}function s(u,f,l,d){u!==f?d.push({i:l.push(i(l)+"skewX(",null,r)-2,x:rt(u,f)}):f&&l.push(i(l)+"skewX("+f+r)}function c(u,f,l,d,h,p){if(u!==l||f!==d){var m=h.push(i(h)+"scale(",null,",",null,")");p.push({i:m-4,x:rt(u,l)},{i:m-2,x:rt(f,d)})}else(l!==1||d!==1)&&h.push(i(h)+"scale("+l+","+d+")")}return function(u,f){var l=[],d=[];return u=t(u),f=t(f),o(u.translateX,u.translateY,f.translateX,f.translateY,l,d),a(u.rotate,f.rotate,l,d),s(u.skewX,f.skewX,l,d),c(u.scaleX,u.scaleY,f.scaleX,f.scaleY,l,d),u=f=null,function(h){for(var p=-1,m=d.length,y;++p<m;)l[(y=d[p]).i]=y.x(h);return l.join("")}}}var mx=Kh(hx,"px, ","px)","deg)"),gx=Kh(px,", ",")",")"),yx=1e-12;function Jh(t){return((t=Math.exp(t))+1/t)/2}function bx(t){return((t=Math.exp(t))-1/t)/2}function vx(t){return((t=Math.exp(2*t))-1)/(t+1)}const $h=function t(e,n,r){function i(o,a){var s=o[0],c=o[1],u=o[2],f=a[0],l=a[1],d=a[2],h=f-s,p=l-c,m=h*h+p*p,y,g;if(m<yx)g=Math.log(d/u)/e,y=function(w){return[s+w*h,c+w*p,u*Math.exp(e*w*g)]};else{var x=Math.sqrt(m),A=(d*d-u*u+r*m)/(2*u*n*x),C=(d*d-u*u-r*m)/(2*d*n*x),v=Math.log(Math.sqrt(A*A+1)-A),b=Math.log(Math.sqrt(C*C+1)-C);g=(b-v)/e,y=function(w){var E=w*g,I=Jh(v),L=u/(n*x)*(I*vx(e*E+v)-bx(v));return[s+L*h,c+L*p,u*I/Jh(e*E+v)]}}return y.duration=g*1e3*e/Math.SQRT2,y}return i.rho=function(o){var a=Math.max(.001,+o),s=a*a,c=s*s;return t(a,s,c)},i}(Math.SQRT2,2,4);function e0(t){return function(e,n){var r=t((e=Bc(e)).h,(n=Bc(n)).h),i=me(e.s,n.s),o=me(e.l,n.l),a=me(e.opacity,n.opacity);return function(s){return e.h=r(s),e.s=i(s),e.l=o(s),e.opacity=a(s),e+""}}}const Ax=e0(ya);var xx=e0(me);function wx(t,e){var n=me((t=Pc(t)).l,(e=Pc(e)).l),r=me(t.a,e.a),i=me(t.b,e.b),o=me(t.opacity,e.opacity);return function(a){return t.l=n(a),t.a=r(a),t.b=i(a),t.opacity=o(a),t+""}}function t0(t){return function(e,n){var r=t((e=Uc(e)).h,(n=Uc(n)).h),i=me(e.c,n.c),o=me(e.l,n.l),a=me(e.opacity,n.opacity);return function(s){return e.h=r(s),e.c=i(s),e.l=o(s),e.opacity=a(s),e+""}}}const Cx=t0(ya);var Sx=t0(me);function n0(t){return function e(n){n=+n;function r(i,o){var a=t((i=Qc(i)).h,(o=Qc(o)).h),s=me(i.s,o.s),c=me(i.l,o.l),u=me(i.opacity,o.opacity);return function(f){return i.h=a(f),i.s=s(f),i.l=c(Math.pow(f,n)),i.opacity=u(f),i+""}}return r.gamma=e,r}(1)}const Ex=n0(ya);var Dx=n0(me);function Zc(t,e){e===void 0&&(e=t,t=Jt);for(var n=0,r=e.length-1,i=e[0],o=new Array(r<0?0:r);n<r;)o[n]=t(i,i=e[++n]);return function(a){var s=Math.max(0,Math.min(r-1,Math.floor(a*=r)));return o[s](a-s)}}function Mx(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t(r/(e-1));return n}const Tx=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Jt,interpolateArray:cx,interpolateBasis:Uh,interpolateBasisClosed:Gh,interpolateDate:_h,interpolateDiscrete:fx,interpolateHue:dx,interpolateNumber:rt,interpolateNumberArray:Yc,interpolateObject:Wh,interpolateRound:Mi,interpolateString:Xh,interpolateTransformCss:mx,interpolateTransformSvg:gx,interpolateZoom:$h,interpolateRgb:Vc,interpolateRgbBasis:ax,interpolateRgbBasisClosed:sx,interpolateHsl:Ax,interpolateHslLong:xx,interpolateLab:wx,interpolateHcl:Cx,interpolateHclLong:Sx,interpolateCubehelix:Ex,interpolateCubehelixLong:Dx,piecewise:Zc,quantize:Mx},Symbol.toStringTag,{value:"Module"}));function Ix(t){return function(){return t}}function qc(t){return+t}var r0=[0,1];function Le(t){return t}function Kc(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:Ix(isNaN(e)?NaN:.5)}function kx(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function Nx(t,e,n){var r=t[0],i=t[1],o=e[0],a=e[1];return i<r?(r=Kc(i,r),o=n(a,o)):(r=Kc(r,i),o=n(o,a)),function(s){return o(r(s))}}function Lx(t,e,n){var r=Math.min(t.length,e.length)-1,i=new Array(r),o=new Array(r),a=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<r;)i[a]=Kc(t[a],t[a+1]),o[a]=n(e[a],e[a+1]);return function(s){var c=hr(t,s,1,r)-1;return o[c](i[c](s))}}function Ti(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function va(){var t=r0,e=r0,n=Jt,r,i,o,a=Le,s,c,u;function f(){var d=Math.min(t.length,e.length);return a!==Le&&(a=kx(t[0],t[d-1])),s=d>2?Lx:Nx,c=u=null,l}function l(d){return d==null||isNaN(d=+d)?o:(c||(c=s(t.map(r),e,n)))(r(a(d)))}return l.invert=function(d){return a(i((u||(u=s(e,t.map(r),rt)))(d)))},l.domain=function(d){return arguments.length?(t=Array.from(d,qc),f()):t.slice()},l.range=function(d){return arguments.length?(e=Array.from(d),f()):e.slice()},l.rangeRound=function(d){return e=Array.from(d),n=Mi,f()},l.clamp=function(d){return arguments.length?(a=d?!0:Le,f()):a!==Le},l.interpolate=function(d){return arguments.length?(n=d,f()):n},l.unknown=function(d){return arguments.length?(o=d,l):o},function(d,h){return r=d,i=h,f()}}function i0(){return va()(Le,Le)}function o0(t,e,n,r){var i=Dn(t,e,n),o;switch(r=_t(r==null?",f":r),r.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(o=kd(i,a))&&(r.precision=o),cc(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=Nd(i,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=Id(i))&&(r.precision=o-(r.type==="%")*2);break}}return le(r)}function zn(t){var e=t.domain;return t.ticks=function(n){var r=e();return Jo(r[0],r[r.length-1],n==null?10:n)},t.tickFormat=function(n,r){var i=e();return o0(i[0],i[i.length-1],n==null?10:n,r)},t.nice=function(n){n==null&&(n=10);var r=e(),i=0,o=r.length-1,a=r[i],s=r[o],c,u,f=10;for(s<a&&(u=a,a=s,s=u,u=i,i=o,o=u);f-- >0;){if(u=wd(a,s,n),u===c)return r[i]=a,r[o]=s,e(r);if(u>0)a=Math.floor(a/u)*u,s=Math.ceil(s/u)*u;else if(u<0)a=Math.ceil(a*u)/u,s=Math.floor(s*u)/u;else break;c=u}return t},t}function a0(){var t=i0();return t.copy=function(){return Ti(t,a0())},lt.apply(t,arguments),zn(t)}function s0(t){var e;function n(r){return r==null||isNaN(r=+r)?e:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(t=Array.from(r,qc),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return s0(t).unknown(e)},t=arguments.length?Array.from(t,qc):[0,1],zn(n)}function c0(t,e){t=t.slice();var n=0,r=t.length-1,i=t[n],o=t[r],a;return o<i&&(a=n,n=r,r=a,a=i,i=o,o=a),t[n]=e.floor(i),t[r]=e.ceil(o),t}function u0(t){return Math.log(t)}function l0(t){return Math.exp(t)}function Bx(t){return-Math.log(-t)}function Ox(t){return-Math.exp(-t)}function Px(t){return isFinite(t)?+("1e"+t):t<0?0:t}function Fx(t){return t===10?Px:t===Math.E?Math.exp:e=>Math.pow(t,e)}function zx(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function f0(t){return(e,n)=>-t(-e,n)}function Jc(t){const e=t(u0,l0),n=e.domain;let r=10,i,o;function a(){return i=zx(r),o=Fx(r),n()[0]<0?(i=f0(i),o=f0(o),t(Bx,Ox)):t(u0,l0),e}return e.base=function(s){return arguments.length?(r=+s,a()):r},e.domain=function(s){return arguments.length?(n(s),a()):n()},e.ticks=s=>{const c=n();let u=c[0],f=c[c.length-1];const l=f<u;l&&([u,f]=[f,u]);let d=i(u),h=i(f),p,m;const y=s==null?10:+s;let g=[];if(!(r%1)&&h-d<y){if(d=Math.floor(d),h=Math.ceil(h),u>0){for(;d<=h;++d)for(p=1;p<r;++p)if(m=d<0?p/o(-d):p*o(d),!(m<u)){if(m>f)break;g.push(m)}}else for(;d<=h;++d)for(p=r-1;p>=1;--p)if(m=d>0?p/o(-d):p*o(d),!(m<u)){if(m>f)break;g.push(m)}g.length*2<y&&(g=Jo(u,f,y))}else g=Jo(d,h,Math.min(h-d,y)).map(o);return l?g.reverse():g},e.tickFormat=(s,c)=>{if(s==null&&(s=10),c==null&&(c=r===10?"s":","),typeof c!="function"&&(!(r%1)&&(c=_t(c)).precision==null&&(c.trim=!0),c=le(c)),s===1/0)return c;const u=Math.max(1,r*s/e.ticks().length);return f=>{let l=f/o(Math.round(i(f)));return l*r<r-.5&&(l*=r),l<=u?c(f):""}},e.nice=()=>n(c0(n(),{floor:s=>o(Math.floor(i(s))),ceil:s=>o(Math.ceil(i(s)))})),e}function $c(){const t=Jc(va()).domain([1,10]);return t.copy=()=>Ti(t,$c()).base(t.base()),lt.apply(t,arguments),t}function d0(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function h0(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function eu(t){var e=1,n=t(d0(e),h0(e));return n.constant=function(r){return arguments.length?t(d0(e=+r),h0(e)):e},zn(n)}function p0(){var t=eu(va());return t.copy=function(){return Ti(t,p0()).constant(t.constant())},lt.apply(t,arguments)}function m0(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function Rx(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function jx(t){return t<0?-t*t:t*t}function tu(t){var e=t(Le,Le),n=1;function r(){return n===1?t(Le,Le):n===.5?t(Rx,jx):t(m0(n),m0(1/n))}return e.exponent=function(i){return arguments.length?(n=+i,r()):n},zn(e)}function nu(){var t=tu(va());return t.copy=function(){return Ti(t,nu()).exponent(t.exponent())},lt.apply(t,arguments),t}function Ux(){return nu.apply(null,arguments).exponent(.5)}function g0(){var t=[],e=[],n=[],r;function i(){var a=0,s=Math.max(1,e.length);for(n=new Array(s-1);++a<s;)n[a-1]=ac(t,a/s);return o}function o(a){return a==null||isNaN(a=+a)?r:e[hr(n,a)]}return o.invertExtent=function(a){var s=e.indexOf(a);return s<0?[NaN,NaN]:[s>0?n[s-1]:t[0],s<n.length?n[s]:t[t.length-1]]},o.domain=function(a){if(!arguments.length)return t.slice();t=[];for(let s of a)s!=null&&!isNaN(s=+s)&&t.push(s);return t.sort(Sn),i()},o.range=function(a){return arguments.length?(e=Array.from(a),i()):e.slice()},o.unknown=function(a){return arguments.length?(r=a,o):r},o.quantiles=function(){return n.slice()},o.copy=function(){return g0().domain(t).range(e).unknown(r)},lt.apply(o,arguments)}function y0(){var t=0,e=1,n=1,r=[.5],i=[0,1],o;function a(c){return c!=null&&c<=c?i[hr(r,c,0,n)]:o}function s(){var c=-1;for(r=new Array(n);++c<n;)r[c]=((c+1)*e-(c-n)*t)/(n+1);return a}return a.domain=function(c){return arguments.length?([t,e]=c,t=+t,e=+e,s()):[t,e]},a.range=function(c){return arguments.length?(n=(i=Array.from(c)).length-1,s()):i.slice()},a.invertExtent=function(c){var u=i.indexOf(c);return u<0?[NaN,NaN]:u<1?[t,r[0]]:u>=n?[r[n-1],e]:[r[u-1],r[u]]},a.unknown=function(c){return arguments.length&&(o=c),a},a.thresholds=function(){return r.slice()},a.copy=function(){return y0().domain([t,e]).range(i).unknown(o)},lt.apply(zn(a),arguments)}function b0(){var t=[.5],e=[0,1],n,r=1;function i(o){return o!=null&&o<=o?e[hr(t,o,0,r)]:n}return i.domain=function(o){return arguments.length?(t=Array.from(o),r=Math.min(t.length,e.length-1),i):t.slice()},i.range=function(o){return arguments.length?(e=Array.from(o),r=Math.min(t.length,e.length-1),i):e.slice()},i.invertExtent=function(o){var a=e.indexOf(o);return[t[a-1],t[a]]},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return b0().domain(t).range(e).unknown(n)},lt.apply(i,arguments)}function Gx(t){return new Date(t)}function Hx(t){return t instanceof Date?+t:+new Date(+t)}function ru(t,e,n,r,i,o,a,s,c,u){var f=i0(),l=f.invert,d=f.domain,h=u(".%L"),p=u(":%S"),m=u("%I:%M"),y=u("%I %p"),g=u("%a %d"),x=u("%b %d"),A=u("%B"),C=u("%Y");function v(b){return(c(b)<b?h:s(b)<b?p:a(b)<b?m:o(b)<b?y:r(b)<b?i(b)<b?g:x:n(b)<b?A:C)(b)}return f.invert=function(b){return new Date(l(b))},f.domain=function(b){return arguments.length?d(Array.from(b,Hx)):d().map(Gx)},f.ticks=function(b){var w=d();return t(w[0],w[w.length-1],b==null?10:b)},f.tickFormat=function(b,w){return w==null?v:u(w)},f.nice=function(b){var w=d();return(!b||typeof b.range!="function")&&(b=e(w[0],w[w.length-1],b==null?10:b)),b?d(c0(w,b)):f},f.copy=function(){return Ti(f,ru(t,e,n,r,i,o,a,s,c,u))},f}function Qx(){return lt.apply(ru(lv,fv,Xt,ia,ui,Tn,mc,pc,Wt,Cc).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function Vx(){return lt.apply(ru(cv,uv,Zt,aa,li,kn,bc,yc,Wt,Sc).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Aa(){var t=0,e=1,n,r,i,o,a=Le,s=!1,c;function u(l){return l==null||isNaN(l=+l)?c:a(i===0?.5:(l=(o(l)-n)*i,s?Math.max(0,Math.min(1,l)):l))}u.domain=function(l){return arguments.length?([t,e]=l,n=o(t=+t),r=o(e=+e),i=n===r?0:1/(r-n),u):[t,e]},u.clamp=function(l){return arguments.length?(s=!!l,u):s},u.interpolator=function(l){return arguments.length?(a=l,u):a};function f(l){return function(d){var h,p;return arguments.length?([h,p]=d,a=l(h,p),u):[a(0),a(1)]}}return u.range=f(Jt),u.rangeRound=f(Mi),u.unknown=function(l){return arguments.length?(c=l,u):c},function(l){return o=l,n=l(t),r=l(e),i=n===r?0:1/(r-n),u}}function $t(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function iu(){var t=zn(Aa()(Le));return t.copy=function(){return $t(t,iu())},qt.apply(t,arguments)}function v0(){var t=Jc(Aa()).domain([1,10]);return t.copy=function(){return $t(t,v0()).base(t.base())},qt.apply(t,arguments)}function A0(){var t=eu(Aa());return t.copy=function(){return $t(t,A0()).constant(t.constant())},qt.apply(t,arguments)}function ou(){var t=tu(Aa());return t.copy=function(){return $t(t,ou()).exponent(t.exponent())},qt.apply(t,arguments)}function Yx(){return ou.apply(null,arguments).exponent(.5)}function xa(){var t=0,e=.5,n=1,r=1,i,o,a,s,c,u=Le,f,l=!1,d;function h(m){return isNaN(m=+m)?d:(m=.5+((m=+f(m))-o)*(r*m<r*o?s:c),u(l?Math.max(0,Math.min(1,m)):m))}h.domain=function(m){return arguments.length?([t,e,n]=m,i=f(t=+t),o=f(e=+e),a=f(n=+n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,h):[t,e,n]},h.clamp=function(m){return arguments.length?(l=!!m,h):l},h.interpolator=function(m){return arguments.length?(u=m,h):u};function p(m){return function(y){var g,x,A;return arguments.length?([g,x,A]=y,u=Zc(m,[g,x,A]),h):[u(0),u(.5),u(1)]}}return h.range=p(Jt),h.rangeRound=p(Mi),h.unknown=function(m){return arguments.length?(d=m,h):d},function(m){return f=m,i=m(t),o=m(e),a=m(n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,h}}function x0(){var t=zn(xa()(Le));return t.copy=function(){return $t(t,x0())},qt.apply(t,arguments)}function w0(){var t=Jc(xa()).domain([.1,1,10]);return t.copy=function(){return $t(t,w0()).base(t.base())},qt.apply(t,arguments)}function C0(){var t=eu(xa());return t.copy=function(){return $t(t,C0()).constant(t.constant())},qt.apply(t,arguments)}function au(){var t=tu(xa());return t.copy=function(){return $t(t,au()).exponent(t.exponent())},qt.apply(t,arguments)}function _x(){return au.apply(null,arguments).exponent(.5)}function su(t,e,n){const r=t-e+n*2;return t?r>0?r:1:0}const Wx="identity",wr="linear",en="log",Ii="pow",ki="sqrt",wa="symlog",S0="time",E0="utc",ht="sequential",Cr="diverging",cu="quantile",D0="quantize",M0="threshold",uu="ordinal",lu="point",T0="band",fu="bin-ordinal",fe="continuous",Ni="discrete",Li="discretizing",Ze="interpolating",I0="temporal";function Xx(t){return function(e){let n=e[0],r=e[1],i;return r<n&&(i=n,n=r,r=i),[t.invert(n),t.invert(r)]}}function Zx(t){return function(e){const n=t.range();let r=e[0],i=e[1],o=-1,a,s,c,u;for(i<r&&(s=r,r=i,i=s),c=0,u=n.length;c<u;++c)n[c]>=r&&n[c]<=i&&(o<0&&(o=c),a=c);if(!(o<0))return r=t.invertExtent(n[o]),i=t.invertExtent(n[a]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function du(){const t=Nc().unknown(void 0),e=t.domain,n=t.range;let r=[0,1],i,o,a=!1,s=0,c=0,u=.5;delete t.unknown;function f(){const l=e().length,d=r[1]<r[0],h=r[1-d],p=su(l,s,c);let m=r[d-0];i=(h-m)/(p||1),a&&(i=Math.floor(i)),m+=(h-m-i*(l-s))*u,o=i*(1-s),a&&(m=Math.round(m),o=Math.round(o));const y=Yt(l).map(g=>m+i*g);return n(d?y.reverse():y)}return t.domain=function(l){return arguments.length?(e(l),f()):e()},t.range=function(l){return arguments.length?(r=[+l[0],+l[1]],f()):r.slice()},t.rangeRound=function(l){return r=[+l[0],+l[1]],a=!0,f()},t.bandwidth=function(){return o},t.step=function(){return i},t.round=function(l){return arguments.length?(a=!!l,f()):a},t.padding=function(l){return arguments.length?(c=Math.max(0,Math.min(1,l)),s=c,f()):s},t.paddingInner=function(l){return arguments.length?(s=Math.max(0,Math.min(1,l)),f()):s},t.paddingOuter=function(l){return arguments.length?(c=Math.max(0,Math.min(1,l)),f()):c},t.align=function(l){return arguments.length?(u=Math.max(0,Math.min(1,l)),f()):u},t.invertRange=function(l){if(l[0]==null||l[1]==null)return;const d=r[1]<r[0],h=d?n().reverse():n(),p=h.length-1;let m=+l[0],y=+l[1],g,x,A;if(!(m!==m||y!==y)&&(y<m&&(A=m,m=y,y=A),!(y<h[0]||m>r[1-d])))return g=Math.max(0,ec(h,m)-1),x=m===y?g:ec(h,y)-1,m-h[g]>o+1e-10&&++g,d&&(A=g,g=p-x,x=p-A),g>x?void 0:e().slice(g,x+1)},t.invert=function(l){const d=t.invertRange([l,l]);return d&&d[0]},t.copy=function(){return du().domain(e()).range(r).round(a).paddingInner(s).paddingOuter(c).align(u)},f()}function k0(t){const e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,t.copy=function(){return k0(e())},t}function qx(){return k0(du().paddingInner(1))}var Kx=Array.prototype.map;function Jx(t){return Kx.call(t,ai)}const $x=Array.prototype.slice;function N0(){let t=[],e=[];function n(r){return r==null||r!==r?void 0:e[(hr(t,r)-1)%e.length]}return n.domain=function(r){return arguments.length?(t=Jx(r),n):t.slice()},n.range=function(r){return arguments.length?(e=$x.call(r),n):e.slice()},n.tickFormat=function(r,i){return o0(t[0],tt(t),r==null?10:r,i)},n.copy=function(){return N0().domain(n.domain()).range(n.range())},n}const Ca={};function ew(t,e,n){const r=function(){const o=e();return o.invertRange||(o.invertRange=o.invert?Xx(o):o.invertExtent?Zx(o):void 0),o.type=t,o};return r.metadata=Zo(Zs(n)),r}function W(t,e,n){return arguments.length>1?(Ca[t]=ew(t,e,n),this):tw(t)?Ca[t]:void 0}W(Wx,s0),W(wr,a0,fe),W(en,$c,[fe,en]),W(Ii,nu,fe),W(ki,Ux,fe),W(wa,p0,fe),W(S0,Qx,[fe,I0]),W(E0,Vx,[fe,I0]),W(ht,iu,[fe,Ze]),W("".concat(ht,"-").concat(wr),iu,[fe,Ze]),W("".concat(ht,"-").concat(en),v0,[fe,Ze,en]),W("".concat(ht,"-").concat(Ii),ou,[fe,Ze]),W("".concat(ht,"-").concat(ki),Yx,[fe,Ze]),W("".concat(ht,"-").concat(wa),A0,[fe,Ze]),W("".concat(Cr,"-").concat(wr),x0,[fe,Ze]),W("".concat(Cr,"-").concat(en),w0,[fe,Ze,en]),W("".concat(Cr,"-").concat(Ii),au,[fe,Ze]),W("".concat(Cr,"-").concat(ki),_x,[fe,Ze]),W("".concat(Cr,"-").concat(wa),C0,[fe,Ze]),W(cu,g0,[Li,cu]),W(D0,y0,Li),W(M0,b0,Li),W(fu,N0,[Ni,Li]),W(uu,Nc,Ni),W(T0,du,Ni),W(lu,qx,Ni);function tw(t){return Cn(Ca,t)}function Bi(t,e){const n=Ca[t];return n&&n.metadata[e]}function Re(t){return Bi(t,fe)}function tn(t){return Bi(t,Ni)}function Sr(t){return Bi(t,Li)}function L0(t){return Bi(t,en)}function Sa(t){return Bi(t,Ze)}function nw(t,e){const n=e[0],r=tt(e)-n;return function(i){return t(n+i*r)}}function Ea(t,e,n){return Zc(B0(e||"rgb",n),t)}function rw(t,e){const n=new Array(e),r=e+1;for(let i=0;i<e;)n[i]=t(++i/r);return n}function B0(t,e){const n=Tx[iw(t)];return e!=null&&n&&n.gamma?n.gamma(e):n}function iw(t){return"interpolate"+t.toLowerCase().split("-").map(e=>e[0].toUpperCase()+e.slice(1)).join("")}const ow={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"},aw={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 O0(t){const e=t.length/6|0,n=new Array(e);for(let r=0;r<e;)n[r]="#"+t.slice(r*6,++r*6);return n}function P0(t,e){for(const n in t)hu(n,e(t[n]))}const F0={};P0(aw,O0),P0(ow,t=>Ea(O0(t)));function hu(t,e){return t=t&&t.toLowerCase(),arguments.length>1?(F0[t]=e,this):F0[t]}const Qk="";function sw(t,e){var n=t.getBoundingClientRect();return[e.clientX-n.left-t.clientLeft,e.clientY-n.top-t.clientTop]}/**
5
+ `)}function u(l){return l.map(f).join(t)}function f(l){return l==null?"":l instanceof Date?Tb(l):e.test(l+="")?'"'+l.replace(/"/g,'""')+'"':l}return{parse:r,parseRows:i,format:a,formatBody:s,formatRows:c,formatRow:u,formatValue:f}}var Ib=xd(" "),kb=Ib.parseRows;function Nb(t){return t}function Lb(t){if(t==null)return Nb;var e,n,r=t.scale[0],i=t.scale[1],o=t.translate[0],a=t.translate[1];return function(s,c){c||(e=n=0);var u=2,f=s.length,l=new Array(f);for(l[0]=(e+=s[0])*r+o,l[1]=(n+=s[1])*i+a;u<f;)l[u]=s[u],++u;return l}}function Bb(t,e){for(var n,r=t.length,i=r-e;i<--r;)n=t[i],t[i++]=t[r],t[r]=n}function Ob(t,e){return typeof e=="string"&&(e=t.objects[e]),e.type==="GeometryCollection"?{type:"FeatureCollection",features:e.geometries.map(function(n){return wd(t,n)})}:wd(t,e)}function wd(t,e){var n=e.id,r=e.bbox,i=e.properties==null?{}:e.properties,o=Cd(t,e);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 Cd(t,e){var n=Lb(t.transform),r=t.arcs;function i(f,l){l.length&&l.pop();for(var d=r[f<0?~f:f],h=0,p=d.length;h<p;++h)l.push(n(d[h],h));f<0&&Bb(l,p)}function o(f){return n(f)}function a(f){for(var l=[],d=0,h=f.length;d<h;++d)i(f[d],l);return l.length<2&&l.push(l[0]),l}function s(f){for(var l=a(f);l.length<4;)l.push(l[0]);return l}function c(f){return f.map(s)}function u(f){var l=f.type,d;switch(l){case"GeometryCollection":return{type:l,geometries:f.geometries.map(u)};case"Point":d=o(f.coordinates);break;case"MultiPoint":d=f.coordinates.map(o);break;case"LineString":d=a(f.arcs);break;case"MultiLineString":d=f.arcs.map(a);break;case"Polygon":d=c(f.arcs);break;case"MultiPolygon":d=f.arcs.map(c);break;default:return null}return{type:l,coordinates:d}}return u(e)}function Pb(t,e){var n={},r={},i={},o=[],a=-1;e.forEach(function(u,f){var l=t.arcs[u<0?~u:u],d;l.length<3&&!l[1][0]&&!l[1][1]&&(d=e[++a],e[a]=u,e[f]=d)}),e.forEach(function(u){var f=s(u),l=f[0],d=f[1],h,p;if(h=i[l])if(delete i[h.end],h.push(u),h.end=d,p=r[d]){delete r[p.start];var m=p===h?h:h.concat(p);r[m.start=h.start]=i[m.end=p.end]=m}else r[h.start]=i[h.end]=h;else if(h=r[d])if(delete r[h.start],h.unshift(u),h.start=l,p=i[l]){delete i[p.end];var y=p===h?h:p.concat(h);r[y.start=p.start]=i[y.end=h.end]=y}else r[h.start]=i[h.end]=h;else h=[u],r[h.start=l]=i[h.end=d]=h});function s(u){var f=t.arcs[u<0?~u:u],l=f[0],d;return t.transform?(d=[0,0],f.forEach(function(h){d[0]+=h[0],d[1]+=h[1]})):d=f[f.length-1],u<0?[d,l]:[l,d]}function c(u,f){for(var l in u){var d=u[l];delete f[d.start],delete d.start,delete d.end,d.forEach(function(h){n[h<0?~h:h]=1}),o.push(d)}}return c(i,r),c(r,i),e.forEach(function(u){n[u<0?~u:u]||o.push([u])}),o}function Fb(t){return Cd(t,zb.apply(this,arguments))}function zb(t,e,n){var r,i,o;if(arguments.length>1)r=Rb(t,e,n);else for(i=0,r=new Array(o=t.arcs.length);i<o;++i)r[i]=i;return{type:"MultiLineString",arcs:Pb(t,r)}}function Rb(t,e,n){var r=[],i=[],o;function a(l){var d=l<0?~l:l;(i[d]||(i[d]=[])).push({i:l,g:o})}function s(l){l.forEach(a)}function c(l){l.forEach(s)}function u(l){l.forEach(c)}function f(l){switch(o=l,l.type){case"GeometryCollection":l.geometries.forEach(f);break;case"LineString":s(l.arcs);break;case"MultiLineString":case"Polygon":c(l.arcs);break;case"MultiPolygon":u(l.arcs);break}}return f(e),i.forEach(n==null?function(l){r.push(l[0].i)}:function(l){n(l[0].g,l[l.length-1].g)&&r.push(l[0].i)}),r}function Sn(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function jb(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Ko(t){let e,n,r;t.length!==2?(e=Sn,n=(s,c)=>Sn(t(s),c),r=(s,c)=>t(s)-c):(e=t===Sn||t===jb?t:Ub,n=t,r=t);function i(s,c,u=0,f=s.length){if(u<f){if(e(c,c)!==0)return f;do{const l=u+f>>>1;n(s[l],c)<0?u=l+1:f=l}while(u<f)}return u}function o(s,c,u=0,f=s.length){if(u<f){if(e(c,c)!==0)return f;do{const l=u+f>>>1;n(s[l],c)<=0?u=l+1:f=l}while(u<f)}return u}function a(s,c,u=0,f=s.length){const l=i(s,c,u,f-1);return l>u&&r(s[l-1],c)>-r(s[l],c)?l-1:l}return{left:i,center:a,right:o}}function Ub(){return 0}function Sd(t){return t===null?NaN:+t}const Ed=Ko(Sn),nc=Ed.right;Ed.left,Ko(Sd).center;const hr=nc;function Gb(t,e){let n,r;if(e===void 0)for(const i of t)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let o of t)(o=e(o,++i,t))!=null&&(n===void 0?o>=o&&(n=r=o):(n>o&&(n=o),r<o&&(r=o)))}return[n,r]}class En extends Map{constructor(e,n=Vb){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const[r,i]of e)this.set(r,i)}get(e){return super.get(Dd(this,e))}has(e){return super.has(Dd(this,e))}set(e,n){return super.set(Hb(this,e),n)}delete(e){return super.delete(Qb(this,e))}}function Dd({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):n}function Hb({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function Qb({_intern:t,_key:e},n){const r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function Vb(t){return t!==null&&typeof t=="object"?t.valueOf():t}function Jo(t){return t}function ui(t,...e){return rc(t,Jo,Jo,e)}function Yb(t,...e){return rc(t,Array.from,Jo,e)}function _b(t,e,...n){return rc(t,Jo,e,n)}function rc(t,e,n,r){return function i(o,a){if(a>=r.length)return n(o);const s=new En,c=r[a++];let u=-1;for(const f of o){const l=c(f,++u,o),d=s.get(l);d?d.push(f):s.set(l,[f])}for(const[f,l]of s)s.set(f,i(l,a));return e(s)}(t,0)}function Wb(t,e){return Array.from(e,n=>t[n])}function Xb(t,...e){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");t=Array.from(t);let[n]=e;if(n&&n.length!==2||e.length>1){const r=Uint32Array.from(t,(i,o)=>o);return e.length>1?(e=e.map(i=>t.map(i)),r.sort((i,o)=>{for(const a of e){const s=ic(a[i],a[o]);if(s)return s}})):(n=t.map(n),r.sort((i,o)=>ic(n[i],n[o]))),Wb(t,r)}return t.sort(Zb(n))}function Zb(t=Sn){if(t===Sn)return ic;if(typeof t!="function")throw new TypeError("compare is not a function");return(e,n)=>{const r=t(e,n);return r||r===0?r:(t(n,n)===0)-(t(e,e)===0)}}function ic(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(t<e?-1:t>e?1:0)}var oc=Math.sqrt(50),ac=Math.sqrt(10),sc=Math.sqrt(2);function $o(t,e,n){var r,i=-1,o,a,s;if(e=+e,t=+t,n=+n,t===e&&n>0)return[t];if((r=e<t)&&(o=t,t=e,e=o),(s=Md(t,e,n))===0||!isFinite(s))return[];if(s>0){let c=Math.round(t/s),u=Math.round(e/s);for(c*s<t&&++c,u*s>e&&--u,a=new Array(o=u-c+1);++i<o;)a[i]=(c+i)*s}else{s=-s;let c=Math.round(t*s),u=Math.round(e*s);for(c/s<t&&++c,u/s>e&&--u,a=new Array(o=u-c+1);++i<o;)a[i]=(c+i)/s}return r&&a.reverse(),a}function Md(t,e,n){var r=(e-t)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),o=r/Math.pow(10,i);return i>=0?(o>=oc?10:o>=ac?5:o>=sc?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=oc?10:o>=ac?5:o>=sc?2:1)}function Dn(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=oc?i*=10:o>=ac?i*=5:o>=sc&&(i*=2),e<t?-i:i}function cc(t,e,n=Sd){if(!!(r=t.length)){if((e=+e)<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,i=(r-1)*e,o=Math.floor(i),a=+n(t[o],o,t),s=+n(t[o+1],o+1,t);return a+(s-a)*(i-o)}}function Yt(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((e-t)/n))|0,o=new Array(i);++r<i;)o[r]=t+r*n;return o}function ea(t,e){let n=0;if(e===void 0)for(let r of t)(r=+r)&&(n+=r);else{let r=-1;for(let i of t)(i=+e(i,++r,t))&&(n+=i)}return n}function qb(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function ta(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function pr(t){return t=ta(Math.abs(t)),t?t[1]:NaN}function Kb(t,e){return function(n,r){for(var i=n.length,o=[],a=0,s=t[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),o.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}}function Jb(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var $b=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function _t(t){if(!(e=$b.exec(t)))throw new Error("invalid format: "+t);var e;return new uc({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}_t.prototype=uc.prototype;function uc(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}uc.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 ev(t){e:for(var e=t.length,n=1,r=-1,i;n<e;++n)switch(t[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+t[n])break e;r>0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(i+1):t}var Td;function tv(t,e){var n=ta(t,e);if(!n)return t+"";var r=n[0],i=n[1],o=i-(Td=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+ta(t,Math.max(0,e+o-1))[0]}function Id(t,e){var n=ta(t,e);if(!n)return t+"";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 kd={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:qb,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Id(t*100,e),r:Id,s:tv,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Nd(t){return t}var Ld=Array.prototype.map,Bd=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function nv(t){var e=t.grouping===void 0||t.thousands===void 0?Nd:Kb(Ld.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",o=t.numerals===void 0?Nd:Jb(Ld.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"\u2212":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function u(l){l=_t(l);var d=l.fill,h=l.align,p=l.sign,m=l.symbol,y=l.zero,g=l.width,x=l.comma,A=l.precision,C=l.trim,v=l.type;v==="n"?(x=!0,v="g"):kd[v]||(A===void 0&&(A=12),C=!0,v="g"),(y||d==="0"&&h==="=")&&(y=!0,d="0",h="=");var b=m==="$"?n:m==="#"&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",w=m==="$"?r:/[%p]/.test(v)?a:"",E=kd[v],I=/[defgprs%]/.test(v);A=A===void 0?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,A)):Math.max(0,Math.min(20,A));function L(T){var O=b,H=w,U,Ae,Ie;if(v==="c")H=E(T)+H,T="";else{T=+T;var An=T<0||1/T<0;if(T=isNaN(T)?c:E(Math.abs(T),A),C&&(T=ev(T)),An&&+T==0&&p!=="+"&&(An=!1),O=(An?p==="("?p:s:p==="-"||p==="("?"":p)+O,H=(v==="s"?Bd[8+Td/3]:"")+H+(An&&p==="("?")":""),I){for(U=-1,Ae=T.length;++U<Ae;)if(Ie=T.charCodeAt(U),48>Ie||Ie>57){H=(Ie===46?i+T.slice(U+1):T.slice(U))+H,T=T.slice(0,U);break}}}x&&!y&&(T=e(T,1/0));var Y=O.length+T.length+H.length,Ve=Y<g?new Array(g-Y+1).join(d):"";switch(x&&y&&(T=e(Ve+T,Ve.length?g-H.length:1/0),Ve=""),h){case"<":T=O+T+H+Ve;break;case"=":T=O+Ve+T+H;break;case"^":T=Ve.slice(0,Y=Ve.length>>1)+O+T+H+Ve.slice(Y);break;default:T=Ve+O+T+H;break}return o(T)}return L.toString=function(){return l+""},L}function f(l,d){var h=u((l=_t(l),l.type="f",l)),p=Math.max(-8,Math.min(8,Math.floor(pr(d)/3)))*3,m=Math.pow(10,-p),y=Bd[8+p/3];return function(g){return h(m*g)+y}}return{format:u,formatPrefix:f}}var na,le,lc;rv({thousands:",",grouping:[3],currency:["$",""]});function rv(t){return na=nv(t),le=na.format,lc=na.formatPrefix,na}function Od(t){return Math.max(0,-pr(Math.abs(t)))}function Pd(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(pr(e)/3)))*3-pr(Math.abs(t)))}function Fd(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,pr(e)-pr(t))+1}var fc=new Date,dc=new Date;function de(t,e,n,r){function i(o){return t(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=function(o){return t(o=new Date(+o)),o},i.ceil=function(o){return t(o=new Date(o-1)),e(o,1),t(o),o},i.round=function(o){var a=i(o),s=i.ceil(o);return o-a<s-o?a:s},i.offset=function(o,a){return e(o=new Date(+o),a==null?1:Math.floor(a)),o},i.range=function(o,a,s){var c=[],u;if(o=i.ceil(o),s=s==null?1:Math.floor(s),!(o<a)||!(s>0))return c;do c.push(u=new Date(+o)),e(o,s),t(o);while(u<o&&o<a);return c},i.filter=function(o){return de(function(a){if(a>=a)for(;t(a),!o(a);)a.setTime(a-1)},function(a,s){if(a>=a)if(s<0)for(;++s<=0;)for(;e(a,-1),!o(a););else for(;--s>=0;)for(;e(a,1),!o(a););})},n&&(i.count=function(o,a){return fc.setTime(+o),dc.setTime(+a),t(fc),t(dc),Math.floor(n(fc,dc))},i.every=function(o){return o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?function(a){return r(a)%o===0}:function(a){return i.count(0,a)%o===0}):i}),i}var ra=de(function(){},function(t,e){t.setTime(+t+e)},function(t,e){return e-t});ra.every=function(t){return t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?de(function(e){e.setTime(Math.floor(e/t)*t)},function(e,n){e.setTime(+e+n*t)},function(e,n){return(n-e)/t}):ra};const hc=ra;ra.range;const St=1e3,Xe=St*60,Et=Xe*60,Mn=Et*24,pc=Mn*7,zd=Mn*30,mc=Mn*365;var Rd=de(function(t){t.setTime(t-t.getMilliseconds())},function(t,e){t.setTime(+t+e*St)},function(t,e){return(e-t)/St},function(t){return t.getUTCSeconds()});const Wt=Rd;Rd.range;var jd=de(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*St)},function(t,e){t.setTime(+t+e*Xe)},function(t,e){return(e-t)/Xe},function(t){return t.getMinutes()});const gc=jd;jd.range;var Ud=de(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*St-t.getMinutes()*Xe)},function(t,e){t.setTime(+t+e*Et)},function(t,e){return(e-t)/Et},function(t){return t.getHours()});const yc=Ud;Ud.range;var Gd=de(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Xe)/Mn,t=>t.getDate()-1);const Tn=Gd;Gd.range;function In(t){return de(function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},function(e,n){e.setDate(e.getDate()+n*7)},function(e,n){return(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*Xe)/pc})}var li=In(0),ia=In(1),iv=In(2),ov=In(3),mr=In(4),av=In(5),sv=In(6);li.range,ia.range,iv.range,ov.range,mr.range,av.range,sv.range;var Hd=de(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,e){t.setMonth(t.getMonth()+e)},function(t,e){return e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12},function(t){return t.getMonth()});const oa=Hd;Hd.range;var bc=de(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t,e){return e.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});bc.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:de(function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,n){e.setFullYear(e.getFullYear()+n*t)})};const Xt=bc;bc.range;var Qd=de(function(t){t.setUTCSeconds(0,0)},function(t,e){t.setTime(+t+e*Xe)},function(t,e){return(e-t)/Xe},function(t){return t.getUTCMinutes()});const vc=Qd;Qd.range;var Vd=de(function(t){t.setUTCMinutes(0,0,0)},function(t,e){t.setTime(+t+e*Et)},function(t,e){return(e-t)/Et},function(t){return t.getUTCHours()});const Ac=Vd;Vd.range;var Yd=de(function(t){t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+e)},function(t,e){return(e-t)/Mn},function(t){return t.getUTCDate()-1});const kn=Yd;Yd.range;function Nn(t){return de(function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCDate(e.getUTCDate()+n*7)},function(e,n){return(n-e)/pc})}var fi=Nn(0),aa=Nn(1),cv=Nn(2),uv=Nn(3),gr=Nn(4),lv=Nn(5),fv=Nn(6);fi.range,aa.range,cv.range,uv.range,gr.range,lv.range,fv.range;var _d=de(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCMonth(t.getUTCMonth()+e)},function(t,e){return e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12},function(t){return t.getUTCMonth()});const sa=_d;_d.range;var xc=de(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)},function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});xc.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:de(function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})};const Zt=xc;xc.range;function Wd(t,e,n,r,i,o){const a=[[Wt,1,St],[Wt,5,5*St],[Wt,15,15*St],[Wt,30,30*St],[o,1,Xe],[o,5,5*Xe],[o,15,15*Xe],[o,30,30*Xe],[i,1,Et],[i,3,3*Et],[i,6,6*Et],[i,12,12*Et],[r,1,Mn],[r,2,2*Mn],[n,1,pc],[e,1,zd],[e,3,3*zd],[t,1,mc]];function s(u,f,l){const d=f<u;d&&([u,f]=[f,u]);const h=l&&typeof l.range=="function"?l:c(u,f,l),p=h?h.range(u,+f+1):[];return d?p.reverse():p}function c(u,f,l){const d=Math.abs(f-u)/l,h=Ko(([,,y])=>y).right(a,d);if(h===a.length)return t.every(Dn(u/mc,f/mc,l));if(h===0)return hc.every(Math.max(Dn(u,f,l),1));const[p,m]=a[d/a[h-1][2]<a[h][2]/d?h-1:h];return p.every(m)}return[s,c]}const[dv,hv]=Wd(Zt,sa,fi,kn,Ac,vc),[pv,mv]=Wd(Xt,oa,li,Tn,yc,gc),di="year",hi="quarter",pi="month",mi="week",gi="date",ca="day",wc="dayofyear",yi="hours",bi="minutes",vi="seconds",ua="milliseconds";[di,hi,pi,mi,gi,ca,wc,yi,bi,vi,ua].reduce((t,e,n)=>(t[e]=1+n,t),{});const gv={[di]:Xt,[hi]:oa.every(3),[pi]:oa,[mi]:li,[gi]:Tn,[ca]:Tn,[wc]:Tn,[yi]:yc,[bi]:gc,[vi]:Wt,[ua]:hc},yv={[di]:Zt,[hi]:sa.every(3),[pi]:sa,[mi]:fi,[gi]:kn,[ca]:kn,[wc]:kn,[yi]:Ac,[bi]:vc,[vi]:Wt,[ua]:hc};function bv(t){return gv[t]}function vv(t){return yv[t]}function Cc(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Sc(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Ai(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function Xd(t){var e=t.dateTime,n=t.date,r=t.time,i=t.periods,o=t.days,a=t.shortDays,s=t.months,c=t.shortMonths,u=xi(i),f=wi(i),l=xi(o),d=wi(o),h=xi(a),p=wi(a),m=xi(s),y=wi(s),g=xi(c),x=wi(c),A={a:An,A:Y,b:Ve,B:Uo,c:null,d:eh,e:eh,f:Hv,g:Jv,G:eA,H:jv,I:Uv,j:Gv,L:th,m:Qv,M:Vv,p:Go,q:_s,Q:sh,s:ch,S:Yv,u:_v,U:Wv,V:Xv,w:Zv,W:qv,x:null,X:null,y:Kv,Y:$v,Z:tA,"%":ah},C={a:od,A:jk,b:Uk,B:Gk,c:null,d:rh,e:rh,f:oA,g:mA,G:yA,H:nA,I:rA,j:iA,L:ih,m:aA,M:sA,p:Hk,q:Qk,Q:sh,s:ch,S:cA,u:uA,U:lA,V:fA,w:dA,W:hA,x:null,X:null,y:pA,Y:gA,Z:bA,"%":ah},v={a:L,A:T,b:O,B:H,c:U,d:Jd,e:Jd,f:Pv,g:Kd,G:qd,H:$d,I:$d,j:Nv,L:Ov,m:kv,M:Lv,p:I,q:Iv,Q:zv,s:Rv,S:Bv,u:Sv,U:Ev,V:Dv,w:Cv,W:Mv,x:Ae,X:Ie,y:Kd,Y:qd,Z:Tv,"%":Fv};A.x=b(n,A),A.X=b(r,A),A.c=b(e,A),C.x=b(n,C),C.X=b(r,C),C.c=b(e,C);function b(B,G){return function(_){var M=[],Fe=-1,q=0,Ye=B.length,_e,dr,K2;for(_ instanceof Date||(_=new Date(+_));++Fe<Ye;)B.charCodeAt(Fe)===37&&(M.push(B.slice(q,Fe)),(dr=Zd[_e=B.charAt(++Fe)])!=null?_e=B.charAt(++Fe):dr=_e==="e"?" ":"0",(K2=G[_e])&&(_e=K2(_,dr)),M.push(_e),q=Fe+1);return M.push(B.slice(q,Fe)),M.join("")}}function w(B,G){return function(_){var M=Ai(1900,void 0,1),Fe=E(M,B,_+="",0),q,Ye;if(Fe!=_.length)return null;if("Q"in M)return new Date(M.Q);if("s"in M)return new Date(M.s*1e3+("L"in M?M.L:0));if(G&&!("Z"in M)&&(M.Z=0),"p"in M&&(M.H=M.H%12+M.p*12),M.m===void 0&&(M.m="q"in M?M.q:0),"V"in M){if(M.V<1||M.V>53)return null;"w"in M||(M.w=1),"Z"in M?(q=Sc(Ai(M.y,0,1)),Ye=q.getUTCDay(),q=Ye>4||Ye===0?aa.ceil(q):aa(q),q=kn.offset(q,(M.V-1)*7),M.y=q.getUTCFullYear(),M.m=q.getUTCMonth(),M.d=q.getUTCDate()+(M.w+6)%7):(q=Cc(Ai(M.y,0,1)),Ye=q.getDay(),q=Ye>4||Ye===0?ia.ceil(q):ia(q),q=Tn.offset(q,(M.V-1)*7),M.y=q.getFullYear(),M.m=q.getMonth(),M.d=q.getDate()+(M.w+6)%7)}else("W"in M||"U"in M)&&("w"in M||(M.w="u"in M?M.u%7:"W"in M?1:0),Ye="Z"in M?Sc(Ai(M.y,0,1)).getUTCDay():Cc(Ai(M.y,0,1)).getDay(),M.m=0,M.d="W"in M?(M.w+6)%7+M.W*7-(Ye+5)%7:M.w+M.U*7-(Ye+6)%7);return"Z"in M?(M.H+=M.Z/100|0,M.M+=M.Z%100,Sc(M)):Cc(M)}}function E(B,G,_,M){for(var Fe=0,q=G.length,Ye=_.length,_e,dr;Fe<q;){if(M>=Ye)return-1;if(_e=G.charCodeAt(Fe++),_e===37){if(_e=G.charAt(Fe++),dr=v[_e in Zd?G.charAt(Fe++):_e],!dr||(M=dr(B,_,M))<0)return-1}else if(_e!=_.charCodeAt(M++))return-1}return M}function I(B,G,_){var M=u.exec(G.slice(_));return M?(B.p=f.get(M[0].toLowerCase()),_+M[0].length):-1}function L(B,G,_){var M=h.exec(G.slice(_));return M?(B.w=p.get(M[0].toLowerCase()),_+M[0].length):-1}function T(B,G,_){var M=l.exec(G.slice(_));return M?(B.w=d.get(M[0].toLowerCase()),_+M[0].length):-1}function O(B,G,_){var M=g.exec(G.slice(_));return M?(B.m=x.get(M[0].toLowerCase()),_+M[0].length):-1}function H(B,G,_){var M=m.exec(G.slice(_));return M?(B.m=y.get(M[0].toLowerCase()),_+M[0].length):-1}function U(B,G,_){return E(B,e,G,_)}function Ae(B,G,_){return E(B,n,G,_)}function Ie(B,G,_){return E(B,r,G,_)}function An(B){return a[B.getDay()]}function Y(B){return o[B.getDay()]}function Ve(B){return c[B.getMonth()]}function Uo(B){return s[B.getMonth()]}function Go(B){return i[+(B.getHours()>=12)]}function _s(B){return 1+~~(B.getMonth()/3)}function od(B){return a[B.getUTCDay()]}function jk(B){return o[B.getUTCDay()]}function Uk(B){return c[B.getUTCMonth()]}function Gk(B){return s[B.getUTCMonth()]}function Hk(B){return i[+(B.getUTCHours()>=12)]}function Qk(B){return 1+~~(B.getUTCMonth()/3)}return{format:function(B){var G=b(B+="",A);return G.toString=function(){return B},G},parse:function(B){var G=w(B+="",!1);return G.toString=function(){return B},G},utcFormat:function(B){var G=b(B+="",C);return G.toString=function(){return B},G},utcParse:function(B){var G=w(B+="",!0);return G.toString=function(){return B},G}}}var Zd={"-":"",_:" ",0:"0"},he=/^\s*\d+/,Av=/^%/,xv=/[\\^$*+?|[\]().{}]/g;function Q(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<n?new Array(n-o+1).join(e)+i:i)}function wv(t){return t.replace(xv,"\\$&")}function xi(t){return new RegExp("^(?:"+t.map(wv).join("|")+")","i")}function wi(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function Cv(t,e,n){var r=he.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function Sv(t,e,n){var r=he.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function Ev(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function Dv(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function Mv(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function qd(t,e,n){var r=he.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Kd(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Tv(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Iv(t,e,n){var r=he.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function kv(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Jd(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Nv(t,e,n){var r=he.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function $d(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function Lv(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function Bv(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function Ov(t,e,n){var r=he.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function Pv(t,e,n){var r=he.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Fv(t,e,n){var r=Av.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function zv(t,e,n){var r=he.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function Rv(t,e,n){var r=he.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function eh(t,e){return Q(t.getDate(),e,2)}function jv(t,e){return Q(t.getHours(),e,2)}function Uv(t,e){return Q(t.getHours()%12||12,e,2)}function Gv(t,e){return Q(1+Tn.count(Xt(t),t),e,3)}function th(t,e){return Q(t.getMilliseconds(),e,3)}function Hv(t,e){return th(t,e)+"000"}function Qv(t,e){return Q(t.getMonth()+1,e,2)}function Vv(t,e){return Q(t.getMinutes(),e,2)}function Yv(t,e){return Q(t.getSeconds(),e,2)}function _v(t){var e=t.getDay();return e===0?7:e}function Wv(t,e){return Q(li.count(Xt(t)-1,t),e,2)}function nh(t){var e=t.getDay();return e>=4||e===0?mr(t):mr.ceil(t)}function Xv(t,e){return t=nh(t),Q(mr.count(Xt(t),t)+(Xt(t).getDay()===4),e,2)}function Zv(t){return t.getDay()}function qv(t,e){return Q(ia.count(Xt(t)-1,t),e,2)}function Kv(t,e){return Q(t.getFullYear()%100,e,2)}function Jv(t,e){return t=nh(t),Q(t.getFullYear()%100,e,2)}function $v(t,e){return Q(t.getFullYear()%1e4,e,4)}function eA(t,e){var n=t.getDay();return t=n>=4||n===0?mr(t):mr.ceil(t),Q(t.getFullYear()%1e4,e,4)}function tA(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Q(e/60|0,"0",2)+Q(e%60,"0",2)}function rh(t,e){return Q(t.getUTCDate(),e,2)}function nA(t,e){return Q(t.getUTCHours(),e,2)}function rA(t,e){return Q(t.getUTCHours()%12||12,e,2)}function iA(t,e){return Q(1+kn.count(Zt(t),t),e,3)}function ih(t,e){return Q(t.getUTCMilliseconds(),e,3)}function oA(t,e){return ih(t,e)+"000"}function aA(t,e){return Q(t.getUTCMonth()+1,e,2)}function sA(t,e){return Q(t.getUTCMinutes(),e,2)}function cA(t,e){return Q(t.getUTCSeconds(),e,2)}function uA(t){var e=t.getUTCDay();return e===0?7:e}function lA(t,e){return Q(fi.count(Zt(t)-1,t),e,2)}function oh(t){var e=t.getUTCDay();return e>=4||e===0?gr(t):gr.ceil(t)}function fA(t,e){return t=oh(t),Q(gr.count(Zt(t),t)+(Zt(t).getUTCDay()===4),e,2)}function dA(t){return t.getUTCDay()}function hA(t,e){return Q(aa.count(Zt(t)-1,t),e,2)}function pA(t,e){return Q(t.getUTCFullYear()%100,e,2)}function mA(t,e){return t=oh(t),Q(t.getUTCFullYear()%100,e,2)}function gA(t,e){return Q(t.getUTCFullYear()%1e4,e,4)}function yA(t,e){var n=t.getUTCDay();return t=n>=4||n===0?gr(t):gr.ceil(t),Q(t.getUTCFullYear()%1e4,e,4)}function bA(){return"+0000"}function ah(){return"%"}function sh(t){return+t}function ch(t){return Math.floor(+t/1e3)}var yr,Ec,uh,Dc,lh;vA({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 vA(t){return yr=Xd(t),Ec=yr.format,uh=yr.parse,Dc=yr.utcFormat,lh=yr.utcParse,yr}function Ci(t){const e={};return n=>e[n]||(e[n]=t(n))}function AA(t,e){return n=>{const r=t(n),i=r.indexOf(e);if(i<0)return r;let o=xA(r,i);const a=o<r.length?r.slice(o):"";for(;--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+a}}function xA(t,e){let n=t.lastIndexOf("e"),r;if(n>0)return n;for(n=t.length;--n>e;)if(r=t.charCodeAt(n),r>=48&&r<=57)return n+1}function wA(t){const e=Ci(t.format),n=t.formatPrefix;return{format:e,formatPrefix:n,formatFloat(r){const i=_t(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return AA(e(i),e(".1f")(1)[1])}else return e(i)},formatSpan(r,i,o,a){a=_t(a==null?",f":a);const s=Dn(r,i,o),c=Math.max(Math.abs(r),Math.abs(i));let u;if(a.precision==null)switch(a.type){case"s":return isNaN(u=Pd(s,c))||(a.precision=u),n(a,c);case"":case"e":case"g":case"p":case"r":{isNaN(u=Fd(s,c))||(a.precision=u-(a.type==="e"));break}case"f":case"%":{isNaN(u=Od(s))||(a.precision=u-(a.type==="%")*2);break}}return e(a)}}}CA();function CA(){return wA({format:le,formatPrefix:lc})}function fh(t,e,n){n=n||{},ze(n)||oe("Invalid time multi-format specifier: ".concat(n));const r=e(vi),i=e(bi),o=e(yi),a=e(gi),s=e(mi),c=e(pi),u=e(hi),f=e(di),l=t(n[ua]||".%L"),d=t(n[vi]||":%S"),h=t(n[bi]||"%I:%M"),p=t(n[yi]||"%I %p"),m=t(n[gi]||n[ca]||"%a %d"),y=t(n[mi]||"%b %d"),g=t(n[pi]||"%B"),x=t(n[hi]||"%B"),A=t(n[di]||"%Y");return C=>(r(C)<C?l:i(C)<C?d:o(C)<C?h:a(C)<C?p:c(C)<C?s(C)<C?m:y:f(C)<C?u(C)<C?g:x:A)(C)}function dh(t){const e=Ci(t.format),n=Ci(t.utcFormat);return{timeFormat:r=>te(r)?e(r):fh(e,bv,r),utcFormat:r=>te(r)?n(r):fh(n,vv,r),timeParse:Ci(t.parse),utcParse:Ci(t.utcParse)}}let Mc;SA();function SA(){return Mc=dh({format:Ec,parse:uh,utcFormat:Dc,utcParse:lh})}function EA(t){return dh(Xd(t))}function DA(t){return arguments.length?Mc=EA(t):Mc}const MA=/^(data:|([A-Za-z]+:)?\/\/)/,TA=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,IA=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,hh="file://";function kA(t,e){return n=>({options:n||{},sanitize:LA,load:NA,fileAccess:!!e,file:BA(e),http:PA(t)})}async function NA(t,e){const n=await this.sanitize(t,e),r=n.href;return n.localFile?this.file(r):this.http(r,e)}async function LA(t,e){e=Js({},this.options,e);const n=this.fileAccess,r={href:null};let i,o,a;const s=TA.test(t.replace(IA,""));(t==null||typeof t!="string"||!s)&&oe("Sanitize failure, invalid URI: "+Zo(t));const c=MA.test(t);return(a=e.baseURL)&&!c&&(!t.startsWith("/")&&!a.endsWith("/")&&(t="/"+t),t=a+t),o=(i=t.startsWith(hh))||e.mode==="file"||e.mode!=="http"&&!c&&n,i?t=t.slice(hh.length):t.startsWith("//")&&(e.defaultProtocol==="file"?(t=t.slice(2),o=!0):t=(e.defaultProtocol||"http")+":"+t),Object.defineProperty(r,"localFile",{value:!!o}),r.href=t,e.target&&(r.target=e.target+""),e.rel&&(r.rel=e.rel+""),e.context==="image"&&e.crossOrigin&&(r.crossOrigin=e.crossOrigin+""),r}function BA(t){return t?e=>new Promise((n,r)=>{t.readFile(e,(i,o)=>{i?r(i):n(o)})}):OA}async function OA(){oe("No file system access.")}function PA(t){return t?async function(e,n){const r=Js({},this.options.http,n),i=n&&n.response,o=await t(e,r);return o.ok?ke(o[i])?o[i]():o.text():oe(o.status+""+o.statusText)}:FA}async function FA(){oe("No HTTP fetch method available.")}const zA=t=>t!=null&&t===t,RA=t=>t==="true"||t==="false"||t===!0||t===!1,jA=t=>!Number.isNaN(Date.parse(t)),ph=t=>!Number.isNaN(+t)&&!(t instanceof Date),UA=t=>ph(t)&&Number.isInteger(+t),mh={boolean:wb,integer:si,number:si,date:Sb,string:Eb,unknown:Vo},la=[RA,UA,ph,jA],GA=["boolean","integer","number","date"];function gh(t,e){if(!t||!t.length)return"unknown";const n=t.length,r=la.length,i=la.map((o,a)=>a+1);for(let o=0,a=0,s,c;o<n;++o)for(c=e?t[o][e]:t[o],s=0;s<r;++s)if(i[s]&&zA(c)&&!la[s](c)&&(i[s]=0,++a,a===la.length))return"string";return GA[i.reduce((o,a)=>o===0?a:o,0)-1]}function HA(t,e){return e.reduce((n,r)=>(n[r]=gh(t,r),n),{})}function yh(t){const e=function(n,r){const i={delimiter:t};return Tc(n,r?Js(r,i):i)};return e.responseType="text",e}function Tc(t,e){return e.header&&(t=e.header.map(Zo).join(e.delimiter)+`
6
+ `+t),xd(e.delimiter).parse(t+"")}Tc.responseType="text";function QA(t){return typeof Buffer=="function"&&ke(Buffer.isBuffer)?Buffer.isBuffer(t):!1}function Ic(t,e){const n=e&&e.property?Qo(e.property):Vo;return ze(t)&&!QA(t)?VA(n(t),e):n(JSON.parse(t))}Ic.responseType="json";function VA(t,e){return!We(t)&&Ab(t)&&(t=[...t]),e&&e.copy?JSON.parse(JSON.stringify(t)):t}const YA={interior:(t,e)=>t!==e,exterior:(t,e)=>t===e};function bh(t,e){let n,r,i,o;return t=Ic(t,e),e&&e.feature?(n=Ob,i=e.feature):e&&e.mesh?(n=Fb,i=e.mesh,o=YA[e.filter]):oe("Missing TopoJSON feature or mesh parameter."),r=(r=t.objects[i])?n(t,r,o):oe("Invalid TopoJSON object: "+i),r&&r.features||[r]}bh.responseType="json";const kc={dsv:Tc,csv:yh(","),tsv:yh(" "),json:Ic,topojson:bh};function vh(t,e){return arguments.length>1?(kc[t]=e,this):Cn(kc,t)?kc[t]:null}function Ah(t,e,n,r){e=e||{};const i=vh(e.type||"json");return i||oe("Unknown data format type: "+e.type),t=i(t,e),e.parse&&_A(t,e.parse,n,r),Cn(t,"columns")&&delete t.columns,t}function _A(t,e,n,r){if(!t.length)return;const i=DA();n=n||i.timeParse,r=r||i.utcParse;let o=t.columns||Object.keys(t[0]),a,s,c,u,f,l;e==="auto"&&(e=HA(t,o)),o=Object.keys(e);const d=o.map(h=>{const p=e[h];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(!mh[p])throw Error("Illegal format pattern: "+h+":"+p);return mh[p]});for(c=0,f=t.length,l=o.length;c<f;++c)for(a=t[c],u=0;u<l;++u)s=o[u],a[s]=d[u](a[s])}const Si=kA(typeof fetch<"u"&&fetch,null),xh=1;function Nc(){let t=[0,1],e=[0,1],n=1,r=1,i=0,o=0,a=.5,s=0;const u=f=>(f+a-t[0])/n*r+e[0];return u.invert=f=>(f-e[0])/r*n+t[0]-a,u.domain=function(f){if(arguments.length){if(t=Gb(f),n=t[1]-t[0],n<xh){n=xh;const l=(t[0]+t[1])/2;t[0]=l-n/2,t[1]=l+n/2}return u}else return t},u.range=function(f){return arguments.length?(e=[...f],r=e[1]-e[0],u):e},u.numberingOffset=function(f){return arguments.length?(s=f,u):s},u.padding=function(f){return arguments.length?(o=f,i=Math.min(1,f),u):i},u.paddingInner=function(f){return arguments.length?(i=Math.min(1,f),u):i},u.paddingOuter=function(f){return arguments.length?(o=f,u):o},u.align=function(f){return arguments.length?(a=Math.max(0,Math.min(1,f)),u):a},u.step=()=>r/n,u.bandwidth=()=>u.step(),u.ticks=f=>{const l=u.align(),d=u.numberingOffset();return $o(t[0]-l+d,t[1]-l+d,Math.min(f,Math.ceil(n))).filter(Number.isInteger).map(h=>h-s)},u.tickFormat=(f,l)=>{if(l)throw new Error("Index scale's tickFormat does not support a specifier!");const h=Dn(t[0],t[1],Math.min(f,Math.ceil(n)))<1e5?le(","):le(".3s");return p=>h(p+s)},u.copy=()=>Nc().domain(t).range(e).paddingInner(i).paddingOuter(o).numberingOffset(s),u}function WA(){const t=Nc().numberingOffset(1);let e;t.genome=function(r){return arguments.length?(e=r,t):e},t.ticks=r=>{if(!e)return[];const i=t.domain(),o=t.numberingOffset(),[a,s]=[Math.max(i[0],0),Math.min(i[1],e.totalSize-1)].map(f=>e.toChromosome(f)),c=Math.max(1,Dn(i[0],i[1],r)),u=[];for(let f=a.index;f<=s.index;f++){const l=e.chromosomes[f],d=Math.max(l.continuousStart+c,i[0]-(i[0]-l.continuousStart)%c),h=Math.min(l.continuousEnd-c/4,i[1]+1);for(let p=d;p<=h;p+=c){const m=p-o;m>=i[0]&&m<i[1]&&u.push(m)}}return u},t.tickFormat=(r,i)=>{if(!e)return;if(i)throw new Error("Locus scale's tickFormat does not support a specifier!");const o=t.domain(),a=o[1]-o[0],s=t.numberingOffset(),u=Dn(o[0],o[1],Math.min(r,Math.ceil(a)))<1e6?le(","):le(".3s"),f=l=>l-e.toChromosome(l).continuousStart;return l=>u(f(l)+s)};const n=t.copy;return t.copy=()=>n().genome(e),t}function XA(t){return t.type=="locus"}function lt(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function qt(t,e){switch(arguments.length){case 0:break;case 1:{typeof t=="function"?this.interpolator(t):this.range(t);break}default:{this.domain(t),typeof e=="function"?this.interpolator(e):this.range(e);break}}return this}const Lc=Symbol("implicit");function Bc(){var t=new En,e=[],n=[],r=Lc;function i(o){let a=t.get(o);if(a===void 0){if(r!==Lc)return r;t.set(o,a=e.push(o)-1)}return n[a%n.length]}return i.domain=function(o){if(!arguments.length)return e.slice();e=[],t=new En;for(const a of o)t.has(a)||t.set(a,e.push(a)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return Bc(e,n).unknown(r)},lt.apply(i,arguments),i}function br(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Ei(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function Kt(){}var Ln=.7,vr=1/Ln,Ar="\\s*([+-]?\\d+)\\s*",Di="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ft="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",ZA=/^#([0-9a-f]{3,8})$/,qA=new RegExp(`^rgb\\(${Ar},${Ar},${Ar}\\)$`),KA=new RegExp(`^rgb\\(${ft},${ft},${ft}\\)$`),JA=new RegExp(`^rgba\\(${Ar},${Ar},${Ar},${Di}\\)$`),$A=new RegExp(`^rgba\\(${ft},${ft},${ft},${Di}\\)$`),ex=new RegExp(`^hsl\\(${Di},${ft},${ft}\\)$`),tx=new RegExp(`^hsla\\(${Di},${ft},${ft},${Di}\\)$`),wh={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};br(Kt,Bn,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Ch,formatHex:Ch,formatHex8:nx,formatHsl:rx,formatRgb:Sh,toString:Sh});function Ch(){return this.rgb().formatHex()}function nx(){return this.rgb().formatHex8()}function rx(){return Ih(this).formatHsl()}function Sh(){return this.rgb().formatRgb()}function Bn(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=ZA.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?Eh(e):n===3?new pe(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?fa(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?fa(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=qA.exec(t))?new pe(e[1],e[2],e[3],1):(e=KA.exec(t))?new pe(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=JA.exec(t))?fa(e[1],e[2],e[3],e[4]):(e=$A.exec(t))?fa(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=ex.exec(t))?Th(e[1],e[2]/100,e[3]/100,1):(e=tx.exec(t))?Th(e[1],e[2]/100,e[3]/100,e[4]):wh.hasOwnProperty(t)?Eh(wh[t]):t==="transparent"?new pe(NaN,NaN,NaN,0):null}function Eh(t){return new pe(t>>16&255,t>>8&255,t&255,1)}function fa(t,e,n,r){return r<=0&&(t=e=n=NaN),new pe(t,e,n,r)}function Oc(t){return t instanceof Kt||(t=Bn(t)),t?(t=t.rgb(),new pe(t.r,t.g,t.b,t.opacity)):new pe}function da(t,e,n,r){return arguments.length===1?Oc(t):new pe(t,e,n,r==null?1:r)}function pe(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}br(pe,da,Ei(Kt,{brighter(t){return t=t==null?vr:Math.pow(vr,t),new pe(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Ln:Math.pow(Ln,t),new pe(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new pe(On(this.r),On(this.g),On(this.b),ha(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:Dh,formatHex:Dh,formatHex8:ix,formatRgb:Mh,toString:Mh}));function Dh(){return`#${Pn(this.r)}${Pn(this.g)}${Pn(this.b)}`}function ix(){return`#${Pn(this.r)}${Pn(this.g)}${Pn(this.b)}${Pn((isNaN(this.opacity)?1:this.opacity)*255)}`}function Mh(){const t=ha(this.opacity);return`${t===1?"rgb(":"rgba("}${On(this.r)}, ${On(this.g)}, ${On(this.b)}${t===1?")":`, ${t})`}`}function ha(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function On(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Pn(t){return t=On(t),(t<16?"0":"")+t.toString(16)}function Th(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new nt(t,e,n,r)}function Ih(t){if(t instanceof nt)return new nt(t.h,t.s,t.l,t.opacity);if(t instanceof Kt||(t=Bn(t)),!t)return new nt;if(t instanceof nt)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),o=Math.max(e,n,r),a=NaN,s=o-i,c=(o+i)/2;return s?(e===o?a=(n-r)/s+(n<r)*6:n===o?a=(r-e)/s+2:a=(e-n)/s+4,s/=c<.5?o+i:2-o-i,a*=60):s=c>0&&c<1?0:a,new nt(a,s,c,t.opacity)}function Pc(t,e,n,r){return arguments.length===1?Ih(t):new nt(t,e,n,r==null?1:r)}function nt(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}br(nt,Pc,Ei(Kt,{brighter(t){return t=t==null?vr:Math.pow(vr,t),new nt(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Ln:Math.pow(Ln,t),new nt(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new pe(Fc(t>=240?t-240:t+120,i,r),Fc(t,i,r),Fc(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new nt(kh(this.h),pa(this.s),pa(this.l),ha(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 t=ha(this.opacity);return`${t===1?"hsl(":"hsla("}${kh(this.h)}, ${pa(this.s)*100}%, ${pa(this.l)*100}%${t===1?")":`, ${t})`}`}}));function kh(t){return t=(t||0)%360,t<0?t+360:t}function pa(t){return Math.max(0,Math.min(1,t||0))}function Fc(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const Nh=Math.PI/180,Lh=180/Math.PI,ma=18,Bh=.96422,Oh=1,Ph=.82521,Fh=4/29,xr=6/29,zh=3*xr*xr,ox=xr*xr*xr;function Rh(t){if(t instanceof dt)return new dt(t.l,t.a,t.b,t.opacity);if(t instanceof Dt)return jh(t);t instanceof pe||(t=Oc(t));var e=Gc(t.r),n=Gc(t.g),r=Gc(t.b),i=Rc((.2225045*e+.7168786*n+.0606169*r)/Oh),o,a;return e===n&&n===r?o=a=i:(o=Rc((.4360747*e+.3850649*n+.1430804*r)/Bh),a=Rc((.0139322*e+.0971045*n+.7141733*r)/Ph)),new dt(116*i-16,500*(o-i),200*(i-a),t.opacity)}function zc(t,e,n,r){return arguments.length===1?Rh(t):new dt(t,e,n,r==null?1:r)}function dt(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}br(dt,zc,Ei(Kt,{brighter(t){return new dt(this.l+ma*(t==null?1:t),this.a,this.b,this.opacity)},darker(t){return new dt(this.l-ma*(t==null?1:t),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=Bh*jc(e),t=Oh*jc(t),n=Ph*jc(n),new pe(Uc(3.1338561*e-1.6168667*t-.4906146*n),Uc(-.9787684*e+1.9161415*t+.033454*n),Uc(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function Rc(t){return t>ox?Math.pow(t,1/3):t/zh+Fh}function jc(t){return t>xr?t*t*t:zh*(t-Fh)}function Uc(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Gc(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function ax(t){if(t instanceof Dt)return new Dt(t.h,t.c,t.l,t.opacity);if(t instanceof dt||(t=Rh(t)),t.a===0&&t.b===0)return new Dt(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*Lh;return new Dt(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function Hc(t,e,n,r){return arguments.length===1?ax(t):new Dt(t,e,n,r==null?1:r)}function Dt(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}function jh(t){if(isNaN(t.h))return new dt(t.l,0,0,t.opacity);var e=t.h*Nh;return new dt(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}br(Dt,Hc,Ei(Kt,{brighter(t){return new Dt(this.h,this.c,this.l+ma*(t==null?1:t),this.opacity)},darker(t){return new Dt(this.h,this.c,this.l-ma*(t==null?1:t),this.opacity)},rgb(){return jh(this).rgb()}}));var Uh=-.14861,Qc=1.78277,Vc=-.29227,ga=-.90649,Mi=1.97294,Gh=Mi*ga,Hh=Mi*Qc,Qh=Qc*Vc-ga*Uh;function sx(t){if(t instanceof Fn)return new Fn(t.h,t.s,t.l,t.opacity);t instanceof pe||(t=Oc(t));var e=t.r/255,n=t.g/255,r=t.b/255,i=(Qh*r+Gh*e-Hh*n)/(Qh+Gh-Hh),o=r-i,a=(Mi*(n-i)-Vc*o)/ga,s=Math.sqrt(a*a+o*o)/(Mi*i*(1-i)),c=s?Math.atan2(a,o)*Lh-120:NaN;return new Fn(c<0?c+360:c,s,i,t.opacity)}function Yc(t,e,n,r){return arguments.length===1?sx(t):new Fn(t,e,n,r==null?1:r)}function Fn(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}br(Fn,Yc,Ei(Kt,{brighter(t){return t=t==null?vr:Math.pow(vr,t),new Fn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Ln:Math.pow(Ln,t),new Fn(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*Nh,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new pe(255*(e+n*(Uh*r+Qc*i)),255*(e+n*(Vc*r+ga*i)),255*(e+n*(Mi*r)),this.opacity)}}));function Vh(t,e,n,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*n+(1+3*t+3*o-3*a)*r+a*i)/6}function Yh(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,s=r<e-1?t[r+2]:2*o-i;return Vh((n-r/e)*e,a,i,o,s)}}function _h(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],o=t[r%e],a=t[(r+1)%e],s=t[(r+2)%e];return Vh((n-r/e)*e,i,o,a,s)}}const ya=t=>()=>t;function Wh(t,e){return function(n){return t+n*e}}function cx(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function ba(t,e){var n=e-t;return n?Wh(t,n>180||n<-180?n-360*Math.round(n/360):n):ya(isNaN(t)?e:t)}function ux(t){return(t=+t)==1?me:function(e,n){return n-e?cx(e,n,t):ya(isNaN(e)?n:e)}}function me(t,e){var n=e-t;return n?Wh(t,n):ya(isNaN(t)?e:t)}const _c=function t(e){var n=ux(e);function r(i,o){var a=n((i=da(i)).r,(o=da(o)).r),s=n(i.g,o.g),c=n(i.b,o.b),u=me(i.opacity,o.opacity);return function(f){return i.r=a(f),i.g=s(f),i.b=c(f),i.opacity=u(f),i+""}}return r.gamma=t,r}(1);function Xh(t){return function(e){var n=e.length,r=new Array(n),i=new Array(n),o=new Array(n),a,s;for(a=0;a<n;++a)s=da(e[a]),r[a]=s.r||0,i[a]=s.g||0,o[a]=s.b||0;return r=t(r),i=t(i),o=t(o),s.opacity=1,function(c){return s.r=r(c),s.g=i(c),s.b=o(c),s+""}}}var lx=Xh(Yh),fx=Xh(_h);function Wc(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),i;return function(o){for(i=0;i<n;++i)r[i]=t[i]*(1-o)+e[i]*o;return r}}function Zh(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function dx(t,e){return(Zh(e)?Wc:qh)(t,e)}function qh(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,i=new Array(r),o=new Array(n),a;for(a=0;a<r;++a)i[a]=Jt(t[a],e[a]);for(;a<n;++a)o[a]=e[a];return function(s){for(a=0;a<r;++a)o[a]=i[a](s);return o}}function Kh(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function rt(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function Jh(t,e){var n={},r={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?n[i]=Jt(t[i],e[i]):r[i]=e[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var Xc=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Zc=new RegExp(Xc.source,"g");function hx(t){return function(){return t}}function px(t){return function(e){return t(e)+""}}function $h(t,e){var n=Xc.lastIndex=Zc.lastIndex=0,r,i,o,a=-1,s=[],c=[];for(t=t+"",e=e+"";(r=Xc.exec(t))&&(i=Zc.exec(e));)(o=i.index)>n&&(o=e.slice(n,o),s[a]?s[a]+=o:s[++a]=o),(r=r[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,c.push({i:a,x:rt(r,i)})),n=Zc.lastIndex;return n<e.length&&(o=e.slice(n),s[a]?s[a]+=o:s[++a]=o),s.length<2?c[0]?px(c[0].x):hx(e):(e=c.length,function(u){for(var f=0,l;f<e;++f)s[(l=c[f]).i]=l.x(u);return s.join("")})}function Jt(t,e){var n=typeof e,r;return e==null||n==="boolean"?ya(e):(n==="number"?rt:n==="string"?(r=Bn(e))?(e=r,_c):$h:e instanceof Bn?_c:e instanceof Date?Kh:Zh(e)?Wc:Array.isArray(e)?qh:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?Jh:rt)(t,e)}function mx(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}function gx(t,e){var n=ba(+t,+e);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function Ti(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var e0=180/Math.PI,qc={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function t0(t,e,n,r,i,o){var a,s,c;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(c=t*n+e*r)&&(n-=t*c,r-=e*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),t*r<e*n&&(t=-t,e=-e,c=-c,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(e,t)*e0,skewX:Math.atan(c)*e0,scaleX:a,scaleY:s}}var va;function yx(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?qc:t0(e.a,e.b,e.c,e.d,e.e,e.f)}function bx(t){return t==null||(va||(va=document.createElementNS("http://www.w3.org/2000/svg","g")),va.setAttribute("transform",t),!(t=va.transform.baseVal.consolidate()))?qc:(t=t.matrix,t0(t.a,t.b,t.c,t.d,t.e,t.f))}function n0(t,e,n,r){function i(u){return u.length?u.pop()+" ":""}function o(u,f,l,d,h,p){if(u!==l||f!==d){var m=h.push("translate(",null,e,null,n);p.push({i:m-4,x:rt(u,l)},{i:m-2,x:rt(f,d)})}else(l||d)&&h.push("translate("+l+e+d+n)}function a(u,f,l,d){u!==f?(u-f>180?f+=360:f-u>180&&(u+=360),d.push({i:l.push(i(l)+"rotate(",null,r)-2,x:rt(u,f)})):f&&l.push(i(l)+"rotate("+f+r)}function s(u,f,l,d){u!==f?d.push({i:l.push(i(l)+"skewX(",null,r)-2,x:rt(u,f)}):f&&l.push(i(l)+"skewX("+f+r)}function c(u,f,l,d,h,p){if(u!==l||f!==d){var m=h.push(i(h)+"scale(",null,",",null,")");p.push({i:m-4,x:rt(u,l)},{i:m-2,x:rt(f,d)})}else(l!==1||d!==1)&&h.push(i(h)+"scale("+l+","+d+")")}return function(u,f){var l=[],d=[];return u=t(u),f=t(f),o(u.translateX,u.translateY,f.translateX,f.translateY,l,d),a(u.rotate,f.rotate,l,d),s(u.skewX,f.skewX,l,d),c(u.scaleX,u.scaleY,f.scaleX,f.scaleY,l,d),u=f=null,function(h){for(var p=-1,m=d.length,y;++p<m;)l[(y=d[p]).i]=y.x(h);return l.join("")}}}var vx=n0(yx,"px, ","px)","deg)"),Ax=n0(bx,", ",")",")"),xx=1e-12;function r0(t){return((t=Math.exp(t))+1/t)/2}function wx(t){return((t=Math.exp(t))-1/t)/2}function Cx(t){return((t=Math.exp(2*t))-1)/(t+1)}const i0=function t(e,n,r){function i(o,a){var s=o[0],c=o[1],u=o[2],f=a[0],l=a[1],d=a[2],h=f-s,p=l-c,m=h*h+p*p,y,g;if(m<xx)g=Math.log(d/u)/e,y=function(w){return[s+w*h,c+w*p,u*Math.exp(e*w*g)]};else{var x=Math.sqrt(m),A=(d*d-u*u+r*m)/(2*u*n*x),C=(d*d-u*u-r*m)/(2*d*n*x),v=Math.log(Math.sqrt(A*A+1)-A),b=Math.log(Math.sqrt(C*C+1)-C);g=(b-v)/e,y=function(w){var E=w*g,I=r0(v),L=u/(n*x)*(I*Cx(e*E+v)-wx(v));return[s+L*h,c+L*p,u*I/r0(e*E+v)]}}return y.duration=g*1e3*e/Math.SQRT2,y}return i.rho=function(o){var a=Math.max(.001,+o),s=a*a,c=s*s;return t(a,s,c)},i}(Math.SQRT2,2,4);function o0(t){return function(e,n){var r=t((e=Pc(e)).h,(n=Pc(n)).h),i=me(e.s,n.s),o=me(e.l,n.l),a=me(e.opacity,n.opacity);return function(s){return e.h=r(s),e.s=i(s),e.l=o(s),e.opacity=a(s),e+""}}}const Sx=o0(ba);var Ex=o0(me);function Dx(t,e){var n=me((t=zc(t)).l,(e=zc(e)).l),r=me(t.a,e.a),i=me(t.b,e.b),o=me(t.opacity,e.opacity);return function(a){return t.l=n(a),t.a=r(a),t.b=i(a),t.opacity=o(a),t+""}}function a0(t){return function(e,n){var r=t((e=Hc(e)).h,(n=Hc(n)).h),i=me(e.c,n.c),o=me(e.l,n.l),a=me(e.opacity,n.opacity);return function(s){return e.h=r(s),e.c=i(s),e.l=o(s),e.opacity=a(s),e+""}}}const Mx=a0(ba);var Tx=a0(me);function s0(t){return function e(n){n=+n;function r(i,o){var a=t((i=Yc(i)).h,(o=Yc(o)).h),s=me(i.s,o.s),c=me(i.l,o.l),u=me(i.opacity,o.opacity);return function(f){return i.h=a(f),i.s=s(f),i.l=c(Math.pow(f,n)),i.opacity=u(f),i+""}}return r.gamma=e,r}(1)}const Ix=s0(ba);var kx=s0(me);function Kc(t,e){e===void 0&&(e=t,t=Jt);for(var n=0,r=e.length-1,i=e[0],o=new Array(r<0?0:r);n<r;)o[n]=t(i,i=e[++n]);return function(a){var s=Math.max(0,Math.min(r-1,Math.floor(a*=r)));return o[s](a-s)}}function Nx(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t(r/(e-1));return n}const Lx=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Jt,interpolateArray:dx,interpolateBasis:Yh,interpolateBasisClosed:_h,interpolateDate:Kh,interpolateDiscrete:mx,interpolateHue:gx,interpolateNumber:rt,interpolateNumberArray:Wc,interpolateObject:Jh,interpolateRound:Ti,interpolateString:$h,interpolateTransformCss:vx,interpolateTransformSvg:Ax,interpolateZoom:i0,interpolateRgb:_c,interpolateRgbBasis:lx,interpolateRgbBasisClosed:fx,interpolateHsl:Sx,interpolateHslLong:Ex,interpolateLab:Dx,interpolateHcl:Mx,interpolateHclLong:Tx,interpolateCubehelix:Ix,interpolateCubehelixLong:kx,piecewise:Kc,quantize:Nx},Symbol.toStringTag,{value:"Module"}));function Bx(t){return function(){return t}}function Jc(t){return+t}var c0=[0,1];function Le(t){return t}function $c(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:Bx(isNaN(e)?NaN:.5)}function Ox(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function Px(t,e,n){var r=t[0],i=t[1],o=e[0],a=e[1];return i<r?(r=$c(i,r),o=n(a,o)):(r=$c(r,i),o=n(o,a)),function(s){return o(r(s))}}function Fx(t,e,n){var r=Math.min(t.length,e.length)-1,i=new Array(r),o=new Array(r),a=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<r;)i[a]=$c(t[a],t[a+1]),o[a]=n(e[a],e[a+1]);return function(s){var c=hr(t,s,1,r)-1;return o[c](i[c](s))}}function Ii(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Aa(){var t=c0,e=c0,n=Jt,r,i,o,a=Le,s,c,u;function f(){var d=Math.min(t.length,e.length);return a!==Le&&(a=Ox(t[0],t[d-1])),s=d>2?Fx:Px,c=u=null,l}function l(d){return d==null||isNaN(d=+d)?o:(c||(c=s(t.map(r),e,n)))(r(a(d)))}return l.invert=function(d){return a(i((u||(u=s(e,t.map(r),rt)))(d)))},l.domain=function(d){return arguments.length?(t=Array.from(d,Jc),f()):t.slice()},l.range=function(d){return arguments.length?(e=Array.from(d),f()):e.slice()},l.rangeRound=function(d){return e=Array.from(d),n=Ti,f()},l.clamp=function(d){return arguments.length?(a=d?!0:Le,f()):a!==Le},l.interpolate=function(d){return arguments.length?(n=d,f()):n},l.unknown=function(d){return arguments.length?(o=d,l):o},function(d,h){return r=d,i=h,f()}}function u0(){return Aa()(Le,Le)}function l0(t,e,n,r){var i=Dn(t,e,n),o;switch(r=_t(r==null?",f":r),r.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(o=Pd(i,a))&&(r.precision=o),lc(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=Fd(i,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=Od(i))&&(r.precision=o-(r.type==="%")*2);break}}return le(r)}function zn(t){var e=t.domain;return t.ticks=function(n){var r=e();return $o(r[0],r[r.length-1],n==null?10:n)},t.tickFormat=function(n,r){var i=e();return l0(i[0],i[i.length-1],n==null?10:n,r)},t.nice=function(n){n==null&&(n=10);var r=e(),i=0,o=r.length-1,a=r[i],s=r[o],c,u,f=10;for(s<a&&(u=a,a=s,s=u,u=i,i=o,o=u);f-- >0;){if(u=Md(a,s,n),u===c)return r[i]=a,r[o]=s,e(r);if(u>0)a=Math.floor(a/u)*u,s=Math.ceil(s/u)*u;else if(u<0)a=Math.ceil(a*u)/u,s=Math.floor(s*u)/u;else break;c=u}return t},t}function f0(){var t=u0();return t.copy=function(){return Ii(t,f0())},lt.apply(t,arguments),zn(t)}function d0(t){var e;function n(r){return r==null||isNaN(r=+r)?e:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(t=Array.from(r,Jc),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return d0(t).unknown(e)},t=arguments.length?Array.from(t,Jc):[0,1],zn(n)}function h0(t,e){t=t.slice();var n=0,r=t.length-1,i=t[n],o=t[r],a;return o<i&&(a=n,n=r,r=a,a=i,i=o,o=a),t[n]=e.floor(i),t[r]=e.ceil(o),t}function p0(t){return Math.log(t)}function m0(t){return Math.exp(t)}function zx(t){return-Math.log(-t)}function Rx(t){return-Math.exp(-t)}function jx(t){return isFinite(t)?+("1e"+t):t<0?0:t}function Ux(t){return t===10?jx:t===Math.E?Math.exp:e=>Math.pow(t,e)}function Gx(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function g0(t){return(e,n)=>-t(-e,n)}function eu(t){const e=t(p0,m0),n=e.domain;let r=10,i,o;function a(){return i=Gx(r),o=Ux(r),n()[0]<0?(i=g0(i),o=g0(o),t(zx,Rx)):t(p0,m0),e}return e.base=function(s){return arguments.length?(r=+s,a()):r},e.domain=function(s){return arguments.length?(n(s),a()):n()},e.ticks=s=>{const c=n();let u=c[0],f=c[c.length-1];const l=f<u;l&&([u,f]=[f,u]);let d=i(u),h=i(f),p,m;const y=s==null?10:+s;let g=[];if(!(r%1)&&h-d<y){if(d=Math.floor(d),h=Math.ceil(h),u>0){for(;d<=h;++d)for(p=1;p<r;++p)if(m=d<0?p/o(-d):p*o(d),!(m<u)){if(m>f)break;g.push(m)}}else for(;d<=h;++d)for(p=r-1;p>=1;--p)if(m=d>0?p/o(-d):p*o(d),!(m<u)){if(m>f)break;g.push(m)}g.length*2<y&&(g=$o(u,f,y))}else g=$o(d,h,Math.min(h-d,y)).map(o);return l?g.reverse():g},e.tickFormat=(s,c)=>{if(s==null&&(s=10),c==null&&(c=r===10?"s":","),typeof c!="function"&&(!(r%1)&&(c=_t(c)).precision==null&&(c.trim=!0),c=le(c)),s===1/0)return c;const u=Math.max(1,r*s/e.ticks().length);return f=>{let l=f/o(Math.round(i(f)));return l*r<r-.5&&(l*=r),l<=u?c(f):""}},e.nice=()=>n(h0(n(),{floor:s=>o(Math.floor(i(s))),ceil:s=>o(Math.ceil(i(s)))})),e}function tu(){const t=eu(Aa()).domain([1,10]);return t.copy=()=>Ii(t,tu()).base(t.base()),lt.apply(t,arguments),t}function y0(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function b0(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function nu(t){var e=1,n=t(y0(e),b0(e));return n.constant=function(r){return arguments.length?t(y0(e=+r),b0(e)):e},zn(n)}function v0(){var t=nu(Aa());return t.copy=function(){return Ii(t,v0()).constant(t.constant())},lt.apply(t,arguments)}function A0(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function Hx(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function Qx(t){return t<0?-t*t:t*t}function ru(t){var e=t(Le,Le),n=1;function r(){return n===1?t(Le,Le):n===.5?t(Hx,Qx):t(A0(n),A0(1/n))}return e.exponent=function(i){return arguments.length?(n=+i,r()):n},zn(e)}function iu(){var t=ru(Aa());return t.copy=function(){return Ii(t,iu()).exponent(t.exponent())},lt.apply(t,arguments),t}function Vx(){return iu.apply(null,arguments).exponent(.5)}function x0(){var t=[],e=[],n=[],r;function i(){var a=0,s=Math.max(1,e.length);for(n=new Array(s-1);++a<s;)n[a-1]=cc(t,a/s);return o}function o(a){return a==null||isNaN(a=+a)?r:e[hr(n,a)]}return o.invertExtent=function(a){var s=e.indexOf(a);return s<0?[NaN,NaN]:[s>0?n[s-1]:t[0],s<n.length?n[s]:t[t.length-1]]},o.domain=function(a){if(!arguments.length)return t.slice();t=[];for(let s of a)s!=null&&!isNaN(s=+s)&&t.push(s);return t.sort(Sn),i()},o.range=function(a){return arguments.length?(e=Array.from(a),i()):e.slice()},o.unknown=function(a){return arguments.length?(r=a,o):r},o.quantiles=function(){return n.slice()},o.copy=function(){return x0().domain(t).range(e).unknown(r)},lt.apply(o,arguments)}function w0(){var t=0,e=1,n=1,r=[.5],i=[0,1],o;function a(c){return c!=null&&c<=c?i[hr(r,c,0,n)]:o}function s(){var c=-1;for(r=new Array(n);++c<n;)r[c]=((c+1)*e-(c-n)*t)/(n+1);return a}return a.domain=function(c){return arguments.length?([t,e]=c,t=+t,e=+e,s()):[t,e]},a.range=function(c){return arguments.length?(n=(i=Array.from(c)).length-1,s()):i.slice()},a.invertExtent=function(c){var u=i.indexOf(c);return u<0?[NaN,NaN]:u<1?[t,r[0]]:u>=n?[r[n-1],e]:[r[u-1],r[u]]},a.unknown=function(c){return arguments.length&&(o=c),a},a.thresholds=function(){return r.slice()},a.copy=function(){return w0().domain([t,e]).range(i).unknown(o)},lt.apply(zn(a),arguments)}function C0(){var t=[.5],e=[0,1],n,r=1;function i(o){return o!=null&&o<=o?e[hr(t,o,0,r)]:n}return i.domain=function(o){return arguments.length?(t=Array.from(o),r=Math.min(t.length,e.length-1),i):t.slice()},i.range=function(o){return arguments.length?(e=Array.from(o),r=Math.min(t.length,e.length-1),i):e.slice()},i.invertExtent=function(o){var a=e.indexOf(o);return[t[a-1],t[a]]},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return C0().domain(t).range(e).unknown(n)},lt.apply(i,arguments)}function Yx(t){return new Date(t)}function _x(t){return t instanceof Date?+t:+new Date(+t)}function ou(t,e,n,r,i,o,a,s,c,u){var f=u0(),l=f.invert,d=f.domain,h=u(".%L"),p=u(":%S"),m=u("%I:%M"),y=u("%I %p"),g=u("%a %d"),x=u("%b %d"),A=u("%B"),C=u("%Y");function v(b){return(c(b)<b?h:s(b)<b?p:a(b)<b?m:o(b)<b?y:r(b)<b?i(b)<b?g:x:n(b)<b?A:C)(b)}return f.invert=function(b){return new Date(l(b))},f.domain=function(b){return arguments.length?d(Array.from(b,_x)):d().map(Yx)},f.ticks=function(b){var w=d();return t(w[0],w[w.length-1],b==null?10:b)},f.tickFormat=function(b,w){return w==null?v:u(w)},f.nice=function(b){var w=d();return(!b||typeof b.range!="function")&&(b=e(w[0],w[w.length-1],b==null?10:b)),b?d(h0(w,b)):f},f.copy=function(){return Ii(f,ou(t,e,n,r,i,o,a,s,c,u))},f}function Wx(){return lt.apply(ou(pv,mv,Xt,oa,li,Tn,yc,gc,Wt,Ec).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function Xx(){return lt.apply(ou(dv,hv,Zt,sa,fi,kn,Ac,vc,Wt,Dc).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function xa(){var t=0,e=1,n,r,i,o,a=Le,s=!1,c;function u(l){return l==null||isNaN(l=+l)?c:a(i===0?.5:(l=(o(l)-n)*i,s?Math.max(0,Math.min(1,l)):l))}u.domain=function(l){return arguments.length?([t,e]=l,n=o(t=+t),r=o(e=+e),i=n===r?0:1/(r-n),u):[t,e]},u.clamp=function(l){return arguments.length?(s=!!l,u):s},u.interpolator=function(l){return arguments.length?(a=l,u):a};function f(l){return function(d){var h,p;return arguments.length?([h,p]=d,a=l(h,p),u):[a(0),a(1)]}}return u.range=f(Jt),u.rangeRound=f(Ti),u.unknown=function(l){return arguments.length?(c=l,u):c},function(l){return o=l,n=l(t),r=l(e),i=n===r?0:1/(r-n),u}}function $t(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function au(){var t=zn(xa()(Le));return t.copy=function(){return $t(t,au())},qt.apply(t,arguments)}function S0(){var t=eu(xa()).domain([1,10]);return t.copy=function(){return $t(t,S0()).base(t.base())},qt.apply(t,arguments)}function E0(){var t=nu(xa());return t.copy=function(){return $t(t,E0()).constant(t.constant())},qt.apply(t,arguments)}function su(){var t=ru(xa());return t.copy=function(){return $t(t,su()).exponent(t.exponent())},qt.apply(t,arguments)}function Zx(){return su.apply(null,arguments).exponent(.5)}function wa(){var t=0,e=.5,n=1,r=1,i,o,a,s,c,u=Le,f,l=!1,d;function h(m){return isNaN(m=+m)?d:(m=.5+((m=+f(m))-o)*(r*m<r*o?s:c),u(l?Math.max(0,Math.min(1,m)):m))}h.domain=function(m){return arguments.length?([t,e,n]=m,i=f(t=+t),o=f(e=+e),a=f(n=+n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,h):[t,e,n]},h.clamp=function(m){return arguments.length?(l=!!m,h):l},h.interpolator=function(m){return arguments.length?(u=m,h):u};function p(m){return function(y){var g,x,A;return arguments.length?([g,x,A]=y,u=Kc(m,[g,x,A]),h):[u(0),u(.5),u(1)]}}return h.range=p(Jt),h.rangeRound=p(Ti),h.unknown=function(m){return arguments.length?(d=m,h):d},function(m){return f=m,i=m(t),o=m(e),a=m(n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,h}}function D0(){var t=zn(wa()(Le));return t.copy=function(){return $t(t,D0())},qt.apply(t,arguments)}function M0(){var t=eu(wa()).domain([.1,1,10]);return t.copy=function(){return $t(t,M0()).base(t.base())},qt.apply(t,arguments)}function T0(){var t=nu(wa());return t.copy=function(){return $t(t,T0()).constant(t.constant())},qt.apply(t,arguments)}function cu(){var t=ru(wa());return t.copy=function(){return $t(t,cu()).exponent(t.exponent())},qt.apply(t,arguments)}function qx(){return cu.apply(null,arguments).exponent(.5)}function uu(t,e,n){const r=t-e+n*2;return t?r>0?r:1:0}const Kx="identity",wr="linear",en="log",ki="pow",Ni="sqrt",Ca="symlog",I0="time",k0="utc",ht="sequential",Cr="diverging",lu="quantile",N0="quantize",L0="threshold",fu="ordinal",du="point",B0="band",hu="bin-ordinal",fe="continuous",Li="discrete",Bi="discretizing",Ze="interpolating",O0="temporal";function Jx(t){return function(e){let n=e[0],r=e[1],i;return r<n&&(i=n,n=r,r=i),[t.invert(n),t.invert(r)]}}function $x(t){return function(e){const n=t.range();let r=e[0],i=e[1],o=-1,a,s,c,u;for(i<r&&(s=r,r=i,i=s),c=0,u=n.length;c<u;++c)n[c]>=r&&n[c]<=i&&(o<0&&(o=c),a=c);if(!(o<0))return r=t.invertExtent(n[o]),i=t.invertExtent(n[a]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function pu(){const t=Bc().unknown(void 0),e=t.domain,n=t.range;let r=[0,1],i,o,a=!1,s=0,c=0,u=.5;delete t.unknown;function f(){const l=e().length,d=r[1]<r[0],h=r[1-d],p=uu(l,s,c);let m=r[d-0];i=(h-m)/(p||1),a&&(i=Math.floor(i)),m+=(h-m-i*(l-s))*u,o=i*(1-s),a&&(m=Math.round(m),o=Math.round(o));const y=Yt(l).map(g=>m+i*g);return n(d?y.reverse():y)}return t.domain=function(l){return arguments.length?(e(l),f()):e()},t.range=function(l){return arguments.length?(r=[+l[0],+l[1]],f()):r.slice()},t.rangeRound=function(l){return r=[+l[0],+l[1]],a=!0,f()},t.bandwidth=function(){return o},t.step=function(){return i},t.round=function(l){return arguments.length?(a=!!l,f()):a},t.padding=function(l){return arguments.length?(c=Math.max(0,Math.min(1,l)),s=c,f()):s},t.paddingInner=function(l){return arguments.length?(s=Math.max(0,Math.min(1,l)),f()):s},t.paddingOuter=function(l){return arguments.length?(c=Math.max(0,Math.min(1,l)),f()):c},t.align=function(l){return arguments.length?(u=Math.max(0,Math.min(1,l)),f()):u},t.invertRange=function(l){if(l[0]==null||l[1]==null)return;const d=r[1]<r[0],h=d?n().reverse():n(),p=h.length-1;let m=+l[0],y=+l[1],g,x,A;if(!(m!==m||y!==y)&&(y<m&&(A=m,m=y,y=A),!(y<h[0]||m>r[1-d])))return g=Math.max(0,nc(h,m)-1),x=m===y?g:nc(h,y)-1,m-h[g]>o+1e-10&&++g,d&&(A=g,g=p-x,x=p-A),g>x?void 0:e().slice(g,x+1)},t.invert=function(l){const d=t.invertRange([l,l]);return d&&d[0]},t.copy=function(){return pu().domain(e()).range(r).round(a).paddingInner(s).paddingOuter(c).align(u)},f()}function P0(t){const e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,t.copy=function(){return P0(e())},t}function ew(){return P0(pu().paddingInner(1))}var tw=Array.prototype.map;function nw(t){return tw.call(t,si)}const rw=Array.prototype.slice;function F0(){let t=[],e=[];function n(r){return r==null||r!==r?void 0:e[(hr(t,r)-1)%e.length]}return n.domain=function(r){return arguments.length?(t=nw(r),n):t.slice()},n.range=function(r){return arguments.length?(e=rw.call(r),n):e.slice()},n.tickFormat=function(r,i){return l0(t[0],tt(t),r==null?10:r,i)},n.copy=function(){return F0().domain(n.domain()).range(n.range())},n}const Sa={};function iw(t,e,n){const r=function(){const o=e();return o.invertRange||(o.invertRange=o.invert?Jx(o):o.invertExtent?$x(o):void 0),o.type=t,o};return r.metadata=qo(Ks(n)),r}function W(t,e,n){return arguments.length>1?(Sa[t]=iw(t,e,n),this):ow(t)?Sa[t]:void 0}W(Kx,d0),W(wr,f0,fe),W(en,tu,[fe,en]),W(ki,iu,fe),W(Ni,Vx,fe),W(Ca,v0,fe),W(I0,Wx,[fe,O0]),W(k0,Xx,[fe,O0]),W(ht,au,[fe,Ze]),W("".concat(ht,"-").concat(wr),au,[fe,Ze]),W("".concat(ht,"-").concat(en),S0,[fe,Ze,en]),W("".concat(ht,"-").concat(ki),su,[fe,Ze]),W("".concat(ht,"-").concat(Ni),Zx,[fe,Ze]),W("".concat(ht,"-").concat(Ca),E0,[fe,Ze]),W("".concat(Cr,"-").concat(wr),D0,[fe,Ze]),W("".concat(Cr,"-").concat(en),M0,[fe,Ze,en]),W("".concat(Cr,"-").concat(ki),cu,[fe,Ze]),W("".concat(Cr,"-").concat(Ni),qx,[fe,Ze]),W("".concat(Cr,"-").concat(Ca),T0,[fe,Ze]),W(lu,x0,[Bi,lu]),W(N0,w0,Bi),W(L0,C0,Bi),W(hu,F0,[Li,Bi]),W(fu,Bc,Li),W(B0,pu,Li),W(du,ew,Li);function ow(t){return Cn(Sa,t)}function Oi(t,e){const n=Sa[t];return n&&n.metadata[e]}function Re(t){return Oi(t,fe)}function tn(t){return Oi(t,Li)}function Sr(t){return Oi(t,Bi)}function z0(t){return Oi(t,en)}function Ea(t){return Oi(t,Ze)}function aw(t,e){const n=e[0],r=tt(e)-n;return function(i){return t(n+i*r)}}function Da(t,e,n){return Kc(R0(e||"rgb",n),t)}function sw(t,e){const n=new Array(e),r=e+1;for(let i=0;i<e;)n[i]=t(++i/r);return n}function R0(t,e){const n=Lx[cw(t)];return e!=null&&n&&n.gamma?n.gamma(e):n}function cw(t){return"interpolate"+t.toLowerCase().split("-").map(e=>e[0].toUpperCase()+e.slice(1)).join("")}const uw={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"},lw={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 j0(t){const e=t.length/6|0,n=new Array(e);for(let r=0;r<e;)n[r]="#"+t.slice(r*6,++r*6);return n}function U0(t,e){for(const n in t)mu(n,e(t[n]))}const G0={};U0(lw,j0),U0(uw,t=>Da(j0(t)));function mu(t,e){return t=t&&t.toLowerCase(),arguments.length>1?(G0[t]=e,this):G0[t]}const Wk="";function fw(t,e){var n=t.getBoundingClientRect();return[e.clientX-n.left-t.clientLeft,e.clientY-n.top-t.clientTop]}/**
7
7
  * @license
8
8
  * Copyright 2017 Google LLC
9
9
  * SPDX-License-Identifier: BSD-3-Clause
10
- */var pu;const Er=globalThis.trustedTypes,z0=Er?Er.createPolicy("lit-html",{createHTML:t=>t}):void 0,nn=`lit$${(Math.random()+"").slice(9)}$`,R0="?"+nn,cw=`<${R0}>`,Dr=document,Oi=(t="")=>Dr.createComment(t),Pi=t=>t===null||typeof t!="object"&&typeof t!="function",j0=Array.isArray,uw=t=>{var e;return j0(t)||typeof((e=t)===null||e===void 0?void 0:e[Symbol.iterator])=="function"},Fi=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,U0=/-->/g,G0=/>/g,Rn=/>|[ \n \r](?:([^\s"'>=/]+)([ \n \r]*=[ \n \r]*(?:[^ \n \r"'`<>=]|("|')|))|$)/g,H0=/'/g,Q0=/"/g,V0=/^(?:script|style|textarea|title)$/i,lw=t=>(e,...n)=>({_$litType$:t,strings:e,values:n}),D=lw(1),xe=Symbol.for("lit-noChange"),R=Symbol.for("lit-nothing"),Y0=new WeakMap,Be=(t,e,n)=>{var r,i;const o=(r=n==null?void 0:n.renderBefore)!==null&&r!==void 0?r:e;let a=o._$litPart$;if(a===void 0){const s=(i=n==null?void 0:n.renderBefore)!==null&&i!==void 0?i:null;o._$litPart$=a=new Ri(e.insertBefore(Oi(),s),s,void 0,n!=null?n:{})}return a._$AI(t),a},Mr=Dr.createTreeWalker(Dr,129,null,!1),fw=(t,e)=>{const n=t.length-1,r=[];let i,o=e===2?"<svg>":"",a=Fi;for(let c=0;c<n;c++){const u=t[c];let f,l,d=-1,h=0;for(;h<u.length&&(a.lastIndex=h,l=a.exec(u),l!==null);)h=a.lastIndex,a===Fi?l[1]==="!--"?a=U0:l[1]!==void 0?a=G0:l[2]!==void 0?(V0.test(l[2])&&(i=RegExp("</"+l[2],"g")),a=Rn):l[3]!==void 0&&(a=Rn):a===Rn?l[0]===">"?(a=i!=null?i:Fi,d=-1):l[1]===void 0?d=-2:(d=a.lastIndex-l[2].length,f=l[1],a=l[3]===void 0?Rn:l[3]==='"'?Q0:H0):a===Q0||a===H0?a=Rn:a===U0||a===G0?a=Fi:(a=Rn,i=void 0);const p=a===Rn&&t[c+1].startsWith("/>")?" ":"";o+=a===Fi?u+cw:d>=0?(r.push(f),u.slice(0,d)+"$lit$"+u.slice(d)+nn+p):u+nn+(d===-2?(r.push(void 0),c):p)}const s=o+(t[n]||"<?>")+(e===2?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[z0!==void 0?z0.createHTML(s):s,r]};class zi{constructor({strings:e,_$litType$:n},r){let i;this.parts=[];let o=0,a=0;const s=e.length-1,c=this.parts,[u,f]=fw(e,n);if(this.el=zi.createElement(u,r),Mr.currentNode=this.el.content,n===2){const l=this.el.content,d=l.firstChild;d.remove(),l.append(...d.childNodes)}for(;(i=Mr.nextNode())!==null&&c.length<s;){if(i.nodeType===1){if(i.hasAttributes()){const l=[];for(const d of i.getAttributeNames())if(d.endsWith("$lit$")||d.startsWith(nn)){const h=f[a++];if(l.push(d),h!==void 0){const p=i.getAttribute(h.toLowerCase()+"$lit$").split(nn),m=/([.?@])?(.*)/.exec(h);c.push({type:1,index:o,name:m[2],strings:p,ctor:m[1]==="."?hw:m[1]==="?"?mw:m[1]==="@"?gw:Da})}else c.push({type:6,index:o})}for(const d of l)i.removeAttribute(d)}if(V0.test(i.tagName)){const l=i.textContent.split(nn),d=l.length-1;if(d>0){i.textContent=Er?Er.emptyScript:"";for(let h=0;h<d;h++)i.append(l[h],Oi()),Mr.nextNode(),c.push({type:2,index:++o});i.append(l[d],Oi())}}}else if(i.nodeType===8)if(i.data===R0)c.push({type:2,index:o});else{let l=-1;for(;(l=i.data.indexOf(nn,l+1))!==-1;)c.push({type:7,index:o}),l+=nn.length-1}o++}}static createElement(e,n){const r=Dr.createElement("template");return r.innerHTML=e,r}}function Tr(t,e,n=t,r){var i,o,a,s;if(e===xe)return e;let c=r!==void 0?(i=n._$Cl)===null||i===void 0?void 0:i[r]:n._$Cu;const u=Pi(e)?void 0:e._$litDirective$;return(c==null?void 0:c.constructor)!==u&&((o=c==null?void 0:c._$AO)===null||o===void 0||o.call(c,!1),u===void 0?c=void 0:(c=new u(t),c._$AT(t,n,r)),r!==void 0?((a=(s=n)._$Cl)!==null&&a!==void 0?a:s._$Cl=[])[r]=c:n._$Cu=c),c!==void 0&&(e=Tr(t,c._$AS(t,e.values),c,r)),e}class dw{constructor(e,n){this.v=[],this._$AN=void 0,this._$AD=e,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}p(e){var n;const{el:{content:r},parts:i}=this._$AD,o=((n=e==null?void 0:e.creationScope)!==null&&n!==void 0?n:Dr).importNode(r,!0);Mr.currentNode=o;let a=Mr.nextNode(),s=0,c=0,u=i[0];for(;u!==void 0;){if(s===u.index){let f;u.type===2?f=new Ri(a,a.nextSibling,this,e):u.type===1?f=new u.ctor(a,u.name,u.strings,this,e):u.type===6&&(f=new yw(a,this,e)),this.v.push(f),u=i[++c]}s!==(u==null?void 0:u.index)&&(a=Mr.nextNode(),s++)}return o}m(e){let n=0;for(const r of this.v)r!==void 0&&(r.strings!==void 0?(r._$AI(e,r,n),n+=r.strings.length-2):r._$AI(e[n])),n++}}class Ri{constructor(e,n,r,i){var o;this.type=2,this._$AH=R,this._$AN=void 0,this._$AA=e,this._$AB=n,this._$AM=r,this.options=i,this._$Cg=(o=i==null?void 0:i.isConnected)===null||o===void 0||o}get _$AU(){var e,n;return(n=(e=this._$AM)===null||e===void 0?void 0:e._$AU)!==null&&n!==void 0?n:this._$Cg}get parentNode(){let e=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&e.nodeType===11&&(e=n.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,n=this){e=Tr(this,e,n),Pi(e)?e===R||e==null||e===""?(this._$AH!==R&&this._$AR(),this._$AH=R):e!==this._$AH&&e!==xe&&this.$(e):e._$litType$!==void 0?this.T(e):e.nodeType!==void 0?this.k(e):uw(e)?this.S(e):this.$(e)}M(e,n=this._$AB){return this._$AA.parentNode.insertBefore(e,n)}k(e){this._$AH!==e&&(this._$AR(),this._$AH=this.M(e))}$(e){this._$AH!==R&&Pi(this._$AH)?this._$AA.nextSibling.data=e:this.k(Dr.createTextNode(e)),this._$AH=e}T(e){var n;const{values:r,_$litType$:i}=e,o=typeof i=="number"?this._$AC(e):(i.el===void 0&&(i.el=zi.createElement(i.h,this.options)),i);if(((n=this._$AH)===null||n===void 0?void 0:n._$AD)===o)this._$AH.m(r);else{const a=new dw(o,this),s=a.p(this.options);a.m(r),this.k(s),this._$AH=a}}_$AC(e){let n=Y0.get(e.strings);return n===void 0&&Y0.set(e.strings,n=new zi(e)),n}S(e){j0(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let r,i=0;for(const o of e)i===n.length?n.push(r=new Ri(this.M(Oi()),this.M(Oi()),this,this.options)):r=n[i],r._$AI(o),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(e=this._$AA.nextSibling,n){var r;for((r=this._$AP)===null||r===void 0||r.call(this,!1,!0,n);e&&e!==this._$AB;){const i=e.nextSibling;e.remove(),e=i}}setConnected(e){var n;this._$AM===void 0&&(this._$Cg=e,(n=this._$AP)===null||n===void 0||n.call(this,e))}}class Da{constructor(e,n,r,i,o){this.type=1,this._$AH=R,this._$AN=void 0,this.element=e,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=R}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(e,n=this,r,i){const o=this.strings;let a=!1;if(o===void 0)e=Tr(this,e,n,0),a=!Pi(e)||e!==this._$AH&&e!==xe,a&&(this._$AH=e);else{const s=e;let c,u;for(e=o[0],c=0;c<o.length-1;c++)u=Tr(this,s[r+c],n,c),u===xe&&(u=this._$AH[c]),a||(a=!Pi(u)||u!==this._$AH[c]),u===R?e=R:e!==R&&(e+=(u!=null?u:"")+o[c+1]),this._$AH[c]=u}a&&!i&&this.C(e)}C(e){e===R?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e!=null?e:"")}}class hw extends Da{constructor(){super(...arguments),this.type=3}C(e){this.element[this.name]=e===R?void 0:e}}const pw=Er?Er.emptyScript:"";class mw extends Da{constructor(){super(...arguments),this.type=4}C(e){e&&e!==R?this.element.setAttribute(this.name,pw):this.element.removeAttribute(this.name)}}class gw extends Da{constructor(e,n,r,i,o){super(e,n,r,i,o),this.type=5}_$AI(e,n=this){var r;if((e=(r=Tr(this,e,n,0))!==null&&r!==void 0?r:R)===xe)return;const i=this._$AH,o=e===R&&i!==R||e.capture!==i.capture||e.once!==i.once||e.passive!==i.passive,a=e!==R&&(i===R||o);o&&this.element.removeEventListener(this.name,this,i),a&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){var n,r;typeof this._$AH=="function"?this._$AH.call((r=(n=this.options)===null||n===void 0?void 0:n.host)!==null&&r!==void 0?r:this.element,e):this._$AH.handleEvent(e)}}class yw{constructor(e,n,r){this.element=e,this.type=6,this._$AN=void 0,this._$AM=n,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(e){Tr(this,e)}}const _0=window.litHtmlPolyfillSupport;_0==null||_0(zi,Ri),((pu=globalThis.litHtmlVersions)!==null&&pu!==void 0?pu:globalThis.litHtmlVersions=[]).push("2.2.3");function W0(t,e){return t.length==e.length&&t.every((n,r)=>t[r]===e[r])}function bw(t,e,n,r){return t.length==e.length&&t.every((i,o)=>n(t[o])===r(e[o]))}function qe(t){return Array.isArray(t)?t:typeof t<"u"?[t]:[]}function je(t){return t[t.length-1]}const jn="gs-suppress-tooltip";class vw{constructor(e){this.container=e,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(e){e!=this._visible&&(this.element.style.display=e?null:"none",this._visible=e)}get visible(){return this._visible}get enabled(){var e;return(e=je(this.enabledStack))!=null?e:!0}pushEnabledState(e){this.enabledStack.push(e),e||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(e){this.mouseCoords=sw(this.container,e);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&Aw(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(e){if(!e||!this.enabled||this._isPenalty()){this.visible&&(Be("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}Be(e,this.element),this.visible=!0,this.updatePlacement()}clear(){this._previousTooltipDatum=void 0,this.setContent(void 0)}updateWithDatum(e,n){e!==this._previousTooltipDatum&&(this._previousTooltipDatum=e,n||(n=r=>Promise.resolve(D`${JSON.stringify(r)}`)),n(e).then(r=>this.setContent(r)).catch(r=>{if(r!=="debounced")throw r}))}_isPenalty(){return this._penaltyUntil&&this._penaltyUntil>performance.now()}}function Aw(t,e){let n=0;for(let r=0;r<t.length;r++)n+=(t[r]-e[r])**2;return Math.sqrt(n)}const xw="RawCode",ww="Literal",Cw="Property",Sw="Identifier",Ew="ArrayExpression",Dw="BinaryExpression",Mw="CallExpression",Tw="ConditionalExpression",Iw="LogicalExpression",kw="MemberExpression",Nw="ObjectExpression",Lw="UnaryExpression";function it(t){this.type=t}it.prototype.visit=function(t){let e,n,r;if(t(this))return 1;for(e=Bw(this),n=0,r=e.length;n<r;++n)if(e[n].visit(t))return 1};function Bw(t){switch(t.type){case Ew:return t.elements;case Dw:case Iw:return[t.left,t.right];case Mw:return[t.callee].concat(t.arguments);case Tw:return[t.test,t.consequent,t.alternate];case kw:return[t.object,t.property];case Nw:return t.properties;case Cw:return[t.key,t.value];case Lw:return[t.argument];case Sw:case ww:case xw:default:return[]}}var pt,N,S,we,X,Ma=1,ji=2,Un=3,rn=4,Ta=5,Gn=6,Oe=7,Ui=8,Ow=9;pt={},pt[Ma]="Boolean",pt[ji]="<end>",pt[Un]="Identifier",pt[rn]="Keyword",pt[Ta]="Null",pt[Gn]="Numeric",pt[Oe]="Punctuator",pt[Ui]="String",pt[Ow]="RegularExpression";var Pw="ArrayExpression",Fw="BinaryExpression",zw="CallExpression",Rw="ConditionalExpression",X0="Identifier",jw="Literal",Uw="LogicalExpression",Gw="MemberExpression",Hw="ObjectExpression",Qw="Property",Vw="UnaryExpression",ge="Unexpected token %0",Yw="Unexpected number",_w="Unexpected string",Ww="Unexpected identifier",Xw="Unexpected reserved word",Zw="Unexpected end of input",mu="Invalid regular expression",gu="Invalid regular expression: missing /",Z0="Octal literals are not allowed in strict mode.",qw="Duplicate data property in object literal not allowed in strict mode",ve="ILLEGAL",Gi="Disabled.",Kw=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]"),Jw=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 Ia(t,e){if(!t)throw new Error("ASSERT: "+e)}function Mt(t){return t>=48&&t<=57}function yu(t){return"0123456789abcdefABCDEF".indexOf(t)>=0}function Hi(t){return"01234567".indexOf(t)>=0}function $w(t){return t===32||t===9||t===11||t===12||t===160||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(t)>=0}function Qi(t){return t===10||t===13||t===8232||t===8233}function Vi(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&Kw.test(String.fromCharCode(t))}function ka(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&Jw.test(String.fromCharCode(t))}const e4={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 q0(){for(;S<we;){const t=N.charCodeAt(S);if($w(t)||Qi(t))++S;else break}}function bu(t){var e,n,r,i=0;for(n=t==="u"?4:2,e=0;e<n;++e)S<we&&yu(N[S])?(r=N[S++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):V({},ge,ve);return String.fromCharCode(i)}function t4(){var t,e,n,r;for(t=N[S],e=0,t==="}"&&V({},ge,ve);S<we&&(t=N[S++],!!yu(t));)e=e*16+"0123456789abcdef".indexOf(t.toLowerCase());return(e>1114111||t!=="}")&&V({},ge,ve),e<=65535?String.fromCharCode(e):(n=(e-65536>>10)+55296,r=(e-65536&1023)+56320,String.fromCharCode(n,r))}function K0(){var t,e;for(t=N.charCodeAt(S++),e=String.fromCharCode(t),t===92&&(N.charCodeAt(S)!==117&&V({},ge,ve),++S,t=bu("u"),(!t||t==="\\"||!Vi(t.charCodeAt(0)))&&V({},ge,ve),e=t);S<we&&(t=N.charCodeAt(S),!!ka(t));)++S,e+=String.fromCharCode(t),t===92&&(e=e.substr(0,e.length-1),N.charCodeAt(S)!==117&&V({},ge,ve),++S,t=bu("u"),(!t||t==="\\"||!ka(t.charCodeAt(0)))&&V({},ge,ve),e+=t);return e}function n4(){var t,e;for(t=S++;S<we;){if(e=N.charCodeAt(S),e===92)return S=t,K0();if(ka(e))++S;else break}return N.slice(t,S)}function r4(){var t,e,n;return t=S,e=N.charCodeAt(S)===92?K0():n4(),e.length===1?n=Un:e4.hasOwnProperty(e)?n=rn:e==="null"?n=Ta:e==="true"||e==="false"?n=Ma:n=Un,{type:n,value:e,start:t,end:S}}function vu(){var t=S,e=N.charCodeAt(S),n,r=N[S],i,o,a;switch(e){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++S,{type:Oe,value:String.fromCharCode(e),start:t,end:S};default:if(n=N.charCodeAt(S+1),n===61)switch(e){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return S+=2,{type:Oe,value:String.fromCharCode(e)+String.fromCharCode(n),start:t,end:S};case 33:case 61:return S+=2,N.charCodeAt(S)===61&&++S,{type:Oe,value:N.slice(t,S),start:t,end:S}}}if(a=N.substr(S,4),a===">>>=")return S+=4,{type:Oe,value:a,start:t,end:S};if(o=a.substr(0,3),o===">>>"||o==="<<="||o===">>=")return S+=3,{type:Oe,value:o,start:t,end:S};if(i=o.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return S+=2,{type:Oe,value:i,start:t,end:S};if(i==="//"&&V({},ge,ve),"<>=!+-*%&|^/".indexOf(r)>=0)return++S,{type:Oe,value:r,start:t,end:S};V({},ge,ve)}function i4(t){let e="";for(;S<we&&yu(N[S]);)e+=N[S++];return e.length===0&&V({},ge,ve),Vi(N.charCodeAt(S))&&V({},ge,ve),{type:Gn,value:parseInt("0x"+e,16),start:t,end:S}}function o4(t){let e="0"+N[S++];for(;S<we&&Hi(N[S]);)e+=N[S++];return(Vi(N.charCodeAt(S))||Mt(N.charCodeAt(S)))&&V({},ge,ve),{type:Gn,value:parseInt(e,8),octal:!0,start:t,end:S}}function J0(){var t,e,n;if(n=N[S],Ia(Mt(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),e=S,t="",n!=="."){if(t=N[S++],n=N[S],t==="0"){if(n==="x"||n==="X")return++S,i4(e);if(Hi(n))return o4(e);n&&Mt(n.charCodeAt(0))&&V({},ge,ve)}for(;Mt(N.charCodeAt(S));)t+=N[S++];n=N[S]}if(n==="."){for(t+=N[S++];Mt(N.charCodeAt(S));)t+=N[S++];n=N[S]}if(n==="e"||n==="E")if(t+=N[S++],n=N[S],(n==="+"||n==="-")&&(t+=N[S++]),Mt(N.charCodeAt(S)))for(;Mt(N.charCodeAt(S));)t+=N[S++];else V({},ge,ve);return Vi(N.charCodeAt(S))&&V({},ge,ve),{type:Gn,value:parseFloat(t),start:e,end:S}}function a4(){var t="",e,n,r,i,o=!1;for(e=N[S],Ia(e==="'"||e==='"',"String literal must starts with a quote"),n=S,++S;S<we;)if(r=N[S++],r===e){e="";break}else if(r==="\\")if(r=N[S++],!r||!Qi(r.charCodeAt(0)))switch(r){case"u":case"x":N[S]==="{"?(++S,t+=t4()):t+=bu(r);break;case"n":t+=`
11
- `;break;case"r":t+="\r";break;case"t":t+=" ";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v";break;default:Hi(r)?(i="01234567".indexOf(r),i!==0&&(o=!0),S<we&&Hi(N[S])&&(o=!0,i=i*8+"01234567".indexOf(N[S++]),"0123".indexOf(r)>=0&&S<we&&Hi(N[S])&&(i=i*8+"01234567".indexOf(N[S++]))),t+=String.fromCharCode(i)):t+=r;break}else r==="\r"&&N[S]===`
12
- `&&++S;else{if(Qi(r.charCodeAt(0)))break;t+=r}return e!==""&&V({},ge,ve),{type:Ui,value:t,octal:o,start:n,end:S}}function s4(t,e){let n=t;e.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(r,i)=>{if(parseInt(i,16)<=1114111)return"x";V({},mu)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{V({},mu)}try{return new RegExp(t,e)}catch{return null}}function c4(){var t,e,n,r,i;for(t=N[S],Ia(t==="/","Regular expression literal must start with a slash"),e=N[S++],n=!1,r=!1;S<we;)if(t=N[S++],e+=t,t==="\\")t=N[S++],Qi(t.charCodeAt(0))&&V({},gu),e+=t;else if(Qi(t.charCodeAt(0)))V({},gu);else if(n)t==="]"&&(n=!1);else if(t==="/"){r=!0;break}else t==="["&&(n=!0);return r||V({},gu),i=e.substr(1,e.length-2),{value:i,literal:e}}function u4(){var t,e,n;for(e="",n="";S<we&&(t=N[S],!!ka(t.charCodeAt(0)));)++S,t==="\\"&&S<we?V({},ge,ve):(n+=t,e+=t);return n.search(/[^gimuy]/g)>=0&&V({},mu,n),{value:n,literal:e}}function l4(){var t,e,n,r;return X=null,q0(),t=S,e=c4(),n=u4(),r=s4(e.value,n.value),{literal:e.literal+n.literal,value:r,regex:{pattern:e.value,flags:n.value},start:t,end:S}}function f4(t){return t.type===Un||t.type===rn||t.type===Ma||t.type===Ta}function $0(){if(q0(),S>=we)return{type:ji,start:S,end:S};const t=N.charCodeAt(S);return Vi(t)?r4():t===40||t===41||t===59?vu():t===39||t===34?a4():t===46?Mt(N.charCodeAt(S+1))?J0():vu():Mt(t)?J0():vu()}function Pe(){const t=X;return S=t.end,X=$0(),S=t.end,t}function ep(){const t=S;X=$0(),S=t}function d4(t){const e=new it(Pw);return e.elements=t,e}function tp(t,e,n){const r=new it(t==="||"||t==="&&"?Uw:Fw);return r.operator=t,r.left=e,r.right=n,r}function h4(t,e){const n=new it(zw);return n.callee=t,n.arguments=e,n}function p4(t,e,n){const r=new it(Rw);return r.test=t,r.consequent=e,r.alternate=n,r}function Au(t){const e=new it(X0);return e.name=t,e}function Yi(t){const e=new it(jw);return e.value=t.value,e.raw=N.slice(t.start,t.end),t.regex&&(e.raw==="//"&&(e.raw="/(?:)/"),e.regex=t.regex),e}function np(t,e,n){const r=new it(Gw);return r.computed=t==="[",r.object=e,r.property=n,r.computed||(n.member=!0),r}function m4(t){const e=new it(Hw);return e.properties=t,e}function rp(t,e,n){const r=new it(Qw);return r.key=e,r.value=n,r.kind=t,r}function g4(t,e){const n=new it(Vw);return n.operator=t,n.argument=e,n.prefix=!0,n}function V(t,e){var n,r=Array.prototype.slice.call(arguments,2),i=e.replace(/%(\d)/g,(o,a)=>(Ia(a<r.length,"Message reference must be in range"),r[a]));throw n=new Error(i),n.index=S,n.description=i,n}function Na(t){t.type===ji&&V(t,Zw),t.type===Gn&&V(t,Yw),t.type===Ui&&V(t,_w),t.type===Un&&V(t,Ww),t.type===rn&&V(t,Xw),V(t,ge,t.value)}function Ce(t){const e=Pe();(e.type!==Oe||e.value!==t)&&Na(e)}function J(t){return X.type===Oe&&X.value===t}function xu(t){return X.type===rn&&X.value===t}function y4(){const t=[];for(S=X.start,Ce("[");!J("]");)J(",")?(Pe(),t.push(null)):(t.push(Hn()),J("]")||Ce(","));return Pe(),d4(t)}function ip(){S=X.start;const t=Pe();return t.type===Ui||t.type===Gn?(t.octal&&V(t,Z0),Yi(t)):Au(t.value)}function b4(){var t,e,n,r;if(S=X.start,t=X,t.type===Un)return n=ip(),Ce(":"),r=Hn(),rp("init",n,r);if(t.type===ji||t.type===Oe)Na(t);else return e=ip(),Ce(":"),r=Hn(),rp("init",e,r)}function v4(){var t=[],e,n,r,i={},o=String;for(S=X.start,Ce("{");!J("}");)e=b4(),e.key.type===X0?n=e.key.name:n=o(e.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?V({},qw):i[r]=!0,t.push(e),J("}")||Ce(",");return Ce("}"),m4(t)}function A4(){Ce("(");const t=wu();return Ce(")"),t}const x4={if:1};function w4(){var t,e,n;if(J("("))return A4();if(J("["))return y4();if(J("{"))return v4();if(t=X.type,S=X.start,t===Un||x4[X.value])n=Au(Pe().value);else if(t===Ui||t===Gn)X.octal&&V(X,Z0),n=Yi(Pe());else{if(t===rn)throw new Error(Gi);t===Ma?(e=Pe(),e.value=e.value==="true",n=Yi(e)):t===Ta?(e=Pe(),e.value=null,n=Yi(e)):J("/")||J("/=")?(n=Yi(l4()),ep()):Na(Pe())}return n}function C4(){const t=[];if(Ce("("),!J(")"))for(;S<we&&(t.push(Hn()),!J(")"));)Ce(",");return Ce(")"),t}function S4(){S=X.start;const t=Pe();return f4(t)||Na(t),Au(t.value)}function E4(){return Ce("."),S4()}function D4(){Ce("[");const t=wu();return Ce("]"),t}function M4(){var t,e,n;for(t=w4();;)if(J("."))n=E4(),t=np(".",t,n);else if(J("("))e=C4(),t=h4(t,e);else if(J("["))n=D4(),t=np("[",t,n);else break;return t}function op(){const t=M4();if(X.type===Oe&&(J("++")||J("--")))throw new Error(Gi);return t}function La(){var t,e;if(X.type!==Oe&&X.type!==rn)e=op();else{if(J("++")||J("--"))throw new Error(Gi);if(J("+")||J("-")||J("~")||J("!"))t=Pe(),e=La(),e=g4(t.value,e);else{if(xu("delete")||xu("void")||xu("typeof"))throw new Error(Gi);e=op()}}return e}function ap(t){let e=0;if(t.type!==Oe&&t.type!==rn)return 0;switch(t.value){case"||":e=1;break;case"&&":e=2;break;case"|":e=3;break;case"^":e=4;break;case"&":e=5;break;case"==":case"!=":case"===":case"!==":e=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":e=7;break;case"<<":case">>":case">>>":e=8;break;case"+":case"-":e=9;break;case"*":case"/":case"%":e=11;break}return e}function T4(){var t,e,n,r,i,o,a,s,c,u;if(t=X,c=La(),r=X,i=ap(r),i===0)return c;for(r.prec=i,Pe(),e=[t,X],a=La(),o=[c,r,a];(i=ap(X))>0;){for(;o.length>2&&i<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,c=o.pop(),e.pop(),n=tp(s,c,a),o.push(n);r=Pe(),r.prec=i,o.push(r),e.push(X),n=La(),o.push(n)}for(u=o.length-1,n=o[u],e.pop();u>1;)e.pop(),n=tp(o[u-1].value,o[u-2],n),u-=2;return n}function Hn(){var t,e,n;return t=T4(),J("?")&&(Pe(),e=Hn(),Ce(":"),n=Hn(),t=p4(t,e,n)),t}function wu(){const t=Hn();if(J(","))throw new Error(Gi);return t}function I4(t){N=t,S=0,we=N.length,X=null,ep();const e=wu();if(X.type!==ji)throw new Error("Unexpect token after expression.");return e}var k4={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 N4(t){function e(a,s,c,u){let f=t(s[0]);return c&&(f=c+"("+f+")",c.lastIndexOf("new ",0)===0&&(f="("+f+")")),f+"."+a+(u<0?"":u===0?"()":"("+s.slice(1).map(t).join(",")+")")}function n(a,s,c){return u=>e(a,u,s,c)}const r="new Date",i="String",o="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(a){a.length<3&&oe("Missing arguments to clamp function."),a.length>3&&oe("Too many arguments to clamp function.");const s=a.map(t);return"Math.max("+s[1]+", Math.min("+s[2]+","+s[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:o,test:n("test",o),if:function(a){a.length<3&&oe("Missing arguments to if function."),a.length>3&&oe("Too many arguments to if function.");const s=a.map(t);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function L4(t){const e=t&&t.length-1;return e&&(t[0]==='"'&&t[e]==='"'||t[0]==="'"&&t[e]==="'")?t.slice(1,-1):t}function B4(t){t=t||{};const e=t.allowed?Zo(t.allowed):{},n=t.forbidden?Zo(t.forbidden):{},r=t.constants||k4,i=(t.functions||N4)(l),o=t.globalvar,a=t.fieldvar,s=ke(o)?o:p=>`${o}["${p}"]`;let c={},u={},f=0;function l(p){if(ee(p))return p;const m=d[p.type];return m==null&&oe("Unsupported type: "+p.type),m(p)}const d={Literal:p=>p.raw,Identifier:p=>{const m=p.name;return f>0?m:Cn(n,m)?oe("Illegal identifier: "+m):Cn(r,m)?r[m]:Cn(e,m)?m:(c[m]=1,s(m))},MemberExpression:p=>{const m=!p.computed,y=l(p.object);m&&(f+=1);const g=l(p.property);return y===a&&(u[L4(g)]=1),m&&(f-=1),y+(m?"."+g:"["+g+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&oe("Illegal callee type: "+p.callee.type);const m=p.callee.name,y=p.arguments,g=Cn(i,m)&&i[m];return g||oe("Unrecognized function: "+m),ke(g)?g(y):g+"("+y.map(l).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(l).join(",")+"]",BinaryExpression:p=>"("+l(p.left)+" "+p.operator+" "+l(p.right)+")",UnaryExpression:p=>"("+p.operator+l(p.argument)+")",ConditionalExpression:p=>"("+l(p.test)+"?"+l(p.consequent)+":"+l(p.alternate)+")",LogicalExpression:p=>"("+l(p.left)+p.operator+l(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(l).join(",")+"}",Property:p=>{f+=1;const m=l(p.key);return f-=1,m+":"+l(p.value)}};function h(p){const m={code:l(p),globals:Object.keys(c),fields:Object.keys(u)};return c={},u={},m}return h.functions=i,h.constants=r,h}function Cu(t,e={}){const n=B4({forbidden:[],allowed:["datum"],globalvar:"global",fieldvar:"datum"});try{const r=I4(t),i=n(r),o=Function("datum","global",`"use strict"; return (${i.code});`),a=s=>o(s,e);return a.fields=i.fields,a}catch(r){throw new Error(`Invalid expression: ${t}, ${r.message}`)}}function O4(){let t=0;const e=new Map,n=r=>{let i=e.get(r);return i===void 0&&(i=t++,e.set(r,i)),i};return n.addAll=r=>{for(const i of r)n(i)},n.invert=r=>{for(const i of e.entries())if(i[1]==r)return i[0]},n.domain=()=>[...e.keys()],n}function P4(t,e){const n={};e||(e=t.encoding);for(const[r,i]of Object.entries(e)){if(!i)continue;const o=t.unitView.getScaleResolution(Ke(i)&&i.resolutionChannel||r);n[r]=F4(e[r],o==null?void 0:o.getScale(),t.unitView.getAccessor(r),r)}return n}function F4(t,e,n,r){let i;if(ot(t)){const o=t.value;i=a=>o,i.constant=!0,i.constantValue=!0,i.accessor=void 0}else if(n)if(r=="text")i=o=>{},i.accessor=n,i.constant=n.constant;else{if(!e)throw new Error(`Missing scale! "${r}": ${JSON.stringify(t)}`);if(i=o=>e(n(o)),tn(e.type)){const o=O4();o.addAll(e.domain()),i.indexer=o}i.constant=n.constant,i.accessor=n,i.scale=e}else throw new Error(`Missing value or accessor (field, expr, datum) on channel "${r}": ${JSON.stringify(t)}`);return i.invert=e?o=>e.invert(o):o=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(t))},i.channelDef=t,i.applyMetadata=o=>{for(const a in i)a in i&&(o[a]=i[a]);return o},i}function ot(t){return t&&"value"in t}function Qn(t){return t&&"field"in t}function _i(t){return t&&"datum"in t}function Ke(t){return Qn(t)||_i(t)||Eu(t)||sp(t)}function Su(t,e){const n=t.mark.encoding[e];if(Ke(n))return n;throw new Error("Not a channel def with scale!")}function sp(t){return t&&"chrom"in t}function Eu(t){return t&&"expr"in t}const Wi=["x","y"],z4=["x2","y2"],R4=[...Wi,...z4];function cp(t){return Wi.includes(t)}function Xi(t){return R4.includes(t)}const Du={x:"x2",y:"y2"},up=Object.fromEntries(Object.entries(Du).map(t=>[t[1],t[0]]));function Zi(t){return t in up}function j4(t){const e=Du[t];if(e)return e;throw new Error(`${t} has no secondary channel!`)}function Ir(t){var e;return(e=up[t])!=null?e:t}function Vn(t){return["color","fill","stroke"].includes(Ir(t))}function Ba(t){return["shape","squeeze"].includes(t)}function lp(t){switch(t){case"shape":return["circle","square","triangle-up","cross","diamond","triangle-down","triangle-right","triangle-left"]}}function fp(t){if(!Ba(t))throw new Error("Not a discrete channel: "+t);const e=new Map(lp(t).map((n,r)=>[n,r]));return n=>{const r=e.get(n);if(r!==void 0)return r;throw new Error(`Invalid value for "${t}" channel: ${n}`)}}function Z(t,e=t){if(/^[A-Za-z0-9_]+$/.test(t)){const n=new Function("datum",`return datum[${JSON.stringify(t)}]`);return z(n,[t],e)}else return Ho(t)}class U4{constructor(){this.accessorCreators=[],this.register(e=>{if(Qn(e))try{const n=Z(e.field);return n.constant=!1,n.fields=wn(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(e=>Eu(e)?G4(e.expr):void 0),this.register(e=>{if(_i(e)){const r=hb(e.datum);return r.constant=!0,r.fields=[],r}})}register(e){this.accessorCreators.push(e)}createAccessor(e){for(const n of this.accessorCreators){const r=n(e);if(r)return r}}}function G4(t){const e=Cu(t);return e.constant=e.fields.length==0,e}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
10
+ */var gu;const Er=globalThis.trustedTypes,H0=Er?Er.createPolicy("lit-html",{createHTML:t=>t}):void 0,nn=`lit$${(Math.random()+"").slice(9)}$`,Q0="?"+nn,dw=`<${Q0}>`,Dr=document,Pi=(t="")=>Dr.createComment(t),Fi=t=>t===null||typeof t!="object"&&typeof t!="function",V0=Array.isArray,hw=t=>{var e;return V0(t)||typeof((e=t)===null||e===void 0?void 0:e[Symbol.iterator])=="function"},zi=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Y0=/-->/g,_0=/>/g,Rn=/>|[ \n \r](?:([^\s"'>=/]+)([ \n \r]*=[ \n \r]*(?:[^ \n \r"'`<>=]|("|')|))|$)/g,W0=/'/g,X0=/"/g,Z0=/^(?:script|style|textarea|title)$/i,pw=t=>(e,...n)=>({_$litType$:t,strings:e,values:n}),D=pw(1),we=Symbol.for("lit-noChange"),R=Symbol.for("lit-nothing"),q0=new WeakMap,Be=(t,e,n)=>{var r,i;const o=(r=n==null?void 0:n.renderBefore)!==null&&r!==void 0?r:e;let a=o._$litPart$;if(a===void 0){const s=(i=n==null?void 0:n.renderBefore)!==null&&i!==void 0?i:null;o._$litPart$=a=new ji(e.insertBefore(Pi(),s),s,void 0,n!=null?n:{})}return a._$AI(t),a},Mr=Dr.createTreeWalker(Dr,129,null,!1),mw=(t,e)=>{const n=t.length-1,r=[];let i,o=e===2?"<svg>":"",a=zi;for(let c=0;c<n;c++){const u=t[c];let f,l,d=-1,h=0;for(;h<u.length&&(a.lastIndex=h,l=a.exec(u),l!==null);)h=a.lastIndex,a===zi?l[1]==="!--"?a=Y0:l[1]!==void 0?a=_0:l[2]!==void 0?(Z0.test(l[2])&&(i=RegExp("</"+l[2],"g")),a=Rn):l[3]!==void 0&&(a=Rn):a===Rn?l[0]===">"?(a=i!=null?i:zi,d=-1):l[1]===void 0?d=-2:(d=a.lastIndex-l[2].length,f=l[1],a=l[3]===void 0?Rn:l[3]==='"'?X0:W0):a===X0||a===W0?a=Rn:a===Y0||a===_0?a=zi:(a=Rn,i=void 0);const p=a===Rn&&t[c+1].startsWith("/>")?" ":"";o+=a===zi?u+dw:d>=0?(r.push(f),u.slice(0,d)+"$lit$"+u.slice(d)+nn+p):u+nn+(d===-2?(r.push(void 0),c):p)}const s=o+(t[n]||"<?>")+(e===2?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[H0!==void 0?H0.createHTML(s):s,r]};class Ri{constructor({strings:e,_$litType$:n},r){let i;this.parts=[];let o=0,a=0;const s=e.length-1,c=this.parts,[u,f]=mw(e,n);if(this.el=Ri.createElement(u,r),Mr.currentNode=this.el.content,n===2){const l=this.el.content,d=l.firstChild;d.remove(),l.append(...d.childNodes)}for(;(i=Mr.nextNode())!==null&&c.length<s;){if(i.nodeType===1){if(i.hasAttributes()){const l=[];for(const d of i.getAttributeNames())if(d.endsWith("$lit$")||d.startsWith(nn)){const h=f[a++];if(l.push(d),h!==void 0){const p=i.getAttribute(h.toLowerCase()+"$lit$").split(nn),m=/([.?@])?(.*)/.exec(h);c.push({type:1,index:o,name:m[2],strings:p,ctor:m[1]==="."?yw:m[1]==="?"?vw:m[1]==="@"?Aw:Ma})}else c.push({type:6,index:o})}for(const d of l)i.removeAttribute(d)}if(Z0.test(i.tagName)){const l=i.textContent.split(nn),d=l.length-1;if(d>0){i.textContent=Er?Er.emptyScript:"";for(let h=0;h<d;h++)i.append(l[h],Pi()),Mr.nextNode(),c.push({type:2,index:++o});i.append(l[d],Pi())}}}else if(i.nodeType===8)if(i.data===Q0)c.push({type:2,index:o});else{let l=-1;for(;(l=i.data.indexOf(nn,l+1))!==-1;)c.push({type:7,index:o}),l+=nn.length-1}o++}}static createElement(e,n){const r=Dr.createElement("template");return r.innerHTML=e,r}}function Tr(t,e,n=t,r){var i,o,a,s;if(e===we)return e;let c=r!==void 0?(i=n._$Cl)===null||i===void 0?void 0:i[r]:n._$Cu;const u=Fi(e)?void 0:e._$litDirective$;return(c==null?void 0:c.constructor)!==u&&((o=c==null?void 0:c._$AO)===null||o===void 0||o.call(c,!1),u===void 0?c=void 0:(c=new u(t),c._$AT(t,n,r)),r!==void 0?((a=(s=n)._$Cl)!==null&&a!==void 0?a:s._$Cl=[])[r]=c:n._$Cu=c),c!==void 0&&(e=Tr(t,c._$AS(t,e.values),c,r)),e}class gw{constructor(e,n){this.v=[],this._$AN=void 0,this._$AD=e,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}p(e){var n;const{el:{content:r},parts:i}=this._$AD,o=((n=e==null?void 0:e.creationScope)!==null&&n!==void 0?n:Dr).importNode(r,!0);Mr.currentNode=o;let a=Mr.nextNode(),s=0,c=0,u=i[0];for(;u!==void 0;){if(s===u.index){let f;u.type===2?f=new ji(a,a.nextSibling,this,e):u.type===1?f=new u.ctor(a,u.name,u.strings,this,e):u.type===6&&(f=new xw(a,this,e)),this.v.push(f),u=i[++c]}s!==(u==null?void 0:u.index)&&(a=Mr.nextNode(),s++)}return o}m(e){let n=0;for(const r of this.v)r!==void 0&&(r.strings!==void 0?(r._$AI(e,r,n),n+=r.strings.length-2):r._$AI(e[n])),n++}}class ji{constructor(e,n,r,i){var o;this.type=2,this._$AH=R,this._$AN=void 0,this._$AA=e,this._$AB=n,this._$AM=r,this.options=i,this._$Cg=(o=i==null?void 0:i.isConnected)===null||o===void 0||o}get _$AU(){var e,n;return(n=(e=this._$AM)===null||e===void 0?void 0:e._$AU)!==null&&n!==void 0?n:this._$Cg}get parentNode(){let e=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&e.nodeType===11&&(e=n.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,n=this){e=Tr(this,e,n),Fi(e)?e===R||e==null||e===""?(this._$AH!==R&&this._$AR(),this._$AH=R):e!==this._$AH&&e!==we&&this.$(e):e._$litType$!==void 0?this.T(e):e.nodeType!==void 0?this.k(e):hw(e)?this.S(e):this.$(e)}M(e,n=this._$AB){return this._$AA.parentNode.insertBefore(e,n)}k(e){this._$AH!==e&&(this._$AR(),this._$AH=this.M(e))}$(e){this._$AH!==R&&Fi(this._$AH)?this._$AA.nextSibling.data=e:this.k(Dr.createTextNode(e)),this._$AH=e}T(e){var n;const{values:r,_$litType$:i}=e,o=typeof i=="number"?this._$AC(e):(i.el===void 0&&(i.el=Ri.createElement(i.h,this.options)),i);if(((n=this._$AH)===null||n===void 0?void 0:n._$AD)===o)this._$AH.m(r);else{const a=new gw(o,this),s=a.p(this.options);a.m(r),this.k(s),this._$AH=a}}_$AC(e){let n=q0.get(e.strings);return n===void 0&&q0.set(e.strings,n=new Ri(e)),n}S(e){V0(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let r,i=0;for(const o of e)i===n.length?n.push(r=new ji(this.M(Pi()),this.M(Pi()),this,this.options)):r=n[i],r._$AI(o),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(e=this._$AA.nextSibling,n){var r;for((r=this._$AP)===null||r===void 0||r.call(this,!1,!0,n);e&&e!==this._$AB;){const i=e.nextSibling;e.remove(),e=i}}setConnected(e){var n;this._$AM===void 0&&(this._$Cg=e,(n=this._$AP)===null||n===void 0||n.call(this,e))}}class Ma{constructor(e,n,r,i,o){this.type=1,this._$AH=R,this._$AN=void 0,this.element=e,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=R}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(e,n=this,r,i){const o=this.strings;let a=!1;if(o===void 0)e=Tr(this,e,n,0),a=!Fi(e)||e!==this._$AH&&e!==we,a&&(this._$AH=e);else{const s=e;let c,u;for(e=o[0],c=0;c<o.length-1;c++)u=Tr(this,s[r+c],n,c),u===we&&(u=this._$AH[c]),a||(a=!Fi(u)||u!==this._$AH[c]),u===R?e=R:e!==R&&(e+=(u!=null?u:"")+o[c+1]),this._$AH[c]=u}a&&!i&&this.C(e)}C(e){e===R?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e!=null?e:"")}}class yw extends Ma{constructor(){super(...arguments),this.type=3}C(e){this.element[this.name]=e===R?void 0:e}}const bw=Er?Er.emptyScript:"";class vw extends Ma{constructor(){super(...arguments),this.type=4}C(e){e&&e!==R?this.element.setAttribute(this.name,bw):this.element.removeAttribute(this.name)}}class Aw extends Ma{constructor(e,n,r,i,o){super(e,n,r,i,o),this.type=5}_$AI(e,n=this){var r;if((e=(r=Tr(this,e,n,0))!==null&&r!==void 0?r:R)===we)return;const i=this._$AH,o=e===R&&i!==R||e.capture!==i.capture||e.once!==i.once||e.passive!==i.passive,a=e!==R&&(i===R||o);o&&this.element.removeEventListener(this.name,this,i),a&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){var n,r;typeof this._$AH=="function"?this._$AH.call((r=(n=this.options)===null||n===void 0?void 0:n.host)!==null&&r!==void 0?r:this.element,e):this._$AH.handleEvent(e)}}class xw{constructor(e,n,r){this.element=e,this.type=6,this._$AN=void 0,this._$AM=n,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(e){Tr(this,e)}}const K0=window.litHtmlPolyfillSupport;K0==null||K0(Ri,ji),((gu=globalThis.litHtmlVersions)!==null&&gu!==void 0?gu:globalThis.litHtmlVersions=[]).push("2.2.3");function J0(t,e){return t.length==e.length&&t.every((n,r)=>t[r]===e[r])}function ww(t,e,n,r){return t.length==e.length&&t.every((i,o)=>n(t[o])===r(e[o]))}function qe(t){return Array.isArray(t)?t:typeof t<"u"?[t]:[]}function je(t){return t[t.length-1]}const jn="gs-suppress-tooltip";class Cw{constructor(e){this.container=e,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(e){e!=this._visible&&(this.element.style.display=e?null:"none",this._visible=e)}get visible(){return this._visible}get enabled(){var e;return(e=je(this.enabledStack))!=null?e:!0}pushEnabledState(e){this.enabledStack.push(e),e||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(e){this.mouseCoords=fw(this.container,e);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&Sw(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(e){if(!e||!this.enabled||this._isPenalty()){this.visible&&(Be("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}Be(e,this.element),this.visible=!0,this.updatePlacement()}clear(){this._previousTooltipDatum=void 0,this.setContent(void 0)}updateWithDatum(e,n){e!==this._previousTooltipDatum&&(this._previousTooltipDatum=e,n||(n=r=>Promise.resolve(D`${JSON.stringify(r)}`)),n(e).then(r=>this.setContent(r)).catch(r=>{if(r!=="debounced")throw r}))}_isPenalty(){return this._penaltyUntil&&this._penaltyUntil>performance.now()}}function Sw(t,e){let n=0;for(let r=0;r<t.length;r++)n+=(t[r]-e[r])**2;return Math.sqrt(n)}const Ew="RawCode",Dw="Literal",Mw="Property",Tw="Identifier",Iw="ArrayExpression",kw="BinaryExpression",Nw="CallExpression",Lw="ConditionalExpression",Bw="LogicalExpression",Ow="MemberExpression",Pw="ObjectExpression",Fw="UnaryExpression";function it(t){this.type=t}it.prototype.visit=function(t){let e,n,r;if(t(this))return 1;for(e=zw(this),n=0,r=e.length;n<r;++n)if(e[n].visit(t))return 1};function zw(t){switch(t.type){case Iw:return t.elements;case kw:case Bw:return[t.left,t.right];case Nw:return[t.callee].concat(t.arguments);case Lw:return[t.test,t.consequent,t.alternate];case Ow:return[t.object,t.property];case Pw:return t.properties;case Mw:return[t.key,t.value];case Fw:return[t.argument];case Tw:case Dw:case Ew:default:return[]}}var pt,N,S,Ce,X,Ta=1,Ui=2,Un=3,rn=4,Ia=5,Gn=6,Oe=7,Gi=8,Rw=9;pt={},pt[Ta]="Boolean",pt[Ui]="<end>",pt[Un]="Identifier",pt[rn]="Keyword",pt[Ia]="Null",pt[Gn]="Numeric",pt[Oe]="Punctuator",pt[Gi]="String",pt[Rw]="RegularExpression";var jw="ArrayExpression",Uw="BinaryExpression",Gw="CallExpression",Hw="ConditionalExpression",$0="Identifier",Qw="Literal",Vw="LogicalExpression",Yw="MemberExpression",_w="ObjectExpression",Ww="Property",Xw="UnaryExpression",ge="Unexpected token %0",Zw="Unexpected number",qw="Unexpected string",Kw="Unexpected identifier",Jw="Unexpected reserved word",$w="Unexpected end of input",yu="Invalid regular expression",bu="Invalid regular expression: missing /",ep="Octal literals are not allowed in strict mode.",e4="Duplicate data property in object literal not allowed in strict mode",ve="ILLEGAL",Hi="Disabled.",t4=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]"),n4=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 ka(t,e){if(!t)throw new Error("ASSERT: "+e)}function Mt(t){return t>=48&&t<=57}function vu(t){return"0123456789abcdefABCDEF".indexOf(t)>=0}function Qi(t){return"01234567".indexOf(t)>=0}function r4(t){return t===32||t===9||t===11||t===12||t===160||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(t)>=0}function Vi(t){return t===10||t===13||t===8232||t===8233}function Yi(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&t4.test(String.fromCharCode(t))}function Na(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&n4.test(String.fromCharCode(t))}const i4={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 tp(){for(;S<Ce;){const t=N.charCodeAt(S);if(r4(t)||Vi(t))++S;else break}}function Au(t){var e,n,r,i=0;for(n=t==="u"?4:2,e=0;e<n;++e)S<Ce&&vu(N[S])?(r=N[S++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):V({},ge,ve);return String.fromCharCode(i)}function o4(){var t,e,n,r;for(t=N[S],e=0,t==="}"&&V({},ge,ve);S<Ce&&(t=N[S++],!!vu(t));)e=e*16+"0123456789abcdef".indexOf(t.toLowerCase());return(e>1114111||t!=="}")&&V({},ge,ve),e<=65535?String.fromCharCode(e):(n=(e-65536>>10)+55296,r=(e-65536&1023)+56320,String.fromCharCode(n,r))}function np(){var t,e;for(t=N.charCodeAt(S++),e=String.fromCharCode(t),t===92&&(N.charCodeAt(S)!==117&&V({},ge,ve),++S,t=Au("u"),(!t||t==="\\"||!Yi(t.charCodeAt(0)))&&V({},ge,ve),e=t);S<Ce&&(t=N.charCodeAt(S),!!Na(t));)++S,e+=String.fromCharCode(t),t===92&&(e=e.substr(0,e.length-1),N.charCodeAt(S)!==117&&V({},ge,ve),++S,t=Au("u"),(!t||t==="\\"||!Na(t.charCodeAt(0)))&&V({},ge,ve),e+=t);return e}function a4(){var t,e;for(t=S++;S<Ce;){if(e=N.charCodeAt(S),e===92)return S=t,np();if(Na(e))++S;else break}return N.slice(t,S)}function s4(){var t,e,n;return t=S,e=N.charCodeAt(S)===92?np():a4(),e.length===1?n=Un:i4.hasOwnProperty(e)?n=rn:e==="null"?n=Ia:e==="true"||e==="false"?n=Ta:n=Un,{type:n,value:e,start:t,end:S}}function xu(){var t=S,e=N.charCodeAt(S),n,r=N[S],i,o,a;switch(e){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++S,{type:Oe,value:String.fromCharCode(e),start:t,end:S};default:if(n=N.charCodeAt(S+1),n===61)switch(e){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return S+=2,{type:Oe,value:String.fromCharCode(e)+String.fromCharCode(n),start:t,end:S};case 33:case 61:return S+=2,N.charCodeAt(S)===61&&++S,{type:Oe,value:N.slice(t,S),start:t,end:S}}}if(a=N.substr(S,4),a===">>>=")return S+=4,{type:Oe,value:a,start:t,end:S};if(o=a.substr(0,3),o===">>>"||o==="<<="||o===">>=")return S+=3,{type:Oe,value:o,start:t,end:S};if(i=o.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return S+=2,{type:Oe,value:i,start:t,end:S};if(i==="//"&&V({},ge,ve),"<>=!+-*%&|^/".indexOf(r)>=0)return++S,{type:Oe,value:r,start:t,end:S};V({},ge,ve)}function c4(t){let e="";for(;S<Ce&&vu(N[S]);)e+=N[S++];return e.length===0&&V({},ge,ve),Yi(N.charCodeAt(S))&&V({},ge,ve),{type:Gn,value:parseInt("0x"+e,16),start:t,end:S}}function u4(t){let e="0"+N[S++];for(;S<Ce&&Qi(N[S]);)e+=N[S++];return(Yi(N.charCodeAt(S))||Mt(N.charCodeAt(S)))&&V({},ge,ve),{type:Gn,value:parseInt(e,8),octal:!0,start:t,end:S}}function rp(){var t,e,n;if(n=N[S],ka(Mt(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),e=S,t="",n!=="."){if(t=N[S++],n=N[S],t==="0"){if(n==="x"||n==="X")return++S,c4(e);if(Qi(n))return u4(e);n&&Mt(n.charCodeAt(0))&&V({},ge,ve)}for(;Mt(N.charCodeAt(S));)t+=N[S++];n=N[S]}if(n==="."){for(t+=N[S++];Mt(N.charCodeAt(S));)t+=N[S++];n=N[S]}if(n==="e"||n==="E")if(t+=N[S++],n=N[S],(n==="+"||n==="-")&&(t+=N[S++]),Mt(N.charCodeAt(S)))for(;Mt(N.charCodeAt(S));)t+=N[S++];else V({},ge,ve);return Yi(N.charCodeAt(S))&&V({},ge,ve),{type:Gn,value:parseFloat(t),start:e,end:S}}function l4(){var t="",e,n,r,i,o=!1;for(e=N[S],ka(e==="'"||e==='"',"String literal must starts with a quote"),n=S,++S;S<Ce;)if(r=N[S++],r===e){e="";break}else if(r==="\\")if(r=N[S++],!r||!Vi(r.charCodeAt(0)))switch(r){case"u":case"x":N[S]==="{"?(++S,t+=o4()):t+=Au(r);break;case"n":t+=`
11
+ `;break;case"r":t+="\r";break;case"t":t+=" ";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v";break;default:Qi(r)?(i="01234567".indexOf(r),i!==0&&(o=!0),S<Ce&&Qi(N[S])&&(o=!0,i=i*8+"01234567".indexOf(N[S++]),"0123".indexOf(r)>=0&&S<Ce&&Qi(N[S])&&(i=i*8+"01234567".indexOf(N[S++]))),t+=String.fromCharCode(i)):t+=r;break}else r==="\r"&&N[S]===`
12
+ `&&++S;else{if(Vi(r.charCodeAt(0)))break;t+=r}return e!==""&&V({},ge,ve),{type:Gi,value:t,octal:o,start:n,end:S}}function f4(t,e){let n=t;e.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(r,i)=>{if(parseInt(i,16)<=1114111)return"x";V({},yu)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{V({},yu)}try{return new RegExp(t,e)}catch{return null}}function d4(){var t,e,n,r,i;for(t=N[S],ka(t==="/","Regular expression literal must start with a slash"),e=N[S++],n=!1,r=!1;S<Ce;)if(t=N[S++],e+=t,t==="\\")t=N[S++],Vi(t.charCodeAt(0))&&V({},bu),e+=t;else if(Vi(t.charCodeAt(0)))V({},bu);else if(n)t==="]"&&(n=!1);else if(t==="/"){r=!0;break}else t==="["&&(n=!0);return r||V({},bu),i=e.substr(1,e.length-2),{value:i,literal:e}}function h4(){var t,e,n;for(e="",n="";S<Ce&&(t=N[S],!!Na(t.charCodeAt(0)));)++S,t==="\\"&&S<Ce?V({},ge,ve):(n+=t,e+=t);return n.search(/[^gimuy]/g)>=0&&V({},yu,n),{value:n,literal:e}}function p4(){var t,e,n,r;return X=null,tp(),t=S,e=d4(),n=h4(),r=f4(e.value,n.value),{literal:e.literal+n.literal,value:r,regex:{pattern:e.value,flags:n.value},start:t,end:S}}function m4(t){return t.type===Un||t.type===rn||t.type===Ta||t.type===Ia}function ip(){if(tp(),S>=Ce)return{type:Ui,start:S,end:S};const t=N.charCodeAt(S);return Yi(t)?s4():t===40||t===41||t===59?xu():t===39||t===34?l4():t===46?Mt(N.charCodeAt(S+1))?rp():xu():Mt(t)?rp():xu()}function Pe(){const t=X;return S=t.end,X=ip(),S=t.end,t}function op(){const t=S;X=ip(),S=t}function g4(t){const e=new it(jw);return e.elements=t,e}function ap(t,e,n){const r=new it(t==="||"||t==="&&"?Vw:Uw);return r.operator=t,r.left=e,r.right=n,r}function y4(t,e){const n=new it(Gw);return n.callee=t,n.arguments=e,n}function b4(t,e,n){const r=new it(Hw);return r.test=t,r.consequent=e,r.alternate=n,r}function wu(t){const e=new it($0);return e.name=t,e}function _i(t){const e=new it(Qw);return e.value=t.value,e.raw=N.slice(t.start,t.end),t.regex&&(e.raw==="//"&&(e.raw="/(?:)/"),e.regex=t.regex),e}function sp(t,e,n){const r=new it(Yw);return r.computed=t==="[",r.object=e,r.property=n,r.computed||(n.member=!0),r}function v4(t){const e=new it(_w);return e.properties=t,e}function cp(t,e,n){const r=new it(Ww);return r.key=e,r.value=n,r.kind=t,r}function A4(t,e){const n=new it(Xw);return n.operator=t,n.argument=e,n.prefix=!0,n}function V(t,e){var n,r=Array.prototype.slice.call(arguments,2),i=e.replace(/%(\d)/g,(o,a)=>(ka(a<r.length,"Message reference must be in range"),r[a]));throw n=new Error(i),n.index=S,n.description=i,n}function La(t){t.type===Ui&&V(t,$w),t.type===Gn&&V(t,Zw),t.type===Gi&&V(t,qw),t.type===Un&&V(t,Kw),t.type===rn&&V(t,Jw),V(t,ge,t.value)}function Se(t){const e=Pe();(e.type!==Oe||e.value!==t)&&La(e)}function K(t){return X.type===Oe&&X.value===t}function Cu(t){return X.type===rn&&X.value===t}function x4(){const t=[];for(S=X.start,Se("[");!K("]");)K(",")?(Pe(),t.push(null)):(t.push(Hn()),K("]")||Se(","));return Pe(),g4(t)}function up(){S=X.start;const t=Pe();return t.type===Gi||t.type===Gn?(t.octal&&V(t,ep),_i(t)):wu(t.value)}function w4(){var t,e,n,r;if(S=X.start,t=X,t.type===Un)return n=up(),Se(":"),r=Hn(),cp("init",n,r);if(t.type===Ui||t.type===Oe)La(t);else return e=up(),Se(":"),r=Hn(),cp("init",e,r)}function C4(){var t=[],e,n,r,i={},o=String;for(S=X.start,Se("{");!K("}");)e=w4(),e.key.type===$0?n=e.key.name:n=o(e.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?V({},e4):i[r]=!0,t.push(e),K("}")||Se(",");return Se("}"),v4(t)}function S4(){Se("(");const t=Su();return Se(")"),t}const E4={if:1};function D4(){var t,e,n;if(K("("))return S4();if(K("["))return x4();if(K("{"))return C4();if(t=X.type,S=X.start,t===Un||E4[X.value])n=wu(Pe().value);else if(t===Gi||t===Gn)X.octal&&V(X,ep),n=_i(Pe());else{if(t===rn)throw new Error(Hi);t===Ta?(e=Pe(),e.value=e.value==="true",n=_i(e)):t===Ia?(e=Pe(),e.value=null,n=_i(e)):K("/")||K("/=")?(n=_i(p4()),op()):La(Pe())}return n}function M4(){const t=[];if(Se("("),!K(")"))for(;S<Ce&&(t.push(Hn()),!K(")"));)Se(",");return Se(")"),t}function T4(){S=X.start;const t=Pe();return m4(t)||La(t),wu(t.value)}function I4(){return Se("."),T4()}function k4(){Se("[");const t=Su();return Se("]"),t}function N4(){var t,e,n;for(t=D4();;)if(K("."))n=I4(),t=sp(".",t,n);else if(K("("))e=M4(),t=y4(t,e);else if(K("["))n=k4(),t=sp("[",t,n);else break;return t}function lp(){const t=N4();if(X.type===Oe&&(K("++")||K("--")))throw new Error(Hi);return t}function Ba(){var t,e;if(X.type!==Oe&&X.type!==rn)e=lp();else{if(K("++")||K("--"))throw new Error(Hi);if(K("+")||K("-")||K("~")||K("!"))t=Pe(),e=Ba(),e=A4(t.value,e);else{if(Cu("delete")||Cu("void")||Cu("typeof"))throw new Error(Hi);e=lp()}}return e}function fp(t){let e=0;if(t.type!==Oe&&t.type!==rn)return 0;switch(t.value){case"||":e=1;break;case"&&":e=2;break;case"|":e=3;break;case"^":e=4;break;case"&":e=5;break;case"==":case"!=":case"===":case"!==":e=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":e=7;break;case"<<":case">>":case">>>":e=8;break;case"+":case"-":e=9;break;case"*":case"/":case"%":e=11;break}return e}function L4(){var t,e,n,r,i,o,a,s,c,u;if(t=X,c=Ba(),r=X,i=fp(r),i===0)return c;for(r.prec=i,Pe(),e=[t,X],a=Ba(),o=[c,r,a];(i=fp(X))>0;){for(;o.length>2&&i<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,c=o.pop(),e.pop(),n=ap(s,c,a),o.push(n);r=Pe(),r.prec=i,o.push(r),e.push(X),n=Ba(),o.push(n)}for(u=o.length-1,n=o[u],e.pop();u>1;)e.pop(),n=ap(o[u-1].value,o[u-2],n),u-=2;return n}function Hn(){var t,e,n;return t=L4(),K("?")&&(Pe(),e=Hn(),Se(":"),n=Hn(),t=b4(t,e,n)),t}function Su(){const t=Hn();if(K(","))throw new Error(Hi);return t}function B4(t){N=t,S=0,Ce=N.length,X=null,op();const e=Su();if(X.type!==Ui)throw new Error("Unexpect token after expression.");return e}var O4={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 P4(t){function e(a,s,c,u){let f=t(s[0]);return c&&(f=c+"("+f+")",c.lastIndexOf("new ",0)===0&&(f="("+f+")")),f+"."+a+(u<0?"":u===0?"()":"("+s.slice(1).map(t).join(",")+")")}function n(a,s,c){return u=>e(a,u,s,c)}const r="new Date",i="String",o="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(a){a.length<3&&oe("Missing arguments to clamp function."),a.length>3&&oe("Too many arguments to clamp function.");const s=a.map(t);return"Math.max("+s[1]+", Math.min("+s[2]+","+s[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:o,test:n("test",o),if:function(a){a.length<3&&oe("Missing arguments to if function."),a.length>3&&oe("Too many arguments to if function.");const s=a.map(t);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function F4(t){const e=t&&t.length-1;return e&&(t[0]==='"'&&t[e]==='"'||t[0]==="'"&&t[e]==="'")?t.slice(1,-1):t}function z4(t){t=t||{};const e=t.allowed?qo(t.allowed):{},n=t.forbidden?qo(t.forbidden):{},r=t.constants||O4,i=(t.functions||P4)(l),o=t.globalvar,a=t.fieldvar,s=ke(o)?o:p=>`${o}["${p}"]`;let c={},u={},f=0;function l(p){if(te(p))return p;const m=d[p.type];return m==null&&oe("Unsupported type: "+p.type),m(p)}const d={Literal:p=>p.raw,Identifier:p=>{const m=p.name;return f>0?m:Cn(n,m)?oe("Illegal identifier: "+m):Cn(r,m)?r[m]:Cn(e,m)?m:(c[m]=1,s(m))},MemberExpression:p=>{const m=!p.computed,y=l(p.object);m&&(f+=1);const g=l(p.property);return y===a&&(u[F4(g)]=1),m&&(f-=1),y+(m?"."+g:"["+g+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&oe("Illegal callee type: "+p.callee.type);const m=p.callee.name,y=p.arguments,g=Cn(i,m)&&i[m];return g||oe("Unrecognized function: "+m),ke(g)?g(y):g+"("+y.map(l).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(l).join(",")+"]",BinaryExpression:p=>"("+l(p.left)+" "+p.operator+" "+l(p.right)+")",UnaryExpression:p=>"("+p.operator+l(p.argument)+")",ConditionalExpression:p=>"("+l(p.test)+"?"+l(p.consequent)+":"+l(p.alternate)+")",LogicalExpression:p=>"("+l(p.left)+p.operator+l(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(l).join(",")+"}",Property:p=>{f+=1;const m=l(p.key);return f-=1,m+":"+l(p.value)}};function h(p){const m={code:l(p),globals:Object.keys(c),fields:Object.keys(u)};return c={},u={},m}return h.functions=i,h.constants=r,h}function Eu(t,e={}){const n=z4({forbidden:[],allowed:["datum"],globalvar:"global",fieldvar:"datum"});try{const r=B4(t),i=n(r),o=Function("datum","global",`"use strict"; return (${i.code});`),a=s=>o(s,e);return a.fields=i.fields,a}catch(r){throw new Error(`Invalid expression: ${t}, ${r.message}`)}}function R4(){let t=0;const e=new Map,n=r=>{let i=e.get(r);return i===void 0&&(i=t++,e.set(r,i)),i};return n.addAll=r=>{for(const i of r)n(i)},n.invert=r=>{for(const i of e.entries())if(i[1]==r)return i[0]},n.domain=()=>[...e.keys()],n}function j4(t,e){const n={};e||(e=t.encoding);for(const[r,i]of Object.entries(e)){if(!i)continue;const o=t.unitView.getScaleResolution(Ke(i)&&i.resolutionChannel||r);n[r]=U4(e[r],o==null?void 0:o.getScale(),t.unitView.getAccessor(r),r)}return n}function U4(t,e,n,r){let i;if(ot(t)){const o=t.value;i=a=>o,i.constant=!0,i.constantValue=!0,i.accessor=void 0}else if(n)if(r=="text")i=o=>{},i.accessor=n,i.constant=n.constant;else{if(!e)throw new Error(`Missing scale! "${r}": ${JSON.stringify(t)}`);if(i=o=>e(n(o)),tn(e.type)){const o=R4();o.addAll(e.domain()),i.indexer=o}i.constant=n.constant,i.accessor=n,i.scale=e}else throw new Error(`Missing value or accessor (field, expr, datum) on channel "${r}": ${JSON.stringify(t)}`);return i.invert=e?o=>e.invert(o):o=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(t))},i.channelDef=t,i.applyMetadata=o=>{for(const a in i)a in i&&(o[a]=i[a]);return o},i}function ot(t){return t&&"value"in t}function Qn(t){return t&&"field"in t}function Wi(t){return t&&"datum"in t}function Ke(t){return Qn(t)||Wi(t)||Mu(t)||dp(t)}function Du(t,e){const n=t.mark.encoding[e];if(Ke(n))return n;throw new Error("Not a channel def with scale!")}function dp(t){return t&&"chrom"in t}function Mu(t){return t&&"expr"in t}const Xi=["x","y"],G4=["x2","y2"],H4=[...Xi,...G4];function hp(t){return Xi.includes(t)}function Zi(t){return H4.includes(t)}const Tu={x:"x2",y:"y2"},pp=Object.fromEntries(Object.entries(Tu).map(t=>[t[1],t[0]]));function qi(t){return t in pp}function Q4(t){const e=Tu[t];if(e)return e;throw new Error(`${t} has no secondary channel!`)}function Ir(t){var e;return(e=pp[t])!=null?e:t}function Vn(t){return["color","fill","stroke"].includes(Ir(t))}function Oa(t){return["shape","squeeze"].includes(t)}function mp(t){switch(t){case"shape":return["circle","square","triangle-up","cross","diamond","triangle-down","triangle-right","triangle-left"]}}function gp(t){if(!Oa(t))throw new Error("Not a discrete channel: "+t);const e=new Map(mp(t).map((n,r)=>[n,r]));return n=>{const r=e.get(n);if(r!==void 0)return r;throw new Error(`Invalid value for "${t}" channel: ${n}`)}}function Z(t,e=t){if(/^[A-Za-z0-9_]+$/.test(t)){const n=new Function("datum",`return datum[${JSON.stringify(t)}]`);return z(n,[t],e)}else return Qo(t)}class V4{constructor(){this.accessorCreators=[],this.register(e=>{if(Qn(e))try{const n=Z(e.field);return n.constant=!1,n.fields=wn(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(e=>Mu(e)?Y4(e.expr):void 0),this.register(e=>{if(Wi(e)){const r=yb(e.datum);return r.constant=!0,r.fields=[],r}})}register(e){this.accessorCreators.push(e)}createAccessor(e){for(const n of this.accessorCreators){const r=n(e);if(r)return r}}}function Y4(t){const e=Eu(t);return e.constant=e.fields.length==0,e}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
13
13
  Available via the MIT license.
14
- see: http://github.com/greggman/twgl.js for details */const Mu=5120,qi=5121,Tu=5122,Iu=5123,ku=5124,Nu=5125,Lu=5126,H4=32819,Q4=32820,V4=33635,Y4=5131,_4=33640,W4=35899,X4=35902,Z4=36269,q4=34042,dp={};{const t=dp;t[Mu]=Int8Array,t[qi]=Uint8Array,t[Tu]=Int16Array,t[Iu]=Uint16Array,t[ku]=Int32Array,t[Nu]=Uint32Array,t[Lu]=Float32Array,t[H4]=Uint16Array,t[Q4]=Uint16Array,t[V4]=Uint16Array,t[Y4]=Uint16Array,t[_4]=Uint32Array,t[W4]=Uint32Array,t[X4]=Uint32Array,t[Z4]=Uint32Array,t[q4]=Uint32Array}function Bu(t){if(t instanceof Int8Array)return Mu;if(t instanceof Uint8Array||t instanceof Uint8ClampedArray)return qi;if(t instanceof Int16Array)return Tu;if(t instanceof Uint16Array)return Iu;if(t instanceof Int32Array)return ku;if(t instanceof Uint32Array)return Nu;if(t instanceof Float32Array)return Lu;throw new Error("unsupported typed array type")}function K4(t){if(t===Int8Array)return Mu;if(t===Uint8Array||t===Uint8ClampedArray)return qi;if(t===Int16Array)return Tu;if(t===Uint16Array)return Iu;if(t===Int32Array)return ku;if(t===Uint32Array)return Nu;if(t===Float32Array)return Lu;throw new Error("unsupported typed array type")}function J4(t){const e=dp[t];if(!e)throw new Error("unknown gl type");return e}const Oa=typeof SharedArrayBuffer<"u"?function(e){return e&&e.buffer&&(e.buffer instanceof ArrayBuffer||e.buffer instanceof SharedArrayBuffer)}:function(e){return e&&e.buffer&&e.buffer instanceof ArrayBuffer};function $4(...t){console.error(...t)}function hp(...t){console.warn(...t)}function e3(t,e){return typeof WebGLBuffer<"u"&&e instanceof WebGLBuffer}function pp(t,e){return typeof WebGLRenderbuffer<"u"&&e instanceof WebGLRenderbuffer}function Pa(t,e){return typeof WebGLTexture<"u"&&e instanceof WebGLTexture}function t3(t,e){return typeof WebGLSampler<"u"&&e instanceof WebGLSampler}const mp=35044,mt=34962,n3=34963,r3=34660,i3=5120,o3=5121,a3=5122,s3=5123,c3=5124,u3=5125,l3=5126,gp={attribPrefix:""};function yp(t,e,n,r,i){t.bindBuffer(e,n),t.bufferData(e,r,i||mp)}function bp(t,e,n,r){if(e3(t,e))return e;n=n||mt;const i=t.createBuffer();return yp(t,n,i,e,r),i}function vp(t){return t==="indices"}function f3(t){return t instanceof Int8Array||t instanceof Uint8Array}function d3(t){return t===Int8Array||t===Uint8Array}function h3(t){return t.length?t:t.data}const p3=/coord|texture/i,m3=/color|colour/i;function Ap(t,e){let n;if(p3.test(t)?n=2:m3.test(t)?n=4:n=3,e%n>0)throw new Error(`Can not guess numComponents for attribute '${t}'. Tried ${n} but ${e} values is not evenly divisible by ${n}. You should specify it.`);return n}function g3(t,e){return t.numComponents||t.size||Ap(e,h3(t).length)}function Ou(t,e){if(Oa(t))return t;if(Oa(t.data))return t.data;Array.isArray(t)&&(t={data:t});let n=t.type;return n||(vp(e)?n=Uint16Array:n=Float32Array),new n(t.data)}function y3(t,e){const n={};return Object.keys(e).forEach(function(r){if(!vp(r)){const i=e[r],o=i.attrib||i.name||i.attribName||gp.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!Oa(i.value))throw new Error("array.value is not array or typedarray");n[o]={value:i.value}}else{let a,s,c,u;if(i.buffer&&i.buffer instanceof WebGLBuffer)a=i.buffer,u=i.numComponents||i.size,s=i.type,c=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const f=i.data||i,l=i.type||Float32Array,d=f*l.BYTES_PER_ELEMENT;s=K4(l),c=i.normalize!==void 0?i.normalize:d3(l),u=i.numComponents||i.size||Ap(r,f),a=t.createBuffer(),t.bindBuffer(mt,a),t.bufferData(mt,d,i.drawType||mp)}else{const f=Ou(i,r);a=bp(t,f,void 0,i.drawType),s=Bu(f),c=i.normalize!==void 0?i.normalize:f3(f),u=g3(i,r)}n[o]={buffer:a,numComponents:u,type:s,normalize:c,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),t.bindBuffer(mt,null),n}function b3(t,e,n,r){n=Ou(n),r!==void 0?(t.bindBuffer(mt,e.buffer),t.bufferSubData(mt,r,n)):yp(t,mt,e.buffer,n,e.drawType)}function v3(t,e){return e===i3||e===o3?1:e===a3||e===s3?2:e===c3||e===u3||e===l3?4:0}const Pu=["position","positions","a_position"];function A3(t,e){let n,r;for(r=0;r<Pu.length&&(n=Pu[r],!(n in e||(n=gp.attribPrefix+n,n in e)));++r);r===Pu.length&&(n=Object.keys(e)[0]);const i=e[n];t.bindBuffer(mt,i.buffer);const o=t.getBufferParameter(mt,r3);t.bindBuffer(mt,null);const a=v3(t,i.type),s=o/a,c=i.numComponents||i.size,u=s/c;if(u%1!==0)throw new Error(`numComponents ${c} not correct for length ${length}`);return u}function x3(t,e,n){const r=y3(t,e),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const o=e.indices;if(o){const a=Ou(o,"indices");i.indices=bp(t,a,n3),i.numElements=a.length,i.elementType=Bu(a)}else i.numElements||(i.numElements=A3(t,i.attribs));return i}function kr(t){return!!t.texStorage2D}const Fu=function(){const t={},e={};function n(r){const i=r.constructor.name;if(!t[i]){for(const o in r)if(typeof r[o]=="number"){const a=e[r[o]];e[r[o]]=a?`${a} | ${o}`:o}t[i]=!0}}return function(i,o){return n(i),e[o]||(typeof o=="number"?`0x${o.toString(16)}`:o)}}(),on={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},Nr=Oa,xp=function(){let t;return function(){return t=t||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),t}}(),wp=6406,gt=6407,te=6408,Cp=6409,Sp=6410,Ki=6402,Ep=34041,Fa=33071,w3=9728,C3=9729,Tt=3553,It=34067,an=32879,sn=35866,za=34069,S3=34070,E3=34071,D3=34072,M3=34073,T3=34074,zu=10241,Ru=10240,Ra=10242,ja=10243,Dp=32882,I3=33082,k3=33083,N3=33084,L3=33085,ju=3317,Mp=3314,Tp=32878,Ip=3316,kp=3315,Np=32877,B3=37443,O3=37441,P3=37440,F3=33321,z3=36756,R3=33325,j3=33326,U3=33330,G3=33329,H3=33338,Q3=33337,V3=33340,Y3=33339,_3=33323,W3=36757,X3=33327,Z3=33328,q3=33336,K3=33335,J3=33332,$3=33331,eC=33334,tC=33333,nC=32849,rC=35905,iC=36194,oC=36758,aC=35898,sC=35901,cC=34843,uC=34837,lC=36221,fC=36239,dC=36215,hC=36233,pC=36209,mC=36227,gC=32856,yC=35907,bC=36759,vC=32855,AC=32854,xC=32857,wC=34842,CC=34836,SC=36220,EC=36238,DC=36975,MC=36214,TC=36232,IC=36226,kC=36208,NC=33189,LC=33190,BC=36012,OC=36013,PC=35056,cn=5120,ne=5121,Ua=5122,Lr=5123,Ga=5124,Yn=5125,Se=5126,Lp=32819,Bp=32820,Op=33635,at=5131,Ji=36193,Uu=33640,FC=35899,zC=35902,RC=36269,jC=34042,Ha=33319,Br=33320,Qa=6403,Or=36244,Pr=36248,_n=36249;let Gu;function Va(t){if(!Gu){const e={};e[wp]={textureFormat:wp,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[ne,at,Ji,Se]},e[Cp]={textureFormat:Cp,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[ne,at,Ji,Se]},e[Sp]={textureFormat:Sp,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[ne,at,Ji,Se]},e[gt]={textureFormat:gt,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[ne,at,Ji,Se,Op]},e[te]={textureFormat:te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[ne,at,Ji,Se,Lp,Bp]},e[Ki]={textureFormat:Ki,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Yn,Lr]},e[F3]={textureFormat:Qa,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[ne]},e[z3]={textureFormat:Qa,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[cn]},e[R3]={textureFormat:Qa,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[Se,at]},e[j3]={textureFormat:Qa,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[Se]},e[U3]={textureFormat:Or,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[ne]},e[G3]={textureFormat:Or,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[cn]},e[J3]={textureFormat:Or,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Lr]},e[$3]={textureFormat:Or,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ua]},e[eC]={textureFormat:Or,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Yn]},e[tC]={textureFormat:Or,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ga]},e[_3]={textureFormat:Ha,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[ne]},e[W3]={textureFormat:Ha,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[cn]},e[X3]={textureFormat:Ha,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[Se,at]},e[Z3]={textureFormat:Ha,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[Se]},e[q3]={textureFormat:Br,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[ne]},e[K3]={textureFormat:Br,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[cn]},e[H3]={textureFormat:Br,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Lr]},e[Q3]={textureFormat:Br,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ua]},e[V3]={textureFormat:Br,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Yn]},e[Y3]={textureFormat:Br,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ga]},e[nC]={textureFormat:gt,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[ne]},e[rC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[ne]},e[iC]={textureFormat:gt,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[ne,Op]},e[oC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[cn]},e[aC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Se,at,FC]},e[sC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Se,at,zC]},e[cC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[Se,at]},e[uC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Se]},e[lC]={textureFormat:Pr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[ne]},e[fC]={textureFormat:Pr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[cn]},e[dC]={textureFormat:Pr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Lr]},e[hC]={textureFormat:Pr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Ua]},e[pC]={textureFormat:Pr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Yn]},e[mC]={textureFormat:Pr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Ga]},e[gC]={textureFormat:te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[ne]},e[yC]={textureFormat:te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[ne]},e[bC]={textureFormat:te,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[cn]},e[vC]={textureFormat:te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[ne,Bp,Uu]},e[AC]={textureFormat:te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[ne,Lp]},e[xC]={textureFormat:te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Uu]},e[wC]={textureFormat:te,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[Se,at]},e[CC]={textureFormat:te,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[Se]},e[SC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ne]},e[EC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[cn]},e[DC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Uu]},e[MC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Lr]},e[TC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ua]},e[IC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Ga]},e[kC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Yn]},e[NC]={textureFormat:Ki,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Lr,Yn]},e[LC]={textureFormat:Ki,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Yn]},e[BC]={textureFormat:Ki,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Se]},e[PC]={textureFormat:Ep,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[jC]},e[OC]={textureFormat:Ep,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[RC]},Object.keys(e).forEach(function(n){const r=e[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,o){const a=r.type[o];r.bytesPerElementMap[a]=i})}),Gu=e}return Gu[t]}function UC(t,e){const n=Va(t);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[e];if(r===void 0)throw"unknown internal format";return r}function Fr(t){const e=Va(t);if(!e)throw"unknown internal format";return{format:e.textureFormat,type:e.type[0]}}function Pp(t){return(t&t-1)===0}function GC(t,e,n,r){if(!kr(t))return Pp(e)&&Pp(n);const i=Va(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function HC(t){const e=Va(t);if(!e)throw"unknown internal format";return e.textureFilterable}function Fp(t,e,n){return Nr(e)?Bu(e):n||ne}function Ya(t,e,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const o=Math.sqrt(i/(e===It?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 zr(t,e){e.colorspaceConversion!==void 0&&t.pixelStorei(B3,e.colorspaceConversion),e.premultiplyAlpha!==void 0&&t.pixelStorei(O3,e.premultiplyAlpha),e.flipY!==void 0&&t.pixelStorei(P3,e.flipY)}function zp(t){t.pixelStorei(ju,4),kr(t)&&(t.pixelStorei(Mp,0),t.pixelStorei(Tp,0),t.pixelStorei(Ip,0),t.pixelStorei(kp,0),t.pixelStorei(Np,0))}function QC(t,e,n,r){r.minMag&&(n.call(t,e,zu,r.minMag),n.call(t,e,Ru,r.minMag)),r.min&&n.call(t,e,zu,r.min),r.mag&&n.call(t,e,Ru,r.mag),r.wrap&&(n.call(t,e,Ra,r.wrap),n.call(t,e,ja,r.wrap),(e===an||t3(t,e))&&n.call(t,e,Dp,r.wrap)),r.wrapR&&n.call(t,e,Dp,r.wrapR),r.wrapS&&n.call(t,e,Ra,r.wrapS),r.wrapT&&n.call(t,e,ja,r.wrapT),r.minLod&&n.call(t,e,I3,r.minLod),r.maxLod&&n.call(t,e,k3,r.maxLod),r.baseLevel&&n.call(t,e,N3,r.baseLevel),r.maxLevel&&n.call(t,e,L3,r.maxLevel)}function Rp(t,e,n){const r=n.target||Tt;t.bindTexture(r,e),QC(t,r,t.texParameteri,n)}function VC(t){return t=t||on.textureColor,Nr(t)?t:new Uint8Array([t[0]*255,t[1]*255,t[2]*255,t[3]*255])}function Hu(t,e,n,r,i,o){n=n||on.textureOptions,o=o||te;const a=n.target||Tt;if(r=r||n.width,i=i||n.height,t.bindTexture(a,e),GC(t,r,i,o))t.generateMipmap(a);else{const s=HC(o)?C3:w3;t.texParameteri(a,zu,s),t.texParameteri(a,Ru,s),t.texParameteri(a,Ra,Fa),t.texParameteri(a,ja,Fa)}}function $i(t){return t.auto===!0||t.auto===void 0&&t.level===void 0}function Qu(t,e){return e=e||{},e.cubeFaceOrder||[za,S3,E3,D3,M3,T3]}function Vu(t,e){const r=Qu(t,e).map(function(i,o){return{face:i,ndx:o}});return r.sort(function(i,o){return i.face-o.face}),r}function jp(t,e,n,r){r=r||on.textureOptions;const i=r.target||Tt,o=r.level||0;let a=n.width,s=n.height;const c=r.internalFormat||r.format||te,u=Fr(c),f=r.format||u.format,l=r.type||u.type;if(zr(t,r),t.bindTexture(i,e),i===It){const d=n.width,h=n.height;let p,m;if(d/6===h)p=h,m=[0,0,1,0,2,0,3,0,4,0,5,0];else if(h/6===d)p=d,m=[0,0,0,1,0,2,0,3,0,4,0,5];else if(d/3===h/2)p=d/3,m=[0,0,1,0,2,0,0,1,1,1,2,1];else if(d/2===h/3)p=d/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=xp();y?(y.canvas.width=p,y.canvas.height=p,a=p,s=p,Vu(t,r).forEach(function(g){const x=m[g.ndx*2+0]*p,A=m[g.ndx*2+1]*p;y.drawImage(n,x,A,p,p,0,0,p,p),t.texImage2D(g.face,o,c,f,l,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(a=p,s=p,Vu(t,r).forEach(function(g){const x=m[g.ndx*2+0]*p,A=m[g.ndx*2+1]*p;t.texImage2D(g.face,o,c,p,p,0,f,l,null),createImageBitmap(n,x,A,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(C){zr(t,r),t.bindTexture(i,e),t.texImage2D(g.face,o,c,f,l,C),$i(r)&&Hu(t,e,r,a,s,c)})}))}else if(i===an||i===sn){const d=Math.min(n.width,n.height),h=Math.max(n.width,n.height),p=h/d;if(p%1!==0)throw"can not compute 3D dimensions of element";const m=n.width===h?1:0,y=n.height===h?1:0;t.pixelStorei(ju,1),t.pixelStorei(Mp,n.width),t.pixelStorei(Tp,0),t.pixelStorei(Np,0),t.texImage3D(i,o,c,d,d,d,0,f,l,null);for(let g=0;g<p;++g){const x=g*d*m,A=g*d*y;t.pixelStorei(Ip,x),t.pixelStorei(kp,A),t.texSubImage3D(i,o,0,0,g,d,d,1,f,l,n)}zp(t)}else t.texImage2D(i,o,c,f,l,n);$i(r)&&Hu(t,e,r,a,s,c),Rp(t,e,r)}function eo(){}function YC(t){if(typeof document<"u"){const e=document.createElement("a");return e.href=t,e.hostname===location.hostname&&e.port===location.port&&e.protocol===location.protocol}else{const e=new URL(location.href).origin;return new URL(t,location.href).origin===e}}function _C(t,e){return e===void 0&&!YC(t)?"anonymous":e}function WC(t,e,n){n=n||eo;let r;if(e=e!==void 0?e:on.crossOrigin,e=_C(t,e),typeof Image<"u"){r=new Image,e!==void 0&&(r.crossOrigin=e);const i=function(){r.removeEventListener("error",o),r.removeEventListener("load",a),r=null},o=function(){const c="couldn't load image: "+t;$4(c),n(c,r),i()},a=function(){n(null,r),i()};return r.addEventListener("error",o),r.addEventListener("load",a),r.src=t,r}else if(typeof ImageBitmap<"u"){let i,o;const a=function(){n(i,o)},s={};e&&(s.mode="cors"),fetch(t,s).then(function(c){if(!c.ok)throw c;return c.blob()}).then(function(c){return createImageBitmap(c,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(c){o=c,setTimeout(a)}).catch(function(c){i=c,setTimeout(a)}),r=null}return r}function Up(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap||typeof ImageData<"u"&&t instanceof ImageData||typeof HTMLElement<"u"&&t instanceof HTMLElement}function Yu(t,e,n){return Up(t)?(setTimeout(function(){n(null,t)}),t):WC(t,e,n)}function _u(t,e,n){n=n||on.textureOptions;const r=n.target||Tt;if(t.bindTexture(r,e),n.color===!1)return;const i=VC(n.color);if(r===It)for(let o=0;o<6;++o)t.texImage2D(za+o,0,te,1,1,0,te,ne,i);else r===an||r===sn?t.texImage3D(r,0,te,1,1,1,0,te,ne,i):t.texImage2D(r,0,te,1,1,0,te,ne,i)}function XC(t,e,n,r){return r=r||eo,n=n||on.textureOptions,_u(t,e,n),n=Object.assign({},n),Yu(n.src,n.crossOrigin,function(o,a){o?r(o,e,a):(jp(t,e,a,n),r(null,e,a))})}function ZC(t,e,n,r){r=r||eo;const i=n.src;if(i.length!==6)throw"there must be 6 urls for a cubemap";const o=n.level||0,a=n.internalFormat||n.format||te,s=Fr(a),c=n.format||s.format,u=n.type||ne,f=n.target||Tt;if(f!==It)throw"target must be TEXTURE_CUBE_MAP";_u(t,e,n),n=Object.assign({},n);let l=6;const d=[],h=Qu(t,n);let p;function m(y){return function(g,x){--l,g?d.push(g):x.width!==x.height?d.push("cubemap face img is not a square: "+x.src):(zr(t,n),t.bindTexture(f,e),l===5?Qu().forEach(function(A){t.texImage2D(A,o,a,c,u,x)}):t.texImage2D(y,o,a,c,u,x),$i(n)&&t.generateMipmap(f)),l===0&&r(d.length?d:void 0,e,p)}}p=i.map(function(y,g){return Yu(y,n.crossOrigin,m(h[g]))})}function qC(t,e,n,r){r=r||eo;const i=n.src,o=n.internalFormat||n.format||te,a=Fr(o),s=n.format||a.format,c=n.type||ne,u=n.target||sn;if(u!==an&&u!==sn)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";_u(t,e,n),n=Object.assign({},n);let f=i.length;const l=[];let d;const h=n.level||0;let p=n.width,m=n.height;const y=i.length;let g=!0;function x(A){return function(C,v){if(--f,C)l.push(C);else{if(zr(t,n),t.bindTexture(u,e),g){g=!1,p=n.width||v.width,m=n.height||v.height,t.texImage3D(u,h,o,p,m,y,0,s,c,null);for(let b=0;b<y;++b)t.texSubImage3D(u,h,0,0,b,p,m,1,s,c,v)}else{let b=v,w;(v.width!==p||v.height!==m)&&(w=xp(),b=w.canvas,w.canvas.width=p,w.canvas.height=m,w.drawImage(v,0,0,p,m)),t.texSubImage3D(u,h,0,0,A,p,m,1,s,c,b),w&&b===w.canvas&&(w.canvas.width=0,w.canvas.height=0)}$i(n)&&t.generateMipmap(u)}f===0&&r(l.length?l:void 0,e,d)}}d=i.map(function(A,C){return Yu(A,n.crossOrigin,x(C))})}function Gp(t,e,n,r){r=r||on.textureOptions;const i=r.target||Tt;t.bindTexture(i,e);let o=r.width,a=r.height,s=r.depth;const c=r.level||0,u=r.internalFormat||r.format||te,f=Fr(u),l=r.format||f.format,d=r.type||Fp(t,n,f.type);if(Nr(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=J4(d);n=new y(n)}const h=UC(u,d),p=n.byteLength/h;if(p%1)throw"length wrong size for format: "+Fu(t,l);let m;if(i===an||i===sn)if(!o&&!a&&!s){const y=Math.cbrt(p);if(y%1!==0)throw"can't guess cube size of array of numElements: "+p;o=y,a=y,s=y}else o&&(!a||!s)?(m=Ya(t,i,a,s,p/o),a=m.width,s=m.height):a&&(!o||!s)?(m=Ya(t,i,o,s,p/a),o=m.width,s=m.height):(m=Ya(t,i,o,a,p/s),o=m.width,a=m.height);else m=Ya(t,i,o,a,p),o=m.width,a=m.height;if(zp(t),t.pixelStorei(ju,r.unpackAlignment||1),zr(t,r),i===It){const y=h/n.BYTES_PER_ELEMENT,g=p/6*y;Vu(t,r).forEach(x=>{const A=g*x.ndx,C=n.subarray(A,A+g);t.texImage2D(x.face,c,u,o,a,0,l,d,C)})}else i===an||i===sn?t.texImage3D(i,c,u,o,a,s,0,l,d,n):t.texImage2D(i,c,u,o,a,0,l,d,n);return{width:o,height:a,depth:s,type:d}}function KC(t,e,n){const r=n.target||Tt;t.bindTexture(r,e);const i=n.level||0,o=n.internalFormat||n.format||te,a=Fr(o),s=n.format||a.format,c=n.type||a.type;if(zr(t,n),r===It)for(let u=0;u<6;++u)t.texImage2D(za+u,i,o,n.width,n.height,0,s,c,null);else r===an||r===sn?t.texImage3D(r,i,o,n.width,n.height,n.depth,0,s,c,null):t.texImage2D(r,i,o,n.width,n.height,0,s,c,null)}function to(t,e,n){n=n||eo,e=e||on.textureOptions;const r=t.createTexture(),i=e.target||Tt;let o=e.width||1,a=e.height||1;const s=e.internalFormat||te;t.bindTexture(i,r),i===It&&(t.texParameteri(i,Ra,Fa),t.texParameteri(i,ja,Fa));let c=e.src;if(c)if(typeof c=="function"&&(c=c(t,e)),typeof c=="string")XC(t,r,e,n);else if(Nr(c)||Array.isArray(c)&&(typeof c[0]=="number"||Array.isArray(c[0])||Nr(c[0]))){const u=Gp(t,r,c,e);o=u.width,a=u.height}else Array.isArray(c)&&(typeof c[0]=="string"||Up(c[0]))?i===It?ZC(t,r,e,n):qC(t,r,e,n):(jp(t,r,c,e),o=c.width,a=c.height);else KC(t,r,e);return $i(e)&&Hu(t,r,e,o,a,s),Rp(t,r,e),r}function JC(t,e,n,r,i,o){r=r||n.width,i=i||n.height,o=o||n.depth;const a=n.target||Tt;t.bindTexture(a,e);const s=n.level||0,c=n.internalFormat||n.format||te,u=Fr(c),f=n.format||u.format;let l;const d=n.src;if(d&&(Nr(d)||Array.isArray(d)&&typeof d[0]=="number")?l=n.type||Fp(t,d,u.type):l=n.type||u.type,a===It)for(let h=0;h<6;++h)t.texImage2D(za+h,s,c,r,i,0,f,l,null);else a===an||a===sn?t.texImage3D(a,s,c,r,i,o,0,f,l,null):t.texImage2D(a,s,c,r,i,0,f,l,null)}const $C=hp,_a=33984,eS=35048,Wa=34962,tS=34963,Wu=35345,Hp=35718,nS=35721,rS=35971,iS=35382,oS=35396,aS=35398,sS=35392,cS=35395,Xa=5126,Qp=35664,Vp=35665,Yp=35666,Xu=5124,_p=35667,Wp=35668,Xp=35669,Zp=35670,qp=35671,Kp=35672,Jp=35673,$p=35674,em=35675,tm=35676,uS=35678,lS=35680,fS=35679,dS=35682,hS=35685,pS=35686,mS=35687,gS=35688,yS=35689,bS=35690,vS=36289,AS=36292,xS=36293,Zu=5125,nm=36294,rm=36295,im=36296,wS=36298,CS=36299,SS=36300,ES=36303,DS=36306,MS=36307,TS=36308,IS=36311,Za=3553,qa=34067,qu=32879,Ka=35866,F={};function om(t,e){return F[e].bindPoint}function kS(t,e){return function(n){t.uniform1f(e,n)}}function NS(t,e){return function(n){t.uniform1fv(e,n)}}function LS(t,e){return function(n){t.uniform2fv(e,n)}}function BS(t,e){return function(n){t.uniform3fv(e,n)}}function OS(t,e){return function(n){t.uniform4fv(e,n)}}function am(t,e){return function(n){t.uniform1i(e,n)}}function sm(t,e){return function(n){t.uniform1iv(e,n)}}function cm(t,e){return function(n){t.uniform2iv(e,n)}}function um(t,e){return function(n){t.uniform3iv(e,n)}}function lm(t,e){return function(n){t.uniform4iv(e,n)}}function PS(t,e){return function(n){t.uniform1ui(e,n)}}function FS(t,e){return function(n){t.uniform1uiv(e,n)}}function zS(t,e){return function(n){t.uniform2uiv(e,n)}}function RS(t,e){return function(n){t.uniform3uiv(e,n)}}function jS(t,e){return function(n){t.uniform4uiv(e,n)}}function US(t,e){return function(n){t.uniformMatrix2fv(e,!1,n)}}function GS(t,e){return function(n){t.uniformMatrix3fv(e,!1,n)}}function HS(t,e){return function(n){t.uniformMatrix4fv(e,!1,n)}}function QS(t,e){return function(n){t.uniformMatrix2x3fv(e,!1,n)}}function VS(t,e){return function(n){t.uniformMatrix3x2fv(e,!1,n)}}function YS(t,e){return function(n){t.uniformMatrix2x4fv(e,!1,n)}}function _S(t,e){return function(n){t.uniformMatrix4x2fv(e,!1,n)}}function WS(t,e){return function(n){t.uniformMatrix3x4fv(e,!1,n)}}function XS(t,e){return function(n){t.uniformMatrix4x3fv(e,!1,n)}}function Me(t,e,n,r){const i=om(t,e);return kr(t)?function(o){let a,s;Pa(t,o)?(a=o,s=null):(a=o.texture,s=o.sampler),t.uniform1i(r,n),t.activeTexture(_a+n),t.bindTexture(i,a),t.bindSampler(n,s)}:function(o){t.uniform1i(r,n),t.activeTexture(_a+n),t.bindTexture(i,o)}}function Te(t,e,n,r,i){const o=om(t,e),a=new Int32Array(i);for(let s=0;s<i;++s)a[s]=n+s;return kr(t)?function(s){t.uniform1iv(r,a),s.forEach(function(c,u){t.activeTexture(_a+a[u]);let f,l;Pa(t,c)?(f=c,l=null):(f=c.texture,l=c.sampler),t.bindSampler(n,l),t.bindTexture(o,f)})}:function(s){t.uniform1iv(r,a),s.forEach(function(c,u){t.activeTexture(_a+a[u]),t.bindTexture(o,c)})}}F[Xa]={Type:Float32Array,size:4,setter:kS,arraySetter:NS},F[Qp]={Type:Float32Array,size:8,setter:LS,cols:2},F[Vp]={Type:Float32Array,size:12,setter:BS,cols:3},F[Yp]={Type:Float32Array,size:16,setter:OS,cols:4},F[Xu]={Type:Int32Array,size:4,setter:am,arraySetter:sm},F[_p]={Type:Int32Array,size:8,setter:cm,cols:2},F[Wp]={Type:Int32Array,size:12,setter:um,cols:3},F[Xp]={Type:Int32Array,size:16,setter:lm,cols:4},F[Zu]={Type:Uint32Array,size:4,setter:PS,arraySetter:FS},F[nm]={Type:Uint32Array,size:8,setter:zS,cols:2},F[rm]={Type:Uint32Array,size:12,setter:RS,cols:3},F[im]={Type:Uint32Array,size:16,setter:jS,cols:4},F[Zp]={Type:Uint32Array,size:4,setter:am,arraySetter:sm},F[qp]={Type:Uint32Array,size:8,setter:cm,cols:2},F[Kp]={Type:Uint32Array,size:12,setter:um,cols:3},F[Jp]={Type:Uint32Array,size:16,setter:lm,cols:4},F[$p]={Type:Float32Array,size:32,setter:US,rows:2,cols:2},F[em]={Type:Float32Array,size:48,setter:GS,rows:3,cols:3},F[tm]={Type:Float32Array,size:64,setter:HS,rows:4,cols:4},F[hS]={Type:Float32Array,size:32,setter:QS,rows:2,cols:3},F[pS]={Type:Float32Array,size:32,setter:YS,rows:2,cols:4},F[mS]={Type:Float32Array,size:48,setter:VS,rows:3,cols:2},F[gS]={Type:Float32Array,size:48,setter:WS,rows:3,cols:4},F[yS]={Type:Float32Array,size:64,setter:_S,rows:4,cols:2},F[bS]={Type:Float32Array,size:64,setter:XS,rows:4,cols:3},F[uS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Za},F[lS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:qa},F[fS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:qu},F[dS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Za},F[vS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Ka},F[AS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Ka},F[xS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:qa},F[wS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Za},F[CS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:qu},F[SS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:qa},F[ES]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Ka},F[DS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Za},F[MS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:qu},F[TS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:qa},F[IS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Ka};function Ja(t,e){return function(n){if(n.value)switch(t.disableVertexAttribArray(e),n.value.length){case 4:t.vertexAttrib4fv(e,n.value);break;case 3:t.vertexAttrib3fv(e,n.value);break;case 2:t.vertexAttrib2fv(e,n.value);break;case 1:t.vertexAttrib1fv(e,n.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else t.bindBuffer(Wa,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribPointer(e,n.numComponents||n.size,n.type||Xa,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function un(t,e){return function(n){if(n.value)if(t.disableVertexAttribArray(e),n.value.length===4)t.vertexAttrib4iv(e,n.value);else throw new Error("The length of an integer constant value must be 4!");else t.bindBuffer(Wa,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,n.numComponents||n.size,n.type||Xu,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function $a(t,e){return function(n){if(n.value)if(t.disableVertexAttribArray(e),n.value.length===4)t.vertexAttrib4uiv(e,n.value);else throw new Error("The length of an unsigned integer constant value must be 4!");else t.bindBuffer(Wa,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,n.numComponents||n.size,n.type||Zu,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function Ku(t,e,n){const r=n.size,i=n.count;return function(o){t.bindBuffer(Wa,o.buffer);const a=o.size||o.numComponents||r,s=a/i,c=o.type||Xa,f=F[c].size*a,l=o.normalize||!1,d=o.offset||0,h=f/i;for(let p=0;p<i;++p)t.enableVertexAttribArray(e+p),t.vertexAttribPointer(e+p,s,c,l,f,d+h*p),o.divisor!==void 0&&t.vertexAttribDivisor(e+p,o.divisor)}}const ue={};ue[Xa]={size:4,setter:Ja},ue[Qp]={size:8,setter:Ja},ue[Vp]={size:12,setter:Ja},ue[Yp]={size:16,setter:Ja},ue[Xu]={size:4,setter:un},ue[_p]={size:8,setter:un},ue[Wp]={size:12,setter:un},ue[Xp]={size:16,setter:un},ue[Zu]={size:4,setter:$a},ue[nm]={size:8,setter:$a},ue[rm]={size:12,setter:$a},ue[im]={size:16,setter:$a},ue[Zp]={size:4,setter:un},ue[qp]={size:8,setter:un},ue[Kp]={size:12,setter:un},ue[Jp]={size:16,setter:un},ue[$p]={size:4,setter:Ku,count:2},ue[em]={size:9,setter:Ku,count:3},ue[tm]={size:16,setter:Ku,count:4};function fm(t){const e=t.name;return e.startsWith("gl_")||e.startsWith("webgl_")}const ZS=/(\.|\[|]|\w+)/g,qS=t=>t>="0"&&t<="9";function dm(t,e,n,r){const i=t.split(ZS).filter(s=>s!=="");let o=0,a="";for(;;){const s=i[o++];a+=s;const c=qS(s[0]),u=c?parseInt(s):s;if(c&&(a+=i[o++]),o===i.length){n[u]=e;break}else{const l=i[o++],d=l==="[",h=n[u]||(d?[]:{});n[u]=h,n=h,r[a]=r[a]||function(p){return function(m){ym(p,m)}}(h),a+=l}}}function KS(t,e){let n=0;function r(s,c,u){const f=c.name.endsWith("[0]"),l=c.type,d=F[l];if(!d)throw new Error(`unknown type: 0x${l.toString(16)}`);let h;if(d.bindPoint){const p=n;n+=c.size,f?h=d.arraySetter(t,l,p,u,c.size):h=d.setter(t,l,p,u,c.size)}else d.arraySetter&&f?h=d.arraySetter(t,u):h=d.setter(t,u);return h.location=u,h}const i={},o={},a=t.getProgramParameter(e,Hp);for(let s=0;s<a;++s){const c=t.getActiveUniform(e,s);if(fm(c))continue;let u=c.name;u.endsWith("[0]")&&(u=u.substr(0,u.length-3));const f=t.getUniformLocation(e,c.name);if(f){const l=r(e,c,f);i[u]=l,dm(u,l,o,i)}}return i}function JS(t,e){const n={},r=t.getProgramParameter(e,rS);for(let i=0;i<r;++i){const o=t.getTransformFeedbackVarying(e,i);n[o.name]={index:i,type:o.type,size:o.size}}return n}function $S(t,e){const n=t.getProgramParameter(e,Hp),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const c=t.getActiveUniform(e,s);r[s].name=c.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const c=s[0],u=s[1];t.getActiveUniforms(e,i,t[c]).forEach(function(f,l){r[l][u]=f})});const o={},a=t.getProgramParameter(e,iS);for(let s=0;s<a;++s){const c=t.getActiveUniformBlockName(e,s),u={index:t.getUniformBlockIndex(e,c),usedByVertexShader:t.getActiveUniformBlockParameter(e,s,oS),usedByFragmentShader:t.getActiveUniformBlockParameter(e,s,aS),size:t.getActiveUniformBlockParameter(e,s,sS),uniformIndices:t.getActiveUniformBlockParameter(e,s,cS)};u.used=u.usedByVertexShader||u.usedByFragmentShader,o[c]=u}return{blockSpecs:o,uniformData:r}}const hm=/\[\d+\]\.$/,eE=(t,e)=>((t+(e-1))/e|0)*e;function tE(t,e,n,r){if(e||n){r=r||1;const o=t.length/4;return function(a){let s=0,c=0;for(let u=0;u<o;++u){for(let f=0;f<r;++f)t[s++]=a[c++];s+=4-r}}}else return function(i){i.length?t.set(i):t[0]=i}}function nE(t,e,n,r){const i=n.blockSpecs,o=n.uniformData,a=i[r];if(!a)return $C("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(a.size),c=t.createBuffer(),u=a.index;t.bindBuffer(Wu,c),t.uniformBlockBinding(e,a.index,u);let f=r+".";hm.test(f)&&(f=f.replace(hm,"."));const l={},d={},h={};return a.uniformIndices.forEach(function(p){const m=o[p];let y=m.name;y.startsWith(f)&&(y=y.substr(f.length));const g=y.endsWith("[0]");g&&(y=y.substr(0,y.length-3));const x=F[m.type],A=x.Type,C=g?eE(x.size,16)*m.size:x.size*m.size,v=new A(s,m.offset,C/A.BYTES_PER_ELEMENT);l[y]=v;const b=tE(v,g,x.rows,x.cols);d[y]=b,dm(y,b,h,d)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:c,uniforms:l,setters:d}}function pm(t,e,n){return nE(t,e.program,e.uniformBlockSpec,n)}function rE(t,e,n){const i=(e.uniformBlockSpec||e).blockSpecs[n.name];if(i){const o=i.index;return t.bindBufferRange(Wu,o,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function mm(t,e,n){rE(t,e,n)&&t.bufferData(Wu,n.array,eS)}function gm(t,e){const n=t.setters;for(const r in e){const i=n[r];if(i){const o=e[r];i(o)}}}function ym(t,e){for(const n in e){const r=t[n];typeof r=="function"?r(e[n]):ym(t[n],e[n])}}function Ue(t,...e){const n=t.uniformSetters||t,r=e.length;for(let i=0;i<r;++i){const o=e[i];if(Array.isArray(o)){const a=o.length;for(let s=0;s<a;++s)Ue(n,o[s])}else for(const a in o){const s=n[a];s&&s(o[a])}}}function iE(t,e){const n={},r=t.getProgramParameter(e,nS);for(let i=0;i<r;++i){const o=t.getActiveAttrib(e,i);if(fm(o))continue;const a=t.getAttribLocation(e,o.name),s=ue[o.type],c=s.setter(t,a,s);c.location=a,n[o.name]=c}return n}function oE(t,e){for(const n in e){const r=t[n];r&&r(e[n])}}function Rr(t,e,n){n.vertexArrayObject?t.bindVertexArray(n.vertexArrayObject):(oE(e.attribSetters||e,n.attribs),n.indices&&t.bindBuffer(tS,n.indices))}function aE(t,e){const n=KS(t,e),r=iE(t,e),i={program:e,uniformSetters:n,attribSetters:r};return kr(t)&&(i.uniformBlockSpec=$S(t,e),i.transformFeedbackInfo=JS(t,e)),i}const sE=4,bm=5123;function no(t,e,n,r,i,o){n=n===void 0?sE:n;const a=e.indices,s=e.elementType,c=r===void 0?e.numElements:r;i=i===void 0?0:i,s||a?o!==void 0?t.drawElementsInstanced(n,c,s===void 0?bm:e.elementType,i,o):t.drawElements(n,c,s===void 0?bm:e.elementType,i):o!==void 0?t.drawArraysInstanced(n,i,c,o):t.drawArrays(n,i,c)}const cE=36160,Wn=36161,uE=3553,lE=5121,fE=6402,dE=6408,hE=33190,pE=36012,mE=35056,gE=36013,yE=32854,bE=32855,vE=36194,vm=33189,Am=6401,xm=36168,Ju=34041,AE=36064,es=36096,wm=36128,$u=33306,el=33071,tl=9729,Cm=[{format:dE,type:lE,min:tl,wrap:el},{format:Ju}],st={};st[Ju]=$u,st[Am]=wm,st[xm]=wm,st[fE]=es,st[vm]=es,st[hE]=es,st[pE]=es,st[mE]=$u,st[gE]=$u;function xE(t,e){return st[t]||st[e]}const ln={};ln[yE]=!0,ln[bE]=!0,ln[vE]=!0,ln[Ju]=!0,ln[vm]=!0,ln[Am]=!0,ln[xm]=!0;function wE(t){return ln[t]}function CE(t,e,n,r){const i=cE,o=t.createFramebuffer();t.bindFramebuffer(i,o),n=n||t.drawingBufferWidth,r=r||t.drawingBufferHeight,e=e||Cm;let a=0;const s={framebuffer:o,attachments:[],width:n,height:r};return e.forEach(function(c){let u=c.attachment;const f=c.samples,l=c.format;let d=c.attachmentPoint||xE(l,c.internalFormat);if(d||(d=AE+a++),!u)if(f!==void 0||wE(l))u=t.createRenderbuffer(),t.bindRenderbuffer(Wn,u),f>1?t.renderbufferStorageMultisample(Wn,f,l,n,r):t.renderbufferStorage(Wn,l,n,r);else{const h=Object.assign({},c);h.width=n,h.height=r,h.auto===void 0&&(h.auto=!1,h.min=h.min||h.minMag||tl,h.mag=h.mag||h.minMag||tl,h.wrapS=h.wrapS||h.wrap||el,h.wrapT=h.wrapT||h.wrap||el),u=to(t,h)}if(pp(t,u))t.framebufferRenderbuffer(i,d,Wn,u);else if(Pa(t,u))c.layer!==void 0?t.framebufferTextureLayer(i,d,u,c.level||0,c.layer):t.framebufferTexture2D(i,d,c.target||uE,u,c.level||0);else throw new Error("unknown attachment type");s.attachments.push(u)}),s}function SE(t,e,n,r,i){r=r||t.drawingBufferWidth,i=i||t.drawingBufferHeight,e.width=r,e.height=i,n=n||Cm,n.forEach(function(o,a){const s=e.attachments[a],c=o.format,u=o.samples;if(u!==void 0||pp(t,s))t.bindRenderbuffer(Wn,s),u>1?t.renderbufferStorageMultisample(Wn,u,c,r,i):t.renderbufferStorage(Wn,c,r,i);else if(Pa(t,s))JC(t,s,o,r,i);else throw new Error("unknown attachment type")})}function EE(t,e,n){const r=t.createVertexArray();return t.bindVertexArray(r),e.length||(e=[e]),e.forEach(function(i){Rr(t,i,n)}),t.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const DE=/^(.*?)_/;function ME(t,e){Fu(t,0);const n=t.getExtension(e);if(n){const r={},i=DE.exec(e)[1],o="_"+i;for(const a in n){const s=n[a],c=typeof s=="function",u=c?i:o;let f=a;a.endsWith(u)&&(f=a.substring(0,a.length-u.length)),t[f]!==void 0?!c&&t[f]!==s&&hp(f,t[f],s,a):c?t[f]=function(l){return function(){return l.apply(n,arguments)}}(s):(t[f]=s,r[f]=s)}r.constructor={name:n.constructor.name},Fu(r,0)}return n}const Sm=["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 Em(t){for(let e=0;e<Sm.length;++e)ME(t,Sm[e])}function TE(t,e){const n=["webgl2","webgl","experimental-webgl"];let r=null;for(let i=0;i<n.length;++i)if(r=t.getContext(n[i],e),r){Em(r);break}return r}function IE(t,e){return TE(t,e)}const kE=`/**
14
+ see: http://github.com/greggman/twgl.js for details */const Iu=5120,Ki=5121,ku=5122,Nu=5123,Lu=5124,Bu=5125,Ou=5126,_4=32819,W4=32820,X4=33635,Z4=5131,q4=33640,K4=35899,J4=35902,$4=36269,e3=34042,yp={};{const t=yp;t[Iu]=Int8Array,t[Ki]=Uint8Array,t[ku]=Int16Array,t[Nu]=Uint16Array,t[Lu]=Int32Array,t[Bu]=Uint32Array,t[Ou]=Float32Array,t[_4]=Uint16Array,t[W4]=Uint16Array,t[X4]=Uint16Array,t[Z4]=Uint16Array,t[q4]=Uint32Array,t[K4]=Uint32Array,t[J4]=Uint32Array,t[$4]=Uint32Array,t[e3]=Uint32Array}function Pu(t){if(t instanceof Int8Array)return Iu;if(t instanceof Uint8Array||t instanceof Uint8ClampedArray)return Ki;if(t instanceof Int16Array)return ku;if(t instanceof Uint16Array)return Nu;if(t instanceof Int32Array)return Lu;if(t instanceof Uint32Array)return Bu;if(t instanceof Float32Array)return Ou;throw new Error("unsupported typed array type")}function t3(t){if(t===Int8Array)return Iu;if(t===Uint8Array||t===Uint8ClampedArray)return Ki;if(t===Int16Array)return ku;if(t===Uint16Array)return Nu;if(t===Int32Array)return Lu;if(t===Uint32Array)return Bu;if(t===Float32Array)return Ou;throw new Error("unsupported typed array type")}function n3(t){const e=yp[t];if(!e)throw new Error("unknown gl type");return e}const Pa=typeof SharedArrayBuffer<"u"?function(e){return e&&e.buffer&&(e.buffer instanceof ArrayBuffer||e.buffer instanceof SharedArrayBuffer)}:function(e){return e&&e.buffer&&e.buffer instanceof ArrayBuffer};function r3(...t){console.error(...t)}function bp(...t){console.warn(...t)}function i3(t,e){return typeof WebGLBuffer<"u"&&e instanceof WebGLBuffer}function vp(t,e){return typeof WebGLRenderbuffer<"u"&&e instanceof WebGLRenderbuffer}function Fa(t,e){return typeof WebGLTexture<"u"&&e instanceof WebGLTexture}function o3(t,e){return typeof WebGLSampler<"u"&&e instanceof WebGLSampler}const Ap=35044,mt=34962,a3=34963,s3=34660,c3=5120,u3=5121,l3=5122,f3=5123,d3=5124,h3=5125,p3=5126,xp={attribPrefix:""};function wp(t,e,n,r,i){t.bindBuffer(e,n),t.bufferData(e,r,i||Ap)}function Cp(t,e,n,r){if(i3(t,e))return e;n=n||mt;const i=t.createBuffer();return wp(t,n,i,e,r),i}function Sp(t){return t==="indices"}function m3(t){return t instanceof Int8Array||t instanceof Uint8Array}function g3(t){return t===Int8Array||t===Uint8Array}function y3(t){return t.length?t:t.data}const b3=/coord|texture/i,v3=/color|colour/i;function Ep(t,e){let n;if(b3.test(t)?n=2:v3.test(t)?n=4:n=3,e%n>0)throw new Error(`Can not guess numComponents for attribute '${t}'. Tried ${n} but ${e} values is not evenly divisible by ${n}. You should specify it.`);return n}function A3(t,e){return t.numComponents||t.size||Ep(e,y3(t).length)}function Fu(t,e){if(Pa(t))return t;if(Pa(t.data))return t.data;Array.isArray(t)&&(t={data:t});let n=t.type;return n||(Sp(e)?n=Uint16Array:n=Float32Array),new n(t.data)}function x3(t,e){const n={};return Object.keys(e).forEach(function(r){if(!Sp(r)){const i=e[r],o=i.attrib||i.name||i.attribName||xp.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!Pa(i.value))throw new Error("array.value is not array or typedarray");n[o]={value:i.value}}else{let a,s,c,u;if(i.buffer&&i.buffer instanceof WebGLBuffer)a=i.buffer,u=i.numComponents||i.size,s=i.type,c=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const f=i.data||i,l=i.type||Float32Array,d=f*l.BYTES_PER_ELEMENT;s=t3(l),c=i.normalize!==void 0?i.normalize:g3(l),u=i.numComponents||i.size||Ep(r,f),a=t.createBuffer(),t.bindBuffer(mt,a),t.bufferData(mt,d,i.drawType||Ap)}else{const f=Fu(i,r);a=Cp(t,f,void 0,i.drawType),s=Pu(f),c=i.normalize!==void 0?i.normalize:m3(f),u=A3(i,r)}n[o]={buffer:a,numComponents:u,type:s,normalize:c,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),t.bindBuffer(mt,null),n}function w3(t,e,n,r){n=Fu(n),r!==void 0?(t.bindBuffer(mt,e.buffer),t.bufferSubData(mt,r,n)):wp(t,mt,e.buffer,n,e.drawType)}function C3(t,e){return e===c3||e===u3?1:e===l3||e===f3?2:e===d3||e===h3||e===p3?4:0}const zu=["position","positions","a_position"];function S3(t,e){let n,r;for(r=0;r<zu.length&&(n=zu[r],!(n in e||(n=xp.attribPrefix+n,n in e)));++r);r===zu.length&&(n=Object.keys(e)[0]);const i=e[n];t.bindBuffer(mt,i.buffer);const o=t.getBufferParameter(mt,s3);t.bindBuffer(mt,null);const a=C3(t,i.type),s=o/a,c=i.numComponents||i.size,u=s/c;if(u%1!==0)throw new Error(`numComponents ${c} not correct for length ${length}`);return u}function E3(t,e,n){const r=x3(t,e),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const o=e.indices;if(o){const a=Fu(o,"indices");i.indices=Cp(t,a,a3),i.numElements=a.length,i.elementType=Pu(a)}else i.numElements||(i.numElements=S3(t,i.attribs));return i}function kr(t){return!!t.texStorage2D}const Ru=function(){const t={},e={};function n(r){const i=r.constructor.name;if(!t[i]){for(const o in r)if(typeof r[o]=="number"){const a=e[r[o]];e[r[o]]=a?`${a} | ${o}`:o}t[i]=!0}}return function(i,o){return n(i),e[o]||(typeof o=="number"?`0x${o.toString(16)}`:o)}}(),on={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},Nr=Pa,Dp=function(){let t;return function(){return t=t||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),t}}(),Mp=6406,gt=6407,ne=6408,Tp=6409,Ip=6410,Ji=6402,kp=34041,za=33071,D3=9728,M3=9729,Tt=3553,It=34067,an=32879,sn=35866,Ra=34069,T3=34070,I3=34071,k3=34072,N3=34073,L3=34074,ju=10241,Uu=10240,ja=10242,Ua=10243,Np=32882,B3=33082,O3=33083,P3=33084,F3=33085,Gu=3317,Lp=3314,Bp=32878,Op=3316,Pp=3315,Fp=32877,z3=37443,R3=37441,j3=37440,U3=33321,G3=36756,H3=33325,Q3=33326,V3=33330,Y3=33329,_3=33338,W3=33337,X3=33340,Z3=33339,q3=33323,K3=36757,J3=33327,$3=33328,eC=33336,tC=33335,nC=33332,rC=33331,iC=33334,oC=33333,aC=32849,sC=35905,cC=36194,uC=36758,lC=35898,fC=35901,dC=34843,hC=34837,pC=36221,mC=36239,gC=36215,yC=36233,bC=36209,vC=36227,AC=32856,xC=35907,wC=36759,CC=32855,SC=32854,EC=32857,DC=34842,MC=34836,TC=36220,IC=36238,kC=36975,NC=36214,LC=36232,BC=36226,OC=36208,PC=33189,FC=33190,zC=36012,RC=36013,jC=35056,cn=5120,re=5121,Ga=5122,Lr=5123,Ha=5124,Yn=5125,Ee=5126,zp=32819,Rp=32820,jp=33635,at=5131,$i=36193,Hu=33640,UC=35899,GC=35902,HC=36269,QC=34042,Qa=33319,Br=33320,Va=6403,Or=36244,Pr=36248,_n=36249;let Qu;function Ya(t){if(!Qu){const e={};e[Mp]={textureFormat:Mp,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[re,at,$i,Ee]},e[Tp]={textureFormat:Tp,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[re,at,$i,Ee]},e[Ip]={textureFormat:Ip,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[re,at,$i,Ee]},e[gt]={textureFormat:gt,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[re,at,$i,Ee,jp]},e[ne]={textureFormat:ne,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[re,at,$i,Ee,zp,Rp]},e[Ji]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Yn,Lr]},e[U3]={textureFormat:Va,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[re]},e[G3]={textureFormat:Va,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[cn]},e[H3]={textureFormat:Va,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[Ee,at]},e[Q3]={textureFormat:Va,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[Ee]},e[V3]={textureFormat:Or,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[re]},e[Y3]={textureFormat:Or,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[cn]},e[nC]={textureFormat:Or,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Lr]},e[rC]={textureFormat:Or,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ga]},e[iC]={textureFormat:Or,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Yn]},e[oC]={textureFormat:Or,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ha]},e[q3]={textureFormat:Qa,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[re]},e[K3]={textureFormat:Qa,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[cn]},e[J3]={textureFormat:Qa,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[Ee,at]},e[$3]={textureFormat:Qa,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[Ee]},e[eC]={textureFormat:Br,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[re]},e[tC]={textureFormat:Br,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[cn]},e[_3]={textureFormat:Br,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Lr]},e[W3]={textureFormat:Br,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ga]},e[X3]={textureFormat:Br,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Yn]},e[Z3]={textureFormat:Br,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ha]},e[aC]={textureFormat:gt,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[re]},e[sC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[re]},e[cC]={textureFormat:gt,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[re,jp]},e[uC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[cn]},e[lC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Ee,at,UC]},e[fC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Ee,at,GC]},e[dC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[Ee,at]},e[hC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Ee]},e[pC]={textureFormat:Pr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[re]},e[mC]={textureFormat:Pr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[cn]},e[gC]={textureFormat:Pr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Lr]},e[yC]={textureFormat:Pr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Ga]},e[bC]={textureFormat:Pr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Yn]},e[vC]={textureFormat:Pr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Ha]},e[AC]={textureFormat:ne,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[re]},e[xC]={textureFormat:ne,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[re]},e[wC]={textureFormat:ne,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[cn]},e[CC]={textureFormat:ne,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[re,Rp,Hu]},e[SC]={textureFormat:ne,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[re,zp]},e[EC]={textureFormat:ne,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Hu]},e[DC]={textureFormat:ne,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[Ee,at]},e[MC]={textureFormat:ne,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[Ee]},e[TC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[re]},e[IC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[cn]},e[kC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Hu]},e[NC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Lr]},e[LC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ga]},e[BC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Ha]},e[OC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Yn]},e[PC]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Lr,Yn]},e[FC]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Yn]},e[zC]={textureFormat:Ji,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ee]},e[jC]={textureFormat:kp,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[QC]},e[RC]={textureFormat:kp,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[HC]},Object.keys(e).forEach(function(n){const r=e[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,o){const a=r.type[o];r.bytesPerElementMap[a]=i})}),Qu=e}return Qu[t]}function VC(t,e){const n=Ya(t);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[e];if(r===void 0)throw"unknown internal format";return r}function Fr(t){const e=Ya(t);if(!e)throw"unknown internal format";return{format:e.textureFormat,type:e.type[0]}}function Up(t){return(t&t-1)===0}function YC(t,e,n,r){if(!kr(t))return Up(e)&&Up(n);const i=Ya(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function _C(t){const e=Ya(t);if(!e)throw"unknown internal format";return e.textureFilterable}function Gp(t,e,n){return Nr(e)?Pu(e):n||re}function _a(t,e,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const o=Math.sqrt(i/(e===It?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 zr(t,e){e.colorspaceConversion!==void 0&&t.pixelStorei(z3,e.colorspaceConversion),e.premultiplyAlpha!==void 0&&t.pixelStorei(R3,e.premultiplyAlpha),e.flipY!==void 0&&t.pixelStorei(j3,e.flipY)}function Hp(t){t.pixelStorei(Gu,4),kr(t)&&(t.pixelStorei(Lp,0),t.pixelStorei(Bp,0),t.pixelStorei(Op,0),t.pixelStorei(Pp,0),t.pixelStorei(Fp,0))}function WC(t,e,n,r){r.minMag&&(n.call(t,e,ju,r.minMag),n.call(t,e,Uu,r.minMag)),r.min&&n.call(t,e,ju,r.min),r.mag&&n.call(t,e,Uu,r.mag),r.wrap&&(n.call(t,e,ja,r.wrap),n.call(t,e,Ua,r.wrap),(e===an||o3(t,e))&&n.call(t,e,Np,r.wrap)),r.wrapR&&n.call(t,e,Np,r.wrapR),r.wrapS&&n.call(t,e,ja,r.wrapS),r.wrapT&&n.call(t,e,Ua,r.wrapT),r.minLod&&n.call(t,e,B3,r.minLod),r.maxLod&&n.call(t,e,O3,r.maxLod),r.baseLevel&&n.call(t,e,P3,r.baseLevel),r.maxLevel&&n.call(t,e,F3,r.maxLevel)}function Qp(t,e,n){const r=n.target||Tt;t.bindTexture(r,e),WC(t,r,t.texParameteri,n)}function XC(t){return t=t||on.textureColor,Nr(t)?t:new Uint8Array([t[0]*255,t[1]*255,t[2]*255,t[3]*255])}function Vu(t,e,n,r,i,o){n=n||on.textureOptions,o=o||ne;const a=n.target||Tt;if(r=r||n.width,i=i||n.height,t.bindTexture(a,e),YC(t,r,i,o))t.generateMipmap(a);else{const s=_C(o)?M3:D3;t.texParameteri(a,ju,s),t.texParameteri(a,Uu,s),t.texParameteri(a,ja,za),t.texParameteri(a,Ua,za)}}function eo(t){return t.auto===!0||t.auto===void 0&&t.level===void 0}function Yu(t,e){return e=e||{},e.cubeFaceOrder||[Ra,T3,I3,k3,N3,L3]}function _u(t,e){const r=Yu(t,e).map(function(i,o){return{face:i,ndx:o}});return r.sort(function(i,o){return i.face-o.face}),r}function Vp(t,e,n,r){r=r||on.textureOptions;const i=r.target||Tt,o=r.level||0;let a=n.width,s=n.height;const c=r.internalFormat||r.format||ne,u=Fr(c),f=r.format||u.format,l=r.type||u.type;if(zr(t,r),t.bindTexture(i,e),i===It){const d=n.width,h=n.height;let p,m;if(d/6===h)p=h,m=[0,0,1,0,2,0,3,0,4,0,5,0];else if(h/6===d)p=d,m=[0,0,0,1,0,2,0,3,0,4,0,5];else if(d/3===h/2)p=d/3,m=[0,0,1,0,2,0,0,1,1,1,2,1];else if(d/2===h/3)p=d/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=Dp();y?(y.canvas.width=p,y.canvas.height=p,a=p,s=p,_u(t,r).forEach(function(g){const x=m[g.ndx*2+0]*p,A=m[g.ndx*2+1]*p;y.drawImage(n,x,A,p,p,0,0,p,p),t.texImage2D(g.face,o,c,f,l,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(a=p,s=p,_u(t,r).forEach(function(g){const x=m[g.ndx*2+0]*p,A=m[g.ndx*2+1]*p;t.texImage2D(g.face,o,c,p,p,0,f,l,null),createImageBitmap(n,x,A,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(C){zr(t,r),t.bindTexture(i,e),t.texImage2D(g.face,o,c,f,l,C),eo(r)&&Vu(t,e,r,a,s,c)})}))}else if(i===an||i===sn){const d=Math.min(n.width,n.height),h=Math.max(n.width,n.height),p=h/d;if(p%1!==0)throw"can not compute 3D dimensions of element";const m=n.width===h?1:0,y=n.height===h?1:0;t.pixelStorei(Gu,1),t.pixelStorei(Lp,n.width),t.pixelStorei(Bp,0),t.pixelStorei(Fp,0),t.texImage3D(i,o,c,d,d,d,0,f,l,null);for(let g=0;g<p;++g){const x=g*d*m,A=g*d*y;t.pixelStorei(Op,x),t.pixelStorei(Pp,A),t.texSubImage3D(i,o,0,0,g,d,d,1,f,l,n)}Hp(t)}else t.texImage2D(i,o,c,f,l,n);eo(r)&&Vu(t,e,r,a,s,c),Qp(t,e,r)}function to(){}function ZC(t){if(typeof document<"u"){const e=document.createElement("a");return e.href=t,e.hostname===location.hostname&&e.port===location.port&&e.protocol===location.protocol}else{const e=new URL(location.href).origin;return new URL(t,location.href).origin===e}}function qC(t,e){return e===void 0&&!ZC(t)?"anonymous":e}function KC(t,e,n){n=n||to;let r;if(e=e!==void 0?e:on.crossOrigin,e=qC(t,e),typeof Image<"u"){r=new Image,e!==void 0&&(r.crossOrigin=e);const i=function(){r.removeEventListener("error",o),r.removeEventListener("load",a),r=null},o=function(){const c="couldn't load image: "+t;r3(c),n(c,r),i()},a=function(){n(null,r),i()};return r.addEventListener("error",o),r.addEventListener("load",a),r.src=t,r}else if(typeof ImageBitmap<"u"){let i,o;const a=function(){n(i,o)},s={};e&&(s.mode="cors"),fetch(t,s).then(function(c){if(!c.ok)throw c;return c.blob()}).then(function(c){return createImageBitmap(c,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(c){o=c,setTimeout(a)}).catch(function(c){i=c,setTimeout(a)}),r=null}return r}function Yp(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap||typeof ImageData<"u"&&t instanceof ImageData||typeof HTMLElement<"u"&&t instanceof HTMLElement}function Wu(t,e,n){return Yp(t)?(setTimeout(function(){n(null,t)}),t):KC(t,e,n)}function Xu(t,e,n){n=n||on.textureOptions;const r=n.target||Tt;if(t.bindTexture(r,e),n.color===!1)return;const i=XC(n.color);if(r===It)for(let o=0;o<6;++o)t.texImage2D(Ra+o,0,ne,1,1,0,ne,re,i);else r===an||r===sn?t.texImage3D(r,0,ne,1,1,1,0,ne,re,i):t.texImage2D(r,0,ne,1,1,0,ne,re,i)}function JC(t,e,n,r){return r=r||to,n=n||on.textureOptions,Xu(t,e,n),n=Object.assign({},n),Wu(n.src,n.crossOrigin,function(o,a){o?r(o,e,a):(Vp(t,e,a,n),r(null,e,a))})}function $C(t,e,n,r){r=r||to;const i=n.src;if(i.length!==6)throw"there must be 6 urls for a cubemap";const o=n.level||0,a=n.internalFormat||n.format||ne,s=Fr(a),c=n.format||s.format,u=n.type||re,f=n.target||Tt;if(f!==It)throw"target must be TEXTURE_CUBE_MAP";Xu(t,e,n),n=Object.assign({},n);let l=6;const d=[],h=Yu(t,n);let p;function m(y){return function(g,x){--l,g?d.push(g):x.width!==x.height?d.push("cubemap face img is not a square: "+x.src):(zr(t,n),t.bindTexture(f,e),l===5?Yu().forEach(function(A){t.texImage2D(A,o,a,c,u,x)}):t.texImage2D(y,o,a,c,u,x),eo(n)&&t.generateMipmap(f)),l===0&&r(d.length?d:void 0,e,p)}}p=i.map(function(y,g){return Wu(y,n.crossOrigin,m(h[g]))})}function eS(t,e,n,r){r=r||to;const i=n.src,o=n.internalFormat||n.format||ne,a=Fr(o),s=n.format||a.format,c=n.type||re,u=n.target||sn;if(u!==an&&u!==sn)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";Xu(t,e,n),n=Object.assign({},n);let f=i.length;const l=[];let d;const h=n.level||0;let p=n.width,m=n.height;const y=i.length;let g=!0;function x(A){return function(C,v){if(--f,C)l.push(C);else{if(zr(t,n),t.bindTexture(u,e),g){g=!1,p=n.width||v.width,m=n.height||v.height,t.texImage3D(u,h,o,p,m,y,0,s,c,null);for(let b=0;b<y;++b)t.texSubImage3D(u,h,0,0,b,p,m,1,s,c,v)}else{let b=v,w;(v.width!==p||v.height!==m)&&(w=Dp(),b=w.canvas,w.canvas.width=p,w.canvas.height=m,w.drawImage(v,0,0,p,m)),t.texSubImage3D(u,h,0,0,A,p,m,1,s,c,b),w&&b===w.canvas&&(w.canvas.width=0,w.canvas.height=0)}eo(n)&&t.generateMipmap(u)}f===0&&r(l.length?l:void 0,e,d)}}d=i.map(function(A,C){return Wu(A,n.crossOrigin,x(C))})}function _p(t,e,n,r){r=r||on.textureOptions;const i=r.target||Tt;t.bindTexture(i,e);let o=r.width,a=r.height,s=r.depth;const c=r.level||0,u=r.internalFormat||r.format||ne,f=Fr(u),l=r.format||f.format,d=r.type||Gp(t,n,f.type);if(Nr(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=n3(d);n=new y(n)}const h=VC(u,d),p=n.byteLength/h;if(p%1)throw"length wrong size for format: "+Ru(t,l);let m;if(i===an||i===sn)if(!o&&!a&&!s){const y=Math.cbrt(p);if(y%1!==0)throw"can't guess cube size of array of numElements: "+p;o=y,a=y,s=y}else o&&(!a||!s)?(m=_a(t,i,a,s,p/o),a=m.width,s=m.height):a&&(!o||!s)?(m=_a(t,i,o,s,p/a),o=m.width,s=m.height):(m=_a(t,i,o,a,p/s),o=m.width,a=m.height);else m=_a(t,i,o,a,p),o=m.width,a=m.height;if(Hp(t),t.pixelStorei(Gu,r.unpackAlignment||1),zr(t,r),i===It){const y=h/n.BYTES_PER_ELEMENT,g=p/6*y;_u(t,r).forEach(x=>{const A=g*x.ndx,C=n.subarray(A,A+g);t.texImage2D(x.face,c,u,o,a,0,l,d,C)})}else i===an||i===sn?t.texImage3D(i,c,u,o,a,s,0,l,d,n):t.texImage2D(i,c,u,o,a,0,l,d,n);return{width:o,height:a,depth:s,type:d}}function tS(t,e,n){const r=n.target||Tt;t.bindTexture(r,e);const i=n.level||0,o=n.internalFormat||n.format||ne,a=Fr(o),s=n.format||a.format,c=n.type||a.type;if(zr(t,n),r===It)for(let u=0;u<6;++u)t.texImage2D(Ra+u,i,o,n.width,n.height,0,s,c,null);else r===an||r===sn?t.texImage3D(r,i,o,n.width,n.height,n.depth,0,s,c,null):t.texImage2D(r,i,o,n.width,n.height,0,s,c,null)}function no(t,e,n){n=n||to,e=e||on.textureOptions;const r=t.createTexture(),i=e.target||Tt;let o=e.width||1,a=e.height||1;const s=e.internalFormat||ne;t.bindTexture(i,r),i===It&&(t.texParameteri(i,ja,za),t.texParameteri(i,Ua,za));let c=e.src;if(c)if(typeof c=="function"&&(c=c(t,e)),typeof c=="string")JC(t,r,e,n);else if(Nr(c)||Array.isArray(c)&&(typeof c[0]=="number"||Array.isArray(c[0])||Nr(c[0]))){const u=_p(t,r,c,e);o=u.width,a=u.height}else Array.isArray(c)&&(typeof c[0]=="string"||Yp(c[0]))?i===It?$C(t,r,e,n):eS(t,r,e,n):(Vp(t,r,c,e),o=c.width,a=c.height);else tS(t,r,e);return eo(e)&&Vu(t,r,e,o,a,s),Qp(t,r,e),r}function nS(t,e,n,r,i,o){r=r||n.width,i=i||n.height,o=o||n.depth;const a=n.target||Tt;t.bindTexture(a,e);const s=n.level||0,c=n.internalFormat||n.format||ne,u=Fr(c),f=n.format||u.format;let l;const d=n.src;if(d&&(Nr(d)||Array.isArray(d)&&typeof d[0]=="number")?l=n.type||Gp(t,d,u.type):l=n.type||u.type,a===It)for(let h=0;h<6;++h)t.texImage2D(Ra+h,s,c,r,i,0,f,l,null);else a===an||a===sn?t.texImage3D(a,s,c,r,i,o,0,f,l,null):t.texImage2D(a,s,c,r,i,0,f,l,null)}const rS=bp,Wa=33984,iS=35048,Xa=34962,oS=34963,Zu=35345,Wp=35718,aS=35721,sS=35971,cS=35382,uS=35396,lS=35398,fS=35392,dS=35395,Za=5126,Xp=35664,Zp=35665,qp=35666,qu=5124,Kp=35667,Jp=35668,$p=35669,em=35670,tm=35671,nm=35672,rm=35673,im=35674,om=35675,am=35676,hS=35678,pS=35680,mS=35679,gS=35682,yS=35685,bS=35686,vS=35687,AS=35688,xS=35689,wS=35690,CS=36289,SS=36292,ES=36293,Ku=5125,sm=36294,cm=36295,um=36296,DS=36298,MS=36299,TS=36300,IS=36303,kS=36306,NS=36307,LS=36308,BS=36311,qa=3553,Ka=34067,Ju=32879,Ja=35866,F={};function lm(t,e){return F[e].bindPoint}function OS(t,e){return function(n){t.uniform1f(e,n)}}function PS(t,e){return function(n){t.uniform1fv(e,n)}}function FS(t,e){return function(n){t.uniform2fv(e,n)}}function zS(t,e){return function(n){t.uniform3fv(e,n)}}function RS(t,e){return function(n){t.uniform4fv(e,n)}}function fm(t,e){return function(n){t.uniform1i(e,n)}}function dm(t,e){return function(n){t.uniform1iv(e,n)}}function hm(t,e){return function(n){t.uniform2iv(e,n)}}function pm(t,e){return function(n){t.uniform3iv(e,n)}}function mm(t,e){return function(n){t.uniform4iv(e,n)}}function jS(t,e){return function(n){t.uniform1ui(e,n)}}function US(t,e){return function(n){t.uniform1uiv(e,n)}}function GS(t,e){return function(n){t.uniform2uiv(e,n)}}function HS(t,e){return function(n){t.uniform3uiv(e,n)}}function QS(t,e){return function(n){t.uniform4uiv(e,n)}}function VS(t,e){return function(n){t.uniformMatrix2fv(e,!1,n)}}function YS(t,e){return function(n){t.uniformMatrix3fv(e,!1,n)}}function _S(t,e){return function(n){t.uniformMatrix4fv(e,!1,n)}}function WS(t,e){return function(n){t.uniformMatrix2x3fv(e,!1,n)}}function XS(t,e){return function(n){t.uniformMatrix3x2fv(e,!1,n)}}function ZS(t,e){return function(n){t.uniformMatrix2x4fv(e,!1,n)}}function qS(t,e){return function(n){t.uniformMatrix4x2fv(e,!1,n)}}function KS(t,e){return function(n){t.uniformMatrix3x4fv(e,!1,n)}}function JS(t,e){return function(n){t.uniformMatrix4x3fv(e,!1,n)}}function Me(t,e,n,r){const i=lm(t,e);return kr(t)?function(o){let a,s;Fa(t,o)?(a=o,s=null):(a=o.texture,s=o.sampler),t.uniform1i(r,n),t.activeTexture(Wa+n),t.bindTexture(i,a),t.bindSampler(n,s)}:function(o){t.uniform1i(r,n),t.activeTexture(Wa+n),t.bindTexture(i,o)}}function Te(t,e,n,r,i){const o=lm(t,e),a=new Int32Array(i);for(let s=0;s<i;++s)a[s]=n+s;return kr(t)?function(s){t.uniform1iv(r,a),s.forEach(function(c,u){t.activeTexture(Wa+a[u]);let f,l;Fa(t,c)?(f=c,l=null):(f=c.texture,l=c.sampler),t.bindSampler(n,l),t.bindTexture(o,f)})}:function(s){t.uniform1iv(r,a),s.forEach(function(c,u){t.activeTexture(Wa+a[u]),t.bindTexture(o,c)})}}F[Za]={Type:Float32Array,size:4,setter:OS,arraySetter:PS},F[Xp]={Type:Float32Array,size:8,setter:FS,cols:2},F[Zp]={Type:Float32Array,size:12,setter:zS,cols:3},F[qp]={Type:Float32Array,size:16,setter:RS,cols:4},F[qu]={Type:Int32Array,size:4,setter:fm,arraySetter:dm},F[Kp]={Type:Int32Array,size:8,setter:hm,cols:2},F[Jp]={Type:Int32Array,size:12,setter:pm,cols:3},F[$p]={Type:Int32Array,size:16,setter:mm,cols:4},F[Ku]={Type:Uint32Array,size:4,setter:jS,arraySetter:US},F[sm]={Type:Uint32Array,size:8,setter:GS,cols:2},F[cm]={Type:Uint32Array,size:12,setter:HS,cols:3},F[um]={Type:Uint32Array,size:16,setter:QS,cols:4},F[em]={Type:Uint32Array,size:4,setter:fm,arraySetter:dm},F[tm]={Type:Uint32Array,size:8,setter:hm,cols:2},F[nm]={Type:Uint32Array,size:12,setter:pm,cols:3},F[rm]={Type:Uint32Array,size:16,setter:mm,cols:4},F[im]={Type:Float32Array,size:32,setter:VS,rows:2,cols:2},F[om]={Type:Float32Array,size:48,setter:YS,rows:3,cols:3},F[am]={Type:Float32Array,size:64,setter:_S,rows:4,cols:4},F[yS]={Type:Float32Array,size:32,setter:WS,rows:2,cols:3},F[bS]={Type:Float32Array,size:32,setter:ZS,rows:2,cols:4},F[vS]={Type:Float32Array,size:48,setter:XS,rows:3,cols:2},F[AS]={Type:Float32Array,size:48,setter:KS,rows:3,cols:4},F[xS]={Type:Float32Array,size:64,setter:qS,rows:4,cols:2},F[wS]={Type:Float32Array,size:64,setter:JS,rows:4,cols:3},F[hS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:qa},F[pS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Ka},F[mS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Ju},F[gS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:qa},F[CS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Ja},F[SS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Ja},F[ES]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Ka},F[DS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:qa},F[MS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Ju},F[TS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Ka},F[IS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Ja},F[kS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:qa},F[NS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Ju},F[LS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Ka},F[BS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Ja};function $a(t,e){return function(n){if(n.value)switch(t.disableVertexAttribArray(e),n.value.length){case 4:t.vertexAttrib4fv(e,n.value);break;case 3:t.vertexAttrib3fv(e,n.value);break;case 2:t.vertexAttrib2fv(e,n.value);break;case 1:t.vertexAttrib1fv(e,n.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else t.bindBuffer(Xa,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribPointer(e,n.numComponents||n.size,n.type||Za,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function un(t,e){return function(n){if(n.value)if(t.disableVertexAttribArray(e),n.value.length===4)t.vertexAttrib4iv(e,n.value);else throw new Error("The length of an integer constant value must be 4!");else t.bindBuffer(Xa,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,n.numComponents||n.size,n.type||qu,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function es(t,e){return function(n){if(n.value)if(t.disableVertexAttribArray(e),n.value.length===4)t.vertexAttrib4uiv(e,n.value);else throw new Error("The length of an unsigned integer constant value must be 4!");else t.bindBuffer(Xa,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,n.numComponents||n.size,n.type||Ku,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function $u(t,e,n){const r=n.size,i=n.count;return function(o){t.bindBuffer(Xa,o.buffer);const a=o.size||o.numComponents||r,s=a/i,c=o.type||Za,f=F[c].size*a,l=o.normalize||!1,d=o.offset||0,h=f/i;for(let p=0;p<i;++p)t.enableVertexAttribArray(e+p),t.vertexAttribPointer(e+p,s,c,l,f,d+h*p),o.divisor!==void 0&&t.vertexAttribDivisor(e+p,o.divisor)}}const ue={};ue[Za]={size:4,setter:$a},ue[Xp]={size:8,setter:$a},ue[Zp]={size:12,setter:$a},ue[qp]={size:16,setter:$a},ue[qu]={size:4,setter:un},ue[Kp]={size:8,setter:un},ue[Jp]={size:12,setter:un},ue[$p]={size:16,setter:un},ue[Ku]={size:4,setter:es},ue[sm]={size:8,setter:es},ue[cm]={size:12,setter:es},ue[um]={size:16,setter:es},ue[em]={size:4,setter:un},ue[tm]={size:8,setter:un},ue[nm]={size:12,setter:un},ue[rm]={size:16,setter:un},ue[im]={size:4,setter:$u,count:2},ue[om]={size:9,setter:$u,count:3},ue[am]={size:16,setter:$u,count:4};function gm(t){const e=t.name;return e.startsWith("gl_")||e.startsWith("webgl_")}const $S=/(\.|\[|]|\w+)/g,eE=t=>t>="0"&&t<="9";function ym(t,e,n,r){const i=t.split($S).filter(s=>s!=="");let o=0,a="";for(;;){const s=i[o++];a+=s;const c=eE(s[0]),u=c?parseInt(s):s;if(c&&(a+=i[o++]),o===i.length){n[u]=e;break}else{const l=i[o++],d=l==="[",h=n[u]||(d?[]:{});n[u]=h,n=h,r[a]=r[a]||function(p){return function(m){wm(p,m)}}(h),a+=l}}}function tE(t,e){let n=0;function r(s,c,u){const f=c.name.endsWith("[0]"),l=c.type,d=F[l];if(!d)throw new Error(`unknown type: 0x${l.toString(16)}`);let h;if(d.bindPoint){const p=n;n+=c.size,f?h=d.arraySetter(t,l,p,u,c.size):h=d.setter(t,l,p,u,c.size)}else d.arraySetter&&f?h=d.arraySetter(t,u):h=d.setter(t,u);return h.location=u,h}const i={},o={},a=t.getProgramParameter(e,Wp);for(let s=0;s<a;++s){const c=t.getActiveUniform(e,s);if(gm(c))continue;let u=c.name;u.endsWith("[0]")&&(u=u.substr(0,u.length-3));const f=t.getUniformLocation(e,c.name);if(f){const l=r(e,c,f);i[u]=l,ym(u,l,o,i)}}return i}function nE(t,e){const n={},r=t.getProgramParameter(e,sS);for(let i=0;i<r;++i){const o=t.getTransformFeedbackVarying(e,i);n[o.name]={index:i,type:o.type,size:o.size}}return n}function rE(t,e){const n=t.getProgramParameter(e,Wp),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const c=t.getActiveUniform(e,s);r[s].name=c.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const c=s[0],u=s[1];t.getActiveUniforms(e,i,t[c]).forEach(function(f,l){r[l][u]=f})});const o={},a=t.getProgramParameter(e,cS);for(let s=0;s<a;++s){const c=t.getActiveUniformBlockName(e,s),u={index:t.getUniformBlockIndex(e,c),usedByVertexShader:t.getActiveUniformBlockParameter(e,s,uS),usedByFragmentShader:t.getActiveUniformBlockParameter(e,s,lS),size:t.getActiveUniformBlockParameter(e,s,fS),uniformIndices:t.getActiveUniformBlockParameter(e,s,dS)};u.used=u.usedByVertexShader||u.usedByFragmentShader,o[c]=u}return{blockSpecs:o,uniformData:r}}const bm=/\[\d+\]\.$/,iE=(t,e)=>((t+(e-1))/e|0)*e;function oE(t,e,n,r){if(e||n){r=r||1;const o=t.length/4;return function(a){let s=0,c=0;for(let u=0;u<o;++u){for(let f=0;f<r;++f)t[s++]=a[c++];s+=4-r}}}else return function(i){i.length?t.set(i):t[0]=i}}function aE(t,e,n,r){const i=n.blockSpecs,o=n.uniformData,a=i[r];if(!a)return rS("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(a.size),c=t.createBuffer(),u=a.index;t.bindBuffer(Zu,c),t.uniformBlockBinding(e,a.index,u);let f=r+".";bm.test(f)&&(f=f.replace(bm,"."));const l={},d={},h={};return a.uniformIndices.forEach(function(p){const m=o[p];let y=m.name;y.startsWith(f)&&(y=y.substr(f.length));const g=y.endsWith("[0]");g&&(y=y.substr(0,y.length-3));const x=F[m.type],A=x.Type,C=g?iE(x.size,16)*m.size:x.size*m.size,v=new A(s,m.offset,C/A.BYTES_PER_ELEMENT);l[y]=v;const b=oE(v,g,x.rows,x.cols);d[y]=b,ym(y,b,h,d)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:c,uniforms:l,setters:d}}function vm(t,e,n){return aE(t,e.program,e.uniformBlockSpec,n)}function sE(t,e,n){const i=(e.uniformBlockSpec||e).blockSpecs[n.name];if(i){const o=i.index;return t.bindBufferRange(Zu,o,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function Am(t,e,n){sE(t,e,n)&&t.bufferData(Zu,n.array,iS)}function xm(t,e){const n=t.setters;for(const r in e){const i=n[r];if(i){const o=e[r];i(o)}}}function wm(t,e){for(const n in e){const r=t[n];typeof r=="function"?r(e[n]):wm(t[n],e[n])}}function Ue(t,...e){const n=t.uniformSetters||t,r=e.length;for(let i=0;i<r;++i){const o=e[i];if(Array.isArray(o)){const a=o.length;for(let s=0;s<a;++s)Ue(n,o[s])}else for(const a in o){const s=n[a];s&&s(o[a])}}}function cE(t,e){const n={},r=t.getProgramParameter(e,aS);for(let i=0;i<r;++i){const o=t.getActiveAttrib(e,i);if(gm(o))continue;const a=t.getAttribLocation(e,o.name),s=ue[o.type],c=s.setter(t,a,s);c.location=a,n[o.name]=c}return n}function uE(t,e){for(const n in e){const r=t[n];r&&r(e[n])}}function Rr(t,e,n){n.vertexArrayObject?t.bindVertexArray(n.vertexArrayObject):(uE(e.attribSetters||e,n.attribs),n.indices&&t.bindBuffer(oS,n.indices))}function lE(t,e){const n=tE(t,e),r=cE(t,e),i={program:e,uniformSetters:n,attribSetters:r};return kr(t)&&(i.uniformBlockSpec=rE(t,e),i.transformFeedbackInfo=nE(t,e)),i}const fE=4,Cm=5123;function ro(t,e,n,r,i,o){n=n===void 0?fE:n;const a=e.indices,s=e.elementType,c=r===void 0?e.numElements:r;i=i===void 0?0:i,s||a?o!==void 0?t.drawElementsInstanced(n,c,s===void 0?Cm:e.elementType,i,o):t.drawElements(n,c,s===void 0?Cm:e.elementType,i):o!==void 0?t.drawArraysInstanced(n,i,c,o):t.drawArrays(n,i,c)}const dE=36160,Wn=36161,hE=3553,pE=5121,mE=6402,gE=6408,yE=33190,bE=36012,vE=35056,AE=36013,xE=32854,wE=32855,CE=36194,Sm=33189,Em=6401,Dm=36168,el=34041,SE=36064,ts=36096,Mm=36128,tl=33306,nl=33071,rl=9729,Tm=[{format:gE,type:pE,min:rl,wrap:nl},{format:el}],st={};st[el]=tl,st[Em]=Mm,st[Dm]=Mm,st[mE]=ts,st[Sm]=ts,st[yE]=ts,st[bE]=ts,st[vE]=tl,st[AE]=tl;function EE(t,e){return st[t]||st[e]}const ln={};ln[xE]=!0,ln[wE]=!0,ln[CE]=!0,ln[el]=!0,ln[Sm]=!0,ln[Em]=!0,ln[Dm]=!0;function DE(t){return ln[t]}function ME(t,e,n,r){const i=dE,o=t.createFramebuffer();t.bindFramebuffer(i,o),n=n||t.drawingBufferWidth,r=r||t.drawingBufferHeight,e=e||Tm;let a=0;const s={framebuffer:o,attachments:[],width:n,height:r};return e.forEach(function(c){let u=c.attachment;const f=c.samples,l=c.format;let d=c.attachmentPoint||EE(l,c.internalFormat);if(d||(d=SE+a++),!u)if(f!==void 0||DE(l))u=t.createRenderbuffer(),t.bindRenderbuffer(Wn,u),f>1?t.renderbufferStorageMultisample(Wn,f,l,n,r):t.renderbufferStorage(Wn,l,n,r);else{const h=Object.assign({},c);h.width=n,h.height=r,h.auto===void 0&&(h.auto=!1,h.min=h.min||h.minMag||rl,h.mag=h.mag||h.minMag||rl,h.wrapS=h.wrapS||h.wrap||nl,h.wrapT=h.wrapT||h.wrap||nl),u=no(t,h)}if(vp(t,u))t.framebufferRenderbuffer(i,d,Wn,u);else if(Fa(t,u))c.layer!==void 0?t.framebufferTextureLayer(i,d,u,c.level||0,c.layer):t.framebufferTexture2D(i,d,c.target||hE,u,c.level||0);else throw new Error("unknown attachment type");s.attachments.push(u)}),s}function TE(t,e,n,r,i){r=r||t.drawingBufferWidth,i=i||t.drawingBufferHeight,e.width=r,e.height=i,n=n||Tm,n.forEach(function(o,a){const s=e.attachments[a],c=o.format,u=o.samples;if(u!==void 0||vp(t,s))t.bindRenderbuffer(Wn,s),u>1?t.renderbufferStorageMultisample(Wn,u,c,r,i):t.renderbufferStorage(Wn,c,r,i);else if(Fa(t,s))nS(t,s,o,r,i);else throw new Error("unknown attachment type")})}function IE(t,e,n){const r=t.createVertexArray();return t.bindVertexArray(r),e.length||(e=[e]),e.forEach(function(i){Rr(t,i,n)}),t.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const kE=/^(.*?)_/;function NE(t,e){Ru(t,0);const n=t.getExtension(e);if(n){const r={},i=kE.exec(e)[1],o="_"+i;for(const a in n){const s=n[a],c=typeof s=="function",u=c?i:o;let f=a;a.endsWith(u)&&(f=a.substring(0,a.length-u.length)),t[f]!==void 0?!c&&t[f]!==s&&bp(f,t[f],s,a):c?t[f]=function(l){return function(){return l.apply(n,arguments)}}(s):(t[f]=s,r[f]=s)}r.constructor={name:n.constructor.name},Ru(r,0)}return n}const Im=["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 km(t){for(let e=0;e<Im.length;++e)NE(t,Im[e])}function LE(t,e){const n=["webgl2","webgl","experimental-webgl"];let r=null;for(let i=0;i<n.length;++i)if(r=t.getContext(n[i],e),r){km(r);break}return r}function BE(t,e){return LE(t,e)}const OE=`/**
15
15
  * The vertex position wrt the rectangle specified by (x, x2, y, y2).
16
16
  * [0, 0] = [x, y], [1, 1] = [x2, y2].
17
17
  * The x or y component may contain fractional values if the rectangle
@@ -28,10 +28,10 @@ uniform float uMinOpacity;
28
28
  /** top-right, bottom-right, top-left, bottom-left */
29
29
  uniform vec4 uCornerRadii;
30
30
 
31
- flat out lowp vec4 vFillColor;
32
- flat out lowp vec4 vStrokeColor;
33
- flat out float vHalfStrokeWidth;
34
- flat out vec4 vCornerRadii;
31
+ out lowp vec4 vFillColor;
32
+ out lowp vec4 vStrokeColor;
33
+ out float vHalfStrokeWidth;
34
+ out vec4 vCornerRadii;
35
35
 
36
36
 
37
37
  #if defined(ROUNDED_CORNERS) || defined(STROKED)
@@ -40,7 +40,7 @@ out vec2 vPosInPixels;
40
40
  #endif
41
41
 
42
42
  /** Size of the rect in pixels */
43
- flat out vec2 vHalfSizeInPixels;
43
+ out vec2 vHalfSizeInPixels;
44
44
 
45
45
  /**
46
46
  * Clamps the minimumSize and returns an opacity that reflects the amount of clamping.
@@ -125,16 +125,16 @@ void main(void) {
125
125
 
126
126
  setupPicking();
127
127
  }
128
- `,NE=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
128
+ `,PE=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
129
129
  in vec2 vPosInPixels;
130
130
  #endif
131
131
 
132
- flat in vec2 vHalfSizeInPixels;
132
+ in vec2 vHalfSizeInPixels;
133
133
 
134
- flat in lowp vec4 vFillColor;
135
- flat in lowp vec4 vStrokeColor;
136
- flat in float vHalfStrokeWidth;
137
- flat in vec4 vCornerRadii;
134
+ in lowp vec4 vFillColor;
135
+ in lowp vec4 vStrokeColor;
136
+ in float vHalfStrokeWidth;
137
+ in vec4 vCornerRadii;
138
138
 
139
139
  out lowp vec4 fragColor;
140
140
 
@@ -176,20 +176,20 @@ void main(void) {
176
176
  fragColor = vPickingColor;
177
177
  }
178
178
  }
179
- `,nl="attr_",Dm="uDomain_",LE="range_",Mm="scale_",Tm="getScaled_",rl="uRangeTexture_",Im=3402823466e29;function BE(t){const e=t.match(/^(?:(\w+)-)?(\w+)$/);if(!e)throw new Error("Not a scale type: "+t);return{family:e[1]||"continuous",transform:e[2]}}function OE(t,e){let n;if(Ba(t))n=Xn(fp(t)(e));else if(ee(e))if(Vn(t))n=FE(e);else throw new Error(`String values are not supported on the "${t}" channel: ${e}`);else if(_o(e))n=Xn(e?1:0);else if(e===null)if(Vn(t))n=Xn([0,0,0]);else throw new Error(`null value is not supported on the "${t}" chanel.`);else n=Xn(e);return`
179
+ `,il="attr_",Nm="uDomain_",FE="range_",Lm="scale_",Bm="getScaled_",ol="uRangeTexture_",Om=3402823466e29;function zE(t){const e=t.match(/^(?:(\w+)-)?(\w+)$/);if(!e)throw new Error("Not a scale type: "+t);return{family:e[1]||"continuous",transform:e[2]}}function RE(t,e){let n;if(Oa(t))n=Xn(gp(t)(e));else if(te(e))if(Vn(t))n=UE(e);else throw new Error(`String values are not supported on the "${t}" channel: ${e}`);else if(Wo(e))n=Xn(e?1:0);else if(e===null)if(Vn(t))n=Xn([0,0,0]);else throw new Error(`null value is not supported on the "${t}" chanel.`);else n=Xn(e);return`
180
180
  #define ${t}_DEFINED
181
- ${n.type} ${Tm}${t}() {
181
+ ${n.type} ${Bm}${t}() {
182
182
  // Constant value
183
183
  return ${n};
184
- }`}function PE(t,e,n){var w,E;if(ot(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);const r=Ir(t),i=nl+t,o=Dm+r,a=LE+r,s=ts(e.type),c=s?"vec2":"float",u=e.domain?e.domain().length:void 0;let f;const l=[];l.push(""),l.push("/".repeat(70)),l.push(`// Channel: ${t}`),l.push(""),l.push(`#define ${t}_DEFINED`);const{transform:d}=BE(e.type),h=(I,...L)=>zE.apply(null,[I,"value",...L]);let p;switch(d){case"linear":p=h("scaleLinear","domain",a);break;case"log":p=h("scaleLog","domain",a,e.base());break;case"symlog":p=h("scaleSymlog","domain",a,e.constant());break;case"pow":case"sqrt":p=h("scalePow","domain",a,e.exponent());break;case"index":case"locus":p=h("scaleBandHp","domain",a,e.paddingInner(),e.paddingOuter(),e.align(),(w=n.band)!=null?w:.5);break;case"point":case"band":p=h("scaleBand","domain",a,e.paddingInner(),e.paddingOuter(),e.align(),(E=n.band)!=null?E:.5);break;case"ordinal":case"null":case"identity":p=h("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${e.type}! ${t}: ${JSON.stringify(n)}`)}const m=Sa(e.type)||Re(e.type)&&Vn(t)?[0,1]:e.range?e.range():void 0;if(m&&t==r&&m.length&&m.every(ce)){const I=km(m);l.push(`const ${I.type} ${a} = ${I};`)}const y=Vn(t)?"vec3":"float";let g;if(Vn(t)){const I=rl+r;if(t==r&&l.push(`uniform sampler2D ${I};`),Re(e.type))g=`getInterpolatedColor(${I}, transformed)`;else if(tn(e.type)||Sr(e.type))g=`getDiscreteColor(${I}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(e.type==="ordinal"||Sr(e.type)){const I=rl+r;t==r&&l.push(`uniform sampler2D ${I};`),g=`getDiscreteColor(${I}, int(transformed)).r`}_i(n)?l.push(`uniform highp ${c} ${i};`):l.push(`in highp ${c} ${i};`);const x=[],A=Re(e.type)&&u>2,C=Sr(e.type)||A;if(x.push("int slot = 0;"),C){const I=o;x.push(A?`while (slot < ${I}.length() - 2 && value >= ${I}[slot + 1]) { slot++; }`:`while (slot < ${I}.length() && value >= ${I}[slot]) { slot++; }`)}const v=Re(e.type)||Sr(e.type)||["band","point"].includes(e.type);if(p){const I=o;v&&(s?x.push(`vec3 domain = ${I};`):x.push(`vec2 domain = vec2(${I}[slot], ${I}[slot + 1]);`)),x.push(`float transformed = ${p};`),A&&x.push(`transformed = (float(slot) + transformed) / (float(${I}.length()) - 1.0);`)}else x.push("float transformed = float(slot);");"clamp"in e&&e.clamp()&&x.push(`transformed = clampToRange(transformed, ${km(m)});`),x.push(`return ${g!=null?g:"transformed"};`),l.push(`
185
- ${y} ${Mm}${t}(${c} value) {
184
+ }`}function jE(t,e,n){var w,E;if(ot(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);const r=Ir(t),i=il+t,o=Nm+r,a=FE+r,s=ns(e.type),c=s?"vec2":"float",u=e.domain?e.domain().length:void 0;let f;const l=[];l.push(""),l.push("/".repeat(70)),l.push(`// Channel: ${t}`),l.push(""),l.push(`#define ${t}_DEFINED`);const{transform:d}=zE(e.type),h=(I,...L)=>GE.apply(null,[I,"value",...L]);let p;switch(d){case"linear":p=h("scaleLinear","domain",a);break;case"log":p=h("scaleLog","domain",a,e.base());break;case"symlog":p=h("scaleSymlog","domain",a,e.constant());break;case"pow":case"sqrt":p=h("scalePow","domain",a,e.exponent());break;case"index":case"locus":p=h("scaleBandHp","domain",a,e.paddingInner(),e.paddingOuter(),e.align(),(w=n.band)!=null?w:.5);break;case"point":case"band":p=h("scaleBand","domain",a,e.paddingInner(),e.paddingOuter(),e.align(),(E=n.band)!=null?E:.5);break;case"ordinal":case"null":case"identity":p=h("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${e.type}! ${t}: ${JSON.stringify(n)}`)}const m=Ea(e.type)||Re(e.type)&&Vn(t)?[0,1]:e.range?e.range():void 0;if(m&&t==r&&m.length&&m.every(ce)){const I=Pm(m);l.push(`const ${I.type} ${a} = ${I};`)}const y=Vn(t)?"vec3":"float";let g;if(Vn(t)){const I=ol+r;if(t==r&&l.push(`uniform sampler2D ${I};`),Re(e.type))g=`getInterpolatedColor(${I}, transformed)`;else if(tn(e.type)||Sr(e.type))g=`getDiscreteColor(${I}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(e.type==="ordinal"||Sr(e.type)){const I=ol+r;t==r&&l.push(`uniform sampler2D ${I};`),g=`getDiscreteColor(${I}, int(transformed)).r`}Wi(n)?l.push(`uniform highp ${c} ${i};`):l.push(`in highp ${c} ${i};`);const x=[],A=Re(e.type)&&u>2,C=Sr(e.type)||A;if(x.push("int slot = 0;"),C){const I=o;x.push(A?`while (slot < ${I}.length() - 2 && value >= ${I}[slot + 1]) { slot++; }`:`while (slot < ${I}.length() && value >= ${I}[slot]) { slot++; }`)}const v=Re(e.type)||Sr(e.type)||["band","point"].includes(e.type);if(p){const I=o;v&&(s?x.push(`vec3 domain = ${I};`):x.push(`vec2 domain = vec2(${I}[slot], ${I}[slot + 1]);`)),x.push(`float transformed = ${p};`),A&&x.push(`transformed = (float(slot) + transformed) / (float(${I}.length()) - 1.0);`)}else x.push("float transformed = float(slot);");"clamp"in e&&e.clamp()&&x.push(`transformed = clampToRange(transformed, ${Pm(m)});`),x.push(`return ${g!=null?g:"transformed"};`),l.push(`
185
+ ${y} ${Lm}${t}(${c} value) {
186
186
  ${x.map(I=>` ${I}
187
187
  `).join("")}
188
188
  }`),l.push(`
189
- ${y} ${Tm}${t}() {
190
- return ${Mm}${t}(${i});
189
+ ${y} ${Bm}${t}() {
190
+ return ${Lm}${t}(${i});
191
191
  }`);const b=l.join(`
192
- `);if(v&&t==r){const I=Re(e.type)||Sr(e.type)?u:2;f=s?`highp vec3 ${o};`:`mediump float ${o}[${I}];`}return{glsl:b,domainUniform:f}}function il(t){if(!ce(t))throw new Error(`Not a number: ${t}`);if(t==1/0)return""+Im;if(t==-1/0)return""+-Im;{let e=`${t}`;return/^(-)?\d+$/.test(e)&&(e+=".0"),e}}function Xn(t){typeof t=="number"&&(t=[t]);const e=t.length;if(e<1||e>4)throw new Error("Invalid number of components: "+e);let n,r;return e>1?(n=`vec${e}`,r=`${n}(${t.map(il).join(", ")})`):(n="float",r=il(t[0])),Object.assign(r,{type:n,numComponents:e})}function FE(t){const e=Bn(t).rgb();return Xn([e.r,e.g,e.b].map(n=>n/255))}function km(t){return Xn([t[0],je(t)])}function zE(t,...e){const n=[];for(const r of e)ce(r)?n.push(il(r)):We(r)?n.push(Xn(r)):n.push(r);return`${t}(${n.join(", ")})`}function ts(t){return t=="index"||t=="locus"}function ol(t,e){const r=t%2048,i=Math.round(t-r);return e!=null||(e=[]),e[0]=i,e[1]=r,e}function RE(t){return[...ol(t[0]),t[1]-t[0]]}class jE{constructor(e){this.size=e,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}addConverter(e,n){const r=this.createUpdater(nl+e,n.numComponents||1,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?o=>r(i(o)):o=>r(i(o)))}createUpdater(e,n,r){if(!ce(this.size))throw new Error("The number of vertices must be defined!");let i,o,a=0;const s=new Float32Array(this.size*n);if(this.arrays[e]={data:s,numComponents:n},n==1){let c=0;const u=f=>{c=+f};i=()=>{s[a++]=c},o=u}else{let c=r!=null?r:[0];const u=r?f=>{}:f=>{c=f};switch(n){case 1:break;case 2:i=()=>{s[a++]=c[0],s[a++]=c[1]},o=u;break;case 3:i=()=>{s[a++]=c[0],s[a++]=c[1],s[a++]=c[2]},o=u;break;case 4:i=()=>{s[a++]=c[0],s[a++]=c[1],s[a++]=c[2],s[a++]=c[3]},o=u;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(i),o}_unrollPushAll(){let e="",n="";for(let i=0;i<this.pushers.length;i++)e+=`const p${i} = that.pushers[${i}];
192
+ `);if(v&&t==r){const I=Re(e.type)||Sr(e.type)?u:2;f=s?`highp vec3 ${o};`:`mediump float ${o}[${I}];`}return{glsl:b,domainUniform:f}}function al(t){if(!ce(t))throw new Error(`Not a number: ${t}`);if(t==1/0)return""+Om;if(t==-1/0)return""+-Om;{let e=`${t}`;return/^(-)?\d+$/.test(e)&&(e+=".0"),e}}function Xn(t){typeof t=="number"&&(t=[t]);const e=t.length;if(e<1||e>4)throw new Error("Invalid number of components: "+e);let n,r;return e>1?(n=`vec${e}`,r=`${n}(${t.map(al).join(", ")})`):(n="float",r=al(t[0])),Object.assign(r,{type:n,numComponents:e})}function UE(t){const e=Bn(t).rgb();return Xn([e.r,e.g,e.b].map(n=>n/255))}function Pm(t){return Xn([t[0],je(t)])}function GE(t,...e){const n=[];for(const r of e)ce(r)?n.push(al(r)):We(r)?n.push(Xn(r)):n.push(r);return`${t}(${n.join(", ")})`}function ns(t){return t=="index"||t=="locus"}function sl(t,e){const r=t%2048,i=Math.round(t-r);return e!=null||(e=[]),e[0]=i,e[1]=r,e}function HE(t){return[...sl(t[0]),t[1]-t[0]]}class QE{constructor(e){this.size=e,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}addConverter(e,n){const r=this.createUpdater(il+e,n.numComponents||1,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?o=>r(i(o)):o=>r(i(o)))}createUpdater(e,n,r){if(!ce(this.size))throw new Error("The number of vertices must be defined!");let i,o,a=0;const s=new Float32Array(this.size*n);if(this.arrays[e]={data:s,numComponents:n},n==1){let c=0;const u=f=>{c=+f};i=()=>{s[a++]=c},o=u}else{let c=r!=null?r:[0];const u=r?f=>{}:f=>{c=f};switch(n){case 1:break;case 2:i=()=>{s[a++]=c[0],s[a++]=c[1]},o=u;break;case 3:i=()=>{s[a++]=c[0],s[a++]=c[1],s[a++]=c[2]},o=u;break;case 4:i=()=>{s[a++]=c[0],s[a++]=c[1],s[a++]=c[2],s[a++]=c[3]},o=u;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(i),o}_unrollPushAll(){let e="",n="";for(let i=0;i<this.pushers.length;i++)e+=`const p${i} = that.pushers[${i}];
193
193
  `,n+=`p${i}();
194
194
  `;const r=new Function("that",`${e}
195
195
 
@@ -197,7 +197,7 @@ ${y} ${Tm}${t}() {
197
197
  ${n}
198
198
  that.vertexCount++;
199
199
  };
200
- `);this.pushAll=r(this)}pushAll(){this.size>1e5?this._unrollPushAll():this.pushAll=()=>{for(let n=0;n<this.pushers.length;n++)this.pushers[n]();this.vertexCount++},this.pushAll()}updateFromDatum(e){for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](e)}pushFromDatum(e){this.updateFromDatum(e),this.pushAll()}}const jr=5,al=127;function sl(t){const e=[];for(let p=0;p<=al;p++)e.push(void 0);const n=new Map;for(const p of t.chars)p.id<=al?e[p.id]=p:n.set(p.id,p);const r=8722;n.has(r)||n.set(r,e["-".charCodeAt(0)]);function i(p){return(p<=al?e[p]:n.get(p))||e[63]}function o(p){return i(p.charCodeAt(0))}const a=t.common.base,s=o("x"),c=o("X"),u=o("q"),f=s.height-jr*2,l=c.height-jr*2,d=u.height-s.height+u.yoffset-s.yoffset;function h(p,m=1){let y=0;for(let g=0;g<p.length;g++)y+=i(p.charCodeAt(g)).xadvance;return y/a*m}return{measureWidth:h,getCharByCode:i,getChar:o,xHeight:f,capHeight:l,descent:d,common:t.common}}function cl(t,e=0,n=1){return Math.max(e,Math.min(n,t))}const Nm=2**31-1,UE=-(2**31);function GE(t,e,n,r=n){const i=new Int32Array(t);i.fill(Nm);let o=UE,a=!1;const s=new Int32Array(t),c=e[0],f=(e[1]-e[0])/t,l=(y,g)=>{const x=(y-c)/f,A=Math.floor(x);return cl(g&&A==x?A-1:A,0,t-1)};function d(y,g,x){g>o?o=g:a||(a=!0,console.debug("Items are not ordered properly. Disabling binned index."));const A=n(y),C=l(A,!1);i[C]>g&&(i[C]=g),s[C]<x&&(s[C]=x)}function h(y,g,x){g>o?o=g:a||(a=!0,console.debug("Items are not ordered properly. Disabling binned index."));const A=n(y),C=r(y),v=l(A,!1),b=l(C,!0);for(let w=v;w<=b;w++)i[w]>g&&(i[w]=g),s[w]<x&&(s[w]=x)}const p=(y,g,x=[0,0])=>{const A=l(y,!1),C=l(g,!0),v=i[A],b=Math.max(s[C],v);return x[0]=v,x[1]=b,x},m=()=>{for(let g=1;g<s.length;g++)s[g]<s[g-1]&&(s[g]=s[g-1]);let y=!0;for(let g=i.length-1;g>0;g--)y&&i[g]==Nm?(i[g]=s[g],y=!1):i[g-1]>i[g]&&(i[g-1]=i[g]);return p};if(d.getIndex=m,h.getIndex=m,!a)return n==r?d:h}class ro{constructor({encoders:e,numVertices:n=void 0,attributes:r=[]}){this.encoders=e,this.variableEncoders=Object.fromEntries(Object.entries(e).filter(([i,o])=>r.includes(i)&&o&&o.scale&&!o.constant)),this.allocatedVertices=n,this.variableBuilder=new jE(n);for(const[i,o]of Object.entries(this.variableEncoders)){const a=o.accessor,s=[0,0],c=ts(o.scale.type),u=o.indexer,f=u?l=>u(a(l)):c?l=>ol(a(l),s):a;this.variableBuilder.addConverter(i,{f,numComponents:c?2:1,arrayReference:c?s:void 0})}this.lastOffset=0,this.rangeMap=new En([],JSON.stringify)}registerBatch(e){var o;const n=this.lastOffset,r=this.variableBuilder.vertexCount,i=r-n;i&&this.rangeMap.set(e,{offset:n,count:i,xIndex:(o=this.xIndexer)==null?void 0:o.getIndex()}),this.lastOffset=r}addBatches(e){for(const[n,r]of e)this.addBatch(n,r)}addBatch(e,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const a=n[o];this.variableBuilder.pushFromDatum(a),this.addToXIndex(a)}this.registerBatch(e)}prepareXIndexer(e,n=0,r=n+e.length){const i=()=>{this.addToXIndex=c=>{},this.xIndexer=void 0};if(!e.length||r-n<0){i();return}const o=c=>{var u;return c&&Re((u=c.scale)==null?void 0:u.type)&&c},a=o(this.variableEncoders.x),s=o(this.variableEncoders.x2);if(a){const c=a.accessor,u=s?s.accessor:c,f=[c(e[n]),u(e[r-1])];if(f[1]>f[0]){this.xIndexer=GE(50,f,c,u);let l=this.variableBuilder.vertexCount;this.addToXIndex=d=>{let h=this.variableBuilder.vertexCount;this.xIndexer(d,l,h),l=h}}else i()}else i()}addToXIndex(e){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class HE extends ro{constructor({encoders:e,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:o}){super({encoders:e,attributes:n,numVertices:r==1/0?o*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateFrac=this.variableBuilder.createUpdater("frac",2)}addBatch(e,n,r=0,i=n.length){if(i<=r)return;const o=this.encoders,[a,s]=this.visibleRange,c=d=>d.accessor||(h=>0),u=c(o.x),f=c(o.x2);this.prepareXIndexer(n,r,i);const l=[0,0];this.updateFrac(l);for(let d=r;d<i;d++){const h=n[d];let p=u(h),m=f(h);if(p>m&&([p,m]=[m,p]),m<a||p>s)continue;p<a&&(p=a),m>s&&(m=s),this.variableBuilder.updateFromDatum(h),l[0]=0,l[1]=0;const y=1;this.variableBuilder.pushAll();for(let g=0;g<=y;g++)l[0]=g/y,l[1]=0,this.variableBuilder.pushAll(),l[1]=1,this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(h)}this.registerBatch(e)}}class QE extends ro{constructor({encoders:e,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:o}){super({encoders:e,attributes:n,numVertices:r==1/0?o*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateSide=this.variableBuilder.createUpdater("side",1),this.updatePos=this.variableBuilder.createUpdater("pos",1)}addBatch(e,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const a=n[o];this.variableBuilder.updateFromDatum(a),this.updateSide(-.5),this.updatePos(0),this.variableBuilder.pushAll();const s=1;for(let c=0;c<=s;c++)this.updatePos(c/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(a)}this.registerBatch(e)}}class VE extends ro{constructor({encoders:e,attributes:n,numItems:r=void 0}){super({encoders:e,attributes:n,numVertices:r})}}class YE extends ro{constructor({encoders:e,attributes:n,numItems:r=void 0}){super({encoders:e,attributes:n,numVertices:r})}toArrays(){const e=this.variableBuilder.arrays;for(let n of Object.values(e))n.divisor=1;return super.toArrays()}}class _E extends ro{constructor({encoders:e,attributes:n,fontMetrics:r,properties:i,numCharacters:o=void 0}){super({encoders:e,attributes:n,numVertices:o*6}),this.metadata=r,this.metrics=r,this.properties=i;const s=e.text.channelDef;this.numberFormat=!ot(s)&&s.format?le(s.format):c=>c,this.updateVertexCoord=this.variableBuilder.createUpdater("vertexCoord",2),this.updateTextureCoord=this.variableBuilder.createUpdater("textureCoord",2),this.updateWidth=this.variableBuilder.createUpdater("width",1)}addBatch(e,n,r=0,i=n.length){var h;const o=this.properties.align||"left",a=(h=this.properties.logoLetters)!=null?h:!1,s=this.metadata.common.base,c=this.metadata.common.scaleH;let u=-jr;switch(this.properties.baseline){case"top":u+=this.metrics.capHeight;break;case"middle":u+=this.metrics.capHeight/2;break;case"bottom":u-=this.metrics.descent;break}const f=this.encoders.text.accessor||this.encoders.text,l=[0,0];this.updateVertexCoord(l);const d=[0,0];this.updateTextureCoord(d),this.prepareXIndexer(n,r,i);for(let p=r;p<i;p++){const m=n[p],y=this.numberFormat(f(m)),g=ee(y)?y:y===null?"":""+y;if(g.length==0)continue;this.variableBuilder.updateFromDatum(m);const x=a?g.length:this.metrics.measureWidth(g);this.updateWidth(x);let A=o=="right"?-x:o=="center"?-x/2:0;if(!a){const w=this.metrics.getCharByCode(g.charCodeAt(0));A-=(w.width-w.xadvance)/s/2}let C=-.5,v=1,b=1;for(let w=0;w<g.length;w++){const E=this.metrics.getCharByCode(g.charCodeAt(w)),I=a?1:E.xadvance/s;if(E.id==32){A+=I;continue}a?(b=(E.width+jr*2)/E.width,A=-b/2,v=(E.height+jr*2)/E.height,C=-.5-jr/E.height):(v=E.height/s,C=-(E.height+E.yoffset+u)/s,b=E.width/s);const L=E.x,T=E.y;l[0]=A,l[1]=C+v,d[0]=L/c,d[1]=T/c,this.variableBuilder.pushAll(),l[0]=A+b,l[1]=C+v,d[0]=(L+E.width)/c,d[1]=T/c,this.variableBuilder.pushAll(),l[0]=A,l[1]=C,d[0]=L/c,d[1]=(T+E.height)/c,this.variableBuilder.pushAll(),l[0]=A+b,l[1]=C+v,d[0]=(L+E.width)/c,d[1]=T/c,this.variableBuilder.pushAll(),l[0]=A,l[1]=C,d[0]=L/c,d[1]=(T+E.height)/c,this.variableBuilder.pushAll(),l[0]=A+b,l[1]=C,d[0]=(L+E.width)/c,d[1]=(T+E.height)/c,this.variableBuilder.pushAll(),A+=I}this.addToXIndex(m)}this.registerBatch(e)}}const Lm=`#define PI 3.141593
200
+ `);this.pushAll=r(this)}pushAll(){this.size>1e5?this._unrollPushAll():this.pushAll=()=>{for(let n=0;n<this.pushers.length;n++)this.pushers[n]();this.vertexCount++},this.pushAll()}updateFromDatum(e){for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](e)}pushFromDatum(e){this.updateFromDatum(e),this.pushAll()}}const jr=5,cl=127;function ul(t){const e=[];for(let p=0;p<=cl;p++)e.push(void 0);const n=new Map;for(const p of t.chars)p.id<=cl?e[p.id]=p:n.set(p.id,p);const r=8722;n.has(r)||n.set(r,e["-".charCodeAt(0)]);function i(p){return(p<=cl?e[p]:n.get(p))||e[63]}function o(p){return i(p.charCodeAt(0))}const a=t.common.base,s=o("x"),c=o("X"),u=o("q"),f=s.height-jr*2,l=c.height-jr*2,d=u.height-s.height+u.yoffset-s.yoffset;function h(p,m=1){let y=0;for(let g=0;g<p.length;g++)y+=i(p.charCodeAt(g)).xadvance;return y/a*m}return{measureWidth:h,getCharByCode:i,getChar:o,xHeight:f,capHeight:l,descent:d,common:t.common}}function ll(t,e=0,n=1){return Math.max(e,Math.min(n,t))}const Fm=2**31-1,VE=-(2**31);function YE(t,e,n,r=n){const i=new Int32Array(t);i.fill(Fm);let o=VE,a=!1;const s=new Int32Array(t),c=e[0],f=(e[1]-e[0])/t,l=(y,g)=>{const x=(y-c)/f,A=Math.floor(x);return ll(g&&A==x?A-1:A,0,t-1)};function d(y,g,x){g>o?o=g:a||(a=!0,console.debug("Items are not ordered properly. Disabling binned index."));const A=n(y),C=l(A,!1);i[C]>g&&(i[C]=g),s[C]<x&&(s[C]=x)}function h(y,g,x){g>o?o=g:a||(a=!0,console.debug("Items are not ordered properly. Disabling binned index."));const A=n(y),C=r(y),v=l(A,!1),b=l(C,!0);for(let w=v;w<=b;w++)i[w]>g&&(i[w]=g),s[w]<x&&(s[w]=x)}const p=(y,g,x=[0,0])=>{const A=l(y,!1),C=l(g,!0),v=i[A],b=Math.max(s[C],v);return x[0]=v,x[1]=b,x},m=()=>{for(let g=1;g<s.length;g++)s[g]<s[g-1]&&(s[g]=s[g-1]);let y=!0;for(let g=i.length-1;g>0;g--)y&&i[g]==Fm?(i[g]=s[g],y=!1):i[g-1]>i[g]&&(i[g-1]=i[g]);return p};if(d.getIndex=m,h.getIndex=m,!a)return n==r?d:h}class io{constructor({encoders:e,numVertices:n=void 0,attributes:r=[]}){this.encoders=e,this.variableEncoders=Object.fromEntries(Object.entries(e).filter(([i,o])=>r.includes(i)&&o&&o.scale&&!o.constant)),this.allocatedVertices=n,this.variableBuilder=new QE(n);for(const[i,o]of Object.entries(this.variableEncoders)){const a=o.accessor,s=[0,0],c=ns(o.scale.type),u=o.indexer,f=u?l=>u(a(l)):c?l=>sl(a(l),s):a;this.variableBuilder.addConverter(i,{f,numComponents:c?2:1,arrayReference:c?s:void 0})}this.lastOffset=0,this.rangeMap=new En([],JSON.stringify)}registerBatch(e){var o;const n=this.lastOffset,r=this.variableBuilder.vertexCount,i=r-n;i&&this.rangeMap.set(e,{offset:n,count:i,xIndex:(o=this.xIndexer)==null?void 0:o.getIndex()}),this.lastOffset=r}addBatches(e){for(const[n,r]of e)this.addBatch(n,r)}addBatch(e,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const a=n[o];this.variableBuilder.pushFromDatum(a),this.addToXIndex(a)}this.registerBatch(e)}prepareXIndexer(e,n=0,r=n+e.length){const i=()=>{this.addToXIndex=c=>{},this.xIndexer=void 0};if(!e.length||r-n<0){i();return}const o=c=>{var u;return c&&Re((u=c.scale)==null?void 0:u.type)&&c},a=o(this.variableEncoders.x),s=o(this.variableEncoders.x2);if(a){const c=a.accessor,u=s?s.accessor:c,f=[c(e[n]),u(e[r-1])];if(f[1]>f[0]){this.xIndexer=YE(50,f,c,u);let l=this.variableBuilder.vertexCount;this.addToXIndex=d=>{let h=this.variableBuilder.vertexCount;this.xIndexer(d,l,h),l=h}}else i()}else i()}addToXIndex(e){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class _E extends io{constructor({encoders:e,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:o}){super({encoders:e,attributes:n,numVertices:r==1/0?o*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateFrac=this.variableBuilder.createUpdater("frac",2)}addBatch(e,n,r=0,i=n.length){if(i<=r)return;const o=this.encoders,[a,s]=this.visibleRange,c=d=>d.accessor||(h=>0),u=c(o.x),f=c(o.x2);this.prepareXIndexer(n,r,i);const l=[0,0];this.updateFrac(l);for(let d=r;d<i;d++){const h=n[d];let p=u(h),m=f(h);if(p>m&&([p,m]=[m,p]),m<a||p>s)continue;p<a&&(p=a),m>s&&(m=s),this.variableBuilder.updateFromDatum(h),l[0]=0,l[1]=0;const y=1;this.variableBuilder.pushAll();for(let g=0;g<=y;g++)l[0]=g/y,l[1]=0,this.variableBuilder.pushAll(),l[1]=1,this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(h)}this.registerBatch(e)}}class WE extends io{constructor({encoders:e,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:o}){super({encoders:e,attributes:n,numVertices:r==1/0?o*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateSide=this.variableBuilder.createUpdater("side",1),this.updatePos=this.variableBuilder.createUpdater("pos",1)}addBatch(e,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const a=n[o];this.variableBuilder.updateFromDatum(a),this.updateSide(-.5),this.updatePos(0),this.variableBuilder.pushAll();const s=1;for(let c=0;c<=s;c++)this.updatePos(c/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(a)}this.registerBatch(e)}}class XE extends io{constructor({encoders:e,attributes:n,numItems:r=void 0}){super({encoders:e,attributes:n,numVertices:r})}}class ZE extends io{constructor({encoders:e,attributes:n,numItems:r=void 0}){super({encoders:e,attributes:n,numVertices:r})}toArrays(){const e=this.variableBuilder.arrays;for(let n of Object.values(e))n.divisor=1;return super.toArrays()}}class qE extends io{constructor({encoders:e,attributes:n,fontMetrics:r,properties:i,numCharacters:o=void 0}){super({encoders:e,attributes:n,numVertices:o*6}),this.metadata=r,this.metrics=r,this.properties=i;const s=e.text.channelDef;this.numberFormat=!ot(s)&&s.format?le(s.format):c=>c,this.updateVertexCoord=this.variableBuilder.createUpdater("vertexCoord",2),this.updateTextureCoord=this.variableBuilder.createUpdater("textureCoord",2),this.updateWidth=this.variableBuilder.createUpdater("width",1)}addBatch(e,n,r=0,i=n.length){var h;const o=this.properties.align||"left",a=(h=this.properties.logoLetters)!=null?h:!1,s=this.metadata.common.base,c=this.metadata.common.scaleH;let u=-jr;switch(this.properties.baseline){case"top":u+=this.metrics.capHeight;break;case"middle":u+=this.metrics.capHeight/2;break;case"bottom":u-=this.metrics.descent;break}const f=this.encoders.text.accessor||this.encoders.text,l=[0,0];this.updateVertexCoord(l);const d=[0,0];this.updateTextureCoord(d),this.prepareXIndexer(n,r,i);for(let p=r;p<i;p++){const m=n[p],y=this.numberFormat(f(m)),g=te(y)?y:y===null?"":""+y;if(g.length==0)continue;this.variableBuilder.updateFromDatum(m);const x=a?g.length:this.metrics.measureWidth(g);this.updateWidth(x);let A=o=="right"?-x:o=="center"?-x/2:0;if(!a){const w=this.metrics.getCharByCode(g.charCodeAt(0));A-=(w.width-w.xadvance)/s/2}let C=-.5,v=1,b=1;for(let w=0;w<g.length;w++){const E=this.metrics.getCharByCode(g.charCodeAt(w)),I=a?1:E.xadvance/s;if(E.id==32){A+=I;continue}a?(b=(E.width+jr*2)/E.width,A=-b/2,v=(E.height+jr*2)/E.height,C=-.5-jr/E.height):(v=E.height/s,C=-(E.height+E.yoffset+u)/s,b=E.width/s);const L=E.x,T=E.y;l[0]=A,l[1]=C+v,d[0]=L/c,d[1]=T/c,this.variableBuilder.pushAll(),l[0]=A+b,l[1]=C+v,d[0]=(L+E.width)/c,d[1]=T/c,this.variableBuilder.pushAll(),l[0]=A,l[1]=C,d[0]=L/c,d[1]=(T+E.height)/c,this.variableBuilder.pushAll(),l[0]=A+b,l[1]=C+v,d[0]=(L+E.width)/c,d[1]=T/c,this.variableBuilder.pushAll(),l[0]=A,l[1]=C,d[0]=L/c,d[1]=(T+E.height)/c,this.variableBuilder.pushAll(),l[0]=A+b,l[1]=C,d[0]=(L+E.width)/c,d[1]=(T+E.height)/c,this.variableBuilder.pushAll(),A+=I}this.addToXIndex(m)}this.registerBatch(e)}}const zm=`#define PI 3.141593
201
201
 
202
202
  uniform View {
203
203
  /** Offset in "unit" units */
@@ -260,7 +260,7 @@ vec4 distanceToColor(float d, vec4 fill, vec4 stroke, float halfStrokeWidth) {
260
260
  return fill * distanceToRatio(-d);
261
261
  }
262
262
  }
263
- `,WE=`const float inf = 1.0 / 0.0;
263
+ `,KE=`const float inf = 1.0 / 0.0;
264
264
 
265
265
  // Utils ------------
266
266
 
@@ -372,7 +372,7 @@ float scaleBandHp(vec2 value, vec3 domainExtent, vec2 range,
372
372
 
373
373
  return dot(vec4(start, hi, lo, bandwidth), vec4(1.0, step, step, band));
374
374
  }
375
- `,XE=`
375
+ `,JE=`
376
376
  /**
377
377
  * Describes where a sample facet should be shown. Interpolating between the
378
378
  * current and target positions/heights allows for transitioning between facet
@@ -479,13 +479,13 @@ float getSampleFacetHeight(vec2 pos) {
479
479
  return facetPos.height;
480
480
  }
481
481
  }
482
- `,ZE=`/*
482
+ `,$E=`/*
483
483
  * Based on concepts presented at:
484
484
  * https://webglfundamentals.org/webgl/lessons/webgl-picking.html
485
485
  * https://deck.gl/docs/developer-guide/custom-layers/picking
486
486
  */
487
487
 
488
- flat out highp vec4 vPickingColor;
488
+ out highp vec4 vPickingColor;
489
489
 
490
490
  /**
491
491
  * Passes the unique id to the fragment shader as a color if picking is enabled.
@@ -506,22 +506,22 @@ bool setupPicking() {
506
506
  }
507
507
  return false;
508
508
  }
509
- `,qE=`flat in highp vec4 vPickingColor;
510
- `,ns=Symbol("cacheMap");function Ur(t,e,n){let r=oo(t).get(e);return r===void 0&&(r=n(e),oo(t).set(e,r)),r}function Bm(t,e){oo(t).delete(e)}function io(t,e){const n=oo(t);for(const r of n.keys())r.startsWith(e)&&n.delete(r);oo(t).delete(e)}function Om(t){t[ns]=new Map}function oo(t){return t[ns]||Om(t),t[ns]}function KE(t,e,n,r){const i=ee(t)?t:t.name,o=!ee(t)&&t.extent||[0,1];if(n===void 0&&!ee(t)&&(n=t.count),i){const a=hu(i);if(ke(a)){const s=Fm(a,{extent:o,count:n});return ao(e,{minMag:e.LINEAR,format:e.RGB,height:1,wrap:e.CLAMP_TO_EDGE},s,r)}else{if(We(a))return Pm(a,e);throw new Error("Unknown scheme: "+i)}}}function JE(t,e="rgb",n,r){const i=Ea(t,ee(e)?e:e.type,ee(e)?void 0:e.gamma),o=Fm(i);return ao(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},o,r)}function $E(t,e,n,r){const i=Math.max(t.length,n||0),o=new Float32Array(i);for(let a=0;a<i;a++)o[a]=t[a%t.length];return ao(e,{minMag:e.NEAREST,format:e.RED,internalFormat:e.R32F,height:1},o,r)}function Pm(t,e,n,r){const i=zm(t,n);return ao(e,{minMag:e.NEAREST,format:e.RGB,height:1},i,r)}function Fm(t,{extent:e=[0,1],reverse:n=!1,count:r=256}={}){const i=e[0],o=je(e)-i,a=Yt(r).map(s=>s/(r-1)).map(s=>i+s/o).map(t);return n&&a.reverse(),zm(a)}function zm(t,e){const n=Math.max(t.length,e||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const o=Bn(t[i%t.length]).rgb();r[i*3+0]=o.r,r[i*3+1]=o.g,r[i*3+2]=o.b}return r}class eD{constructor(e,n){this._container=e,this._sizeSource=n,this._shaderCache=new Map,this._listeners=[],this.rangeTextures=new WeakMap;const r=document.createElement("canvas");e.appendChild(r);const i=IE(r,{antialias:!0,depth:!1,premultipliedAlpha:!0});if(!i)throw new Error("Unable to initialize WebGL. Your browser or machine may not support it.");if(!kr(i))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");Em(i),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),this.canvas=r,this.gl=i,this._pickingAttachmentOptions=[{format:i.RGBA,type:i.UNSIGNED_BYTE,minMag:i.LINEAR,wrap:i.CLAMP_TO_EDGE}],this._pickingBufferInfo=CE(i,this._pickingAttachmentOptions),i.bindFramebuffer(i.FRAMEBUFFER,null),this.adjustGl(),this._resizeObserver=new ResizeObserver(o=>{this.invalidateSize(),this._emit("resize")}),this._resizeObserver.observe(this._container),this._updateDpr()}invalidateSize(){this._logicalCanvasSize=void 0,this._updateDpr(),this.adjustGl()}_updateDpr(){this.dpr=window.devicePixelRatio}compileShader(e,n){const r="#version 300 es",i="precision mediump float;";We(n)&&(n=n.join(`
509
+ `,eD=`in highp vec4 vPickingColor;
510
+ `,rs=Symbol("cacheMap");function Ur(t,e,n){let r=ao(t).get(e);return r===void 0&&(r=n(e),ao(t).set(e,r)),r}function Rm(t,e){ao(t).delete(e)}function oo(t,e){const n=ao(t);for(const r of n.keys())r.startsWith(e)&&n.delete(r);ao(t).delete(e)}function jm(t){t[rs]=new Map}function ao(t){return t[rs]||jm(t),t[rs]}function tD(t,e,n,r){const i=te(t)?t:t.name,o=!te(t)&&t.extent||[0,1];if(n===void 0&&!te(t)&&(n=t.count),i){const a=mu(i);if(ke(a)){const s=Gm(a,{extent:o,count:n});return so(e,{minMag:e.LINEAR,format:e.RGB,height:1,wrap:e.CLAMP_TO_EDGE},s,r)}else{if(We(a))return Um(a,e);throw new Error("Unknown scheme: "+i)}}}function nD(t,e="rgb",n,r){const i=Da(t,te(e)?e:e.type,te(e)?void 0:e.gamma),o=Gm(i);return so(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},o,r)}function rD(t,e,n,r){const i=Math.max(t.length,n||0),o=new Float32Array(i);for(let a=0;a<i;a++)o[a]=t[a%t.length];return so(e,{minMag:e.NEAREST,format:e.RED,internalFormat:e.R32F,height:1},o,r)}function Um(t,e,n,r){const i=Hm(t,n);return so(e,{minMag:e.NEAREST,format:e.RGB,height:1},i,r)}function Gm(t,{extent:e=[0,1],reverse:n=!1,count:r=256}={}){const i=e[0],o=je(e)-i,a=Yt(r).map(s=>s/(r-1)).map(s=>i+s/o).map(t);return n&&a.reverse(),Hm(a)}function Hm(t,e){const n=Math.max(t.length,e||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const o=Bn(t[i%t.length]).rgb();r[i*3+0]=o.r,r[i*3+1]=o.g,r[i*3+2]=o.b}return r}class iD{constructor(e,n){this._container=e,this._sizeSource=n,this._shaderCache=new Map,this._listeners=[],this.rangeTextures=new WeakMap;const r=document.createElement("canvas");e.appendChild(r);const i=BE(r,{antialias:!0,depth:!1,premultipliedAlpha:!0});if(!i)throw new Error("Unable to initialize WebGL. Your browser or machine may not support it.");if(!kr(i))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");km(i),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),this.canvas=r,this.gl=i,this._pickingAttachmentOptions=[{format:i.RGBA,type:i.UNSIGNED_BYTE,minMag:i.LINEAR,wrap:i.CLAMP_TO_EDGE}],this._pickingBufferInfo=ME(i,this._pickingAttachmentOptions),i.bindFramebuffer(i.FRAMEBUFFER,null),this.adjustGl(),this._resizeObserver=new ResizeObserver(o=>{this.invalidateSize(),this._emit("resize")}),this._resizeObserver.observe(this._container),this._updateDpr()}invalidateSize(){this._logicalCanvasSize=void 0,this._updateDpr(),this.adjustGl()}_updateDpr(){this.dpr=window.devicePixelRatio}compileShader(e,n){const r="#version 300 es",i="precision mediump float;";We(n)&&(n=n.join(`
511
511
 
512
512
  `));const o=this.gl,a=n.replaceAll(/ {2,}|^\s*\/\/.*$/gm,"");let s=this._shaderCache.get(a);if(!s){const c=[r,i,n].join(`
513
513
 
514
- `);s=o.createShader(e),o.shaderSource(s,c),o.compileShader(s),this._shaderCache.set(a,s)}return s}adjustGl(){const e=this.getLogicalCanvasSize();this.canvas.style.width=`${e.width}px`,this.canvas.style.height=`${e.height}px`;const n=this.getPhysicalCanvasSize(e);this.canvas.width=n.width,this.canvas.height=n.height,SE(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this._resizeObserver.unobserve(this._container),this.canvas.remove()}getPhysicalCanvasSize(e){return e=e||this.getLogicalCanvasSize(),{width:e.width*this.dpr,height:e.height*this.dpr}}getLogicalCanvasSize(){var o,a,s,c;if(this._logicalCanvasSize)return this._logicalCanvasSize;const e=(a=(o=this._sizeSource)==null?void 0:o.call(this))!=null?a:{width:void 0,height:void 0},n=window.getComputedStyle(this._container,null),r=(s=e.width)!=null?s:this._container.clientWidth-parseFloat(n.paddingLeft)-parseFloat(n.paddingRight),i=(c=e.height)!=null?c:this._container.clientHeight-parseFloat(n.paddingTop)-parseFloat(n.paddingBottom);return this._logicalCanvasSize={width:r,height:i},this._logicalCanvasSize}addEventListener(e,n){this._listeners.push({type:e,listener:n})}_emit(e){for(const n of this._listeners)n.type===e&&n.listener()}readPickingPixel(e,n){const r=this.gl;e*=this.dpr,n*=this.dpr;const i=this.getPhysicalCanvasSize().height,o=new Uint8Array(4);return r.bindFramebuffer(r.FRAMEBUFFER,this._pickingBufferInfo.framebuffer),r.readPixels(e,i-n-1,1,1,r.RGBA,r.UNSIGNED_BYTE,o),r.bindFramebuffer(r.FRAMEBUFFER,null),o}clearAll(){const e=this.gl,{width:n,height:r}=this.getPhysicalCanvasSize();e.viewport(0,0,n,r),e.disable(e.SCISSOR_TEST),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT)}createRangeTexture(e,n=!1){const r=this.rangeTextures.get(e);if(!n&&r)return;function i(a,s){return tn(s.type)?s.domain().length:s.type=="threshold"?s.domain().length+1:s.type=="quantize"||s.type=="quantile"?a!=null?a:4:a}const o=e.channel;if(Vn(o)){const a=e.getScaleProps(),s=e.getScale();let c;if(a.scheme){let u=ee(a.scheme)?void 0:a.scheme.count;u=i(u,s),c=KE(a.scheme,this.gl,u,r)}else{const u=s.range();Sa(s.type)?c=JE(u,a.interpolate,this.gl,r):c=Pm(u,this.gl,s.domain().length,r)}this.rangeTextures.set(e,c)}else{const a=e.getScale();if(a.type==="ordinal"||Sr(a.type)){const s=Ba(o)?fp(o):u=>u,c=e.getScale().range();this.rangeTextures.set(e,$E(c.map(s),this.gl,a.domain().length,r))}}}}function tD(t,e="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...e.matchAll(r)],o=new Map(i.map((a,s)=>{const c=parseInt(a[1]),u=i[s+1],f=u?u.index:e.length,l=e.substring(a.index,f);return[c-1,l]}));return t.split(`
514
+ `);s=o.createShader(e),o.shaderSource(s,c),o.compileShader(s),this._shaderCache.set(a,s)}return s}adjustGl(){const e=this.getLogicalCanvasSize();this.canvas.style.width=`${e.width}px`,this.canvas.style.height=`${e.height}px`;const n=this.getPhysicalCanvasSize(e);this.canvas.width=n.width,this.canvas.height=n.height,TE(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this._resizeObserver.unobserve(this._container),this.canvas.remove()}getPhysicalCanvasSize(e){return e=e||this.getLogicalCanvasSize(),{width:e.width*this.dpr,height:e.height*this.dpr}}getLogicalCanvasSize(){var o,a,s,c;if(this._logicalCanvasSize)return this._logicalCanvasSize;const e=(a=(o=this._sizeSource)==null?void 0:o.call(this))!=null?a:{width:void 0,height:void 0},n=window.getComputedStyle(this._container,null),r=(s=e.width)!=null?s:this._container.clientWidth-parseFloat(n.paddingLeft)-parseFloat(n.paddingRight),i=(c=e.height)!=null?c:this._container.clientHeight-parseFloat(n.paddingTop)-parseFloat(n.paddingBottom);return this._logicalCanvasSize={width:r,height:i},this._logicalCanvasSize}addEventListener(e,n){this._listeners.push({type:e,listener:n})}_emit(e){for(const n of this._listeners)n.type===e&&n.listener()}readPickingPixel(e,n){const r=this.gl;e*=this.dpr,n*=this.dpr;const i=this.getPhysicalCanvasSize().height,o=new Uint8Array(4);return r.bindFramebuffer(r.FRAMEBUFFER,this._pickingBufferInfo.framebuffer),r.readPixels(e,i-n-1,1,1,r.RGBA,r.UNSIGNED_BYTE,o),r.bindFramebuffer(r.FRAMEBUFFER,null),o}clearAll(){const e=this.gl,{width:n,height:r}=this.getPhysicalCanvasSize();e.viewport(0,0,n,r),e.disable(e.SCISSOR_TEST),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT)}createRangeTexture(e,n=!1){const r=this.rangeTextures.get(e);if(!n&&r)return;function i(a,s){return tn(s.type)?s.domain().length:s.type=="threshold"?s.domain().length+1:s.type=="quantize"||s.type=="quantile"?a!=null?a:4:a}const o=e.channel;if(Vn(o)){const a=e.getScaleProps(),s=e.getScale();let c;if(a.scheme){let u=te(a.scheme)?void 0:a.scheme.count;u=i(u,s),c=tD(a.scheme,this.gl,u,r)}else{const u=s.range();Ea(s.type)?c=nD(u,a.interpolate,this.gl,r):c=Um(u,this.gl,s.domain().length,r)}this.rangeTextures.set(e,c)}else{const a=e.getScale();if(a.type==="ordinal"||Sr(a.type)){const s=Oa(o)?gp(o):u=>u,c=e.getScale().range();this.rangeTextures.set(e,rD(c.map(s),this.gl,a.domain().length,r))}}}}function oD(t,e="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...e.matchAll(r)],o=new Map(i.map((a,s)=>{const c=parseInt(a[1]),u=i[s+1],f=u?u.index:e.length,l=e.substring(a.index,f);return[c-1,l]}));return t.split(`
515
515
  `).map((a,s)=>{const c=o.get(s);return`${s+1+n}: ${a}${c?`
516
516
 
517
517
  ^^^ ${c}`:""}`}).join(`
518
- `)}function nD(t,e,n){const r=t.createProgram();t.attachShader(r,e),t.attachShader(r,n),t.linkProgram(r);function i(){let o,a;if(!t.getProgramParameter(r,t.LINK_STATUS)){o=t.getProgramInfoLog(r);for(const c of[e,n])t.getShaderParameter(c,t.COMPILE_STATUS)||(o=t.getShaderInfoLog(c),a=tD(t.getShaderSource(c),o,0)+`
519
- Error compiling: ${o}`,t.deleteShader(c));t.deleteProgram(r)}if(o)return{message:o,detail:a}}return{program:r,getProgramErrors:i}}function ao(t,e,n,r){return r?Gp(t,r,n,e):r=to(t,{...e,src:n}),r}function rD(...t){const e={get(n,r,i){for(const o of t){const s=o()[r];if(s!==void 0)return s}},has(n,r,i){for(const o of t){const a=o();if(r in a)return!0}return!1}};return new Proxy({},e)}function iD(t){return ee(t)||ce(t)||_o(t)}const oD="SAMPLE_FACET_UNIFORM",Rm="SAMPLE_FACET_TEXTURE";class so{constructor(e){this.unitView=e,this.encoders=void 0,this.bufferInfo=void 0,this.programInfo=void 0,this.vertexArrayInfo=void 0,this.domainUniformInfo=void 0,this.viewUniformInfo=void 0,this.rangeMap=new aD,this.defaultProperties={get clip(){return["x","y"].map(n=>e.getScaleResolution(n)).some(n=>{var r;return(r=n==null?void 0:n.isZoomable())!=null?r:!1})},xOffset:0,yOffset:0,minBufferSize:0},this.properties=rD(typeof this.unitView.spec.mark=="object"?()=>this.unitView.spec.mark:()=>({}),()=>this.defaultProperties)}get opaque(){return!1}getAttributes(){throw new Error("Not implemented!")}getSupportedChannels(){return["sample","facetIndex","x","y","color","opacity","search","uniqueId"]}getDefaultEncoding(){const e={sample:void 0,uniqueId:void 0};return this.isPickingParticipant()&&(e.uniqueId={field:"_uniqueId"}),e}fixEncoding(e){return e}get encoding(){return Ur(this,"encoding",()=>{const e=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=a=>{const s=this.properties[a];return iD(s)&&{value:s}},i=Object.fromEntries(this.getSupportedChannels().map(a=>[a,r(a)]).filter(a=>a[1].value!==void 0)),o=this.fixEncoding({...e,...i,...n});for(const a of Object.keys(o))this.getSupportedChannels().includes(a)||delete o[a];return o})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=P4(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return Rm;if(this.unitView.getFacetAccessor())return oD}createAndLinkShaders(e,n,r=[]){const i=this.getAttributes();r.push("// view: "+this.unitView.getPathString()),this.domainUniforms=[];let o=[];const a=this.getSampleFacetMode();a&&r.push(`#define ${a}`);for(const d of i){let h;if(d in this.encoding)h=d;else continue;const p=this.encoding[h];if(!!p)if(ot(p))o.push(OE(h,p.value));else{const m=Ke(p)&&p.resolutionChannel||h,y=this.unitView.getScaleResolution(m).getScale(),g=PE(h,y,p);o.push(g.glsl),g.domainUniform&&this.domainUniforms.push(g.domainUniform)}}const s=this.domainUniforms.length?`layout(std140) uniform Domains {
518
+ `)}function aD(t,e,n){const r=t.createProgram();t.attachShader(r,e),t.attachShader(r,n),t.linkProgram(r);function i(){let o,a;if(!t.getProgramParameter(r,t.LINK_STATUS)){o=t.getProgramInfoLog(r);for(const c of[e,n])t.getShaderParameter(c,t.COMPILE_STATUS)||(o=t.getShaderInfoLog(c),a=oD(t.getShaderSource(c),o,0)+`
519
+ Error compiling: ${o}`,t.deleteShader(c));t.deleteProgram(r)}if(o)return{message:o,detail:a}}return{program:r,getProgramErrors:i}}function so(t,e,n,r){return r?_p(t,r,n,e):r=no(t,{...e,src:n}),r}function sD(...t){const e={get(n,r,i){for(const o of t){const s=o()[r];if(s!==void 0)return s}},has(n,r,i){for(const o of t){const a=o();if(r in a)return!0}return!1}};return new Proxy({},e)}function cD(t){return te(t)||ce(t)||Wo(t)}const uD="SAMPLE_FACET_UNIFORM",Qm="SAMPLE_FACET_TEXTURE";class co{constructor(e){this.unitView=e,this.encoders=void 0,this.bufferInfo=void 0,this.programInfo=void 0,this.vertexArrayInfo=void 0,this.domainUniformInfo=void 0,this.viewUniformInfo=void 0,this.rangeMap=new lD,this.defaultProperties={get clip(){return["x","y"].map(n=>e.getScaleResolution(n)).some(n=>{var r;return(r=n==null?void 0:n.isZoomable())!=null?r:!1})},xOffset:0,yOffset:0,minBufferSize:0},this.properties=sD(typeof this.unitView.spec.mark=="object"?()=>this.unitView.spec.mark:()=>({}),()=>this.defaultProperties)}get opaque(){return!1}getAttributes(){throw new Error("Not implemented!")}getSupportedChannels(){return["sample","facetIndex","x","y","color","opacity","search","uniqueId"]}getDefaultEncoding(){const e={sample:void 0,uniqueId:void 0};return this.isPickingParticipant()&&(e.uniqueId={field:"_uniqueId"}),e}fixEncoding(e){return e}get encoding(){return Ur(this,"encoding",()=>{const e=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=a=>{const s=this.properties[a];return cD(s)&&{value:s}},i=Object.fromEntries(this.getSupportedChannels().map(a=>[a,r(a)]).filter(a=>a[1].value!==void 0)),o=this.fixEncoding({...e,...i,...n});for(const a of Object.keys(o))this.getSupportedChannels().includes(a)||delete o[a];return o})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=j4(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return Qm;if(this.unitView.getFacetAccessor())return uD}createAndLinkShaders(e,n,r=[]){const i=this.getAttributes();r.push("// view: "+this.unitView.getPathString()),this.domainUniforms=[];let o=[];const a=this.getSampleFacetMode();a&&r.push(`#define ${a}`);for(const d of i){let h;if(d in this.encoding)h=d;else continue;const p=this.encoding[h];if(!!p)if(ot(p))o.push(RE(h,p.value));else{const m=Ke(p)&&p.resolutionChannel||h,y=this.unitView.getScaleResolution(m).getScale(),g=jE(h,y,p);o.push(g.glsl),g.domainUniform&&this.domainUniforms.push(g.domainUniform)}}const s=this.domainUniforms.length?`layout(std140) uniform Domains {
520
520
  `+this.domainUniforms.map(d=>` ${d}
521
521
  `).join("")+`};
522
522
 
523
523
  `:"",u=[`precision highp float;
524
- `,...r,Lm,WE,s,...o,XE,ZE,e],f=[...r,Lm,qE,n],l=this.gl;this.programStatus=nD(l,this.glHelper.compileShader(l.VERTEX_SHADER,u),this.glHelper.compileShader(l.FRAGMENT_SHADER,f))}finalizeGraphicsInitialization(){const e=this.programStatus.getProgramErrors();if(e){e.detail&&console.warn(e.detail);const n=new Error("Cannot create shader program: "+e.message);throw n.view=this.unitView,n}this.programInfo=aE(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=pm(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=pm(this.gl,this.programInfo,"View"),this.gl.useProgram(this.programInfo.program),this._setDatums(),Ue(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0})}_setDatums(){for(const[e,n]of Object.entries(this.encoding))if(_i(n)){const r=this.encoders[e],i=r.indexer?r.indexer(n.datum):ts(r.scale.type)?ol(+n.datum):+n.datum;Ue(this.programInfo,{[nl+e]:i})}}deleteGraphicsData(){if(this.bufferInfo){const e=this.gl;for(let n=0;n<8;n++)e.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(e){if(this.gl.bindVertexArray(null),this.bufferInfo&&e.vertexCount<=this.bufferInfo.allocatedVertices)for(const[n,r]of Object.entries(e.arrays))r.data&&b3(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=x3(this.gl,e.arrays,{numElements:e.vertexCount}),this.bufferInfo.allocatedVertices=e.allocatedVertices,this.vertexArrayInfo=void 0}get glHelper(){return this.getContext().glHelper}get gl(){return this.glHelper.gl}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}isReady(){return this.bufferInfo&&this.programInfo}isPickingParticipant(){if(this.properties.tooltip===null)return!1;for(const e of this.unitView.getAncestors())if(!e.isPickingSupported())return!1;return!0}prepareRender(e){var a;const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=EE(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[s,c]of Object.entries(this.domainUniformInfo.setters)){const u=s.substring(Dm.length),f=this.encoding[u],l=Ke(f)&&f.resolutionChannel||u,d=this.unitView.getScaleResolution(l);if(d){const h=d.getScale();i.push(()=>{const p=tn(h.type)?[0,h.domain().length]:h.domain();c(ts(h.type)?RE(p):p)})}}i.push(()=>mm(r,this.programInfo,this.domainUniformInfo))}for(const[s,c]of Object.entries(this.encoding))if(Ke(c)){const u=Ke(c)&&c.resolutionChannel||s,f=this.unitView.getScaleResolution(u),l=n.rangeTextures.get(f);l&&i.push(()=>Ue(this.programInfo,{[rl+s]:l}))}this.getSampleFacetMode()==Rm&&i.push(()=>{let s;for(const c of this.unitView.getAncestors())if(s=c.getSampleFacetTexture(),s)break;if(!s)throw new Error("No facet texture available. This is bug.");Ue(this.programInfo,{uSampleFacetTexture:s})});const o=((a=e.picking)!=null?a:!1)&&this.isPickingParticipant();return i.push(()=>gm(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:o})),this.opaque||e.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(e){const n=e.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,o=n.locSize?n.locSize.size:1;if(i>1||i+o<0)return!1;const a=n.targetLocSize?n.targetLocSize.location:i,s=n.targetLocSize?n.targetLocSize.size:o;this.gl.uniform4f(r.location,i,o,a,s)}return!0}render(e){}createRenderCallback(e,n){var f;const r=this;let i;const o=(f=this.unitView.getScaleResolution("x"))==null?void 0:f.getScale(),a=o&&Re(o.type),s=["index","locus"].includes(o==null?void 0:o.type)?-1:0,c=[0,0];i=l=>{if(a&&l.xIndex){const d=o.domain(),h=l.xIndex(d[0]+s,d[1],c),p=h[0],m=h[1]-p;m>0&&e(p,m)}else e(l.offset,l.count)};const u=this.rangeMap.get(n.facetId);return n.sampleFacetRenderingOptions?function(){u.count&&r.prepareSampleFacetRendering(n)&&i(u)}:function(){u.count&&i(u)}}setViewport(e,n){const r=this.glHelper.dpr,i=this.gl,o=this.properties,a=this.glHelper.getLogicalCanvasSize(),s=.5,c=(o.xOffset||0)+s,u=(o.yOffset||0)+s;let f,l=e;if(o.clip||n){let d=0,h=0,p;n?(l=o.clip?e.intersect(n):n,p=[e.width/l.width,e.height/l.height],h=Math.max(0,e.y2-n.y2),d=Math.max(0,e.x2-n.x2)):p=[1,1];const m=[e.x,a.height-l.y2,Math.max(0,l.width),Math.max(0,l.height)].map(A=>A*r),y=m.map(A=>Math.floor(A)),[g,x]=m.map((A,C)=>A-y[C]);i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),f={uViewOffset:[(c+d+g)/l.width,-(u+h-x)/l.height],uViewScale:p}}else i.viewport(0,0,a.width*r,a.height*r),i.disable(i.SCISSOR_TEST),f={uViewOffset:[(e.x+c)/a.width,(a.height-e.y-u-e.height)/a.height],uViewScale:[e.width/a.width,e.height/a.height]};return gm(this.viewUniformInfo,{...f,uViewportSize:[e.width,e.height],uDevicePixelRatio:this.glHelper.dpr}),mm(this.gl,this.programInfo,this.viewUniformInfo),l.height>0&&l.width>0}findDatumAt(e,n){}}class aD extends En{constructor(){super([],JSON.stringify)}get(e){let n=super.get(e);return n===void 0&&(n={offset:0,count:0,xIndex:void 0},super.set(e,n)),n}migrateEntries(e){for(const[n,r]of e.entries())Object.assign(this.get(n),r)}}function ul(t,e){var o;const n=j4(e);let r=t[e]&&{...t[e]},i=t[n]&&{...t[n]};if(!(ot(r)||ot(i))){if(r){if(!Ke(t[e]))return;if(i){if(r.type!="quantitative"){const a=(1-(r.band||1))/2;r.band=a,i.band=-a}}else if(r.type=="quantitative")i={datum:0};else{i={...r};const a=(1-((o=r.band)!=null?o:1))/2;r.band=0+a,i.band=1-a}}else r={value:0},i={value:1};t[e]=r,t[n]=i}}function jm(t,e){t.stroke||(e?t.stroke={value:null}:t.stroke={resolutionChannel:"color",...t.color}),ot(t.stroke)&&t.stroke.value===null&&(t.strokeWidth={value:0}),t.strokeOpacity||(t.strokeOpacity={resolutionChannel:"opacity",...t.opacity})}function Um(t,e){ot(t.fill)&&t.fill.value===null?t.fillOpacity={value:0}:t.fill||(t.fill={resolutionChannel:"color",...t.color},!e&&!t.fillOpacity&&(t.fillOpacity={value:0})),t.fillOpacity||(e?t.fillOpacity={resolutionChannel:"opacity",...t.opacity}:t.fillOpacity={value:0})}class sD extends so{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,filled:!0,color:"#4c78a8",opacity:1,strokeWidth:3,cornerRadius:0,minWidth:.5,minHeight:.5,minOpacity:1,tessellationZoomThreshold:10,tessellationTiles:35}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}get opaque(){return Ur(this,"opaque",()=>!this._isRoundedCorners()&&!this._isStroked()&&ot(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(e){return ul(e,"x"),ul(e,"y"),jm(e,this.properties.filled),Um(e,this.properties.filled),delete e.color,delete e.opacity,e}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}_isRoundedCorners(){return["","TopLeft","TopRight","BottomLeft","BottomRight"].map(e=>"cornerRadius"+e).some(e=>this.properties[e]>0)}_isStroked(){const e=this.encoding.strokeWidth;return!(ot(e)&&!e.value)}async initializeGraphics(){await super.initializeGraphics();const e=[];this._isRoundedCorners()&&e.push("ROUNDED_CORNERS"),this._isStroked()&&e.push("STROKED"),this.createAndLinkShaders(kE,NE,e.map(n=>"#define "+n))}finalizeGraphicsInitialization(){var n,r,i,o;super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ue(this.programInfo,{uMinSize:[e.minWidth,e.minHeight],uMinOpacity:e.minOpacity,uCornerRadii:[(n=e.cornerRadiusTopRight)!=null?n:e.cornerRadius,(r=e.cornerRadiusBottomRight)!=null?r:e.cornerRadius,(i=e.cornerRadiusTopLeft)!=null?i:e.cornerRadius,(o=e.cornerRadiusBottomLeft)!=null?o:e.cornerRadius]})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new HE({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(e){const n=super.prepareRender(e);return n.push(()=>Rr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{no(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r)},e)}findDatumAt(e,n){e=qe(e);const r=this.encoders,i=this.unitView.getCollector().facetBatches.get(e),o=r.x.accessor,a=r.x2.accessor;if(i)return i.find(s=>n>=o(s)&&n<a(s))}}const cD=`/**
524
+ `,...r,zm,KE,s,...o,JE,$E,e],f=[...r,zm,eD,n],l=this.gl;this.programStatus=aD(l,this.glHelper.compileShader(l.VERTEX_SHADER,u),this.glHelper.compileShader(l.FRAGMENT_SHADER,f))}finalizeGraphicsInitialization(){const e=this.programStatus.getProgramErrors();if(e){e.detail&&console.warn(e.detail);const n=new Error("Cannot create shader program: "+e.message);throw n.view=this.unitView,n}this.programInfo=lE(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=vm(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=vm(this.gl,this.programInfo,"View"),this.gl.useProgram(this.programInfo.program),this._setDatums(),Ue(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0})}_setDatums(){for(const[e,n]of Object.entries(this.encoding))if(Wi(n)){const r=this.encoders[e],i=r.indexer?r.indexer(n.datum):ns(r.scale.type)?sl(+n.datum):+n.datum;Ue(this.programInfo,{[il+e]:i})}}deleteGraphicsData(){if(this.bufferInfo){const e=this.gl;for(let n=0;n<8;n++)e.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(e){if(this.gl.bindVertexArray(null),this.bufferInfo&&e.vertexCount<=this.bufferInfo.allocatedVertices)for(const[n,r]of Object.entries(e.arrays))r.data&&w3(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=E3(this.gl,e.arrays,{numElements:e.vertexCount}),this.bufferInfo.allocatedVertices=e.allocatedVertices,this.vertexArrayInfo=void 0}get glHelper(){return this.getContext().glHelper}get gl(){return this.glHelper.gl}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}isReady(){return this.bufferInfo&&this.programInfo}isPickingParticipant(){if(this.properties.tooltip===null)return!1;for(const e of this.unitView.getAncestors())if(!e.isPickingSupported())return!1;return!0}prepareRender(e){var a;const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=IE(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[s,c]of Object.entries(this.domainUniformInfo.setters)){const u=s.substring(Nm.length),f=this.encoding[u],l=Ke(f)&&f.resolutionChannel||u,d=this.unitView.getScaleResolution(l);if(d){const h=d.getScale();i.push(()=>{const p=tn(h.type)?[0,h.domain().length]:h.domain();c(ns(h.type)?HE(p):p)})}}i.push(()=>Am(r,this.programInfo,this.domainUniformInfo))}for(const[s,c]of Object.entries(this.encoding))if(Ke(c)){const u=Ke(c)&&c.resolutionChannel||s,f=this.unitView.getScaleResolution(u),l=n.rangeTextures.get(f);l&&i.push(()=>Ue(this.programInfo,{[ol+s]:l}))}this.getSampleFacetMode()==Qm&&i.push(()=>{let s;for(const c of this.unitView.getAncestors())if(s=c.getSampleFacetTexture(),s)break;if(!s)throw new Error("No facet texture available. This is bug.");Ue(this.programInfo,{uSampleFacetTexture:s})});const o=((a=e.picking)!=null?a:!1)&&this.isPickingParticipant();return i.push(()=>xm(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:o})),this.opaque||e.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(e){const n=e.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,o=n.locSize?n.locSize.size:1;if(i>1||i+o<0)return!1;const a=n.targetLocSize?n.targetLocSize.location:i,s=n.targetLocSize?n.targetLocSize.size:o;this.gl.uniform4f(r.location,i,o,a,s)}return!0}render(e){}createRenderCallback(e,n){var f;const r=this;let i;const o=(f=this.unitView.getScaleResolution("x"))==null?void 0:f.getScale(),a=o&&Re(o.type),s=["index","locus"].includes(o==null?void 0:o.type)?-1:0,c=[0,0];i=l=>{if(a&&l.xIndex){const d=o.domain(),h=l.xIndex(d[0]+s,d[1],c),p=h[0],m=h[1]-p;m>0&&e(p,m)}else e(l.offset,l.count)};const u=this.rangeMap.get(n.facetId);return n.sampleFacetRenderingOptions?function(){u.count&&r.prepareSampleFacetRendering(n)&&i(u)}:function(){u.count&&i(u)}}setViewport(e,n){const r=this.glHelper.dpr,i=this.gl,o=this.properties,a=this.glHelper.getLogicalCanvasSize(),s=.5,c=(o.xOffset||0)+s,u=(o.yOffset||0)+s;let f,l=e;if(o.clip||n){let d=0,h=0,p;n?(l=o.clip?e.intersect(n):n,p=[e.width/l.width,e.height/l.height],h=Math.max(0,e.y2-n.y2),d=Math.max(0,e.x2-n.x2)):p=[1,1];const m=[e.x,a.height-l.y2,Math.max(0,l.width),Math.max(0,l.height)].map(A=>A*r),y=m.map(A=>Math.floor(A)),[g,x]=m.map((A,C)=>A-y[C]);i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),f={uViewOffset:[(c+d+g)/l.width,-(u+h-x)/l.height],uViewScale:p}}else i.viewport(0,0,a.width*r,a.height*r),i.disable(i.SCISSOR_TEST),f={uViewOffset:[(e.x+c)/a.width,(a.height-e.y-u-e.height)/a.height],uViewScale:[e.width/a.width,e.height/a.height]};return xm(this.viewUniformInfo,{...f,uViewportSize:[e.width,e.height],uDevicePixelRatio:this.glHelper.dpr}),Am(this.gl,this.programInfo,this.viewUniformInfo),l.height>0&&l.width>0}findDatumAt(e,n){}}class lD extends En{constructor(){super([],JSON.stringify)}get(e){let n=super.get(e);return n===void 0&&(n={offset:0,count:0,xIndex:void 0},super.set(e,n)),n}migrateEntries(e){for(const[n,r]of e.entries())Object.assign(this.get(n),r)}}function fl(t,e){var o;const n=Q4(e);let r=t[e]&&{...t[e]},i=t[n]&&{...t[n]};if(!(ot(r)||ot(i))){if(r){if(!Ke(t[e]))return;if(i){if(r.type!="quantitative"){const a=(1-(r.band||1))/2;r.band=a,i.band=-a}}else if(r.type=="quantitative")i={datum:0};else{i={...r};const a=(1-((o=r.band)!=null?o:1))/2;r.band=0+a,i.band=1-a}}else r={value:0},i={value:1};t[e]=r,t[n]=i}}function Vm(t,e){t.stroke||(e?t.stroke={value:null}:t.stroke={resolutionChannel:"color",...t.color}),ot(t.stroke)&&t.stroke.value===null&&(t.strokeWidth={value:0}),t.strokeOpacity||(t.strokeOpacity={resolutionChannel:"opacity",...t.opacity})}function Ym(t,e){ot(t.fill)&&t.fill.value===null?t.fillOpacity={value:0}:t.fill||(t.fill={resolutionChannel:"color",...t.color},!e&&!t.fillOpacity&&(t.fillOpacity={value:0})),t.fillOpacity||(e?t.fillOpacity={resolutionChannel:"opacity",...t.opacity}:t.fillOpacity={value:0})}class fD extends co{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,filled:!0,color:"#4c78a8",opacity:1,strokeWidth:3,cornerRadius:0,minWidth:.5,minHeight:.5,minOpacity:1,tessellationZoomThreshold:10,tessellationTiles:35}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}get opaque(){return Ur(this,"opaque",()=>!this._isRoundedCorners()&&!this._isStroked()&&ot(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(e){return fl(e,"x"),fl(e,"y"),Vm(e,this.properties.filled),Ym(e,this.properties.filled),delete e.color,delete e.opacity,e}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}_isRoundedCorners(){return["","TopLeft","TopRight","BottomLeft","BottomRight"].map(e=>"cornerRadius"+e).some(e=>this.properties[e]>0)}_isStroked(){const e=this.encoding.strokeWidth;return!(ot(e)&&!e.value)}async initializeGraphics(){await super.initializeGraphics();const e=[];this._isRoundedCorners()&&e.push("ROUNDED_CORNERS"),this._isStroked()&&e.push("STROKED"),this.createAndLinkShaders(OE,PE,e.map(n=>"#define "+n))}finalizeGraphicsInitialization(){var n,r,i,o;super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ue(this.programInfo,{uMinSize:[e.minWidth,e.minHeight],uMinOpacity:e.minOpacity,uCornerRadii:[(n=e.cornerRadiusTopRight)!=null?n:e.cornerRadius,(r=e.cornerRadiusBottomRight)!=null?r:e.cornerRadius,(i=e.cornerRadiusTopLeft)!=null?i:e.cornerRadius,(o=e.cornerRadiusBottomLeft)!=null?o:e.cornerRadius]})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new _E({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(e){const n=super.prepareRender(e);return n.push(()=>Rr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{ro(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r)},e)}findDatumAt(e,n){e=qe(e);const r=this.encoders,i=this.unitView.getCollector().facetBatches.get(e),o=r.x.accessor,a=r.x2.accessor;if(i)return i.find(s=>n>=o(s)&&n<a(s))}}const dD=`/**
525
525
  * The stroke should only grow inwards, e.g, the diameter/outline is not affected by the stroke width.
526
526
  * Thus, a point that has a zero size has no visible stroke. This allows strokes to be used with
527
527
  * geometric zoom, etc.
@@ -540,13 +540,13 @@ uniform float uMaxPointSize;
540
540
  uniform float uZoomLevel;
541
541
  uniform float uSemanticThreshold;
542
542
 
543
- flat out float vRadius;
544
- flat out float vRadiusWithPadding;
545
- flat out lowp vec4 vFillColor;
546
- flat out lowp vec4 vStrokeColor;
547
- flat out lowp float vShape;
548
- flat out lowp float vHalfStrokeWidth;
549
- flat out mat2 vRotationMatrix;
543
+ out float vRadius;
544
+ out float vRadiusWithPadding;
545
+ out lowp vec4 vFillColor;
546
+ out lowp vec4 vStrokeColor;
547
+ out lowp float vShape;
548
+ out lowp float vHalfStrokeWidth;
549
+ out mat2 vRotationMatrix;
550
550
 
551
551
 
552
552
  float computeSemanticThresholdFactor() {
@@ -650,21 +650,21 @@ void main(void) {
650
650
 
651
651
  setupPicking();
652
652
  }
653
- `,uD=`const lowp vec4 white = vec4(1.0);
653
+ `,hD=`const lowp vec4 white = vec4(1.0);
654
654
  const lowp vec4 black = vec4(0.0, 0.0, 0.0, 1.0);
655
655
 
656
656
  uniform bool uInwardStroke;
657
657
  uniform float uGradientStrength;
658
658
 
659
- flat in float vRadius;
660
- flat in float vRadiusWithPadding;
659
+ in float vRadius;
660
+ in float vRadiusWithPadding;
661
661
 
662
- flat in lowp vec4 vFillColor;
663
- flat in lowp vec4 vStrokeColor;
664
- flat in lowp float vShape;
665
- flat in lowp float vHalfStrokeWidth;
662
+ in lowp vec4 vFillColor;
663
+ in lowp vec4 vStrokeColor;
664
+ in lowp float vShape;
665
+ in lowp float vHalfStrokeWidth;
666
666
 
667
- flat in mat2 vRotationMatrix;
667
+ in mat2 vRotationMatrix;
668
668
 
669
669
  out lowp vec4 fragColor;
670
670
 
@@ -773,10 +773,10 @@ void main() {
773
773
  }
774
774
  }
775
775
 
776
- `,kt=1<<0,fn=1<<1,lD={};class se{get behavior(){return 0}constructor(){this.children=[],this.parent=void 0,this.completed=!1}reset(){this.completed=!1;for(const e of this.children)e.reset()}initialize(){}_updatePropagator(){this._propagate=Function("children",Yt(this.children.length).map(e=>`const child${e} = children[${e}];`).join(`
776
+ `,kt=1<<0,fn=1<<1,pD={};class se{get behavior(){return 0}constructor(){this.children=[],this.parent=void 0,this.completed=!1}reset(){this.completed=!1;for(const e of this.children)e.reset()}initialize(){}_updatePropagator(){this._propagate=Function("children",Yt(this.children.length).map(e=>`const child${e} = children[${e}];`).join(`
777
777
  `)+`return function propagate(datum) {${Yt(this.children.length).map(e=>`child${e}.handle(datum);`).join(`
778
778
  `)}}`)(this.children)}setParent(e){this.parent=e}addChild(e){if(e.parent)throw new Error("Cannot add the child! It already has a parent.");return this.children.push(e),e.setParent(this),this._updatePropagator(),this}adopt(e){e.parent&&e.parent.removeChild(e),this.addChild(e)}adoptChildrenOf(e){for(const n of e.children)this.adopt(n)}insertAsParent(e){if(this.isRoot())throw new Error("Cannot insert a new parent for a root node!");e.parent=this.parent,this.parent.children[this.parent.children.indexOf(this)]=e,this.parent._updatePropagator(),this.parent=void 0,e.addChild(this)}removeChild(e){const n=this.children.indexOf(e);if(n>-1)this.children.splice(n,1),e.parent=void 0,this._updatePropagator();else throw new Error("Trying to remove an unknown child node!")}excise(){if(this.isRoot())throw new Error("Cannot excise root node!");if(this.isTerminal())this.parent.removeChild(this);else if(this.children.length==1){const e=this.children[0];e.setParent(this.parent),this.parent.children[this.parent.children.indexOf(this)]=e,this.parent._updatePropagator(),this.setParent(void 0),this.children.length=0}else throw new Error("Cannot excise a node that has multiple children!")}isRoot(){return!this.parent}isBranching(){return this.children.length>1}isTerminal(){return this.children.length==0}visit(e){e(this);for(const n of this.children)n.visit(e);e.afterChildren&&e.afterChildren(this)}subtreeToString(e=0){var r;const n=this.children.map(i=>i.subtreeToString(e+1)).join("");return" ".repeat(e*2)+"* "+((r=/^class ([A-Za-z0-9_]+)/.exec(""+this.constructor))==null?void 0:r[1])+`
779
- `+n}getGlobalObject(){return this.parent?this.parent.getGlobalObject():lD}handle(e){this._propagate(e)}complete(){this.completed=!0;for(const e of this.children)e.complete()}beginBatch(e){for(const n of this.children)n.beginBatch(e)}_propagate(e){}}function Gm(t){return t.type=="file"}function fD(t){return t.type=="facet"}class Hm extends se{constructor(e){super(),this.k=e.size||500,this.reset()}reset(){super.reset(),this.reservoir=[],this.W=void 0,this.ingester=this._initialIngester}_initialIngester(e){this.reservoir.push(e),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(e){++this.i==this.next&&(this.reservoir[Math.floor(Math.random()*this.k)]=e,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(e){this.ingester(e)}complete(){for(const e of this.reservoir)this._propagate(e);super.complete()}}function Qm(t,e,n){const r=new Hm({type:"sample",size:t});for(const i of e)r.handle(n(i));return r.complete(),r.reservoir}const dD={};class hD extends so{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,color:"#4c78a8",filled:!0,opacity:1,size:100,semanticScore:0,shape:"circle",strokeWidth:2,fillGradientStrength:0,dx:0,dy:0,angle:0,sampleFacetPadding:.1,semanticZoomFraction:.02}))}getAttributes(){return["inwardStroke","uniqueId","facetIndex","x","y","size","semanticScore","shape","strokeWidth","gradientStrength","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"size","semanticScore","shape","strokeWidth","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getDefaultEncoding(){return{...super.getDefaultEncoding(),...dD}}fixEncoding(e){return jm(e,this.properties.filled),Um(e,this.properties.filled),delete e.color,delete e.opacity,e}initializeData(){super.initializeData();const e=this.unitView.getAccessor("semanticScore");e&&(this.sampledSemanticScores=Float32Array.from(Qm(1e4,this.unitView.getCollector().getData(),e)),this.sampledSemanticScores.sort((n,r)=>n-r))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(cD,uD)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ue(this.programInfo,{uInwardStroke:e.inwardStroke,uGradientStrength:e.fillGradientStrength,uMaxRelativePointDiameter:1-2*e.sampleFacetPadding})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new VE({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}_getGeometricScaleFactor(){const e=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/e),1/3)}_getMaxPointSize(){const e=this.encoders.size;return e.constant?e(null):e.scale.range().reduce((n,r)=>Math.max(n,r))}getSemanticThreshold(){if(this.sampledSemanticScores){const e=Math.max(0,1-this.properties.semanticZoomFraction*this.unitView.getZoomLevel());if(e<=0)return-1/0;if(e>=1)return 1/0;{const n=this.sampledSemanticScores;return ac(n,e)}}else return-1}prepareRender(e){const n=super.prepareRender(e);return n.push(()=>Ue(this.programInfo,{uMaxPointSize:this._getMaxPointSize(),uScaleFactor:this._getGeometricScaleFactor(),uSemanticThreshold:this.getSemanticThreshold()})),n.push(()=>Rr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{i&&no(n,this.vertexArrayInfo,n.POINTS,i,r)},e)}}const pD=`// Line caps
779
+ `+n}getGlobalObject(){return this.parent?this.parent.getGlobalObject():pD}handle(e){this._propagate(e)}complete(){this.completed=!0;for(const e of this.children)e.complete()}beginBatch(e){for(const n of this.children)n.beginBatch(e)}_propagate(e){}}function _m(t){return t.type=="file"}function mD(t){return t.type=="facet"}class Wm extends se{constructor(e){super(),this.k=e.size||500,this.reset()}reset(){super.reset(),this.reservoir=[],this.W=void 0,this.ingester=this._initialIngester}_initialIngester(e){this.reservoir.push(e),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(e){++this.i==this.next&&(this.reservoir[Math.floor(Math.random()*this.k)]=e,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(e){this.ingester(e)}complete(){for(const e of this.reservoir)this._propagate(e);super.complete()}}function Xm(t,e,n){const r=new Wm({type:"sample",size:t});for(const i of e)r.handle(n(i));return r.complete(),r.reservoir}const gD={};class yD extends co{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,color:"#4c78a8",filled:!0,opacity:1,size:100,semanticScore:0,shape:"circle",strokeWidth:2,fillGradientStrength:0,dx:0,dy:0,angle:0,sampleFacetPadding:.1,semanticZoomFraction:.02}))}getAttributes(){return["inwardStroke","uniqueId","facetIndex","x","y","size","semanticScore","shape","strokeWidth","gradientStrength","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"size","semanticScore","shape","strokeWidth","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getDefaultEncoding(){return{...super.getDefaultEncoding(),...gD}}fixEncoding(e){return Vm(e,this.properties.filled),Ym(e,this.properties.filled),delete e.color,delete e.opacity,e}initializeData(){super.initializeData();const e=this.unitView.getAccessor("semanticScore");e&&(this.sampledSemanticScores=Float32Array.from(Xm(1e4,this.unitView.getCollector().getData(),e)),this.sampledSemanticScores.sort((n,r)=>n-r))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(dD,hD)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ue(this.programInfo,{uInwardStroke:e.inwardStroke,uGradientStrength:e.fillGradientStrength,uMaxRelativePointDiameter:1-2*e.sampleFacetPadding})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new XE({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}_getGeometricScaleFactor(){const e=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/e),1/3)}_getMaxPointSize(){const e=this.encoders.size;return e.constant?e(null):e.scale.range().reduce((n,r)=>Math.max(n,r))}getSemanticThreshold(){if(this.sampledSemanticScores){const e=Math.max(0,1-this.properties.semanticZoomFraction*this.unitView.getZoomLevel());if(e<=0)return-1/0;if(e>=1)return 1/0;{const n=this.sampledSemanticScores;return cc(n,e)}}else return-1}prepareRender(e){const n=super.prepareRender(e);return n.push(()=>Ue(this.programInfo,{uMaxPointSize:this._getMaxPointSize(),uScaleFactor:this._getGeometricScaleFactor(),uSemanticThreshold:this.getSemanticThreshold()})),n.push(()=>Rr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{i&&ro(n,this.vertexArrayInfo,n.POINTS,i,r)},e)}}const bD=`// Line caps
780
780
  const int BUTT = 0;
781
781
  const int SQUARE = 1;
782
782
  const int ROUND = 2;
@@ -793,10 +793,10 @@ uniform float uMinLength;
793
793
  uniform mediump float uDashTextureSize;
794
794
  uniform lowp int uStrokeCap;
795
795
 
796
- flat out vec4 vColor;
796
+ out vec4 vColor;
797
797
 
798
798
  /** Stroke width */
799
- flat out float vSize;
799
+ out float vSize;
800
800
 
801
801
  /** The distance from the line center to the direction of normal in pixels */
802
802
  out float vNormalLengthInPixels;
@@ -865,7 +865,7 @@ void main(void) {
865
865
 
866
866
  setupPicking();
867
867
  }
868
- `,mD=`// Line ending
868
+ `,vD=`// Line ending
869
869
  const int BUTT = 0;
870
870
  const int SQUARE = 1;
871
871
  const int ROUND = 2;
@@ -875,8 +875,8 @@ uniform float uDashTextureSize;
875
875
  uniform float uStrokeDashOffset;
876
876
  uniform lowp int uStrokeCap;
877
877
 
878
- flat in vec4 vColor;
879
- flat in float vSize;
878
+ in vec4 vColor;
879
+ in float vSize;
880
880
 
881
881
  /** Position on the rule along its length in pixels */
882
882
  in vec2 vPosInPixels;
@@ -917,7 +917,7 @@ void main(void) {
917
917
  fragColor = vPickingColor;
918
918
  }
919
919
  }
920
- `;class gD extends so{constructor(e){super(e),this.dashTextureSize=0,Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,size:1,color:"black",opacity:1,minLength:0,strokeDash:null,strokeDashOffset:0,strokeCap:"butt"}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(e){if(!(e.x&&e.y&&e.x2&&e.y2))if(e.x&&e.x2&&!e.y)e.y={value:.5},e.y2=e.y;else if(e.y&&e.y2&&!e.x)e.x={value:.5},e.x2=e.x;else if(e.x&&!e.y)e.y={value:0},e.y2={value:1},e.x2=e.x;else if(e.y&&!e.x)e.x={value:0},e.x2={value:1},e.y2=e.y;else if(e.x&&e.y&&e.y2)e.x2=e.x;else if(e.y&&e.x&&e.x2)e.y2=e.y;else if(e.y&&e.x)if(!e.x2&&Ke(e.y)&&e.y.type=="quantitative")e.x2=e.x,e.y2={datum:0};else if(!e.y2&&Ke(e.x)&&e.x.type=="quantitative")e.y2=e.y,e.x2={datum:0};else throw new Error("A bug!");else throw new Error("Invalid x and y encodings for rule mark: "+JSON.stringify(e));return e}async initializeGraphics(){if(await super.initializeGraphics(),this.properties.strokeDash){const e=this.gl,n=yD(this.properties.strokeDash);this.dashTexture=to(e,{mag:e.NEAREST,min:e.NEAREST,internalFormat:e.R8,format:e.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(pD,mD)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ue(this.programInfo,{uMinLength:e.minLength,uDashTextureSize:this.dashTextureSize,uStrokeCap:["butt","square","round"].indexOf(e.strokeCap)})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new QE({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(e){const n=super.prepareRender(e);return this.dashTexture&&n.push(()=>Ue(this.programInfo,{uDashTexture:this.dashTexture,uStrokeDashOffset:this.properties.strokeDashOffset})),n.push(()=>Rr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>no(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),e)}}function yD(t){if(t.length==0||t.length%2||t.findIndex(o=>Math.round(o)!=o||o<1||o>1e3)>=0)throw new Error("Invalid stroke dash pattern: "+JSON.stringify(t));const e=t.reduce((o,a)=>o+a),n=new Uint8Array(e);let r=!0,i=0;for(let o of t){for(;o;)n[i++]=r&&255||0,o--;r=!r}return n}const bD=`uniform float uSagittaScaleFactor;
920
+ `;class AD extends co{constructor(e){super(e),this.dashTextureSize=0,Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,size:1,color:"black",opacity:1,minLength:0,strokeDash:null,strokeDashOffset:0,strokeCap:"butt"}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(e){if(!(e.x&&e.y&&e.x2&&e.y2))if(e.x&&e.x2&&!e.y)e.y={value:.5},e.y2=e.y;else if(e.y&&e.y2&&!e.x)e.x={value:.5},e.x2=e.x;else if(e.x&&!e.y)e.y={value:0},e.y2={value:1},e.x2=e.x;else if(e.y&&!e.x)e.x={value:0},e.x2={value:1},e.y2=e.y;else if(e.x&&e.y&&e.y2)e.x2=e.x;else if(e.y&&e.x&&e.x2)e.y2=e.y;else if(e.y&&e.x)if(!e.x2&&Ke(e.y)&&e.y.type=="quantitative")e.x2=e.x,e.y2={datum:0};else if(!e.y2&&Ke(e.x)&&e.x.type=="quantitative")e.y2=e.y,e.x2={datum:0};else throw new Error("A bug!");else throw new Error("Invalid x and y encodings for rule mark: "+JSON.stringify(e));return e}async initializeGraphics(){if(await super.initializeGraphics(),this.properties.strokeDash){const e=this.gl,n=xD(this.properties.strokeDash);this.dashTexture=no(e,{mag:e.NEAREST,min:e.NEAREST,internalFormat:e.R8,format:e.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(bD,vD)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ue(this.programInfo,{uMinLength:e.minLength,uDashTextureSize:this.dashTextureSize,uStrokeCap:["butt","square","round"].indexOf(e.strokeCap)})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new WE({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(e){const n=super.prepareRender(e);return this.dashTexture&&n.push(()=>Ue(this.programInfo,{uDashTexture:this.dashTexture,uStrokeDashOffset:this.properties.strokeDashOffset})),n.push(()=>Rr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>ro(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),e)}}function xD(t){if(t.length==0||t.length%2||t.findIndex(o=>Math.round(o)!=o||o<1||o>1e3)>=0)throw new Error("Invalid stroke dash pattern: "+JSON.stringify(t));const e=t.reduce((o,a)=>o+a),n=new Uint8Array(e);let r=!0,i=0;for(let o of t){for(;o;)n[i++]=r&&255||0,o--;r=!r}return n}const wD=`uniform float uSagittaScaleFactor;
921
921
 
922
922
  /** Make very small arcs visible */
923
923
  uniform float uMinSagittaLength;
@@ -1028,7 +1028,7 @@ void main(void) {
1028
1028
 
1029
1029
  setupPicking();
1030
1030
  }
1031
- `,vD=`in lowp vec4 vColor;
1031
+ `,CD=`in lowp vec4 vColor;
1032
1032
  in float vSize;
1033
1033
  in float vNormalLengthInPixels;
1034
1034
 
@@ -1046,7 +1046,7 @@ void main(void) {
1046
1046
  fragColor = vPickingColor;
1047
1047
  }
1048
1048
  }
1049
- `;class AD extends so{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:0,x2:void 0,y:0,y2:void 0,size:1,color:"black",opacity:1,segments:101,sagittaScaleFactor:1,minSagittaLength:1.5}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","height","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(e){return e.x||(e.x2=e.x),e.y2||(e.y2=e.y),e}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(bD,vD)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ue(this.programInfo,{uSagittaScaleFactor:e.sagittaScaleFactor,uMinSagittaLength:e.minSagittaLength})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new YE({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(e.facetBatches);const i=r.toArrays();i.arrays.strip={data:xD(this.properties.segments),numComponents:2},this.rangeMap.migrateEntries(i.rangeMap),this.arrays=Object.fromEntries(Object.entries(i.arrays).map(([o,a])=>[o,{...a,data:void 0}])),this.updateBufferInfo(i)}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{this.gl.bindVertexArray(this.vertexArrayInfo.vertexArrayObject);for(const o of Object.entries(this.bufferInfo.attribs)){const[a,s]=o;s.buffer&&s.numComponents&&s.divisor&&(s.offset=r*this.arrays[a].numComponents*4)}Rr(n,this.programInfo,this.bufferInfo),no(n,this.bufferInfo,n.TRIANGLE_STRIP,(this.properties.segments+1)*2,0,i)},e)}}function xD(t){let e=0;const n=[];for(;e<=t;e++)n.push(e/t,.5),n.push(e/t,-.5);return n}const wD=`uniform float uSdfNumerator;
1049
+ `;class SD extends co{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:0,x2:void 0,y:0,y2:void 0,size:1,color:"black",opacity:1,segments:101,sagittaScaleFactor:1,minSagittaLength:1.5}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","height","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(e){return e.x||(e.x2=e.x),e.y2||(e.y2=e.y),e}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(wD,CD)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ue(this.programInfo,{uSagittaScaleFactor:e.sagittaScaleFactor,uMinSagittaLength:e.minSagittaLength})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new ZE({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(e.facetBatches);const i=r.toArrays();i.arrays.strip={data:ED(this.properties.segments),numComponents:2},this.rangeMap.migrateEntries(i.rangeMap),this.arrays=Object.fromEntries(Object.entries(i.arrays).map(([o,a])=>[o,{...a,data:void 0}])),this.updateBufferInfo(i)}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{this.gl.bindVertexArray(this.vertexArrayInfo.vertexArrayObject);for(const o of Object.entries(this.bufferInfo.attribs)){const[a,s]=o;s.buffer&&s.numComponents&&s.divisor&&(s.offset=r*this.arrays[a].numComponents*4)}Rr(n,this.programInfo,this.bufferInfo),ro(n,this.bufferInfo,n.TRIANGLE_STRIP,(this.properties.segments+1)*2,0,i)},e)}}function ED(t){let e=0;const n=[];for(;e<=t;e++)n.push(e/t,.5),n.push(e/t,-.5);return n}const DD=`uniform float uSdfNumerator;
1050
1050
 
1051
1051
  uniform vec2 uD; // dx & dy
1052
1052
 
@@ -1077,8 +1077,8 @@ uniform bool uFlushY;
1077
1077
  #endif
1078
1078
 
1079
1079
  out vec2 vTexCoord;
1080
- flat out vec4 vColor;
1081
- flat out float vSlope;
1080
+ out vec4 vColor;
1081
+ out float vSlope;
1082
1082
  out float vEdgeFadeOpacity;
1083
1083
 
1084
1084
  struct RangeResult {
@@ -1292,12 +1292,12 @@ void main(void) {
1292
1292
 
1293
1293
  setupPicking();
1294
1294
  }
1295
- `,CD=`uniform sampler2D uTexture;
1295
+ `,MD=`uniform sampler2D uTexture;
1296
1296
 
1297
1297
  in vec2 vTexCoord;
1298
1298
  in float vEdgeFadeOpacity;
1299
- flat in vec4 vColor;
1300
- flat in float vSlope;
1299
+ in vec4 vColor;
1300
+ in float vSlope;
1301
1301
 
1302
1302
  out lowp vec4 fragColor;
1303
1303
 
@@ -1323,7 +1323,7 @@ void main() {
1323
1323
  fragColor = vPickingColor;
1324
1324
  }
1325
1325
  }
1326
- `,SD={left:-1,center:0,right:1},ED={top:-1,middle:0,bottom:1,alphabetic:1};class DD extends so{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,x2:void 0,y2:void 0,text:"",size:11,color:"black",opacity:1,font:void 0,fontStyle:void 0,fontWeight:void 0,align:"center",baseline:"middle",dx:0,dy:0,angle:0,fitToBand:!1,squeeze:!0,paddingX:0,paddingY:0,flushX:!0,flushY:!0,logoLetters:!1,viewportEdgeFadeWidthTop:0,viewportEdgeFadeWidthRight:0,viewportEdgeFadeWidthBottom:0,viewportEdgeFadeWidthLeft:0,viewportEdgeFadeDistanceTop:-1/0,viewportEdgeFadeDistanceRight:-1/0,viewportEdgeFadeDistanceBottom:-1/0,viewportEdgeFadeDistanceLeft:-1/0})),this.font=this.properties.font?e.context.fontManager.getFont(this.properties.font,this.properties.fontStyle,this.properties.fontWeight):e.context.fontManager.getDefaultFont()}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","color","size","opacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size","text","angle"]}fixEncoding(e){for(const n of Wi)this.properties.fitToBand&&ul(e,n);return e}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(wD,CD)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ue(this.programInfo,{uPaddingX:e.paddingX,uPaddingY:e.paddingY,uFlushX:!!e.flushX,uFlushY:!!e.flushY,uAlign:[SD[e.align],ED[e.baseline]],uD:[e.dx,-e.dy],uLogoLetter:!!e.logoLetters,uSqueeze:!!e.squeeze,uViewportEdgeFadeWidth:[e.viewportEdgeFadeWidthTop,e.viewportEdgeFadeWidthRight,e.viewportEdgeFadeWidthBottom,e.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[e.viewportEdgeFadeDistanceTop,e.viewportEdgeFadeDistanceRight,e.viewportEdgeFadeDistanceBottom,e.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getData(),r=this.encoding,i=this.encoders.text.accessor||this.encoders.text;let o=0;const a=r.text.format?le(r.text.format):u=>u;for(const u of n){const f=a(i(u)),l=ee(f)?f:f===null?"":""+f;o+=l&&l.length||0}const s=new _E({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(o,this.properties.minBufferSize||0)});s.addBatches(e.facetBatches);const c=s.toArrays();this.rangeMap.migrateEntries(c.rangeMap),this.updateBufferInfo(c)}prepareRender(e){const n=super.prepareRender(e);let r=.35;return this.properties.logoLetters&&(r/=2),n.push(()=>Ue(this.programInfo,{uTexture:this.font.texture,uSdfNumerator:this.font.metrics.common.base/(this.glHelper.dpr/r)})),n.push(()=>Rr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>no(n,this.vertexArrayInfo,n.TRIANGLES,i,r),e)}}function co(t,e,{spacing:n,devicePixelRatio:r,offset:i,reverse:o}={}){n=n||0,i=i||0;let a=0,s=0;for(const p of t)a+=rs(p.px)+(ll(p)?0:n),s+=rs(p.grow);a-=n;const c=Math.max(0,e-a),u=r!==void 0?p=>Math.round(p*r)/r:p=>p,f=[],l=[],d=p=>{const m=f.length;if(!m)return;const y=(p?n:0)*(o?-1:1);h-=y;for(let g=0;g<m;g++)l.push({location:h+(g+1)/(m+1)*y,size:0});h+=y,f.length=0};let h=o?Math.max(e,a):0+i;if(t.length==1&&ll(t[0]))return[{location:h,size:0}];for(let p=0;p<t.length;p++){const m=t[p];if(ll(m))f.push(m);else{d(l.length>0);const y=rs(m.px)+(s?rs(m.grow)/s*c:0);o&&(h-=y),l.push({location:u(h),size:u(y)}),o?h-=n:h+=y+n}}return h+=o?n:-n,d(!1),l}function MD(t){var r,i;let e=0,n=0;for(const o of t)e=Math.max(e,(r=o.px)!=null?r:0),n=Math.max(n,(i=o.grow)!=null?i:0);return{px:e,grow:n}}const ed=class{constructor(e,n){De(this,Bo);this.width=e,this.height=n}addPadding(e){return be(this,Bo,rd).call(this,e.width,e.height)}subtractPadding(e){return be(this,Bo,rd).call(this,-e.width,-e.height)}};let Zn=ed;Bo=new WeakSet,rd=function(e,n){var r,i;return new ed({px:((r=this.width.px)!=null?r:0)+e,grow:this.width.grow},{px:((i=this.height.px)!=null?i:0)+n,grow:this.height.grow})};const uo=Object.freeze({px:0,grow:0}),TD=new Zn(uo,uo);function ll(t){return!t.px&&!t.grow}function rs(t){return t||0}function ID(t){return t&&(ce(t.px)||ce(t.grow))}function kD(t){if(Wm(t))throw new Error("parseSizeDef does not accept step-based sizes.");if(ID(t))return t;if(ce(t))return{px:t,grow:0};if(t==="container")return{px:0,grow:1};if(!t)return{px:0,grow:1};throw new Error(`Invalid sizeDef: ${t}`)}function ND(t,e,n){return{get location(){const r=n();switch(r){case 0:return t.location;case 1:return e.location;default:return r*e.location+(1-r)*t.location}},get size(){const r=n();switch(r){case 0:return t.size;case 1:return e.size;default:return r*e.size+(1-r)*t.size}}}}function LD(t,e){const n=ce(e)?()=>e:e;return{get location(){return t.location+n()},get size(){return t.size}}}function BD(t,e){const n=ce(e)?()=>e:e;return{get location(){return t.location*n()},get size(){return t.size*n()}}}function Vm(t,e){return e>=t.location&&e<t.location+t.size}class Je{constructor(e,n,r,i){this.top=e||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(e){return e<=0?this:new Je(this.top+e,this.right+e,this.bottom+e,this.left+e)}add(e){return new Je(this.top+e.top,this.right+e.right,this.bottom+e.bottom,this.left+e.left)}subtract(e){return new Je(this.top-e.top,this.right-e.right,this.bottom-e.bottom,this.left-e.left)}static createFromConfig(e){return typeof e=="number"?this.createUniformPadding(e):e?this.createFromRecord(e):fl}static createFromRecord(e){return new Je(e.top,e.right,e.bottom,e.left)}static zero(){return fl}static createUniformPadding(e){return new Je(e,e,e,e)}}const fl=Je.createUniformPadding(0);Object.freeze(fl);const OD=/^([A-Za-z]+:)?\/\//;function PD(t,e){if(e&&OD.test(e))return e;const n=t();return n&&e?n.endsWith("/")?n+e:n+"/"+e:n!=null?n:e}const is="VISIT_SKIP",qn="VISIT_STOP",Ym=t=>t;class _m{constructor(e,n,r,i){this.context=n,this.parent=r,this.name=e.name||i,this.spec=e,this.resolutions={scale:{},axis:{}},this._broadcastHandlers={},this._capturingInteractionEventListeners={},this._nonCapturingInteractionEventListeners={},Om(this),this.opacityFunction=Ym,this.blockEncodingInheritance=!1}getPadding(){return this._cache("size/padding",()=>Je.createFromConfig(this.spec.padding))}getOverhang(){return Je.zero()}getSize(){return this._cache("size/size",()=>this.isVisible()?this.getSizeFromSpec().addPadding(this.getPadding()):TD)}getSizeFromSpec(){const e=n=>{var i,o;let r=this.spec[n];if(Wm(r)){const a=r.step,s=(i=this.getScaleResolution(n=="width"?"x":"y"))==null?void 0:i.getScale();if(s){let c=0;if(tn(s.type))c=s.domain().length;else if(["locus","index"].includes(s.type)){const f=s.domain();c=je(f)-f[0]}else throw new Error(`Cannot use step-based size with "${s.type}" scale!`);const u=s;return c=su(c,u.paddingInner(),u.paddingOuter()),{px:c*a,grow:0}}else throw new Error("Cannot use 'step' size with missing scale!")}else return(o=r&&kD(r))!=null?o:{px:0,grow:1}};return this._cache("size/sizeFromSpec",()=>new Zn(e("width"),e("height")))}isVisible(){return this.context.isViewVisible(this)}isVisibleInSpec(){var e;return(e=this.spec.visible)!=null?e:!0}getEffectiveOpacity(){var e,n;return this.opacityFunction((n=(e=this.parent)==null?void 0:e.getEffectiveOpacity())!=null?n:1)}getPathString(){return[...this.getAncestors()].map(e=>e.name).reverse().join("/")}*getAncestors(){let e=this;do yield e,e=e.parent;while(e)}handleBroadcast(e){for(const n of this._broadcastHandlers[e.type]||[])n(e)}_addBroadcastHandler(e,n){let r=this._broadcastHandlers[e];r||(r=[],this._broadcastHandlers[e]=r),r.push(n)}handleInteractionEvent(e,n,r){const i=r?this._capturingInteractionEventListeners:this._nonCapturingInteractionEventListeners;for(const o of i[n.type]||[])o(e,n)}addInteractionEventListener(e,n,r){const i=r?this._capturingInteractionEventListeners:this._nonCapturingInteractionEventListeners;let o=i[e];o||(o=[],i[e]=o),o.push(n)}visit(e){try{const n=e(this);if(e.postOrder&&e.postOrder(this),n!==qn)return n}catch(n){throw n.view=this,n}}onScalesResolved(){(!this.opacityFunction||this.opacityFunction===Ym)&&(this.opacityFunction=zD(this))}onBeforeRender(){}render(e,n,r={}){}getEncoding(){const e=this.parent&&!this.blockEncodingInheritance?this.parent.getEncoding():{},n=this.spec.encoding||{},r={...e,...n};for(const[i,o]of Object.entries(r))o===null&&delete r[i];return r}getFacetAccessor(e){if(this.parent)return this.parent.getFacetAccessor(this)}getFacetFields(e){var r;const n=this.getEncoding().sample;return Qn(n)?[n.field]:(r=this.parent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}_getResolution(e,n){e=Ir(e);let r=this;do{const i=r.resolutions[n][e];if(i)return i;r=r.parent}while(r)}getScaleResolution(e){return this._getResolution(e,"scale")}getAxisResolution(e){return this._getResolution(e,"axis")}getBaseUrl(){return PD(()=>{var e;return(e=this.parent)==null?void 0:e.getBaseUrl()},this.spec.baseUrl)}getDynamicDataSource(){throw new Error("The view does not provide dynamic data!")}isPickingSupported(){return!0}getTitleText(){const e=this.spec.title;if(e)return ee(e)?e:e.text}_cache(e,n){return Ur(this,e,n)}_invalidateCacheByPrefix(e,n="self"){switch(n){case"self":io(this,e);break;case"ancestors":for(const r of this.getAncestors())io(r,e);break;case"progeny":this.visit(r=>io(r,e));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(e){}}function FD(t){return"unitsPerPixel"in t}function zD(t){const e=t.spec.opacity;if(e!==void 0){if(ce(e))return n=>n*e;if(FD(e)){const n=o=>{var s;const a=(s=t.getScaleResolution(o))==null?void 0:s.getScale();if(["linear","index","locus"].includes(a==null?void 0:a.type))return a},r=e.channel?n(e.channel):n("x")||n("y");if(!r)throw new Error("Cannot find a resolved quantitative scale for dynamic opacity!");const i=$c().domain(e.unitsPerPixel).range(e.values).clamp(!0);return o=>{const s=Wo(r.domain())/1e3;return i(s)*o}}}return n=>n}const Wm=t=>!!(t!=null&&t.step);class Kn extends _m{constructor(e,n,r,i){super(e,n,r,i),this.spec=e}*[Symbol.iterator](){}replaceChild(e,n){throw new Error("Not implemented")}visit(e){let n;try{n=e(this)}catch(r){throw r.view=this,r}if(n===qn)return n;if(n!==is){e.beforeChildren&&e.beforeChildren(this);for(const r of this){const i=r.visit(e);if(i===qn)return i}e.afterChildren&&e.afterChildren(this),e.postOrder&&e.postOrder(this)}}findDescendantByPath(e){for(const n of this)if(n.name===e[0]){if(e.length==1)return n;if(n instanceof Kn)return n.findDescendantByPath(e.slice(1))}}findChildByName(e){for(const n of this)if(n.name===e)return n}findDescendantByName(e){let n;return this.visit(r=>{if(r.name==e)return n=r,qn}),n}getConfiguredResolution(e,n){var r,i;return(i=(r=this.spec.resolve)==null?void 0:r[n])==null?void 0:i[e]}getDefaultResolution(e,n){return"shared"}getConfiguredOrDefaultResolution(e,n){var r,i;return(i=(r=this.getConfiguredResolution(e,n))!=null?r:this.getConfiguredResolution("default",n))!=null?i:this.getDefaultResolution(e,n)}}function os(t,e,n){if(n=n||[],t.some(a=>a===null)){if(t.every(a=>a===null))return null;throw console.warn(t),new Error("Cannot merge objects with nulls!")}const r={},i=(a,s)=>a===s||Gr(a)&&Gr(s)||Gr(a)&&s===!0||a===!0&&ze(s),o=a=>{for(let s in a){const c=a[s];if(!n.includes(s)&&c!==void 0)if(r[s]!==void 0&&!i(r[s],c))console.warn(`Conflicting property ${s} of ${e}: (${JSON.stringify(r[s])} and ${JSON.stringify(a[s])}). Using ${JSON.stringify(r[s])}.`);else{const u=r[s];if(Gr(u))Gr(c)&&(r[s]=os([u,c],s));else if(Gr(c)){if(!(u===!0||u===void 0))throw new Error("Bug in merge! Target is: "+u);r[s]=os([{},c],s)}else r[s]=c}}};for(const a of t)o(a);return r}function Gr(t){return ze(t)&&!Array.isArray(t)}/*!
1326
+ `,TD={left:-1,center:0,right:1},ID={top:-1,middle:0,bottom:1,alphabetic:1};class kD extends co{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,x2:void 0,y2:void 0,text:"",size:11,color:"black",opacity:1,font:void 0,fontStyle:void 0,fontWeight:void 0,align:"center",baseline:"middle",dx:0,dy:0,angle:0,fitToBand:!1,squeeze:!0,paddingX:0,paddingY:0,flushX:!0,flushY:!0,logoLetters:!1,viewportEdgeFadeWidthTop:0,viewportEdgeFadeWidthRight:0,viewportEdgeFadeWidthBottom:0,viewportEdgeFadeWidthLeft:0,viewportEdgeFadeDistanceTop:-1/0,viewportEdgeFadeDistanceRight:-1/0,viewportEdgeFadeDistanceBottom:-1/0,viewportEdgeFadeDistanceLeft:-1/0})),this.font=this.properties.font?e.context.fontManager.getFont(this.properties.font,this.properties.fontStyle,this.properties.fontWeight):e.context.fontManager.getDefaultFont()}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","color","size","opacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size","text","angle"]}fixEncoding(e){for(const n of Xi)this.properties.fitToBand&&fl(e,n);return e}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(DD,MD)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ue(this.programInfo,{uPaddingX:e.paddingX,uPaddingY:e.paddingY,uFlushX:!!e.flushX,uFlushY:!!e.flushY,uAlign:[TD[e.align],ID[e.baseline]],uD:[e.dx,-e.dy],uLogoLetter:!!e.logoLetters,uSqueeze:!!e.squeeze,uViewportEdgeFadeWidth:[e.viewportEdgeFadeWidthTop,e.viewportEdgeFadeWidthRight,e.viewportEdgeFadeWidthBottom,e.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[e.viewportEdgeFadeDistanceTop,e.viewportEdgeFadeDistanceRight,e.viewportEdgeFadeDistanceBottom,e.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getData(),r=this.encoding,i=this.encoders.text.accessor||this.encoders.text;let o=0;const a=r.text.format?le(r.text.format):u=>u;for(const u of n){const f=a(i(u)),l=te(f)?f:f===null?"":""+f;o+=l&&l.length||0}const s=new qE({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(o,this.properties.minBufferSize||0)});s.addBatches(e.facetBatches);const c=s.toArrays();this.rangeMap.migrateEntries(c.rangeMap),this.updateBufferInfo(c)}prepareRender(e){const n=super.prepareRender(e);let r=.35;return this.properties.logoLetters&&(r/=2),n.push(()=>Ue(this.programInfo,{uTexture:this.font.texture,uSdfNumerator:this.font.metrics.common.base/(this.glHelper.dpr/r)})),n.push(()=>Rr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>ro(n,this.vertexArrayInfo,n.TRIANGLES,i,r),e)}}function uo(t,e,{spacing:n,devicePixelRatio:r,offset:i,reverse:o}={}){n=n||0,i=i||0;let a=0,s=0;for(const p of t)a+=is(p.px)+(dl(p)?0:n),s+=is(p.grow);a-=n;const c=Math.max(0,e-a),u=r!==void 0?p=>Math.round(p*r)/r:p=>p,f=[],l=[],d=p=>{const m=f.length;if(!m)return;const y=(p?n:0)*(o?-1:1);h-=y;for(let g=0;g<m;g++)l.push({location:h+(g+1)/(m+1)*y,size:0});h+=y,f.length=0};let h=o?Math.max(e,a):0+i;if(t.length==1&&dl(t[0]))return[{location:h,size:0}];for(let p=0;p<t.length;p++){const m=t[p];if(dl(m))f.push(m);else{d(l.length>0);const y=is(m.px)+(s?is(m.grow)/s*c:0);o&&(h-=y),l.push({location:u(h),size:u(y)}),o?h-=n:h+=y+n}}return h+=o?n:-n,d(!1),l}function ND(t){var r,i;let e=0,n=0;for(const o of t)e=Math.max(e,(r=o.px)!=null?r:0),n=Math.max(n,(i=o.grow)!=null?i:0);return{px:e,grow:n}}const id=class{constructor(e,n){xe(this,Oo);this.width=e,this.height=n}addPadding(e){return be(this,Oo,cd).call(this,e.width,e.height)}subtractPadding(e){return be(this,Oo,cd).call(this,-e.width,-e.height)}};let Zn=id;Oo=new WeakSet,cd=function(e,n){var r,i;return new id({px:((r=this.width.px)!=null?r:0)+e,grow:this.width.grow},{px:((i=this.height.px)!=null?i:0)+n,grow:this.height.grow})};const lo=Object.freeze({px:0,grow:0}),LD=new Zn(lo,lo);function dl(t){return!t.px&&!t.grow}function is(t){return t||0}function BD(t){return t&&(ce(t.px)||ce(t.grow))}function OD(t){if(Jm(t))throw new Error("parseSizeDef does not accept step-based sizes.");if(BD(t))return t;if(ce(t))return{px:t,grow:0};if(t==="container")return{px:0,grow:1};if(!t)return{px:0,grow:1};throw new Error(`Invalid sizeDef: ${t}`)}function PD(t,e,n){return{get location(){const r=n();switch(r){case 0:return t.location;case 1:return e.location;default:return r*e.location+(1-r)*t.location}},get size(){const r=n();switch(r){case 0:return t.size;case 1:return e.size;default:return r*e.size+(1-r)*t.size}}}}function FD(t,e){const n=ce(e)?()=>e:e;return{get location(){return t.location+n()},get size(){return t.size}}}function zD(t,e){const n=ce(e)?()=>e:e;return{get location(){return t.location*n()},get size(){return t.size*n()}}}function Zm(t,e){return e>=t.location&&e<t.location+t.size}class Je{constructor(e,n,r,i){this.top=e||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(e){return e<=0?this:new Je(this.top+e,this.right+e,this.bottom+e,this.left+e)}add(e){return new Je(this.top+e.top,this.right+e.right,this.bottom+e.bottom,this.left+e.left)}subtract(e){return new Je(this.top-e.top,this.right-e.right,this.bottom-e.bottom,this.left-e.left)}static createFromConfig(e){return typeof e=="number"?this.createUniformPadding(e):e?this.createFromRecord(e):hl}static createFromRecord(e){return new Je(e.top,e.right,e.bottom,e.left)}static zero(){return hl}static createUniformPadding(e){return new Je(e,e,e,e)}}const hl=Je.createUniformPadding(0);Object.freeze(hl);const RD=/^([A-Za-z]+:)?\/\//;function jD(t,e){if(e&&RD.test(e))return e;const n=t();return n&&e?n.endsWith("/")?n+e:n+"/"+e:n!=null?n:e}const os="VISIT_SKIP",qn="VISIT_STOP",qm=t=>t;class Km{constructor(e,n,r,i){this.context=n,this.parent=r,this.name=e.name||i,this.spec=e,this.resolutions={scale:{},axis:{}},this._broadcastHandlers={},this._capturingInteractionEventListeners={},this._nonCapturingInteractionEventListeners={},jm(this),this.opacityFunction=qm,this.blockEncodingInheritance=!1}getPadding(){return this._cache("size/padding",()=>Je.createFromConfig(this.spec.padding))}getOverhang(){return Je.zero()}getSize(){return this._cache("size/size",()=>this.isVisible()?this.getSizeFromSpec().addPadding(this.getPadding()):LD)}getSizeFromSpec(){const e=n=>{var i,o;let r=this.spec[n];if(Jm(r)){const a=r.step,s=(i=this.getScaleResolution(n=="width"?"x":"y"))==null?void 0:i.getScale();if(s){let c=0;if(tn(s.type))c=s.domain().length;else if(["locus","index"].includes(s.type)){const f=s.domain();c=je(f)-f[0]}else throw new Error(`Cannot use step-based size with "${s.type}" scale!`);const u=s;return c=uu(c,u.paddingInner(),u.paddingOuter()),{px:c*a,grow:0}}else throw new Error("Cannot use 'step' size with missing scale!")}else return(o=r&&OD(r))!=null?o:{px:0,grow:1}};return this._cache("size/sizeFromSpec",()=>new Zn(e("width"),e("height")))}isVisible(){return this.context.isViewVisible(this)}isVisibleInSpec(){var e;return(e=this.spec.visible)!=null?e:!0}getEffectiveOpacity(){var e,n;return this.opacityFunction((n=(e=this.parent)==null?void 0:e.getEffectiveOpacity())!=null?n:1)}getPathString(){return[...this.getAncestors()].map(e=>e.name).reverse().join("/")}*getAncestors(){let e=this;do yield e,e=e.parent;while(e)}handleBroadcast(e){for(const n of this._broadcastHandlers[e.type]||[])n(e)}_addBroadcastHandler(e,n){let r=this._broadcastHandlers[e];r||(r=[],this._broadcastHandlers[e]=r),r.push(n)}handleInteractionEvent(e,n,r){const i=r?this._capturingInteractionEventListeners:this._nonCapturingInteractionEventListeners;for(const o of i[n.type]||[])o(e,n)}addInteractionEventListener(e,n,r){const i=r?this._capturingInteractionEventListeners:this._nonCapturingInteractionEventListeners;let o=i[e];o||(o=[],i[e]=o),o.push(n)}visit(e){try{const n=e(this);if(e.postOrder&&e.postOrder(this),n!==qn)return n}catch(n){throw n.view=this,n}}onScalesResolved(){(!this.opacityFunction||this.opacityFunction===qm)&&(this.opacityFunction=GD(this))}onBeforeRender(){}render(e,n,r={}){}getEncoding(){const e=this.parent&&!this.blockEncodingInheritance?this.parent.getEncoding():{},n=this.spec.encoding||{},r={...e,...n};for(const[i,o]of Object.entries(r))o===null&&delete r[i];return r}getFacetAccessor(e){if(this.parent)return this.parent.getFacetAccessor(this)}getFacetFields(e){var r;const n=this.getEncoding().sample;return Qn(n)?[n.field]:(r=this.parent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}_getResolution(e,n){e=Ir(e);let r=this;do{const i=r.resolutions[n][e];if(i)return i;r=r.parent}while(r)}getScaleResolution(e){return this._getResolution(e,"scale")}getAxisResolution(e){return this._getResolution(e,"axis")}getBaseUrl(){return jD(()=>{var e;return(e=this.parent)==null?void 0:e.getBaseUrl()},this.spec.baseUrl)}getDynamicDataSource(){throw new Error("The view does not provide dynamic data!")}isPickingSupported(){return!0}getTitleText(){const e=this.spec.title;if(e)return te(e)?e:e.text}_cache(e,n){return Ur(this,e,n)}_invalidateCacheByPrefix(e,n="self"){switch(n){case"self":oo(this,e);break;case"ancestors":for(const r of this.getAncestors())oo(r,e);break;case"progeny":this.visit(r=>oo(r,e));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(e){}}function UD(t){return"unitsPerPixel"in t}function GD(t){const e=t.spec.opacity;if(e!==void 0){if(ce(e))return n=>n*e;if(UD(e)){const n=o=>{var s;const a=(s=t.getScaleResolution(o))==null?void 0:s.getScale();if(["linear","index","locus"].includes(a==null?void 0:a.type))return a},r=e.channel?n(e.channel):n("x")||n("y");if(!r)throw new Error("Cannot find a resolved quantitative scale for dynamic opacity!");const i=tu().domain(e.unitsPerPixel).range(e.values).clamp(!0);return o=>{const s=Xo(r.domain())/1e3;return i(s)*o}}}return n=>n}const Jm=t=>!!(t!=null&&t.step);class Kn extends Km{constructor(e,n,r,i){super(e,n,r,i),this.spec=e}*[Symbol.iterator](){}replaceChild(e,n){throw new Error("Not implemented")}visit(e){let n;try{n=e(this)}catch(r){throw r.view=this,r}if(n===qn)return n;if(n!==os){e.beforeChildren&&e.beforeChildren(this);for(const r of this){const i=r.visit(e);if(i===qn)return i}e.afterChildren&&e.afterChildren(this),e.postOrder&&e.postOrder(this)}}findDescendantByPath(e){for(const n of this)if(n.name===e[0]){if(e.length==1)return n;if(n instanceof Kn)return n.findDescendantByPath(e.slice(1))}}findChildByName(e){for(const n of this)if(n.name===e)return n}findDescendantByName(e){let n;return this.visit(r=>{if(r.name==e)return n=r,qn}),n}getConfiguredResolution(e,n){var r,i;return(i=(r=this.spec.resolve)==null?void 0:r[n])==null?void 0:i[e]}getDefaultResolution(e,n){return"shared"}getConfiguredOrDefaultResolution(e,n){var r,i;return(i=(r=this.getConfiguredResolution(e,n))!=null?r:this.getConfiguredResolution("default",n))!=null?i:this.getDefaultResolution(e,n)}}function as(t,e,n){if(n=n||[],t.some(a=>a===null)){if(t.every(a=>a===null))return null;throw console.warn(t),new Error("Cannot merge objects with nulls!")}const r={},i=(a,s)=>a===s||Gr(a)&&Gr(s)||Gr(a)&&s===!0||a===!0&&ze(s),o=a=>{for(let s in a){const c=a[s];if(!n.includes(s)&&c!==void 0)if(r[s]!==void 0&&!i(r[s],c))console.warn(`Conflicting property ${s} of ${e}: (${JSON.stringify(r[s])} and ${JSON.stringify(a[s])}). Using ${JSON.stringify(r[s])}.`);else{const u=r[s];if(Gr(u))Gr(c)&&(r[s]=as([u,c],s));else if(Gr(c)){if(!(u===!0||u===void 0))throw new Error("Bug in merge! Target is: "+u);r[s]=as([{},c],s)}else r[s]=c}}};for(const a of t)o(a);return r}function Gr(t){return ze(t)&&!Array.isArray(t)}/*!
1327
1327
  * Adapted from vega-encode:
1328
1328
  * https://github.com/vega/vega/blob/master/packages/vega-encode/src/ticks.js
1329
1329
  *
@@ -1331,7 +1331,7 @@ void main() {
1331
1331
  * All rights reserved.
1332
1332
  *
1333
1333
  * BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
1334
- */function Xm(t,e,n){return ce(e)&&n!=null&&(e=Math.min(e,~~(Wo(t.domain())/n)||1)),ze(e)&&(e.step,e=e.interval),e}function Zm(t,e,n){var r=t.range(),i=Math.floor(r[0]),o=Math.ceil(tt(r));if(i>o&&(r=o,o=i,i=r),e=e.filter(function(s){return s=t(s),i<=s&&s<=o}),n>0&&e.length>1){for(var a=[e[0],tt(e)];e.length>n&&e.length>=3;)e=e.filter(function(s,c){return!(c%2)});e.length<3&&(e=a)}return e}function RD(t,e){return t.bins?Zm(t,jD(t.bins,e)):t.ticks?t.ticks(e):t.domain()}function jD(t,e){var n=t.length,r=~~(n/(e||n));return r<2?t.slice():t.filter(function(i,o){return!(o%r)})}function UD(t,e,n){var r=t.tickFormat?t.tickFormat(e,n):n?le(n):String;if(L0(t.type)){var i=HD(n);r=t.bins?i:GD(r,i)}return r}function GD(t,e){return function(n){return t(n)?e(n):""}}function HD(t){var e=_t(t||",");if(e.precision==null){switch(e.precision=12,e.type){case"%":e.precision-=2;break;case"e":e.precision-=1;break}return QD(le(e),le(".1f")(1)[1])}else return le(e)}function QD(t,e){return function(n){var r=t(n),i=r.indexOf(e),o,a;if(i<0)return r;for(o=VD(r,i),a=o<r.length?r.slice(o):"";--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+a}}function VD(t,e){var n=t.lastIndexOf("e"),r;if(n>0)return n;for(n=t.length;--n>e;)if(r=t.charCodeAt(n),r>=48&&r<=57)return n+1}/*!
1334
+ */function $m(t,e,n){return ce(e)&&n!=null&&(e=Math.min(e,~~(Xo(t.domain())/n)||1)),ze(e)&&(e.step,e=e.interval),e}function eg(t,e,n){var r=t.range(),i=Math.floor(r[0]),o=Math.ceil(tt(r));if(i>o&&(r=o,o=i,i=r),e=e.filter(function(s){return s=t(s),i<=s&&s<=o}),n>0&&e.length>1){for(var a=[e[0],tt(e)];e.length>n&&e.length>=3;)e=e.filter(function(s,c){return!(c%2)});e.length<3&&(e=a)}return e}function HD(t,e){return t.bins?eg(t,QD(t.bins,e)):t.ticks?t.ticks(e):t.domain()}function QD(t,e){var n=t.length,r=~~(n/(e||n));return r<2?t.slice():t.filter(function(i,o){return!(o%r)})}function VD(t,e,n){var r=t.tickFormat?t.tickFormat(e,n):n?le(n):String;if(z0(t.type)){var i=_D(n);r=t.bins?i:YD(r,i)}return r}function YD(t,e){return function(n){return t(n)?e(n):""}}function _D(t){var e=_t(t||",");if(e.precision==null){switch(e.precision=12,e.type){case"%":e.precision-=2;break;case"e":e.precision-=1;break}return WD(le(e),le(".1f")(1)[1])}else return le(e)}function WD(t,e){return function(n){var r=t(n),i=r.indexOf(e),o,a;if(i<0)return r;for(o=XD(r,i),a=o<r.length?r.slice(o):"";--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+a}}function XD(t,e){var n=t.lastIndexOf("e"),r;if(n>0)return n;for(n=t.length;--n>e;)if(r=t.charCodeAt(n),r>=48&&r<=57)return n+1}/*!
1335
1335
  * Adapted from vega-encode:
1336
1336
  * https://github.com/vega/vega/blob/master/packages/vega-encode/src/Scale.js
1337
1337
  *
@@ -1339,45 +1339,45 @@ void main() {
1339
1339
  * All rights reserved.
1340
1340
  *
1341
1341
  * BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
1342
- */const YD="locus",_D="index";var WD=5;function XD(t){const e=t.type;return!t.bins&&(e===wr||e===Ii||e===ki)}function qm(t){return Re(t)&&![ht,_D,YD].includes(t)}function Km(t){return t||{warn:(e,...n)=>console.warn(e,...n)}}var ZD=Zo(["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 Jm(t,e,n){n=Km(n);for(const r in t)if(!ZD[r]){if(r==="padding"&&qm(e.type))continue;ke(e[r])?e[r](t[r]):n.warn("Unsupported scale property: "+r)}rM(e,t,nM(e,t,$D(e,t,n)))}function qD(t,e){const n=KD(t),r=W(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return Jm(t,i,e),i}function KD(t){var e=t.type,n="",r;return e===ht?ht+"-"+wr:(JD(t)&&(r=t.rawDomain?t.rawDomain.length:t.domain?t.domain.length+ +(t.domainMid!=null):0,n=r===2?ht+"-":r===3?Cr+"-":""),(n+e||wr).toLowerCase())}function JD(t){const e=t.type;return Re(e)&&e!==S0&&e!==E0&&(t.scheme||t.range&&t.range.length&&t.range.every(ee))}function $D(t,e,n){if(!t.domain)return 0;n=Km(n);var r=eM(t,e.domainRaw,n);if(r>-1)return r;var i=e.domain,o=t.type,a=e.zero||e.zero===void 0&&XD(t),s,c;return i?(qm(o)&&e.padding&&i[0]!==tt(i)&&(i=tM(o,i,e.range,e.padding,e.exponent,e.constant)),(a||e.domainMin!=null||e.domainMax!=null||e.domainMid!=null)&&(s=(i=i.slice()).length-1||1,a&&(i[0]>0&&(i[0]=0),i[s]<0&&(i[s]=0)),e.domainMin!=null&&(i[0]=e.domainMin),e.domainMax!=null&&(i[s]=e.domainMax),e.domainMid!=null&&(c=e.domainMid,(c<i[0]||c>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",c),i.splice(s,0,c))),t.domain($m(o,i,n)),o===uu&&t.unknown(e.domainImplicit?kc:void 0),e.nice&&t.nice&&t.nice(e.nice!==!0&&Xm(t,e.nice)||null),i.length):0}function eM(t,e,n){return e?(t.domain($m(t.type,e,n)),e.length):-1}function tM(t,e,n,r,i,o){var a=Math.abs(tt(n)-n[0]),s=a/(a-2*r),c=t===en?ld(e,null,s):t===ki?Xs(e,null,s,.5):t===Ii?Xs(e,null,s,i||1):t===wa?sb(e,null,s,o||1):Ws(e,null,s);return e=e.slice(),e[0]=c[0],e[e.length-1]=c[1],e}function $m(t,e,n){if(L0(t)){var r=Math.abs(e.reduce(function(i,o){return i+(o<0?-1:o>0?1:0)},0));r!==e.length&&n.warn("Log scale domain includes zero: "+Xo(e))}return e}function nM(t,e,n){let r=e.bins;if(r&&!We(r)){const i=(r.start==null||r.stop==null)&&t.domain(),o=r.start==null?i[0]:r.start,a=r.stop==null?tt(i):r.stop,s=r.step;s||oe("Scale bins parameter missing step property."),r=Yt(o,a+s,s)}return r?t.bins=r:t.bins&&delete t.bins,t.type===fu&&(r?!e.domain&&!e.domainRaw&&(t.domain(r),n=r.length):t.bins=t.domain()),n}function rM(t,e,n){var r=t.type,i=e.round||!1,o=e.range;if(e.rangeStep!=null)o=iM(r,e,n);else if(e.scheme&&(o=oM(r,e,n),ke(o))){if(t.interpolator)return t.interpolator(o);oe(`Scale type ${r} does not support interpolating color schemes.`)}if(o&&Sa(r))return t.interpolator(Ea(dl(o,e.reverse),e.interpolate,e.interpolateGamma));o&&e.interpolate&&t.interpolate?t.interpolate(B0(e.interpolate,e.interpolateGamma)):ke(t.round)?t.round(i):ke(t.rangeRound)&&t.interpolate(i?Mi:Jt),o&&t.range(dl(o,e.reverse))}function iM(t,e,n){t!==T0&&t!==lu&&oe("Only band and point scales support rangeStep.");var r=(e.paddingOuter!=null?e.paddingOuter:e.padding)||0,i=t===lu?1:(e.paddingInner!=null?e.paddingInner:e.padding)||0;return[0,e.rangeStep*su(n,i,r)]}function oM(t,e,n){var r=e.schemeExtent,i,o;return We(e.scheme)?o=Ea(e.scheme,e.interpolate,e.interpolateGamma):(i=e.scheme.toLowerCase(),o=hu(i),o||oe(`Unrecognized scheme name: ${e.scheme}`)),n=t===M0?n+1:t===fu?n-1:t===cu||t===D0?+e.schemeCount||WD:n,Sa(t)?eg(o,r,e.reverse):ke(o)?rw(eg(o,r),n):t===uu?o:o.slice(0,n)}function eg(t,e,n){return ke(t)&&(e||n)?nw(t,dl(e||[0,1],n)):t}function dl(t,e){return e?t.slice().reverse():t}const hl=le(",d");function aM(t){return t.chrom+":"+hl(Math.floor(t.pos+1))}function sM(t,e){return t.chrom+":"+hl(Math.floor(t.pos+1))+"-"+(t.chrom!=e.chrom?e.chrom+":":"")+hl(Math.ceil(e.pos))}const cM="https://genomespy.app/data/genomes/";class uM{constructor(e){if(this.config=e,!this.config.contigs&&typeof this.config.name!="string")throw new Error("No name has been defined for the genome assembly!");this.chromosomes=[],this.cumulativeChromPositions=new Map,this.chromosomesByName=new Map,this.startByIndex=[],this.totalSize=0,this.config.contigs&&this.setChromSizes(this.config.contigs)}get name(){return this.config.name}async load(e){if(!this.config.contigs){this.config.baseUrl?this.baseUrl=/^http(s)?/.test(this.config.baseUrl)?this.config.baseUrl:e+"/"+this.config.baseUrl:this.baseUrl=cM;try{this.setChromSizes(lM(await Ci({baseURL:this.baseUrl}).load(`${this.config.name}/${this.name}.chrom.sizes`)))}catch(n){throw new Error(`Could not load chrom sizes: ${n.message}`)}}}setChromSizes(e){let n=0;this.startByIndex=[0];for(let r=0;r<e.length;r++){this.startByIndex.push(n);const i=e[r].size,o={...e[r],continuousStart:n,continuousEnd:n+i,continuousInterval:[n,n+i],index:r,number:r+1,odd:!(r&1)};this.chromosomes.push(o);const a=o.name.replace(/^chr/i,"");for(const s of["chr"+a,"CHR"+a,"Chr"+a,o.number,""+o.number,a,o.name])this.cumulativeChromPositions.set(s,n),this.chromosomesByName.set(s,o);n+=o.size}this.totalSize=n}getExtent(){return[0,this.totalSize]}toContinuous(e,n){let r=this.cumulativeChromPositions.get(e);if(r===void 0)throw new Error("Unknown chromosome/contig: "+e);return r+ +n}toChromosome(e){if(e>=this.totalSize)return;e=Math.floor(e);const n=hr(this.startByIndex,e)-1;if(n>0&&n<=this.chromosomes.length)return this.chromosomes[n-1]}toChromosomal(e){const n=this.toChromosome(e);if(!!n)return{chrom:n.name,pos:Math.floor(e)-n.continuousStart}}getChromosome(e){return this.chromosomesByName.get(e)}formatInterval(e){return sM(...this.toChromosomalInterval(e))}toChromosomalInterval(e){const n=this.toChromosomal(e[0]+.5),r=this.toChromosomal(e[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(e){var i,o,a;let[n,r]=e;return r||(r=n),[this.toContinuous(n.chrom,(i=n.pos)!=null?i:0),this.toContinuous(r.chrom,(a=r.pos)!=null?a:(o=this.chromosomesByName.get(r.chrom))==null?void 0:o.size)]}parseInterval(e){const n=e.match(/^(chr[0-9A-Z]+)(?::([0-9,]+)(?:-(?:(chr[0-9A-Z]+):)?([0-9,]+))?)?$/);if(n){const r=n[1];if(n.slice(2).every(s=>s===void 0)){const s=this.getChromosome(r);return s?[s.continuousStart,s.continuousEnd]:void 0}const i=n[3]||r,o=parseInt(n[2].replace(/,/g,"")),a=n[4]!==void 0?parseInt(n[4].replace(/,/g,"")):o;return[this.toContinuous(r,o-1),this.toContinuous(i,a)]}}}function lM(t){return Db(t).filter(e=>/^chr[0-9A-Z]+$/.test(e[0])).map(([e,n])=>({name:e,size:parseInt(n)}))}function tg(t){return ze(t)&&"chrom"in t}function fM(t){return t.every(tg)}class lo extends Array{constructor(){super(),this.type=void 0}extend(e){return this}extendAll(e){if(e instanceof lo&&e.type!=this.type)throw new Error(`Cannot combine different types of domains: ${this.type} and ${e.type}`);for(const n of e)this.extend(n);return this}extendAllWithAccessor(e,n){for(const r of e)this.extend(n(r));return this}}class pl extends lo{constructor(){super(),this.type="quantitative"}extend(e){return e==null||Number.isNaN(e)?this:(e=+e,this.length?e<this[0]?this[0]=e:e>this[1]&&(this[1]=e):(this.push(e),this.push(e)),this)}}class ng extends lo{constructor(){super(),this.type="ordinal",this.uniqueValues=new Set}extend(e){return e==null||Number.isNaN(e)?this:(this.uniqueValues.has(e)||(this.uniqueValues.add(e),this.push(e)),this)}}class rg extends ng{constructor(){super(),this.type="nominal"}}class dM extends lo{constructor(e){super();let n=0;for(let r=1;r<e.length;r++)n+=Math.sign(e[r]-e[r-1]);if(Math.abs(n)!=e.length-1)throw new Error("Piecewise domain must be strictly increasing or decreasing: "+JSON.stringify(e));e.forEach(r=>this.push(r))}extend(e){if(this.includes(e))return this;throw new Error("Piecewise domains are immutable and cannot be unioned!")}}const ig={quantitative:pl,index:pl,locus:pl,nominal:rg,ordinal:ng};function og(t,e){if(t=="quantitative"&&hM(e)){const n=new dM(e);return n.type=t,n}else if(ig[t]){const n=new ig[t];return n.type=t,e&&n.extendAll(e),n}throw new Error("Unknown type: "+t)}function hM(t){return t&&t.length>0&&t.length!=2&&t.every(e=>typeof e=="number")}function ag(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function pM(t){return--t*t*t+1}function mM(t){return(Math.pow(2,-10*t)-.0009765625)*1.0009775171065494}function gM(t){return 1-mM(t)}const sg="quantitative",ml="ordinal",gl="nominal",cg="locus",yM="index";class bM{constructor(e){this.channel=e,this.members=[],this.type=null,this._zoomExtent=void 0,this._domainListeners=new Set,this.name=void 0,this._scale=void 0}addEventListener(e,n){if(e!="domain")throw new Error("Unsupported event type: "+e);this._domainListeners.add(n)}removeEventListener(e,n){if(e!="domain")throw new Error("Unsupported event type: "+e);this._domainListeners.delete(n)}_notifyDomainListeners(){for(const e of this._domainListeners.values())e({type:"domain",scaleResolution:this})}pushUnitView(e,n){var a;const r=Su(e,n),i=r.type,o=(a=r==null?void 0:r.scale)==null?void 0:a.name;if(o){if(this.name!==void 0&&o!=this.name)throw new Error(`Shared scales have conflicting names: "${o}" vs. "${this.name}"!`);this.name=o}if(!this.type)this.type=i;else if(i!==this.type&&!Zi(n))throw new Error(`Can not use shared scale for different data types: ${this.type} vs. ${i}. Use "resolve: independent" for channel ${this.channel}`);this.members.push({view:e,channel:n})}isExplicitDomain(){return!!this.getConfiguredDomain()}_getMergedScaleProps(){return Ur(this,"mergedScaleProps",()=>{const e=this.members.map(n=>Su(n.view,n.channel).scale).filter(n=>n!==void 0);return os(e,"scale",["domain"])})}getScaleProps(){return Ur(this,"scaleProps",()=>{var i,o;const e=this._getMergedScaleProps();if(e===null||e.type=="null")return{type:"null"};const n={...this._getDefaultScaleProperties(this.type),...e};n.type||(n.type=vM(this.channel,this.type));const r=this.getInitialDomain();return r&&r.length>0?n.domain=r:tn(n.type)&&(n.domain=new rg),!n.domain&&n.domainMid!==void 0&&(n.domain=[(i=n.domainMin)!=null?i:0,(o=n.domainMax)!=null?o:1]),this.channel=="y"&&tn(n.type)&&n.reverse==null&&(n.reverse=!0),n.range&&n.scheme&&delete n.scheme,!("zoom"in n)&&["index","locus"].includes(n.type)&&(n.zoom=!0),AM(n,this.channel),n})}getInitialDomain(){var e;return(e=this.getConfiguredDomain())!=null?e:this.type==cg?this.getGenome().getExtent():this.getDataDomain()}getConfiguredDomain(){return this._reduceDomains(e=>Zi(e.channel)?void 0:e.view.getConfiguredDomain(e.channel))}getDataDomain(){return this._reduceDomains(e=>Zi(e.channel)?void 0:e.view.extractDataDomain(e.channel))}reconfigure(){if(this._scale&&this._scale.type!="null"){Bm(this,"scaleProps");const e=this.getScaleProps();Jm(e,this._scale),Re(this._scale.type)&&(this._zoomExtent=this._getZoomExtent())}}getScale(){if(this._scale)return this._scale;const e=this.getScaleProps(),n=qD(e);return this._scale=n,VA(n)&&n.genome(this.getGenome()),Re(n.type)&&(this._zoomExtent=this._getZoomExtent()),n}getDomain(){return this.getScale().domain()}getComplexDomain(){var e,n;return(n=(e=this.getGenome())==null?void 0:e.toChromosomalInterval(this.getDomain()))!=null?n:this.getDomain()}isZoomed(){return this.isZoomable()&&W0(this.getInitialDomain(),this.getDomain())}isZoomable(){if(!cp(this.channel))return!1;const e=this.getScale().type;return["linear","locus","index","log","pow","sqrt"].includes(e)?!!this.getScaleProps().zoom:!1}zoom(e,n,r){if(!this.isZoomable())return!1;const i=this.getScale(),o=i.domain();let a=[...o],s=i.invert(n);switch(this.getScaleProps().reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":a=ib(a,r||0),a=Ws(a,s,e);break;case"log":a=ob(a,r||0),a=ld(a,s,e);break;case"pow":case"sqrt":{const c=i;a=ab(a,r||0,c.exponent()),a=Xs(a,s,e,c.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return this._zoomExtent&&(a=cb(a,this._zoomExtent[0],this._zoomExtent[1])),[0,1].some(c=>a[c]!=o[c])?(i.domain(a),this._notifyDomainListeners(),!0):!1}async zoomTo(e,n=!1){var s;if(_o(n)&&(n=n?700:0),!this.isZoomable())throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(e),i=(s=this.members[0])==null?void 0:s.view.context.animator,o=this.getScale(),a=o.domain();if(n>0&&a.length==2){const c=a[1]-a[0],u=a[0]+c/2,f=r[1]-r[0],l=r[0]+f/2,d=$h([u,0,c],[l,0,f]).rho(.7);await i.transition({duration:n/1e3*d.duration,easingFunction:ag,onUpdate:h=>{const[p,,m]=d(h);o.domain([p-m/2,p+m/2]),this._notifyDomainListeners()}}),o.domain(r),this._notifyDomainListeners()}else o.domain(r),i==null||i.requestRender(),this._notifyDomainListeners()}resetZoom(){if(!this.isZoomable())throw new Error("Not a zoomable scale!");const e=this.getDomain(),n=this.getInitialDomain();return[0,1].some(r=>n[r]!=e[r])?(this._scale.domain(n),this._notifyDomainListeners(),!0):!1}getZoomLevel(){return this.isZoomable()?Wo(this._zoomExtent)/Wo(this.getScale().domain()):1}_getZoomExtent(){const e=this.getScaleProps(),n=e.zoom;if(xM(n)&&We(n.extent))return this.fromComplexInterval(n.extent);if(n)return e.type=="locus"?this.getGenome().getExtent():this._scale.domain()}_getDefaultScaleProperties(e){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),Xi(n)?r.nice=!this.isExplicitDomain():Vn(n)?r.scheme=e==gl?"tableau10":e==ml?"blues":"viridis":Ba(n)?r.range=lp(n):n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r}getGenome(){var n;if(this.type!=="locus")return;const e=(n=this.members[0].view.context.genomeStore)==null?void 0:n.getGenome();if(!e)throw new Error("No genome has been defined!");return e}invertToComplex(e){const n=this.getScale();if("invert"in n){const r=n.invert(e);return this.toComplex(r)}else throw new Error("The scale does not support inverting!")}toComplex(e){const n=this.getGenome();return n?n.toChromosomal(e):e}fromComplex(e){return tg(e)?this.getGenome().toContinuous(e.chrom,e.pos):e}fromComplexInterval(e){return this.type==="locus"&&fM(e)?this.getGenome().toContinuousInterval(e):e}_getViewPaths(){return this.members.map(e=>e.view.getPathString()).join(", ")}_reduceDomains(e){const n=this.members.map(e).filter(r=>!!r);if(n.length)return n.reduce((r,i)=>r.extendAll(i))}}function vM(t,e){if(e==yM||e==cg){if(cp(t))return e;throw new Error(`${t} does not support ${e} 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=["uniqueId","facetIndex","semanticScore","search","text","sample"].includes(t)?"null":n[t]?n[t][[gl,ml,sg].indexOf(e)]:e==sg?"linear":"ordinal";if(i===void 0)throw new Error(`Channel "${t}" is not compatible with "${e}" data type. Use of a proper scale may be needed.`);return i}function AM(t,e){Xi(e)&&t.type!=="ordinal"&&(t.range=[0,1]),e=="opacity"&&Re(t.type)&&(t.clamp=!0)}function xM(t){return ze(t)}function yl(...t){for(const e of t)if(e!==void 0)return e}class wM{constructor(e){this.channel=e,this.members=[]}get scaleResolution(){var e;return(e=je(this.members))==null?void 0:e.view.getScaleResolution(this.channel)}pushUnitView(e,n){const r=e.getScaleResolution(this.channel);if(!r)throw new Error("Cannot find a scale resolution!");if(this.scaleResolution&&r!==this.scaleResolution)throw new Error("Shared axes must have a shared scale!");this.members.push({view:e,channel:n})}getAxisProps(){return Ur(this,"axisProps",()=>{const e=this.members.map(n=>{const r=n.view.mark.encoding[n.channel];return"axis"in r&&r.axis});return e.length>0&&e.some(n=>n===null)?null:os(e.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const e=o=>{var s;const a=Su(o.view,o.channel);if(!ot(a))return{member:o,explicitTitle:yl((s=a.axis)==null?void 0:s.title,a.title),implicitTitle:yl(Qn(a)?a.field:void 0,Eu(a)?a.expr:void 0)}},n=this.members.map(e),r=n.filter(o=>{var a;if(Zi(o.member.channel)&&!o.explicitTitle){const s=Ir(o.member.channel);return((a=n.find(c=>c.member.view==o.member.view&&c.member.channel==s))==null?void 0:a.explicitTitle)===void 0}return!0}),i=new Set(r.map(o=>yl(o.explicitTitle,o.implicitTitle)).filter(ee));return i.size?[...i].join(", "):null}}class ug extends _m{constructor(e,n,r,i){super(e,n,r,i),this.spec=e}}class Nt extends Kn{constructor(e,n,r,i){super(e,n,r,i),this.spec=e,this.children=(e.layer||[]).map((o,a)=>{if(wl(o)||xl(o))return n.createView(o,this,"layer"+a);throw new Error("LayerView accepts only unit or layer specs as children!")})}*[Symbol.iterator](){for(const e of this.children)yield e}render(e,n,r={}){if(!!this.isVisible()){e.pushView(this,n);for(const i of this.children)i.render(e,n,r);e.popView(this)}}propagateInteractionEvent(e){this.handleInteractionEvent(void 0,e,!0),this.children.length&&this.children.at(-1).propagateInteractionEvent(e),!e.stopped&&this.handleInteractionEvent(void 0,e,!1)}}class lg{constructor(e,n){this.n=e,this.maxCols=n!=null?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 e=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const o=[];e.push(o);for(let a=0;a<n;a++){const s=i*n+a;s<this.n&&o.push(s)}}return e}get colIndices(){const e=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const o=[];e.push(o);for(let a=0;a<r;a++){const s=a*n+i;s<this.n&&o.push(s)}}return e}getCellIndex(e,n){let r=0;if(this.maxCols==1/0)r=n==0?e:void 0;else{if(e>=this.maxCols)return;r=n*this.nCols+e}return r<this.n?r:void 0}getCellCoords(e){if(!(e<0||e>=this.n))return[e%this.nCols,Math.floor(e/this.nCols)]}}function Lt(t){return()=>t}const Vt=class{static create(e,n,r,i){return new Vt(Lt(e),Lt(n),Lt(r),Lt(i))}_offset(e,n){const r=this["_"+e];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(e){return this._offset(e,0)}constructor(e,n,r,i){this._x=e,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(e){return e?this===e||this.x===e.x&&this.y===e.y&&this.width===e.width&&this.height===e.height:!1}modify(e){if(!Object.keys(e).length)return this;const n=r=>{const i=e[r];return typeof i=="number"?Lt(i):typeof i=="function"?i:this._passThrough(r)};return new Vt(n("x"),n("y"),n("width"),n("height"))}translate(e,n){return e===0&&n===0?this:new Vt(this._offset("x",e),this._offset("y",n),this._passThrough("width"),this._passThrough("height"))}translateBy(e){return this.translate(e.x,e.y)}expand(e,n=1){return e.left==0&&e.top==0&&e.right==0&&e.bottom==0?this:new Vt(e.left?this._offset("x",-e.left*n):this._passThrough("x"),e.top?this._offset("y",-e.top*n):this._passThrough("y"),e.width?this._offset("width",e.width*n):this._passThrough("width"),e.height?this._offset("height",e.height*n):this._passThrough("height"))}shrink(e){return this.expand(e,-1)}intersect(e){return this===e?this:new Vt(()=>Math.max(this.x,e.x),()=>Math.max(this.y,e.y),()=>Math.min(this.x2,e.x2)-Math.max(this.x,e.x),()=>Math.min(this.y2,e.y2)-Math.max(this.y,e.y))}isDefined(){return this.width>=0&&this.height>=0}flatten(){return new Vt(Lt(this.x),Lt(this.y),Lt(this.width),Lt(this.height))}containsPoint(e,n){return e>=this.x&&e<this.x2&&n>=this.y&&n<this.y2}normalizePoint(e,n){return{x:(e-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}`}};let dn=Vt;W2(dn,"ZERO",Vt.create(0,0,0,0));function fg(t,e,n){return n=(n-t)/(e-t),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}class Jn extends se{get identifier(){}handle(e){throw new Error("Source does not handle incoming data!")}async load(){}}function dg(t){var n,r;const e={...t.format};if((n=e.type)!=null||(e.type=DM(t)&&CM(t.url)),(r=e.parse)!=null||(e.parse="auto"),!e.type)throw new Error("Format for the data source was not defined and it could not be inferred: "+JSON.stringify(t));return e}function CM(t){var e;if(Array.isArray(t)&&(t=t[0]),t)return(e=t.match(/\.(csv|tsv|json)/))==null?void 0:e[1]}const as=t=>typeof t!="object"?SM:EM,SM=t=>({data:t}),EM=t=>t;function DM(t){return"url"in t}function MM(t){return"dynamicCallbackSource"in t}class hg extends Jn{constructor(e){super(),this.callback=e}loadSynchronously(){if(!this.callback)return;const e=this.callback();if(!e||typeof e[Symbol.iterator]!="function")throw new Error("Dynamic data callback didn't return iterable data!");this.reset(),this.beginBatch({type:"file"});let n;for(const r of e)n||(n=as(r)),this._propagate(n(r));this.complete()}async load(){this.loadSynchronously()}}const pg="chromosome_ticks_and_labels",mg={x:"width",y:"height"};function bl(t){return t=="x"?"y":"x"}const vl={x:["bottom","top"],y:["left","right"]},gg=Object.fromEntries(Object.entries(vl).map(([t,e])=>e.map(n=>[n,t])).flat(1));function $n(t){return gg[t]}class yg extends Nt{constructor(e,n,r,i){const o=n=="locus",a={...o?kM:bg,...IM(n,e),...e};if(super(o?NM(a):vg(a),r,i,`axis_${e.orient}`),this.axisProps=a,this.axisUpdateRequested=!0,this._addBroadcastHandler("layout",()=>{this.axisUpdateRequested=!0}),this.previousScaleDomain=[],this.axisLength=void 0,this.ticks=[],this.tickSource=new hg(()=>this.ticks),o){const s=$n(this.axisProps.orient),c=this.getScaleResolution(s).getGenome();this.findChildByName(pg).getDynamicDataSource=()=>new hg(()=>c.chromosomes)}this.blockEncodingInheritance=!0}getOrient(){return this.axisProps.orient}getSize(){const e={px:this.getPerpendicularSize()},n={grow:1};return gg[this.axisProps.orient]=="x"?new Zn(n,e):new Zn(e,n)}getPerpendicularSize(){return Al(this.axisProps)}getDynamicDataSource(){return this.tickSource}_updateAxisData(){const e=$n(this.axisProps.orient),n=this.getScaleResolution(e).getScale(),r=n.domain();if(W0(r,this.previousScaleDomain)&&!this.axisUpdateRequested)return;this.previousScaleDomain=r;const i=this.ticks,o=TM(this.axisProps,n,this.axisLength,i);o!==i&&(this.ticks=o,this.tickSource.loadSynchronously()),this.axisUpdateRequested=!1}onBeforeRender(){super.onBeforeRender(),this._updateAxisData()}render(e,n,r={}){!this.isVisible()||(this.axisLength=n[mg[$n(this.getOrient())]],super.render(e,n,r))}isPickingSupported(){return!1}}function Al(t){const e=$n(t.orient);let n=t.ticks&&t.tickSize||0;return t.labels&&(n+=t.labelPadding,e=="x"?n+=t.labelFontSize:n+=30),t.title&&(n+=t.titlePadding+t.titleFontSize),n=Math.min(t.maxExtent||1/0,Math.max(t.minExtent||0,n)),n}function TM(t,e,n,r=[]){const i=s=>25+60*fg(100,700,s);let o=ce(t.tickCount)?t.tickCount:Math.round(n/i(n));o=Xm(e,o,t.tickMinStep);const a=t.values?Zm(e,t.values,o):RD(e,o);if(bw(a,r,s=>s,s=>s.value))return r;{const s=UD(e,o,t.format);return a.map(c=>({value:c,label:s(c)}))}}const bg={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 IM(t,e){var s;const n=e.orient,r=t=="nominal"||t=="ordinal";let i="center",o="middle",a=(s=e.labelAngle)!=null?s:(n=="top"||n=="bottom")&&r?-90:0;switch(n){case"left":i="right";break;case"right":i="left";break;case"top":case"bottom":Math.abs(a)>30?(i=a>0==(n=="bottom")?"left":"right",o="middle"):o=n=="top"?"alphabetic":"top";break}return{labelAlign:i,labelAngle:a,labelBaseline:o}}function vg(t){const e={...t,extent:Al(t)},n=$n(e.orient),r=bl(n),i=e.orient=="bottom"||e.orient=="right"?1:-1,o=e.orient=="bottom"||e.orient=="left"?1:0,a=()=>({name:"domain",data:{values:[0]},mark:{type:"rule",clip:!1,strokeDash:e.domainDash,strokeCap:e.domainCap,color:e.domainColor,[r]:o,size:e.domainWidth}}),s=()=>({name:"labels",mark:{type:"text",clip:!1,align:e.labelAlign,angle:e.labelAngle,baseline:e.labelBaseline,[r+"Offset"]:(e.tickSize+e.labelPadding)*i,[r]:o,size:e.labelFontSize,color:e.labelColor,minBufferSize:1500},encoding:{[n]:{field:"value",type:"quantitative"},text:{field:"label"}}}),c=()=>({name:"ticks",mark:{type:"rule",clip:!1,strokeDash:e.tickDash,strokeCap:e.tickCap,color:e.tickColor,size:e.tickWidth,minBufferSize:300},encoding:{[r]:{value:o},[r+"2"]:{value:o-e.tickSize/e.extent*(o?1:-1)}}}),u=()=>({name:"title",data:{values:[0]},mark:{type:"text",clip:!1,align:"center",baseline:e.orient=="bottom"?"bottom":"top",angle:[0,90,0,-90][["top","right","bottom","left"].indexOf(e.orient)],text:e.title,color:e.titleColor,[n]:.5,[r]:1-o}}),f=()=>{const d={name:"ticks_and_labels",encoding:{[n]:{field:"value",type:"quantitative"}},layer:[]};return e.ticks&&d.layer.push(c()),e.labels&&d.layer.push(s()),d},l={[mg[bl($n(e.orient))]]:e.extent,data:{dynamicCallbackSource:!0},layer:[]};return e.domain&&l.layer.push(a()),(e.ticks||e.labels)&&l.layer.push(f()),e.title&&l.layer.push(u()),l}const kM={...bg,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 NM(t){const e={...t,extent:Al(t)},n=$n(e.orient),r=bl(n),i=e.orient=="bottom"||e.orient=="left"?1:0,o=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:t.chromTickDash,strokeDashOffset:t.chromTickDashOffset,[r]:i,[r+"2"]:i-e.chromTickSize/e.extent*(i?1:-1),color:t.chromTickColor,size:e.chromTickWidth}}),a=()=>{let u;switch(e.orient){case"top":u={y:0,angle:0,paddingX:4,dy:-e.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":u={y:1,angle:0,paddingX:4,dy:e.chromLabelPadding+e.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":u={x:1,angle:-90,paddingY:4,dy:-e.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":u={x:0,angle:90,align:"right",paddingY:4,dy:-e.chromLabelPadding};break;default:u={}}return{name:"chromosome_labels",mark:{type:"text",size:e.chromLabelFontSize,font:e.chromLabelFont,fontWeight:e.chromLabelFontWeight,fontStyle:e.chromLabelFontStyle,color:e.chromLabelColor,align:t.chromLabelAlign,baseline:"alphabetic",clip:!1,...u},encoding:{[n+"2"]:{field:"continuousEnd",type:"locus"},text:{field:"name"}}}};let s;switch(e.orient){case"bottom":case"top":s={};break;case"left":s={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":s={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:s={}}const c=vg({...t,...s});if(t.chromTicks||t.chromLabels){const u={name:pg,data:{dynamicCallbackSource:!0},encoding:{[n]:{field:"continuousStart",type:"locus",band:0}},layer:[]};if(t.chromTicks&&u.layer.push(o()),t.chromLabels){u.layer.push(a());let f;c.layer.filter(l=>l.name=="ticks_and_labels").forEach(l=>l.layer.filter(d=>d.name=="labels").forEach(d=>{f=d.mark})),f&&(e.orient=="top"||e.orient=="bottom"?(f.viewportEdgeFadeWidthLeft=30,f.viewportEdgeFadeDistanceLeft=40):(f.viewportEdgeFadeWidthBottom=30,f.viewportEdgeFadeDistanceBottom=40))}c.layer.push(u)}return c}const Ag={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"},LM={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},BM={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},OM={start:0,middle:.5,end:1},PM={start:"left",middle:"center",end:"right"};function FM(t){var u,f,l;if(!t)return;const e=ee(t)?{text:t}:t;if(!e.text||e.orient=="none")return;const n=(u={"track-title":LM,overlay:BM}[e.style])!=null?u:{},r={...Ag,...n,...e};let i={},o={x:0,y:0};const a=OM[(f=r.anchor)!=null?f:"middle"];switch(r.orient){case"top":o={x:a,y:1},i={baseline:"alphabetic",angle:0};break;case"right":o={x:1,y:1-a},i={baseline:"alphabetic",angle:90};break;case"bottom":o={x:a,y:0},i={baseline:"top",angle:0};break;case"left":o={x:0,y:a},i={baseline:"alphabetic",angle:-90};break}const s={...Ag,...i,...n,...e},c={xOffset:0,yOffset:0};switch(r.orient){case"top":c.yOffset=-s.offset;break;case"right":c.xOffset=s.offset;break;case"bottom":c.yOffset=s.offset;break;case"left":c.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...o,...c,text:s.text,align:(l=s.align)!=null?l:PM[s.anchor],angle:s.angle,baseline:s.baseline,dx:s.dx,dy:s.dy,color:s.color,font:s.font,size:s.fontSize,fontStyle:s.fontStyle,fontWeight:s.fontWeight}}}function xg(t,e,n,r){if(t.type=="wheel"){t.uiEvent.preventDefault();const i=t.uiEvent,o=i.deltaMode?120:1;let{x:a,y:s}=t.point;if(r){const c=r.mark.encoders;c.x&&!c.x2&&(a=+c.x(r.datum)*e.width+e.x),c.y&&!c.y2&&(s=(1-+c.y(r.datum))*e.height+e.y)}Math.abs(i.deltaX)<Math.abs(i.deltaY)?n({x:a,y:s,xDelta:0,yDelta:0,zDelta:i.deltaY*o/300}):n({x:a,y:s,xDelta:-i.deltaX*o,yDelta:0,zDelta:0})}else if(t.type=="mousedown"&&t.uiEvent.button===0){const i=t.uiEvent;i.preventDefault();let o=i;const a=c=>{n({x:o.clientX,y:o.clientY,xDelta:c.clientX-o.clientX,yDelta:c.clientY-o.clientY,zDelta:0}),o=c},s=c=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",a,!1)}}class wg extends Kn{constructor(n,r,i,o,a){var s;super(n,r,i,o);De(this,Oo);De(this,Ct);De(this,Us);De(this,Gs);De(this,fr);De(this,Po);De(this,Fo);De(this,zo);De(this,Hs);De(this,ri,1/0);De(this,ii,10);De(this,et,[]);De(this,oi,0);this.spec=n,Uo(this,ii,(s=n.spacing)!=null?s:10),Uo(this,ri,a),Uo(this,et,[]),this.wrappingFacet=!1,this._createChildren()}_createChildren(){}appendChild(n){var r;(r=n.parent)!=null||(n.parent=this),ie(this,et).push(be(this,Oo,id).call(this,n)),X2(this,oi)._++}setChildren(n){for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=ie(this,et).findIndex(o=>o.view==n);if(i>=0)ie(this,et)[i]=be(this,Oo,id).call(this,r);else throw new Error("Not my child view!")}get children(){return ie(this,et).map(n=>n.view)}get childCount(){return ie(this,et).length}onScalesResolved(){super.onScalesResolved(),be(this,Gs,q2).call(this)}*[Symbol.iterator](){for(const n of ie(this,et)){n.background&&(yield n.background);for(const r of Object.values(n.axes))r&&(yield r);yield n.view,n.title&&(yield n.title)}}getOverhang(){const n=be(this,fr,Go).call(this,"column"),r=be(this,fr,Go).call(this,"row");return!n.length||!r.length?Je.zero():new Je(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)}getSize(){return this._cache("size",()=>new Zn(be(this,Fo,ad).call(this,"column"),be(this,Fo,ad).call(this,"row")).subtractPadding(this.getOverhang()).addPadding(this.getPadding()))}render(n,r,i={}){var u;if(!this.isVisible())return;r=r.shrink(this.getPadding()),n.pushView(this,r);const o={devicePixelRatio:this.context.glHelper.dpr},a=co(be(this,Po,od).call(this,"column"),r.width,o),s=co(be(this,Po,od).call(this,"row"),r.height,o),c=new lg(ie(this,Ct,xn).length,(u=ie(this,ri))!=null?u:1/0);for(const[f,l]of ie(this,Ct,xn).entries()){const{view:d,axes:h,background:p,title:m}=l,[y,g]=c.getCellCoords(f),x=a[be(this,zo,sd).call(this,"column",y)],A=s[be(this,zo,sd).call(this,"row",g)],C=d.getSize(),v=d.getPadding().subtract(d.getOverhang()),b=x.location+v.left,w=A.location+v.top,E=(C.width.grow?x.size:C.width.px)-v.width,I=(C.height.grow?A.size:C.height.px)-v.height,L=new dn(()=>r.x+b,()=>r.y+w,()=>E,()=>I);l.coords=L,p==null||p.render(n,L,i);const T=jM(d);T&&d.render(n,L,i);for(const[O,H]of Object.entries(h)){const U=H.axisProps;let Ae;const Ie=H.getPerpendicularSize();O=="bottom"?Ae=L.translate(0,L.height+U.offset).modify({height:Ie}):O=="top"?Ae=L.translate(0,-Ie-U.offset).modify({height:Ie}):O=="left"?Ae=L.translate(-Ie-U.offset,0).modify({width:Ie}):O=="right"&&(Ae=L.translate(L.width+U.offset,0).modify({width:Ie})),H.render(n,Ae)}T||d.render(n,L,i),m==null||m.render(n,L,{...i,clipRect:void 0})}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=ie(this,Ct,xn).find(o=>o.coords.containsPoint(n.point.x,n.point.y)),i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof ye||i instanceof Nt)&&xg(n,r.coords,o=>be(this,Hs,K2).call(this,r.coords,r.view,o),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}ri=new WeakMap,ii=new WeakMap,et=new WeakMap,oi=new WeakMap,Oo=new WeakSet,id=function(n){var i;const r={view:n,background:void 0,axes:{},coords:dn.ZERO};if(n instanceof ye||n instanceof Nt){const o=(i=n.spec)==null?void 0:i.view;if((o==null?void 0:o.fill)||(o==null?void 0:o.stroke)){const s=new ye(zM(o),this.context,n,"background"+ie(this,oi));s.blockEncodingInheritance=!0,r.background=s}const a=FM(n.spec.title);if(a){const s=new ye(a,this.context,n,"title"+ie(this,oi));s.blockEncodingInheritance=!0,r.title=s}}return r},Ct=new WeakSet,xn=function(){return ie(this,et).filter(n=>n.view.isVisible())},Us=new WeakSet,Z2=function(){var n;return new lg(ie(this,Ct,xn).length,(n=ie(this,ri))!=null?n:1/0)},Gs=new WeakSet,q2=function(){if(Object.keys(this.resolutions.axis).length)throw new Error("ConcatView does not (currently) support shared axes!");for(const n of ie(this,et)){const{view:r,axes:i}=n,o=(a,s,c)=>{var f;const u=a.getAxisProps();if(u!==null){if(!u.orient){for(const l of vl[s])if(!i[l]){u.orient=l;break}if(!u.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if((f=u.title)!=null||(u.title=a.getTitle()),!vl[s].includes(u.orient))throw new Error(`Invalid axis orientation "${u.orient}" on channel "${s}"!`);if(i[u.orient])throw new Error(`An axis with the orient "${u.orient}" already exists!`);i[u.orient]=new yg(u,a.scaleResolution.type,this.context,c)}};if(r instanceof ye||r instanceof Nt)for(const a of["x","y"]){const s=r.resolutions.axis[a];!s||o(s,a,r)}if(r instanceof Nt){for(const a of r.children)for(const[s,c]of Object.entries(a.resolutions.axis)){const u=c.getAxisProps();u&&u.orient&&o(c,s,a)}for(const a of r.children)for(const[s,c]of Object.entries(a.resolutions.axis)){const u=c.getAxisProps();u&&!u.orient&&o(c,s,a)}}}},fr=new WeakSet,Go=function(n){const r=n=="column"?["left","right"]:["top","bottom"],i=n=="column"?"width":"height",o=(a,s)=>a.map(c=>{const u=ie(this,Ct,xn)[c].axes[r[s]];if(u)return Math.max(u.getPerpendicularSize()+u.axisProps.offset,0);const f=ie(this,Ct,xn)[c].view.getOverhang();return n=="column"?s?f.right:f.left:s?f.bottom:f.top}).reduce((c,u)=>Math.max(c,u),0);return ie(this,Us,Z2)[n=="column"?"colIndices":"rowIndices"].map(a=>({axisBefore:o(a,0),axisAfter:o(a,1),view:MD(a.map(s=>ie(this,Ct,xn)[s].view.getSize()[i]))}))},Po=new WeakSet,od=function(n){const r=be(this,fr,Go).call(this,n),i=[];i.push(uo);for(const[o,a]of r.entries())o>0&&i.push({px:ie(this,ii),grow:0}),(o==0||this.wrappingFacet)&&i.push(uo),i.push({px:a.axisBefore,grow:0}),i.push(a.view),i.push({px:a.axisAfter,grow:0}),(o==r.length-1||this.wrappingFacet)&&i.push(uo);return i},Fo=new WeakSet,ad=function(n){var a,s;let r=0,i=0;const o=be(this,fr,Go).call(this,n);for(const[c,u]of o.entries())c>0&&(i+=ie(this,ii)),(c==0||this.wrappingFacet)&&(i+=0),i+=u.axisBefore,i+=(a=u.view.px)!=null?a:0,r+=(s=u.view.grow)!=null?s:0,i+=u.axisAfter,(c==o.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},zo=new WeakSet,sd=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},Hs=new WeakSet,K2=function(n,r,i){for(const[o,a]of Object.entries(RM(r))){if(a.size<=0)continue;const s=n.normalizePoint(i.x,i.y),c=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),u={x:c.x-s.x,y:c.y-s.y};for(const f of a)f.zoom(2**i.zDelta,o=="y"?1-s[o]:s[o],o=="x"?u.x:-u.y)}this.context.animator.requestRender()};function zM(t){return{configurableVisibility:!1,data:{values:[{}]},mark:{fill:null,strokeWidth:1,fillOpacity:t.fill?1:0,...t,type:"rect",clip:!1,tooltip:null}}}function RM(t){const e={x:new Set,y:new Set};return t.visit(n=>{for(const[r,i]of Object.entries(e)){const o=n.getScaleResolution(r);o&&o.isZoomable()&&i.add(o)}}),e}function jM(t){let e=!0;return t.visit(n=>{n instanceof ye&&e&&(e=n.mark.properties.clip)}),e}class Hr extends wg{constructor(e,n,r,i){super(e,n,r,i,Sl(e)?e.columns:Cl(e)?1:1/0),this.spec=e}_createChildren(){const e=this.spec,n=Sl(e)?e.concat:Cl(e)?e.vconcat:e.hconcat;this.setChildren(n.map((r,i)=>this.context.createView(r,this,"grid"+i)))}}class UM{constructor(){this.types=[];const e=n=>(r,i,o,a)=>{var s;return new n(r,i,o,(s=r.name)!=null?s:a)};this.addViewType(GM,e(ug)),this.addViewType(wl,e(Nt)),this.addViewType(xl,e(ye)),this.addViewType(Cl,e(Hr)),this.addViewType(HM,e(Hr)),this.addViewType(Sl,e(Hr))}addViewType(e,n){this.types.push({specGuard:e,factory:n})}createView(e,n,r,i){const o=this.types.find(a=>a.specGuard(e));if(o)return o.factory(e,n,r,i!=null?i:"unnamed");throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(e)]))}isViewSpec(e){const n=this.types.filter(r=>r.specGuard(e));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}}function xl(t){return"mark"in t&&(ee(t.mark)||ze(t.mark))}function wl(t){return"layer"in t&&ze(t.layer)}function Cg(t){return t&&(xl(t)||wl(t))&&"aggregateSamples"in t}function GM(t){return"import"in t}function Cl(t){return"vconcat"in t&&We(t.vconcat)}function HM(t){return"hconcat"in t&&We(t.hconcat)}function Sl(t){return"concat"in t&&We(t.concat)}const QM={point:hD,rect:sD,rule:gD,link:AD,text:DD};class ye extends Kn{constructor(e,n,r,i){super(e,n,r,i),this.spec=e;const o=QM[this.getMarkType()];if(o)this.mark=new o(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.sampleAggregateViews=[],this._initializeAggregateViews(),this.coords=void 0}*[Symbol.iterator](){for(const e of this.sampleAggregateViews)yield e}replaceChild(e,n){const r=this.sampleAggregateViews.indexOf(e);if(r>=0)this.sampleAggregateViews[r]=n;else throw new Error("Not my child view!")}render(e,n,r={}){!this.isVisible()||(this.coords=n,e.pushView(this,n),e.renderMark(this.mark,r),e.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(e){var r;const n=this.mark.encoding;for(const[i,o]of Object.entries(n)){if(!Ke(o))continue;let a=Ir((r=o.resolutionChannel)!=null?r:i);if(e=="axis"&&!Xi(a))continue;let s=this;for(;s.parent instanceof Kn&&["shared","excluded"].includes(s.parent.getConfiguredOrDefaultResolution(a,e))&&s.getConfiguredOrDefaultResolution(a,e)!="excluded";)s=s.parent;s.resolutions[e][a]||(s.resolutions[e][a]=e=="scale"?new bM(a):new wM(a)),Xi(i)?s.resolutions[e][a].pushUnitView(this,i):e=="scale"&&s.resolutions[e][a].pushUnitView(this,i)}}getAccessor(e){return this._cache("accessor/"+e,()=>{const n=this.mark.encoding;if(n&&n[e])return this.context.accessorFactory.createAccessor(n[e])})}getFacetAccessor(e){const n=this.getAccessor("sample");return n||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}_validateDomainQuery(e){if(Zi(e))throw new Error(`getDomain(${e}), must only be called for primary channels!`);const n=this.mark.encoding[e];if(!Ke(n))throw new Error("The channel has no scale, cannot get domain!");return n}getConfiguredDomain(e){var i,o;const n=this._validateDomainQuery(e),r=n&&n.scale&&n.scale.domain;if(r){const a=this.getScaleResolution((i=n.resolutionChannel)!=null?i:e);return og((o=n.type)!=null?o:"nominal",a.fromComplexInterval(r))}}extractDataDomain(e){var s;const r=(s=this._validateDomainQuery(e).type)!=null?s:"nominal",i=c=>{let u;const f=this.mark.encoding[c];if(f){const l=this.context.accessorFactory.createAccessor(f);if(l)if(u=og(r),l.constant)u.extend(l({}));else{const d=this.getCollector();d!=null&&d.completed&&d.visitData(h=>u.extend(l(h)))}}return u};let o=i(e);const a=Du[e];if(a){const c=i(a);c&&o.extendAll(c)}return o}getZoomLevel(){const e=n=>{var r,i;return(i=(r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())!=null?i:1};return Wi.map(e).reduce((n,r)=>n*r,1)}_initializeAggregateViews(){var e,n;if(Cg(this.spec))for(const r of this.spec.aggregateSamples){const i=(e=r.transform)!=null?e:[];i.length&&je(i).type!="collect"&&i.push({type:"collect"}),i.push({type:"mergeFacets"}),r.transform=i,r.encoding={...(n=r.encoding)!=null?n:{},sample:null};const o=this.context.createView(r,this,"summaryView");o.getFacetFields=a=>{},this.sampleAggregateViews.push(o)}}propagateInteractionEvent(e){e.target=this}getDefaultResolution(e,n){return e=="x"?"shared":"independent"}}function*El(t,e=[]){for(const[n,r]of t.entries())if(r instanceof Map)for(const i of El(r,[...e,n]))yield i;else yield[[...e,n],r]}class Qr extends se{constructor(e){super(),this.params=e!=null?e:{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new En([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(e){this._data.push(e)}beginBatch(e){fD(e)&&(this._data=[],this.facetBatches.set(qe(e.facetId),this._data))}complete(){var i,o;const e=(i=this.params)==null?void 0:i.sort,n=e?fd(e.field,e.order):void 0,r=a=>{n&&a.sort(n)};if((o=this.params.groupby)!=null&&o.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const a=this.params.groupby.map(c=>Z(c)),s=ci(this._data,...a);this.facetBatches.clear();for(const[c,u]of El(s))this.facetBatches.set(c,u)}for(const a of this.facetBatches.values())r(a);if(this.children.length)for(const[a,s]of this.facetBatches.entries()){if(a){const c={type:"facet",facetId:a};for(const u of this.children)u.beginBatch(c)}for(const c of s)this._propagate(c)}super.complete();for(const a of this.observers)a(this)}getData(){switch(this._checkStatus(),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const e=this.facetBatches;return{[Symbol.iterator]:function*(){for(const r of e.values())for(let i=0;i<r.length;i++)yield r[i]}}}}}visitData(e){this._checkStatus();for(const n of this.facetBatches.values())for(let r=0;r<n.length;r++)e(n[r])}getItemCount(){let e=0;for(const n of this.facetBatches.values())e+=n.length;return e}_checkStatus(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")}}class fo{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(e,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]=e,this.values[r]=n}pop(){if(this.length===0)return;const e=this.ids[0];if(this.length--,this.length>0){const n=this.ids[0]=this.ids[this.length],r=this.values[0]=this.values[this.length],i=this.length>>1;let o=0;for(;o<i;){let a=(o<<1)+1;const s=a+1;let c=this.ids[a],u=this.values[a];const f=this.values[s];if(s<this.length&&f<u&&(a=s,c=this.ids[s],u=f),u>=r)break;this.ids[o]=c,this.values[o]=u,o=a}this.ids[o]=n,this.values[o]=r}return e}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 VM extends se{get behavior(){return kt}constructor(e){super(),this.params=e,this.startAccessor=Z(e.start),this.endAccessor=Z(e.end),this.chromAccessor=e.chrom?Z(e.chrom):n=>{},this.weightAccessor=e.weight?Z(e.weight):n=>1,this.as={coverage:e.as||"coverage",start:e.asStart||e.start,end:e.asEnd||e.end,chrom:e.asChrom||e.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 fo}reset(){super.reset(),this.initialize()}initialize(){const e=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,o=this.endAccessor,a=this.chromAccessor,s=this.weightAccessor;let c,u,f,l=0,d;const h=this.ends;h.clear();const p=(y,g,x)=>{if(y==g)return;let A=!1;c&&(c[e]===x?(c[n]=g,A=!0):c[e]!=0&&this._propagate(c)),A||(c=this.createSegment(y,g,x,f))},m=()=>{let y;for(;(y=h.peekValue())!==void 0;)p(d,y,l),d=y,l-=h.pop();d=void 0,c&&(this._propagate(c),c=void 0)};this.handle=y=>{const g=i(y);let x;for(;(x=h.peekValue())!==void 0&&x<g;)p(d,x,l),d=x,l-=h.pop();if(r){let C=a(y);C!==u&&(m(),f=C,u=f)}d!==void 0&&p(d,g,l),d=g;const A=s(y);l+=A,h.push(A,o(y))},this.complete=()=>{m(),super.complete()}}}function YM(t,e,n=0,r=t.length){const i=new fo,o=r-n;let a;for(a=0;a<e&&a<o;a++)i.push(a,t[n+a]);for(;a<o;a++){const u=t[n+a];u>=i.peekValue()&&(i.push(a,u),i.pop())}const s=[];let c;for(;(c=i.pop())!==void 0;)s.push(n+c);return s.reverse()}class _M{constructor(e,n=-1/0,r=1/0){this.maxSize=e,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(e,n,r=0){if(e>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const o=this._findSlot(e,n,i);return o>=0?o:this._findSlot(e,n,this.upperChildren[r])}else return r}else return-1}reserve(e,n){if(n-e<=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(e,n);if(r<0)return!1;const i=this.n++,o=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=e,this.lowerLimits[o]=n,this.upperLimits[o]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=o,!0}}class WM extends se{constructor(e,n){var i,o;if(super(),this.params=e,this._data=[],this.channel=(i=e.channel)!=null?i:"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=Z(this.params.pos),this.posBisector=qo(this.posAccessor),this.scoreAccessor=Z(this.params.score),this.widthAccessor=Z(this.params.width),this.laneAccessor=this.params.lane?Z(this.params.lane):a=>0,this.padding=(o=this.params.padding)!=null?o: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",a=>this.schedule()),n._addBroadcastHandler("layoutComputed",()=>this.schedule())}complete(){const e=this.posAccessor;this._data.sort((n,r)=>e(n)-e(r)),this._scores=this._data.map(this.scoreAccessor);for(const n of new Set(this._data.map(this.laneAccessor)))this.reservationMaps.set(n,new _M(200));this.schedule(),super.complete()}_filterAndPropagate(){var a;super.reset();const e=this.resolution.getScale(),n=(a=this.resolution.members[0].view.coords)==null?void 0:a[this.channel=="x"?"width":"height"];if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=e.domain(),i=70,o=YM(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of o){const c=this._data[s],u=e(this.posAccessor(c))*n,f=this.widthAccessor(c)/2+this.padding;this.reservationMaps.get(this.laneAccessor(c)).reserve(u-f,u+f)&&this._propagate(c)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(e){this._data.push(e)}}class XM extends se{constructor(e){super(),this.params=e,this.predicate=void 0}initialize(){this.predicate=Cu(this.params.expr,this.getGlobalObject())}handle(e){this.predicate(e)&&this._propagate(e)}}const ZM="0".charCodeAt(0);function*qM(t,e=","){const n=e.charCodeAt(0);let r=0;for(let i=0;i<t.length;i++){const o=t.charCodeAt(i);o==n?(yield r,r=0):r=r*10+o-ZM}yield r}class KM extends se{get behavior(){return kt}constructor(e){var a,s;super();const n=Z((a=e.exons)!=null?a:"exons"),r=Z((s=e.start)!=null?s:"start"),[i,o]=e.as||["exonStart","exonEnd"];this.handle=c=>{let u=r(c),f=u,l=!0;const d=n(c);for(const h of qM(d)){if(l)f=u+h;else{u=f+h;const p=Object.assign({},c);p[i]=f,p[o]=u,this._propagate(p)}l=!l}}}}class JM extends se{get behavior(){return kt}constructor(e){super();const n=qe(e.field).map(o=>Z(o)),r=qe(e.separator),i=qe(e.as||e.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(c=>!c(o)))return;const a=n.map((c,u)=>c(o).split(r[u]));$M(a,o);const s=a[0].length;for(let c=0;c<s;c++){const u=Object.assign({},o);for(let f=0;f<n.length;f++)u[i[f]]=a[f][c];this._propagate(u)}}}}function $M(t,e){const n=t.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(e))}class e8 extends se{get behavior(){return fn}constructor(e){super(),this.params=e,this.as=e.as,this.fn=void 0}initialize(){this.fn=Cu(this.params.expr,this.getGlobalObject())}handle(e){e[this.as]=this.fn(e),this._propagate(e)}}class Sg extends se{get behavior(){return fn}constructor(e,n){var p;super();const r=(p=e.channel)!=null?p:"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=Z(e.chrom),a=qe(e.pos).map(m=>Z(m)),s=qe(e.as);if(a.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const c=qe(e.offset);let u;if(c.length==0)u=new Array(a.length).fill(0);else if(c.length==1)u=new Array(a.length).fill(c[0]);else if(c.length==a.length)u=c;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(e.offset)}!`);const f=new Function("datum","chromOffset","posAccessors",s.map((m,y)=>`datum[${JSON.stringify(m)}] = chromOffset + +posAccessors[${y}](datum) - ${u[y]};`).join(`
1343
- `));let l,d=0;const h=m=>{if(m!==l){if(d=i.cumulativeChromPositions.get(m),d===void 0)throw new Error("Unknown chromosome/contig: "+m);l=m}return d};this.handle=m=>{f(m,h(o(m)),a),this._propagate(m)}}}const Eg={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 t8 extends se{get behavior(){return fn}constructor(e){super();const n=sl(Eg),r=Z(e.field),i=e.as,o=e.fontSize;this.handle=a=>{const s=r(a);s!==void 0?a[i]=n.measureWidth(s,o):a[i]=0,this._propagate(a)}}}const n8=65536;class r8 extends se{get behavior(){return fn}constructor(e){super(),this.params=e}reset(){this.initialize()}initialize(){const e=this.params,n=e.as||"lane",r=ce(e.spacing)?e.spacing:1,i=Z(e.start),o=Z(e.end);if(!e.preference!=!e.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(e.preference){const a=new Float64Array(n8),s=Z(e.preference),c=e.preferredOrder;let u=1/0;this.handle=f=>{const l=i(f);l<u&&a.fill(-1/0),u=l;const d=c.indexOf(s(f));let h=-1;if(d>=0&&a[d]<l)h=d;else{const p=i(f);for(h=0;h<a.length&&!(a[h]<p);h++);if(h>=a.length)throw new Error("Out of lanes!")}a[h]=o(f)+r,f[n]=h,this._propagate(f)}}else{const a=new fo,s=new fo;let c=-1/0,u=0;this.handle=f=>{const l=i(f);for(;a.length&&(a.peekValue()<=l||l<c);){const h=a.pop();s.push(h,h)}c=l;let d=s.pop();d===void 0&&(d=u++),f[n]=d,this._propagate(f),a.push(d,o(f)+r)}}}}class i8 extends se{get behavior(){return kt}constructor(e){if(super(),e.as&&e.as.length!=e.fields.length)throw new Error('"fields" and "as" have unequal lengths!');const n=e.fields.map(i=>Z(i)),r=e.as?e.as:n.map(ae);this.handle=i=>{const o={};for(let a=0;a<n.length;a++)o[r[a]]=n[a](i);this._propagate(o)}}}class o8 extends se{get behavior(){return fn}constructor(e){super();const n=new RegExp(e.regex),r=typeof e.as=="string"?[e.as]:e.as,i=Z(e.field);this.handle=o=>{const a=i(o);if(ee(a)){const s=a.match(n);if(s){if(s.length-1!=r.length)throw new Error('The number of RegEx groups and the length of "as" do not match!');for(let c=0;c<r.length;c++)o[r[c]]=s[c+1]}else if(e.skipInvalidInput)for(let c=0;c<r.length;c++)o[r[c]]=void 0;else throw new Error(`"${a}" does not match the given regex: ${n.toString()}`)}else if(!e.skipInvalidInput)throw new Error(`Trying to match a non-string field. Encountered type: ${typeof a}, field content: "${a}".`);this._propagate(o)}}}class a8 extends se{get behavior(){return kt}constructor(e){super();const n=qe(e.columnRegex).map(d=>new RegExp(d)),r=qe(e.asValue);if(n.length!=r.length)throw new Error('Lengths of "columnRegex" and "as" are not equal!');const i=e.skipRegex?new RegExp(e.skipRegex):void 0,o=e.asKey||"sample";let a,s,c;const u=d=>{var y;const h=Object.keys(d),p=new Map;for(const[g,x]of n.entries())for(const A of h){const C=(y=x.exec(A))==null?void 0:y[1];if(C!==void 0){let v=p.get(C);v||(v=[],p.set(C,v)),v[g]=A}}a=[...p.entries()],s=h.filter(g=>!n.some(x=>x.test(g))&&!(i&&i.test(g)));const m=[...s.map(g=>JSON.stringify(g)+": datum["+JSON.stringify(g)+"]"),JSON.stringify(o)+": sampleId",...r.map(g=>JSON.stringify(g)+": null")];c=new Function("datum","sampleId",`return {
1342
+ */const ZD="locus",qD="index";var KD=5;function JD(t){const e=t.type;return!t.bins&&(e===wr||e===ki||e===Ni)}function tg(t){return Re(t)&&![ht,qD,ZD].includes(t)}function ng(t){return t||{warn:(e,...n)=>console.warn(e,...n)}}var $D=qo(["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 rg(t,e,n){n=ng(n);for(const r in t)if(!$D[r]){if(r==="padding"&&tg(e.type))continue;ke(e[r])?e[r](t[r]):n.warn("Unsupported scale property: "+r)}sM(e,t,aM(e,t,rM(e,t,n)))}function eM(t,e){const n=tM(t),r=W(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return rg(t,i,e),i}function tM(t){var e=t.type,n="",r;return e===ht?ht+"-"+wr:(nM(t)&&(r=t.rawDomain?t.rawDomain.length:t.domain?t.domain.length+ +(t.domainMid!=null):0,n=r===2?ht+"-":r===3?Cr+"-":""),(n+e||wr).toLowerCase())}function nM(t){const e=t.type;return Re(e)&&e!==I0&&e!==k0&&(t.scheme||t.range&&t.range.length&&t.range.every(te))}function rM(t,e,n){if(!t.domain)return 0;n=ng(n);var r=iM(t,e.domainRaw,n);if(r>-1)return r;var i=e.domain,o=t.type,a=e.zero||e.zero===void 0&&JD(t),s,c;return i?(tg(o)&&e.padding&&i[0]!==tt(i)&&(i=oM(o,i,e.range,e.padding,e.exponent,e.constant)),(a||e.domainMin!=null||e.domainMax!=null||e.domainMid!=null)&&(s=(i=i.slice()).length-1||1,a&&(i[0]>0&&(i[0]=0),i[s]<0&&(i[s]=0)),e.domainMin!=null&&(i[0]=e.domainMin),e.domainMax!=null&&(i[s]=e.domainMax),e.domainMid!=null&&(c=e.domainMid,(c<i[0]||c>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",c),i.splice(s,0,c))),t.domain(ig(o,i,n)),o===fu&&t.unknown(e.domainImplicit?Lc:void 0),e.nice&&t.nice&&t.nice(e.nice!==!0&&$m(t,e.nice)||null),i.length):0}function iM(t,e,n){return e?(t.domain(ig(t.type,e,n)),e.length):-1}function oM(t,e,n,r,i,o){var a=Math.abs(tt(n)-n[0]),s=a/(a-2*r),c=t===en?md(e,null,s):t===Ni?qs(e,null,s,.5):t===ki?qs(e,null,s,i||1):t===Ca?fb(e,null,s,o||1):Zs(e,null,s);return e=e.slice(),e[0]=c[0],e[e.length-1]=c[1],e}function ig(t,e,n){if(z0(t)){var r=Math.abs(e.reduce(function(i,o){return i+(o<0?-1:o>0?1:0)},0));r!==e.length&&n.warn("Log scale domain includes zero: "+Zo(e))}return e}function aM(t,e,n){let r=e.bins;if(r&&!We(r)){const i=(r.start==null||r.stop==null)&&t.domain(),o=r.start==null?i[0]:r.start,a=r.stop==null?tt(i):r.stop,s=r.step;s||oe("Scale bins parameter missing step property."),r=Yt(o,a+s,s)}return r?t.bins=r:t.bins&&delete t.bins,t.type===hu&&(r?!e.domain&&!e.domainRaw&&(t.domain(r),n=r.length):t.bins=t.domain()),n}function sM(t,e,n){var r=t.type,i=e.round||!1,o=e.range;if(e.rangeStep!=null)o=cM(r,e,n);else if(e.scheme&&(o=uM(r,e,n),ke(o))){if(t.interpolator)return t.interpolator(o);oe(`Scale type ${r} does not support interpolating color schemes.`)}if(o&&Ea(r))return t.interpolator(Da(pl(o,e.reverse),e.interpolate,e.interpolateGamma));o&&e.interpolate&&t.interpolate?t.interpolate(R0(e.interpolate,e.interpolateGamma)):ke(t.round)?t.round(i):ke(t.rangeRound)&&t.interpolate(i?Ti:Jt),o&&t.range(pl(o,e.reverse))}function cM(t,e,n){t!==B0&&t!==du&&oe("Only band and point scales support rangeStep.");var r=(e.paddingOuter!=null?e.paddingOuter:e.padding)||0,i=t===du?1:(e.paddingInner!=null?e.paddingInner:e.padding)||0;return[0,e.rangeStep*uu(n,i,r)]}function uM(t,e,n){var r=e.schemeExtent,i,o;return We(e.scheme)?o=Da(e.scheme,e.interpolate,e.interpolateGamma):(i=e.scheme.toLowerCase(),o=mu(i),o||oe(`Unrecognized scheme name: ${e.scheme}`)),n=t===L0?n+1:t===hu?n-1:t===lu||t===N0?+e.schemeCount||KD:n,Ea(t)?og(o,r,e.reverse):ke(o)?sw(og(o,r),n):t===fu?o:o.slice(0,n)}function og(t,e,n){return ke(t)&&(e||n)?aw(t,pl(e||[0,1],n)):t}function pl(t,e){return e?t.slice().reverse():t}const ml=le(",d");function lM(t){return t.chrom+":"+ml(Math.floor(t.pos+1))}function fM(t,e){return t.chrom+":"+ml(Math.floor(t.pos+1))+"-"+(t.chrom!=e.chrom?e.chrom+":":"")+ml(Math.ceil(e.pos))}const dM="https://genomespy.app/data/genomes/";class hM{constructor(e){if(this.config=e,!this.config.contigs&&typeof this.config.name!="string")throw new Error("No name has been defined for the genome assembly!");this.chromosomes=[],this.cumulativeChromPositions=new Map,this.chromosomesByName=new Map,this.startByIndex=[],this.totalSize=0,this.config.contigs&&this.setChromSizes(this.config.contigs)}get name(){return this.config.name}async load(e){if(!this.config.contigs){this.config.baseUrl?this.baseUrl=/^http(s)?/.test(this.config.baseUrl)?this.config.baseUrl:e+"/"+this.config.baseUrl:this.baseUrl=dM;try{this.setChromSizes(pM(await Si({baseURL:this.baseUrl}).load(`${this.config.name}/${this.name}.chrom.sizes`)))}catch(n){throw new Error(`Could not load chrom sizes: ${n.message}`)}}}setChromSizes(e){let n=0;this.startByIndex=[0];for(let r=0;r<e.length;r++){this.startByIndex.push(n);const i=e[r].size,o={...e[r],continuousStart:n,continuousEnd:n+i,continuousInterval:[n,n+i],index:r,number:r+1,odd:!(r&1)};this.chromosomes.push(o);const a=o.name.replace(/^chr/i,"");for(const s of["chr"+a,"CHR"+a,"Chr"+a,o.number,""+o.number,a,o.name])this.cumulativeChromPositions.set(s,n),this.chromosomesByName.set(s,o);n+=o.size}this.totalSize=n}getExtent(){return[0,this.totalSize]}toContinuous(e,n){let r=this.cumulativeChromPositions.get(e);if(r===void 0)throw new Error("Unknown chromosome/contig: "+e);return r+ +n}toChromosome(e){if(e>=this.totalSize)return;e=Math.floor(e);const n=hr(this.startByIndex,e)-1;if(n>0&&n<=this.chromosomes.length)return this.chromosomes[n-1]}toChromosomal(e){const n=this.toChromosome(e);if(!!n)return{chrom:n.name,pos:Math.floor(e)-n.continuousStart}}getChromosome(e){return this.chromosomesByName.get(e)}formatInterval(e){return fM(...this.toChromosomalInterval(e))}toChromosomalInterval(e){const n=this.toChromosomal(e[0]+.5),r=this.toChromosomal(e[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(e){var i,o,a;let[n,r]=e;return r||(r=n),[this.toContinuous(n.chrom,(i=n.pos)!=null?i:0),this.toContinuous(r.chrom,(a=r.pos)!=null?a:(o=this.chromosomesByName.get(r.chrom))==null?void 0:o.size)]}parseInterval(e){const n=e.match(/^(chr[0-9A-Z]+)(?::([0-9,]+)(?:-(?:(chr[0-9A-Z]+):)?([0-9,]+))?)?$/);if(n){const r=n[1];if(n.slice(2).every(s=>s===void 0)){const s=this.getChromosome(r);return s?[s.continuousStart,s.continuousEnd]:void 0}const i=n[3]||r,o=parseInt(n[2].replace(/,/g,"")),a=n[4]!==void 0?parseInt(n[4].replace(/,/g,"")):o;return[this.toContinuous(r,o-1),this.toContinuous(i,a)]}}}function pM(t){return kb(t).filter(e=>/^chr[0-9A-Z]+$/.test(e[0])).map(([e,n])=>({name:e,size:parseInt(n)}))}function ag(t){return ze(t)&&"chrom"in t}function mM(t){return t.every(ag)}class fo extends Array{constructor(){super(),this.type=void 0}extend(e){return this}extendAll(e){if(e instanceof fo&&e.type!=this.type)throw new Error(`Cannot combine different types of domains: ${this.type} and ${e.type}`);for(const n of e)this.extend(n);return this}extendAllWithAccessor(e,n){for(const r of e)this.extend(n(r));return this}}class gl extends fo{constructor(){super(),this.type="quantitative"}extend(e){return e==null||Number.isNaN(e)?this:(e=+e,this.length?e<this[0]?this[0]=e:e>this[1]&&(this[1]=e):(this.push(e),this.push(e)),this)}}class sg extends fo{constructor(){super(),this.type="ordinal",this.uniqueValues=new Set}extend(e){return e==null||Number.isNaN(e)?this:(this.uniqueValues.has(e)||(this.uniqueValues.add(e),this.push(e)),this)}}class cg extends sg{constructor(){super(),this.type="nominal"}}class gM extends fo{constructor(e){super();let n=0;for(let r=1;r<e.length;r++)n+=Math.sign(e[r]-e[r-1]);if(Math.abs(n)!=e.length-1)throw new Error("Piecewise domain must be strictly increasing or decreasing: "+JSON.stringify(e));e.forEach(r=>this.push(r))}extend(e){if(this.includes(e))return this;throw new Error("Piecewise domains are immutable and cannot be unioned!")}}const ug={quantitative:gl,index:gl,locus:gl,nominal:cg,ordinal:sg};function lg(t,e){if(t=="quantitative"&&yM(e)){const n=new gM(e);return n.type=t,n}else if(ug[t]){const n=new ug[t];return n.type=t,e&&n.extendAll(e),n}throw new Error("Unknown type: "+t)}function yM(t){return t&&t.length>0&&t.length!=2&&t.every(e=>typeof e=="number")}function fg(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function bM(t){return--t*t*t+1}function vM(t){return(Math.pow(2,-10*t)-.0009765625)*1.0009775171065494}function AM(t){return 1-vM(t)}const dg="quantitative",yl="ordinal",bl="nominal",hg="locus",xM="index";class wM{constructor(e){this.channel=e,this.members=[],this.type=null,this._zoomExtent=void 0,this._domainListeners=new Set,this.name=void 0,this._scale=void 0}addEventListener(e,n){if(e!="domain")throw new Error("Unsupported event type: "+e);this._domainListeners.add(n)}removeEventListener(e,n){if(e!="domain")throw new Error("Unsupported event type: "+e);this._domainListeners.delete(n)}_notifyDomainListeners(){for(const e of this._domainListeners.values())e({type:"domain",scaleResolution:this})}pushUnitView(e,n){var a;const r=Du(e,n),i=r.type,o=(a=r==null?void 0:r.scale)==null?void 0:a.name;if(o){if(this.name!==void 0&&o!=this.name)throw new Error(`Shared scales have conflicting names: "${o}" vs. "${this.name}"!`);this.name=o}if(!this.type)this.type=i;else if(i!==this.type&&!qi(n))throw new Error(`Can not use shared scale for different data types: ${this.type} vs. ${i}. Use "resolve: independent" for channel ${this.channel}`);this.members.push({view:e,channel:n})}isExplicitDomain(){return!!this.getConfiguredDomain()}_getMergedScaleProps(){return Ur(this,"mergedScaleProps",()=>{const e=this.members.map(n=>Du(n.view,n.channel).scale).filter(n=>n!==void 0);return as(e,"scale",["domain"])})}getScaleProps(){return Ur(this,"scaleProps",()=>{var i,o;const e=this._getMergedScaleProps();if(e===null||e.type=="null")return{type:"null"};const n={...this._getDefaultScaleProperties(this.type),...e};n.type||(n.type=CM(this.channel,this.type));const r=this.getInitialDomain();return r&&r.length>0?n.domain=r:tn(n.type)&&(n.domain=new cg),!n.domain&&n.domainMid!==void 0&&(n.domain=[(i=n.domainMin)!=null?i:0,(o=n.domainMax)!=null?o:1]),this.channel=="y"&&tn(n.type)&&n.reverse==null&&(n.reverse=!0),n.range&&n.scheme&&delete n.scheme,!("zoom"in n)&&["index","locus"].includes(n.type)&&(n.zoom=!0),SM(n,this.channel),n})}getInitialDomain(){var e;return(e=this.getConfiguredDomain())!=null?e:this.type==hg?this.getGenome().getExtent():this.getDataDomain()}getConfiguredDomain(){return this._reduceDomains(e=>qi(e.channel)?void 0:e.view.getConfiguredDomain(e.channel))}getDataDomain(){return this._reduceDomains(e=>qi(e.channel)?void 0:e.view.extractDataDomain(e.channel))}reconfigure(){if(this._scale&&this._scale.type!="null"){Rm(this,"scaleProps");const e=this.getScaleProps();rg(e,this._scale),Re(this._scale.type)&&(this._zoomExtent=this._getZoomExtent())}}getScale(){if(this._scale)return this._scale;const e=this.getScaleProps(),n=eM(e);return this._scale=n,XA(n)&&n.genome(this.getGenome()),Re(n.type)&&(this._zoomExtent=this._getZoomExtent()),n}getDomain(){return this.getScale().domain()}getComplexDomain(){var e,n;return(n=(e=this.getGenome())==null?void 0:e.toChromosomalInterval(this.getDomain()))!=null?n:this.getDomain()}isZoomed(){return this.isZoomable()&&J0(this.getInitialDomain(),this.getDomain())}isZoomable(){if(!hp(this.channel))return!1;const e=this.getScale().type;return["linear","locus","index","log","pow","sqrt"].includes(e)?!!this.getScaleProps().zoom:!1}zoom(e,n,r){if(!this.isZoomable())return!1;const i=this.getScale(),o=i.domain();let a=[...o],s=i.invert(n);switch(this.getScaleProps().reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":a=cb(a,r||0),a=Zs(a,s,e);break;case"log":a=ub(a,r||0),a=md(a,s,e);break;case"pow":case"sqrt":{const c=i;a=lb(a,r||0,c.exponent()),a=qs(a,s,e,c.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return this._zoomExtent&&(a=db(a,this._zoomExtent[0],this._zoomExtent[1])),[0,1].some(c=>a[c]!=o[c])?(i.domain(a),this._notifyDomainListeners(),!0):!1}async zoomTo(e,n=!1){var s;if(Wo(n)&&(n=n?700:0),!this.isZoomable())throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(e),i=(s=this.members[0])==null?void 0:s.view.context.animator,o=this.getScale(),a=o.domain();if(n>0&&a.length==2){const c=a[1]-a[0],u=a[0]+c/2,f=r[1]-r[0],l=r[0]+f/2,d=i0([u,0,c],[l,0,f]).rho(.7);await i.transition({duration:n/1e3*d.duration,easingFunction:fg,onUpdate:h=>{const[p,,m]=d(h);o.domain([p-m/2,p+m/2]),this._notifyDomainListeners()}}),o.domain(r),this._notifyDomainListeners()}else o.domain(r),i==null||i.requestRender(),this._notifyDomainListeners()}resetZoom(){if(!this.isZoomable())throw new Error("Not a zoomable scale!");const e=this.getDomain(),n=this.getInitialDomain();return[0,1].some(r=>n[r]!=e[r])?(this._scale.domain(n),this._notifyDomainListeners(),!0):!1}getZoomLevel(){return this.isZoomable()?Xo(this._zoomExtent)/Xo(this.getScale().domain()):1}_getZoomExtent(){const e=this.getScaleProps(),n=e.zoom;if(EM(n)&&We(n.extent))return this.fromComplexInterval(n.extent);if(n)return e.type=="locus"?this.getGenome().getExtent():this._scale.domain()}_getDefaultScaleProperties(e){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),Zi(n)?r.nice=!this.isExplicitDomain():Vn(n)?r.scheme=e==bl?"tableau10":e==yl?"blues":"viridis":Oa(n)?r.range=mp(n):n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r}getGenome(){var n;if(this.type!=="locus")return;const e=(n=this.members[0].view.context.genomeStore)==null?void 0:n.getGenome();if(!e)throw new Error("No genome has been defined!");return e}invertToComplex(e){const n=this.getScale();if("invert"in n){const r=n.invert(e);return this.toComplex(r)}else throw new Error("The scale does not support inverting!")}toComplex(e){const n=this.getGenome();return n?n.toChromosomal(e):e}fromComplex(e){return ag(e)?this.getGenome().toContinuous(e.chrom,e.pos):e}fromComplexInterval(e){return this.type==="locus"&&mM(e)?this.getGenome().toContinuousInterval(e):e}_getViewPaths(){return this.members.map(e=>e.view.getPathString()).join(", ")}_reduceDomains(e){const n=this.members.map(e).filter(r=>!!r);if(n.length)return n.reduce((r,i)=>r.extendAll(i))}}function CM(t,e){if(e==xM||e==hg){if(hp(t))return e;throw new Error(`${t} does not support ${e} 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=["uniqueId","facetIndex","semanticScore","search","text","sample"].includes(t)?"null":n[t]?n[t][[bl,yl,dg].indexOf(e)]:e==dg?"linear":"ordinal";if(i===void 0)throw new Error(`Channel "${t}" is not compatible with "${e}" data type. Use of a proper scale may be needed.`);return i}function SM(t,e){Zi(e)&&t.type!=="ordinal"&&(t.range=[0,1]),e=="opacity"&&Re(t.type)&&(t.clamp=!0)}function EM(t){return ze(t)}function vl(...t){for(const e of t)if(e!==void 0)return e}class DM{constructor(e){this.channel=e,this.members=[]}get scaleResolution(){var e;return(e=je(this.members))==null?void 0:e.view.getScaleResolution(this.channel)}pushUnitView(e,n){const r=e.getScaleResolution(this.channel);if(!r)throw new Error("Cannot find a scale resolution!");if(this.scaleResolution&&r!==this.scaleResolution)throw new Error("Shared axes must have a shared scale!");this.members.push({view:e,channel:n})}getAxisProps(){return Ur(this,"axisProps",()=>{const e=this.members.map(n=>{const r=n.view.mark.encoding[n.channel];return"axis"in r&&r.axis});return e.length>0&&e.some(n=>n===null)?null:as(e.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const e=o=>{var s;const a=Du(o.view,o.channel);if(!ot(a))return{member:o,explicitTitle:vl((s=a.axis)==null?void 0:s.title,a.title),implicitTitle:vl(Qn(a)?a.field:void 0,Mu(a)?a.expr:void 0)}},n=this.members.map(e),r=n.filter(o=>{var a;if(qi(o.member.channel)&&!o.explicitTitle){const s=Ir(o.member.channel);return((a=n.find(c=>c.member.view==o.member.view&&c.member.channel==s))==null?void 0:a.explicitTitle)===void 0}return!0}),i=new Set(r.map(o=>vl(o.explicitTitle,o.implicitTitle)).filter(te));return i.size?[...i].join(", "):null}}class pg extends Km{constructor(e,n,r,i){super(e,n,r,i),this.spec=e}}class Nt extends Kn{constructor(e,n,r,i){super(e,n,r,i),this.spec=e,this.children=(e.layer||[]).map((o,a)=>{if(Sl(o)||Cl(o))return n.createView(o,this,"layer"+a);throw new Error("LayerView accepts only unit or layer specs as children!")})}*[Symbol.iterator](){for(const e of this.children)yield e}render(e,n,r={}){if(!!this.isVisible()){e.pushView(this,n);for(const i of this.children)i.render(e,n,r);e.popView(this)}}propagateInteractionEvent(e){this.handleInteractionEvent(void 0,e,!0),this.children.length&&this.children.at(-1).propagateInteractionEvent(e),!e.stopped&&this.handleInteractionEvent(void 0,e,!1)}}class mg{constructor(e,n){this.n=e,this.maxCols=n!=null?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 e=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const o=[];e.push(o);for(let a=0;a<n;a++){const s=i*n+a;s<this.n&&o.push(s)}}return e}get colIndices(){const e=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const o=[];e.push(o);for(let a=0;a<r;a++){const s=a*n+i;s<this.n&&o.push(s)}}return e}getCellIndex(e,n){let r=0;if(this.maxCols==1/0)r=n==0?e:void 0;else{if(e>=this.maxCols)return;r=n*this.nCols+e}return r<this.n?r:void 0}getCellCoords(e){if(!(e<0||e>=this.n))return[e%this.nCols,Math.floor(e/this.nCols)]}}function Lt(t){return()=>t}const Vt=class{static create(e,n,r,i){return new Vt(Lt(e),Lt(n),Lt(r),Lt(i))}_offset(e,n){const r=this["_"+e];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(e){return this._offset(e,0)}constructor(e,n,r,i){this._x=e,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(e){return e?this===e||this.x===e.x&&this.y===e.y&&this.width===e.width&&this.height===e.height:!1}modify(e){if(!Object.keys(e).length)return this;const n=r=>{const i=e[r];return typeof i=="number"?Lt(i):typeof i=="function"?i:this._passThrough(r)};return new Vt(n("x"),n("y"),n("width"),n("height"))}translate(e,n){return e===0&&n===0?this:new Vt(this._offset("x",e),this._offset("y",n),this._passThrough("width"),this._passThrough("height"))}translateBy(e){return this.translate(e.x,e.y)}expand(e,n=1){return e.left==0&&e.top==0&&e.right==0&&e.bottom==0?this:new Vt(e.left?this._offset("x",-e.left*n):this._passThrough("x"),e.top?this._offset("y",-e.top*n):this._passThrough("y"),e.width?this._offset("width",e.width*n):this._passThrough("width"),e.height?this._offset("height",e.height*n):this._passThrough("height"))}shrink(e){return this.expand(e,-1)}intersect(e){return this===e?this:new Vt(()=>Math.max(this.x,e.x),()=>Math.max(this.y,e.y),()=>Math.min(this.x2,e.x2)-Math.max(this.x,e.x),()=>Math.min(this.y2,e.y2)-Math.max(this.y,e.y))}isDefined(){return this.width>=0&&this.height>=0}flatten(){return new Vt(Lt(this.x),Lt(this.y),Lt(this.width),Lt(this.height))}containsPoint(e,n){return e>=this.x&&e<this.x2&&n>=this.y&&n<this.y2}normalizePoint(e,n){return{x:(e-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}`}};let dn=Vt;ad(dn,"ZERO",Vt.create(0,0,0,0));function gg(t,e,n){return n=(n-t)/(e-t),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}class Jn extends se{get identifier(){}handle(e){throw new Error("Source does not handle incoming data!")}async load(){}}function yg(t){var n,r;const e={...t.format};if((n=e.type)!=null||(e.type=kM(t)&&MM(t.url)),(r=e.parse)!=null||(e.parse="auto"),!e.type)throw new Error("Format for the data source was not defined and it could not be inferred: "+JSON.stringify(t));return e}function MM(t){var e;if(Array.isArray(t)&&(t=t[0]),t)return(e=t.match(/\.(csv|tsv|json)/))==null?void 0:e[1]}const ss=t=>typeof t!="object"?TM:IM,TM=t=>({data:t}),IM=t=>t;function kM(t){return"url"in t}function NM(t){return"dynamicCallbackSource"in t}class bg extends Jn{constructor(e){super(),this.callback=e}loadSynchronously(){if(!this.callback)return;const e=this.callback();if(!e||typeof e[Symbol.iterator]!="function")throw new Error("Dynamic data callback didn't return iterable data!");this.reset(),this.beginBatch({type:"file"});let n;for(const r of e)n||(n=ss(r)),this._propagate(n(r));this.complete()}async load(){this.loadSynchronously()}}const vg="chromosome_ticks_and_labels",Ag={x:"width",y:"height"};function Al(t){return t=="x"?"y":"x"}const xl={x:["bottom","top"],y:["left","right"]},xg=Object.fromEntries(Object.entries(xl).map(([t,e])=>e.map(n=>[n,t])).flat(1));function $n(t){return xg[t]}class wg extends Nt{constructor(e,n,r,i){const o=n=="locus",a={...o?OM:Cg,...BM(n,e),...e};if(super(o?PM(a):Sg(a),r,i,`axis_${e.orient}`),this.axisProps=a,this.axisUpdateRequested=!0,this._addBroadcastHandler("layout",()=>{this.axisUpdateRequested=!0}),this.previousScaleDomain=[],this.axisLength=void 0,this.ticks=[],this.tickSource=new bg(()=>this.ticks),o){const s=$n(this.axisProps.orient),c=this.getScaleResolution(s).getGenome();this.findChildByName(vg).getDynamicDataSource=()=>new bg(()=>c.chromosomes)}this.blockEncodingInheritance=!0}getOrient(){return this.axisProps.orient}getSize(){const e={px:this.getPerpendicularSize()},n={grow:1};return xg[this.axisProps.orient]=="x"?new Zn(n,e):new Zn(e,n)}getPerpendicularSize(){return wl(this.axisProps)}getDynamicDataSource(){return this.tickSource}_updateAxisData(){const e=$n(this.axisProps.orient),n=this.getScaleResolution(e).getScale(),r=n.domain();if(J0(r,this.previousScaleDomain)&&!this.axisUpdateRequested)return;this.previousScaleDomain=r;const i=this.ticks,o=LM(this.axisProps,n,this.axisLength,i);o!==i&&(this.ticks=o,this.tickSource.loadSynchronously()),this.axisUpdateRequested=!1}onBeforeRender(){super.onBeforeRender(),this._updateAxisData()}render(e,n,r={}){!this.isVisible()||(this.axisLength=n[Ag[$n(this.getOrient())]],super.render(e,n,r))}isPickingSupported(){return!1}}function wl(t){const e=$n(t.orient);let n=t.ticks&&t.tickSize||0;return t.labels&&(n+=t.labelPadding,e=="x"?n+=t.labelFontSize:n+=30),t.title&&(n+=t.titlePadding+t.titleFontSize),n=Math.min(t.maxExtent||1/0,Math.max(t.minExtent||0,n)),n}function LM(t,e,n,r=[]){const i=s=>25+60*gg(100,700,s);let o=ce(t.tickCount)?t.tickCount:Math.round(n/i(n));o=$m(e,o,t.tickMinStep);const a=t.values?eg(e,t.values,o):HD(e,o);if(ww(a,r,s=>s,s=>s.value))return r;{const s=VD(e,o,t.format);return a.map(c=>({value:c,label:s(c)}))}}const Cg={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 BM(t,e){var s;const n=e.orient,r=t=="nominal"||t=="ordinal";let i="center",o="middle",a=(s=e.labelAngle)!=null?s:(n=="top"||n=="bottom")&&r?-90:0;switch(n){case"left":i="right";break;case"right":i="left";break;case"top":case"bottom":Math.abs(a)>30?(i=a>0==(n=="bottom")?"left":"right",o="middle"):o=n=="top"?"alphabetic":"top";break}return{labelAlign:i,labelAngle:a,labelBaseline:o}}function Sg(t){const e={...t,extent:wl(t)},n=$n(e.orient),r=Al(n),i=e.orient=="bottom"||e.orient=="right"?1:-1,o=e.orient=="bottom"||e.orient=="left"?1:0,a=()=>({name:"domain",data:{values:[0]},mark:{type:"rule",clip:!1,strokeDash:e.domainDash,strokeCap:e.domainCap,color:e.domainColor,[r]:o,size:e.domainWidth}}),s=()=>({name:"labels",mark:{type:"text",clip:!1,align:e.labelAlign,angle:e.labelAngle,baseline:e.labelBaseline,[r+"Offset"]:(e.tickSize+e.labelPadding)*i,[r]:o,size:e.labelFontSize,color:e.labelColor,minBufferSize:1500},encoding:{[n]:{field:"value",type:"quantitative"},text:{field:"label"}}}),c=()=>({name:"ticks",mark:{type:"rule",clip:!1,strokeDash:e.tickDash,strokeCap:e.tickCap,color:e.tickColor,size:e.tickWidth,minBufferSize:300},encoding:{[r]:{value:o},[r+"2"]:{value:o-e.tickSize/e.extent*(o?1:-1)}}}),u=()=>({name:"title",data:{values:[0]},mark:{type:"text",clip:!1,align:"center",baseline:e.orient=="bottom"?"bottom":"top",angle:[0,90,0,-90][["top","right","bottom","left"].indexOf(e.orient)],text:e.title,color:e.titleColor,[n]:.5,[r]:1-o}}),f=()=>{const d={name:"ticks_and_labels",encoding:{[n]:{field:"value",type:"quantitative"}},layer:[]};return e.ticks&&d.layer.push(c()),e.labels&&d.layer.push(s()),d},l={[Ag[Al($n(e.orient))]]:e.extent,data:{dynamicCallbackSource:!0},layer:[]};return e.domain&&l.layer.push(a()),(e.ticks||e.labels)&&l.layer.push(f()),e.title&&l.layer.push(u()),l}const OM={...Cg,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 PM(t){const e={...t,extent:wl(t)},n=$n(e.orient),r=Al(n),i=e.orient=="bottom"||e.orient=="left"?1:0,o=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:t.chromTickDash,strokeDashOffset:t.chromTickDashOffset,[r]:i,[r+"2"]:i-e.chromTickSize/e.extent*(i?1:-1),color:t.chromTickColor,size:e.chromTickWidth}}),a=()=>{let u;switch(e.orient){case"top":u={y:0,angle:0,paddingX:4,dy:-e.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":u={y:1,angle:0,paddingX:4,dy:e.chromLabelPadding+e.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":u={x:1,angle:-90,paddingY:4,dy:-e.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":u={x:0,angle:90,align:"right",paddingY:4,dy:-e.chromLabelPadding};break;default:u={}}return{name:"chromosome_labels",mark:{type:"text",size:e.chromLabelFontSize,font:e.chromLabelFont,fontWeight:e.chromLabelFontWeight,fontStyle:e.chromLabelFontStyle,color:e.chromLabelColor,align:t.chromLabelAlign,baseline:"alphabetic",clip:!1,...u},encoding:{[n+"2"]:{field:"continuousEnd",type:"locus"},text:{field:"name"}}}};let s;switch(e.orient){case"bottom":case"top":s={};break;case"left":s={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":s={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:s={}}const c=Sg({...t,...s});if(t.chromTicks||t.chromLabels){const u={name:vg,data:{dynamicCallbackSource:!0},encoding:{[n]:{field:"continuousStart",type:"locus",band:0}},layer:[]};if(t.chromTicks&&u.layer.push(o()),t.chromLabels){u.layer.push(a());let f;c.layer.filter(l=>l.name=="ticks_and_labels").forEach(l=>l.layer.filter(d=>d.name=="labels").forEach(d=>{f=d.mark})),f&&(e.orient=="top"||e.orient=="bottom"?(f.viewportEdgeFadeWidthLeft=30,f.viewportEdgeFadeDistanceLeft=40):(f.viewportEdgeFadeWidthBottom=30,f.viewportEdgeFadeDistanceBottom=40))}c.layer.push(u)}return c}const Eg={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"},FM={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},zM={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},RM={start:0,middle:.5,end:1},jM={start:"left",middle:"center",end:"right"};function UM(t){var u,f,l;if(!t)return;const e=te(t)?{text:t}:t;if(!e.text||e.orient=="none")return;const n=(u={"track-title":FM,overlay:zM}[e.style])!=null?u:{},r={...Eg,...n,...e};let i={},o={x:0,y:0};const a=RM[(f=r.anchor)!=null?f:"middle"];switch(r.orient){case"top":o={x:a,y:1},i={baseline:"alphabetic",angle:0};break;case"right":o={x:1,y:1-a},i={baseline:"alphabetic",angle:90};break;case"bottom":o={x:a,y:0},i={baseline:"top",angle:0};break;case"left":o={x:0,y:a},i={baseline:"alphabetic",angle:-90};break}const s={...Eg,...i,...n,...e},c={xOffset:0,yOffset:0};switch(r.orient){case"top":c.yOffset=-s.offset;break;case"right":c.xOffset=s.offset;break;case"bottom":c.yOffset=s.offset;break;case"left":c.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...o,...c,text:s.text,align:(l=s.align)!=null?l:jM[s.anchor],angle:s.angle,baseline:s.baseline,dx:s.dx,dy:s.dy,color:s.color,font:s.font,size:s.fontSize,fontStyle:s.fontStyle,fontWeight:s.fontWeight}}}function Dg(t,e,n,r){if(t.type=="wheel"){t.uiEvent.preventDefault();const i=t.uiEvent,o=i.deltaMode?120:1;let{x:a,y:s}=t.point;if(r){const c=r.mark.encoders;c.x&&!c.x2&&(a=+c.x(r.datum)*e.width+e.x),c.y&&!c.y2&&(s=(1-+c.y(r.datum))*e.height+e.y)}Math.abs(i.deltaX)<Math.abs(i.deltaY)?n({x:a,y:s,xDelta:0,yDelta:0,zDelta:i.deltaY*o/300}):n({x:a,y:s,xDelta:-i.deltaX*o,yDelta:0,zDelta:0})}else if(t.type=="mousedown"&&t.uiEvent.button===0){const i=t.uiEvent;i.preventDefault();let o=i;const a=c=>{n({x:o.clientX,y:o.clientY,xDelta:c.clientX-o.clientX,yDelta:c.clientY-o.clientY,zDelta:0}),o=c},s=c=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",a,!1)}}class Mg extends Kn{constructor(n,r,i,o,a){var s;super(n,r,i,o);xe(this,Po);xe(this,Ct);xe(this,Hs);xe(this,Qs);xe(this,fr);xe(this,Fo);xe(this,zo);xe(this,Ro);xe(this,Vs);xe(this,ri,1/0);xe(this,ii,10);xe(this,et,[]);xe(this,oi,0);this.spec=n,ai(this,ii,(s=n.spacing)!=null?s:10),ai(this,ri,a),ai(this,et,[]),this.wrappingFacet=!1,this._createChildren()}_createChildren(){}appendChild(n){var r;(r=n.parent)!=null||(n.parent=this),ee(this,et).push(be(this,Po,ud).call(this,n)),J2(this,oi)._++}setChildren(n){for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=ee(this,et).findIndex(o=>o.view==n);if(i>=0)ee(this,et)[i]=be(this,Po,ud).call(this,r);else throw new Error("Not my child view!")}get children(){return ee(this,et).map(n=>n.view)}get childCount(){return ee(this,et).length}onScalesResolved(){super.onScalesResolved(),be(this,Qs,eb).call(this)}*[Symbol.iterator](){for(const n of ee(this,et)){n.background&&(yield n.background);for(const r of Object.values(n.axes))r&&(yield r);yield n.view,n.title&&(yield n.title)}}getOverhang(){const n=be(this,fr,Ho).call(this,"column"),r=be(this,fr,Ho).call(this,"row");return!n.length||!r.length?Je.zero():new Je(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)}getSize(){return this._cache("size",()=>new Zn(be(this,zo,fd).call(this,"column"),be(this,zo,fd).call(this,"row")).subtractPadding(this.getOverhang()).addPadding(this.getPadding()))}render(n,r,i={}){var u;if(!this.isVisible())return;r=r.shrink(this.getPadding()),n.pushView(this,r);const o={devicePixelRatio:this.context.glHelper.dpr},a=uo(be(this,Fo,ld).call(this,"column"),r.width,o),s=uo(be(this,Fo,ld).call(this,"row"),r.height,o),c=new mg(ee(this,Ct,xn).length,(u=ee(this,ri))!=null?u:1/0);for(const[f,l]of ee(this,Ct,xn).entries()){const{view:d,axes:h,background:p,title:m}=l,[y,g]=c.getCellCoords(f),x=a[be(this,Ro,dd).call(this,"column",y)],A=s[be(this,Ro,dd).call(this,"row",g)],C=d.getSize(),v=d.getPadding().subtract(d.getOverhang()),b=x.location+v.left,w=A.location+v.top,E=(C.width.grow?x.size:C.width.px)-v.width,I=(C.height.grow?A.size:C.height.px)-v.height,L=new dn(()=>r.x+b,()=>r.y+w,()=>E,()=>I);l.coords=L,p==null||p.render(n,L,i);const T=QM(d);T&&d.render(n,L,i);for(const[O,H]of Object.entries(h)){const U=H.axisProps;let Ae;const Ie=H.getPerpendicularSize();O=="bottom"?Ae=L.translate(0,L.height+U.offset).modify({height:Ie}):O=="top"?Ae=L.translate(0,-Ie-U.offset).modify({height:Ie}):O=="left"?Ae=L.translate(-Ie-U.offset,0).modify({width:Ie}):O=="right"&&(Ae=L.translate(L.width+U.offset,0).modify({width:Ie})),H.render(n,Ae)}T||d.render(n,L,i),m==null||m.render(n,L,{...i,clipRect:void 0})}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=ee(this,Ct,xn).find(o=>o.coords.containsPoint(n.point.x,n.point.y)),i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof ye||i instanceof Nt)&&Dg(n,r.coords,o=>be(this,Vs,tb).call(this,r.coords,r.view,o),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}ri=new WeakMap,ii=new WeakMap,et=new WeakMap,oi=new WeakMap,Po=new WeakSet,ud=function(n){var i;const r={view:n,background:void 0,axes:{},coords:dn.ZERO};if(n instanceof ye||n instanceof Nt){const o=(i=n.spec)==null?void 0:i.view;if((o==null?void 0:o.fill)||(o==null?void 0:o.stroke)){const s=new ye(GM(o),this.context,n,"background"+ee(this,oi));s.blockEncodingInheritance=!0,r.background=s}const a=UM(n.spec.title);if(a){const s=new ye(a,this.context,n,"title"+ee(this,oi));s.blockEncodingInheritance=!0,r.title=s}}return r},Ct=new WeakSet,xn=function(){return ee(this,et).filter(n=>n.view.isVisible())},Hs=new WeakSet,$2=function(){var n;return new mg(ee(this,Ct,xn).length,(n=ee(this,ri))!=null?n:1/0)},Qs=new WeakSet,eb=function(){if(Object.keys(this.resolutions.axis).length)throw new Error("ConcatView does not (currently) support shared axes!");for(const n of ee(this,et)){const{view:r,axes:i}=n,o=(a,s,c)=>{var f;const u=a.getAxisProps();if(u!==null){if(!u.orient){for(const l of xl[s])if(!i[l]){u.orient=l;break}if(!u.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if((f=u.title)!=null||(u.title=a.getTitle()),!xl[s].includes(u.orient))throw new Error(`Invalid axis orientation "${u.orient}" on channel "${s}"!`);if(i[u.orient])throw new Error(`An axis with the orient "${u.orient}" already exists!`);i[u.orient]=new wg(u,a.scaleResolution.type,this.context,c)}};if(r instanceof ye||r instanceof Nt)for(const a of["x","y"]){const s=r.resolutions.axis[a];!s||o(s,a,r)}if(r instanceof Nt){for(const a of r.children)for(const[s,c]of Object.entries(a.resolutions.axis)){const u=c.getAxisProps();u&&u.orient&&o(c,s,a)}for(const a of r.children)for(const[s,c]of Object.entries(a.resolutions.axis)){const u=c.getAxisProps();u&&!u.orient&&o(c,s,a)}}}},fr=new WeakSet,Ho=function(n){const r=n=="column"?["left","right"]:["top","bottom"],i=n=="column"?"width":"height",o=(a,s)=>a.map(c=>{const u=ee(this,Ct,xn)[c].axes[r[s]];if(u)return Math.max(u.getPerpendicularSize()+u.axisProps.offset,0);const f=ee(this,Ct,xn)[c].view.getOverhang();return n=="column"?s?f.right:f.left:s?f.bottom:f.top}).reduce((c,u)=>Math.max(c,u),0);return ee(this,Hs,$2)[n=="column"?"colIndices":"rowIndices"].map(a=>({axisBefore:o(a,0),axisAfter:o(a,1),view:ND(a.map(s=>ee(this,Ct,xn)[s].view.getSize()[i]))}))},Fo=new WeakSet,ld=function(n){const r=be(this,fr,Ho).call(this,n),i=[];i.push(lo);for(const[o,a]of r.entries())o>0&&i.push({px:ee(this,ii),grow:0}),(o==0||this.wrappingFacet)&&i.push(lo),i.push({px:a.axisBefore,grow:0}),i.push(a.view),i.push({px:a.axisAfter,grow:0}),(o==r.length-1||this.wrappingFacet)&&i.push(lo);return i},zo=new WeakSet,fd=function(n){var a,s;let r=0,i=0;const o=be(this,fr,Ho).call(this,n);for(const[c,u]of o.entries())c>0&&(i+=ee(this,ii)),(c==0||this.wrappingFacet)&&(i+=0),i+=u.axisBefore,i+=(a=u.view.px)!=null?a:0,r+=(s=u.view.grow)!=null?s:0,i+=u.axisAfter,(c==o.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},Ro=new WeakSet,dd=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},Vs=new WeakSet,tb=function(n,r,i){for(const[o,a]of Object.entries(HM(r))){if(a.size<=0)continue;const s=n.normalizePoint(i.x,i.y),c=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),u={x:c.x-s.x,y:c.y-s.y};for(const f of a)f.zoom(2**i.zDelta,o=="y"?1-s[o]:s[o],o=="x"?u.x:-u.y)}this.context.animator.requestRender()};function GM(t){return{configurableVisibility:!1,data:{values:[{}]},mark:{fill:null,strokeWidth:1,fillOpacity:t.fill?1:0,...t,type:"rect",clip:!1,tooltip:null}}}function HM(t){const e={x:new Set,y:new Set};return t.visit(n=>{for(const[r,i]of Object.entries(e)){const o=n.getScaleResolution(r);o&&o.isZoomable()&&i.add(o)}}),e}function QM(t){let e=!0;return t.visit(n=>{n instanceof ye&&e&&(e=n.mark.properties.clip)}),e}class Hr extends Mg{constructor(e,n,r,i){super(e,n,r,i,Dl(e)?e.columns:El(e)?1:1/0),this.spec=e}_createChildren(){const e=this.spec,n=Dl(e)?e.concat:El(e)?e.vconcat:e.hconcat;this.setChildren(n.map((r,i)=>this.context.createView(r,this,"grid"+i)))}}class VM{constructor(){this.types=[];const e=n=>(r,i,o,a)=>{var s;return new n(r,i,o,(s=r.name)!=null?s:a)};this.addViewType(YM,e(pg)),this.addViewType(Sl,e(Nt)),this.addViewType(Cl,e(ye)),this.addViewType(El,e(Hr)),this.addViewType(_M,e(Hr)),this.addViewType(Dl,e(Hr))}addViewType(e,n){this.types.push({specGuard:e,factory:n})}createView(e,n,r,i){const o=this.types.find(a=>a.specGuard(e));if(o)return o.factory(e,n,r,i!=null?i:"unnamed");throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(e)]))}isViewSpec(e){const n=this.types.filter(r=>r.specGuard(e));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}}function Cl(t){return"mark"in t&&(te(t.mark)||ze(t.mark))}function Sl(t){return"layer"in t&&ze(t.layer)}function Tg(t){return t&&(Cl(t)||Sl(t))&&"aggregateSamples"in t}function YM(t){return"import"in t}function El(t){return"vconcat"in t&&We(t.vconcat)}function _M(t){return"hconcat"in t&&We(t.hconcat)}function Dl(t){return"concat"in t&&We(t.concat)}const WM={point:yD,rect:fD,rule:AD,link:SD,text:kD};class ye extends Kn{constructor(e,n,r,i){super(e,n,r,i),this.spec=e;const o=WM[this.getMarkType()];if(o)this.mark=new o(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.sampleAggregateViews=[],this._initializeAggregateViews(),this.coords=void 0}*[Symbol.iterator](){for(const e of this.sampleAggregateViews)yield e}replaceChild(e,n){const r=this.sampleAggregateViews.indexOf(e);if(r>=0)this.sampleAggregateViews[r]=n;else throw new Error("Not my child view!")}render(e,n,r={}){!this.isVisible()||(this.coords=n,e.pushView(this,n),e.renderMark(this.mark,r),e.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(e){var r;const n=this.mark.encoding;for(const[i,o]of Object.entries(n)){if(!Ke(o))continue;let a=Ir((r=o.resolutionChannel)!=null?r:i);if(e=="axis"&&!Zi(a))continue;let s=this;for(;s.parent instanceof Kn&&["shared","excluded"].includes(s.parent.getConfiguredOrDefaultResolution(a,e))&&s.getConfiguredOrDefaultResolution(a,e)!="excluded";)s=s.parent;s.resolutions[e][a]||(s.resolutions[e][a]=e=="scale"?new wM(a):new DM(a)),Zi(i)?s.resolutions[e][a].pushUnitView(this,i):e=="scale"&&s.resolutions[e][a].pushUnitView(this,i)}}getAccessor(e){return this._cache("accessor/"+e,()=>{const n=this.mark.encoding;if(n&&n[e])return this.context.accessorFactory.createAccessor(n[e])})}getFacetAccessor(e){const n=this.getAccessor("sample");return n||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}_validateDomainQuery(e){if(qi(e))throw new Error(`getDomain(${e}), must only be called for primary channels!`);const n=this.mark.encoding[e];if(!Ke(n))throw new Error("The channel has no scale, cannot get domain!");return n}getConfiguredDomain(e){var i,o;const n=this._validateDomainQuery(e),r=n&&n.scale&&n.scale.domain;if(r){const a=this.getScaleResolution((i=n.resolutionChannel)!=null?i:e);return lg((o=n.type)!=null?o:"nominal",a.fromComplexInterval(r))}}extractDataDomain(e){var s;const r=(s=this._validateDomainQuery(e).type)!=null?s:"nominal",i=c=>{let u;const f=this.mark.encoding[c];if(f){const l=this.context.accessorFactory.createAccessor(f);if(l)if(u=lg(r),l.constant)u.extend(l({}));else{const d=this.getCollector();d!=null&&d.completed&&d.visitData(h=>u.extend(l(h)))}}return u};let o=i(e);const a=Tu[e];if(a){const c=i(a);c&&o.extendAll(c)}return o}getZoomLevel(){const e=n=>{var r,i;return(i=(r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())!=null?i:1};return Xi.map(e).reduce((n,r)=>n*r,1)}_initializeAggregateViews(){var e,n;if(Tg(this.spec))for(const r of this.spec.aggregateSamples){const i=(e=r.transform)!=null?e:[];i.length&&je(i).type!="collect"&&i.push({type:"collect"}),i.push({type:"mergeFacets"}),r.transform=i,r.encoding={...(n=r.encoding)!=null?n:{},sample:null};const o=this.context.createView(r,this,"summaryView");o.getFacetFields=a=>{},this.sampleAggregateViews.push(o)}}propagateInteractionEvent(e){e.target=this}getDefaultResolution(e,n){return e=="x"?"shared":"independent"}}function*Ml(t,e=[]){for(const[n,r]of t.entries())if(r instanceof Map)for(const i of Ml(r,[...e,n]))yield i;else yield[[...e,n],r]}class Qr extends se{constructor(e){super(),this.params=e!=null?e:{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new En([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(e){this._data.push(e)}beginBatch(e){mD(e)&&(this._data=[],this.facetBatches.set(qe(e.facetId),this._data))}complete(){var i,o;const e=(i=this.params)==null?void 0:i.sort,n=e?gd(e.field,e.order):void 0,r=a=>{n&&a.sort(n)};if((o=this.params.groupby)!=null&&o.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const a=this.params.groupby.map(c=>Z(c)),s=ui(this._data,...a);this.facetBatches.clear();for(const[c,u]of Ml(s))this.facetBatches.set(c,u)}for(const a of this.facetBatches.values())r(a);if(this.children.length)for(const[a,s]of this.facetBatches.entries()){if(a){const c={type:"facet",facetId:a};for(const u of this.children)u.beginBatch(c)}for(const c of s)this._propagate(c)}super.complete();for(const a of this.observers)a(this)}getData(){switch(this._checkStatus(),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const e=this.facetBatches;return{[Symbol.iterator]:function*(){for(const r of e.values())for(let i=0;i<r.length;i++)yield r[i]}}}}}visitData(e){this._checkStatus();for(const n of this.facetBatches.values())for(let r=0;r<n.length;r++)e(n[r])}getItemCount(){let e=0;for(const n of this.facetBatches.values())e+=n.length;return e}_checkStatus(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")}}class ho{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(e,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]=e,this.values[r]=n}pop(){if(this.length===0)return;const e=this.ids[0];if(this.length--,this.length>0){const n=this.ids[0]=this.ids[this.length],r=this.values[0]=this.values[this.length],i=this.length>>1;let o=0;for(;o<i;){let a=(o<<1)+1;const s=a+1;let c=this.ids[a],u=this.values[a];const f=this.values[s];if(s<this.length&&f<u&&(a=s,c=this.ids[s],u=f),u>=r)break;this.ids[o]=c,this.values[o]=u,o=a}this.ids[o]=n,this.values[o]=r}return e}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 XM extends se{get behavior(){return kt}constructor(e){super(),this.params=e,this.startAccessor=Z(e.start),this.endAccessor=Z(e.end),this.chromAccessor=e.chrom?Z(e.chrom):n=>{},this.weightAccessor=e.weight?Z(e.weight):n=>1,this.as={coverage:e.as||"coverage",start:e.asStart||e.start,end:e.asEnd||e.end,chrom:e.asChrom||e.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 ho}reset(){super.reset(),this.initialize()}initialize(){const e=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,o=this.endAccessor,a=this.chromAccessor,s=this.weightAccessor;let c,u,f,l=0,d;const h=this.ends;h.clear();const p=(y,g,x)=>{if(y==g)return;let A=!1;c&&(c[e]===x?(c[n]=g,A=!0):c[e]!=0&&this._propagate(c)),A||(c=this.createSegment(y,g,x,f))},m=()=>{let y;for(;(y=h.peekValue())!==void 0;)p(d,y,l),d=y,l-=h.pop();d=void 0,c&&(this._propagate(c),c=void 0)};this.handle=y=>{const g=i(y);let x;for(;(x=h.peekValue())!==void 0&&x<g;)p(d,x,l),d=x,l-=h.pop();if(r){let C=a(y);C!==u&&(m(),f=C,u=f)}d!==void 0&&p(d,g,l),d=g;const A=s(y);l+=A,h.push(A,o(y))},this.complete=()=>{m(),super.complete()}}}function ZM(t,e,n=0,r=t.length){const i=new ho,o=r-n;let a;for(a=0;a<e&&a<o;a++)i.push(a,t[n+a]);for(;a<o;a++){const u=t[n+a];u>=i.peekValue()&&(i.push(a,u),i.pop())}const s=[];let c;for(;(c=i.pop())!==void 0;)s.push(n+c);return s.reverse()}class qM{constructor(e,n=-1/0,r=1/0){this.maxSize=e,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(e,n,r=0){if(e>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const o=this._findSlot(e,n,i);return o>=0?o:this._findSlot(e,n,this.upperChildren[r])}else return r}else return-1}reserve(e,n){if(n-e<=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(e,n);if(r<0)return!1;const i=this.n++,o=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=e,this.lowerLimits[o]=n,this.upperLimits[o]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=o,!0}}class KM extends se{constructor(e,n){var i,o;if(super(),this.params=e,this._data=[],this.channel=(i=e.channel)!=null?i:"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=Z(this.params.pos),this.posBisector=Ko(this.posAccessor),this.scoreAccessor=Z(this.params.score),this.widthAccessor=Z(this.params.width),this.laneAccessor=this.params.lane?Z(this.params.lane):a=>0,this.padding=(o=this.params.padding)!=null?o: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",a=>this.schedule()),n._addBroadcastHandler("layoutComputed",()=>this.schedule())}complete(){const e=this.posAccessor;this._data.sort((n,r)=>e(n)-e(r)),this._scores=this._data.map(this.scoreAccessor);for(const n of new Set(this._data.map(this.laneAccessor)))this.reservationMaps.set(n,new qM(200));this.schedule(),super.complete()}_filterAndPropagate(){var a;super.reset();const e=this.resolution.getScale(),n=(a=this.resolution.members[0].view.coords)==null?void 0:a[this.channel=="x"?"width":"height"];if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=e.domain(),i=70,o=ZM(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of o){const c=this._data[s],u=e(this.posAccessor(c))*n,f=this.widthAccessor(c)/2+this.padding;this.reservationMaps.get(this.laneAccessor(c)).reserve(u-f,u+f)&&this._propagate(c)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(e){this._data.push(e)}}class JM extends se{constructor(e){super(),this.params=e,this.predicate=void 0}initialize(){this.predicate=Eu(this.params.expr,this.getGlobalObject())}handle(e){this.predicate(e)&&this._propagate(e)}}const $M="0".charCodeAt(0);function*e8(t,e=","){const n=e.charCodeAt(0);let r=0;for(let i=0;i<t.length;i++){const o=t.charCodeAt(i);o==n?(yield r,r=0):r=r*10+o-$M}yield r}class t8 extends se{get behavior(){return kt}constructor(e){var a,s;super();const n=Z((a=e.exons)!=null?a:"exons"),r=Z((s=e.start)!=null?s:"start"),[i,o]=e.as||["exonStart","exonEnd"];this.handle=c=>{let u=r(c),f=u,l=!0;const d=n(c);for(const h of e8(d)){if(l)f=u+h;else{u=f+h;const p=Object.assign({},c);p[i]=f,p[o]=u,this._propagate(p)}l=!l}}}}class n8 extends se{get behavior(){return kt}constructor(e){super();const n=qe(e.field).map(o=>Z(o)),r=qe(e.separator),i=qe(e.as||e.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(c=>!c(o)))return;const a=n.map((c,u)=>c(o).split(r[u]));r8(a,o);const s=a[0].length;for(let c=0;c<s;c++){const u=Object.assign({},o);for(let f=0;f<n.length;f++)u[i[f]]=a[f][c];this._propagate(u)}}}}function r8(t,e){const n=t.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(e))}class i8 extends se{get behavior(){return fn}constructor(e){super(),this.params=e,this.as=e.as,this.fn=void 0}initialize(){this.fn=Eu(this.params.expr,this.getGlobalObject())}handle(e){e[this.as]=this.fn(e),this._propagate(e)}}class Ig extends se{get behavior(){return fn}constructor(e,n){var p;super();const r=(p=e.channel)!=null?p:"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=Z(e.chrom),a=qe(e.pos).map(m=>Z(m)),s=qe(e.as);if(a.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const c=qe(e.offset);let u;if(c.length==0)u=new Array(a.length).fill(0);else if(c.length==1)u=new Array(a.length).fill(c[0]);else if(c.length==a.length)u=c;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(e.offset)}!`);const f=new Function("datum","chromOffset","posAccessors",s.map((m,y)=>`datum[${JSON.stringify(m)}] = chromOffset + +posAccessors[${y}](datum) - ${u[y]};`).join(`
1343
+ `));let l,d=0;const h=m=>{if(m!==l){if(d=i.cumulativeChromPositions.get(m),d===void 0)throw new Error("Unknown chromosome/contig: "+m);l=m}return d};this.handle=m=>{f(m,h(o(m)),a),this._propagate(m)}}}const kg={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 o8 extends se{get behavior(){return fn}constructor(e){super();const n=ul(kg),r=Z(e.field),i=e.as,o=e.fontSize;this.handle=a=>{const s=r(a);s!==void 0?a[i]=n.measureWidth(s,o):a[i]=0,this._propagate(a)}}}const a8=65536;class s8 extends se{get behavior(){return fn}constructor(e){super(),this.params=e}reset(){this.initialize()}initialize(){const e=this.params,n=e.as||"lane",r=ce(e.spacing)?e.spacing:1,i=Z(e.start),o=Z(e.end);if(!e.preference!=!e.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(e.preference){const a=new Float64Array(a8),s=Z(e.preference),c=e.preferredOrder;let u=1/0;this.handle=f=>{const l=i(f);l<u&&a.fill(-1/0),u=l;const d=c.indexOf(s(f));let h=-1;if(d>=0&&a[d]<l)h=d;else{const p=i(f);for(h=0;h<a.length&&!(a[h]<p);h++);if(h>=a.length)throw new Error("Out of lanes!")}a[h]=o(f)+r,f[n]=h,this._propagate(f)}}else{const a=new ho,s=new ho;let c=-1/0,u=0;this.handle=f=>{const l=i(f);for(;a.length&&(a.peekValue()<=l||l<c);){const h=a.pop();s.push(h,h)}c=l;let d=s.pop();d===void 0&&(d=u++),f[n]=d,this._propagate(f),a.push(d,o(f)+r)}}}}class c8 extends se{get behavior(){return kt}constructor(e){if(super(),e.as&&e.as.length!=e.fields.length)throw new Error('"fields" and "as" have unequal lengths!');const n=e.fields.map(i=>Z(i)),r=e.as?e.as:n.map(ae);this.handle=i=>{const o={};for(let a=0;a<n.length;a++)o[r[a]]=n[a](i);this._propagate(o)}}}class u8 extends se{get behavior(){return fn}constructor(e){super();const n=new RegExp(e.regex),r=typeof e.as=="string"?[e.as]:e.as,i=Z(e.field);this.handle=o=>{const a=i(o);if(te(a)){const s=a.match(n);if(s){if(s.length-1!=r.length)throw new Error('The number of RegEx groups and the length of "as" do not match!');for(let c=0;c<r.length;c++)o[r[c]]=s[c+1]}else if(e.skipInvalidInput)for(let c=0;c<r.length;c++)o[r[c]]=void 0;else throw new Error(`"${a}" does not match the given regex: ${n.toString()}`)}else if(!e.skipInvalidInput)throw new Error(`Trying to match a non-string field. Encountered type: ${typeof a}, field content: "${a}".`);this._propagate(o)}}}class l8 extends se{get behavior(){return kt}constructor(e){super();const n=qe(e.columnRegex).map(d=>new RegExp(d)),r=qe(e.asValue);if(n.length!=r.length)throw new Error('Lengths of "columnRegex" and "as" are not equal!');const i=e.skipRegex?new RegExp(e.skipRegex):void 0,o=e.asKey||"sample";let a,s,c;const u=d=>{var y;const h=Object.keys(d),p=new Map;for(const[g,x]of n.entries())for(const A of h){const C=(y=x.exec(A))==null?void 0:y[1];if(C!==void 0){let v=p.get(C);v||(v=[],p.set(C,v)),v[g]=A}}a=[...p.entries()],s=h.filter(g=>!n.some(x=>x.test(g))&&!(i&&i.test(g)));const m=[...s.map(g=>JSON.stringify(g)+": datum["+JSON.stringify(g)+"]"),JSON.stringify(o)+": sampleId",...r.map(g=>JSON.stringify(g)+": null")];c=new Function("datum","sampleId",`return {
1344
1344
  `+m.join(`,
1345
1345
  `)+`
1346
- };`)},f=d=>{a||u(d);for(const[h,p]of a){const m=c(d,h);for(let y=0;y<p.length;y++)m[r[y]]=d[p[y]];this._propagate(m)}},l=d=>{u(d),f(d),this.handle=f};this.handle=l,this.beginBatch=d=>{Gm(d)&&(this.handle=l),super.beginBatch(d)}}}class s8 extends se{get behavior(){return fn}constructor(e){super(),this.params=e,this.buffer=[]}reset(){this.buffer=[]}handle(e){this.buffer.push(e)}complete(){var f;const e=this.params,n=e.as||["y0","y1"],r=e.sort?fd(e.sort.field,e.sort.order):void 0,i=e.field?Z(e.field):()=>1,o=e.groupby.map(l=>Z(l)),a=Gb(this.buffer,l=>o.map(d=>d(l)).join()).map(l=>l[1]);let s=l=>!0;if(e.baseField){const l=Z(e.baseField);s=d=>l(d)!==null}let c,u;switch(e.offset){case"normalize":c=(l,d)=>l/d,u=(l,d)=>$o(l,d);break;case"center":c=(l,d)=>l-d/2,u=(l,d)=>$o(l,d);break;case"information":{const l=Math.log2((f=e.cardinality)!=null?f:4);c=(d,h)=>d/h,u=(d,h)=>{const m=$o(d,A=>+!s(A)),y=$o(d,h),g=y-m;let x=0;for(let A=0;A<d.length;A++){const C=d[A];if(s(C)){const v=h(C)/g;x-=v*Math.log2(v)}}return g/(l-(x+0))*(g/y)}}break;default:c=(l,d)=>l,u=(l,d)=>1}for(const l of a){r&&l.sort(r);const d=u(l,i);let h=0;for(const p of l){const m=h+i(p);s(p)&&(p[n[0]]=c(h,d),p[n[1]]=c(m,d),this._propagate(p),h=m)}}super.complete()}}class c8 extends se{get behavior(){return kt}constructor(e){var o,a;super();const n=Z((o=e.field)!=null?o:"sequence"),[r,i]=(a=e.as)!=null?a:["pos","sequence"];this.handle=s=>{const c=Object.assign({},s,{[i]:"",[r]:0}),u=n(s);for(let f=0;f<u.length;f++){const l=Object.assign({},c);l[r]=f,l[i]=u.charAt(f),this._propagate(l)}}}}class u8 extends se{get behavior(){return kt}constructor(e){super(),this.params=e,this.buffer=[]}reset(){this.buffer=[]}handle(e){this.buffer.push(e)}complete(){const n=this.params.groupby,r=n.map(o=>Z(o)),i=ci(this.buffer,...r);for(const[o,a]of El(i)){const s={count:a.length};for(let c=0;c<n.length;c++)s[n[c]]=o[c];this._propagate(s)}super.complete()}}const l8="_uniqueId",Dg=1e4,Mg=[null];class Tg extends se{get behavior(){return fn}constructor(e){var n;super(),this.params=e,this.as=(n=e.as)!=null?n:l8,this._blocks=[],this._usedBlocks=0,this._id=-1}initialize(){}reset(){super.reset(),this._usedBlocks=0,this._id=-1}handle(e){e[this.as]=this._nextId(),this._propagate(e)}_nextId(){return++this._id%Dg==0&&(this._id=this._getBlock()*Dg),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const e=Mg.length;return Mg[e]=this,this._blocks.push(e),this._usedBlocks++,e}}const Ig={aggregate:u8,collect:Qr,coverage:VM,filterScoredLabels:WM,filter:XM,flattenCompressedExons:KM,flattenDelimited:JM,flattenSequence:c8,formula:e8,identifier:Tg,linearizeGenomicCoordinate:Sg,measureText:t8,pileup:r8,project:i8,regexExtract:o8,regexFold:a8,sample:Hm,stack:s8};function f8(t,e){const n=Ig[t.type];if(n)return new n(t,e);throw new Error("Unknown transform: "+t.type)}function d8(t){return"values"in t}class h8 extends Jn{constructor(e){var n;if(super(),this.params=e,typeof e.values=="string"&&!((n=e==null?void 0:e.format)!=null&&n.type))throw new Error("Data format type (csv, dsv, ...) must be specified if a string is provided!")}loadSynchronously(){const e=this.params.values;let n=[],r=i=>i;if(Array.isArray(e))e.length>0&&(n=e,r=as(e[0]));else if(typeof e=="object")n=[e];else if(typeof e=="string")n=mh(e,dg(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 p8(t){return"url"in t}class m8 extends Jn{constructor(e,n){super(),this.params=e,this.baseUrl=n}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const e=this.params.url,n=Array.isArray(e)?e:[e],r=async o=>Ci({baseURL:this.baseUrl}).load(o).catch(a=>{throw new Error(`Cannot fetch: ${this.baseUrl}${o}: ${a.message}`)}),i=(o,a)=>{try{const s=mh(o,dg(this.params));this.beginBatch({type:"file",url:a});for(const c of s)this._propagate(c)}catch(s){throw new Error(`Cannot parse: ${a}: ${s.message}`)}};this.reset(),await Promise.all(n.map(o=>r(o).then(i))),this.complete()}}function g8(t){return"sequence"in t}class y8 extends Jn{constructor(e){if(super(),this.sequence=e.sequence,!("start"in this.sequence))throw new Error("'start' is missing from sequence parameters!");if(!("stop"in this.sequence))throw new Error("'stop' is missing from sequence parameters!")}loadSynchronously(){const e=this.sequence.as||"data",n=this.sequence.step||1,r=this.sequence.stop;this.reset(),this.beginBatch({type:"file"});for(let i=this.sequence.start;i<r;i+=n)this._propagate({[e]:i});this.complete()}async load(){this.loadSynchronously()}}function b8(t){return"dynamicSource"in t}class v8 extends Jn{publishData(e){this.reset(),this.beginBatch({type:"file"});let n;for(const r of e)n||(n=as(r)),this._propagate(n(r));this.complete()}async load(){}}function kg(t,e){if(d8(t))return new h8(t);if(p8(t))return new m8(t,e);if(g8(t))return new y8(t);if(b8(t))return new v8;throw new Error("Cannot figure out the data source type: "+JSON.stringify(t))}function A8(t){const e=Object.keys(t).filter(r=>typeof r=="string"),n=new Function("source","return { "+e.map(r=>JSON.stringify(r)).map(r=>`${r}: source[${r}]`).join(`,
1347
- `)+" };");return n.properties=e,n}class Ng extends se{get behavior(){return kt}constructor(){super();const e=n=>{const r=A8(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=e,this.beginBatch=n=>{Gm(n)&&(this.handle=e),super.beginBatch(n)}}}class Lg{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(e,n){let r=this._observers.get(n);r||(r=[],this._observers.set(n,r)),r.push(e)}_relayObserverCallback(e,n){const r=this._observers.get(n);if(r)for(const i of r)i(e)}addDataSource(e,n){this._dataSourcesByHost.set(n,e)}findDataSourceByKey(e){return this._dataSourcesByHost.get(e)}addCollector(e,n){this._collectorsByHost.set(n,e),e.observers.push(r=>this._relayObserverCallback(r,n))}findCollectorByKey(e){return this._collectorsByHost.get(e)}initialize(){for(const e of this.dataSources)e.visit(n=>n.initialize())}}function x8(t){return"name"in t}class w8 extends Jn{constructor(e,n){super(),this.getNamedData=n,this.params=e}get identifier(){return this.params.name}_getValues(){const e=this.getNamedData(this.params.name);if(e)return e;throw new Error("Cannot find named data: "+this.params.name)}loadSynchronously(){const e=this._getValues();let n=r=>r;if(Array.isArray(e))e.length>0&&(n=as(e[0]));else throw new Error(`Named data "${this.params.name}" is not an array!`);this.reset(),this.beginBatch({type:"file"});for(const r of e)this._propagate(n(r));this.complete()}async load(){this.loadSynchronously()}}function Bg(t,e){const n=[];let r;const i=e!=null?e:new Lg,o=[];function a(f,l=()=>{}){if(!r)throw l()||new Error("Cannot append data flow node, no parent exist!");return r.addChild(f),r=f,f}function s(f,l){return a(f,()=>new Error(`Cannot append a transform because no (inherited) data are available! ${l?JSON.stringify(l):""}`))}function c(f,l){for(const d of f){let h;try{h=f8(d,l)}catch(p){throw console.warn(p),new Error(`Cannot initialize "${d.type}" transform: ${p}`)}h.behavior&fn&&s(new Ng),s(h)}}const u=f=>{if(n.push(r),f.spec.data){const l=MM(f.spec.data)?f.getDynamicDataSource():x8(f.spec.data)?new w8(f.spec.data,f.context.getNamedData):kg(f.spec.data,f.getBaseUrl());r=l,i.addDataSource(l,f)}if(f.spec.transform&&c(f.spec.transform,f),f instanceof ye){if(!r)throw new Error("A unit view has no (inherited) data source");const l=C8(f);if(l){o.push(l.rewrite);for(const h of l.transforms)s(h)}f.mark.isPickingParticipant()&&s(new Tg({type:"identifier"}));const d=new Qr({type:"collect",groupby:f.getFacetFields(),sort:S8(f,l==null?void 0:l.rewrittenEncoding)});a(d),i.addCollector(d,f)}Cg(f.spec)};return u.postOrder=f=>{r=n.pop()},t.visit(u),o.forEach(f=>f()),i}function C8(t){var o,a,s,c;const e=[],n={},r=[];for(const[u,f]of Object.entries(t.getEncoding())){const l=u;Xi(l)&&sp(f)&&r.push({channel:l,chromPosDef:f})}const i=ci(r,u=>Ir(u.channel),u=>u.chromPosDef.chrom);for(const[u,f]of i.entries())for(const[l,d]of f.entries()){const h=[],p=[],m=[];for(const{channel:y,chromPosDef:g}of d){const x=v=>v.replace(/[^A-Za-z0-9_]/g,""),A=["_linearized_",x(g.chrom),"_",x(g.pos)].join(""),C={...(s=(a=(o=t.spec.encoding)==null?void 0:o[y])!=null?a:t.getEncoding()[y])!=null?s:{},field:A};delete C.chrom,delete C.pos,!C.type&&g.type&&(C.type=g.type),n[y]=C,h.push(g.pos),m.push((c=g.offset)!=null?c:0),p.push(A)}e.push(new Sg({type:"linearizeGenomicCoordinate",channel:u,chrom:l,pos:h,offset:m,as:p},t))}return e.length?{transforms:e,rewrittenEncoding:n,rewrite:()=>{t.spec.encoding={...t.spec.encoding,...n},Bm(t.mark,"encoding")}}:void 0}function S8(t,e){var r;const n={...t.getEncoding(),...e}.x;if(Ke(n)&&(r=t.getScaleResolution("x"))!=null&&r.isZoomable()){if(Qn(n))return{field:n.field};if(!_i(n))throw new Error("A zoomable x channel must be mapped to a field.")}}function E8(t,...e){let n=t;for(const o of e)n.addChild(o),n=o;let r;n instanceof Qr?r=n:(r=new Qr,n.addChild(r));let i;return t instanceof Jn?i=async()=>(await t.load(),r.getData()):i=async()=>{throw new Error("The root node is not derived from DataSource!")},{dataSource:t,collector:r,loadAndCollect:i}}function Og(t,e=void 0){if(t.parent!==e)return!1;for(const n of t.children)if(!Og(n,t))return!1;return!0}function Dl(t,e=!1){if(t instanceof Qr&&(e=!0),t instanceof Ng)if(e)e=!1;else{const n=t.children[0];t.excise(),n&&Dl(n,e);return}t.behavior&kt&&(e=!1);for(let n=0,r=t.children.length;n<r;n++)Dl(t.children[n],e||n<r-1)}function D8(t){const e=[...t._dataSourcesByHost.entries()],n=new Map;for(const r of e){const i=r[1];i.identifier&&!n.has(i.identifier)&&n.set(i.identifier,i)}t._dataSourcesByHost.clear();for(let[r,i]of e){const o=n.get(i.identifier);o&&(o.adoptChildrenOf(i),i=o),t.addDataSource(i,r)}}function M8(t){if(Dl(t),!Og(t))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function T8(t){for(const e of t.dataSources)M8(e);D8(t)}function Pg(t){t.visit(n=>{n instanceof ye&&n.resolve("scale")});const e=new Set;t.visit(n=>{for(const r of Object.values(n.resolutions.scale)){const i=r.name;if(i&&e.has(i))throw new Error(`The same scale name "${i}" occurs in multiple scale resolutions!`);e.add(i)}}),t.visit(n=>{n instanceof ye&&n.resolve("axis")}),t.visit(n=>n.onScalesResolved())}function I8(t){for(const e of Wi){const n=t.getScaleResolution(e);n&&!n.name&&n.isZoomable()&&(n.name=`${e}_at_root`)}}function k8(t){const e=[];return t.visit(n=>{if(n instanceof ye){const r=n.getEncoding();for(const[i,o]of Object.entries(r))Qn(o)&&"type"in o&&e.push({view:n,channel:i,field:o.field,type:o.type});return is}}),e}async function N8(t,e,n){var a;if(!t.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(t));const r=Ci({baseURL:e}),i=t.import.url,o=JSON.parse(await r.load(i).catch(s=>{throw new Error(`Could not load imported view spec: ${i}
1348
- Reason: ${s.message}`)}));if(n.isViewSpec(o))return o.baseUrl=(a=i.match(/^[^?#]*\//))==null?void 0:a[0],o;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(t)}`)}async function Fg(t){const e=[];t.visit(n=>{if(n instanceof ug)return e.push(n),is});for(const n of e){const r=n.context,i=await N8(n.spec,n.getBaseUrl(),r),o=r.createView(i,n.parent,n.name);n.parent.replaceChild(n,o),await Fg(o)}}function zg(t){const e=[];return t.visit(n=>{e.push(n)}),new Set([...Hb(e,n=>n.length,n=>n.name)].filter(([n,r])=>r==1&&n!==void 0).map(([n,r])=>n))}const L8=t=>!/^(layer|concat)\d+$/.test(t);class Rg{constructor(e){this.globalOptions=e}pushView(e,n){}popView(e){}renderMark(e,n){}}class jg extends Rg{constructor(e,n){super(e),this.webGLHelper=n,this.buffer=[],this.coords=void 0,this.views=new Set}pushView(e,n){this.views.add(e),this.coords=n}renderMark(e,n){if(this.globalOptions.picking&&!e.isPickingParticipant())return;const r=e.render(n);r&&this.buffer.push({mark:e,callback:r,coords:this.coords,clipRect:n.clipRect})}renderDeferred(){if(this.batch||this._buildBatch(),this.batch.length==0)return;const e=this.webGLHelper.gl,n=this.globalOptions.picking;e.bindFramebuffer(e.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&&e.bindFramebuffer(e.FRAMEBUFFER,null)}_buildBatch(){this.batch=[];let e=!0,n=!0;const r=a=>()=>{e&&a()},i=a=>()=>{e&&n&&a()},o=ci(this.buffer,a=>a.mark);for(const[a,s]of o.entries()){if(!a.isReady())continue;this.batch.push(()=>{e=a.unitView.getEffectiveOpacity()>0}),this.batch.push(...a.prepareRender(this.globalOptions).map(u=>r(u)));let c;for(const u of s){const f=u.coords;f.equals(c)||this.batch.push(r(()=>{n=a.setViewport(f,u.clipRect)})),this.batch.push(i(u.callback)),c=u.coords}}}}class B8 extends Rg{constructor(...e){super({}),this.contexts=e}pushView(e,n){for(const r of this.contexts)r.pushView(e,n)}popView(e){for(const n of this.contexts)n.popView(e)}renderMark(e,n){for(const r of this.contexts)r.renderMark(e,n)}}class O8{constructor(e,n){this.point=e,this.uiEvent=n,this.stopped=!1,this.target=void 0}stopPropagation(){this.stopped=!0}get type(){return this.uiEvent.type}}class P8{constructor(e,n){this.x=e,this.y=n}equals(e){return e?e===this||e.x===this.x&&e.y===this.y:!1}}const F8=t=>new Promise(e=>setTimeout(e,t));function ss(t){const e=t.requestAnimationFrame||window.requestAnimationFrame,n=t.signal,r=()=>new Promise((i,o)=>{if(n!=null&&n.aborted)return o("aborted");const a=performance.now(),s=a+(t.duration||1e3),c=typeof t.from=="number"?t.from:0,u=typeof t.to=="number"?t.to:1,f=t.easingFunction||(m=>m),l=m=>(m-a)/(s-a),d=m=>m*(u-c)+c,h=m=>Math.max(0,Math.min(1,m)),p=m=>{n!=null&&n.aborted?o("aborted"):(t.onUpdate(d(f(h(l(m))))),m<s?e(p):(t.onUpdate(d(f(1))),i()))};e(p)});return t.delay?n!=null&&n.aborted?Promise.reject("aborted"):F8(t.delay).then(r):r()}class z8{constructor(e){this._renderCallback=e,this._renderRequested=!1,this._warn=!1,this.transitions=[]}requestTransition(e){this.cancelTransition(e),this.transitions.push(e),this.requestRender()}cancelTransition(e){const n=this.transitions.indexOf(e);n>=0&&this.transitions.splice(n,1)}requestRender(){this._renderRequested?this._warn&&console.warn("Render already requested!"):(this._renderRequested=!0,window.requestAnimationFrame(e=>{this._renderRequested=!1;const n=this.transitions;this.transitions=[];let r;for(;r=n.shift();)r(e);this._renderCallback(e)}))}transition(e){return ss({requestAnimationFrame:n=>this.requestTransition(n),...e})}}function Ug(){const t=e=>e;return t.invert=e=>e,t.copy=Ug,t.invertRange=()=>{},t}class R8{constructor(e){this.genomes=new Map,this.genomeSpy=e}async initialize(e){const n=new uM(e);return this.genomes.set(n.name,n),Promise.all([...this.genomes.values()].map(r=>r.load(this.genomeSpy.spec.baseUrl)))}getGenome(e){if(!this.genomes.size)throw new Error("No genomes have been configured!");if(e){const n=this.genomes.get(e);if(!n)throw new Error(`No genome with the name ${e} 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 j8="data:image/png;base64,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",U8={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class G8{constructor(e){this._webGLHelper=e,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new En([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:sl(Eg),texture:this._createTextureNow(j8)}}async waitUntilReady(){await Promise.all(this._promises)}getFont(e,n="normal",r="regular"){if(ee(r)&&(r=U8[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:e,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(e,n){try{const r=await this._loadMetadata(n.family),i=Q8(r,n),o=this.fontRepository+Gg(n.family)+"/"+i.replace(/\.\w+/,""),a=this._createTexture(o+".png"),s=this._loadFont(o+".json");e.texture=await a,e.metrics=await s}catch(r){console.log("Cannot load font. Using default.",r),e.metrics=this._defaultFontEntry.metrics,e.texture=this._defaultFontEntry.texture}}_loadFont(e){let n=this._fontPromises.get(e);return n||(n=fetch(e).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>sl(r)),this._fontPromises.set(e,n)),n}_loadMetadata(e){const n=Gg(e);let r=this._metadataPromises.get(n);return r||(r=fetch(this.fontRepository+n+"/METADATA.pb").then(i=>{if(!i.ok)throw new Error("Could not load font metadata: "+i.status);return i}).then(i=>i.text()).then(i=>H8(i)).catch(i=>{console.warn(i)}),this._metadataPromises.set(n,r)),r}getDefaultFont(){return this._defaultFontEntry}_createTexture(e){const n=this._webGLHelper.gl;return new Promise((r,i)=>{to(n,{src:e,min:n.LINEAR},(o,a,s)=>{o?i(o):r(a)})})}_createTextureNow(e){const n=this._webGLHelper.gl;let r;const i=new Promise((o,a)=>{r=to(n,{src:e,min:n.LINEAR},(s,c,u)=>{s?a(s):o(c)})});return this._promises.push(i),r}}function Gg(t){return t.toLowerCase().replaceAll(/[^\w]/g,"")}function H8(t){const e=t.split(`
1349
- `),n=[];let r;for(const i of e)if(i.startsWith("fonts {")&&(r={name:void 0,style:void 0,weight:void 0,filename:void 0,post_script_name:void 0,full_name:void 0,copyright:void 0}),i.startsWith("}")&&(n.push(r),r=void 0),r){let o=i.match(/^\s*([A-Za-z_]+):[ ]?"(.*)"$/);if(o){const a=o[1];r[a]=o[2]}if(o=i.match(/^\s*([A-Za-z_]+):[ ]?(\d+)$/),o){const a=o[1];r[a]=+o[2]}}return n}function Q8(t,e){let n,r=Number.POSITIVE_INFINITY;for(const i of t)if(e.family.localeCompare(i.name,void 0,{sensitivity:"accent"})==0&&e.style==i.style){const o=Math.abs(e.weight-i.weight);o<r&&(r=o,n=i)}return n==null?void 0:n.filename}function V8(t,e){const n=[];let r;for(const i of t.split(`
1350
- `))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 Y8{constructor(e,n){this.animator=e,this.disabled=!!n,this.damping=.015,this.acceleration=.3,this.accelerationThreshold=100,this.lowerLimit=.5,this.loop=!1,this.momentum=0,this.timestamp=0,this.callback=null,this._transitionCallback=this.animate.bind(this),this.clear()}clear(){this.momentum=0,this.timestamp=null,this.loop=null,this.callback=null}cancel(){this.loop&&(this.animator.cancelTransition(this._transitionCallback),this.clear())}setMomentum(e,n){if(this.disabled){n(e);return}e*this.momentum<0?this.momentum=0:Math.abs(e)>this.accelerationThreshold?this.momentum=yb([this.momentum,e],this.acceleration):this.momentum=e,this.callback=n,this.loop||this.animate()}animate(e){this.callback(this.momentum);const n=e-this.timestamp||0;this.timestamp=e;const r=Math.abs(this.momentum);this.momentum=Math.sign(this.momentum)*Math.max(0,r-((r*this.damping)**1.5+.04)*n),Math.abs(this.momentum)>this.lowerLimit?(this.loop=!0,this.animator.requestTransition(this._transitionCallback)):this.clear()}}function _8(t){const e={},n=["string","number","boolean"],r=["wheelDelta","wheelDeltaX","wheelDeltaY"];for(const i in t){const o=i;!r.includes(i)&&n.includes(typeof t[o])&&(e[o]=t[o])}return e}function cs(t,e,n=!0){let r,i=a=>{};return function(...s){return new Promise((c,u)=>{const f=()=>{clearTimeout(r),i=l=>{},c(t(...s))};n&&i("debounced"),clearTimeout(r),i=u,r=setTimeout(f,e)})}}const Hg=new Map;async function W8(t,e,n){var o;const r=t.symbol;let i=(o=Hg.get(r))!=null?o:await q8(t.symbol);return i?(Hg.set(r,i),D`<div class="title"><strong>${i.name}</strong> ${i.description}</div><p class="summary">${i.summary}</p><p class="source">Source: NCBI RefSeq Gene</p>`):null}async function X8(t){console.log("Searching: "+t);const e={mode:"cors"},r=(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=gene&term=${t}[GENE]&sort=relevance&retmode=json`,e).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`,e).then(a=>a.json())).result[r]:null}const Z8=cs(X8,500);function q8(t){return Z8(t)}const K8=le(".4~r"),J8=le(".4~e");function Qg(t){return t===null?D`<span class="na">NA</span>`:ee(t)?t.substring(0,30):Number.isInteger(t)?""+t:ce(t)?Math.abs(t)>Math.pow(10,8)||Math.abs(t)<Math.pow(10,-8)?J8(t):K8(t):_o(t)?t?"True":"False":"?"+typeof t+" "+t}async function $8(t,e,n){const r=(s,c)=>{var u;for(const[f,l]of Object.entries(e.encoders))if((u=l==null?void 0:l.accessor)!=null&&u.fields.includes(s))switch(f){case"color":case"fill":case"stroke":return D`<span class="color-legend" style="${`background-color: ${l(c)}`}"></span>`}return""},i=D`<table class="attributes">${Object.entries(t).filter(([s,c])=>!s.startsWith("_")).map(([s,c])=>D`<tr><th>${s}</th><td>${Qg(c)} ${r(s,t)}</td></tr>`)}</table>`,o=e.unitView.getTitleText(),a=o?D`<div class="title"><strong>${o}</strong></div>`:"";return D`${a}${i}`}class e5 extends wg{constructor(e,n){super({vconcat:[]},e,void 0,"implicitRoot",1),n.parent=this,this.appendChild(n)}}W("index",Ic,["continuous"]),W("locus",QA,["continuous"]),W("null",Ug,[]),ph("fasta",V8);class Vg{constructor(e,n,r={}){var i;this.container=e,this.spec=n,this.accessorFactory=new U4,this.viewFactory=new UM,this.namedDataProviders=[],this.animator=new z8(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=o=>o.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new Y8(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this.tooltipHandlers={default:$8,refseqgene:W8,...(i=r.tooltipHandlers)!=null?i:{}},this.viewRoot=void 0}registerNamedDataProvider(e){this.namedDataProviders.unshift(e)}getNamedData(e){for(const n of this.namedDataProviders){const r=n(e);if(r)return r}}broadcast(e,n){const r={type:e,payload:n};this.viewRoot.visit(i=>i.handleBroadcast(r))}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new eD(this.container,()=>{if(this.viewRoot){const e=this.viewRoot.getSize().addPadding(this.viewRoot.getOverhang()),n=r=>r.grow>0?void 0:r.px;return{width:n(e.width),height:n(e.height)}}}),this.loadingMessageElement=document.createElement("div"),this.loadingMessageElement.className="loading-message",this.loadingMessageElement.innerHTML='<div class="message">Loading<span class="ellipsis">...</span></div>',this.container.appendChild(this.loadingMessageElement),this.tooltip=new vw(this.container),this.loadingMessageElement.querySelector(".message").addEventListener("transitionend",()=>{this.loadingMessageElement.style.display="none"})}destroy(){this.container.classList.remove("genome-spy"),this.container.classList.remove("loading");for(const[e,n]of this._keyboardListeners)for(const r of n)document.removeEventListener(e,r);for(this._glHelper.finalize();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new R8(this),await this.genomeStore.initialize(this.spec.genome));const e=this,n={dataFlow:new Lg,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new G8(this._glHelper),requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedData:this.getNamedData.bind(this),getCurrentHover:()=>this._currentHover,addKeyboardListener:(s,c)=>{document.addEventListener(s,c);let u=this._keyboardListeners.get(s);u||(u=[],this._keyboardListeners.set(s,u)),u.push(c)},isViewVisible:e.viewVisibilityPredicate,isViewSpec:s=>e.viewFactory.isViewSpec(s),createView:function(s,c,u){return e.viewFactory.createView(s,n,c,u)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(s=>r.datasets[s]),this.viewRoot=n.createView(r,null,"viewRoot"),await Fg(this.viewRoot),(this.viewRoot instanceof ye||this.viewRoot instanceof Nt)&&(this.viewRoot=new e5(n,this.viewRoot)),Pg(this.viewRoot),I8(this.viewRoot),this._glHelper.invalidateSize();const i=[];this.viewRoot.visit(s=>{s instanceof ye&&i.push(s)});const o=Bg(this.viewRoot,n.dataFlow);T8(o),this.broadcast("dataFlowBuilt",o),o.dataSources.forEach(s=>console.log(s.subtreeToString())),i.forEach(s=>s.mark.initializeEncoders());const a=Promise.all(i.map(s=>s.mark.initializeGraphics()));for(const s of i)o.addObserver(c=>{s.mark.initializeData(),s.mark.updateGraphicsData()},s);await n.fontManager.waitUntilReady(),o.initialize(),await Promise.all(o.dataSources.map(s=>s.load())),this.viewRoot.visit(s=>{for(const c of Object.values(s.resolutions.scale))c.reconfigure()}),this.broadcast("dataLoaded"),await a,this.viewRoot.visit(s=>{for(const c of Object.values(s.resolutions.scale))this._glHelper.createRangeTexture(c)});for(const s of i)s.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(s=>io(s,"size")),this._glHelper.invalidateSize()}async launch(){try{return this._prepareContainer(),await this._prepareViewsAndData(),this.registerMouseEvents(),this.computeLayout(),this.animator.requestRender(),this._glHelper.addEventListener("resize",()=>{this.computeLayout(),this.renderAll()}),!0}catch(e){const n=`${e.view?`At "${e.view.getPathString()}": `:""}${e.toString()}`;return console.error(e.stack),t5(this.container,n),!1}finally{this.container.classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const e=this._glHelper.canvas,n=r=>{var i;if(r instanceof MouseEvent){r.type=="mousemove"&&(this.tooltip.handleMouseMove(r),this._tooltipUpdateRequested=!1,r.buttons==0&&this.renderPickingFramebuffer());const o=e.getBoundingClientRect(),a=new P8(r.clientX-o.left-e.clientLeft,r.clientY-o.top-e.clientTop),s=c=>{this.viewRoot.propagateInteractionEvent(new O8(a,c)),this._tooltipUpdateRequested||this.tooltip.clear()};if(r.type!="wheel"&&this._wheelInertia.cancel(),r.type=="mousemove")this._handlePicking(a.x,a.y);else if(r.type=="mousedown"||r.type=="mouseup")this.renderPickingFramebuffer();else if(r.type=="wheel"){this._tooltipUpdateRequested=!1;const c=r;if(Math.abs(c.deltaX)>Math.abs(c.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const u=_8(c);this._wheelInertia.setMomentum(c.deltaY*(c.deltaMode?80:1),f=>{const l=new WheelEvent("wheel",{...u,deltaMode:0,deltaX:0,deltaY:f});s(l)}),c.preventDefault();return}}if(r.type=="click"){const c=this._currentHover?{type:r.type,viewPath:[...this._currentHover.mark.unitView.getAncestors()].map(u=>u.name).reverse(),datum:this._currentHover.datum}:{type:r.type,viewPath:null,datum:null};(i=this._eventListeners.get("click"))==null||i.forEach(u=>u(c))}s(r)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(r=>e.addEventListener(r,n)),e.addEventListener("mousedown",()=>{document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),e.addEventListener("dragstart",r=>r.stopPropagation())}_handlePicking(e,n){var o;const r=this._glHelper.readPickingPixel(e,n),i=r[0]|r[1]<<8|r[2]<<16;if(i==0){this._currentHover=null;return}if(i!==((o=this._currentHover)==null?void 0:o.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(a=>{if(a instanceof ye){if(a.mark.isPickingParticipant()){const s=a.mark.encoders.uniqueId.accessor;a.getCollector().visitData(c=>{s(c)==i&&(this._currentHover={mark:a.mark,datum:c,uniqueId:i})})}if(this._currentHover)return qn}}),this._currentHover){const a=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{var u;if(!a.isPickingParticipant())return;const c=a.properties.tooltip;if(c!==null){const f=(u=c==null?void 0:c.handler)!=null?u:"default",l=this.tooltipHandlers[f];if(!l)throw new Error("No such tooltip handler: "+f);return l(s,a,c==null?void 0:c.params)}})}}updateTooltip(e,n){if(!this._tooltipUpdateRequested||!e)this.tooltip.updateWithDatum(e,n),this._tooltipUpdateRequested=!0;else throw new Error("Tooltip has already been updated! Duplicate event handler?")}computeLayout(){const e=this.viewRoot;if(!e)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 jg({picking:!1},this._glHelper),this._pickingContext=new jg({picking:!0},this._glHelper),e.render(new B8(this._renderingContext,this._pickingContext),dn.create(0,0,n.width,n.height)),this.broadcast("layoutComputed")}renderAll(){var e;(e=this._renderingContext)==null||e.renderDeferred(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){!this._dirtyPickingBuffer||(this._pickingContext.renderDeferred(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const e=[];return this.viewRoot.visit(n=>{n instanceof ye&&n.getAccessor("search")&&e.push(n)}),e}getNamedScaleResolutions(){const e=new Map;return this.viewRoot.visit(n=>{for(const r of Object.values(n.resolutions.scale))r.name&&e.set(r.name,r)}),e}}function t5(t,e){const n=document.createElement("div");n.className="message-box";const r=document.createElement("div");r.textContent=e,n.appendChild(r),t.appendChild(n)}const Zk="",n5="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDY0IDY0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MS41OyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjEwMjIxLDAuMDA2ODM4MjUsLTAuMDA2NzEzNiwwLjEwMDM0NywtOC4wMzQyNCwtMTMuMjIyMikiPgogICAgICAgIDxwYXRoIGQ9Ik0yMDguNjI5LDU0OC4xN0MyMDguNjI5LDU0OC4xNyAyMTkuNzY4LDU5NC4zODkgMjM5LjgxNCw2MTkuMjIyQzI1OS44Niw2NDQuMDU1IDMxOS4xMTksNjgwLjgzMSAzMTkuMTE5LDY4MC44MzFDMzE5LjExOSw2ODAuODMxIDM4NS41NTcsNjIyLjkxNSA0MzcuODcsNDk4LjM0NkM0MzcuODcsNDk4LjM0NiA0NTYuMDIxLDQ5OS4yMzYgNDczLjgwOCw0ODYuNDQ2QzQ5MS41OTQsNDczLjY1NiA0OTAuMjM5LDQ3OC41MzQgNDk0Ljg4Myw0NjEuNjJDNDk0Ljg4Myw0NjEuNjIgNTUxLjg0OCw0NjcuOTM3IDYyNS44MjYsNDUxLjg2M0M2NjcuNjM0LDQ0Mi43NzggNzEwLjIzOCw0MjUuNjQ5IDc0Ny4zODIsMzkzLjE0MkM3NDcuMzgyLDM5My4xNDIgNzIxLjk5MiwzNjAuMjQ0IDY4OS40MjIsMjkxLjQ1QzY3Ny4wMjksMjY1LjI3NSA2NDcuNTE4LDI1Ny4wOTggNTkwLjc0NywyMDMuMzA5TDQzOC4wODMsMzkxLjI3M0wyMDguNjI5LDU0OC4xN1oiIHN0eWxlPSJmaWxsLW9wYWNpdHk6MC4xMTsiLz4KICAgIDwvZz4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMDgxOTg1LC0wLjA1ODI0OTMsMC4wNTgyNDkzLDAuMDgxOTg1LC00MC40NzU0LDM0Ljc2NjgpIj4KICAgICAgICA8cGF0aCBkPSJNNTYxLjU4OCwzNDkuMTU1QzU2MS41ODgsMzQ5LjE1NSA1MTYuMjk3LDI3MS4zNDEgMzI4Ljg0MSwyNTIuMDQ0QzMyOC44NDEsMjUyLjA0NCAzMDIuMzQyLDMyNS4xODkgMzA3LjY4NiwzNjguMDU2QzMxMy4wMzEsNDEwLjkyMiAzMDMuMDAxLDQ1Ni4xNDcgMzI5LjEzMiw1MDEuMTc0QzMyOS4xMzIsNTAxLjE3NCA0NDMuMTE0LDUwNi43NDMgNTU0LjY0OSw0MjguNDY5TDYyOS4yMDQsNDMyLjExMkM2MjkuMjA0LDQzMi4xMTIgNjczLjc1NSw1MzQuMzUxIDg1Ni45NjQsNTU0LjM3NUM4NTYuOTY0LDU1NC4zNzUgODg2LjcxNyw0OTEuNzY4IDg3OS4xOTMsNDE3LjQ3OEM4NzEuMjExLDMzOC42NzMgODcxLjcxNiwyOTMuNDQzIDg3MS43MTYsMjkzLjQ0M0M4NzEuNzE2LDI5My40NDMgNzc1LjQ4NSwyODMuOTI4IDYzNS40MTgsMzYxLjc5NUw1NjEuNTg4LDM0OS4xNTVaIiBzdHlsZT0iZmlsbDpyZ2IoMTI3LDE4NywyMjEpOyIvPgogICAgICAgIDxjbGlwUGF0aCBpZD0iX2NsaXAxIj4KICAgICAgICAgICAgPHBhdGggZD0iTTU2MS41ODgsMzQ5LjE1NUM1NjEuNTg4LDM0OS4xNTUgNTE2LjI5NywyNzEuMzQxIDMyOC44NDEsMjUyLjA0NEMzMjguODQxLDI1Mi4wNDQgMzAyLjM0MiwzMjUuMTg5IDMwNy42ODYsMzY4LjA1NkMzMTMuMDMxLDQxMC45MjIgMzAzLjAwMSw0NTYuMTQ3IDMyOS4xMzIsNTAxLjE3NEMzMjkuMTMyLDUwMS4xNzQgNDQzLjExNCw1MDYuNzQzIDU1NC42NDksNDI4LjQ2OUw2MjkuMjA0LDQzMi4xMTJDNjI5LjIwNCw0MzIuMTEyIDY3My43NTUsNTM0LjM1MSA4NTYuOTY0LDU1NC4zNzVDODU2Ljk2NCw1NTQuMzc1IDg4Ni43MTcsNDkxLjc2OCA4NzkuMTkzLDQxNy40NzhDODcxLjIxMSwzMzguNjczIDg3MS43MTYsMjkzLjQ0MyA4NzEuNzE2LDI5My40NDNDODcxLjcxNiwyOTMuNDQzIDc3NS40ODUsMjgzLjkyOCA2MzUuNDE4LDM2MS43OTVMNTYxLjU4OCwzNDkuMTU1WiIvPgogICAgICAgIDwvY2xpcFBhdGg+CiAgICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI19jbGlwMSkiPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1ODYzNywwLjQ1ODkyLC0wLjQ1ODkyLDAuNzU4NjM3LDQyNS42MzUsLTEyMS4yMTMpIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zODYuODczLDM5Ny4yNDFDMzcxLjM0NSwzODMuNjI4IDMzNS4xMzgsMzc0Ljc4MiAyOTAuNjQ0LDM4MC41NDNDMjQ2LjE0OSwzODYuMzA0IDE5Ni44MjcsNDAyLjI2NiAxNzguODAyLDQxMi4wNjVDMTY4LjIwMiw0MTcuODI4IDE1MS40OTQsNDI5LjM1NCAxNTAuNjgyLDQzOS4zMzRDMTQ5LjUyNyw0NTMuNTI4IDE1My41OTMsNDc3LjA2NiAxNjUuNjI1LDQ5MS4yODRDMTcxLjY5LDQ5OC40NTEgMTc5LjkyNyw1MDMuNDQ1IDE5My44MzgsNTA1LjQyM0MyMTEuNzAxLDUwNy45NjMgMjUyLjcxNCw0ODAuNjI3IDI3NS4zOTksNDY5LjIyQzI5OS4zMzIsNDU3LjE4NyAzMTMuOTgxLDQ1NC41NiAzMzguMzg2LDQ0Ny4wMTRDMzM4LjM4Niw0NDcuMDE0IDI5MS4zNDYsNDc4LjU4NyAyNzAuMjA1LDQ5NC4zOTNDMjM5LjYxLDUxNy4yNjggMjE4LjU3NSw1MjIuNDQ0IDIxMi44NTksNTM5Ljg5N0MyMDkuNzY2LDU0OS4zNCAyMTIuMjM3LDU2Ny43NjcgMjIwLjM1NCw1NzcuNTM4QzIyOS40MjcsNTg4LjQ2MSAyMzMuMTk3LDU5NS4wNjkgMjU0LjU5MSw1OTcuNjI0QzI2Ny4zMDMsNTk5LjE0MyAyNzYuNjg1LDU5OC44MDIgMzE0LjM3LDU2OC45NUMzMzYuMDYsNTUxLjc2NyAzNzAuMjk3LDUwOS44MTcgMzgxLjQxMiw0OTQuNjE2QzM5Ny41ODEsNDcyLjUwNiA0MDUuMTY1LDQ1MS40NjIgNDAyLjY1Niw0MzUuMDRDMzk5LjA0NSw0MTEuMzkxIDM5NC4yNTksNDAzLjcxNiAzODYuODczLDM5Ny4yNDFaIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1MjE0NSwwLjQ1NDk5MywtMC40NTQ5OTMsMC43NTIxNDUsNDY4LjM2LC0xMDguMjkzKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg0LjczMywzNzguOTM0QzQ3OS4zMywzNjcuODg2IDQ2Ny4wOTIsMzUwLjQ1MiA0ODMuODg2LDMyNS4yMDVDNTAyLjE3MiwyOTcuNzE3IDUxNC44OTgsMjgwLjkzOCA1MjguMTE3LDI2NC42MzJDNTQxLjMzNSwyNDguMzI2IDU3NC43OTMsMjE4LjQ0NyA1ODcuNzM5LDIxMi41M0M2MDAuNjg0LDIwNi42MTMgNjIxLjAyNiwyMDMuODUyIDYzMS44ODksMjEyLjg0MUM2NDIuODc0LDIyMS45MyA2NDguNDE2LDIzMy4zNzcgNjU0LjkyLDI0NS40NzhDNjYyLjMzMSwyNTkuMjY3IDY2Ny4zMTgsMjc0LjgwOCA2NTYuNTE4LDI4OC4yNzhDNjQxLjA5MywzMDcuNTE1IDYyMi4yNDIsMzA1LjI5NCA1OTQuOTEyLDMxOS44NDRDNTY3LjI0NCwzMzQuNTczIDU1Mi42NDQsMzQyLjk0MyA1MzkuMjQ0LDM1NS43MDNDNTM5LjI0NCwzNTUuNzAzIDU5MS40MzEsMzM0LjExNCA2MjEuMjI5LDMyNC40NzRDNjUxLjAyNywzMTQuODMzIDY4MC45NTIsMzA0LjQ2MSA2OTUuOTk1LDMxNS45NzVDNzExLjAzOCwzMjcuNDkgNzEwLjYzMSwzMzEuNDYzIDcxNC40MjUsMzQ3LjE4N0M3MTkuMTA3LDM2Ni41OSA3MDcuMjMxLDM4NS4xNjUgNjk0LjI5NCwzOTUuODM4QzY4MS4zNTYsNDA2LjUxIDY1OS45NTgsNDExLjc1NiA2MzYuODc1LDQxNi44NTJDNjA2LjQyLDQyMy41NzYgNTQwLjI3OCw0MzEuOTE3IDUxMi44MTksNDE5LjM2NkM0ODUuMzYxLDQwNi44MTUgNDg4LjQ4OCwzODYuNjEzIDQ4NC43MzMsMzc4LjkzNFoiIHN0eWxlPSJmaWxsOndoaXRlOyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGQ9Ik01NjEuNTg4LDM0OS4xNTVDNTYxLjU4OCwzNDkuMTU1IDUxNi4yOTcsMjcxLjM0MSAzMjguODQxLDI1Mi4wNDRDMzI4Ljg0MSwyNTIuMDQ0IDMwMi4zNDIsMzI1LjE4OSAzMDcuNjg2LDM2OC4wNTZDMzEzLjAzMSw0MTAuOTIyIDMwMy4wMDEsNDU2LjE0NyAzMjkuMTMyLDUwMS4xNzRDMzI5LjEzMiw1MDEuMTc0IDQ0My4xMTQsNTA2Ljc0MyA1NTQuNjQ5LDQyOC40NjlMNjI5LjIwNCw0MzIuMTEyQzYyOS4yMDQsNDMyLjExMiA2NzMuNzU1LDUzNC4zNTEgODU2Ljk2NCw1NTQuMzc1Qzg1Ni45NjQsNTU0LjM3NSA4ODYuNzE3LDQ5MS43NjggODc5LjE5Myw0MTcuNDc4Qzg3MS4yMTEsMzM4LjY3MyA4NzEuNzE2LDI5My40NDMgODcxLjcxNiwyOTMuNDQzQzg3MS43MTYsMjkzLjQ0MyA3NzUuNDg1LDI4My45MjggNjM1LjQxOCwzNjEuNzk1TDU2MS41ODgsMzQ5LjE1NVoiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOmJsYWNrO3N0cm9rZS13aWR0aDoxNi41N3B4OyIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4xMDAyOTgsLTAuMDA3NDA0ODgsMC4wMDc0MDQ4OCwwLjEwMDI5OCwtMTUuNzQ1NywtNS4xNzUyOCkiPgogICAgICAgIDxwYXRoIGQ9Ik0zODQuOTE2LDM4NS40NTlDMzg0LjkxNiwzODUuNDU5IDQzMC43ODEsMzQ3Ljg2OCA0NTAuMDI3LDM1MC4wOTNDNDcxLjY4NSwzNTIuNTk2IDQ5MC40OSw0MDcuNzQ3IDQ5MC4yMDgsNDI0LjQxNkM0ODkuOTI3LDQ0MS4wODUgNDQyLjk0OCw0NjkuODY2IDQyMi41MzcsNDY2LjI0QzQyMi41MzcsNDY2LjI0IDQyNS41MjUsNDQyLjEyOSA0MTIuMTE0LDQxMy4zMzVDMzk4LjcwMiwzODQuNTQgMzg0LjkxNiwzODUuNDU5IDM4NC45MTYsMzg1LjQ1OVoiIHN0eWxlPSJmaWxsOnJnYigxMjcsMTg3LDIyMSk7Ii8+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJfY2xpcDIiPgogICAgICAgICAgICA8cGF0aCBkPSJNMzg0LjkxNiwzODUuNDU5QzM4NC45MTYsMzg1LjQ1OSA0MzAuNzgxLDM0Ny44NjggNDUwLjAyNywzNTAuMDkzQzQ3MS42ODUsMzUyLjU5NiA0OTAuNDksNDA3Ljc0NyA0OTAuMjA4LDQyNC40MTZDNDg5LjkyNyw0NDEuMDg1IDQ0Mi45NDgsNDY5Ljg2NiA0MjIuNTM3LDQ2Ni4yNEM0MjIuNTM3LDQ2Ni4yNCA0MjUuNTI1LDQ0Mi4xMjkgNDEyLjExNCw0MTMuMzM1QzM5OC43MDIsMzg0LjU0IDM4NC45MTYsMzg1LjQ1OSAzODQuOTE2LDM4NS40NTlaIi8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgICAgICA8ZyBjbGlwLXBhdGg9InVybCgjX2NsaXAyKSI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuOTA5MDY5LDMuNjc2NDFlLTE3LC0zLjc5ODE4ZS0xNywwLjg1ODUyLDM3LjA1MSw1Mi4xODI5KSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDEzLjI4Miw0MDIuNjk3QzQzMC43Nyw0MjEuNTggNDIzLjMwNyw0NDguNDI2IDQ0MS42ODMsNDQ2LjEzN0M0NjMuNDA5LDQ0My40MzEgNDcyLjYwNCw0MzAuMzU2IDQ3My4zMTYsNDEzLjQwMkM0NzQuMDI4LDM5Ni40NDggNDcyLjI0NSwzOTMuOTExIDQ2Ni4xNzIsMzc1LjMyMUM0NjAuMDk5LDM1Ni43MzEgNDQ3Ljk1MywzNTIuMTc2IDQyMi44NDIsMzU3LjE3OUM0MDEuOTU3LDM2MS4zMzkgNDA1LjAzOSwzNjAuMjE1IDM5OC43MzUsMzY3LjIyOEMzOTIuNDMsMzc0LjI0MiAzODQuMzE1LDM5My4xODIgMzg0LjMxNSwzOTMuMTgyQzM4NC4zMTUsMzkzLjE4MiAzOTIuNzE1LDM4MC40OTIgNDEzLjI4Miw0MDIuNjk3WiIgc3R5bGU9ImZpbGw6d2hpdGU7Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICAgICAgPHBhdGggZD0iTTM4NC45MTYsMzg1LjQ1OUMzODQuOTE2LDM4NS40NTkgNDMwLjc4MSwzNDcuODY4IDQ1MC4wMjcsMzUwLjA5M0M0NzEuNjg1LDM1Mi41OTYgNDkwLjQ5LDQwNy43NDcgNDkwLjIwOCw0MjQuNDE2QzQ4OS45MjcsNDQxLjA4NSA0NDIuOTQ4LDQ2OS44NjYgNDIyLjUzNyw0NjYuMjRDNDIyLjUzNyw0NjYuMjQgNDI1LjUyNSw0NDIuMTI5IDQxMi4xMTQsNDEzLjMzNUMzOTguNzAyLDM4NC41NCAzODQuOTE2LDM4NS40NTkgMzg0LjkxNiwzODUuNDU5WiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6YmxhY2s7c3Ryb2tlLXdpZHRoOjE2LjU3cHg7Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=";/**
1346
+ };`)},f=d=>{a||u(d);for(const[h,p]of a){const m=c(d,h);for(let y=0;y<p.length;y++)m[r[y]]=d[p[y]];this._propagate(m)}},l=d=>{u(d),f(d),this.handle=f};this.handle=l,this.beginBatch=d=>{_m(d)&&(this.handle=l),super.beginBatch(d)}}}class f8 extends se{get behavior(){return fn}constructor(e){super(),this.params=e,this.buffer=[]}reset(){this.buffer=[]}handle(e){this.buffer.push(e)}complete(){var f;const e=this.params,n=e.as||["y0","y1"],r=e.sort?gd(e.sort.field,e.sort.order):void 0,i=e.field?Z(e.field):()=>1,o=e.groupby.map(l=>Z(l)),a=Yb(this.buffer,l=>o.map(d=>d(l)).join()).map(l=>l[1]);let s=l=>!0;if(e.baseField){const l=Z(e.baseField);s=d=>l(d)!==null}let c,u;switch(e.offset){case"normalize":c=(l,d)=>l/d,u=(l,d)=>ea(l,d);break;case"center":c=(l,d)=>l-d/2,u=(l,d)=>ea(l,d);break;case"information":{const l=Math.log2((f=e.cardinality)!=null?f:4);c=(d,h)=>d/h,u=(d,h)=>{const m=ea(d,A=>+!s(A)),y=ea(d,h),g=y-m;let x=0;for(let A=0;A<d.length;A++){const C=d[A];if(s(C)){const v=h(C)/g;x-=v*Math.log2(v)}}return g/(l-(x+0))*(g/y)}}break;default:c=(l,d)=>l,u=(l,d)=>1}for(const l of a){r&&l.sort(r);const d=u(l,i);let h=0;for(const p of l){const m=h+i(p);s(p)&&(p[n[0]]=c(h,d),p[n[1]]=c(m,d),this._propagate(p),h=m)}}super.complete()}}class d8 extends se{get behavior(){return kt}constructor(e){var o,a;super();const n=Z((o=e.field)!=null?o:"sequence"),[r,i]=(a=e.as)!=null?a:["pos","sequence"];this.handle=s=>{const c=Object.assign({},s,{[i]:"",[r]:0}),u=n(s);for(let f=0;f<u.length;f++){const l=Object.assign({},c);l[r]=f,l[i]=u.charAt(f),this._propagate(l)}}}}class h8 extends se{get behavior(){return kt}constructor(e){super(),this.params=e,this.buffer=[]}reset(){this.buffer=[]}handle(e){this.buffer.push(e)}complete(){const n=this.params.groupby,r=n.map(o=>Z(o)),i=ui(this.buffer,...r);for(const[o,a]of Ml(i)){const s={count:a.length};for(let c=0;c<n.length;c++)s[n[c]]=o[c];this._propagate(s)}super.complete()}}const p8="_uniqueId",Ng=1e4,Lg=[null];class Bg extends se{get behavior(){return fn}constructor(e){var n;super(),this.params=e,this.as=(n=e.as)!=null?n:p8,this._blocks=[],this._usedBlocks=0,this._id=-1}initialize(){}reset(){super.reset(),this._usedBlocks=0,this._id=-1}handle(e){e[this.as]=this._nextId(),this._propagate(e)}_nextId(){return++this._id%Ng==0&&(this._id=this._getBlock()*Ng),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const e=Lg.length;return Lg[e]=this,this._blocks.push(e),this._usedBlocks++,e}}const Og={aggregate:h8,collect:Qr,coverage:XM,filterScoredLabels:KM,filter:JM,flattenCompressedExons:t8,flattenDelimited:n8,flattenSequence:d8,formula:i8,identifier:Bg,linearizeGenomicCoordinate:Ig,measureText:o8,pileup:s8,project:c8,regexExtract:u8,regexFold:l8,sample:Wm,stack:f8};function m8(t,e){const n=Og[t.type];if(n)return new n(t,e);throw new Error("Unknown transform: "+t.type)}function g8(t){return"values"in t}class y8 extends Jn{constructor(e){var n;if(super(),this.params=e,typeof e.values=="string"&&!((n=e==null?void 0:e.format)!=null&&n.type))throw new Error("Data format type (csv, dsv, ...) must be specified if a string is provided!")}loadSynchronously(){const e=this.params.values;let n=[],r=i=>i;if(Array.isArray(e))e.length>0&&(n=e,r=ss(e[0]));else if(typeof e=="object")n=[e];else if(typeof e=="string")n=Ah(e,yg(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 b8(t){return"url"in t}class v8 extends Jn{constructor(e,n){super(),this.params=e,this.baseUrl=n}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const e=this.params.url,n=Array.isArray(e)?e:[e],r=async o=>Si({baseURL:this.baseUrl}).load(o).catch(a=>{throw new Error(`Cannot fetch: ${this.baseUrl}${o}: ${a.message}`)}),i=(o,a)=>{try{const s=Ah(o,yg(this.params));this.beginBatch({type:"file",url:a});for(const c of s)this._propagate(c)}catch(s){throw new Error(`Cannot parse: ${a}: ${s.message}`)}};this.reset(),await Promise.all(n.map(o=>r(o).then(i))),this.complete()}}function A8(t){return"sequence"in t}class x8 extends Jn{constructor(e){if(super(),this.sequence=e.sequence,!("start"in this.sequence))throw new Error("'start' is missing from sequence parameters!");if(!("stop"in this.sequence))throw new Error("'stop' is missing from sequence parameters!")}loadSynchronously(){const e=this.sequence.as||"data",n=this.sequence.step||1,r=this.sequence.stop;this.reset(),this.beginBatch({type:"file"});for(let i=this.sequence.start;i<r;i+=n)this._propagate({[e]:i});this.complete()}async load(){this.loadSynchronously()}}function w8(t){return"dynamicSource"in t}class C8 extends Jn{publishData(e){this.reset(),this.beginBatch({type:"file"});let n;for(const r of e)n||(n=ss(r)),this._propagate(n(r));this.complete()}async load(){}}function Pg(t,e){if(g8(t))return new y8(t);if(b8(t))return new v8(t,e);if(A8(t))return new x8(t);if(w8(t))return new C8;throw new Error("Cannot figure out the data source type: "+JSON.stringify(t))}function S8(t){const e=Object.keys(t).filter(r=>typeof r=="string"),n=new Function("source","return { "+e.map(r=>JSON.stringify(r)).map(r=>`${r}: source[${r}]`).join(`,
1347
+ `)+" };");return n.properties=e,n}class Fg extends se{get behavior(){return kt}constructor(){super();const e=n=>{const r=S8(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=e,this.beginBatch=n=>{_m(n)&&(this.handle=e),super.beginBatch(n)}}}function E8(t){return"name"in t}class zg extends Jn{constructor(n,r){super();xe(this,jo,void 0);this.provider=r,this.params=n}get identifier(){return this.params.name}updateDynamicData(n){ai(this,jo,n),this.loadSynchronously()}loadSynchronously(){var i,o;const n=(o=(i=ee(this,jo))!=null?i:this.provider(this.params.name))!=null?o:[];let r=a=>a;if(Array.isArray(n))n.length>0&&(r=ss(n[0]));else throw new Error(`Named data "${this.params.name}" is not an array!`);this.reset(),this.beginBatch({type:"file"});for(const a of n)this._propagate(r(a));this.complete()}async load(){this.loadSynchronously()}}jo=new WeakMap;class Rg{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(e,n){let r=this._observers.get(n);r||(r=[],this._observers.set(n,r)),r.push(e)}_relayObserverCallback(e,n){const r=this._observers.get(n);if(r)for(const i of r)i(e)}addDataSource(e,n){this._dataSourcesByHost.set(n,e)}findDataSourceByKey(e){return this._dataSourcesByHost.get(e)}findNamedDataSource(e){let n,r=[];for(const[i,o]of this._dataSourcesByHost.entries())if(o instanceof zg&&e==o.identifier){if(n&&n!==o)throw new Error(`Found multiple instances of named data: ${e}. Data flow optimization is broken (it's a bug).`);n=o,r.push(i)}if(n)return{dataSource:n,hosts:r}}addCollector(e,n){this._collectorsByHost.set(n,e),e.observers.push(r=>this._relayObserverCallback(r,n))}findCollectorByKey(e){return this._collectorsByHost.get(e)}initialize(){for(const e of this.dataSources)e.visit(n=>n.initialize())}}function jg(t,e){const n=[];let r;const i=e!=null?e:new Rg,o=[];function a(f,l=()=>{}){if(!r)throw l()||new Error("Cannot append data flow node, no parent exist!");return r.addChild(f),r=f,f}function s(f,l){return a(f,()=>new Error(`Cannot append a transform because no (inherited) data are available! ${l?JSON.stringify(l):""}`))}function c(f,l){for(const d of f){let h;try{h=m8(d,l)}catch(p){throw console.warn(p),new Error(`Cannot initialize "${d.type}" transform: ${p}`)}h.behavior&fn&&s(new Fg),s(h)}}const u=f=>{if(n.push(r),f.spec.data){const l=NM(f.spec.data)?f.getDynamicDataSource():E8(f.spec.data)?new zg(f.spec.data,f.context.getNamedDataFromProvider):Pg(f.spec.data,f.getBaseUrl());r=l,i.addDataSource(l,f)}if(f.spec.transform&&c(f.spec.transform,f),f instanceof ye){if(!r)throw new Error("A unit view has no (inherited) data source");const l=D8(f);if(l){o.push(l.rewrite);for(const h of l.transforms)s(h)}f.mark.isPickingParticipant()&&s(new Bg({type:"identifier"}));const d=new Qr({type:"collect",groupby:f.getFacetFields(),sort:M8(f,l==null?void 0:l.rewrittenEncoding)});a(d),i.addCollector(d,f)}Tg(f.spec)};return u.postOrder=f=>{r=n.pop()},t.visit(u),o.forEach(f=>f()),i}function D8(t){var o,a,s,c;const e=[],n={},r=[];for(const[u,f]of Object.entries(t.getEncoding())){const l=u;Zi(l)&&dp(f)&&r.push({channel:l,chromPosDef:f})}const i=ui(r,u=>Ir(u.channel),u=>u.chromPosDef.chrom);for(const[u,f]of i.entries())for(const[l,d]of f.entries()){const h=[],p=[],m=[];for(const{channel:y,chromPosDef:g}of d){const x=v=>v.replace(/[^A-Za-z0-9_]/g,""),A=["_linearized_",x(g.chrom),"_",x(g.pos)].join(""),C={...(s=(a=(o=t.spec.encoding)==null?void 0:o[y])!=null?a:t.getEncoding()[y])!=null?s:{},field:A};delete C.chrom,delete C.pos,!C.type&&g.type&&(C.type=g.type),n[y]=C,h.push(g.pos),m.push((c=g.offset)!=null?c:0),p.push(A)}e.push(new Ig({type:"linearizeGenomicCoordinate",channel:u,chrom:l,pos:h,offset:m,as:p},t))}return e.length?{transforms:e,rewrittenEncoding:n,rewrite:()=>{t.spec.encoding={...t.spec.encoding,...n},Rm(t.mark,"encoding")}}:void 0}function M8(t,e){var r;const n={...t.getEncoding(),...e}.x;if(Ke(n)&&(r=t.getScaleResolution("x"))!=null&&r.isZoomable()){if(Qn(n))return{field:n.field};if(!Wi(n))throw new Error("A zoomable x channel must be mapped to a field.")}}function T8(t,...e){let n=t;for(const o of e)n.addChild(o),n=o;let r;n instanceof Qr?r=n:(r=new Qr,n.addChild(r));let i;return t instanceof Jn?i=async()=>(await t.load(),r.getData()):i=async()=>{throw new Error("The root node is not derived from DataSource!")},{dataSource:t,collector:r,loadAndCollect:i}}function Ug(t,e=void 0){if(t.parent!==e)return!1;for(const n of t.children)if(!Ug(n,t))return!1;return!0}function Tl(t,e=!1){if(t instanceof Qr&&(e=!0),t instanceof Fg)if(e)e=!1;else{const n=t.children[0];t.excise(),n&&Tl(n,e);return}t.behavior&kt&&(e=!1);for(let n=0,r=t.children.length;n<r;n++)Tl(t.children[n],e||n<r-1)}function I8(t){const e=[...t._dataSourcesByHost.entries()],n=new Map;for(const r of e){const i=r[1];i.identifier&&!n.has(i.identifier)&&n.set(i.identifier,i)}t._dataSourcesByHost.clear();for(let[r,i]of e){const o=n.get(i.identifier);o&&(o.adoptChildrenOf(i),i=o),t.addDataSource(i,r)}}function k8(t){if(Tl(t),!Ug(t))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function N8(t){for(const e of t.dataSources)k8(e);I8(t)}function Gg(t){t.visit(n=>{n instanceof ye&&n.resolve("scale")});const e=new Set;t.visit(n=>{for(const r of Object.values(n.resolutions.scale)){const i=r.name;if(i&&e.has(i))throw new Error(`The same scale name "${i}" occurs in multiple scale resolutions!`);e.add(i)}}),t.visit(n=>{n instanceof ye&&n.resolve("axis")}),t.visit(n=>n.onScalesResolved())}function L8(t){for(const e of Xi){const n=t.getScaleResolution(e);n&&!n.name&&n.isZoomable()&&(n.name=`${e}_at_root`)}}function B8(t){const e=[];return t.visit(n=>{if(n instanceof ye){const r=n.getEncoding();for(const[i,o]of Object.entries(r))Qn(o)&&"type"in o&&e.push({view:n,channel:i,field:o.field,type:o.type});return os}}),e}async function O8(t,e,n){var a;if(!t.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(t));const r=Si({baseURL:e}),i=t.import.url,o=JSON.parse(await r.load(i).catch(s=>{throw new Error(`Could not load imported view spec: ${i}
1348
+ Reason: ${s.message}`)}));if(n.isViewSpec(o))return o.baseUrl=(a=i.match(/^[^?#]*\//))==null?void 0:a[0],o;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(t)}`)}async function Hg(t){const e=[];t.visit(n=>{if(n instanceof pg)return e.push(n),os});for(const n of e){const r=n.context,i=await O8(n.spec,n.getBaseUrl(),r),o=r.createView(i,n.parent,n.name);n.parent.replaceChild(n,o),await Hg(o)}}function Qg(t){const e=[];return t.visit(n=>{e.push(n)}),new Set([..._b(e,n=>n.length,n=>n.name)].filter(([n,r])=>r==1&&n!==void 0).map(([n,r])=>n))}const P8=t=>!/^(layer|concat)\d+$/.test(t);class Vg{constructor(e){this.globalOptions=e}pushView(e,n){}popView(e){}renderMark(e,n){}}class Yg extends Vg{constructor(e,n){super(e),this.webGLHelper=n,this.buffer=[],this.coords=void 0,this.views=new Set}pushView(e,n){this.views.add(e),this.coords=n}renderMark(e,n){if(this.globalOptions.picking&&!e.isPickingParticipant())return;const r=e.render(n);r&&this.buffer.push({mark:e,callback:r,coords:this.coords,clipRect:n.clipRect})}renderDeferred(){if(this.batch||this._buildBatch(),this.batch.length==0)return;const e=this.webGLHelper.gl,n=this.globalOptions.picking;e.bindFramebuffer(e.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&&e.bindFramebuffer(e.FRAMEBUFFER,null)}_buildBatch(){this.batch=[];let e=!0,n=!0;const r=a=>()=>{e&&a()},i=a=>()=>{e&&n&&a()},o=ui(this.buffer,a=>a.mark);for(const[a,s]of o.entries()){if(!a.isReady())continue;this.batch.push(()=>{e=a.unitView.getEffectiveOpacity()>0}),this.batch.push(...a.prepareRender(this.globalOptions).map(u=>r(u)));let c;for(const u of s){const f=u.coords;f.equals(c)||this.batch.push(r(()=>{n=a.setViewport(f,u.clipRect)})),this.batch.push(i(u.callback)),c=u.coords}}}}class F8 extends Vg{constructor(...e){super({}),this.contexts=e}pushView(e,n){for(const r of this.contexts)r.pushView(e,n)}popView(e){for(const n of this.contexts)n.popView(e)}renderMark(e,n){for(const r of this.contexts)r.renderMark(e,n)}}class z8{constructor(e,n){this.point=e,this.uiEvent=n,this.stopped=!1,this.target=void 0}stopPropagation(){this.stopped=!0}get type(){return this.uiEvent.type}}class R8{constructor(e,n){this.x=e,this.y=n}equals(e){return e?e===this||e.x===this.x&&e.y===this.y:!1}}const j8=t=>new Promise(e=>setTimeout(e,t));function cs(t){const e=t.requestAnimationFrame||window.requestAnimationFrame,n=t.signal,r=()=>new Promise((i,o)=>{if(n!=null&&n.aborted)return o("aborted");const a=performance.now(),s=a+(t.duration||1e3),c=typeof t.from=="number"?t.from:0,u=typeof t.to=="number"?t.to:1,f=t.easingFunction||(m=>m),l=m=>(m-a)/(s-a),d=m=>m*(u-c)+c,h=m=>Math.max(0,Math.min(1,m)),p=m=>{n!=null&&n.aborted?o("aborted"):(t.onUpdate(d(f(h(l(m))))),m<s?e(p):(t.onUpdate(d(f(1))),i()))};e(p)});return t.delay?n!=null&&n.aborted?Promise.reject("aborted"):j8(t.delay).then(r):r()}class U8{constructor(e){this._renderCallback=e,this._renderRequested=!1,this._warn=!1,this.transitions=[]}requestTransition(e){this.cancelTransition(e),this.transitions.push(e),this.requestRender()}cancelTransition(e){const n=this.transitions.indexOf(e);n>=0&&this.transitions.splice(n,1)}requestRender(){this._renderRequested?this._warn&&console.warn("Render already requested!"):(this._renderRequested=!0,window.requestAnimationFrame(e=>{this._renderRequested=!1;const n=this.transitions;this.transitions=[];let r;for(;r=n.shift();)r(e);this._renderCallback(e)}))}transition(e){return cs({requestAnimationFrame:n=>this.requestTransition(n),...e})}}function _g(){const t=e=>e;return t.invert=e=>e,t.copy=_g,t.invertRange=()=>{},t}class G8{constructor(e){this.genomes=new Map,this.genomeSpy=e}async initialize(e){const n=new hM(e);return this.genomes.set(n.name,n),Promise.all([...this.genomes.values()].map(r=>r.load(this.genomeSpy.spec.baseUrl)))}getGenome(e){if(!this.genomes.size)throw new Error("No genomes have been configured!");if(e){const n=this.genomes.get(e);if(!n)throw new Error(`No genome with the name ${e} 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 H8="data:image/png;base64,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",Q8={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class V8{constructor(e){this._webGLHelper=e,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new En([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:ul(kg),texture:this._createTextureNow(H8)}}async waitUntilReady(){await Promise.all(this._promises)}getFont(e,n="normal",r="regular"){if(te(r)&&(r=Q8[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:e,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(e,n){try{const r=await this._loadMetadata(n.family),i=_8(r,n),o=this.fontRepository+Wg(n.family)+"/"+i.replace(/\.\w+/,""),a=this._createTexture(o+".png"),s=this._loadFont(o+".json");e.texture=await a,e.metrics=await s}catch(r){console.log("Cannot load font. Using default.",r),e.metrics=this._defaultFontEntry.metrics,e.texture=this._defaultFontEntry.texture}}_loadFont(e){let n=this._fontPromises.get(e);return n||(n=fetch(e).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>ul(r)),this._fontPromises.set(e,n)),n}_loadMetadata(e){const n=Wg(e);let r=this._metadataPromises.get(n);return r||(r=fetch(this.fontRepository+n+"/METADATA.pb").then(i=>{if(!i.ok)throw new Error("Could not load font metadata: "+i.status);return i}).then(i=>i.text()).then(i=>Y8(i)).catch(i=>{console.warn(i)}),this._metadataPromises.set(n,r)),r}getDefaultFont(){return this._defaultFontEntry}_createTexture(e){const n=this._webGLHelper.gl;return new Promise((r,i)=>{no(n,{src:e,min:n.LINEAR},(o,a,s)=>{o?i(o):r(a)})})}_createTextureNow(e){const n=this._webGLHelper.gl;let r;const i=new Promise((o,a)=>{r=no(n,{src:e,min:n.LINEAR},(s,c,u)=>{s?a(s):o(c)})});return this._promises.push(i),r}}function Wg(t){return t.toLowerCase().replaceAll(/[^\w]/g,"")}function Y8(t){const e=t.split(`
1349
+ `),n=[];let r;for(const i of e)if(i.startsWith("fonts {")&&(r={name:void 0,style:void 0,weight:void 0,filename:void 0,post_script_name:void 0,full_name:void 0,copyright:void 0}),i.startsWith("}")&&(n.push(r),r=void 0),r){let o=i.match(/^\s*([A-Za-z_]+):[ ]?"(.*)"$/);if(o){const a=o[1];r[a]=o[2]}if(o=i.match(/^\s*([A-Za-z_]+):[ ]?(\d+)$/),o){const a=o[1];r[a]=+o[2]}}return n}function _8(t,e){let n,r=Number.POSITIVE_INFINITY;for(const i of t)if(e.family.localeCompare(i.name,void 0,{sensitivity:"accent"})==0&&e.style==i.style){const o=Math.abs(e.weight-i.weight);o<r&&(r=o,n=i)}return n==null?void 0:n.filename}function W8(t,e){const n=[];let r;for(const i of t.split(`
1350
+ `))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 X8{constructor(e,n){this.animator=e,this.disabled=!!n,this.damping=.015,this.acceleration=.3,this.accelerationThreshold=100,this.lowerLimit=.5,this.loop=!1,this.momentum=0,this.timestamp=0,this.callback=null,this._transitionCallback=this.animate.bind(this),this.clear()}clear(){this.momentum=0,this.timestamp=null,this.loop=null,this.callback=null}cancel(){this.loop&&(this.animator.cancelTransition(this._transitionCallback),this.clear())}setMomentum(e,n){if(this.disabled){n(e);return}e*this.momentum<0?this.momentum=0:Math.abs(e)>this.accelerationThreshold?this.momentum=xb([this.momentum,e],this.acceleration):this.momentum=e,this.callback=n,this.loop||this.animate()}animate(e){this.callback(this.momentum);const n=e-this.timestamp||0;this.timestamp=e;const r=Math.abs(this.momentum);this.momentum=Math.sign(this.momentum)*Math.max(0,r-((r*this.damping)**1.5+.04)*n),Math.abs(this.momentum)>this.lowerLimit?(this.loop=!0,this.animator.requestTransition(this._transitionCallback)):this.clear()}}function Z8(t){const e={},n=["string","number","boolean"],r=["wheelDelta","wheelDeltaX","wheelDeltaY"];for(const i in t){const o=i;!r.includes(i)&&n.includes(typeof t[o])&&(e[o]=t[o])}return e}function us(t,e,n=!0){let r,i=a=>{};return function(...s){return new Promise((c,u)=>{const f=()=>{clearTimeout(r),i=l=>{},c(t(...s))};n&&i("debounced"),clearTimeout(r),i=u,r=setTimeout(f,e)})}}const Xg=new Map;async function q8(t,e,n){var o;const r=t.symbol;let i=(o=Xg.get(r))!=null?o:await $8(t.symbol);return i?(Xg.set(r,i),D`<div class="title"><strong>${i.name}</strong> ${i.description}</div><p class="summary">${i.summary}</p><p class="source">Source: NCBI RefSeq Gene</p>`):null}async function K8(t){console.log("Searching: "+t);const e={mode:"cors"},r=(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=gene&term=${t}[GENE]&sort=relevance&retmode=json`,e).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`,e).then(a=>a.json())).result[r]:null}const J8=us(K8,500);function $8(t){return J8(t)}const e5=le(".4~r"),t5=le(".4~e");function Zg(t){return t===null?D`<span class="na">NA</span>`:te(t)?t.substring(0,30):Number.isInteger(t)?""+t:ce(t)?Math.abs(t)>Math.pow(10,8)||Math.abs(t)<Math.pow(10,-8)?t5(t):e5(t):Wo(t)?t?"True":"False":"?"+typeof t+" "+t}async function n5(t,e,n){const r=(s,c)=>{var u;for(const[f,l]of Object.entries(e.encoders))if((u=l==null?void 0:l.accessor)!=null&&u.fields.includes(s))switch(f){case"color":case"fill":case"stroke":return D`<span class="color-legend" style="${`background-color: ${l(c)}`}"></span>`}return""},i=D`<table class="attributes">${Object.entries(t).filter(([s,c])=>!s.startsWith("_")).map(([s,c])=>D`<tr><th>${s}</th><td>${Zg(c)} ${r(s,t)}</td></tr>`)}</table>`,o=e.unitView.getTitleText(),a=o?D`<div class="title"><strong>${o}</strong></div>`:"";return D`${a}${i}`}class r5 extends Mg{constructor(e,n){super({vconcat:[]},e,void 0,"implicitRoot",1),n.parent=this,this.appendChild(n)}}W("index",Nc,["continuous"]),W("locus",WA,["continuous"]),W("null",_g,[]),vh("fasta",W8);class qg{constructor(e,n,r={}){var i;this.container=e,this.spec=n,this.accessorFactory=new V4,this.viewFactory=new VM,this.namedDataProviders=[],this.animator=new U8(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=o=>o.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new X8(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this.tooltipHandlers={default:n5,refseqgene:q8,...(i=r.tooltipHandlers)!=null?i:{}},this.viewRoot=void 0}registerNamedDataProvider(e){this.namedDataProviders.unshift(e)}getNamedDataFromProvider(e){for(const n of this.namedDataProviders){const r=n(e);if(r)return r}}updateNamedData(e,n){const r=this.viewRoot.context.dataFlow.findNamedDataSource(e);if(!r)throw new Error("No such named data source: "+e);r.dataSource.updateDynamicData(n);for(const i of r.hosts)i.visit(o=>{for(const a of Object.values(o.resolutions.scale))a.reconfigure()});this.animator.requestRender()}broadcast(e,n){const r={type:e,payload:n};this.viewRoot.visit(i=>i.handleBroadcast(r))}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new iD(this.container,()=>{if(this.viewRoot){const e=this.viewRoot.getSize().addPadding(this.viewRoot.getOverhang()),n=r=>r.grow>0?void 0:r.px;return{width:n(e.width),height:n(e.height)}}}),this.loadingMessageElement=document.createElement("div"),this.loadingMessageElement.className="loading-message",this.loadingMessageElement.innerHTML='<div class="message">Loading<span class="ellipsis">...</span></div>',this.container.appendChild(this.loadingMessageElement),this.tooltip=new Cw(this.container),this.loadingMessageElement.querySelector(".message").addEventListener("transitionend",()=>{this.loadingMessageElement.style.display="none"})}destroy(){this.container.classList.remove("genome-spy"),this.container.classList.remove("loading");for(const[e,n]of this._keyboardListeners)for(const r of n)document.removeEventListener(e,r);for(this._glHelper.finalize();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new G8(this),await this.genomeStore.initialize(this.spec.genome));const e=this,n={dataFlow:new Rg,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new V8(this._glHelper),requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedDataFromProvider:this.getNamedDataFromProvider.bind(this),getCurrentHover:()=>this._currentHover,addKeyboardListener:(s,c)=>{document.addEventListener(s,c);let u=this._keyboardListeners.get(s);u||(u=[],this._keyboardListeners.set(s,u)),u.push(c)},isViewVisible:e.viewVisibilityPredicate,isViewSpec:s=>e.viewFactory.isViewSpec(s),createView:function(s,c,u){return e.viewFactory.createView(s,n,c,u)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(s=>r.datasets[s]),this.viewRoot=n.createView(r,null,"viewRoot"),await Hg(this.viewRoot),(this.viewRoot instanceof ye||this.viewRoot instanceof Nt)&&(this.viewRoot=new r5(n,this.viewRoot)),Gg(this.viewRoot),L8(this.viewRoot),this._glHelper.invalidateSize();const i=[];this.viewRoot.visit(s=>{s instanceof ye&&i.push(s)});const o=jg(this.viewRoot,n.dataFlow);N8(o),this.broadcast("dataFlowBuilt",o),o.dataSources.forEach(s=>console.log(s.subtreeToString())),i.forEach(s=>s.mark.initializeEncoders());const a=Promise.all(i.map(s=>s.mark.initializeGraphics()));for(const s of i)o.addObserver(c=>{s.mark.initializeData(),s.mark.updateGraphicsData()},s);await n.fontManager.waitUntilReady(),o.initialize(),await Promise.all(o.dataSources.map(s=>s.load())),this.viewRoot.visit(s=>{for(const c of Object.values(s.resolutions.scale))c.reconfigure()}),this.broadcast("dataLoaded"),await a,this.viewRoot.visit(s=>{for(const c of Object.values(s.resolutions.scale))this._glHelper.createRangeTexture(c)});for(const s of i)s.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(s=>oo(s,"size")),this._glHelper.invalidateSize()}async launch(){try{return this._prepareContainer(),await this._prepareViewsAndData(),this.registerMouseEvents(),this.computeLayout(),this.animator.requestRender(),this._glHelper.addEventListener("resize",()=>{this.computeLayout(),this.renderAll()}),!0}catch(e){const n=`${e.view?`At "${e.view.getPathString()}": `:""}${e.toString()}`;return console.error(e.stack),i5(this.container,n),!1}finally{this.container.classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const e=this._glHelper.canvas,n=r=>{var i;if(r instanceof MouseEvent){r.type=="mousemove"&&(this.tooltip.handleMouseMove(r),this._tooltipUpdateRequested=!1,r.buttons==0&&this.renderPickingFramebuffer());const o=e.getBoundingClientRect(),a=new R8(r.clientX-o.left-e.clientLeft,r.clientY-o.top-e.clientTop),s=c=>{this.viewRoot.propagateInteractionEvent(new z8(a,c)),this._tooltipUpdateRequested||this.tooltip.clear()};if(r.type!="wheel"&&this._wheelInertia.cancel(),r.type=="mousemove")this._handlePicking(a.x,a.y);else if(r.type=="mousedown"||r.type=="mouseup")this.renderPickingFramebuffer();else if(r.type=="wheel"){this._tooltipUpdateRequested=!1;const c=r;if(Math.abs(c.deltaX)>Math.abs(c.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const u=Z8(c);this._wheelInertia.setMomentum(c.deltaY*(c.deltaMode?80:1),f=>{const l=new WheelEvent("wheel",{...u,deltaMode:0,deltaX:0,deltaY:f});s(l)}),c.preventDefault();return}}if(r.type=="click"){const c=this._currentHover?{type:r.type,viewPath:[...this._currentHover.mark.unitView.getAncestors()].map(u=>u.name).reverse(),datum:this._currentHover.datum}:{type:r.type,viewPath:null,datum:null};(i=this._eventListeners.get("click"))==null||i.forEach(u=>u(c))}s(r)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(r=>e.addEventListener(r,n)),e.addEventListener("mousedown",()=>{document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),e.addEventListener("dragstart",r=>r.stopPropagation())}_handlePicking(e,n){var o;const r=this._glHelper.readPickingPixel(e,n),i=r[0]|r[1]<<8|r[2]<<16;if(i==0){this._currentHover=null;return}if(i!==((o=this._currentHover)==null?void 0:o.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(a=>{if(a instanceof ye){if(a.mark.isPickingParticipant()){const s=a.mark.encoders.uniqueId.accessor;a.getCollector().visitData(c=>{s(c)==i&&(this._currentHover={mark:a.mark,datum:c,uniqueId:i})})}if(this._currentHover)return qn}}),this._currentHover){const a=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{var u;if(!a.isPickingParticipant())return;const c=a.properties.tooltip;if(c!==null){const f=(u=c==null?void 0:c.handler)!=null?u:"default",l=this.tooltipHandlers[f];if(!l)throw new Error("No such tooltip handler: "+f);return l(s,a,c==null?void 0:c.params)}})}}updateTooltip(e,n){if(!this._tooltipUpdateRequested||!e)this.tooltip.updateWithDatum(e,n),this._tooltipUpdateRequested=!0;else throw new Error("Tooltip has already been updated! Duplicate event handler?")}computeLayout(){const e=this.viewRoot;if(!e)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 Yg({picking:!1},this._glHelper),this._pickingContext=new Yg({picking:!0},this._glHelper),e.render(new F8(this._renderingContext,this._pickingContext),dn.create(0,0,n.width,n.height)),this.broadcast("layoutComputed")}renderAll(){var e;(e=this._renderingContext)==null||e.renderDeferred(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){!this._dirtyPickingBuffer||(this._pickingContext.renderDeferred(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const e=[];return this.viewRoot.visit(n=>{n instanceof ye&&n.getAccessor("search")&&e.push(n)}),e}getNamedScaleResolutions(){const e=new Map;return this.viewRoot.visit(n=>{for(const r of Object.values(n.resolutions.scale))r.name&&e.set(r.name,r)}),e}}function i5(t,e){const n=document.createElement("div");n.className="message-box";const r=document.createElement("div");r.textContent=e,n.appendChild(r),t.appendChild(n)}const $k="",o5="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDY0IDY0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MS41OyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjEwMjIxLDAuMDA2ODM4MjUsLTAuMDA2NzEzNiwwLjEwMDM0NywtOC4wMzQyNCwtMTMuMjIyMikiPgogICAgICAgIDxwYXRoIGQ9Ik0yMDguNjI5LDU0OC4xN0MyMDguNjI5LDU0OC4xNyAyMTkuNzY4LDU5NC4zODkgMjM5LjgxNCw2MTkuMjIyQzI1OS44Niw2NDQuMDU1IDMxOS4xMTksNjgwLjgzMSAzMTkuMTE5LDY4MC44MzFDMzE5LjExOSw2ODAuODMxIDM4NS41NTcsNjIyLjkxNSA0MzcuODcsNDk4LjM0NkM0MzcuODcsNDk4LjM0NiA0NTYuMDIxLDQ5OS4yMzYgNDczLjgwOCw0ODYuNDQ2QzQ5MS41OTQsNDczLjY1NiA0OTAuMjM5LDQ3OC41MzQgNDk0Ljg4Myw0NjEuNjJDNDk0Ljg4Myw0NjEuNjIgNTUxLjg0OCw0NjcuOTM3IDYyNS44MjYsNDUxLjg2M0M2NjcuNjM0LDQ0Mi43NzggNzEwLjIzOCw0MjUuNjQ5IDc0Ny4zODIsMzkzLjE0MkM3NDcuMzgyLDM5My4xNDIgNzIxLjk5MiwzNjAuMjQ0IDY4OS40MjIsMjkxLjQ1QzY3Ny4wMjksMjY1LjI3NSA2NDcuNTE4LDI1Ny4wOTggNTkwLjc0NywyMDMuMzA5TDQzOC4wODMsMzkxLjI3M0wyMDguNjI5LDU0OC4xN1oiIHN0eWxlPSJmaWxsLW9wYWNpdHk6MC4xMTsiLz4KICAgIDwvZz4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMDgxOTg1LC0wLjA1ODI0OTMsMC4wNTgyNDkzLDAuMDgxOTg1LC00MC40NzU0LDM0Ljc2NjgpIj4KICAgICAgICA8cGF0aCBkPSJNNTYxLjU4OCwzNDkuMTU1QzU2MS41ODgsMzQ5LjE1NSA1MTYuMjk3LDI3MS4zNDEgMzI4Ljg0MSwyNTIuMDQ0QzMyOC44NDEsMjUyLjA0NCAzMDIuMzQyLDMyNS4xODkgMzA3LjY4NiwzNjguMDU2QzMxMy4wMzEsNDEwLjkyMiAzMDMuMDAxLDQ1Ni4xNDcgMzI5LjEzMiw1MDEuMTc0QzMyOS4xMzIsNTAxLjE3NCA0NDMuMTE0LDUwNi43NDMgNTU0LjY0OSw0MjguNDY5TDYyOS4yMDQsNDMyLjExMkM2MjkuMjA0LDQzMi4xMTIgNjczLjc1NSw1MzQuMzUxIDg1Ni45NjQsNTU0LjM3NUM4NTYuOTY0LDU1NC4zNzUgODg2LjcxNyw0OTEuNzY4IDg3OS4xOTMsNDE3LjQ3OEM4NzEuMjExLDMzOC42NzMgODcxLjcxNiwyOTMuNDQzIDg3MS43MTYsMjkzLjQ0M0M4NzEuNzE2LDI5My40NDMgNzc1LjQ4NSwyODMuOTI4IDYzNS40MTgsMzYxLjc5NUw1NjEuNTg4LDM0OS4xNTVaIiBzdHlsZT0iZmlsbDpyZ2IoMTI3LDE4NywyMjEpOyIvPgogICAgICAgIDxjbGlwUGF0aCBpZD0iX2NsaXAxIj4KICAgICAgICAgICAgPHBhdGggZD0iTTU2MS41ODgsMzQ5LjE1NUM1NjEuNTg4LDM0OS4xNTUgNTE2LjI5NywyNzEuMzQxIDMyOC44NDEsMjUyLjA0NEMzMjguODQxLDI1Mi4wNDQgMzAyLjM0MiwzMjUuMTg5IDMwNy42ODYsMzY4LjA1NkMzMTMuMDMxLDQxMC45MjIgMzAzLjAwMSw0NTYuMTQ3IDMyOS4xMzIsNTAxLjE3NEMzMjkuMTMyLDUwMS4xNzQgNDQzLjExNCw1MDYuNzQzIDU1NC42NDksNDI4LjQ2OUw2MjkuMjA0LDQzMi4xMTJDNjI5LjIwNCw0MzIuMTEyIDY3My43NTUsNTM0LjM1MSA4NTYuOTY0LDU1NC4zNzVDODU2Ljk2NCw1NTQuMzc1IDg4Ni43MTcsNDkxLjc2OCA4NzkuMTkzLDQxNy40NzhDODcxLjIxMSwzMzguNjczIDg3MS43MTYsMjkzLjQ0MyA4NzEuNzE2LDI5My40NDNDODcxLjcxNiwyOTMuNDQzIDc3NS40ODUsMjgzLjkyOCA2MzUuNDE4LDM2MS43OTVMNTYxLjU4OCwzNDkuMTU1WiIvPgogICAgICAgIDwvY2xpcFBhdGg+CiAgICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI19jbGlwMSkiPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1ODYzNywwLjQ1ODkyLC0wLjQ1ODkyLDAuNzU4NjM3LDQyNS42MzUsLTEyMS4yMTMpIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zODYuODczLDM5Ny4yNDFDMzcxLjM0NSwzODMuNjI4IDMzNS4xMzgsMzc0Ljc4MiAyOTAuNjQ0LDM4MC41NDNDMjQ2LjE0OSwzODYuMzA0IDE5Ni44MjcsNDAyLjI2NiAxNzguODAyLDQxMi4wNjVDMTY4LjIwMiw0MTcuODI4IDE1MS40OTQsNDI5LjM1NCAxNTAuNjgyLDQzOS4zMzRDMTQ5LjUyNyw0NTMuNTI4IDE1My41OTMsNDc3LjA2NiAxNjUuNjI1LDQ5MS4yODRDMTcxLjY5LDQ5OC40NTEgMTc5LjkyNyw1MDMuNDQ1IDE5My44MzgsNTA1LjQyM0MyMTEuNzAxLDUwNy45NjMgMjUyLjcxNCw0ODAuNjI3IDI3NS4zOTksNDY5LjIyQzI5OS4zMzIsNDU3LjE4NyAzMTMuOTgxLDQ1NC41NiAzMzguMzg2LDQ0Ny4wMTRDMzM4LjM4Niw0NDcuMDE0IDI5MS4zNDYsNDc4LjU4NyAyNzAuMjA1LDQ5NC4zOTNDMjM5LjYxLDUxNy4yNjggMjE4LjU3NSw1MjIuNDQ0IDIxMi44NTksNTM5Ljg5N0MyMDkuNzY2LDU0OS4zNCAyMTIuMjM3LDU2Ny43NjcgMjIwLjM1NCw1NzcuNTM4QzIyOS40MjcsNTg4LjQ2MSAyMzMuMTk3LDU5NS4wNjkgMjU0LjU5MSw1OTcuNjI0QzI2Ny4zMDMsNTk5LjE0MyAyNzYuNjg1LDU5OC44MDIgMzE0LjM3LDU2OC45NUMzMzYuMDYsNTUxLjc2NyAzNzAuMjk3LDUwOS44MTcgMzgxLjQxMiw0OTQuNjE2QzM5Ny41ODEsNDcyLjUwNiA0MDUuMTY1LDQ1MS40NjIgNDAyLjY1Niw0MzUuMDRDMzk5LjA0NSw0MTEuMzkxIDM5NC4yNTksNDAzLjcxNiAzODYuODczLDM5Ny4yNDFaIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1MjE0NSwwLjQ1NDk5MywtMC40NTQ5OTMsMC43NTIxNDUsNDY4LjM2LC0xMDguMjkzKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg0LjczMywzNzguOTM0QzQ3OS4zMywzNjcuODg2IDQ2Ny4wOTIsMzUwLjQ1MiA0ODMuODg2LDMyNS4yMDVDNTAyLjE3MiwyOTcuNzE3IDUxNC44OTgsMjgwLjkzOCA1MjguMTE3LDI2NC42MzJDNTQxLjMzNSwyNDguMzI2IDU3NC43OTMsMjE4LjQ0NyA1ODcuNzM5LDIxMi41M0M2MDAuNjg0LDIwNi42MTMgNjIxLjAyNiwyMDMuODUyIDYzMS44ODksMjEyLjg0MUM2NDIuODc0LDIyMS45MyA2NDguNDE2LDIzMy4zNzcgNjU0LjkyLDI0NS40NzhDNjYyLjMzMSwyNTkuMjY3IDY2Ny4zMTgsMjc0LjgwOCA2NTYuNTE4LDI4OC4yNzhDNjQxLjA5MywzMDcuNTE1IDYyMi4yNDIsMzA1LjI5NCA1OTQuOTEyLDMxOS44NDRDNTY3LjI0NCwzMzQuNTczIDU1Mi42NDQsMzQyLjk0MyA1MzkuMjQ0LDM1NS43MDNDNTM5LjI0NCwzNTUuNzAzIDU5MS40MzEsMzM0LjExNCA2MjEuMjI5LDMyNC40NzRDNjUxLjAyNywzMTQuODMzIDY4MC45NTIsMzA0LjQ2MSA2OTUuOTk1LDMxNS45NzVDNzExLjAzOCwzMjcuNDkgNzEwLjYzMSwzMzEuNDYzIDcxNC40MjUsMzQ3LjE4N0M3MTkuMTA3LDM2Ni41OSA3MDcuMjMxLDM4NS4xNjUgNjk0LjI5NCwzOTUuODM4QzY4MS4zNTYsNDA2LjUxIDY1OS45NTgsNDExLjc1NiA2MzYuODc1LDQxNi44NTJDNjA2LjQyLDQyMy41NzYgNTQwLjI3OCw0MzEuOTE3IDUxMi44MTksNDE5LjM2NkM0ODUuMzYxLDQwNi44MTUgNDg4LjQ4OCwzODYuNjEzIDQ4NC43MzMsMzc4LjkzNFoiIHN0eWxlPSJmaWxsOndoaXRlOyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGQ9Ik01NjEuNTg4LDM0OS4xNTVDNTYxLjU4OCwzNDkuMTU1IDUxNi4yOTcsMjcxLjM0MSAzMjguODQxLDI1Mi4wNDRDMzI4Ljg0MSwyNTIuMDQ0IDMwMi4zNDIsMzI1LjE4OSAzMDcuNjg2LDM2OC4wNTZDMzEzLjAzMSw0MTAuOTIyIDMwMy4wMDEsNDU2LjE0NyAzMjkuMTMyLDUwMS4xNzRDMzI5LjEzMiw1MDEuMTc0IDQ0My4xMTQsNTA2Ljc0MyA1NTQuNjQ5LDQyOC40NjlMNjI5LjIwNCw0MzIuMTEyQzYyOS4yMDQsNDMyLjExMiA2NzMuNzU1LDUzNC4zNTEgODU2Ljk2NCw1NTQuMzc1Qzg1Ni45NjQsNTU0LjM3NSA4ODYuNzE3LDQ5MS43NjggODc5LjE5Myw0MTcuNDc4Qzg3MS4yMTEsMzM4LjY3MyA4NzEuNzE2LDI5My40NDMgODcxLjcxNiwyOTMuNDQzQzg3MS43MTYsMjkzLjQ0MyA3NzUuNDg1LDI4My45MjggNjM1LjQxOCwzNjEuNzk1TDU2MS41ODgsMzQ5LjE1NVoiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOmJsYWNrO3N0cm9rZS13aWR0aDoxNi41N3B4OyIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4xMDAyOTgsLTAuMDA3NDA0ODgsMC4wMDc0MDQ4OCwwLjEwMDI5OCwtMTUuNzQ1NywtNS4xNzUyOCkiPgogICAgICAgIDxwYXRoIGQ9Ik0zODQuOTE2LDM4NS40NTlDMzg0LjkxNiwzODUuNDU5IDQzMC43ODEsMzQ3Ljg2OCA0NTAuMDI3LDM1MC4wOTNDNDcxLjY4NSwzNTIuNTk2IDQ5MC40OSw0MDcuNzQ3IDQ5MC4yMDgsNDI0LjQxNkM0ODkuOTI3LDQ0MS4wODUgNDQyLjk0OCw0NjkuODY2IDQyMi41MzcsNDY2LjI0QzQyMi41MzcsNDY2LjI0IDQyNS41MjUsNDQyLjEyOSA0MTIuMTE0LDQxMy4zMzVDMzk4LjcwMiwzODQuNTQgMzg0LjkxNiwzODUuNDU5IDM4NC45MTYsMzg1LjQ1OVoiIHN0eWxlPSJmaWxsOnJnYigxMjcsMTg3LDIyMSk7Ii8+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJfY2xpcDIiPgogICAgICAgICAgICA8cGF0aCBkPSJNMzg0LjkxNiwzODUuNDU5QzM4NC45MTYsMzg1LjQ1OSA0MzAuNzgxLDM0Ny44NjggNDUwLjAyNywzNTAuMDkzQzQ3MS42ODUsMzUyLjU5NiA0OTAuNDksNDA3Ljc0NyA0OTAuMjA4LDQyNC40MTZDNDg5LjkyNyw0NDEuMDg1IDQ0Mi45NDgsNDY5Ljg2NiA0MjIuNTM3LDQ2Ni4yNEM0MjIuNTM3LDQ2Ni4yNCA0MjUuNTI1LDQ0Mi4xMjkgNDEyLjExNCw0MTMuMzM1QzM5OC43MDIsMzg0LjU0IDM4NC45MTYsMzg1LjQ1OSAzODQuOTE2LDM4NS40NTlaIi8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgICAgICA8ZyBjbGlwLXBhdGg9InVybCgjX2NsaXAyKSI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuOTA5MDY5LDMuNjc2NDFlLTE3LC0zLjc5ODE4ZS0xNywwLjg1ODUyLDM3LjA1MSw1Mi4xODI5KSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDEzLjI4Miw0MDIuNjk3QzQzMC43Nyw0MjEuNTggNDIzLjMwNyw0NDguNDI2IDQ0MS42ODMsNDQ2LjEzN0M0NjMuNDA5LDQ0My40MzEgNDcyLjYwNCw0MzAuMzU2IDQ3My4zMTYsNDEzLjQwMkM0NzQuMDI4LDM5Ni40NDggNDcyLjI0NSwzOTMuOTExIDQ2Ni4xNzIsMzc1LjMyMUM0NjAuMDk5LDM1Ni43MzEgNDQ3Ljk1MywzNTIuMTc2IDQyMi44NDIsMzU3LjE3OUM0MDEuOTU3LDM2MS4zMzkgNDA1LjAzOSwzNjAuMjE1IDM5OC43MzUsMzY3LjIyOEMzOTIuNDMsMzc0LjI0MiAzODQuMzE1LDM5My4xODIgMzg0LjMxNSwzOTMuMTgyQzM4NC4zMTUsMzkzLjE4MiAzOTIuNzE1LDM4MC40OTIgNDEzLjI4Miw0MDIuNjk3WiIgc3R5bGU9ImZpbGw6d2hpdGU7Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICAgICAgPHBhdGggZD0iTTM4NC45MTYsMzg1LjQ1OUMzODQuOTE2LDM4NS40NTkgNDMwLjc4MSwzNDcuODY4IDQ1MC4wMjcsMzUwLjA5M0M0NzEuNjg1LDM1Mi41OTYgNDkwLjQ5LDQwNy43NDcgNDkwLjIwOCw0MjQuNDE2QzQ4OS45MjcsNDQxLjA4NSA0NDIuOTQ4LDQ2OS44NjYgNDIyLjUzNyw0NjYuMjRDNDIyLjUzNyw0NjYuMjQgNDI1LjUyNSw0NDIuMTI5IDQxMi4xMTQsNDEzLjMzNUMzOTguNzAyLDM4NC41NCAzODQuOTE2LDM4NS40NTkgMzg0LjkxNiwzODUuNDU5WiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6YmxhY2s7c3Ryb2tlLXdpZHRoOjE2LjU3cHg7Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=";/**
1351
1351
  * @license
1352
1352
  * Copyright 2019 Google LLC
1353
1353
  * SPDX-License-Identifier: BSD-3-Clause
1354
- */const Ml=window.ShadowRoot&&(window.ShadyCSS===void 0||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,Yg=Symbol(),_g=new Map;class r5{constructor(e,n){if(this._$cssResult$=!0,n!==Yg)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e}get styleSheet(){let e=_g.get(this.cssText);return Ml&&e===void 0&&(_g.set(this.cssText,e=new CSSStyleSheet),e.replaceSync(this.cssText)),e}toString(){return this.cssText}}const i5=t=>new r5(typeof t=="string"?t:t+"",Yg),o5=(t,e)=>{Ml?t.adoptedStyleSheets=e.map(n=>n instanceof CSSStyleSheet?n:n.styleSheet):e.forEach(n=>{const r=document.createElement("style"),i=window.litNonce;i!==void 0&&r.setAttribute("nonce",i),r.textContent=n.cssText,t.appendChild(r)})},Wg=Ml?t=>t:t=>t instanceof CSSStyleSheet?(e=>{let n="";for(const r of e.cssRules)n+=r.cssText;return i5(n)})(t):t;/**
1354
+ */const Il=window.ShadowRoot&&(window.ShadyCSS===void 0||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,Kg=Symbol(),Jg=new Map;class a5{constructor(e,n){if(this._$cssResult$=!0,n!==Kg)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e}get styleSheet(){let e=Jg.get(this.cssText);return Il&&e===void 0&&(Jg.set(this.cssText,e=new CSSStyleSheet),e.replaceSync(this.cssText)),e}toString(){return this.cssText}}const s5=t=>new a5(typeof t=="string"?t:t+"",Kg),c5=(t,e)=>{Il?t.adoptedStyleSheets=e.map(n=>n instanceof CSSStyleSheet?n:n.styleSheet):e.forEach(n=>{const r=document.createElement("style"),i=window.litNonce;i!==void 0&&r.setAttribute("nonce",i),r.textContent=n.cssText,t.appendChild(r)})},$g=Il?t=>t:t=>t instanceof CSSStyleSheet?(e=>{let n="";for(const r of e.cssRules)n+=r.cssText;return s5(n)})(t):t;/**
1355
1355
  * @license
1356
1356
  * Copyright 2017 Google LLC
1357
1357
  * SPDX-License-Identifier: BSD-3-Clause
1358
- */var Tl;const Xg=window.trustedTypes,a5=Xg?Xg.emptyScript:"",Zg=window.reactiveElementPolyfillSupport,Il={toAttribute(t,e){switch(e){case Boolean:t=t?a5:null;break;case Object:case Array:t=t==null?t:JSON.stringify(t)}return t},fromAttribute(t,e){let n=t;switch(e){case Boolean:n=t!==null;break;case Number:n=t===null?null:Number(t);break;case Object:case Array:try{n=JSON.parse(t)}catch{n=null}}return n}},qg=(t,e)=>e!==t&&(e==e||t==t),kl={attribute:!0,type:String,converter:Il,reflect:!1,hasChanged:qg};class Vr extends HTMLElement{constructor(){super(),this._$Et=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Ei=null,this.o()}static addInitializer(e){var n;(n=this.l)!==null&&n!==void 0||(this.l=[]),this.l.push(e)}static get observedAttributes(){this.finalize();const e=[];return this.elementProperties.forEach((n,r)=>{const i=this._$Eh(r,n);i!==void 0&&(this._$Eu.set(i,r),e.push(i))}),e}static createProperty(e,n=kl){if(n.state&&(n.attribute=!1),this.finalize(),this.elementProperties.set(e,n),!n.noAccessor&&!this.prototype.hasOwnProperty(e)){const r=typeof e=="symbol"?Symbol():"__"+e,i=this.getPropertyDescriptor(e,r,n);i!==void 0&&Object.defineProperty(this.prototype,e,i)}}static getPropertyDescriptor(e,n,r){return{get(){return this[n]},set(i){const o=this[e];this[n]=i,this.requestUpdate(e,o,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)||kl}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const e=Object.getPrototypeOf(this);if(e.finalize(),this.elementProperties=new Map(e.elementProperties),this._$Eu=new Map,this.hasOwnProperty("properties")){const n=this.properties,r=[...Object.getOwnPropertyNames(n),...Object.getOwnPropertySymbols(n)];for(const i of r)this.createProperty(i,n[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(e){const n=[];if(Array.isArray(e)){const r=new Set(e.flat(1/0).reverse());for(const i of r)n.unshift(Wg(i))}else e!==void 0&&n.push(Wg(e));return n}static _$Eh(e,n){const r=n.attribute;return r===!1?void 0:typeof r=="string"?r:typeof e=="string"?e.toLowerCase():void 0}o(){var e;this._$Ep=new Promise(n=>this.enableUpdating=n),this._$AL=new Map,this._$Em(),this.requestUpdate(),(e=this.constructor.l)===null||e===void 0||e.forEach(n=>n(this))}addController(e){var n,r;((n=this._$Eg)!==null&&n!==void 0?n:this._$Eg=[]).push(e),this.renderRoot!==void 0&&this.isConnected&&((r=e.hostConnected)===null||r===void 0||r.call(e))}removeController(e){var n;(n=this._$Eg)===null||n===void 0||n.splice(this._$Eg.indexOf(e)>>>0,1)}_$Em(){this.constructor.elementProperties.forEach((e,n)=>{this.hasOwnProperty(n)&&(this._$Et.set(n,this[n]),delete this[n])})}createRenderRoot(){var e;const n=(e=this.shadowRoot)!==null&&e!==void 0?e:this.attachShadow(this.constructor.shadowRootOptions);return o5(n,this.constructor.elementStyles),n}connectedCallback(){var e;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(e=this._$Eg)===null||e===void 0||e.forEach(n=>{var r;return(r=n.hostConnected)===null||r===void 0?void 0:r.call(n)})}enableUpdating(e){}disconnectedCallback(){var e;(e=this._$Eg)===null||e===void 0||e.forEach(n=>{var r;return(r=n.hostDisconnected)===null||r===void 0?void 0:r.call(n)})}attributeChangedCallback(e,n,r){this._$AK(e,r)}_$ES(e,n,r=kl){var i,o;const a=this.constructor._$Eh(e,r);if(a!==void 0&&r.reflect===!0){const s=((o=(i=r.converter)===null||i===void 0?void 0:i.toAttribute)!==null&&o!==void 0?o:Il.toAttribute)(n,r.type);this._$Ei=e,s==null?this.removeAttribute(a):this.setAttribute(a,s),this._$Ei=null}}_$AK(e,n){var r,i,o;const a=this.constructor,s=a._$Eu.get(e);if(s!==void 0&&this._$Ei!==s){const c=a.getPropertyOptions(s),u=c.converter,f=(o=(i=(r=u)===null||r===void 0?void 0:r.fromAttribute)!==null&&i!==void 0?i:typeof u=="function"?u:null)!==null&&o!==void 0?o:Il.fromAttribute;this._$Ei=s,this[s]=f(n,c.type),this._$Ei=null}}requestUpdate(e,n,r){let i=!0;e!==void 0&&(((r=r||this.constructor.getPropertyOptions(e)).hasChanged||qg)(this[e],n)?(this._$AL.has(e)||this._$AL.set(e,n),r.reflect===!0&&this._$Ei!==e&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(e,r))):i=!1),!this.isUpdatePending&&i&&(this._$Ep=this._$E_())}async _$E_(){this.isUpdatePending=!0;try{await this._$Ep}catch(n){Promise.reject(n)}const e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var e;if(!this.isUpdatePending)return;this.hasUpdated,this._$Et&&(this._$Et.forEach((i,o)=>this[o]=i),this._$Et=void 0);let n=!1;const r=this._$AL;try{n=this.shouldUpdate(r),n?(this.willUpdate(r),(e=this._$Eg)===null||e===void 0||e.forEach(i=>{var o;return(o=i.hostUpdate)===null||o===void 0?void 0:o.call(i)}),this.update(r)):this._$EU()}catch(i){throw n=!1,this._$EU(),i}n&&this._$AE(r)}willUpdate(e){}_$AE(e){var n;(n=this._$Eg)===null||n===void 0||n.forEach(r=>{var i;return(i=r.hostUpdated)===null||i===void 0?void 0:i.call(r)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Ep}shouldUpdate(e){return!0}update(e){this._$EC!==void 0&&(this._$EC.forEach((n,r)=>this._$ES(r,this[r],n)),this._$EC=void 0),this._$EU()}updated(e){}firstUpdated(e){}}Vr.finalized=!0,Vr.elementProperties=new Map,Vr.elementStyles=[],Vr.shadowRootOptions={mode:"open"},Zg==null||Zg({ReactiveElement:Vr}),((Tl=globalThis.reactiveElementVersions)!==null&&Tl!==void 0?Tl:globalThis.reactiveElementVersions=[]).push("1.3.2");/**
1358
+ */var kl;const e1=window.trustedTypes,u5=e1?e1.emptyScript:"",t1=window.reactiveElementPolyfillSupport,Nl={toAttribute(t,e){switch(e){case Boolean:t=t?u5:null;break;case Object:case Array:t=t==null?t:JSON.stringify(t)}return t},fromAttribute(t,e){let n=t;switch(e){case Boolean:n=t!==null;break;case Number:n=t===null?null:Number(t);break;case Object:case Array:try{n=JSON.parse(t)}catch{n=null}}return n}},n1=(t,e)=>e!==t&&(e==e||t==t),Ll={attribute:!0,type:String,converter:Nl,reflect:!1,hasChanged:n1};class Vr extends HTMLElement{constructor(){super(),this._$Et=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Ei=null,this.o()}static addInitializer(e){var n;(n=this.l)!==null&&n!==void 0||(this.l=[]),this.l.push(e)}static get observedAttributes(){this.finalize();const e=[];return this.elementProperties.forEach((n,r)=>{const i=this._$Eh(r,n);i!==void 0&&(this._$Eu.set(i,r),e.push(i))}),e}static createProperty(e,n=Ll){if(n.state&&(n.attribute=!1),this.finalize(),this.elementProperties.set(e,n),!n.noAccessor&&!this.prototype.hasOwnProperty(e)){const r=typeof e=="symbol"?Symbol():"__"+e,i=this.getPropertyDescriptor(e,r,n);i!==void 0&&Object.defineProperty(this.prototype,e,i)}}static getPropertyDescriptor(e,n,r){return{get(){return this[n]},set(i){const o=this[e];this[n]=i,this.requestUpdate(e,o,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)||Ll}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const e=Object.getPrototypeOf(this);if(e.finalize(),this.elementProperties=new Map(e.elementProperties),this._$Eu=new Map,this.hasOwnProperty("properties")){const n=this.properties,r=[...Object.getOwnPropertyNames(n),...Object.getOwnPropertySymbols(n)];for(const i of r)this.createProperty(i,n[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(e){const n=[];if(Array.isArray(e)){const r=new Set(e.flat(1/0).reverse());for(const i of r)n.unshift($g(i))}else e!==void 0&&n.push($g(e));return n}static _$Eh(e,n){const r=n.attribute;return r===!1?void 0:typeof r=="string"?r:typeof e=="string"?e.toLowerCase():void 0}o(){var e;this._$Ep=new Promise(n=>this.enableUpdating=n),this._$AL=new Map,this._$Em(),this.requestUpdate(),(e=this.constructor.l)===null||e===void 0||e.forEach(n=>n(this))}addController(e){var n,r;((n=this._$Eg)!==null&&n!==void 0?n:this._$Eg=[]).push(e),this.renderRoot!==void 0&&this.isConnected&&((r=e.hostConnected)===null||r===void 0||r.call(e))}removeController(e){var n;(n=this._$Eg)===null||n===void 0||n.splice(this._$Eg.indexOf(e)>>>0,1)}_$Em(){this.constructor.elementProperties.forEach((e,n)=>{this.hasOwnProperty(n)&&(this._$Et.set(n,this[n]),delete this[n])})}createRenderRoot(){var e;const n=(e=this.shadowRoot)!==null&&e!==void 0?e:this.attachShadow(this.constructor.shadowRootOptions);return c5(n,this.constructor.elementStyles),n}connectedCallback(){var e;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(e=this._$Eg)===null||e===void 0||e.forEach(n=>{var r;return(r=n.hostConnected)===null||r===void 0?void 0:r.call(n)})}enableUpdating(e){}disconnectedCallback(){var e;(e=this._$Eg)===null||e===void 0||e.forEach(n=>{var r;return(r=n.hostDisconnected)===null||r===void 0?void 0:r.call(n)})}attributeChangedCallback(e,n,r){this._$AK(e,r)}_$ES(e,n,r=Ll){var i,o;const a=this.constructor._$Eh(e,r);if(a!==void 0&&r.reflect===!0){const s=((o=(i=r.converter)===null||i===void 0?void 0:i.toAttribute)!==null&&o!==void 0?o:Nl.toAttribute)(n,r.type);this._$Ei=e,s==null?this.removeAttribute(a):this.setAttribute(a,s),this._$Ei=null}}_$AK(e,n){var r,i,o;const a=this.constructor,s=a._$Eu.get(e);if(s!==void 0&&this._$Ei!==s){const c=a.getPropertyOptions(s),u=c.converter,f=(o=(i=(r=u)===null||r===void 0?void 0:r.fromAttribute)!==null&&i!==void 0?i:typeof u=="function"?u:null)!==null&&o!==void 0?o:Nl.fromAttribute;this._$Ei=s,this[s]=f(n,c.type),this._$Ei=null}}requestUpdate(e,n,r){let i=!0;e!==void 0&&(((r=r||this.constructor.getPropertyOptions(e)).hasChanged||n1)(this[e],n)?(this._$AL.has(e)||this._$AL.set(e,n),r.reflect===!0&&this._$Ei!==e&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(e,r))):i=!1),!this.isUpdatePending&&i&&(this._$Ep=this._$E_())}async _$E_(){this.isUpdatePending=!0;try{await this._$Ep}catch(n){Promise.reject(n)}const e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var e;if(!this.isUpdatePending)return;this.hasUpdated,this._$Et&&(this._$Et.forEach((i,o)=>this[o]=i),this._$Et=void 0);let n=!1;const r=this._$AL;try{n=this.shouldUpdate(r),n?(this.willUpdate(r),(e=this._$Eg)===null||e===void 0||e.forEach(i=>{var o;return(o=i.hostUpdate)===null||o===void 0?void 0:o.call(i)}),this.update(r)):this._$EU()}catch(i){throw n=!1,this._$EU(),i}n&&this._$AE(r)}willUpdate(e){}_$AE(e){var n;(n=this._$Eg)===null||n===void 0||n.forEach(r=>{var i;return(i=r.hostUpdated)===null||i===void 0?void 0:i.call(r)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Ep}shouldUpdate(e){return!0}update(e){this._$EC!==void 0&&(this._$EC.forEach((n,r)=>this._$ES(r,this[r],n)),this._$EC=void 0),this._$EU()}updated(e){}firstUpdated(e){}}Vr.finalized=!0,Vr.elementProperties=new Map,Vr.elementStyles=[],Vr.shadowRootOptions={mode:"open"},t1==null||t1({ReactiveElement:Vr}),((kl=globalThis.reactiveElementVersions)!==null&&kl!==void 0?kl:globalThis.reactiveElementVersions=[]).push("1.3.2");/**
1359
1359
  * @license
1360
1360
  * Copyright 2017 Google LLC
1361
1361
  * SPDX-License-Identifier: BSD-3-Clause
1362
- */var Nl,Ll;class Bt extends Vr{constructor(){super(...arguments),this.renderOptions={host:this},this._$Dt=void 0}createRenderRoot(){var e,n;const r=super.createRenderRoot();return(e=(n=this.renderOptions).renderBefore)!==null&&e!==void 0||(n.renderBefore=r.firstChild),r}update(e){const n=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Dt=Be(n,this.renderRoot,this.renderOptions)}connectedCallback(){var e;super.connectedCallback(),(e=this._$Dt)===null||e===void 0||e.setConnected(!0)}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this._$Dt)===null||e===void 0||e.setConnected(!1)}render(){return xe}}Bt.finalized=!0,Bt._$litElement$=!0,(Nl=globalThis.litElementHydrateSupport)===null||Nl===void 0||Nl.call(globalThis,{LitElement:Bt});const Kg=globalThis.litElementPolyfillSupport;Kg==null||Kg({LitElement:Bt}),((Ll=globalThis.litElementVersions)!==null&&Ll!==void 0?Ll:globalThis.litElementVersions=[]).push("3.2.0");/**
1362
+ */var Bl,Ol;class Bt extends Vr{constructor(){super(...arguments),this.renderOptions={host:this},this._$Dt=void 0}createRenderRoot(){var e,n;const r=super.createRenderRoot();return(e=(n=this.renderOptions).renderBefore)!==null&&e!==void 0||(n.renderBefore=r.firstChild),r}update(e){const n=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Dt=Be(n,this.renderRoot,this.renderOptions)}connectedCallback(){var e;super.connectedCallback(),(e=this._$Dt)===null||e===void 0||e.setConnected(!0)}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this._$Dt)===null||e===void 0||e.setConnected(!1)}render(){return we}}Bt.finalized=!0,Bt._$litElement$=!0,(Bl=globalThis.litElementHydrateSupport)===null||Bl===void 0||Bl.call(globalThis,{LitElement:Bt});const r1=globalThis.litElementPolyfillSupport;r1==null||r1({LitElement:Bt}),((Ol=globalThis.litElementVersions)!==null&&Ol!==void 0?Ol:globalThis.litElementVersions=[]).push("3.2.0");/**
1363
1363
  * @license
1364
1364
  * Copyright 2017 Google LLC
1365
1365
  * SPDX-License-Identifier: BSD-3-Clause
1366
- */const Ot={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Yr=t=>(...e)=>({_$litDirective$:t,values:e});class ho{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,n,r){this._$Ct=e,this._$AM=n,this._$Ci=r}_$AS(e,n){return this.update(e,n)}update(e,n){return this.render(...n)}}/**
1366
+ */const Ot={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Yr=t=>(...e)=>({_$litDirective$:t,values:e});class po{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,n,r){this._$Ct=e,this._$AM=n,this._$Ci=r}_$AS(e,n){return this.update(e,n)}update(e,n){return this.render(...n)}}/**
1367
1367
  * @license
1368
1368
  * Copyright 2018 Google LLC
1369
1369
  * SPDX-License-Identifier: BSD-3-Clause
1370
- */const s5=Yr(class extends ho{constructor(t){var e;if(super(t),t.type!==Ot.ATTRIBUTE||t.name!=="class"||((e=t.strings)===null||e===void 0?void 0:e.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return" "+Object.keys(t).filter(e=>t[e]).join(" ")+" "}update(t,[e]){var n,r;if(this.et===void 0){this.et=new Set,t.strings!==void 0&&(this.st=new Set(t.strings.join(" ").split(/\s/).filter(o=>o!=="")));for(const o in e)e[o]&&!(!((n=this.st)===null||n===void 0)&&n.has(o))&&this.et.add(o);return this.render(e)}const i=t.element.classList;this.et.forEach(o=>{o in e||(i.remove(o),this.et.delete(o))});for(const o in e){const a=!!e[o];a===this.et.has(o)||((r=this.st)===null||r===void 0?void 0:r.has(o))||(a?(i.add(o),this.et.add(o)):(i.remove(o),this.et.delete(o)))}return xe}});/*!
1370
+ */const l5=Yr(class extends po{constructor(t){var e;if(super(t),t.type!==Ot.ATTRIBUTE||t.name!=="class"||((e=t.strings)===null||e===void 0?void 0:e.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return" "+Object.keys(t).filter(e=>t[e]).join(" ")+" "}update(t,[e]){var n,r;if(this.et===void 0){this.et=new Set,t.strings!==void 0&&(this.st=new Set(t.strings.join(" ").split(/\s/).filter(o=>o!=="")));for(const o in e)e[o]&&!(!((n=this.st)===null||n===void 0)&&n.has(o))&&this.et.add(o);return this.render(e)}const i=t.element.classList;this.et.forEach(o=>{o in e||(i.remove(o),this.et.delete(o))});for(const o in e){const a=!!e[o];a===this.et.has(o)||((r=this.st)===null||r===void 0?void 0:r.has(o))||(a?(i.add(o),this.et.add(o)):(i.remove(o),this.et.delete(o)))}return we}});/*!
1371
1371
  * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com
1372
1372
  * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
1373
1373
  * Copyright 2022 Fonticons, Inc.
1374
- */var c5={prefix:"fas",iconName:"arrow-down-wide-short",icon:[576,512,["sort-amount-asc","sort-amount-down"],"f160","M416 288h-95.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H416c17.67 0 32-14.33 32-32S433.7 288 416 288zM544 32h-223.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H544c17.67 0 32-14.33 32-32S561.7 32 544 32zM352 416h-32c-17.67 0-32 14.33-32 32s14.33 32 32 32h32c17.67 0 31.1-14.33 31.1-32S369.7 416 352 416zM480 160h-159.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H480c17.67 0 32-14.33 32-32S497.7 160 480 160zM192.4 330.7L160 366.1V64.03C160 46.33 145.7 32 128 32S96 46.33 96 64.03v302L63.6 330.7c-6.312-6.883-14.94-10.38-23.61-10.38c-7.719 0-15.47 2.781-21.61 8.414c-13.03 11.95-13.9 32.22-1.969 45.27l87.1 96.09c12.12 13.26 35.06 13.26 47.19 0l87.1-96.09c11.94-13.05 11.06-33.31-1.969-45.27C224.6 316.8 204.4 317.7 192.4 330.7z"]},u5=c5,l5={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M480 256c0 123.4-100.5 223.9-223.9 223.9c-48.86 0-95.19-15.58-134.2-44.86c-14.14-10.59-17-30.66-6.391-44.81c10.61-14.09 30.69-16.97 44.8-6.375c27.84 20.91 61 31.94 95.89 31.94C344.3 415.8 416 344.1 416 256s-71.67-159.8-159.8-159.8C205.9 96.22 158.6 120.3 128.6 160H192c17.67 0 32 14.31 32 32S209.7 224 192 224H48c-17.67 0-32-14.31-32-32V48c0-17.69 14.33-32 32-32s32 14.31 32 32v70.23C122.1 64.58 186.1 32.11 256.1 32.11C379.5 32.11 480 132.6 480 256z"]},f5=l5,d5={prefix:"fas",iconName:"arrow-rotate-right",icon:[512,512,[8635,"arrow-right-rotate","arrow-rotate-forward","redo"],"f01e","M496 48V192c0 17.69-14.31 32-32 32H320c-17.69 0-32-14.31-32-32s14.31-32 32-32h63.39c-29.97-39.7-77.25-63.78-127.6-63.78C167.7 96.22 96 167.9 96 256s71.69 159.8 159.8 159.8c34.88 0 68.03-11.03 95.88-31.94c14.22-10.53 34.22-7.75 44.81 6.375c10.59 14.16 7.75 34.22-6.375 44.81c-39.03 29.28-85.36 44.86-134.2 44.86C132.5 479.9 32 379.4 32 256s100.5-223.9 223.9-223.9c69.15 0 134 32.47 176.1 86.12V48c0-17.69 14.31-32 32-32S496 30.31 496 48z"]},h5=d5,p5={prefix:"fas",iconName:"backward-step",icon:[320,512,["step-backward"],"f048","M31.1 64.03c-17.67 0-31.1 14.33-31.1 32v319.9c0 17.67 14.33 32 32 32C49.67 447.1 64 433.6 64 415.1V96.03C64 78.36 49.67 64.03 31.1 64.03zM267.5 71.41l-192 159.1C67.82 237.8 64 246.9 64 256c0 9.094 3.82 18.18 11.44 24.62l192 159.1c20.63 17.12 52.51 2.75 52.51-24.62v-319.9C319.1 68.66 288.1 54.28 267.5 71.41z"]},m5=p5,Jg={prefix:"fas",iconName:"bookmark",icon:[384,512,[61591,128278],"f02e","M384 48V512l-192-112L0 512V48C0 21.5 21.5 0 48 0h288C362.5 0 384 21.5 384 48z"]},g5={prefix:"fas",iconName:"check",icon:[448,512,[10004,10003],"f00c","M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"]},y5={prefix:"fas",iconName:"chevron-down",icon:[448,512,[],"f078","M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"]},$g={prefix:"fas",iconName:"circle",icon:[512,512,[128308,128309,128992,128993,128994,128995,128996,9898,9899,11044,61708,61915,9679],"f111","M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z"]},b5={prefix:"fas",iconName:"circle-exclamation",icon:[512,512,["exclamation-circle"],"f06a","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM232 152C232 138.8 242.8 128 256 128s24 10.75 24 24v128c0 13.25-10.75 24-24 24S232 293.3 232 280V152zM256 400c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 385.9 273.4 400 256 400z"]},v5=b5,A5={prefix:"fas",iconName:"circle-info",icon:[512,512,["info-circle"],"f05a","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"]},e1=A5,x5={prefix:"fas",iconName:"circle-question",icon:[512,512,[62108,"question-circle"],"f059","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 400c-18 0-32-14-32-32s13.1-32 32-32c17.1 0 32 14 32 32S273.1 400 256 400zM325.1 258L280 286V288c0 13-11 24-24 24S232 301 232 288V272c0-8 4-16 12-21l57-34C308 213 312 206 312 198C312 186 301.1 176 289.1 176h-51.1C225.1 176 216 186 216 198c0 13-11 24-24 24s-24-11-24-24C168 159 199 128 237.1 128h51.1C329 128 360 159 360 198C360 222 347 245 325.1 258z"]},w5=x5,C5={prefix:"fas",iconName:"ellipsis",icon:[448,512,["ellipsis-h"],"f141","M120 256C120 286.9 94.93 312 64 312C33.07 312 8 286.9 8 256C8 225.1 33.07 200 64 200C94.93 200 120 225.1 120 256zM280 256C280 286.9 254.9 312 224 312C193.1 312 168 286.9 168 256C168 225.1 193.1 200 224 200C254.9 200 280 225.1 280 256zM328 256C328 225.1 353.1 200 384 200C414.9 200 440 225.1 440 256C440 286.9 414.9 312 384 312C353.1 312 328 286.9 328 256z"]},S5=C5,E5={prefix:"fas",iconName:"ellipsis-vertical",icon:[128,512,["ellipsis-v"],"f142","M64 360C94.93 360 120 385.1 120 416C120 446.9 94.93 472 64 472C33.07 472 8 446.9 8 416C8 385.1 33.07 360 64 360zM64 200C94.93 200 120 225.1 120 256C120 286.9 94.93 312 64 312C33.07 312 8 286.9 8 256C8 225.1 33.07 200 64 200zM64 152C33.07 152 8 126.9 8 96C8 65.07 33.07 40 64 40C94.93 40 120 65.07 120 96C120 126.9 94.93 152 64 152z"]},D5=E5,er={prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M3.853 54.87C10.47 40.9 24.54 32 40 32H472C487.5 32 501.5 40.9 508.1 54.87C514.8 68.84 512.7 85.37 502.1 97.33L320 320.9V448C320 460.1 313.2 471.2 302.3 476.6C291.5 482 278.5 480.9 268.8 473.6L204.8 425.6C196.7 419.6 192 410.1 192 400V320.9L9.042 97.33C-.745 85.37-2.765 68.84 3.854 54.87L3.853 54.87z"]},M5={prefix:"fas",iconName:"forward-step",icon:[320,512,["step-forward"],"f051","M287.1 447.1c17.67 0 31.1-14.33 31.1-32V96.03c0-17.67-14.33-32-32-32c-17.67 0-31.1 14.33-31.1 31.1v319.9C255.1 433.6 270.3 447.1 287.1 447.1zM52.51 440.6l192-159.1c7.625-6.436 11.43-15.53 11.43-24.62c0-9.094-3.809-18.18-11.43-24.62l-192-159.1C31.88 54.28 0 68.66 0 96.03v319.9C0 443.3 31.88 457.7 52.51 440.6z"]},T5=M5,I5={prefix:"fas",iconName:"maximize",icon:[448,512,["expand-arrows-alt"],"f31e","M447.1 319.1v135.1c0 13.26-10.75 23.1-23.1 23.1h-135.1c-12.94 0-24.61-7.781-29.56-19.75c-4.906-11.1-2.203-25.72 6.937-34.87l30.06-30.06L224 323.9l-71.43 71.44l30.06 30.06c9.156 9.156 11.91 22.91 6.937 34.87C184.6 472.2 172.9 479.1 160 479.1H24c-13.25 0-23.1-10.74-23.1-23.1v-135.1c0-12.94 7.781-24.61 19.75-29.56C23.72 288.8 27.88 288 32 288c8.312 0 16.5 3.242 22.63 9.367l30.06 30.06l71.44-71.44L84.69 184.6L54.63 214.6c-9.156 9.156-22.91 11.91-34.87 6.937C7.798 216.6 .0013 204.9 .0013 191.1v-135.1c0-13.26 10.75-23.1 23.1-23.1h135.1c12.94 0 24.61 7.781 29.56 19.75C191.2 55.72 191.1 59.87 191.1 63.1c0 8.312-3.237 16.5-9.362 22.63L152.6 116.7l71.44 71.44l71.43-71.44l-30.06-30.06c-9.156-9.156-11.91-22.91-6.937-34.87c4.937-11.95 16.62-19.75 29.56-19.75h135.1c13.26 0 23.1 10.75 23.1 23.1v135.1c0 12.94-7.781 24.61-19.75 29.56c-11.1 4.906-25.72 2.203-34.87-6.937l-30.06-30.06l-71.43 71.43l71.44 71.44l30.06-30.06c9.156-9.156 22.91-11.91 34.87-6.937C440.2 295.4 447.1 307.1 447.1 319.1z"]},k5=I5,t1={prefix:"fas",iconName:"medal",icon:[512,512,[127941],"f5a2","M223.7 130.8L149.1 7.77C147.1 2.949 141.9 0 136.3 0H16.03c-12.95 0-20.53 14.58-13.1 25.18l111.3 158.9C143.9 156.4 181.7 137.3 223.7 130.8zM256 160c-97.25 0-176 78.75-176 176S158.8 512 256 512s176-78.75 176-176S353.3 160 256 160zM348.5 317.3l-37.88 37l8.875 52.25c1.625 9.25-8.25 16.5-16.63 12l-46.88-24.62L209.1 418.5c-8.375 4.5-18.25-2.75-16.63-12l8.875-52.25l-37.88-37C156.6 310.6 160.5 299 169.9 297.6l52.38-7.625L245.7 242.5c2-4.25 6.125-6.375 10.25-6.375S264.2 238.3 266.2 242.5l23.5 47.5l52.38 7.625C351.6 299 355.4 310.6 348.5 317.3zM495.1 0H375.7c-5.621 0-10.83 2.949-13.72 7.77l-73.76 122.1c42 6.5 79.88 25.62 109.5 53.38l111.3-158.9C516.5 14.58 508.9 0 495.1 0z"]},po={prefix:"fas",iconName:"object-group",icon:[576,512,[],"f247","M128 160C128 142.3 142.3 128 160 128H288C305.7 128 320 142.3 320 160V256C320 273.7 305.7 288 288 288H160C142.3 288 128 273.7 128 256V160zM288 320C323.3 320 352 291.3 352 256V224H416C433.7 224 448 238.3 448 256V352C448 369.7 433.7 384 416 384H288C270.3 384 256 369.7 256 352V320H288zM32 119.4C12.87 108.4 0 87.69 0 64C0 28.65 28.65 0 64 0C87.69 0 108.4 12.87 119.4 32H456.6C467.6 12.87 488.3 0 512 0C547.3 0 576 28.65 576 64C576 87.69 563.1 108.4 544 119.4V392.6C563.1 403.6 576 424.3 576 448C576 483.3 547.3 512 512 512C488.3 512 467.6 499.1 456.6 480H119.4C108.4 499.1 87.69 512 64 512C28.65 512 0 483.3 0 448C0 424.3 12.87 403.6 32 392.6V119.4zM119.4 96C113.8 105.7 105.7 113.8 96 119.4V392.6C105.7 398.2 113.8 406.3 119.4 416H456.6C462.2 406.3 470.3 398.2 480 392.6V119.4C470.3 113.8 462.2 105.7 456.6 96H119.4z"]},N5={prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.32C387.7-5.678 428.3-5.678 453.3 19.32L492.7 58.75C517.7 83.74 517.7 124.3 492.7 149.3L444.3 197.7L314.3 67.72L362.7 19.32zM421.7 220.3L188.5 453.4C178.1 463.8 165.2 471.5 151.1 475.6L30.77 511C22.35 513.5 13.24 511.2 7.03 504.1C.8198 498.8-1.502 489.7 .976 481.2L36.37 360.9C40.53 346.8 48.16 333.9 58.57 323.5L291.7 90.34L421.7 220.3z"]},Bl={prefix:"fas",iconName:"share",icon:[512,512,["arrow-turn-right","mail-forward"],"f064","M503.7 226.2l-176 151.1c-15.38 13.3-39.69 2.545-39.69-18.16V272.1C132.9 274.3 66.06 312.8 111.4 457.8c5.031 16.09-14.41 28.56-28.06 18.62C39.59 444.6 0 383.8 0 322.3c0-152.2 127.4-184.4 288-186.3V56.02c0-20.67 24.28-31.46 39.69-18.16l176 151.1C514.8 199.4 514.8 216.6 503.7 226.2z"]},L5={prefix:"fas",iconName:"sliders",icon:[512,512,["sliders-h"],"f1de","M0 416C0 398.3 14.33 384 32 384H86.66C99 355.7 127.2 336 160 336C192.8 336 220.1 355.7 233.3 384H480C497.7 384 512 398.3 512 416C512 433.7 497.7 448 480 448H233.3C220.1 476.3 192.8 496 160 496C127.2 496 99 476.3 86.66 448H32C14.33 448 0 433.7 0 416V416zM192 416C192 398.3 177.7 384 160 384C142.3 384 128 398.3 128 416C128 433.7 142.3 448 160 448C177.7 448 192 433.7 192 416zM352 176C384.8 176 412.1 195.7 425.3 224H480C497.7 224 512 238.3 512 256C512 273.7 497.7 288 480 288H425.3C412.1 316.3 384.8 336 352 336C319.2 336 291 316.3 278.7 288H32C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224H278.7C291 195.7 319.2 176 352 176zM384 256C384 238.3 369.7 224 352 224C334.3 224 320 238.3 320 256C320 273.7 334.3 288 352 288C369.7 288 384 273.7 384 256zM480 64C497.7 64 512 78.33 512 96C512 113.7 497.7 128 480 128H265.3C252.1 156.3 224.8 176 192 176C159.2 176 131 156.3 118.7 128H32C14.33 128 0 113.7 0 96C0 78.33 14.33 64 32 64H118.7C131 35.75 159.2 16 192 16C224.8 16 252.1 35.75 265.3 64H480zM160 96C160 113.7 174.3 128 192 128C209.7 128 224 113.7 224 96C224 78.33 209.7 64 192 64C174.3 64 160 78.33 160 96z"]},B5=L5,O5={prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M135.2 17.69C140.6 6.848 151.7 0 163.8 0H284.2C296.3 0 307.4 6.848 312.8 17.69L320 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H128L135.2 17.69zM394.8 466.1C393.2 492.3 372.3 512 346.9 512H101.1C75.75 512 54.77 492.3 53.19 466.1L31.1 128H416L394.8 466.1z"]},P5={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.69C140.6 6.848 151.7 0 163.8 0H284.2C296.3 0 307.4 6.848 312.8 17.69L320 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H128L135.2 17.69zM31.1 128H416V448C416 483.3 387.3 512 352 512H95.1C60.65 512 31.1 483.3 31.1 448V128zM111.1 208V432C111.1 440.8 119.2 448 127.1 448C136.8 448 143.1 440.8 143.1 432V208C143.1 199.2 136.8 192 127.1 192C119.2 192 111.1 199.2 111.1 208zM207.1 208V432C207.1 440.8 215.2 448 223.1 448C232.8 448 240 440.8 240 432V208C240 199.2 232.8 192 223.1 192C215.2 192 207.1 199.2 207.1 208zM304 208V432C304 440.8 311.2 448 320 448C328.8 448 336 440.8 336 432V208C336 199.2 328.8 192 320 192C311.2 192 304 199.2 304 208z"]},Ol=P5,F5={prefix:"fas",iconName:"up-down",icon:[256,512,[11021,8597,"arrows-alt-v"],"f338","M249.6 392.3l-104 112c-9.094 9.781-26.09 9.781-35.19 0l-103.1-112c-6.484-6.984-8.219-17.17-4.406-25.92S14.45 352 24 352H80V160H24C14.45 160 5.812 154.3 1.999 145.6C-1.813 136.8-.0781 126.7 6.406 119.7l104-112c9.094-9.781 26.09-9.781 35.19 0l104 112c6.484 6.984 8.219 17.17 4.406 25.92C250.2 154.3 241.5 160 232 160H176v192h56c9.547 0 18.19 5.656 22 14.41S256.1 385.3 249.6 392.3z"]},z5=F5;/*!
1374
+ */var f5={prefix:"fas",iconName:"arrow-down-wide-short",icon:[576,512,["sort-amount-asc","sort-amount-down"],"f160","M416 288h-95.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H416c17.67 0 32-14.33 32-32S433.7 288 416 288zM544 32h-223.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H544c17.67 0 32-14.33 32-32S561.7 32 544 32zM352 416h-32c-17.67 0-32 14.33-32 32s14.33 32 32 32h32c17.67 0 31.1-14.33 31.1-32S369.7 416 352 416zM480 160h-159.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H480c17.67 0 32-14.33 32-32S497.7 160 480 160zM192.4 330.7L160 366.1V64.03C160 46.33 145.7 32 128 32S96 46.33 96 64.03v302L63.6 330.7c-6.312-6.883-14.94-10.38-23.61-10.38c-7.719 0-15.47 2.781-21.61 8.414c-13.03 11.95-13.9 32.22-1.969 45.27l87.1 96.09c12.12 13.26 35.06 13.26 47.19 0l87.1-96.09c11.94-13.05 11.06-33.31-1.969-45.27C224.6 316.8 204.4 317.7 192.4 330.7z"]},d5=f5,h5={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M480 256c0 123.4-100.5 223.9-223.9 223.9c-48.86 0-95.19-15.58-134.2-44.86c-14.14-10.59-17-30.66-6.391-44.81c10.61-14.09 30.69-16.97 44.8-6.375c27.84 20.91 61 31.94 95.89 31.94C344.3 415.8 416 344.1 416 256s-71.67-159.8-159.8-159.8C205.9 96.22 158.6 120.3 128.6 160H192c17.67 0 32 14.31 32 32S209.7 224 192 224H48c-17.67 0-32-14.31-32-32V48c0-17.69 14.33-32 32-32s32 14.31 32 32v70.23C122.1 64.58 186.1 32.11 256.1 32.11C379.5 32.11 480 132.6 480 256z"]},p5=h5,m5={prefix:"fas",iconName:"arrow-rotate-right",icon:[512,512,[8635,"arrow-right-rotate","arrow-rotate-forward","redo"],"f01e","M496 48V192c0 17.69-14.31 32-32 32H320c-17.69 0-32-14.31-32-32s14.31-32 32-32h63.39c-29.97-39.7-77.25-63.78-127.6-63.78C167.7 96.22 96 167.9 96 256s71.69 159.8 159.8 159.8c34.88 0 68.03-11.03 95.88-31.94c14.22-10.53 34.22-7.75 44.81 6.375c10.59 14.16 7.75 34.22-6.375 44.81c-39.03 29.28-85.36 44.86-134.2 44.86C132.5 479.9 32 379.4 32 256s100.5-223.9 223.9-223.9c69.15 0 134 32.47 176.1 86.12V48c0-17.69 14.31-32 32-32S496 30.31 496 48z"]},g5=m5,y5={prefix:"fas",iconName:"backward-step",icon:[320,512,["step-backward"],"f048","M31.1 64.03c-17.67 0-31.1 14.33-31.1 32v319.9c0 17.67 14.33 32 32 32C49.67 447.1 64 433.6 64 415.1V96.03C64 78.36 49.67 64.03 31.1 64.03zM267.5 71.41l-192 159.1C67.82 237.8 64 246.9 64 256c0 9.094 3.82 18.18 11.44 24.62l192 159.1c20.63 17.12 52.51 2.75 52.51-24.62v-319.9C319.1 68.66 288.1 54.28 267.5 71.41z"]},b5=y5,i1={prefix:"fas",iconName:"bookmark",icon:[384,512,[61591,128278],"f02e","M384 48V512l-192-112L0 512V48C0 21.5 21.5 0 48 0h288C362.5 0 384 21.5 384 48z"]},v5={prefix:"fas",iconName:"check",icon:[448,512,[10004,10003],"f00c","M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"]},A5={prefix:"fas",iconName:"chevron-down",icon:[448,512,[],"f078","M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"]},o1={prefix:"fas",iconName:"circle",icon:[512,512,[128308,128309,128992,128993,128994,128995,128996,9898,9899,11044,61708,61915,9679],"f111","M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z"]},x5={prefix:"fas",iconName:"circle-exclamation",icon:[512,512,["exclamation-circle"],"f06a","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM232 152C232 138.8 242.8 128 256 128s24 10.75 24 24v128c0 13.25-10.75 24-24 24S232 293.3 232 280V152zM256 400c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 385.9 273.4 400 256 400z"]},w5=x5,C5={prefix:"fas",iconName:"circle-info",icon:[512,512,["info-circle"],"f05a","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"]},a1=C5,S5={prefix:"fas",iconName:"circle-question",icon:[512,512,[62108,"question-circle"],"f059","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 400c-18 0-32-14-32-32s13.1-32 32-32c17.1 0 32 14 32 32S273.1 400 256 400zM325.1 258L280 286V288c0 13-11 24-24 24S232 301 232 288V272c0-8 4-16 12-21l57-34C308 213 312 206 312 198C312 186 301.1 176 289.1 176h-51.1C225.1 176 216 186 216 198c0 13-11 24-24 24s-24-11-24-24C168 159 199 128 237.1 128h51.1C329 128 360 159 360 198C360 222 347 245 325.1 258z"]},E5=S5,D5={prefix:"fas",iconName:"ellipsis",icon:[448,512,["ellipsis-h"],"f141","M120 256C120 286.9 94.93 312 64 312C33.07 312 8 286.9 8 256C8 225.1 33.07 200 64 200C94.93 200 120 225.1 120 256zM280 256C280 286.9 254.9 312 224 312C193.1 312 168 286.9 168 256C168 225.1 193.1 200 224 200C254.9 200 280 225.1 280 256zM328 256C328 225.1 353.1 200 384 200C414.9 200 440 225.1 440 256C440 286.9 414.9 312 384 312C353.1 312 328 286.9 328 256z"]},M5=D5,T5={prefix:"fas",iconName:"ellipsis-vertical",icon:[128,512,["ellipsis-v"],"f142","M64 360C94.93 360 120 385.1 120 416C120 446.9 94.93 472 64 472C33.07 472 8 446.9 8 416C8 385.1 33.07 360 64 360zM64 200C94.93 200 120 225.1 120 256C120 286.9 94.93 312 64 312C33.07 312 8 286.9 8 256C8 225.1 33.07 200 64 200zM64 152C33.07 152 8 126.9 8 96C8 65.07 33.07 40 64 40C94.93 40 120 65.07 120 96C120 126.9 94.93 152 64 152z"]},I5=T5,er={prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M3.853 54.87C10.47 40.9 24.54 32 40 32H472C487.5 32 501.5 40.9 508.1 54.87C514.8 68.84 512.7 85.37 502.1 97.33L320 320.9V448C320 460.1 313.2 471.2 302.3 476.6C291.5 482 278.5 480.9 268.8 473.6L204.8 425.6C196.7 419.6 192 410.1 192 400V320.9L9.042 97.33C-.745 85.37-2.765 68.84 3.854 54.87L3.853 54.87z"]},k5={prefix:"fas",iconName:"forward-step",icon:[320,512,["step-forward"],"f051","M287.1 447.1c17.67 0 31.1-14.33 31.1-32V96.03c0-17.67-14.33-32-32-32c-17.67 0-31.1 14.33-31.1 31.1v319.9C255.1 433.6 270.3 447.1 287.1 447.1zM52.51 440.6l192-159.1c7.625-6.436 11.43-15.53 11.43-24.62c0-9.094-3.809-18.18-11.43-24.62l-192-159.1C31.88 54.28 0 68.66 0 96.03v319.9C0 443.3 31.88 457.7 52.51 440.6z"]},N5=k5,L5={prefix:"fas",iconName:"maximize",icon:[448,512,["expand-arrows-alt"],"f31e","M447.1 319.1v135.1c0 13.26-10.75 23.1-23.1 23.1h-135.1c-12.94 0-24.61-7.781-29.56-19.75c-4.906-11.1-2.203-25.72 6.937-34.87l30.06-30.06L224 323.9l-71.43 71.44l30.06 30.06c9.156 9.156 11.91 22.91 6.937 34.87C184.6 472.2 172.9 479.1 160 479.1H24c-13.25 0-23.1-10.74-23.1-23.1v-135.1c0-12.94 7.781-24.61 19.75-29.56C23.72 288.8 27.88 288 32 288c8.312 0 16.5 3.242 22.63 9.367l30.06 30.06l71.44-71.44L84.69 184.6L54.63 214.6c-9.156 9.156-22.91 11.91-34.87 6.937C7.798 216.6 .0013 204.9 .0013 191.1v-135.1c0-13.26 10.75-23.1 23.1-23.1h135.1c12.94 0 24.61 7.781 29.56 19.75C191.2 55.72 191.1 59.87 191.1 63.1c0 8.312-3.237 16.5-9.362 22.63L152.6 116.7l71.44 71.44l71.43-71.44l-30.06-30.06c-9.156-9.156-11.91-22.91-6.937-34.87c4.937-11.95 16.62-19.75 29.56-19.75h135.1c13.26 0 23.1 10.75 23.1 23.1v135.1c0 12.94-7.781 24.61-19.75 29.56c-11.1 4.906-25.72 2.203-34.87-6.937l-30.06-30.06l-71.43 71.43l71.44 71.44l30.06-30.06c9.156-9.156 22.91-11.91 34.87-6.937C440.2 295.4 447.1 307.1 447.1 319.1z"]},B5=L5,s1={prefix:"fas",iconName:"medal",icon:[512,512,[127941],"f5a2","M223.7 130.8L149.1 7.77C147.1 2.949 141.9 0 136.3 0H16.03c-12.95 0-20.53 14.58-13.1 25.18l111.3 158.9C143.9 156.4 181.7 137.3 223.7 130.8zM256 160c-97.25 0-176 78.75-176 176S158.8 512 256 512s176-78.75 176-176S353.3 160 256 160zM348.5 317.3l-37.88 37l8.875 52.25c1.625 9.25-8.25 16.5-16.63 12l-46.88-24.62L209.1 418.5c-8.375 4.5-18.25-2.75-16.63-12l8.875-52.25l-37.88-37C156.6 310.6 160.5 299 169.9 297.6l52.38-7.625L245.7 242.5c2-4.25 6.125-6.375 10.25-6.375S264.2 238.3 266.2 242.5l23.5 47.5l52.38 7.625C351.6 299 355.4 310.6 348.5 317.3zM495.1 0H375.7c-5.621 0-10.83 2.949-13.72 7.77l-73.76 122.1c42 6.5 79.88 25.62 109.5 53.38l111.3-158.9C516.5 14.58 508.9 0 495.1 0z"]},mo={prefix:"fas",iconName:"object-group",icon:[576,512,[],"f247","M128 160C128 142.3 142.3 128 160 128H288C305.7 128 320 142.3 320 160V256C320 273.7 305.7 288 288 288H160C142.3 288 128 273.7 128 256V160zM288 320C323.3 320 352 291.3 352 256V224H416C433.7 224 448 238.3 448 256V352C448 369.7 433.7 384 416 384H288C270.3 384 256 369.7 256 352V320H288zM32 119.4C12.87 108.4 0 87.69 0 64C0 28.65 28.65 0 64 0C87.69 0 108.4 12.87 119.4 32H456.6C467.6 12.87 488.3 0 512 0C547.3 0 576 28.65 576 64C576 87.69 563.1 108.4 544 119.4V392.6C563.1 403.6 576 424.3 576 448C576 483.3 547.3 512 512 512C488.3 512 467.6 499.1 456.6 480H119.4C108.4 499.1 87.69 512 64 512C28.65 512 0 483.3 0 448C0 424.3 12.87 403.6 32 392.6V119.4zM119.4 96C113.8 105.7 105.7 113.8 96 119.4V392.6C105.7 398.2 113.8 406.3 119.4 416H456.6C462.2 406.3 470.3 398.2 480 392.6V119.4C470.3 113.8 462.2 105.7 456.6 96H119.4z"]},O5={prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.32C387.7-5.678 428.3-5.678 453.3 19.32L492.7 58.75C517.7 83.74 517.7 124.3 492.7 149.3L444.3 197.7L314.3 67.72L362.7 19.32zM421.7 220.3L188.5 453.4C178.1 463.8 165.2 471.5 151.1 475.6L30.77 511C22.35 513.5 13.24 511.2 7.03 504.1C.8198 498.8-1.502 489.7 .976 481.2L36.37 360.9C40.53 346.8 48.16 333.9 58.57 323.5L291.7 90.34L421.7 220.3z"]},Pl={prefix:"fas",iconName:"share",icon:[512,512,["arrow-turn-right","mail-forward"],"f064","M503.7 226.2l-176 151.1c-15.38 13.3-39.69 2.545-39.69-18.16V272.1C132.9 274.3 66.06 312.8 111.4 457.8c5.031 16.09-14.41 28.56-28.06 18.62C39.59 444.6 0 383.8 0 322.3c0-152.2 127.4-184.4 288-186.3V56.02c0-20.67 24.28-31.46 39.69-18.16l176 151.1C514.8 199.4 514.8 216.6 503.7 226.2z"]},P5={prefix:"fas",iconName:"sliders",icon:[512,512,["sliders-h"],"f1de","M0 416C0 398.3 14.33 384 32 384H86.66C99 355.7 127.2 336 160 336C192.8 336 220.1 355.7 233.3 384H480C497.7 384 512 398.3 512 416C512 433.7 497.7 448 480 448H233.3C220.1 476.3 192.8 496 160 496C127.2 496 99 476.3 86.66 448H32C14.33 448 0 433.7 0 416V416zM192 416C192 398.3 177.7 384 160 384C142.3 384 128 398.3 128 416C128 433.7 142.3 448 160 448C177.7 448 192 433.7 192 416zM352 176C384.8 176 412.1 195.7 425.3 224H480C497.7 224 512 238.3 512 256C512 273.7 497.7 288 480 288H425.3C412.1 316.3 384.8 336 352 336C319.2 336 291 316.3 278.7 288H32C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224H278.7C291 195.7 319.2 176 352 176zM384 256C384 238.3 369.7 224 352 224C334.3 224 320 238.3 320 256C320 273.7 334.3 288 352 288C369.7 288 384 273.7 384 256zM480 64C497.7 64 512 78.33 512 96C512 113.7 497.7 128 480 128H265.3C252.1 156.3 224.8 176 192 176C159.2 176 131 156.3 118.7 128H32C14.33 128 0 113.7 0 96C0 78.33 14.33 64 32 64H118.7C131 35.75 159.2 16 192 16C224.8 16 252.1 35.75 265.3 64H480zM160 96C160 113.7 174.3 128 192 128C209.7 128 224 113.7 224 96C224 78.33 209.7 64 192 64C174.3 64 160 78.33 160 96z"]},F5=P5,z5={prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M135.2 17.69C140.6 6.848 151.7 0 163.8 0H284.2C296.3 0 307.4 6.848 312.8 17.69L320 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H128L135.2 17.69zM394.8 466.1C393.2 492.3 372.3 512 346.9 512H101.1C75.75 512 54.77 492.3 53.19 466.1L31.1 128H416L394.8 466.1z"]},R5={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.69C140.6 6.848 151.7 0 163.8 0H284.2C296.3 0 307.4 6.848 312.8 17.69L320 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H128L135.2 17.69zM31.1 128H416V448C416 483.3 387.3 512 352 512H95.1C60.65 512 31.1 483.3 31.1 448V128zM111.1 208V432C111.1 440.8 119.2 448 127.1 448C136.8 448 143.1 440.8 143.1 432V208C143.1 199.2 136.8 192 127.1 192C119.2 192 111.1 199.2 111.1 208zM207.1 208V432C207.1 440.8 215.2 448 223.1 448C232.8 448 240 440.8 240 432V208C240 199.2 232.8 192 223.1 192C215.2 192 207.1 199.2 207.1 208zM304 208V432C304 440.8 311.2 448 320 448C328.8 448 336 440.8 336 432V208C336 199.2 328.8 192 320 192C311.2 192 304 199.2 304 208z"]},Fl=R5,j5={prefix:"fas",iconName:"up-down",icon:[256,512,[11021,8597,"arrows-alt-v"],"f338","M249.6 392.3l-104 112c-9.094 9.781-26.09 9.781-35.19 0l-103.1-112c-6.484-6.984-8.219-17.17-4.406-25.92S14.45 352 24 352H80V160H24C14.45 160 5.812 154.3 1.999 145.6C-1.813 136.8-.0781 126.7 6.406 119.7l104-112c9.094-9.781 26.09-9.781 35.19 0l104 112c6.484 6.984 8.219 17.17 4.406 25.92C250.2 154.3 241.5 160 232 160H176v192h56c9.547 0 18.19 5.656 22 14.41S256.1 385.3 249.6 392.3z"]},U5=j5;/*!
1375
1375
  * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com
1376
1376
  * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
1377
1377
  * Copyright 2022 Fonticons, Inc.
1378
- */function n1(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function k(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?n1(Object(n),!0).forEach(function(r){U5(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):n1(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function us(t){return us=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},us(t)}function R5(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r1(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function j5(t,e,n){return e&&r1(t.prototype,e),n&&r1(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function U5(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Pl(t,e){return H5(t)||V5(t,e)||i1(t,e)||_5()}function ls(t){return G5(t)||Q5(t)||i1(t)||Y5()}function G5(t){if(Array.isArray(t))return Fl(t)}function H5(t){if(Array.isArray(t))return t}function Q5(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function V5(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r=[],i=!0,o=!1,a,s;try{for(n=n.call(t);!(i=(a=n.next()).done)&&(r.push(a.value),!(e&&r.length===e));i=!0);}catch(c){o=!0,s=c}finally{try{!i&&n.return!=null&&n.return()}finally{if(o)throw s}}return r}}function i1(t,e){if(!!t){if(typeof t=="string")return Fl(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Fl(t,e)}}function Fl(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function Y5(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
1379
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _5(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1380
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o1=function(){},zl={},a1={},s1=null,c1={mark:o1,measure:o1};try{typeof window<"u"&&(zl=window),typeof document<"u"&&(a1=document),typeof MutationObserver<"u"&&(s1=MutationObserver),typeof performance<"u"&&(c1=performance)}catch{}var W5=zl.navigator||{},u1=W5.userAgent,l1=u1===void 0?"":u1,hn=zl,$=a1,f1=s1,fs=c1;hn.document;var Pt=!!$.documentElement&&!!$.head&&typeof $.addEventListener=="function"&&typeof $.createElement=="function",d1=~l1.indexOf("MSIE")||~l1.indexOf("Trident/"),Ft="___FONT_AWESOME___",Rl=16,h1="fa",p1="svg-inline--fa",tr="data-fa-i2svg",jl="data-fa-pseudo-element",X5="data-fa-pseudo-element-pending",Ul="data-prefix",Gl="data-icon",m1="fontawesome-i2svg",Z5="async",q5=["HTML","HEAD","STYLE","SCRIPT"],g1=function(){try{return!0}catch{return!1}}(),Hl={fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fad:"duotone","fa-duotone":"duotone",fab:"brands","fa-brands":"brands",fak:"kit","fa-kit":"kit",fa:"solid"},ds={solid:"fas",regular:"far",light:"fal",thin:"fat",duotone:"fad",brands:"fab",kit:"fak"},y1={fab:"fa-brands",fad:"fa-duotone",fak:"fa-kit",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},K5={"fa-brands":"fab","fa-duotone":"fad","fa-kit":"fak","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},J5=/fa[srltdbk\-\ ]/,b1="fa-layers-text",$5=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Kit)?.*/i,eT={900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},v1=[1,2,3,4,5,6,7,8,9,10],tT=v1.concat([11,12,13,14,15,16,17,18,19,20]),nT=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],nr={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},rT=[].concat(ls(Object.keys(ds)),["2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",nr.GROUP,nr.SWAP_OPACITY,nr.PRIMARY,nr.SECONDARY]).concat(v1.map(function(t){return"".concat(t,"x")})).concat(tT.map(function(t){return"w-".concat(t)})),A1=hn.FontAwesomeConfig||{};function iT(t){var e=$.querySelector("script["+t+"]");if(e)return e.getAttribute(t)}function oT(t){return t===""?!0:t==="false"?!1:t==="true"?!0:t}if($&&typeof $.querySelector=="function"){var aT=[["data-family-prefix","familyPrefix"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]];aT.forEach(function(t){var e=Pl(t,2),n=e[0],r=e[1],i=oT(iT(n));i!=null&&(A1[r]=i)})}var sT={familyPrefix:h1,styleDefault:"solid",replacementClass:p1,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0},mo=k(k({},sT),A1);mo.autoReplaceSvg||(mo.observeMutations=!1);var P={};Object.keys(mo).forEach(function(t){Object.defineProperty(P,t,{enumerable:!0,set:function(n){mo[t]=n,hs.forEach(function(r){return r(P)})},get:function(){return mo[t]}})}),hn.FontAwesomeConfig=P;var hs=[];function cT(t){return hs.push(t),function(){hs.splice(hs.indexOf(t),1)}}var pn=Rl,yt={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function uT(t){if(!(!t||!Pt)){var e=$.createElement("style");e.setAttribute("type","text/css"),e.innerHTML=t;for(var n=$.head.childNodes,r=null,i=n.length-1;i>-1;i--){var o=n[i],a=(o.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(a)>-1&&(r=o)}return $.head.insertBefore(e,r),t}}var lT="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function go(){for(var t=12,e="";t-- >0;)e+=lT[Math.random()*62|0];return e}function _r(t){for(var e=[],n=(t||[]).length>>>0;n--;)e[n]=t[n];return e}function Ql(t){return t.classList?_r(t.classList):(t.getAttribute("class")||"").split(" ").filter(function(e){return e})}function x1(t){return"".concat(t).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function fT(t){return Object.keys(t||{}).reduce(function(e,n){return e+"".concat(n,'="').concat(x1(t[n]),'" ')},"").trim()}function ps(t){return Object.keys(t||{}).reduce(function(e,n){return e+"".concat(n,": ").concat(t[n].trim(),";")},"")}function Vl(t){return t.size!==yt.size||t.x!==yt.x||t.y!==yt.y||t.rotate!==yt.rotate||t.flipX||t.flipY}function dT(t){var e=t.transform,n=t.containerWidth,r=t.iconWidth,i={transform:"translate(".concat(n/2," 256)")},o="translate(".concat(e.x*32,", ").concat(e.y*32,") "),a="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),s="rotate(".concat(e.rotate," 0 0)"),c={transform:"".concat(o," ").concat(a," ").concat(s)},u={transform:"translate(".concat(r/2*-1," -256)")};return{outer:i,inner:c,path:u}}function hT(t){var e=t.transform,n=t.width,r=n===void 0?Rl:n,i=t.height,o=i===void 0?Rl:i,a=t.startCentered,s=a===void 0?!1:a,c="";return s&&d1?c+="translate(".concat(e.x/pn-r/2,"em, ").concat(e.y/pn-o/2,"em) "):s?c+="translate(calc(-50% + ".concat(e.x/pn,"em), calc(-50% + ").concat(e.y/pn,"em)) "):c+="translate(".concat(e.x/pn,"em, ").concat(e.y/pn,"em) "),c+="scale(".concat(e.size/pn*(e.flipX?-1:1),", ").concat(e.size/pn*(e.flipY?-1:1),") "),c+="rotate(".concat(e.rotate,"deg) "),c}var pT=`:root, :host {
1378
+ */function c1(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function k(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?c1(Object(n),!0).forEach(function(r){Q5(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):c1(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function ls(t){return ls=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ls(t)}function G5(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function u1(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function H5(t,e,n){return e&&u1(t.prototype,e),n&&u1(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function Q5(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function zl(t,e){return Y5(t)||W5(t,e)||l1(t,e)||Z5()}function fs(t){return V5(t)||_5(t)||l1(t)||X5()}function V5(t){if(Array.isArray(t))return Rl(t)}function Y5(t){if(Array.isArray(t))return t}function _5(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function W5(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r=[],i=!0,o=!1,a,s;try{for(n=n.call(t);!(i=(a=n.next()).done)&&(r.push(a.value),!(e&&r.length===e));i=!0);}catch(c){o=!0,s=c}finally{try{!i&&n.return!=null&&n.return()}finally{if(o)throw s}}return r}}function l1(t,e){if(!!t){if(typeof t=="string")return Rl(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Rl(t,e)}}function Rl(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function X5(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
1379
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Z5(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1380
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var f1=function(){},jl={},d1={},h1=null,p1={mark:f1,measure:f1};try{typeof window<"u"&&(jl=window),typeof document<"u"&&(d1=document),typeof MutationObserver<"u"&&(h1=MutationObserver),typeof performance<"u"&&(p1=performance)}catch{}var q5=jl.navigator||{},m1=q5.userAgent,g1=m1===void 0?"":m1,hn=jl,J=d1,y1=h1,ds=p1;hn.document;var Pt=!!J.documentElement&&!!J.head&&typeof J.addEventListener=="function"&&typeof J.createElement=="function",b1=~g1.indexOf("MSIE")||~g1.indexOf("Trident/"),Ft="___FONT_AWESOME___",Ul=16,v1="fa",A1="svg-inline--fa",tr="data-fa-i2svg",Gl="data-fa-pseudo-element",K5="data-fa-pseudo-element-pending",Hl="data-prefix",Ql="data-icon",x1="fontawesome-i2svg",J5="async",$5=["HTML","HEAD","STYLE","SCRIPT"],w1=function(){try{return!0}catch{return!1}}(),Vl={fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fad:"duotone","fa-duotone":"duotone",fab:"brands","fa-brands":"brands",fak:"kit","fa-kit":"kit",fa:"solid"},hs={solid:"fas",regular:"far",light:"fal",thin:"fat",duotone:"fad",brands:"fab",kit:"fak"},C1={fab:"fa-brands",fad:"fa-duotone",fak:"fa-kit",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},eT={"fa-brands":"fab","fa-duotone":"fad","fa-kit":"fak","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},tT=/fa[srltdbk\-\ ]/,S1="fa-layers-text",nT=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Kit)?.*/i,rT={900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},E1=[1,2,3,4,5,6,7,8,9,10],iT=E1.concat([11,12,13,14,15,16,17,18,19,20]),oT=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],nr={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},aT=[].concat(fs(Object.keys(hs)),["2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",nr.GROUP,nr.SWAP_OPACITY,nr.PRIMARY,nr.SECONDARY]).concat(E1.map(function(t){return"".concat(t,"x")})).concat(iT.map(function(t){return"w-".concat(t)})),D1=hn.FontAwesomeConfig||{};function sT(t){var e=J.querySelector("script["+t+"]");if(e)return e.getAttribute(t)}function cT(t){return t===""?!0:t==="false"?!1:t==="true"?!0:t}if(J&&typeof J.querySelector=="function"){var uT=[["data-family-prefix","familyPrefix"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]];uT.forEach(function(t){var e=zl(t,2),n=e[0],r=e[1],i=cT(sT(n));i!=null&&(D1[r]=i)})}var lT={familyPrefix:v1,styleDefault:"solid",replacementClass:A1,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0},go=k(k({},lT),D1);go.autoReplaceSvg||(go.observeMutations=!1);var P={};Object.keys(go).forEach(function(t){Object.defineProperty(P,t,{enumerable:!0,set:function(n){go[t]=n,ps.forEach(function(r){return r(P)})},get:function(){return go[t]}})}),hn.FontAwesomeConfig=P;var ps=[];function fT(t){return ps.push(t),function(){ps.splice(ps.indexOf(t),1)}}var pn=Ul,yt={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function dT(t){if(!(!t||!Pt)){var e=J.createElement("style");e.setAttribute("type","text/css"),e.innerHTML=t;for(var n=J.head.childNodes,r=null,i=n.length-1;i>-1;i--){var o=n[i],a=(o.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(a)>-1&&(r=o)}return J.head.insertBefore(e,r),t}}var hT="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function yo(){for(var t=12,e="";t-- >0;)e+=hT[Math.random()*62|0];return e}function _r(t){for(var e=[],n=(t||[]).length>>>0;n--;)e[n]=t[n];return e}function Yl(t){return t.classList?_r(t.classList):(t.getAttribute("class")||"").split(" ").filter(function(e){return e})}function M1(t){return"".concat(t).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function pT(t){return Object.keys(t||{}).reduce(function(e,n){return e+"".concat(n,'="').concat(M1(t[n]),'" ')},"").trim()}function ms(t){return Object.keys(t||{}).reduce(function(e,n){return e+"".concat(n,": ").concat(t[n].trim(),";")},"")}function _l(t){return t.size!==yt.size||t.x!==yt.x||t.y!==yt.y||t.rotate!==yt.rotate||t.flipX||t.flipY}function mT(t){var e=t.transform,n=t.containerWidth,r=t.iconWidth,i={transform:"translate(".concat(n/2," 256)")},o="translate(".concat(e.x*32,", ").concat(e.y*32,") "),a="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),s="rotate(".concat(e.rotate," 0 0)"),c={transform:"".concat(o," ").concat(a," ").concat(s)},u={transform:"translate(".concat(r/2*-1," -256)")};return{outer:i,inner:c,path:u}}function gT(t){var e=t.transform,n=t.width,r=n===void 0?Ul:n,i=t.height,o=i===void 0?Ul:i,a=t.startCentered,s=a===void 0?!1:a,c="";return s&&b1?c+="translate(".concat(e.x/pn-r/2,"em, ").concat(e.y/pn-o/2,"em) "):s?c+="translate(calc(-50% + ".concat(e.x/pn,"em), calc(-50% + ").concat(e.y/pn,"em)) "):c+="translate(".concat(e.x/pn,"em, ").concat(e.y/pn,"em) "),c+="scale(".concat(e.size/pn*(e.flipX?-1:1),", ").concat(e.size/pn*(e.flipY?-1:1),") "),c+="rotate(".concat(e.rotate,"deg) "),c}var yT=`:root, :host {
1381
1381
  --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Solid";
1382
1382
  --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Regular";
1383
1383
  --fa-font-light: normal 300 1em/1 "Font Awesome 6 Light";
@@ -2128,40 +2128,40 @@ svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
2128
2128
  .fad.fa-inverse,
2129
2129
  .fa-duotone.fa-inverse {
2130
2130
  color: var(--fa-inverse, #fff);
2131
- }`;function w1(){var t=h1,e=p1,n=P.familyPrefix,r=P.replacementClass,i=pT;if(n!==t||r!==e){var o=new RegExp("\\.".concat(t,"\\-"),"g"),a=new RegExp("\\--".concat(t,"\\-"),"g"),s=new RegExp("\\.".concat(e),"g");i=i.replace(o,".".concat(n,"-")).replace(a,"--".concat(n,"-")).replace(s,".".concat(r))}return i}var C1=!1;function Yl(){P.autoAddCss&&!C1&&(uT(w1()),C1=!0)}var mT={mixout:function(){return{dom:{css:w1,insertCss:Yl}}},hooks:function(){return{beforeDOMElementCreation:function(){Yl()},beforeI2svg:function(){Yl()}}}},zt=hn||{};zt[Ft]||(zt[Ft]={}),zt[Ft].styles||(zt[Ft].styles={}),zt[Ft].hooks||(zt[Ft].hooks={}),zt[Ft].shims||(zt[Ft].shims=[]);var ct=zt[Ft],S1=[],gT=function t(){$.removeEventListener("DOMContentLoaded",t),ms=1,S1.map(function(e){return e()})},ms=!1;Pt&&(ms=($.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test($.readyState),ms||$.addEventListener("DOMContentLoaded",gT));function yT(t){!Pt||(ms?setTimeout(t,0):S1.push(t))}function yo(t){var e=t.tag,n=t.attributes,r=n===void 0?{}:n,i=t.children,o=i===void 0?[]:i;return typeof t=="string"?x1(t):"<".concat(e," ").concat(fT(r),">").concat(o.map(yo).join(""),"</").concat(e,">")}function E1(t,e,n){if(t&&t[e]&&t[e][n])return{prefix:e,iconName:n,icon:t[e][n]}}var bT=function(e,n){return function(r,i,o,a){return e.call(n,r,i,o,a)}},_l=function(e,n,r,i){var o=Object.keys(e),a=o.length,s=i!==void 0?bT(n,i):n,c,u,f;for(r===void 0?(c=1,f=e[o[0]]):(c=0,f=r);c<a;c++)u=o[c],f=s(f,e[u],u,e);return f};function vT(t){for(var e=[],n=0,r=t.length;n<r;){var i=t.charCodeAt(n++);if(i>=55296&&i<=56319&&n<r){var o=t.charCodeAt(n++);(o&64512)==56320?e.push(((i&1023)<<10)+(o&1023)+65536):(e.push(i),n--)}else e.push(i)}return e}function Wl(t){var e=vT(t);return e.length===1?e[0].toString(16):null}function AT(t,e){var n=t.length,r=t.charCodeAt(e),i;return r>=55296&&r<=56319&&n>e+1&&(i=t.charCodeAt(e+1),i>=56320&&i<=57343)?(r-55296)*1024+i-56320+65536:r}function D1(t){return Object.keys(t).reduce(function(e,n){var r=t[n],i=!!r.icon;return i?e[r.iconName]=r.icon:e[n]=r,e},{})}function Xl(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.skipHooks,i=r===void 0?!1:r,o=D1(e);typeof ct.hooks.addPack=="function"&&!i?ct.hooks.addPack(t,D1(e)):ct.styles[t]=k(k({},ct.styles[t]||{}),o),t==="fas"&&Xl("fa",e)}var bo=ct.styles,xT=ct.shims,wT=Object.values(y1),Zl=null,M1={},T1={},I1={},k1={},N1={},CT=Object.keys(Hl);function ST(t){return~rT.indexOf(t)}function ET(t,e){var n=e.split("-"),r=n[0],i=n.slice(1).join("-");return r===t&&i!==""&&!ST(i)?i:null}var L1=function(){var e=function(o){return _l(bo,function(a,s,c){return a[c]=_l(s,o,{}),a},{})};M1=e(function(i,o,a){if(o[3]&&(i[o[3]]=a),o[2]){var s=o[2].filter(function(c){return typeof c=="number"});s.forEach(function(c){i[c.toString(16)]=a})}return i}),T1=e(function(i,o,a){if(i[a]=a,o[2]){var s=o[2].filter(function(c){return typeof c=="string"});s.forEach(function(c){i[c]=a})}return i}),N1=e(function(i,o,a){var s=o[2];return i[a]=a,s.forEach(function(c){i[c]=a}),i});var n="far"in bo||P.autoFetchSvg,r=_l(xT,function(i,o){var a=o[0],s=o[1],c=o[2];return s==="far"&&!n&&(s="fas"),typeof a=="string"&&(i.names[a]={prefix:s,iconName:c}),typeof a=="number"&&(i.unicodes[a.toString(16)]={prefix:s,iconName:c}),i},{names:{},unicodes:{}});I1=r.names,k1=r.unicodes,Zl=gs(P.styleDefault)};cT(function(t){Zl=gs(t.styleDefault)}),L1();function ql(t,e){return(M1[t]||{})[e]}function DT(t,e){return(T1[t]||{})[e]}function Wr(t,e){return(N1[t]||{})[e]}function B1(t){return I1[t]||{prefix:null,iconName:null}}function MT(t){var e=k1[t],n=ql("fas",t);return e||(n?{prefix:"fas",iconName:n}:null)||{prefix:null,iconName:null}}function mn(){return Zl}var Kl=function(){return{prefix:null,iconName:null,rest:[]}};function gs(t){var e=Hl[t],n=ds[t]||ds[e],r=t in ct.styles?t:null;return n||r||null}function ys(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.skipLookups,r=n===void 0?!1:n,i=null,o=t.reduce(function(a,s){var c=ET(P.familyPrefix,s);if(bo[s]?(s=wT.includes(s)?K5[s]:s,i=s,a.prefix=s):CT.indexOf(s)>-1?(i=s,a.prefix=gs(s)):c?a.iconName=c:s!==P.replacementClass&&a.rest.push(s),!r&&a.prefix&&a.iconName){var u=i==="fa"?B1(a.iconName):{},f=Wr(a.prefix,a.iconName);u.prefix&&(i=null),a.iconName=u.iconName||f||a.iconName,a.prefix=u.prefix||a.prefix,a.prefix==="far"&&!bo.far&&bo.fas&&!P.autoFetchSvg&&(a.prefix="fas")}return a},Kl());return(o.prefix==="fa"||i==="fa")&&(o.prefix=mn()||"fas"),o}var TT=function(){function t(){R5(this,t),this.definitions={}}return j5(t,[{key:"add",value:function(){for(var n=this,r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];var a=i.reduce(this._pullDefinitions,{});Object.keys(a).forEach(function(s){n.definitions[s]=k(k({},n.definitions[s]||{}),a[s]),Xl(s,a[s]);var c=y1[s];c&&Xl(c,a[s]),L1()})}},{key:"reset",value:function(){this.definitions={}}},{key:"_pullDefinitions",value:function(n,r){var i=r.prefix&&r.iconName&&r.icon?{0:r}:r;return Object.keys(i).map(function(o){var a=i[o],s=a.prefix,c=a.iconName,u=a.icon,f=u[2];n[s]||(n[s]={}),f.length>0&&f.forEach(function(l){typeof l=="string"&&(n[s][l]=u)}),n[s][c]=u}),n}}]),t}(),O1=[],Xr={},Zr={},IT=Object.keys(Zr);function kT(t,e){var n=e.mixoutsTo;return O1=t,Xr={},Object.keys(Zr).forEach(function(r){IT.indexOf(r)===-1&&delete Zr[r]}),O1.forEach(function(r){var i=r.mixout?r.mixout():{};if(Object.keys(i).forEach(function(a){typeof i[a]=="function"&&(n[a]=i[a]),us(i[a])==="object"&&Object.keys(i[a]).forEach(function(s){n[a]||(n[a]={}),n[a][s]=i[a][s]})}),r.hooks){var o=r.hooks();Object.keys(o).forEach(function(a){Xr[a]||(Xr[a]=[]),Xr[a].push(o[a])})}r.provides&&r.provides(Zr)}),n}function Jl(t,e){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];var o=Xr[t]||[];return o.forEach(function(a){e=a.apply(null,[e].concat(r))}),e}function rr(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];var i=Xr[t]||[];i.forEach(function(o){o.apply(null,n)})}function Rt(){var t=arguments[0],e=Array.prototype.slice.call(arguments,1);return Zr[t]?Zr[t].apply(null,e):void 0}function $l(t){t.prefix==="fa"&&(t.prefix="fas");var e=t.iconName,n=t.prefix||mn();if(!!e)return e=Wr(n,e)||e,E1(P1.definitions,n,e)||E1(ct.styles,n,e)}var P1=new TT,NT=function(){P.autoReplaceSvg=!1,P.observeMutations=!1,rr("noAuto")},LT={i2svg:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Pt?(rr("beforeI2svg",e),Rt("pseudoElements2svg",e),Rt("i2svg",e)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.autoReplaceSvgRoot;P.autoReplaceSvg===!1&&(P.autoReplaceSvg=!0),P.observeMutations=!0,yT(function(){OT({autoReplaceSvgRoot:n}),rr("watch",e)})}},BT={icon:function(e){if(e===null)return null;if(us(e)==="object"&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:Wr(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&e.length===2){var n=e[1].indexOf("fa-")===0?e[1].slice(3):e[1],r=gs(e[0]);return{prefix:r,iconName:Wr(r,n)||n}}if(typeof e=="string"&&(e.indexOf("".concat(P.familyPrefix,"-"))>-1||e.match(J5))){var i=ys(e.split(" "),{skipLookups:!0});return{prefix:i.prefix||mn(),iconName:Wr(i.prefix,i.iconName)||i.iconName}}if(typeof e=="string"){var o=mn();return{prefix:o,iconName:Wr(o,e)||e}}}},Ge={noAuto:NT,config:P,dom:LT,parse:BT,library:P1,findIconDefinition:$l,toHtml:yo},OT=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.autoReplaceSvgRoot,r=n===void 0?$:n;(Object.keys(ct.styles).length>0||P.autoFetchSvg)&&Pt&&P.autoReplaceSvg&&Ge.dom.i2svg({node:r})};function bs(t,e){return Object.defineProperty(t,"abstract",{get:e}),Object.defineProperty(t,"html",{get:function(){return t.abstract.map(function(r){return yo(r)})}}),Object.defineProperty(t,"node",{get:function(){if(!!Pt){var r=$.createElement("div");return r.innerHTML=t.html,r.children}}}),t}function PT(t){var e=t.children,n=t.main,r=t.mask,i=t.attributes,o=t.styles,a=t.transform;if(Vl(a)&&n.found&&!r.found){var s=n.width,c=n.height,u={x:s/c/2,y:.5};i.style=ps(k(k({},o),{},{"transform-origin":"".concat(u.x+a.x/16,"em ").concat(u.y+a.y/16,"em")}))}return[{tag:"svg",attributes:i,children:e}]}function FT(t){var e=t.prefix,n=t.iconName,r=t.children,i=t.attributes,o=t.symbol,a=o===!0?"".concat(e,"-").concat(P.familyPrefix,"-").concat(n):o;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:k(k({},i),{},{id:a}),children:r}]}]}function ef(t){var e=t.icons,n=e.main,r=e.mask,i=t.prefix,o=t.iconName,a=t.transform,s=t.symbol,c=t.title,u=t.maskId,f=t.titleId,l=t.extra,d=t.watchable,h=d===void 0?!1:d,p=r.found?r:n,m=p.width,y=p.height,g=i==="fak",x=[P.replacementClass,o?"".concat(P.familyPrefix,"-").concat(o):""].filter(function(I){return l.classes.indexOf(I)===-1}).filter(function(I){return I!==""||!!I}).concat(l.classes).join(" "),A={children:[],attributes:k(k({},l.attributes),{},{"data-prefix":i,"data-icon":o,class:x,role:l.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(m," ").concat(y)})},C=g&&!~l.classes.indexOf("fa-fw")?{width:"".concat(m/y*16*.0625,"em")}:{};h&&(A.attributes[tr]=""),c&&(A.children.push({tag:"title",attributes:{id:A.attributes["aria-labelledby"]||"title-".concat(f||go())},children:[c]}),delete A.attributes.title);var v=k(k({},A),{},{prefix:i,iconName:o,main:n,mask:r,maskId:u,transform:a,symbol:s,styles:k(k({},C),l.styles)}),b=r.found&&n.found?Rt("generateAbstractMask",v)||{children:[],attributes:{}}:Rt("generateAbstractIcon",v)||{children:[],attributes:{}},w=b.children,E=b.attributes;return v.children=w,v.attributes=E,s?FT(v):PT(v)}function F1(t){var e=t.content,n=t.width,r=t.height,i=t.transform,o=t.title,a=t.extra,s=t.watchable,c=s===void 0?!1:s,u=k(k(k({},a.attributes),o?{title:o}:{}),{},{class:a.classes.join(" ")});c&&(u[tr]="");var f=k({},a.styles);Vl(i)&&(f.transform=hT({transform:i,startCentered:!0,width:n,height:r}),f["-webkit-transform"]=f.transform);var l=ps(f);l.length>0&&(u.style=l);var d=[];return d.push({tag:"span",attributes:u,children:[e]}),o&&d.push({tag:"span",attributes:{class:"sr-only"},children:[o]}),d}function zT(t){var e=t.content,n=t.title,r=t.extra,i=k(k(k({},r.attributes),n?{title:n}:{}),{},{class:r.classes.join(" ")}),o=ps(r.styles);o.length>0&&(i.style=o);var a=[];return a.push({tag:"span",attributes:i,children:[e]}),n&&a.push({tag:"span",attributes:{class:"sr-only"},children:[n]}),a}var tf=ct.styles;function nf(t){var e=t[0],n=t[1],r=t.slice(4),i=Pl(r,1),o=i[0],a=null;return Array.isArray(o)?a={tag:"g",attributes:{class:"".concat(P.familyPrefix,"-").concat(nr.GROUP)},children:[{tag:"path",attributes:{class:"".concat(P.familyPrefix,"-").concat(nr.SECONDARY),fill:"currentColor",d:o[0]}},{tag:"path",attributes:{class:"".concat(P.familyPrefix,"-").concat(nr.PRIMARY),fill:"currentColor",d:o[1]}}]}:a={tag:"path",attributes:{fill:"currentColor",d:o}},{found:!0,width:e,height:n,icon:a}}var RT={found:!1,width:512,height:512};function jT(t,e){!g1&&!P.showMissingIcons&&t&&console.error('Icon with name "'.concat(t,'" and prefix "').concat(e,'" is missing.'))}function rf(t,e){var n=e;return e==="fa"&&P.styleDefault!==null&&(e=mn()),new Promise(function(r,i){if(Rt("missingIconAbstract"),n==="fa"){var o=B1(t)||{};t=o.iconName||t,e=o.prefix||e}if(t&&e&&tf[e]&&tf[e][t]){var a=tf[e][t];return r(nf(a))}jT(t,e),r(k(k({},RT),{},{icon:P.showMissingIcons&&t?Rt("missingIconAbstract")||{}:{}}))})}var z1=function(){},of=P.measurePerformance&&fs&&fs.mark&&fs.measure?fs:{mark:z1,measure:z1},vo='FA "6.1.1"',UT=function(e){return of.mark("".concat(vo," ").concat(e," begins")),function(){return R1(e)}},R1=function(e){of.mark("".concat(vo," ").concat(e," ends")),of.measure("".concat(vo," ").concat(e),"".concat(vo," ").concat(e," begins"),"".concat(vo," ").concat(e," ends"))},af={begin:UT,end:R1},vs=function(){};function j1(t){var e=t.getAttribute?t.getAttribute(tr):null;return typeof e=="string"}function GT(t){var e=t.getAttribute?t.getAttribute(Ul):null,n=t.getAttribute?t.getAttribute(Gl):null;return e&&n}function HT(t){return t&&t.classList&&t.classList.contains&&t.classList.contains(P.replacementClass)}function QT(){if(P.autoReplaceSvg===!0)return As.replace;var t=As[P.autoReplaceSvg];return t||As.replace}function VT(t){return $.createElementNS("http://www.w3.org/2000/svg",t)}function YT(t){return $.createElement(t)}function U1(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.ceFn,r=n===void 0?t.tag==="svg"?VT:YT:n;if(typeof t=="string")return $.createTextNode(t);var i=r(t.tag);Object.keys(t.attributes||[]).forEach(function(a){i.setAttribute(a,t.attributes[a])});var o=t.children||[];return o.forEach(function(a){i.appendChild(U1(a,{ceFn:r}))}),i}function _T(t){var e=" ".concat(t.outerHTML," ");return e="".concat(e,"Font Awesome fontawesome.com "),e}var As={replace:function(e){var n=e[0];if(n.parentNode)if(e[1].forEach(function(i){n.parentNode.insertBefore(U1(i),n)}),n.getAttribute(tr)===null&&P.keepOriginalSource){var r=$.createComment(_T(n));n.parentNode.replaceChild(r,n)}else n.remove()},nest:function(e){var n=e[0],r=e[1];if(~Ql(n).indexOf(P.replacementClass))return As.replace(e);var i=new RegExp("".concat(P.familyPrefix,"-.*"));if(delete r[0].attributes.id,r[0].attributes.class){var o=r[0].attributes.class.split(" ").reduce(function(s,c){return c===P.replacementClass||c.match(i)?s.toSvg.push(c):s.toNode.push(c),s},{toNode:[],toSvg:[]});r[0].attributes.class=o.toSvg.join(" "),o.toNode.length===0?n.removeAttribute("class"):n.setAttribute("class",o.toNode.join(" "))}var a=r.map(function(s){return yo(s)}).join(`
2132
- `);n.setAttribute(tr,""),n.innerHTML=a}};function G1(t){t()}function H1(t,e){var n=typeof e=="function"?e:vs;if(t.length===0)n();else{var r=G1;P.mutateApproach===Z5&&(r=hn.requestAnimationFrame||G1),r(function(){var i=QT(),o=af.begin("mutate");t.map(i),o(),n()})}}var sf=!1;function Q1(){sf=!0}function cf(){sf=!1}var xs=null;function V1(t){if(!!f1&&!!P.observeMutations){var e=t.treeCallback,n=e===void 0?vs:e,r=t.nodeCallback,i=r===void 0?vs:r,o=t.pseudoElementsCallback,a=o===void 0?vs:o,s=t.observeMutationsRoot,c=s===void 0?$:s;xs=new f1(function(u){if(!sf){var f=mn();_r(u).forEach(function(l){if(l.type==="childList"&&l.addedNodes.length>0&&!j1(l.addedNodes[0])&&(P.searchPseudoElements&&a(l.target),n(l.target)),l.type==="attributes"&&l.target.parentNode&&P.searchPseudoElements&&a(l.target.parentNode),l.type==="attributes"&&j1(l.target)&&~nT.indexOf(l.attributeName))if(l.attributeName==="class"&&GT(l.target)){var d=ys(Ql(l.target)),h=d.prefix,p=d.iconName;l.target.setAttribute(Ul,h||f),p&&l.target.setAttribute(Gl,p)}else HT(l.target)&&i(l.target)})}}),Pt&&xs.observe(c,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function WT(){!xs||xs.disconnect()}function XT(t){var e=t.getAttribute("style"),n=[];return e&&(n=e.split(";").reduce(function(r,i){var o=i.split(":"),a=o[0],s=o.slice(1);return a&&s.length>0&&(r[a]=s.join(":").trim()),r},{})),n}function ZT(t){var e=t.getAttribute("data-prefix"),n=t.getAttribute("data-icon"),r=t.innerText!==void 0?t.innerText.trim():"",i=ys(Ql(t));return i.prefix||(i.prefix=mn()),e&&n&&(i.prefix=e,i.iconName=n),i.iconName&&i.prefix||i.prefix&&r.length>0&&(i.iconName=DT(i.prefix,t.innerText)||ql(i.prefix,Wl(t.innerText))),i}function qT(t){var e=_r(t.attributes).reduce(function(i,o){return i.name!=="class"&&i.name!=="style"&&(i[o.name]=o.value),i},{}),n=t.getAttribute("title"),r=t.getAttribute("data-fa-title-id");return P.autoA11y&&(n?e["aria-labelledby"]="".concat(P.replacementClass,"-title-").concat(r||go()):(e["aria-hidden"]="true",e.focusable="false")),e}function KT(){return{iconName:null,title:null,titleId:null,prefix:null,transform:yt,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}}function Y1(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0},n=ZT(t),r=n.iconName,i=n.prefix,o=n.rest,a=qT(t),s=Jl("parseNodeAttributes",{},t),c=e.styleParser?XT(t):[];return k({iconName:r,title:t.getAttribute("title"),titleId:t.getAttribute("data-fa-title-id"),prefix:i,transform:yt,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:o,styles:c,attributes:a}},s)}var JT=ct.styles;function _1(t){var e=P.autoReplaceSvg==="nest"?Y1(t,{styleParser:!1}):Y1(t);return~e.extra.classes.indexOf(b1)?Rt("generateLayersText",t,e):Rt("generateSvgReplacementMutation",t,e)}function W1(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!Pt)return Promise.resolve();var n=$.documentElement.classList,r=function(l){return n.add("".concat(m1,"-").concat(l))},i=function(l){return n.remove("".concat(m1,"-").concat(l))},o=P.autoFetchSvg?Object.keys(Hl):Object.keys(JT),a=[".".concat(b1,":not([").concat(tr,"])")].concat(o.map(function(f){return".".concat(f,":not([").concat(tr,"])")})).join(", ");if(a.length===0)return Promise.resolve();var s=[];try{s=_r(t.querySelectorAll(a))}catch{}if(s.length>0)r("pending"),i("complete");else return Promise.resolve();var c=af.begin("onTree"),u=s.reduce(function(f,l){try{var d=_1(l);d&&f.push(d)}catch(h){g1||h.name==="MissingIcon"&&console.error(h)}return f},[]);return new Promise(function(f,l){Promise.all(u).then(function(d){H1(d,function(){r("active"),r("complete"),i("pending"),typeof e=="function"&&e(),c(),f()})}).catch(function(d){c(),l(d)})})}function $T(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;_1(t).then(function(n){n&&H1([n],e)})}function e6(t){return function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=(e||{}).icon?e:$l(e||{}),i=n.mask;return i&&(i=(i||{}).icon?i:$l(i||{})),t(r,k(k({},n),{},{mask:i}))}}var t6=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=n.transform,i=r===void 0?yt:r,o=n.symbol,a=o===void 0?!1:o,s=n.mask,c=s===void 0?null:s,u=n.maskId,f=u===void 0?null:u,l=n.title,d=l===void 0?null:l,h=n.titleId,p=h===void 0?null:h,m=n.classes,y=m===void 0?[]:m,g=n.attributes,x=g===void 0?{}:g,A=n.styles,C=A===void 0?{}:A;if(!!e){var v=e.prefix,b=e.iconName,w=e.icon;return bs(k({type:"icon"},e),function(){return rr("beforeDOMElementCreation",{iconDefinition:e,params:n}),P.autoA11y&&(d?x["aria-labelledby"]="".concat(P.replacementClass,"-title-").concat(p||go()):(x["aria-hidden"]="true",x.focusable="false")),ef({icons:{main:nf(w),mask:c?nf(c.icon):{found:!1,width:null,height:null,icon:{}}},prefix:v,iconName:b,transform:k(k({},yt),i),symbol:a,title:d,maskId:f,titleId:p,extra:{attributes:x,styles:C,classes:y}})})}},n6={mixout:function(){return{icon:e6(t6)}},hooks:function(){return{mutationObserverCallbacks:function(n){return n.treeCallback=W1,n.nodeCallback=$T,n}}},provides:function(e){e.i2svg=function(n){var r=n.node,i=r===void 0?$:r,o=n.callback,a=o===void 0?function(){}:o;return W1(i,a)},e.generateSvgReplacementMutation=function(n,r){var i=r.iconName,o=r.title,a=r.titleId,s=r.prefix,c=r.transform,u=r.symbol,f=r.mask,l=r.maskId,d=r.extra;return new Promise(function(h,p){Promise.all([rf(i,s),f.iconName?rf(f.iconName,f.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(function(m){var y=Pl(m,2),g=y[0],x=y[1];h([n,ef({icons:{main:g,mask:x},prefix:s,iconName:i,transform:c,symbol:u,maskId:l,title:o,titleId:a,extra:d,watchable:!0})])}).catch(p)})},e.generateAbstractIcon=function(n){var r=n.children,i=n.attributes,o=n.main,a=n.transform,s=n.styles,c=ps(s);c.length>0&&(i.style=c);var u;return Vl(a)&&(u=Rt("generateAbstractTransformGrouping",{main:o,transform:a,containerWidth:o.width,iconWidth:o.width})),r.push(u||o.icon),{children:r,attributes:i}}}},r6={mixout:function(){return{layer:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.classes,o=i===void 0?[]:i;return bs({type:"layer"},function(){rr("beforeDOMElementCreation",{assembler:n,params:r});var a=[];return n(function(s){Array.isArray(s)?s.map(function(c){a=a.concat(c.abstract)}):a=a.concat(s.abstract)}),[{tag:"span",attributes:{class:["".concat(P.familyPrefix,"-layers")].concat(ls(o)).join(" ")},children:a}]})}}}},i6={mixout:function(){return{counter:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.title,o=i===void 0?null:i,a=r.classes,s=a===void 0?[]:a,c=r.attributes,u=c===void 0?{}:c,f=r.styles,l=f===void 0?{}:f;return bs({type:"counter",content:n},function(){return rr("beforeDOMElementCreation",{content:n,params:r}),zT({content:n.toString(),title:o,extra:{attributes:u,styles:l,classes:["".concat(P.familyPrefix,"-layers-counter")].concat(ls(s))}})})}}}},o6={mixout:function(){return{text:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.transform,o=i===void 0?yt:i,a=r.title,s=a===void 0?null:a,c=r.classes,u=c===void 0?[]:c,f=r.attributes,l=f===void 0?{}:f,d=r.styles,h=d===void 0?{}:d;return bs({type:"text",content:n},function(){return rr("beforeDOMElementCreation",{content:n,params:r}),F1({content:n,transform:k(k({},yt),o),title:s,extra:{attributes:l,styles:h,classes:["".concat(P.familyPrefix,"-layers-text")].concat(ls(u))}})})}}},provides:function(e){e.generateLayersText=function(n,r){var i=r.title,o=r.transform,a=r.extra,s=null,c=null;if(d1){var u=parseInt(getComputedStyle(n).fontSize,10),f=n.getBoundingClientRect();s=f.width/u,c=f.height/u}return P.autoA11y&&!i&&(a.attributes["aria-hidden"]="true"),Promise.resolve([n,F1({content:n.innerHTML,width:s,height:c,transform:o,title:i,extra:a,watchable:!0})])}}},a6=new RegExp('"',"ug"),X1=[1105920,1112319];function s6(t){var e=t.replace(a6,""),n=AT(e,0),r=n>=X1[0]&&n<=X1[1],i=e.length===2?e[0]===e[1]:!1;return{value:Wl(i?e[0]:e),isSecondary:r||i}}function Z1(t,e){var n="".concat(X5).concat(e.replace(":","-"));return new Promise(function(r,i){if(t.getAttribute(n)!==null)return r();var o=_r(t.children),a=o.filter(function(b){return b.getAttribute(jl)===e})[0],s=hn.getComputedStyle(t,e),c=s.getPropertyValue("font-family").match($5),u=s.getPropertyValue("font-weight"),f=s.getPropertyValue("content");if(a&&!c)return t.removeChild(a),r();if(c&&f!=="none"&&f!==""){var l=s.getPropertyValue("content"),d=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(c[2])?ds[c[2].toLowerCase()]:eT[u],h=s6(l),p=h.value,m=h.isSecondary,y=c[0].startsWith("FontAwesome"),g=ql(d,p),x=g;if(y){var A=MT(p);A.iconName&&A.prefix&&(g=A.iconName,d=A.prefix)}if(g&&!m&&(!a||a.getAttribute(Ul)!==d||a.getAttribute(Gl)!==x)){t.setAttribute(n,x),a&&t.removeChild(a);var C=KT(),v=C.extra;v.attributes[jl]=e,rf(g,d).then(function(b){var w=ef(k(k({},C),{},{icons:{main:b,mask:Kl()},prefix:d,iconName:x,extra:v,watchable:!0})),E=$.createElement("svg");e==="::before"?t.insertBefore(E,t.firstChild):t.appendChild(E),E.outerHTML=w.map(function(I){return yo(I)}).join(`
2133
- `),t.removeAttribute(n),r()}).catch(i)}else r()}else r()})}function c6(t){return Promise.all([Z1(t,"::before"),Z1(t,"::after")])}function u6(t){return t.parentNode!==document.head&&!~q5.indexOf(t.tagName.toUpperCase())&&!t.getAttribute(jl)&&(!t.parentNode||t.parentNode.tagName!=="svg")}function q1(t){if(!!Pt)return new Promise(function(e,n){var r=_r(t.querySelectorAll("*")).filter(u6).map(c6),i=af.begin("searchPseudoElements");Q1(),Promise.all(r).then(function(){i(),cf(),e()}).catch(function(){i(),cf(),n()})})}var l6={hooks:function(){return{mutationObserverCallbacks:function(n){return n.pseudoElementsCallback=q1,n}}},provides:function(e){e.pseudoElements2svg=function(n){var r=n.node,i=r===void 0?$:r;P.searchPseudoElements&&q1(i)}}},K1=!1,f6={mixout:function(){return{dom:{unwatch:function(){Q1(),K1=!0}}}},hooks:function(){return{bootstrap:function(){V1(Jl("mutationObserverCallbacks",{}))},noAuto:function(){WT()},watch:function(n){var r=n.observeMutationsRoot;K1?cf():V1(Jl("mutationObserverCallbacks",{observeMutationsRoot:r}))}}}},J1=function(e){var n={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return e.toLowerCase().split(" ").reduce(function(r,i){var o=i.toLowerCase().split("-"),a=o[0],s=o.slice(1).join("-");if(a&&s==="h")return r.flipX=!0,r;if(a&&s==="v")return r.flipY=!0,r;if(s=parseFloat(s),isNaN(s))return r;switch(a){case"grow":r.size=r.size+s;break;case"shrink":r.size=r.size-s;break;case"left":r.x=r.x-s;break;case"right":r.x=r.x+s;break;case"up":r.y=r.y-s;break;case"down":r.y=r.y+s;break;case"rotate":r.rotate=r.rotate+s;break}return r},n)},d6={mixout:function(){return{parse:{transform:function(n){return J1(n)}}}},hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-transform");return i&&(n.transform=J1(i)),n}}},provides:function(e){e.generateAbstractTransformGrouping=function(n){var r=n.main,i=n.transform,o=n.containerWidth,a=n.iconWidth,s={transform:"translate(".concat(o/2," 256)")},c="translate(".concat(i.x*32,", ").concat(i.y*32,") "),u="scale(".concat(i.size/16*(i.flipX?-1:1),", ").concat(i.size/16*(i.flipY?-1:1),") "),f="rotate(".concat(i.rotate," 0 0)"),l={transform:"".concat(c," ").concat(u," ").concat(f)},d={transform:"translate(".concat(a/2*-1," -256)")},h={outer:s,inner:l,path:d};return{tag:"g",attributes:k({},h.outer),children:[{tag:"g",attributes:k({},h.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:k(k({},r.icon.attributes),h.path)}]}]}}}},uf={x:0,y:0,width:"100%",height:"100%"};function $1(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return t.attributes&&(t.attributes.fill||e)&&(t.attributes.fill="black"),t}function h6(t){return t.tag==="g"?t.children:[t]}var p6={hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-mask"),o=i?ys(i.split(" ").map(function(a){return a.trim()})):Kl();return o.prefix||(o.prefix=mn()),n.mask=o,n.maskId=r.getAttribute("data-fa-mask-id"),n}}},provides:function(e){e.generateAbstractMask=function(n){var r=n.children,i=n.attributes,o=n.main,a=n.mask,s=n.maskId,c=n.transform,u=o.width,f=o.icon,l=a.width,d=a.icon,h=dT({transform:c,containerWidth:l,iconWidth:u}),p={tag:"rect",attributes:k(k({},uf),{},{fill:"white"})},m=f.children?{children:f.children.map($1)}:{},y={tag:"g",attributes:k({},h.inner),children:[$1(k({tag:f.tag,attributes:k(k({},f.attributes),h.path)},m))]},g={tag:"g",attributes:k({},h.outer),children:[y]},x="mask-".concat(s||go()),A="clip-".concat(s||go()),C={tag:"mask",attributes:k(k({},uf),{},{id:x,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[p,g]},v={tag:"defs",children:[{tag:"clipPath",attributes:{id:A},children:h6(d)},C]};return r.push(v,{tag:"rect",attributes:k({fill:"currentColor","clip-path":"url(#".concat(A,")"),mask:"url(#".concat(x,")")},uf)}),{children:r,attributes:i}}}},m6={provides:function(e){var n=!1;hn.matchMedia&&(n=hn.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var r=[],i={fill:"currentColor"},o={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};r.push({tag:"path",attributes:k(k({},i),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var a=k(k({},o),{},{attributeName:"opacity"}),s={tag:"circle",attributes:k(k({},i),{},{cx:"256",cy:"364",r:"28"}),children:[]};return n||s.children.push({tag:"animate",attributes:k(k({},o),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:k(k({},a),{},{values:"1;0;1;1;0;1;"})}),r.push(s),r.push({tag:"path",attributes:k(k({},i),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:n?[]:[{tag:"animate",attributes:k(k({},a),{},{values:"1;0;0;0;0;1;"})}]}),n||r.push({tag:"path",attributes:k(k({},i),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:k(k({},a),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:r}}}},g6={hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-symbol"),o=i===null?!1:i===""?!0:i;return n.symbol=o,n}}}},y6=[mT,n6,r6,i6,o6,l6,f6,d6,p6,m6,g6];kT(y6,{mixoutsTo:Ge}),Ge.noAuto,Ge.config,Ge.library,Ge.dom,Ge.parse,Ge.findIconDefinition,Ge.toHtml;var q=Ge.icon;Ge.layer,Ge.text,Ge.counter;/**
2131
+ }`;function T1(){var t=v1,e=A1,n=P.familyPrefix,r=P.replacementClass,i=yT;if(n!==t||r!==e){var o=new RegExp("\\.".concat(t,"\\-"),"g"),a=new RegExp("\\--".concat(t,"\\-"),"g"),s=new RegExp("\\.".concat(e),"g");i=i.replace(o,".".concat(n,"-")).replace(a,"--".concat(n,"-")).replace(s,".".concat(r))}return i}var I1=!1;function Wl(){P.autoAddCss&&!I1&&(dT(T1()),I1=!0)}var bT={mixout:function(){return{dom:{css:T1,insertCss:Wl}}},hooks:function(){return{beforeDOMElementCreation:function(){Wl()},beforeI2svg:function(){Wl()}}}},zt=hn||{};zt[Ft]||(zt[Ft]={}),zt[Ft].styles||(zt[Ft].styles={}),zt[Ft].hooks||(zt[Ft].hooks={}),zt[Ft].shims||(zt[Ft].shims=[]);var ct=zt[Ft],k1=[],vT=function t(){J.removeEventListener("DOMContentLoaded",t),gs=1,k1.map(function(e){return e()})},gs=!1;Pt&&(gs=(J.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(J.readyState),gs||J.addEventListener("DOMContentLoaded",vT));function AT(t){!Pt||(gs?setTimeout(t,0):k1.push(t))}function bo(t){var e=t.tag,n=t.attributes,r=n===void 0?{}:n,i=t.children,o=i===void 0?[]:i;return typeof t=="string"?M1(t):"<".concat(e," ").concat(pT(r),">").concat(o.map(bo).join(""),"</").concat(e,">")}function N1(t,e,n){if(t&&t[e]&&t[e][n])return{prefix:e,iconName:n,icon:t[e][n]}}var xT=function(e,n){return function(r,i,o,a){return e.call(n,r,i,o,a)}},Xl=function(e,n,r,i){var o=Object.keys(e),a=o.length,s=i!==void 0?xT(n,i):n,c,u,f;for(r===void 0?(c=1,f=e[o[0]]):(c=0,f=r);c<a;c++)u=o[c],f=s(f,e[u],u,e);return f};function wT(t){for(var e=[],n=0,r=t.length;n<r;){var i=t.charCodeAt(n++);if(i>=55296&&i<=56319&&n<r){var o=t.charCodeAt(n++);(o&64512)==56320?e.push(((i&1023)<<10)+(o&1023)+65536):(e.push(i),n--)}else e.push(i)}return e}function Zl(t){var e=wT(t);return e.length===1?e[0].toString(16):null}function CT(t,e){var n=t.length,r=t.charCodeAt(e),i;return r>=55296&&r<=56319&&n>e+1&&(i=t.charCodeAt(e+1),i>=56320&&i<=57343)?(r-55296)*1024+i-56320+65536:r}function L1(t){return Object.keys(t).reduce(function(e,n){var r=t[n],i=!!r.icon;return i?e[r.iconName]=r.icon:e[n]=r,e},{})}function ql(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.skipHooks,i=r===void 0?!1:r,o=L1(e);typeof ct.hooks.addPack=="function"&&!i?ct.hooks.addPack(t,L1(e)):ct.styles[t]=k(k({},ct.styles[t]||{}),o),t==="fas"&&ql("fa",e)}var vo=ct.styles,ST=ct.shims,ET=Object.values(C1),Kl=null,B1={},O1={},P1={},F1={},z1={},DT=Object.keys(Vl);function MT(t){return~aT.indexOf(t)}function TT(t,e){var n=e.split("-"),r=n[0],i=n.slice(1).join("-");return r===t&&i!==""&&!MT(i)?i:null}var R1=function(){var e=function(o){return Xl(vo,function(a,s,c){return a[c]=Xl(s,o,{}),a},{})};B1=e(function(i,o,a){if(o[3]&&(i[o[3]]=a),o[2]){var s=o[2].filter(function(c){return typeof c=="number"});s.forEach(function(c){i[c.toString(16)]=a})}return i}),O1=e(function(i,o,a){if(i[a]=a,o[2]){var s=o[2].filter(function(c){return typeof c=="string"});s.forEach(function(c){i[c]=a})}return i}),z1=e(function(i,o,a){var s=o[2];return i[a]=a,s.forEach(function(c){i[c]=a}),i});var n="far"in vo||P.autoFetchSvg,r=Xl(ST,function(i,o){var a=o[0],s=o[1],c=o[2];return s==="far"&&!n&&(s="fas"),typeof a=="string"&&(i.names[a]={prefix:s,iconName:c}),typeof a=="number"&&(i.unicodes[a.toString(16)]={prefix:s,iconName:c}),i},{names:{},unicodes:{}});P1=r.names,F1=r.unicodes,Kl=ys(P.styleDefault)};fT(function(t){Kl=ys(t.styleDefault)}),R1();function Jl(t,e){return(B1[t]||{})[e]}function IT(t,e){return(O1[t]||{})[e]}function Wr(t,e){return(z1[t]||{})[e]}function j1(t){return P1[t]||{prefix:null,iconName:null}}function kT(t){var e=F1[t],n=Jl("fas",t);return e||(n?{prefix:"fas",iconName:n}:null)||{prefix:null,iconName:null}}function mn(){return Kl}var $l=function(){return{prefix:null,iconName:null,rest:[]}};function ys(t){var e=Vl[t],n=hs[t]||hs[e],r=t in ct.styles?t:null;return n||r||null}function bs(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.skipLookups,r=n===void 0?!1:n,i=null,o=t.reduce(function(a,s){var c=TT(P.familyPrefix,s);if(vo[s]?(s=ET.includes(s)?eT[s]:s,i=s,a.prefix=s):DT.indexOf(s)>-1?(i=s,a.prefix=ys(s)):c?a.iconName=c:s!==P.replacementClass&&a.rest.push(s),!r&&a.prefix&&a.iconName){var u=i==="fa"?j1(a.iconName):{},f=Wr(a.prefix,a.iconName);u.prefix&&(i=null),a.iconName=u.iconName||f||a.iconName,a.prefix=u.prefix||a.prefix,a.prefix==="far"&&!vo.far&&vo.fas&&!P.autoFetchSvg&&(a.prefix="fas")}return a},$l());return(o.prefix==="fa"||i==="fa")&&(o.prefix=mn()||"fas"),o}var NT=function(){function t(){G5(this,t),this.definitions={}}return H5(t,[{key:"add",value:function(){for(var n=this,r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];var a=i.reduce(this._pullDefinitions,{});Object.keys(a).forEach(function(s){n.definitions[s]=k(k({},n.definitions[s]||{}),a[s]),ql(s,a[s]);var c=C1[s];c&&ql(c,a[s]),R1()})}},{key:"reset",value:function(){this.definitions={}}},{key:"_pullDefinitions",value:function(n,r){var i=r.prefix&&r.iconName&&r.icon?{0:r}:r;return Object.keys(i).map(function(o){var a=i[o],s=a.prefix,c=a.iconName,u=a.icon,f=u[2];n[s]||(n[s]={}),f.length>0&&f.forEach(function(l){typeof l=="string"&&(n[s][l]=u)}),n[s][c]=u}),n}}]),t}(),U1=[],Xr={},Zr={},LT=Object.keys(Zr);function BT(t,e){var n=e.mixoutsTo;return U1=t,Xr={},Object.keys(Zr).forEach(function(r){LT.indexOf(r)===-1&&delete Zr[r]}),U1.forEach(function(r){var i=r.mixout?r.mixout():{};if(Object.keys(i).forEach(function(a){typeof i[a]=="function"&&(n[a]=i[a]),ls(i[a])==="object"&&Object.keys(i[a]).forEach(function(s){n[a]||(n[a]={}),n[a][s]=i[a][s]})}),r.hooks){var o=r.hooks();Object.keys(o).forEach(function(a){Xr[a]||(Xr[a]=[]),Xr[a].push(o[a])})}r.provides&&r.provides(Zr)}),n}function ef(t,e){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];var o=Xr[t]||[];return o.forEach(function(a){e=a.apply(null,[e].concat(r))}),e}function rr(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];var i=Xr[t]||[];i.forEach(function(o){o.apply(null,n)})}function Rt(){var t=arguments[0],e=Array.prototype.slice.call(arguments,1);return Zr[t]?Zr[t].apply(null,e):void 0}function tf(t){t.prefix==="fa"&&(t.prefix="fas");var e=t.iconName,n=t.prefix||mn();if(!!e)return e=Wr(n,e)||e,N1(G1.definitions,n,e)||N1(ct.styles,n,e)}var G1=new NT,OT=function(){P.autoReplaceSvg=!1,P.observeMutations=!1,rr("noAuto")},PT={i2svg:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Pt?(rr("beforeI2svg",e),Rt("pseudoElements2svg",e),Rt("i2svg",e)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.autoReplaceSvgRoot;P.autoReplaceSvg===!1&&(P.autoReplaceSvg=!0),P.observeMutations=!0,AT(function(){zT({autoReplaceSvgRoot:n}),rr("watch",e)})}},FT={icon:function(e){if(e===null)return null;if(ls(e)==="object"&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:Wr(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&e.length===2){var n=e[1].indexOf("fa-")===0?e[1].slice(3):e[1],r=ys(e[0]);return{prefix:r,iconName:Wr(r,n)||n}}if(typeof e=="string"&&(e.indexOf("".concat(P.familyPrefix,"-"))>-1||e.match(tT))){var i=bs(e.split(" "),{skipLookups:!0});return{prefix:i.prefix||mn(),iconName:Wr(i.prefix,i.iconName)||i.iconName}}if(typeof e=="string"){var o=mn();return{prefix:o,iconName:Wr(o,e)||e}}}},Ge={noAuto:OT,config:P,dom:PT,parse:FT,library:G1,findIconDefinition:tf,toHtml:bo},zT=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.autoReplaceSvgRoot,r=n===void 0?J:n;(Object.keys(ct.styles).length>0||P.autoFetchSvg)&&Pt&&P.autoReplaceSvg&&Ge.dom.i2svg({node:r})};function vs(t,e){return Object.defineProperty(t,"abstract",{get:e}),Object.defineProperty(t,"html",{get:function(){return t.abstract.map(function(r){return bo(r)})}}),Object.defineProperty(t,"node",{get:function(){if(!!Pt){var r=J.createElement("div");return r.innerHTML=t.html,r.children}}}),t}function RT(t){var e=t.children,n=t.main,r=t.mask,i=t.attributes,o=t.styles,a=t.transform;if(_l(a)&&n.found&&!r.found){var s=n.width,c=n.height,u={x:s/c/2,y:.5};i.style=ms(k(k({},o),{},{"transform-origin":"".concat(u.x+a.x/16,"em ").concat(u.y+a.y/16,"em")}))}return[{tag:"svg",attributes:i,children:e}]}function jT(t){var e=t.prefix,n=t.iconName,r=t.children,i=t.attributes,o=t.symbol,a=o===!0?"".concat(e,"-").concat(P.familyPrefix,"-").concat(n):o;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:k(k({},i),{},{id:a}),children:r}]}]}function nf(t){var e=t.icons,n=e.main,r=e.mask,i=t.prefix,o=t.iconName,a=t.transform,s=t.symbol,c=t.title,u=t.maskId,f=t.titleId,l=t.extra,d=t.watchable,h=d===void 0?!1:d,p=r.found?r:n,m=p.width,y=p.height,g=i==="fak",x=[P.replacementClass,o?"".concat(P.familyPrefix,"-").concat(o):""].filter(function(I){return l.classes.indexOf(I)===-1}).filter(function(I){return I!==""||!!I}).concat(l.classes).join(" "),A={children:[],attributes:k(k({},l.attributes),{},{"data-prefix":i,"data-icon":o,class:x,role:l.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(m," ").concat(y)})},C=g&&!~l.classes.indexOf("fa-fw")?{width:"".concat(m/y*16*.0625,"em")}:{};h&&(A.attributes[tr]=""),c&&(A.children.push({tag:"title",attributes:{id:A.attributes["aria-labelledby"]||"title-".concat(f||yo())},children:[c]}),delete A.attributes.title);var v=k(k({},A),{},{prefix:i,iconName:o,main:n,mask:r,maskId:u,transform:a,symbol:s,styles:k(k({},C),l.styles)}),b=r.found&&n.found?Rt("generateAbstractMask",v)||{children:[],attributes:{}}:Rt("generateAbstractIcon",v)||{children:[],attributes:{}},w=b.children,E=b.attributes;return v.children=w,v.attributes=E,s?jT(v):RT(v)}function H1(t){var e=t.content,n=t.width,r=t.height,i=t.transform,o=t.title,a=t.extra,s=t.watchable,c=s===void 0?!1:s,u=k(k(k({},a.attributes),o?{title:o}:{}),{},{class:a.classes.join(" ")});c&&(u[tr]="");var f=k({},a.styles);_l(i)&&(f.transform=gT({transform:i,startCentered:!0,width:n,height:r}),f["-webkit-transform"]=f.transform);var l=ms(f);l.length>0&&(u.style=l);var d=[];return d.push({tag:"span",attributes:u,children:[e]}),o&&d.push({tag:"span",attributes:{class:"sr-only"},children:[o]}),d}function UT(t){var e=t.content,n=t.title,r=t.extra,i=k(k(k({},r.attributes),n?{title:n}:{}),{},{class:r.classes.join(" ")}),o=ms(r.styles);o.length>0&&(i.style=o);var a=[];return a.push({tag:"span",attributes:i,children:[e]}),n&&a.push({tag:"span",attributes:{class:"sr-only"},children:[n]}),a}var rf=ct.styles;function of(t){var e=t[0],n=t[1],r=t.slice(4),i=zl(r,1),o=i[0],a=null;return Array.isArray(o)?a={tag:"g",attributes:{class:"".concat(P.familyPrefix,"-").concat(nr.GROUP)},children:[{tag:"path",attributes:{class:"".concat(P.familyPrefix,"-").concat(nr.SECONDARY),fill:"currentColor",d:o[0]}},{tag:"path",attributes:{class:"".concat(P.familyPrefix,"-").concat(nr.PRIMARY),fill:"currentColor",d:o[1]}}]}:a={tag:"path",attributes:{fill:"currentColor",d:o}},{found:!0,width:e,height:n,icon:a}}var GT={found:!1,width:512,height:512};function HT(t,e){!w1&&!P.showMissingIcons&&t&&console.error('Icon with name "'.concat(t,'" and prefix "').concat(e,'" is missing.'))}function af(t,e){var n=e;return e==="fa"&&P.styleDefault!==null&&(e=mn()),new Promise(function(r,i){if(Rt("missingIconAbstract"),n==="fa"){var o=j1(t)||{};t=o.iconName||t,e=o.prefix||e}if(t&&e&&rf[e]&&rf[e][t]){var a=rf[e][t];return r(of(a))}HT(t,e),r(k(k({},GT),{},{icon:P.showMissingIcons&&t?Rt("missingIconAbstract")||{}:{}}))})}var Q1=function(){},sf=P.measurePerformance&&ds&&ds.mark&&ds.measure?ds:{mark:Q1,measure:Q1},Ao='FA "6.1.1"',QT=function(e){return sf.mark("".concat(Ao," ").concat(e," begins")),function(){return V1(e)}},V1=function(e){sf.mark("".concat(Ao," ").concat(e," ends")),sf.measure("".concat(Ao," ").concat(e),"".concat(Ao," ").concat(e," begins"),"".concat(Ao," ").concat(e," ends"))},cf={begin:QT,end:V1},As=function(){};function Y1(t){var e=t.getAttribute?t.getAttribute(tr):null;return typeof e=="string"}function VT(t){var e=t.getAttribute?t.getAttribute(Hl):null,n=t.getAttribute?t.getAttribute(Ql):null;return e&&n}function YT(t){return t&&t.classList&&t.classList.contains&&t.classList.contains(P.replacementClass)}function _T(){if(P.autoReplaceSvg===!0)return xs.replace;var t=xs[P.autoReplaceSvg];return t||xs.replace}function WT(t){return J.createElementNS("http://www.w3.org/2000/svg",t)}function XT(t){return J.createElement(t)}function _1(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.ceFn,r=n===void 0?t.tag==="svg"?WT:XT:n;if(typeof t=="string")return J.createTextNode(t);var i=r(t.tag);Object.keys(t.attributes||[]).forEach(function(a){i.setAttribute(a,t.attributes[a])});var o=t.children||[];return o.forEach(function(a){i.appendChild(_1(a,{ceFn:r}))}),i}function ZT(t){var e=" ".concat(t.outerHTML," ");return e="".concat(e,"Font Awesome fontawesome.com "),e}var xs={replace:function(e){var n=e[0];if(n.parentNode)if(e[1].forEach(function(i){n.parentNode.insertBefore(_1(i),n)}),n.getAttribute(tr)===null&&P.keepOriginalSource){var r=J.createComment(ZT(n));n.parentNode.replaceChild(r,n)}else n.remove()},nest:function(e){var n=e[0],r=e[1];if(~Yl(n).indexOf(P.replacementClass))return xs.replace(e);var i=new RegExp("".concat(P.familyPrefix,"-.*"));if(delete r[0].attributes.id,r[0].attributes.class){var o=r[0].attributes.class.split(" ").reduce(function(s,c){return c===P.replacementClass||c.match(i)?s.toSvg.push(c):s.toNode.push(c),s},{toNode:[],toSvg:[]});r[0].attributes.class=o.toSvg.join(" "),o.toNode.length===0?n.removeAttribute("class"):n.setAttribute("class",o.toNode.join(" "))}var a=r.map(function(s){return bo(s)}).join(`
2132
+ `);n.setAttribute(tr,""),n.innerHTML=a}};function W1(t){t()}function X1(t,e){var n=typeof e=="function"?e:As;if(t.length===0)n();else{var r=W1;P.mutateApproach===J5&&(r=hn.requestAnimationFrame||W1),r(function(){var i=_T(),o=cf.begin("mutate");t.map(i),o(),n()})}}var uf=!1;function Z1(){uf=!0}function lf(){uf=!1}var ws=null;function q1(t){if(!!y1&&!!P.observeMutations){var e=t.treeCallback,n=e===void 0?As:e,r=t.nodeCallback,i=r===void 0?As:r,o=t.pseudoElementsCallback,a=o===void 0?As:o,s=t.observeMutationsRoot,c=s===void 0?J:s;ws=new y1(function(u){if(!uf){var f=mn();_r(u).forEach(function(l){if(l.type==="childList"&&l.addedNodes.length>0&&!Y1(l.addedNodes[0])&&(P.searchPseudoElements&&a(l.target),n(l.target)),l.type==="attributes"&&l.target.parentNode&&P.searchPseudoElements&&a(l.target.parentNode),l.type==="attributes"&&Y1(l.target)&&~oT.indexOf(l.attributeName))if(l.attributeName==="class"&&VT(l.target)){var d=bs(Yl(l.target)),h=d.prefix,p=d.iconName;l.target.setAttribute(Hl,h||f),p&&l.target.setAttribute(Ql,p)}else YT(l.target)&&i(l.target)})}}),Pt&&ws.observe(c,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function qT(){!ws||ws.disconnect()}function KT(t){var e=t.getAttribute("style"),n=[];return e&&(n=e.split(";").reduce(function(r,i){var o=i.split(":"),a=o[0],s=o.slice(1);return a&&s.length>0&&(r[a]=s.join(":").trim()),r},{})),n}function JT(t){var e=t.getAttribute("data-prefix"),n=t.getAttribute("data-icon"),r=t.innerText!==void 0?t.innerText.trim():"",i=bs(Yl(t));return i.prefix||(i.prefix=mn()),e&&n&&(i.prefix=e,i.iconName=n),i.iconName&&i.prefix||i.prefix&&r.length>0&&(i.iconName=IT(i.prefix,t.innerText)||Jl(i.prefix,Zl(t.innerText))),i}function $T(t){var e=_r(t.attributes).reduce(function(i,o){return i.name!=="class"&&i.name!=="style"&&(i[o.name]=o.value),i},{}),n=t.getAttribute("title"),r=t.getAttribute("data-fa-title-id");return P.autoA11y&&(n?e["aria-labelledby"]="".concat(P.replacementClass,"-title-").concat(r||yo()):(e["aria-hidden"]="true",e.focusable="false")),e}function e6(){return{iconName:null,title:null,titleId:null,prefix:null,transform:yt,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}}function K1(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0},n=JT(t),r=n.iconName,i=n.prefix,o=n.rest,a=$T(t),s=ef("parseNodeAttributes",{},t),c=e.styleParser?KT(t):[];return k({iconName:r,title:t.getAttribute("title"),titleId:t.getAttribute("data-fa-title-id"),prefix:i,transform:yt,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:o,styles:c,attributes:a}},s)}var t6=ct.styles;function J1(t){var e=P.autoReplaceSvg==="nest"?K1(t,{styleParser:!1}):K1(t);return~e.extra.classes.indexOf(S1)?Rt("generateLayersText",t,e):Rt("generateSvgReplacementMutation",t,e)}function $1(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!Pt)return Promise.resolve();var n=J.documentElement.classList,r=function(l){return n.add("".concat(x1,"-").concat(l))},i=function(l){return n.remove("".concat(x1,"-").concat(l))},o=P.autoFetchSvg?Object.keys(Vl):Object.keys(t6),a=[".".concat(S1,":not([").concat(tr,"])")].concat(o.map(function(f){return".".concat(f,":not([").concat(tr,"])")})).join(", ");if(a.length===0)return Promise.resolve();var s=[];try{s=_r(t.querySelectorAll(a))}catch{}if(s.length>0)r("pending"),i("complete");else return Promise.resolve();var c=cf.begin("onTree"),u=s.reduce(function(f,l){try{var d=J1(l);d&&f.push(d)}catch(h){w1||h.name==="MissingIcon"&&console.error(h)}return f},[]);return new Promise(function(f,l){Promise.all(u).then(function(d){X1(d,function(){r("active"),r("complete"),i("pending"),typeof e=="function"&&e(),c(),f()})}).catch(function(d){c(),l(d)})})}function n6(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;J1(t).then(function(n){n&&X1([n],e)})}function r6(t){return function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=(e||{}).icon?e:tf(e||{}),i=n.mask;return i&&(i=(i||{}).icon?i:tf(i||{})),t(r,k(k({},n),{},{mask:i}))}}var i6=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=n.transform,i=r===void 0?yt:r,o=n.symbol,a=o===void 0?!1:o,s=n.mask,c=s===void 0?null:s,u=n.maskId,f=u===void 0?null:u,l=n.title,d=l===void 0?null:l,h=n.titleId,p=h===void 0?null:h,m=n.classes,y=m===void 0?[]:m,g=n.attributes,x=g===void 0?{}:g,A=n.styles,C=A===void 0?{}:A;if(!!e){var v=e.prefix,b=e.iconName,w=e.icon;return vs(k({type:"icon"},e),function(){return rr("beforeDOMElementCreation",{iconDefinition:e,params:n}),P.autoA11y&&(d?x["aria-labelledby"]="".concat(P.replacementClass,"-title-").concat(p||yo()):(x["aria-hidden"]="true",x.focusable="false")),nf({icons:{main:of(w),mask:c?of(c.icon):{found:!1,width:null,height:null,icon:{}}},prefix:v,iconName:b,transform:k(k({},yt),i),symbol:a,title:d,maskId:f,titleId:p,extra:{attributes:x,styles:C,classes:y}})})}},o6={mixout:function(){return{icon:r6(i6)}},hooks:function(){return{mutationObserverCallbacks:function(n){return n.treeCallback=$1,n.nodeCallback=n6,n}}},provides:function(e){e.i2svg=function(n){var r=n.node,i=r===void 0?J:r,o=n.callback,a=o===void 0?function(){}:o;return $1(i,a)},e.generateSvgReplacementMutation=function(n,r){var i=r.iconName,o=r.title,a=r.titleId,s=r.prefix,c=r.transform,u=r.symbol,f=r.mask,l=r.maskId,d=r.extra;return new Promise(function(h,p){Promise.all([af(i,s),f.iconName?af(f.iconName,f.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(function(m){var y=zl(m,2),g=y[0],x=y[1];h([n,nf({icons:{main:g,mask:x},prefix:s,iconName:i,transform:c,symbol:u,maskId:l,title:o,titleId:a,extra:d,watchable:!0})])}).catch(p)})},e.generateAbstractIcon=function(n){var r=n.children,i=n.attributes,o=n.main,a=n.transform,s=n.styles,c=ms(s);c.length>0&&(i.style=c);var u;return _l(a)&&(u=Rt("generateAbstractTransformGrouping",{main:o,transform:a,containerWidth:o.width,iconWidth:o.width})),r.push(u||o.icon),{children:r,attributes:i}}}},a6={mixout:function(){return{layer:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.classes,o=i===void 0?[]:i;return vs({type:"layer"},function(){rr("beforeDOMElementCreation",{assembler:n,params:r});var a=[];return n(function(s){Array.isArray(s)?s.map(function(c){a=a.concat(c.abstract)}):a=a.concat(s.abstract)}),[{tag:"span",attributes:{class:["".concat(P.familyPrefix,"-layers")].concat(fs(o)).join(" ")},children:a}]})}}}},s6={mixout:function(){return{counter:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.title,o=i===void 0?null:i,a=r.classes,s=a===void 0?[]:a,c=r.attributes,u=c===void 0?{}:c,f=r.styles,l=f===void 0?{}:f;return vs({type:"counter",content:n},function(){return rr("beforeDOMElementCreation",{content:n,params:r}),UT({content:n.toString(),title:o,extra:{attributes:u,styles:l,classes:["".concat(P.familyPrefix,"-layers-counter")].concat(fs(s))}})})}}}},c6={mixout:function(){return{text:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.transform,o=i===void 0?yt:i,a=r.title,s=a===void 0?null:a,c=r.classes,u=c===void 0?[]:c,f=r.attributes,l=f===void 0?{}:f,d=r.styles,h=d===void 0?{}:d;return vs({type:"text",content:n},function(){return rr("beforeDOMElementCreation",{content:n,params:r}),H1({content:n,transform:k(k({},yt),o),title:s,extra:{attributes:l,styles:h,classes:["".concat(P.familyPrefix,"-layers-text")].concat(fs(u))}})})}}},provides:function(e){e.generateLayersText=function(n,r){var i=r.title,o=r.transform,a=r.extra,s=null,c=null;if(b1){var u=parseInt(getComputedStyle(n).fontSize,10),f=n.getBoundingClientRect();s=f.width/u,c=f.height/u}return P.autoA11y&&!i&&(a.attributes["aria-hidden"]="true"),Promise.resolve([n,H1({content:n.innerHTML,width:s,height:c,transform:o,title:i,extra:a,watchable:!0})])}}},u6=new RegExp('"',"ug"),ey=[1105920,1112319];function l6(t){var e=t.replace(u6,""),n=CT(e,0),r=n>=ey[0]&&n<=ey[1],i=e.length===2?e[0]===e[1]:!1;return{value:Zl(i?e[0]:e),isSecondary:r||i}}function ty(t,e){var n="".concat(K5).concat(e.replace(":","-"));return new Promise(function(r,i){if(t.getAttribute(n)!==null)return r();var o=_r(t.children),a=o.filter(function(b){return b.getAttribute(Gl)===e})[0],s=hn.getComputedStyle(t,e),c=s.getPropertyValue("font-family").match(nT),u=s.getPropertyValue("font-weight"),f=s.getPropertyValue("content");if(a&&!c)return t.removeChild(a),r();if(c&&f!=="none"&&f!==""){var l=s.getPropertyValue("content"),d=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(c[2])?hs[c[2].toLowerCase()]:rT[u],h=l6(l),p=h.value,m=h.isSecondary,y=c[0].startsWith("FontAwesome"),g=Jl(d,p),x=g;if(y){var A=kT(p);A.iconName&&A.prefix&&(g=A.iconName,d=A.prefix)}if(g&&!m&&(!a||a.getAttribute(Hl)!==d||a.getAttribute(Ql)!==x)){t.setAttribute(n,x),a&&t.removeChild(a);var C=e6(),v=C.extra;v.attributes[Gl]=e,af(g,d).then(function(b){var w=nf(k(k({},C),{},{icons:{main:b,mask:$l()},prefix:d,iconName:x,extra:v,watchable:!0})),E=J.createElement("svg");e==="::before"?t.insertBefore(E,t.firstChild):t.appendChild(E),E.outerHTML=w.map(function(I){return bo(I)}).join(`
2133
+ `),t.removeAttribute(n),r()}).catch(i)}else r()}else r()})}function f6(t){return Promise.all([ty(t,"::before"),ty(t,"::after")])}function d6(t){return t.parentNode!==document.head&&!~$5.indexOf(t.tagName.toUpperCase())&&!t.getAttribute(Gl)&&(!t.parentNode||t.parentNode.tagName!=="svg")}function ny(t){if(!!Pt)return new Promise(function(e,n){var r=_r(t.querySelectorAll("*")).filter(d6).map(f6),i=cf.begin("searchPseudoElements");Z1(),Promise.all(r).then(function(){i(),lf(),e()}).catch(function(){i(),lf(),n()})})}var h6={hooks:function(){return{mutationObserverCallbacks:function(n){return n.pseudoElementsCallback=ny,n}}},provides:function(e){e.pseudoElements2svg=function(n){var r=n.node,i=r===void 0?J:r;P.searchPseudoElements&&ny(i)}}},ry=!1,p6={mixout:function(){return{dom:{unwatch:function(){Z1(),ry=!0}}}},hooks:function(){return{bootstrap:function(){q1(ef("mutationObserverCallbacks",{}))},noAuto:function(){qT()},watch:function(n){var r=n.observeMutationsRoot;ry?lf():q1(ef("mutationObserverCallbacks",{observeMutationsRoot:r}))}}}},iy=function(e){var n={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return e.toLowerCase().split(" ").reduce(function(r,i){var o=i.toLowerCase().split("-"),a=o[0],s=o.slice(1).join("-");if(a&&s==="h")return r.flipX=!0,r;if(a&&s==="v")return r.flipY=!0,r;if(s=parseFloat(s),isNaN(s))return r;switch(a){case"grow":r.size=r.size+s;break;case"shrink":r.size=r.size-s;break;case"left":r.x=r.x-s;break;case"right":r.x=r.x+s;break;case"up":r.y=r.y-s;break;case"down":r.y=r.y+s;break;case"rotate":r.rotate=r.rotate+s;break}return r},n)},m6={mixout:function(){return{parse:{transform:function(n){return iy(n)}}}},hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-transform");return i&&(n.transform=iy(i)),n}}},provides:function(e){e.generateAbstractTransformGrouping=function(n){var r=n.main,i=n.transform,o=n.containerWidth,a=n.iconWidth,s={transform:"translate(".concat(o/2," 256)")},c="translate(".concat(i.x*32,", ").concat(i.y*32,") "),u="scale(".concat(i.size/16*(i.flipX?-1:1),", ").concat(i.size/16*(i.flipY?-1:1),") "),f="rotate(".concat(i.rotate," 0 0)"),l={transform:"".concat(c," ").concat(u," ").concat(f)},d={transform:"translate(".concat(a/2*-1," -256)")},h={outer:s,inner:l,path:d};return{tag:"g",attributes:k({},h.outer),children:[{tag:"g",attributes:k({},h.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:k(k({},r.icon.attributes),h.path)}]}]}}}},ff={x:0,y:0,width:"100%",height:"100%"};function oy(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return t.attributes&&(t.attributes.fill||e)&&(t.attributes.fill="black"),t}function g6(t){return t.tag==="g"?t.children:[t]}var y6={hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-mask"),o=i?bs(i.split(" ").map(function(a){return a.trim()})):$l();return o.prefix||(o.prefix=mn()),n.mask=o,n.maskId=r.getAttribute("data-fa-mask-id"),n}}},provides:function(e){e.generateAbstractMask=function(n){var r=n.children,i=n.attributes,o=n.main,a=n.mask,s=n.maskId,c=n.transform,u=o.width,f=o.icon,l=a.width,d=a.icon,h=mT({transform:c,containerWidth:l,iconWidth:u}),p={tag:"rect",attributes:k(k({},ff),{},{fill:"white"})},m=f.children?{children:f.children.map(oy)}:{},y={tag:"g",attributes:k({},h.inner),children:[oy(k({tag:f.tag,attributes:k(k({},f.attributes),h.path)},m))]},g={tag:"g",attributes:k({},h.outer),children:[y]},x="mask-".concat(s||yo()),A="clip-".concat(s||yo()),C={tag:"mask",attributes:k(k({},ff),{},{id:x,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[p,g]},v={tag:"defs",children:[{tag:"clipPath",attributes:{id:A},children:g6(d)},C]};return r.push(v,{tag:"rect",attributes:k({fill:"currentColor","clip-path":"url(#".concat(A,")"),mask:"url(#".concat(x,")")},ff)}),{children:r,attributes:i}}}},b6={provides:function(e){var n=!1;hn.matchMedia&&(n=hn.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var r=[],i={fill:"currentColor"},o={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};r.push({tag:"path",attributes:k(k({},i),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var a=k(k({},o),{},{attributeName:"opacity"}),s={tag:"circle",attributes:k(k({},i),{},{cx:"256",cy:"364",r:"28"}),children:[]};return n||s.children.push({tag:"animate",attributes:k(k({},o),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:k(k({},a),{},{values:"1;0;1;1;0;1;"})}),r.push(s),r.push({tag:"path",attributes:k(k({},i),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:n?[]:[{tag:"animate",attributes:k(k({},a),{},{values:"1;0;0;0;0;1;"})}]}),n||r.push({tag:"path",attributes:k(k({},i),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:k(k({},a),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:r}}}},v6={hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-symbol"),o=i===null?!1:i===""?!0:i;return n.symbol=o,n}}}},A6=[bT,o6,a6,s6,c6,h6,p6,m6,y6,b6,v6];BT(A6,{mixoutsTo:Ge}),Ge.noAuto,Ge.config,Ge.library,Ge.dom,Ge.parse,Ge.findIconDefinition,Ge.toHtml;var $=Ge.icon;Ge.layer,Ge.text,Ge.counter;/**
2134
2134
  * @license
2135
2135
  * Copyright 2018 Google LLC
2136
2136
  * SPDX-License-Identifier: BSD-3-Clause
2137
- */const b6=Yr(class extends ho{constructor(t){var e;if(super(t),t.type!==Ot.ATTRIBUTE||t.name!=="style"||((e=t.strings)===null||e===void 0?void 0:e.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(t){return Object.keys(t).reduce((e,n)=>{const r=t[n];return r==null?e:e+`${n=n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${r};`},"")}update(t,[e]){const{style:n}=t.element;if(this.ct===void 0){this.ct=new Set;for(const r in e)this.ct.add(r);return this.render(e)}this.ct.forEach(r=>{e[r]==null&&(this.ct.delete(r),r.includes("-")?n.removeProperty(r):n[r]="")});for(const r in e){const i=e[r];i!=null&&(this.ct.add(r),r.includes("-")?n.setProperty(r,i):n[r]=i)}return xe}}),ey="close-dialog";function v6(){return new CustomEvent(ey,{bubbles:!0})}function ir(t="default",e=document.body){const n=document.createElement("div");n.classList.add("gs-modal"),t!="default"&&n.classList.add(t);const r=o=>{var a;switch(o.key){case"Escape":{const s=n.querySelector(".btn-cancel");s&&(s.click(),o.stopPropagation());break}case"Enter":{if(((a=o.target)==null?void 0:a.tagName)=="TEXTAREA")return;n.querySelector(".btn-primary").click(),o.stopPropagation();break}}};n.addEventListener("keydown",r),Be(D`<div class="backdrop"></div><div class="content"></div>`,n);const i=()=>{n.querySelector(".backdrop").addEventListener("transitionend",()=>n.remove()),n.classList.remove("visible"),document.body.classList.remove(jn)};return n.addEventListener("keydown",o=>{o.stopPropagation()}),n.addEventListener(ey,i),e.appendChild(n),window.requestAnimationFrame(()=>n.classList.add("visible")),t!="tour"&&document.body.classList.add(jn),{content:n.querySelector(".content"),close:i}}function He(t,e={}){var i;const n=ir(),r=e.title;return(i=e.okLabel)!=null||(e.okLabel="OK"),new Promise((o,a)=>{const s=()=>{n.close(),o(!0)},c=D`${r?D`<div class="modal-title">${r}</div>`:R}<div class="modal-body" style="max-width:700px">${t}</div><div class="modal-buttons">${e.cancelButton?D`<button @click="${()=>{n.close(),o(!1)}}">Cancel</button>`:R} <button @click="${s}">${e.okLabel}</button></div>`;Be(c,n.content)})}function A6(t,e){var n,r;tn((n=t.scale)==null?void 0:n.type)?x6(t,e):Re((r=t.scale)==null?void 0:r.type)?w6(t,e):He("Not implemented (yet).")}function x6(t,e){const n=e.provenance.storeHelper.getDispatcher(),r=t.scale,i=ir(),o=D`<div class="modal-title">Filter by <em>${t.name}</em></div>`,a=new Set,s=h=>{n(e.actions.filterByNominal({values:r.domain().filter(p=>a.has(p)),attribute:t.attribute,remove:h})),i.close()},c=h=>{const p=h.target;p.checked?a.add(p.value):a.delete(p.value),d()},u=()=>D`<div class="modal-buttons"><button class="btn-cancel" @click="${()=>i.close()}">Cancel</button> <button ?disabled="${!a.size}" @click="${()=>s(!1)}">${q(er).node[0]} Retain</button> <button ?disabled="${!a.size}" @click="${()=>s(!0)}">${q(Ol).node[0]} Remove</button></div>`,f=r,l=D`<p>Please select one or more categories and choose an action.</p><ul class="gs-checkbox-list" @input="${c}" tabindex="0">${r.domain().map(h=>D`<li><label class="checkbox"><span class="color" style="${b6({backgroundColor:f(h).toString()})}"></span> <input type="checkbox" .value="${h}"> ${h}</label></li>`)}</ul>`;function d(){Be(D`${o}<div class="modal-body">${l}</div>${u()}`,i.content)}d(),i.content.querySelector(".gs-checkbox-list input[type='checkbox']").focus()}function w6(t,e){const n=e.provenance.storeHelper.getDispatcher();let r="lt",i;const o=ir(),a=D`<div class="modal-title">Filter by <em>${t.name}</em></div>`,s=h=>{n(e.actions.filterByQuantitative({attribute:t.attribute,operator:r,operand:i})),o.close()},c=()=>D`<div class="modal-buttons"><button class="btn-cancel" @click="${()=>o.close()}">Cancel</button> <button class="btn-primary" ?disabled="${typeof i>"u"}" @click="${()=>s()}">${q(er).node[0]} Retain</button></div>`,u=h=>{r=h.target.value,d()},f=h=>{const p=h.target.value;i=p.length>0?+p:void 0,d()},l=D`<div class="gs-form-group"><label>Select samples where <em>${t.name}</em> is</label> <select .value="${r}" @change="${u}">${Object.entries(C6).map(([h,p])=>D`<option .value="${h}">${p}</option>`)}</select> <input type="number" placeholder="Please enter a numeric value" @input="${f}"></div>`;function d(){Be(D`${a}<div class="modal-body">${l}</div>${c()}`,o.content)}d(),o.content.querySelector("select").focus()}const C6={lt:"less than",lte:"less than or equal to",eq:"equal to",gte:"greater than or equal to",gt:"greater than"};function S6(t,e){const n=e.provenance.storeHelper.getDispatcher(),r=[{operand:void 0,operator:"lt"}],i=ir(),o=D`<div class="modal-title">Group by threshold on <em>${t.name}</em></div>`,a=d=>{n(e.actions.groupByThresholds({attribute:t.attribute,thresholds:r})),i.close()},s=()=>D`<div class="modal-buttons"><button class="btn-cancel" @click="${()=>i.close()}">Cancel</button> <button class="btn-primary" ?disabled="${!E6(r)}" @click="${()=>a()}">${q(po).node[0]} Group</button></div>`,c=d=>{const h=d.target.value;r[0].operator=h,l()},u=d=>{const h=d.target.value;r[0].operand=h.length>0?+h:void 0,l()},f=D`<div class="gs-form-group"><label>Split into 2 groups using the threshold:</label><div class="threshold-flex"><select .value="${r[0].operator}" @change="${c}"><option value="lt">${"<"}</option><option value="lte">${"\u2264"}</option></select> <input .value="${""+r[0].operand}" type="number" placeholder="Numeric value" @input="${u}"></div></div>`;function l(){Be(D`${o}<div class="modal-body">${f}</div>${s()}`,i.content)}l(),i.content.querySelector("select").focus()}function E6(t){return t[0].operator&&typeof t[0].operand=="number"}function D6(t,e){const n=e.provenance.storeHelper.getDispatcher();let r=5;const i=ir(),o=D`<div class="modal-title">Retain first n categories of <em>${t.title}</em></div>`,a=f=>{n(e.actions.retainFirstNCategories({attribute:t.attribute,n:r})),i.close()},s=()=>D`<div class="modal-buttons"><button class="btn-cancel" @click="${()=>i.close()}">Cancel</button> <button class="btn-primary" @click="${()=>a()}">${q(er).node[0]} Retain</button></div>`,c=D`<div class="gs-form-group"><label>Number of categories to retain:</label> <input type="number" min="1" .valueAsNumber="${r}" @change="${f=>{r=f.target.valueAsNumber}}"></div>`;function u(){Be(D`${o}<div class="modal-body">${c}</div>${s()}`,i.content)}u(),i.content.querySelector("input").focus()}function lf(t,e,n,r){var d;const i=r.actions,o=e.attribute,a=r.sampleHierarchy,s=r.provenance.storeHelper.getDispatcher(),c=[];t&&c.push({label:t,type:"header"});const u=(h,p,m)=>{const y=r.provenance.getActionInfo(h);return{label:y.title,icon:y.icon,callback:p?void 0:m!=null?m:()=>s(h)}},f=(...h)=>c.push(...h.map(p=>u(p)));f(i.sortBy({attribute:o}));const l=(d=e==null?void 0:e.type)!=null?d:"identifier";return l!="quantitative"?(l!="identifier"&&(f(i.groupByNominal({attribute:o}),i.retainFirstOfEach({attribute:o})),c.push(u(i.retainFirstNCategories({attribute:o,n:void 0}),!1,()=>D6(e,r)))),f(i.filterByNominal({attribute:o,values:[n]}),i.filterByNominal({attribute:o,remove:!0,values:[n]})),c.push(u(i.retainMatched({attribute:o}),!a.groupMetadata.length))):(f(i.groupToQuartiles({attribute:o})),c.push({icon:po,label:"Group by thresholds...",callback:()=>S6(e,r)}),M6(n)?f(i.filterByQuantitative({attribute:o,operator:"gte",operand:+n}),i.filterByQuantitative({attribute:o,operator:"lte",operand:+n})):f(i.removeUndefined({attribute:o}))),l!=="identifier"&&c.push({icon:er,label:"Advanced filter...",callback:()=>A6(e,r)}),c}function M6(t){return t!=null&&t!==""&&!(typeof t=="number"&&isNaN(t))}function T6(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var jt={},or={};Object.defineProperty(or,"__esModule",{value:!0}),or.ActionCreators=or.ActionTypes=void 0;var ar={UNDO:"@@redux-undo/UNDO",REDO:"@@redux-undo/REDO",JUMP_TO_FUTURE:"@@redux-undo/JUMP_TO_FUTURE",JUMP_TO_PAST:"@@redux-undo/JUMP_TO_PAST",JUMP:"@@redux-undo/JUMP",CLEAR_HISTORY:"@@redux-undo/CLEAR_HISTORY"};or.ActionTypes=ar;var I6={undo:function(){return{type:ar.UNDO}},redo:function(){return{type:ar.REDO}},jumpToFuture:function(e){return{type:ar.JUMP_TO_FUTURE,index:e}},jumpToPast:function(e){return{type:ar.JUMP_TO_PAST,index:e}},jump:function(e){return{type:ar.JUMP,index:e}},clearHistory:function(){return{type:ar.CLEAR_HISTORY}}};or.ActionCreators=I6;var bt={};Object.defineProperty(bt,"__esModule",{value:!0}),bt.parseActions=ws,bt.isHistory=k6,bt.includeAction=N6,bt.excludeAction=L6,bt.combineFilters=B6,bt.groupByActionTypes=O6,bt.newHistory=P6;function ws(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return Array.isArray(t)?t:typeof t=="string"?[t]:e}function k6(t){return typeof t.present<"u"&&typeof t.future<"u"&&typeof t.past<"u"&&Array.isArray(t.future)&&Array.isArray(t.past)}function N6(t){var e=ws(t);return function(n){return e.indexOf(n.type)>=0}}function L6(t){var e=ws(t);return function(n){return e.indexOf(n.type)<0}}function B6(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return e.reduce(function(r,i){return function(o,a,s){return r(o,a,s)&&i(o,a,s)}},function(){return!0})}function O6(t){var e=ws(t);return function(n){return e.indexOf(n.type)>=0?n.type:null}}function P6(t,e,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;return{past:t,present:e,future:n,group:r,_latestUnfiltered:e,index:t.length,limit:t.length+n.length+1}}var ty={},qr={};Object.defineProperty(qr,"__esModule",{value:!0}),qr.set=V6,qr.start=G6,qr.end=H6,qr.log=Q6;function vt(t){return R6(t)||z6(t)||F6()}function F6(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function z6(t){if(Symbol.iterator in Object(t)||Object.prototype.toString.call(t)==="[object Arguments]")return Array.from(t)}function R6(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e<t.length;e++)n[e]=t[e];return n}}var Cs,$e,ff={prevState:"#9E9E9E",action:"#03A9F4",nextState:"#4CAF50"};function j6(){$e={header:[],prev:[],action:[],next:[],msgs:[]}}function U6(){var t=$e,e=t.header,n=t.prev,r=t.next,i=t.action,o=t.msgs;if(console.group){var a,s,c,u,f;(a=console).groupCollapsed.apply(a,vt(e)),(s=console).log.apply(s,vt(n)),(c=console).log.apply(c,vt(i)),(u=console).log.apply(u,vt(r)),(f=console).log.apply(f,vt(o)),console.groupEnd()}else{var l,d,h,p,m;(l=console).log.apply(l,vt(e)),(d=console).log.apply(d,vt(n)),(h=console).log.apply(h,vt(i)),(p=console).log.apply(p,vt(r)),(m=console).log.apply(m,vt(o))}}function df(t,e,n){return["%c".concat(t),"color: ".concat(e,"; font-weight: bold"),n]}function G6(t,e){j6(),Cs&&(console.group?($e.header=["%credux-undo","font-style: italic","action",t.type],$e.action=df("action",ff.action,t),$e.prev=df("prev history",ff.prevState,e)):($e.header=["redux-undo action",t.type],$e.action=["action",t],$e.prev=["prev history",e]))}function H6(t){Cs&&(console.group?$e.next=df("next history",ff.nextState,t):$e.next=["next history",t],U6())}function Q6(){if(Cs){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];$e.msgs=$e.msgs.concat([].concat(e,[`
2138
- `]))}}function V6(t){Cs=t}(function(t){function e(v){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?e=function(w){return typeof w}:e=function(w){return w&&typeof Symbol=="function"&&w.constructor===Symbol&&w!==Symbol.prototype?"symbol":typeof w},e(v)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=C;var n=a(qr),r=or,i=bt;function o(){if(typeof WeakMap!="function")return null;var v=new WeakMap;return o=function(){return v},v}function a(v){if(v&&v.__esModule)return v;if(v===null||e(v)!=="object"&&typeof v!="function")return{default:v};var b=o();if(b&&b.has(v))return b.get(v);var w={},E=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var I in v)if(Object.prototype.hasOwnProperty.call(v,I)){var L=E?Object.getOwnPropertyDescriptor(v,I):null;L&&(L.get||L.set)?Object.defineProperty(w,I,L):w[I]=v[I]}return w.default=v,b&&b.set(v,w),w}function s(v,b){var w=Object.keys(v);if(Object.getOwnPropertySymbols){var E=Object.getOwnPropertySymbols(v);b&&(E=E.filter(function(I){return Object.getOwnPropertyDescriptor(v,I).enumerable})),w.push.apply(w,E)}return w}function c(v){for(var b=1;b<arguments.length;b++){var w=arguments[b]!=null?arguments[b]:{};b%2?s(Object(w),!0).forEach(function(E){u(v,E,w[E])}):Object.getOwnPropertyDescriptors?Object.defineProperties(v,Object.getOwnPropertyDescriptors(w)):s(Object(w)).forEach(function(E){Object.defineProperty(v,E,Object.getOwnPropertyDescriptor(w,E))})}return v}function u(v,b,w){return b in v?Object.defineProperty(v,b,{value:w,enumerable:!0,configurable:!0,writable:!0}):v[b]=w,v}function f(v){return h(v)||d(v)||l()}function l(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function d(v){if(Symbol.iterator in Object(v)||Object.prototype.toString.call(v)==="[object Arguments]")return Array.from(v)}function h(v){if(Array.isArray(v)){for(var b=0,w=new Array(v.length);b<v.length;b++)w[b]=v[b];return w}}function p(v,b){var w=(0,i.newHistory)([],v,[]);return b&&(w._latestUnfiltered=null),w}function m(v,b,w,E){var I=v.past.length+1;n.log("inserting",b),n.log("new free: ",w-I);var L=v.past,T=v._latestUnfiltered,O=w&&w<=I,H=L.slice(O?1:0),U=T!=null?[].concat(f(H),[T]):H;return(0,i.newHistory)(U,b,[],E)}function y(v,b){if(b<0||b>=v.future.length)return v;var w=v.past,E=v.future,I=v._latestUnfiltered,L=[].concat(f(w),[I],f(E.slice(0,b))),T=E[b],O=E.slice(b+1);return(0,i.newHistory)(L,T,O)}function g(v,b){if(b<0||b>=v.past.length)return v;var w=v.past,E=v.future,I=v._latestUnfiltered,L=w.slice(0,b),T=[].concat(f(w.slice(b+1)),[I],f(E)),O=w[b];return(0,i.newHistory)(L,O,T)}function x(v,b){return b>0?y(v,b-1):b<0?g(v,v.past.length+b):v}function A(v,b){return b.indexOf(v)>-1?v:!v}function C(v){var b=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};n.set(b.debug);var w=c({limit:void 0,filter:function(){return!0},groupBy:function(){return null},undoType:r.ActionTypes.UNDO,redoType:r.ActionTypes.REDO,jumpToPastType:r.ActionTypes.JUMP_TO_PAST,jumpToFutureType:r.ActionTypes.JUMP_TO_FUTURE,jumpType:r.ActionTypes.JUMP,neverSkipReducer:!1,ignoreInitialState:!1,syncFilter:!1},b,{initTypes:(0,i.parseActions)(b.initTypes,["@@redux-undo/INIT"]),clearHistoryType:(0,i.parseActions)(b.clearHistoryType,[r.ActionTypes.CLEAR_HISTORY])}),E=w.neverSkipReducer?function(L,T){for(var O=arguments.length,H=new Array(O>2?O-2:0),U=2;U<O;U++)H[U-2]=arguments[U];return c({},L,{present:v.apply(void 0,[L.present,T].concat(H))})}:function(L){return L},I;return function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:I,T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};n.start(T,L);for(var O=L,H=arguments.length,U=new Array(H>2?H-2:0),Ae=2;Ae<H;Ae++)U[Ae-2]=arguments[Ae];if(!I)if(n.log("history is uninitialized"),L===void 0){var Ie={type:"@@redux-undo/CREATE_HISTORY"},An=v.apply(void 0,[L,Ie].concat(U));return O=p(An,w.ignoreInitialState),n.log("do not set initialState on probe actions"),n.end(O),O}else(0,i.isHistory)(L)?(O=I=w.ignoreInitialState?L:(0,i.newHistory)(L.past,L.present,L.future),n.log("initialHistory initialized: initialState is a history",I)):(O=I=p(L,w.ignoreInitialState),n.log("initialHistory initialized: initialState is not a history",I));var Y;switch(T.type){case void 0:return O;case w.undoType:return Y=x(O,-1),n.log("perform undo"),n.end(Y),E.apply(void 0,[Y,T].concat(U));case w.redoType:return Y=x(O,1),n.log("perform redo"),n.end(Y),E.apply(void 0,[Y,T].concat(U));case w.jumpToPastType:return Y=g(O,T.index),n.log("perform jumpToPast to ".concat(T.index)),n.end(Y),E.apply(void 0,[Y,T].concat(U));case w.jumpToFutureType:return Y=y(O,T.index),n.log("perform jumpToFuture to ".concat(T.index)),n.end(Y),E.apply(void 0,[Y,T].concat(U));case w.jumpType:return Y=x(O,T.index),n.log("perform jump to ".concat(T.index)),n.end(Y),E.apply(void 0,[Y,T].concat(U));case A(T.type,w.clearHistoryType):return Y=p(O.present,w.ignoreInitialState),n.log("perform clearHistory"),n.end(Y),E.apply(void 0,[Y,T].concat(U));default:if(Y=v.apply(void 0,[O.present,T].concat(U)),w.initTypes.some(function(td){return td===T.type}))return n.log("reset history due to init action"),n.end(I),I;if(O._latestUnfiltered===Y)return O;var Ve=typeof w.filter=="function"&&!w.filter(T,Y,O);if(Ve){var Ro=(0,i.newHistory)(O.past,Y,O.future,O.group);return w.syncFilter||(Ro._latestUnfiltered=O._latestUnfiltered),n.log("filter ignored action, not storing it in past"),n.end(Ro),Ro}var jo=w.groupBy(T,Y,O);if(jo!=null&&jo===O.group){var Vs=(0,i.newHistory)(O.past,Y,O.future,O.group);return n.log("groupBy grouped the action with the previous action"),n.end(Vs),Vs}return O=m(O,Y,w.limit,jo),n.log("inserted new state into history"),n.end(O),O}}}})(ty),function(t){Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ActionTypes",{enumerable:!0,get:function(){return e.ActionTypes}}),Object.defineProperty(t,"ActionCreators",{enumerable:!0,get:function(){return e.ActionCreators}}),Object.defineProperty(t,"parseActions",{enumerable:!0,get:function(){return n.parseActions}}),Object.defineProperty(t,"isHistory",{enumerable:!0,get:function(){return n.isHistory}}),Object.defineProperty(t,"includeAction",{enumerable:!0,get:function(){return n.includeAction}}),Object.defineProperty(t,"excludeAction",{enumerable:!0,get:function(){return n.excludeAction}}),Object.defineProperty(t,"combineFilters",{enumerable:!0,get:function(){return n.combineFilters}}),Object.defineProperty(t,"groupByActionTypes",{enumerable:!0,get:function(){return n.groupByActionTypes}}),Object.defineProperty(t,"newHistory",{enumerable:!0,get:function(){return n.newHistory}}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r.default}});var e=or,n=bt,r=i(ty);function i(o){return o&&o.__esModule?o:{default:o}}}(jt);const Y6=T6(jt);function hf(t){return t.split("-")[0]}function ny(t){return t.split("-")[1]}function ry(t){return["top","bottom"].includes(hf(t))?"x":"y"}function iy(t){return t==="y"?"height":"width"}function oy(t,e,n){let{reference:r,floating:i}=t;const o=r.x+r.width/2-i.width/2,a=r.y+r.height/2-i.height/2,s=ry(e),c=iy(s),u=r[c]/2-i[c]/2,f=hf(e),l=s==="x";let d;switch(f){case"top":d={x:o,y:r.y-i.height};break;case"bottom":d={x:o,y:r.y+r.height};break;case"right":d={x:r.x+r.width,y:a};break;case"left":d={x:r.x-i.width,y:a};break;default:d={x:r.x,y:r.y}}switch(ny(e)){case"start":d[s]-=u*(n&&l?-1:1);break;case"end":d[s]+=u*(n&&l?-1:1);break}return d}const _6=async(t,e,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:o=[],platform:a}=n,s=await(a.isRTL==null?void 0:a.isRTL(e));let c=await a.getElementRects({reference:t,floating:e,strategy:i}),{x:u,y:f}=oy(c,r,s),l=r,d={};for(let h=0;h<o.length;h++){const{name:p,fn:m}=o[h],{x:y,y:g,data:x,reset:A}=await m({x:u,y:f,initialPlacement:r,placement:l,strategy:i,middlewareData:d,rects:c,platform:a,elements:{reference:t,floating:e}});if(u=y!=null?y:u,f=g!=null?g:f,d={...d,[p]:{...d[p],...x}},A){typeof A=="object"&&(A.placement&&(l=A.placement),A.rects&&(c=A.rects===!0?await a.getElementRects({reference:t,floating:e,strategy:i}):A.rects),{x:u,y:f}=oy(c,l,s)),h=-1;continue}}return{x:u,y:f,placement:l,strategy:i,middlewareData:d}};function W6(t){return{top:0,right:0,bottom:0,left:0,...t}}function X6(t){return typeof t!="number"?W6(t):{top:t,right:t,bottom:t,left:t}}function Ss(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}async function Z6(t,e){var n;e===void 0&&(e={});const{x:r,y:i,platform:o,rects:a,elements:s,strategy:c}=t,{boundary:u="clippingAncestors",rootBoundary:f="viewport",elementContext:l="floating",altBoundary:d=!1,padding:h=0}=e,p=X6(h),y=s[d?l==="floating"?"reference":"floating":l],g=Ss(await o.getClippingRect({element:(n=await(o.isElement==null?void 0:o.isElement(y)))==null||n?y:y.contextElement||await(o.getDocumentElement==null?void 0:o.getDocumentElement(s.floating)),boundary:u,rootBoundary:f,strategy:c})),x=Ss(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({rect:l==="floating"?{...a.floating,x:r,y:i}:a.reference,offsetParent:await(o.getOffsetParent==null?void 0:o.getOffsetParent(s.floating)),strategy:c}):a[l]);return{top:g.top-x.top+p.top,bottom:x.bottom-g.bottom+p.bottom,left:g.left-x.left+p.left,right:x.right-g.right+p.right}}const q6={left:"right",right:"left",bottom:"top",top:"bottom"};function Es(t){return t.replace(/left|right|bottom|top/g,e=>q6[e])}function K6(t,e,n){n===void 0&&(n=!1);const r=ny(t),i=ry(t),o=iy(i);let a=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return e.reference[o]>e.floating[o]&&(a=Es(a)),{main:a,cross:Es(a)}}const J6={start:"end",end:"start"};function ay(t){return t.replace(/start|end/g,e=>J6[e])}function $6(t){const e=Es(t);return[ay(t),e,ay(e)]}const eI=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var n;const{placement:r,middlewareData:i,rects:o,initialPlacement:a,platform:s,elements:c}=e,{mainAxis:u=!0,crossAxis:f=!0,fallbackPlacements:l,fallbackStrategy:d="bestFit",flipAlignment:h=!0,...p}=t,m=hf(r),g=l||(m===a||!h?[Es(a)]:$6(a)),x=[a,...g],A=await Z6(e,p),C=[];let v=((n=i.flip)==null?void 0:n.overflows)||[];if(u&&C.push(A[m]),f){const{main:I,cross:L}=K6(r,o,await(s.isRTL==null?void 0:s.isRTL(c.floating)));C.push(A[I],A[L])}if(v=[...v,{placement:r,overflows:C}],!C.every(I=>I<=0)){var b,w;const I=((b=(w=i.flip)==null?void 0:w.index)!=null?b:0)+1,L=x[I];if(L)return{data:{index:I,overflows:v},reset:{placement:L}};let T="bottom";switch(d){case"bestFit":{var E;const O=(E=v.map(H=>[H,H.overflows.filter(U=>U>0).reduce((U,Ae)=>U+Ae,0)]).sort((H,U)=>H[1]-U[1])[0])==null?void 0:E[0].placement;O&&(T=O);break}case"initialPlacement":T=a;break}if(r!==T)return{reset:{placement:T}}}return{}}}};function sy(t){return t&&t.document&&t.location&&t.alert&&t.setInterval}function Ut(t){if(t==null)return window;if(!sy(t)){const e=t.ownerDocument;return e&&e.defaultView||window}return t}function Ao(t){return Ut(t).getComputedStyle(t)}function Gt(t){return sy(t)?"":t?(t.nodeName||"").toLowerCase():""}function cy(){const t=navigator.userAgentData;return t!=null&&t.brands?t.brands.map(e=>e.brand+"/"+e.version).join(" "):navigator.userAgent}function At(t){return t instanceof Ut(t).HTMLElement}function Kr(t){return t instanceof Ut(t).Element}function tI(t){return t instanceof Ut(t).Node}function pf(t){if(typeof ShadowRoot>"u")return!1;const e=Ut(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function Ds(t){const{overflow:e,overflowX:n,overflowY:r}=Ao(t);return/auto|scroll|overlay|hidden/.test(e+r+n)}function nI(t){return["table","td","th"].includes(Gt(t))}function uy(t){const e=/firefox/i.test(cy()),n=Ao(t);return n.transform!=="none"||n.perspective!=="none"||n.contain==="paint"||["transform","perspective"].includes(n.willChange)||e&&n.willChange==="filter"||e&&(n.filter?n.filter!=="none":!1)}function ly(){return!/^((?!chrome|android).)*safari/i.test(cy())}const fy=Math.min,xo=Math.max,Ms=Math.round;function sr(t,e,n){var r,i,o,a;e===void 0&&(e=!1),n===void 0&&(n=!1);const s=t.getBoundingClientRect();let c=1,u=1;e&&At(t)&&(c=t.offsetWidth>0&&Ms(s.width)/t.offsetWidth||1,u=t.offsetHeight>0&&Ms(s.height)/t.offsetHeight||1);const f=Kr(t)?Ut(t):window,l=!ly()&&n,d=(s.left+(l&&(r=(i=f.visualViewport)==null?void 0:i.offsetLeft)!=null?r:0))/c,h=(s.top+(l&&(o=(a=f.visualViewport)==null?void 0:a.offsetTop)!=null?o:0))/u,p=s.width/c,m=s.height/u;return{width:p,height:m,top:h,right:d+p,bottom:h+m,left:d,x:d,y:h}}function gn(t){return((tI(t)?t.ownerDocument:t.document)||window.document).documentElement}function Ts(t){return Kr(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function dy(t){return sr(gn(t)).left+Ts(t).scrollLeft}function rI(t){const e=sr(t);return Ms(e.width)!==t.offsetWidth||Ms(e.height)!==t.offsetHeight}function iI(t,e,n){const r=At(e),i=gn(e),o=sr(t,r&&rI(e),n==="fixed");let a={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if(r||!r&&n!=="fixed")if((Gt(e)!=="body"||Ds(i))&&(a=Ts(e)),At(e)){const c=sr(e,!0);s.x=c.x+e.clientLeft,s.y=c.y+e.clientTop}else i&&(s.x=dy(i));return{x:o.left+a.scrollLeft-s.x,y:o.top+a.scrollTop-s.y,width:o.width,height:o.height}}function hy(t){return Gt(t)==="html"?t:t.assignedSlot||t.parentNode||(pf(t)?t.host:null)||gn(t)}function py(t){return!At(t)||getComputedStyle(t).position==="fixed"?null:t.offsetParent}function oI(t){let e=hy(t);for(pf(e)&&(e=e.host);At(e)&&!["html","body"].includes(Gt(e));){if(uy(e))return e;e=e.parentNode}return null}function mf(t){const e=Ut(t);let n=py(t);for(;n&&nI(n)&&getComputedStyle(n).position==="static";)n=py(n);return n&&(Gt(n)==="html"||Gt(n)==="body"&&getComputedStyle(n).position==="static"&&!uy(n))?e:n||oI(t)||e}function my(t){if(At(t))return{width:t.offsetWidth,height:t.offsetHeight};const e=sr(t);return{width:e.width,height:e.height}}function aI(t){let{rect:e,offsetParent:n,strategy:r}=t;const i=At(n),o=gn(n);if(n===o)return e;let a={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if((i||!i&&r!=="fixed")&&((Gt(n)!=="body"||Ds(o))&&(a=Ts(n)),At(n))){const c=sr(n,!0);s.x=c.x+n.clientLeft,s.y=c.y+n.clientTop}return{...e,x:e.x-a.scrollLeft+s.x,y:e.y-a.scrollTop+s.y}}function sI(t,e){const n=Ut(t),r=gn(t),i=n.visualViewport;let o=r.clientWidth,a=r.clientHeight,s=0,c=0;if(i){o=i.width,a=i.height;const u=ly();(u||!u&&e==="fixed")&&(s=i.offsetLeft,c=i.offsetTop)}return{width:o,height:a,x:s,y:c}}function cI(t){var e;const n=gn(t),r=Ts(t),i=(e=t.ownerDocument)==null?void 0:e.body,o=xo(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),a=xo(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0);let s=-r.scrollLeft+dy(t);const c=-r.scrollTop;return Ao(i||n).direction==="rtl"&&(s+=xo(n.clientWidth,i?i.clientWidth:0)-o),{width:o,height:a,x:s,y:c}}function gy(t){const e=hy(t);return["html","body","#document"].includes(Gt(e))?t.ownerDocument.body:At(e)&&Ds(e)?e:gy(e)}function yy(t,e){var n;e===void 0&&(e=[]);const r=gy(t),i=r===((n=t.ownerDocument)==null?void 0:n.body),o=Ut(r),a=i?[o].concat(o.visualViewport||[],Ds(r)?r:[]):r,s=e.concat(a);return i?s:s.concat(yy(a))}function uI(t,e){const n=e==null||e.getRootNode==null?void 0:e.getRootNode();if(t!=null&&t.contains(e))return!0;if(n&&pf(n)){let r=e;do{if(r&&t===r)return!0;r=r.parentNode||r.host}while(r)}return!1}function lI(t,e){const n=sr(t,!1,e==="fixed"),r=n.top+t.clientTop,i=n.left+t.clientLeft;return{top:r,left:i,x:i,y:r,right:i+t.clientWidth,bottom:r+t.clientHeight,width:t.clientWidth,height:t.clientHeight}}function by(t,e,n){return e==="viewport"?Ss(sI(t,n)):Kr(e)?lI(e,n):Ss(cI(gn(t)))}function fI(t){const e=yy(t),r=["absolute","fixed"].includes(Ao(t).position)&&At(t)?mf(t):t;return Kr(r)?e.filter(i=>Kr(i)&&uI(i,r)&&Gt(i)!=="body"):[]}function dI(t){let{element:e,boundary:n,rootBoundary:r,strategy:i}=t;const a=[...n==="clippingAncestors"?fI(e):[].concat(n),r],s=a[0],c=a.reduce((u,f)=>{const l=by(e,f,i);return u.top=xo(l.top,u.top),u.right=fy(l.right,u.right),u.bottom=fy(l.bottom,u.bottom),u.left=xo(l.left,u.left),u},by(e,s,i));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}const hI={getClippingRect:dI,convertOffsetParentRelativeRectToViewportRelativeRect:aI,isElement:Kr,getDimensions:my,getOffsetParent:mf,getDocumentElement:gn,getElementRects:t=>{let{reference:e,floating:n,strategy:r}=t;return{reference:iI(e,mf(n),r),floating:{...my(n),x:0,y:0}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>Ao(t).direction==="rtl"},pI=(t,e,n)=>_6(t,e,{platform:hI,...n});let xt;const wo=[],gf=cs(t=>t(),150,!1);function Co(t){if((t==null?void 0:t.type)=="contextmenu"){t.preventDefault();return}xt&&(xt.remove(),xt=void 0,document.body.classList.remove(jn))}function vy(t){var e;if(!(t<1)){for(let n=t;n<wo.length;n++)(e=wo[n])==null||e.remove(),wo[n]=void 0;for(const n of wo[t-1].querySelectorAll("li.active"))n.classList.remove("active")}}const mI=()=>D`<li class="menu-divider"></li>`,gI=t=>D`<li class="menu-header">${t.label||"-"}</li>`,yI=(t,e)=>D`<li><a class="submenu-item" @click="${n=>n.stopPropagation()}" @mouseup="${n=>n.stopPropagation()}" @mouseenter="${n=>gf(()=>{const r=n.target.closest("li");AI(t.submenu,r,e+1),n.stopPropagation()})}" @mouseleave="${()=>gf(()=>vy(e+1))}"><span>${t.label}</span></a></li>`,bI=t=>D`<li><a @mouseup="${()=>{Co(),t.callback()}}">${t.icon?q(t.icon).node[0]:""} ${t.label}</a> ${t.ellipsisCallback?D`<a class="menu-ellipsis" @click="${t.ellipsisCallback}">${q(D5).node[0]}</a>`:R}</li>`,vI=t=>D`<li><span class="disabled-item">${t.icon?q(t.icon).node[0]:""} ${t.label||"-"}</span></li>`;function Ay(t,e=1){switch(t.type){case"divider":return mI();case"header":return gI(t);default:return t.submenu?yI(t,e):t.callback?bI(t):vI(t)}}function AI(t,e,n){xy(t,e,n,"right-start"),e.classList.add("active")}function xy(t,e,n,r){const i=document.createElement("ul");i.classList.add("gs-context-menu"),i.addEventListener("mouseenter",()=>{gf(()=>{})}),Be(t.map(o=>Ay(o,n)),i),xt.appendChild(i),vy(n),wo[n]=i,pI(e,i,{placement:r!=null?r:"right-start",middleware:[eI()]}).then(({x:o,y:a})=>{const s=i.querySelector(":scope > li");s&&(a-=s.getBoundingClientRect().top),i.style.left=`${o}px`,i.style.top=`${a}px`})}function wy(t,e,n){n!=null||(n="bottom-start"),Co();const r=performance.now(),i=document.body;xt=document.createElement("div"),xt.classList.add("gs-context-menu-backdrop"),xt.addEventListener("click",Co),xt.addEventListener("contextmenu",Co),xt.addEventListener("mouseup",()=>{performance.now()-r>500&&Co()},{once:!0}),i.appendChild(xt),document.body.classList.add(jn),xy(t.items,e,0,n)}function Cy(t,e){wy(t,xI(e),"right-start"),e.preventDefault()}function xI(t){return{getBoundingClientRect(){return{width:0,height:0,x:t.clientX,y:t.clientY,top:t.clientY,left:t.clientX,right:t.clientX,bottom:t.clientY,toJSON:void 0}}}}const yf={NOMINAL:"nominal",ORDINAL:"ordinal",QUANTITATIVE:"quantitative"},Is="SAMPLE_ATTRIBUTE",Sy="SAMPLE_NAME",wI=/^attribute-(.*)$/;class Ey extends Hr{constructor(e){super({title:"Sample metadata",data:{dynamicSource:!0},hconcat:[],spacing:1,resolve:{scale:{default:"independent"},axis:{default:"independent"}}},e.context,void 0,"sample-metadata"),this.sampleView=e,this._attributeHighlighState={backgroundOpacity:1,currentAttribute:void 0,abortController:new AbortController},this.sampleView.compositeAttributeInfoSource.addAttributeInfoSource(Is,n=>this.children.map(this.getAttributeInfoFromView.bind(this)).find(r=>r&&r.name==n.specifier)),this.sampleView.compositeAttributeInfoSource.addAttributeInfoSource(Sy,n=>Dy),this.addInteractionEventListener("contextmenu",this.handleContextMenu.bind(this)),this.addInteractionEventListener("mousemove",(n,r)=>{var s;const i=r.target,o=this._findSampleForMouseEvent(n,r),a=i&&((s=this.getAttributeInfoFromView(i))==null?void 0:s.name)||void 0;if(o){const c=JSON.stringify([o.id,a]);this.context.updateTooltip(c,u=>Promise.resolve(this.sampleToTooltip(u)))}this._handleAttributeHighlight(a)}),je([...this.sampleView.getAncestors()]).addInteractionEventListener("mousemove",(n,r)=>{if(!!this._attributeHighlighState.currentAttribute){if(r.target){for(const i of r.target.getAncestors())if(i==this)return}this._handleAttributeHighlight(void 0)}})}getEncoding(){return{}}render(e,n,r={}){!this.isVisible()||super.render(e,n,{...r,clipRect:this.sampleView._clipBySummary(n)})}_handleAttributeHighlight(e){const n=this._attributeHighlighState;e!=n.currentAttribute&&(n.abortController.abort(),n.abortController=new AbortController,this.context.animator.transition({from:n.backgroundOpacity,onUpdate:r=>{n.backgroundOpacity=r},easingFunction:ag,signal:n.abortController.signal,...e?{to:.1,duration:1e3,delay:n.backgroundOpacity<1?0:500}:{to:1,duration:200,delay:150}}).catch(r=>{}),this.context.animator.requestRender()),n.currentAttribute=e}getSample(e){var n;return(n=this.sampleView.sampleHierarchy.sampleData)==null?void 0:n.entities[e]}_findSampleForMouseEvent(e,n){return this.sampleView.getSampleAt(n.point.y-this.sampleView.childCoords.y)}_getAttributeOpacity(e){const n=this._attributeHighlighState;return e==n.currentAttribute?1:n.backgroundOpacity}handleContextMenu(e,n){const r=n.uiEvent,i=this._findSampleForMouseEvent(e,n);if(!i){r.preventDefault();return}const o=[],a=this.getAttributeInfoFromView(n.target);if(a){const s=i.attributes[a.name];o.push(...lf(D`Attribute: <strong>${a.name}</strong>`,a,s,this.sampleView))}else o.push(...lf(D`Sample: <strong>${i.displayName}</strong>`,Dy,i.id,this.sampleView));Cy({items:o},r)}_setSamples(e){if(this.childCount)throw new Error("Children are already created!");this._createViews();const n=this.context.dataFlow;Bg(this,n);const r=n.findDataSourceByKey(this);r.visit(o=>o.initialize());const i=[];this.visit(o=>{if(o instanceof ye){const a=o.mark;a.initializeEncoders(),i.push(a.initializeGraphics().then(s=>a)),n.addObserver(s=>{a.initializeData(),a.updateGraphicsData()},o)}}),Promise.allSettled(i).then(o=>{for(const a of o)"value"in a?a.value.finalizeGraphicsInitialization():"reason"in a&&console.error(a.reason)}),r.publishData(e),this.visit(o=>{o.name.startsWith("title")&&n.findDataSourceByKey(o).load()})}_createViews(){const e=[];e.push(this.context.createView(SI(),this));for(const n of this._getAttributeNames()){const r=this.context.createView(this._createAttributeViewSpec(n),this);r.opacityFunction=i=>i*this._getAttributeOpacity(n),e.push(r)}this.setChildren(e),Pg(this)}_getAttributeDef(e){var n,r;return(r=(n=this.sampleView.spec.samples)==null?void 0:n.attributes)==null?void 0:r[e]}_getAttributeNames(){return this._cache("attributeNames",()=>[...this.sampleView.getSamples().flatMap(r=>Object.keys(r.attributes)).reduce((r,i)=>r.add(i),new Set)])}_createAttributeViewSpec(e){const n=this._getAttributeDef(e);let r=n?n.type:void 0;if(!r){const i=this.sampleView.getSamples();switch(fh(i.map(o=>o.attributes[e]))){case"integer":case"number":r=yf.QUANTITATIVE;break;default:r=yf.NOMINAL}}return CI(e,{...n||{},type:r})}_findViewForAttribute(e){return this.children[this._getAttributeNames().indexOf(e)+1]}getAttributeInfoFromView(e){const n=e==null?void 0:e.name.match(wI);if(n){const r=e.getScaleResolution("color"),i=n[1];return{name:i,attribute:{type:Is,specifier:i},accessor:(o,a)=>a.sampleData.entities[o].attributes[i],type:r.type,scale:r.getScale(),title:D`<em class="attribute">${i}</em>`}}}getAttributeInfo(e){return this.getAttributeInfoFromView(this._findViewForAttribute(e))}sampleToTooltip(e){const[n,r]=JSON.parse(e),i=this.getSample(n),o=(s,c)=>EI(c)?this.getAttributeInfo(s).scale(c):"transparent",a=D`<table class="attributes">${Object.entries(i.attributes).map(([s,c])=>D`<tr class="${s5({hovered:s==r})}"><th>${s}</th><td>${Qg(c)}</td><td class="color" .style="background-color: ${o(s,c)}"></td></tr>`)}</table>`;return D`<div class="title"><strong>${i.displayName||i.id}</strong></div>${a}`}getDefaultResolution(e,n){return"independent"}handleVerboseCommand(e){const n=e;for(const r of this._getAttributeNames()){const i=this.getAttributeInfo(r);if((i.type==ml||i.type==gl)&&this.sampleView.getSamples().find(a=>a.attributes[i.name]==n)){const a=this.sampleView.actions.filterByNominal({attribute:{type:Is,specifier:r},values:[n]}),s=this.sampleView.provenance.getPresentState().lastAction,c=this.sampleView.actions.filterByNominal.match(s)&&!s.payload.remove&&s.payload.attribute.type==Is&&s.payload.attribute.specifier==r&&s.payload.values.length==1;return this.sampleView.provenance.storeHelper.dispatch(c?[jt.ActionCreators.undo(),a]:a),!0}}return!1}isPickingSupported(){return!1}}function CI(t,e){var i,o;const n=`attributes["${t}"]`,r={name:`attribute-${t}`,title:{text:t,orient:"bottom",align:"right",baseline:"middle",offset:5,angle:-90,dy:-.5,fontSize:11},visible:(i=e.visible)!=null?i:!0,width:(o=e.width)!=null?o:10,transform:[{type:"filter",expr:`datum.${n} != null`}],mark:{type:"rect",xOffset:-.5},encoding:{facetIndex:{field:"indexNumber"},color:{field:n,type:e.type,scale:e.scale}},opacity:1};return e.barScale&&e.type==yf.QUANTITATIVE&&(r.encoding.x={field:`attributes["${t}"]`,type:e.type,scale:e.barScale,axis:null}),r}function SI(){return{name:"metadata-sample-name",title:{text:"Sample name",orient:"bottom",anchor:"start",offset:5,fontSize:11},width:140,mark:{type:"text",align:"left",baseline:"middle",size:11,flushY:!1},encoding:{facetIndex:{field:"indexNumber"},x:{value:0},x2:{value:1},y:{value:0},y2:{value:1},text:{field:"displayName"}}}}function EI(t){return t!==""&&!(typeof t=="number"&&isNaN(t))&&t!==null}const Dy=Object.freeze({name:"sample",attribute:{type:Sy},accessor:t=>t,type:"identifier",scale:void 0});class DI extends Nt{constructor(e){super({title:{text:"Groups",orient:"none"},width:{step:22},data:{dynamicSource:!0},transform:[{type:"filter",expr:"datum._depth > 0"},{type:"formula",as:"_y1",expr:"datum._index * 2"},{type:"formula",as:"_y2",expr:"datum._index * 2 + 1"},{type:"formula",as:"_NA",expr:"datum.label == null"},{type:"formula",as:"label",expr:"datum.label != null ? datum.label: 'NA'"}],encoding:{x:{field:"_depth",type:"ordinal",scale:{align:0,padding:.2272727},axis:null},y:{field:"_y1",type:"nominal",scale:{type:"ordinal",domain:Yt(500)},axis:null},y2:{field:"_y2"}},layer:[{title:"Group",mark:{type:"rect",clip:!0,color:"#e8e8e8"}},{mark:{type:"text",clip:!0,angle:-90,paddingY:5,tooltip:null},encoding:{text:{field:"label"},opacity:{field:"_NA",type:"nominal",scale:{type:"ordinal",domain:[!1,!0],range:[1,.3]}}}}]},e.context,void 0,"sample-groups"),this.sampleView=e,this._addBroadcastHandler("layoutComputed",()=>{this.updateRange()})}updateRange(){var o,a,s;const e=(o=this.sampleView.getLocations())==null?void 0:o.groups;if(!(e!=null&&e.length))return;const n=(s=(a=this.sampleView)==null?void 0:a.childCoords.height)!=null?s:0,r=this.getScaleResolution("y"),i=[];for(const c of e)i.push(1-(c.locSize.location+c.locSize.size)/n),i.push(1-c.locSize.location/n);r.getScale().range(i),this.context.glHelper.createRangeTexture(r,!0)}updateGroups(){var i,o;const e=(o=(i=this.sampleView.getLocations())==null?void 0:i.groups)!=null?o:[],n=this.context.dataFlow.findDataSourceByKey(this);if(!n)return;const r=e.map(a=>({_index:a.key.index,_name:a.key.group.name,_depth:a.key.depth,attribute:a.key.attributeLabel,label:a.key.group.label,n:a.key.n}));n.publishData(r),this.getScaleResolution("x").reconfigure(),this.getScaleResolution("y").reconfigure(),e.length&&this.updateRange(),je([...this.getAncestors()]).visit(a=>io(a,"size"))}}function ut(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];throw Error("[Immer] minified error nr: "+t+(n.length?" "+n.map(function(i){return"'"+i+"'"}).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function yn(t){return!!t&&!!t[re]}function Ht(t){return!!t&&(function(e){if(!e||typeof e!="object")return!1;var n=Object.getPrototypeOf(e);if(n===null)return!0;var r=Object.hasOwnProperty.call(n,"constructor")&&n.constructor;return r===Object||typeof r=="function"&&Function.toString.call(r)===PI}(t)||Array.isArray(t)||!!t[Fy]||!!t.constructor[Fy]||bf(t)||vf(t))}function cr(t,e,n){n===void 0&&(n=!1),Jr(t)===0?(n?Object.keys:ei)(t).forEach(function(r){n&&typeof r=="symbol"||e(r,t[r],t)}):t.forEach(function(r,i){return e(i,r,t)})}function Jr(t){var e=t[re];return e?e.i>3?e.i-4:e.i:Array.isArray(t)?1:bf(t)?2:vf(t)?3:0}function $r(t,e){return Jr(t)===2?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function MI(t,e){return Jr(t)===2?t.get(e):t[e]}function My(t,e,n){var r=Jr(t);r===2?t.set(e,n):r===3?(t.delete(e),t.add(n)):t[e]=n}function Ty(t,e){return t===e?t!==0||1/t==1/e:t!=t&&e!=e}function bf(t){return BI&&t instanceof Map}function vf(t){return OI&&t instanceof Set}function ur(t){return t.o||t.t}function Af(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var e=zy(t);delete e[re];for(var n=ei(e),r=0;r<n.length;r++){var i=n[r],o=e[i];o.writable===!1&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(e[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:t[i]})}return Object.create(Object.getPrototypeOf(t),e)}function xf(t,e){return e===void 0&&(e=!1),wf(t)||yn(t)||!Ht(t)||(Jr(t)>1&&(t.set=t.add=t.clear=t.delete=TI),Object.freeze(t),e&&cr(t,function(n,r){return xf(r,!0)},!0)),t}function TI(){ut(2)}function wf(t){return t==null||typeof t!="object"||Object.isFrozen(t)}function wt(t){var e=Nf[t];return e||ut(18,t),e}function II(t,e){Nf[t]||(Nf[t]=e)}function Cf(){return So}function Sf(t,e){e&&(wt("Patches"),t.u=[],t.s=[],t.v=e)}function ks(t){Ef(t),t.p.forEach(kI),t.p=null}function Ef(t){t===So&&(So=t.l)}function Iy(t){return So={p:[],l:So,h:t,m:!0,_:0}}function kI(t){var e=t[re];e.i===0||e.i===1?e.j():e.O=!0}function Df(t,e){e._=e.p.length;var n=e.p[0],r=t!==void 0&&t!==n;return e.h.g||wt("ES5").S(e,t,r),r?(n[re].P&&(ks(e),ut(4)),Ht(t)&&(t=Ns(e,t),e.l||Ls(e,t)),e.u&&wt("Patches").M(n[re].t,t,e.u,e.s)):t=Ns(e,n,[]),ks(e),e.u&&e.v(e.u,e.s),t!==Py?t:void 0}function Ns(t,e,n){if(wf(e))return e;var r=e[re];if(!r)return cr(e,function(o,a){return ky(t,r,e,o,a,n)},!0),e;if(r.A!==t)return e;if(!r.P)return Ls(t,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var i=r.i===4||r.i===5?r.o=Af(r.k):r.o;cr(r.i===3?new Set(i):i,function(o,a){return ky(t,r,i,o,a,n)}),Ls(t,i,!1),n&&t.u&&wt("Patches").R(r,n,t.u,t.s)}return r.o}function ky(t,e,n,r,i,o){if(yn(i)){var a=Ns(t,i,o&&e&&e.i!==3&&!$r(e.D,r)?o.concat(r):void 0);if(My(n,r,a),!yn(a))return;t.m=!1}if(Ht(i)&&!wf(i)){if(!t.h.F&&t._<1)return;Ns(t,i),e&&e.A.l||Ls(t,i)}}function Ls(t,e,n){n===void 0&&(n=!1),t.h.F&&t.m&&xf(e,n)}function Mf(t,e){var n=t[re];return(n?ur(n):t)[e]}function Ny(t,e){if(e in t)for(var n=Object.getPrototypeOf(t);n;){var r=Object.getOwnPropertyDescriptor(n,e);if(r)return r;n=Object.getPrototypeOf(n)}}function bn(t){t.P||(t.P=!0,t.l&&bn(t.l))}function Tf(t){t.o||(t.o=Af(t.t))}function If(t,e,n){var r=bf(e)?wt("MapSet").N(e,n):vf(e)?wt("MapSet").T(e,n):t.g?function(i,o){var a=Array.isArray(i),s={i:a?1:0,A:o?o.A:Cf(),P:!1,I:!1,D:{},l:o,t:i,k:null,o:null,j:null,C:!1},c=s,u=Eo;a&&(c=[s],u=Do);var f=Proxy.revocable(c,u),l=f.revoke,d=f.proxy;return s.k=d,s.j=l,d}(e,n):wt("ES5").J(e,n);return(n?n.A:Cf()).p.push(r),r}function NI(t){return yn(t)||ut(22,t),function e(n){if(!Ht(n))return n;var r,i=n[re],o=Jr(n);if(i){if(!i.P&&(i.i<4||!wt("ES5").K(i)))return i.t;i.I=!0,r=Ly(n,o),i.I=!1}else r=Ly(n,o);return cr(r,function(a,s){i&&MI(i.t,a)===s||My(r,a,e(s))}),o===3?new Set(r):r}(t)}function Ly(t,e){switch(e){case 2:return new Map(t);case 3:return Array.from(t)}return Af(t)}function LI(){function t(o,a){var s=i[o];return s?s.enumerable=a:i[o]=s={configurable:!0,enumerable:a,get:function(){var c=this[re];return Eo.get(c,o)},set:function(c){var u=this[re];Eo.set(u,o,c)}},s}function e(o){for(var a=o.length-1;a>=0;a--){var s=o[a][re];if(!s.P)switch(s.i){case 5:r(s)&&bn(s);break;case 4:n(s)&&bn(s)}}}function n(o){for(var a=o.t,s=o.k,c=ei(s),u=c.length-1;u>=0;u--){var f=c[u];if(f!==re){var l=a[f];if(l===void 0&&!$r(a,f))return!0;var d=s[f],h=d&&d[re];if(h?h.t!==l:!Ty(d,l))return!0}}var p=!!a[re];return c.length!==ei(a).length+(p?0:1)}function r(o){var a=o.k;if(a.length!==o.t.length)return!0;var s=Object.getOwnPropertyDescriptor(a,a.length-1);if(s&&!s.get)return!0;for(var c=0;c<a.length;c++)if(!a.hasOwnProperty(c))return!0;return!1}var i={};II("ES5",{J:function(o,a){var s=Array.isArray(o),c=function(f,l){if(f){for(var d=Array(l.length),h=0;h<l.length;h++)Object.defineProperty(d,""+h,t(h,!0));return d}var p=zy(l);delete p[re];for(var m=ei(p),y=0;y<m.length;y++){var g=m[y];p[g]=t(g,f||!!p[g].enumerable)}return Object.create(Object.getPrototypeOf(l),p)}(s,o),u={i:s?5:4,A:a?a.A:Cf(),P:!1,I:!1,D:{},l:a,t:o,k:c,o:null,O:!1,C:!1};return Object.defineProperty(c,re,{value:u,writable:!0}),c},S:function(o,a,s){s?yn(a)&&a[re].A===o&&e(o.p):(o.u&&function c(u){if(u&&typeof u=="object"){var f=u[re];if(f){var l=f.t,d=f.k,h=f.D,p=f.i;if(p===4)cr(d,function(A){A!==re&&(l[A]!==void 0||$r(l,A)?h[A]||c(d[A]):(h[A]=!0,bn(f)))}),cr(l,function(A){d[A]!==void 0||$r(d,A)||(h[A]=!1,bn(f))});else if(p===5){if(r(f)&&(bn(f),h.length=!0),d.length<l.length)for(var m=d.length;m<l.length;m++)h[m]=!1;else for(var y=l.length;y<d.length;y++)h[y]=!0;for(var g=Math.min(d.length,l.length),x=0;x<g;x++)d.hasOwnProperty(x)||(h[x]=!0),h[x]===void 0&&c(d[x])}}}}(o.p[0]),e(o.p))},K:function(o){return o.i===4?n(o):r(o)}})}var By,So,kf=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",BI=typeof Map<"u",OI=typeof Set<"u",Oy=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",Py=kf?Symbol.for("immer-nothing"):((By={})["immer-nothing"]=!0,By),Fy=kf?Symbol.for("immer-draftable"):"__$immer_draftable",re=kf?Symbol.for("immer-state"):"__$immer_state",PI=""+Object.prototype.constructor,ei=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Object.getOwnPropertyNames,zy=Object.getOwnPropertyDescriptors||function(t){var e={};return ei(t).forEach(function(n){e[n]=Object.getOwnPropertyDescriptor(t,n)}),e},Nf={},Eo={get:function(t,e){if(e===re)return t;var n=ur(t);if(!$r(n,e))return function(i,o,a){var s,c=Ny(o,a);return c?"value"in c?c.value:(s=c.get)===null||s===void 0?void 0:s.call(i.k):void 0}(t,n,e);var r=n[e];return t.I||!Ht(r)?r:r===Mf(t.t,e)?(Tf(t),t.o[e]=If(t.A.h,r,t)):r},has:function(t,e){return e in ur(t)},ownKeys:function(t){return Reflect.ownKeys(ur(t))},set:function(t,e,n){var r=Ny(ur(t),e);if(r!=null&&r.set)return r.set.call(t.k,n),!0;if(!t.P){var i=Mf(ur(t),e),o=i==null?void 0:i[re];if(o&&o.t===n)return t.o[e]=n,t.D[e]=!1,!0;if(Ty(n,i)&&(n!==void 0||$r(t.t,e)))return!0;Tf(t),bn(t)}return t.o[e]===n&&typeof n!="number"&&(n!==void 0||e in t.o)||(t.o[e]=n,t.D[e]=!0,!0)},deleteProperty:function(t,e){return Mf(t.t,e)!==void 0||e in t.t?(t.D[e]=!1,Tf(t),bn(t)):delete t.D[e],t.o&&delete t.o[e],!0},getOwnPropertyDescriptor:function(t,e){var n=ur(t),r=Reflect.getOwnPropertyDescriptor(n,e);return r&&{writable:!0,configurable:t.i!==1||e!=="length",enumerable:r.enumerable,value:n[e]}},defineProperty:function(){ut(11)},getPrototypeOf:function(t){return Object.getPrototypeOf(t.t)},setPrototypeOf:function(){ut(12)}},Do={};cr(Eo,function(t,e){Do[t]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}}),Do.deleteProperty=function(t,e){return Do.set.call(this,t,e,void 0)},Do.set=function(t,e,n){return Eo.set.call(this,t[0],e,n,t[0])};var FI=function(){function t(n){var r=this;this.g=Oy,this.F=!0,this.produce=function(i,o,a){if(typeof i=="function"&&typeof o!="function"){var s=o;o=i;var c=r;return function(m){var y=this;m===void 0&&(m=s);for(var g=arguments.length,x=Array(g>1?g-1:0),A=1;A<g;A++)x[A-1]=arguments[A];return c.produce(m,function(C){var v;return(v=o).call.apply(v,[y,C].concat(x))})}}var u;if(typeof o!="function"&&ut(6),a!==void 0&&typeof a!="function"&&ut(7),Ht(i)){var f=Iy(r),l=If(r,i,void 0),d=!0;try{u=o(l),d=!1}finally{d?ks(f):Ef(f)}return typeof Promise<"u"&&u instanceof Promise?u.then(function(m){return Sf(f,a),Df(m,f)},function(m){throw ks(f),m}):(Sf(f,a),Df(u,f))}if(!i||typeof i!="object"){if((u=o(i))===void 0&&(u=i),u===Py&&(u=void 0),r.F&&xf(u,!0),a){var h=[],p=[];wt("Patches").M(i,u,h,p),a(h,p)}return u}ut(21,i)},this.produceWithPatches=function(i,o){if(typeof i=="function")return function(u){for(var f=arguments.length,l=Array(f>1?f-1:0),d=1;d<f;d++)l[d-1]=arguments[d];return r.produceWithPatches(u,function(h){return i.apply(void 0,[h].concat(l))})};var a,s,c=r.produce(i,o,function(u,f){a=u,s=f});return typeof Promise<"u"&&c instanceof Promise?c.then(function(u){return[u,a,s]}):[c,a,s]},typeof(n==null?void 0:n.useProxies)=="boolean"&&this.setUseProxies(n.useProxies),typeof(n==null?void 0:n.autoFreeze)=="boolean"&&this.setAutoFreeze(n.autoFreeze)}var e=t.prototype;return e.createDraft=function(n){Ht(n)||ut(8),yn(n)&&(n=NI(n));var r=Iy(this),i=If(this,n,void 0);return i[re].C=!0,Ef(r),i},e.finishDraft=function(n,r){var i=n&&n[re],o=i.A;return Sf(o,r),Df(void 0,o)},e.setAutoFreeze=function(n){this.F=n},e.setUseProxies=function(n){n&&!Oy&&ut(20),this.g=n},e.applyPatches=function(n,r){var i;for(i=r.length-1;i>=0;i--){var o=r[i];if(o.path.length===0&&o.op==="replace"){n=o.value;break}}i>-1&&(r=r.slice(i+1));var a=wt("Patches").$;return yn(n)?a(n,r):this.produce(n,function(s){return a(s,r)})},t}(),Qe=new FI,Ry=Qe.produce;Qe.produceWithPatches.bind(Qe),Qe.setAutoFreeze.bind(Qe),Qe.setUseProxies.bind(Qe),Qe.applyPatches.bind(Qe),Qe.createDraft.bind(Qe),Qe.finishDraft.bind(Qe);function zI(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function jy(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Uy(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?jy(Object(n),!0).forEach(function(r){zI(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):jy(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function Ee(t){return"Minified Redux error #"+t+"; visit https://redux.js.org/Errors?code="+t+" for the full message or use the non-minified dev environment for full errors. "}var Gy=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}(),Lf=function(){return Math.random().toString(36).substring(7).split("").join(".")},Bs={INIT:"@@redux/INIT"+Lf(),REPLACE:"@@redux/REPLACE"+Lf(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+Lf()}};function RI(t){if(typeof t!="object"||t===null)return!1;for(var e=t;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function Hy(t,e,n){var r;if(typeof e=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(Ee(0));if(typeof e=="function"&&typeof n>"u"&&(n=e,e=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(Ee(1));return n(Hy)(t,e)}if(typeof t!="function")throw new Error(Ee(2));var i=t,o=e,a=[],s=a,c=!1;function u(){s===a&&(s=a.slice())}function f(){if(c)throw new Error(Ee(3));return o}function l(m){if(typeof m!="function")throw new Error(Ee(4));if(c)throw new Error(Ee(5));var y=!0;return u(),s.push(m),function(){if(!!y){if(c)throw new Error(Ee(6));y=!1,u();var x=s.indexOf(m);s.splice(x,1),a=null}}}function d(m){if(!RI(m))throw new Error(Ee(7));if(typeof m.type>"u")throw new Error(Ee(8));if(c)throw new Error(Ee(9));try{c=!0,o=i(o,m)}finally{c=!1}for(var y=a=s,g=0;g<y.length;g++){var x=y[g];x()}return m}function h(m){if(typeof m!="function")throw new Error(Ee(10));i=m,d({type:Bs.REPLACE})}function p(){var m,y=l;return m={subscribe:function(x){if(typeof x!="object"||x===null)throw new Error(Ee(11));function A(){x.next&&x.next(f())}A();var C=y(A);return{unsubscribe:C}}},m[Gy]=function(){return this},m}return d({type:Bs.INIT}),r={dispatch:d,subscribe:l,getState:f,replaceReducer:h},r[Gy]=p,r}function jI(t){Object.keys(t).forEach(function(e){var n=t[e],r=n(void 0,{type:Bs.INIT});if(typeof r>"u")throw new Error(Ee(12));if(typeof n(void 0,{type:Bs.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(Ee(13))})}function Bf(t){for(var e=Object.keys(t),n={},r=0;r<e.length;r++){var i=e[r];typeof t[i]=="function"&&(n[i]=t[i])}var o=Object.keys(n),a;try{jI(n)}catch(s){a=s}return function(c,u){if(c===void 0&&(c={}),a)throw a;for(var f=!1,l={},d=0;d<o.length;d++){var h=o[d],p=n[h],m=c[h],y=p(m,u);if(typeof y>"u")throw u&&u.type,new Error(Ee(14));l[h]=y,f=f||y!==m}return f=f||o.length!==Object.keys(c).length,f?l:c}}function Os(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return e.length===0?function(r){return r}:e.length===1?e[0]:e.reduce(function(r,i){return function(){return r(i.apply(void 0,arguments))}})}function UI(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(r){return function(){var i=r.apply(void 0,arguments),o=function(){throw new Error(Ee(15))},a={getState:i.getState,dispatch:function(){return o.apply(void 0,arguments)}},s=e.map(function(c){return c(a)});return o=Os.apply(void 0,s)(i.dispatch),Uy(Uy({},i),{},{dispatch:o})}}}var Ps="NOT_FOUND";function GI(t){var e;return{get:function(r){return e&&t(e.key,r)?e.value:Ps},put:function(r,i){e={key:r,value:i}},getEntries:function(){return e?[e]:[]},clear:function(){e=void 0}}}function HI(t,e){var n=[];function r(s){var c=n.findIndex(function(f){return e(s,f.key)});if(c>-1){var u=n[c];return c>0&&(n.splice(c,1),n.unshift(u)),u.value}return Ps}function i(s,c){r(s)===Ps&&(n.unshift({key:s,value:c}),n.length>t&&n.pop())}function o(){return n}function a(){n=[]}return{get:r,put:i,getEntries:o,clear:a}}var QI=function(e,n){return e===n};function VI(t){return function(n,r){if(n===null||r===null||n.length!==r.length)return!1;for(var i=n.length,o=0;o<i;o++)if(!t(n[o],r[o]))return!1;return!0}}function YI(t,e){var n=typeof e=="object"?e:{equalityCheck:e},r=n.equalityCheck,i=r===void 0?QI:r,o=n.maxSize,a=o===void 0?1:o,s=n.resultEqualityCheck,c=VI(i),u=a===1?GI(c):HI(a,c);function f(){var l=u.get(arguments);if(l===Ps){if(l=t.apply(null,arguments),s){var d=u.getEntries(),h=d.find(function(p){return s(p.value,l)});h&&(l=h.value)}u.put(arguments,l)}return l}return f.clearCache=function(){return u.clear()},f}function _I(t){var e=Array.isArray(t[0])?t[0]:t;if(!e.every(function(r){return typeof r=="function"})){var n=e.map(function(r){return typeof r=="function"?"function "+(r.name||"unnamed")+"()":typeof r}).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+n+"]")}return e}function WI(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];var i=function(){for(var a=arguments.length,s=new Array(a),c=0;c<a;c++)s[c]=arguments[c];var u=0,f,l={memoizeOptions:void 0},d=s.pop();if(typeof d=="object"&&(l=d,d=s.pop()),typeof d!="function")throw new Error("createSelector expects an output function after the inputs, but received: ["+typeof d+"]");var h=l,p=h.memoizeOptions,m=p===void 0?n:p,y=Array.isArray(m)?m:[m],g=_I(s),x=t.apply(void 0,[function(){return u++,d.apply(null,arguments)}].concat(y)),A=t(function(){for(var C=[],v=g.length,b=0;b<v;b++)C.push(g[b].apply(null,arguments));return f=x.apply(null,C),f});return Object.assign(A,{resultFunc:d,memoizedResultFunc:x,dependencies:g,lastResult:function(){return f},recomputations:function(){return u},resetRecomputations:function(){return u=0}}),A};return i}var XI=WI(YI);function Qy(t){var e=function(r){var i=r.dispatch,o=r.getState;return function(a){return function(s){return typeof s=="function"?s(i,o,t):a(s)}}};return e}var Vy=Qy();Vy.withExtraArgument=Qy;const Yy=Vy;var ZI=globalThis&&globalThis.__extends||function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(r[o]=i[o])},t(e,n)};return function(e,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}();globalThis&&globalThis.__generator;var Fs=globalThis&&globalThis.__spreadArray||function(t,e){for(var n=0,r=e.length,i=t.length;n<r;n++,i++)t[i]=e[n];return t},qI=Object.defineProperty,_y=Object.getOwnPropertySymbols,KI=Object.prototype.hasOwnProperty,JI=Object.prototype.propertyIsEnumerable,Wy=function(t,e,n){return e in t?qI(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n},Mo=function(t,e){for(var n in e||(e={}))KI.call(e,n)&&Wy(t,n,e[n]);if(_y)for(var r=0,i=_y(e);r<i.length;r++){var n=i[r];JI.call(e,n)&&Wy(t,n,e[n])}return t},$I=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?Os:Os.apply(null,arguments)};function e9(t){if(typeof t!="object"||t===null)return!1;var e=Object.getPrototypeOf(t);if(e===null)return!0;for(var n=e;Object.getPrototypeOf(n)!==null;)n=Object.getPrototypeOf(n);return e===n}var t9=function(t){ZI(e,t);function e(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var i=t.apply(this,n)||this;return Object.setPrototypeOf(i,e.prototype),i}return Object.defineProperty(e,Symbol.species,{get:function(){return e},enumerable:!1,configurable:!0}),e.prototype.concat=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return t.prototype.concat.apply(this,n)},e.prototype.prepend=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return n.length===1&&Array.isArray(n[0])?new(e.bind.apply(e,Fs([void 0],n[0].concat(this)))):new(e.bind.apply(e,Fs([void 0],n.concat(this))))},e}(Array);function Of(t){return Ht(t)?Ry(t,function(){}):t}function n9(t){return typeof t=="boolean"}function r9(){return function(e){return i9(e)}}function i9(t){t===void 0&&(t={});var e=t.thunk,n=e===void 0?!0:e;t.immutableCheck,t.serializableCheck;var r=new t9;return n&&(n9(n)?r.push(Yy):r.push(Yy.withExtraArgument(n.extraArgument))),r}var o9=!0;function a9(t){var e=r9(),n=t||{},r=n.reducer,i=r===void 0?void 0:r,o=n.middleware,a=o===void 0?e():o,s=n.devTools,c=s===void 0?!0:s,u=n.preloadedState,f=u===void 0?void 0:u,l=n.enhancers,d=l===void 0?void 0:l,h;if(typeof i=="function")h=i;else if(e9(i))h=Bf(i);else throw new Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');var p=a;typeof p=="function"&&(p=p(e));var m=UI.apply(void 0,p),y=Os;c&&(y=$I(Mo({trace:!o9},typeof c=="object"&&c)));var g=[m];Array.isArray(d)?g=Fs([m],d):typeof d=="function"&&(g=d(g));var x=y.apply(void 0,g);return Hy(h,f,x)}function To(t,e){function n(){for(var r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];if(e){var o=e.apply(void 0,r);if(!o)throw new Error("prepareAction did not return an object");return Mo(Mo({type:t,payload:o.payload},"meta"in o&&{meta:o.meta}),"error"in o&&{error:o.error})}return{type:t,payload:r[0]}}return n.toString=function(){return""+t},n.type=t,n.match=function(r){return r.type===t},n}function Xy(t){var e={},n=[],r,i={addCase:function(o,a){var s=typeof o=="string"?o:o.type;if(s in e)throw new Error("addCase cannot be called with two reducers for the same action type");return e[s]=a,i},addMatcher:function(o,a){return n.push({matcher:o,reducer:a}),i},addDefaultCase:function(o){return r=o,i}};return t(i),[e,n,r]}function s9(t){return typeof t=="function"}function c9(t,e,n,r){n===void 0&&(n=[]);var i=typeof e=="function"?Xy(e):[e,n,r],o=i[0],a=i[1],s=i[2],c;if(s9(t))c=function(){return Of(t())};else{var u=Of(t);c=function(){return u}}function f(l,d){l===void 0&&(l=c());var h=Fs([o[d.type]],a.filter(function(p){var m=p.matcher;return m(d)}).map(function(p){var m=p.reducer;return m}));return h.filter(function(p){return!!p}).length===0&&(h=[s]),h.reduce(function(p,m){if(m)if(yn(p)){var y=p,g=m(y,d);return typeof g>"u"?p:g}else{if(Ht(p))return Ry(p,function(x){return m(x,d)});var g=m(p,d);if(typeof g>"u"){if(p===null)return p;throw Error("A case reducer on a non-draftable value must not return undefined")}return g}return p},l)}return f.getInitialState=c,f}function u9(t,e){return t+"/"+e}function Zy(t){var e=t.name;if(!e)throw new Error("`name` is a required option for createSlice");typeof process<"u";var n=typeof t.initialState=="function"?t.initialState:Of(t.initialState),r=t.reducers||{},i=Object.keys(r),o={},a={},s={};i.forEach(function(f){var l=r[f],d=u9(e,f),h,p;"reducer"in l?(h=l.reducer,p=l.prepare):h=l,o[f]=h,a[d]=h,s[f]=p?To(d,p):To(d)});function c(){var f=typeof t.extraReducers=="function"?Xy(t.extraReducers):[t.extraReducers],l=f[0],d=l===void 0?{}:l,h=f[1],p=h===void 0?[]:h,m=f[2],y=m===void 0?void 0:m,g=Mo(Mo({},d),a);return c9(n,g,p,y)}var u;return{name:e,reducer:function(f,l){return u||(u=c()),u(f,l)},actions:s,caseReducers:o,getInitialState:function(){return u||(u=c()),u.getInitialState()}}}var Pf="listenerMiddleware";To(Pf+"/add"),To(Pf+"/removeAll"),To(Pf+"/remove"),LI();function qy(t,e,n,r){if(r&&!n)throw new Error("Custom labels need explicit group order!");const i=ci(t.samples,e),o=n?n.map(c=>[c,i.get(c)]).filter(c=>c[1]):[...i],s=t;s.groups=o.map(([c,u],f)=>({name:""+c,label:r?r[f]:c,samples:u})),delete t.samples}function Ky(t,e,n){const r=le(".3~r"),i=a=>`${n[a].operator=="lt"?"[":"("}${r(n[a].operand)}, ${r(n[a+1].operand)}${n[a+1].operator=="lte"?"]":")"}`,o=Yt(n.length-1).reverse();qy(t,d9(e,n.slice(1,n.length-1)),o,o.map(i))}function l9(t,e,n){Ky(t,e,[{operator:"lt",operand:-1/0},...n,{operator:"lte",operand:1/0}])}function f9(t,e){const n=p9(h9(t.samples,e,[0,.25,.5,.75,1]));n.length==1&&n.push(n[0]),Ky(t,e,n.map((r,i,o)=>({operator:i==o.length-1?"lte":"lt",operand:r})))}function d9(t,e){return r=>{const i=t(r);if(!(!ce(i)||isNaN(i))){for(let o=0;o<e.length;o++)if(e[o].operator=="lt"){if(i<e[o].operand)return o}else if(i<=e[o].operand)return o;return e.length}}}function h9(t,e,n){const r=Vb(t.map(e).filter(i=>ce(i)&&!isNaN(i)));return n.map(i=>ac(r,i))}function p9(t){const e=[t[0]];for(let n=1;n<t.length;n++)t[n]!=t[n-1]&&e.push(t[n]);return e}function m9(t,e){var n=t+"",r=e+"";return n<r?-1:n==r?0:1}var g9=[].forEach;function y9(t,e,n){if(typeof e!="function")throw new TypeError(e+" is not a function");var r,i=[],o=[],a=[];g9.call(t,function(c,u,f){if(r=e(c,u,f),r===void 0)return void a.push(c);if(n===void 0&&typeof r=="symbol")throw new TypeError("Can't convert symbol to string");i.push(u),o[u]=r}),n===void 0&&(n=m9),i.sort(function(c,u){return n(o[c],o[u])});var s=i.map(function(c){return t[c]}).concat(a);return s.length!=t.length&&(s.length=t.length),s}function b9(t,e){const n=i=>i.copy().range(Yt(0,i.domain().length)).unknown(-1);let r;switch(e.type){case"quantitative":r=i=>ce(i)&&!isNaN(i)?-i:-1/0;break;case"ordinal":r=n(e.scale);break;case"nominal":r=i=>i||"";break}return i=>r(t(i))}function v9(t,e){const n=new Set,r=i=>{const o=n.has(i);return n.add(i),o};return t.filter(i=>!r(e(i)))}function A9(t,e,n){const r=new Set,i=o=>(r.size<n&&r.add(o),r.has(o));return t.filter(o=>i(e(o)))}function x9(t,e,n=!1){return y9(t,e,(r,i)=>(n&&([r,i]=[i,r]),r<i?-1:r>i?1:0))}const w9={lt:(t,e)=>t<e,lte:(t,e)=>t<=e,eq:(t,e)=>t==e,gte:(t,e)=>t>=e,gt:(t,e)=>t>e};function C9(t,e,n,r){const i=w9[n];return t.filter(o=>i(e(o),r))}function Jy(t,e,n,r){const i=new Set(r),o=s=>i.has(s),a=n=="remove"?s=>!o(s):o;return t.filter(s=>a(e(s)))}function S9(t,e){const n=r=>r!=null;return t.filter(r=>n(e(r)))}const $y="setSamples",e2="sortBy",t2="retainFirstOfEach",n2="retainFirstNCategories",r2="filterByNominal",i2="filterByQuantitative",o2="removeUndefined",a2="groupByNominal",s2="groupToQuartiles",c2="groupByThresholds",u2="retainMatched",ti="sampleView";function E9(){return{sampleData:void 0,groupMetadata:[],rootGroup:{name:"ROOT",label:"Root",samples:[]}}}function D9(t){const e=(n,r)=>{const i=t(n.attribute).accessor;return o=>i(o,r)};return Zy({name:ti,initialState:E9(),reducers:{[$y]:(n,r)=>{const i=r.payload.samples;if(n.sampleData)throw new Error("Samples have already been set!");if(i.some(a=>a.id===void 0||a.id===null))throw new Error('The sample metadata contains missing sample ids or the "sample" column is missing!');if(new Set(i.map(a=>a.id)).size!=i.length)throw new Error("The sample metadata contains duplicate sample ids!");const o=i.map((a,s)=>({...a,indexNumber:s}));n.sampleData={ids:o.map(a=>a.id),entities:Object.fromEntries(o.map(a=>[a.id,a]))},n.rootGroup={name:"ROOT",label:"Root",samples:n.sampleData.ids}},[e2]:(n,r)=>{lr(n,i=>x9(i,b9(e(r.payload,n),t(r.payload.attribute)),!1))},[t2]:(n,r)=>{lr(n,i=>v9(i,e(r.payload,n)))},[n2]:(n,r)=>{lr(n,i=>A9(i,e(r.payload,n),r.payload.n))},[i2]:(n,r)=>{lr(n,i=>C9(i,e(r.payload,n),r.payload.operator,r.payload.operand))},[r2]:(n,r)=>{lr(n,i=>Jy(i,e(r.payload,n),r.payload.remove?"remove":"retain",r.payload.values))},[o2]:(n,r)=>{lr(n,i=>S9(i,e(r.payload,n)))},[a2]:(n,r)=>{var o;const i=(o=t(r.payload.attribute).scale)==null?void 0:o.domain();Ff(n,a=>qy(a,e(r.payload,n),i)),n.groupMetadata.push({attribute:r.payload.attribute})},[s2]:(n,r)=>{Ff(n,i=>f9(i,e(r.payload,n))),n.groupMetadata.push({attribute:r.payload.attribute})},[c2]:(n,r)=>{Ff(n,i=>l9(i,e(r.payload,n),r.payload.thresholds)),n.groupMetadata.push({attribute:r.payload.attribute})},[u2]:(n,r)=>{const i=e(r.payload,n),o=[];for(const s of zf(n))if(s.samples.length>0){const c=new Set;for(const u of s.samples)c.add(i(u));o.push(c)}const a=[];for(const s of o[0]){let c=!0;for(let u=1;u<o.length&&c;u++)c=o[u].has(s);c&&a.push(s)}lr(n,s=>Jy(s,i,"retain",a))}}})}function lr(t,e){for(const n of zf(t))n.samples=e(n.samples)}function Ff(t,e){for(const n of zf(t))e(n)}function zf(t){return l2(t).map(e=>je(e))}function Rf(t){return t.provenance.present[ti]}function l2(t){const e=[],n=[],r=i=>{if(e.push(i),d2(i))for(const o of i.groups)r(o);else n.push([...e]);e.pop()};return r(t.rootGroup),n}function f2(t){return"samples"in t}function d2(t){return"groups"in t}function*h2(t){if(yield[t],d2(t))for(const e of t.groups)for(const n of h2(e))yield[t,...n]}const M9=le(".4"),p2={lt:"<",lte:"\u2264",eq:"=",gte:"\u2265",gt:">"};function m2(t){return t.length>1?D`{${t.map((e,n)=>D`${n>0?", ":""}<strong>${e}</strong>`)}}`:D`<strong>${t[0]}</strong>`}function T9(t,e){if(!t.type.startsWith(ti))return;const n=t.payload,r=n.attribute&&e(n.attribute),i=r==null?void 0:r.name,o=(r==null?void 0:r.title)||D`<em>${i}</em>`,a={attributeName:i};switch(t.type.substring(ti.length+1)){case $y:return{...a,title:"The initial state",icon:g5};case e2:return{...a,title:"Sort by",provenanceTitle:D`Sort by ${o}`,icon:u5};case t2:return{...a,title:D`Retain the first sample of each <em>${i}</em>`,provenanceTitle:D`Retain the first sample of each ${o}`,icon:t1};case n2:return{...a,title:D`Retain first <strong>n</strong> categories of <em>${i}</em>...`,provenanceTitle:D`Retain first <strong>${n.n}</strong> categories of ${o}`,icon:t1};case r2:{const c=n.values,u=f=>D`${n.remove?"Remove":"Retain"} samples having ${c[0]===void 0||c[0]===null?D`undefined ${f}`:D`${f} ${c.length>1?"in":D`<span class="operator">=</span>`} ${m2(c)}`}`;return{...a,title:u(D`<em>${i}</em>`),provenanceTitle:u(o),icon:n.remove?Ol:er}}case i2:{const c=u=>D`Retain samples having ${u} <span class="operator">${p2[n.operator]}</span> <strong>${M9(n.operand)}</strong>`;return{...a,title:c(D`<em>${i}</em>`),provenanceTitle:c(o),icon:er}}case o2:return{...a,title:"Remove samples having missing attribute",provenanceTitle:D`Remove samples having missing ${o}`,icon:Ol};case a2:return{...a,title:"Group by",provenanceTitle:D`Group by ${o}`,icon:po};case s2:return{...a,title:"Group by quartiles",provenanceTitle:D`Group by quartiles on ${o}`,icon:po};case c2:return{...a,title:"Group by thresholds",provenanceTitle:D`Group by thresholds {${m2(n.thresholds.map(c=>`${p2[c.operator]} ${c.operand}`))}} on ${o}`,icon:po};case u2:return{...a,title:D`Retain group-wise matched samples using <em>${i}</em>`,provenanceTitle:D`Retain group-wise matched samples using ${o}`,icon:er};default:return{...a,title:JSON.stringify(t),icon:$g}}}class I9{constructor(){this.attributeInfoSourcesByType={}}addAttributeInfoSource(e,n){this.attributeInfoSourcesByType[e]=n}getAttributeInfo(e){const n=this.attributeInfoSourcesByType[e.type];if(!n)throw new Error("Cannot find attribute info source for: "+JSON.stringify(e));const r=n(e);if(r)return r;throw new Error("Unknown attribute: "+JSON.stringify(e))}}function zs(t,e,n){let r=n&&t(n);return i=>{const o=t(i);o!==r&&(e(o,r),r=o)}}function g2(t,{viewHeight:e=0,sampleHeight:n=0,groupSpacing:r=5,summaryHeight:i=0}){if(!e&&!n)throw new Error("viewHeight or sampleHeight must be provided!");const o=d=>je(d),a=t.map(d=>({path:d,sampleGroup:o(d),samples:o(d).samples})).filter(d=>d.samples.length),s=n?d=>({px:d.length*n+i,grow:0}):d=>({px:i,grow:d.length}),c=[];co(a.map(d=>s(d.samples)),e,{spacing:r}).forEach((d,h)=>{c.push({key:a[h].path,locSize:d})});const u=[];for(const[d,h]of a.entries()){const p={grow:1},m=h.samples;co(m.map(y=>p),Math.max(0,c[d].locSize.size-i),{offset:c[d].locSize.location+i}).forEach((y,g)=>{const{size:x,location:A}=y,C=x*.1*fg(15,22,x);y.location=A+C,y.size=x-2*C,u.push({key:m[g],locSize:y})})}function*f(){const d=[];for(const h of c){const p=h.key,m=je(p);for(;d.length<=p.length&&d.length&&p[d.length-1]!=d[d.length-1].group;)yield d.pop();for(let y=0;y<d.length;y++){const g=d[y];g.locSize.size=h.locSize.location-g.locSize.location+h.locSize.size}for(let y=d.length;y<p.length;y++)d.push({group:p[y],locSize:{...h.locSize},depth:d.length,n:0});for(const y of d)y.n+=m.samples.length}for(;d.length;)yield d.pop()}const l=[...f()].sort((d,h)=>d.depth-h.depth).map((d,h)=>({key:{index:h,group:d.group,depth:d.depth,n:d.n,attributeLabel:void 0},locSize:d.locSize}));return{samples:u,summaries:c,groups:l}}function k9(t,e){return e.find(n=>Vm(n.locSize,t))}const y2="VALUE_AT_LOCUS",b2=10;class jf extends Kn{constructor(n,r,i,o,a){var f;super(n,r,i,o);De(this,Qs);this.provenance=a,this.spec=n,this.stickySummaries=(f=n.stickySummaries)!=null?f:!0,this.compositeAttributeInfoSource=new I9,this.child=r.createView(n.spec,this,"sample-facets"),this.summaryViews=new Hr({vconcat:[]},r,this,"sampleSummaries"),this.child.visit(l=>{l instanceof ye&&this.summaryViews.setChildren(l.sampleAggregateViews)}),this.childCoords=dn.ZERO,this.facetTexture=void 0,this.facetTextureData=void 0,this.peripheryView=new Hr({title:"Sidebar",resolve:{scale:{default:"independent"},axis:{default:"independent"}},hconcat:[],spacing:0},r,this,"sample-sidebar"),this.peripheryCoords=dn.ZERO,this.groupPanel=new DI(this),this.attributePanel=new Ey(this),this.peripheryView.setChildren([this.groupPanel,this.attributePanel]),this.child.addInteractionEventListener("contextmenu",this._handleContextMenu.bind(this)),this.provenance.storeHelper.subscribe(zs(l=>Rf(l).rootGroup,l=>{this._locations=void 0,this.groupPanel.updateGroups(),this._peekState=0,this.context.requestLayoutReflow(),this.context.animator.requestRender()})),this.provenance.storeHelper.subscribe(zs(l=>Rf(l).sampleData,l=>{const d=l&&Object.values(l.entities);!d||(this.attributePanel._setSamples(d),this.facetTextureData=new Float32Array(Math.ceil(d.length*2/4)*4),this.groupPanel.updateGroups())})),this.compositeAttributeInfoSource.addAttributeInfoSource(y2,l=>{var C,v;const d=l.specifier,h=this.findDescendantByName(d.view);let p;if(ce(d.locus))p=d.locus;else{const b=this.getScaleResolution("x").getGenome();if(b)p=b.toContinuous(d.locus.chrom,d.locus.pos);else throw new Error("Encountered a complex locus but no genome is available!")}const m=b=>{var w;return(w=h.mark.findDatumAt(b,p))==null?void 0:w[d.field]},[y,g]=Object.entries(h.getEncoding()).find(([b,w])=>"field"in w&&w.field==d.field),x=y?(C=h.getScaleResolution(y))==null?void 0:C.getScale():void 0;return{name:d.field,attribute:l,title:D`<em class="attribute">${d.field}</em> <span class="viewTitle">(${(v=h.getTitleText())!=null?v:h.name})</span> at <span class="locus">${v2(d.locus)}</span>`,accessor:m,type:"type"in g?g.type:void 0,scale:x}}),this._addBroadcastHandler("dataLoaded",()=>this.extractSamplesFromData()),this._addBroadcastHandler("layout",()=>{this._locations=void 0}),this._scrollOffset=0,this._scrollableHeight=0,this._peekState=0,this._lastMouseY=-1,this.addInteractionEventListener("mousemove",(l,d)=>{this._lastMouseY=d.point.y-this.childCoords.y}),this.addInteractionEventListener("wheel",(l,d)=>{const h=d.uiEvent;this._peekState&&!h.ctrlKey&&(this._scrollOffset=cl(this._scrollOffset+h.deltaY,0,this._scrollableHeight-this.childCoords.height),this.groupPanel.updateRange(),this.context.animator.requestRender(),d.uiEvent={type:h.type,deltaX:h.deltaX,preventDefault:h.preventDefault.bind(h)})},!0),r.addKeyboardListener("keydown",l=>{l.code=="KeyE"&&!l.repeat&&this._togglePeek()}),r.addKeyboardListener("keyup",l=>{l.code=="KeyE"&&this._togglePeek(!1)});const s=l=>this.compositeAttributeInfoSource.getAttributeInfo(l),c=D9(s);this.provenance.addReducer(c.name,c.reducer),this.provenance.addActionInfoSource(l=>T9(l,s)),this.actions=c.actions;const u=XI(l=>{var d;return(d=l.sampleData)==null?void 0:d.entities},l=>l&&Object.values(l));this.getSamples=()=>u(this.sampleHierarchy),this.spec.samples.data&&this.loadSamples()}getOverhang(){let n=this.peripheryView.isVisible()?this.peripheryView.getSize().width.px:0;return n&&(n+=b2),new Je(0,0,0,n)}*[Symbol.iterator](){yield this.child,yield this.peripheryView}replaceChild(n,r){const i=r;if(n===this.child)this.child=i;else throw new Error("Not my child!")}loadSamples(){if(!this.spec.samples.data)throw new Error("SampleView has no explicit sample metadata specified! Cannot load anything.");const{dataSource:n,collector:r}=E8(kg(this.spec.samples.data,this.getBaseUrl()),new N9);r.observers.push(o=>{const a=o.getData();this.provenance.storeHelper.dispatch(this.actions.setSamples({samples:a}))});const i="samples "+this.getPathString();this.context.dataFlow.addDataSource(n,i)}extractSamplesFromData(){if(this.getSamples())return;const n=this.getScaleResolution("sample");if(n){const r=n.getDataDomain().map((i,o)=>({id:i,displayName:i,indexNumber:o,attributes:[]}));this.provenance.storeHelper.dispatch(this.actions.setSamples({samples:r}))}else throw new Error("No explicit sample data nor sample channels found!")}get sampleHierarchy(){return this.provenance.getPresentState()[ti]}getLocations(){var n,r,i,o;if(!this._locations){if(!((n=this.childCoords)!=null&&n.height))return;const a=this.sampleHierarchy,s=l2(a),c=[null,...a.groupMetadata],u=(o=((r=this.summaryViews)==null?void 0:r.isVisible())&&((i=this.summaryViews)==null?void 0:i.getSize().height.px))!=null?o:0,f=g2(s,{viewHeight:this.childCoords.height,groupSpacing:5,summaryHeight:u}),l=g2(s,{sampleHeight:35,groupSpacing:15,summaryHeight:u}),d=()=>-this._scrollOffset,h=()=>this._peekState;this._scrollableLocations=l,this._scrollableHeight=l.summaries.map(g=>g.locSize.location+g.locSize.size).reduce((g,x)=>Math.max(g,x),0);const p=(g,x)=>{const A=[];for(let C=0;C<g.length;C++){const v=g[C].key;A.push({key:v,locSize:ND(g[C].locSize,LD(x[C].locSize,d),h)})}return A},m=p(f.groups,l.groups),y=document.createElement("div");m.forEach(g=>{if(g.key.depth==0)return;const x=c[g.key.depth].attribute,A=this.compositeAttributeInfoSource.getAttributeInfo(x).title;A?ee(A)?g.key.attributeLabel=A:(Be(A,y),g.key.attributeLabel=y.textContent.replace(/\s+/g," ").trim()):g.key.attributeLabel="unknown"}),this._locations={samples:p(f.samples,l.samples),summaries:p(f.summaries,l.summaries),groups:m}}return this._locations}getSampleAt(n){const r=k9(n,this.getLocations().samples);if(r)return this.sampleHierarchy.sampleData.entities[r.key]}getSummaryAt(n){const r=this.getLocations().summaries,i=r.findIndex(o=>Vm(o.locSize,n));return i>=0?{index:i,location:r[i]}:void 0}_clipBySummary(n){if(this.stickySummaries&&this.summaryViews.childCount){const r=this.summaryViews.getSize().height.px;return n.modify({y:()=>n.y+r,height:()=>n.height-r})}}renderChild(n,r,i={}){const o=1/r.height,a=()=>o,s=this._clipBySummary(r);for(const c of this.getLocations().samples)this.child.render(n,r,{...i,sampleFacetRenderingOptions:{locSize:BD(c.locSize,a)},facetId:[c.key],clipRect:s})}renderSummaries(n,r,i={}){i={...i,clipRect:r};const o=this.summaryViews.getSize().height.px;for(const[a,s]of this.getLocations().summaries.entries()){const c=()=>{const u=s.locSize.location;let f=r.y+u;return this.stickySummaries?f+cl(-u,0,s.locSize.size-o):f};this.summaryViews.render(n,r.modify({y:c,height:o}),{...i,facetId:[a]})}}render(n,r,i={}){if(!this.isVisible())return;n.pushView(this,r);const o=co([this.peripheryView.isVisible()?this.peripheryView.getSize().width:{px:0},{grow:1}],r.width,{spacing:b2}),a=s=>r.modify({x:s.location+r.x,width:s.size});this.peripheryCoords=a(o[0]),this.childCoords=a(o[1]),this.peripheryView.render(n,this.peripheryCoords,i),this.renderChild(n,this.childCoords,i),this.renderSummaries(n,this.childCoords,i),n.popView(this)}onBeforeRender(){this._updateFacetTexture()}_updateFacetTexture(){var o;const n=this.facetTextureData;n.fill(0);const r=(o=this.sampleHierarchy.sampleData)==null?void 0:o.entities;if(r){const a=this.getLocations().samples,s=this.childCoords.height;for(const c of a){const u=r[c.key].indexNumber;n[u*2+0]=c.locSize.location/s,n[u*2+1]=c.locSize.size/s}}const i=this.context.glHelper.gl;this.facetTexture=ao(i,{internalFormat:i.RG32F,format:i.RG,height:1},n,this.facetTexture)}_togglePeek(n){var i;if(this._peekState>0&&this._peekState<1||n!==void 0&&n==!!this._peekState)return;const r={requestAnimationFrame:o=>this.context.animator.requestTransition(o),onUpdate:o=>{this._peekState=Math.pow(o,2),this.groupPanel.updateRange(),this.context.animator.requestRender()},from:this._peekState};if(this._peekState==0){const o=this._lastMouseY,a=(i=this.getSampleAt(o))==null?void 0:i.id;let s;if(a)s=(u=>u.location+u.size/2)(this._scrollableLocations.samples.find(u=>u.key==a).locSize);else{const c=this.getSummaryAt(o);c&&(s=this._scrollableLocations.summaries[c.index].locSize.location-(c.location.locSize.location-o))}s?this._scrollOffset=s-o:this._scrollOffset=(this._scrollableHeight-this.childCoords.height)/2,this._scrollableHeight>this.childCoords.height?ss({...r,to:1,duration:500,easingFunction:gM}):ss({...r,from:0,to:1,duration:300,easingFunction:u=>(1-Math.pow(u*2-1,2))*.5})}else ss({...r,to:0,duration:400,easingFunction:pM})}_handleContextMenu(n,r){var l;const i=r.uiEvent,o=this.childCoords.normalizePoint(r.point.x,r.point.y).x,a=this.getScaleResolution("x").invertToComplex(o),s=zg([...this.getAncestors()].at(-1)),c=k8(this.child).filter(d=>!["sample","x","x2"].includes(d.channel)).filter(d=>["rect","rule"].includes(d.view.getMarkType())).filter(d=>s.has(d.view.name));let u=[{label:`Locus: ${v2(a)}`,type:"header"},{type:"divider"}],f="";for(const[d,h]of c.entries()){const p={view:h.view.name,field:h.field,locus:a},m=this.compositeAttributeInfoSource.getAttributeInfo({type:y2,specifier:p}),y=(l=h.view.getTitleText())!=null?l:h.view.spec.name;y!=f&&(d>0&&u.push({type:"divider"}),u.push({label:y,type:"header"}),f=y),u.push({label:h.field,submenu:lf(null,m,void 0,this)})}Cy({items:u},i)}getSampleFacetTexture(){return this.facetTexture}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0),!n.stopped&&(this.childCoords.containsPoint(n.point.x,n.point.y)&&(this.child.propagateInteractionEvent(n),xg(n,this.childCoords,r=>be(this,Qs,J2).call(this,this.childCoords,this.child,r),this.context.getCurrentHover())),this.peripheryCoords.containsPoint(n.point.x,n.point.y)&&this.peripheryView.propagateInteractionEvent(n),!n.stopped&&this.handleInteractionEvent(void 0,n,!1))}getDefaultResolution(n,r){switch(n){case"x":case"sample":return"shared";default:return"independent"}}}Qs=new WeakSet,J2=function(n,r,i){const o=this.child.getScaleResolution("x");if(!o||!o.isZoomable())return;const a=n.normalizePoint(i.x,i.y),s=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta);o.zoom(2**i.zDelta,a.x,s.x-a.x),this.context.animator.requestRender()};function v2(t){return!ce(t)&&"chrom"in t?aM(t):""+t}class N9 extends se{constructor(){super(),this.reset()}reset(){this._index=0}handle(e){this._propagate({id:e.sample,displayName:e.displayName||e.sample,indexNumber:this._index++,attributes:L9(e)})}}function L9(t){const e=Object.assign({},t);return delete e.sample,delete e.displayName,e}function B9(t){return"samples"in t&&ze(t.samples)&&"spec"in t&&ze(t.spec)}const O9=(t,e)=>e.some(n=>t instanceof n);let A2,x2;function P9(){return A2||(A2=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function F9(){return x2||(x2=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const w2=new WeakMap,Uf=new WeakMap,C2=new WeakMap,Gf=new WeakMap,Hf=new WeakMap;function z9(t){const e=new Promise((n,r)=>{const i=()=>{t.removeEventListener("success",o),t.removeEventListener("error",a)},o=()=>{n(vn(t.result)),i()},a=()=>{r(t.error),i()};t.addEventListener("success",o),t.addEventListener("error",a)});return e.then(n=>{n instanceof IDBCursor&&w2.set(n,t)}).catch(()=>{}),Hf.set(e,t),e}function R9(t){if(Uf.has(t))return;const e=new Promise((n,r)=>{const i=()=>{t.removeEventListener("complete",o),t.removeEventListener("error",a),t.removeEventListener("abort",a)},o=()=>{n(),i()},a=()=>{r(t.error||new DOMException("AbortError","AbortError")),i()};t.addEventListener("complete",o),t.addEventListener("error",a),t.addEventListener("abort",a)});Uf.set(t,e)}let Qf={get(t,e,n){if(t instanceof IDBTransaction){if(e==="done")return Uf.get(t);if(e==="objectStoreNames")return t.objectStoreNames||C2.get(t);if(e==="store")return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return vn(t[e])},set(t,e,n){return t[e]=n,!0},has(t,e){return t instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in t}};function j9(t){Qf=t(Qf)}function U9(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...n){const r=t.call(Vf(this),e,...n);return C2.set(r,e.sort?e.sort():[e]),vn(r)}:F9().includes(t)?function(...e){return t.apply(Vf(this),e),vn(w2.get(this))}:function(...e){return vn(t.apply(Vf(this),e))}}function G9(t){return typeof t=="function"?U9(t):(t instanceof IDBTransaction&&R9(t),O9(t,P9())?new Proxy(t,Qf):t)}function vn(t){if(t instanceof IDBRequest)return z9(t);if(Gf.has(t))return Gf.get(t);const e=G9(t);return e!==t&&(Gf.set(t,e),Hf.set(e,t)),e}const Vf=t=>Hf.get(t);function H9(t,e,{blocked:n,upgrade:r,blocking:i,terminated:o}={}){const a=indexedDB.open(t,e),s=vn(a);return r&&a.addEventListener("upgradeneeded",c=>{r(vn(a.result),c.oldVersion,c.newVersion,vn(a.transaction))}),n&&a.addEventListener("blocked",()=>n()),s.then(c=>{o&&c.addEventListener("close",()=>o()),i&&c.addEventListener("versionchange",()=>i())}).catch(()=>{}),s}const Q9=["get","getKey","getAll","getAllKeys","count"],V9=["put","add","delete","clear"],Yf=new Map;function S2(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(Yf.get(e))return Yf.get(e);const n=e.replace(/FromIndex$/,""),r=e!==n,i=V9.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||Q9.includes(n)))return;const o=async function(a,...s){const c=this.transaction(a,i?"readwrite":"readonly");let u=c.store;return r&&(u=u.index(s.shift())),(await Promise.all([u[n](...s),i&&c.done]))[0]};return Yf.set(e,o),o}j9(t=>({...t,get:(e,n,r)=>S2(e,n)||t.get(e,n,r),has:(e,n)=>!!S2(e,n)||t.has(e,n)}));class E2{isReadonly(){return!0}async put(e,n){this._checkReadonly()}async delete(e){this._checkReadonly()}async getNames(){return[]}async get(e){}_checkReadonly(){if(this.isReadonly())throw new Error("This bookmark")}}const Io="bookmarks";class Y9 extends E2{constructor(e){super(),this.specId=e,this._db=void 0}async _getDB(){if(!this._db){const e=`GenomeSpy: ${this.specId}`;this._db=H9(e,1,{upgrade(n,r,i,o){n.createObjectStore(Io,{keyPath:"name"})},blocked(){},blocking(){},terminated(){}})}return this._db}isReadonly(){return!1}async put(e,n){const i=(await this._getDB()).transaction(Io,"readwrite");try{n?(await i.store.delete(n),await i.store.put(e)):await i.store.put(e),await i.done}catch(o){throw i.abort(),o}}async delete(e){(await this._getDB()).delete(Io,e)}async getNames(){return(await this._getDB()).getAllKeys(Io)}async get(e){return(await this._getDB()).get(Io,e)}}/**
2137
+ */const x6=Yr(class extends po{constructor(t){var e;if(super(t),t.type!==Ot.ATTRIBUTE||t.name!=="style"||((e=t.strings)===null||e===void 0?void 0:e.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(t){return Object.keys(t).reduce((e,n)=>{const r=t[n];return r==null?e:e+`${n=n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${r};`},"")}update(t,[e]){const{style:n}=t.element;if(this.ct===void 0){this.ct=new Set;for(const r in e)this.ct.add(r);return this.render(e)}this.ct.forEach(r=>{e[r]==null&&(this.ct.delete(r),r.includes("-")?n.removeProperty(r):n[r]="")});for(const r in e){const i=e[r];i!=null&&(this.ct.add(r),r.includes("-")?n.setProperty(r,i):n[r]=i)}return we}}),ay="close-dialog";function w6(){return new CustomEvent(ay,{bubbles:!0})}function ir(t="default",e=document.body){const n=document.createElement("div");n.classList.add("gs-modal"),t!="default"&&n.classList.add(t);const r=o=>{var a;switch(o.key){case"Escape":{const s=n.querySelector(".btn-cancel");s&&(s.click(),o.stopPropagation());break}case"Enter":{if(((a=o.target)==null?void 0:a.tagName)=="TEXTAREA")return;n.querySelector(".btn-primary").click(),o.stopPropagation();break}}};n.addEventListener("keydown",r),Be(D`<div class="backdrop"></div><div class="content"></div>`,n);const i=()=>{n.querySelector(".backdrop").addEventListener("transitionend",()=>n.remove()),n.classList.remove("visible"),document.body.classList.remove(jn)};return n.addEventListener("keydown",o=>{o.stopPropagation()}),n.addEventListener(ay,i),e.appendChild(n),window.requestAnimationFrame(()=>n.classList.add("visible")),t!="tour"&&document.body.classList.add(jn),{content:n.querySelector(".content"),close:i}}function He(t,e={}){var i;const n=ir(),r=e.title;return(i=e.okLabel)!=null||(e.okLabel="OK"),new Promise((o,a)=>{const s=()=>{n.close(),o(!0)},c=D`${r?D`<div class="modal-title">${r}</div>`:R}<div class="modal-body" style="max-width:700px">${t}</div><div class="modal-buttons">${e.cancelButton?D`<button @click="${()=>{n.close(),o(!1)}}">Cancel</button>`:R} <button @click="${s}">${e.okLabel}</button></div>`;Be(c,n.content)})}function C6(t,e){var n,r;tn((n=t.scale)==null?void 0:n.type)?S6(t,e):Re((r=t.scale)==null?void 0:r.type)?E6(t,e):He("Not implemented (yet).")}function S6(t,e){const n=e.provenance.storeHelper.getDispatcher(),r=t.scale,i=ir(),o=D`<div class="modal-title">Filter by <em>${t.name}</em></div>`,a=new Set,s=h=>{n(e.actions.filterByNominal({values:r.domain().filter(p=>a.has(p)),attribute:t.attribute,remove:h})),i.close()},c=h=>{const p=h.target;p.checked?a.add(p.value):a.delete(p.value),d()},u=()=>D`<div class="modal-buttons"><button class="btn-cancel" @click="${()=>i.close()}">Cancel</button> <button ?disabled="${!a.size}" @click="${()=>s(!1)}">${$(er).node[0]} Retain</button> <button ?disabled="${!a.size}" @click="${()=>s(!0)}">${$(Fl).node[0]} Remove</button></div>`,f=r,l=D`<p>Please select one or more categories and choose an action.</p><ul class="gs-checkbox-list" @input="${c}" tabindex="0">${r.domain().map(h=>D`<li><label class="checkbox"><span class="color" style="${x6({backgroundColor:f(h).toString()})}"></span> <input type="checkbox" .value="${h}"> ${h}</label></li>`)}</ul>`;function d(){Be(D`${o}<div class="modal-body">${l}</div>${u()}`,i.content)}d(),i.content.querySelector(".gs-checkbox-list input[type='checkbox']").focus()}function E6(t,e){const n=e.provenance.storeHelper.getDispatcher();let r="lt",i;const o=ir(),a=D`<div class="modal-title">Filter by <em>${t.name}</em></div>`,s=h=>{n(e.actions.filterByQuantitative({attribute:t.attribute,operator:r,operand:i})),o.close()},c=()=>D`<div class="modal-buttons"><button class="btn-cancel" @click="${()=>o.close()}">Cancel</button> <button class="btn-primary" ?disabled="${typeof i>"u"}" @click="${()=>s()}">${$(er).node[0]} Retain</button></div>`,u=h=>{r=h.target.value,d()},f=h=>{const p=h.target.value;i=p.length>0?+p:void 0,d()},l=D`<div class="gs-form-group"><label>Select samples where <em>${t.name}</em> is</label> <select .value="${r}" @change="${u}">${Object.entries(D6).map(([h,p])=>D`<option .value="${h}">${p}</option>`)}</select> <input type="number" placeholder="Please enter a numeric value" @input="${f}"></div>`;function d(){Be(D`${a}<div class="modal-body">${l}</div>${c()}`,o.content)}d(),o.content.querySelector("select").focus()}const D6={lt:"less than",lte:"less than or equal to",eq:"equal to",gte:"greater than or equal to",gt:"greater than"};function M6(t,e){const n=e.provenance.storeHelper.getDispatcher(),r=[{operand:void 0,operator:"lt"}],i=ir(),o=D`<div class="modal-title">Group by threshold on <em>${t.name}</em></div>`,a=d=>{n(e.actions.groupByThresholds({attribute:t.attribute,thresholds:r})),i.close()},s=()=>D`<div class="modal-buttons"><button class="btn-cancel" @click="${()=>i.close()}">Cancel</button> <button class="btn-primary" ?disabled="${!T6(r)}" @click="${()=>a()}">${$(mo).node[0]} Group</button></div>`,c=d=>{const h=d.target.value;r[0].operator=h,l()},u=d=>{const h=d.target.value;r[0].operand=h.length>0?+h:void 0,l()},f=D`<div class="gs-form-group"><label>Split into 2 groups using the threshold:</label><div class="threshold-flex"><select .value="${r[0].operator}" @change="${c}"><option value="lt">${"<"}</option><option value="lte">${"\u2264"}</option></select> <input .value="${""+r[0].operand}" type="number" placeholder="Numeric value" @input="${u}"></div></div>`;function l(){Be(D`${o}<div class="modal-body">${f}</div>${s()}`,i.content)}l(),i.content.querySelector("select").focus()}function T6(t){return t[0].operator&&typeof t[0].operand=="number"}function I6(t,e){const n=e.provenance.storeHelper.getDispatcher();let r=5;const i=ir(),o=D`<div class="modal-title">Retain first n categories of <em>${t.title}</em></div>`,a=f=>{n(e.actions.retainFirstNCategories({attribute:t.attribute,n:r})),i.close()},s=()=>D`<div class="modal-buttons"><button class="btn-cancel" @click="${()=>i.close()}">Cancel</button> <button class="btn-primary" @click="${()=>a()}">${$(er).node[0]} Retain</button></div>`,c=D`<div class="gs-form-group"><label>Number of categories to retain:</label> <input type="number" min="1" .valueAsNumber="${r}" @change="${f=>{r=f.target.valueAsNumber}}"></div>`;function u(){Be(D`${o}<div class="modal-body">${c}</div>${s()}`,i.content)}u(),i.content.querySelector("input").focus()}function df(t,e,n,r){var d;const i=r.actions,o=e.attribute,a=r.sampleHierarchy,s=r.provenance.storeHelper.getDispatcher(),c=[];t&&c.push({label:t,type:"header"});const u=(h,p,m)=>{const y=r.provenance.getActionInfo(h);return{label:y.title,icon:y.icon,callback:p?void 0:m!=null?m:()=>s(h)}},f=(...h)=>c.push(...h.map(p=>u(p)));f(i.sortBy({attribute:o}));const l=(d=e==null?void 0:e.type)!=null?d:"identifier";return l!="quantitative"?(l!="identifier"&&(f(i.groupByNominal({attribute:o}),i.retainFirstOfEach({attribute:o})),c.push(u(i.retainFirstNCategories({attribute:o,n:void 0}),!1,()=>I6(e,r)))),f(i.filterByNominal({attribute:o,values:[n]}),i.filterByNominal({attribute:o,remove:!0,values:[n]})),c.push(u(i.retainMatched({attribute:o}),!a.groupMetadata.length))):(f(i.groupToQuartiles({attribute:o})),c.push({icon:mo,label:"Group by thresholds...",callback:()=>M6(e,r)}),k6(n)?f(i.filterByQuantitative({attribute:o,operator:"gte",operand:+n}),i.filterByQuantitative({attribute:o,operator:"lte",operand:+n})):f(i.removeUndefined({attribute:o}))),l!=="identifier"&&c.push({icon:er,label:"Advanced filter...",callback:()=>C6(e,r)}),c}function k6(t){return t!=null&&t!==""&&!(typeof t=="number"&&isNaN(t))}function N6(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var jt={},or={};Object.defineProperty(or,"__esModule",{value:!0}),or.ActionCreators=or.ActionTypes=void 0;var ar={UNDO:"@@redux-undo/UNDO",REDO:"@@redux-undo/REDO",JUMP_TO_FUTURE:"@@redux-undo/JUMP_TO_FUTURE",JUMP_TO_PAST:"@@redux-undo/JUMP_TO_PAST",JUMP:"@@redux-undo/JUMP",CLEAR_HISTORY:"@@redux-undo/CLEAR_HISTORY"};or.ActionTypes=ar;var L6={undo:function(){return{type:ar.UNDO}},redo:function(){return{type:ar.REDO}},jumpToFuture:function(e){return{type:ar.JUMP_TO_FUTURE,index:e}},jumpToPast:function(e){return{type:ar.JUMP_TO_PAST,index:e}},jump:function(e){return{type:ar.JUMP,index:e}},clearHistory:function(){return{type:ar.CLEAR_HISTORY}}};or.ActionCreators=L6;var bt={};Object.defineProperty(bt,"__esModule",{value:!0}),bt.parseActions=Cs,bt.isHistory=B6,bt.includeAction=O6,bt.excludeAction=P6,bt.combineFilters=F6,bt.groupByActionTypes=z6,bt.newHistory=R6;function Cs(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return Array.isArray(t)?t:typeof t=="string"?[t]:e}function B6(t){return typeof t.present<"u"&&typeof t.future<"u"&&typeof t.past<"u"&&Array.isArray(t.future)&&Array.isArray(t.past)}function O6(t){var e=Cs(t);return function(n){return e.indexOf(n.type)>=0}}function P6(t){var e=Cs(t);return function(n){return e.indexOf(n.type)<0}}function F6(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return e.reduce(function(r,i){return function(o,a,s){return r(o,a,s)&&i(o,a,s)}},function(){return!0})}function z6(t){var e=Cs(t);return function(n){return e.indexOf(n.type)>=0?n.type:null}}function R6(t,e,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;return{past:t,present:e,future:n,group:r,_latestUnfiltered:e,index:t.length,limit:t.length+n.length+1}}var sy={},qr={};Object.defineProperty(qr,"__esModule",{value:!0}),qr.set=W6,qr.start=V6,qr.end=Y6,qr.log=_6;function vt(t){return G6(t)||U6(t)||j6()}function j6(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function U6(t){if(Symbol.iterator in Object(t)||Object.prototype.toString.call(t)==="[object Arguments]")return Array.from(t)}function G6(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e<t.length;e++)n[e]=t[e];return n}}var Ss,$e,hf={prevState:"#9E9E9E",action:"#03A9F4",nextState:"#4CAF50"};function H6(){$e={header:[],prev:[],action:[],next:[],msgs:[]}}function Q6(){var t=$e,e=t.header,n=t.prev,r=t.next,i=t.action,o=t.msgs;if(console.group){var a,s,c,u,f;(a=console).groupCollapsed.apply(a,vt(e)),(s=console).log.apply(s,vt(n)),(c=console).log.apply(c,vt(i)),(u=console).log.apply(u,vt(r)),(f=console).log.apply(f,vt(o)),console.groupEnd()}else{var l,d,h,p,m;(l=console).log.apply(l,vt(e)),(d=console).log.apply(d,vt(n)),(h=console).log.apply(h,vt(i)),(p=console).log.apply(p,vt(r)),(m=console).log.apply(m,vt(o))}}function pf(t,e,n){return["%c".concat(t),"color: ".concat(e,"; font-weight: bold"),n]}function V6(t,e){H6(),Ss&&(console.group?($e.header=["%credux-undo","font-style: italic","action",t.type],$e.action=pf("action",hf.action,t),$e.prev=pf("prev history",hf.prevState,e)):($e.header=["redux-undo action",t.type],$e.action=["action",t],$e.prev=["prev history",e]))}function Y6(t){Ss&&(console.group?$e.next=pf("next history",hf.nextState,t):$e.next=["next history",t],Q6())}function _6(){if(Ss){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];$e.msgs=$e.msgs.concat([].concat(e,[`
2138
+ `]))}}function W6(t){Ss=t}(function(t){function e(v){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?e=function(w){return typeof w}:e=function(w){return w&&typeof Symbol=="function"&&w.constructor===Symbol&&w!==Symbol.prototype?"symbol":typeof w},e(v)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=C;var n=a(qr),r=or,i=bt;function o(){if(typeof WeakMap!="function")return null;var v=new WeakMap;return o=function(){return v},v}function a(v){if(v&&v.__esModule)return v;if(v===null||e(v)!=="object"&&typeof v!="function")return{default:v};var b=o();if(b&&b.has(v))return b.get(v);var w={},E=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var I in v)if(Object.prototype.hasOwnProperty.call(v,I)){var L=E?Object.getOwnPropertyDescriptor(v,I):null;L&&(L.get||L.set)?Object.defineProperty(w,I,L):w[I]=v[I]}return w.default=v,b&&b.set(v,w),w}function s(v,b){var w=Object.keys(v);if(Object.getOwnPropertySymbols){var E=Object.getOwnPropertySymbols(v);b&&(E=E.filter(function(I){return Object.getOwnPropertyDescriptor(v,I).enumerable})),w.push.apply(w,E)}return w}function c(v){for(var b=1;b<arguments.length;b++){var w=arguments[b]!=null?arguments[b]:{};b%2?s(Object(w),!0).forEach(function(E){u(v,E,w[E])}):Object.getOwnPropertyDescriptors?Object.defineProperties(v,Object.getOwnPropertyDescriptors(w)):s(Object(w)).forEach(function(E){Object.defineProperty(v,E,Object.getOwnPropertyDescriptor(w,E))})}return v}function u(v,b,w){return b in v?Object.defineProperty(v,b,{value:w,enumerable:!0,configurable:!0,writable:!0}):v[b]=w,v}function f(v){return h(v)||d(v)||l()}function l(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function d(v){if(Symbol.iterator in Object(v)||Object.prototype.toString.call(v)==="[object Arguments]")return Array.from(v)}function h(v){if(Array.isArray(v)){for(var b=0,w=new Array(v.length);b<v.length;b++)w[b]=v[b];return w}}function p(v,b){var w=(0,i.newHistory)([],v,[]);return b&&(w._latestUnfiltered=null),w}function m(v,b,w,E){var I=v.past.length+1;n.log("inserting",b),n.log("new free: ",w-I);var L=v.past,T=v._latestUnfiltered,O=w&&w<=I,H=L.slice(O?1:0),U=T!=null?[].concat(f(H),[T]):H;return(0,i.newHistory)(U,b,[],E)}function y(v,b){if(b<0||b>=v.future.length)return v;var w=v.past,E=v.future,I=v._latestUnfiltered,L=[].concat(f(w),[I],f(E.slice(0,b))),T=E[b],O=E.slice(b+1);return(0,i.newHistory)(L,T,O)}function g(v,b){if(b<0||b>=v.past.length)return v;var w=v.past,E=v.future,I=v._latestUnfiltered,L=w.slice(0,b),T=[].concat(f(w.slice(b+1)),[I],f(E)),O=w[b];return(0,i.newHistory)(L,O,T)}function x(v,b){return b>0?y(v,b-1):b<0?g(v,v.past.length+b):v}function A(v,b){return b.indexOf(v)>-1?v:!v}function C(v){var b=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};n.set(b.debug);var w=c({limit:void 0,filter:function(){return!0},groupBy:function(){return null},undoType:r.ActionTypes.UNDO,redoType:r.ActionTypes.REDO,jumpToPastType:r.ActionTypes.JUMP_TO_PAST,jumpToFutureType:r.ActionTypes.JUMP_TO_FUTURE,jumpType:r.ActionTypes.JUMP,neverSkipReducer:!1,ignoreInitialState:!1,syncFilter:!1},b,{initTypes:(0,i.parseActions)(b.initTypes,["@@redux-undo/INIT"]),clearHistoryType:(0,i.parseActions)(b.clearHistoryType,[r.ActionTypes.CLEAR_HISTORY])}),E=w.neverSkipReducer?function(L,T){for(var O=arguments.length,H=new Array(O>2?O-2:0),U=2;U<O;U++)H[U-2]=arguments[U];return c({},L,{present:v.apply(void 0,[L.present,T].concat(H))})}:function(L){return L},I;return function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:I,T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};n.start(T,L);for(var O=L,H=arguments.length,U=new Array(H>2?H-2:0),Ae=2;Ae<H;Ae++)U[Ae-2]=arguments[Ae];if(!I)if(n.log("history is uninitialized"),L===void 0){var Ie={type:"@@redux-undo/CREATE_HISTORY"},An=v.apply(void 0,[L,Ie].concat(U));return O=p(An,w.ignoreInitialState),n.log("do not set initialState on probe actions"),n.end(O),O}else(0,i.isHistory)(L)?(O=I=w.ignoreInitialState?L:(0,i.newHistory)(L.past,L.present,L.future),n.log("initialHistory initialized: initialState is a history",I)):(O=I=p(L,w.ignoreInitialState),n.log("initialHistory initialized: initialState is not a history",I));var Y;switch(T.type){case void 0:return O;case w.undoType:return Y=x(O,-1),n.log("perform undo"),n.end(Y),E.apply(void 0,[Y,T].concat(U));case w.redoType:return Y=x(O,1),n.log("perform redo"),n.end(Y),E.apply(void 0,[Y,T].concat(U));case w.jumpToPastType:return Y=g(O,T.index),n.log("perform jumpToPast to ".concat(T.index)),n.end(Y),E.apply(void 0,[Y,T].concat(U));case w.jumpToFutureType:return Y=y(O,T.index),n.log("perform jumpToFuture to ".concat(T.index)),n.end(Y),E.apply(void 0,[Y,T].concat(U));case w.jumpType:return Y=x(O,T.index),n.log("perform jump to ".concat(T.index)),n.end(Y),E.apply(void 0,[Y,T].concat(U));case A(T.type,w.clearHistoryType):return Y=p(O.present,w.ignoreInitialState),n.log("perform clearHistory"),n.end(Y),E.apply(void 0,[Y,T].concat(U));default:if(Y=v.apply(void 0,[O.present,T].concat(U)),w.initTypes.some(function(od){return od===T.type}))return n.log("reset history due to init action"),n.end(I),I;if(O._latestUnfiltered===Y)return O;var Ve=typeof w.filter=="function"&&!w.filter(T,Y,O);if(Ve){var Uo=(0,i.newHistory)(O.past,Y,O.future,O.group);return w.syncFilter||(Uo._latestUnfiltered=O._latestUnfiltered),n.log("filter ignored action, not storing it in past"),n.end(Uo),Uo}var Go=w.groupBy(T,Y,O);if(Go!=null&&Go===O.group){var _s=(0,i.newHistory)(O.past,Y,O.future,O.group);return n.log("groupBy grouped the action with the previous action"),n.end(_s),_s}return O=m(O,Y,w.limit,Go),n.log("inserted new state into history"),n.end(O),O}}}})(sy),function(t){Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ActionTypes",{enumerable:!0,get:function(){return e.ActionTypes}}),Object.defineProperty(t,"ActionCreators",{enumerable:!0,get:function(){return e.ActionCreators}}),Object.defineProperty(t,"parseActions",{enumerable:!0,get:function(){return n.parseActions}}),Object.defineProperty(t,"isHistory",{enumerable:!0,get:function(){return n.isHistory}}),Object.defineProperty(t,"includeAction",{enumerable:!0,get:function(){return n.includeAction}}),Object.defineProperty(t,"excludeAction",{enumerable:!0,get:function(){return n.excludeAction}}),Object.defineProperty(t,"combineFilters",{enumerable:!0,get:function(){return n.combineFilters}}),Object.defineProperty(t,"groupByActionTypes",{enumerable:!0,get:function(){return n.groupByActionTypes}}),Object.defineProperty(t,"newHistory",{enumerable:!0,get:function(){return n.newHistory}}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r.default}});var e=or,n=bt,r=i(sy);function i(o){return o&&o.__esModule?o:{default:o}}}(jt);const X6=N6(jt);function Es(t){return t.split("-")[0]}function mf(t){return t.split("-")[1]}function gf(t){return["top","bottom"].includes(Es(t))?"x":"y"}function cy(t){return t==="y"?"height":"width"}function uy(t,e,n){let{reference:r,floating:i}=t;const o=r.x+r.width/2-i.width/2,a=r.y+r.height/2-i.height/2,s=gf(e),c=cy(s),u=r[c]/2-i[c]/2,f=Es(e),l=s==="x";let d;switch(f){case"top":d={x:o,y:r.y-i.height};break;case"bottom":d={x:o,y:r.y+r.height};break;case"right":d={x:r.x+r.width,y:a};break;case"left":d={x:r.x-i.width,y:a};break;default:d={x:r.x,y:r.y}}switch(mf(e)){case"start":d[s]-=u*(n&&l?-1:1);break;case"end":d[s]+=u*(n&&l?-1:1);break}return d}const Z6=async(t,e,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:o=[],platform:a}=n,s=await(a.isRTL==null?void 0:a.isRTL(e));let c=await a.getElementRects({reference:t,floating:e,strategy:i}),{x:u,y:f}=uy(c,r,s),l=r,d={};for(let h=0;h<o.length;h++){const{name:p,fn:m}=o[h],{x:y,y:g,data:x,reset:A}=await m({x:u,y:f,initialPlacement:r,placement:l,strategy:i,middlewareData:d,rects:c,platform:a,elements:{reference:t,floating:e}});if(u=y!=null?y:u,f=g!=null?g:f,d={...d,[p]:{...d[p],...x}},A){typeof A=="object"&&(A.placement&&(l=A.placement),A.rects&&(c=A.rects===!0?await a.getElementRects({reference:t,floating:e,strategy:i}):A.rects),{x:u,y:f}=uy(c,l,s)),h=-1;continue}}return{x:u,y:f,placement:l,strategy:i,middlewareData:d}};function q6(t){return{top:0,right:0,bottom:0,left:0,...t}}function K6(t){return typeof t!="number"?q6(t):{top:t,right:t,bottom:t,left:t}}function Ds(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}async function J6(t,e){var n;e===void 0&&(e={});const{x:r,y:i,platform:o,rects:a,elements:s,strategy:c}=t,{boundary:u="clippingAncestors",rootBoundary:f="viewport",elementContext:l="floating",altBoundary:d=!1,padding:h=0}=e,p=K6(h),y=s[d?l==="floating"?"reference":"floating":l],g=Ds(await o.getClippingRect({element:(n=await(o.isElement==null?void 0:o.isElement(y)))==null||n?y:y.contextElement||await(o.getDocumentElement==null?void 0:o.getDocumentElement(s.floating)),boundary:u,rootBoundary:f,strategy:c})),x=Ds(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({rect:l==="floating"?{...a.floating,x:r,y:i}:a.reference,offsetParent:await(o.getOffsetParent==null?void 0:o.getOffsetParent(s.floating)),strategy:c}):a[l]);return{top:g.top-x.top+p.top,bottom:x.bottom-g.bottom+p.bottom,left:g.left-x.left+p.left,right:x.right-g.right+p.right}}const $6={left:"right",right:"left",bottom:"top",top:"bottom"};function Ms(t){return t.replace(/left|right|bottom|top/g,e=>$6[e])}function eI(t,e,n){n===void 0&&(n=!1);const r=mf(t),i=gf(t),o=cy(i);let a=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return e.reference[o]>e.floating[o]&&(a=Ms(a)),{main:a,cross:Ms(a)}}const tI={start:"end",end:"start"};function ly(t){return t.replace(/start|end/g,e=>tI[e])}function nI(t){const e=Ms(t);return[ly(t),e,ly(e)]}const fy=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var n;const{placement:r,middlewareData:i,rects:o,initialPlacement:a,platform:s,elements:c}=e,{mainAxis:u=!0,crossAxis:f=!0,fallbackPlacements:l,fallbackStrategy:d="bestFit",flipAlignment:h=!0,...p}=t,m=Es(r),g=l||(m===a||!h?[Ms(a)]:nI(a)),x=[a,...g],A=await J6(e,p),C=[];let v=((n=i.flip)==null?void 0:n.overflows)||[];if(u&&C.push(A[m]),f){const{main:I,cross:L}=eI(r,o,await(s.isRTL==null?void 0:s.isRTL(c.floating)));C.push(A[I],A[L])}if(v=[...v,{placement:r,overflows:C}],!C.every(I=>I<=0)){var b,w;const I=((b=(w=i.flip)==null?void 0:w.index)!=null?b:0)+1,L=x[I];if(L)return{data:{index:I,overflows:v},reset:{placement:L}};let T="bottom";switch(d){case"bestFit":{var E;const O=(E=v.map(H=>[H,H.overflows.filter(U=>U>0).reduce((U,Ae)=>U+Ae,0)]).sort((H,U)=>H[1]-U[1])[0])==null?void 0:E[0].placement;O&&(T=O);break}case"initialPlacement":T=a;break}if(r!==T)return{reset:{placement:T}}}return{}}}};async function rI(t,e){const{placement:n,platform:r,elements:i}=t,o=await(r.isRTL==null?void 0:r.isRTL(i.floating)),a=Es(n),s=mf(n),c=gf(n)==="x",u=["left","top"].includes(a)?-1:1,f=o&&c?-1:1,l=typeof e=="function"?e(t):e;let{mainAxis:d,crossAxis:h,alignmentAxis:p}=typeof l=="number"?{mainAxis:l,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...l};return s&&typeof p=="number"&&(h=s==="end"?p*-1:p),c?{x:h*f,y:d*u}:{x:d*u,y:h*f}}const iI=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){const{x:n,y:r}=e,i=await rI(e,t);return{x:n+i.x,y:r+i.y,data:i}}}};function dy(t){return t&&t.document&&t.location&&t.alert&&t.setInterval}function Ut(t){if(t==null)return window;if(!dy(t)){const e=t.ownerDocument;return e&&e.defaultView||window}return t}function xo(t){return Ut(t).getComputedStyle(t)}function Gt(t){return dy(t)?"":t?(t.nodeName||"").toLowerCase():""}function hy(){const t=navigator.userAgentData;return t!=null&&t.brands?t.brands.map(e=>e.brand+"/"+e.version).join(" "):navigator.userAgent}function At(t){return t instanceof Ut(t).HTMLElement}function Kr(t){return t instanceof Ut(t).Element}function oI(t){return t instanceof Ut(t).Node}function yf(t){if(typeof ShadowRoot>"u")return!1;const e=Ut(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function Ts(t){const{overflow:e,overflowX:n,overflowY:r}=xo(t);return/auto|scroll|overlay|hidden/.test(e+r+n)}function aI(t){return["table","td","th"].includes(Gt(t))}function py(t){const e=/firefox/i.test(hy()),n=xo(t);return n.transform!=="none"||n.perspective!=="none"||n.contain==="paint"||["transform","perspective"].includes(n.willChange)||e&&n.willChange==="filter"||e&&(n.filter?n.filter!=="none":!1)}function my(){return!/^((?!chrome|android).)*safari/i.test(hy())}const gy=Math.min,wo=Math.max,Is=Math.round;function sr(t,e,n){var r,i,o,a;e===void 0&&(e=!1),n===void 0&&(n=!1);const s=t.getBoundingClientRect();let c=1,u=1;e&&At(t)&&(c=t.offsetWidth>0&&Is(s.width)/t.offsetWidth||1,u=t.offsetHeight>0&&Is(s.height)/t.offsetHeight||1);const f=Kr(t)?Ut(t):window,l=!my()&&n,d=(s.left+(l&&(r=(i=f.visualViewport)==null?void 0:i.offsetLeft)!=null?r:0))/c,h=(s.top+(l&&(o=(a=f.visualViewport)==null?void 0:a.offsetTop)!=null?o:0))/u,p=s.width/c,m=s.height/u;return{width:p,height:m,top:h,right:d+p,bottom:h+m,left:d,x:d,y:h}}function gn(t){return((oI(t)?t.ownerDocument:t.document)||window.document).documentElement}function ks(t){return Kr(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function yy(t){return sr(gn(t)).left+ks(t).scrollLeft}function sI(t){const e=sr(t);return Is(e.width)!==t.offsetWidth||Is(e.height)!==t.offsetHeight}function cI(t,e,n){const r=At(e),i=gn(e),o=sr(t,r&&sI(e),n==="fixed");let a={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if(r||!r&&n!=="fixed")if((Gt(e)!=="body"||Ts(i))&&(a=ks(e)),At(e)){const c=sr(e,!0);s.x=c.x+e.clientLeft,s.y=c.y+e.clientTop}else i&&(s.x=yy(i));return{x:o.left+a.scrollLeft-s.x,y:o.top+a.scrollTop-s.y,width:o.width,height:o.height}}function by(t){return Gt(t)==="html"?t:t.assignedSlot||t.parentNode||(yf(t)?t.host:null)||gn(t)}function vy(t){return!At(t)||getComputedStyle(t).position==="fixed"?null:t.offsetParent}function uI(t){let e=by(t);for(yf(e)&&(e=e.host);At(e)&&!["html","body"].includes(Gt(e));){if(py(e))return e;e=e.parentNode}return null}function bf(t){const e=Ut(t);let n=vy(t);for(;n&&aI(n)&&getComputedStyle(n).position==="static";)n=vy(n);return n&&(Gt(n)==="html"||Gt(n)==="body"&&getComputedStyle(n).position==="static"&&!py(n))?e:n||uI(t)||e}function Ay(t){if(At(t))return{width:t.offsetWidth,height:t.offsetHeight};const e=sr(t);return{width:e.width,height:e.height}}function lI(t){let{rect:e,offsetParent:n,strategy:r}=t;const i=At(n),o=gn(n);if(n===o)return e;let a={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if((i||!i&&r!=="fixed")&&((Gt(n)!=="body"||Ts(o))&&(a=ks(n)),At(n))){const c=sr(n,!0);s.x=c.x+n.clientLeft,s.y=c.y+n.clientTop}return{...e,x:e.x-a.scrollLeft+s.x,y:e.y-a.scrollTop+s.y}}function fI(t,e){const n=Ut(t),r=gn(t),i=n.visualViewport;let o=r.clientWidth,a=r.clientHeight,s=0,c=0;if(i){o=i.width,a=i.height;const u=my();(u||!u&&e==="fixed")&&(s=i.offsetLeft,c=i.offsetTop)}return{width:o,height:a,x:s,y:c}}function dI(t){var e;const n=gn(t),r=ks(t),i=(e=t.ownerDocument)==null?void 0:e.body,o=wo(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),a=wo(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0);let s=-r.scrollLeft+yy(t);const c=-r.scrollTop;return xo(i||n).direction==="rtl"&&(s+=wo(n.clientWidth,i?i.clientWidth:0)-o),{width:o,height:a,x:s,y:c}}function xy(t){const e=by(t);return["html","body","#document"].includes(Gt(e))?t.ownerDocument.body:At(e)&&Ts(e)?e:xy(e)}function wy(t,e){var n;e===void 0&&(e=[]);const r=xy(t),i=r===((n=t.ownerDocument)==null?void 0:n.body),o=Ut(r),a=i?[o].concat(o.visualViewport||[],Ts(r)?r:[]):r,s=e.concat(a);return i?s:s.concat(wy(a))}function hI(t,e){const n=e==null||e.getRootNode==null?void 0:e.getRootNode();if(t!=null&&t.contains(e))return!0;if(n&&yf(n)){let r=e;do{if(r&&t===r)return!0;r=r.parentNode||r.host}while(r)}return!1}function pI(t,e){const n=sr(t,!1,e==="fixed"),r=n.top+t.clientTop,i=n.left+t.clientLeft;return{top:r,left:i,x:i,y:r,right:i+t.clientWidth,bottom:r+t.clientHeight,width:t.clientWidth,height:t.clientHeight}}function Cy(t,e,n){return e==="viewport"?Ds(fI(t,n)):Kr(e)?pI(e,n):Ds(dI(gn(t)))}function mI(t){const e=wy(t),r=["absolute","fixed"].includes(xo(t).position)&&At(t)?bf(t):t;return Kr(r)?e.filter(i=>Kr(i)&&hI(i,r)&&Gt(i)!=="body"):[]}function gI(t){let{element:e,boundary:n,rootBoundary:r,strategy:i}=t;const a=[...n==="clippingAncestors"?mI(e):[].concat(n),r],s=a[0],c=a.reduce((u,f)=>{const l=Cy(e,f,i);return u.top=wo(l.top,u.top),u.right=gy(l.right,u.right),u.bottom=gy(l.bottom,u.bottom),u.left=wo(l.left,u.left),u},Cy(e,s,i));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}const yI={getClippingRect:gI,convertOffsetParentRelativeRectToViewportRelativeRect:lI,isElement:Kr,getDimensions:Ay,getOffsetParent:bf,getDocumentElement:gn,getElementRects:t=>{let{reference:e,floating:n,strategy:r}=t;return{reference:cI(e,bf(n),r),floating:{...Ay(n),x:0,y:0}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>xo(t).direction==="rtl"},bI=(t,e,n)=>Z6(t,e,{platform:yI,...n});let xt;const Co=[],vf=us(t=>t(),150,!1),Af={type:"divider"};function So(t){if((t==null?void 0:t.type)=="contextmenu"){t.preventDefault();return}xt&&(xt.remove(),xt=void 0,document.body.classList.remove(jn))}function Sy(t){var e;if(!(t<1)){for(let n=t;n<Co.length;n++)(e=Co[n])==null||e.remove(),Co[n]=void 0;for(const n of Co[t-1].querySelectorAll("li.active"))n.classList.remove("active")}}const vI=()=>D`<li class="menu-divider"></li>`,AI=t=>D`<li class="menu-header">${t.label||"-"}</li>`,xI=(t,e)=>D`<li><a class="submenu-item" @click="${n=>n.stopPropagation()}" @mouseup="${n=>n.stopPropagation()}" @mouseenter="${n=>vf(()=>{const r=n.target.closest("li");SI(t.submenu,r,e+1),n.stopPropagation()})}" @mouseleave="${()=>vf(()=>Sy(e+1))}"><span>${t.label}</span></a></li>`,wI=t=>D`<li><a class="choice-item" @mouseup="${()=>{So(),t.callback()}}"><span>${t.icon?$(t.icon).node[0]:""} ${t.label}</span> ${t.shortcut?D`<span class="kbd-shortcut">${t.shortcut}</span>`:R} </a>${t.ellipsisCallback?D`<a class="menu-ellipsis" @click="${t.ellipsisCallback}">${$(I5).node[0]}</a>`:R}</li>`,CI=t=>D`<li><span class="disabled-item">${t.icon?$(t.icon).node[0]:""} ${t.label||"-"}</span></li>`;function Ey(t,e=1){switch(t.type){case"divider":return vI();case"header":return AI(t);default:return t.submenu?xI(t,e):t.callback?wI(t):CI(t)}}function SI(t,e,n){Dy(t,e,n,"right-start"),e.classList.add("active")}function Dy(t,e,n,r){const i=document.createElement("ul");i.classList.add("gs-context-menu"),i.addEventListener("mouseenter",()=>{vf(()=>{})}),Be(t.map(o=>Ey(o,n)),i),xt.appendChild(i),Sy(n),Co[n]=i,bI(e,i,{placement:r!=null?r:"right-start",middleware:n?[fy()]:[iI(2),fy()]}).then(({x:o,y:a})=>{const s=i.querySelector(":scope > li");s&&(a-=s.getBoundingClientRect().top),i.style.left=`${o}px`,i.style.top=`${a}px`})}function My(t,e,n){n!=null||(n="bottom-start"),So();const r=performance.now(),i=document.body;xt=document.createElement("div"),xt.classList.add("gs-context-menu-backdrop"),xt.addEventListener("click",So),xt.addEventListener("contextmenu",So),xt.addEventListener("mouseup",()=>{performance.now()-r>500&&So()},{once:!0}),i.appendChild(xt),document.body.classList.add(jn),Dy(t.items,e,0,n)}function Ty(t,e){My(t,EI(e),"right-start"),e.preventDefault()}function EI(t){return{getBoundingClientRect(){return{width:0,height:0,x:t.clientX,y:t.clientY,top:t.clientY,left:t.clientX,right:t.clientX,bottom:t.clientY,toJSON:void 0}}}}const xf={NOMINAL:"nominal",ORDINAL:"ordinal",QUANTITATIVE:"quantitative"},Ns="SAMPLE_ATTRIBUTE",Iy="SAMPLE_NAME",DI=/^attribute-(.*)$/;class ky extends Hr{constructor(e){super({title:"Sample metadata",data:{dynamicSource:!0},hconcat:[],spacing:1,resolve:{scale:{default:"independent"},axis:{default:"independent"}}},e.context,void 0,"sample-metadata"),this.sampleView=e,this._attributeHighlighState={backgroundOpacity:1,currentAttribute:void 0,abortController:new AbortController},this.sampleView.compositeAttributeInfoSource.addAttributeInfoSource(Ns,n=>this.children.map(this.getAttributeInfoFromView.bind(this)).find(r=>r&&r.name==n.specifier)),this.sampleView.compositeAttributeInfoSource.addAttributeInfoSource(Iy,n=>Ny),this.addInteractionEventListener("contextmenu",this.handleContextMenu.bind(this)),this.addInteractionEventListener("mousemove",(n,r)=>{var s;const i=r.target,o=this._findSampleForMouseEvent(n,r),a=i&&((s=this.getAttributeInfoFromView(i))==null?void 0:s.name)||void 0;if(o){const c=JSON.stringify([o.id,a]);this.context.updateTooltip(c,u=>Promise.resolve(this.sampleToTooltip(u)))}this._handleAttributeHighlight(a)}),je([...this.sampleView.getAncestors()]).addInteractionEventListener("mousemove",(n,r)=>{if(!!this._attributeHighlighState.currentAttribute){if(r.target){for(const i of r.target.getAncestors())if(i==this)return}this._handleAttributeHighlight(void 0)}})}getEncoding(){return{}}render(e,n,r={}){!this.isVisible()||super.render(e,n,{...r,clipRect:this.sampleView._clipBySummary(n)})}_handleAttributeHighlight(e){const n=this._attributeHighlighState;e!=n.currentAttribute&&(n.abortController.abort(),n.abortController=new AbortController,this.context.animator.transition({from:n.backgroundOpacity,onUpdate:r=>{n.backgroundOpacity=r},easingFunction:fg,signal:n.abortController.signal,...e?{to:.1,duration:1e3,delay:n.backgroundOpacity<1?0:500}:{to:1,duration:200,delay:150}}).catch(r=>{}),this.context.animator.requestRender()),n.currentAttribute=e}getSample(e){var n;return(n=this.sampleView.sampleHierarchy.sampleData)==null?void 0:n.entities[e]}_findSampleForMouseEvent(e,n){return this.sampleView.getSampleAt(n.point.y-this.sampleView.childCoords.y)}_getAttributeOpacity(e){const n=this._attributeHighlighState;return e==n.currentAttribute?1:n.backgroundOpacity}handleContextMenu(e,n){const r=n.uiEvent,i=this._findSampleForMouseEvent(e,n);if(!i){r.preventDefault();return}const o=[this.sampleView.makePeekMenuItem(),Af],a=this.getAttributeInfoFromView(n.target);if(a){const s=i.attributes[a.name];o.push(...df(D`Attribute: <strong>${a.name}</strong>`,a,s,this.sampleView))}else o.push(...df(D`Sample: <strong>${i.displayName}</strong>`,Ny,i.id,this.sampleView));Ty({items:o},r)}_setSamples(e){if(this.childCount)throw new Error("Children are already created!");this._createViews();const n=this.context.dataFlow;jg(this,n);const r=n.findDataSourceByKey(this);r.visit(o=>o.initialize());const i=[];this.visit(o=>{if(o instanceof ye){const a=o.mark;a.initializeEncoders(),i.push(a.initializeGraphics().then(s=>a)),n.addObserver(s=>{a.initializeData(),a.updateGraphicsData()},o)}}),Promise.allSettled(i).then(o=>{for(const a of o)"value"in a?a.value.finalizeGraphicsInitialization():"reason"in a&&console.error(a.reason)}),r.publishData(e),this.visit(o=>{o.name.startsWith("title")&&n.findDataSourceByKey(o).load()})}_createViews(){const e=[];e.push(this.context.createView(TI(),this));for(const n of this._getAttributeNames()){const r=this.context.createView(this._createAttributeViewSpec(n),this);r.opacityFunction=i=>i*this._getAttributeOpacity(n),e.push(r)}this.setChildren(e),Gg(this)}_getAttributeDef(e){var n,r;return(r=(n=this.sampleView.spec.samples)==null?void 0:n.attributes)==null?void 0:r[e]}_getAttributeNames(){return this._cache("attributeNames",()=>[...this.sampleView.getSamples().flatMap(r=>Object.keys(r.attributes)).reduce((r,i)=>r.add(i),new Set)])}_createAttributeViewSpec(e){const n=this._getAttributeDef(e);let r=n?n.type:void 0;if(!r){const i=this.sampleView.getSamples();switch(gh(i.map(o=>o.attributes[e]))){case"integer":case"number":r=xf.QUANTITATIVE;break;default:r=xf.NOMINAL}}return MI(e,{...n||{},type:r})}_findViewForAttribute(e){return this.children[this._getAttributeNames().indexOf(e)+1]}getAttributeInfoFromView(e){const n=e==null?void 0:e.name.match(DI);if(n){const r=e.getScaleResolution("color"),i=n[1];return{name:i,attribute:{type:Ns,specifier:i},accessor:(o,a)=>a.sampleData.entities[o].attributes[i],type:r.type,scale:r.getScale(),title:D`<em class="attribute">${i}</em>`}}}getAttributeInfo(e){return this.getAttributeInfoFromView(this._findViewForAttribute(e))}sampleToTooltip(e){const[n,r]=JSON.parse(e),i=this.getSample(n),o=(s,c)=>II(c)?this.getAttributeInfo(s).scale(c):"transparent",a=D`<table class="attributes">${Object.entries(i.attributes).map(([s,c])=>D`<tr class="${l5({hovered:s==r})}"><th>${s}</th><td>${Zg(c)}</td><td class="color" .style="background-color: ${o(s,c)}"></td></tr>`)}</table>`;return D`<div class="title"><strong>${i.displayName||i.id}</strong></div>${a}`}getDefaultResolution(e,n){return"independent"}handleVerboseCommand(e){const n=e;for(const r of this._getAttributeNames()){const i=this.getAttributeInfo(r);if((i.type==yl||i.type==bl)&&this.sampleView.getSamples().find(a=>a.attributes[i.name]==n)){const a=this.sampleView.actions.filterByNominal({attribute:{type:Ns,specifier:r},values:[n]}),s=this.sampleView.provenance.getPresentState().lastAction,c=this.sampleView.actions.filterByNominal.match(s)&&!s.payload.remove&&s.payload.attribute.type==Ns&&s.payload.attribute.specifier==r&&s.payload.values.length==1;return this.sampleView.provenance.storeHelper.dispatch(c?[jt.ActionCreators.undo(),a]:a),!0}}return!1}isPickingSupported(){return!1}}function MI(t,e){var i,o;const n=`attributes["${t}"]`,r={name:`attribute-${t}`,title:{text:t,orient:"bottom",align:"right",baseline:"middle",offset:5,angle:-90,dy:-.5,fontSize:11},visible:(i=e.visible)!=null?i:!0,width:(o=e.width)!=null?o:10,transform:[{type:"filter",expr:`datum.${n} != null`}],mark:{type:"rect",xOffset:-.5},encoding:{facetIndex:{field:"indexNumber"},color:{field:n,type:e.type,scale:e.scale}},opacity:1};return e.barScale&&e.type==xf.QUANTITATIVE&&(r.encoding.x={field:`attributes["${t}"]`,type:e.type,scale:e.barScale,axis:null}),r}function TI(){return{name:"metadata-sample-name",title:{text:"Sample name",orient:"bottom",anchor:"start",offset:5,fontSize:11},width:140,mark:{type:"text",align:"left",baseline:"middle",size:11,flushY:!1},encoding:{facetIndex:{field:"indexNumber"},x:{value:0},x2:{value:1},y:{value:0},y2:{value:1},text:{field:"displayName"}}}}function II(t){return t!==""&&!(typeof t=="number"&&isNaN(t))&&t!==null}const Ny=Object.freeze({name:"sample",attribute:{type:Iy},accessor:t=>t,type:"identifier",scale:void 0});class kI extends Nt{constructor(e){super({title:{text:"Groups",orient:"none"},width:{step:22},data:{dynamicSource:!0},transform:[{type:"filter",expr:"datum._depth > 0"},{type:"formula",as:"_y1",expr:"datum._index * 2"},{type:"formula",as:"_y2",expr:"datum._index * 2 + 1"},{type:"formula",as:"_NA",expr:"datum.label == null"},{type:"formula",as:"label",expr:"datum.label != null ? datum.label: 'NA'"}],encoding:{x:{field:"_depth",type:"ordinal",scale:{align:0,padding:.2272727},axis:null},y:{field:"_y1",type:"nominal",scale:{type:"ordinal",domain:Yt(500)},axis:null},y2:{field:"_y2"}},layer:[{title:"Group",mark:{type:"rect",clip:!0,color:"#e8e8e8",cornerRadiusBottomLeft:14,cornerRadiusTopLeft:14}},{mark:{type:"text",clip:!0,angle:-90,paddingY:5,tooltip:null},encoding:{text:{field:"label"},opacity:{field:"_NA",type:"nominal",scale:{type:"ordinal",domain:[!1,!0],range:[1,.3]}}}}]},e.context,void 0,"sample-groups"),this.sampleView=e,this._addBroadcastHandler("layoutComputed",()=>{this.updateRange()})}updateRange(){var o,a,s;const e=(o=this.sampleView.getLocations())==null?void 0:o.groups;if(!(e!=null&&e.length))return;const n=(s=(a=this.sampleView)==null?void 0:a.childCoords.height)!=null?s:0,r=this.getScaleResolution("y"),i=[];for(const c of e)i.push(1-(c.locSize.location+c.locSize.size)/n),i.push(1-c.locSize.location/n);r.getScale().range(i),this.context.glHelper.createRangeTexture(r,!0)}updateGroups(){var i,o;const e=(o=(i=this.sampleView.getLocations())==null?void 0:i.groups)!=null?o:[],n=this.context.dataFlow.findDataSourceByKey(this);if(!n)return;const r=e.map(a=>({_index:a.key.index,_name:a.key.group.name,_depth:a.key.depth,attribute:a.key.attributeLabel,label:a.key.group.label,n:a.key.n}));n.publishData(r),this.getScaleResolution("x").reconfigure(),this.getScaleResolution("y").reconfigure(),e.length&&this.updateRange(),je([...this.getAncestors()]).visit(a=>oo(a,"size"))}}function ut(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];throw Error("[Immer] minified error nr: "+t+(n.length?" "+n.map(function(i){return"'"+i+"'"}).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function yn(t){return!!t&&!!t[ie]}function Ht(t){return!!t&&(function(e){if(!e||typeof e!="object")return!1;var n=Object.getPrototypeOf(e);if(n===null)return!0;var r=Object.hasOwnProperty.call(n,"constructor")&&n.constructor;return r===Object||typeof r=="function"&&Function.toString.call(r)===jI}(t)||Array.isArray(t)||!!t[Gy]||!!t.constructor[Gy]||wf(t)||Cf(t))}function cr(t,e,n){n===void 0&&(n=!1),Jr(t)===0?(n?Object.keys:ei)(t).forEach(function(r){n&&typeof r=="symbol"||e(r,t[r],t)}):t.forEach(function(r,i){return e(i,r,t)})}function Jr(t){var e=t[ie];return e?e.i>3?e.i-4:e.i:Array.isArray(t)?1:wf(t)?2:Cf(t)?3:0}function $r(t,e){return Jr(t)===2?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function NI(t,e){return Jr(t)===2?t.get(e):t[e]}function Ly(t,e,n){var r=Jr(t);r===2?t.set(e,n):r===3?(t.delete(e),t.add(n)):t[e]=n}function By(t,e){return t===e?t!==0||1/t==1/e:t!=t&&e!=e}function wf(t){return zI&&t instanceof Map}function Cf(t){return RI&&t instanceof Set}function ur(t){return t.o||t.t}function Sf(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var e=Hy(t);delete e[ie];for(var n=ei(e),r=0;r<n.length;r++){var i=n[r],o=e[i];o.writable===!1&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(e[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:t[i]})}return Object.create(Object.getPrototypeOf(t),e)}function Ef(t,e){return e===void 0&&(e=!1),Df(t)||yn(t)||!Ht(t)||(Jr(t)>1&&(t.set=t.add=t.clear=t.delete=LI),Object.freeze(t),e&&cr(t,function(n,r){return Ef(r,!0)},!0)),t}function LI(){ut(2)}function Df(t){return t==null||typeof t!="object"||Object.isFrozen(t)}function wt(t){var e=Pf[t];return e||ut(18,t),e}function BI(t,e){Pf[t]||(Pf[t]=e)}function Mf(){return Eo}function Tf(t,e){e&&(wt("Patches"),t.u=[],t.s=[],t.v=e)}function Ls(t){If(t),t.p.forEach(OI),t.p=null}function If(t){t===Eo&&(Eo=t.l)}function Oy(t){return Eo={p:[],l:Eo,h:t,m:!0,_:0}}function OI(t){var e=t[ie];e.i===0||e.i===1?e.j():e.O=!0}function kf(t,e){e._=e.p.length;var n=e.p[0],r=t!==void 0&&t!==n;return e.h.g||wt("ES5").S(e,t,r),r?(n[ie].P&&(Ls(e),ut(4)),Ht(t)&&(t=Bs(e,t),e.l||Os(e,t)),e.u&&wt("Patches").M(n[ie].t,t,e.u,e.s)):t=Bs(e,n,[]),Ls(e),e.u&&e.v(e.u,e.s),t!==Uy?t:void 0}function Bs(t,e,n){if(Df(e))return e;var r=e[ie];if(!r)return cr(e,function(o,a){return Py(t,r,e,o,a,n)},!0),e;if(r.A!==t)return e;if(!r.P)return Os(t,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var i=r.i===4||r.i===5?r.o=Sf(r.k):r.o;cr(r.i===3?new Set(i):i,function(o,a){return Py(t,r,i,o,a,n)}),Os(t,i,!1),n&&t.u&&wt("Patches").R(r,n,t.u,t.s)}return r.o}function Py(t,e,n,r,i,o){if(yn(i)){var a=Bs(t,i,o&&e&&e.i!==3&&!$r(e.D,r)?o.concat(r):void 0);if(Ly(n,r,a),!yn(a))return;t.m=!1}if(Ht(i)&&!Df(i)){if(!t.h.F&&t._<1)return;Bs(t,i),e&&e.A.l||Os(t,i)}}function Os(t,e,n){n===void 0&&(n=!1),t.h.F&&t.m&&Ef(e,n)}function Nf(t,e){var n=t[ie];return(n?ur(n):t)[e]}function Fy(t,e){if(e in t)for(var n=Object.getPrototypeOf(t);n;){var r=Object.getOwnPropertyDescriptor(n,e);if(r)return r;n=Object.getPrototypeOf(n)}}function bn(t){t.P||(t.P=!0,t.l&&bn(t.l))}function Lf(t){t.o||(t.o=Sf(t.t))}function Bf(t,e,n){var r=wf(e)?wt("MapSet").N(e,n):Cf(e)?wt("MapSet").T(e,n):t.g?function(i,o){var a=Array.isArray(i),s={i:a?1:0,A:o?o.A:Mf(),P:!1,I:!1,D:{},l:o,t:i,k:null,o:null,j:null,C:!1},c=s,u=Do;a&&(c=[s],u=Mo);var f=Proxy.revocable(c,u),l=f.revoke,d=f.proxy;return s.k=d,s.j=l,d}(e,n):wt("ES5").J(e,n);return(n?n.A:Mf()).p.push(r),r}function PI(t){return yn(t)||ut(22,t),function e(n){if(!Ht(n))return n;var r,i=n[ie],o=Jr(n);if(i){if(!i.P&&(i.i<4||!wt("ES5").K(i)))return i.t;i.I=!0,r=zy(n,o),i.I=!1}else r=zy(n,o);return cr(r,function(a,s){i&&NI(i.t,a)===s||Ly(r,a,e(s))}),o===3?new Set(r):r}(t)}function zy(t,e){switch(e){case 2:return new Map(t);case 3:return Array.from(t)}return Sf(t)}function FI(){function t(o,a){var s=i[o];return s?s.enumerable=a:i[o]=s={configurable:!0,enumerable:a,get:function(){var c=this[ie];return Do.get(c,o)},set:function(c){var u=this[ie];Do.set(u,o,c)}},s}function e(o){for(var a=o.length-1;a>=0;a--){var s=o[a][ie];if(!s.P)switch(s.i){case 5:r(s)&&bn(s);break;case 4:n(s)&&bn(s)}}}function n(o){for(var a=o.t,s=o.k,c=ei(s),u=c.length-1;u>=0;u--){var f=c[u];if(f!==ie){var l=a[f];if(l===void 0&&!$r(a,f))return!0;var d=s[f],h=d&&d[ie];if(h?h.t!==l:!By(d,l))return!0}}var p=!!a[ie];return c.length!==ei(a).length+(p?0:1)}function r(o){var a=o.k;if(a.length!==o.t.length)return!0;var s=Object.getOwnPropertyDescriptor(a,a.length-1);if(s&&!s.get)return!0;for(var c=0;c<a.length;c++)if(!a.hasOwnProperty(c))return!0;return!1}var i={};BI("ES5",{J:function(o,a){var s=Array.isArray(o),c=function(f,l){if(f){for(var d=Array(l.length),h=0;h<l.length;h++)Object.defineProperty(d,""+h,t(h,!0));return d}var p=Hy(l);delete p[ie];for(var m=ei(p),y=0;y<m.length;y++){var g=m[y];p[g]=t(g,f||!!p[g].enumerable)}return Object.create(Object.getPrototypeOf(l),p)}(s,o),u={i:s?5:4,A:a?a.A:Mf(),P:!1,I:!1,D:{},l:a,t:o,k:c,o:null,O:!1,C:!1};return Object.defineProperty(c,ie,{value:u,writable:!0}),c},S:function(o,a,s){s?yn(a)&&a[ie].A===o&&e(o.p):(o.u&&function c(u){if(u&&typeof u=="object"){var f=u[ie];if(f){var l=f.t,d=f.k,h=f.D,p=f.i;if(p===4)cr(d,function(A){A!==ie&&(l[A]!==void 0||$r(l,A)?h[A]||c(d[A]):(h[A]=!0,bn(f)))}),cr(l,function(A){d[A]!==void 0||$r(d,A)||(h[A]=!1,bn(f))});else if(p===5){if(r(f)&&(bn(f),h.length=!0),d.length<l.length)for(var m=d.length;m<l.length;m++)h[m]=!1;else for(var y=l.length;y<d.length;y++)h[y]=!0;for(var g=Math.min(d.length,l.length),x=0;x<g;x++)d.hasOwnProperty(x)||(h[x]=!0),h[x]===void 0&&c(d[x])}}}}(o.p[0]),e(o.p))},K:function(o){return o.i===4?n(o):r(o)}})}var Ry,Eo,Of=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",zI=typeof Map<"u",RI=typeof Set<"u",jy=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",Uy=Of?Symbol.for("immer-nothing"):((Ry={})["immer-nothing"]=!0,Ry),Gy=Of?Symbol.for("immer-draftable"):"__$immer_draftable",ie=Of?Symbol.for("immer-state"):"__$immer_state",jI=""+Object.prototype.constructor,ei=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Object.getOwnPropertyNames,Hy=Object.getOwnPropertyDescriptors||function(t){var e={};return ei(t).forEach(function(n){e[n]=Object.getOwnPropertyDescriptor(t,n)}),e},Pf={},Do={get:function(t,e){if(e===ie)return t;var n=ur(t);if(!$r(n,e))return function(i,o,a){var s,c=Fy(o,a);return c?"value"in c?c.value:(s=c.get)===null||s===void 0?void 0:s.call(i.k):void 0}(t,n,e);var r=n[e];return t.I||!Ht(r)?r:r===Nf(t.t,e)?(Lf(t),t.o[e]=Bf(t.A.h,r,t)):r},has:function(t,e){return e in ur(t)},ownKeys:function(t){return Reflect.ownKeys(ur(t))},set:function(t,e,n){var r=Fy(ur(t),e);if(r!=null&&r.set)return r.set.call(t.k,n),!0;if(!t.P){var i=Nf(ur(t),e),o=i==null?void 0:i[ie];if(o&&o.t===n)return t.o[e]=n,t.D[e]=!1,!0;if(By(n,i)&&(n!==void 0||$r(t.t,e)))return!0;Lf(t),bn(t)}return t.o[e]===n&&typeof n!="number"&&(n!==void 0||e in t.o)||(t.o[e]=n,t.D[e]=!0,!0)},deleteProperty:function(t,e){return Nf(t.t,e)!==void 0||e in t.t?(t.D[e]=!1,Lf(t),bn(t)):delete t.D[e],t.o&&delete t.o[e],!0},getOwnPropertyDescriptor:function(t,e){var n=ur(t),r=Reflect.getOwnPropertyDescriptor(n,e);return r&&{writable:!0,configurable:t.i!==1||e!=="length",enumerable:r.enumerable,value:n[e]}},defineProperty:function(){ut(11)},getPrototypeOf:function(t){return Object.getPrototypeOf(t.t)},setPrototypeOf:function(){ut(12)}},Mo={};cr(Do,function(t,e){Mo[t]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}}),Mo.deleteProperty=function(t,e){return Mo.set.call(this,t,e,void 0)},Mo.set=function(t,e,n){return Do.set.call(this,t[0],e,n,t[0])};var UI=function(){function t(n){var r=this;this.g=jy,this.F=!0,this.produce=function(i,o,a){if(typeof i=="function"&&typeof o!="function"){var s=o;o=i;var c=r;return function(m){var y=this;m===void 0&&(m=s);for(var g=arguments.length,x=Array(g>1?g-1:0),A=1;A<g;A++)x[A-1]=arguments[A];return c.produce(m,function(C){var v;return(v=o).call.apply(v,[y,C].concat(x))})}}var u;if(typeof o!="function"&&ut(6),a!==void 0&&typeof a!="function"&&ut(7),Ht(i)){var f=Oy(r),l=Bf(r,i,void 0),d=!0;try{u=o(l),d=!1}finally{d?Ls(f):If(f)}return typeof Promise<"u"&&u instanceof Promise?u.then(function(m){return Tf(f,a),kf(m,f)},function(m){throw Ls(f),m}):(Tf(f,a),kf(u,f))}if(!i||typeof i!="object"){if((u=o(i))===void 0&&(u=i),u===Uy&&(u=void 0),r.F&&Ef(u,!0),a){var h=[],p=[];wt("Patches").M(i,u,h,p),a(h,p)}return u}ut(21,i)},this.produceWithPatches=function(i,o){if(typeof i=="function")return function(u){for(var f=arguments.length,l=Array(f>1?f-1:0),d=1;d<f;d++)l[d-1]=arguments[d];return r.produceWithPatches(u,function(h){return i.apply(void 0,[h].concat(l))})};var a,s,c=r.produce(i,o,function(u,f){a=u,s=f});return typeof Promise<"u"&&c instanceof Promise?c.then(function(u){return[u,a,s]}):[c,a,s]},typeof(n==null?void 0:n.useProxies)=="boolean"&&this.setUseProxies(n.useProxies),typeof(n==null?void 0:n.autoFreeze)=="boolean"&&this.setAutoFreeze(n.autoFreeze)}var e=t.prototype;return e.createDraft=function(n){Ht(n)||ut(8),yn(n)&&(n=PI(n));var r=Oy(this),i=Bf(this,n,void 0);return i[ie].C=!0,If(r),i},e.finishDraft=function(n,r){var i=n&&n[ie],o=i.A;return Tf(o,r),kf(void 0,o)},e.setAutoFreeze=function(n){this.F=n},e.setUseProxies=function(n){n&&!jy&&ut(20),this.g=n},e.applyPatches=function(n,r){var i;for(i=r.length-1;i>=0;i--){var o=r[i];if(o.path.length===0&&o.op==="replace"){n=o.value;break}}i>-1&&(r=r.slice(i+1));var a=wt("Patches").$;return yn(n)?a(n,r):this.produce(n,function(s){return a(s,r)})},t}(),Qe=new UI,Qy=Qe.produce;Qe.produceWithPatches.bind(Qe),Qe.setAutoFreeze.bind(Qe),Qe.setUseProxies.bind(Qe),Qe.applyPatches.bind(Qe),Qe.createDraft.bind(Qe),Qe.finishDraft.bind(Qe);function GI(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Vy(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Yy(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Vy(Object(n),!0).forEach(function(r){GI(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Vy(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function De(t){return"Minified Redux error #"+t+"; visit https://redux.js.org/Errors?code="+t+" for the full message or use the non-minified dev environment for full errors. "}var _y=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}(),Ff=function(){return Math.random().toString(36).substring(7).split("").join(".")},Ps={INIT:"@@redux/INIT"+Ff(),REPLACE:"@@redux/REPLACE"+Ff(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+Ff()}};function HI(t){if(typeof t!="object"||t===null)return!1;for(var e=t;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function Wy(t,e,n){var r;if(typeof e=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(De(0));if(typeof e=="function"&&typeof n>"u"&&(n=e,e=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(De(1));return n(Wy)(t,e)}if(typeof t!="function")throw new Error(De(2));var i=t,o=e,a=[],s=a,c=!1;function u(){s===a&&(s=a.slice())}function f(){if(c)throw new Error(De(3));return o}function l(m){if(typeof m!="function")throw new Error(De(4));if(c)throw new Error(De(5));var y=!0;return u(),s.push(m),function(){if(!!y){if(c)throw new Error(De(6));y=!1,u();var x=s.indexOf(m);s.splice(x,1),a=null}}}function d(m){if(!HI(m))throw new Error(De(7));if(typeof m.type>"u")throw new Error(De(8));if(c)throw new Error(De(9));try{c=!0,o=i(o,m)}finally{c=!1}for(var y=a=s,g=0;g<y.length;g++){var x=y[g];x()}return m}function h(m){if(typeof m!="function")throw new Error(De(10));i=m,d({type:Ps.REPLACE})}function p(){var m,y=l;return m={subscribe:function(x){if(typeof x!="object"||x===null)throw new Error(De(11));function A(){x.next&&x.next(f())}A();var C=y(A);return{unsubscribe:C}}},m[_y]=function(){return this},m}return d({type:Ps.INIT}),r={dispatch:d,subscribe:l,getState:f,replaceReducer:h},r[_y]=p,r}function QI(t){Object.keys(t).forEach(function(e){var n=t[e],r=n(void 0,{type:Ps.INIT});if(typeof r>"u")throw new Error(De(12));if(typeof n(void 0,{type:Ps.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(De(13))})}function zf(t){for(var e=Object.keys(t),n={},r=0;r<e.length;r++){var i=e[r];typeof t[i]=="function"&&(n[i]=t[i])}var o=Object.keys(n),a;try{QI(n)}catch(s){a=s}return function(c,u){if(c===void 0&&(c={}),a)throw a;for(var f=!1,l={},d=0;d<o.length;d++){var h=o[d],p=n[h],m=c[h],y=p(m,u);if(typeof y>"u")throw u&&u.type,new Error(De(14));l[h]=y,f=f||y!==m}return f=f||o.length!==Object.keys(c).length,f?l:c}}function Fs(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return e.length===0?function(r){return r}:e.length===1?e[0]:e.reduce(function(r,i){return function(){return r(i.apply(void 0,arguments))}})}function VI(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(r){return function(){var i=r.apply(void 0,arguments),o=function(){throw new Error(De(15))},a={getState:i.getState,dispatch:function(){return o.apply(void 0,arguments)}},s=e.map(function(c){return c(a)});return o=Fs.apply(void 0,s)(i.dispatch),Yy(Yy({},i),{},{dispatch:o})}}}var zs="NOT_FOUND";function YI(t){var e;return{get:function(r){return e&&t(e.key,r)?e.value:zs},put:function(r,i){e={key:r,value:i}},getEntries:function(){return e?[e]:[]},clear:function(){e=void 0}}}function _I(t,e){var n=[];function r(s){var c=n.findIndex(function(f){return e(s,f.key)});if(c>-1){var u=n[c];return c>0&&(n.splice(c,1),n.unshift(u)),u.value}return zs}function i(s,c){r(s)===zs&&(n.unshift({key:s,value:c}),n.length>t&&n.pop())}function o(){return n}function a(){n=[]}return{get:r,put:i,getEntries:o,clear:a}}var WI=function(e,n){return e===n};function XI(t){return function(n,r){if(n===null||r===null||n.length!==r.length)return!1;for(var i=n.length,o=0;o<i;o++)if(!t(n[o],r[o]))return!1;return!0}}function ZI(t,e){var n=typeof e=="object"?e:{equalityCheck:e},r=n.equalityCheck,i=r===void 0?WI:r,o=n.maxSize,a=o===void 0?1:o,s=n.resultEqualityCheck,c=XI(i),u=a===1?YI(c):_I(a,c);function f(){var l=u.get(arguments);if(l===zs){if(l=t.apply(null,arguments),s){var d=u.getEntries(),h=d.find(function(p){return s(p.value,l)});h&&(l=h.value)}u.put(arguments,l)}return l}return f.clearCache=function(){return u.clear()},f}function qI(t){var e=Array.isArray(t[0])?t[0]:t;if(!e.every(function(r){return typeof r=="function"})){var n=e.map(function(r){return typeof r=="function"?"function "+(r.name||"unnamed")+"()":typeof r}).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+n+"]")}return e}function KI(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];var i=function(){for(var a=arguments.length,s=new Array(a),c=0;c<a;c++)s[c]=arguments[c];var u=0,f,l={memoizeOptions:void 0},d=s.pop();if(typeof d=="object"&&(l=d,d=s.pop()),typeof d!="function")throw new Error("createSelector expects an output function after the inputs, but received: ["+typeof d+"]");var h=l,p=h.memoizeOptions,m=p===void 0?n:p,y=Array.isArray(m)?m:[m],g=qI(s),x=t.apply(void 0,[function(){return u++,d.apply(null,arguments)}].concat(y)),A=t(function(){for(var C=[],v=g.length,b=0;b<v;b++)C.push(g[b].apply(null,arguments));return f=x.apply(null,C),f});return Object.assign(A,{resultFunc:d,memoizedResultFunc:x,dependencies:g,lastResult:function(){return f},recomputations:function(){return u},resetRecomputations:function(){return u=0}}),A};return i}var JI=KI(ZI);function Xy(t){var e=function(r){var i=r.dispatch,o=r.getState;return function(a){return function(s){return typeof s=="function"?s(i,o,t):a(s)}}};return e}var Zy=Xy();Zy.withExtraArgument=Xy;const qy=Zy;var $I=globalThis&&globalThis.__extends||function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(r[o]=i[o])},t(e,n)};return function(e,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}();globalThis&&globalThis.__generator;var Rs=globalThis&&globalThis.__spreadArray||function(t,e){for(var n=0,r=e.length,i=t.length;n<r;n++,i++)t[i]=e[n];return t},e9=Object.defineProperty,Ky=Object.getOwnPropertySymbols,t9=Object.prototype.hasOwnProperty,n9=Object.prototype.propertyIsEnumerable,Jy=function(t,e,n){return e in t?e9(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n},To=function(t,e){for(var n in e||(e={}))t9.call(e,n)&&Jy(t,n,e[n]);if(Ky)for(var r=0,i=Ky(e);r<i.length;r++){var n=i[r];n9.call(e,n)&&Jy(t,n,e[n])}return t},r9=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?Fs:Fs.apply(null,arguments)};function i9(t){if(typeof t!="object"||t===null)return!1;var e=Object.getPrototypeOf(t);if(e===null)return!0;for(var n=e;Object.getPrototypeOf(n)!==null;)n=Object.getPrototypeOf(n);return e===n}var o9=function(t){$I(e,t);function e(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var i=t.apply(this,n)||this;return Object.setPrototypeOf(i,e.prototype),i}return Object.defineProperty(e,Symbol.species,{get:function(){return e},enumerable:!1,configurable:!0}),e.prototype.concat=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return t.prototype.concat.apply(this,n)},e.prototype.prepend=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return n.length===1&&Array.isArray(n[0])?new(e.bind.apply(e,Rs([void 0],n[0].concat(this)))):new(e.bind.apply(e,Rs([void 0],n.concat(this))))},e}(Array);function Rf(t){return Ht(t)?Qy(t,function(){}):t}function a9(t){return typeof t=="boolean"}function s9(){return function(e){return c9(e)}}function c9(t){t===void 0&&(t={});var e=t.thunk,n=e===void 0?!0:e;t.immutableCheck,t.serializableCheck;var r=new o9;return n&&(a9(n)?r.push(qy):r.push(qy.withExtraArgument(n.extraArgument))),r}var u9=!0;function l9(t){var e=s9(),n=t||{},r=n.reducer,i=r===void 0?void 0:r,o=n.middleware,a=o===void 0?e():o,s=n.devTools,c=s===void 0?!0:s,u=n.preloadedState,f=u===void 0?void 0:u,l=n.enhancers,d=l===void 0?void 0:l,h;if(typeof i=="function")h=i;else if(i9(i))h=zf(i);else throw new Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');var p=a;typeof p=="function"&&(p=p(e));var m=VI.apply(void 0,p),y=Fs;c&&(y=r9(To({trace:!u9},typeof c=="object"&&c)));var g=[m];Array.isArray(d)?g=Rs([m],d):typeof d=="function"&&(g=d(g));var x=y.apply(void 0,g);return Wy(h,f,x)}function Io(t,e){function n(){for(var r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];if(e){var o=e.apply(void 0,r);if(!o)throw new Error("prepareAction did not return an object");return To(To({type:t,payload:o.payload},"meta"in o&&{meta:o.meta}),"error"in o&&{error:o.error})}return{type:t,payload:r[0]}}return n.toString=function(){return""+t},n.type=t,n.match=function(r){return r.type===t},n}function $y(t){var e={},n=[],r,i={addCase:function(o,a){var s=typeof o=="string"?o:o.type;if(s in e)throw new Error("addCase cannot be called with two reducers for the same action type");return e[s]=a,i},addMatcher:function(o,a){return n.push({matcher:o,reducer:a}),i},addDefaultCase:function(o){return r=o,i}};return t(i),[e,n,r]}function f9(t){return typeof t=="function"}function d9(t,e,n,r){n===void 0&&(n=[]);var i=typeof e=="function"?$y(e):[e,n,r],o=i[0],a=i[1],s=i[2],c;if(f9(t))c=function(){return Rf(t())};else{var u=Rf(t);c=function(){return u}}function f(l,d){l===void 0&&(l=c());var h=Rs([o[d.type]],a.filter(function(p){var m=p.matcher;return m(d)}).map(function(p){var m=p.reducer;return m}));return h.filter(function(p){return!!p}).length===0&&(h=[s]),h.reduce(function(p,m){if(m)if(yn(p)){var y=p,g=m(y,d);return typeof g>"u"?p:g}else{if(Ht(p))return Qy(p,function(x){return m(x,d)});var g=m(p,d);if(typeof g>"u"){if(p===null)return p;throw Error("A case reducer on a non-draftable value must not return undefined")}return g}return p},l)}return f.getInitialState=c,f}function h9(t,e){return t+"/"+e}function e2(t){var e=t.name;if(!e)throw new Error("`name` is a required option for createSlice");typeof process<"u";var n=typeof t.initialState=="function"?t.initialState:Rf(t.initialState),r=t.reducers||{},i=Object.keys(r),o={},a={},s={};i.forEach(function(f){var l=r[f],d=h9(e,f),h,p;"reducer"in l?(h=l.reducer,p=l.prepare):h=l,o[f]=h,a[d]=h,s[f]=p?Io(d,p):Io(d)});function c(){var f=typeof t.extraReducers=="function"?$y(t.extraReducers):[t.extraReducers],l=f[0],d=l===void 0?{}:l,h=f[1],p=h===void 0?[]:h,m=f[2],y=m===void 0?void 0:m,g=To(To({},d),a);return d9(n,g,p,y)}var u;return{name:e,reducer:function(f,l){return u||(u=c()),u(f,l)},actions:s,caseReducers:o,getInitialState:function(){return u||(u=c()),u.getInitialState()}}}var jf="listenerMiddleware";Io(jf+"/add"),Io(jf+"/removeAll"),Io(jf+"/remove"),FI();function t2(t,e,n,r){if(r&&!n)throw new Error("Custom labels need explicit group order!");const i=ui(t.samples,e),o=n?n.map(c=>[c,i.get(c)]).filter(c=>c[1]):[...i],s=t;s.groups=o.map(([c,u],f)=>({name:""+c,label:r?r[f]:c,samples:u})),delete t.samples}function n2(t,e,n){const r=le(".3~r"),i=a=>`${n[a].operator=="lt"?"[":"("}${r(n[a].operand)}, ${r(n[a+1].operand)}${n[a+1].operator=="lte"?"]":")"}`,o=Yt(n.length-1).reverse();t2(t,g9(e,n.slice(1,n.length-1)),o,o.map(i))}function p9(t,e,n){n2(t,e,[{operator:"lt",operand:-1/0},...n,{operator:"lte",operand:1/0}])}function m9(t,e){const n=b9(y9(t.samples,e,[0,.25,.5,.75,1]));n.length==1&&n.push(n[0]),n2(t,e,n.map((r,i,o)=>({operator:i==o.length-1?"lte":"lt",operand:r})))}function g9(t,e){return r=>{const i=t(r);if(!(!ce(i)||isNaN(i))){for(let o=0;o<e.length;o++)if(e[o].operator=="lt"){if(i<e[o].operand)return o}else if(i<=e[o].operand)return o;return e.length}}}function y9(t,e,n){const r=Xb(t.map(e).filter(i=>ce(i)&&!isNaN(i)));return n.map(i=>cc(r,i))}function b9(t){const e=[t[0]];for(let n=1;n<t.length;n++)t[n]!=t[n-1]&&e.push(t[n]);return e}function v9(t,e){var n=t+"",r=e+"";return n<r?-1:n==r?0:1}var A9=[].forEach;function x9(t,e,n){if(typeof e!="function")throw new TypeError(e+" is not a function");var r,i=[],o=[],a=[];A9.call(t,function(c,u,f){if(r=e(c,u,f),r===void 0)return void a.push(c);if(n===void 0&&typeof r=="symbol")throw new TypeError("Can't convert symbol to string");i.push(u),o[u]=r}),n===void 0&&(n=v9),i.sort(function(c,u){return n(o[c],o[u])});var s=i.map(function(c){return t[c]}).concat(a);return s.length!=t.length&&(s.length=t.length),s}function w9(t,e){const n=i=>i.copy().range(Yt(0,i.domain().length)).unknown(-1);let r;switch(e.type){case"quantitative":r=i=>ce(i)&&!isNaN(i)?-i:-1/0;break;case"ordinal":r=n(e.scale);break;case"nominal":r=i=>i||"";break}return i=>r(t(i))}function C9(t,e){const n=new Set,r=i=>{const o=n.has(i);return n.add(i),o};return t.filter(i=>!r(e(i)))}function S9(t,e,n){const r=new Set,i=o=>(r.size<n&&r.add(o),r.has(o));return t.filter(o=>i(e(o)))}function E9(t,e,n=!1){return x9(t,e,(r,i)=>(n&&([r,i]=[i,r]),r<i?-1:r>i?1:0))}const D9={lt:(t,e)=>t<e,lte:(t,e)=>t<=e,eq:(t,e)=>t==e,gte:(t,e)=>t>=e,gt:(t,e)=>t>e};function M9(t,e,n,r){const i=D9[n];return t.filter(o=>i(e(o),r))}function r2(t,e,n,r){const i=new Set(r),o=s=>i.has(s),a=n=="remove"?s=>!o(s):o;return t.filter(s=>a(e(s)))}function T9(t,e){const n=r=>r!=null;return t.filter(r=>n(e(r)))}const i2="setSamples",o2="sortBy",a2="retainFirstOfEach",s2="retainFirstNCategories",c2="filterByNominal",u2="filterByQuantitative",l2="removeUndefined",f2="groupByNominal",d2="groupToQuartiles",h2="groupByThresholds",p2="retainMatched",ti="sampleView";function I9(){return{sampleData:void 0,groupMetadata:[],rootGroup:{name:"ROOT",label:"Root",samples:[]}}}function k9(t){const e=(n,r)=>{const i=t(n.attribute).accessor;return o=>i(o,r)};return e2({name:ti,initialState:I9(),reducers:{[i2]:(n,r)=>{const i=r.payload.samples;if(n.sampleData)throw new Error("Samples have already been set!");if(i.some(a=>a.id===void 0||a.id===null))throw new Error('The sample metadata contains missing sample ids or the "sample" column is missing!');if(new Set(i.map(a=>a.id)).size!=i.length)throw new Error("The sample metadata contains duplicate sample ids!");const o=i.map((a,s)=>({...a,indexNumber:s}));n.sampleData={ids:o.map(a=>a.id),entities:Object.fromEntries(o.map(a=>[a.id,a]))},n.rootGroup={name:"ROOT",label:"Root",samples:n.sampleData.ids}},[o2]:(n,r)=>{lr(n,i=>E9(i,w9(e(r.payload,n),t(r.payload.attribute)),!1))},[a2]:(n,r)=>{lr(n,i=>C9(i,e(r.payload,n)))},[s2]:(n,r)=>{lr(n,i=>S9(i,e(r.payload,n),r.payload.n))},[u2]:(n,r)=>{lr(n,i=>M9(i,e(r.payload,n),r.payload.operator,r.payload.operand))},[c2]:(n,r)=>{lr(n,i=>r2(i,e(r.payload,n),r.payload.remove?"remove":"retain",r.payload.values))},[l2]:(n,r)=>{lr(n,i=>T9(i,e(r.payload,n)))},[f2]:(n,r)=>{var o;const i=(o=t(r.payload.attribute).scale)==null?void 0:o.domain();Uf(n,a=>t2(a,e(r.payload,n),i)),n.groupMetadata.push({attribute:r.payload.attribute})},[d2]:(n,r)=>{Uf(n,i=>m9(i,e(r.payload,n))),n.groupMetadata.push({attribute:r.payload.attribute})},[h2]:(n,r)=>{Uf(n,i=>p9(i,e(r.payload,n),r.payload.thresholds)),n.groupMetadata.push({attribute:r.payload.attribute})},[p2]:(n,r)=>{const i=e(r.payload,n),o=[];for(const s of Gf(n))if(s.samples.length>0){const c=new Set;for(const u of s.samples)c.add(i(u));o.push(c)}const a=[];for(const s of o[0]){let c=!0;for(let u=1;u<o.length&&c;u++)c=o[u].has(s);c&&a.push(s)}lr(n,s=>r2(s,i,"retain",a))}}})}function lr(t,e){for(const n of Gf(t))n.samples=e(n.samples)}function Uf(t,e){for(const n of Gf(t))e(n)}function Gf(t){return m2(t).map(e=>je(e))}function Hf(t){return t.provenance.present[ti]}function m2(t){const e=[],n=[],r=i=>{if(e.push(i),y2(i))for(const o of i.groups)r(o);else n.push([...e]);e.pop()};return r(t.rootGroup),n}function g2(t){return"samples"in t}function y2(t){return"groups"in t}function*b2(t){if(yield[t],y2(t))for(const e of t.groups)for(const n of b2(e))yield[t,...n]}const N9=le(".4"),v2={lt:"<",lte:"\u2264",eq:"=",gte:"\u2265",gt:">"};function A2(t){return t.length>1?D`{${t.map((e,n)=>D`${n>0?", ":""}<strong>${e}</strong>`)}}`:D`<strong>${t[0]}</strong>`}function L9(t,e){if(!t.type.startsWith(ti))return;const n=t.payload,r=n.attribute&&e(n.attribute),i=r==null?void 0:r.name,o=(r==null?void 0:r.title)||D`<em>${i}</em>`,a={attributeName:i};switch(t.type.substring(ti.length+1)){case i2:return{...a,title:"The initial state",icon:v5};case o2:return{...a,title:"Sort by",provenanceTitle:D`Sort by ${o}`,icon:d5};case a2:return{...a,title:D`Retain the first sample of each <em>${i}</em>`,provenanceTitle:D`Retain the first sample of each ${o}`,icon:s1};case s2:return{...a,title:D`Retain first <strong>n</strong> categories of <em>${i}</em>...`,provenanceTitle:D`Retain first <strong>${n.n}</strong> categories of ${o}`,icon:s1};case c2:{const c=n.values,u=f=>D`${n.remove?"Remove":"Retain"} samples having ${c[0]===void 0||c[0]===null?D`undefined ${f}`:D`${f} ${c.length>1?"in":D`<span class="operator">=</span>`} ${A2(c)}`}`;return{...a,title:u(D`<em>${i}</em>`),provenanceTitle:u(o),icon:n.remove?Fl:er}}case u2:{const c=u=>D`Retain samples having ${u} <span class="operator">${v2[n.operator]}</span> <strong>${N9(n.operand)}</strong>`;return{...a,title:c(D`<em>${i}</em>`),provenanceTitle:c(o),icon:er}}case l2:return{...a,title:"Remove samples having missing attribute",provenanceTitle:D`Remove samples having missing ${o}`,icon:Fl};case f2:return{...a,title:"Group by",provenanceTitle:D`Group by ${o}`,icon:mo};case d2:return{...a,title:"Group by quartiles",provenanceTitle:D`Group by quartiles on ${o}`,icon:mo};case h2:return{...a,title:"Group by thresholds",provenanceTitle:D`Group by thresholds {${A2(n.thresholds.map(c=>`${v2[c.operator]} ${c.operand}`))}} on ${o}`,icon:mo};case p2:return{...a,title:D`Retain group-wise matched samples using <em>${i}</em>`,provenanceTitle:D`Retain group-wise matched samples using ${o}`,icon:er};default:return{...a,title:JSON.stringify(t),icon:o1}}}class B9{constructor(){this.attributeInfoSourcesByType={}}addAttributeInfoSource(e,n){this.attributeInfoSourcesByType[e]=n}getAttributeInfo(e){const n=this.attributeInfoSourcesByType[e.type];if(!n)throw new Error("Cannot find attribute info source for: "+JSON.stringify(e));const r=n(e);if(r)return r;throw new Error("Unknown attribute: "+JSON.stringify(e))}}function js(t,e,n){let r=n&&t(n);return i=>{const o=t(i);o!==r&&(e(o,r),r=o)}}function x2(t,{viewHeight:e=0,sampleHeight:n=0,groupSpacing:r=5,summaryHeight:i=0}){if(!e&&!n)throw new Error("viewHeight or sampleHeight must be provided!");const o=d=>je(d),a=t.map(d=>({path:d,sampleGroup:o(d),samples:o(d).samples})).filter(d=>d.samples.length),s=n?d=>({px:d.length*n+i,grow:0}):d=>({px:i,grow:d.length}),c=[];uo(a.map(d=>s(d.samples)),e,{spacing:r}).forEach((d,h)=>{c.push({key:a[h].path,locSize:d})});const u=[];for(const[d,h]of a.entries()){const p={grow:1},m=h.samples;uo(m.map(y=>p),Math.max(0,c[d].locSize.size-i),{offset:c[d].locSize.location+i}).forEach((y,g)=>{const{size:x,location:A}=y,C=x*.1*gg(15,22,x);y.location=A+C,y.size=x-2*C,u.push({key:m[g],locSize:y})})}function*f(){const d=[];for(const h of c){const p=h.key,m=je(p);for(;d.length<=p.length&&d.length&&p[d.length-1]!=d[d.length-1].group;)yield d.pop();for(let y=0;y<d.length;y++){const g=d[y];g.locSize.size=h.locSize.location-g.locSize.location+h.locSize.size}for(let y=d.length;y<p.length;y++)d.push({group:p[y],locSize:{...h.locSize},depth:d.length,n:0});for(const y of d)y.n+=m.samples.length}for(;d.length;)yield d.pop()}const l=[...f()].sort((d,h)=>d.depth-h.depth).map((d,h)=>({key:{index:h,group:d.group,depth:d.depth,n:d.n,attributeLabel:void 0},locSize:d.locSize}));return{samples:u,summaries:c,groups:l}}function O9(t,e){return e.find(n=>Zm(n.locSize,t))}const w2="VALUE_AT_LOCUS",C2=10;class Qf extends Kn{constructor(n,r,i,o,a){var f;super(n,r,i,o);xe(this,Ys);ad(this,"_peekState",0);this.provenance=a,this.spec=n,this.stickySummaries=(f=n.stickySummaries)!=null?f:!0,this.compositeAttributeInfoSource=new B9,this.child=r.createView(n.spec,this,"sample-facets"),this.summaryViews=new Hr({vconcat:[]},r,this,"sampleSummaries"),this.child.visit(l=>{l instanceof ye&&this.summaryViews.setChildren(l.sampleAggregateViews)}),this.childCoords=dn.ZERO,this.facetTexture=void 0,this.facetTextureData=void 0,this.peripheryView=new Hr({title:"Sidebar",resolve:{scale:{default:"independent"},axis:{default:"independent"}},hconcat:[],spacing:0},r,this,"sample-sidebar"),this.peripheryCoords=dn.ZERO,this.groupPanel=new kI(this),this.attributePanel=new ky(this),this.peripheryView.setChildren([this.groupPanel,this.attributePanel]),this.child.addInteractionEventListener("contextmenu",this._handleContextMenu.bind(this)),this.provenance.storeHelper.subscribe(js(l=>Hf(l).rootGroup,l=>{this._locations=void 0,this.groupPanel.updateGroups(),this._peekState=0,this.context.requestLayoutReflow(),this.context.animator.requestRender()})),this.provenance.storeHelper.subscribe(js(l=>Hf(l).sampleData,l=>{const d=l&&Object.values(l.entities);!d||(this.attributePanel._setSamples(d),this.facetTextureData=new Float32Array(Math.ceil(d.length*2/4)*4),this.groupPanel.updateGroups())})),this.compositeAttributeInfoSource.addAttributeInfoSource(w2,l=>{var C,v;const d=l.specifier,h=this.findDescendantByName(d.view);let p;if(ce(d.locus))p=d.locus;else{const b=this.getScaleResolution("x").getGenome();if(b)p=b.toContinuous(d.locus.chrom,d.locus.pos);else throw new Error("Encountered a complex locus but no genome is available!")}const m=b=>{var w;return(w=h.mark.findDatumAt(b,p))==null?void 0:w[d.field]},[y,g]=Object.entries(h.getEncoding()).find(([b,w])=>"field"in w&&w.field==d.field),x=y?(C=h.getScaleResolution(y))==null?void 0:C.getScale():void 0;return{name:d.field,attribute:l,title:D`<em class="attribute">${d.field}</em> <span class="viewTitle">(${(v=h.getTitleText())!=null?v:h.name})</span> at <span class="locus">${S2(d.locus)}</span>`,accessor:m,type:"type"in g?g.type:void 0,scale:x}}),this._addBroadcastHandler("dataLoaded",()=>this.extractSamplesFromData()),this._addBroadcastHandler("layout",()=>{this._locations=void 0}),this._scrollOffset=0,this._scrollableHeight=0,this._peekState=0,this._lastMouseY=-1,this.addInteractionEventListener("mousemove",(l,d)=>{this._lastMouseY=d.point.y-this.childCoords.y}),this.addInteractionEventListener("wheel",(l,d)=>{const h=d.uiEvent;this._peekState&&!h.ctrlKey&&(this._scrollOffset=ll(this._scrollOffset+h.deltaY,0,this._scrollableHeight-this.childCoords.height),this.groupPanel.updateRange(),this.context.animator.requestRender(),d.uiEvent={type:h.type,deltaX:h.deltaX,preventDefault:h.preventDefault.bind(h)})},!0),r.addKeyboardListener("keydown",l=>{l.code=="KeyE"&&!l.repeat&&this.togglePeek()}),r.addKeyboardListener("keyup",l=>{l.code=="KeyE"&&this.togglePeek(!1)});const s=l=>this.compositeAttributeInfoSource.getAttributeInfo(l),c=k9(s);this.provenance.addReducer(c.name,c.reducer),this.provenance.addActionInfoSource(l=>L9(l,s)),this.actions=c.actions;const u=JI(l=>{var d;return(d=l.sampleData)==null?void 0:d.entities},l=>l&&Object.values(l));this.getSamples=()=>u(this.sampleHierarchy),this.spec.samples.data&&this.loadSamples()}getOverhang(){let n=this.peripheryView.isVisible()?this.peripheryView.getSize().width.px:0;return n&&(n+=C2),new Je(0,0,0,n)}*[Symbol.iterator](){yield this.child,yield this.peripheryView}replaceChild(n,r){const i=r;if(n===this.child)this.child=i;else throw new Error("Not my child!")}loadSamples(){if(!this.spec.samples.data)throw new Error("SampleView has no explicit sample metadata specified! Cannot load anything.");const{dataSource:n,collector:r}=T8(Pg(this.spec.samples.data,this.getBaseUrl()),new P9);r.observers.push(o=>{const a=o.getData();this.provenance.storeHelper.dispatch(this.actions.setSamples({samples:a}))});const i="samples "+this.getPathString();this.context.dataFlow.addDataSource(n,i)}extractSamplesFromData(){if(this.getSamples())return;const n=this.getScaleResolution("sample");if(n){const r=n.getDataDomain().map((i,o)=>({id:i,displayName:i,indexNumber:o,attributes:[]}));this.provenance.storeHelper.dispatch(this.actions.setSamples({samples:r}))}else throw new Error("No explicit sample data nor sample channels found!")}get sampleHierarchy(){return this.provenance.getPresentState()[ti]}getLocations(){var n,r,i,o;if(!this._locations){if(!((n=this.childCoords)!=null&&n.height))return;const a=this.sampleHierarchy,s=m2(a),c=[null,...a.groupMetadata],u=(o=((r=this.summaryViews)==null?void 0:r.isVisible())&&((i=this.summaryViews)==null?void 0:i.getSize().height.px))!=null?o:0,f=x2(s,{viewHeight:this.childCoords.height,groupSpacing:5,summaryHeight:u}),l=x2(s,{sampleHeight:35,groupSpacing:15,summaryHeight:u}),d=()=>-this._scrollOffset,h=()=>this._peekState;this._scrollableLocations=l,this._scrollableHeight=l.summaries.map(g=>g.locSize.location+g.locSize.size).reduce((g,x)=>Math.max(g,x),0);const p=(g,x)=>{const A=[];for(let C=0;C<g.length;C++){const v=g[C].key;A.push({key:v,locSize:PD(g[C].locSize,FD(x[C].locSize,d),h)})}return A},m=p(f.groups,l.groups),y=document.createElement("div");m.forEach(g=>{if(g.key.depth==0)return;const x=c[g.key.depth].attribute,A=this.compositeAttributeInfoSource.getAttributeInfo(x).title;A?te(A)?g.key.attributeLabel=A:(Be(A,y),g.key.attributeLabel=y.textContent.replace(/\s+/g," ").trim()):g.key.attributeLabel="unknown"}),this._locations={samples:p(f.samples,l.samples),summaries:p(f.summaries,l.summaries),groups:m}}return this._locations}getSampleAt(n){const r=O9(n,this.getLocations().samples);if(r)return this.sampleHierarchy.sampleData.entities[r.key]}getSummaryAt(n){const r=this.getLocations().summaries,i=r.findIndex(o=>Zm(o.locSize,n));return i>=0?{index:i,location:r[i]}:void 0}_clipBySummary(n){if(this.stickySummaries&&this.summaryViews.childCount){const r=this.summaryViews.getSize().height.px;return n.modify({y:()=>n.y+r,height:()=>n.height-r})}}renderChild(n,r,i={}){const o=1/r.height,a=()=>o,s=this._clipBySummary(r);for(const c of this.getLocations().samples)this.child.render(n,r,{...i,sampleFacetRenderingOptions:{locSize:zD(c.locSize,a)},facetId:[c.key],clipRect:s})}renderSummaries(n,r,i={}){i={...i,clipRect:r};const o=this.summaryViews.getSize().height.px;for(const[a,s]of this.getLocations().summaries.entries()){const c=()=>{const u=s.locSize.location;let f=r.y+u;return this.stickySummaries?f+ll(-u,0,s.locSize.size-o):f};this.summaryViews.render(n,r.modify({y:c,height:o}),{...i,facetId:[a]})}}render(n,r,i={}){if(!this.isVisible())return;n.pushView(this,r);const o=uo([this.peripheryView.isVisible()?this.peripheryView.getSize().width:{px:0},{grow:1}],r.width,{spacing:C2}),a=s=>r.modify({x:s.location+r.x,width:s.size});this.peripheryCoords=a(o[0]),this.childCoords=a(o[1]),this.peripheryView.render(n,this.peripheryCoords,i),this.renderChild(n,this.childCoords,i),this.renderSummaries(n,this.childCoords,i),n.popView(this)}onBeforeRender(){this._updateFacetTexture()}_updateFacetTexture(){var o;const n=this.facetTextureData;n.fill(0);const r=(o=this.sampleHierarchy.sampleData)==null?void 0:o.entities;if(r){const a=this.getLocations().samples,s=this.childCoords.height;for(const c of a){const u=r[c.key].indexNumber;n[u*2+0]=c.locSize.location/s,n[u*2+1]=c.locSize.size/s}}const i=this.context.glHelper.gl;this.facetTexture=so(i,{internalFormat:i.RG32F,format:i.RG,height:1},n,this.facetTexture)}togglePeek(n){var i;if(this._peekState>0&&this._peekState<1||n!==void 0&&n==!!this._peekState)return;const r={requestAnimationFrame:o=>this.context.animator.requestTransition(o),onUpdate:o=>{this._peekState=Math.pow(o,2),this.groupPanel.updateRange(),this.context.animator.requestRender()},from:this._peekState};if(this._peekState==0){const o=this._lastMouseY,a=(i=this.getSampleAt(o))==null?void 0:i.id;let s;if(a)s=(u=>u.location+u.size/2)(this._scrollableLocations.samples.find(u=>u.key==a).locSize);else{const c=this.getSummaryAt(o);c&&(s=this._scrollableLocations.summaries[c.index].locSize.location-(c.location.locSize.location-o))}s?this._scrollOffset=s-o:this._scrollOffset=(this._scrollableHeight-this.childCoords.height)/2,this._scrollableHeight>this.childCoords.height?cs({...r,to:1,duration:500,easingFunction:AM}):cs({...r,from:0,to:1,duration:300,easingFunction:u=>(1-Math.pow(u*2-1,2))*.5})}else cs({...r,to:0,duration:400,easingFunction:bM})}makePeekMenuItem(){return{...this._peekState==0?{label:"Open closeup",callback:()=>this.togglePeek(!0)}:{label:"Close closeup",callback:()=>this.togglePeek(!1)},icon:U5,shortcut:"E"}}_handleContextMenu(n,r){var l;const i=r.uiEvent,o=this.childCoords.normalizePoint(r.point.x,r.point.y).x,a=this.getScaleResolution("x").invertToComplex(o),s=Qg([...this.getAncestors()].at(-1)),c=B8(this.child).filter(d=>!["sample","x","x2"].includes(d.channel)).filter(d=>["rect","rule"].includes(d.view.getMarkType())).filter(d=>s.has(d.view.name));let u=[this.makePeekMenuItem(),Af,{label:`Locus: ${S2(a)}`,type:"header"},Af],f="";for(const[d,h]of c.entries()){const p={view:h.view.name,field:h.field,locus:a},m=this.compositeAttributeInfoSource.getAttributeInfo({type:w2,specifier:p}),y=(l=h.view.getTitleText())!=null?l:h.view.spec.name;y!=f&&(d>0&&u.push({type:"divider"}),u.push({label:y,type:"header"}),f=y),u.push({label:h.field,submenu:df(null,m,void 0,this)})}Ty({items:u},i)}getSampleFacetTexture(){return this.facetTexture}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0),!n.stopped&&(this.childCoords.containsPoint(n.point.x,n.point.y)&&(this.child.propagateInteractionEvent(n),Dg(n,this.childCoords,r=>be(this,Ys,nb).call(this,this.childCoords,this.child,r),this.context.getCurrentHover())),this.peripheryCoords.containsPoint(n.point.x,n.point.y)&&this.peripheryView.propagateInteractionEvent(n),!n.stopped&&this.handleInteractionEvent(void 0,n,!1))}getDefaultResolution(n,r){switch(n){case"x":case"sample":return"shared";default:return"independent"}}}Ys=new WeakSet,nb=function(n,r,i){const o=this.child.getScaleResolution("x");if(!o||!o.isZoomable())return;const a=n.normalizePoint(i.x,i.y),s=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta);o.zoom(2**i.zDelta,a.x,s.x-a.x),this.context.animator.requestRender()};function S2(t){return!ce(t)&&"chrom"in t?lM(t):""+t}class P9 extends se{constructor(){super(),this.reset()}reset(){this._index=0}handle(e){this._propagate({id:e.sample,displayName:e.displayName||e.sample,indexNumber:this._index++,attributes:F9(e)})}}function F9(t){const e=Object.assign({},t);return delete e.sample,delete e.displayName,e}function z9(t){return"samples"in t&&ze(t.samples)&&"spec"in t&&ze(t.spec)}const R9=(t,e)=>e.some(n=>t instanceof n);let E2,D2;function j9(){return E2||(E2=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function U9(){return D2||(D2=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const M2=new WeakMap,Vf=new WeakMap,T2=new WeakMap,Yf=new WeakMap,_f=new WeakMap;function G9(t){const e=new Promise((n,r)=>{const i=()=>{t.removeEventListener("success",o),t.removeEventListener("error",a)},o=()=>{n(vn(t.result)),i()},a=()=>{r(t.error),i()};t.addEventListener("success",o),t.addEventListener("error",a)});return e.then(n=>{n instanceof IDBCursor&&M2.set(n,t)}).catch(()=>{}),_f.set(e,t),e}function H9(t){if(Vf.has(t))return;const e=new Promise((n,r)=>{const i=()=>{t.removeEventListener("complete",o),t.removeEventListener("error",a),t.removeEventListener("abort",a)},o=()=>{n(),i()},a=()=>{r(t.error||new DOMException("AbortError","AbortError")),i()};t.addEventListener("complete",o),t.addEventListener("error",a),t.addEventListener("abort",a)});Vf.set(t,e)}let Wf={get(t,e,n){if(t instanceof IDBTransaction){if(e==="done")return Vf.get(t);if(e==="objectStoreNames")return t.objectStoreNames||T2.get(t);if(e==="store")return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return vn(t[e])},set(t,e,n){return t[e]=n,!0},has(t,e){return t instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in t}};function Q9(t){Wf=t(Wf)}function V9(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...n){const r=t.call(Xf(this),e,...n);return T2.set(r,e.sort?e.sort():[e]),vn(r)}:U9().includes(t)?function(...e){return t.apply(Xf(this),e),vn(M2.get(this))}:function(...e){return vn(t.apply(Xf(this),e))}}function Y9(t){return typeof t=="function"?V9(t):(t instanceof IDBTransaction&&H9(t),R9(t,j9())?new Proxy(t,Wf):t)}function vn(t){if(t instanceof IDBRequest)return G9(t);if(Yf.has(t))return Yf.get(t);const e=Y9(t);return e!==t&&(Yf.set(t,e),_f.set(e,t)),e}const Xf=t=>_f.get(t);function _9(t,e,{blocked:n,upgrade:r,blocking:i,terminated:o}={}){const a=indexedDB.open(t,e),s=vn(a);return r&&a.addEventListener("upgradeneeded",c=>{r(vn(a.result),c.oldVersion,c.newVersion,vn(a.transaction))}),n&&a.addEventListener("blocked",()=>n()),s.then(c=>{o&&c.addEventListener("close",()=>o()),i&&c.addEventListener("versionchange",()=>i())}).catch(()=>{}),s}const W9=["get","getKey","getAll","getAllKeys","count"],X9=["put","add","delete","clear"],Zf=new Map;function I2(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(Zf.get(e))return Zf.get(e);const n=e.replace(/FromIndex$/,""),r=e!==n,i=X9.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||W9.includes(n)))return;const o=async function(a,...s){const c=this.transaction(a,i?"readwrite":"readonly");let u=c.store;return r&&(u=u.index(s.shift())),(await Promise.all([u[n](...s),i&&c.done]))[0]};return Zf.set(e,o),o}Q9(t=>({...t,get:(e,n,r)=>I2(e,n)||t.get(e,n,r),has:(e,n)=>!!I2(e,n)||t.has(e,n)}));class k2{isReadonly(){return!0}async put(e,n){this._checkReadonly()}async delete(e){this._checkReadonly()}async getNames(){return[]}async get(e){}_checkReadonly(){if(this.isReadonly())throw new Error("This bookmark")}}const ko="bookmarks";class Z9 extends k2{constructor(e){super(),this.specId=e,this._db=void 0}async _getDB(){if(!this._db){const e=`GenomeSpy: ${this.specId}`;this._db=_9(e,1,{upgrade(n,r,i,o){n.createObjectStore(ko,{keyPath:"name"})},blocked(){},blocking(){},terminated(){}})}return this._db}isReadonly(){return!1}async put(e,n){const i=(await this._getDB()).transaction(ko,"readwrite");try{n?(await i.store.delete(n),await i.store.put(e)):await i.store.put(e),await i.done}catch(o){throw i.abort(),o}}async delete(e){(await this._getDB()).delete(ko,e)}async getNames(){return(await this._getDB()).getAllKeys(ko)}async get(e){return(await this._getDB()).get(ko,e)}}/**
2139
2139
  * @license
2140
2140
  * Copyright 2020 Google LLC
2141
2141
  * SPDX-License-Identifier: BSD-3-Clause
2142
- */const _9=t=>t===null||typeof t!="object"&&typeof t!="function",D2=t=>t.strings===void 0,W9={},X9=(t,e=W9)=>t._$AH=e;/**
2142
+ */const q9=t=>t===null||typeof t!="object"&&typeof t!="function",N2=t=>t.strings===void 0,K9={},J9=(t,e=K9)=>t._$AH=e;/**
2143
2143
  * @license
2144
2144
  * Copyright 2017 Google LLC
2145
2145
  * SPDX-License-Identifier: BSD-3-Clause
2146
- */const ko=(t,e)=>{var n,r;const i=t._$AN;if(i===void 0)return!1;for(const o of i)(r=(n=o)._$AO)===null||r===void 0||r.call(n,e,!1),ko(o,e);return!0},Rs=t=>{let e,n;do{if((e=t._$AM)===void 0)break;n=e._$AN,n.delete(t),t=e}while((n==null?void 0:n.size)===0)},M2=t=>{for(let e;e=t._$AM;t=e){let n=e._$AN;if(n===void 0)e._$AN=n=new Set;else if(n.has(t))break;n.add(t),K9(e)}};function Z9(t){this._$AN!==void 0?(Rs(this),this._$AM=t,M2(this)):this._$AM=t}function q9(t,e=!1,n=0){const r=this._$AH,i=this._$AN;if(i!==void 0&&i.size!==0)if(e)if(Array.isArray(r))for(let o=n;o<r.length;o++)ko(r[o],!1),Rs(r[o]);else r!=null&&(ko(r,!1),Rs(r));else ko(this,t)}const K9=t=>{var e,n,r,i;t.type==Ot.CHILD&&((e=(r=t)._$AP)!==null&&e!==void 0||(r._$AP=q9),(n=(i=t)._$AQ)!==null&&n!==void 0||(i._$AQ=Z9))};class T2 extends ho{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,n,r){super._$AT(e,n,r),M2(this),this.isConnected=e._$AU}_$AO(e,n=!0){var r,i;e!==this.isConnected&&(this.isConnected=e,e?(r=this.reconnected)===null||r===void 0||r.call(this):(i=this.disconnected)===null||i===void 0||i.call(this)),n&&(ko(this,e),Rs(this))}setValue(e){if(D2(this._$Ct))this._$Ct._$AI(e,this);else{const n=[...this._$Ct._$AH];n[this._$Ci]=e,this._$Ct._$AI(n,this,0)}}disconnected(){}reconnected(){}}/**
2146
+ */const No=(t,e)=>{var n,r;const i=t._$AN;if(i===void 0)return!1;for(const o of i)(r=(n=o)._$AO)===null||r===void 0||r.call(n,e,!1),No(o,e);return!0},Us=t=>{let e,n;do{if((e=t._$AM)===void 0)break;n=e._$AN,n.delete(t),t=e}while((n==null?void 0:n.size)===0)},L2=t=>{for(let e;e=t._$AM;t=e){let n=e._$AN;if(n===void 0)e._$AN=n=new Set;else if(n.has(t))break;n.add(t),tk(e)}};function $9(t){this._$AN!==void 0?(Us(this),this._$AM=t,L2(this)):this._$AM=t}function ek(t,e=!1,n=0){const r=this._$AH,i=this._$AN;if(i!==void 0&&i.size!==0)if(e)if(Array.isArray(r))for(let o=n;o<r.length;o++)No(r[o],!1),Us(r[o]);else r!=null&&(No(r,!1),Us(r));else No(this,t)}const tk=t=>{var e,n,r,i;t.type==Ot.CHILD&&((e=(r=t)._$AP)!==null&&e!==void 0||(r._$AP=ek),(n=(i=t)._$AQ)!==null&&n!==void 0||(i._$AQ=$9))};class B2 extends po{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,n,r){super._$AT(e,n,r),L2(this),this.isConnected=e._$AU}_$AO(e,n=!0){var r,i;e!==this.isConnected&&(this.isConnected=e,e?(r=this.reconnected)===null||r===void 0||r.call(this):(i=this.disconnected)===null||i===void 0||i.call(this)),n&&(No(this,e),Us(this))}setValue(e){if(N2(this._$Ct))this._$Ct._$AI(e,this);else{const n=[...this._$Ct._$AH];n[this._$Ci]=e,this._$Ct._$AI(n,this,0)}}disconnected(){}reconnected(){}}/**
2147
2147
  * @license
2148
2148
  * Copyright 2020 Google LLC
2149
2149
  * SPDX-License-Identifier: BSD-3-Clause
2150
- */const I2=()=>new J9;class J9{}const _f=new WeakMap,k2=Yr(class extends T2{render(t){return R}update(t,[e]){var n;const r=e!==this.U;return r&&this.U!==void 0&&this.ot(void 0),(r||this.rt!==this.lt)&&(this.U=e,this.ht=(n=t.options)===null||n===void 0?void 0:n.host,this.ot(this.lt=t.element)),R}ot(t){var e;if(typeof this.U=="function"){const n=(e=this.ht)!==null&&e!==void 0?e:globalThis;let r=_f.get(n);r===void 0&&(r=new WeakMap,_f.set(n,r)),r.get(this.U)!==void 0&&this.U.call(this.ht,void 0),r.set(this.U,t),t!==void 0&&this.U.call(this.ht,t)}else this.U.value=t}get rt(){var t,e,n;return typeof this.U=="function"?(e=_f.get((t=this.ht)!==null&&t!==void 0?t:globalThis))===null||e===void 0?void 0:e.get(this.U):(n=this.U)===null||n===void 0?void 0:n.value}disconnected(){this.rt===this.lt&&this.ot(void 0)}reconnected(){this.ot(this.lt)}});/**
2150
+ */const O2=()=>new nk;class nk{}const qf=new WeakMap,P2=Yr(class extends B2{render(t){return R}update(t,[e]){var n;const r=e!==this.U;return r&&this.U!==void 0&&this.ot(void 0),(r||this.rt!==this.lt)&&(this.U=e,this.ht=(n=t.options)===null||n===void 0?void 0:n.host,this.ot(this.lt=t.element)),R}ot(t){var e;if(typeof this.U=="function"){const n=(e=this.ht)!==null&&e!==void 0?e:globalThis;let r=qf.get(n);r===void 0&&(r=new WeakMap,qf.set(n,r)),r.get(this.U)!==void 0&&this.U.call(this.ht,void 0),r.set(this.U,t),t!==void 0&&this.U.call(this.ht,t)}else this.U.value=t}get rt(){var t,e,n;return typeof this.U=="function"?(e=qf.get((t=this.ht)!==null&&t!==void 0?t:globalThis))===null||e===void 0?void 0:e.get(this.U):(n=this.U)===null||n===void 0?void 0:n.value}disconnected(){this.rt===this.lt&&this.ot(void 0)}reconnected(){this.ot(this.lt)}});/**
2151
2151
  * @license
2152
2152
  * Copyright 2018 Google LLC
2153
2153
  * SPDX-License-Identifier: BSD-3-Clause
2154
- */const $9={},ek=Yr(class extends ho{constructor(){super(...arguments),this.nt=$9}render(t,e){return e()}update(t,[e,n]){if(Array.isArray(e)){if(Array.isArray(this.nt)&&this.nt.length===e.length&&e.every((r,i)=>r===this.nt[i]))return xe}else if(this.nt===e)return xe;return this.nt=Array.isArray(e)?Array.from(e):e,this.render(e,n)}});class tk extends Bt{constructor(){super(),this.inputRef=I2(),this.genomeSpy=void 0,this.getDefaultValue=()=>"",this._keyListener=this._onKeyDown.bind(this),this._documentClickListener=e=>{var n;e.target!==this._inputField&&((n=this._inputField)==null||n.blur())},this._focused=!1}get _inputField(){return this.inputRef.value}static get properties(){return{genomeSpy:{type:Object}}}connectedCallback(){super.connectedCallback(),this._initializeGenome(),document.addEventListener("keydown",this._keyListener),document.addEventListener("click",this._documentClickListener)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("keydown",this._keyListener),document.removeEventListener("click",this._documentClickListener)}createRenderRoot(){return this}_onKeyDown(e){switch(e.code){case"KeyF":e.metaKey||e.altKey||e.ctrlKey||(e.preventDefault(),this.inputRef.value.focus());break}}_initializeGenome(){const e=N2(this.genomeSpy.viewRoot);e&&(this._genomeResolution=e,this._genome=this.genomeSpy.genomeStore.getGenome(),this.getDefaultValue=()=>this._genome.formatInterval(e.getDomain()),e.addEventListener("domain",cs(()=>this.requestUpdate(),60,!1)))}async searchViews(e){var r,i;const n=new Intl.Collator("en",{usage:"search",sensitivity:"base"});for(const o of this.genomeSpy.getSearchableViews()){const a=o.getAccessor("search"),s=o.getAccessor("x"),c=o.getAccessor("x2"),u=o.getScaleResolution("x");if(!(!s||!c||!(u!=null&&u.isZoomable()))){for(const f of(i=(r=o.getCollector())==null?void 0:r.getData())!=null?i:[])if(n.compare(a(f),e)===0){const l=Ws([s(f),c(f)],null,1.2);return await u.zoomTo(l),!0}}}return!1}async search(e){await(async()=>{if(this._genomeResolution&&this._genome){const r=this._genome.parseInterval(e);if(r){this._genomeResolution.zoomTo(r);return}if(await this.searchViews(e))return;this.genomeSpy.viewRoot.visit(i=>{i instanceof Ey&&i.handleVerboseCommand(e)})}})(),this._inputField.value=this.getDefaultValue(),this.requestUpdate()}_onSearchHelpClicked(e){const n=e.target;n.tagName=="LI"&&this._doExampleSearch(n.innerText)}_onSearchFocused(e){const n=e.target;switch(e.type){case"focus":this._focused=!0,n.select();break;case"blur":this._focused=!1;break}}_onSearchKeyDown(e){const n=e.target;e.code=="Enter"?(e.preventDefault(),this.search(n.value).then(()=>{n.focus(),n.select()}).catch(r=>{console.log(r),alert(r)})):e.code=="Escape"?n.blur():e.stopPropagation()}_doExampleSearch(e){nk(e,this._inputField).then(()=>{this._inputField.blur(),this.search(e)})}_getSearchHelp(){var n,r;const e=[];e.push(D`<p>Focus to a specific range. Examples:</p><ul><li>chr8</li><li>chr8:21,445,873</li><li>chr8:21,445,873-24,623,697</li><li>chr4:166,014,727-chr15:23,731,397</li></ul>`);for(const i of((n=this.genomeSpy)==null?void 0:n.getSearchableViews())||[]){const o=(r=i.getTitleText())!=null?r:i.spec.name,a=i.getAccessor("search"),s=a.fields.join(", "),c=Qm(3,i.getCollector().getData(),a);e.push(D`<p>Search <em>${o}</em> (${s}). Examples:</p><ul>${c.map(u=>D`<li>${u}</li>`)}</ul>`)}return D`<div class="search-help" @click="${this._onSearchHelpClicked}">${e}</div>`}updated(e){this._focused&&this._inputField.select()}render(){return D`<div class="search"><input type="text" class="search-input" .value="${this.getDefaultValue()}" @mousedown="${e=>{this._focused||(this._inputField.focus(),e.preventDefault(),e.stopPropagation())}}" @keydown="${this._onSearchKeyDown.bind(this)}" @focus="${this._onSearchFocused}" @blur="${this._onSearchFocused}" ${k2(this.inputRef)}> ${ek([123],()=>this._getSearchHelp())}</div>`}}customElements.define("genome-spy-search-field",tk);function nk(t,e){return new Promise(n=>{let r=0;const i=700/t.length+30;function o(){e.value=t.substring(0,r),r>=t.length?setTimeout(n,500):(r++,setTimeout(o,Math.random()*i*2))}o()})}function N2(t){let e;return t.visit(n=>{for(const r of["x","y"]){const i=n.resolutions.scale[r];if(i&&i.type=="locus"&&i.isZoomable())return e=i,qn}}),e}const L2="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSI+PHBhdGggZD0iTTQuNyAyMS4ycy40IDIuMyAxLjMgMy42QzcgMjYgOS44IDI4IDkuOCAyOHMzLjQtMi42IDYuNC04LjVjMCAwIDEgLjEgMS45LS40LjktLjYuOC0uNCAxLTEuMiAwIDAgMi45LjUgNi42IDAgMi4xLS4zIDQuMy0xIDYuMi0yLjUgMCAwLTEuMS0xLjctMi41LTUuMS0uNS0xLjMtMi0xLjgtNC42LTQuNmwtOC4yIDguNi0xMS45IDYuOXoiIGZpbGwtb3BhY2l0eT0iLjEiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSIjN2ZiYmRkIi8+PHBhdGggZD0iTTEyLjQgMTUuNWMtLjctLjUtMi40LS44LTQuNC0uNC0yIC40LTQgMS4zLTQuOCAxLjgtLjUuMy0xLjIgMS0xLjIgMS40IDAgLjcuMyAxLjguOCAyLjQuMy4zLjcuNSAxLjQuNi44IDAgMi41LTEuNCAzLjUtMiAxLS42IDEuNi0uOCAyLjctMS4ybC0yLjkgMi40Yy0xLjMgMS4yLTIuMiAxLjUtMi40IDIuMyAwIC41IDAgMS40LjUgMS44LjQuNS42LjggMS42LjguNiAwIDEgMCAyLjYtMS41LjktLjkgMi4zLTMgMi43LTMuNy42LTEuMSAxLTIuMi43LTMtLjItMS0uNC0xLjQtLjgtMS43ek0xNy40IDE0LjJjLS4zLS41LS45LTEuMi0uMi0yLjVsMS45LTNjLjUtLjggMi0yLjMgMi42LTIuNi42LS40IDEuNS0uNiAyLS4yLjYuNCAxIDEgMS4zIDEuNS40LjYuNyAxLjMuMiAyLS43IDEtMS42LjktMi44IDEuNy0xLjIuOC0xLjkgMS4yLTIuNSAxLjlsMy44LTEuOGMxLjMtLjYgMi43LTEuMSAzLjQtLjcuOC41LjguNyAxIDEuNC4zIDEtLjIgMS45LS44IDIuNC0uNS42LTEuNS45LTIuNiAxLjItMS40LjQtNC41IDEtNS44LjUtMS4zLS41LTEuMy0xLjQtMS41LTEuOHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iLjUiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0iIzdmYmJkZCIvPjxwYXRoIGQ9Ik0xMy44IDE1LjNjLjkuOC42IDIgMS40IDEuOCAxLS4yIDEuNC0uOCAxLjMtMS41IDAtLjcgMC0uOC0uNC0xLjYtLjMtLjctMS0xLjEtMi0uNS0uNy41LTEuNCAxLjMtMS40IDEuM3MuMi0uMyAxLjEuNXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9Ii41Ii8+PC9zdmc+";/**
2154
+ */const rk={},ik=Yr(class extends po{constructor(){super(...arguments),this.nt=rk}render(t,e){return e()}update(t,[e,n]){if(Array.isArray(e)){if(Array.isArray(this.nt)&&this.nt.length===e.length&&e.every((r,i)=>r===this.nt[i]))return we}else if(this.nt===e)return we;return this.nt=Array.isArray(e)?Array.from(e):e,this.render(e,n)}});class ok extends Bt{constructor(){super(),this.inputRef=O2(),this.genomeSpy=void 0,this.getDefaultValue=()=>"",this._keyListener=this._onKeyDown.bind(this),this._documentClickListener=e=>{var n;e.target!==this._inputField&&((n=this._inputField)==null||n.blur())},this._focused=!1}get _inputField(){return this.inputRef.value}static get properties(){return{genomeSpy:{type:Object}}}connectedCallback(){super.connectedCallback(),this._initializeGenome(),document.addEventListener("keydown",this._keyListener),document.addEventListener("click",this._documentClickListener)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("keydown",this._keyListener),document.removeEventListener("click",this._documentClickListener)}createRenderRoot(){return this}_onKeyDown(e){switch(e.code){case"KeyF":e.metaKey||e.altKey||e.ctrlKey||(e.preventDefault(),this.inputRef.value.focus());break}}_initializeGenome(){const e=F2(this.genomeSpy.viewRoot);e&&(this._genomeResolution=e,this._genome=this.genomeSpy.genomeStore.getGenome(),this.getDefaultValue=()=>this._genome.formatInterval(e.getDomain()),e.addEventListener("domain",us(()=>this.requestUpdate(),60,!1)))}async searchViews(e){var r,i;const n=new Intl.Collator("en",{usage:"search",sensitivity:"base"});for(const o of this.genomeSpy.getSearchableViews()){const a=o.getAccessor("search"),s=o.getAccessor("x"),c=o.getAccessor("x2"),u=o.getScaleResolution("x");if(!(!s||!c||!(u!=null&&u.isZoomable()))){for(const f of(i=(r=o.getCollector())==null?void 0:r.getData())!=null?i:[])if(n.compare(a(f),e)===0){const l=Zs([s(f),c(f)],null,1.2);return await u.zoomTo(l),!0}}}return!1}async search(e){await(async()=>{if(this._genomeResolution&&this._genome){const r=this._genome.parseInterval(e);if(r){this._genomeResolution.zoomTo(r);return}if(await this.searchViews(e))return;this.genomeSpy.viewRoot.visit(i=>{i instanceof ky&&i.handleVerboseCommand(e)})}})(),this._inputField.value=this.getDefaultValue(),this.requestUpdate()}_onSearchHelpClicked(e){const n=e.target;n.tagName=="LI"&&this._doExampleSearch(n.innerText)}_onSearchFocused(e){const n=e.target;switch(e.type){case"focus":this._focused=!0,n.select();break;case"blur":this._focused=!1;break}}_onSearchKeyDown(e){const n=e.target;e.code=="Enter"?(e.preventDefault(),this.search(n.value).then(()=>{n.focus(),n.select()}).catch(r=>{console.log(r),alert(r)})):e.code=="Escape"?n.blur():e.stopPropagation()}_doExampleSearch(e){ak(e,this._inputField).then(()=>{this._inputField.blur(),this.search(e)})}_getSearchHelp(){var n,r;const e=[];e.push(D`<p>Focus to a specific range. Examples:</p><ul><li>chr8</li><li>chr8:21,445,873</li><li>chr8:21,445,873-24,623,697</li><li>chr4:166,014,727-chr15:23,731,397</li></ul>`);for(const i of((n=this.genomeSpy)==null?void 0:n.getSearchableViews())||[]){const o=(r=i.getTitleText())!=null?r:i.spec.name,a=i.getAccessor("search"),s=a.fields.join(", "),c=Xm(3,i.getCollector().getData(),a);e.push(D`<p>Search <em>${o}</em> (${s}). Examples:</p><ul>${c.map(u=>D`<li>${u}</li>`)}</ul>`)}return D`<div class="search-help" @click="${this._onSearchHelpClicked}">${e}</div>`}updated(e){this._focused&&this._inputField.select()}render(){return D`<div class="search"><input type="text" class="search-input" .value="${this.getDefaultValue()}" @mousedown="${e=>{this._focused||(this._inputField.focus(),e.preventDefault(),e.stopPropagation())}}" @keydown="${this._onSearchKeyDown.bind(this)}" @focus="${this._onSearchFocused}" @blur="${this._onSearchFocused}" ${P2(this.inputRef)}> ${ik([123],()=>this._getSearchHelp())}</div>`}}customElements.define("genome-spy-search-field",ok);function ak(t,e){return new Promise(n=>{let r=0;const i=700/t.length+30;function o(){e.value=t.substring(0,r),r>=t.length?setTimeout(n,500):(r++,setTimeout(o,Math.random()*i*2))}o()})}function F2(t){let e;return t.visit(n=>{for(const r of["x","y"]){const i=n.resolutions.scale[r];if(i&&i.type=="locus"&&i.isZoomable())return e=i,qn}}),e}const z2="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSI+PHBhdGggZD0iTTQuNyAyMS4ycy40IDIuMyAxLjMgMy42QzcgMjYgOS44IDI4IDkuOCAyOHMzLjQtMi42IDYuNC04LjVjMCAwIDEgLjEgMS45LS40LjktLjYuOC0uNCAxLTEuMiAwIDAgMi45LjUgNi42IDAgMi4xLS4zIDQuMy0xIDYuMi0yLjUgMCAwLTEuMS0xLjctMi41LTUuMS0uNS0xLjMtMi0xLjgtNC42LTQuNmwtOC4yIDguNi0xMS45IDYuOXoiIGZpbGwtb3BhY2l0eT0iLjEiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSIjN2ZiYmRkIi8+PHBhdGggZD0iTTEyLjQgMTUuNWMtLjctLjUtMi40LS44LTQuNC0uNC0yIC40LTQgMS4zLTQuOCAxLjgtLjUuMy0xLjIgMS0xLjIgMS40IDAgLjcuMyAxLjguOCAyLjQuMy4zLjcuNSAxLjQuNi44IDAgMi41LTEuNCAzLjUtMiAxLS42IDEuNi0uOCAyLjctMS4ybC0yLjkgMi40Yy0xLjMgMS4yLTIuMiAxLjUtMi40IDIuMyAwIC41IDAgMS40LjUgMS44LjQuNS42LjggMS42LjguNiAwIDEgMCAyLjYtMS41LjktLjkgMi4zLTMgMi43LTMuNy42LTEuMSAxLTIuMi43LTMtLjItMS0uNC0xLjQtLjgtMS43ek0xNy40IDE0LjJjLS4zLS41LS45LTEuMi0uMi0yLjVsMS45LTNjLjUtLjggMi0yLjMgMi42LTIuNi42LS40IDEuNS0uNiAyLS4yLjYuNCAxIDEgMS4zIDEuNS40LjYuNyAxLjMuMiAyLS43IDEtMS42LjktMi44IDEuNy0xLjIuOC0xLjkgMS4yLTIuNSAxLjlsMy44LTEuOGMxLjMtLjYgMi43LTEuMSAzLjQtLjcuOC41LjguNyAxIDEuNC4zIDEtLjIgMS45LS44IDIuNC0uNS42LTEuNS45LTIuNiAxLjItMS40LjQtNC41IDEtNS44LjUtMS4zLS41LTEuMy0xLjQtMS41LTEuOHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iLjUiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0iIzdmYmJkZCIvPjxwYXRoIGQ9Ik0xMy44IDE1LjNjLjkuOC42IDIgMS40IDEuOCAxLS4yIDEuNC0uOCAxLjMtMS41IDAtLjcgMC0uOC0uNC0xLjYtLjMtLjctMS0xLjEtMi0uNS0uNy41LTEuNCAxLjMtMS40IDEuM3MuMi0uMyAxLjEuNXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9Ii41Ii8+PC9zdmc+";/**
2155
2155
  * @license
2156
2156
  * Copyright 2020 Google LLC
2157
2157
  * SPDX-License-Identifier: BSD-3-Clause
2158
- */const rk=Yr(class extends ho{constructor(t){if(super(t),t.type!==Ot.PROPERTY&&t.type!==Ot.ATTRIBUTE&&t.type!==Ot.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!D2(t))throw Error("`live` bindings can only contain a single expression")}render(t){return t}update(t,[e]){if(e===xe||e===R)return e;const n=t.element,r=t.name;if(t.type===Ot.PROPERTY){if(e===n[r])return xe}else if(t.type===Ot.BOOLEAN_ATTRIBUTE){if(!!e===n.hasAttribute(r))return xe}else if(t.type===Ot.ATTRIBUTE&&n.getAttribute(r)===e+"")return xe;return X9(t),e}});function B2(t,e){return new CustomEvent("query-dependency",{detail:{name:t,setter:e},bubbles:!0})}function ik(t){if(!(t!=null&&t.length))throw new Error("Can't nest an empty array!");const e=O2(null);for(const n of t){if(!(n!=null&&n.length))throw new Error("Cannot nest, element has no path!");let r=e;for(const i of n){let o=r.children.find(a=>a.item===i);o||(o=O2(i),r.children.push(o)),r=o}}return e.children[0]}const O2=t=>({item:t,children:[]}),Wf=new Set;function Xf(t){const n=t.currentTarget.parentNode,r=!n.classList.contains("show");for(const i of Wf)i.classList.remove("show"),document.body.classList.remove(jn);return Wf.clear(),t.stopPropagation(),r?(Wf.add(n),n.classList.add("show"),document.body.classList.add(jn),window.addEventListener("click",i=>{n.classList.contains("show")&&(n.classList.remove("show"),document.body.classList.remove(jn),i.preventDefault())},{once:!0})):window.dispatchEvent(new MouseEvent("click")),r}const Zf={visibilities:{}},ni=Zy({name:"viewSettings",initialState:Zf,reducers:{setVisibility:(t,e)=>{t.visibilities[e.payload.name]=e.payload.visibility},restoreDefaultVisibility:(t,e)=>{delete t.visibilities[e.payload]},restoreDefaultVisibilities:(t,e)=>Zf,setViewSettings:(t,e)=>({...Zf,...e.payload?e.payload:{}})}});class ok extends Bt{constructor(){super(),this.app=void 0,this.nestedPaths=void 0,this.sateWatcher=zs(e=>e.viewSettings,(e,n)=>this.requestUpdate()),this.style.display="none"}connectedCallback(){super.connectedCallback(),this.dispatchEvent(B2("app",e=>{this.app=e})),this.app.addInitializationListener(()=>{this.updateToggles(),this.requestUpdate(),this.style.display=this.nestedPaths.children.length?"block":"none"}),this.app.storeHelper.subscribe(this.sateWatcher)}disconnectedCallback(){this.app.storeHelper.unsubscribe(this.sateWatcher)}createRenderRoot(){return this}toolButtonClicked(e){Xf(e)}handleCheckboxClick(e,n){const r=e.target.checked;this.app.storeHelper.dispatch(r!=n.isVisibleInSpec()?ni.actions.setVisibility({name:n.name,visibility:r}):ni.actions.restoreDefaultVisibility(n.name)),this.requestUpdate(),e.stopPropagation()}handleResetClick(){this.app.storeHelper.dispatch(ni.actions.restoreDefaultVisibilities())}updateToggles(){const e=this.app.genomeSpy.viewRoot;if(!e)return;const n=[];e.visit(i=>{if(i instanceof yg)return is;n.push(i)});const r=n.filter(i=>L8(i.name)&&P2(i)).map(i=>[...i.getAncestors()].reverse());this.nestedPaths=ik(r)}renderToggles(){const e=this.getVisibilities(),n=this.app.genomeSpy.viewRoot,r=zg(n);var i=(a,s=!0)=>a.length?D`<ul class="${s?null:"unchecked"}">${a.map(o)}</ul>`:R,o=a=>{var u,f;const s=a.item,c=(u=e[s.name])!=null?u:s.isVisibleInSpec();return D`<li><label class="checkbox"><input type="checkbox" ?disabled="${!r.has(s.name)||!P2(s)}" .checked="${rk(c)}" @change="${l=>this.handleCheckboxClick(l,s)}">${(f=s.getTitleText())!=null?f:s.name}</label> ${i(a.children,c)}</li>`};return i(this.nestedPaths.children)}render(){const e=!Object.keys(this.getVisibilities()).length;return D`<div class="dropdown bookmark-dropdown"><button class="tool-btn" title="Toggle view visibilities" @click="${this.toolButtonClicked.bind(this)}">${q(B5).node[0]}</button><ul class="gs-dropdown-menu" @click="${n=>n.stopPropagation()}"><li class="menu-header">View visibility</li><li>${e?D`<span class="disabled-item">Restore defaults</span>`:D`<a @click="${()=>this.handleResetClick()}">Restore defaults</a>`}</li><li class="menu-divider"></li><li>${this.nestedPaths?this.renderToggles():R}</li></ul></div>`}getVisibilities(){return this.app.storeHelper.state.viewSettings.visibilities}}const P2=t=>{var e;return(e=t.spec.configurableVisibility)!=null?e:!(t.parent&&t.parent instanceof Nt)};customElements.define("genome-spy-view-visibility",ok);class ak extends Bt{constructor(){super(),this.provenance=void 0}connectedCallback(){super.connectedCallback(),this.provenance.storeHelper.subscribe(()=>{this.requestUpdate()})}disconnectedCallback(){super.disconnectedCallback()}createRenderRoot(){return this}render(){const e=(r,i)=>{var a,s;const o=this.provenance.getActionInfo(r);return o?D`<li><a @click="${()=>this.provenance.activateState(i)}" class="${i==this.provenance.getCurrentIndex()?"active":""}">${q((a=o.icon)!=null?a:$g).node[0]} ${(s=o.provenanceTitle)!=null?s:o.title}</a></li>`:R},n=()=>D`<div class="dropdown provenance-dropdown"><button class="tool-btn" title="Provenance" ?disabled="${this.provenance.isEmpty()}" @click="${Xf}">${q(S5).node[0]}</button><ol class="gs-dropdown-menu provenance-menu">${this.provenance.getFullActionHistory().map(e)}</ol></div>`;return D`<div class="btn-group" @click="${r=>r.stopPropagation()}"><button class="tool-btn" title="Backtrack samples (B)" ?disabled="${!this.provenance.isUndoable()}" @click="${()=>this.provenance.undo()}">${q(f5).node[0]}</button> ${n()} <button class="tool-btn" title="Redo" ?disabled="${!this.provenance.isRedoable()}" @click="${()=>this.provenance.redo()}">${q(h5).node[0]}</button></div>`}}customElements.define("genome-spy-provenance-buttons",ak);/**
2158
+ */const sk=Yr(class extends po{constructor(t){if(super(t),t.type!==Ot.PROPERTY&&t.type!==Ot.ATTRIBUTE&&t.type!==Ot.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!N2(t))throw Error("`live` bindings can only contain a single expression")}render(t){return t}update(t,[e]){if(e===we||e===R)return e;const n=t.element,r=t.name;if(t.type===Ot.PROPERTY){if(e===n[r])return we}else if(t.type===Ot.BOOLEAN_ATTRIBUTE){if(!!e===n.hasAttribute(r))return we}else if(t.type===Ot.ATTRIBUTE&&n.getAttribute(r)===e+"")return we;return J9(t),e}});function R2(t,e){return new CustomEvent("query-dependency",{detail:{name:t,setter:e},bubbles:!0})}function ck(t){if(!(t!=null&&t.length))throw new Error("Can't nest an empty array!");const e=j2(null);for(const n of t){if(!(n!=null&&n.length))throw new Error("Cannot nest, element has no path!");let r=e;for(const i of n){let o=r.children.find(a=>a.item===i);o||(o=j2(i),r.children.push(o)),r=o}}return e.children[0]}const j2=t=>({item:t,children:[]}),Kf=new Set;function Jf(t){const n=t.currentTarget.parentNode,r=!n.classList.contains("show");for(const i of Kf)i.classList.remove("show"),document.body.classList.remove(jn);return Kf.clear(),t.stopPropagation(),r?(Kf.add(n),n.classList.add("show"),document.body.classList.add(jn),window.addEventListener("click",i=>{n.classList.contains("show")&&(n.classList.remove("show"),document.body.classList.remove(jn),i.preventDefault())},{once:!0})):window.dispatchEvent(new MouseEvent("click")),r}const $f={visibilities:{}},ni=e2({name:"viewSettings",initialState:$f,reducers:{setVisibility:(t,e)=>{t.visibilities[e.payload.name]=e.payload.visibility},restoreDefaultVisibility:(t,e)=>{delete t.visibilities[e.payload]},restoreDefaultVisibilities:(t,e)=>$f,setViewSettings:(t,e)=>({...$f,...e.payload?e.payload:{}})}});class uk extends Bt{constructor(){super(),this.app=void 0,this.nestedPaths=void 0,this.sateWatcher=js(e=>e.viewSettings,(e,n)=>this.requestUpdate()),this.style.display="none"}connectedCallback(){super.connectedCallback(),this.dispatchEvent(R2("app",e=>{this.app=e})),this.app.addInitializationListener(()=>{this.updateToggles(),this.requestUpdate(),this.style.display=this.nestedPaths.children.length?"block":"none"}),this.app.storeHelper.subscribe(this.sateWatcher)}disconnectedCallback(){this.app.storeHelper.unsubscribe(this.sateWatcher)}createRenderRoot(){return this}toolButtonClicked(e){Jf(e)}handleCheckboxClick(e,n){const r=e.target.checked;this.app.storeHelper.dispatch(r!=n.isVisibleInSpec()?ni.actions.setVisibility({name:n.name,visibility:r}):ni.actions.restoreDefaultVisibility(n.name)),this.requestUpdate(),e.stopPropagation()}handleResetClick(){this.app.storeHelper.dispatch(ni.actions.restoreDefaultVisibilities())}updateToggles(){const e=this.app.genomeSpy.viewRoot;if(!e)return;const n=[];e.visit(i=>{if(i instanceof wg)return os;n.push(i)});const r=n.filter(i=>P8(i.name)&&U2(i)).map(i=>[...i.getAncestors()].reverse());this.nestedPaths=ck(r)}renderToggles(){const e=this.getVisibilities(),n=this.app.genomeSpy.viewRoot,r=Qg(n);var i=(a,s=!0)=>a.length?D`<ul class="${s?null:"unchecked"}">${a.map(o)}</ul>`:R,o=a=>{var u,f;const s=a.item,c=(u=e[s.name])!=null?u:s.isVisibleInSpec();return D`<li><label class="checkbox"><input type="checkbox" ?disabled="${!r.has(s.name)||!U2(s)}" .checked="${sk(c)}" @change="${l=>this.handleCheckboxClick(l,s)}">${(f=s.getTitleText())!=null?f:s.name}</label> ${i(a.children,c)}</li>`};return i(this.nestedPaths.children)}render(){const e=!Object.keys(this.getVisibilities()).length;return D`<div class="dropdown bookmark-dropdown"><button class="tool-btn" title="Toggle view visibilities" @click="${this.toolButtonClicked.bind(this)}">${$(F5).node[0]}</button><ul class="gs-dropdown-menu" @click="${n=>n.stopPropagation()}"><li class="menu-header">View visibility</li><li>${e?D`<span class="disabled-item">Restore defaults</span>`:D`<a @click="${()=>this.handleResetClick()}">Restore defaults</a>`}</li><li class="menu-divider"></li><li>${this.nestedPaths?this.renderToggles():R}</li></ul></div>`}getVisibilities(){return this.app.storeHelper.state.viewSettings.visibilities}}const U2=t=>{var e;return(e=t.spec.configurableVisibility)!=null?e:!(t.parent&&t.parent instanceof Nt)};customElements.define("genome-spy-view-visibility",uk);class lk extends Bt{constructor(){super(),this.provenance=void 0}connectedCallback(){super.connectedCallback(),this.provenance.storeHelper.subscribe(()=>{this.requestUpdate()})}disconnectedCallback(){super.disconnectedCallback()}createRenderRoot(){return this}render(){const e=(r,i)=>{var a,s;const o=this.provenance.getActionInfo(r);return o?D`<li><a @click="${()=>this.provenance.activateState(i)}" class="${i==this.provenance.getCurrentIndex()?"active":""}">${$((a=o.icon)!=null?a:o1).node[0]} ${(s=o.provenanceTitle)!=null?s:o.title}</a></li>`:R},n=()=>D`<div class="dropdown provenance-dropdown"><button class="tool-btn" title="Provenance" ?disabled="${this.provenance.isEmpty()}" @click="${Jf}">${$(M5).node[0]}</button><ol class="gs-dropdown-menu provenance-menu">${this.provenance.getFullActionHistory().map(e)}</ol></div>`;return D`<div class="btn-group" @click="${r=>r.stopPropagation()}"><button class="tool-btn" title="Backtrack samples (B)" ?disabled="${!this.provenance.isUndoable()}" @click="${()=>this.provenance.undo()}">${$(p5).node[0]}</button> ${n()} <button class="tool-btn" title="Redo" ?disabled="${!this.provenance.isRedoable()}" @click="${()=>this.provenance.redo()}">${$(g5).node[0]}</button></div>`}}customElements.define("genome-spy-provenance-buttons",lk);/**
2159
2159
  * @license
2160
2160
  * Copyright 2021 Google LLC
2161
2161
  * SPDX-License-Identifier: BSD-3-Clause
2162
- */class sk{constructor(e){this.U=e}disconnect(){this.U=void 0}reconnect(e){this.U=e}deref(){return this.U}}class ck{constructor(){this.Y=void 0,this.q=void 0}get(){return this.Y}pause(){var e;(e=this.Y)!==null&&e!==void 0||(this.Y=new Promise(n=>this.q=n))}resume(){var e;(e=this.q)===null||e===void 0||e.call(this),this.Y=this.q=void 0}}/**
2162
+ */class fk{constructor(e){this.U=e}disconnect(){this.U=void 0}reconnect(e){this.U=e}deref(){return this.U}}class dk{constructor(){this.Y=void 0,this.q=void 0}get(){return this.Y}pause(){var e;(e=this.Y)!==null&&e!==void 0||(this.Y=new Promise(n=>this.q=n))}resume(){var e;(e=this.q)===null||e===void 0||e.call(this),this.Y=this.q=void 0}}/**
2163
2163
  * @license
2164
2164
  * Copyright 2017 Google LLC
2165
2165
  * SPDX-License-Identifier: BSD-3-Clause
2166
- */const F2=t=>!_9(t)&&typeof t.then=="function";class uk extends T2{constructor(){super(...arguments),this._$Cwt=1073741823,this._$Cyt=[],this._$CG=new sk(this),this._$CK=new ck}render(...e){var n;return(n=e.find(r=>!F2(r)))!==null&&n!==void 0?n:xe}update(e,n){const r=this._$Cyt;let i=r.length;this._$Cyt=n;const o=this._$CG,a=this._$CK;this.isConnected||this.disconnected();for(let s=0;s<n.length&&!(s>this._$Cwt);s++){const c=n[s];if(!F2(c))return this._$Cwt=s,c;s<i&&c===r[s]||(this._$Cwt=1073741823,i=0,Promise.resolve(c).then(async u=>{for(;a.get();)await a.get();const f=o.deref();if(f!==void 0){const l=f._$Cyt.indexOf(c);l>-1&&l<f._$Cwt&&(f._$Cwt=l,f.setValue(u))}}))}return xe}disconnected(){this._$CG.disconnect(),this._$CK.pause()}reconnected(){this._$CG.reconnect(this),this._$CK.resume()}}const lk=Yr(uk);var fk={"":["<em>","</em>"],_:["<strong>","</strong>"],"*":["<strong>","</strong>"],"~":["<s>","</s>"],"\n":["<br />"]," ":["<br />"],"-":["<hr />"]};function z2(t){return t.replace(RegExp("^"+(t.match(/^(\t| )+/)||"")[0],"gm"),"")}function No(t){return(t+"").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function qf(t,e){var n,r,i,o,a,s=/((?:^|\n+)(?:\n---+|\* \*(?: \*)+)\n)|(?:^``` *(\w*)\n([\s\S]*?)\n```$)|((?:(?:^|\n+)(?:\t| {2,}).+)+\n*)|((?:(?:^|\n)([>*+-]|\d+\.)\s+.*)+)|(?:!\[([^\]]*?)\]\(([^)]+?)\))|(\[)|(\](?:\(([^)]+?)\))?)|(?:(?:^|\n+)([^\s].*)\n(-{3,}|={3,})(?:\n+|$))|(?:(?:^|\n+)(#{1,6})\s*(.+)(?:\n+|$))|(?:`([^`].*?)`)|( \n\n*|\n{2,}|__|\*\*|[_*]|~~)/gm,c=[],u="",f=e||{},l=0;function d(p){var m=fk[p[1]||""],y=c[c.length-1]==p;return m?m[1]?(y?c.pop():c.push(p),m[0|y]):m[0]:p}function h(){for(var p="";c.length;)p+=d(c[c.length-1]);return p}for(t=t.replace(/^\[(.+?)\]:\s*(.+)$/gm,function(p,m,y){return f[m.toLowerCase()]=y,""}).replace(/^\n+|\n+$/g,"");i=s.exec(t);)r=t.substring(l,i.index),l=s.lastIndex,n=i[0],r.match(/[^\\](\\\\)*\\$/)||((a=i[3]||i[4])?n='<pre class="code '+(i[4]?"poetry":i[2].toLowerCase())+'"><code'+(i[2]?' class="language-'+i[2].toLowerCase()+'"':"")+">"+z2(No(a).replace(/^\n+|\n+$/g,""))+"</code></pre>":(a=i[6])?(a.match(/\./)&&(i[5]=i[5].replace(/^\d+/gm,"")),o=qf(z2(i[5].replace(/^\s*[>*+.-]/gm,""))),a==">"?a="blockquote":(a=a.match(/\./)?"ol":"ul",o=o.replace(/^(.*)(\n|$)/gm,"<li>$1</li>")),n="<"+a+">"+o+"</"+a+">"):i[8]?n='<img src="'+No(i[8])+'" alt="'+No(i[7])+'">':i[10]?(u=u.replace("<a>",'<a href="'+No(i[11]||f[r.toLowerCase()])+'">'),n=h()+"</a>"):i[9]?n="<a>":i[12]||i[14]?n="<"+(a="h"+(i[14]?i[14].length:i[13]>"="?1:2))+">"+qf(i[12]||i[15],f)+"</"+a+">":i[16]?n="<code>"+No(i[16])+"</code>":(i[17]||i[1])&&(n=d(i[17]||"--"))),u+=r,u+=n;return(u+t.substring(l)+h()).replace(/^\n+|\n+$/g,"")}function R2(t,e){return!e||/^(data:|([A-Za-z]+:)?\/\/)/.test(t)||t.startsWith("/")?t:(e.endsWith("/")||(e+="/"),e+t)}function dk(t,e={}){const n=qf(t),r=new DOMParser().parseFromString(`<!DOCTYPE html><html><body><div>${n}</div></body></html>`,"text/html");r.normalize(),j2(r.body);for(const o of r.querySelectorAll("a[href]"))o.setAttribute("target","blank"),o.setAttribute("rel","noopener noreferrer"),o.setAttribute("href",R2(o.getAttribute("href"),e.baseUrl));for(const o of r.querySelectorAll("img[src]"))o.setAttribute("src",R2(o.getAttribute("src"),e.baseUrl));const i=r.body.removeChild(r.querySelector("body > div"));return i.className="snarkdown",i}function j2(t){if(t.nodeType!==3){if(t.nodeType!==1||/^(script|iframe|object|embed|svg)$/i.test(t.tagName))return t.remove();for(let e=t.attributes.length;e--;){const n=t.attributes[e].name;/^(class|id|name|href|src|alt|align|valign|(on[a-z]+))$/i.test(n)||t.attributes.removeNamedItem(n)}for(let e=t.childNodes.length;e--;)j2(t.childNodes[e])}}function hk(t){t.stopPropagation(),t.preventDefault();const n=t.target.parentElement,r=n.parentElement,o=r.parentElement.querySelector(".panes"),a=[...r.children].findIndex(s=>s==n);for(const s of r.children)s.classList.remove("active-tab");for(const s of o.children)s.classList.remove("active-tab");r.children.item(a).classList.add("active-tab"),o.children.item(a).classList.add("active-tab")}var Kf={exports:{}};(function(t){var e=function(){var n=String.fromCharCode,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",o={};function a(c,u){if(!o[c]){o[c]={};for(var f=0;f<c.length;f++)o[c][c.charAt(f)]=f}return o[c][u]}var s={compressToBase64:function(c){if(c==null)return"";var u=s._compress(c,6,function(f){return r.charAt(f)});switch(u.length%4){default:case 0:return u;case 1:return u+"===";case 2:return u+"==";case 3:return u+"="}},decompressFromBase64:function(c){return c==null?"":c==""?null:s._decompress(c.length,32,function(u){return a(r,c.charAt(u))})},compressToUTF16:function(c){return c==null?"":s._compress(c,15,function(u){return n(u+32)})+" "},decompressFromUTF16:function(c){return c==null?"":c==""?null:s._decompress(c.length,16384,function(u){return c.charCodeAt(u)-32})},compressToUint8Array:function(c){for(var u=s.compress(c),f=new Uint8Array(u.length*2),l=0,d=u.length;l<d;l++){var h=u.charCodeAt(l);f[l*2]=h>>>8,f[l*2+1]=h%256}return f},decompressFromUint8Array:function(c){if(c==null)return s.decompress(c);for(var u=new Array(c.length/2),f=0,l=u.length;f<l;f++)u[f]=c[f*2]*256+c[f*2+1];var d=[];return u.forEach(function(h){d.push(n(h))}),s.decompress(d.join(""))},compressToEncodedURIComponent:function(c){return c==null?"":s._compress(c,6,function(u){return i.charAt(u)})},decompressFromEncodedURIComponent:function(c){return c==null?"":c==""?null:(c=c.replace(/ /g,"+"),s._decompress(c.length,32,function(u){return a(i,c.charAt(u))}))},compress:function(c){return s._compress(c,16,function(u){return n(u)})},_compress:function(c,u,f){if(c==null)return"";var l,d,h={},p={},m="",y="",g="",x=2,A=3,C=2,v=[],b=0,w=0,E;for(E=0;E<c.length;E+=1)if(m=c.charAt(E),Object.prototype.hasOwnProperty.call(h,m)||(h[m]=A++,p[m]=!0),y=g+m,Object.prototype.hasOwnProperty.call(h,y))g=y;else{if(Object.prototype.hasOwnProperty.call(p,g)){if(g.charCodeAt(0)<256){for(l=0;l<C;l++)b=b<<1,w==u-1?(w=0,v.push(f(b)),b=0):w++;for(d=g.charCodeAt(0),l=0;l<8;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1}else{for(d=1,l=0;l<C;l++)b=b<<1|d,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=0;for(d=g.charCodeAt(0),l=0;l<16;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1}x--,x==0&&(x=Math.pow(2,C),C++),delete p[g]}else for(d=h[g],l=0;l<C;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1;x--,x==0&&(x=Math.pow(2,C),C++),h[y]=A++,g=String(m)}if(g!==""){if(Object.prototype.hasOwnProperty.call(p,g)){if(g.charCodeAt(0)<256){for(l=0;l<C;l++)b=b<<1,w==u-1?(w=0,v.push(f(b)),b=0):w++;for(d=g.charCodeAt(0),l=0;l<8;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1}else{for(d=1,l=0;l<C;l++)b=b<<1|d,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=0;for(d=g.charCodeAt(0),l=0;l<16;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1}x--,x==0&&(x=Math.pow(2,C),C++),delete p[g]}else for(d=h[g],l=0;l<C;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1;x--,x==0&&(x=Math.pow(2,C),C++)}for(d=2,l=0;l<C;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1;for(;;)if(b=b<<1,w==u-1){v.push(f(b));break}else w++;return v.join("")},decompress:function(c){return c==null?"":c==""?null:s._decompress(c.length,32768,function(u){return c.charCodeAt(u)})},_decompress:function(c,u,f){var l=[],d=4,h=4,p=3,m="",y=[],g,x,A,C,v,b,w,E={val:f(0),position:u,index:1};for(g=0;g<3;g+=1)l[g]=g;for(A=0,v=Math.pow(2,2),b=1;b!=v;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),A|=(C>0?1:0)*b,b<<=1;switch(A){case 0:for(A=0,v=Math.pow(2,8),b=1;b!=v;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),A|=(C>0?1:0)*b,b<<=1;w=n(A);break;case 1:for(A=0,v=Math.pow(2,16),b=1;b!=v;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),A|=(C>0?1:0)*b,b<<=1;w=n(A);break;case 2:return""}for(l[3]=w,x=w,y.push(w);;){if(E.index>c)return"";for(A=0,v=Math.pow(2,p),b=1;b!=v;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),A|=(C>0?1:0)*b,b<<=1;switch(w=A){case 0:for(A=0,v=Math.pow(2,8),b=1;b!=v;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),A|=(C>0?1:0)*b,b<<=1;l[h++]=n(A),w=h-1,d--;break;case 1:for(A=0,v=Math.pow(2,16),b=1;b!=v;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),A|=(C>0?1:0)*b,b<<=1;l[h++]=n(A),w=h-1,d--;break;case 2:return y.join("")}if(d==0&&(d=Math.pow(2,p),p++),l[w])m=l[w];else if(w===h)m=x+x.charAt(0);else return null;y.push(m),l[h++]=x+m.charAt(0),d--,x=m,d==0&&(d=Math.pow(2,p),p++)}}};return s}();t!=null&&(t.exports=e)})(Kf);function pk(){const t=typeof process<"u"?require("util").TextEncoder:TextEncoder;return new t}let js;function mk(){let t,e=[];for(let n=0;n<256;n++){t=n;for(let r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;e[n]=t}return e}function gk(t){js!=null||(js=mk());let e=-1;const n=pk().encode(t);for(let r=0;r<n.length;r++)e=e>>>8^js[(e^n[r])&255];return(e^-1)>>>0}function U2(t){return("00000000"+gk(t).toString(16)).slice(-8)}function G2(t){const e=Kf.exports.compressToEncodedURIComponent(JSON.stringify(t));return"#"+e+U2(e)}function yk(t){if(!t||t.length<10)throw new Error("The state string in the URL is too short.");const e=t.slice(1,-8),n=t.slice(-8);if(U2(e)!==n)throw new Error("The state string in the URL is corrupted.");return JSON.parse(Kf.exports.decompressFromEncodedURIComponent(e))}let Qt;function bk(t){for(const e of t.genomeSpy.getNamedScaleResolutions().values())e.isZoomable()&&e.resetZoom();t.storeHelper.dispatch([...t.provenance.isUndoable()?[jt.ActionCreators.jumpToPast(0)]:[],ni.actions.restoreDefaultVisibilities()])}async function Jf(t,e){var n;try{t.actions&&e.provenance.dispatchBookmark(t.actions),e.storeHelper.dispatch(ni.actions.setViewSettings(t.viewSettings));const r=[];for(const[i,o]of Object.entries((n=t.scaleDomains)!=null?n:{})){const a=e.genomeSpy.getNamedScaleResolutions().get(i);a?r.push(a.zoomTo(o)):console.warn(`Cannot restore scale domain. Unknown name: ${i}`)}await Promise.all(r)}catch(r){console.error(r),He(D`<p>Cannot restore the state:</p><p>${r}</p>`),e.provenance.activateState(0)}}async function Lo(t,e,n={}){await Jf(t,e),(Qt||t.notes||n.mode=="shared"&&(t.name||t.notes))&&await vk(t,e,n)}async function vk(t,e,n={}){Qt!=null||(Qt=ir("tour",e.appContainer)),await Ak(t,e,n)}async function Ak(t,e,n){var m;const r=n.database,i=r?await r.getNames():[],o=i.indexOf(t.name),a=r?` ${o+1} of ${i.length}`:"",s=`${n.mode=="shared"?"Shared bookmark":"Bookmark"}${a}: ${(m=t.name)!=null?m:"Unnamed"}`,c=t.notes?dk(t.notes,{baseUrl:e.genomeSpy.spec.baseUrl}):D`<span class="no-notes">No notes provided</span>`,u=async()=>{if(Qt==null||Qt.close(),Qt=void 0,n.mode=="tour"){const y=n.afterTourBookmark;if(typeof y=="string"){const g=await n.database.get(y);if(!g)throw new Error(`No such bookmark: ${y}`);Jf(g,e)}else y===null||bk(e)}},f=async y=>{const g=await r.get(i[y]);Lo(g,e,n),e.appContainer.querySelector("canvas").focus()},l=async()=>{if(await $f(e.localBookmarkDatabase,t,"add"))try{await e.localBookmarkDatabase.put(t)}catch(y){console.warn(y),He(`Cannot import bookmark: ${y}`)}},d=D`<button @click="${u}">${n.mode=="tour"?"End tour":"Close"}</button> ${n.mode=="shared"&&e.localBookmarkDatabase?D`<button @click="${l}">${q(Jg).node[0]} Import bookmark</button>`:R} ${r?D`<button @click="${()=>f(o-1)}" ?disabled="${o<=0}">${q(m5).node[0]} Previous</button> <button @click="${()=>f(o+1)}" ?disabled="${o>=i.length-1}">Next ${q(T5).node[0]}</button>`:R}`,p=D`<button title="Collapse" class="collapse" @click="${y=>y.target.closest(".gs-modal").classList.toggle("collapsed")}">${q(y5).node[0]}</button><div class="modal-title">${s}</div><div class="modal-body markdown" style="max-width:600px">${c}</div><div class="modal-buttons">${d}</div>`;Be(p,Qt.content)}function H2(t,e){const n=JSON.stringify(t,void 0,2),r=window.location,i=r.origin+r.pathname+r.search+(e?"#bookmark:"+t.name.replaceAll(" ","-"):G2(t));He(D`<div class="gs-tabs" style="width:600px"><ul class="tabs" @click="${hk}"><li class="active-tab"><button>URL</button></li><li><button>JSON</button></li></ul><div class="panes"><div class="gs-form-group active-tab"><label for="bookmark-url">Here's a link for you:</label><div class="copy-url"><input id="bookmark-url" type="text" .value="${i}"> <button @click="${a=>navigator.clipboard.writeText(i).then(()=>a.target.dispatchEvent(v6())).catch(()=>He("Failed to copy!"))}">Copy</button></div><small>The bookmark URL contains all the bookmarked data, including the possible notes, which will be shown when the link is opened.</small></div><div class="gs-form-group"><textarea id="bookmark-json" style="height:250px">
2167
- ${n}</textarea> <small>The JSON-formatted bookmark is currently available for development purposes.</small></div></div></div>`,{title:"Share a bookmark",okLabel:"Close"})}function $f(t,e,n){const r={add:"Add bookmark",edit:"Edit bookmark",share:"Share the current view state as a bookmark"}[n],i=(c,u)=>{var f,l;return D`<div class="modal-title">${r}</div><div class="modal-body" style="width:500px">${n=="edit"?D`<div class="gs-alert warning">${q(v5).node[0]} The current visualization state will be updated to the bookmark you are editing.</div>`:R} ${n=="share"?D`<div class="gs-alert info">${q(e1).node[0]} <span>You can add an optional title and notes, which will be shown to the recipient when the bookmark link is opened.</span></div>`:R}<div class="gs-form-group"><label for="bookmark-title">Title</label> <input id="bookmark-title" type="text" ?required="${n=="add"||n=="edit"}" .value="${(f=e.name)!=null?f:""}" .placeholder="${n=="share"?"Add an optional title":""}" @change="${d=>{e.name=Q2(d.target.value)}}"></div><div class="gs-form-group"><label for="bookmark-notes">Notes</label> <textarea id="bookmark-notes" rows="4" .value="${(l=e.notes)!=null?l:""}" .placeholder="${n=="share"?"... and notes":""}" @change="${d=>{e.notes=Q2(d.target.value)}}"></textarea> <small>Notes will be shown when the bookmark is loaded. You can use <a href="https://www.markdownguide.org/basic-syntax/">markdown</a> for formatting.</small></div></div><div class="modal-buttons"><button class="btn-cancel" @click="${c}">Cancel</button> <button class="btn-primary" @click="${u}">${n=="share"?D`${q(Bl).node[0]} Create a link`:"Save"}</button></div>`},o=e.name,a=()=>!!e.name,s=ir();return new Promise(c=>{const u=()=>{s.close(),c(!1)},f=async()=>{if(!a()){He("Name is missing!",{title:"Error"});return}let d=!0;t&&!(n&&e.name==o)&&await t.get(e.name)&&(d=await He(D`A bookmark with the name <em>${e.name}</em> already exists. It will be overwritten.`,{title:"Bookmark already exists",cancelButton:!0})),d&&(s.close(),c(!0))},l=()=>{s.close(),c(!0)};Be(i(u,n=="share"?l:f),s.content),s.content.querySelector("#bookmark-title").focus()})}function Q2(t){if(t!==void 0&&(t=t.trim(),t.length))return t}class xk extends Bt{constructor(){super(),this.app=void 0}connectedCallback(){super.connectedCallback(),this.dispatchEvent(B2("app",e=>{this.app=e}))}createRenderRoot(){return this}_createBookmarkWithCurrentState(){const e={name:void 0,timestamp:Date.now(),actions:this.app.provenance.getBookmarkableActionHistory(),scaleDomains:{}},n=this.app.storeHelper.state.viewSettings;Object.keys(n.visibilities).length&&(e.viewSettings=n);for(const[r,i]of this.app.genomeSpy.getNamedScaleResolutions().entries())i.isZoomable()&&(e.scaleDomains[r]=i.getComplexDomain());return e}async _shareCurrentState(){const e=this._createBookmarkWithCurrentState();await $f(void 0,e,"share")&&H2(e,!1)}async _addBookmark(e,n){var a,s;const r=n?await e.get(n):void 0,i=!!r,o=this._createBookmarkWithCurrentState();if((a=o.name)!=null||(o.name=r==null?void 0:r.name),(s=o.notes)!=null||(o.notes=r==null?void 0:r.notes),await $f(e,o,i?"edit":"add"))try{await e.put(o,r==null?void 0:r.name),this.requestUpdate()}catch(c){He(`${c}`,{title:"Cannot save the bookmark!"})}}async _loadBookmark(e,n){const r=await e.get(n);r&&Lo(r,this.app,{database:e})}_createContextMenu(e,n,r){r.stopPropagation();const i=r.target.closest("li"),o=()=>He(D`The bookmark <em>${n}</em> will be deleted.`,{title:"Are you sure?",cancelButton:!0}).then(async c=>{c&&(await e.delete(n),this.requestUpdate())}),a=[],s=e==this.app.globalBookmarkDatabase;s||(a.push({label:"Edit and replace...",icon:N5,callback:()=>this._addBookmark(e,n)}),a.push({label:"Delete",icon:O5,callback:o})),a.push({label:"Share...",icon:Bl,callback:async()=>H2(await e.get(n),s)}),wy({items:a},i,"right-start")}async _makeBookmarkMenuItems(e,n){const i=(await e.getNames()).map(o=>({label:o,callback:()=>this._loadBookmark(e,o),ellipsisCallback:a=>this._createContextMenu(e,o,a)}));return i.length?[{type:"divider"},{label:n,type:"header"},...i].map(o=>Ay(o)):R}_getBookmarks(){const e=(n,r)=>n?lk(this._makeBookmarkMenuItems(n,r),D`Loading...`):R;return[e(this.app.globalBookmarkDatabase,"Bookmarks on the server"),e(this.app.localBookmarkDatabase,"Bookmarks in the web browser")]}render(){const e=this.app.localBookmarkDatabase,n=e?D`<li><a @click="${()=>this._addBookmark(e)}">Add bookmark...</a></li>`:R,r=e||this.app.globalBookmarkDatabase?D`<div class="dropdown bookmark-dropdown"><button class="tool-btn" title="Bookmarks" @click="${i=>{Xf(i)&&this.requestUpdate()}}">${q(Jg).node[0]}</button><ul class="gs-dropdown-menu">${n} ${this._getBookmarks()}</ul></div>`:R;return D`<div class="btn-group">${r} <button class="tool-btn" title="Share" @click="${()=>this._shareCurrentState()}">${q(Bl).node[0]}</button></div>`}}customElements.define("genome-spy-bookmark-button",xk);class wk extends Bt{constructor(){super(),this.app=void 0,this.appInitialized=!1}static get properties(){return{app:{type:Object},appInitialized:{type:Boolean}}}createRenderRoot(){return this}_getToolButtons(){const e=this.app.getSampleView(),n=this.app.provenance,r=[];n.isEnabled()&&r.push(D`<genome-spy-provenance-buttons .provenance="${n}"></genome-spy-provenance-buttons>`),r.push(D`<genome-spy-view-visibility></genome-spy-view-visibility>`),e&&r.push(D`<button class="tool-btn" title="Peek (E)" @click="${()=>e._togglePeek()}">${q(z5).node[0]}</button>`),r.push(D`<genome-spy-bookmark-button></genome-spy-bookmark-button>`);const i=this.app.config.description?qe(this.app.config.description):[];return i.length>1&&r.push(D`<button class="tool-btn" title="Show a description of the visualization" @click="${()=>He(D`${i.slice(1).map(o=>D`<p>${o}</p>`)}`,{title:i[0]})}">${q(e1).node[0]}</button>`),i.length>0&&r.push(D`<span class="vis-title">${i[0]}</span>`),r.push(D`<span class="spacer"></span> ${this.app.appContainer.requestFullscreen?D`<button class="tool-btn" title="Fullscreen" @click="${()=>this.app.toggleFullScreen()}">${q(k5).node[0]}</button>`:R} <button class="tool-btn" title="Help" @click="${()=>window.open("https://genomespy.app/docs/","_blank")}">${q(w5).node[0]}</button>`),r}render(){const e=this.app.genomeSpy;return D`<nav class="gs-toolbar"><a href="https://genomespy.app" target="_blank" class="logo"><img title="GenomeSpy" alt="GenomeSpy" src="${L2}"> </a>${this.appInitialized&&N2(e.viewRoot)?D`<genome-spy-search-field .genomeSpy="${e}"></genome-spy-search-field>`:R} ${this._getToolButtons()}</nav>`}}customElements.define("genome-spy-toolbar",wk);class Ck{constructor(e){this.storeHelper=e,this._reducers={},this.actionInfoSources=[],this._reducer=void 0,e.addReducer("provenance",(n,r)=>this._reducer?this._reducer(n,r):n!=null?n:{})}addReducer(e,n){this._reducers[e]=n;const r=o=>Object.keys(this._reducers).some(a=>o.type.startsWith(a)),i=(o,a)=>r(a)?a:o!=null?o:null;this._reducer=Y6(Bf({...this._reducers,lastAction:i}),{ignoreInitialState:!0,filter:r}),this.storeHelper.dispatch({type:"@@redux/REPLACE"+Math.random().toString(36).substring(7).split("").join(".")})}get _storeState(){return this.storeHelper.store.getState()}get _provenanceState(){return this._storeState.provenance}isEnabled(){return!!this.getPresentState()}getPresentState(){return this._provenanceState.present}addActionInfoSource(e){this.actionInfoSources.push(e)}getActionInfo(e){for(const n of this.actionInfoSources){const r=n(e);if(r)return r}}dispatchBookmark(e){this.storeHelper.dispatch([...this.isUndoable()?[jt.ActionCreators.jumpToPast(0)]:[],...e])}isRedoable(){return this.isEnabled()&&this._provenanceState.future.length>0}redo(){this.storeHelper.dispatch(jt.ActionCreators.redo())}isUndoable(){return this.isEnabled()&&this._provenanceState.past.length>0}undo(){this.storeHelper.dispatch(jt.ActionCreators.undo())}isAtInitialState(){return!this.isUndoable()}isEmpty(){const e=this._provenanceState;return!this.isEnabled()||e.past.length+e.future.length<=0}activateState(e){const n=this.getCurrentIndex();e<n?this.storeHelper.dispatch(jt.ActionCreators.jumpToPast(e)):e>n&&this.storeHelper.dispatch(jt.ActionCreators.jumpToFuture(e-n-1))}getCurrentIndex(){var e;return(e=this._provenanceState.past)==null?void 0:e.length}getActionHistory(){const e=this._provenanceState;return e.present&&[...e.past,e.present].map(n=>n.lastAction)}getFullActionHistory(){const e=this._provenanceState;return[...e.past,e.present,...e.future].map(n=>n.lastAction)}getBookmarkableActionHistory(){var e;return(e=this.getActionHistory())==null?void 0:e.slice(1)}}function*Sk(t,e=n=>+n){const n=t.length,r=new fo,i=new Array(n).fill(0);for(const[a,s]of t.entries())s.length&&r.push(a,e(s[0]));let o=0;for(;(o=r.pop())!==void 0;){const a=t[o];let s=i[o];if(yield a[s++],s<a.length){const u=e(a[s]);r.push(o,u),i[o]=s}}}const Ek="sampleCount";class Dk extends se{constructor(e,n){super(),this.view=n;const r=n.context.animator;for(const i of n.getAncestors())i instanceof jf&&(this.provenance=i.provenance,this.provenance.storeHelper.subscribe(o=>r.requestTransition(()=>{this.reset(),this._mergeAndPropagate(Rf(o)),this.complete()})));if(!this.provenance)throw new Error("No SampleView was found!");this.contextObject=void 0}initialize(){this.contextObject=Object.create(super.getGlobalObject());const e=this.view.getEncoding().x;if(Qn(e))this.xAccessor=Z(e.field);else throw new Error("Crash!")}handle(e){}getGlobalObject(){return this.contextObject}_getCollector(){if(this.parent instanceof Qr)return this.parent;throw new Error("MergeFacetsTransform must be a direct child of a Collector")}complete(){this._mergeAndPropagate(this.provenance.getPresentState()[ti]),super.complete()}_mergeAndPropagate(e){const n=[...h2(e.rootGroup)].filter(r=>f2(je(r)));for(const[r,i]of n.entries()){const o=je(i);if(f2(o)){this.contextObject[Ek]=o.samples.length,this.beginBatch({type:"facet",facetId:[r]});const a=o.samples,s=this._getCollector(),c=Sk(a.map(u=>{var f;return(f=s.facetBatches.get([u]))!=null?f:[]}),this.xAccessor);for(const u of c)this._propagate(u)}}this._updateScales()}setParent(e){super.setParent(e)}_updateScales(){const e=new Set;this.view.visit(n=>{if(n instanceof ye&&n.mark.encoding.y){const r=n.getScaleResolution("y");r&&e.add(r)}});for(const n of e)n.reconfigure()}}var Mk="BATCHING_REDUCER.BATCH";function Tk(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Mk;return{type:e,meta:{batch:!0},payload:t}}function Ik(t){return function e(n,r){return r&&r.meta&&r.meta.batch?r.payload.reduce(e,n):t(n,r)}}class kk{constructor(e){this._reducers=e!=null?e:{},this.store=a9({reducer:{}}),this._listeners=new Set,this.store.subscribe(()=>{const n=this.store.getState();for(const r of this._listeners)r(n)})}get state(){return this.store.getState()}addReducer(e,n){this._reducers[e]=n,this.store.replaceReducer(Ik(Bf(this._reducers)))}subscribe(e){this._listeners.add(e)}unsubscribe(e){this._listeners.delete(e)}dispatch(e){Array.isArray(e)?this.store.dispatch(Tk(e)):this.store.dispatch(e)}getDispatcher(){return e=>this.dispatch(e)}}class Nk extends E2{constructor(e){super(),this.bookmarks=e,this.names=e.map(n=>n.name)}async getNames(){return this.names}async get(e){return this.bookmarks.find(n=>n.name==e)}}Ig.mergeFacets=Dk;class V2{constructor(e,n,r={}){const i=this;this.config=n,this.storeHelper=new kk,this.storeHelper.addReducer("viewSettings",ni.reducer),this.provenance=new Ck(this.storeHelper),this._initializationListeners=[],this.toolbarRef=I2(),this.appContainer=e,this._configureContainer(),this.localBookmarkDatabase=typeof n.specId=="string"?new Y9(n.specId):void 0,this.globalBookmarkDatabase=void 0,Be(D`<div class="genome-spy-app"><genome-spy-toolbar ${k2(i.toolbarRef)} .app="${i}"></genome-spy-toolbar><div class="genome-spy-container"></div></div>`,i.appContainer),i.appContainer.querySelector(".genome-spy-app").addEventListener("query-dependency",s=>{s.detail.name=="app"&&(s.detail.setter(i),s.stopPropagation())});const o=s=>this.appContainer.getElementsByClassName(s)[0];this.genomeSpy=new Vg(o("genome-spy-container"),this.config,r),this.genomeSpy.viewFactory.addViewType(B9,(s,c,u,f)=>new jf(s,c,u,f,this.provenance));const a=this.genomeSpy.viewVisibilityPredicate;this.genomeSpy.viewVisibilityPredicate=s=>{var c,u;return(u=(c=this.storeHelper.state.viewSettings)==null?void 0:c.visibilities[s.name])!=null?u:a(s)}}addInitializationListener(e){this._initializationListeners?this._initializationListeners.push(e):e()}toggleFullScreen(){document.fullscreenElement?document.exitFullscreen&&document.exitFullscreen():this.appContainer.requestFullscreen()}isFullPage(){return this.appContainer==document.body}async launch(){var a,s;const e=(a=this.config.bookmarks)!=null&&a.remote?Ci({baseURL:this.config.baseUrl}).load(this.config.bookmarks.remote.url).then(c=>Promise.resolve(JSON.parse(c))):Promise.resolve([]);if(!await this.genomeSpy.launch())return;this.appContainer.querySelector("canvas").setAttribute("tabindex","-1"),this.storeHelper.subscribe(zs(c=>{var u;return(u=c.viewSettings)==null?void 0:u.visibilities},(c,u)=>{var l,d;this.genomeSpy.viewRoot._invalidateCacheByPrefix("size","progeny"),(d=(l=this.getSampleView())==null?void 0:l.summaryViews)==null||d._invalidateCacheByPrefix("size","self");const f=this.genomeSpy.viewRoot.context;f.requestLayoutReflow(),f.animator.requestRender()},this.storeHelper.store.getState()));try{const c=await e;c.length&&(this.globalBookmarkDatabase=new Nk(c))}catch(c){throw new Error(`Cannot load remote bookmarks: ${c}`)}try{await this._restoreStateFromUrlOrBookmark()}catch(c){He(c.toString())}this.storeHelper.subscribe(()=>{this._updateStateToUrl()}),window.addEventListener("hashchange",()=>this._restoreStateFromUrl().catch(c=>He(c.toString())),!1);const r=cs(()=>this._updateStateToUrl(),500,!1);for(const[,c]of this.genomeSpy.getNamedScaleResolutions())c.isZoomable()&&c.addEventListener("domain",r);const i=this.toolbarRef.value;i.appInitialized=!0;const o=qe((s=this.genomeSpy.spec.description)!=null?s:[]);this.isFullPage()&&o.length>0&&(document.title="GenomeSpy - "+o);for(const c of this._initializationListeners)c();this._initializationListeners=void 0}async _restoreStateFromUrlOrBookmark(){var i,o;const e=(i=this.config.bookmarks)==null?void 0:i.remote,n=this.globalBookmarkDatabase;if(!await this._restoreStateFromUrl()&&e&&n){const a=(o=e.initialBookmark)!=null?o:e.tour&&(await n.getNames())[0];if(a){const s=await n.get(a);if(!s)throw new Error(`No such bookmark: ${a}`);e.tour?await Lo(s,this,{mode:"tour",database:n,afterTourBookmark:e.afterTourBookmark}):await Jf(s,this)}}}_updateStateToUrl(){const e={actions:[],scaleDomains:{}},n=this.provenance.getBookmarkableActionHistory();n!=null&&n.length&&(e.actions=n);for(const[o,a]of this.genomeSpy.getNamedScaleResolutions().entries())a.isZoomed()||(e.scaleDomains[o]=a.getComplexDomain());const r=this.storeHelper.state.viewSettings;Object.keys(r.visibilities).length&&(e.viewSettings=r);const i=e.actions.length||Object.keys(e.scaleDomains).length||e.viewSettings?G2(e):"";window.history.replaceState(void 0,document.title,window.location.pathname+window.location.search+i)}async _restoreStateFromUrl(){var r,i;const e=window.location.hash,n=(r=e.match(/^#bookmark:(.+)$/))==null?void 0:r[1];if(n){const o=(i=this.config.bookmarks)==null?void 0:i.remote,a=this.globalBookmarkDatabase;if(o&&a){const s=(await a.getNames()).find(c=>c.replaceAll(" ","-")==n);if(s){const c=await a.get(s);if(!c)throw new Error(`No such bookmark: ${s}`);return await Lo(c,this,{mode:"tour",database:a}),!0}else throw new Error(`No such bookmark: ${n}`)}}if(e&&e.length>0)try{const o=yk(e);return Lo(o,this,{mode:"shared"}),!0}catch(o){console.error(o),He(D`<p>Cannot restore the state:</p><p>${o}</p>`)}return!1}_configureContainer(){this.isFullPage()?(this.appContainer.style.margin="0",this.appContainer.style.padding="0",this.appContainer.style.overflow="hidden",Lk(n5)):this.appContainer.style.position="relative"}getSampleView(){var n;if(!((n=this.genomeSpy)!=null&&n.viewRoot))return;let e;return this.genomeSpy.viewRoot.visit(r=>{if(r instanceof jf)return e=r,qn}),e}}function Lk(t){const e=document.querySelector("head"),n=document.createElement("link");n.setAttribute("rel","shortcut icon"),n.setAttribute("href",t),e.appendChild(n)}async function Bk(t,e,n={}){var o,a,s;let r;if(ee(t)){if(r=document.querySelector(t),!r)throw new Error(`No such element: ${t}`)}else if(t instanceof HTMLElement)r=t;else throw new Error(`Invalid element: ${t}`);let i;try{const c=ze(e)?e:await Y2(e);(o=c.baseUrl)!=null||(c.baseUrl=""),(a=c.width)!=null||(c.width="container"),(s=c.padding)!=null||(c.padding=10);const u=new V2(r,c,n);i=u.genomeSpy,Ok(i,n),await u.launch()}catch(c){r.innerText=c.toString(),console.error(c)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(c,u){const f=i._eventListeners;let l=f.get(c);l||(l=new Set,f.set(c,l)),l.add(u)},removeEventListener(c,u){var l;(l=i._eventListeners.get(c))==null||l.delete(u)},getScaleResolutionByName(c){return i.getNamedScaleResolutions().get(c)}}}function Ok(t,e){e.namedDataProvider&&t.registerNamedDataProvider(e.namedDataProvider)}async function Y2(t){let e;try{e=JSON.parse(await Ci().load(t))}catch(n){throw new Error(`Could not load or parse configuration: ${t}, reason: ${n.message}`)}if(!e.baseUrl){const n=t.match(/^[^?#]*\//);e.baseUrl=n&&n[0]||"./"}return e}j.GenomeSpy=Vg,j.GenomeSpyApp=V2,j.embed=Bk,j.html=D,j.icon=L2,j.loadSpec=Y2,Object.defineProperties(j,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
2166
+ */const G2=t=>!q9(t)&&typeof t.then=="function";class hk extends B2{constructor(){super(...arguments),this._$Cwt=1073741823,this._$Cyt=[],this._$CG=new fk(this),this._$CK=new dk}render(...e){var n;return(n=e.find(r=>!G2(r)))!==null&&n!==void 0?n:we}update(e,n){const r=this._$Cyt;let i=r.length;this._$Cyt=n;const o=this._$CG,a=this._$CK;this.isConnected||this.disconnected();for(let s=0;s<n.length&&!(s>this._$Cwt);s++){const c=n[s];if(!G2(c))return this._$Cwt=s,c;s<i&&c===r[s]||(this._$Cwt=1073741823,i=0,Promise.resolve(c).then(async u=>{for(;a.get();)await a.get();const f=o.deref();if(f!==void 0){const l=f._$Cyt.indexOf(c);l>-1&&l<f._$Cwt&&(f._$Cwt=l,f.setValue(u))}}))}return we}disconnected(){this._$CG.disconnect(),this._$CK.pause()}reconnected(){this._$CG.reconnect(this),this._$CK.resume()}}const pk=Yr(hk);var mk={"":["<em>","</em>"],_:["<strong>","</strong>"],"*":["<strong>","</strong>"],"~":["<s>","</s>"],"\n":["<br />"]," ":["<br />"],"-":["<hr />"]};function H2(t){return t.replace(RegExp("^"+(t.match(/^(\t| )+/)||"")[0],"gm"),"")}function Lo(t){return(t+"").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function ed(t,e){var n,r,i,o,a,s=/((?:^|\n+)(?:\n---+|\* \*(?: \*)+)\n)|(?:^``` *(\w*)\n([\s\S]*?)\n```$)|((?:(?:^|\n+)(?:\t| {2,}).+)+\n*)|((?:(?:^|\n)([>*+-]|\d+\.)\s+.*)+)|(?:!\[([^\]]*?)\]\(([^)]+?)\))|(\[)|(\](?:\(([^)]+?)\))?)|(?:(?:^|\n+)([^\s].*)\n(-{3,}|={3,})(?:\n+|$))|(?:(?:^|\n+)(#{1,6})\s*(.+)(?:\n+|$))|(?:`([^`].*?)`)|( \n\n*|\n{2,}|__|\*\*|[_*]|~~)/gm,c=[],u="",f=e||{},l=0;function d(p){var m=mk[p[1]||""],y=c[c.length-1]==p;return m?m[1]?(y?c.pop():c.push(p),m[0|y]):m[0]:p}function h(){for(var p="";c.length;)p+=d(c[c.length-1]);return p}for(t=t.replace(/^\[(.+?)\]:\s*(.+)$/gm,function(p,m,y){return f[m.toLowerCase()]=y,""}).replace(/^\n+|\n+$/g,"");i=s.exec(t);)r=t.substring(l,i.index),l=s.lastIndex,n=i[0],r.match(/[^\\](\\\\)*\\$/)||((a=i[3]||i[4])?n='<pre class="code '+(i[4]?"poetry":i[2].toLowerCase())+'"><code'+(i[2]?' class="language-'+i[2].toLowerCase()+'"':"")+">"+H2(Lo(a).replace(/^\n+|\n+$/g,""))+"</code></pre>":(a=i[6])?(a.match(/\./)&&(i[5]=i[5].replace(/^\d+/gm,"")),o=ed(H2(i[5].replace(/^\s*[>*+.-]/gm,""))),a==">"?a="blockquote":(a=a.match(/\./)?"ol":"ul",o=o.replace(/^(.*)(\n|$)/gm,"<li>$1</li>")),n="<"+a+">"+o+"</"+a+">"):i[8]?n='<img src="'+Lo(i[8])+'" alt="'+Lo(i[7])+'">':i[10]?(u=u.replace("<a>",'<a href="'+Lo(i[11]||f[r.toLowerCase()])+'">'),n=h()+"</a>"):i[9]?n="<a>":i[12]||i[14]?n="<"+(a="h"+(i[14]?i[14].length:i[13]>"="?1:2))+">"+ed(i[12]||i[15],f)+"</"+a+">":i[16]?n="<code>"+Lo(i[16])+"</code>":(i[17]||i[1])&&(n=d(i[17]||"--"))),u+=r,u+=n;return(u+t.substring(l)+h()).replace(/^\n+|\n+$/g,"")}function Q2(t,e){return!e||/^(data:|([A-Za-z]+:)?\/\/)/.test(t)||t.startsWith("/")?t:(e.endsWith("/")||(e+="/"),e+t)}function gk(t,e={}){const n=ed(t),r=new DOMParser().parseFromString(`<!DOCTYPE html><html><body><div>${n}</div></body></html>`,"text/html");r.normalize(),V2(r.body);for(const o of r.querySelectorAll("a[href]"))o.setAttribute("target","blank"),o.setAttribute("rel","noopener noreferrer"),o.setAttribute("href",Q2(o.getAttribute("href"),e.baseUrl));for(const o of r.querySelectorAll("img[src]"))o.setAttribute("src",Q2(o.getAttribute("src"),e.baseUrl));const i=r.body.removeChild(r.querySelector("body > div"));return i.className="snarkdown",i}function V2(t){if(t.nodeType!==3){if(t.nodeType!==1||/^(script|iframe|object|embed|svg)$/i.test(t.tagName))return t.remove();for(let e=t.attributes.length;e--;){const n=t.attributes[e].name;/^(class|id|name|href|src|alt|align|valign|(on[a-z]+))$/i.test(n)||t.attributes.removeNamedItem(n)}for(let e=t.childNodes.length;e--;)V2(t.childNodes[e])}}function yk(t){t.stopPropagation(),t.preventDefault();const n=t.target.parentElement,r=n.parentElement,o=r.parentElement.querySelector(".panes"),a=[...r.children].findIndex(s=>s==n);for(const s of r.children)s.classList.remove("active-tab");for(const s of o.children)s.classList.remove("active-tab");r.children.item(a).classList.add("active-tab"),o.children.item(a).classList.add("active-tab")}var td={exports:{}};(function(t){var e=function(){var n=String.fromCharCode,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",o={};function a(c,u){if(!o[c]){o[c]={};for(var f=0;f<c.length;f++)o[c][c.charAt(f)]=f}return o[c][u]}var s={compressToBase64:function(c){if(c==null)return"";var u=s._compress(c,6,function(f){return r.charAt(f)});switch(u.length%4){default:case 0:return u;case 1:return u+"===";case 2:return u+"==";case 3:return u+"="}},decompressFromBase64:function(c){return c==null?"":c==""?null:s._decompress(c.length,32,function(u){return a(r,c.charAt(u))})},compressToUTF16:function(c){return c==null?"":s._compress(c,15,function(u){return n(u+32)})+" "},decompressFromUTF16:function(c){return c==null?"":c==""?null:s._decompress(c.length,16384,function(u){return c.charCodeAt(u)-32})},compressToUint8Array:function(c){for(var u=s.compress(c),f=new Uint8Array(u.length*2),l=0,d=u.length;l<d;l++){var h=u.charCodeAt(l);f[l*2]=h>>>8,f[l*2+1]=h%256}return f},decompressFromUint8Array:function(c){if(c==null)return s.decompress(c);for(var u=new Array(c.length/2),f=0,l=u.length;f<l;f++)u[f]=c[f*2]*256+c[f*2+1];var d=[];return u.forEach(function(h){d.push(n(h))}),s.decompress(d.join(""))},compressToEncodedURIComponent:function(c){return c==null?"":s._compress(c,6,function(u){return i.charAt(u)})},decompressFromEncodedURIComponent:function(c){return c==null?"":c==""?null:(c=c.replace(/ /g,"+"),s._decompress(c.length,32,function(u){return a(i,c.charAt(u))}))},compress:function(c){return s._compress(c,16,function(u){return n(u)})},_compress:function(c,u,f){if(c==null)return"";var l,d,h={},p={},m="",y="",g="",x=2,A=3,C=2,v=[],b=0,w=0,E;for(E=0;E<c.length;E+=1)if(m=c.charAt(E),Object.prototype.hasOwnProperty.call(h,m)||(h[m]=A++,p[m]=!0),y=g+m,Object.prototype.hasOwnProperty.call(h,y))g=y;else{if(Object.prototype.hasOwnProperty.call(p,g)){if(g.charCodeAt(0)<256){for(l=0;l<C;l++)b=b<<1,w==u-1?(w=0,v.push(f(b)),b=0):w++;for(d=g.charCodeAt(0),l=0;l<8;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1}else{for(d=1,l=0;l<C;l++)b=b<<1|d,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=0;for(d=g.charCodeAt(0),l=0;l<16;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1}x--,x==0&&(x=Math.pow(2,C),C++),delete p[g]}else for(d=h[g],l=0;l<C;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1;x--,x==0&&(x=Math.pow(2,C),C++),h[y]=A++,g=String(m)}if(g!==""){if(Object.prototype.hasOwnProperty.call(p,g)){if(g.charCodeAt(0)<256){for(l=0;l<C;l++)b=b<<1,w==u-1?(w=0,v.push(f(b)),b=0):w++;for(d=g.charCodeAt(0),l=0;l<8;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1}else{for(d=1,l=0;l<C;l++)b=b<<1|d,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=0;for(d=g.charCodeAt(0),l=0;l<16;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1}x--,x==0&&(x=Math.pow(2,C),C++),delete p[g]}else for(d=h[g],l=0;l<C;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1;x--,x==0&&(x=Math.pow(2,C),C++)}for(d=2,l=0;l<C;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1;for(;;)if(b=b<<1,w==u-1){v.push(f(b));break}else w++;return v.join("")},decompress:function(c){return c==null?"":c==""?null:s._decompress(c.length,32768,function(u){return c.charCodeAt(u)})},_decompress:function(c,u,f){var l=[],d=4,h=4,p=3,m="",y=[],g,x,A,C,v,b,w,E={val:f(0),position:u,index:1};for(g=0;g<3;g+=1)l[g]=g;for(A=0,v=Math.pow(2,2),b=1;b!=v;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),A|=(C>0?1:0)*b,b<<=1;switch(A){case 0:for(A=0,v=Math.pow(2,8),b=1;b!=v;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),A|=(C>0?1:0)*b,b<<=1;w=n(A);break;case 1:for(A=0,v=Math.pow(2,16),b=1;b!=v;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),A|=(C>0?1:0)*b,b<<=1;w=n(A);break;case 2:return""}for(l[3]=w,x=w,y.push(w);;){if(E.index>c)return"";for(A=0,v=Math.pow(2,p),b=1;b!=v;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),A|=(C>0?1:0)*b,b<<=1;switch(w=A){case 0:for(A=0,v=Math.pow(2,8),b=1;b!=v;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),A|=(C>0?1:0)*b,b<<=1;l[h++]=n(A),w=h-1,d--;break;case 1:for(A=0,v=Math.pow(2,16),b=1;b!=v;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),A|=(C>0?1:0)*b,b<<=1;l[h++]=n(A),w=h-1,d--;break;case 2:return y.join("")}if(d==0&&(d=Math.pow(2,p),p++),l[w])m=l[w];else if(w===h)m=x+x.charAt(0);else return null;y.push(m),l[h++]=x+m.charAt(0),d--,x=m,d==0&&(d=Math.pow(2,p),p++)}}};return s}();t!=null&&(t.exports=e)})(td);function bk(){const t=typeof process<"u"?require("util").TextEncoder:TextEncoder;return new t}let Gs;function vk(){let t,e=[];for(let n=0;n<256;n++){t=n;for(let r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;e[n]=t}return e}function Ak(t){Gs!=null||(Gs=vk());let e=-1;const n=bk().encode(t);for(let r=0;r<n.length;r++)e=e>>>8^Gs[(e^n[r])&255];return(e^-1)>>>0}function Y2(t){return("00000000"+Ak(t).toString(16)).slice(-8)}function _2(t){const e=td.exports.compressToEncodedURIComponent(JSON.stringify(t));return"#"+e+Y2(e)}function xk(t){if(!t||t.length<10)throw new Error("The state string in the URL is too short.");const e=t.slice(1,-8),n=t.slice(-8);if(Y2(e)!==n)throw new Error("The state string in the URL is corrupted.");return JSON.parse(td.exports.decompressFromEncodedURIComponent(e))}let Qt;function wk(t){for(const e of t.genomeSpy.getNamedScaleResolutions().values())e.isZoomable()&&e.resetZoom();t.storeHelper.dispatch([...t.provenance.isUndoable()?[jt.ActionCreators.jumpToPast(0)]:[],ni.actions.restoreDefaultVisibilities()])}async function nd(t,e){var n;try{t.actions&&e.provenance.dispatchBookmark(t.actions),e.storeHelper.dispatch(ni.actions.setViewSettings(t.viewSettings));const r=[];for(const[i,o]of Object.entries((n=t.scaleDomains)!=null?n:{})){const a=e.genomeSpy.getNamedScaleResolutions().get(i);a?r.push(a.zoomTo(o)):console.warn(`Cannot restore scale domain. Unknown name: ${i}`)}await Promise.all(r)}catch(r){console.error(r),He(D`<p>Cannot restore the state:</p><p>${r}</p>`),e.provenance.activateState(0)}}async function Bo(t,e,n={}){await nd(t,e),(Qt||t.notes||n.mode=="shared"&&(t.name||t.notes))&&await Ck(t,e,n)}async function Ck(t,e,n={}){Qt!=null||(Qt=ir("tour",e.appContainer)),await Sk(t,e,n)}async function Sk(t,e,n){var m;const r=n.database,i=r?await r.getNames():[],o=i.indexOf(t.name),a=r?` ${o+1} of ${i.length}`:"",s=`${n.mode=="shared"?"Shared bookmark":"Bookmark"}${a}: ${(m=t.name)!=null?m:"Unnamed"}`,c=t.notes?gk(t.notes,{baseUrl:e.genomeSpy.spec.baseUrl}):D`<span class="no-notes">No notes provided</span>`,u=async()=>{if(Qt==null||Qt.close(),Qt=void 0,n.mode=="tour"){const y=n.afterTourBookmark;if(typeof y=="string"){const g=await n.database.get(y);if(!g)throw new Error(`No such bookmark: ${y}`);nd(g,e)}else y===null||wk(e)}},f=async y=>{const g=await r.get(i[y]);Bo(g,e,n),e.appContainer.querySelector("canvas").focus()},l=async()=>{if(await rd(e.localBookmarkDatabase,t,"add"))try{await e.localBookmarkDatabase.put(t)}catch(y){console.warn(y),He(`Cannot import bookmark: ${y}`)}},d=D`<button @click="${u}">${n.mode=="tour"?"End tour":"Close"}</button> ${n.mode=="shared"&&e.localBookmarkDatabase?D`<button @click="${l}">${$(i1).node[0]} Import bookmark</button>`:R} ${r?D`<button @click="${()=>f(o-1)}" ?disabled="${o<=0}">${$(b5).node[0]} Previous</button> <button @click="${()=>f(o+1)}" ?disabled="${o>=i.length-1}">Next ${$(N5).node[0]}</button>`:R}`,p=D`<button title="Collapse" class="collapse" @click="${y=>y.target.closest(".gs-modal").classList.toggle("collapsed")}">${$(A5).node[0]}</button><div class="modal-title">${s}</div><div class="modal-body markdown" style="max-width:600px">${c}</div><div class="modal-buttons">${d}</div>`;Be(p,Qt.content)}function W2(t,e){const n=JSON.stringify(t,void 0,2),r=window.location,i=r.origin+r.pathname+r.search+(e?"#bookmark:"+t.name.replaceAll(" ","-"):_2(t));He(D`<div class="gs-tabs" style="width:600px"><ul class="tabs" @click="${yk}"><li class="active-tab"><button>URL</button></li><li><button>JSON</button></li></ul><div class="panes"><div class="gs-form-group active-tab"><label for="bookmark-url">Here's a link for you:</label><div class="copy-url"><input id="bookmark-url" type="text" .value="${i}"> <button @click="${a=>navigator.clipboard.writeText(i).then(()=>a.target.dispatchEvent(w6())).catch(()=>He("Failed to copy!"))}">Copy</button></div><small>The bookmark URL contains all the bookmarked data, including the possible notes, which will be shown when the link is opened.</small></div><div class="gs-form-group"><textarea id="bookmark-json" style="height:250px">
2167
+ ${n}</textarea> <small>The JSON-formatted bookmark is currently available for development purposes.</small></div></div></div>`,{title:"Share a bookmark",okLabel:"Close"})}function rd(t,e,n){const r={add:"Add bookmark",edit:"Edit bookmark",share:"Share the current view state as a bookmark"}[n],i=(c,u)=>{var f,l;return D`<div class="modal-title">${r}</div><div class="modal-body" style="width:500px">${n=="edit"?D`<div class="gs-alert warning">${$(w5).node[0]} The current visualization state will be updated to the bookmark you are editing.</div>`:R} ${n=="share"?D`<div class="gs-alert info">${$(a1).node[0]} <span>You can add an optional title and notes, which will be shown to the recipient when the bookmark link is opened.</span></div>`:R}<div class="gs-form-group"><label for="bookmark-title">Title</label> <input id="bookmark-title" type="text" ?required="${n=="add"||n=="edit"}" .value="${(f=e.name)!=null?f:""}" .placeholder="${n=="share"?"Add an optional title":""}" @change="${d=>{e.name=X2(d.target.value)}}"></div><div class="gs-form-group"><label for="bookmark-notes">Notes</label> <textarea id="bookmark-notes" rows="4" .value="${(l=e.notes)!=null?l:""}" .placeholder="${n=="share"?"... and notes":""}" @change="${d=>{e.notes=X2(d.target.value)}}"></textarea> <small>Notes will be shown when the bookmark is loaded. You can use <a href="https://www.markdownguide.org/basic-syntax/">markdown</a> for formatting.</small></div></div><div class="modal-buttons"><button class="btn-cancel" @click="${c}">Cancel</button> <button class="btn-primary" @click="${u}">${n=="share"?D`${$(Pl).node[0]} Create a link`:"Save"}</button></div>`},o=e.name,a=()=>!!e.name,s=ir();return new Promise(c=>{const u=()=>{s.close(),c(!1)},f=async()=>{if(!a()){He("Name is missing!",{title:"Error"});return}let d=!0;t&&!(n&&e.name==o)&&await t.get(e.name)&&(d=await He(D`A bookmark with the name <em>${e.name}</em> already exists. It will be overwritten.`,{title:"Bookmark already exists",cancelButton:!0})),d&&(s.close(),c(!0))},l=()=>{s.close(),c(!0)};Be(i(u,n=="share"?l:f),s.content),s.content.querySelector("#bookmark-title").focus()})}function X2(t){if(t!==void 0&&(t=t.trim(),t.length))return t}class Ek extends Bt{constructor(){super(),this.app=void 0}connectedCallback(){super.connectedCallback(),this.dispatchEvent(R2("app",e=>{this.app=e}))}createRenderRoot(){return this}_createBookmarkWithCurrentState(){const e={name:void 0,timestamp:Date.now(),actions:this.app.provenance.getBookmarkableActionHistory(),scaleDomains:{}},n=this.app.storeHelper.state.viewSettings;Object.keys(n.visibilities).length&&(e.viewSettings=n);for(const[r,i]of this.app.genomeSpy.getNamedScaleResolutions().entries())i.isZoomable()&&(e.scaleDomains[r]=i.getComplexDomain());return e}async _shareCurrentState(){const e=this._createBookmarkWithCurrentState();await rd(void 0,e,"share")&&W2(e,!1)}async _addBookmark(e,n){var a,s;const r=n?await e.get(n):void 0,i=!!r,o=this._createBookmarkWithCurrentState();if((a=o.name)!=null||(o.name=r==null?void 0:r.name),(s=o.notes)!=null||(o.notes=r==null?void 0:r.notes),await rd(e,o,i?"edit":"add"))try{await e.put(o,r==null?void 0:r.name),this.requestUpdate()}catch(c){He(`${c}`,{title:"Cannot save the bookmark!"})}}async _loadBookmark(e,n){const r=await e.get(n);r&&Bo(r,this.app,{database:e})}_createContextMenu(e,n,r){r.stopPropagation();const i=r.target.closest("li"),o=()=>He(D`The bookmark <em>${n}</em> will be deleted.`,{title:"Are you sure?",cancelButton:!0}).then(async c=>{c&&(await e.delete(n),this.requestUpdate())}),a=[],s=e==this.app.globalBookmarkDatabase;s||(a.push({label:"Edit and replace...",icon:O5,callback:()=>this._addBookmark(e,n)}),a.push({label:"Delete",icon:z5,callback:o})),a.push({label:"Share...",icon:Pl,callback:async()=>W2(await e.get(n),s)}),My({items:a},i,"right-start")}async _makeBookmarkMenuItems(e,n){const i=(await e.getNames()).map(o=>({label:o,callback:()=>this._loadBookmark(e,o),ellipsisCallback:a=>this._createContextMenu(e,o,a)}));return i.length?[{type:"divider"},{label:n,type:"header"},...i].map(o=>Ey(o)):R}_getBookmarks(){const e=(n,r)=>n?pk(this._makeBookmarkMenuItems(n,r),D`Loading...`):R;return[e(this.app.globalBookmarkDatabase,"Bookmarks on the server"),e(this.app.localBookmarkDatabase,"Bookmarks in the web browser")]}render(){const e=this.app.localBookmarkDatabase,n=e?D`<li><a @click="${()=>this._addBookmark(e)}">Add bookmark...</a></li>`:R,r=e||this.app.globalBookmarkDatabase?D`<div class="dropdown bookmark-dropdown"><button class="tool-btn" title="Bookmarks" @click="${i=>{Jf(i)&&this.requestUpdate()}}">${$(i1).node[0]}</button><ul class="gs-dropdown-menu">${n} ${this._getBookmarks()}</ul></div>`:R;return D`<div class="btn-group">${r} <button class="tool-btn" title="Share" @click="${()=>this._shareCurrentState()}">${$(Pl).node[0]}</button></div>`}}customElements.define("genome-spy-bookmark-button",Ek);class Dk extends Bt{constructor(){super(),this.app=void 0,this.appInitialized=!1}static get properties(){return{app:{type:Object},appInitialized:{type:Boolean}}}createRenderRoot(){return this}_getToolButtons(){const e=this.app.provenance,n=[];e.isEnabled()&&n.push(D`<genome-spy-provenance-buttons .provenance="${e}"></genome-spy-provenance-buttons>`),n.push(D`<genome-spy-view-visibility></genome-spy-view-visibility>`),n.push(D`<genome-spy-bookmark-button></genome-spy-bookmark-button>`);const r=this.app.config.description?qe(this.app.config.description):[];return r.length>1&&n.push(D`<button class="tool-btn" title="Show a description of the visualization" @click="${()=>He(D`${r.slice(1).map(i=>D`<p>${i}</p>`)}`,{title:r[0]})}">${$(a1).node[0]}</button>`),r.length>0&&n.push(D`<span class="vis-title">${r[0]}</span>`),n.push(D`<span class="spacer"></span> ${this.app.appContainer.requestFullscreen?D`<button class="tool-btn" title="Fullscreen" @click="${()=>this.app.toggleFullScreen()}">${$(B5).node[0]}</button>`:R} <button class="tool-btn" title="Help" @click="${()=>window.open("https://genomespy.app/docs/","_blank")}">${$(E5).node[0]}</button>`),n}render(){const e=this.app.genomeSpy;return D`<nav class="gs-toolbar"><a href="https://genomespy.app" target="_blank" class="logo"><img title="GenomeSpy" alt="GenomeSpy" src="${z2}"> </a>${this.appInitialized&&F2(e.viewRoot)?D`<genome-spy-search-field .genomeSpy="${e}"></genome-spy-search-field>`:R} ${this._getToolButtons()}</nav>`}}customElements.define("genome-spy-toolbar",Dk);class Mk{constructor(e){this.storeHelper=e,this._reducers={},this.actionInfoSources=[],this._reducer=void 0,e.addReducer("provenance",(n,r)=>this._reducer?this._reducer(n,r):n!=null?n:{})}addReducer(e,n){this._reducers[e]=n;const r=o=>Object.keys(this._reducers).some(a=>o.type.startsWith(a)),i=(o,a)=>r(a)?a:o!=null?o:null;this._reducer=X6(zf({...this._reducers,lastAction:i}),{ignoreInitialState:!0,filter:r}),this.storeHelper.dispatch({type:"@@redux/REPLACE"+Math.random().toString(36).substring(7).split("").join(".")})}get _storeState(){return this.storeHelper.store.getState()}get _provenanceState(){return this._storeState.provenance}isEnabled(){return!!this.getPresentState()}getPresentState(){return this._provenanceState.present}addActionInfoSource(e){this.actionInfoSources.push(e)}getActionInfo(e){for(const n of this.actionInfoSources){const r=n(e);if(r)return r}}dispatchBookmark(e){this.storeHelper.dispatch([...this.isUndoable()?[jt.ActionCreators.jumpToPast(0)]:[],...e])}isRedoable(){return this.isEnabled()&&this._provenanceState.future.length>0}redo(){this.storeHelper.dispatch(jt.ActionCreators.redo())}isUndoable(){return this.isEnabled()&&this._provenanceState.past.length>0}undo(){this.storeHelper.dispatch(jt.ActionCreators.undo())}isAtInitialState(){return!this.isUndoable()}isEmpty(){const e=this._provenanceState;return!this.isEnabled()||e.past.length+e.future.length<=0}activateState(e){const n=this.getCurrentIndex();e<n?this.storeHelper.dispatch(jt.ActionCreators.jumpToPast(e)):e>n&&this.storeHelper.dispatch(jt.ActionCreators.jumpToFuture(e-n-1))}getCurrentIndex(){var e;return(e=this._provenanceState.past)==null?void 0:e.length}getActionHistory(){const e=this._provenanceState;return e.present&&[...e.past,e.present].map(n=>n.lastAction)}getFullActionHistory(){const e=this._provenanceState;return[...e.past,e.present,...e.future].map(n=>n.lastAction)}getBookmarkableActionHistory(){var e;return(e=this.getActionHistory())==null?void 0:e.slice(1)}}function*Tk(t,e=n=>+n){const n=t.length,r=new ho,i=new Array(n).fill(0);for(const[a,s]of t.entries())s.length&&r.push(a,e(s[0]));let o=0;for(;(o=r.pop())!==void 0;){const a=t[o];let s=i[o];if(yield a[s++],s<a.length){const u=e(a[s]);r.push(o,u),i[o]=s}}}const Ik="sampleCount";class kk extends se{constructor(e,n){super(),this.view=n;const r=n.context.animator;for(const i of n.getAncestors())i instanceof Qf&&(this.provenance=i.provenance,this.provenance.storeHelper.subscribe(o=>r.requestTransition(()=>{this.reset(),this._mergeAndPropagate(Hf(o)),this.complete()})));if(!this.provenance)throw new Error("No SampleView was found!");this.contextObject=void 0}initialize(){this.contextObject=Object.create(super.getGlobalObject());const e=this.view.getEncoding().x;if(Qn(e))this.xAccessor=Z(e.field);else throw new Error("Crash!")}handle(e){}getGlobalObject(){return this.contextObject}_getCollector(){if(this.parent instanceof Qr)return this.parent;throw new Error("MergeFacetsTransform must be a direct child of a Collector")}complete(){this._mergeAndPropagate(this.provenance.getPresentState()[ti]),super.complete()}_mergeAndPropagate(e){const n=[...b2(e.rootGroup)].filter(r=>g2(je(r)));for(const[r,i]of n.entries()){const o=je(i);if(g2(o)){this.contextObject[Ik]=o.samples.length,this.beginBatch({type:"facet",facetId:[r]});const a=o.samples,s=this._getCollector(),c=Tk(a.map(u=>{var f;return(f=s.facetBatches.get([u]))!=null?f:[]}),this.xAccessor);for(const u of c)this._propagate(u)}}this._updateScales()}setParent(e){super.setParent(e)}_updateScales(){const e=new Set;this.view.visit(n=>{if(n instanceof ye&&n.mark.encoding.y){const r=n.getScaleResolution("y");r&&e.add(r)}});for(const n of e)n.reconfigure()}}var Nk="BATCHING_REDUCER.BATCH";function Lk(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Nk;return{type:e,meta:{batch:!0},payload:t}}function Bk(t){return function e(n,r){return r&&r.meta&&r.meta.batch?r.payload.reduce(e,n):t(n,r)}}class Ok{constructor(e){this._reducers=e!=null?e:{},this.store=l9({reducer:{}}),this._listeners=new Set,this.store.subscribe(()=>{const n=this.store.getState();for(const r of this._listeners)r(n)})}get state(){return this.store.getState()}addReducer(e,n){this._reducers[e]=n,this.store.replaceReducer(Bk(zf(this._reducers)))}subscribe(e){this._listeners.add(e)}unsubscribe(e){this._listeners.delete(e)}dispatch(e){Array.isArray(e)?this.store.dispatch(Lk(e)):this.store.dispatch(e)}getDispatcher(){return e=>this.dispatch(e)}}class Pk extends k2{constructor(e){super(),this.bookmarks=e,this.names=e.map(n=>n.name)}async getNames(){return this.names}async get(e){return this.bookmarks.find(n=>n.name==e)}}Og.mergeFacets=kk;class Z2{constructor(e,n,r={}){const i=this;this.config=n,this.storeHelper=new Ok,this.storeHelper.addReducer("viewSettings",ni.reducer),this.provenance=new Mk(this.storeHelper),this._initializationListeners=[],this.toolbarRef=O2(),this.appContainer=e,this._configureContainer(),this.localBookmarkDatabase=typeof n.specId=="string"?new Z9(n.specId):void 0,this.globalBookmarkDatabase=void 0,Be(D`<div class="genome-spy-app"><genome-spy-toolbar ${P2(i.toolbarRef)} .app="${i}"></genome-spy-toolbar><div class="genome-spy-container"></div></div>`,i.appContainer),i.appContainer.querySelector(".genome-spy-app").addEventListener("query-dependency",s=>{s.detail.name=="app"&&(s.detail.setter(i),s.stopPropagation())});const o=s=>this.appContainer.getElementsByClassName(s)[0];this.genomeSpy=new qg(o("genome-spy-container"),this.config,r),this.genomeSpy.viewFactory.addViewType(z9,(s,c,u,f)=>new Qf(s,c,u,f,this.provenance));const a=this.genomeSpy.viewVisibilityPredicate;this.genomeSpy.viewVisibilityPredicate=s=>{var c,u;return(u=(c=this.storeHelper.state.viewSettings)==null?void 0:c.visibilities[s.name])!=null?u:a(s)}}addInitializationListener(e){this._initializationListeners?this._initializationListeners.push(e):e()}toggleFullScreen(){document.fullscreenElement?document.exitFullscreen&&document.exitFullscreen():this.appContainer.requestFullscreen()}isFullPage(){return this.appContainer==document.body}async launch(){var a,s;const e=(a=this.config.bookmarks)!=null&&a.remote?Si({baseURL:this.config.baseUrl}).load(this.config.bookmarks.remote.url).then(c=>Promise.resolve(JSON.parse(c))):Promise.resolve([]);if(!await this.genomeSpy.launch())return;this.appContainer.querySelector("canvas").setAttribute("tabindex","-1"),this.storeHelper.subscribe(js(c=>{var u;return(u=c.viewSettings)==null?void 0:u.visibilities},(c,u)=>{var l,d;this.genomeSpy.viewRoot._invalidateCacheByPrefix("size","progeny"),(d=(l=this.getSampleView())==null?void 0:l.summaryViews)==null||d._invalidateCacheByPrefix("size","self");const f=this.genomeSpy.viewRoot.context;f.requestLayoutReflow(),f.animator.requestRender()},this.storeHelper.store.getState()));try{const c=await e;c.length&&(this.globalBookmarkDatabase=new Pk(c))}catch(c){throw new Error(`Cannot load remote bookmarks: ${c}`)}try{await this._restoreStateFromUrlOrBookmark()}catch(c){He(c.toString())}this.storeHelper.subscribe(()=>{this._updateStateToUrl()}),window.addEventListener("hashchange",()=>this._restoreStateFromUrl().catch(c=>He(c.toString())),!1);const r=us(()=>this._updateStateToUrl(),500,!1);for(const[,c]of this.genomeSpy.getNamedScaleResolutions())c.isZoomable()&&c.addEventListener("domain",r);const i=this.toolbarRef.value;i.appInitialized=!0;const o=qe((s=this.genomeSpy.spec.description)!=null?s:[]);this.isFullPage()&&o.length>0&&(document.title="GenomeSpy - "+o);for(const c of this._initializationListeners)c();this._initializationListeners=void 0}async _restoreStateFromUrlOrBookmark(){var i,o;const e=(i=this.config.bookmarks)==null?void 0:i.remote,n=this.globalBookmarkDatabase;if(!await this._restoreStateFromUrl()&&e&&n){const a=(o=e.initialBookmark)!=null?o:e.tour&&(await n.getNames())[0];if(a){const s=await n.get(a);if(!s)throw new Error(`No such bookmark: ${a}`);e.tour?await Bo(s,this,{mode:"tour",database:n,afterTourBookmark:e.afterTourBookmark}):await nd(s,this)}}}_updateStateToUrl(){const e={actions:[],scaleDomains:{}},n=this.provenance.getBookmarkableActionHistory();n!=null&&n.length&&(e.actions=n);for(const[o,a]of this.genomeSpy.getNamedScaleResolutions().entries())a.isZoomed()||(e.scaleDomains[o]=a.getComplexDomain());const r=this.storeHelper.state.viewSettings;Object.keys(r.visibilities).length&&(e.viewSettings=r);const i=e.actions.length||Object.keys(e.scaleDomains).length||e.viewSettings?_2(e):"";window.history.replaceState(void 0,document.title,window.location.pathname+window.location.search+i)}async _restoreStateFromUrl(){var r,i;const e=window.location.hash,n=(r=e.match(/^#bookmark:(.+)$/))==null?void 0:r[1];if(n){const o=(i=this.config.bookmarks)==null?void 0:i.remote,a=this.globalBookmarkDatabase;if(o&&a){const s=(await a.getNames()).find(c=>c.replaceAll(" ","-")==n);if(s){const c=await a.get(s);if(!c)throw new Error(`No such bookmark: ${s}`);return await Bo(c,this,{mode:"tour",database:a}),!0}else throw new Error(`No such bookmark: ${n}`)}}if(e&&e.length>0)try{const o=xk(e);return Bo(o,this,{mode:"shared"}),!0}catch(o){console.error(o),He(D`<p>Cannot restore the state:</p><p>${o}</p>`)}return!1}_configureContainer(){this.isFullPage()?(this.appContainer.style.margin="0",this.appContainer.style.padding="0",this.appContainer.style.overflow="hidden",Fk(o5)):this.appContainer.style.position="relative"}getSampleView(){var n;if(!((n=this.genomeSpy)!=null&&n.viewRoot))return;let e;return this.genomeSpy.viewRoot.visit(r=>{if(r instanceof Qf)return e=r,qn}),e}}function Fk(t){const e=document.querySelector("head"),n=document.createElement("link");n.setAttribute("rel","shortcut icon"),n.setAttribute("href",t),e.appendChild(n)}async function zk(t,e,n={}){var o,a,s;let r;if(te(t)){if(r=document.querySelector(t),!r)throw new Error(`No such element: ${t}`)}else if(t instanceof HTMLElement)r=t;else throw new Error(`Invalid element: ${t}`);let i;try{const c=ze(e)?e:await q2(e);(o=c.baseUrl)!=null||(c.baseUrl=""),(a=c.width)!=null||(c.width="container"),(s=c.padding)!=null||(c.padding=10);const u=new Z2(r,c,n);i=u.genomeSpy,Rk(i,n),await u.launch()}catch(c){r.innerText=c.toString(),console.error(c)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(c,u){const f=i._eventListeners;let l=f.get(c);l||(l=new Set,f.set(c,l)),l.add(u)},removeEventListener(c,u){var l;(l=i._eventListeners.get(c))==null||l.delete(u)},getScaleResolutionByName(c){return i.getNamedScaleResolutions().get(c)}}}function Rk(t,e){e.namedDataProvider&&t.registerNamedDataProvider(e.namedDataProvider)}async function q2(t){let e;try{e=JSON.parse(await Si().load(t))}catch(n){throw new Error(`Could not load or parse configuration: ${t}, reason: ${n.message}`)}if(!e.baseUrl){const n=t.match(/^[^?#]*\//);e.baseUrl=n&&n[0]||"./"}return e}j.GenomeSpy=qg,j.GenomeSpyApp=Z2,j.embed=zk,j.html=D,j.icon=z2,j.loadSpec=q2,Object.defineProperties(j,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});