@marimo-team/frontend 0.14.11-dev7 → 0.14.11-dev70
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/assets/{ConnectedDataExplorerComponent-C0P31a5y.js → ConnectedDataExplorerComponent-C8KNJwme.js} +3 -3
- package/dist/assets/{ImageComparisonComponent-DXDeGx2f.js → ImageComparisonComponent-X63AQX3Z.js} +1 -1
- package/dist/assets/{VegaLite-CUqFyetE.js → VegaLite-Cwgramz7.js} +8 -8
- package/dist/assets/_baseEach-BwRvFCcX.js +1 -0
- package/dist/assets/_baseMap-BPkh-Xdm.js +1 -0
- package/dist/assets/_baseUniq-3M3qvtAU.js +1 -0
- package/dist/assets/{_createAggregator-SoA2y5HH.js → _createAggregator-BR0sgQ-H.js} +1 -1
- package/dist/assets/{any-language-editor-Bw2cdBsS.js → any-language-editor-B_3TElfE.js} +1 -1
- package/dist/assets/arc-ZB5pDULS.js +1 -0
- package/dist/assets/architectureDiagram-NQ2NVSRB-C-Q6h5E0.js +36 -0
- package/dist/assets/blockDiagram-PHRCVELO-DF26LRMN.js +122 -0
- package/dist/assets/{c4Diagram-VJAJSXHY-BHtN7uMz.js → c4Diagram-6F6E4RAY-DxKKy3dR.js} +2 -2
- package/dist/assets/channel-C76YDAut.js +1 -0
- package/dist/assets/{chunk-4BMEZGHF-BO5DiwLV.js → chunk-353BL4L5-BMNvAnXk.js} +1 -1
- package/dist/assets/{chunk-D6G4REZN-CbYGlbyQ.js → chunk-67H74DCK-BowtWazm.js} +1 -1
- package/dist/assets/chunk-6OLS64BW-r7_enOd_.js +220 -0
- package/dist/assets/{chunk-XZIHB7SX-COKmet6t.js → chunk-AACKK3MU-ObI-Jeuz.js} +1 -1
- package/dist/assets/chunk-BFAMUDN2-DZMNJ0lb.js +1 -0
- package/dist/assets/chunk-E2GYISFI-BftMzG6t.js +15 -0
- package/dist/assets/{chunk-A2AXSNBT-B07L-F60.js → chunk-QEP2MXWD-DYoXB8V9.js} +4 -3
- package/dist/assets/chunk-SKB7J2MH-CPXkWq12.js +1 -0
- package/dist/assets/{circle-play-DSXPiHO0.js → circle-play-CEu-KF9A.js} +2 -2
- package/dist/assets/classDiagram-BGRH5UQR-B77_BoI9.js +1 -0
- package/dist/assets/classDiagram-v2-O24JOBDK-B77_BoI9.js +1 -0
- package/dist/assets/clone-DghVKhMc.js +1 -0
- package/dist/assets/compile-DHU5S3pl.js +10 -0
- package/dist/assets/dagre-FFZHY6LT-BAWZisFt.js +4 -0
- package/dist/assets/data-grid-overlay-editor-DST7wmtm.js +1 -0
- package/dist/assets/diagram-3EMPZRKU-BfiQqaJS.js +24 -0
- package/dist/assets/diagram-5UYTHUR4-BPM94rdL.js +24 -0
- package/dist/assets/diagram-ZTM2IBQH-BZivztwZ.js +43 -0
- package/dist/assets/edit-page-BtOmb7sx.js +148 -0
- package/dist/assets/{erDiagram-Q7BY3M3F-l-V_9Yws.js → erDiagram-R3QVA2FD-D5PS4EvQ.js} +1 -1
- package/dist/assets/flowDiagram-PKI6S5ZS-CU-Va1aE.js +162 -0
- package/dist/assets/ganttDiagram-EK5VF46D-kiop1EZF.js +267 -0
- package/dist/assets/gitGraphDiagram-GW3U2K7C-pn54JXWe.js +65 -0
- package/dist/assets/glide-data-editor-BDVFlbsw.js +132 -0
- package/dist/assets/glide-data-editor-DcmjcDkq.css +1 -0
- package/dist/assets/{graph-DpLAfWzk.js → graph-DMvggPR6.js} +1 -1
- package/dist/assets/home-page-COgvAP7J.js +9 -0
- package/dist/assets/index-BEQfoZiP.js +1 -0
- package/dist/assets/{index-N67HDT2u.js → index-BVdeH6k_.js} +1 -1
- package/dist/assets/index-BYwm8dNP.js +507 -0
- package/dist/assets/{index-DbunLlvf.js → index-Bb5pgMhk.js} +1 -1
- package/dist/assets/index-BeYYZckp.js +1 -0
- package/dist/assets/{index-DZWCSqpf.js → index-BfjvvzIj.js} +1 -1
- package/dist/assets/{index-C9EbJL5c.js → index-Bt1t99Zw.js} +1 -1
- package/dist/assets/{index-DP4HiwTU.js → index-CKJHZ3r1.js} +1 -1
- package/dist/assets/{index-CmVTfWOx.js → index-CP6F7acK.js} +1 -1
- package/dist/assets/index-Cmv4qk-G.js +1 -0
- package/dist/assets/index-CsdFJkJw.css +1 -0
- package/dist/assets/index-D1DYyjFi.js +1 -0
- package/dist/assets/index-D5319C1F.js +1 -0
- package/dist/assets/{index-Cs9jrmWP.js → index-DAeT4AvJ.js} +1 -1
- package/dist/assets/{index-DQwFB8dN.js → index-DHSLEKeh.js} +2 -2
- package/dist/assets/index-DLz8vg9X.js +1 -0
- package/dist/assets/{index-CxQo8Qlm.js → index-DPhERrz5.js} +1 -1
- package/dist/assets/{index-DAMc4rP9.js → index-DvjfakkM.js} +1 -1
- package/dist/assets/{index-Cig6xGYH.js → index-IyocdUUZ.js} +1 -1
- package/dist/assets/{index-Bz3Lb65G.js → index-OQKfsQfq.js} +1 -1
- package/dist/assets/{index-Czo055fo.js → index-S8y4ArOY.js} +1 -1
- package/dist/assets/infoDiagram-RLU2ROGC-EF8K4onx.js +2 -0
- package/dist/assets/journeyDiagram-EWQZEKCU-r_tJeooO.js +139 -0
- package/dist/assets/{kanban-definition-NDS4AKOZ-Cw4Vh4wD.js → kanban-definition-ILFWEQ3N-Dh1DY3to.js} +9 -8
- package/dist/assets/{layout-DodQLUx6.js → layout-32UR0ign.js} +1 -1
- package/dist/assets/linear-CAauVgN5.js +1 -0
- package/dist/assets/links-ZFL8n2Fm.js +17 -0
- package/dist/assets/loro_wasm_bg-bPYKkGLG.wasm +0 -0
- package/dist/assets/mermaid-COv7IYsE.js +152 -0
- package/dist/assets/min-dY51xMAa.js +1 -0
- package/dist/assets/{mindmap-definition-ALO5MXBD-C0KGo_i_.js → mindmap-definition-CZNETY7S-DBqhb2Xi.js} +4 -4
- package/dist/assets/number-overlay-editor-BFzZfMzz.js +9 -0
- package/dist/assets/{pieDiagram-IB7DONF6-DCnELF9y.js → pieDiagram-NIOCPIFQ-0MqmV6Yq.js} +1 -1
- package/dist/assets/{quadrantDiagram-7GDLP6J5-D0cP5ixt.js → quadrantDiagram-2OG54O6I-fGCClEd2.js} +1 -1
- package/dist/assets/{react-plotly-BmDAcz3M.js → react-plotly-CS4p4Iuj.js} +1 -1
- package/dist/assets/{requirementDiagram-KVF5MWMF-BTksN04O.js → requirementDiagram-SO3GGRV7-XUEKHJ00.js} +3 -3
- package/dist/assets/run-page-D_I2RT57.js +1 -0
- package/dist/assets/{sankeyDiagram-QLVOVGJD-DECOJIMC.js → sankeyDiagram-4UZDY2LN-DEr-GME0.js} +4 -4
- package/dist/assets/save-worker-B8gk1S9x.js +1 -0
- package/dist/assets/sequenceDiagram-ZIKVLSP4-DTVzsjuC.js +122 -0
- package/dist/assets/slides-component-yP61stiA.js +1 -0
- package/dist/assets/sortBy-BbmYplKF.js +1 -0
- package/dist/assets/stateDiagram-XX37X6EN-CR4xcA7J.js +1 -0
- package/dist/assets/stateDiagram-v2-GD6S3NHB-D9oq-Lg_.js +1 -0
- package/dist/assets/storage-B25B7wsH.js +25 -0
- package/dist/assets/{terminal-MtCDBvKs.js → terminal-BA0vFnfv.js} +1 -1
- package/dist/assets/{time-BoP93jle.js → time-DwTb9sAM.js} +1 -1
- package/dist/assets/timeline-definition-RI47OAVP-D7t9EQY4.js +61 -0
- package/dist/assets/tracing-B19mVCbz.js +2 -0
- package/dist/assets/trash-DBxjDZ4V.js +6 -0
- package/dist/assets/treemap-FKARHQ26-CRawZJDL.js +126 -0
- package/dist/assets/vega-component-BZiFJ9e0.js +1 -0
- package/dist/assets/worker-BYA2ASe8.js +1 -0
- package/dist/assets/worker-Ch6cKXnI.js +1 -0
- package/dist/assets/xychartDiagram-H2YORKM3-CT55rg7V.js +7 -0
- package/dist/index.html +4 -2
- package/package.json +45 -44
- package/dist/assets/_baseEach-BHb51vC7.js +0 -1
- package/dist/assets/_baseMap--rH4lBFQ.js +0 -1
- package/dist/assets/_baseUniq-CABXtSlj.js +0 -1
- package/dist/assets/arc-CfyY4LWz.js +0 -1
- package/dist/assets/architectureDiagram-IEHRJDOE-rGoAHYH8.js +0 -36
- package/dist/assets/blockDiagram-JOT3LUYC-ZBJWq8Z_.js +0 -121
- package/dist/assets/channel-C96bdTqW.js +0 -1
- package/dist/assets/chunk-AEK57VVT-DN2-tsCz.js +0 -220
- package/dist/assets/chunk-RZ5BOZE2-DVex9AD8.js +0 -1
- package/dist/assets/classDiagram-GIVACNV2-CehC5H1T.js +0 -1
- package/dist/assets/classDiagram-v2-COTLJTTW-CehC5H1T.js +0 -1
- package/dist/assets/clone-H0gxlZXI.js +0 -1
- package/dist/assets/compile-DEz1Y6_F.js +0 -10
- package/dist/assets/dagre-OKDRZEBW-CymbL2JX.js +0 -4
- package/dist/assets/data-editor-CTGVBJdC.js +0 -142
- package/dist/assets/diagram-SSKATNLV-DY5vs_Bj.js +0 -43
- package/dist/assets/diagram-VNBRO52H-ZuQiOKh8.js +0 -24
- package/dist/assets/edit-page-DcQ6ZhfW.js +0 -144
- package/dist/assets/flowDiagram-4HSFHLVR-BsHIJJTe.js +0 -161
- package/dist/assets/ganttDiagram-APWFNJXF-2gy5YbWU.js +0 -257
- package/dist/assets/gitGraphDiagram-7IBYFJ6S-B_ELHLbw.js +0 -65
- package/dist/assets/home-page-6auHzaGk.js +0 -9
- package/dist/assets/index-8IZtaDUn.css +0 -1
- package/dist/assets/index-B-mClP__.js +0 -1
- package/dist/assets/index-BuqjbKw0.js +0 -1
- package/dist/assets/index-C9EPiaCd.js +0 -1
- package/dist/assets/index-DDVWq6NK.js +0 -501
- package/dist/assets/index-FYYNNs_X.js +0 -1
- package/dist/assets/index-kmp97oxc.js +0 -1
- package/dist/assets/infoDiagram-PH2N3AL5-BwbaSo89.js +0 -2
- package/dist/assets/journeyDiagram-U35MCT3I-NKSvtlZA.js +0 -138
- package/dist/assets/linear-B_OPGLLI.js +0 -1
- package/dist/assets/loro_wasm_bg-DHBNbovs.wasm +0 -0
- package/dist/assets/mermaid-CVRC4Ruz.js +0 -152
- package/dist/assets/min-VmgWsmJ_.js +0 -1
- package/dist/assets/radar-MK3ICKWK-D8LhkSau.js +0 -126
- package/dist/assets/run-page-17VQxU3e.js +0 -1
- package/dist/assets/save-worker-DZnx0AG9.js +0 -1
- package/dist/assets/sequenceDiagram-X6HHIX6F-C5eDWwoH.js +0 -122
- package/dist/assets/shutdown-button-QvkERkPd.js +0 -17
- package/dist/assets/slides-component-DchvPU9C.js +0 -1
- package/dist/assets/sortBy-7ke7bFD2.js +0 -1
- package/dist/assets/stateDiagram-DGXRK772-D6Kwy963.js +0 -1
- package/dist/assets/stateDiagram-v2-YXO3MK2T-Bk10XR94.js +0 -1
- package/dist/assets/storage-BeNhlsrY.js +0 -27
- package/dist/assets/timeline-definition-BDJGKUSR-T1la59d1.js +0 -61
- package/dist/assets/tracing-CCltm96L.js +0 -2
- package/dist/assets/vega-component-j1BDb2QJ.js +0 -1
- package/dist/assets/worker-BbdB3qWL.js +0 -1
- package/dist/assets/worker-CnoOKJWk.js +0 -1
- package/dist/assets/xychartDiagram-VJFVF3MP-CoJqer7_.js +0 -7
- /package/dist/assets/{shutdown-button-C1rhMrxo.css → links-C1rhMrxo.css} +0 -0
- /package/dist/assets/{transform-DetRMEbJ.js → transform-CDNfLgV5.js} +0 -0
@@ -1,10 +0,0 @@
|
|
1
|
-
import{cx as Ws,gA as Kh,gB as Kb,gC as Qb,gD as Hl,gE as bt,gF as In,gG as K,gH as tt,gI as Me,cI as P,gJ as j,gK as Hs,gL as Be,gM as ka,gN as V,gO as Zb,gP as tx,gQ as xt,gR as Qh,gS as en,gT as Wn,gU as Do,gV as ze,gW as kr,cH as Zh,gX as nx,gY as ex,gZ as rx,g_ as ix,g$ as Bt,h0 as tp,h1 as np,by as ax,h2 as ei,h3 as ox,h4 as Gl,h5 as Fo,h6 as ep,h7 as rp,h8 as ip,h9 as sx,ha as ux,cE as lx,cy as h6,cD as p6,hb as m6,bz as g6,bP as y6,bQ as v6,hc as b6,bS as x6,bT as w6,bU as A6,hd as Dr,cJ as Q,he as $t,cK as Z,hf as cx,hg as Oi,hh as Gs,hi as ap,hj as Vl,hk as op,hl as sp,hm as G,bH as fx,hn as Da,ho as Co,hp as dx,hq as hx,hr as px,hs as mx,ht as gx,hu as yx,hv as vx,hw as bx,hx as xx,hy as wx,hz as Ax,hA as _x,hB as kx,hC as Dx,hD as Fx,hE as Cx,hF as Ex,hG as $x,hH as Sx,hI as Mx,hJ as Bx,hK as zx,hL as up,cM as Fa,hM as Ox,hN as Nx,cL as Yl,hO as Ni,hP as _6,hQ as k6,hR as D6,hS as F6,hT as C6,hU as E6,hV as $6,hW as S6,hX as M6,hY as B6,hZ as z6,h_ as O6,h$ as N6,i0 as Rx,i1 as R6,i2 as T6,i3 as P6,aK as j6,i4 as L6,i5 as q6,i6 as U6,i7 as I6,i8 as W6,i9 as H6,ia as G6,cN as lp}from"./index-DDVWq6NK.js";import{m as cp,a as Ca,d as V6,r as Y6,l as fp,i as X6,h as J6,n as K6,c as Q6,u as Z6,b as t8,t as n8,e as e8}from"./time-BoP93jle.js";import{n as r8,b as i8,i as Vs,d as a8,e as o8,f as s8,o as u8,g as Xl,h as Tx,j as Eo,t as dp,a as hp,k as Ri,m as Ea,l as l8,p as c8,q as f8}from"./linear-B_OPGLLI.js";import{r as xe}from"./range-CtcPcB_L.js";import{R as Px,r as d8,d as h8,e as p8,m as jx,o as Lx,C as m8,h as pp,p as mp,n as Oe,q as g8,s as y8,i as v8,a as b8,u as x8,v as w8,b as A8,k as _8,j as k8,w as Jl,T as D8,l as F8,t as C8,g as E8}from"./timer-Bqd5yn_a.js";import{i as $8}from"./zoom-COrs4lFh.js";import{i as $a,a as Ti}from"./init-DLRA0X12.js";import{I as Kl,o as qx,i as S8}from"./ordinal-DDUp3AbE.js";import{c as Fr}from"./colors-bszWmPJw.js";import{w as Ux,n as M8,z as Ix,a as Hn,J as B8,K as z8,l as Wx,b as O8,t as N8,p as R8,o as T8,q as P8,r as j8,u as L8,x as q8,v as U8,y as I8,B as W8,C as H8,A as G8,F as V8,E as Y8,D as X8,G as J8,H as K8,I as Q8,k as Z8,L as gp}from"./step-BwsUM5iJ.js";import{d as t9}from"./arc-CfyY4LWz.js";class Gn{constructor(){this._partials=new Float64Array(32),this._n=0}add(n){const e=this._partials;let r=0;for(let i=0;i<this._n&&i<32;i++){const a=e[i],o=n+a,s=Math.abs(n)<Math.abs(a)?n-(o-a):a-(o-n);s&&(e[r++]=s),n=o}return e[r]=n,this._n=r+1,this}valueOf(){const n=this._partials;let e,r,i,a=this._n,o=0;if(a>0){for(o=n[--a];a>0&&(e=o,r=n[--a],o=e+r,i=r-(o-e),!i););a>0&&(i<0&&n[a-1]<0||i>0&&n[a-1]>0)&&(r=2*i,e=o+r,r==e-o&&(o=e))}return o}}function Hx(t,n){return(t==null||!(t>=t))-(n==null||!(n>=n))||(t<n?-1:t>n?1:0)}function Gx(t,n,e=0,r=1/0,i){if(n=Math.floor(n),e=Math.floor(Math.max(0,e)),r=Math.floor(Math.min(t.length-1,r)),!(e<=n&&n<=r))return t;for(i=i===void 0?Hx:function(a=Ws){if(a===Ws)return Hx;if(typeof a!="function")throw new TypeError("compare is not a function");return(o,s)=>{const u=a(o,s);return u||u===0?u:(a(s,s)===0)-(a(o,o)===0)}}(i);r>e;){if(r-e>600){const u=r-e+1,l=n-e+1,c=Math.log(u),f=.5*Math.exp(2*c/3),d=.5*Math.sqrt(c*f*(u-f)/u)*(l-u/2<0?-1:1);Gx(t,n,Math.max(e,Math.floor(n-l*f/u+d)),Math.min(r,Math.floor(n+(u-l)*f/u+d)),i)}const a=t[n];let o=e,s=r;for(Ys(t,e,n),i(t[r],a)>0&&Ys(t,e,r);o<s;){for(Ys(t,o,s),++o,--s;i(t[o],a)<0;)++o;for(;i(t[s],a)>0;)--s}i(t[e],a)===0?Ys(t,e,s):(++s,Ys(t,s,r)),s<=n&&(e=s+1),n<=s&&(r=s-1)}return t}function Ys(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function yp(t,n,e){if((r=(t=Float64Array.from(r8(t,e))).length)&&!isNaN(n=+n)){if(n<=0||r<2)return cp(t);if(n>=1)return Ca(t);var r,i=(r-1)*n,a=Math.floor(i),o=Ca(Gx(t,a).subarray(0,a+1));return o+(cp(t.subarray(a+1))-o)*(i-a)}}function Vx(t,n,e=i8){if((r=t.length)&&!isNaN(n=+n)){if(n<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,i=(r-1)*n,a=Math.floor(i),o=+e(t[a],a,t);return o+(+e(t[a+1],a+1,t)-o)*(i-a)}}function Yx(t,n){return yp(t,.5,n)}function Xx(t){return Array.from(function*(n){for(const e of n)yield*e}(t))}function Jx(t,n){let e=0;for(let r of t)(r=+r)&&(e+=r);return e}function n9(t){return t instanceof Kl?t:new Kl(t)}function Ql(t){const n=t||Me,e=[],r={};return e.add=i=>{const a=n(i);return r[a]||(r[a]=1,e.push(i)),e},e.remove=i=>{const a=n(i);if(r[a]){r[a]=0;const o=e.indexOf(i);o>=0&&e.splice(o,1)}return e},e}async function Zl(t,n){try{await n(t)}catch(e){t.error(e)}}const Kx=Symbol("vega_id");let e9=1;function tc(t){return!(!t||!st(t))}function st(t){return t[Kx]}function Qx(t,n){return t[Kx]=n,t}function St(t){const n=t===Object(t)?t:{data:t};return st(n)?n:Qx(n,e9++)}function vp(t){return nc(t,St({}))}function nc(t,n){for(const e in t)n[e]=t[e];return n}function Zx(t,n){return Qx(n,st(t))}function Sa(t,n){return t?n?(e,r)=>t(e,r)||st(n(e))-st(n(r)):(e,r)=>t(e,r)||st(e)-st(r):null}function t2(t){return t&&t.constructor===Ma}function Ma(){const t=[],n=[],e=[],r=[],i=[];let a=null,o=!1;return{constructor:Ma,insert(s){const u=K(s),l=u.length;for(let c=0;c<l;++c)t.push(u[c]);return this},remove(s){const u=bt(s)?r:n,l=K(s),c=l.length;for(let f=0;f<c;++f)u.push(l[f]);return this},modify(s,u,l){const c={field:u,value:In(l)};return bt(s)?(c.filter=s,i.push(c)):(c.tuple=s,e.push(c)),this},encode(s,u){return bt(s)?i.push({filter:s,field:u}):e.push({tuple:s,field:u}),this},clean(s){return a=s,this},reflow(){return o=!0,this},pulse(s,u){const l={},c={};let f,d,h,p,m,g;for(f=0,d=u.length;f<d;++f)l[st(u[f])]=1;for(f=0,d=n.length;f<d;++f)m=n[f],l[st(m)]=-1;for(f=0,d=r.length;f<d;++f)p=r[f],u.forEach(v=>{p(v)&&(l[st(v)]=-1)});for(f=0,d=t.length;f<d;++f)m=t[f],g=st(m),l[g]?l[g]=1:s.add.push(St(t[f]));for(f=0,d=u.length;f<d;++f)m=u[f],l[st(m)]<0&&s.rem.push(m);function y(v,x,b){b?v[x]=b(v):s.encode=x,o||(c[st(v)]=v)}for(f=0,d=e.length;f<d;++f)h=e[f],m=h.tuple,p=h.field,g=l[st(m)],g>0&&(y(m,p,h.value),s.modifies(p));for(f=0,d=i.length;f<d;++f)h=i[f],p=h.filter,u.forEach(v=>{p(v)&&l[st(v)]>0&&y(v,h.field,h.value)}),s.modifies(h.field);if(o)s.mod=n.length||r.length?u.filter(v=>l[st(v)]>0):u.slice();else for(g in c)s.mod.push(c[g]);return(a||a==null&&(n.length||r.length))&&s.clean(!0),s}}}const ec="_:mod:_";function rc(){Object.defineProperty(this,ec,{writable:!0,value:{}})}rc.prototype={set(t,n,e,r){const i=this,a=i[t],o=i[ec];return n!=null&&n>=0?(a[n]!==e||r)&&(a[n]=e,o[n+":"+t]=-1,o[t]=-1):(a!==e||r)&&(i[t]=e,o[t]=P(e)?1+e.length:-1),i},modified(t,n){const e=this[ec];if(!arguments.length){for(const r in e)if(e[r])return!0;return!1}if(P(t)){for(let r=0;r<t.length;++r)if(e[t[r]])return!0;return!1}return n!=null&&n>=0?n+1<e[t]||!!e[n+":"+t]:!!e[t]},clear(){return this[ec]={},this}};let r9=0;const i9=new rc;function Ut(t,n,e,r){this.id=++r9,this.value=t,this.stamp=-1,this.rank=-1,this.qrank=-1,this.flags=0,n&&(this._update=n),e&&this.parameters(e,r)}function n2(t){return function(n){const e=this.flags;return arguments.length===0?!!(e&t):(this.flags=n?e|t:e&~t,this)}}Ut.prototype={targets(){return this._targets||(this._targets=Ql(Hs))},set(t){return this.value!==t?(this.value=t,1):0},skip:n2(1),modified:n2(2),parameters(t,n,e){n=n!==!1;const r=this._argval=this._argval||new rc,i=this._argops=this._argops||[],a=[];let o,s,u,l;const c=(f,d,h)=>{h instanceof Ut?(h!==this&&(n&&h.targets().add(this),a.push(h)),i.push({op:h,name:f,index:d})):r.set(f,d,h)};for(o in t)if(s=t[o],o==="pulse")K(s).forEach(f=>{f instanceof Ut?f!==this&&(f.targets().add(this),a.push(f)):j("Pulse parameters must be operator instances.")}),this.source=s;else if(P(s))for(r.set(o,-1,Array(u=s.length)),l=0;l<u;++l)c(o,l,s[l]);else c(o,-1,s);return this.marshall().clear(),e&&(i.initonly=!0),a},marshall(t){const n=this._argval||i9,e=this._argops;let r,i,a,o;if(e){const s=e.length;for(i=0;i<s;++i)r=e[i],a=r.op,o=a.modified()&&a.stamp===t,n.set(r.name,r.index,a.value,o);if(e.initonly){for(i=0;i<s;++i)r=e[i],r.op.targets().remove(this);this._argops=null,this._update=null}}return n},detach(){const t=this._argops;let n,e,r,i;if(t)for(n=0,e=t.length;n<e;++n)r=t[n],i=r.op,i._targets&&i._targets.remove(this);this.pulse=null,this.source=null},evaluate(t){const n=this._update;if(n){const e=this.marshall(t.stamp),r=n.call(this,e,t);if(e.clear(),r!==this.value)this.value=r;else if(!this.modified())return t.StopPropagation}},run(t){if(t.stamp<this.stamp)return t.StopPropagation;let n;return this.skip()?(this.skip(!1),n=0):n=this.evaluate(t),this.pulse=n||t}};let a9=0;function ic(t,n,e){this.id=++a9,this.value=null,e&&(this.receive=e),t&&(this._filter=t),n&&(this._apply=n)}function Pi(t,n,e){return new ic(t,n,e)}ic.prototype={_filter:Be,_apply:Me,targets(){return this._targets||(this._targets=Ql(Hs))},consume(t){return arguments.length?(this._consume=!!t,this):!!this._consume},receive(t){if(this._filter(t)){const n=this.value=this._apply(t),e=this._targets,r=e?e.length:0;for(let i=0;i<r;++i)e[i].receive(n);this._consume&&(t.preventDefault(),t.stopPropagation())}},filter(t){const n=Pi(t);return this.targets().add(n),n},apply(t){const n=Pi(null,t);return this.targets().add(n),n},merge(){const t=Pi();this.targets().add(t);for(let n=0,e=arguments.length;n<e;++n)arguments[n].targets().add(t);return t},throttle(t){let n=-1;return this.filter(()=>{const e=Date.now();return e-n>t?(n=e,1):0})},debounce(t){const n=Pi();return this.targets().add(Pi(null,null,Qh(t,e=>{const r=e.dataflow;n.receive(e),r&&r.run&&r.run()}))),n},between(t,n){let e=!1;return t.targets().add(Pi(null,null,()=>e=!0)),n.targets().add(Pi(null,null,()=>e=!1)),this.filter(()=>e)},detach(){this._filter=Be,this._targets=null}};const o9={skip:!0};function s9(t,n,e,r,i,a){const o=xt({},a,o9);let s,u;bt(e)||(e=In(e)),r===void 0?s=l=>t.touch(e(l)):bt(r)?(u=new Ut(null,r,i,!1),s=l=>{u.evaluate(l);const c=e(l),f=u.value;t2(f)?t.pulse(c,f,a):t.update(c,f,o)}):s=l=>t.update(e(l),r,o),n.apply(s)}function u9(t,n,e,r,i,a){if(r===void 0)n.targets().add(e);else{const o=a||{},s=new Ut(null,function(u,l){return l=bt(l)?l:In(l),u?function(c,f){const d=l(c,f);return u.skip()||(u.skip(d!==this.value).value=d),d}:l}(e,r),i,!1);s.modified(o.force),s.rank=n.rank,n.targets().add(s),e&&(s.skip(!0),s.value=e.value,s.targets().add(e),t.connect(e,[s]))}}const ac={};function ji(t,n,e){this.dataflow=t,this.stamp=n??-1,this.add=[],this.rem=[],this.mod=[],this.fields=null,this.encode=e||null}function bp(t,n){const e=[];return ka(t,n,r=>e.push(r)),e}function e2(t,n){const e={};return t.visit(n,r=>{e[st(r)]=1}),r=>e[st(r)]?null:r}function oc(t,n){return t?(e,r)=>t(e,r)&&n(e,r):n}function xp(t,n,e,r){const i=this;let a=0;this.dataflow=t,this.stamp=n,this.fields=null,this.encode=r||null,this.pulses=e;for(const o of e)if(o.stamp===n){if(o.fields){const s=i.fields||(i.fields={});for(const u in o.fields)s[u]=1}o.changed(i.ADD)&&(a|=i.ADD),o.changed(i.REM)&&(a|=i.REM),o.changed(i.MOD)&&(a|=i.MOD)}this.changes=a}function r2(t){return t.error("Dataflow already running. Use runAsync() to chain invocations."),t}ji.prototype={StopPropagation:ac,ADD:1,REM:2,MOD:4,ADD_REM:3,ADD_MOD:5,ALL:7,REFLOW:8,SOURCE:16,NO_SOURCE:32,NO_FIELDS:64,fork(t){return new ji(this.dataflow).init(this,t)},clone(){const t=this.fork(7);return t.add=t.add.slice(),t.rem=t.rem.slice(),t.mod=t.mod.slice(),t.source&&(t.source=t.source.slice()),t.materialize(23)},addAll(){let t=this;return!t.source||t.add===t.rem||!t.rem.length&&t.source.length===t.add.length||(t=new ji(this.dataflow).init(this),t.add=t.source,t.rem=[]),t},init(t,n){const e=this;return e.stamp=t.stamp,e.encode=t.encode,!t.fields||64&n||(e.fields=t.fields),1&n?(e.addF=t.addF,e.add=t.add):(e.addF=null,e.add=[]),2&n?(e.remF=t.remF,e.rem=t.rem):(e.remF=null,e.rem=[]),4&n?(e.modF=t.modF,e.mod=t.mod):(e.modF=null,e.mod=[]),32&n?(e.srcF=null,e.source=null):(e.srcF=t.srcF,e.source=t.source,t.cleans&&(e.cleans=t.cleans)),e},runAfter(t){this.dataflow.runAfter(t)},changed(t){const n=t||7;return 1&n&&this.add.length||2&n&&this.rem.length||4&n&&this.mod.length},reflow(t){if(t)return this.fork(7).reflow();const n=this.add.length,e=this.source&&this.source.length;return e&&e!==n&&(this.mod=this.source,n&&this.filter(4,e2(this,1))),this},clean(t){return arguments.length?(this.cleans=!!t,this):this.cleans},modifies(t){const n=this.fields||(this.fields={});return P(t)?t.forEach(e=>n[e]=!0):n[t]=!0,this},modified(t,n){const e=this.fields;return!(!n&&!this.mod.length||!e)&&(arguments.length?P(t)?t.some(r=>e[r]):e[t]:!!e)},filter(t,n){const e=this;return 1&t&&(e.addF=oc(e.addF,n)),2&t&&(e.remF=oc(e.remF,n)),4&t&&(e.modF=oc(e.modF,n)),16&t&&(e.srcF=oc(e.srcF,n)),e},materialize(t){const n=this;return 1&(t=t||7)&&n.addF&&(n.add=bp(n.add,n.addF),n.addF=null),2&t&&n.remF&&(n.rem=bp(n.rem,n.remF),n.remF=null),4&t&&n.modF&&(n.mod=bp(n.mod,n.modF),n.modF=null),16&t&&n.srcF&&(n.source=n.source.filter(n.srcF),n.srcF=null),n},visit(t,n){const e=this,r=n;if(16&t)return ka(e.source,e.srcF,r),e;1&t&&ka(e.add,e.addF,r),2&t&&ka(e.rem,e.remF,r),4&t&&ka(e.mod,e.modF,r);const i=e.source;if(8&t&&i){const a=e.add.length+e.mod.length;a===i.length||ka(i,a?e2(e,5):e.srcF,r)}return e}},V(xp,ji,{fork(t){const n=new ji(this.dataflow).init(this,t&this.NO_FIELDS);return t!==void 0&&(t&n.ADD&&this.visit(n.ADD,e=>n.add.push(e)),t&n.REM&&this.visit(n.REM,e=>n.rem.push(e)),t&n.MOD&&this.visit(n.MOD,e=>n.mod.push(e))),n},changed(t){return this.changes&t},modified(t){const n=this,e=n.fields;return e&&n.changes&n.MOD?P(t)?t.some(r=>e[r]):e[t]:0},filter(){j("MultiPulse does not support filtering.")},materialize(){j("MultiPulse does not support materialization.")},visit(t,n){const e=this,r=e.pulses,i=r.length;let a=0;if(t&e.SOURCE)for(;a<i;++a)r[a].visit(t,n);else for(;a<i;++a)r[a].stamp===e.stamp&&r[a].visit(t,n);return e}});const wp={skip:!1,force:!1};function l9(t){let n=[];return{clear:()=>n=[],size:()=>n.length,peek:()=>n[0],push:e=>(n.push(e),i2(n,0,n.length-1,t)),pop:()=>{const e=n.pop();let r;return n.length?(r=n[0],n[0]=e,function(i,a,o){const s=a,u=i.length,l=i[a];let c,f=1+(a<<1);for(;f<u;)c=f+1,c<u&&o(i[f],i[c])>=0&&(f=c),i[a]=i[f],f=1+((a=f)<<1);i[a]=l,i2(i,s,a,o)}(n,0,t)):r=e,r}}}function i2(t,n,e,r){let i,a;const o=t[e];for(;e>n&&(a=e-1>>1,i=t[a],r(o,i)<0);)t[e]=i,e=a;return t[e]=o}function $o(){this.logger(Kh()),this.logLevel(Kb),this._clock=0,this._rank=0,this._locale=Qb();try{this._loader=Hl()}catch{}this._touched=Ql(Hs),this._input={},this._pulse=null,this._heap=l9((t,n)=>t.qrank-n.qrank),this._postrun=[]}function Xs(t){return function(){return this._log[t].apply(this,arguments)}}function O(t,n){Ut.call(this,t,null,n)}$o.prototype={stamp(){return this._clock},loader(t){return arguments.length?(this._loader=t,this):this._loader},locale(t){return arguments.length?(this._locale=t,this):this._locale},logger(t){return arguments.length?(this._log=t,this):this._log},error:Xs("error"),warn:Xs("warn"),info:Xs("info"),debug:Xs("debug"),logLevel:Xs("level"),cleanThreshold:1e4,add:function(t,n,e,r){let i,a=1;return t instanceof Ut?i=t:t&&t.prototype instanceof Ut?i=new t:bt(t)?i=new Ut(null,t):(a=0,i=new Ut(t,n)),this.rank(i),a&&(r=e,e=n),e&&this.connect(i,i.parameters(e,r)),this.touch(i),i},connect:function(t,n){const e=t.rank,r=n.length;for(let i=0;i<r;++i)if(e<n[i].rank)return void this.rerank(t)},rank:function(t){t.rank=++this._rank},rerank:function(t){const n=[t];let e,r,i;for(;n.length;)if(this.rank(e=n.pop()),r=e._targets)for(i=r.length;--i>=0;)n.push(e=r[i]),e===t&&j("Cycle detected in dataflow graph.")},pulse:function(t,n,e){this.touch(t,e||wp);const r=new ji(this,this._clock+(this._pulse?0:1)),i=t.pulse&&t.pulse.source||[];return r.target=t,this._input[t.id]=n.pulse(r,i),this},touch:function(t,n){const e=n||wp;return this._pulse?this._enqueue(t):this._touched.add(t),e.skip&&t.skip(!0),this},update:function(t,n,e){const r=e||wp;return(t.set(n)||r.force)&&this.touch(t,r),this},changeset:Ma,ingest:function(t,n,e){return n=this.parse(n,e),this.pulse(t,this.changeset().insert(n))},parse:function(t,n){const e=this.locale();return tx(t,n,e.timeParse,e.utcParse)},preload:async function(t,n,e){const r=this,i=r._pending||function(o){let s;const u=new Promise(l=>s=l);return u.requests=0,u.done=()=>{--u.requests===0&&(o._pending=null,s(o))},o._pending=u}(r);i.requests+=1;const a=await r.request(n,e);return r.pulse(t,r.changeset().remove(Be).insert(a.data||[])),i.done(),a},request:async function(t,n){const e=this;let r,i=0;try{r=await e.loader().load(t,{context:"dataflow",response:Zb(n&&n.type)});try{r=e.parse(r,n)}catch(a){i=-2,e.warn("Data ingestion failed",t,a)}}catch(a){i=-1,e.warn("Loading failed",t,a)}return{data:r,status:i}},events:function(t,n,e,r){const i=this,a=Pi(e,r),o=function(l){l.dataflow=i;try{a.receive(l)}catch(c){i.error(c)}finally{i.run()}};let s;s=typeof t=="string"&&typeof document<"u"?document.querySelectorAll(t):K(t);const u=s.length;for(let l=0;l<u;++l)s[l].addEventListener(n,o);return a},on:function(t,n,e,r,i){return(t instanceof Ut?u9:s9)(this,t,n,e,r,i),this},evaluate:async function(t,n,e){const r=this,i=[];if(r._pulse)return r2(r);if(r._pending&&await r._pending,n&&await Zl(r,n),!r._touched.length)return r.debug("Dataflow invoked, but nothing to do."),r;const a=++r._clock;r._pulse=new ji(r,a,t),r._touched.forEach(c=>r._enqueue(c,!0)),r._touched=Ql(Hs);let o,s,u,l=0;try{for(;r._heap.size()>0;)o=r._heap.pop(),o.rank===o.qrank?(s=o.run(r._getPulse(o,t)),s.then?s=await s:s.async&&(i.push(s.async),s=ac),s!==ac&&o._targets&&o._targets.forEach(c=>r._enqueue(c)),++l):r._enqueue(o,!0)}catch(c){r._heap.clear(),u=c}if(r._input={},r._pulse=null,r.debug(`Pulse ${a}: ${l} operators`),u&&(r._postrun=[],r.error(u)),r._postrun.length){const c=r._postrun.sort((f,d)=>d.priority-f.priority);r._postrun=[];for(let f=0;f<c.length;++f)await Zl(r,c[f].callback)}return e&&await Zl(r,e),i.length&&Promise.all(i).then(c=>r.runAsync(null,()=>{c.forEach(f=>{try{f(r)}catch(d){r.error(d)}})})),r},run:function(t,n,e){return this._pulse?r2(this):(this.evaluate(t,n,e),this)},runAsync:async function(t,n,e){for(;this._running;)await this._running;const r=()=>this._running=null;return(this._running=this.evaluate(t,n,e)).then(r,r),this._running},runAfter:function(t,n,e){if(this._pulse||n)this._postrun.push({priority:e||0,callback:t});else try{t(this)}catch(r){this.error(r)}},_enqueue:function(t,n){const e=t.stamp<this._clock;e&&(t.stamp=this._clock),(e||n)&&(t.qrank=t.rank,this._heap.push(t))},_getPulse:function(t,n){const e=t.source,r=this._clock;return e&&P(e)?new xp(this,r,e.map(i=>i.pulse),n):this._input[t.id]||function(i,a){return a&&a.stamp===i.stamp?a:(i=i.fork(),a&&a!==ac&&(i.source=a.source),i)}(this._pulse,e&&e.pulse)}},V(O,Ut,{run(t){if(t.stamp<this.stamp)return t.StopPropagation;let n;return this.skip()?this.skip(!1):n=this.evaluate(t),n=n||t,n.then?n=n.then(e=>this.pulse=e):n!==t.StopPropagation&&(this.pulse=n),n},evaluate(t){const n=this.marshall(t.stamp),e=this.transform(n,t);return n.clear(),e},transform(){}});const So={};function a2(t){const n=o2(t);return n&&n.Definition||null}function o2(t){return t=t&&t.toLowerCase(),tt(So,t)?So[t]:null}function*s2(t,n){if(n==null)for(let e of t)e!=null&&e!==""&&(e=+e)>=e&&(yield e);else{let e=-1;for(let r of t)r=n(r,++e,t),r!=null&&r!==""&&(r=+r)>=r&&(yield r)}}function Ap(t,n,e){const r=Float64Array.from(s2(t,e));return r.sort(Ws),n.map(i=>Vx(r,i))}function _p(t,n){return Ap(t,[.25,.5,.75],n)}function kp(t,n){const e=t.length,r=function(o,s){const u=function(l,c){let f,d=0,h=0,p=0;if(c===void 0)for(let m of l)m!=null&&(m=+m)>=m&&(f=m-h,h+=f/++d,p+=f*(m-h));else{let m=-1;for(let g of l)(g=c(g,++m,l))!=null&&(g=+g)>=g&&(f=g-h,h+=f/++d,p+=f*(g-h))}if(d>1)return p/(d-1)}(o,s);return u&&Math.sqrt(u)}(t,n),i=_p(t,n),a=(i[2]-i[0])/1.34;return 1.06*(Math.min(r,a)||r||Math.abs(i[0])||1)*Math.pow(e,-.2)}function u2(t){const n=t.maxbins||20,e=t.base||10,r=Math.log(e),i=t.divide||[5,2];let a,o,s,u,l,c,f=t.extent[0],d=t.extent[1];const h=t.span||d-f||Math.abs(f)||1;if(t.step)a=t.step;else if(t.steps){for(u=h/n,l=0,c=t.steps.length;l<c&&t.steps[l]<u;++l);a=t.steps[Math.max(0,l-1)]}else{for(o=Math.ceil(Math.log(n)/r),s=t.minstep||0,a=Math.max(s,Math.pow(e,Math.round(Math.log(h)/r)-o));Math.ceil(h/a)>n;)a*=e;for(l=0,c=i.length;l<c;++l)u=a/i[l],u>=s&&h/u<=n&&(a=u)}u=Math.log(a);const p=u>=0?0:1+~~(-u/r),m=Math.pow(e,-p-1);return(t.nice||t.nice===void 0)&&(u=Math.floor(f/a+m)*a,f=f<u?u-a:u,d=Math.ceil(d/a)*a),{start:f,stop:d===f?f+a:d,step:a}}var Ne=Math.random;function l2(t,n,e,r){if(!t.length)return[void 0,void 0];const i=Float64Array.from(s2(t,r)),a=i.length,o=n;let s,u,l,c;for(l=0,c=Array(o);l<o;++l){for(s=0,u=0;u<a;++u)s+=i[~~(Ne()*a)];c[l]=s/a}return c.sort(Ws),[yp(c,e/2),yp(c,1-e/2)]}function c2(t,n,e,r){r=r||(d=>d);const i=t.length,a=new Float64Array(i);let o,s=0,u=1,l=r(t[0]),c=l,f=l+n;for(;u<i;++u){if(o=r(t[u]),o>=f){for(c=(l+c)/2;s<u;++s)a[s]=c;f=o+n,l=o}c=o}for(c=(l+c)/2;s<u;++s)a[s]=c;return e?function(d,h){const p=d.length;let m,g,y=0,v=1;for(;d[y]===d[v];)++v;for(;v<p;){for(m=v+1;d[v]===d[m];)++m;if(d[v]-d[v-1]<h){for(g=v+(y+m-v-v>>1);g<v;)d[g++]=d[v];for(;g>v;)d[g--]=d[y]}y=v,v=m}return d}(a,n+n/4):a}const f2=Math.sqrt(2*Math.PI),c9=Math.SQRT2;let Js=NaN;function sc(t,n){t=t||0,n=n??1;let e,r,i=0,a=0;if(Js==Js)i=Js,Js=NaN;else{do i=2*Ne()-1,a=2*Ne()-1,e=i*i+a*a;while(e===0||e>1);r=Math.sqrt(-2*Math.log(e)/e),i*=r,Js=a*r}return t+i*n}function Dp(t,n,e){const r=(t-(n||0))/(e=e??1);return Math.exp(-.5*r*r)/(e*f2)}function uc(t,n,e){const r=(t-(n=n||0))/(e=e??1),i=Math.abs(r);let a;if(i>37)a=0;else{const o=Math.exp(-i*i/2);let s;i<7.07106781186547?(s=.0352624965998911*i+.700383064443688,s=s*i+6.37396220353165,s=s*i+33.912866078383,s=s*i+112.079291497871,s=s*i+221.213596169931,s=s*i+220.206867912376,a=o*s,s=.0883883476483184*i+1.75566716318264,s=s*i+16.064177579207,s=s*i+86.7807322029461,s=s*i+296.564248779674,s=s*i+637.333633378831,s=s*i+793.826512519948,s=s*i+440.413735824752,a/=s):(s=i+.65,s=i+4/s,s=i+3/s,s=i+2/s,s=i+1/s,a=o/s/2.506628274631)}return r>0?1-a:a}function lc(t,n,e){return t<0||t>1?NaN:(n||0)+(e??1)*c9*function(r){let i,a=-Math.log((1-r)*(1+r));return a<6.25?(a-=3.125,i=-364441206401782e-35,i=i*a-16850591381820166e-35,i=128584807152564e-32+i*a,i=11157877678025181e-33+i*a,i=i*a-1333171662854621e-31,i=20972767875968562e-33+i*a,i=6637638134358324e-30+i*a,i=i*a-4054566272975207e-29,i=i*a-8151934197605472e-29,i=26335093153082323e-28+i*a,i=i*a-12975133253453532e-27,i=i*a-5415412054294628e-26,i=10512122733215323e-25+i*a,i=i*a-4112633980346984e-24,i=i*a-29070369957882005e-24,i=42347877827932404e-23+i*a,i=i*a-13654692000834679e-22,i=i*a-13882523362786469e-21,i=.00018673420803405714+i*a,i=i*a-.000740702534166267,i=i*a-.006033670871430149,i=.24015818242558962+i*a,i=1.6536545626831027+i*a):a<16?(a=Math.sqrt(a)-3.25,i=22137376921775787e-25,i=9075656193888539e-23+i*a,i=i*a-27517406297064545e-23,i=18239629214389228e-24+i*a,i=15027403968909828e-22+i*a,i=i*a-4013867526981546e-21,i=29234449089955446e-22+i*a,i=12475304481671779e-21+i*a,i=i*a-47318229009055734e-21,i=6828485145957318e-20+i*a,i=24031110387097894e-21+i*a,i=i*a-.0003550375203628475,i=.0009532893797373805+i*a,i=i*a-.0016882755560235047,i=.002491442096107851+i*a,i=i*a-.003751208507569241,i=.005370914553590064+i*a,i=1.0052589676941592+i*a,i=3.0838856104922208+i*a):Number.isFinite(a)?(a=Math.sqrt(a)-5,i=-27109920616438573e-27,i=i*a-2555641816996525e-25,i=15076572693500548e-25+i*a,i=i*a-3789465440126737e-24,i=761570120807834e-23+i*a,i=i*a-1496002662714924e-23,i=2914795345090108e-23+i*a,i=i*a-6771199775845234e-23,i=22900482228026655e-23+i*a,i=i*a-99298272942317e-20,i=4526062597223154e-21+i*a,i=i*a-1968177810553167e-20,i=7599527703001776e-20+i*a,i=i*a-.00021503011930044477,i=i*a-.00013871931833623122,i=1.0103004648645344+i*a,i=4.849906401408584+i*a):i=1/0,i*r}(2*t-1)}function Fp(t,n){let e,r;const i={mean(a){return arguments.length?(e=a||0,i):e},stdev(a){return arguments.length?(r=a??1,i):r},sample:()=>sc(e,r),pdf:a=>Dp(a,e,r),cdf:a=>uc(a,e,r),icdf:a=>lc(a,e,r)};return i.mean(t).stdev(n)}function Cp(t,n){const e=Fp();let r=0;const i={data(a){return arguments.length?(t=a,r=a?a.length:0,i.bandwidth(n)):t},bandwidth(a){return arguments.length?(!(n=a)&&t&&(n=kp(t)),i):n},sample:()=>t[~~(Ne()*r)]+n*e.sample(),pdf(a){let o=0,s=0;for(;s<r;++s)o+=e.pdf((a-t[s])/n);return o/n/r},cdf(a){let o=0,s=0;for(;s<r;++s)o+=e.cdf((a-t[s])/n);return o/r},icdf(){throw Error("KDE icdf not supported.")}};return i.data(t)}function Ep(t,n){return t=t||0,n=n??1,Math.exp(t+sc()*n)}function $p(t,n,e){if(t<=0)return 0;n=n||0,e=e??1;const r=(Math.log(t)-n)/e;return Math.exp(-.5*r*r)/(e*f2*t)}function Sp(t,n,e){return uc(Math.log(t),n,e)}function Mp(t,n,e){return Math.exp(lc(t,n,e))}function d2(t,n){let e,r;const i={mean(a){return arguments.length?(e=a||0,i):e},stdev(a){return arguments.length?(r=a??1,i):r},sample:()=>Ep(e,r),pdf:a=>$p(a,e,r),cdf:a=>Sp(a,e,r),icdf:a=>Mp(a,e,r)};return i.mean(t).stdev(n)}function h2(t,n){let e,r=0;const i={weights(a){return arguments.length?(e=function(o){const s=[];let u,l=0;for(u=0;u<r;++u)l+=s[u]=o[u]==null?1:+o[u];for(u=0;u<r;++u)s[u]/=l;return s}(n=a||[]),i):n},distributions(a){return arguments.length?(a?(r=a.length,t=a):(r=0,t=[]),i.weights(n)):t},sample(){const a=Ne();let o=t[r-1],s=e[0],u=0;for(;u<r-1;s+=e[++u])if(a<s){o=t[u];break}return o.sample()},pdf(a){let o=0,s=0;for(;s<r;++s)o+=e[s]*t[s].pdf(a);return o},cdf(a){let o=0,s=0;for(;s<r;++s)o+=e[s]*t[s].cdf(a);return o},icdf(){throw Error("Mixture icdf not supported.")}};return i.distributions(t).weights(n)}function Bp(t,n){return n==null&&(n=t??1,t=0),t+(n-t)*Ne()}function zp(t,n,e){return e==null&&(e=n??1,n=0),t>=n&&t<=e?1/(e-n):0}function Op(t,n,e){return e==null&&(e=n??1,n=0),t<n?0:t>e?1:(t-n)/(e-n)}function Np(t,n,e){return e==null&&(e=n??1,n=0),t>=0&&t<=1?n+t*(e-n):NaN}function p2(t,n){let e,r;const i={min(a){return arguments.length?(e=a||0,i):e},max(a){return arguments.length?(r=a??1,i):r},sample:()=>Bp(e,r),pdf:a=>zp(a,e,r),cdf:a=>Op(a,e,r),icdf:a=>Np(a,e,r)};return n==null&&(n=t??1,t=0),i.min(t).max(n)}function Rp(t,n,e){let r=0,i=0;for(const a of t){const o=e(a);n(a)==null||o==null||isNaN(o)||(r+=(o-r)/++i)}return{coef:[r],predict:()=>r,rSquared:0}}function Ks(t,n,e,r){const i=r-t*t,a=Math.abs(i)<1e-24?0:(e-t*n)/i;return[n-a*t,a]}function cc(t,n,e,r){t=t.filter(h=>{let p=n(h),m=e(h);return p!=null&&(p=+p)>=p&&m!=null&&(m=+m)>=m}),r&&t.sort((h,p)=>n(h)-n(p));const i=t.length,a=new Float64Array(i),o=new Float64Array(i);let s,u,l,c=0,f=0,d=0;for(l of t)a[c]=s=+n(l),o[c]=u=+e(l),++c,f+=(s-f)/c,d+=(u-d)/c;for(c=0;c<i;++c)a[c]-=f,o[c]-=d;return[a,o,f,d]}function Qs(t,n,e,r){let i,a,o=-1;for(const s of t)i=n(s),a=e(s),i!=null&&(i=+i)>=i&&a!=null&&(a=+a)>=a&&r(i,a,++o)}function Mo(t,n,e,r,i){let a=0,o=0;return Qs(t,n,e,(s,u)=>{const l=u-i(s),c=u-r;a+=l*l,o+=c*c}),1-a/o}function Tp(t,n,e){let r=0,i=0,a=0,o=0,s=0;Qs(t,n,e,(c,f)=>{++s,r+=(c-r)/s,i+=(f-i)/s,a+=(c*f-a)/s,o+=(c*c-o)/s});const u=Ks(r,i,a,o),l=c=>u[0]+u[1]*c;return{coef:u,predict:l,rSquared:Mo(t,n,e,i,l)}}function m2(t,n,e){let r=0,i=0,a=0,o=0,s=0;Qs(t,n,e,(c,f)=>{++s,c=Math.log(c),r+=(c-r)/s,i+=(f-i)/s,a+=(c*f-a)/s,o+=(c*c-o)/s});const u=Ks(r,i,a,o),l=c=>u[0]+u[1]*Math.log(c);return{coef:u,predict:l,rSquared:Mo(t,n,e,i,l)}}function g2(t,n,e){const[r,i,a,o]=cc(t,n,e);let s,u,l,c=0,f=0,d=0,h=0,p=0;Qs(t,n,e,(v,x)=>{s=r[p++],u=Math.log(x),l=s*x,c+=(x*u-c)/p,f+=(l-f)/p,d+=(l*u-d)/p,h+=(s*l-h)/p});const[m,g]=Ks(f/o,c/o,d/o,h/o),y=v=>Math.exp(m+g*(v-a));return{coef:[Math.exp(m-g*a),g],predict:y,rSquared:Mo(t,n,e,o,y)}}function y2(t,n,e){let r=0,i=0,a=0,o=0,s=0,u=0;Qs(t,n,e,(f,d)=>{const h=Math.log(f),p=Math.log(d);++u,r+=(h-r)/u,i+=(p-i)/u,a+=(h*p-a)/u,o+=(h*h-o)/u,s+=(d-s)/u});const l=Ks(r,i,a,o),c=f=>l[0]*Math.pow(f,l[1]);return l[0]=Math.exp(l[0]),{coef:l,predict:c,rSquared:Mo(t,n,e,s,c)}}function Pp(t,n,e){const[r,i,a,o]=cc(t,n,e),s=r.length;let u,l,c,f,d=0,h=0,p=0,m=0,g=0;for(u=0;u<s;)l=r[u],c=i[u++],f=l*l,d+=(f-d)/u,h+=(f*l-h)/u,p+=(f*f-p)/u,m+=(l*c-m)/u,g+=(f*c-g)/u;const y=p-d*d,v=d*y-h*h,x=(g*d-m*h)/v,b=(m*y-g*h)/v,w=-x*d,A=_=>x*(_-=a)*_+b*_+w+o;return{coef:[w-b*a+x*a*a+o,b-2*x*a,x],predict:A,rSquared:Mo(t,n,e,o,A)}}function v2(t,n,e,r){if(r===0)return Rp(t,n,e);if(r===1)return Tp(t,n,e);if(r===2)return Pp(t,n,e);const[i,a,o,s]=cc(t,n,e),u=i.length,l=[],c=[],f=r+1;let d,h,p,m,g;for(d=0;d<f;++d){for(p=0,m=0;p<u;++p)m+=Math.pow(i[p],d)*a[p];for(l.push(m),g=new Float64Array(f),h=0;h<f;++h){for(p=0,m=0;p<u;++p)m+=Math.pow(i[p],d+h);g[h]=m}c.push(g)}c.push(l);const y=function(x){const b=x.length-1,w=[];let A,_,k,F,C;for(A=0;A<b;++A){for(F=A,_=A+1;_<b;++_)Math.abs(x[A][_])>Math.abs(x[A][F])&&(F=_);for(k=A;k<b+1;++k)C=x[k][A],x[k][A]=x[k][F],x[k][F]=C;for(_=A+1;_<b;++_)for(k=b;k>=A;k--)x[k][_]-=x[k][A]*x[A][_]/x[A][A]}for(_=b-1;_>=0;--_){for(C=0,k=_+1;k<b;++k)C+=x[k][_]*w[k];w[_]=(x[b][_]-C)/x[_][_]}return w}(c),v=x=>{x-=o;let b=s+y[0]+y[1]*x+y[2]*x*x;for(d=3;d<f;++d)b+=y[d]*Math.pow(x,d);return b};return{coef:f9(f,y,-o,s),predict:v,rSquared:Mo(t,n,e,s,v)}}function f9(t,n,e,r){const i=Array(t);let a,o,s,u;for(a=0;a<t;++a)i[a]=0;for(a=t-1;a>=0;--a)for(s=n[a],u=1,i[a]+=s,o=1;o<=a;++o)u*=(a+1-o)/o,i[a-o]+=s*Math.pow(e,o)*u;return i[0]+=r,i}function b2(t,n,e,r){const[i,a,o,s]=cc(t,n,e,!0),u=i.length,l=Math.max(2,~~(r*u)),c=new Float64Array(u),f=new Float64Array(u),d=new Float64Array(u).fill(1);for(let h=-1;++h<=2;){const p=[0,l-1];for(let g=0;g<u;++g){const y=i[g],v=p[0],x=p[1],b=y-i[v]>i[x]-y?v:x;let w=0,A=0,_=0,k=0,F=0;const C=1/Math.abs(i[b]-y||1);for(let $=v;$<=x;++$){const M=i[$],S=a[$],B=d9(Math.abs(y-M)*C)*d[$],z=M*B;w+=B,A+=z,_+=S*B,k+=S*z,F+=M*z}const[D,E]=Ks(A/w,_/w,k/w,F/w);c[g]=D+E*y,f[g]=Math.abs(a[g]-c[g]),h9(i,g+1,p)}if(h===2)break;const m=Yx(f);if(Math.abs(m)<1e-12)break;for(let g,y,v=0;v<u;++v)g=f[v]/(6*m),d[v]=g>=1?1e-12:(y=1-g*g)*y}return function(h,p,m,g){const y=h.length,v=[];let x,b=0,w=0,A=[];for(;b<y;++b)x=h[b]+m,A[0]===x?A[1]+=(p[b]-A[1])/++w:(w=0,A[1]+=g,A=[x,p[b]],v.push(A));return A[1]+=g,v}(i,c,o,s)}function d9(t){return(t=1-t*t*t)*t*t}function h9(t,n,e){const r=t[n];let i=e[0],a=e[1]+1;if(!(a>=t.length))for(;n>i&&t[a]-r<=r-t[i];)e[0]=++i,e[1]=a,++a}const p9=.5*Math.PI/180;function fc(t,n,e,r){e=e||25,r=Math.max(e,r||200);const i=m=>[m,t(m)],a=n[0],o=n[1],s=o-a,u=s/r,l=[i(a)],c=[];if(e===r){for(let m=1;m<r;++m)l.push(i(a+m/e*s));return l.push(i(o)),l}c.push(i(o));for(let m=e;--m>0;)c.push(i(a+m/e*s));let f=l[0],d=c[c.length-1];const h=1/s,p=function(m,g){let y=m,v=m;const x=g.length;for(let b=0;b<x;++b){const w=g[b][1];w<y&&(y=w),w>v&&(v=w)}return 1/(v-y)}(f[1],c);for(;d;){const m=i((f[0]+d[0])/2);m[0]-f[0]>=u&&m9(f,m,d,h,p)>p9?c.push(m):(f=d,l.push(d),c.pop()),d=c[c.length-1]}return l}function m9(t,n,e,r,i){const a=Math.atan2(i*(e[1]-t[1]),r*(e[0]-t[0])),o=Math.atan2(i*(n[1]-t[1]),r*(n[0]-t[0]));return Math.abs(a-o)}function jp(t){return t&&t.length?t.length===1?t[0]:(n=t,e=>{const r=n.length;let i=1,a=String(n[0](e));for(;i<r;++i)a+="|"+n[i](e);return a}):function(){return""};var n}function x2(t,n,e){return e||t+(n?"_"+n:"")}const Lp=()=>{},g9={init:Lp,add:Lp,rem:Lp,idx:0},Zs={values:{init:t=>t.cell.store=!0,value:t=>t.cell.data.values(),idx:-1},count:{value:t=>t.cell.num},__count__:{value:t=>t.missing+t.valid},missing:{value:t=>t.missing},valid:{value:t=>t.valid},sum:{init:t=>t.sum=0,value:t=>t.valid?t.sum:void 0,add:(t,n)=>t.sum+=+n,rem:(t,n)=>t.sum-=n},product:{init:t=>t.product=1,value:t=>t.valid?t.product:void 0,add:(t,n)=>t.product*=n,rem:(t,n)=>t.product/=n},mean:{init:t=>t.mean=0,value:t=>t.valid?t.mean:void 0,add:(t,n)=>(t.mean_d=n-t.mean,t.mean+=t.mean_d/t.valid),rem:(t,n)=>(t.mean_d=n-t.mean,t.mean-=t.valid?t.mean_d/t.valid:t.mean)},average:{value:t=>t.valid?t.mean:void 0,req:["mean"],idx:1},variance:{init:t=>t.dev=0,value:t=>t.valid>1?t.dev/(t.valid-1):void 0,add:(t,n)=>t.dev+=t.mean_d*(n-t.mean),rem:(t,n)=>t.dev-=t.mean_d*(n-t.mean),req:["mean"],idx:1},variancep:{value:t=>t.valid>1?t.dev/t.valid:void 0,req:["variance"],idx:2},stdev:{value:t=>t.valid>1?Math.sqrt(t.dev/(t.valid-1)):void 0,req:["variance"],idx:2},stdevp:{value:t=>t.valid>1?Math.sqrt(t.dev/t.valid):void 0,req:["variance"],idx:2},stderr:{value:t=>t.valid>1?Math.sqrt(t.dev/(t.valid*(t.valid-1))):void 0,req:["variance"],idx:2},distinct:{value:t=>t.cell.data.distinct(t.get),req:["values"],idx:3},ci0:{value:t=>t.cell.data.ci0(t.get),req:["values"],idx:3},ci1:{value:t=>t.cell.data.ci1(t.get),req:["values"],idx:3},median:{value:t=>t.cell.data.q2(t.get),req:["values"],idx:3},q1:{value:t=>t.cell.data.q1(t.get),req:["values"],idx:3},q3:{value:t=>t.cell.data.q3(t.get),req:["values"],idx:3},min:{init:t=>t.min=void 0,value:t=>t.min=Number.isNaN(t.min)?t.cell.data.min(t.get):t.min,add:(t,n)=>{(n<t.min||t.min===void 0)&&(t.min=n)},rem:(t,n)=>{n<=t.min&&(t.min=NaN)},req:["values"],idx:4},max:{init:t=>t.max=void 0,value:t=>t.max=Number.isNaN(t.max)?t.cell.data.max(t.get):t.max,add:(t,n)=>{(n>t.max||t.max===void 0)&&(t.max=n)},rem:(t,n)=>{n>=t.max&&(t.max=NaN)},req:["values"],idx:4},argmin:{init:t=>t.argmin=void 0,value:t=>t.argmin||t.cell.data.argmin(t.get),add:(t,n,e)=>{n<t.min&&(t.argmin=e)},rem:(t,n)=>{n<=t.min&&(t.argmin=void 0)},req:["min","values"],idx:3},argmax:{init:t=>t.argmax=void 0,value:t=>t.argmax||t.cell.data.argmax(t.get),add:(t,n,e)=>{n>t.max&&(t.argmax=e)},rem:(t,n)=>{n>=t.max&&(t.argmax=void 0)},req:["max","values"],idx:3},exponential:{init:(t,n)=>{t.exp=0,t.exp_r=n},value:t=>t.valid?t.exp*(1-t.exp_r)/(1-t.exp_r**t.valid):void 0,add:(t,n)=>t.exp=t.exp_r*t.exp+n,rem:(t,n)=>t.exp=(t.exp-n/t.exp_r**(t.valid-1))/t.exp_r},exponentialb:{value:t=>t.valid?t.exp*(1-t.exp_r):void 0,req:["exponential"],idx:1}},tu=Object.keys(Zs).filter(t=>t!=="__count__");function w2(t,n,e){return Zs[t](e,n)}function A2(t,n){return t.idx-n.idx}function y9(){this.valid=0,this.missing=0,this._ops.forEach(t=>t.aggregate_param==null?t.init(this):t.init(this,t.aggregate_param))}function v9(t,n){t!=null&&t!==""?t==t&&(++this.valid,this._ops.forEach(e=>e.add(this,t,n))):++this.missing}function b9(t,n){t!=null&&t!==""?t==t&&(--this.valid,this._ops.forEach(e=>e.rem(this,t,n))):--this.missing}function x9(t){return this._out.forEach(n=>t[n.out]=n.value(this)),t}function _2(t,n){const e=n||Me,r=function(o){const s={};o.forEach(l=>s[l.name]=l);const u=l=>{l.req&&l.req.forEach(c=>{s[c]||u(s[c]=Zs[c]())})};return o.forEach(u),Object.values(s).sort(A2)}(t),i=t.slice().sort(A2);function a(o){this._ops=r,this._out=i,this.cell=o,this.init()}return a.prototype.init=y9,a.prototype.add=v9,a.prototype.rem=b9,a.prototype.set=x9,a.prototype.get=e,a.fields=t.map(o=>o.out),a}function qp(t){this._key=t?ei(t):st,this.reset()}[...tu,"__count__"].forEach(t=>{Zs[t]=function(n,e){return(r,i)=>xt({name:n,aggregate_param:i,out:r||n},g9,e)}(t,Zs[t])});const kn=qp.prototype;function Li(t){O.call(this,null,t),this._adds=[],this._mods=[],this._alen=0,this._mlen=0,this._drop=!0,this._cross=!1,this._dims=[],this._dnames=[],this._measures=[],this._countOnly=!1,this._counts=null,this._prev=null,this._inputs=null,this._outputs=null}kn.reset=function(){this._add=[],this._rem=[],this._ext=null,this._get=null,this._q=null},kn.add=function(t){this._add.push(t)},kn.rem=function(t){this._rem.push(t)},kn.values=function(){if(this._get=null,this._rem.length===0)return this._add;const t=this._add,n=this._rem,e=this._key,r=t.length,i=n.length,a=Array(r-i),o={};let s,u,l;for(s=0;s<i;++s)o[e(n[s])]=1;for(s=0,u=0;s<r;++s)o[e(l=t[s])]?o[e(l)]=0:a[u++]=l;return this._rem=[],this._add=a},kn.distinct=function(t){const n=this.values(),e={};let r,i=n.length,a=0;for(;--i>=0;)r=t(n[i])+"",tt(e,r)||(e[r]=1,++a);return a},kn.extent=function(t){if(this._get!==t||!this._ext){const n=this.values(),e=sx(n,t);this._ext=[n[e[0]],n[e[1]]],this._get=t}return this._ext},kn.argmin=function(t){return this.extent(t)[0]||{}},kn.argmax=function(t){return this.extent(t)[1]||{}},kn.min=function(t){const n=this.extent(t)[0];return n!=null?t(n):void 0},kn.max=function(t){const n=this.extent(t)[1];return n!=null?t(n):void 0},kn.quartile=function(t){return this._get===t&&this._q||(this._q=_p(this.values(),t),this._get=t),this._q},kn.q1=function(t){return this.quartile(t)[0]},kn.q2=function(t){return this.quartile(t)[1]},kn.q3=function(t){return this.quartile(t)[2]},kn.ci=function(t){return this._get===t&&this._ci||(this._ci=l2(this.values(),1e3,.05,t),this._get=t),this._ci},kn.ci0=function(t){return this.ci(t)[0]},kn.ci1=function(t){return this.ci(t)[1]},Li.Definition={type:"Aggregate",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:tu},{name:"aggregate_params",type:"number",null:!0,array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"as",type:"string",null:!0,array:!0},{name:"drop",type:"boolean",default:!0},{name:"cross",type:"boolean",default:!1},{name:"key",type:"field"}]},V(Li,O,{transform(t,n){const e=this,r=n.fork(n.NO_SOURCE|n.NO_FIELDS),i=t.modified();return e.stamp=r.stamp,e.value&&(i||n.modified(e._inputs,!0))?(e._prev=e.value,e.value=i?e.init(t):Object.create(null),n.visit(n.SOURCE,a=>e.add(a))):(e.value=e.value||e.init(t),n.visit(n.REM,a=>e.rem(a)),n.visit(n.ADD,a=>e.add(a))),r.modifies(e._outputs),e._drop=t.drop!==!1,t.cross&&e._dims.length>1&&(e._drop=!1,e.cross()),n.clean()&&e._drop&&r.clean(!0).runAfter(()=>this.clean()),e.changes(r)},cross(){const t=this,n=t.value,e=t._dnames,r=e.map(()=>({})),i=e.length;function a(o){let s,u,l,c;for(s in o)for(l=o[s].tuple,u=0;u<i;++u)r[u][c=l[e[u]]]=c}a(t._prev),a(n),function o(s,u,l){const c=e[l],f=r[l++];for(const d in f){const h=s?s+"|"+d:d;u[c]=f[d],l<i?o(h,u,l):n[h]||t.cell(h,u)}}("",{},0)},init(t){const n=this._inputs=[],e=this._outputs=[],r={};function i(v){const x=K(Wn(v)),b=x.length;let w,A=0;for(;A<b;++A)r[w=x[A]]||(r[w]=1,n.push(w))}this._dims=K(t.groupby),this._dnames=this._dims.map(v=>{const x=en(v);return i(v),e.push(x),x}),this.cellkey=t.key?t.key:jp(this._dims),this._countOnly=!0,this._counts=[],this._measures=[];const a=t.fields||[null],o=t.ops||["count"],s=t.aggregate_params||[null],u=t.as||[],l=a.length,c={};let f,d,h,p,m,g,y;for(l!==o.length&&j("Unmatched number of fields and aggregate ops."),y=0;y<l;++y)f=a[y],d=o[y],h=s[y]||null,f==null&&d!=="count"&&j("Null aggregate field specified."),m=en(f),g=x2(d,m,u[y]),e.push(g),d!=="count"?(p=c[m],p||(i(f),p=c[m]=[],p.field=f,this._measures.push(p)),d!=="count"&&(this._countOnly=!1),p.push(w2(d,h,g))):this._counts.push(g);return this._measures=this._measures.map(v=>_2(v,v.field)),Object.create(null)},cellkey:jp(),cell(t,n){let e=this.value[t];return e?e.num===0&&this._drop&&e.stamp<this.stamp?(e.stamp=this.stamp,this._adds[this._alen++]=e):e.stamp<this.stamp&&(e.stamp=this.stamp,this._mods[this._mlen++]=e):(e=this.value[t]=this.newcell(t,n),this._adds[this._alen++]=e),e},newcell(t,n){const e={key:t,num:0,agg:null,tuple:this.newtuple(n,this._prev&&this._prev[t]),stamp:this.stamp,store:!1};if(!this._countOnly){const r=this._measures,i=r.length;e.agg=Array(i);for(let a=0;a<i;++a)e.agg[a]=new r[a](e)}return e.store&&(e.data=new qp),e},newtuple(t,n){const e=this._dnames,r=this._dims,i=r.length,a={};for(let o=0;o<i;++o)a[e[o]]=r[o](t);return n?Zx(n.tuple,a):St(a)},clean(){const t=this.value;for(const n in t)t[n].num===0&&delete t[n]},add(t){const n=this.cellkey(t),e=this.cell(n,t);if(e.num+=1,this._countOnly)return;e.store&&e.data.add(t);const r=e.agg;for(let i=0,a=r.length;i<a;++i)r[i].add(r[i].get(t),t)},rem(t){const n=this.cellkey(t),e=this.cell(n,t);if(e.num-=1,this._countOnly)return;e.store&&e.data.rem(t);const r=e.agg;for(let i=0,a=r.length;i<a;++i)r[i].rem(r[i].get(t),t)},celltuple(t){const n=t.tuple,e=this._counts;t.store&&t.data.values();for(let r=0,i=e.length;r<i;++r)n[e[r]]=t.num;if(!this._countOnly){const r=t.agg;for(let i=0,a=r.length;i<a;++i)r[i].set(n)}return n},changes(t){const n=this._adds,e=this._mods,r=this._prev,i=this._drop,a=t.add,o=t.rem,s=t.mod;let u,l,c,f;if(r)for(l in r)u=r[l],i&&!u.num||o.push(u.tuple);for(c=0,f=this._alen;c<f;++c)a.push(this.celltuple(n[c])),n[c]=null;for(c=0,f=this._mlen;c<f;++c)u=e[c],(u.num===0&&i?o:s).push(this.celltuple(u)),e[c]=null;return this._alen=this._mlen=0,this._prev=null,t}});function Up(t){O.call(this,null,t)}function k2(t,n,e){const r=t;let i=n||[],a=e||[],o={},s=0;return{add:u=>a.push(u),remove:u=>o[r(u)]=++s,size:()=>i.length,data:(u,l)=>(s&&(i=i.filter(c=>!o[r(c)]),o={},s=0),l&&u&&i.sort(u),a.length&&(i=u?ox(u,i,a.sort(u)):i.concat(a),a=[]),i)}}function Ip(t){O.call(this,[],t)}function D2(t){Ut.call(this,null,w9,t)}function w9(t){return this.value&&!t.modified()?this.value:ep(t.fields,t.orders)}function Wp(t){O.call(this,null,t)}function Hp(t){O.call(this,null,t)}Up.Definition={type:"Bin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"anchor",type:"number"},{name:"maxbins",type:"number",default:20},{name:"base",type:"number",default:10},{name:"divide",type:"number",array:!0,default:[5,2]},{name:"extent",type:"number",array:!0,length:2,required:!0},{name:"span",type:"number"},{name:"step",type:"number"},{name:"steps",type:"number",array:!0},{name:"minstep",type:"number",default:0},{name:"nice",type:"boolean",default:!0},{name:"name",type:"string"},{name:"as",type:"string",array:!0,length:2,default:["bin0","bin1"]}]},V(Up,O,{transform(t,n){const e=t.interval!==!1,r=this._bins(t),i=r.start,a=r.step,o=t.as||["bin0","bin1"],s=o[0],u=o[1];let l;return l=t.modified()?(n=n.reflow(!0)).SOURCE:n.modified(Wn(t.field))?n.ADD_MOD:n.ADD,n.visit(l,e?c=>{const f=r(c);c[s]=f,c[u]=f==null?null:i+a*(1+(f-i)/a)}:c=>c[s]=r(c)),n.modifies(e?o:s)},_bins(t){if(this.value&&!t.modified())return this.value;const n=t.field,e=u2(t),r=e.step;let i,a,o=e.start,s=o+Math.ceil((e.stop-o)/r)*r;(i=t.anchor)!=null&&(a=i-(o+r*Math.floor((i-o)/r)),o+=a,s+=a);const u=function(l){let c=ze(n(l));return c==null?null:c<o?-1/0:c>s?1/0:(c=Math.max(o,Math.min(c,s-r)),o+r*Math.floor(1e-14+(c-o)/r))};return u.start=o,u.stop=e.stop,u.step=r,this.value=Do(u,Wn(n),t.name||"bin_"+en(n))}}),Ip.Definition={type:"Collect",metadata:{source:!0},params:[{name:"sort",type:"compare"}]},V(Ip,O,{transform(t,n){const e=n.fork(n.ALL),r=k2(st,this.value,e.materialize(e.ADD).add),i=t.sort,a=n.changed()||i&&(t.modified("sort")||n.modified(i.fields));return e.visit(e.REM,r.remove),this.modified(a),this.value=e.source=r.data(Sa(i),a),n.source&&n.source.root&&(this.value.root=n.source.root),e}}),V(D2,Ut),Wp.Definition={type:"CountPattern",metadata:{generates:!0,changes:!0},params:[{name:"field",type:"field",required:!0},{name:"case",type:"enum",values:["upper","lower","mixed"],default:"mixed"},{name:"pattern",type:"string",default:'[\\w"]+'},{name:"stopwords",type:"string",default:""},{name:"as",type:"string",array:!0,length:2,default:["text","count"]}]},V(Wp,O,{transform(t,n){const e=f=>d=>{for(var h,p=function(y,v,x){switch(v){case"upper":y=y.toUpperCase();break;case"lower":y=y.toLowerCase()}return y.match(x)}(s(d),t.case,a)||[],m=0,g=p.length;m<g;++m)o.test(h=p[m])||f(h)},r=this._parameterCheck(t,n),i=this._counts,a=this._match,o=this._stop,s=t.field,u=t.as||["text","count"],l=e(f=>i[f]=1+(i[f]||0)),c=e(f=>i[f]-=1);return r?n.visit(n.SOURCE,l):(n.visit(n.ADD,l),n.visit(n.REM,c)),this._finish(n,u)},_parameterCheck(t,n){let e=!1;return!t.modified("stopwords")&&this._stop||(this._stop=new RegExp("^"+(t.stopwords||"")+"$","i"),e=!0),!t.modified("pattern")&&this._match||(this._match=new RegExp(t.pattern||"[\\w']+","g"),e=!0),(t.modified("field")||n.modified(t.field.fields))&&(e=!0),e&&(this._counts={}),e},_finish(t,n){const e=this._counts,r=this._tuples||(this._tuples={}),i=n[0],a=n[1],o=t.fork(t.NO_SOURCE|t.NO_FIELDS);let s,u,l;for(s in e)u=r[s],l=e[s]||0,!u&&l?(r[s]=u=St({}),u[i]=s,u[a]=l,o.add.push(u)):l===0?(u&&o.rem.push(u),e[s]=null,r[s]=null):u[a]!==l&&(u[a]=l,o.mod.push(u));return o.modifies(n)}}),Hp.Definition={type:"Cross",metadata:{generates:!0},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:!0,length:2,default:["a","b"]}]},V(Hp,O,{transform(t,n){const e=n.fork(n.NO_SOURCE),r=t.as||["a","b"],i=r[0],a=r[1],o=!this.value||n.changed(n.ADD_REM)||t.modified("as")||t.modified("filter");let s=this.value;return o?(s&&(e.rem=s),s=n.materialize(n.SOURCE).source,e.add=this.value=function(u,l,c,f){for(var d,h,p=[],m={},g=u.length,y=0;y<g;++y)for(m[l]=h=u[y],d=0;d<g;++d)m[c]=u[d],f(m)&&(p.push(St(m)),(m={})[l]=h);return p}(s,i,a,t.filter||Be)):e.mod=s,e.source=this.value,e.modifies(r)}});const F2={kde:Cp,mixture:h2,normal:Fp,lognormal:d2,uniform:p2},C2="function";function E2(t,n){const e=t[C2];tt(F2,e)||j("Unknown distribution function: "+e);const r=F2[e]();for(const i in t)i==="field"?r.data((t.from||n()).map(t[i])):i==="distributions"?r[i](t[i].map(a=>E2(a,n))):typeof r[i]===C2&&r[i](t[i]);return r}function Gp(t){O.call(this,null,t)}const $2=[{key:{function:"normal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"lognormal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"uniform"},params:[{name:"min",type:"number",default:0},{name:"max",type:"number",default:1}]},{key:{function:"kde"},params:[{name:"field",type:"field",required:!0},{name:"from",type:"data"},{name:"bandwidth",type:"number",default:0}]}],A9={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:!0,params:$2},{name:"weights",type:"number",array:!0}]};function S2(t,n){return t?t.map((e,r)=>n[r]||en(e)):null}function Vp(t,n,e){const r=[],i=f=>f(u);let a,o,s,u,l,c;if(n==null)r.push(t.map(e));else for(a={},o=0,s=t.length;o<s;++o)u=t[o],l=n.map(i),c=a[l],c||(a[l]=c=[],c.dims=l,r.push(c)),c.push(e(u));return r}Gp.Definition={type:"Density",metadata:{generates:!0},params:[{name:"extent",type:"number",array:!0,length:2},{name:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"method",type:"string",default:"pdf",values:["pdf","cdf"]},{name:"distribution",type:"param",params:$2.concat(A9)},{name:"as",type:"string",array:!0,default:["value","density"]}]},V(Gp,O,{transform(t,n){const e=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||t.modified()){const r=E2(t.distribution,function(l){return()=>l.materialize(l.SOURCE).source}(n)),i=t.steps||t.minsteps||25,a=t.steps||t.maxsteps||200;let o=t.method||"pdf";o!=="pdf"&&o!=="cdf"&&j("Invalid density method: "+o),t.extent||r.data||j("Missing density extent parameter."),o=r[o];const s=t.as||["value","density"],u=fc(o,t.extent||kr(r.data()),i,a).map(l=>{const c={};return c[s[0]]=l[0],c[s[1]]=l[1],St(c)});this.value&&(e.rem=this.value),this.value=e.add=e.source=u}return e}});function Yp(t){O.call(this,null,t)}Yp.Definition={type:"DotBin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"step",type:"number"},{name:"smooth",type:"boolean",default:!1},{name:"as",type:"string",default:"bin"}]};function M2(t){Ut.call(this,null,_9,t),this.modified(!0)}function _9(t){const n=t.expr;return this.value&&!t.modified("expr")?this.value:Do(e=>n(e,t),Wn(n),en(n))}function Xp(t){O.call(this,[void 0,void 0],t)}function Jp(t,n){Ut.call(this,t),this.parent=n,this.count=0}function dc(t){O.call(this,{},t),this._keys=Fo();const n=this._targets=[];n.active=0,n.forEach=e=>{for(let r=0,i=n.active;r<i;++r)e(n[r],r,n)}}function B2(t){Ut.call(this,null,k9,t)}function k9(t){return this.value&&!t.modified()?this.value:P(t.name)?K(t.name).map(n=>ei(n)):ei(t.name,t.as)}function Kp(t){O.call(this,Fo(),t)}function Qp(t){O.call(this,[],t)}function Zp(t){O.call(this,[],t)}function tm(t){O.call(this,null,t)}function z2(t){O.call(this,[],t)}V(Yp,O,{transform(t,n){if(this.value&&!t.modified()&&!n.changed())return n;const e=n.materialize(n.SOURCE).source,r=Vp(n.source,t.groupby,Me),i=t.smooth||!1,a=t.field,o=t.step||((p,m)=>Gl(kr(p,m))/30)(e,a),s=Sa((p,m)=>a(p)-a(m)),u=t.as||"bin",l=r.length;let c,f=1/0,d=-1/0,h=0;for(;h<l;++h){const p=r[h].sort(s);c=-1;for(const m of c2(p,o,i,a))m<f&&(f=m),m>d&&(d=m),p[++c][u]=m}return this.value={start:f,stop:d,step:o},n.reflow(!0).modifies(u)}}),V(M2,Ut),Xp.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:!0}]},V(Xp,O,{transform(t,n){const e=this.value,r=t.field,i=n.changed()||n.modified(r.fields)||t.modified("field");let a=e[0],o=e[1];if((i||a==null)&&(a=1/0,o=-1/0),n.visit(i?n.SOURCE:n.ADD,s=>{const u=ze(r(s));u!=null&&(u<a&&(a=u),u>o&&(o=u))}),!Number.isFinite(a)||!Number.isFinite(o)){let s=en(r);s&&(s=` for field "${s}"`),n.dataflow.warn(`Infinite extent${s}: [${a}, ${o}]`),a=o=void 0}this.value=[a,o]}}),V(Jp,Ut,{connect(t){return this.detachSubflow=t.detachSubflow,this.targets().add(t),t.source=this},add(t){this.count+=1,this.value.add.push(t)},rem(t){this.count-=1,this.value.rem.push(t)},mod(t){this.value.mod.push(t)},init(t){this.value.init(t,t.NO_SOURCE)},evaluate(){return this.value}}),V(dc,O,{activate(t){this._targets[this._targets.active++]=t},subflow(t,n,e,r){const i=this.value;let a,o,s=tt(i,t)&&i[t];return s?s.value.stamp<e.stamp&&(s.init(e),this.activate(s)):(o=r||(o=this._group[t])&&o.tuple,a=e.dataflow,s=new Jp(e.fork(e.NO_SOURCE),this),a.add(s).connect(n(a,t,o)),i[t]=s,this.activate(s)),s},clean(){const t=this.value;let n=0;for(const e in t)if(t[e].count===0){const r=t[e].detachSubflow;r&&r(),delete t[e],++n}if(n){const e=this._targets.filter(r=>r&&r.count>0);this.initTargets(e)}},initTargets(t){const n=this._targets,e=n.length,r=t?t.length:0;let i=0;for(;i<r;++i)n[i]=t[i];for(;i<e&&n[i]!=null;++i)n[i]=null;n.active=r},transform(t,n){const e=n.dataflow,r=t.key,i=t.subflow,a=this._keys,o=t.modified("key"),s=u=>this.subflow(u,i,n);return this._group=t.group||{},this.initTargets(),n.visit(n.REM,u=>{const l=st(u),c=a.get(l);c!==void 0&&(a.delete(l),s(c).rem(u))}),n.visit(n.ADD,u=>{const l=r(u);a.set(st(u),l),s(l).add(u)}),o||n.modified(r.fields)?n.visit(n.MOD,u=>{const l=st(u),c=a.get(l),f=r(u);c===f?s(f).mod(u):(a.set(l,f),s(c).rem(u),s(f).add(u))}):n.changed(n.MOD)&&n.visit(n.MOD,u=>{s(a.get(st(u))).mod(u)}),o&&n.visit(n.REFLOW,u=>{const l=st(u),c=a.get(l),f=r(u);c!==f&&(a.set(l,f),s(c).rem(u),s(f).add(u))}),n.clean()?e.runAfter(()=>{this.clean(),a.clean()}):a.empty>e.cleanThreshold&&e.runAfter(a.clean),n}}),V(B2,Ut),Kp.Definition={type:"Filter",metadata:{changes:!0},params:[{name:"expr",type:"expr",required:!0}]},V(Kp,O,{transform(t,n){const e=n.dataflow,r=this.value,i=n.fork(),a=i.add,o=i.rem,s=i.mod,u=t.expr;let l=!0;function c(f){const d=st(f),h=u(f,t),p=r.get(d);h&&p?(r.delete(d),a.push(f)):h||p?l&&h&&!p&&s.push(f):(r.set(d,1),o.push(f))}return n.visit(n.REM,f=>{const d=st(f);r.has(d)?r.delete(d):o.push(f)}),n.visit(n.ADD,f=>{u(f,t)?a.push(f):r.set(st(f),1)}),n.visit(n.MOD,c),t.modified()&&(l=!1,n.visit(n.REFLOW,c)),r.empty>e.cleanThreshold&&e.runAfter(r.clean),i}}),Qp.Definition={type:"Flatten",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"index",type:"string"},{name:"as",type:"string",array:!0}]},V(Qp,O,{transform(t,n){const e=n.fork(n.NO_SOURCE),r=t.fields,i=S2(r,t.as||[]),a=t.index||null,o=i.length;return e.rem=this.value,n.visit(n.SOURCE,s=>{const u=r.map(p=>p(s)),l=u.reduce((p,m)=>Math.max(p,m.length),0);let c,f,d,h=0;for(;h<l;++h){for(f=vp(s),c=0;c<o;++c)f[i[c]]=(d=u[c][h])==null?null:d;a&&(f[a]=h),e.add.push(f)}}),this.value=e.source=e.add,a&&e.modifies(a),e.modifies(i)}}),Zp.Definition={type:"Fold",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0,length:2,default:["key","value"]}]},V(Zp,O,{transform(t,n){const e=n.fork(n.NO_SOURCE),r=t.fields,i=r.map(en),a=t.as||["key","value"],o=a[0],s=a[1],u=r.length;return e.rem=this.value,n.visit(n.SOURCE,l=>{for(let c,f=0;f<u;++f)c=vp(l),c[o]=i[f],c[s]=r[f](l),e.add.push(c)}),this.value=e.source=e.add,e.modifies(a)}}),tm.Definition={type:"Formula",metadata:{modifies:!0},params:[{name:"expr",type:"expr",required:!0},{name:"as",type:"string",required:!0},{name:"initonly",type:"boolean"}]},V(tm,O,{transform(t,n){const e=t.expr,r=t.as,i=t.modified(),a=t.initonly?n.ADD:i?n.SOURCE:n.modified(e.fields)||n.modified(r)?n.ADD_MOD:n.ADD;return i&&(n=n.materialize().reflow(!0)),t.initonly||n.modifies(r),n.visit(a,o=>o[r]=e(o,t))}}),V(z2,O,{transform(t,n){const e=n.fork(n.ALL),r=t.generator;let i,a,o,s=this.value,u=t.size-s.length;if(u>0){for(i=[];--u>=0;)i.push(o=St(r(t))),s.push(o);e.add=e.add.length?e.materialize(e.ADD).add.concat(i):i}else a=s.slice(0,-u),e.rem=e.rem.length?e.materialize(e.REM).rem.concat(a):a,s=s.slice(-u);return e.source=this.value=s,e}});const hc={value:"value",median:Yx,mean:function(t,n){let e=0,r=0;if(n===void 0)for(let i of t)i!=null&&(i=+i)>=i&&(++e,r+=i);else{let i=-1;for(let a of t)(a=n(a,++i,t))!=null&&(a=+a)>=a&&(++e,r+=a)}if(e)return r/e},min:cp,max:Ca},D9=[];function nm(t){O.call(this,[],t)}function em(t){Li.call(this,t)}function rm(t){O.call(this,null,t)}function O2(t){Ut.call(this,null,F9,t)}function F9(t){return this.value&&!t.modified()?this.value:rp(t.fields,t.flat)}function N2(t){O.call(this,[],t),this._pending=null}function im(t,n,e){e.forEach(St);const r=n.fork(n.NO_FIELDS&n.NO_SOURCE);return r.rem=t.value,t.value=r.source=r.add=e,t._pending=null,r.rem.length&&r.clean(!0),r}function am(t){O.call(this,{},t)}function R2(t){Ut.call(this,null,C9,t)}function C9(t){if(this.value&&!t.modified())return this.value;const n=t.extents,e=n.length;let r,i,a=1/0,o=-1/0;for(r=0;r<e;++r)i=n[r],i[0]<a&&(a=i[0]),i[1]>o&&(o=i[1]);return[a,o]}function T2(t){Ut.call(this,null,E9,t)}function E9(t){return this.value&&!t.modified()?this.value:t.values.reduce((n,e)=>n.concat(e),[])}function P2(t){O.call(this,null,t)}function om(t){Li.call(this,t)}function j2(t){dc.call(this,t)}function sm(t){O.call(this,null,t)}function L2(t){O.call(this,null,t)}function um(t){O.call(this,null,t)}nm.Definition={type:"Impute",metadata:{changes:!0},params:[{name:"field",type:"field",required:!0},{name:"key",type:"field",required:!0},{name:"keyvals",array:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"enum",default:"value",values:["value","mean","median","max","min"]},{name:"value",default:0}]},V(nm,O,{transform(t,n){var e,r,i,a,o,s,u,l,c,f,d=n.fork(n.ALL),h=function(A){var _,k=A.method||hc.value;if(hc[k]!=null)return k===hc.value?(_=A.value!==void 0?A.value:0,()=>_):hc[k];j("Unrecognized imputation method: "+k)}(t),p=function(A){const _=A.field;return k=>k?_(k):NaN}(t),m=en(t.field),g=en(t.key),y=(t.groupby||[]).map(en),v=function(A,_,k,F){var C,D,E,$,M,S,B,z,N=ot=>ot(z),W=[],X=F?F.slice():[],L={},et={};for(X.forEach((ot,nt)=>L[ot]=nt+1),$=0,B=A.length;$<B;++$)S=k(z=A[$]),M=L[S]||(L[S]=X.push(S)),(E=et[D=(C=_?_.map(N):D9)+""])||(E=et[D]=[],W.push(E),E.values=C),E[M-1]=z;return W.domain=X,W}(n.source,t.groupby,t.key,t.keyvals),x=[],b=this.value,w=v.domain.length;for(o=0,l=v.length;o<l;++o)for(i=(e=v[o]).values,r=NaN,u=0;u<w;++u)if(e[u]==null){for(a=v.domain[u],f={_impute:!0},s=0,c=i.length;s<c;++s)f[y[s]]=i[s];f[g]=a,f[m]=Number.isNaN(r)?r=h(e,p):r,x.push(St(f))}return x.length&&(d.add=d.materialize(d.ADD).add.concat(x)),b.length&&(d.rem=d.materialize(d.REM).rem.concat(b)),this.value=x,d}}),em.Definition={type:"JoinAggregate",metadata:{modifies:!0},params:[{name:"groupby",type:"field",array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"ops",type:"enum",array:!0,values:tu},{name:"as",type:"string",null:!0,array:!0},{name:"key",type:"field"}]},V(em,Li,{transform(t,n){const e=this,r=t.modified();let i;return e.value&&(r||n.modified(e._inputs,!0))?(i=e.value=r?e.init(t):{},n.visit(n.SOURCE,a=>e.add(a))):(i=e.value=e.value||this.init(t),n.visit(n.REM,a=>e.rem(a)),n.visit(n.ADD,a=>e.add(a))),e.changes(),n.visit(n.SOURCE,a=>{xt(a,i[e.cellkey(a)].tuple)}),n.reflow(r).modifies(this._outputs)},changes(){const t=this._adds,n=this._mods;let e,r;for(e=0,r=this._alen;e<r;++e)this.celltuple(t[e]),t[e]=null;for(e=0,r=this._mlen;e<r;++e)this.celltuple(n[e]),n[e]=null;this._alen=this._mlen=0}}),rm.Definition={type:"KDE",metadata:{generates:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"cumulative",type:"boolean",default:!1},{name:"counts",type:"boolean",default:!1},{name:"bandwidth",type:"number",default:0},{name:"extent",type:"number",array:!0,length:2},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"as",type:"string",array:!0,default:["value","density"]}]},V(rm,O,{transform(t,n){const e=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||t.modified()){const r=n.materialize(n.SOURCE).source,i=Vp(r,t.groupby,t.field),a=(t.groupby||[]).map(en),o=t.bandwidth,s=t.cumulative?"cdf":"pdf",u=t.as||["value","density"],l=[];let c=t.extent,f=t.steps||t.minsteps||25,d=t.steps||t.maxsteps||200;s!=="pdf"&&s!=="cdf"&&j("Invalid density method: "+s),t.resolve==="shared"&&(c||(c=kr(r,t.field)),f=d=t.steps||d),i.forEach(h=>{const p=Cp(h,o)[s],m=t.counts?h.length:1;fc(p,c||kr(h),f,d).forEach(g=>{const y={};for(let v=0;v<a.length;++v)y[a[v]]=h.dims[v];y[u[0]]=g[0],y[u[1]]=g[1]*m,l.push(St(y))})}),this.value&&(e.rem=this.value),this.value=e.add=e.source=l}return e}}),V(O2,Ut),V(N2,O,{transform(t,n){const e=n.dataflow;return this._pending?im(this,n,this._pending):function(r){return r.modified("async")&&!(r.modified("values")||r.modified("url")||r.modified("format"))}(t)?n.StopPropagation:t.values?im(this,n,e.parse(t.values,t.format)):t.async?{async:e.request(t.url,t.format).then(i=>(this._pending=K(i.data),a=>a.touch(this)))}:e.request(t.url,t.format).then(r=>im(this,n,K(r.data)))}}),am.Definition={type:"Lookup",metadata:{modifies:!0},params:[{name:"index",type:"index",params:[{name:"from",type:"data",required:!0},{name:"key",type:"field",required:!0}]},{name:"values",type:"field",array:!0},{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0},{name:"default",default:null}]},V(am,O,{transform(t,n){const e=t.fields,r=t.index,i=t.values,a=t.default==null?null:t.default,o=t.modified(),s=e.length;let u,l,c,f=o?n.SOURCE:n.ADD,d=n,h=t.as;return i?(l=i.length,s>1&&!h&&j('Multi-field lookup requires explicit "as" parameter.'),h&&h.length!==s*l&&j('The "as" parameter has too few output field names.'),h=h||i.map(en),u=function(p){for(var m,g,y=0,v=0;y<s;++y)if((g=r.get(e[y](p)))==null)for(m=0;m<l;++m,++v)p[h[v]]=a;else for(m=0;m<l;++m,++v)p[h[v]]=i[m](g)}):(h||j("Missing output field names."),u=function(p){for(var m,g=0;g<s;++g)m=r.get(e[g](p)),p[h[g]]=m??a}),o?d=n.reflow(!0):(c=e.some(p=>n.modified(p.fields)),f|=c?n.MOD:0),n.visit(f,u),d.modifies(h)}}),V(R2,Ut),V(T2,Ut),V(P2,O,{transform(t,n){return this.modified(t.modified()),this.value=t,n.fork(n.NO_SOURCE|n.NO_FIELDS)}}),om.Definition={type:"Pivot",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"value",type:"field",required:!0},{name:"op",type:"enum",values:tu,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]},V(om,Li,{_transform:Li.prototype.transform,transform(t,n){return this._transform(function(e,r){const i=e.field,a=e.value,o=(e.op==="count"?"__count__":e.op)||"sum",s=Wn(i).concat(Wn(a)),u=function(l,c,f){const d={},h=[];return f.visit(f.SOURCE,p=>{const m=l(p);d[m]||(d[m]=1,h.push(m))}),h.sort(Zh),c?h.slice(0,c):h}(i,e.limit||0,r);return r.changed()&&e.set("__pivot__",null,null,!0),{key:e.key,groupby:e.groupby,ops:u.map(()=>o),fields:u.map(l=>function(c,f,d,h){return Do(p=>f(p)===c?d(p):NaN,h,c+"")}(l,i,a,s)),as:u.map(l=>l+""),modified:e.modified.bind(e)}}(t,n),n)}}),V(j2,dc,{transform(t,n){const e=t.subflow,r=t.field,i=a=>this.subflow(st(a),e,n,a);return(t.modified("field")||r&&n.modified(Wn(r)))&&j("PreFacet does not support field modification."),this.initTargets(),r?(n.visit(n.MOD,a=>{const o=i(a);r(a).forEach(s=>o.mod(s))}),n.visit(n.ADD,a=>{const o=i(a);r(a).forEach(s=>o.add(St(s)))}),n.visit(n.REM,a=>{const o=i(a);r(a).forEach(s=>o.rem(s))})):(n.visit(n.MOD,a=>i(a).mod(a)),n.visit(n.ADD,a=>i(a).add(a)),n.visit(n.REM,a=>i(a).rem(a))),n.clean()&&n.runAfter(()=>this.clean()),n}}),sm.Definition={type:"Project",metadata:{generates:!0,changes:!0},params:[{name:"fields",type:"field",array:!0},{name:"as",type:"string",null:!0,array:!0}]},V(sm,O,{transform(t,n){const e=n.fork(n.NO_SOURCE),r=t.fields,i=S2(t.fields,t.as||[]),a=r?(s,u)=>function(l,c,f,d){for(let h=0,p=f.length;h<p;++h)c[d[h]]=f[h](l);return c}(s,u,r,i):nc;let o;return this.value?o=this.value:(n=n.addAll(),o=this.value={}),n.visit(n.REM,s=>{const u=st(s);e.rem.push(o[u]),o[u]=null}),n.visit(n.ADD,s=>{const u=a(s,St({}));o[st(s)]=u,e.add.push(u)}),n.visit(n.MOD,s=>{e.mod.push(a(s,o[st(s)]))}),e}}),V(L2,O,{transform(t,n){return this.value=t.value,t.modified("value")?n.fork(n.NO_SOURCE|n.NO_FIELDS):n.StopPropagation}}),um.Definition={type:"Quantile",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"probs",type:"number",array:!0},{name:"step",type:"number",default:.01},{name:"as",type:"string",array:!0,default:["prob","value"]}]};function q2(t){O.call(this,null,t)}function lm(t){O.call(this,[],t),this.count=0}function cm(t){O.call(this,null,t)}function U2(t){O.call(this,null,t),this.modified(!0)}function fm(t){O.call(this,null,t)}V(um,O,{transform(t,n){const e=n.fork(n.NO_SOURCE|n.NO_FIELDS),r=t.as||["prob","value"];if(this.value&&!t.modified()&&!n.changed())return e.source=this.value,e;const i=Vp(n.materialize(n.SOURCE).source,t.groupby,t.field),a=(t.groupby||[]).map(en),o=[],s=t.step||.01,u=t.probs||xe(s/2,1-1e-14,s),l=u.length;return i.forEach(c=>{const f=Ap(c,u);for(let d=0;d<l;++d){const h={};for(let p=0;p<a.length;++p)h[a[p]]=c.dims[p];h[r[0]]=u[d],h[r[1]]=f[d],o.push(St(h))}}),this.value&&(e.rem=this.value),this.value=e.add=e.source=o,e}}),V(q2,O,{transform(t,n){let e,r;return this.value?r=this.value:(e=n=n.addAll(),r=this.value={}),t.derive&&(e=n.fork(n.NO_SOURCE),n.visit(n.REM,i=>{const a=st(i);e.rem.push(r[a]),r[a]=null}),n.visit(n.ADD,i=>{const a=vp(i);r[st(i)]=a,e.add.push(a)}),n.visit(n.MOD,i=>{const a=r[st(i)];for(const o in i)a[o]=i[o],e.modifies(o);e.mod.push(a)})),e}}),lm.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]},V(lm,O,{transform(t,n){const e=n.fork(n.NO_SOURCE),r=t.modified("size"),i=t.size,a=this.value.reduce((c,f)=>(c[st(f)]=1,c),{});let o=this.value,s=this.count,u=0;function l(c){let f,d;o.length<i?o.push(c):(d=~~((s+1)*Ne()),d<o.length&&d>=u&&(f=o[d],a[st(f)]&&e.rem.push(f),o[d]=c)),++s}if(n.rem.length&&(n.visit(n.REM,c=>{const f=st(c);a[f]&&(a[f]=-1,e.rem.push(c)),--s}),o=o.filter(c=>a[st(c)]!==-1)),(n.rem.length||r)&&o.length<i&&n.source&&(u=s=o.length,n.visit(n.SOURCE,c=>{a[st(c)]||l(c)}),u=-1),r&&o.length>i){const c=o.length-i;for(let f=0;f<c;++f)a[st(o[f])]=-1,e.rem.push(o[f]);o=o.slice(c)}return n.mod.length&&n.visit(n.MOD,c=>{a[st(c)]&&e.mod.push(c)}),n.add.length&&n.visit(n.ADD,l),(n.add.length||u<0)&&(e.add=o.filter(c=>!a[st(c)])),this.count=s,this.value=e.source=o,e}}),cm.Definition={type:"Sequence",metadata:{generates:!0,changes:!0},params:[{name:"start",type:"number",required:!0},{name:"stop",type:"number",required:!0},{name:"step",type:"number",default:1},{name:"as",type:"string",default:"data"}]},V(cm,O,{transform(t,n){if(this.value&&!t.modified())return;const e=n.materialize().fork(n.MOD),r=t.as||"data";return e.rem=this.value?n.rem.concat(this.value):n.rem,this.value=xe(t.start,t.stop,t.step||1).map(i=>{const a={};return a[r]=i,St(a)}),e.add=n.add.concat(this.value),e}}),V(U2,O,{transform(t,n){return this.value=n.source,n.changed()?n.fork(n.NO_SOURCE|n.NO_FIELDS):n.StopPropagation}});const I2=["unit0","unit1"];function W2(t){O.call(this,Fo(),t)}function H2(t){O.call(this,null,t)}fm.Definition={type:"TimeUnit",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"units",type:"enum",values:ux,array:!0},{name:"step",type:"number",default:1},{name:"maxbins",type:"number",default:40},{name:"extent",type:"date",array:!0},{name:"timezone",type:"enum",default:"local",values:["local","utc"]},{name:"as",type:"string",array:!0,length:2,default:I2}]},V(fm,O,{transform(t,n){const e=t.field,r=t.interval!==!1,i=t.timezone==="utc",a=this._floor(t,n),o=(i?tp:np)(a.unit).offset,s=t.as||I2,u=s[0],l=s[1],c=a.step;let f=a.start||1/0,d=a.stop||-1/0,h=n.ADD;return(t.modified()||n.changed(n.REM)||n.modified(Wn(e)))&&(h=(n=n.reflow(!0)).SOURCE,f=1/0,d=-1/0),n.visit(h,p=>{const m=e(p);let g,y;m==null?(p[u]=null,r&&(p[l]=null)):(p[u]=g=y=a(m),r&&(p[l]=y=o(g,c)),g<f&&(f=g),y>d&&(d=y))}),a.start=f,a.stop=d,n.modifies(r?s:u)},_floor(t,n){const e=t.timezone==="utc",{units:r,step:i}=t.units?{units:t.units,step:t.step||1}:nx({extent:t.extent||kr(n.materialize(n.SOURCE).source,t.field),maxbins:t.maxbins}),a=ex(r),o=this.value||{},s=(e?rx:ix)(a,i);return s.unit=Bt(a),s.units=a,s.step=i,s.start=o.start,s.stop=o.stop,this.value=s}}),V(W2,O,{transform(t,n){const e=n.dataflow,r=t.field,i=this.value,a=s=>i.set(r(s),s);let o=!0;return t.modified("field")||n.modified(r.fields)?(i.clear(),n.visit(n.SOURCE,a)):n.changed()?(n.visit(n.REM,s=>i.delete(r(s))),n.visit(n.ADD,a)):o=!1,this.modified(o),i.empty>e.cleanThreshold&&e.runAfter(i.clean),n.fork()}}),V(H2,O,{transform(t,n){(!this.value||t.modified("field")||t.modified("sort")||n.changed()||t.sort&&n.modified(t.sort.fields))&&(this.value=(t.sort?n.source.slice().sort(Sa(t.sort)):n.source).map(t.field))}});const nu={row_number:function(){return{next:t=>t.index+1}},rank:function(){let t;return{init:()=>t=1,next:n=>{const e=n.index,r=n.data;return e&&n.compare(r[e-1],r[e])?t=e+1:t}}},dense_rank:function(){let t;return{init:()=>t=1,next:n=>{const e=n.index,r=n.data;return e&&n.compare(r[e-1],r[e])?++t:t}}},percent_rank:function(){const t=nu.rank(),n=t.next;return{init:t.init,next:e=>(n(e)-1)/(e.data.length-1)}},cume_dist:function(){let t;return{init:()=>t=0,next:n=>{const e=n.data,r=n.compare;let i=n.index;if(t<i){for(;i+1<e.length&&!r(e[i],e[i+1]);)++i;t=i}return(1+t)/e.length}}},ntile:function(t,n){(n=+n)>0||j("ntile num must be greater than zero.");const e=nu.cume_dist(),r=e.next;return{init:e.init,next:i=>Math.ceil(n*r(i))}},lag:function(t,n){return n=+n||1,{next:e=>{const r=e.index-n;return r>=0?t(e.data[r]):null}}},lead:function(t,n){return n=+n||1,{next:e=>{const r=e.index+n,i=e.data;return r<i.length?t(i[r]):null}}},first_value:function(t){return{next:n=>t(n.data[n.i0])}},last_value:function(t){return{next:n=>t(n.data[n.i1-1])}},nth_value:function(t,n){return(n=+n)>0||j("nth_value nth must be greater than zero."),{next:e=>{const r=e.i0+(n-1);return r<e.i1?t(e.data[r]):null}}},prev_value:function(t){let n;return{init:()=>n=null,next:e=>{const r=t(e.data[e.index]);return r!=null?n=r:n}}},next_value:function(t){let n,e;return{init:()=>(n=null,e=-1),next:r=>{const i=r.data;return r.index<=e?n:(e=function(a,o,s){for(let u=o.length;s<u;++s)if(a(o[s])!=null)return s;return-1}(t,i,r.index))<0?(e=i.length,n=null):n=t(i[e])}}}},$9=Object.keys(nu);function G2(t){const n=K(t.ops),e=K(t.fields),r=K(t.params),i=K(t.aggregate_params),a=K(t.as),o=this.outputs=[],s=this.windows=[],u={},l={},c=[],f=[];let d=!0;function h(p){K(Wn(p)).forEach(m=>u[m]=1)}h(t.sort),n.forEach((p,m)=>{const g=e[m],y=r[m],v=i[m]||null,x=en(g),b=x2(p,x,a[m]);if(h(g),o.push(b),tt(nu,p))s.push(function(w,A,_,k){const F=nu[w](A,_);return{init:F.init||ip,update:function(C,D){D[k]=F.next(C)}}}(p,g,y,b));else{if(g==null&&p!=="count"&&j("Null aggregate field specified."),p==="count")return void c.push(b);d=!1;let w=l[x];w||(w=l[x]=[],w.field=g,f.push(w)),w.push(w2(p,v,b))}}),(c.length||f.length)&&(this.cell=function(p,m,g){p=p.map(A=>_2(A,A.field));const y={num:0,agg:null,store:!1,count:m};if(!g)for(var v=p.length,x=y.agg=Array(v),b=0;b<v;++b)x[b]=new p[b](y);if(y.store)var w=y.data=new qp;return y.add=function(A){if(y.num+=1,!g){w&&w.add(A);for(let _=0;_<v;++_)x[_].add(x[_].get(A),A)}},y.rem=function(A){if(y.num-=1,!g){w&&w.rem(A);for(let _=0;_<v;++_)x[_].rem(x[_].get(A),A)}},y.set=function(A){let _,k;for(w&&w.values(),_=0,k=m.length;_<k;++_)A[m[_]]=y.num;if(!g)for(_=0,k=x.length;_<k;++_)x[_].set(A)},y.init=function(){y.num=0,w&&w.reset();for(let A=0;A<v;++A)x[A].init()},y}(f,c,d)),this.inputs=Object.keys(u)}const V2=G2.prototype;function dm(t){O.call(this,{},t),this._mlen=0,this._mods=[]}function S9(t,n,e,r){const i=r.sort,a=i&&!r.ignorePeers,o=r.frame||[null,0],s=t.data(e),u=s.length,l=a?ax(i):null,c={i0:0,i1:0,p0:0,p1:0,index:0,data:s,compare:i||In(-1)};n.init();for(let f=0;f<u;++f)M9(c,o,f,u),a&&B9(c,l),n.update(c,s[f])}function M9(t,n,e,r){t.p0=t.i0,t.p1=t.i1,t.i0=n[0]==null?0:Math.max(0,e-Math.abs(n[0])),t.i1=n[1]==null?r:Math.min(r,e+Math.abs(n[1])+1),t.index=e}function B9(t,n){const e=t.i0,r=t.i1-1,i=t.compare,a=t.data,o=a.length-1;e>0&&!i(a[e],a[e-1])&&(t.i0=n.left(a,a[e])),r<o&&!i(a[r],a[r+1])&&(t.i1=n.right(a,a[r]))}V2.init=function(){this.windows.forEach(t=>t.init()),this.cell&&this.cell.init()},V2.update=function(t,n){const e=this.cell,r=this.windows,i=t.data,a=r&&r.length;let o;if(e){for(o=t.p0;o<t.i0;++o)e.rem(i[o]);for(o=t.p1;o<t.i1;++o)e.add(i[o]);e.set(n)}for(o=0;o<a;++o)r[o].update(t,n)},dm.Definition={type:"Window",metadata:{modifies:!0},params:[{name:"sort",type:"compare"},{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:$9.concat(tu)},{name:"params",type:"number",null:!0,array:!0},{name:"aggregate_params",type:"number",null:!0,array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"as",type:"string",null:!0,array:!0},{name:"frame",type:"number",null:!0,array:!0,length:2,default:[null,0]},{name:"ignorePeers",type:"boolean",default:!1}]},V(dm,O,{transform(t,n){this.stamp=n.stamp;const e=t.modified(),r=Sa(t.sort),i=jp(t.groupby),a=s=>this.group(i(s));let o=this.state;o&&!e||(o=this.state=new G2(t)),e||n.modified(o.inputs)?(this.value={},n.visit(n.SOURCE,s=>a(s).add(s))):(n.visit(n.REM,s=>a(s).remove(s)),n.visit(n.ADD,s=>a(s).add(s)));for(let s=0,u=this._mlen;s<u;++s)S9(this._mods[s],o,r,t);return this._mlen=0,this._mods=[],n.reflow(e).modifies(o.outputs)},group(t){let n=this.value[t];return n||(n=this.value[t]=k2(st),n.stamp=-1),n.stamp<this.stamp&&(n.stamp=this.stamp,this._mods[this._mlen++]=n),n}});const z9=Object.freeze(Object.defineProperty({__proto__:null,aggregate:Li,bin:Up,collect:Ip,compare:D2,countpattern:Wp,cross:Hp,density:Gp,dotbin:Yp,expression:M2,extent:Xp,facet:dc,field:B2,filter:Kp,flatten:Qp,fold:Zp,formula:tm,generate:z2,impute:nm,joinaggregate:em,kde:rm,key:O2,load:N2,lookup:am,multiextent:R2,multivalues:T2,params:P2,pivot:om,prefacet:j2,project:sm,proxy:L2,quantile:um,relay:q2,sample:lm,sequence:cm,sieve:U2,subflow:Jp,timeunit:fm,tupleindex:W2,values:H2,window:dm},Symbol.toStringTag,{value:"Module"}));function Y2(t,n,e){var r=null,i=Hn(!0),a=null,o=Ix,s=null,u=Ux(l);function l(f){var d,h,p,m,g,y=(f=M8(f)).length,v=!1,x=new Array(y),b=new Array(y);for(a==null&&(s=o(g=u())),d=0;d<=y;++d){if(!(d<y&&i(m=f[d],d,f))===v)if(v=!v)h=d,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),p=d-1;p>=h;--p)s.point(x[p],b[p]);s.lineEnd(),s.areaEnd()}v&&(x[d]=+t(m,d,f),b[d]=+n(m,d,f),s.point(r?+r(m,d,f):x[d],e?+e(m,d,f):b[d]))}if(g)return s=null,g+""||null}function c(){return Wx().defined(i).curve(o).context(a)}return t=typeof t=="function"?t:t===void 0?B8:Hn(+t),n=typeof n=="function"?n:Hn(n===void 0?0:+n),e=typeof e=="function"?e:e===void 0?z8:Hn(+e),l.x=function(f){return arguments.length?(t=typeof f=="function"?f:Hn(+f),r=null,l):t},l.x0=function(f){return arguments.length?(t=typeof f=="function"?f:Hn(+f),l):t},l.x1=function(f){return arguments.length?(r=f==null?null:typeof f=="function"?f:Hn(+f),l):r},l.y=function(f){return arguments.length?(n=typeof f=="function"?f:Hn(+f),e=null,l):n},l.y0=function(f){return arguments.length?(n=typeof f=="function"?f:Hn(+f),l):n},l.y1=function(f){return arguments.length?(e=f==null?null:typeof f=="function"?f:Hn(+f),l):e},l.lineX0=l.lineY0=function(){return c().x(t).y(n)},l.lineY1=function(){return c().x(t).y(e)},l.lineX1=function(){return c().x(r).y(n)},l.defined=function(f){return arguments.length?(i=typeof f=="function"?f:Hn(!!f),l):i},l.curve=function(f){return arguments.length?(o=f,a!=null&&(s=o(a)),l):o},l.context=function(f){return arguments.length?(f==null?a=s=null:s=o(a=f),l):a},l}const O9={draw(t,n){const e=O8(n/R8);t.moveTo(e,0),t.arc(0,0,e,0,N8)}};function qi(t,n){if(typeof document<"u"&&document.createElement){const e=document.createElement("canvas");if(e&&e.getContext)return e.width=t,e.height=n,e}return null}const N9=()=>typeof Image<"u"?Image:null;var X2=-.14861,hm=1.78277,pm=-.29227,pc=-.90649,eu=1.97294,J2=eu*pc,K2=eu*hm,Q2=hm*pm-pc*X2;function mm(t,n,e,r){return arguments.length===1?function(i){if(i instanceof Ba)return new Ba(i.h,i.s,i.l,i.opacity);i instanceof Px||(i=d8(i));var a=i.r/255,o=i.g/255,s=i.b/255,u=(Q2*s+J2*a-K2*o)/(Q2+J2-K2),l=s-u,c=(eu*(o-u)-pm*l)/pc,f=Math.sqrt(c*c+l*l)/(eu*u*(1-u)),d=f?Math.atan2(c,l)*V6-120:NaN;return new Ba(d<0?d+360:d,f,u,i.opacity)}(t):new Ba(t,n,e,r??1)}function Ba(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Z2(t){return function(n,e){var r=t((n=mp(n)).h,(e=mp(e)).h),i=Oe(n.s,e.s),a=Oe(n.l,e.l),o=Oe(n.opacity,e.opacity);return function(s){return n.h=r(s),n.s=i(s),n.l=a(s),n.opacity=o(s),n+""}}}h8(Ba,mm,p8(m8,{brighter(t){return t=t==null?Lx:Math.pow(Lx,t),new Ba(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?jx:Math.pow(jx,t),new Ba(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*Y6,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new Px(255*(n+e*(X2*r+hm*i)),255*(n+e*(pm*r+pc*i)),255*(n+e*(eu*r)),this.opacity)}}));const R9=Z2(pp);var T9=Z2(Oe);function tw(t){return function n(e){function r(i,a){var o=t((i=mm(i)).h,(a=mm(a)).h),s=Oe(i.s,a.s),u=Oe(i.l,a.l),l=Oe(i.opacity,a.opacity);return function(c){return i.h=o(c),i.s=s(c),i.l=u(Math.pow(c,e)),i.opacity=l(c),i+""}}return e=+e,r.gamma=n,r}(1)}const P9=tw(pp);var j9=tw(Oe);function gm(t,n){n===void 0&&(n=t,t=Vs);for(var e=0,r=n.length-1,i=n[0],a=new Array(r<0?0:r);e<r;)a[e]=t(i,i=n[++e]);return function(o){var s=Math.max(0,Math.min(r-1,Math.floor(o*=r)));return a[s](o-s)}}const L9=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Vs,interpolateArray:a8,interpolateBasis:g8,interpolateBasisClosed:y8,interpolateCubehelix:P9,interpolateCubehelixLong:j9,interpolateDate:o8,interpolateDiscrete:function(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}},interpolateHcl:X6,interpolateHclLong:J6,interpolateHsl:R9,interpolateHslLong:T9,interpolateHue:function(t,n){var e=pp(+t,+n);return function(r){var i=e(r);return i-360*Math.floor(i/360)}},interpolateLab:function(t,n){var e=Oe((t=fp(t)).l,(n=fp(n)).l),r=Oe(t.a,n.a),i=Oe(t.b,n.b),a=Oe(t.opacity,n.opacity);return function(o){return t.l=e(o),t.a=r(o),t.b=i(o),t.opacity=a(o),t+""}},interpolateNumber:v8,interpolateNumberArray:s8,interpolateObject:u8,interpolateRgb:b8,interpolateRgbBasis:x8,interpolateRgbBasisClosed:w8,interpolateRound:Xl,interpolateString:A8,interpolateTransformCss:_8,interpolateTransformSvg:k8,interpolateZoom:$8,piecewise:gm,quantize:function(t,n){for(var e=new Array(n),r=0;r<n;++r)e[r]=t(r/(n-1));return e}},Symbol.toStringTag,{value:"Module"}));function nw(t){return Math.log(t)}function ew(t){return Math.exp(t)}function q9(t){return-Math.log(-t)}function U9(t){return-Math.exp(-t)}function I9(t){return isFinite(t)?+("1e"+t):t<0?0:t}function rw(t){return(n,e)=>-t(-n,e)}function ym(t){const n=t(nw,ew),e=n.domain;let r,i,a=10;function o(){return r=function(s){return s===Math.E?Math.log:s===10&&Math.log10||s===2&&Math.log2||(s=Math.log(s),u=>Math.log(u)/s)}(a),i=function(s){return s===10?I9:s===Math.E?Math.exp:u=>Math.pow(s,u)}(a),e()[0]<0?(r=rw(r),i=rw(i),t(q9,U9)):t(nw,ew),n}return n.base=function(s){return arguments.length?(a=+s,o()):a},n.domain=function(s){return arguments.length?(e(s),o()):e()},n.ticks=s=>{const u=e();let l=u[0],c=u[u.length-1];const f=c<l;f&&([l,c]=[c,l]);let d,h,p=r(l),m=r(c);const g=s==null?10:+s;let y=[];if(!(a%1)&&m-p<g){if(p=Math.floor(p),m=Math.ceil(m),l>0){for(;p<=m;++p)for(d=1;d<a;++d)if(h=p<0?d/i(-p):d*i(p),!(h<l)){if(h>c)break;y.push(h)}}else for(;p<=m;++p)for(d=a-1;d>=1;--d)if(h=p>0?d/i(-p):d*i(p),!(h<l)){if(h>c)break;y.push(h)}2*y.length<g&&(y=lx(l,c,g))}else y=lx(p,m,Math.min(m-p,g)).map(i);return f?y.reverse():y},n.tickFormat=(s,u)=>{if(s==null&&(s=10),u==null&&(u=a===10?"s":","),typeof u!="function"&&(a%1||(u=h6(u)).precision!=null||(u.trim=!0),u=p6(u)),s===1/0)return u;const l=Math.max(1,a*s/n.ticks().length);return c=>{let f=c/i(Math.round(r(c)));return f*a<a-.5&&(f*=a),f<=l?u(c):""}},n.nice=()=>e(K6(e(),{floor:s=>i(Math.floor(r(s))),ceil:s=>i(Math.ceil(r(s)))})),n}function iw(t){return function(n){return Math.sign(n)*Math.log1p(Math.abs(n/t))}}function aw(t){return function(n){return Math.sign(n)*Math.expm1(Math.abs(n))*t}}function vm(t){var n=1,e=t(iw(n),aw(n));return e.constant=function(r){return arguments.length?t(iw(n=+r),aw(n)):n},Eo(e)}function ow(t){return function(n){return n<0?-Math.pow(-n,t):Math.pow(n,t)}}function W9(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function H9(t){return t<0?-t*t:t*t}function bm(t){var n=t(Ri,Ri),e=1;return n.exponent=function(r){return arguments.length?(e=+r)==1?t(Ri,Ri):e===.5?t(W9,H9):t(ow(e),ow(1/e)):e},Eo(n)}function xm(){var t=bm(dp());return t.copy=function(){return hp(t,xm()).exponent(t.exponent())},$a.apply(t,arguments),t}function mc(){var t,n,e,r,i,a=0,o=1,s=Ri,u=!1;function l(f){return f==null||isNaN(f=+f)?i:s(e===0?.5:(f=(r(f)-t)*e,u?Math.max(0,Math.min(1,f)):f))}function c(f){return function(d){var h,p;return arguments.length?([h,p]=d,s=f(h,p),l):[s(0),s(1)]}}return l.domain=function(f){return arguments.length?([a,o]=f,t=r(a=+a),n=r(o=+o),e=t===n?0:1/(n-t),l):[a,o]},l.clamp=function(f){return arguments.length?(u=!!f,l):u},l.interpolator=function(f){return arguments.length?(s=f,l):s},l.range=c(Vs),l.rangeRound=c(Xl),l.unknown=function(f){return arguments.length?(i=f,l):i},function(f){return r=f,t=f(a),n=f(o),e=t===n?0:1/(n-t),l}}function Ui(t,n){return n.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function wm(){var t=Eo(mc()(Ri));return t.copy=function(){return Ui(t,wm())},Ti.apply(t,arguments)}function Am(){var t=bm(mc());return t.copy=function(){return Ui(t,Am()).exponent(t.exponent())},Ti.apply(t,arguments)}function gc(){var t,n,e,r,i,a,o,s=0,u=.5,l=1,c=1,f=Ri,d=!1;function h(m){return isNaN(m=+m)?o:(m=.5+((m=+a(m))-n)*(c*m<c*n?r:i),f(d?Math.max(0,Math.min(1,m)):m))}function p(m){return function(g){var y,v,x;return arguments.length?([y,v,x]=g,f=gm(m,[y,v,x]),h):[f(0),f(.5),f(1)]}}return h.domain=function(m){return arguments.length?([s,u,l]=m,t=a(s=+s),n=a(u=+u),e=a(l=+l),r=t===n?0:.5/(n-t),i=n===e?0:.5/(e-n),c=n<t?-1:1,h):[s,u,l]},h.clamp=function(m){return arguments.length?(d=!!m,h):d},h.interpolator=function(m){return arguments.length?(f=m,h):f},h.range=p(Vs),h.rangeRound=p(Xl),h.unknown=function(m){return arguments.length?(o=m,h):o},function(m){return a=m,t=m(s),n=m(u),e=m(l),r=t===n?0:.5/(n-t),i=n===e?0:.5/(e-n),c=n<t?-1:1,h}}function _m(){var t=bm(gc());return t.copy=function(){return Ui(t,_m()).exponent(t.exponent())},Ti.apply(t,arguments)}const G9=Fr("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),V9=Fr("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),Y9=Fr("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),X9=Fr("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0"),J9=Fr("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),K9=Fr("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),Q9=Fr("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),Z9=Fr("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),t7=Fr("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),n7=Fr("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f");function km(t,n,e){const r=t-n+2*e;return t?r>0?r:1:0}const Bo="linear",ri="log",ru="pow",iu="sqrt",yc="symlog",za="time",Oa="utc",Cr="sequential",zo="diverging",Oo="quantile",vc="quantize",bc="threshold",Dm="ordinal",Fm="point",sw="band",Cm="bin-ordinal",fn="continuous",au="discrete",ou="discretizing",Re="interpolating",Em="temporal";function $m(){const t=qx().unknown(void 0),n=t.domain,e=t.range;let r,i,a=[0,1],o=!1,s=0,u=0,l=.5;function c(){const f=n().length,d=a[1]<a[0],h=a[1-d],p=km(f,s,u);let m=a[d-0];r=(h-m)/(p||1),o&&(r=Math.floor(r)),m+=(h-m-r*(f-s))*l,i=r*(1-s),o&&(m=Math.round(m),i=Math.round(i));const g=xe(f).map(y=>m+r*y);return e(d?g.reverse():g)}return delete t.unknown,t.domain=function(f){return arguments.length?(n(f),c()):n()},t.range=function(f){return arguments.length?(a=[+f[0],+f[1]],c()):a.slice()},t.rangeRound=function(f){return a=[+f[0],+f[1]],o=!0,c()},t.bandwidth=function(){return i},t.step=function(){return r},t.round=function(f){return arguments.length?(o=!!f,c()):o},t.padding=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),s=u,c()):s},t.paddingInner=function(f){return arguments.length?(s=Math.max(0,Math.min(1,f)),c()):s},t.paddingOuter=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),c()):u},t.align=function(f){return arguments.length?(l=Math.max(0,Math.min(1,f)),c()):l},t.invertRange=function(f){if(f[0]==null||f[1]==null)return;const d=a[1]<a[0],h=d?e().reverse():e(),p=h.length-1;let m,g,y,v=+f[0],x=+f[1];return v!=v||x!=x||(x<v&&(y=v,v=x,x=y),x<h[0]||v>a[1-d])?void 0:(m=Math.max(0,Ea(h,v)-1),g=v===x?m:Ea(h,x)-1,v-h[m]>i+1e-10&&++m,d&&(y=m,m=p-g,g=p-y),m>g?void 0:n().slice(m,g+1))},t.invert=function(f){const d=t.invertRange([f,f]);return d&&d[0]},t.copy=function(){return $m().domain(n()).range(a).round(o).paddingInner(s).paddingOuter(u).align(l)},c()}function uw(t){const n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,t.copy=function(){return uw(n())},t}var e7=Array.prototype.map;const r7=Array.prototype.slice,xc=new Map,lw=Symbol("vega_scale");function cw(t){return t[lw]=!0,t}function fw(t){return t&&t[lw]===!0}function Dt(t,n,e){return arguments.length>1?(xc.set(t,function(r,i,a){const o=function(){const s=i();return s.invertRange||(s.invertRange=s.invert?function(u){return function(l){let c,f=l[0],d=l[1];return d<f&&(c=f,f=d,d=c),[u.invert(f),u.invert(d)]}}(s):s.invertExtent?function(u){return function(l){const c=u.range();let f,d,h,p,m=l[0],g=l[1],y=-1;for(g<m&&(d=m,m=g,g=d),h=0,p=c.length;h<p;++h)c[h]>=m&&c[h]<=g&&(y<0&&(y=h),f=h);if(!(y<0))return m=u.invertExtent(c[y]),g=u.invertExtent(c[f]),[m[0]===void 0?m[1]:m[0],g[1]===void 0?g[0]:g[1]]}}(s):void 0),s.type=r,cw(s)};return o.metadata=Dr(K(a)),o}(t,n,e)),this):dw(t)?xc.get(t):void 0}function dw(t){return xc.has(t)}function Na(t,n){const e=xc.get(t);return e&&e.metadata[n]}function Sm(t){return Na(t,fn)}function No(t){return Na(t,au)}function Mm(t){return Na(t,ou)}function hw(t){return Na(t,ri)}function pw(t){return Na(t,Re)}function mw(t){return Na(t,Oo)}Dt("identity",function t(n){var e;function r(i){return i==null||isNaN(i=+i)?e:i}return r.invert=r,r.domain=r.range=function(i){return arguments.length?(n=Array.from(i,Tx),r):n.slice()},r.unknown=function(i){return arguments.length?(e=i,r):e},r.copy=function(){return t(n).unknown(e)},n=arguments.length?Array.from(n,Tx):[0,1],Eo(r)}),Dt(Bo,l8,fn),Dt(ri,function t(){const n=ym(dp()).domain([1,10]);return n.copy=()=>hp(n,t()).base(n.base()),$a.apply(n,arguments),n},[fn,ri]),Dt(ru,xm,fn),Dt(iu,function(){return xm.apply(null,arguments).exponent(.5)},fn),Dt(yc,function t(){var n=vm(dp());return n.copy=function(){return hp(n,t()).constant(n.constant())},$a.apply(n,arguments)},fn),Dt(za,n8,[fn,Em]),Dt(Oa,function(){return $a.apply(Q6(t8,Z6,A6,w6,x6,b6,v6,y6,g6,m6).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)},[fn,Em]),Dt(Cr,wm,[fn,Re]),Dt(`${Cr}-${Bo}`,wm,[fn,Re]),Dt(`${Cr}-${ri}`,function t(){var n=ym(mc()).domain([1,10]);return n.copy=function(){return Ui(n,t()).base(n.base())},Ti.apply(n,arguments)},[fn,Re,ri]),Dt(`${Cr}-${ru}`,Am,[fn,Re]),Dt(`${Cr}-${iu}`,function(){return Am.apply(null,arguments).exponent(.5)},[fn,Re]),Dt(`${Cr}-${yc}`,function t(){var n=vm(mc());return n.copy=function(){return Ui(n,t()).constant(n.constant())},Ti.apply(n,arguments)},[fn,Re]),Dt(`${zo}-${Bo}`,function t(){var n=Eo(gc()(Ri));return n.copy=function(){return Ui(n,t())},Ti.apply(n,arguments)},[fn,Re]),Dt(`${zo}-${ri}`,function t(){var n=ym(gc()).domain([.1,1,10]);return n.copy=function(){return Ui(n,t()).base(n.base())},Ti.apply(n,arguments)},[fn,Re,ri]),Dt(`${zo}-${ru}`,_m,[fn,Re]),Dt(`${zo}-${iu}`,function(){return _m.apply(null,arguments).exponent(.5)},[fn,Re]),Dt(`${zo}-${yc}`,function t(){var n=vm(gc());return n.copy=function(){return Ui(n,t()).constant(n.constant())},Ti.apply(n,arguments)},[fn,Re]),Dt(Oo,function t(){var n,e=[],r=[],i=[];function a(){var s=0,u=Math.max(1,r.length);for(i=new Array(u-1);++s<u;)i[s-1]=Vx(e,s/u);return o}function o(s){return s==null||isNaN(s=+s)?n:r[Ea(i,s)]}return o.invertExtent=function(s){var u=r.indexOf(s);return u<0?[NaN,NaN]:[u>0?i[u-1]:e[0],u<i.length?i[u]:e[e.length-1]]},o.domain=function(s){if(!arguments.length)return e.slice();e=[];for(let u of s)u==null||isNaN(u=+u)||e.push(u);return e.sort(Ws),a()},o.range=function(s){return arguments.length?(r=Array.from(s),a()):r.slice()},o.unknown=function(s){return arguments.length?(n=s,o):n},o.quantiles=function(){return i.slice()},o.copy=function(){return t().domain(e).range(r).unknown(n)},$a.apply(o,arguments)},[ou,Oo]),Dt(vc,function t(){var n,e=0,r=1,i=1,a=[.5],o=[0,1];function s(l){return l!=null&&l<=l?o[Ea(a,l,0,i)]:n}function u(){var l=-1;for(a=new Array(i);++l<i;)a[l]=((l+1)*r-(l-i)*e)/(i+1);return s}return s.domain=function(l){return arguments.length?([e,r]=l,e=+e,r=+r,u()):[e,r]},s.range=function(l){return arguments.length?(i=(o=Array.from(l)).length-1,u()):o.slice()},s.invertExtent=function(l){var c=o.indexOf(l);return c<0?[NaN,NaN]:c<1?[e,a[0]]:c>=i?[a[i-1],r]:[a[c-1],a[c]]},s.unknown=function(l){return arguments.length&&(n=l),s},s.thresholds=function(){return a.slice()},s.copy=function(){return t().domain([e,r]).range(o).unknown(n)},$a.apply(Eo(s),arguments)},ou),Dt(bc,function t(){var n,e=[.5],r=[0,1],i=1;function a(o){return o!=null&&o<=o?r[Ea(e,o,0,i)]:n}return a.domain=function(o){return arguments.length?(e=Array.from(o),i=Math.min(e.length,r.length-1),a):e.slice()},a.range=function(o){return arguments.length?(r=Array.from(o),i=Math.min(e.length,r.length-1),a):r.slice()},a.invertExtent=function(o){var s=r.indexOf(o);return[e[s-1],e[s]]},a.unknown=function(o){return arguments.length?(n=o,a):n},a.copy=function(){return t().domain(e).range(r).unknown(n)},$a.apply(a,arguments)},ou),Dt(Cm,function t(){let n=[],e=[];function r(i){return i==null||i!=i?void 0:e[(Ea(n,i)-1)%e.length]}return r.domain=function(i){return arguments.length?(n=function(a){return e7.call(a,ze)}(i),r):n.slice()},r.range=function(i){return arguments.length?(e=r7.call(i),r):e.slice()},r.tickFormat=function(i,a){return c8(n[0],Bt(n),i??10,a)},r.copy=function(){return t().domain(r.domain()).range(r.range())},r},[au,ou]),Dt(Dm,qx,au),Dt(sw,$m,au),Dt(Fm,function(){return uw($m().paddingInner(1))},au);const i7=["clamp","base","constant","exponent"];function gw(t,n){const e=n[0],r=Bt(n)-e;return function(i){return t(e+i*r)}}function wc(t,n,e){return gm(Bm(n||"rgb",e),t)}function yw(t,n){const e=new Array(n),r=n+1;for(let i=0;i<n;)e[i]=t(++i/r);return e}function vw(t,n,e){const r=e-n;let i,a,o;return r&&Number.isFinite(r)?(i=(a=t.type).indexOf("-"),a=i<0?a:a.slice(i+1),o=Dt(a)().domain([n,e]).range([0,1]),i7.forEach(s=>t[s]?o[s](t[s]()):0),o):In(.5)}function Bm(t,n){const e=L9[function(r){return"interpolate"+r.toLowerCase().split("-").map(i=>i[0].toUpperCase()+i.slice(1)).join("")}(t)];return n!=null&&e&&e.gamma?e.gamma(n):e}function bw(t){if(P(t))return t;const n=t.length/6|0,e=new Array(n);for(let r=0;r<n;)e[r]="#"+t.slice(6*r,6*++r);return e}function xw(t,n){for(const e in t)zm(e,n(t[e]))}const ww={};function zm(t,n){return t=t&&t.toLowerCase(),arguments.length>1?(ww[t]=n,this):ww[t]}xw({accent:V9,category10:G9,category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",dark2:Y9,observable10:X9,paired:J9,pastel1:K9,pastel2:Q9,set1:Z9,set2:t7,set3:n7,tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5"},bw),xw({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"},t=>wc(bw(t)));const Ac="symbol",a7=t=>P(t)?t.map(n=>String(n)):String(t),o7=(t,n)=>t[1]-n[1],s7=(t,n)=>n[1]-t[1];function Om(t,n,e){let r;return $t(n)&&(t.bins&&(n=Math.max(n,t.bins.length)),e!=null&&(n=Math.min(n,Math.floor(Gl(t.domain())/e||1)+1))),Z(n)&&(r=n.step,n=n.interval),Q(n)&&(n=t.type===za?np(n):t.type==Oa?tp(n):j("Only time and utc scales accept interval strings."),r&&(n=n.every(r))),n}function Aw(t,n,e){let r=t.range(),i=r[0],a=Bt(r),o=o7;if(i>a&&(r=a,a=i,i=r,o=s7),i=Math.floor(i),a=Math.ceil(a),n=n.map(s=>[s,t(s)]).filter(s=>i<=s[1]&&s[1]<=a).sort(o).map(s=>s[0]),e>0&&n.length>1){const s=[n[0],Bt(n)];for(;n.length>e&&n.length>=3;)n=n.filter((u,l)=>!(l%2));n.length<3&&(n=s)}return n}function Nm(t,n){return t.bins?Aw(t,t.bins,n):t.ticks?t.ticks(n):t.domain()}function _w(t,n,e,r,i,a){const o=n.type;let s=a7;if(o===za||i===za)s=t.timeFormat(r);else if(o===Oa||i===Oa)s=t.utcFormat(r);else if(hw(o)){const u=t.formatFloat(r);if(a||n.bins)s=u;else{const l=kw(n,e,!1);s=c=>l(c)?u(c):""}}else if(n.tickFormat){const u=n.domain();s=t.formatSpan(u[0],u[u.length-1],e,r)}else r&&(s=t.format(r));return s}function kw(t,n,e){const r=Nm(t,n),i=t.base(),a=Math.log(i),o=Math.max(1,i*n/r.length),s=u=>{let l=u/Math.pow(i,Math.round(Math.log(u)/a));return l*i<i-.5&&(l*=i),l<=o};return e?r.filter(s):s}const Rm={[Oo]:"quantiles",[vc]:"thresholds",[bc]:"domain"},Dw={[Oo]:"quantiles",[vc]:"domain"};function Fw(t,n){return t.bins?function(e){const r=e.slice(0,-1);return r.max=Bt(e),r}(t.bins):t.type===ri?kw(t,n,!0):Rm[t.type]?function(e){const r=[-1/0].concat(e);return r.max=1/0,r}(t[Rm[t.type]]()):Nm(t,n)}function Cw(t,n,e,r,i,a,o){const s=Dw[n.type]&&a!==za&&a!==Oa?function(u,l,c){const f=l[Dw[l.type]](),d=f.length;let h,p=d>1?f[1]-f[0]:f[0];for(h=1;h<d;++h)p=Math.min(p,f[h]-f[h-1]);return u.formatSpan(0,p,30,c)}(t,n,i):_w(t,n,e,i,a,o);return r===Ac&&(u=>Rm[u.type]||u.bins)(n)?u7(s):r==="discrete"?l7(s):c7(s)}const u7=t=>(n,e,r)=>{const i=Ew(r[e+1],Ew(r.max,1/0)),a=$w(n,t),o=$w(i,t);return a&&o?a+" \u2013 "+o:o?"< "+o:"\u2265 "+a},Ew=(t,n)=>t??n,l7=t=>(n,e)=>e?t(n):null,c7=t=>n=>t(n),$w=(t,n)=>Number.isFinite(t)?n(t):null;function f7(t,n,e,r){const i=r||n.type;return Q(e)&&function(a){return Na(a,Em)}(i)&&(e=e.replace(/%a/g,"%A").replace(/%b/g,"%B")),e||i!==za?e||i!==Oa?Cw(t,n,5,null,e,r,!0):t.utcFormat("%A, %d %B %Y, %X UTC"):t.timeFormat("%A, %d %B %Y, %X")}function Sw(t,n,e){e=e||{};const r=Math.max(3,e.maxlen||7),i=f7(t,n,e.format,e.formatType);if(Mm(n.type)){const a=Fw(n).slice(1).map(i),o=a.length;return`${o} boundar${o===1?"y":"ies"}: ${a.join(", ")}`}if(No(n.type)){const a=n.domain(),o=a.length;return`${o} value${o===1?"":"s"}: ${o>r?a.slice(0,r-2).map(i).join(", ")+", ending with "+a.slice(-1).map(i):a.map(i).join(", ")}`}{const a=n.domain();return`values from ${i(a[0])} to ${i(Bt(a))}`}}let Mw=0;const _c="p_";function Tm(t){return t&&t.gradient}function Bw(t,n,e){const r=t.gradient;let i=t.id,a=r==="radial"?_c:"";return i||(i=t.id="gradient_"+Mw++,r==="radial"?(t.x1=Er(t.x1,.5),t.y1=Er(t.y1,.5),t.r1=Er(t.r1,0),t.x2=Er(t.x2,.5),t.y2=Er(t.y2,.5),t.r2=Er(t.r2,.5),a=_c):(t.x1=Er(t.x1,0),t.y1=Er(t.y1,0),t.x2=Er(t.x2,1),t.y2=Er(t.y2,0))),n[i]=t,"url("+(e||"")+"#"+a+i+")"}function Er(t,n){return t??n}function zw(t,n){var e,r=[];return e={gradient:"linear",x1:t?t[0]:0,y1:t?t[1]:0,x2:n?n[0]:1,y2:n?n[1]:0,stops:r,stop:function(i,a){return r.push({offset:i,color:a}),e}}}const Ow={basis:{curve:Z8},"basis-closed":{curve:Q8},"basis-open":{curve:K8},bundle:{curve:J8,tension:"beta",value:.85},cardinal:{curve:X8,tension:"tension",value:0},"cardinal-open":{curve:Y8,tension:"tension",value:0},"cardinal-closed":{curve:V8,tension:"tension",value:0},"catmull-rom":{curve:G8,tension:"alpha",value:.5},"catmull-rom-closed":{curve:H8,tension:"alpha",value:.5},"catmull-rom-open":{curve:W8,tension:"alpha",value:.5},linear:{curve:Ix},"linear-closed":{curve:I8},monotone:{horizontal:U8,vertical:q8},natural:{curve:L8},step:{curve:j8},"step-after":{curve:P8},"step-before":{curve:T8}};function Pm(t,n,e){var r=tt(Ow,t)&&Ow[t],i=null;return r&&(i=r.curve||r[n||"vertical"],r.tension&&e!=null&&(i=i[r.tension](e))),i}const d7={m:2,l:2,h:1,v:1,z:0,c:6,s:4,q:4,t:2,a:7},h7=/[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi,p7=/^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/,m7=/^((\s+,?\s*)|(,\s*))/,g7=/^[01]/;function Ro(t){const n=[];return(t.match(h7)||[]).forEach(e=>{let r=e[0];const i=r.toLowerCase(),a=d7[i],o=function(u,l,c){const f=[];for(let d=0;l&&d<c.length;)for(let h=0;h<l;++h){const p=u!=="a"||h!==3&&h!==4?p7:g7,m=c.slice(d).match(p);if(m===null)throw Error("Invalid SVG path, incorrect parameter type");d+=m[0].length,f.push(+m[0]);const g=c.slice(d).match(m7);g!==null&&(d+=g[0].length)}return f}(i,a,e.slice(1).trim()),s=o.length;if(s<a||s&&s%a!==0)throw Error("Invalid SVG path, incorrect parameter count");if(n.push([r,...o.slice(0,a)]),s!==a){i==="m"&&(r=r==="M"?"L":"l");for(let u=a;u<s;u+=a)n.push([r,...o.slice(u,u+a)])}}),n}const Ii=Math.PI/180,Ra=Math.PI/2,$r=2*Math.PI,To=Math.sqrt(3)/2;var jm={},Lm={},Nw=[].join;function y7(t){const n=Nw.call(t);if(Lm[n])return Lm[n];var e=t[0],r=t[1],i=t[2],a=t[3],o=t[4],s=t[5],u=t[6],l=t[7];const c=l*o,f=-u*s,d=u*o,h=l*s,p=Math.cos(i),m=Math.sin(i),g=Math.cos(a),y=Math.sin(a),v=.5*(a-i),x=Math.sin(.5*v),b=8/3*x*x/Math.sin(v),w=e+p-b*m,A=r+m+b*p,_=e+g,k=r+y,F=_+b*y,C=k-b*g;return Lm[n]=[c*w+f*A,d*w+h*A,c*F+f*C,d*F+h*C,c*_+f*k,d*_+h*k]}const Te=["l",0,0,0,0,0,0,0];function v7(t,n,e){const r=Te[0]=t[0];if(r==="a"||r==="A")Te[1]=n*t[1],Te[2]=e*t[2],Te[3]=t[3],Te[4]=t[4],Te[5]=t[5],Te[6]=n*t[6],Te[7]=e*t[7];else if(r==="h"||r==="H")Te[1]=n*t[1];else if(r==="v"||r==="V")Te[1]=e*t[1];else for(var i=1,a=t.length;i<a;++i)Te[i]=(i%2==1?n:e)*t[i];return Te}function su(t,n,e,r,i,a){var o,s,u,l,c,f=null,d=0,h=0,p=0,m=0,g=0,y=0;e==null&&(e=0),r==null&&(r=0),i==null&&(i=1),a==null&&(a=i),t.beginPath&&t.beginPath();for(var v=0,x=n.length;v<x;++v){switch(o=n[v],i===1&&a===1||(o=v7(o,i,a)),o[0]){case"l":d+=o[1],h+=o[2],t.lineTo(d+e,h+r);break;case"L":d=o[1],h=o[2],t.lineTo(d+e,h+r);break;case"h":d+=o[1],t.lineTo(d+e,h+r);break;case"H":d=o[1],t.lineTo(d+e,h+r);break;case"v":h+=o[1],t.lineTo(d+e,h+r);break;case"V":h=o[1],t.lineTo(d+e,h+r);break;case"m":g=d+=o[1],y=h+=o[2],t.moveTo(d+e,h+r);break;case"M":g=d=o[1],y=h=o[2],t.moveTo(d+e,h+r);break;case"c":s=d+o[5],u=h+o[6],p=d+o[3],m=h+o[4],t.bezierCurveTo(d+o[1]+e,h+o[2]+r,p+e,m+r,s+e,u+r),d=s,h=u;break;case"C":d=o[5],h=o[6],p=o[3],m=o[4],t.bezierCurveTo(o[1]+e,o[2]+r,p+e,m+r,d+e,h+r);break;case"s":s=d+o[3],u=h+o[4],p=2*d-p,m=2*h-m,t.bezierCurveTo(p+e,m+r,d+o[1]+e,h+o[2]+r,s+e,u+r),p=d+o[1],m=h+o[2],d=s,h=u;break;case"S":s=o[3],u=o[4],p=2*d-p,m=2*h-m,t.bezierCurveTo(p+e,m+r,o[1]+e,o[2]+r,s+e,u+r),d=s,h=u,p=o[1],m=o[2];break;case"q":s=d+o[3],u=h+o[4],p=d+o[1],m=h+o[2],t.quadraticCurveTo(p+e,m+r,s+e,u+r),d=s,h=u;break;case"Q":s=o[3],u=o[4],t.quadraticCurveTo(o[1]+e,o[2]+r,s+e,u+r),d=s,h=u,p=o[1],m=o[2];break;case"t":s=d+o[1],u=h+o[2],f[0].match(/[QqTt]/)===null?(p=d,m=h):f[0]==="t"?(p=2*d-l,m=2*h-c):f[0]==="q"&&(p=2*d-p,m=2*h-m),l=p,c=m,t.quadraticCurveTo(p+e,m+r,s+e,u+r),h=u,p=(d=s)+o[1],m=h+o[2];break;case"T":s=o[1],u=o[2],p=2*d-p,m=2*h-m,t.quadraticCurveTo(p+e,m+r,s+e,u+r),d=s,h=u;break;case"a":Rw(t,d+e,h+r,[o[1],o[2],o[3],o[4],o[5],o[6]+d+e,o[7]+h+r]),d+=o[6],h+=o[7];break;case"A":Rw(t,d+e,h+r,[o[1],o[2],o[3],o[4],o[5],o[6]+e,o[7]+r]),d=o[6],h=o[7];break;case"z":case"Z":d=g,h=y,t.closePath()}f=o}}function Rw(t,n,e,r){const i=function(a,o,s,u,l,c,f,d,h){const p=Nw.call(arguments);if(jm[p])return jm[p];const m=f*Ii,g=Math.sin(m),y=Math.cos(m),v=y*(d-a)*.5+g*(h-o)*.5,x=y*(h-o)*.5-g*(d-a)*.5;let b=v*v/((s=Math.abs(s))*s)+x*x/((u=Math.abs(u))*u);b>1&&(b=Math.sqrt(b),s*=b,u*=b);const w=y/s,A=g/s,_=-g/u,k=y/u,F=w*d+A*h,C=_*d+k*h,D=w*a+A*o,E=_*a+k*o;let $=1/((D-F)*(D-F)+(E-C)*(E-C))-.25;$<0&&($=0);let M=Math.sqrt($);c==l&&(M=-M);const S=.5*(F+D)-M*(E-C),B=.5*(C+E)+M*(D-F),z=Math.atan2(C-B,F-S);let N=Math.atan2(E-B,D-S)-z;N<0&&c===1?N+=$r:N>0&&c===0&&(N-=$r);const W=Math.ceil(Math.abs(N/(Ra+.001))),X=[];for(let L=0;L<W;++L){const et=z+L*N/W,ot=z+(L+1)*N/W;X[L]=[S,B,et,ot,s,u,g,y]}return jm[p]=X}(r[5],r[6],r[0],r[1],r[3],r[4],r[2],n,e);for(let a=0;a<i.length;++a){const o=y7(i[a]);t.bezierCurveTo(o[0],o[1],o[2],o[3],o[4],o[5])}}const Tw=.5773502691896257,Pw={circle:{draw:function(t,n){const e=Math.sqrt(n)/2;t.moveTo(e,0),t.arc(0,0,e,0,$r)}},cross:{draw:function(t,n){var e=Math.sqrt(n)/2,r=e/2.5;t.moveTo(-e,-r),t.lineTo(-e,r),t.lineTo(-r,r),t.lineTo(-r,e),t.lineTo(r,e),t.lineTo(r,r),t.lineTo(e,r),t.lineTo(e,-r),t.lineTo(r,-r),t.lineTo(r,-e),t.lineTo(-r,-e),t.lineTo(-r,-r),t.closePath()}},diamond:{draw:function(t,n){const e=Math.sqrt(n)/2;t.moveTo(-e,0),t.lineTo(0,-e),t.lineTo(e,0),t.lineTo(0,e),t.closePath()}},square:{draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},arrow:{draw:function(t,n){var e=Math.sqrt(n)/2,r=e/7,i=e/2.5,a=e/8;t.moveTo(-r,e),t.lineTo(r,e),t.lineTo(r,-a),t.lineTo(i,-a),t.lineTo(0,-e),t.lineTo(-i,-a),t.lineTo(-r,-a),t.closePath()}},wedge:{draw:function(t,n){var e=Math.sqrt(n)/2,r=To*e,i=r-e*Tw,a=e/4;t.moveTo(0,-r-i),t.lineTo(-a,r-i),t.lineTo(a,r-i),t.closePath()}},triangle:{draw:function(t,n){var e=Math.sqrt(n)/2,r=To*e,i=r-e*Tw;t.moveTo(0,-r-i),t.lineTo(-e,r-i),t.lineTo(e,r-i),t.closePath()}},"triangle-up":{draw:function(t,n){var e=Math.sqrt(n)/2,r=To*e;t.moveTo(0,-r),t.lineTo(-e,r),t.lineTo(e,r),t.closePath()}},"triangle-down":{draw:function(t,n){var e=Math.sqrt(n)/2,r=To*e;t.moveTo(0,r),t.lineTo(-e,-r),t.lineTo(e,-r),t.closePath()}},"triangle-right":{draw:function(t,n){var e=Math.sqrt(n)/2,r=To*e;t.moveTo(r,0),t.lineTo(-r,-e),t.lineTo(-r,e),t.closePath()}},"triangle-left":{draw:function(t,n){var e=Math.sqrt(n)/2,r=To*e;t.moveTo(-r,0),t.lineTo(r,-e),t.lineTo(r,e),t.closePath()}},stroke:{draw:function(t,n){const e=Math.sqrt(n)/2;t.moveTo(-e,0),t.lineTo(e,0)}}};function jw(t){return tt(Pw,t)?Pw[t]:function(n){if(!tt(qm,n)){const e=Ro(n);qm[n]={draw:function(r,i){su(r,e,0,0,Math.sqrt(i)/2)}}}return qm[n]}(t)}var qm={};const Wi=.448084975506;function b7(t){return t.x}function x7(t){return t.y}function w7(t){return t.width}function A7(t){return t.height}function ii(t){return typeof t=="function"?t:()=>+t}function kc(t,n,e){return Math.max(n,Math.min(t,e))}function Lw(){var t=b7,n=x7,e=w7,r=A7,i=ii(0),a=i,o=i,s=i,u=null;function l(c,f,d){var h,p=f??+t.call(this,c),m=d??+n.call(this,c),g=+e.call(this,c),y=+r.call(this,c),v=Math.min(g,y)/2,x=kc(+i.call(this,c),0,v),b=kc(+a.call(this,c),0,v),w=kc(+o.call(this,c),0,v),A=kc(+s.call(this,c),0,v);if(u||(u=h=gp()),x<=0&&b<=0&&w<=0&&A<=0)u.rect(p,m,g,y);else{var _=p+g,k=m+y;u.moveTo(p+x,m),u.lineTo(_-b,m),u.bezierCurveTo(_-Wi*b,m,_,m+Wi*b,_,m+b),u.lineTo(_,k-A),u.bezierCurveTo(_,k-Wi*A,_-Wi*A,k,_-A,k),u.lineTo(p+w,k),u.bezierCurveTo(p+Wi*w,k,p,k-Wi*w,p,k-w),u.lineTo(p,m+x),u.bezierCurveTo(p,m+Wi*x,p+Wi*x,m,p+x,m),u.closePath()}if(h)return u=null,h+""||null}return l.x=function(c){return arguments.length?(t=ii(c),l):t},l.y=function(c){return arguments.length?(n=ii(c),l):n},l.width=function(c){return arguments.length?(e=ii(c),l):e},l.height=function(c){return arguments.length?(r=ii(c),l):r},l.cornerRadius=function(c,f,d,h){return arguments.length?(i=ii(c),a=f!=null?ii(f):i,s=d!=null?ii(d):i,o=h!=null?ii(h):a,l):i},l.context=function(c){return arguments.length?(u=c??null,l):u},l}function qw(){var t,n,e,r,i,a,o,s,u=null;function l(f,d,h){const p=h/2;if(i){var m=o-d,g=f-a;if(m||g){var y=Math.hypot(m,g),v=(m/=y)*s,x=(g/=y)*s,b=Math.atan2(g,m);u.moveTo(a-v,o-x),u.lineTo(f-m*p,d-g*p),u.arc(f,d,p,b-Math.PI,b),u.lineTo(a+v,o+x),u.arc(a,o,s,b,b+Math.PI)}else u.arc(f,d,p,0,$r);u.closePath()}else i=1;a=f,o=d,s=p}function c(f){var d,h,p,m=f.length,g=!1;for(u==null&&(u=p=gp()),d=0;d<=m;++d)!(d<m&&r(h=f[d],d,f))===g&&(g=!g)&&(i=0),g&&l(+t(h,d,f),+n(h,d,f),+e(h,d,f));if(p)return u=null,p+""||null}return c.x=function(f){return arguments.length?(t=f,c):t},c.y=function(f){return arguments.length?(n=f,c):n},c.size=function(f){return arguments.length?(e=f,c):e},c.defined=function(f){return arguments.length?(r=f,c):r},c.context=function(f){return arguments.length?(u=f??null,c):u},c}function uu(t,n){return t??n}const lu=t=>t.x||0,cu=t=>t.y||0,Dc=t=>t.defined!==!1,_7=t9().startAngle(t=>t.startAngle||0).endAngle(t=>t.endAngle||0).padAngle(t=>t.padAngle||0).innerRadius(t=>t.innerRadius||0).outerRadius(t=>t.outerRadius||0).cornerRadius(t=>t.cornerRadius||0),k7=Y2().x(lu).y1(cu).y0(t=>(t.y||0)+(t.height||0)).defined(Dc),D7=Y2().y(cu).x1(lu).x0(t=>(t.x||0)+(t.width||0)).defined(Dc),F7=Wx().x(lu).y(cu).defined(Dc),C7=Lw().x(lu).y(cu).width(t=>t.width||0).height(t=>t.height||0).cornerRadius(t=>uu(t.cornerRadiusTopLeft,t.cornerRadius)||0,t=>uu(t.cornerRadiusTopRight,t.cornerRadius)||0,t=>uu(t.cornerRadiusBottomRight,t.cornerRadius)||0,t=>uu(t.cornerRadiusBottomLeft,t.cornerRadius)||0),E7=function(t,n){let e=null,r=Ux(i);function i(){let a;if(e||(e=a=r()),t.apply(this,arguments).draw(e,+n.apply(this,arguments)),a)return e=null,a+""||null}return t=typeof t=="function"?t:Hn(t||O9),n=typeof n=="function"?n:Hn(n===void 0?64:+n),i.type=function(a){return arguments.length?(t=typeof a=="function"?a:Hn(a),i):t},i.size=function(a){return arguments.length?(n=typeof a=="function"?a:Hn(+a),i):n},i.context=function(a){return arguments.length?(e=a??null,i):e},i}().type(t=>jw(t.shape||"circle")).size(t=>uu(t.size,64)),$7=qw().x(lu).y(cu).defined(Dc).size(t=>t.size||1);function Um(t){return t.cornerRadius||t.cornerRadiusTopLeft||t.cornerRadiusTopRight||t.cornerRadiusBottomRight||t.cornerRadiusBottomLeft}function Po(t,n,e,r){return C7.context(t)(n,e,r)}var Uw=1;function Iw(){Uw=1}function Im(t,n,e){var r=n.clip,i=t._defs,a=n.clip_id||(n.clip_id="clip"+Uw++),o=i.clipping[a]||(i.clipping[a]={id:a});return bt(r)?o.path=r(null):Um(e)?o.path=Po(null,e,0,0):(o.width=e.width||0,o.height=e.height||0),"url(#"+a+")"}function cn(t){this.clear(),t&&this.union(t)}function Fc(t){this.mark=t,this.bounds=this.bounds||new cn}function Cc(t){Fc.call(this,t),this.items=this.items||[]}cn.prototype={clone(){return new cn(this)},clear(){return this.x1=+Number.MAX_VALUE,this.y1=+Number.MAX_VALUE,this.x2=-Number.MAX_VALUE,this.y2=-Number.MAX_VALUE,this},empty(){return this.x1===+Number.MAX_VALUE&&this.y1===+Number.MAX_VALUE&&this.x2===-Number.MAX_VALUE&&this.y2===-Number.MAX_VALUE},equals(t){return this.x1===t.x1&&this.y1===t.y1&&this.x2===t.x2&&this.y2===t.y2},set(t,n,e,r){return e<t?(this.x2=t,this.x1=e):(this.x1=t,this.x2=e),r<n?(this.y2=n,this.y1=r):(this.y1=n,this.y2=r),this},add(t,n){return t<this.x1&&(this.x1=t),n<this.y1&&(this.y1=n),t>this.x2&&(this.x2=t),n>this.y2&&(this.y2=n),this},expand(t){return this.x1-=t,this.y1-=t,this.x2+=t,this.y2+=t,this},round(){return this.x1=Math.floor(this.x1),this.y1=Math.floor(this.y1),this.x2=Math.ceil(this.x2),this.y2=Math.ceil(this.y2),this},scale(t){return this.x1*=t,this.y1*=t,this.x2*=t,this.y2*=t,this},translate(t,n){return this.x1+=t,this.x2+=t,this.y1+=n,this.y2+=n,this},rotate(t,n,e){const r=this.rotatedPoints(t,n,e);return this.clear().add(r[0],r[1]).add(r[2],r[3]).add(r[4],r[5]).add(r[6],r[7])},rotatedPoints(t,n,e){var{x1:r,y1:i,x2:a,y2:o}=this,s=Math.cos(t),u=Math.sin(t),l=n-n*s+e*u,c=e-n*u-e*s;return[s*r-u*i+l,u*r+s*i+c,s*r-u*o+l,u*r+s*o+c,s*a-u*i+l,u*a+s*i+c,s*a-u*o+l,u*a+s*o+c]},union(t){return t.x1<this.x1&&(this.x1=t.x1),t.y1<this.y1&&(this.y1=t.y1),t.x2>this.x2&&(this.x2=t.x2),t.y2>this.y2&&(this.y2=t.y2),this},intersect(t){return t.x1>this.x1&&(this.x1=t.x1),t.y1>this.y1&&(this.y1=t.y1),t.x2<this.x2&&(this.x2=t.x2),t.y2<this.y2&&(this.y2=t.y2),this},encloses(t){return t&&this.x1<=t.x1&&this.x2>=t.x2&&this.y1<=t.y1&&this.y2>=t.y2},alignsWith(t){return t&&(this.x1==t.x1||this.x2==t.x2||this.y1==t.y1||this.y2==t.y2)},intersects(t){return t&&!(this.x2<t.x1||this.x1>t.x2||this.y2<t.y1||this.y1>t.y2)},contains(t,n){return!(t<this.x1||t>this.x2||n<this.y1||n>this.y2)},width(){return this.x2-this.x1},height(){return this.y2-this.y1}},V(Cc,Fc);class Ww{constructor(n){this._pending=0,this._loader=n||Hl()}pending(){return this._pending}sanitizeURL(n){const e=this;return Hw(e),e._loader.sanitize(n,{context:"href"}).then(r=>(fu(e),r)).catch(()=>(fu(e),null))}loadImage(n){const e=this,r=N9();return Hw(e),e._loader.sanitize(n,{context:"image"}).then(i=>{const a=i.href;if(!a||!r)throw{url:a};const o=new r,s=tt(i,"crossOrigin")?i.crossOrigin:"anonymous";return s!=null&&(o.crossOrigin=s),o.onload=()=>fu(e),o.onerror=()=>fu(e),o.src=a,o}).catch(i=>(fu(e),{complete:!1,width:0,height:0,src:i&&i.url||""}))}ready(){const n=this;return new Promise(e=>{(function r(i){n.pending()?setTimeout(()=>{r(!0)},10):e(i)})(!1)})}}function Hw(t){t._pending+=1}function fu(t){t._pending-=1}function ai(t,n,e){if(n.stroke&&n.opacity!==0&&n.strokeOpacity!==0){const r=n.strokeWidth!=null?+n.strokeWidth:1;t.expand(r+(e?function(i,a){return i.strokeJoin&&i.strokeJoin!=="miter"?0:a}(n,r):0))}return t}const S7=$r-1e-8;let Ec,$c,Sc,Ta,Wm,Mc,Hm,Gm;const Hi=(t,n)=>Ec.add(t,n),Bc=(t,n)=>Hi($c=t,Sc=n),Gw=t=>Hi(t,Ec.y1),Vw=t=>Hi(Ec.x1,t),Pa=(t,n)=>Wm*t+Hm*n,ja=(t,n)=>Mc*t+Gm*n,Vm=(t,n)=>Hi(Pa(t,n),ja(t,n)),Ym=(t,n)=>Bc(Pa(t,n),ja(t,n));function du(t,n){return Ec=t,n?(Ta=n*Ii,Wm=Gm=Math.cos(Ta),Mc=Math.sin(Ta),Hm=-Mc):(Wm=Gm=1,Ta=Mc=Hm=0),M7}const M7={beginPath(){},closePath(){},moveTo:Ym,lineTo:Ym,rect(t,n,e,r){Ta?(Vm(t+e,n),Vm(t+e,n+r),Vm(t,n+r),Ym(t,n)):(Hi(t+e,n+r),Bc(t,n))},quadraticCurveTo(t,n,e,r){const i=Pa(t,n),a=ja(t,n),o=Pa(e,r),s=ja(e,r);Yw($c,i,o,Gw),Yw(Sc,a,s,Vw),Bc(o,s)},bezierCurveTo(t,n,e,r,i,a){const o=Pa(t,n),s=ja(t,n),u=Pa(e,r),l=ja(e,r),c=Pa(i,a),f=ja(i,a);Xw($c,o,u,c,Gw),Xw(Sc,s,l,f,Vw),Bc(c,f)},arc(t,n,e,r,i,a){if(r+=Ta,i+=Ta,$c=e*Math.cos(i)+t,Sc=e*Math.sin(i)+n,Math.abs(i-r)>S7)Hi(t-e,n-e),Hi(t+e,n+e);else{const o=l=>Hi(e*Math.cos(l)+t,e*Math.sin(l)+n);let s,u;if(o(r),o(i),i!==r)if((r%=$r)<0&&(r+=$r),(i%=$r)<0&&(i+=$r),i<r&&(a=!a,s=r,r=i,i=s),a)for(i-=$r,s=r-r%Ra,u=0;u<4&&s>i;++u,s-=Ra)o(s);else for(s=r-r%Ra+Ra,u=0;u<4&&s<i;++u,s+=Ra)o(s)}}};function Yw(t,n,e,r){const i=(t-n)/(t+e-2*n);0<i&&i<1&&r(t+(n-t)*i)}function Xw(t,n,e,r,i){const a=r-t+3*n-3*e,o=t+e-2*n,s=t-n;let u,l=0,c=0;Math.abs(a)>1e-14?(u=o*o+s*a,u>=0&&(u=Math.sqrt(u),l=(-o+u)/a,c=(-o-u)/a)):l=.5*s/o,0<l&&l<1&&i(Jw(l,t,n,e,r)),0<c&&c<1&&i(Jw(c,t,n,e,r))}function Jw(t,n,e,r,i){const a=1-t,o=a*a,s=t*t;return o*a*n+3*o*t*e+3*a*s*r+s*t*i}var Gi=(Gi=qi(1,1))?Gi.getContext("2d"):null;const Xm=new cn;function Jm(t){return function(n,e){if(!Gi)return!0;t(Gi,n),Xm.clear().union(n.bounds).intersect(e).round();const{x1:r,y1:i,x2:a,y2:o}=Xm;for(let s=i;s<=o;++s)for(let u=r;u<=a;++u)if(Gi.isPointInPath(u,s))return!0;return!1}}function Km(t,n){return n.contains(t.x||0,t.y||0)}function Kw(t,n){const e=t.x||0,r=t.y||0,i=t.width||0,a=t.height||0;return n.intersects(Xm.set(e,r,e+i,r+a))}function Qw(t,n){const e=t.x||0,r=t.y||0;return jo(n,e,r,t.x2!=null?t.x2:e,t.y2!=null?t.y2:r)}function jo(t,n,e,r,i){const{x1:a,y1:o,x2:s,y2:u}=t,l=r-n,c=i-e;let f,d,h,p,m=0,g=1;for(p=0;p<4;++p){if(p===0&&(f=-l,d=-(a-n)),p===1&&(f=l,d=s-n),p===2&&(f=-c,d=-(o-e)),p===3&&(f=c,d=u-e),Math.abs(f)<1e-10&&d<0)return!1;if(h=d/f,f<0){if(h>g)return!1;h>m&&(m=h)}else if(f>0){if(h<m)return!1;h<g&&(g=h)}}return!0}function Lo(t,n){t.globalCompositeOperation=n.blend||"source-over"}function Ke(t,n){return t??n}function Zw(t,n){const e=n.length;for(let r=0;r<e;++r)t.addColorStop(n[r].offset,n[r].color);return t}function tA(t,n,e){return Tm(e)?function(r,i,a){const o=a.width(),s=a.height();let u;if(i.gradient==="radial")u=r.createRadialGradient(a.x1+Ke(i.x1,.5)*o,a.y1+Ke(i.y1,.5)*s,Math.max(o,s)*Ke(i.r1,0),a.x1+Ke(i.x2,.5)*o,a.y1+Ke(i.y2,.5)*s,Math.max(o,s)*Ke(i.r2,.5));else{const l=Ke(i.x1,0),c=Ke(i.y1,0),f=Ke(i.x2,1),d=Ke(i.y2,0);if(l!==f&&c!==d&&o!==s){const h=qi(Math.ceil(o),Math.ceil(s)),p=h.getContext("2d");return p.scale(o,s),p.fillStyle=Zw(p.createLinearGradient(l,c,f,d),i.stops),p.fillRect(0,0,o,s),r.createPattern(h,"no-repeat")}u=r.createLinearGradient(a.x1+l*o,a.y1+c*s,a.x1+f*o,a.y1+d*s)}return Zw(u,i.stops)}(t,e,n.bounds):e}function zc(t,n,e){return(e*=n.fillOpacity==null?1:n.fillOpacity)>0&&(t.globalAlpha=e,t.fillStyle=tA(t,n,n.fill),!0)}var B7=[];function qo(t,n,e){var r=(r=n.strokeWidth)!=null?r:1;return!(r<=0)&&(e*=n.strokeOpacity==null?1:n.strokeOpacity)>0&&(t.globalAlpha=e,t.strokeStyle=tA(t,n,n.stroke),t.lineWidth=r,t.lineCap=n.strokeCap||"butt",t.lineJoin=n.strokeJoin||"miter",t.miterLimit=n.strokeMiterLimit||10,t.setLineDash&&(t.setLineDash(n.strokeDash||B7),t.lineDashOffset=n.strokeDashOffset||0),!0)}function z7(t,n){return t.zindex-n.zindex||t.index-n.index}function Qm(t){if(!t.zdirty)return t.zitems;var n,e,r,i=t.items,a=[];for(e=0,r=i.length;e<r;++e)(n=i[e]).index=e,n.zindex&&a.push(n);return t.zdirty=!1,t.zitems=a.sort(z7)}function Qe(t,n){var e,r,i=t.items;if(!i||!i.length)return;const a=Qm(t);if(a&&a.length){for(e=0,r=i.length;e<r;++e)i[e].zindex||n(i[e]);i=a}for(e=0,r=i.length;e<r;++e)n(i[e])}function Oc(t,n){var e,r,i=t.items;if(!i||!i.length)return null;const a=Qm(t);for(a&&a.length&&(i=a),r=i.length;--r>=0;)if(e=n(i[r]))return e;if(i===a){for(r=(i=t.items).length;--r>=0;)if(!i[r].zindex&&(e=n(i[r])))return e}return null}function Zm(t){return function(n,e,r){Qe(e,i=>{r&&!r.intersects(i.bounds)||nA(t,n,i,i)})}}function O7(t){return function(n,e,r){!e.items.length||r&&!r.intersects(e.bounds)||nA(t,n,e.items[0],e.items)}}function nA(t,n,e,r){var i=e.opacity==null?1:e.opacity;i!==0&&(t(n,r)||(Lo(n,e),e.fill&&zc(n,e,i)&&n.fill(),e.stroke&&qo(n,e,i)&&n.stroke()))}function Nc(t){return t=t||Be,function(n,e,r,i,a,o){return r*=n.pixelRatio,i*=n.pixelRatio,Oc(e,s=>{const u=s.bounds;if((!u||u.contains(a,o))&&u)return t(n,s,r,i,a,o)?s:void 0})}}function hu(t,n){return function(e,r,i,a){var o,s,u=Array.isArray(r)?r[0]:r,l=n??u.fill,c=u.stroke&&e.isPointInStroke;return c&&(o=u.strokeWidth,s=u.strokeCap,e.lineWidth=o??1,e.lineCap=s??"butt"),!t(e,r)&&(l&&e.isPointInPath(i,a)||c&&e.isPointInStroke(i,a))}}function t0(t){return Nc(hu(t))}function La(t,n){return"translate("+t+","+n+")"}function n0(t){return"rotate("+t+")"}function eA(t){return La(t.x||0,t.y||0)}function e0(t,n,e){function r(i,a){var o=a.x||0,s=a.y||0,u=a.angle||0;i.translate(o,s),u&&i.rotate(u*=Ii),i.beginPath(),n(i,a),u&&i.rotate(-u),i.translate(-o,-s)}return{type:t,tag:"path",nested:!1,attr:function(i,a){i("transform",function(o){return La(o.x||0,o.y||0)+(o.angle?" "+n0(o.angle):"")}(a)),i("d",n(null,a))},bound:function(i,a){return n(du(i,a.angle),a),ai(i,a).translate(a.x||0,a.y||0)},draw:Zm(r),pick:t0(r),isect:e||Jm(r)}}var N7=e0("arc",function(t,n){return _7.context(t)(n)});function r0(t,n,e){function r(a,o){a.beginPath(),n(a,o)}const i=hu(r);return{type:t,tag:"path",nested:!0,attr:function(a,o){var s=o.mark.items;s.length&&a("d",n(null,s))},bound:function(a,o){var s=o.items;return s.length===0?a:(n(du(a),s),ai(a,s[0]))},draw:O7(r),pick:function(a,o,s,u,l,c){var f=o.items,d=o.bounds;return!f||!f.length||d&&!d.contains(l,c)?null:(s*=a.pixelRatio,u*=a.pixelRatio,i(a,f,s,u)?f[0]:null)},isect:Km,tip:e}}var R7=r0("area",function(t,n){const e=n[0],r=e.interpolate||"linear";return(e.orient==="horizontal"?D7:k7).curve(Pm(r,e.orient,e.tension)).context(t)(n)},function(t,n){for(var e,r,i=t[0].orient==="horizontal"?n[1]:n[0],a=t[0].orient==="horizontal"?"y":"x",o=t.length,s=1/0;--o>=0;)t[o].defined!==!1&&(r=Math.abs(t[o][a]-i))<s&&(s=r,e=t[o]);return e});function rA(t,n){t.beginPath(),Um(n)?Po(t,n,0,0):t.rect(0,0,n.width||0,n.height||0),t.clip()}function iA(t){const n=Ke(t.strokeWidth,1);return t.strokeOffset!=null?t.strokeOffset:t.stroke&&n>.5&&n<1.5?.5-Math.abs(n-1):0}function aA(t,n){const e=iA(n);t("d",Po(null,n,e,e))}function pu(t,n,e,r){const i=iA(n);t.beginPath(),Po(t,n,(e||0)+i,(r||0)+i)}const T7=hu(pu),P7=hu(pu,!1),j7=hu(pu,!0);var L7={type:"group",tag:"g",nested:!1,attr:function(t,n){t("transform",eA(n))},bound:function(t,n){if(!n.clip&&n.items){const e=n.items,r=e.length;for(let i=0;i<r;++i)t.union(e[i].bounds)}return(n.clip||n.width||n.height)&&!n.noBound&&t.add(0,0).add(n.width||0,n.height||0),ai(t,n),t.translate(n.x||0,n.y||0)},draw:function(t,n,e,r){Qe(n,i=>{const a=i.x||0,o=i.y||0,s=i.strokeForeground,u=i.opacity==null?1:i.opacity;(i.stroke||i.fill)&&u&&(pu(t,i,a,o),Lo(t,i),i.fill&&zc(t,i,u)&&t.fill(),i.stroke&&!s&&qo(t,i,u)&&t.stroke()),t.save(),t.translate(a,o),i.clip&&rA(t,i),e&&e.translate(-a,-o),Qe(i,l=>{(l.marktype==="group"||r==null||r.includes(l.marktype))&&this.draw(t,l,e,r)}),e&&e.translate(a,o),t.restore(),s&&i.stroke&&u&&(pu(t,i,a,o),Lo(t,i),qo(t,i,u)&&t.stroke())})},pick:function(t,n,e,r,i,a){if(n.bounds&&!n.bounds.contains(i,a)||!n.items)return null;const o=e*t.pixelRatio,s=r*t.pixelRatio;return Oc(n,u=>{let l,c,f;const d=u.bounds;if(d&&!d.contains(i,a))return;c=u.x||0,f=u.y||0;const h=c+(u.width||0),p=f+(u.height||0),m=u.clip;if(m&&(i<c||i>h||a<f||a>p))return;if(t.save(),t.translate(c,f),c=i-c,f=a-f,m&&Um(u)&&!j7(t,u,o,s))return t.restore(),null;const g=u.strokeForeground,y=n.interactive!==!1;return y&&g&&u.stroke&&P7(t,u,o,s)?(t.restore(),u):(l=Oc(u,v=>function(x,b,w){return(x.interactive!==!1||x.marktype==="group")&&x.bounds&&x.bounds.contains(b,w)}(v,c,f)?this.pick(v,e,r,c,f):null),!l&&y&&(u.fill||!g&&u.stroke)&&T7(t,u,o,s)&&(l=u),t.restore(),l||null)})},isect:Kw,content:function(t,n,e){t("clip-path",n.clip?Im(e,n,n):null)},background:function(t,n){t("class","background"),t("aria-hidden",!0),aA(t,n)},foreground:function(t,n){t("class","foreground"),t("aria-hidden",!0),n.strokeForeground?aA(t,n):t("d","")}},mu={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"};function i0(t,n){var e=t.image;return(!e||t.url&&t.url!==e.url)&&(e={complete:!1,width:0,height:0},n.loadImage(t.url).then(r=>{t.image=r,t.image.url=t.url})),e}function a0(t,n){return t.width!=null?t.width:n&&n.width?t.aspect!==!1&&t.height?t.height*n.width/n.height:n.width:0}function o0(t,n){return t.height!=null?t.height:n&&n.height?t.aspect!==!1&&t.width?t.width*n.height/n.width:n.height:0}function Rc(t,n){return t==="center"?n/2:t==="right"?n:0}function Tc(t,n){return t==="middle"?n/2:t==="bottom"?n:0}var q7={type:"image",tag:"image",nested:!1,attr:function(t,n,e){const r=i0(n,e),i=a0(n,r),a=o0(n,r),o=(n.x||0)-Rc(n.align,i),s=(n.y||0)-Tc(n.baseline,a);t("href",!r.src&&r.toDataURL?r.toDataURL():r.src||"",mu["xmlns:xlink"],"xlink:href"),t("transform",La(o,s)),t("width",i),t("height",a),t("preserveAspectRatio",n.aspect===!1?"none":"xMidYMid")},bound:function(t,n){const e=n.image,r=a0(n,e),i=o0(n,e),a=(n.x||0)-Rc(n.align,r),o=(n.y||0)-Tc(n.baseline,i);return t.set(a,o,a+r,o+i)},draw:function(t,n,e){Qe(n,r=>{if(e&&!e.intersects(r.bounds))return;const i=i0(r,this);let a=a0(r,i),o=o0(r,i);if(a===0||o===0)return;let s,u,l,c,f=(r.x||0)-Rc(r.align,a),d=(r.y||0)-Tc(r.baseline,o);r.aspect!==!1&&(u=i.width/i.height,l=r.width/r.height,u==u&&l==l&&u!==l&&(l<u?(c=a/u,d+=(o-c)/2,o=c):(c=o*u,f+=(a-c)/2,a=c))),(i.complete||i.toDataURL)&&(Lo(t,r),t.globalAlpha=(s=r.opacity)!=null?s:1,t.imageSmoothingEnabled=r.smooth!==!1,t.drawImage(i,f,d,a,o))})},pick:Nc(),isect:Be,get:i0,xOffset:Rc,yOffset:Tc},U7=r0("line",function(t,n){const e=n[0],r=e.interpolate||"linear";return F7.curve(Pm(r,e.orient,e.tension)).context(t)(n)},function(t,n){for(var e,r,i=Math.pow(t[0].strokeWidth||1,2),a=t.length;--a>=0;)if(t[a].defined!==!1&&(e=t[a].x-n[0])*e+(r=t[a].y-n[1])*r<i)return t[a];return null});function Pc(t,n){var e=n.path;if(e==null)return!0;var r=n.x||0,i=n.y||0,a=n.scaleX||1,o=n.scaleY||1,s=(n.angle||0)*Ii,u=n.pathCache;u&&u.path===e||((n.pathCache=u=Ro(e)).path=e),s&&t.rotate&&t.translate?(t.translate(r,i),t.rotate(s),su(t,u,0,0,a,o),t.rotate(-s),t.translate(-r,-i)):su(t,u,r,i,a,o)}var I7={type:"path",tag:"path",nested:!1,attr:function(t,n){var e=n.scaleX||1,r=n.scaleY||1;e===1&&r===1||t("vector-effect","non-scaling-stroke"),t("transform",function(i){return La(i.x||0,i.y||0)+(i.angle?" "+n0(i.angle):"")+(i.scaleX||i.scaleY?" "+function(a,o){return"scale("+a+","+o+")"}(i.scaleX||1,i.scaleY||1):"")}(n)),t("d",n.path)},bound:function(t,n){return Pc(du(t,n.angle),n)?t.set(0,0,0,0):ai(t,n,!0)},draw:Zm(Pc),pick:t0(Pc),isect:Jm(Pc)};function oA(t,n){t.beginPath(),Po(t,n)}var W7={type:"rect",tag:"path",nested:!1,attr:function(t,n){t("d",Po(null,n))},bound:function(t,n){var e,r;return ai(t.set(e=n.x||0,r=n.y||0,e+n.width||0,r+n.height||0),n)},draw:Zm(oA),pick:t0(oA),isect:Kw};function sA(t,n,e){var r,i,a,o;return!(!n.stroke||!qo(t,n,e))&&(r=n.x||0,i=n.y||0,a=n.x2!=null?n.x2:r,o=n.y2!=null?n.y2:i,t.beginPath(),t.moveTo(r,i),t.lineTo(a,o),!0)}var H7={type:"rule",tag:"line",nested:!1,attr:function(t,n){t("transform",eA(n)),t("x2",n.x2!=null?n.x2-(n.x||0):0),t("y2",n.y2!=null?n.y2-(n.y||0):0)},bound:function(t,n){var e,r;return ai(t.set(e=n.x||0,r=n.y||0,n.x2!=null?n.x2:e,n.y2!=null?n.y2:r),n)},draw:function(t,n,e){Qe(n,r=>{if(!e||e.intersects(r.bounds)){var i=r.opacity==null?1:r.opacity;i&&sA(t,r,i)&&(Lo(t,r),t.stroke())}})},pick:Nc(function(t,n,e,r){return!!t.isPointInStroke&&sA(t,n,1)&&t.isPointInStroke(e,r)}),isect:Qw},G7=e0("shape",function(t,n){return(n.mark.shape||n.shape).context(t)(n)}),V7=e0("symbol",function(t,n){return E7.context(t)(n)},Km);const uA=cx();var we={height:Sr,measureWidth:s0,estimateWidth:jc,width:jc,canvas:lA};function lA(t){we.width=t&&Gi?s0:jc}function jc(t,n){return cA(Yi(t,n),Sr(t))}function cA(t,n){return~~(.8*t.length*n)}function s0(t,n){return Sr(t)<=0||!(n=Yi(t,n))?0:fA(n,Lc(t))}function fA(t,n){const e=`(${n}) ${t}`;let r=uA.get(e);return r===void 0&&(Gi.font=n,r=Gi.measureText(t).width,uA.set(e,r)),r}function Sr(t){return t.fontSize!=null?+t.fontSize||0:11}function Vi(t){return t.lineHeight!=null?t.lineHeight:Sr(t)+2}function gu(t){return n=t.lineBreak&&t.text&&!P(t.text)?t.text.split(t.lineBreak):t.text,P(n)?n.length>1?n:n[0]:n;var n}function u0(t){const n=gu(t);return(P(n)?n.length-1:0)*Vi(t)}function Yi(t,n){const e=n==null?"":(n+"").trim();return t.limit>0&&e.length?function(r,i){var a=+r.limit,o=function(d){if(we.width===s0){const h=Lc(d);return p=>fA(p,h)}if(we.width===jc){const h=Sr(d);return p=>cA(p,h)}return h=>we.width(d,h)}(r);if(o(i)<a)return i;var s,u=r.ellipsis||"\u2026",l=r.dir==="rtl",c=0,f=i.length;if(a-=o(u),l){for(;c<f;)s=c+f>>>1,o(i.slice(s))>a?c=s+1:f=s;return u+i.slice(c)}for(;c<f;)s=1+(c+f>>>1),o(i.slice(0,s))<a?c=s:f=s-1;return i.slice(0,c)+u}(t,e):e}function yu(t,n){var e=t.font;return(n&&e?String(e).replace(/"/g,"'"):e)||"sans-serif"}function Lc(t,n){return(t.fontStyle?t.fontStyle+" ":"")+(t.fontVariant?t.fontVariant+" ":"")+(t.fontWeight?t.fontWeight+" ":"")+Sr(t)+"px "+yu(t,n)}function l0(t){var n=t.baseline,e=Sr(t);return Math.round(n==="top"?.79*e:n==="middle"?.3*e:n==="bottom"?-.21*e:n==="line-top"?.29*e+.5*Vi(t):n==="line-bottom"?.29*e-.5*Vi(t):0)}lA(!0);const Y7={left:"start",center:"middle",right:"end"},vu=new cn;function qc(t){var n,e=t.x||0,r=t.y||0,i=t.radius||0;return i&&(n=(t.theta||0)-Ra,e+=i*Math.cos(n),r+=i*Math.sin(n)),vu.x1=e,vu.y1=r,vu}function c0(t,n,e){var r,i=we.height(n),a=n.align,o=qc(n),s=o.x1,u=o.y1,l=n.dx||0,c=(n.dy||0)+l0(n)-Math.round(.8*i),f=gu(n);if(P(f)?(i+=Vi(n)*(f.length-1),r=f.reduce((d,h)=>Math.max(d,we.width(n,h)),0)):r=we.width(n,f),a==="center"?l-=r/2:a==="right"&&(l-=r),t.set(l+=s,c+=u,l+r,c+i),n.angle&&!e)t.rotate(n.angle*Ii,s,u);else if(e===2)return t.rotatedPoints(n.angle*Ii,s,u);return t}var X7={type:"text",tag:"text",nested:!1,attr:function(t,n){var e,r=n.dx||0,i=(n.dy||0)+l0(n),a=qc(n),o=a.x1,s=a.y1,u=n.angle||0;t("text-anchor",Y7[n.align]||"start"),u?(e=La(o,s)+" "+n0(u),(r||i)&&(e+=" "+La(r,i))):e=La(o+r,s+i),t("transform",e)},bound:c0,draw:function(t,n,e){Qe(n,r=>{var i,a,o,s,u,l,c,f=r.opacity==null?1:r.opacity;if(!(e&&!e.intersects(r.bounds)||f===0||r.fontSize<=0||r.text==null||r.text.length===0)){if(t.font=Lc(r),t.textAlign=r.align||"left",a=(i=qc(r)).x1,o=i.y1,r.angle&&(t.save(),t.translate(a,o),t.rotate(r.angle*Ii),a=o=0),a+=r.dx||0,o+=(r.dy||0)+l0(r),l=gu(r),Lo(t,r),P(l))for(u=Vi(r),s=0;s<l.length;++s)c=Yi(r,l[s]),r.fill&&zc(t,r,f)&&t.fillText(c,a,o),r.stroke&&qo(t,r,f)&&t.strokeText(c,a,o),o+=u;else c=Yi(r,l),r.fill&&zc(t,r,f)&&t.fillText(c,a,o),r.stroke&&qo(t,r,f)&&t.strokeText(c,a,o);r.angle&&t.restore()}})},pick:Nc(function(t,n,e,r,i,a){if(n.fontSize<=0)return!1;if(!n.angle)return!0;var o=qc(n),s=o.x1,u=o.y1,l=c0(vu,n,1),c=-n.angle*Ii,f=Math.cos(c),d=Math.sin(c),h=f*i-d*a+(s-f*s+d*u),p=d*i+f*a+(u-d*s-f*u);return l.contains(h,p)}),isect:function(t,n){const e=c0(vu,t,2);return jo(n,e[0],e[1],e[2],e[3])||jo(n,e[0],e[1],e[4],e[5])||jo(n,e[4],e[5],e[6],e[7])||jo(n,e[2],e[3],e[6],e[7])}},J7=r0("trail",function(t,n){return $7.context(t)(n)},function(t,n){for(var e,r,i=t.length;--i>=0;)if(t[i].defined!==!1&&(e=t[i].x-n[0])*e+(r=t[i].y-n[1])*r<(e=t[i].size||1)*e)return t[i];return null}),Ae={arc:N7,area:R7,group:L7,image:q7,line:U7,path:I7,rect:W7,rule:H7,shape:G7,symbol:V7,text:X7,trail:J7};function f0(t,n,e){var r=Ae[t.mark.marktype],i=n||r.bound;return r.nested&&(t=t.mark),i(t.bounds||(t.bounds=new cn),t,e)}var dA={mark:null};function hA(t,n,e){var r,i,a,o,s=Ae[t.marktype],u=s.bound,l=t.items,c=l&&l.length;if(s.nested)return c?a=l[0]:(dA.mark=t,a=dA),o=f0(a,u,e),n=n&&n.union(o)||o;if(n=n||t.bounds&&t.bounds.clear()||new cn,c)for(r=0,i=l.length;r<i;++r)n.union(f0(l[r],u,e));return t.bounds=n}const K7=["marktype","name","role","interactive","clip","items","zindex","x","y","width","height","align","baseline","fill","fillOpacity","opacity","blend","stroke","strokeOpacity","strokeWidth","strokeCap","strokeDash","strokeDashOffset","strokeForeground","strokeOffset","startAngle","endAngle","innerRadius","outerRadius","cornerRadius","padAngle","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight","interpolate","tension","orient","defined","url","aspect","smooth","path","scaleX","scaleY","x2","y2","size","shape","text","angle","theta","radius","dir","dx","dy","ellipsis","limit","lineBreak","lineHeight","font","fontSize","fontWeight","fontStyle","fontVariant","description","aria","ariaRole","ariaRoleDescription"];function pA(t,n){return JSON.stringify(t,K7,n)}function mA(t){return gA(typeof t=="string"?JSON.parse(t):t)}function gA(t){var n,e,r,i=t.marktype,a=t.items;if(a)for(e=0,r=a.length;e<r;++e)n=i?"mark":"group",a[e][n]=t,a[e].zindex&&(a[e][n].zdirty=!0),(i||n)==="group"&&gA(a[e]);return i&&hA(t),t}class yA{constructor(n){arguments.length?this.root=mA(n):(this.root=vA({marktype:"group",name:"root",role:"frame"}),this.root.items=[new Cc(this.root)])}toJSON(n){return pA(this.root,n||0)}mark(n,e,r){const i=vA(n,e=e||this.root.items[0]);return e.items[r]=i,i.zindex&&(i.group.zdirty=!0),i}}function vA(t,n){const e={bounds:new cn,clip:!!t.clip,group:n,interactive:t.interactive!==!1,items:[],marktype:t.marktype,name:t.name||void 0,role:t.role||void 0,zindex:t.zindex||0};return t.aria!=null&&(e.aria=t.aria),t.description&&(e.description=t.description),e}function Xi(t,n,e){return!t&&typeof document<"u"&&document.createElement&&(t=document),t?e?t.createElementNS(e,n):t.createElement(n):null}function d0(t,n){n=n.toLowerCase();for(var e=t.childNodes,r=0,i=e.length;r<i;++r)if(e[r].tagName.toLowerCase()===n)return e[r]}function dn(t,n,e,r){var i,a=t.childNodes[n];return a&&a.tagName.toLowerCase()===e.toLowerCase()||(i=a||null,a=Xi(t.ownerDocument,e,r),t.insertBefore(a,i)),a}function Pe(t,n){for(var e=t.childNodes,r=e.length;r>n;)t.removeChild(e[--r]);return t}function bA(t){return"mark-"+t.marktype+(t.role?" role-"+t.role:"")+(t.name?" "+t.name:"")}function Uc(t,n){const e=n.getBoundingClientRect();return[t.clientX-e.left-(n.clientLeft||0),t.clientY-e.top-(n.clientTop||0)]}class h0{constructor(n,e){this._active=null,this._handlers={},this._loader=n||Hl(),this._tooltip=e||Q7}initialize(n,e,r){return this._el=n,this._obj=r||null,this.origin(e)}element(){return this._el}canvas(){return this._el&&this._el.firstChild}origin(n){return arguments.length?(this._origin=n||[0,0],this):this._origin.slice()}scene(n){return arguments.length?(this._scene=n,this):this._scene}on(){}off(){}_handlerIndex(n,e,r){for(let i=n?n.length:0;--i>=0;)if(n[i].type===e&&(!r||n[i].handler===r))return i;return-1}handlers(n){const e=this._handlers,r=[];if(n)r.push(...e[this.eventName(n)]);else for(const i in e)r.push(...e[i]);return r}eventName(n){const e=n.indexOf(".");return e<0?n:n.slice(0,e)}handleHref(n,e,r){this._loader.sanitize(r,{context:"href"}).then(i=>{const a=new MouseEvent(n.type,n),o=Xi(null,"a");for(const s in i)o.setAttribute(s,i[s]);o.dispatchEvent(a)}).catch(()=>{})}handleTooltip(n,e,r){if(e&&e.tooltip!=null){e=function(a,o,s,u){var l,c,f=a&&a.mark;if(f&&(l=Ae[f.marktype]).tip){for((c=Uc(o,s))[0]-=u[0],c[1]-=u[1];a=a.mark.group;)c[0]-=a.x||0,c[1]-=a.y||0;a=l.tip(f.items,c)}return a}(e,n,this.canvas(),this._origin);const i=r&&e&&e.tooltip||null;this._tooltip.call(this._obj,this,n,e,i)}}getItemBoundingClientRect(n){const e=this.canvas();if(!e)return;const r=e.getBoundingClientRect(),i=this._origin,a=n.bounds,o=a.width(),s=a.height();let u=a.x1+i[0]+r.left,l=a.y1+i[1]+r.top;for(;n.mark&&(n=n.mark.group);)u+=n.x||0,l+=n.y||0;return{x:u,y:l,width:o,height:s,left:u,top:l,right:u+o,bottom:l+s}}}function Q7(t,n,e,r){t.element().setAttribute("title",r||"")}class bu{constructor(n){this._el=null,this._bgcolor=null,this._loader=new Ww(n)}initialize(n,e,r,i,a){return this._el=n,this.resize(e,r,i,a)}element(){return this._el}canvas(){return this._el&&this._el.firstChild}background(n){return arguments.length===0?this._bgcolor:(this._bgcolor=n,this)}resize(n,e,r,i){return this._width=n,this._height=e,this._origin=r||[0,0],this._scale=i||1,this}dirty(){}render(n,e){const r=this;return r._call=function(){r._render(n,e)},r._call(),r._call=null,r}_render(){}renderAsync(n,e){const r=this.render(n,e);return this._ready?this._ready.then(()=>r):Promise.resolve(r)}_load(n,e){var r=this,i=r._loader[n](e);if(!r._ready){const a=r._call;r._ready=r._loader.ready().then(o=>{o&&a(),r._ready=null})}return i}sanitizeURL(n){return this._load("sanitizeURL",n)}loadImage(n){return this._load("loadImage",n)}}const xA="dragenter",Ic="dragleave",wA="dragover",p0="pointerdown",Wc="pointermove",Hc="pointerout",AA="pointerover",m0="mousedown",_A="mousemove",Gc="mouseout",kA="mouseover",Vc="click",DA="mousewheel",Yc="touchstart",Xc="touchmove",Jc="touchend",Z7=["keydown","keypress","keyup",xA,Ic,wA,p0,"pointerup",Wc,Hc,AA,m0,"mouseup",_A,Gc,kA,Vc,"dblclick","wheel",DA,Yc,Xc,Jc],g0=Wc,xu=Gc,y0=Vc;class wu extends h0{constructor(n,e){super(n,e),this._down=null,this._touch=null,this._first=!0,this._events={},this.events=Z7,this.pointermove=CA([Wc,_A],[AA,kA],[Hc,Gc]),this.dragover=CA([wA],[xA],[Ic]),this.pointerout=EA([Hc,Gc]),this.dragleave=EA([Ic])}initialize(n,e,r){return this._canvas=n&&d0(n,"canvas"),[Vc,m0,p0,Wc,Hc,Ic].forEach(i=>FA(this,i)),super.initialize(n,e,r)}canvas(){return this._canvas}context(){return this._canvas.getContext("2d")}DOMMouseScroll(n){this.fire(DA,n)}pointerdown(n){this._down=this._active,this.fire(p0,n)}mousedown(n){this._down=this._active,this.fire(m0,n)}click(n){this._down===this._active&&(this.fire(Vc,n),this._down=null)}touchstart(n){this._touch=this.pickEvent(n.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire(Yc,n,!0)}touchmove(n){this.fire(Xc,n,!0)}touchend(n){this.fire(Jc,n,!0),this._touch=null}fire(n,e,r){const i=r?this._touch:this._active,a=this._handlers[n];if(e.vegaType=n,n===y0&&i&&i.href?this.handleHref(e,i,i.href):n!==g0&&n!==xu||this.handleTooltip(e,i,n!==xu),a)for(let o=0,s=a.length;o<s;++o)a[o].handler.call(this._obj,e,i)}on(n,e){const r=this.eventName(n),i=this._handlers;return this._handlerIndex(i[r],n,e)<0&&(FA(this,n),(i[r]||(i[r]=[])).push({type:n,handler:e})),this}off(n,e){const r=this.eventName(n),i=this._handlers[r],a=this._handlerIndex(i,n,e);return a>=0&&i.splice(a,1),this}pickEvent(n){const e=Uc(n,this._canvas),r=this._origin;return this.pick(this._scene,e[0],e[1],e[0]-r[0],e[1]-r[1])}pick(n,e,r,i,a){const o=this.context();return Ae[n.marktype].pick.call(this,o,n,e,r,i,a)}}const t4=t=>t===Yc||t===Xc||t===Jc?[Yc,Xc,Jc]:[t];function FA(t,n){t4(n).forEach(e=>function(r,i){const a=r.canvas();a&&!r._events[i]&&(r._events[i]=1,a.addEventListener(i,r[i]?o=>r[i](o):o=>r.fire(i,o)))}(t,e))}function Kc(t,n,e){n.forEach(r=>t.fire(r,e))}function CA(t,n,e){return function(r){const i=this._active,a=this.pickEvent(r);a===i||(i&&i.exit||Kc(this,e,r),this._active=a,Kc(this,n,r)),Kc(this,t,r)}}function EA(t){return function(n){Kc(this,t,n),this._active=null}}function n4(t,n,e,r,i,a){const o=typeof HTMLElement<"u"&&t instanceof HTMLElement&&t.parentNode!=null,s=t.getContext("2d"),u=o?typeof window<"u"&&window.devicePixelRatio||1:i;t.width=n*u,t.height=e*u;for(const l in a)s[l]=a[l];return o&&u!==1&&(t.style.width=n+"px",t.style.height=e+"px"),s.pixelRatio=u,s.setTransform(u,0,0,u,u*r[0],u*r[1]),t}class Qc extends bu{constructor(n){super(n),this._options={},this._redraw=!1,this._dirty=new cn,this._tempb=new cn}initialize(n,e,r,i,a,o){return this._options=o||{},this._canvas=this._options.externalContext?null:qi(1,1,this._options.type),n&&this._canvas&&(Pe(n,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),super.initialize(n,e,r,i,a)}resize(n,e,r,i){if(super.resize(n,e,r,i),this._canvas)n4(this._canvas,this._width,this._height,this._origin,this._scale,this._options.context);else{const a=this._options.externalContext;a||j("CanvasRenderer is missing a valid canvas or context"),a.scale(this._scale,this._scale),a.translate(this._origin[0],this._origin[1])}return this._redraw=!0,this}canvas(){return this._canvas}context(){return this._options.externalContext||(this._canvas?this._canvas.getContext("2d"):null)}dirty(n){const e=this._tempb.clear().union(n.bounds);let r=n.mark.group;for(;r;)e.translate(r.x||0,r.y||0),r=r.mark.group;this._dirty.union(e)}_render(n,e){const r=this.context(),i=this._origin,a=this._width,o=this._height,s=this._dirty,u=e4(i,a,o);r.save();const l=this._redraw||s.empty()?(this._redraw=!1,u.expand(1)):function(c,f,d){return f.expand(1).round(),c.pixelRatio%1&&f.scale(c.pixelRatio).round().scale(1/c.pixelRatio),f.translate(-d[0]%1,-d[1]%1),c.beginPath(),c.rect(f.x1,f.y1,f.width(),f.height()),c.clip(),f}(r,u.intersect(s),i);return this.clear(-i[0],-i[1],a,o),this.draw(r,n,l,e),r.restore(),s.clear(),this}draw(n,e,r,i){if(e.marktype!=="group"&&i!=null&&!i.includes(e.marktype))return;const a=Ae[e.marktype];e.clip&&function(o,s){var u=s.clip;o.save(),bt(u)?(o.beginPath(),u(o),o.clip()):rA(o,s.group)}(n,e),a.draw.call(this,n,e,r,i),e.clip&&n.restore()}clear(n,e,r,i){const a=this._options,o=this.context();a.type==="pdf"||a.externalContext||o.clearRect(n,e,r,i),this._bgcolor!=null&&(o.fillStyle=this._bgcolor,o.fillRect(n,e,r,i))}}const e4=(t,n,e)=>new cn().set(0,0,n,e).translate(-t[0],-t[1]);class $A extends h0{constructor(n,e){super(n,e);const r=this;r._hrefHandler=v0(r,(i,a)=>{a&&a.href&&r.handleHref(i,a,a.href)}),r._tooltipHandler=v0(r,(i,a)=>{r.handleTooltip(i,a,i.type!==xu)})}initialize(n,e,r){let i=this._svg;return i&&(i.removeEventListener(y0,this._hrefHandler),i.removeEventListener(g0,this._tooltipHandler),i.removeEventListener(xu,this._tooltipHandler)),this._svg=i=n&&d0(n,"svg"),i&&(i.addEventListener(y0,this._hrefHandler),i.addEventListener(g0,this._tooltipHandler),i.addEventListener(xu,this._tooltipHandler)),super.initialize(n,e,r)}canvas(){return this._svg}on(n,e){const r=this.eventName(n),i=this._handlers;if(this._handlerIndex(i[r],n,e)<0){const a={type:n,handler:e,listener:v0(this,e)};(i[r]||(i[r]=[])).push(a),this._svg&&this._svg.addEventListener(r,a.listener)}return this}off(n,e){const r=this.eventName(n),i=this._handlers[r],a=this._handlerIndex(i,n,e);return a>=0&&(this._svg&&this._svg.removeEventListener(r,i[a].listener),i.splice(a,1)),this}}const v0=(t,n)=>e=>{let r=e.target.__data__;r=Array.isArray(r)?r[0]:r,e.vegaType=e.type,n.call(t._obj,e,r)},SA="aria-hidden",b0="aria-label",x0="role",w0="aria-roledescription",MA="graphics-object",A0="graphics-symbol",BA=(t,n,e)=>({[x0]:t,[w0]:n,[b0]:e||void 0}),r4=Dr(["axis-domain","axis-grid","axis-label","axis-tick","axis-title","legend-band","legend-entry","legend-gradient","legend-label","legend-title","legend-symbol","title"]),zA={axis:{desc:"axis",caption:function(t){const n=t.datum,e=t.orient,r=n.title?PA(t):null,i=t.context,a=i.scales[n.scale].value,o=i.dataflow.locale(),s=a.type;return`${e==="left"||e==="right"?"Y":"X"}-axis`+(r?` titled '${r}'`:"")+` for a ${No(s)?"discrete":s} scale with ${Sw(o,a,t)}`}},legend:{desc:"legend",caption:function(t){const n=t.datum,e=n.title?PA(t):null,r=`${n.type||""} legend`.trim(),i=n.scales,a=Object.keys(i),o=t.context,s=o.scales[i[a[0]]].value,u=o.dataflow.locale();return l=r,(l.length?l[0].toUpperCase()+l.slice(1):l)+(e?` titled '${e}'`:"")+` for ${function(c){return c=c.map(f=>f+(f==="fill"||f==="stroke"?" color":"")),c.length<2?c[0]:c.slice(0,-1).join(", ")+" and "+Bt(c)}(a)} with ${Sw(u,s,t)}`;var l}},"title-text":{desc:"title",caption:t=>`Title text '${TA(t)}'`},"title-subtitle":{desc:"subtitle",caption:t=>`Subtitle text '${TA(t)}'`}},OA={ariaRole:x0,ariaRoleDescription:w0,description:b0};function NA(t,n){const e=n.aria===!1;if(t(SA,e||void 0),e||n.description==null)for(const r in OA)t(OA[r],void 0);else{const r=n.mark.marktype;t(b0,n.description),t(x0,n.ariaRole||(r==="group"?MA:A0)),t(w0,n.ariaRoleDescription||`${r} mark`)}}function RA(t){return t.aria===!1?{[SA]:!0}:r4[t.role]?null:zA[t.role]?function(n,e){try{const r=n.items[0],i=e.caption||(()=>"");return BA(e.role||A0,e.desc,r.description||i(r))}catch{return null}}(t,zA[t.role]):function(n){const e=n.marktype,r=e==="group"||e==="text"||n.items.some(i=>i.description!=null&&i.aria!==!1);return BA(r?MA:A0,`${e} mark container`,n.description)}(t)}function TA(t){return K(t.text).join(" ")}function PA(t){try{return K(Bt(t.items).items[0].text).join(" ")}catch{return null}}const jA=t=>(t+"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");function _0(){let t="",n="",e="";const r=[],i=()=>n=e="",a=(s,u)=>{var l;return u!=null&&(n+=` ${s}="${l=u,jA(l).replace(/"/g,""").replace(/\t/g,"	").replace(/\n/g,"
").replace(/\r/g,"
")}"`),o},o={open(s){(f=>{n&&(t+=`${n}>${e}`,i()),r.push(f)})(s),n="<"+s;for(var u=arguments.length,l=new Array(u>1?u-1:0),c=1;c<u;c++)l[c-1]=arguments[c];for(const f of l)for(const d in f)a(d,f[d]);return o},close(){const s=r.pop();return t+=n?n+(e?`>${e}</${s}>`:"/>"):`</${s}>`,i(),o},attr:a,text:s=>(e+=jA(s),o),toString:()=>t};return o}const LA=t=>qA(_0(),t)+"";function qA(t,n){if(t.open(n.tagName),n.hasAttributes()){const e=n.attributes,r=e.length;for(let i=0;i<r;++i)t.attr(e[i].name,e[i].value)}if(n.hasChildNodes()){const e=n.childNodes;for(const r of e)r.nodeType===3?t.text(r.nodeValue):qA(t,r)}return t.close()}const Zc={fill:"fill",fillOpacity:"fill-opacity",stroke:"stroke",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",strokeCap:"stroke-linecap",strokeJoin:"stroke-linejoin",strokeDash:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeMiterLimit:"stroke-miterlimit",opacity:"opacity"},tf={blend:"mix-blend-mode"},UA={fill:"none","stroke-miterlimit":10},IA="http://www.w3.org/2000/xmlns/",hn=mu.xmlns;class k0 extends bu{constructor(n){super(n),this._dirtyID=0,this._dirty=[],this._svg=null,this._root=null,this._defs=null}initialize(n,e,r,i,a){return this._defs={},this._clearDefs(),n&&(this._svg=dn(n,0,"svg",hn),this._svg.setAttributeNS(IA,"xmlns",hn),this._svg.setAttributeNS(IA,"xmlns:xlink",mu["xmlns:xlink"]),this._svg.setAttribute("version",mu.version),this._svg.setAttribute("class","marks"),Pe(n,1),this._root=dn(this._svg,0,"g",hn),Ji(this._root,UA),Pe(this._svg,1)),this.background(this._bgcolor),super.initialize(n,e,r,i,a)}background(n){return arguments.length&&this._svg&&this._svg.style.setProperty("background-color",n),super.background(...arguments)}resize(n,e,r,i){return super.resize(n,e,r,i),this._svg&&(Ji(this._svg,{width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}),this._root.setAttribute("transform",`translate(${this._origin})`)),this._dirty=[],this}canvas(){return this._svg}svg(){const n=this._svg,e=this._bgcolor;if(!n)return null;let r;e&&(n.removeAttribute("style"),r=dn(n,0,"rect",hn),Ji(r,{width:this._width,height:this._height,fill:e}));const i=LA(n);return e&&(n.removeChild(r),this._svg.style.setProperty("background-color",e)),i}_render(n,e){return this._dirtyCheck()&&(this._dirtyAll&&this._clearDefs(),this.mark(this._root,n,void 0,e),Pe(this._root,1)),this.defs(),this._dirty=[],++this._dirtyID,this}dirty(n){n.dirty!==this._dirtyID&&(n.dirty=this._dirtyID,this._dirty.push(n))}isDirty(n){return this._dirtyAll||!n._svg||!n._svg.ownerSVGElement||n.dirty===this._dirtyID}_dirtyCheck(){this._dirtyAll=!0;const n=this._dirty;if(!n.length||!this._dirtyID)return!0;const e=++this._dirtyID;let r,i,a,o,s,u,l;for(s=0,u=n.length;s<u;++s)r=n[s],i=r.mark,i.marktype!==a&&(a=i.marktype,o=Ae[a]),i.zdirty&&i.dirty!==e&&(this._dirtyAll=!1,WA(r,e),i.items.forEach(c=>{c.dirty=e})),i.zdirty||(r.exit?(o.nested&&i.items.length?(l=i.items[0],l._svg&&this._update(o,l._svg,l)):r._svg&&(l=r._svg.parentNode,l&&l.removeChild(r._svg)),r._svg=null):(r=o.nested?i.items[0]:r,r._update!==e&&(r._svg&&r._svg.ownerSVGElement?this._update(o,r._svg,r):(this._dirtyAll=!1,WA(r,e)),r._update=e)));return!this._dirtyAll}mark(n,e,r,i){if(!this.isDirty(e))return e._svg;const a=this._svg,o=e.marktype,s=Ae[o],u=e.interactive===!1?"none":null,l=s.tag==="g",c=HA(e,n,r,"g",a);if(o!=="group"&&i!=null&&!i.includes(o))return Pe(c,0),e._svg;c.setAttribute("class",bA(e));const f=RA(e);for(const m in f)Vn(c,m,f[m]);l||Vn(c,"pointer-events",u),Vn(c,"clip-path",e.clip?Im(this,e,e.group):null);let d=null,h=0;const p=m=>{const g=this.isDirty(m),y=HA(m,c,d,s.tag,a);g&&(this._update(s,y,m),l&&function(v,x,b,w){x=x.lastChild.previousSibling;let A,_=0;Qe(b,k=>{A=v.mark(x,k,A,w),++_}),Pe(x,1+_)}(this,y,m,i)),d=y,++h};return s.nested?e.items.length&&p(e.items[0]):Qe(e,p),Pe(c,h),c}_update(n,e,r){oi=e,On=e.__values__,NA(Au,r),n.attr(Au,r,this);const i=o4[n.type];i&&i.call(this,n,e,r),oi&&this.style(oi,r)}style(n,e){if(e!=null){for(const r in Zc){let i=r==="font"?yu(e):e[r];if(i===On[r])continue;const a=Zc[r];i==null?n.removeAttribute(a):(Tm(i)&&(i=Bw(i,this._defs.gradient,GA())),n.setAttribute(a,i+"")),On[r]=i}for(const r in tf)nf(n,tf[r],e[r])}}defs(){const n=this._svg,e=this._defs;let r=e.el,i=0;for(const a in e.gradient)r||(e.el=r=dn(n,1,"defs",hn)),i=i4(r,e.gradient[a],i);for(const a in e.clipping)r||(e.el=r=dn(n,1,"defs",hn)),i=a4(r,e.clipping[a],i);r&&(i===0?(n.removeChild(r),e.el=null):Pe(r,i))}_clearDefs(){const n=this._defs;n.gradient={},n.clipping={}}}function WA(t,n){for(;t&&t.dirty!==n;t=t.mark.group){if(t.dirty=n,!t.mark||t.mark.dirty===n)return;t.mark.dirty=n}}function i4(t,n,e){let r,i,a;if(n.gradient==="radial"){let o=dn(t,e++,"pattern",hn);Ji(o,{id:_c+n.id,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),o=dn(o,0,"rect",hn),Ji(o,{width:1,height:1,fill:`url(${GA()}#${n.id})`}),Ji(t=dn(t,e++,"radialGradient",hn),{id:n.id,fx:n.x1,fy:n.y1,fr:n.r1,cx:n.x2,cy:n.y2,r:n.r2})}else Ji(t=dn(t,e++,"linearGradient",hn),{id:n.id,x1:n.x1,x2:n.x2,y1:n.y1,y2:n.y2});for(r=0,i=n.stops.length;r<i;++r)a=dn(t,r,"stop",hn),a.setAttribute("offset",n.stops[r].offset),a.setAttribute("stop-color",n.stops[r].color);return Pe(t,r),e}function a4(t,n,e){let r;return(t=dn(t,e,"clipPath",hn)).setAttribute("id",n.id),n.path?(r=dn(t,0,"path",hn),r.setAttribute("d",n.path)):(r=dn(t,0,"rect",hn),Ji(r,{x:0,y:0,width:n.width,height:n.height})),Pe(t,1),e+1}function HA(t,n,e,r,i){let a,o=t._svg;if(!o&&(a=n.ownerDocument,o=Xi(a,r,hn),t._svg=o,t.mark&&(o.__data__=t,o.__values__={fill:"default"},r==="g"))){const s=Xi(a,"path",hn);o.appendChild(s),s.__data__=t;const u=Xi(a,"g",hn);o.appendChild(u),u.__data__=t;const l=Xi(a,"path",hn);o.appendChild(l),l.__data__=t,l.__values__={fill:"default"}}return(o.ownerSVGElement!==i||function(s,u){return s.parentNode&&s.parentNode.childNodes.length>1&&s.previousSibling!=u}(o,e))&&n.insertBefore(o,e?e.nextSibling:n.firstChild),o}let oi=null,On=null;const o4={group(t,n,e){const r=oi=n.childNodes[2];On=r.__values__,t.foreground(Au,e,this),On=n.__values__,oi=n.childNodes[1],t.content(Au,e,this);const i=oi=n.childNodes[0];t.background(Au,e,this);const a=e.mark.interactive===!1?"none":null;if(a!==On.events&&(Vn(r,"pointer-events",a),Vn(i,"pointer-events",a),On.events=a),e.strokeForeground&&e.stroke){const o=e.fill;Vn(r,"display",null),this.style(i,e),Vn(i,"stroke",null),o&&(e.fill=null),On=r.__values__,this.style(r,e),o&&(e.fill=o),oi=null}else Vn(r,"display","none")},image(t,n,e){e.smooth===!1?(nf(n,"image-rendering","optimizeSpeed"),nf(n,"image-rendering","pixelated")):nf(n,"image-rendering",null)},text(t,n,e){const r=gu(e);let i,a,o,s;P(r)?(a=r.map(u=>Yi(e,u)),i=a.join(`
|
2
|
-
`),i!==On.text&&(Pe(n,0),o=n.ownerDocument,s=Vi(e),a.forEach((u,l)=>{const c=Xi(o,"tspan",hn);c.__data__=e,c.textContent=u,l&&(c.setAttribute("x",0),c.setAttribute("dy",s)),n.appendChild(c)}),On.text=i)):(a=Yi(e,r),a!==On.text&&(n.textContent=a,On.text=a)),Vn(n,"font-family",yu(e)),Vn(n,"font-size",Sr(e)+"px"),Vn(n,"font-style",e.fontStyle),Vn(n,"font-variant",e.fontVariant),Vn(n,"font-weight",e.fontWeight)}};function Au(t,n,e){n!==On[t]&&(e?function(r,i,a,o){a!=null?r.setAttributeNS(o,i,a):r.removeAttributeNS(o,i)}(oi,t,n,e):Vn(oi,t,n),On[t]=n)}function nf(t,n,e){e!==On[n]&&(e==null?t.style.removeProperty(n):t.style.setProperty(n,e+""),On[n]=e)}function Ji(t,n){for(const e in n)Vn(t,e,n[e])}function Vn(t,n,e){e!=null?t.setAttribute(n,e):t.removeAttribute(n)}function GA(){let t;return typeof window>"u"?"":(t=window.location).hash?t.href.slice(0,-t.hash.length):t.href}class VA extends bu{constructor(n){super(n),this._text=null,this._defs={gradient:{},clipping:{}}}svg(){return this._text}_render(n){const e=_0();e.open("svg",xt({},mu,{class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}));const r=this._bgcolor;return r&&r!=="transparent"&&r!=="none"&&e.open("rect",{width:this._width,height:this._height,fill:r}).close(),e.open("g",UA,{transform:"translate("+this._origin+")"}),this.mark(e,n),e.close(),this.defs(e),this._text=e.close()+"",this}mark(n,e){const r=Ae[e.marktype],i=r.tag,a=[NA,r.attr];n.open("g",{class:bA(e),"clip-path":e.clip?Im(this,e,e.group):null},RA(e),{"pointer-events":i!=="g"&&e.interactive===!1?"none":null});const o=s=>{const u=this.href(s);if(u&&n.open("a",u),n.open(i,this.attr(e,s,a,i!=="g"?i:null)),i==="text"){const l=gu(s);if(P(l)){const c={x:0,dy:Vi(s)};for(let f=0;f<l.length;++f)n.open("tspan",f?c:null).text(Yi(s,l[f])).close()}else n.text(Yi(s,l))}else if(i==="g"){const l=s.strokeForeground,c=s.fill,f=s.stroke;l&&f&&(s.stroke=null),n.open("path",this.attr(e,s,r.background,"bgrect")).close(),n.open("g",this.attr(e,s,r.content)),Qe(s,d=>this.mark(n,d)),n.close(),l&&f?(c&&(s.fill=null),s.stroke=f,n.open("path",this.attr(e,s,r.foreground,"bgrect")).close(),c&&(s.fill=c)):n.open("path",this.attr(e,s,r.foreground,"bgfore")).close()}n.close(),u&&n.close()};return r.nested?e.items&&e.items.length&&o(e.items[0]):Qe(e,o),n.close()}href(n){const e=n.href;let r;if(e){if(r=this._hrefs&&this._hrefs[e])return r;this.sanitizeURL(e).then(i=>{i["xlink:href"]=i.href,i.href=null,(this._hrefs||(this._hrefs={}))[e]=i})}return null}attr(n,e,r,i){const a={},o=(s,u,l,c)=>{a[c||s]=u};return Array.isArray(r)?r.forEach(s=>s(o,e,this)):r(o,e,this),i&&function(s,u,l,c,f){let d;if(u==null||(c==="bgrect"&&l.interactive===!1&&(s["pointer-events"]="none"),c==="bgfore"&&(l.interactive===!1&&(s["pointer-events"]="none"),s.display="none",u.fill!==null)))return s;c==="image"&&u.smooth===!1&&(d=["image-rendering: optimizeSpeed;","image-rendering: pixelated;"]),c==="text"&&(s["font-family"]=yu(u),s["font-size"]=Sr(u)+"px",s["font-style"]=u.fontStyle,s["font-variant"]=u.fontVariant,s["font-weight"]=u.fontWeight);for(const h in Zc){let p=u[h];const m=Zc[h];(p!=="transparent"||m!=="fill"&&m!=="stroke")&&p!=null&&(Tm(p)&&(p=Bw(p,f.gradient,"")),s[m]=p)}for(const h in tf){const p=u[h];p!=null&&(d=d||[],d.push(`${tf[h]}: ${p};`))}d&&(s.style=d.join(" "))}(a,e,n,i,this._defs),a}defs(n){const e=this._defs.gradient,r=this._defs.clipping;if(Object.keys(e).length+Object.keys(r).length!==0){n.open("defs");for(const i in e){const a=e[i],o=a.stops;a.gradient==="radial"?(n.open("pattern",{id:_c+i,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),n.open("rect",{width:"1",height:"1",fill:"url(#"+i+")"}).close(),n.close(),n.open("radialGradient",{id:i,fx:a.x1,fy:a.y1,fr:a.r1,cx:a.x2,cy:a.y2,r:a.r2})):n.open("linearGradient",{id:i,x1:a.x1,x2:a.x2,y1:a.y1,y2:a.y2});for(let s=0;s<o.length;++s)n.open("stop",{offset:o[s].offset,"stop-color":o[s].color}).close();n.close()}for(const i in r){const a=r[i];n.open("clipPath",{id:i}),a.path?n.open("path",{d:a.path}).close():n.open("rect",{x:0,y:0,width:a.width,height:a.height}).close(),n.close()}n.close()}}}const Ze={svgMarkTypes:["text"],svgOnTop:!0,debug:!1};class D0 extends bu{constructor(n){super(n),this._svgRenderer=new k0(n),this._canvasRenderer=new Qc(n)}initialize(n,e,r,i,a){this._root_el=dn(n,0,"div");const o=dn(this._root_el,0,"div"),s=dn(this._root_el,1,"div");return this._root_el.style.position="relative",Ze.debug||(o.style.height="100%",s.style.position="absolute",s.style.top="0",s.style.left="0",s.style.height="100%",s.style.width="100%"),this._svgEl=Ze.svgOnTop?s:o,this._canvasEl=Ze.svgOnTop?o:s,this._svgEl.style.pointerEvents="none",this._canvasRenderer.initialize(this._canvasEl,e,r,i,a),this._svgRenderer.initialize(this._svgEl,e,r,i,a),super.initialize(n,e,r,i,a)}dirty(n){return Ze.svgMarkTypes.includes(n.mark.marktype)?this._svgRenderer.dirty(n):this._canvasRenderer.dirty(n),this}_render(n,e){const r=(e??["arc","area","image","line","path","rect","rule","shape","symbol","text","trail"]).filter(i=>!Ze.svgMarkTypes.includes(i));this._svgRenderer.render(n,Ze.svgMarkTypes),this._canvasRenderer.render(n,r)}resize(n,e,r,i){return super.resize(n,e,r,i),this._svgRenderer.resize(n,e,r,i),this._canvasRenderer.resize(n,e,r,i),this}background(n){return Ze.svgOnTop?this._canvasRenderer.background(n):this._svgRenderer.background(n),this}}class YA extends wu{constructor(n,e){super(n,e)}initialize(n,e,r){const i=dn(dn(n,0,"div"),Ze.svgOnTop?0:1,"div");return super.initialize(i,e,r)}}const XA="canvas",JA="hybrid",KA="none",Ki={Canvas:XA,PNG:"png",SVG:"svg",Hybrid:JA,None:KA},qa={};function ef(t,n){return t=String(t||"").toLowerCase(),arguments.length>1?(qa[t]=n,this):qa[t]}function QA(t,n,e){const r=[],i=new cn().union(n),a=t.marktype;return a?ZA(t,i,e,r):a==="group"?t_(t,i,e,r):j("Intersect scene must be mark node or group item.")}function ZA(t,n,e,r){if(function(i,a,o){return i.bounds&&a.intersects(i.bounds)&&(i.marktype==="group"||i.interactive!==!1&&(!o||o(i)))}(t,n,e)){const i=t.items,a=t.marktype,o=i.length;let s=0;if(a==="group")for(;s<o;++s)t_(i[s],n,e,r);else for(const u=Ae[a].isect;s<o;++s){const l=i[s];n_(l,n,u)&&r.push(l)}}return r}function t_(t,n,e,r){e&&e(t.mark)&&n_(t,n,Ae.group.isect)&&r.push(t);const i=t.items,a=i&&i.length;if(a){const o=t.x||0,s=t.y||0;n.translate(-o,-s);for(let u=0;u<a;++u)ZA(i[u],n,e,r);n.translate(o,s)}return r}function n_(t,n,e){const r=t.bounds;return n.encloses(r)||n.intersects(r)&&e(t,n)}qa[XA]=qa.png={renderer:Qc,headless:Qc,handler:wu},qa.svg={renderer:k0,headless:VA,handler:$A},qa[JA]={renderer:D0,headless:D0,handler:YA},qa[KA]={};const F0=new cn;function e_(t){const n=t.clip;if(bt(n))n(du(F0.clear()));else{if(!n)return;F0.set(0,0,t.group.width,t.group.height)}t.bounds.intersect(F0)}function C0(t,n,e){return t===n||(e==="path"?r_(t,n):t instanceof Date&&n instanceof Date?+t==+n:$t(t)&&$t(n)?Math.abs(t-n)<=1e-9:t&&n&&(Z(t)||Z(n))?function(r,i){var a,o,s=Object.keys(r),u=Object.keys(i);if(s.length!==u.length)return!1;for(s.sort(),u.sort(),o=s.length-1;o>=0;o--)if(s[o]!=u[o])return!1;for(o=s.length-1;o>=0;o--)if(!C0(r[a=s[o]],i[a],a))return!1;return typeof r==typeof i}(t,n):t==n)}function r_(t,n){return C0(Ro(t),Ro(n))}const Uo="top",tr="left",nr="right",Qi="bottom",E0="start",$0="middle",Yn="end",rf="group",S0="axis",M0="title",s4="frame",u4="scope",B0="legend",i_="row-header",a_="row-footer",o_="row-title",s_="column-header",u_="column-footer",l_="column-title",l4="padding",c_="fit",f_="fit-x",d_="fit-y",z0="none",af="all",O0="each",N0="flush",Zi="column",ta="row";function h_(t){O.call(this,null,t)}function of(t,n,e){return n(t.bounds.clear(),t,e)}V(h_,O,{transform(t,n){const e=n.dataflow,r=t.mark,i=r.marktype,a=Ae[i],o=a.bound;let s,u=r.bounds;if(a.nested)r.items.length&&e.dirty(r.items[0]),u=of(r,o),r.items.forEach(l=>{l.bounds.clear().union(u)});else if(i===rf||t.modified())switch(n.visit(n.MOD,l=>e.dirty(l)),u.clear(),r.items.forEach(l=>u.union(of(l,o))),r.role){case S0:case B0:case M0:n.reflow()}else s=n.changed(n.REM),n.visit(n.ADD,l=>{u.union(of(l,o))}),n.visit(n.MOD,l=>{s=s||u.alignsWith(l.bounds),e.dirty(l),u.union(of(l,o))}),s&&(u.clear(),r.items.forEach(l=>u.union(l.bounds)));return e_(r),n.modifies("bounds")}});const p_=":vega_identifier:";function R0(t){O.call(this,0,t)}function m_(t){O.call(this,null,t)}function g_(t){O.call(this,null,t)}R0.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]},V(R0,O,{transform(t,n){const e=(i=n.dataflow)._signals[p_]||(i._signals[p_]=i.add(0)),r=t.as;var i;let a=e.value;return n.visit(n.ADD,o=>o[r]=o[r]||++a),e.set(this.value=a),n}}),V(m_,O,{transform(t,n){let e=this.value;e||(e=n.dataflow.scenegraph().mark(t.markdef,function(i){const a=i.groups,o=i.parent;return a&&a.size===1?a.get(Object.keys(a.object)[0]):a&&o?a.lookup(o):null}(t),t.index),e.group.context=t.context,t.context.group||(t.context.group=e.group),e.source=this.source,e.clip=t.clip,e.interactive=t.interactive,this.value=e);const r=e.marktype===rf?Cc:Fc;return n.visit(n.ADD,i=>r.call(i,e)),(t.modified("clip")||t.modified("interactive"))&&(e.clip=t.clip,e.interactive=!!t.interactive,e.zdirty=!0,n.reflow()),e.items=n.source,n}});const y_={parity:t=>t.filter((n,e)=>e%2?n.opacity=0:1),greedy:(t,n)=>{let e;return t.filter((r,i)=>i&&v_(e.bounds,r.bounds,n)?r.opacity=0:(e=r,1))}},v_=(t,n,e)=>e>Math.max(n.x1-t.x2,t.x1-n.x2,n.y1-t.y2,t.y1-n.y2),b_=(t,n)=>{for(var e,r=1,i=t.length,a=t[0].bounds;r<i;a=e,++r)if(v_(a,e=t[r].bounds,n))return!0},c4=t=>{const n=t.bounds;return n.width()>1&&n.height()>1},x_=t=>(t.forEach(n=>n.opacity=1),t),w_=(t,n)=>t.reflow(n.modified()).modifies("opacity");function A_(t){O.call(this,null,t)}V(g_,O,{transform(t,n){const e=y_[t.method]||y_.parity,r=t.separation||0;let i,a,o=n.materialize(n.SOURCE).source;if(!o||!o.length)return;if(!t.method)return t.modified("method")&&(x_(o),n=w_(n,t)),n;if(o=o.filter(c4),!o.length)return;if(t.sort&&(o=o.slice().sort(t.sort)),i=x_(o),n=w_(n,t),i.length>=3&&b_(i,r)){do i=e(i,r);while(i.length>=3&&b_(i,r));i.length<3&&!Bt(o).opacity&&(i.length>1&&(Bt(i).opacity=0),Bt(o).opacity=1)}t.boundScale&&t.boundTolerance>=0&&(a=((u,l,c)=>{var f=u.range(),d=new cn;return l===Uo||l===Qi?d.set(f[0],-1/0,f[1],1/0):d.set(-1/0,f[0],1/0,f[1]),d.expand(c||1),h=>d.encloses(h.bounds)})(t.boundScale,t.boundOrient,+t.boundTolerance),o.forEach(u=>{a(u)||(u.opacity=0)}));const s=i[0].mark.bounds.clear();return o.forEach(u=>{u.opacity&&s.union(u.bounds)}),n}}),V(A_,O,{transform(t,n){const e=n.dataflow;if(n.visit(n.ALL,r=>e.dirty(r)),n.fields&&n.fields.zindex){const r=n.source&&n.source[0];r&&(r.mark.zdirty=!0)}}});const Nn=new cn;function Io(t,n,e){return t[n]===e?0:(t[n]=e,1)}function f4(t){var n=t.items[0].orient;return n===tr||n===nr}function d4(t,n,e,r){var i,a,o=n.items[0],s=o.datum,u=o.translate!=null?o.translate:.5,l=o.orient,c=function(A){let _=+A.grid;return[A.ticks?_++:-1,A.labels?_++:-1,_+ +A.domain]}(s),f=o.range,d=o.offset,h=o.position,p=o.minExtent,m=o.maxExtent,g=s.title&&o.items[c[2]].items[0],y=o.titlePadding,v=o.bounds,x=g&&u0(g),b=0,w=0;switch(Nn.clear().union(v),v.clear(),(i=c[0])>-1&&v.union(o.items[i].bounds),(i=c[1])>-1&&v.union(o.items[i].bounds),l){case Uo:b=h||0,w=-d,a=Math.max(p,Math.min(m,-v.y1)),v.add(0,-a).add(f,0),g&&sf(t,g,a,y,x,0,-1,v);break;case tr:b=-d,w=h||0,a=Math.max(p,Math.min(m,-v.x1)),v.add(-a,0).add(0,f),g&&sf(t,g,a,y,x,1,-1,v);break;case nr:b=e+d,w=h||0,a=Math.max(p,Math.min(m,v.x2)),v.add(0,0).add(a,f),g&&sf(t,g,a,y,x,1,1,v);break;case Qi:b=h||0,w=r+d,a=Math.max(p,Math.min(m,v.y2)),v.add(0,0).add(f,a),g&&sf(t,g,a,y,0,0,1,v);break;default:b=o.x,w=o.y}return ai(v.translate(b,w),o),Io(o,"x",b+u)|Io(o,"y",w+u)&&(o.bounds=Nn,t.dirty(o),o.bounds=v,t.dirty(o)),o.mark.bounds.clear().union(v)}function sf(t,n,e,r,i,a,o,s){const u=n.bounds;if(n.auto){const l=o*(e+i+r);let c=0,f=0;t.dirty(n),a?c=(n.x||0)-(n.x=l):f=(n.y||0)-(n.y=l),n.mark.bounds.clear().union(u.translate(-c,-f)),t.dirty(n)}s.union(u)}const __=(t,n)=>Math.floor(Math.min(t,n)),k_=(t,n)=>Math.ceil(Math.max(t,n));function h4(t){return new cn().set(0,0,t.width||0,t.height||0)}function p4(t){const n=t.bounds.clone();return n.empty()?n.set(0,0,0,0):n.translate(-(t.x||0),-(t.y||0))}function Yt(t,n,e){const r=Z(t)?t[n]:t;return r??(e!==void 0?e:0)}function D_(t){return t<0?Math.ceil(-t):0}function F_(t,n,e){var r,i,a,o,s,u,l,c,f,d,h,p=!e.nodirty,m=e.bounds===N0?h4:p4,g=Nn.set(0,0,0,0),y=Yt(e.align,Zi),v=Yt(e.align,ta),x=Yt(e.padding,Zi),b=Yt(e.padding,ta),w=e.columns||n.length,A=w<=0?1:Math.ceil(n.length/w),_=n.length,k=Array(_),F=Array(w),C=0,D=Array(_),E=Array(A),$=0,M=Array(_),S=Array(_),B=Array(_);for(i=0;i<w;++i)F[i]=0;for(i=0;i<A;++i)E[i]=0;for(i=0;i<_;++i)u=n[i],s=B[i]=m(u),u.x=u.x||0,M[i]=0,u.y=u.y||0,S[i]=0,a=i%w,o=~~(i/w),C=Math.max(C,l=Math.ceil(s.x2)),$=Math.max($,c=Math.ceil(s.y2)),F[a]=Math.max(F[a],l),E[o]=Math.max(E[o],c),k[i]=x+D_(s.x1),D[i]=b+D_(s.y1),p&&t.dirty(n[i]);for(i=0;i<_;++i)i%w===0&&(k[i]=0),i<w&&(D[i]=0);if(y===O0)for(a=1;a<w;++a){for(h=0,i=a;i<_;i+=w)h<k[i]&&(h=k[i]);for(i=a;i<_;i+=w)k[i]=h+F[a-1]}else if(y===af){for(h=0,i=0;i<_;++i)i%w&&h<k[i]&&(h=k[i]);for(i=0;i<_;++i)i%w&&(k[i]=h+C)}else for(y=!1,a=1;a<w;++a)for(i=a;i<_;i+=w)k[i]+=F[a-1];if(v===O0)for(o=1;o<A;++o){for(h=0,r=(i=o*w)+w;i<r;++i)h<D[i]&&(h=D[i]);for(i=o*w;i<r;++i)D[i]=h+E[o-1]}else if(v===af){for(h=0,i=w;i<_;++i)h<D[i]&&(h=D[i]);for(i=w;i<_;++i)D[i]=h+$}else for(v=!1,o=1;o<A;++o)for(r=(i=o*w)+w;i<r;++i)D[i]+=E[o-1];for(f=0,i=0;i<_;++i)f=k[i]+(i%w?f:0),M[i]+=f-n[i].x;for(a=0;a<w;++a)for(d=0,i=a;i<_;i+=w)d+=D[i],S[i]+=d-n[i].y;if(y&&Yt(e.center,Zi)&&A>1)for(i=0;i<_;++i)(f=(s=y===af?C:F[i%w])-B[i].x2-n[i].x-M[i])>0&&(M[i]+=f/2);if(v&&Yt(e.center,ta)&&w!==1)for(i=0;i<_;++i)(d=(s=v===af?$:E[~~(i/w)])-B[i].y2-n[i].y-S[i])>0&&(S[i]+=d/2);for(i=0;i<_;++i)g.union(B[i].translate(M[i],S[i]));switch(f=Yt(e.anchor,"x"),d=Yt(e.anchor,"y"),Yt(e.anchor,Zi)){case Yn:f-=g.width();break;case $0:f-=g.width()/2}switch(Yt(e.anchor,ta)){case Yn:d-=g.height();break;case $0:d-=g.height()/2}for(f=Math.round(f),d=Math.round(d),g.clear(),i=0;i<_;++i)n[i].mark.bounds.clear();for(i=0;i<_;++i)(u=n[i]).x+=M[i]+=f,u.y+=S[i]+=d,g.union(u.mark.bounds.union(u.bounds.translate(M[i],S[i]))),p&&t.dirty(u);return g}function m4(t,n,e){var r,i,a,o,s,u,l,c=function(v){var x,b,w=v.items,A=w.length,_=0;const k={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};for(;_<A;++_)if(b=(x=w[_]).items,x.marktype===rf)switch(x.role){case S0:case B0:case M0:break;case i_:k.rowheaders.push(...b);break;case a_:k.rowfooters.push(...b);break;case s_:k.colheaders.push(...b);break;case u_:k.colfooters.push(...b);break;case o_:k.rowtitle=b[0];break;case l_:k.coltitle=b[0];break;default:k.marks.push(...b)}return k}(n),f=c.marks,d=e.bounds===N0?g4:y4,h=e.offset,p=e.columns||f.length,m=p<=0?1:Math.ceil(f.length/p),g=m*p;const y=F_(t,f,e);y.empty()&&y.set(0,0,0,0),c.rowheaders&&(u=Yt(e.headerBand,ta,null),r=uf(t,c.rowheaders,f,p,m,-Yt(h,"rowHeader"),__,0,d,"x1",0,p,1,u)),c.colheaders&&(u=Yt(e.headerBand,Zi,null),i=uf(t,c.colheaders,f,p,p,-Yt(h,"columnHeader"),__,1,d,"y1",0,1,p,u)),c.rowfooters&&(u=Yt(e.footerBand,ta,null),a=uf(t,c.rowfooters,f,p,m,Yt(h,"rowFooter"),k_,0,d,"x2",p-1,p,1,u)),c.colfooters&&(u=Yt(e.footerBand,Zi,null),o=uf(t,c.colfooters,f,p,p,Yt(h,"columnFooter"),k_,1,d,"y2",g-p,1,p,u)),c.rowtitle&&(s=Yt(e.titleAnchor,ta),l=Yt(h,"rowTitle"),l=s===Yn?a+l:r-l,u=Yt(e.titleBand,ta,.5),C_(t,c.rowtitle,l,0,y,u)),c.coltitle&&(s=Yt(e.titleAnchor,Zi),l=Yt(h,"columnTitle"),l=s===Yn?o+l:i-l,u=Yt(e.titleBand,Zi,.5),C_(t,c.coltitle,l,1,y,u))}function g4(t,n){return n==="x1"?t.x||0:n==="y1"?t.y||0:n==="x2"?(t.x||0)+(t.width||0):n==="y2"?(t.y||0)+(t.height||0):void 0}function y4(t,n){return t.bounds[n]}function uf(t,n,e,r,i,a,o,s,u,l,c,f,d,h){var p,m,g,y,v,x,b,w,A,_=e.length,k=0,F=0;if(!_)return k;for(p=c;p<_;p+=f)e[p]&&(k=o(k,u(e[p],l)));if(!n.length)return k;for(n.length>i&&(t.warn("Grid headers exceed limit: "+i),n=n.slice(0,i)),k+=a,m=0,y=n.length;m<y;++m)t.dirty(n[m]),n[m].mark.bounds.clear();for(p=c,m=0,y=n.length;m<y;++m,p+=f){for(v=(x=n[m]).mark.bounds,g=p;g>=0&&(b=e[g])==null;g-=d);s?(w=h==null?b.x:Math.round(b.bounds.x1+h*b.bounds.width()),A=k):(w=k,A=h==null?b.y:Math.round(b.bounds.y1+h*b.bounds.height())),v.union(x.bounds.translate(w-(x.x||0),A-(x.y||0))),x.x=w,x.y=A,t.dirty(x),F=o(F,v[l])}return F}function C_(t,n,e,r,i,a){if(n){t.dirty(n);var o=e,s=e;r?o=Math.round(i.x1+a*i.width()):s=Math.round(i.y1+a*i.height()),n.bounds.translate(o-(n.x||0),s-(n.y||0)),n.mark.bounds.clear().union(n.bounds),n.x=o,n.y=s,t.dirty(n)}}function v4(t,n,e,r,i,a,o){const s=function(d,h){const p=d[h]||{};return(m,g)=>p[m]!=null?p[m]:d[m]!=null?d[m]:g}(e,n),u=function(d,h){let p=-1/0;return d.forEach(m=>{m.offset!=null&&(p=Math.max(p,m.offset))}),p>-1/0?p:h}(t,s("offset",0)),l=s("anchor",E0),c=l===Yn?1:l===$0?.5:0,f={align:O0,bounds:s("bounds",N0),columns:s("direction")==="vertical"?1:t.length,padding:s("margin",8),center:s("center"),nodirty:!0};switch(n){case tr:f.anchor={x:Math.floor(r.x1)-u,column:Yn,y:c*(o||r.height()+2*r.y1),row:l};break;case nr:f.anchor={x:Math.ceil(r.x2)+u,y:c*(o||r.height()+2*r.y1),row:l};break;case Uo:f.anchor={y:Math.floor(i.y1)-u,row:Yn,x:c*(a||i.width()+2*i.x1),column:l};break;case Qi:f.anchor={y:Math.ceil(i.y2)+u,x:c*(a||i.width()+2*i.x1),column:l};break;case"top-left":f.anchor={x:u,y:u};break;case"top-right":f.anchor={x:a-u,y:u,column:Yn};break;case"bottom-left":f.anchor={x:u,y:o-u,row:Yn};break;case"bottom-right":f.anchor={x:a-u,y:o-u,column:Yn,row:Yn}}return f}function b4(t,n){var e,r,i=n.items[0],a=i.datum,o=i.orient,s=i.bounds,u=i.x,l=i.y;return i._bounds?i._bounds.clear().union(s):i._bounds=s.clone(),s.clear(),function(c,f,d){var h=f.padding,p=h-d.x,m=h-d.y;if(f.datum.title){var g=f.items[1].items[0],y=g.anchor,v=f.titlePadding||0,x=h-g.x,b=h-g.y;switch(g.orient){case tr:p+=Math.ceil(g.bounds.width())+v;break;case nr:case Qi:break;default:m+=g.bounds.height()+v}switch((p||m)&&_u(c,d,p,m),g.orient){case tr:b+=Wo(f,d,g,y,1,1);break;case nr:x+=Wo(f,d,g,Yn,0,0)+v,b+=Wo(f,d,g,y,1,1);break;case Qi:x+=Wo(f,d,g,y,0,0),b+=Wo(f,d,g,Yn,-1,0,1)+v;break;default:x+=Wo(f,d,g,y,0,0)}(x||b)&&_u(c,g,x,b),(x=Math.round(g.bounds.x1-h))<0&&(_u(c,d,-x,0),_u(c,g,-x,0))}else(p||m)&&_u(c,d,p,m)}(t,i,i.items[0].items[0]),s=function(c,f){return c.items.forEach(d=>f.union(d.bounds)),f.x1=c.padding,f.y1=c.padding,f}(i,s),e=2*i.padding,r=2*i.padding,s.empty()||(e=Math.ceil(s.width()+e),r=Math.ceil(s.height()+r)),a.type==="symbol"&&function(c){const f=c.reduce((d,h)=>(d[h.column]=Math.max(h.bounds.x2-h.x,d[h.column]||0),d),{});c.forEach(d=>{d.width=f[d.column],d.height=d.bounds.y2-d.y})}(i.items[0].items[0].items[0].items),o!==z0&&(i.x=u=0,i.y=l=0),i.width=e,i.height=r,ai(s.set(u,l,u+e,l+r),i),i.mark.bounds.clear().union(s),i}function Wo(t,n,e,r,i,a,o){const s=t.datum.type!=="symbol",u=e.datum.vgrad,l=(!s||!a&&u||o?n:n.items[0]).bounds[i?"y2":"x2"]-t.padding,c=u&&a?l:0,f=u&&a?0:l,d=i<=0?0:u0(e);return Math.round(r===E0?c:r===Yn?f-d:.5*(l-d))}function _u(t,n,e,r){n.x+=e,n.y+=r,n.bounds.translate(e,r),n.mark.bounds.translate(e,r),t.dirty(n)}function E_(t){O.call(this,null,t)}V(E_,O,{transform(t,n){const e=n.dataflow;return t.mark.items.forEach(r=>{t.layout&&m4(e,r,t.layout),function(i,a,o){var s,u,l,c,f,d=a.items,h=Math.max(0,a.width||0),p=Math.max(0,a.height||0),m=new cn().set(0,0,h,p),g=m.clone(),y=m.clone(),v=[];for(c=0,f=d.length;c<f;++c)switch((u=d[c]).role){case S0:(f4(u)?g:y).union(d4(i,u,h,p));break;case M0:s=u;break;case B0:v.push(b4(i,u));break;case s4:case u4:case i_:case a_:case o_:case s_:case u_:case l_:g.union(u.bounds),y.union(u.bounds);break;default:m.union(u.bounds)}if(v.length){const x={};v.forEach(b=>{(l=b.orient||nr)!==z0&&(x[l]||(x[l]=[])).push(b)});for(const b in x){const w=x[b];F_(i,w,v4(w,b,o.legends,g,y,h,p))}v.forEach(b=>{const w=b.bounds;if(w.equals(b._bounds)||(b.bounds=b._bounds,i.dirty(b),b.bounds=w,i.dirty(b)),!o.autosize||o.autosize.type!==c_&&o.autosize.type!==f_&&o.autosize.type!==d_)m.union(w);else switch(b.orient){case tr:case nr:m.add(w.x1,0).add(w.x2,0);break;case Uo:case Qi:m.add(0,w.y1).add(0,w.y2)}})}m.union(g).union(y),s&&m.union(function(x,b,w,A,_){var k,F=b.items[0],C=F.frame,D=F.orient,E=F.anchor,$=F.offset,M=F.padding,S=F.items[0].items[0],B=F.items[1]&&F.items[1].items[0],z=D===tr||D===nr?A:w,N=0,W=0,X=0,L=0,et=0;if(C!==rf?D===tr?(N=_.y2,z=_.y1):D===nr?(N=_.y1,z=_.y2):(N=_.x1,z=_.x2):D===tr&&(N=A,z=0),k=E===E0?N:E===Yn?z:(N+z)/2,B&&B.text){switch(D){case Uo:case Qi:et=S.bounds.height()+M;break;case tr:L=S.bounds.width()+M;break;case nr:L=-S.bounds.width()-M}Nn.clear().union(B.bounds),Nn.translate(L-(B.x||0),et-(B.y||0)),Io(B,"x",L)|Io(B,"y",et)&&(x.dirty(B),B.bounds.clear().union(Nn),B.mark.bounds.clear().union(Nn),x.dirty(B)),Nn.clear().union(B.bounds)}else Nn.clear();switch(Nn.union(S.bounds),D){case Uo:W=k,X=_.y1-Nn.height()-$;break;case tr:W=_.x1-Nn.width()-$,X=k;break;case nr:W=_.x2+Nn.width()+$,X=k;break;case Qi:W=k,X=_.y2+$;break;default:W=F.x,X=F.y}return Io(F,"x",W)|Io(F,"y",X)&&(Nn.translate(W,X),x.dirty(F),F.bounds.clear().union(Nn),b.bounds.clear().union(Nn),x.dirty(F)),F.bounds}(i,s,h,p,m)),a.clip&&m.set(0,0,a.width||0,a.height||0),function(x,b,w,A){const _=A.autosize||{},k=_.type;if(x._autosize<1||!k)return;let F=x._width,C=x._height,D=Math.max(0,b.width||0),E=Math.max(0,Math.ceil(-w.x1)),$=Math.max(0,b.height||0),M=Math.max(0,Math.ceil(-w.y1));const S=Math.max(0,Math.ceil(w.x2-D)),B=Math.max(0,Math.ceil(w.y2-$));if(_.contains===l4){const z=x.padding();F-=z.left+z.right,C-=z.top+z.bottom}k===z0?(E=0,M=0,D=F,$=C):k===c_?(D=Math.max(0,F-E-S),$=Math.max(0,C-M-B)):k===f_?(D=Math.max(0,F-E-S),C=$+M+B):k===d_?(F=D+E+S,$=Math.max(0,C-M-B)):k==="pad"&&(F=D+E+S,C=$+M+B),x._resizeView(F,C,D,$,[E,M],_.resize)}(i,a,m,o)}(e,r,t)}),function(r){return r&&r.mark.role!=="legend-entry"}(t.mark.group)?n.reflow():n}});const x4=Object.freeze(Object.defineProperty({__proto__:null,bound:h_,identifier:R0,mark:m_,overlap:g_,render:A_,viewlayout:E_},Symbol.toStringTag,{value:"Module"}));function $_(t){O.call(this,null,t)}function S_(t){O.call(this,null,t)}function w4(){return St({})}function M_(t){O.call(this,null,t)}function B_(t){O.call(this,[],t)}V($_,O,{transform(t,n){if(this.value&&!t.modified())return n.StopPropagation;var e=n.dataflow.locale(),r=n.fork(n.NO_SOURCE|n.NO_FIELDS),i=this.value,a=t.scale,o=Om(a,t.count==null?t.values?t.values.length:10:t.count,t.minstep),s=t.format||_w(e,a,o,t.formatSpecifier,t.formatType,!!t.values),u=t.values?Aw(a,t.values,o):Nm(a,o);return i&&(r.rem=i),i=u.map((l,c)=>St({index:c/(u.length-1||1),value:l,label:s(l)})),t.extra&&i.length&&i.push(St({index:-1,extra:{value:i[0].value},label:""})),r.source=i,r.add=i,this.value=i,r}}),V(S_,O,{transform(t,n){var e=n.dataflow,r=n.fork(n.NO_SOURCE|n.NO_FIELDS),i=t.item||w4,a=t.key||st,o=this.value;return P(r.encode)&&(r.encode=null),o&&(t.modified("key")||n.modified(a))&&j("DataJoin does not support modified key function or fields."),o||(n=n.addAll(),this.value=o=function(s){const u=Fo().test(l=>l.exit);return u.lookup=l=>u.get(s(l)),u}(a)),n.visit(n.ADD,s=>{const u=a(s);let l=o.get(u);l?l.exit?(o.empty--,r.add.push(l)):r.mod.push(l):(l=i(s),o.set(u,l),r.add.push(l)),l.datum=s,l.exit=!1}),n.visit(n.MOD,s=>{const u=a(s),l=o.get(u);l&&(l.datum=s,r.mod.push(l))}),n.visit(n.REM,s=>{const u=a(s),l=o.get(u);s!==l.datum||l.exit||(r.rem.push(l),l.exit=!0,++o.empty)}),n.changed(n.ADD_MOD)&&r.modifies("datum"),(n.clean()||t.clean&&o.empty>e.cleanThreshold)&&e.runAfter(o.clean),r}}),V(M_,O,{transform(t,n){var e=n.fork(n.ADD_REM),r=t.mod||!1,i=t.encoders,a=n.encode;if(P(a)){if(!e.changed()&&!a.every(f=>i[f]))return n.StopPropagation;a=a[0],e.encode=null}var o=a==="enter",s=i.update||Oi,u=i.enter||Oi,l=i.exit||Oi,c=(a&&!o?i[a]:s)||Oi;if(n.changed(n.ADD)&&(n.visit(n.ADD,f=>{u(f,t),s(f,t)}),e.modifies(u.output),e.modifies(s.output),c!==Oi&&c!==s&&(n.visit(n.ADD,f=>{c(f,t)}),e.modifies(c.output))),n.changed(n.REM)&&l!==Oi&&(n.visit(n.REM,f=>{l(f,t)}),e.modifies(l.output)),o||c!==Oi){const f=n.MOD|(t.modified()?n.REFLOW:0);o?(n.visit(f,d=>{const h=u(d,t)||r;(c(d,t)||h)&&e.mod.push(d)}),e.mod.length&&e.modifies(u.output)):n.visit(f,d=>{(c(d,t)||r)&&e.mod.push(d)}),e.mod.length&&e.modifies(c.output)}return e.changed()?e:n.StopPropagation}}),V(B_,O,{transform(t,n){if(this.value!=null&&!t.modified())return n.StopPropagation;var e,r,i,a,o,s=n.dataflow.locale(),u=n.fork(n.NO_SOURCE|n.NO_FIELDS),l=this.value,c=t.type||Ac,f=t.scale,d=+t.limit,h=Om(f,t.count==null?5:t.count,t.minstep),p=!!t.values||c===Ac,m=t.format||Cw(s,f,h,c,t.formatSpecifier,t.formatType,p),g=t.values||Fw(f,h);return l&&(u.rem=l),c===Ac?(d&&g.length>d?(n.dataflow.warn("Symbol legend count exceeds limit, filtering items."),l=g.slice(0,d-1),o=!0):l=g,bt(i=t.size)?(t.values||f(l[0])!==0||(l=l.slice(1)),a=l.reduce((y,v)=>Math.max(y,i(v,t)),0)):i=In(a=i||8),l=l.map((y,v)=>St({index:v,label:m(y,v,l),value:y,offset:a,size:i(y,t)})),o&&(o=g[l.length],l.push(St({index:l.length,label:`\u2026${g.length-l.length} entries`,value:o,offset:a,size:i(o,t)})))):c==="gradient"?(e=f.domain(),r=vw(f,e[0],Bt(e)),g.length<3&&!t.values&&e[0]!==Bt(e)&&(g=[e[0],Bt(e)]),l=g.map((y,v)=>St({index:v,label:m(y,v,g),value:y,perc:r(y)}))):(i=g.length-1,r=function(y){const v=y.domain(),x=v.length-1;let b=+v[0],w=+Bt(v),A=w-b;if(y.type===bc){const _=x?A/x:.1;b-=_,w+=_,A=w-b}return _=>(_-b)/A}(f),l=g.map((y,v)=>St({index:v,label:m(y,v,g),value:y,perc:v?r(y):0,perc2:v===i?1:r(g[v+1])}))),u.source=l,u.add=l,this.value=l,u}});const A4=t=>t.source.x,_4=t=>t.source.y,k4=t=>t.target.x,D4=t=>t.target.y;function T0(t){O.call(this,{},t)}T0.Definition={type:"LinkPath",metadata:{modifies:!0},params:[{name:"sourceX",type:"field",default:"source.x"},{name:"sourceY",type:"field",default:"source.y"},{name:"targetX",type:"field",default:"target.x"},{name:"targetY",type:"field",default:"target.y"},{name:"orient",type:"enum",default:"vertical",values:["horizontal","vertical","radial"]},{name:"shape",type:"enum",default:"line",values:["line","arc","curve","diagonal","orthogonal"]},{name:"require",type:"signal"},{name:"as",type:"string",default:"path"}]},V(T0,O,{transform(t,n){var e=t.sourceX||A4,r=t.sourceY||_4,i=t.targetX||k4,a=t.targetY||D4,o=t.as||"path",s=t.orient||"vertical",u=t.shape||"line",l=R_.get(u+"-"+s)||R_.get(u);return l||j("LinkPath unsupported type: "+t.shape+(t.orient?"-"+t.orient:"")),n.visit(n.SOURCE,c=>{c[o]=l(e(c),r(c),i(c),a(c))}),n.reflow(t.modified()).modifies(o)}});const z_=(t,n,e,r)=>"M"+t+","+n+"L"+e+","+r,O_=(t,n,e,r)=>{var i=e-t,a=r-n,o=Math.hypot(i,a)/2;return"M"+t+","+n+"A"+o+","+o+" "+180*Math.atan2(a,i)/Math.PI+" 0 1 "+e+","+r},N_=(t,n,e,r)=>{const i=e-t,a=r-n,o=.2*(i+a),s=.2*(a-i);return"M"+t+","+n+"C"+(t+o)+","+(n+s)+" "+(e+s)+","+(r-o)+" "+e+","+r},R_=Fo({line:z_,"line-radial":(t,n,e,r)=>z_(n*Math.cos(t),n*Math.sin(t),r*Math.cos(e),r*Math.sin(e)),arc:O_,"arc-radial":(t,n,e,r)=>O_(n*Math.cos(t),n*Math.sin(t),r*Math.cos(e),r*Math.sin(e)),curve:N_,"curve-radial":(t,n,e,r)=>N_(n*Math.cos(t),n*Math.sin(t),r*Math.cos(e),r*Math.sin(e)),"orthogonal-horizontal":(t,n,e,r)=>"M"+t+","+n+"V"+r+"H"+e,"orthogonal-vertical":(t,n,e,r)=>"M"+t+","+n+"H"+e+"V"+r,"orthogonal-radial":(t,n,e,r)=>{const i=Math.cos(t),a=Math.sin(t),o=Math.cos(e),s=Math.sin(e);return"M"+n*i+","+n*a+"A"+n+","+n+" 0 0,"+((Math.abs(e-t)>Math.PI?e<=t:e>t)?1:0)+" "+n*o+","+n*s+"L"+r*o+","+r*s},"diagonal-horizontal":(t,n,e,r)=>{const i=(t+e)/2;return"M"+t+","+n+"C"+i+","+n+" "+i+","+r+" "+e+","+r},"diagonal-vertical":(t,n,e,r)=>{const i=(n+r)/2;return"M"+t+","+n+"C"+t+","+i+" "+e+","+i+" "+e+","+r},"diagonal-radial":(t,n,e,r)=>{const i=Math.cos(t),a=Math.sin(t),o=Math.cos(e),s=Math.sin(e),u=(n+r)/2;return"M"+n*i+","+n*a+"C"+u*i+","+u*a+" "+u*o+","+u*s+" "+r*o+","+r*s}});function P0(t){O.call(this,null,t)}P0.Definition={type:"Pie",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"startAngle",type:"number",default:0},{name:"endAngle",type:"number",default:6.283185307179586},{name:"sort",type:"boolean",default:!1},{name:"as",type:"string",array:!0,length:2,default:["startAngle","endAngle"]}]},V(P0,O,{transform(t,n){var e,r,i,a=t.as||["startAngle","endAngle"],o=a[0],s=a[1],u=t.field||Gs,l=t.startAngle||0,c=t.endAngle!=null?t.endAngle:2*Math.PI,f=n.source,d=f.map(u),h=d.length,p=l,m=(c-l)/Jx(d),g=xe(h);for(t.sort&&g.sort((y,v)=>d[y]-d[v]),e=0;e<h;++e)i=d[g[e]],(r=f[g[e]])[o]=p,r[s]=p+=i*m;return this.value=d,n.reflow(t.modified()).modifies(a)}});function T_(t){return Sm(t)&&t!==Cr}const F4=Dr(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma"]);function P_(t){O.call(this,null,t),this.modified(!0)}function j_(t,n,e){return hw(t)&&Math.abs(n.reduce((r,i)=>r+(i<0?-1:i>0?1:0),0))!==n.length&&e.warn("Log scale domain includes zero: "+G(n)),n}function L_(t,n,e){return bt(t)&&(n||e)?gw(t,j0(n||[0,1],e)):t}function j0(t,n){return n?t.slice().reverse():t}function q_(t){O.call(this,null,t)}V(P_,O,{transform(t,n){var e=n.dataflow,r=this.value,i=function(a){var o,s=a.type,u="";return s===Cr?Cr+"-"+Bo:(function(l){const c=l.type;return Sm(c)&&c!==za&&c!==Oa&&(l.scheme||l.range&&l.range.length&&l.range.every(Q))}(a)&&(u=(o=a.rawDomain?a.rawDomain.length:a.domain?a.domain.length+ +(a.domainMid!=null):0)===2?Cr+"-":o===3?zo+"-":""),(u+s||Bo).toLowerCase())}(t);for(i in r&&i===r.type||(this.value=r=Dt(i)()),t)if(!F4[i]){if(i==="padding"&&T_(r.type))continue;bt(r[i])?r[i](t[i]):e.warn("Unsupported scale property: "+i)}return function(a,o,s){var u=a.type,l=o.round||!1,c=o.range;if(o.rangeStep!=null)c=function(f,d,h){f!==sw&&f!==Fm&&j("Only band and point scales support rangeStep.");var p=(d.paddingOuter!=null?d.paddingOuter:d.padding)||0,m=f===Fm?1:(d.paddingInner!=null?d.paddingInner:d.padding)||0;return[0,d.rangeStep*km(h,m,p)]}(u,o,s);else if(o.scheme&&(c=function(f,d,h){var p,m=d.schemeExtent;return P(d.scheme)?p=wc(d.scheme,d.interpolate,d.interpolateGamma):(p=zm(d.scheme.toLowerCase()))||j(`Unrecognized scheme name: ${d.scheme}`),h=f===bc?h+1:f===Cm?h-1:f===Oo||f===vc?+d.schemeCount||5:h,pw(f)?L_(p,m,d.reverse):bt(p)?yw(L_(p,m),h):f===Dm?p:p.slice(0,h)}(u,o,s),bt(c))){if(a.interpolator)return a.interpolator(c);j(`Scale type ${u} does not support interpolating color schemes.`)}if(c&&pw(u))return a.interpolator(wc(j0(c,o.reverse),o.interpolate,o.interpolateGamma));c&&o.interpolate&&a.interpolate?a.interpolate(Bm(o.interpolate,o.interpolateGamma)):bt(a.round)?a.round(l):bt(a.rangeRound)&&a.interpolate(l?Xl:Vs),c&&a.range(j0(c,o.reverse))}(r,t,function(a,o,s){let u=o.bins;if(u&&!P(u)){const l=a.domain(),c=l[0],f=Bt(l),d=u.step;let h=u.start==null?c:u.start,p=u.stop==null?f:u.stop;d||j("Scale bins parameter missing step property."),h<c&&(h=d*Math.ceil(c/d)),p>f&&(p=d*Math.floor(f/d)),u=xe(h,p+d/2,d)}return u?a.bins=u:a.bins&&delete a.bins,a.type===Cm&&(u?o.domain||o.domainRaw||(a.domain(u),s=u.length):a.bins=a.domain()),s}(r,t,function(a,o,s){const u=function(p,m,g){return m?(p.domain(j_(p.type,m,g)),m.length):-1}(a,o.domainRaw,s);if(u>-1)return u;var l,c,f=o.domain,d=a.type,h=o.zero||o.zero===void 0&&function(p){const m=p.type;return!p.bins&&(m===Bo||m===ru||m===iu)}(a);if(!f)return 0;if((h||o.domainMin!=null||o.domainMax!=null||o.domainMid!=null)&&(l=(f=f.slice()).length-1||1,h&&(f[0]>0&&(f[0]=0),f[l]<0&&(f[l]=0)),o.domainMin!=null&&(f[0]=o.domainMin),o.domainMax!=null&&(f[l]=o.domainMax),o.domainMid!=null)){const p=(c=o.domainMid)>f[l]?l+1:c<f[0]?0:l;p!==l&&s.warn("Scale domainMid exceeds domain min or max.",c),f.splice(p,0,c)}return T_(d)&&o.padding&&f[0]!==Bt(f)&&(f=function(p,m,g,y,v,x){var b=Math.abs(Bt(g)-g[0]),w=b/(b-2*y),A=p===ri?ap(m,null,w):p===iu?Vl(m,null,w,.5):p===ru?Vl(m,null,w,v||1):p===yc?op(m,null,w,x||1):sp(m,null,w);return m=m.slice(),m[0]=A[0],m[m.length-1]=A[1],m}(d,f,o.range,o.padding,o.exponent,o.constant)),a.domain(j_(d,f,s)),d===Dm&&a.unknown(o.domainImplicit?S8:void 0),o.nice&&a.nice&&a.nice(o.nice!==!0&&Om(a,o.nice)||null),f.length}(r,t,e))),n.fork(n.NO_SOURCE|n.NO_FIELDS)}}),V(q_,O,{transform(t,n){const e=t.modified("sort")||n.changed(n.ADD)||n.modified(t.sort.fields)||n.modified("datum");return e&&n.source.sort(Sa(t.sort)),this.modified(e),n}});const U_="zero",I_="center",W_="normalize",H_=["y0","y1"];function L0(t){O.call(this,null,t)}function C4(t,n,e,r,i){for(var a,o=(n-t.sum)/2,s=t.length,u=0;u<s;++u)(a=t[u])[r]=o,a[i]=o+=Math.abs(e(a))}function E4(t,n,e,r,i){for(var a,o=1/t.sum,s=0,u=t.length,l=0,c=0;l<u;++l)(a=t[l])[r]=s,a[i]=s=o*(c+=Math.abs(e(a)))}function $4(t,n,e,r,i){for(var a,o,s=0,u=0,l=t.length,c=0;c<l;++c)(a=+e(o=t[c]))<0?(o[r]=u,o[i]=u+=a):(o[r]=s,o[i]=s+=a)}L0.Definition={type:"Stack",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"groupby",type:"field",array:!0},{name:"sort",type:"compare"},{name:"offset",type:"enum",default:U_,values:[U_,I_,W_]},{name:"as",type:"string",array:!0,length:2,default:H_}]},V(L0,O,{transform(t,n){var e,r,i,a,o=t.as||H_,s=o[0],u=o[1],l=Sa(t.sort),c=t.field||Gs,f=t.offset===I_?C4:t.offset===W_?E4:$4;for(e=function(d,h,p,m){var g,y,v,x,b,w,A,_,k,F=[],C=D=>D(b);if(h==null)F.push(d.slice());else for(g={},y=0,v=d.length;y<v;++y)b=d[y],(A=g[w=h.map(C)])||(g[w]=A=[],F.push(A)),A.push(b);for(w=0,k=0,x=F.length;w<x;++w){for(y=0,_=0,v=(A=F[w]).length;y<v;++y)_+=Math.abs(m(A[y]));A.sum=_,_>k&&(k=_),p&&A.sort(p)}return F.max=k,F}(n.source,t.groupby,l,c),r=0,i=e.length,a=e.max;r<i;++r)f(e[r],a,c,s,u);return n.reflow(t.modified()).modifies(o)}});const S4=Object.freeze(Object.defineProperty({__proto__:null,axisticks:$_,datajoin:S_,encode:M_,legendentries:B_,linkpath:T0,pie:P0,scale:P_,sortitems:q_,stack:L0},Symbol.toStringTag,{value:"Module"}));var dt=1e-6,q0=1e-12,yt=Math.PI,rn=yt/2,lf=yt/4,Xn=2*yt,on=180/yt,gt=yt/180,At=Math.abs,Ho=Math.atan,je=Math.atan2,ct=Math.cos,cf=Math.ceil,G_=Math.exp,U0=Math.hypot,ff=Math.log,I0=Math.pow,ut=Math.sin,Le=Math.sign||function(t){return t>0?1:t<0?-1:0},Jn=Math.sqrt,W0=Math.tan;function V_(t){return t>1?0:t<-1?yt:Math.acos(t)}function le(t){return t>1?rn:t<-1?-rn:Math.asin(t)}function Dn(){}function df(t,n){t&&X_.hasOwnProperty(t.type)&&X_[t.type](t,n)}var Y_={Feature:function(t,n){df(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)df(e[r].geometry,n)}},X_={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){H0(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)H0(e[r],n,0)},Polygon:function(t,n){J_(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)J_(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)df(e[r],n)}};function H0(t,n,e){var r,i=-1,a=t.length-e;for(n.lineStart();++i<a;)r=t[i],n.point(r[0],r[1],r[2]);n.lineEnd()}function J_(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)H0(t[e],n,1);n.polygonEnd()}function si(t,n){t&&Y_.hasOwnProperty(t.type)?Y_[t.type](t,n):df(t,n)}var K_,Q_,G0,V0,Y0,Kt,ce,an,_e,Ua,Z_,tk,Go,ku,na,ui,hf=new Gn,pf=new Gn,Mr={point:Dn,lineStart:Dn,lineEnd:Dn,polygonStart:function(){hf=new Gn,Mr.lineStart=M4,Mr.lineEnd=B4},polygonEnd:function(){var t=+hf;pf.add(t<0?Xn+t:t),this.lineStart=this.lineEnd=this.point=Dn},sphere:function(){pf.add(Xn)}};function M4(){Mr.point=z4}function B4(){nk(K_,Q_)}function z4(t,n){Mr.point=nk,K_=t,Q_=n,G0=t*=gt,V0=ct(n=(n*=gt)/2+lf),Y0=ut(n)}function nk(t,n){var e=(t*=gt)-G0,r=e>=0?1:-1,i=r*e,a=ct(n=(n*=gt)/2+lf),o=ut(n),s=Y0*o,u=V0*a+s*ct(i),l=s*r*ut(i);hf.add(je(l,u)),G0=t,V0=a,Y0=o}function mf(t){return[je(t[1],t[0]),le(t[2])]}function Ia(t){var n=t[0],e=t[1],r=ct(e);return[r*ct(n),r*ut(n),ut(e)]}function gf(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function Vo(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function X0(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function yf(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function vf(t){var n=Jn(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}var Du,bf,xf,wf,Af,_f,kf,Df,J0,K0,Q0,ek,rk,Kn,Qn,Zn,li={point:Z0,lineStart:ak,lineEnd:ok,polygonStart:function(){li.point=sk,li.lineStart=O4,li.lineEnd=N4,ku=new Gn,Mr.polygonStart()},polygonEnd:function(){Mr.polygonEnd(),li.point=Z0,li.lineStart=ak,li.lineEnd=ok,hf<0?(Kt=-(an=180),ce=-(_e=90)):ku>dt?_e=90:ku<-1e-6&&(ce=-90),ui[0]=Kt,ui[1]=an},sphere:function(){Kt=-(an=180),ce=-(_e=90)}};function Z0(t,n){na.push(ui=[Kt=t,an=t]),n<ce&&(ce=n),n>_e&&(_e=n)}function ik(t,n){var e=Ia([t*gt,n*gt]);if(Go){var r=Vo(Go,e),i=Vo([r[1],-r[0],0],r);vf(i),i=mf(i);var a,o=t-Ua,s=o>0?1:-1,u=i[0]*on*s,l=At(o)>180;l^(s*Ua<u&&u<s*t)?(a=i[1]*on)>_e&&(_e=a):l^(s*Ua<(u=(u+360)%360-180)&&u<s*t)?(a=-i[1]*on)<ce&&(ce=a):(n<ce&&(ce=n),n>_e&&(_e=n)),l?t<Ua?ke(Kt,t)>ke(Kt,an)&&(an=t):ke(t,an)>ke(Kt,an)&&(Kt=t):an>=Kt?(t<Kt&&(Kt=t),t>an&&(an=t)):t>Ua?ke(Kt,t)>ke(Kt,an)&&(an=t):ke(t,an)>ke(Kt,an)&&(Kt=t)}else na.push(ui=[Kt=t,an=t]);n<ce&&(ce=n),n>_e&&(_e=n),Go=e,Ua=t}function ak(){li.point=ik}function ok(){ui[0]=Kt,ui[1]=an,li.point=Z0,Go=null}function sk(t,n){if(Go){var e=t-Ua;ku.add(At(e)>180?e+(e>0?360:-360):e)}else Z_=t,tk=n;Mr.point(t,n),ik(t,n)}function O4(){Mr.lineStart()}function N4(){sk(Z_,tk),Mr.lineEnd(),At(ku)>dt&&(Kt=-(an=180)),ui[0]=Kt,ui[1]=an,Go=null}function ke(t,n){return(n-=t)<0?n+360:n}function R4(t,n){return t[0]-n[0]}function uk(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var er={sphere:Dn,point:tg,lineStart:lk,lineEnd:ck,polygonStart:function(){er.lineStart=j4,er.lineEnd=L4},polygonEnd:function(){er.lineStart=lk,er.lineEnd=ck}};function tg(t,n){t*=gt;var e=ct(n*=gt);Fu(e*ct(t),e*ut(t),ut(n))}function Fu(t,n,e){++Du,xf+=(t-xf)/Du,wf+=(n-wf)/Du,Af+=(e-Af)/Du}function lk(){er.point=T4}function T4(t,n){t*=gt;var e=ct(n*=gt);Kn=e*ct(t),Qn=e*ut(t),Zn=ut(n),er.point=P4,Fu(Kn,Qn,Zn)}function P4(t,n){t*=gt;var e=ct(n*=gt),r=e*ct(t),i=e*ut(t),a=ut(n),o=je(Jn((o=Qn*a-Zn*i)*o+(o=Zn*r-Kn*a)*o+(o=Kn*i-Qn*r)*o),Kn*r+Qn*i+Zn*a);bf+=o,_f+=o*(Kn+(Kn=r)),kf+=o*(Qn+(Qn=i)),Df+=o*(Zn+(Zn=a)),Fu(Kn,Qn,Zn)}function ck(){er.point=tg}function j4(){er.point=q4}function L4(){fk(ek,rk),er.point=tg}function q4(t,n){ek=t,rk=n,t*=gt,n*=gt,er.point=fk;var e=ct(n);Kn=e*ct(t),Qn=e*ut(t),Zn=ut(n),Fu(Kn,Qn,Zn)}function fk(t,n){t*=gt;var e=ct(n*=gt),r=e*ct(t),i=e*ut(t),a=ut(n),o=Qn*a-Zn*i,s=Zn*r-Kn*a,u=Kn*i-Qn*r,l=U0(o,s,u),c=le(l),f=l&&-c/l;J0.add(f*o),K0.add(f*s),Q0.add(f*u),bf+=c,_f+=c*(Kn+(Kn=r)),kf+=c*(Qn+(Qn=i)),Df+=c*(Zn+(Zn=a)),Fu(Kn,Qn,Zn)}function ng(t,n){function e(r,i){return r=t(r,i),n(r[0],r[1])}return t.invert&&n.invert&&(e.invert=function(r,i){return(r=n.invert(r,i))&&t.invert(r[0],r[1])}),e}function eg(t,n){return At(t)>yt&&(t-=Math.round(t/Xn)*Xn),[t,n]}function dk(t,n,e){return(t%=Xn)?n||e?ng(pk(t),mk(n,e)):pk(t):n||e?mk(n,e):eg}function hk(t){return function(n,e){return At(n+=t)>yt&&(n-=Math.round(n/Xn)*Xn),[n,e]}}function pk(t){var n=hk(t);return n.invert=hk(-t),n}function mk(t,n){var e=ct(t),r=ut(t),i=ct(n),a=ut(n);function o(s,u){var l=ct(u),c=ct(s)*l,f=ut(s)*l,d=ut(u),h=d*e+c*r;return[je(f*i-h*a,c*e-d*r),le(h*i+f*a)]}return o.invert=function(s,u){var l=ct(u),c=ct(s)*l,f=ut(s)*l,d=ut(u),h=d*i-f*a;return[je(f*i+d*a,c*e+h*r),le(h*e-c*r)]},o}function gk(t,n){(n=Ia(n))[0]-=t,vf(n);var e=V_(-n[1]);return((-n[2]<0?-e:e)+Xn-dt)%Xn}function yk(){var t,n=[];return{point:function(e,r,i){t.push([e,r,i])},lineStart:function(){n.push(t=[])},lineEnd:Dn,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}}function Ff(t,n){return At(t[0]-n[0])<dt&&At(t[1]-n[1])<dt}function Cf(t,n,e,r){this.x=t,this.z=n,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function vk(t,n,e,r,i){var a,o,s=[],u=[];if(t.forEach(function(p){if(!((m=p.length-1)<=0)){var m,g,y=p[0],v=p[m];if(Ff(y,v)){if(!y[2]&&!v[2]){for(i.lineStart(),a=0;a<m;++a)i.point((y=p[a])[0],y[1]);return void i.lineEnd()}v[0]+=2e-6}s.push(g=new Cf(y,p,null,!0)),u.push(g.o=new Cf(y,null,g,!1)),s.push(g=new Cf(v,p,null,!1)),u.push(g.o=new Cf(v,null,g,!0))}}),s.length){for(u.sort(n),bk(s),bk(u),a=0,o=u.length;a<o;++a)u[a].e=e=!e;for(var l,c,f=s[0];;){for(var d=f,h=!0;d.v;)if((d=d.n)===f)return;l=d.z,i.lineStart();do{if(d.v=d.o.v=!0,d.e){if(h)for(a=0,o=l.length;a<o;++a)i.point((c=l[a])[0],c[1]);else r(d.x,d.n.x,1,i);d=d.n}else{if(h)for(l=d.p.z,a=l.length-1;a>=0;--a)i.point((c=l[a])[0],c[1]);else r(d.x,d.p.x,-1,i);d=d.p}l=(d=d.o).z,h=!h}while(!d.v);i.lineEnd()}}}function bk(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r<n;)i.n=e=t[r],e.p=i,i=e;i.n=e=t[0],e.p=i}}function rg(t){return At(t[0])<=yt?t[0]:Le(t[0])*((At(t[0])+yt)%Xn-yt)}function xk(t,n,e,r){return function(i){var a,o,s,u=n(i),l=yk(),c=n(l),f=!1,d={point:h,lineStart:m,lineEnd:g,polygonStart:function(){d.point=y,d.lineStart=v,d.lineEnd=x,o=[],a=[]},polygonEnd:function(){d.point=h,d.lineStart=m,d.lineEnd=g,o=Xx(o);var b=function(w,A){var _=rg(A),k=A[1],F=ut(k),C=[ut(_),-ct(_),0],D=0,E=0,$=new Gn;F===1?k=rn+dt:F===-1&&(k=-rn-dt);for(var M=0,S=w.length;M<S;++M)if(z=(B=w[M]).length)for(var B,z,N=B[z-1],W=rg(N),X=N[1]/2+lf,L=ut(X),et=ct(X),ot=0;ot<z;++ot,W=mt,L=J,et=Mt,N=nt){var nt=B[ot],mt=rg(nt),pt=nt[1]/2+lf,J=ut(pt),Mt=ct(pt),Tt=mt-W,kt=Tt>=0?1:-1,Et=kt*Tt,tn=Et>yt,nn=L*J;if($.add(je(nn*kt*ut(Et),et*Mt+nn*ct(Et))),D+=tn?Tt+kt*Xn:Tt,tn^W>=_^mt>=_){var It=Vo(Ia(N),Ia(nt));vf(It);var be=Vo(C,It);vf(be);var zn=(tn^Tt>=0?-1:1)*le(be[2]);(k>zn||k===zn&&(It[0]||It[1]))&&(E+=tn^Tt>=0?1:-1)}}return(D<-1e-6||D<dt&&$<-1e-12)^1&E}(a,r);o.length?(f||(i.polygonStart(),f=!0),vk(o,I4,b,e,i)):b&&(f||(i.polygonStart(),f=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),f&&(i.polygonEnd(),f=!1),o=a=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function h(b,w){t(b,w)&&i.point(b,w)}function p(b,w){u.point(b,w)}function m(){d.point=p,u.lineStart()}function g(){d.point=h,u.lineEnd()}function y(b,w){s.push([b,w]),c.point(b,w)}function v(){c.lineStart(),s=[]}function x(){y(s[0][0],s[0][1]),c.lineEnd();var b,w,A,_,k=c.clean(),F=l.result(),C=F.length;if(s.pop(),a.push(s),s=null,C)if(1&k){if((w=(A=F[0]).length-1)>0){for(f||(i.polygonStart(),f=!0),i.lineStart(),b=0;b<w;++b)i.point((_=A[b])[0],_[1]);i.lineEnd()}}else C>1&&2&k&&F.push(F.pop().concat(F.shift())),o.push(F.filter(U4))}return d}}function U4(t){return t.length>1}function I4(t,n){return((t=t.x)[0]<0?t[1]-rn-dt:rn-t[1])-((n=n.x)[0]<0?n[1]-rn-dt:rn-n[1])}eg.invert=eg;const wk=xk(function(){return!0},function(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(a,o){var s=a>0?yt:-yt,u=At(a-e);At(u-yt)<dt?(t.point(e,r=(r+o)/2>0?rn:-rn),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(s,r),t.point(a,r),n=0):i!==s&&u>=yt&&(At(e-i)<dt&&(e-=i*dt),At(a-s)<dt&&(a-=s*dt),r=function(l,c,f,d){var h,p,m=ut(l-f);return At(m)>dt?Ho((ut(c)*(p=ct(d))*ut(f)-ut(d)*(h=ct(c))*ut(l))/(h*p*m)):(c+d)/2}(e,r,a,o),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(s,r),n=0),t.point(e=a,r=o),i=s},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}},function(t,n,e,r){var i;if(t==null)i=e*rn,r.point(-yt,i),r.point(0,i),r.point(yt,i),r.point(yt,0),r.point(yt,-i),r.point(0,-i),r.point(-yt,-i),r.point(-yt,0),r.point(-yt,i);else if(At(t[0]-n[0])>dt){var a=t[0]<n[0]?yt:-yt;i=e*a/2,r.point(-a,i),r.point(0,i),r.point(a,i)}else r.point(n[0],n[1])},[-yt,-rn]);function W4(t){var n=ct(t),e=2*gt,r=n>0,i=At(n)>dt;function a(u,l){return ct(u)*ct(l)>n}function o(u,l,c){var f=[1,0,0],d=Vo(Ia(u),Ia(l)),h=gf(d,d),p=d[0],m=h-p*p;if(!m)return!c&&u;var g=n*h/m,y=-n*p/m,v=Vo(f,d),x=yf(f,g);X0(x,yf(d,y));var b=v,w=gf(x,b),A=gf(b,b),_=w*w-A*(gf(x,x)-1);if(!(_<0)){var k=Jn(_),F=yf(b,(-w-k)/A);if(X0(F,x),F=mf(F),!c)return F;var C,D=u[0],E=l[0],$=u[1],M=l[1];E<D&&(C=D,D=E,E=C);var S=E-D,B=At(S-yt)<dt;if(!B&&M<$&&(C=$,$=M,M=C),B||S<dt?B?$+M>0^F[1]<(At(F[0]-D)<dt?$:M):$<=F[1]&&F[1]<=M:S>yt^(D<=F[0]&&F[0]<=E)){var z=yf(b,(-w+k)/A);return X0(z,x),[F,mf(z)]}}}function s(u,l){var c=r?t:yt-t,f=0;return u<-c?f|=1:u>c&&(f|=2),l<-c?f|=4:l>c&&(f|=8),f}return xk(a,function(u){var l,c,f,d,h;return{lineStart:function(){d=f=!1,h=1},point:function(p,m){var g,y=[p,m],v=a(p,m),x=r?v?0:s(p,m):v?s(p+(p<0?yt:-yt),m):0;if(!l&&(d=f=v)&&u.lineStart(),v!==f&&(!(g=o(l,y))||Ff(l,g)||Ff(y,g))&&(y[2]=1),v!==f)h=0,v?(u.lineStart(),g=o(y,l),u.point(g[0],g[1])):(g=o(l,y),u.point(g[0],g[1],2),u.lineEnd()),l=g;else if(i&&l&&r^v){var b;x&c||!(b=o(y,l,!0))||(h=0,r?(u.lineStart(),u.point(b[0][0],b[0][1]),u.point(b[1][0],b[1][1]),u.lineEnd()):(u.point(b[1][0],b[1][1]),u.lineEnd(),u.lineStart(),u.point(b[0][0],b[0][1],3)))}!v||l&&Ff(l,y)||u.point(y[0],y[1]),l=y,f=v,c=x},lineEnd:function(){f&&u.lineEnd(),l=null},clean:function(){return h|(d&&f)<<1}}},function(u,l,c,f){(function(d,h,p,m,g,y){if(p){var v=ct(h),x=ut(h),b=m*p;g==null?(g=h+m*Xn,y=h-b/2):(g=gk(v,g),y=gk(v,y),(m>0?g<y:g>y)&&(g+=m*Xn));for(var w,A=g;m>0?A>y:A<y;A-=b)w=mf([v,-x*ct(A),-x*ut(A)]),d.point(w[0],w[1])}})(f,t,e,c,u,l)},r?[0,-t]:[-yt,t-yt])}var Ef=1e9,$f=-1e9;function Ak(t,n,e,r){function i(l,c){return t<=l&&l<=e&&n<=c&&c<=r}function a(l,c,f,d){var h=0,p=0;if(l==null||(h=o(l,f))!==(p=o(c,f))||u(l,c)<0^f>0)do d.point(h===0||h===3?t:e,h>1?r:n);while((h=(h+f+4)%4)!==p);else d.point(c[0],c[1])}function o(l,c){return At(l[0]-t)<dt?c>0?0:3:At(l[0]-e)<dt?c>0?2:1:At(l[1]-n)<dt?c>0?1:0:c>0?3:2}function s(l,c){return u(l.x,c.x)}function u(l,c){var f=o(l,1),d=o(c,1);return f!==d?f-d:f===0?c[1]-l[1]:f===1?l[0]-c[0]:f===2?l[1]-c[1]:c[0]-l[0]}return function(l){var c,f,d,h,p,m,g,y,v,x,b,w=l,A=yk(),_={point:k,lineStart:function(){_.point=F,f&&f.push(d=[]),x=!0,v=!1,g=y=NaN},lineEnd:function(){c&&(F(h,p),m&&v&&A.rejoin(),c.push(A.result())),_.point=k,v&&w.lineEnd()},polygonStart:function(){w=A,c=[],f=[],b=!0},polygonEnd:function(){var C=function(){for(var $=0,M=0,S=f.length;M<S;++M)for(var B,z,N=f[M],W=1,X=N.length,L=N[0],et=L[0],ot=L[1];W<X;++W)B=et,z=ot,et=(L=N[W])[0],ot=L[1],z<=r?ot>r&&(et-B)*(r-z)>(ot-z)*(t-B)&&++$:ot<=r&&(et-B)*(r-z)<(ot-z)*(t-B)&&--$;return $}(),D=b&&C,E=(c=Xx(c)).length;(D||E)&&(l.polygonStart(),D&&(l.lineStart(),a(null,null,1,l),l.lineEnd()),E&&vk(c,s,C,a,l),l.polygonEnd()),w=l,c=f=d=null}};function k(C,D){i(C,D)&&w.point(C,D)}function F(C,D){var E=i(C,D);if(f&&d.push([C,D]),x)h=C,p=D,m=E,x=!1,E&&(w.lineStart(),w.point(C,D));else if(E&&v)w.point(C,D);else{var $=[g=Math.max($f,Math.min(Ef,g)),y=Math.max($f,Math.min(Ef,y))],M=[C=Math.max($f,Math.min(Ef,C)),D=Math.max($f,Math.min(Ef,D))];(function(S,B,z,N,W,X){var L,et=S[0],ot=S[1],nt=0,mt=1,pt=B[0]-et,J=B[1]-ot;if(L=z-et,pt||!(L>0)){if(L/=pt,pt<0){if(L<nt)return;L<mt&&(mt=L)}else if(pt>0){if(L>mt)return;L>nt&&(nt=L)}if(L=W-et,pt||!(L<0)){if(L/=pt,pt<0){if(L>mt)return;L>nt&&(nt=L)}else if(pt>0){if(L<nt)return;L<mt&&(mt=L)}if(L=N-ot,J||!(L>0)){if(L/=J,J<0){if(L<nt)return;L<mt&&(mt=L)}else if(J>0){if(L>mt)return;L>nt&&(nt=L)}if(L=X-ot,J||!(L<0)){if(L/=J,J<0){if(L>mt)return;L>nt&&(nt=L)}else if(J>0){if(L<nt)return;L<mt&&(mt=L)}return nt>0&&(S[0]=et+nt*pt,S[1]=ot+nt*J),mt<1&&(B[0]=et+mt*pt,B[1]=ot+mt*J),!0}}}}})($,M,t,n,e,r)?(v||(w.lineStart(),w.point($[0],$[1])),w.point(M[0],M[1]),E||w.lineEnd(),b=!1):E&&(w.lineStart(),w.point(C,D),b=!1)}g=C,y=D,v=E}return _}}function _k(t,n,e){var r=xe(t,n-dt,e).concat(n);return function(i){return r.map(function(a){return[i,a]})}}function kk(t,n,e){var r=xe(t,n-dt,e).concat(n);return function(i){return r.map(function(a){return[a,i]})}}const Cu=t=>t;var Dk,Fk,ig,ag,og=new Gn,sg=new Gn,ci={point:Dn,lineStart:Dn,lineEnd:Dn,polygonStart:function(){ci.lineStart=H4,ci.lineEnd=V4},polygonEnd:function(){ci.lineStart=ci.lineEnd=ci.point=Dn,og.add(At(sg)),sg=new Gn},result:function(){var t=og/2;return og=new Gn,t}};function H4(){ci.point=G4}function G4(t,n){ci.point=Ck,Dk=ig=t,Fk=ag=n}function Ck(t,n){sg.add(ag*t-ig*n),ig=t,ag=n}function V4(){Ck(Dk,Fk)}var Yo=1/0,Sf=Yo,Eu=-Yo,Mf=Eu,Bf={point:function(t,n){t<Yo&&(Yo=t),t>Eu&&(Eu=t),n<Sf&&(Sf=n),n>Mf&&(Mf=n)},lineStart:Dn,lineEnd:Dn,polygonStart:Dn,polygonEnd:Dn,result:function(){var t=[[Yo,Sf],[Eu,Mf]];return Eu=Mf=-(Sf=Yo=1/0),t}},Ek,$k,Br,zr,ug=0,lg=0,$u=0,zf=0,Of=0,Xo=0,cg=0,fg=0,Su=0,qe={point:Wa,lineStart:Sk,lineEnd:Mk,polygonStart:function(){qe.lineStart=J4,qe.lineEnd=K4},polygonEnd:function(){qe.point=Wa,qe.lineStart=Sk,qe.lineEnd=Mk},result:function(){var t=Su?[cg/Su,fg/Su]:Xo?[zf/Xo,Of/Xo]:$u?[ug/$u,lg/$u]:[NaN,NaN];return ug=lg=$u=zf=Of=Xo=cg=fg=Su=0,t}};function Wa(t,n){ug+=t,lg+=n,++$u}function Sk(){qe.point=Y4}function Y4(t,n){qe.point=X4,Wa(Br=t,zr=n)}function X4(t,n){var e=t-Br,r=n-zr,i=Jn(e*e+r*r);zf+=i*(Br+t)/2,Of+=i*(zr+n)/2,Xo+=i,Wa(Br=t,zr=n)}function Mk(){qe.point=Wa}function J4(){qe.point=Q4}function K4(){Bk(Ek,$k)}function Q4(t,n){qe.point=Bk,Wa(Ek=Br=t,$k=zr=n)}function Bk(t,n){var e=t-Br,r=n-zr,i=Jn(e*e+r*r);zf+=i*(Br+t)/2,Of+=i*(zr+n)/2,Xo+=i,cg+=(i=zr*t-Br*n)*(Br+t),fg+=i*(zr+n),Su+=3*i,Wa(Br=t,zr=n)}function zk(t){this._context=t}zk.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,Xn)}},result:Dn};var dg,Ok,Nk,Mu,Bu,hg=new Gn,zu={point:Dn,lineStart:function(){zu.point=Z4},lineEnd:function(){dg&&Rk(Ok,Nk),zu.point=Dn},polygonStart:function(){dg=!0},polygonEnd:function(){dg=null},result:function(){var t=+hg;return hg=new Gn,t}};function Z4(t,n){zu.point=Rk,Ok=Mu=t,Nk=Bu=n}function Rk(t,n){Mu-=t,Bu-=n,hg.add(Jn(Mu*Mu+Bu*Bu)),Mu=t,Bu=n}let Tk,Nf,Pk,jk;class Lk{constructor(n){this._append=n==null?qk:function(e){const r=Math.floor(e);if(!(r>=0))throw new RangeError(`invalid digits: ${e}`);if(r>15)return qk;if(r!==Tk){const i=10**r;Tk=r,Nf=function(a){let o=1;this._+=a[0];for(const s=a.length;o<s;++o)this._+=Math.round(arguments[o]*i)/i+a[o]}}return Nf}(n),this._radius=4.5,this._=""}pointRadius(n){return this._radius=+n,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){this._line===0&&(this._+="Z"),this._point=NaN}point(n,e){switch(this._point){case 0:this._append`M${n},${e}`,this._point=1;break;case 1:this._append`L${n},${e}`;break;default:if(this._append`M${n},${e}`,this._radius!==Pk||this._append!==Nf){const r=this._radius,i=this._;this._="",this._append`m0,${r}a${r},${r} 0 1,1 0,${-2*r}a${r},${r} 0 1,1 0,${2*r}z`,Pk=r,Nf=this._append,jk=this._,this._=i}this._+=jk}}result(){const n=this._;return this._="",n.length?n:null}}function qk(t){let n=1;this._+=t[0];for(const e=t.length;n<e;++n)this._+=arguments[n]+t[n]}function Uk(t,n){let e,r,i=3,a=4.5;function o(s){return s&&(typeof a=="function"&&r.pointRadius(+a.apply(this,arguments)),si(s,e(r))),r.result()}return o.area=function(s){return si(s,e(ci)),ci.result()},o.measure=function(s){return si(s,e(zu)),zu.result()},o.bounds=function(s){return si(s,e(Bf)),Bf.result()},o.centroid=function(s){return si(s,e(qe)),qe.result()},o.projection=function(s){return arguments.length?(e=s==null?(t=null,Cu):(t=s).stream,o):t},o.context=function(s){return arguments.length?(r=s==null?(n=null,new Lk(i)):new zk(n=s),typeof a!="function"&&r.pointRadius(a),o):n},o.pointRadius=function(s){return arguments.length?(a=typeof s=="function"?s:(r.pointRadius(+s),+s),o):a},o.digits=function(s){if(!arguments.length)return i;if(s==null)i=null;else{const u=Math.floor(s);if(!(u>=0))throw new RangeError(`invalid digits: ${s}`);i=u}return n===null&&(r=new Lk(i)),o},o.projection(t).digits(i).context(n)}function Rf(t){return function(n){var e=new pg;for(var r in t)e[r]=t[r];return e.stream=n,e}}function pg(){}function mg(t,n,e){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),r!=null&&t.clipExtent(null),si(e,t.stream(Bf)),n(Bf.result()),r!=null&&t.clipExtent(r),t}function Tf(t,n,e){return mg(t,function(r){var i=n[1][0]-n[0][0],a=n[1][1]-n[0][1],o=Math.min(i/(r[1][0]-r[0][0]),a/(r[1][1]-r[0][1])),s=+n[0][0]+(i-o*(r[1][0]+r[0][0]))/2,u=+n[0][1]+(a-o*(r[1][1]+r[0][1]))/2;t.scale(150*o).translate([s,u])},e)}function gg(t,n,e){return Tf(t,[[0,0],n],e)}function yg(t,n,e){return mg(t,function(r){var i=+n,a=i/(r[1][0]-r[0][0]),o=(i-a*(r[1][0]+r[0][0]))/2,s=-a*r[0][1];t.scale(150*a).translate([o,s])},e)}function vg(t,n,e){return mg(t,function(r){var i=+n,a=i/(r[1][1]-r[0][1]),o=-a*r[0][0],s=(i-a*(r[1][1]+r[0][1]))/2;t.scale(150*a).translate([o,s])},e)}pg.prototype={constructor:pg,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var tM=ct(30*gt);function Ik(t,n){return+n?function(e,r){function i(a,o,s,u,l,c,f,d,h,p,m,g,y,v){var x=f-a,b=d-o,w=x*x+b*b;if(w>4*r&&y--){var A=u+p,_=l+m,k=c+g,F=Jn(A*A+_*_+k*k),C=le(k/=F),D=At(At(k)-1)<dt||At(s-h)<dt?(s+h)/2:je(_,A),E=e(D,C),$=E[0],M=E[1],S=$-a,B=M-o,z=b*S-x*B;(z*z/w>r||At((x*S+b*B)/w-.5)>.3||u*p+l*m+c*g<tM)&&(i(a,o,s,u,l,c,$,M,D,A/=F,_/=F,k,y,v),v.point($,M),i($,M,D,A,_,k,f,d,h,p,m,g,y,v))}}return function(a){var o,s,u,l,c,f,d,h,p,m,g,y,v={point:x,lineStart:b,lineEnd:A,polygonStart:function(){a.polygonStart(),v.lineStart=_},polygonEnd:function(){a.polygonEnd(),v.lineStart=b}};function x(C,D){C=e(C,D),a.point(C[0],C[1])}function b(){h=NaN,v.point=w,a.lineStart()}function w(C,D){var E=Ia([C,D]),$=e(C,D);i(h,p,d,m,g,y,h=$[0],p=$[1],d=C,m=E[0],g=E[1],y=E[2],16,a),a.point(h,p)}function A(){v.point=x,a.lineEnd()}function _(){b(),v.point=k,v.lineEnd=F}function k(C,D){w(o=C,D),s=h,u=p,l=m,c=g,f=y,v.point=w}function F(){i(h,p,d,m,g,y,s,u,o,l,c,f,16,a),v.lineEnd=A,A()}return v}}(t,n):function(e){return Rf({point:function(r,i){r=e(r,i),this.stream.point(r[0],r[1])}})}(t)}var nM=Rf({point:function(t,n){this.stream.point(t*gt,n*gt)}});function Wk(t,n,e,r,i,a){if(!a)return function(m,g,y,v,x){function b(w,A){return[g+m*(w*=v),y-m*(A*=x)]}return b.invert=function(w,A){return[(w-g)/m*v,(y-A)/m*x]},b}(t,n,e,r,i);var o=ct(a),s=ut(a),u=o*t,l=s*t,c=o/t,f=s/t,d=(s*e-o*n)/t,h=(s*n+o*e)/t;function p(m,g){return[u*(m*=r)-l*(g*=i)+n,e-l*m-u*g]}return p.invert=function(m,g){return[r*(c*m-f*g+d),i*(h-f*m-c*g)]},p}function Or(t){return Hk(function(){return t})()}function Hk(t){var n,e,r,i,a,o,s,u,l,c,f=150,d=480,h=250,p=0,m=0,g=0,y=0,v=0,x=0,b=1,w=1,A=null,_=wk,k=null,F=Cu,C=.5;function D(S){return u(S[0]*gt,S[1]*gt)}function E(S){return(S=u.invert(S[0],S[1]))&&[S[0]*on,S[1]*on]}function $(){var S=Wk(f,0,0,b,w,x).apply(null,n(p,m)),B=Wk(f,d-S[0],h-S[1],b,w,x);return e=dk(g,y,v),s=ng(n,B),u=ng(e,s),o=Ik(s,C),M()}function M(){return l=c=null,D}return D.stream=function(S){return l&&c===S?l:l=nM(function(B){return Rf({point:function(z,N){var W=B(z,N);return this.stream.point(W[0],W[1])}})}(e)(_(o(F(c=S)))))},D.preclip=function(S){return arguments.length?(_=S,A=void 0,M()):_},D.postclip=function(S){return arguments.length?(F=S,k=r=i=a=null,M()):F},D.clipAngle=function(S){return arguments.length?(_=+S?W4(A=S*gt):(A=null,wk),M()):A*on},D.clipExtent=function(S){return arguments.length?(F=S==null?(k=r=i=a=null,Cu):Ak(k=+S[0][0],r=+S[0][1],i=+S[1][0],a=+S[1][1]),M()):k==null?null:[[k,r],[i,a]]},D.scale=function(S){return arguments.length?(f=+S,$()):f},D.translate=function(S){return arguments.length?(d=+S[0],h=+S[1],$()):[d,h]},D.center=function(S){return arguments.length?(p=S[0]%360*gt,m=S[1]%360*gt,$()):[p*on,m*on]},D.rotate=function(S){return arguments.length?(g=S[0]%360*gt,y=S[1]%360*gt,v=S.length>2?S[2]%360*gt:0,$()):[g*on,y*on,v*on]},D.angle=function(S){return arguments.length?(x=S%360*gt,$()):x*on},D.reflectX=function(S){return arguments.length?(b=S?-1:1,$()):b<0},D.reflectY=function(S){return arguments.length?(w=S?-1:1,$()):w<0},D.precision=function(S){return arguments.length?(o=Ik(s,C=S*S),M()):Jn(C)},D.fitExtent=function(S,B){return Tf(D,S,B)},D.fitSize=function(S,B){return gg(D,S,B)},D.fitWidth=function(S,B){return yg(D,S,B)},D.fitHeight=function(S,B){return vg(D,S,B)},function(){return n=t.apply(this,arguments),D.invert=n.invert&&E,$()}}function bg(t){var n=0,e=yt/3,r=Hk(t),i=r(n,e);return i.parallels=function(a){return arguments.length?r(n=a[0]*gt,e=a[1]*gt):[n*on,e*on]},i}function eM(t,n){var e=ut(t),r=(e+ut(n))/2;if(At(r)<dt)return function(s){var u=ct(s);function l(c,f){return[c*u,ut(f)/u]}return l.invert=function(c,f){return[c/u,le(f*u)]},l}(t);var i=1+e*(2*r-e),a=Jn(i)/r;function o(s,u){var l=Jn(i-2*r*ut(u))/r;return[l*ut(s*=r),a-l*ct(s)]}return o.invert=function(s,u){var l=a-u,c=je(s,At(l))*Le(l);return l*r<0&&(c-=yt*Le(s)*Le(l)),[c/r,le((i-(s*s+l*l)*r*r)/(2*r))]},o}function Pf(){return bg(eM).scale(155.424).center([0,33.6442])}function Gk(){return Pf().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function Vk(t){return function(n,e){var r=ct(n),i=ct(e),a=t(r*i);return a===1/0?[2,0]:[a*i*ut(n),a*ut(e)]}}function Ou(t){return function(n,e){var r=Jn(n*n+e*e),i=t(r),a=ut(i),o=ct(i);return[je(n*a,r*o),le(r&&e*a/r)]}}var Yk=Vk(function(t){return Jn(2/(1+t))});Yk.invert=Ou(function(t){return 2*le(t/2)});var Xk=Vk(function(t){return(t=V_(t))&&t/ut(t)});function jf(t,n){return[t,ff(W0((rn+n)/2))]}function Jk(t){var n,e,r,i=Or(t),a=i.center,o=i.scale,s=i.translate,u=i.clipExtent,l=null;function c(){var f=yt*o(),d=i(function(h){function p(m){return(m=h(m[0]*gt,m[1]*gt))[0]*=on,m[1]*=on,m}return h=dk(h[0]*gt,h[1]*gt,h.length>2?h[2]*gt:0),p.invert=function(m){return(m=h.invert(m[0]*gt,m[1]*gt))[0]*=on,m[1]*=on,m},p}(i.rotate()).invert([0,0]));return u(l==null?[[d[0]-f,d[1]-f],[d[0]+f,d[1]+f]]:t===jf?[[Math.max(d[0]-f,l),n],[Math.min(d[0]+f,e),r]]:[[l,Math.max(d[1]-f,n)],[e,Math.min(d[1]+f,r)]])}return i.scale=function(f){return arguments.length?(o(f),c()):o()},i.translate=function(f){return arguments.length?(s(f),c()):s()},i.center=function(f){return arguments.length?(a(f),c()):a()},i.clipExtent=function(f){return arguments.length?(f==null?l=n=e=r=null:(l=+f[0][0],n=+f[0][1],e=+f[1][0],r=+f[1][1]),c()):l==null?null:[[l,n],[e,r]]},c()}function Lf(t){return W0((rn+t)/2)}function rM(t,n){var e=ct(t),r=t===n?ut(t):ff(e/ct(n))/ff(Lf(n)/Lf(t)),i=e*I0(Lf(t),r)/r;if(!r)return jf;function a(o,s){i>0?s<-rn+dt&&(s=-rn+dt):s>rn-dt&&(s=rn-dt);var u=i/I0(Lf(s),r);return[u*ut(r*o),i-u*ct(r*o)]}return a.invert=function(o,s){var u=i-s,l=Le(r)*Jn(o*o+u*u),c=je(o,At(u))*Le(u);return u*r<0&&(c-=yt*Le(o)*Le(u)),[c/r,2*Ho(I0(i/l,1/r))-rn]},a}function qf(t,n){return[t,n]}function iM(t,n){var e=ct(t),r=t===n?ut(t):(e-ct(n))/(n-t),i=e/r+t;if(At(r)<dt)return qf;function a(o,s){var u=i-s,l=r*o;return[u*ut(l),i-u*ct(l)]}return a.invert=function(o,s){var u=i-s,l=je(o,At(u))*Le(u);return u*r<0&&(l-=yt*Le(o)*Le(u)),[l/r,i-Le(r)*Jn(o*o+u*u)]},a}Xk.invert=Ou(function(t){return t}),jf.invert=function(t,n){return[t,2*Ho(G_(n))-rn]},qf.invert=qf;var Nu=1.340264,Ru=-.081106,Tu=893e-6,Pu=.003796,Uf=Jn(3)/2;function Kk(t,n){var e=le(Uf*ut(n)),r=e*e,i=r*r*r;return[t*ct(e)/(Uf*(Nu+3*Ru*r+i*(7*Tu+9*Pu*r))),e*(Nu+Ru*r+i*(Tu+Pu*r))]}function Qk(t,n){var e=ct(n),r=ct(t)*e;return[e*ut(t)/r,ut(n)/r]}function Zk(t,n){var e=n*n,r=e*e;return[t*(.8707-.131979*e+r*(r*(.003971*e-.001529*r)-.013791)),n*(1.007226+e*(.015085+r*(.028874*e-.044475-.005916*r)))]}function tD(t,n){return[ct(n)*ut(t),ut(n)]}function nD(t,n){var e=ct(n),r=1+ct(t)*e;return[e*ut(t)/r,ut(n)/r]}function eD(t,n){return[ff(W0((rn+n)/2)),-t]}Kk.invert=function(t,n){for(var e,r=n,i=r*r,a=i*i*i,o=0;o<12&&(a=(i=(r-=e=(r*(Nu+Ru*i+a*(Tu+Pu*i))-n)/(Nu+3*Ru*i+a*(7*Tu+9*Pu*i)))*r)*i*i,!(At(e)<q0));++o);return[Uf*t*(Nu+3*Ru*i+a*(7*Tu+9*Pu*i))/ct(r),le(ut(r)/Uf)]},Qk.invert=Ou(Ho),Zk.invert=function(t,n){var e,r=n,i=25;do{var a=r*r,o=a*a;r-=e=(r*(1.007226+a*(.015085+o*(.028874*a-.044475-.005916*o)))-n)/(1.007226+a*(.045255+o*(.259866*a-.311325-.005916*11*o)))}while(At(e)>dt&&--i>0);return[t/(.8707+(a=r*r)*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979)),r]},tD.invert=Ou(le),nD.invert=Ou(function(t){return 2*Ho(t)}),eD.invert=function(t,n){return[-n,2*Ho(G_(t))-rn]};var aM=Math.abs,xg=Math.cos,If=Math.sin,rD=Math.PI,wg=rD/2,iD=function(t){return t>0?Math.sqrt(t):0}(2);function aD(t){return t>1?wg:t<-1?-wg:Math.asin(t)}function oM(t,n){var e,r=t*If(n),i=30;do n-=e=(n+If(n)-r)/(1+xg(n));while(aM(e)>1e-6&&--i>0);return n/2}var sM=function(t,n,e){function r(i,a){return[t*i*xg(a=oM(e,a)),n*If(a)]}return r.invert=function(i,a){return a=aD(a/n),[i/(t*xg(a)),aD((2*a+If(2*a))/e)]},r}(iD/wg,iD,rD);const uM=Uk(),Ag=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function _g(t,n){if(!t||typeof t!="string")throw new Error("Projection type must be a name string.");return t=t.toLowerCase(),arguments.length>1?(Wf[t]=function(e,r){return function i(){const a=r();return a.type=e,a.path=Uk().projection(a),a.copy=a.copy||function(){const o=i();return Ag.forEach(s=>{a[s]&&o[s](a[s]())}),o.path.pointRadius(a.path.pointRadius()),o},cw(a)}}(t,n),this):Wf[t]||null}function oD(t){return t&&t.path||uM}const Wf={albers:Gk,albersusa:function(){var t,n,e,r,i,a,o=Gk(),s=Pf().rotate([154,0]).center([-2,58.5]).parallels([55,65]),u=Pf().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(d,h){a=[d,h]}};function c(d){var h=d[0],p=d[1];return a=null,e.point(h,p),a||(r.point(h,p),a)||(i.point(h,p),a)}function f(){return t=n=null,c}return c.invert=function(d){var h=o.scale(),p=o.translate(),m=(d[0]-p[0])/h,g=(d[1]-p[1])/h;return(g>=.12&&g<.234&&m>=-.425&&m<-.214?s:g>=.166&&g<.234&&m>=-.214&&m<-.115?u:o).invert(d)},c.stream=function(d){return t&&n===d?t:(h=[o.stream(n=d),s.stream(d),u.stream(d)],p=h.length,t={point:function(m,g){for(var y=-1;++y<p;)h[y].point(m,g)},sphere:function(){for(var m=-1;++m<p;)h[m].sphere()},lineStart:function(){for(var m=-1;++m<p;)h[m].lineStart()},lineEnd:function(){for(var m=-1;++m<p;)h[m].lineEnd()},polygonStart:function(){for(var m=-1;++m<p;)h[m].polygonStart()},polygonEnd:function(){for(var m=-1;++m<p;)h[m].polygonEnd()}});var h,p},c.precision=function(d){return arguments.length?(o.precision(d),s.precision(d),u.precision(d),f()):o.precision()},c.scale=function(d){return arguments.length?(o.scale(d),s.scale(.35*d),u.scale(d),c.translate(o.translate())):o.scale()},c.translate=function(d){if(!arguments.length)return o.translate();var h=o.scale(),p=+d[0],m=+d[1];return e=o.translate(d).clipExtent([[p-.455*h,m-.238*h],[p+.455*h,m+.238*h]]).stream(l),r=s.translate([p-.307*h,m+.201*h]).clipExtent([[p-.425*h+dt,m+.12*h+dt],[p-.214*h-dt,m+.234*h-dt]]).stream(l),i=u.translate([p-.205*h,m+.212*h]).clipExtent([[p-.214*h+dt,m+.166*h+dt],[p-.115*h-dt,m+.234*h-dt]]).stream(l),f()},c.fitExtent=function(d,h){return Tf(c,d,h)},c.fitSize=function(d,h){return gg(c,d,h)},c.fitWidth=function(d,h){return yg(c,d,h)},c.fitHeight=function(d,h){return vg(c,d,h)},c.scale(1070)},azimuthalequalarea:function(){return Or(Yk).scale(124.75).clipAngle(179.999)},azimuthalequidistant:function(){return Or(Xk).scale(79.4188).clipAngle(179.999)},conicconformal:function(){return bg(rM).scale(109.5).parallels([30,30])},conicequalarea:Pf,conicequidistant:function(){return bg(iM).scale(131.154).center([0,13.9389])},equalEarth:function(){return Or(Kk).scale(177.158)},equirectangular:function(){return Or(qf).scale(152.63)},gnomonic:function(){return Or(Qk).scale(144.049).clipAngle(60)},identity:function(){var t,n,e,r,i,a,o,s=1,u=0,l=0,c=1,f=1,d=0,h=null,p=1,m=1,g=Rf({point:function(b,w){var A=x([b,w]);this.stream.point(A[0],A[1])}}),y=Cu;function v(){return p=s*c,m=s*f,a=o=null,x}function x(b){var w=b[0]*p,A=b[1]*m;if(d){var _=A*t-w*n;w=w*t+A*n,A=_}return[w+u,A+l]}return x.invert=function(b){var w=b[0]-u,A=b[1]-l;if(d){var _=A*t+w*n;w=w*t-A*n,A=_}return[w/p,A/m]},x.stream=function(b){return a&&o===b?a:a=g(y(o=b))},x.postclip=function(b){return arguments.length?(y=b,h=e=r=i=null,v()):y},x.clipExtent=function(b){return arguments.length?(y=b==null?(h=e=r=i=null,Cu):Ak(h=+b[0][0],e=+b[0][1],r=+b[1][0],i=+b[1][1]),v()):h==null?null:[[h,e],[r,i]]},x.scale=function(b){return arguments.length?(s=+b,v()):s},x.translate=function(b){return arguments.length?(u=+b[0],l=+b[1],v()):[u,l]},x.angle=function(b){return arguments.length?(n=ut(d=b%360*gt),t=ct(d),v()):d*on},x.reflectX=function(b){return arguments.length?(c=b?-1:1,v()):c<0},x.reflectY=function(b){return arguments.length?(f=b?-1:1,v()):f<0},x.fitExtent=function(b,w){return Tf(x,b,w)},x.fitSize=function(b,w){return gg(x,b,w)},x.fitWidth=function(b,w){return yg(x,b,w)},x.fitHeight=function(b,w){return vg(x,b,w)},x},mercator:function(){return Jk(jf).scale(961/Xn)},mollweide:function(){return Or(sM).scale(169.529)},naturalEarth1:function(){return Or(Zk).scale(175.295)},orthographic:function(){return Or(tD).scale(249.5).clipAngle(90.000001)},stereographic:function(){return Or(nD).scale(250).clipAngle(142)},transversemercator:function(){var t=Jk(eD),n=t.center,e=t.rotate;return t.center=function(r){return arguments.length?n([-r[1],r[0]]):[(r=n())[1],-r[0]]},t.rotate=function(r){return arguments.length?e([r[0],r[1],r.length>2?r[2]+90:90]):[(r=e())[0],r[1],r[2]-90]},e([0,0,90]).scale(159.155)}};for(const t in Wf)_g(t,Wf[t]);function lM(){}const fi=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function sD(){var t=1,n=1,e=o;function r(s,u){return u.map(l=>i(s,l))}function i(s,u){var l=[],c=[];return function(f,d,h){var p,m,g,y,v,x,b=[],w=[];for(p=m=-1,y=f[0]>=d,fi[y<<1].forEach(A);++p<t-1;)g=y,y=f[p+1]>=d,fi[g|y<<1].forEach(A);for(fi[y|0].forEach(A);++m<n-1;){for(p=-1,y=f[m*t+t]>=d,v=f[m*t]>=d,fi[y<<1|v<<2].forEach(A);++p<t-1;)g=y,y=f[m*t+t+p+1]>=d,x=v,v=f[m*t+p+1]>=d,fi[g|y<<1|v<<2|x<<3].forEach(A);fi[y|v<<3].forEach(A)}for(p=-1,v=f[m*t]>=d,fi[v<<2].forEach(A);++p<t-1;)x=v,v=f[m*t+p+1]>=d,fi[v<<2|x<<3].forEach(A);function A(_){var k,F,C=[_[0][0]+p,_[0][1]+m],D=[_[1][0]+p,_[1][1]+m],E=a(C),$=a(D);(k=w[E])?(F=b[$])?(delete w[k.end],delete b[F.start],k===F?(k.ring.push(D),h(k.ring)):b[k.start]=w[F.end]={start:k.start,end:F.end,ring:k.ring.concat(F.ring)}):(delete w[k.end],k.ring.push(D),w[k.end=$]=k):(k=b[$])?(F=w[E])?(delete b[k.start],delete w[F.end],k===F?(k.ring.push(D),h(k.ring)):b[F.start]=w[k.end]={start:F.start,end:k.end,ring:F.ring.concat(k.ring)}):(delete b[k.start],k.ring.unshift(C),b[k.start=E]=k):b[E]=w[$]={start:E,end:$,ring:[C,D]}}fi[v<<3].forEach(A)}(s,u,f=>{e(f,s,u),function(d){for(var h=0,p=d.length,m=d[p-1][1]*d[0][0]-d[p-1][0]*d[0][1];++h<p;)m+=d[h-1][1]*d[h][0]-d[h-1][0]*d[h][1];return m}(f)>0?l.push([f]):c.push(f)}),c.forEach(f=>{for(var d,h=0,p=l.length;h<p;++h)if(cM((d=l[h])[0],f)!==-1)return void d.push(f)}),{type:"MultiPolygon",value:u,coordinates:l}}function a(s){return 2*s[0]+s[1]*(t+1)*4}function o(s,u,l){s.forEach(c=>{var f,d=c[0],h=c[1],p=0|d,m=0|h,g=u[m*t+p];d>0&&d<t&&p===d&&(f=u[m*t+p-1],c[0]=d+(l-f)/(g-f)-.5),h>0&&h<n&&m===h&&(f=u[(m-1)*t+p],c[1]=h+(l-f)/(g-f)-.5)})}return r.contour=i,r.size=function(s){if(!arguments.length)return[t,n];var u=Math.floor(s[0]),l=Math.floor(s[1]);return u>=0&&l>=0||j("invalid size"),t=u,n=l,r},r.smooth=function(s){return arguments.length?(e=s?o:lM,r):e===o},r}function cM(t,n){for(var e,r=-1,i=n.length;++r<i;)if(e=fM(t,n[r]))return e;return 0}function fM(t,n){for(var e=n[0],r=n[1],i=-1,a=0,o=t.length,s=o-1;a<o;s=a++){var u=t[a],l=u[0],c=u[1],f=t[s],d=f[0],h=f[1];if(dM(u,f,n))return 0;c>r!=h>r&&e<(d-l)*(r-c)/(h-c)+l&&(i=-i)}return i}function dM(t,n,e){var r,i,a,o;return function(s,u,l){return(u[0]-s[0])*(l[1]-s[1])===(l[0]-s[0])*(u[1]-s[1])}(t,n,e)&&(i=t[r=+(t[0]===n[0])],a=e[r],o=n[r],i<=a&&a<=o||o<=a&&a<=i)}function uD(t,n,e){return function(r){var i=kr(r),a=e?Math.min(i[0],0):i[0],o=i[1],s=o-a,u=n?fx(a,o,t):s/(t+1);return xe(a+u,o,u)}}function kg(t){O.call(this,null,t)}function lD(t,n,e,r,i){const a=t.x1||0,o=t.y1||0,s=n*e<0;function u(f){f.forEach(l)}function l(f){s&&f.reverse(),f.forEach(c)}function c(f){f[0]=(f[0]-a)*n+r,f[1]=(f[1]-o)*e+i}return function(f){return f.coordinates.forEach(u),f}}function cD(t,n,e){const r=t>=0?t:kp(n,e);return Math.round((Math.sqrt(4*r*r+1)-1)/2)}function Dg(t){return bt(t)?t:In(+t)}function fD(){var t=u=>u[0],n=u=>u[1],e=Gs,r=[-1,-1],i=960,a=500,o=2;function s(u,l){const c=cD(r[0],u,t)>>o,f=cD(r[1],u,n)>>o,d=c?c+2:0,h=f?f+2:0,p=2*d+(i>>o),m=2*h+(a>>o),g=new Float32Array(p*m),y=new Float32Array(p*m);let v=g;u.forEach(b=>{const w=d+(+t(b)>>o),A=h+(+n(b)>>o);w>=0&&w<p&&A>=0&&A<m&&(g[w+A*p]+=+e(b))}),c>0&&f>0?(Jo(p,m,g,y,c),Ko(p,m,y,g,f),Jo(p,m,g,y,c),Ko(p,m,y,g,f),Jo(p,m,g,y,c),Ko(p,m,y,g,f)):c>0?(Jo(p,m,g,y,c),Jo(p,m,y,g,c),Jo(p,m,g,y,c),v=y):f>0&&(Ko(p,m,g,y,f),Ko(p,m,y,g,f),Ko(p,m,g,y,f),v=y);const x=l?Math.pow(2,-2*o):1/Jx(v);for(let b=0,w=p*m;b<w;++b)v[b]*=x;return{values:v,scale:1<<o,width:p,height:m,x1:d,y1:h,x2:d+(i>>o),y2:h+(a>>o)}}return s.x=function(u){return arguments.length?(t=Dg(u),s):t},s.y=function(u){return arguments.length?(n=Dg(u),s):n},s.weight=function(u){return arguments.length?(e=Dg(u),s):e},s.size=function(u){if(!arguments.length)return[i,a];var l=+u[0],c=+u[1];return l>=0&&c>=0||j("invalid size"),i=l,a=c,s},s.cellSize=function(u){return arguments.length?((u=+u)>=1||j("invalid cell size"),o=Math.floor(Math.log(u)/Math.LN2),s):1<<o},s.bandwidth=function(u){return arguments.length?((u=K(u)).length===1&&(u=[+u[0],+u[0]]),u.length!==2&&j("invalid bandwidth"),r=u,s):r},s}function Jo(t,n,e,r,i){const a=1+(i<<1);for(let o=0;o<n;++o)for(let s=0,u=0;s<t+i;++s)s<t&&(u+=e[s+o*t]),s>=i&&(s>=a&&(u-=e[s-a+o*t]),r[s-i+o*t]=u/Math.min(s+1,t-1+a-s,a))}function Ko(t,n,e,r,i){const a=1+(i<<1);for(let o=0;o<t;++o)for(let s=0,u=0;s<n+i;++s)s<n&&(u+=e[o+s*t]),s>=i&&(s>=a&&(u-=e[o+(s-a)*t]),r[o+(s-i)*t]=u/Math.min(s+1,n-1+a-s,a))}function Fg(t){O.call(this,null,t)}kg.Definition={type:"Isocontour",metadata:{generates:!0},params:[{name:"field",type:"field"},{name:"thresholds",type:"number",array:!0},{name:"levels",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"zero",type:"boolean",default:!0},{name:"smooth",type:"boolean",default:!0},{name:"scale",type:"number",expr:!0},{name:"translate",type:"number",array:!0,expr:!0},{name:"as",type:"string",null:!0,default:"contour"}]},V(kg,O,{transform(t,n){if(this.value&&!n.changed()&&!t.modified())return n.StopPropagation;var e=n.fork(n.NO_SOURCE|n.NO_FIELDS),r=n.materialize(n.SOURCE).source,i=t.field||Me,a=sD().smooth(t.smooth!==!1),o=t.thresholds||function(l,c,f){const d=uD(f.levels||10,f.nice,f.zero!==!1);return f.resolve!=="shared"?d:d(l.map(h=>Ca(c(h).values)))}(r,i,t),s=t.as===null?null:t.as||"contour",u=[];return r.forEach(l=>{const c=i(l),f=a.size([c.width,c.height])(c.values,P(o)?o:o(c.values));(function(d,h,p,m){let g=m.scale||h.scale,y=m.translate||h.translate;if(bt(g)&&(g=g(p,m)),bt(y)&&(y=y(p,m)),(g===1||g==null)&&!y)return;const v=($t(g)?g:g[0])||1,x=($t(g)?g:g[1])||1,b=y&&y[0]||0,w=y&&y[1]||0;d.forEach(lD(h,v,x,b,w))})(f,c,l,t),f.forEach(d=>{u.push(nc(l,St(s!=null?{[s]:d}:d)))})}),this.value&&(e.rem=this.value),this.value=e.source=e.add=u,e}}),Fg.Definition={type:"KDE2D",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"weight",type:"field"},{name:"groupby",type:"field",array:!0},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number",array:!0,length:2},{name:"counts",type:"boolean",default:!1},{name:"as",type:"string",default:"grid"}]};const hM=["x","y","weight","size","cellSize","bandwidth"];function dD(t,n){return hM.forEach(e=>n[e]!=null?t[e](n[e]):0),t}function Cg(t){O.call(this,null,t)}V(Fg,O,{transform(t,n){if(this.value&&!n.changed()&&!t.modified())return n.StopPropagation;var e,r=n.fork(n.NO_SOURCE|n.NO_FIELDS),i=function(u,l){var c,f,d,h,p,m,g=[],y=v=>v(h);if(l==null)g.push(u);else for(c={},f=0,d=u.length;f<d;++f)h=u[f],(m=c[p=l.map(y)])||(c[p]=m=[],m.dims=p,g.push(m)),m.push(h);return g}(n.materialize(n.SOURCE).source,t.groupby),a=(t.groupby||[]).map(en),o=dD(fD(),t),s=t.as||"grid";return e=i.map(u=>St(function(l,c){for(let f=0;f<a.length;++f)l[a[f]]=c[f];return l}({[s]:o(u,t.counts)},u.dims))),this.value&&(r.rem=this.value),this.value=r.source=r.add=e,r}}),Cg.Definition={type:"Contour",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"values",type:"number",array:!0},{name:"x",type:"field"},{name:"y",type:"field"},{name:"weight",type:"field"},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number"},{name:"count",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"thresholds",type:"number",array:!0},{name:"smooth",type:"boolean",default:!0}]},V(Cg,O,{transform(t,n){if(this.value&&!n.changed()&&!t.modified())return n.StopPropagation;var e,r,i=n.fork(n.NO_SOURCE|n.NO_FIELDS),a=sD().smooth(t.smooth!==!1),o=t.values,s=t.thresholds||uD(t.count||10,t.nice,!!o),u=t.size;return o||(o=n.materialize(n.SOURCE).source,r=lD(e=dD(fD(),t)(o,!0),e.scale||1,e.scale||1,0,0),u=[e.width,e.height],o=e.values),s=P(s)?s:s(o),o=a.size(u)(o,s),r&&o.forEach(r),this.value&&(i.rem=this.value),this.value=i.source=i.add=(o||[]).map(St),i}});const Eg="Feature",$g="FeatureCollection";function Sg(t){O.call(this,null,t)}function Mg(t){O.call(this,null,t)}function Bg(t){O.call(this,null,t)}function zg(t){O.call(this,null,t)}function Og(t){O.call(this,[],t),this.generator=function(){var n,e,r,i,a,o,s,u,l,c,f,d,h=10,p=h,m=90,g=360,y=2.5;function v(){return{type:"MultiLineString",coordinates:x()}}function x(){return xe(cf(i/m)*m,r,m).map(f).concat(xe(cf(u/g)*g,s,g).map(d)).concat(xe(cf(e/h)*h,n,h).filter(function(b){return At(b%m)>dt}).map(l)).concat(xe(cf(o/p)*p,a,p).filter(function(b){return At(b%g)>dt}).map(c))}return v.lines=function(){return x().map(function(b){return{type:"LineString",coordinates:b}})},v.outline=function(){return{type:"Polygon",coordinates:[f(i).concat(d(s).slice(1),f(r).reverse().slice(1),d(u).reverse().slice(1))]}},v.extent=function(b){return arguments.length?v.extentMajor(b).extentMinor(b):v.extentMinor()},v.extentMajor=function(b){return arguments.length?(i=+b[0][0],r=+b[1][0],u=+b[0][1],s=+b[1][1],i>r&&(b=i,i=r,r=b),u>s&&(b=u,u=s,s=b),v.precision(y)):[[i,u],[r,s]]},v.extentMinor=function(b){return arguments.length?(e=+b[0][0],n=+b[1][0],o=+b[0][1],a=+b[1][1],e>n&&(b=e,e=n,n=b),o>a&&(b=o,o=a,a=b),v.precision(y)):[[e,o],[n,a]]},v.step=function(b){return arguments.length?v.stepMajor(b).stepMinor(b):v.stepMinor()},v.stepMajor=function(b){return arguments.length?(m=+b[0],g=+b[1],v):[m,g]},v.stepMinor=function(b){return arguments.length?(h=+b[0],p=+b[1],v):[h,p]},v.precision=function(b){return arguments.length?(y=+b,l=_k(o,a,90),c=kk(e,n,y),f=_k(u,s,90),d=kk(i,r,y),v):y},v.extentMajor([[-180,-89.999999],[180,89.999999]]).extentMinor([[-180,-80.000001],[180,80.000001]])}()}function Ng(t){O.call(this,null,t)}function hD(t){if(!bt(t))return!1;const n=Dr(Wn(t));return n.$x||n.$y||n.$value||n.$max}function pD(t){O.call(this,null,t),this.modified(!0)}function mD(t,n,e){bt(t[n])&&t[n](e)}Sg.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]},V(Sg,O,{transform(t,n){var e,r=this._features,i=this._points,a=t.fields,o=a&&a[0],s=a&&a[1],u=t.geojson||!a&&Me,l=n.ADD;e=t.modified()||n.changed(n.REM)||n.modified(Wn(u))||o&&n.modified(Wn(o))||s&&n.modified(Wn(s)),this.value&&!e||(l=n.SOURCE,this._features=r=[],this._points=i=[]),u&&n.visit(l,c=>r.push(u(c))),o&&s&&(n.visit(l,c=>{var f=o(c),d=s(c);f!=null&&d!=null&&(f=+f)===f&&(d=+d)===d&&i.push([f,d])}),r=r.concat({type:Eg,geometry:{type:"MultiPoint",coordinates:i}})),this.value={type:$g,features:r}}}),Mg.Definition={type:"GeoPath",metadata:{modifies:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"path"}]},V(Mg,O,{transform(t,n){var e=n.fork(n.ALL),r=this.value,i=t.field||Me,a=t.as||"path",o=e.SOURCE;!r||t.modified()?(this.value=r=oD(t.projection),e.materialize().reflow()):o=i===Me||n.modified(i.fields)?e.ADD_MOD:e.ADD;const s=function(u,l){const c=u.pointRadius();return u.context(null),l!=null&&u.pointRadius(l),c}(r,t.pointRadius);return e.visit(o,u=>u[a]=r(i(u))),r.pointRadius(s),e.modifies(a)}}),Bg.Definition={type:"GeoPoint",metadata:{modifies:!0},params:[{name:"projection",type:"projection",required:!0},{name:"fields",type:"field",array:!0,required:!0,length:2},{name:"as",type:"string",array:!0,length:2,default:["x","y"]}]},V(Bg,O,{transform(t,n){var e,r=t.projection,i=t.fields[0],a=t.fields[1],o=t.as||["x","y"],s=o[0],u=o[1];function l(c){const f=r([i(c),a(c)]);f?(c[s]=f[0],c[u]=f[1]):(c[s]=void 0,c[u]=void 0)}return t.modified()?n=n.materialize().reflow(!0).visit(n.SOURCE,l):(e=n.modified(i.fields)||n.modified(a.fields),n.visit(e?n.ADD_MOD:n.ADD,l)),n.modifies(o)}}),zg.Definition={type:"GeoShape",metadata:{modifies:!0,nomod:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field",default:"datum"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"shape"}]},V(zg,O,{transform(t,n){var e=n.fork(n.ALL),r=this.value,i=t.as||"shape",a=e.ADD;return r&&!t.modified()||(this.value=r=function(o,s,u){const l=u==null?c=>o(s(c)):c=>{var f=o.pointRadius(),d=o.pointRadius(u)(s(c));return o.pointRadius(f),d};return l.context=c=>(o.context(c),l),l}(oD(t.projection),t.field||ei("datum"),t.pointRadius),e.materialize().reflow(),a=e.SOURCE),e.visit(a,o=>o[i]=r),e.modifies(i)}}),Og.Definition={type:"Graticule",metadata:{changes:!0,generates:!0},params:[{name:"extent",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMajor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMinor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"step",type:"number",array:!0,length:2},{name:"stepMajor",type:"number",array:!0,length:2,default:[90,360]},{name:"stepMinor",type:"number",array:!0,length:2,default:[10,10]},{name:"precision",type:"number",default:2.5}]},V(Og,O,{transform(t,n){var e,r=this.value,i=this.generator;if(!r.length||t.modified())for(const a in t)bt(i[a])&&i[a](t[a]);return e=i(),r.length?n.mod.push(Zx(r[0],e)):n.add.push(St(e)),r[0]=e,n}}),Ng.Definition={type:"heatmap",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"color",type:"string",expr:!0},{name:"opacity",type:"number",expr:!0},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"as",type:"string",default:"image"}]},V(Ng,O,{transform(t,n){if(!n.changed()&&!t.modified())return n.StopPropagation;var e=n.materialize(n.SOURCE).source,r=t.resolve==="shared",i=t.field||Me,a=function(l,c){let f;return bt(l)?(f=d=>l(d,c),f.dep=hD(l)):l?f=In(l):(f=d=>d.$value/d.$max||0,f.dep=!0),f}(t.opacity,t),o=function(l,c){let f;return bt(l)?(f=d=>Jl(l(d,c)),f.dep=hD(l)):f=In(Jl(l||"#888")),f}(t.color,t),s=t.as||"image",u={$x:0,$y:0,$value:0,$max:r?Ca(e.map(l=>Ca(i(l).values))):0};return e.forEach(l=>{const c=i(l),f=xt({},l,u);r||(f.$max=Ca(c.values||[])),l[s]=function(d,h,p,m){const g=d.width,y=d.height,v=d.x1||0,x=d.y1||0,b=d.x2||g,w=d.y2||y,A=d.values,_=A?E=>A[E]:ip,k=qi(b-v,w-x),F=k.getContext("2d"),C=F.getImageData(0,0,b-v,w-x),D=C.data;for(let E=x,$=0;E<w;++E){h.$y=E-x;for(let M=v,S=E*g;M<b;++M,$+=4){h.$x=M-v,h.$value=_(M+S);const B=p(h);D[$+0]=B.r,D[$+1]=B.g,D[$+2]=B.b,D[$+3]=~~(255*m(h))}}return F.putImageData(C,0,0),k}(c,f,o.dep?o:In(o(f)),a.dep?a:In(a(f)))}),n.reflow(!0).modifies(s)}}),V(pD,O,{transform(t,n){let e=this.value;return!e||t.modified("type")?(this.value=e=function(r){const i=_g((r||"mercator").toLowerCase());return i||j("Unrecognized projection type: "+r),i()}(t.type),Ag.forEach(r=>{t[r]!=null&&mD(e,r,t[r])})):Ag.forEach(r=>{t.modified(r)&&mD(e,r,t[r])}),t.pointRadius!=null&&e.path.pointRadius(t.pointRadius),t.fit&&function(r,i){const a=function(o){return o=K(o),o.length===1?o[0]:{type:$g,features:o.reduce((s,u)=>s.concat(function(l){return l.type===$g?l.features:K(l).filter(c=>c!=null).map(c=>c.type===Eg?c:{type:Eg,geometry:c})}(u)),[])}}(i.fit);i.extent?r.fitExtent(i.extent,a):i.size&&r.fitSize(i.size,a)}(e,t),n.fork(n.NO_SOURCE|n.NO_FIELDS)}});const pM=Object.freeze(Object.defineProperty({__proto__:null,contour:Cg,geojson:Sg,geopath:Mg,geopoint:Bg,geoshape:zg,graticule:Og,heatmap:Ng,isocontour:kg,kde2d:Fg,projection:pD},Symbol.toStringTag,{value:"Module"}));function gD(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,a,o,s,u,l,c,f,d,h=t._root,p={data:r},m=t._x0,g=t._y0,y=t._x1,v=t._y1;if(!h)return t._root=p,t;for(;h.length;)if((l=n>=(a=(m+y)/2))?m=a:y=a,(c=e>=(o=(g+v)/2))?g=o:v=o,i=h,!(h=h[f=c<<1|l]))return i[f]=p,t;if(s=+t._x.call(null,h.data),u=+t._y.call(null,h.data),n===s&&e===u)return p.next=h,i?i[f]=p:t._root=p,t;do i=i?i[f]=new Array(4):t._root=new Array(4),(l=n>=(a=(m+y)/2))?m=a:y=a,(c=e>=(o=(g+v)/2))?g=o:v=o;while((f=c<<1|l)==(d=(u>=o)<<1|s>=a));return i[d]=h,i[f]=p,t}function te(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function mM(t){return t[0]}function gM(t){return t[1]}function Rg(t,n,e){var r=new Tg(n??mM,e??gM,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function Tg(t,n,e,r,i,a){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=a,this._root=void 0}function yD(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}var ne=Rg.prototype=Tg.prototype;function ee(t){return function(){return t}}function ea(t){return 1e-6*(t()-.5)}function yM(t){return t.x+t.vx}function vM(t){return t.y+t.vy}function bM(t){return t.index}function vD(t,n){var e=t.get(n);if(!e)throw new Error("node not found: "+n);return e}ne.copy=function(){var t,n,e=new Tg(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=yD(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=yD(n));return e},ne.add=function(t){const n=+this._x.call(null,t),e=+this._y.call(null,t);return gD(this.cover(n,e),n,e,t)},ne.addAll=function(t){var n,e,r,i,a=t.length,o=new Array(a),s=new Array(a),u=1/0,l=1/0,c=-1/0,f=-1/0;for(e=0;e<a;++e)isNaN(r=+this._x.call(null,n=t[e]))||isNaN(i=+this._y.call(null,n))||(o[e]=r,s[e]=i,r<u&&(u=r),r>c&&(c=r),i<l&&(l=i),i>f&&(f=i));if(u>c||l>f)return this;for(this.cover(u,l).cover(c,f),e=0;e<a;++e)gD(this,o[e],s[e],t[e]);return this},ne.cover=function(t,n){if(isNaN(t=+t)||isNaN(n=+n))return this;var e=this._x0,r=this._y0,i=this._x1,a=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,a=(r=Math.floor(n))+1;else{for(var o,s,u=i-e||1,l=this._root;e>t||t>=i||r>n||n>=a;)switch(s=(n<r)<<1|t<e,(o=new Array(4))[s]=l,l=o,u*=2,s){case 0:i=e+u,a=r+u;break;case 1:e=i-u,a=r+u;break;case 2:i=e+u,r=a-u;break;case 3:e=i-u,r=a-u}this._root&&this._root.length&&(this._root=l)}return this._x0=e,this._y0=r,this._x1=i,this._y1=a,this},ne.data=function(){var t=[];return this.visit(function(n){if(!n.length)do t.push(n.data);while(n=n.next)}),t},ne.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},ne.find=function(t,n,e){var r,i,a,o,s,u,l,c=this._x0,f=this._y0,d=this._x1,h=this._y1,p=[],m=this._root;for(m&&p.push(new te(m,c,f,d,h)),e==null?e=1/0:(c=t-e,f=n-e,d=t+e,h=n+e,e*=e);u=p.pop();)if(!(!(m=u.node)||(i=u.x0)>d||(a=u.y0)>h||(o=u.x1)<c||(s=u.y1)<f))if(m.length){var g=(i+o)/2,y=(a+s)/2;p.push(new te(m[3],g,y,o,s),new te(m[2],i,y,g,s),new te(m[1],g,a,o,y),new te(m[0],i,a,g,y)),(l=(n>=y)<<1|t>=g)&&(u=p[p.length-1],p[p.length-1]=p[p.length-1-l],p[p.length-1-l]=u)}else{var v=t-+this._x.call(null,m.data),x=n-+this._y.call(null,m.data),b=v*v+x*x;if(b<e){var w=Math.sqrt(e=b);c=t-w,f=n-w,d=t+w,h=n+w,r=m.data}}return r},ne.remove=function(t){if(isNaN(a=+this._x.call(null,t))||isNaN(o=+this._y.call(null,t)))return this;var n,e,r,i,a,o,s,u,l,c,f,d,h=this._root,p=this._x0,m=this._y0,g=this._x1,y=this._y1;if(!h)return this;if(h.length)for(;;){if((l=a>=(s=(p+g)/2))?p=s:g=s,(c=o>=(u=(m+y)/2))?m=u:y=u,n=h,!(h=h[f=c<<1|l]))return this;if(!h.length)break;(n[f+1&3]||n[f+2&3]||n[f+3&3])&&(e=n,d=f)}for(;h.data!==t;)if(r=h,!(h=h.next))return this;return(i=h.next)&&delete h.next,r?(i?r.next=i:delete r.next,this):n?(i?n[f]=i:delete n[f],(h=n[0]||n[1]||n[2]||n[3])&&h===(n[3]||n[2]||n[1]||n[0])&&!h.length&&(e?e[d]=h:this._root=h),this):(this._root=i,this)},ne.removeAll=function(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this},ne.root=function(){return this._root},ne.size=function(){var t=0;return this.visit(function(n){if(!n.length)do++t;while(n=n.next)}),t},ne.visit=function(t){var n,e,r,i,a,o,s=[],u=this._root;for(u&&s.push(new te(u,this._x0,this._y0,this._x1,this._y1));n=s.pop();)if(!t(u=n.node,r=n.x0,i=n.y0,a=n.x1,o=n.y1)&&u.length){var l=(r+a)/2,c=(i+o)/2;(e=u[3])&&s.push(new te(e,l,c,a,o)),(e=u[2])&&s.push(new te(e,r,c,l,o)),(e=u[1])&&s.push(new te(e,l,i,a,c)),(e=u[0])&&s.push(new te(e,r,i,l,c))}return this},ne.visitAfter=function(t){var n,e=[],r=[];for(this._root&&e.push(new te(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var i=n.node;if(i.length){var a,o=n.x0,s=n.y0,u=n.x1,l=n.y1,c=(o+u)/2,f=(s+l)/2;(a=i[0])&&e.push(new te(a,o,s,c,f)),(a=i[1])&&e.push(new te(a,c,s,u,f)),(a=i[2])&&e.push(new te(a,o,f,c,l)),(a=i[3])&&e.push(new te(a,c,f,u,l))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},ne.x=function(t){return arguments.length?(this._x=t,this):this._x},ne.y=function(t){return arguments.length?(this._y=t,this):this._y};const bD=4294967296;function xM(t){return t.x}function wM(t){return t.y}var AM=Math.PI*(3-Math.sqrt(5));function _M(t){var n,e=1,r=.001,i=1-Math.pow(r,1/300),a=0,o=.6,s=new Map,u=C8(f),l=E8("tick","end"),c=function(){let m=1;return()=>(m=(1664525*m+1013904223)%bD)/bD}();function f(){d(),l.call("tick",n),e<r&&(u.stop(),l.call("end",n))}function d(m){var g,y,v=t.length;m===void 0&&(m=1);for(var x=0;x<m;++x)for(e+=(a-e)*i,s.forEach(function(b){b(e)}),g=0;g<v;++g)(y=t[g]).fx==null?y.x+=y.vx*=o:(y.x=y.fx,y.vx=0),y.fy==null?y.y+=y.vy*=o:(y.y=y.fy,y.vy=0);return n}function h(){for(var m,g=0,y=t.length;g<y;++g){if((m=t[g]).index=g,m.fx!=null&&(m.x=m.fx),m.fy!=null&&(m.y=m.fy),isNaN(m.x)||isNaN(m.y)){var v=10*Math.sqrt(.5+g),x=g*AM;m.x=v*Math.cos(x),m.y=v*Math.sin(x)}(isNaN(m.vx)||isNaN(m.vy))&&(m.vx=m.vy=0)}}function p(m){return m.initialize&&m.initialize(t,c),m}return t==null&&(t=[]),h(),n={tick:d,restart:function(){return u.restart(f),n},stop:function(){return u.stop(),n},nodes:function(m){return arguments.length?(t=m,h(),s.forEach(p),n):t},alpha:function(m){return arguments.length?(e=+m,n):e},alphaMin:function(m){return arguments.length?(r=+m,n):r},alphaDecay:function(m){return arguments.length?(i=+m,n):+i},alphaTarget:function(m){return arguments.length?(a=+m,n):a},velocityDecay:function(m){return arguments.length?(o=1-m,n):1-o},randomSource:function(m){return arguments.length?(c=m,s.forEach(p),n):c},force:function(m,g){return arguments.length>1?(g==null?s.delete(m):s.set(m,p(g)),n):s.get(m)},find:function(m,g,y){var v,x,b,w,A,_=0,k=t.length;for(y==null?y=1/0:y*=y,_=0;_<k;++_)(b=(v=m-(w=t[_]).x)*v+(x=g-w.y)*x)<y&&(A=w,y=b);return A},on:function(m,g){return arguments.length>1?(l.on(m,g),n):l.on(m)}}}const xD={center:function(t,n){var e,r=1;function i(){var a,o,s=e.length,u=0,l=0;for(a=0;a<s;++a)u+=(o=e[a]).x,l+=o.y;for(u=(u/s-t)*r,l=(l/s-n)*r,a=0;a<s;++a)(o=e[a]).x-=u,o.y-=l}return t==null&&(t=0),n==null&&(n=0),i.initialize=function(a){e=a},i.x=function(a){return arguments.length?(t=+a,i):t},i.y=function(a){return arguments.length?(n=+a,i):n},i.strength=function(a){return arguments.length?(r=+a,i):r},i},collide:function(t){var n,e,r,i=1,a=1;function o(){for(var l,c,f,d,h,p,m,g=n.length,y=0;y<a;++y)for(c=Rg(n,yM,vM).visitAfter(s),l=0;l<g;++l)f=n[l],p=e[f.index],m=p*p,d=f.x+f.vx,h=f.y+f.vy,c.visit(v);function v(x,b,w,A,_){var k=x.data,F=x.r,C=p+F;if(!k)return b>d+C||A<d-C||w>h+C||_<h-C;if(k.index>f.index){var D=d-k.x-k.vx,E=h-k.y-k.vy,$=D*D+E*E;$<C*C&&(D===0&&($+=(D=ea(r))*D),E===0&&($+=(E=ea(r))*E),$=(C-($=Math.sqrt($)))/$*i,f.vx+=(D*=$)*(C=(F*=F)/(m+F)),f.vy+=(E*=$)*C,k.vx-=D*(C=1-C),k.vy-=E*C)}}}function s(l){if(l.data)return l.r=e[l.data.index];for(var c=l.r=0;c<4;++c)l[c]&&l[c].r>l.r&&(l.r=l[c].r)}function u(){if(n){var l,c,f=n.length;for(e=new Array(f),l=0;l<f;++l)c=n[l],e[c.index]=+t(c,l,n)}}return typeof t!="function"&&(t=ee(t==null?1:+t)),o.initialize=function(l,c){n=l,r=c,u()},o.iterations=function(l){return arguments.length?(a=+l,o):a},o.strength=function(l){return arguments.length?(i=+l,o):i},o.radius=function(l){return arguments.length?(t=typeof l=="function"?l:ee(+l),u(),o):t},o},nbody:function(){var t,n,e,r,i,a=ee(-30),o=1,s=1/0,u=.81;function l(h){var p,m=t.length,g=Rg(t,xM,wM).visitAfter(f);for(r=h,p=0;p<m;++p)n=t[p],g.visit(d)}function c(){if(t){var h,p,m=t.length;for(i=new Array(m),h=0;h<m;++h)p=t[h],i[p.index]=+a(p,h,t)}}function f(h){var p,m,g,y,v,x=0,b=0;if(h.length){for(g=y=v=0;v<4;++v)(p=h[v])&&(m=Math.abs(p.value))&&(x+=p.value,b+=m,g+=m*p.x,y+=m*p.y);h.x=g/b,h.y=y/b}else{(p=h).x=p.data.x,p.y=p.data.y;do x+=i[p.data.index];while(p=p.next)}h.value=x}function d(h,p,m,g){if(!h.value)return!0;var y=h.x-n.x,v=h.y-n.y,x=g-p,b=y*y+v*v;if(x*x/u<b)return b<s&&(y===0&&(b+=(y=ea(e))*y),v===0&&(b+=(v=ea(e))*v),b<o&&(b=Math.sqrt(o*b)),n.vx+=y*h.value*r/b,n.vy+=v*h.value*r/b),!0;if(!(h.length||b>=s)){(h.data!==n||h.next)&&(y===0&&(b+=(y=ea(e))*y),v===0&&(b+=(v=ea(e))*v),b<o&&(b=Math.sqrt(o*b)));do h.data!==n&&(x=i[h.data.index]*r/b,n.vx+=y*x,n.vy+=v*x);while(h=h.next)}}return l.initialize=function(h,p){t=h,e=p,c()},l.strength=function(h){return arguments.length?(a=typeof h=="function"?h:ee(+h),c(),l):a},l.distanceMin=function(h){return arguments.length?(o=h*h,l):Math.sqrt(o)},l.distanceMax=function(h){return arguments.length?(s=h*h,l):Math.sqrt(s)},l.theta=function(h){return arguments.length?(u=h*h,l):Math.sqrt(u)},l},link:function(t){var n,e,r,i,a,o,s=bM,u=function(m){return 1/Math.min(i[m.source.index],i[m.target.index])},l=ee(30),c=1;function f(m){for(var g=0,y=t.length;g<c;++g)for(var v,x,b,w,A,_,k,F=0;F<y;++F)x=(v=t[F]).source,w=(b=v.target).x+b.vx-x.x-x.vx||ea(o),A=b.y+b.vy-x.y-x.vy||ea(o),w*=_=((_=Math.sqrt(w*w+A*A))-e[F])/_*m*n[F],A*=_,b.vx-=w*(k=a[F]),b.vy-=A*k,x.vx+=w*(k=1-k),x.vy+=A*k}function d(){if(r){var m,g,y=r.length,v=t.length,x=new Map(r.map((b,w)=>[s(b,w,r),b]));for(m=0,i=new Array(y);m<v;++m)(g=t[m]).index=m,typeof g.source!="object"&&(g.source=vD(x,g.source)),typeof g.target!="object"&&(g.target=vD(x,g.target)),i[g.source.index]=(i[g.source.index]||0)+1,i[g.target.index]=(i[g.target.index]||0)+1;for(m=0,a=new Array(v);m<v;++m)g=t[m],a[m]=i[g.source.index]/(i[g.source.index]+i[g.target.index]);n=new Array(v),h(),e=new Array(v),p()}}function h(){if(r)for(var m=0,g=t.length;m<g;++m)n[m]=+u(t[m],m,t)}function p(){if(r)for(var m=0,g=t.length;m<g;++m)e[m]=+l(t[m],m,t)}return t==null&&(t=[]),f.initialize=function(m,g){r=m,o=g,d()},f.links=function(m){return arguments.length?(t=m,d(),f):t},f.id=function(m){return arguments.length?(s=m,f):s},f.iterations=function(m){return arguments.length?(c=+m,f):c},f.strength=function(m){return arguments.length?(u=typeof m=="function"?m:ee(+m),h(),f):u},f.distance=function(m){return arguments.length?(l=typeof m=="function"?m:ee(+m),p(),f):l},f},x:function(t){var n,e,r,i=ee(.1);function a(s){for(var u,l=0,c=n.length;l<c;++l)(u=n[l]).vx+=(r[l]-u.x)*e[l]*s}function o(){if(n){var s,u=n.length;for(e=new Array(u),r=new Array(u),s=0;s<u;++s)e[s]=isNaN(r[s]=+t(n[s],s,n))?0:+i(n[s],s,n)}}return typeof t!="function"&&(t=ee(t==null?0:+t)),a.initialize=function(s){n=s,o()},a.strength=function(s){return arguments.length?(i=typeof s=="function"?s:ee(+s),o(),a):i},a.x=function(s){return arguments.length?(t=typeof s=="function"?s:ee(+s),o(),a):t},a},y:function(t){var n,e,r,i=ee(.1);function a(s){for(var u,l=0,c=n.length;l<c;++l)(u=n[l]).vy+=(r[l]-u.y)*e[l]*s}function o(){if(n){var s,u=n.length;for(e=new Array(u),r=new Array(u),s=0;s<u;++s)e[s]=isNaN(r[s]=+t(n[s],s,n))?0:+i(n[s],s,n)}}return typeof t!="function"&&(t=ee(t==null?0:+t)),a.initialize=function(s){n=s,o()},a.strength=function(s){return arguments.length?(i=typeof s=="function"?s:ee(+s),o(),a):i},a.y=function(s){return arguments.length?(t=typeof s=="function"?s:ee(+s),o(),a):t},a}},ju="forces",Pg=["alpha","alphaMin","alphaTarget","velocityDecay","forces"],kM=["static","iterations"],wD=["x","y","vx","vy"];function jg(t){O.call(this,null,t)}function AD(t,n,e,r){var i,a,o,s,u=K(n.forces);for(i=0,a=Pg.length;i<a;++i)(o=Pg[i])!==ju&&n.modified(o)&&t[o](n[o]);for(i=0,a=u.length;i<a;++i)s=ju+i,(o=e||n.modified(ju,i)?FM(u[i]):r&&DM(u[i],r)?t.force(s):null)&&t.force(s,o);for(a=t.numForces||0;i<a;++i)t.force(ju+i,null);return t.numForces=u.length,t}function DM(t,n){var e,r;for(e in t)if(bt(r=t[e])&&n.modified(Wn(r)))return 1;return 0}function FM(t){var n,e;for(e in tt(xD,t.force)||j("Unrecognized force: "+t.force),n=xD[t.force](),t)bt(n[e])&&CM(n[e],t[e],t);return n}function CM(t,n,e){t(bt(n)?r=>n(r,e):n)}jg.Definition={type:"Force",metadata:{modifies:!0},params:[{name:"static",type:"boolean",default:!1},{name:"restart",type:"boolean",default:!1},{name:"iterations",type:"number",default:300},{name:"alpha",type:"number",default:1},{name:"alphaMin",type:"number",default:.001},{name:"alphaTarget",type:"number",default:0},{name:"velocityDecay",type:"number",default:.4},{name:"forces",type:"param",array:!0,params:[{key:{force:"center"},params:[{name:"x",type:"number",default:0},{name:"y",type:"number",default:0}]},{key:{force:"collide"},params:[{name:"radius",type:"number",expr:!0},{name:"strength",type:"number",default:.7},{name:"iterations",type:"number",default:1}]},{key:{force:"nbody"},params:[{name:"strength",type:"number",default:-30,expr:!0},{name:"theta",type:"number",default:.9},{name:"distanceMin",type:"number",default:1},{name:"distanceMax",type:"number"}]},{key:{force:"link"},params:[{name:"links",type:"data"},{name:"id",type:"field"},{name:"distance",type:"number",default:30,expr:!0},{name:"strength",type:"number",expr:!0},{name:"iterations",type:"number",default:1}]},{key:{force:"x"},params:[{name:"strength",type:"number",default:.1},{name:"x",type:"field"}]},{key:{force:"y"},params:[{name:"strength",type:"number",default:.1},{name:"y",type:"field"}]}]},{name:"as",type:"string",array:!0,modify:!1,default:wD}]},V(jg,O,{transform(t,n){var e,r,i=this.value,a=n.changed(n.ADD_REM),o=t.modified(Pg),s=t.iterations||300;if(i?(a&&(n.modifies("index"),i.nodes(n.source)),(o||n.changed(n.MOD))&&AD(i,t,0,n)):(this.value=i=function(u,l){const c=_M(u),f=c.stop,d=c.restart;let h=!1;return c.stopped=()=>h,c.restart=()=>(h=!1,d()),c.stop=()=>(h=!0,f()),AD(c,l,!0).on("end",()=>h=!0)}(n.source,t),i.on("tick",(e=n.dataflow,r=this,()=>e.touch(r).run())),t.static||(a=!0,i.tick()),n.modifies("index")),o||a||t.modified(kM)||n.changed()&&t.restart){if(i.alpha(Math.max(i.alpha(),t.alpha||1)).alphaDecay(1-Math.pow(i.alphaMin(),1/s)),t.static)for(i.stop();--s>=0;)i.tick();else if(i.stopped()&&i.restart(),!a)return n.StopPropagation}return this.finish(t,n)},finish(t,n){const e=n.dataflow;for(let s,u=this._argops,l=0,c=u.length;l<c;++l)if(s=u[l],s.name===ju&&s.op._argval.force==="link"){for(var r,i=s.op._argops,a=0,o=i.length;a<o;++a)if(i[a].name==="links"&&(r=i[a].op.source)){e.pulse(r,e.changeset().reflow());break}}return n.reflow(t.modified()).modifies(wD)}});const EM=Object.freeze(Object.defineProperty({__proto__:null,force:jg},Symbol.toStringTag,{value:"Module"}));function $M(t,n){return t.parent===n.parent?1:2}function SM(t,n){return t+n.x}function MM(t,n){return Math.max(t,n.y)}function BM(t){var n=0,e=t.children,r=e&&e.length;if(r)for(;--r>=0;)n+=e[r].value;else n=1;t.value=n}function Lg(t,n){t instanceof Map?(t=[void 0,t],n===void 0&&(n=OM)):n===void 0&&(n=zM);for(var e,r,i,a,o,s=new Qo(t),u=[s];e=u.pop();)if((i=n(e.data))&&(o=(i=Array.from(i)).length))for(e.children=i,a=o-1;a>=0;--a)u.push(r=i[a]=new Qo(i[a])),r.parent=e,r.depth=e.depth+1;return s.eachBefore(_D)}function zM(t){return t.children}function OM(t){return Array.isArray(t)?t[1]:null}function NM(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function _D(t){var n=0;do t.height=n;while((t=t.parent)&&t.height<++n)}function Qo(t){this.data=t,this.depth=this.height=0,this.parent=null}function Hf(t){return t==null?null:kD(t)}function kD(t){if(typeof t!="function")throw new Error;return t}function Ha(){return 0}function Zo(t){return function(){return t}}Qo.prototype=Lg.prototype={constructor:Qo,count:function(){return this.eachAfter(BM)},each:function(t,n){let e=-1;for(const r of this)t.call(n,r,++e,this);return this},eachAfter:function(t,n){for(var e,r,i,a=this,o=[a],s=[],u=-1;a=o.pop();)if(s.push(a),e=a.children)for(r=0,i=e.length;r<i;++r)o.push(e[r]);for(;a=s.pop();)t.call(n,a,++u,this);return this},eachBefore:function(t,n){for(var e,r,i=this,a=[i],o=-1;i=a.pop();)if(t.call(n,i,++o,this),e=i.children)for(r=e.length-1;r>=0;--r)a.push(e[r]);return this},find:function(t,n){let e=-1;for(const r of this)if(t.call(n,r,++e,this))return r},sum:function(t){return this.eachAfter(function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e})},sort:function(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})},path:function(t){for(var n=this,e=function(a,o){if(a===o)return a;var s=a.ancestors(),u=o.ancestors(),l=null;for(a=s.pop(),o=u.pop();a===o;)l=a,a=s.pop(),o=u.pop();return l}(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function(){return Array.from(this)},leaves:function(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t},links:function(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n},copy:function(){return Lg(this).eachBefore(NM)},[Symbol.iterator]:function*(){var t,n,e,r,i=this,a=[i];do for(t=a.reverse(),a=[];i=t.pop();)if(yield i,n=i.children)for(e=0,r=n.length;e<r;++e)a.push(n[e]);while(a.length)}};const DD=4294967296;function RM(t,n){var e,r;if(qg(n,t))return[n];for(e=0;e<t.length;++e)if(Gf(n,t[e])&&qg(Lu(t[e],n),t))return[t[e],n];for(e=0;e<t.length-1;++e)for(r=e+1;r<t.length;++r)if(Gf(Lu(t[e],t[r]),n)&&Gf(Lu(t[e],n),t[r])&&Gf(Lu(t[r],n),t[e])&&qg(CD(t[e],t[r],n),t))return[t[e],t[r],n];throw new Error}function Gf(t,n){var e=t.r-n.r,r=n.x-t.x,i=n.y-t.y;return e<0||e*e<r*r+i*i}function FD(t,n){var e=t.r-n.r+1e-9*Math.max(t.r,n.r,1),r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function qg(t,n){for(var e=0;e<n.length;++e)if(!FD(t,n[e]))return!1;return!0}function TM(t){switch(t.length){case 1:return function(n){return{x:n.x,y:n.y,r:n.r}}(t[0]);case 2:return Lu(t[0],t[1]);case 3:return CD(t[0],t[1],t[2])}}function Lu(t,n){var e=t.x,r=t.y,i=t.r,a=n.x,o=n.y,s=n.r,u=a-e,l=o-r,c=s-i,f=Math.sqrt(u*u+l*l);return{x:(e+a+u/f*c)/2,y:(r+o+l/f*c)/2,r:(f+i+s)/2}}function CD(t,n,e){var r=t.x,i=t.y,a=t.r,o=n.x,s=n.y,u=n.r,l=e.x,c=e.y,f=e.r,d=r-o,h=r-l,p=i-s,m=i-c,g=u-a,y=f-a,v=r*r+i*i-a*a,x=v-o*o-s*s+u*u,b=v-l*l-c*c+f*f,w=h*p-d*m,A=(p*b-m*x)/(2*w)-r,_=(m*g-p*y)/w,k=(h*x-d*b)/(2*w)-i,F=(d*y-h*g)/w,C=_*_+F*F-1,D=2*(a+A*_+k*F),E=A*A+k*k-a*a,$=-(Math.abs(C)>1e-6?(D+Math.sqrt(D*D-4*C*E))/(2*C):E/D);return{x:r+A+_*$,y:i+k+F*$,r:$}}function ED(t,n,e){var r,i,a,o,s=t.x-n.x,u=t.y-n.y,l=s*s+u*u;l?(i=n.r+e.r,i*=i,o=t.r+e.r,i>(o*=o)?(r=(l+o-i)/(2*l),a=Math.sqrt(Math.max(0,o/l-r*r)),e.x=t.x-r*s-a*u,e.y=t.y-r*u+a*s):(r=(l+i-o)/(2*l),a=Math.sqrt(Math.max(0,i/l-r*r)),e.x=n.x+r*s-a*u,e.y=n.y+r*u+a*s)):(e.x=n.x+e.r,e.y=n.y)}function $D(t,n){var e=t.r+n.r-1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function SD(t){var n=t._,e=t.next._,r=n.r+e.r,i=(n.x*e.r+e.x*n.r)/r,a=(n.y*e.r+e.y*n.r)/r;return i*i+a*a}function Vf(t){this._=t,this.next=null,this.previous=null}function PM(t,n){if(!(a=(t=function(h){return typeof h=="object"&&"length"in h?h:Array.from(h)}(t)).length))return 0;var e,r,i,a,o,s,u,l,c,f,d;if((e=t[0]).x=0,e.y=0,!(a>1))return e.r;if(r=t[1],e.x=-r.r,r.x=e.r,r.y=0,!(a>2))return e.r+r.r;ED(r,e,i=t[2]),e=new Vf(e),r=new Vf(r),i=new Vf(i),e.next=i.previous=r,r.next=e.previous=i,i.next=r.previous=e;t:for(u=3;u<a;++u){ED(e._,r._,i=t[u]),i=new Vf(i),l=r.next,c=e.previous,f=r._.r,d=e._.r;do if(f<=d){if($D(l._,i._)){r=l,e.next=r,r.previous=e,--u;continue t}f+=l._.r,l=l.next}else{if($D(c._,i._)){(e=c).next=r,r.previous=e,--u;continue t}d+=c._.r,c=c.previous}while(l!==c.next);for(i.previous=e,i.next=r,e.next=r.previous=r=i,o=SD(e);(i=i.next)!==r;)(s=SD(i))<o&&(e=i,o=s);r=e.next}for(e=[r._],i=r;(i=i.next)!==r;)e.push(i._);for(i=function(h,p){for(var m,g,y=0,v=(h=function(b,w){let A,_,k=b.length;for(;k;)_=w()*k--|0,A=b[k],b[k]=b[_],b[_]=A;return b}(Array.from(h),p)).length,x=[];y<v;)m=h[y],g&&FD(g,m)?++y:(g=TM(x=RM(x,m)),y=0);return g}(e,n),u=0;u<a;++u)(e=t[u]).x-=i.x,e.y-=i.y;return i.r}function jM(t){return Math.sqrt(t.value)}function MD(t){return function(n){n.children||(n.r=Math.max(0,+t(n)||0))}}function Ug(t,n,e){return function(r){if(i=r.children){var i,a,o,s=i.length,u=t(r)*n||0;if(u)for(a=0;a<s;++a)i[a].r+=u;if(o=PM(i,e),u)for(a=0;a<s;++a)i[a].r-=u;r.r=o+u}}}function BD(t){return function(n){var e=n.parent;n.r*=t,e&&(n.x=e.x+t*n.x,n.y=e.y+t*n.y)}}function zD(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function qu(t,n,e,r,i){for(var a,o=t.children,s=-1,u=o.length,l=t.value&&(r-n)/t.value;++s<u;)(a=o[s]).y0=e,a.y1=i,a.x0=n,a.x1=n+=a.value*l}var LM={depth:-1},OD={},Ig={};function qM(t){return t.id}function UM(t){return t.parentId}function ND(){var t,n=qM,e=UM;function r(i){var a,o,s,u,l,c,f,d,h=Array.from(i),p=n,m=e,g=new Map;if(t!=null){const y=h.map((b,w)=>function(A){A=`${A}`;let _=A.length;return Wg(A,_-1)&&!Wg(A,_-2)&&(A=A.slice(0,-1)),A[0]==="/"?A:`/${A}`}(t(b,w,i))),v=y.map(RD),x=new Set(y).add("");for(const b of v)x.has(b)||(x.add(b),y.push(b),v.push(RD(b)),h.push(Ig));p=(b,w)=>y[w],m=(b,w)=>v[w]}for(s=0,a=h.length;s<a;++s)o=h[s],c=h[s]=new Qo(o),(f=p(o,s,i))!=null&&(f+="")&&(d=c.id=f,g.set(d,g.has(d)?OD:c)),(f=m(o,s,i))!=null&&(f+="")&&(c.parent=f);for(s=0;s<a;++s)if(f=(c=h[s]).parent){if(!(l=g.get(f)))throw new Error("missing: "+f);if(l===OD)throw new Error("ambiguous: "+f);l.children?l.children.push(c):l.children=[c],c.parent=l}else{if(u)throw new Error("multiple roots");u=c}if(!u)throw new Error("no root");if(t!=null){for(;u.data===Ig&&u.children.length===1;)u=u.children[0],--a;for(let y=h.length-1;y>=0&&(c=h[y]).data===Ig;--y)c.data=null}if(u.parent=LM,u.eachBefore(function(y){y.depth=y.parent.depth+1,--a}).eachBefore(_D),u.parent=null,a>0)throw new Error("cycle");return u}return r.id=function(i){return arguments.length?(n=Hf(i),r):n},r.parentId=function(i){return arguments.length?(e=Hf(i),r):e},r.path=function(i){return arguments.length?(t=Hf(i),r):t},r}function RD(t){let n=t.length;if(n<2)return"";for(;--n>1&&!Wg(t,n););return t.slice(0,n)}function Wg(t,n){if(t[n]==="/"){let e=0;for(;n>0&&t[--n]==="\\";)++e;if(!(1&e))return!0}return!1}function IM(t,n){return t.parent===n.parent?1:2}function Hg(t){var n=t.children;return n?n[0]:t.t}function Gg(t){var n=t.children;return n?n[n.length-1]:t.t}function WM(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function HM(t,n,e){return t.a.parent===n.parent?t.a:e}function Yf(t,n){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=n}function Xf(t,n,e,r,i){for(var a,o=t.children,s=-1,u=o.length,l=t.value&&(i-e)/t.value;++s<u;)(a=o[s]).x0=n,a.x1=r,a.y0=e,a.y1=e+=a.value*l}Yf.prototype=Object.create(Qo.prototype);var TD=(1+Math.sqrt(5))/2;function PD(t,n,e,r,i,a){for(var o,s,u,l,c,f,d,h,p,m,g,y=[],v=n.children,x=0,b=0,w=v.length,A=n.value;x<w;){u=i-e,l=a-r;do c=v[b++].value;while(!c&&b<w);for(f=d=c,g=c*c*(m=Math.max(l/u,u/l)/(A*t)),p=Math.max(d/g,g/f);b<w;++b){if(c+=s=v[b].value,s<f&&(f=s),s>d&&(d=s),g=c*c*m,(h=Math.max(d/g,g/f))>p){c-=s;break}p=h}y.push(o={value:c,dice:u<l,children:v.slice(x,b)}),o.dice?qu(o,e,r,i,A?r+=l*c/A:a):Xf(o,e,r,A?e+=u*c/A:i,a),A-=c,x=b}return y}const jD=function t(n){function e(r,i,a,o,s){PD(n,r,i,a,o,s)}return e.ratio=function(r){return t((r=+r)>1?r:1)},e}(TD),GM=function t(n){function e(r,i,a,o,s){if((u=r._squarify)&&u.ratio===n)for(var u,l,c,f,d,h=-1,p=u.length,m=r.value;++h<p;){for(c=(l=u[h]).children,f=l.value=0,d=c.length;f<d;++f)l.value+=c[f].value;l.dice?qu(l,i,a,o,m?a+=(s-a)*l.value/m:s):Xf(l,i,a,m?i+=(o-i)*l.value/m:o,s),m-=l.value}else r._squarify=u=PD(n,r,i,a,o,s),u.ratio=n}return e.ratio=function(r){return t((r=+r)>1?r:1)},e}(TD);function Vg(t,n,e){const r={};return t.each(i=>{const a=i.data;e(a)&&(r[n(a)]=i)}),t.lookup=r,t}function Yg(t){O.call(this,null,t)}Yg.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]};const VM=t=>t.values;function YM(){const t=[],n={entries:i=>r(e(i,0),0),key:i=>(t.push(i),n)};function e(i,a){if(a>=t.length)return i;const o=i.length,s=t[a++],u={},l={};let c,f,d,h=-1;for(;++h<o;)c=s(f=i[h])+"",(d=u[c])?d.push(f):u[c]=[f];for(c in u)l[c]=e(u[c],a);return l}function r(i,a){if(++a>t.length)return i;const o=[];for(const s in i)o.push({key:s,values:r(i[s],a)});return o}return n}function di(t){O.call(this,null,t)}V(Yg,O,{transform(t,n){n.source||j("Nest transform requires an upstream data source.");var e=t.generate,r=t.modified(),i=n.clone(),a=this.value;return(!a||r||n.changed())&&(a&&a.each(o=>{o.children&&tc(o.data)&&i.rem.push(o.data)}),this.value=a=Lg({values:K(t.keys).reduce((o,s)=>(o.key(s),o),YM()).entries(i.source)},VM),e&&a.each(o=>{o.children&&(o=St(o.data),i.add.push(o),i.source.push(o))}),Vg(a,st,st)),i.source.root=a,i}});const XM=(t,n)=>t.parent===n.parent?1:2;V(di,O,{transform(t,n){n.source&&n.source.root||j(this.constructor.name+" transform requires a backing tree data source.");const e=this.layout(t.method),r=this.fields,i=n.source.root,a=t.as||r;t.field?i.sum(t.field):i.count(),t.sort&&i.sort(Sa(t.sort,o=>o.data)),function(o,s,u){for(let l,c=0,f=s.length;c<f;++c)l=s[c],l in u&&o[l](u[l])}(e,this.params,t),e.separation&&e.separation(t.separation!==!1?XM:Gs);try{this.value=e(i)}catch(o){j(o)}return i.each(o=>function(s,u,l){const c=s.data,f=u.length-1;for(let d=0;d<f;++d)c[l[d]]=s[u[d]];c[l[f]]=s.children?s.children.length:0}(o,r,a)),n.reflow(t.modified()).modifies(a).modifies("leaf")}});const Xg=["x","y","r","depth","children"];function Jg(t){di.call(this,t)}Jg.Definition={type:"Pack",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"radius",type:"field",default:null},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:Xg.length,default:Xg}]},V(Jg,di,{layout:function(){var t=null,n=1,e=1,r=Ha;function i(a){const o=function(){let s=1;return()=>(s=(1664525*s+1013904223)%DD)/DD}();return a.x=n/2,a.y=e/2,t?a.eachBefore(MD(t)).eachAfter(Ug(r,.5,o)).eachBefore(BD(1)):a.eachBefore(MD(jM)).eachAfter(Ug(Ha,1,o)).eachAfter(Ug(r,a.r/Math.min(n,e),o)).eachBefore(BD(Math.min(n,e)/(2*a.r))),a}return i.radius=function(a){return arguments.length?(t=Hf(a),i):t},i.size=function(a){return arguments.length?(n=+a[0],e=+a[1],i):[n,e]},i.padding=function(a){return arguments.length?(r=typeof a=="function"?a:Zo(+a),i):r},i},params:["radius","size","padding"],fields:Xg});const Kg=["x0","y0","x1","y1","depth","children"];function Qg(t){di.call(this,t)}function Zg(t){O.call(this,null,t)}Qg.Definition={type:"Partition",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:Kg.length,default:Kg}]},V(Qg,di,{layout:function(){var t=1,n=1,e=0,r=!1;function i(a){var o=a.height+1;return a.x0=a.y0=e,a.x1=t,a.y1=n/o,a.eachBefore(function(s,u){return function(l){l.children&&qu(l,l.x0,s*(l.depth+1)/u,l.x1,s*(l.depth+2)/u);var c=l.x0,f=l.y0,d=l.x1-e,h=l.y1-e;d<c&&(c=d=(c+d)/2),h<f&&(f=h=(f+h)/2),l.x0=c,l.y0=f,l.x1=d,l.y1=h}}(n,o)),r&&a.eachBefore(zD),a}return i.round=function(a){return arguments.length?(r=!!a,i):r},i.size=function(a){return arguments.length?(t=+a[0],n=+a[1],i):[t,n]},i.padding=function(a){return arguments.length?(e=+a,i):e},i},params:["size","round","padding"],fields:Kg}),Zg.Definition={type:"Stratify",metadata:{treesource:!0},params:[{name:"key",type:"field",required:!0},{name:"parentKey",type:"field",required:!0}]},V(Zg,O,{transform(t,n){n.source||j("Stratify transform requires an upstream data source.");let e=this.value;const r=t.modified(),i=n.fork(n.ALL).materialize(n.SOURCE),a=!e||r||n.changed(n.ADD_REM)||n.modified(t.key.fields)||n.modified(t.parentKey.fields);return i.source=i.source.slice(),a&&(e=i.source.length?Vg(ND().id(t.key).parentId(t.parentKey)(i.source),t.key,Be):Vg(ND()([{}]),t.key,t.key)),i.source.root=this.value=e,i}});const LD={tidy:function(){var t=IM,n=1,e=1,r=null;function i(u){var l=function(y){for(var v,x,b,w,A,_=new Yf(y,0),k=[_];v=k.pop();)if(b=v._.children)for(v.children=new Array(A=b.length),w=A-1;w>=0;--w)k.push(x=v.children[w]=new Yf(b[w],w)),x.parent=v;return(_.parent=new Yf(null,0)).children=[_],_}(u);if(l.eachAfter(a),l.parent.m=-l.z,l.eachBefore(o),r)u.eachBefore(s);else{var c=u,f=u,d=u;u.eachBefore(function(y){y.x<c.x&&(c=y),y.x>f.x&&(f=y),y.depth>d.depth&&(d=y)});var h=c===f?1:t(c,f)/2,p=h-c.x,m=n/(f.x+h+p),g=e/(d.depth||1);u.eachBefore(function(y){y.x=(y.x+p)*m,y.y=y.depth*g})}return u}function a(u){var l=u.children,c=u.parent.children,f=u.i?c[u.i-1]:null;if(l){(function(h){for(var p,m=0,g=0,y=h.children,v=y.length;--v>=0;)(p=y[v]).z+=m,p.m+=m,m+=p.s+(g+=p.c)})(u);var d=(l[0].z+l[l.length-1].z)/2;f?(u.z=f.z+t(u._,f._),u.m=u.z-d):u.z=d}else f&&(u.z=f.z+t(u._,f._));u.parent.A=function(h,p,m){if(p){for(var g,y=h,v=h,x=p,b=y.parent.children[0],w=y.m,A=v.m,_=x.m,k=b.m;x=Gg(x),y=Hg(y),x&&y;)b=Hg(b),(v=Gg(v)).a=h,(g=x.z+_-y.z-w+t(x._,y._))>0&&(WM(HM(x,h,m),h,g),w+=g,A+=g),_+=x.m,w+=y.m,k+=b.m,A+=v.m;x&&!Gg(v)&&(v.t=x,v.m+=_-A),y&&!Hg(b)&&(b.t=y,b.m+=w-k,m=h)}return m}(u,f,u.parent.A||c[0])}function o(u){u._.x=u.z+u.parent.m,u.m+=u.parent.m}function s(u){u.x*=n,u.y=u.depth*e}return i.separation=function(u){return arguments.length?(t=u,i):t},i.size=function(u){return arguments.length?(r=!1,n=+u[0],e=+u[1],i):r?null:[n,e]},i.nodeSize=function(u){return arguments.length?(r=!0,n=+u[0],e=+u[1],i):r?[n,e]:null},i},cluster:function(){var t=$M,n=1,e=1,r=!1;function i(a){var o,s=0;a.eachAfter(function(d){var h=d.children;h?(d.x=function(p){return p.reduce(SM,0)/p.length}(h),d.y=function(p){return 1+p.reduce(MM,0)}(h)):(d.x=o?s+=t(d,o):0,d.y=0,o=d)});var u=function(d){for(var h;h=d.children;)d=h[0];return d}(a),l=function(d){for(var h;h=d.children;)d=h[h.length-1];return d}(a),c=u.x-t(u,l)/2,f=l.x+t(l,u)/2;return a.eachAfter(r?function(d){d.x=(d.x-a.x)*n,d.y=(a.y-d.y)*e}:function(d){d.x=(d.x-c)/(f-c)*n,d.y=(1-(a.y?d.y/a.y:1))*e})}return i.separation=function(a){return arguments.length?(t=a,i):t},i.size=function(a){return arguments.length?(r=!1,n=+a[0],e=+a[1],i):r?null:[n,e]},i.nodeSize=function(a){return arguments.length?(r=!0,n=+a[0],e=+a[1],i):r?[n,e]:null},i}},t1=["x","y","depth","children"];function n1(t){di.call(this,t)}function e1(t){O.call(this,[],t)}n1.Definition={type:"Tree",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"tidy",values:["tidy","cluster"]},{name:"size",type:"number",array:!0,length:2},{name:"nodeSize",type:"number",array:!0,length:2},{name:"separation",type:"boolean",default:!0},{name:"as",type:"string",array:!0,length:t1.length,default:t1}]},V(n1,di,{layout(t){const n=t||"tidy";if(tt(LD,n))return LD[n]();j("Unrecognized Tree layout method: "+n)},params:["size","nodeSize"],fields:t1}),e1.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]},V(e1,O,{transform(t,n){const e=this.value,r=n.source&&n.source.root,i=n.fork(n.NO_SOURCE),a={};return r||j("TreeLinks transform requires a tree data source."),n.changed(n.ADD_REM)?(i.rem=e,n.visit(n.SOURCE,o=>a[st(o)]=1),r.each(o=>{const s=o.data,u=o.parent&&o.parent.data;u&&a[st(s)]&&a[st(u)]&&i.add.push(St({source:u,target:s}))}),this.value=i.add):n.changed(n.MOD)&&(n.visit(n.MOD,o=>a[st(o)]=1),e.forEach(o=>{(a[st(o.source)]||a[st(o.target)])&&i.mod.push(o)})),i}});const qD={binary:function(t,n,e,r,i){var a,o,s=t.children,u=s.length,l=new Array(u+1);for(l[0]=o=a=0;a<u;++a)l[a+1]=o+=s[a].value;(function c(f,d,h,p,m,g,y){if(f>=d-1){var v=s[f];return v.x0=p,v.y0=m,v.x1=g,void(v.y1=y)}for(var x=l[f],b=h/2+x,w=f+1,A=d-1;w<A;){var _=w+A>>>1;l[_]<b?w=_+1:A=_}b-l[w-1]<l[w]-b&&f+1<w&&--w;var k=l[w]-x,F=h-k;if(g-p>y-m){var C=h?(p*F+g*k)/h:g;c(f,w,k,p,m,C,y),c(w,d,F,C,m,g,y)}else{var D=h?(m*F+y*k)/h:y;c(f,w,k,p,m,g,D),c(w,d,F,p,D,g,y)}})(0,u,t.value,n,e,r,i)},dice:qu,slice:Xf,slicedice:function(t,n,e,r,i){(1&t.depth?Xf:qu)(t,n,e,r,i)},squarify:jD,resquarify:GM},r1=["x0","y0","x1","y1","depth","children"];function i1(t){di.call(this,t)}i1.Definition={type:"Treemap",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"squarify",values:["squarify","resquarify","binary","dice","slice","slicedice"]},{name:"padding",type:"number",default:0},{name:"paddingInner",type:"number",default:0},{name:"paddingOuter",type:"number",default:0},{name:"paddingTop",type:"number",default:0},{name:"paddingRight",type:"number",default:0},{name:"paddingBottom",type:"number",default:0},{name:"paddingLeft",type:"number",default:0},{name:"ratio",type:"number",default:1.618033988749895},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:r1.length,default:r1}]},V(i1,di,{layout(){const t=function(){var n=jD,e=!1,r=1,i=1,a=[0],o=Ha,s=Ha,u=Ha,l=Ha,c=Ha;function f(h){return h.x0=h.y0=0,h.x1=r,h.y1=i,h.eachBefore(d),a=[0],e&&h.eachBefore(zD),h}function d(h){var p=a[h.depth],m=h.x0+p,g=h.y0+p,y=h.x1-p,v=h.y1-p;y<m&&(m=y=(m+y)/2),v<g&&(g=v=(g+v)/2),h.x0=m,h.y0=g,h.x1=y,h.y1=v,h.children&&(p=a[h.depth+1]=o(h)/2,m+=c(h)-p,g+=s(h)-p,(y-=u(h)-p)<m&&(m=y=(m+y)/2),(v-=l(h)-p)<g&&(g=v=(g+v)/2),n(h,m,g,y,v))}return f.round=function(h){return arguments.length?(e=!!h,f):e},f.size=function(h){return arguments.length?(r=+h[0],i=+h[1],f):[r,i]},f.tile=function(h){return arguments.length?(n=kD(h),f):n},f.padding=function(h){return arguments.length?f.paddingInner(h).paddingOuter(h):f.paddingInner()},f.paddingInner=function(h){return arguments.length?(o=typeof h=="function"?h:Zo(+h),f):o},f.paddingOuter=function(h){return arguments.length?f.paddingTop(h).paddingRight(h).paddingBottom(h).paddingLeft(h):f.paddingTop()},f.paddingTop=function(h){return arguments.length?(s=typeof h=="function"?h:Zo(+h),f):s},f.paddingRight=function(h){return arguments.length?(u=typeof h=="function"?h:Zo(+h),f):u},f.paddingBottom=function(h){return arguments.length?(l=typeof h=="function"?h:Zo(+h),f):l},f.paddingLeft=function(h){return arguments.length?(c=typeof h=="function"?h:Zo(+h),f):c},f}();return t.ratio=n=>{const e=t.tile();e.ratio&&t.tile(e.ratio(n))},t.method=n=>{tt(qD,n)?t.tile(qD[n]):j("Unrecognized Treemap layout method: "+n)},t},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:r1});const JM=Object.freeze(Object.defineProperty({__proto__:null,nest:Yg,pack:Jg,partition:Qg,stratify:Zg,tree:n1,treelinks:e1,treemap:i1},Symbol.toStringTag,{value:"Module"})),a1=4278190080;function o1(t,n,e){return new Uint32Array(t.getImageData(0,0,n,e).data.buffer)}function Jf(t,n,e){if(!n.length)return;const r=n[0].mark.marktype;r==="group"?n.forEach(i=>{i.items.forEach(a=>Jf(t,a.items,e))}):Ae[r].draw(t,{items:e?n.map(KM):n})}function KM(t){const n=nc(t,{});return n.stroke&&n.strokeOpacity!==0||n.fill&&n.fillOpacity!==0?{...n,strokeOpacity:1,stroke:"#000",fillOpacity:0}:n}const re=31,ra=new Uint32Array(33),rr=new Uint32Array(33);rr[0]=0,ra[0]=~rr[0];for(let t=1;t<=32;++t)rr[t]=rr[t-1]<<1|1,ra[t]=~rr[t];function QM(t,n,e){const r=Math.max(1,Math.sqrt(t*n/1e6)),i=~~((t+2*e+r)/r),a=~~((n+2*e+r)/r),o=s=>~~((s+e)/r);return o.invert=s=>s*r-e,o.bitmap=()=>function(s,u){const l=new Uint32Array(~~((s*u+32)/32));function c(d,h){l[d]|=h}function f(d,h){l[d]&=h}return{array:l,get:(d,h)=>{const p=h*s+d;return l[p>>>5]&1<<(p&re)},set:(d,h)=>{const p=h*s+d;c(p>>>5,1<<(p&re))},clear:(d,h)=>{const p=h*s+d;f(p>>>5,~(1<<(p&re)))},getRange:(d,h,p,m)=>{let g,y,v,x,b=m;for(;b>=h;--b)if(g=b*s+d,y=b*s+p,v=g>>>5,x=y>>>5,v===x){if(l[v]&ra[g&re]&rr[1+(y&re)])return!0}else{if(l[v]&ra[g&re]||l[x]&rr[1+(y&re)])return!0;for(let w=v+1;w<x;++w)if(l[w])return!0}return!1},setRange:(d,h,p,m)=>{let g,y,v,x,b;for(;h<=m;++h)if(g=h*s+d,y=h*s+p,v=g>>>5,x=y>>>5,v===x)c(v,ra[g&re]&rr[1+(y&re)]);else for(c(v,ra[g&re]),c(x,rr[1+(y&re)]),b=v+1;b<x;++b)c(b,4294967295)},clearRange:(d,h,p,m)=>{let g,y,v,x,b;for(;h<=m;++h)if(g=h*s+d,y=h*s+p,v=g>>>5,x=y>>>5,v===x)f(v,rr[g&re]|ra[1+(y&re)]);else for(f(v,rr[g&re]),f(x,ra[1+(y&re)]),b=v+1;b<x;++b)f(b,0)},outOfBounds:(d,h,p,m)=>d<0||h<0||m>=u||p>=s}}(i,a),o.ratio=r,o.padding=e,o.width=t,o.height=n,o}function Kf(t,n,e,r,i,a){let o=e/2;return t-o<0||t+o>i||n-(o=r/2)<0||n+o>a}function ia(t,n,e,r,i,a,o,s){const u=i*a/(2*r),l=t(n-u),c=t(n+u),f=t(e-(a/=2)),d=t(e+a);return o.outOfBounds(l,f,c,d)||o.getRange(l,f,c,d)||s&&s.getRange(l,f,c,d)}const ZM=[-1,-1,1,1],tB=[-1,1,-1,1],nB=["right","center","left"],eB=["bottom","middle","top"];function UD(t,n,e,r,i,a,o,s,u,l,c,f){return!(i.outOfBounds(t,e,n,r)||(f&&a||i).getRange(t,e,n,r))}const rB={"top-left":0,top:1,"top-right":2,left:4,middle:5,right:6,"bottom-left":8,bottom:9,"bottom-right":10},iB={naive:function(t,n,e,r){const i=t.width,a=t.height;return function(o){const s=o.datum.datum.items[r].items,u=s.length,l=o.datum.fontSize,c=we.width(o.datum,o.datum.text);let f,d,h,p,m,g,y,v=0;for(let x=0;x<u;++x)f=s[x].x,h=s[x].y,d=s[x].x2===void 0?f:s[x].x2,p=s[x].y2===void 0?h:s[x].y2,m=(f+d)/2,g=(h+p)/2,y=Math.abs(d-f+p-h),y>=v&&(v=y,o.x=m,o.y=g);return m=c/2,g=l/2,f=o.x-m,d=o.x+m,h=o.y-g,p=o.y+g,o.align="center",f<0&&d<=i?o.align="left":0<=f&&i<d&&(o.align="right"),o.baseline="middle",h<0&&p<=a?o.baseline="top":0<=h&&a<p&&(o.baseline="bottom"),!0}},"reduced-search":function(t,n,e,r){const i=t.width,a=t.height,o=n[0],s=n[1];function u(l,c,f,d,h){const p=t.invert(l),m=t.invert(c);let g,y=f,v=a;if(!Kf(p,m,d,h,i,a)&&!ia(t,p,m,h,d,y,o,s)&&!ia(t,p,m,h,d,h,o,null)){for(;v-y>=1;)g=(y+v)/2,ia(t,p,m,h,d,g,o,s)?v=g:y=g;if(y>f)return[p,m,y,!0]}}return function(l){const c=l.datum.datum.items[r].items,f=c.length,d=l.datum.fontSize,h=we.width(l.datum,l.datum.text);let p,m,g,y,v,x,b,w,A,_,k,F,C,D,E,$,M,S=e?d:0,B=!1,z=!1,N=0;for(let W=0;W<f;++W){for(p=c[W].x,g=c[W].y,m=c[W].x2===void 0?p:c[W].x2,y=c[W].y2===void 0?g:c[W].y2,p>m&&(M=p,p=m,m=M),g>y&&(M=g,g=y,y=M),A=t(p),k=t(m),_=~~((A+k)/2),F=t(g),D=t(y),C=~~((F+D)/2),b=_;b>=A;--b)for(w=C;w>=F;--w)$=u(b,w,S,h,d),$&&([l.x,l.y,S,B]=$);for(b=_;b<=k;++b)for(w=C;w<=D;++w)$=u(b,w,S,h,d),$&&([l.x,l.y,S,B]=$);B||e||(E=Math.abs(m-p+y-g),v=(p+m)/2,x=(g+y)/2,E>=N&&!Kf(v,x,h,d,i,a)&&!ia(t,v,x,d,h,d,o,null)&&(N=E,l.x=v,l.y=x,z=!0))}return!(!B&&!z)&&(v=h/2,x=d/2,o.setRange(t(l.x-v),t(l.y-x),t(l.x+v),t(l.y+x)),l.align="center",l.baseline="middle",!0)}},floodfill:function(t,n,e,r){const i=t.width,a=t.height,o=n[0],s=n[1],u=t.bitmap();return function(l){const c=l.datum.datum.items[r].items,f=c.length,d=l.datum.fontSize,h=we.width(l.datum,l.datum.text),p=[];let m,g,y,v,x,b,w,A,_,k,F,C,D=e?d:0,E=!1,$=!1,M=0;for(let S=0;S<f;++S){for(m=c[S].x,y=c[S].y,g=c[S].x2===void 0?m:c[S].x2,v=c[S].y2===void 0?y:c[S].y2,p.push([t((m+g)/2),t((y+v)/2)]);p.length;)if([w,A]=p.pop(),!(o.get(w,A)||s.get(w,A)||u.get(w,A))){u.set(w,A);for(let B=0;B<4;++B)x=w+ZM[B],b=A+tB[B],u.outOfBounds(x,b,x,b)||p.push([x,b]);if(x=t.invert(w),b=t.invert(A),_=D,k=a,!Kf(x,b,h,d,i,a)&&!ia(t,x,b,d,h,_,o,s)&&!ia(t,x,b,d,h,d,o,null)){for(;k-_>=1;)F=(_+k)/2,ia(t,x,b,d,h,F,o,s)?k=F:_=F;_>D&&(l.x=x,l.y=b,D=_,E=!0)}}E||e||(C=Math.abs(g-m+v-y),x=(m+g)/2,b=(y+v)/2,C>=M&&!Kf(x,b,h,d,i,a)&&!ia(t,x,b,d,h,d,o,null)&&(M=C,l.x=x,l.y=b,$=!0))}return!(!E&&!$)&&(x=h/2,b=d/2,o.setRange(t(l.x-x),t(l.y-b),t(l.x+x),t(l.y+b)),l.align="center",l.baseline="middle",!0)}}};function aB(t,n,e,r,i,a,o,s,u,l,c){if(!t.length)return t;const f=Math.max(r.length,i.length),d=function(D,E){const $=new Float64Array(E),M=D.length;for(let S=0;S<M;++S)$[S]=D[S]||0;for(let S=M;S<E;++S)$[S]=$[M-1];return $}(r,f),h=function(D,E){const $=new Int8Array(E),M=D.length;for(let S=0;S<M;++S)$[S]|=rB[D[S]];for(let S=M;S<E;++S)$[S]=$[M-1];return $}(i,f),p=(b=t[0].datum)&&b.mark&&b.mark.marktype,m=p==="group"&&t[0].datum.items[u].marktype,g=m==="area",y=function(D,E,$,M){const S=B=>[B.x,B.x,B.x,B.y,B.y,B.y];return D?D==="line"||D==="area"?B=>S(B.datum):E==="line"?B=>{const z=B.datum.items[M].items;return S(z.length?z[$==="start"?0:z.length-1]:{x:NaN,y:NaN})}:B=>{const z=B.datum.bounds;return[z.x1,(z.x1+z.x2)/2,z.x2,z.y1,(z.y1+z.y2)/2,z.y2]}:S}(p,m,s,u),v=l===null||l===1/0,x=g&&c==="naive";var b;let w=-1,A=-1;const _=t.map(D=>{const E=v?we.width(D,D.text):void 0;return w=Math.max(w,E),A=Math.max(A,D.fontSize),{datum:D,opacity:0,x:void 0,y:void 0,align:void 0,baseline:void 0,boundary:y(D),textWidth:E}});l=l===null||l===1/0?Math.max(w,A)+Math.max(...r):l;const k=QM(n[0],n[1],l);let F;if(!x){e&&_.sort(($,M)=>e($.datum,M.datum));let D=!1;for(let $=0;$<h.length&&!D;++$)D=h[$]===5||d[$]<0;const E=(p&&o||g)&&t.map($=>$.datum);F=a.length||E?function($,M,S,B,z){const N=$.width,W=$.height,X=B||z,L=qi(N,W).getContext("2d"),et=qi(N,W).getContext("2d"),ot=X&&qi(N,W).getContext("2d");S.forEach(ti=>Jf(L,ti,!1)),Jf(et,M,!1),X&&Jf(ot,M,!0);const nt=o1(L,N,W),mt=o1(et,N,W),pt=X&&o1(ot,N,W),J=$.bitmap(),Mt=X&&$.bitmap();let Tt,kt,Et,tn,nn,It,be,zn;for(kt=0;kt<W;++kt)for(Tt=0;Tt<N;++Tt)nn=kt*N+Tt,It=nt[nn]&a1,zn=mt[nn]&a1,be=X&&pt[nn]&a1,(It||be||zn)&&(Et=$(Tt),tn=$(kt),z||!It&&!zn||J.set(Et,tn),X&&(It||be)&&Mt.set(Et,tn));return[J,Mt]}(k,E||[],a,D,g):function($,M){const S=$.bitmap();return(M||[]).forEach(B=>S.set($(B.boundary[0]),$(B.boundary[3]))),[S,void 0]}(k,o&&_)}const C=g?iB[c](k,F,o,u):function(D,E,$,M){const S=D.width,B=D.height,z=E[0],N=E[1],W=M.length;return function(X){const L=X.boundary,et=X.datum.fontSize;if(L[2]<0||L[5]<0||L[0]>S||L[3]>B)return!1;let ot,nt,mt,pt,J,Mt,Tt,kt,Et,tn,nn,It,be,zn,ti,Je=X.textWidth??0;for(let Se=0;Se<W;++Se){if(ot=(3&$[Se])-1,nt=($[Se]>>>2&3)-1,mt=ot===0&&nt===0||M[Se]<0,pt=ot&&nt?Math.SQRT1_2:1,J=M[Se]<0?-1:1,Mt=L[1+ot]+M[Se]*ot*pt,nn=L[4+nt]+J*et*nt/2+M[Se]*nt*pt,kt=nn-et/2,Et=nn+et/2,It=D(Mt),zn=D(kt),ti=D(Et),!Je){if(!UD(It,It,zn,ti,z,N,0,0,0,0,0,mt))continue;Je=we.width(X.datum,X.datum.text)}if(tn=Mt+J*Je*ot/2,Mt=tn-Je/2,Tt=tn+Je/2,It=D(Mt),be=D(Tt),UD(It,be,zn,ti,z,N,0,0,0,0,0,mt))return X.x=ot?ot*J<0?Tt:Mt:tn,X.y=nt?nt*J<0?Et:kt:nn,X.align=nB[ot*J+1],X.baseline=eB[nt*J+1],z.setRange(It,zn,be,ti),!0}return!1}}(k,F,h,d);return _.forEach(D=>D.opacity=+C(D)),_}const s1=["x","y","opacity","align","baseline"],ID=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function u1(t){O.call(this,null,t)}u1.Definition={type:"Label",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"sort",type:"compare"},{name:"anchor",type:"string",array:!0,default:ID},{name:"offset",type:"number",array:!0,default:[1]},{name:"padding",type:"number",default:0,null:!0},{name:"lineAnchor",type:"string",values:["start","end"],default:"end"},{name:"markIndex",type:"number",default:0},{name:"avoidBaseMark",type:"boolean",default:!0},{name:"avoidMarks",type:"data",array:!0},{name:"method",type:"string",default:"naive"},{name:"as",type:"string",array:!0,length:s1.length,default:s1}]},V(u1,O,{transform(t,n){const e=t.modified();if(!(e||n.changed(n.ADD_REM)||function(i){const a=t[i];return bt(a)&&n.modified(a.fields)}("sort")))return;t.size&&t.size.length===2||j("Size parameter should be specified as a [width, height] array.");const r=t.as||s1;return aB(n.materialize(n.SOURCE).source||[],t.size,t.sort,K(t.offset==null?1:t.offset),K(t.anchor||ID),t.avoidMarks||[],t.avoidBaseMark!==!1,t.lineAnchor||"end",t.markIndex||0,t.padding===void 0?0:t.padding,t.method||"naive").forEach(i=>{const a=i.datum;a[r[0]]=i.x,a[r[1]]=i.y,a[r[2]]=i.opacity,a[r[3]]=i.align,a[r[4]]=i.baseline}),n.reflow(e).modifies(r)}});const oB=Object.freeze(Object.defineProperty({__proto__:null,label:u1},Symbol.toStringTag,{value:"Module"}));function WD(t,n){var e,r,i,a,o,s,u=[],l=function(c){return c(a)};if(n==null)u.push(t);else for(e={},r=0,i=t.length;r<i;++r)a=t[r],(s=e[o=n.map(l)])||(e[o]=s=[],s.dims=o,u.push(s)),s.push(a);return u}function l1(t){O.call(this,null,t)}l1.Definition={type:"Loess",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"bandwidth",type:"number",default:.3},{name:"as",type:"string",array:!0}]},V(l1,O,{transform(t,n){const e=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||t.modified()){const r=WD(n.materialize(n.SOURCE).source,t.groupby),i=(t.groupby||[]).map(en),a=i.length,o=t.as||[en(t.x),en(t.y)],s=[];r.forEach(u=>{b2(u,t.x,t.y,t.bandwidth||.3).forEach(l=>{const c={};for(let f=0;f<a;++f)c[i[f]]=u.dims[f];c[o[0]]=l[0],c[o[1]]=l[1],s.push(St(c))})}),this.value&&(e.rem=this.value),this.value=e.add=e.source=s}return e}});const c1={constant:Rp,linear:Tp,log:m2,exp:g2,pow:y2,quad:Pp,poly:v2};function f1(t){O.call(this,null,t)}f1.Definition={type:"Regression",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"string",default:"linear",values:Object.keys(c1)},{name:"order",type:"number",default:3},{name:"extent",type:"number",array:!0,length:2},{name:"params",type:"boolean",default:!1},{name:"as",type:"string",array:!0}]},V(f1,O,{transform(t,n){const e=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||t.modified()){const r=WD(n.materialize(n.SOURCE).source,t.groupby),i=(t.groupby||[]).map(en),a=t.method||"linear",o=t.order==null?3:t.order,s=((d,h)=>d==="poly"?h:d==="quad"?2:1)(a,o),u=t.as||[en(t.x),en(t.y)],l=c1[a],c=[];let f=t.extent;tt(c1,a)||j("Invalid regression method: "+a),f!=null&&a==="log"&&f[0]<=0&&(n.dataflow.warn("Ignoring extent with values <= 0 for log regression."),f=null),r.forEach(d=>{if(d.length<=s)return void n.dataflow.warn("Skipping regression with more parameters than data points.");const h=l(d,t.x,t.y,o);if(t.params)return void c.push(St({keys:d.dims,coef:h.coef,rSquared:h.rSquared}));const p=f||kr(d,t.x),m=g=>{const y={};for(let v=0;v<i.length;++v)y[i[v]]=d.dims[v];y[u[0]]=g[0],y[u[1]]=g[1],c.push(St(y))};a==="linear"||a==="constant"?p.forEach(g=>m([g,h.predict(g)])):fc(h.predict,p,25,200).forEach(m)}),this.value&&(e.rem=this.value),this.value=e.add=e.source=c}return e}});const sB=Object.freeze(Object.defineProperty({__proto__:null,loess:l1,regression:f1},Symbol.toStringTag,{value:"Module"})),Rn=134217729;function d1(t,n,e,r,i){let a,o,s,u,l=n[0],c=r[0],f=0,d=0;c>l==c>-l?(a=l,l=n[++f]):(a=c,c=r[++d]);let h=0;if(f<t&&d<e)for(c>l==c>-l?(o=l+a,s=a-(o-l),l=n[++f]):(o=c+a,s=a-(o-c),c=r[++d]),a=o,s!==0&&(i[h++]=s);f<t&&d<e;)c>l==c>-l?(o=a+l,u=o-a,s=a-(o-u)+(l-u),l=n[++f]):(o=a+c,u=o-a,s=a-(o-u)+(c-u),c=r[++d]),a=o,s!==0&&(i[h++]=s);for(;f<t;)o=a+l,u=o-a,s=a-(o-u)+(l-u),l=n[++f],a=o,s!==0&&(i[h++]=s);for(;d<e;)o=a+c,u=o-a,s=a-(o-u)+(c-u),c=r[++d],a=o,s!==0&&(i[h++]=s);return a===0&&h!==0||(i[h++]=a),h}function Uu(t){return new Float64Array(t)}const ts=Uu(4),HD=Uu(8),GD=Uu(12),VD=Uu(16),ie=Uu(4);function Qf(t,n,e,r,i,a){const o=(n-a)*(e-i),s=(t-i)*(r-a),u=o-s,l=Math.abs(o+s);return Math.abs(u)>=33306690738754716e-32*l?u:-function(c,f,d,h,p,m,g){let y,v,x,b,w,A,_,k,F,C,D,E,$,M,S,B,z,N;const W=c-p,X=d-p,L=f-m,et=h-m;M=W*et,A=Rn*W,_=A-(A-W),k=W-_,A=Rn*et,F=A-(A-et),C=et-F,S=k*C-(M-_*F-k*F-_*C),B=L*X,A=Rn*L,_=A-(A-L),k=L-_,A=Rn*X,F=A-(A-X),C=X-F,z=k*C-(B-_*F-k*F-_*C),D=S-z,w=S-D,ts[0]=S-(D+w)+(w-z),E=M+D,w=E-M,$=M-(E-w)+(D-w),D=$-B,w=$-D,ts[1]=$-(D+w)+(w-B),N=E+D,w=N-E,ts[2]=E-(N-w)+(D-w),ts[3]=N;let ot=function(Mt,Tt){let kt=Tt[0];for(let Et=1;Et<Mt;Et++)kt+=Tt[Et];return kt}(4,ts),nt=22204460492503146e-32*g;if(ot>=nt||-ot>=nt||(w=c-W,y=c-(W+w)+(w-p),w=d-X,x=d-(X+w)+(w-p),w=f-L,v=f-(L+w)+(w-m),w=h-et,b=h-(et+w)+(w-m),y===0&&v===0&&x===0&&b===0)||(nt=11093356479670487e-47*g+33306690738754706e-32*Math.abs(ot),ot+=W*b+et*y-(L*x+X*v),ot>=nt||-ot>=nt))return ot;M=y*et,A=Rn*y,_=A-(A-y),k=y-_,A=Rn*et,F=A-(A-et),C=et-F,S=k*C-(M-_*F-k*F-_*C),B=v*X,A=Rn*v,_=A-(A-v),k=v-_,A=Rn*X,F=A-(A-X),C=X-F,z=k*C-(B-_*F-k*F-_*C),D=S-z,w=S-D,ie[0]=S-(D+w)+(w-z),E=M+D,w=E-M,$=M-(E-w)+(D-w),D=$-B,w=$-D,ie[1]=$-(D+w)+(w-B),N=E+D,w=N-E,ie[2]=E-(N-w)+(D-w),ie[3]=N;const mt=d1(4,ts,4,ie,HD);M=W*b,A=Rn*W,_=A-(A-W),k=W-_,A=Rn*b,F=A-(A-b),C=b-F,S=k*C-(M-_*F-k*F-_*C),B=L*x,A=Rn*L,_=A-(A-L),k=L-_,A=Rn*x,F=A-(A-x),C=x-F,z=k*C-(B-_*F-k*F-_*C),D=S-z,w=S-D,ie[0]=S-(D+w)+(w-z),E=M+D,w=E-M,$=M-(E-w)+(D-w),D=$-B,w=$-D,ie[1]=$-(D+w)+(w-B),N=E+D,w=N-E,ie[2]=E-(N-w)+(D-w),ie[3]=N;const pt=d1(mt,HD,4,ie,GD);M=y*b,A=Rn*y,_=A-(A-y),k=y-_,A=Rn*b,F=A-(A-b),C=b-F,S=k*C-(M-_*F-k*F-_*C),B=v*x,A=Rn*v,_=A-(A-v),k=v-_,A=Rn*x,F=A-(A-x),C=x-F,z=k*C-(B-_*F-k*F-_*C),D=S-z,w=S-D,ie[0]=S-(D+w)+(w-z),E=M+D,w=E-M,$=M-(E-w)+(D-w),D=$-B,w=$-D,ie[1]=$-(D+w)+(w-B),N=E+D,w=N-E,ie[2]=E-(N-w)+(D-w),ie[3]=N;const J=d1(pt,GD,4,ie,VD);return VD[J-1]}(t,n,e,r,i,a,l)}const YD=Math.pow(2,-52),Zf=new Uint32Array(512);class jh{static from(n,e=cB,r=fB){const i=n.length,a=new Float64Array(2*i);for(let o=0;o<i;o++){const s=n[o];a[2*o]=e(s),a[2*o+1]=r(s)}return new jh(a)}constructor(n){const e=n.length>>1;if(e>0&&typeof n[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=n;const r=Math.max(2*e-5,0);this._triangles=new Uint32Array(3*r),this._halfedges=new Int32Array(3*r),this._hashSize=Math.ceil(Math.sqrt(e)),this._hullPrev=new Uint32Array(e),this._hullNext=new Uint32Array(e),this._hullTri=new Uint32Array(e),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(e),this._dists=new Float64Array(e),this.update()}update(){const{coords:n,_hullPrev:e,_hullNext:r,_hullTri:i,_hullHash:a}=this,o=n.length>>1;let s=1/0,u=1/0,l=-1/0,c=-1/0;for(let C=0;C<o;C++){const D=n[2*C],E=n[2*C+1];D<s&&(s=D),E<u&&(u=E),D>l&&(l=D),E>c&&(c=E),this._ids[C]=C}const f=(s+l)/2,d=(u+c)/2;let h,p,m,g=1/0;for(let C=0;C<o;C++){const D=h1(f,d,n[2*C],n[2*C+1]);D<g&&(h=C,g=D)}const y=n[2*h],v=n[2*h+1];g=1/0;for(let C=0;C<o;C++){if(C===h)continue;const D=h1(y,v,n[2*C],n[2*C+1]);D<g&&D>0&&(p=C,g=D)}let x=n[2*p],b=n[2*p+1],w=1/0;for(let C=0;C<o;C++){if(C===h||C===p)continue;const D=lB(y,v,x,b,n[2*C],n[2*C+1]);D<w&&(m=C,w=D)}let A=n[2*m],_=n[2*m+1];if(w===1/0){for(let E=0;E<o;E++)this._dists[E]=n[2*E]-n[0]||n[2*E+1]-n[1];ns(this._ids,this._dists,0,o-1);const C=new Uint32Array(o);let D=0;for(let E=0,$=-1/0;E<o;E++){const M=this._ids[E];this._dists[M]>$&&(C[D++]=M,$=this._dists[M])}return this.hull=C.subarray(0,D),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(Qf(y,v,x,b,A,_)<0){const C=p,D=x,E=b;p=m,x=A,b=_,m=C,A=D,_=E}const k=function(C,D,E,$,M,S){const B=E-C,z=$-D,N=M-C,W=S-D,X=B*B+z*z,L=N*N+W*W,et=.5/(B*W-z*N),ot=C+(W*X-z*L)*et,nt=D+(B*L-N*X)*et;return{x:ot,y:nt}}(y,v,x,b,A,_);this._cx=k.x,this._cy=k.y;for(let C=0;C<o;C++)this._dists[C]=h1(n[2*C],n[2*C+1],k.x,k.y);ns(this._ids,this._dists,0,o-1),this._hullStart=h;let F=3;r[h]=e[m]=p,r[p]=e[h]=m,r[m]=e[p]=h,i[h]=0,i[p]=1,i[m]=2,a.fill(-1),a[this._hashKey(y,v)]=h,a[this._hashKey(x,b)]=p,a[this._hashKey(A,_)]=m,this.trianglesLen=0,this._addTriangle(h,p,m,-1,-1,-1);for(let C,D,E=0;E<this._ids.length;E++){const $=this._ids[E],M=n[2*$],S=n[2*$+1];if(E>0&&Math.abs(M-C)<=YD&&Math.abs(S-D)<=YD||(C=M,D=S,$===h||$===p||$===m))continue;let B=0;for(let L=0,et=this._hashKey(M,S);L<this._hashSize&&(B=a[(et+L)%this._hashSize],B===-1||B===r[B]);L++);B=e[B];let z,N=B;for(;z=r[N],Qf(M,S,n[2*N],n[2*N+1],n[2*z],n[2*z+1])>=0;)if(N=z,N===B){N=-1;break}if(N===-1)continue;let W=this._addTriangle(N,$,r[N],-1,-1,i[N]);i[$]=this._legalize(W+2),i[N]=W,F++;let X=r[N];for(;z=r[X],Qf(M,S,n[2*X],n[2*X+1],n[2*z],n[2*z+1])<0;)W=this._addTriangle(X,$,z,i[$],-1,i[X]),i[$]=this._legalize(W+2),r[X]=X,F--,X=z;if(N===B)for(;z=e[N],Qf(M,S,n[2*z],n[2*z+1],n[2*N],n[2*N+1])<0;)W=this._addTriangle(z,$,N,-1,i[N],i[z]),this._legalize(W+2),i[z]=W,r[N]=N,F--,N=z;this._hullStart=e[$]=N,r[N]=e[X]=$,r[$]=X,a[this._hashKey(M,S)]=$,a[this._hashKey(n[2*N],n[2*N+1])]=N}this.hull=new Uint32Array(F);for(let C=0,D=this._hullStart;C<F;C++)this.hull[C]=D,D=r[D];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(n,e){return Math.floor(function(r,i){const a=r/(Math.abs(r)+Math.abs(i));return(i>0?3-a:1+a)/4}(n-this._cx,e-this._cy)*this._hashSize)%this._hashSize}_legalize(n){const{_triangles:e,_halfedges:r,coords:i}=this;let a=0,o=0;for(;;){const s=r[n],u=n-n%3;if(o=u+(n+2)%3,s===-1){if(a===0)break;n=Zf[--a];continue}const l=s-s%3,c=u+(n+1)%3,f=l+(s+2)%3,d=e[o],h=e[n],p=e[c],m=e[f];if(uB(i[2*d],i[2*d+1],i[2*h],i[2*h+1],i[2*p],i[2*p+1],i[2*m],i[2*m+1])){e[n]=m,e[s]=d;const g=r[f];if(g===-1){let v=this._hullStart;do{if(this._hullTri[v]===f){this._hullTri[v]=n;break}v=this._hullPrev[v]}while(v!==this._hullStart)}this._link(n,g),this._link(s,r[o]),this._link(o,f);const y=l+(s+1)%3;a<Zf.length&&(Zf[a++]=y)}else{if(a===0)break;n=Zf[--a]}}return o}_link(n,e){this._halfedges[n]=e,e!==-1&&(this._halfedges[e]=n)}_addTriangle(n,e,r,i,a,o){const s=this.trianglesLen;return this._triangles[s]=n,this._triangles[s+1]=e,this._triangles[s+2]=r,this._link(s,i),this._link(s+1,a),this._link(s+2,o),this.trianglesLen+=3,s}}function h1(t,n,e,r){const i=t-e,a=n-r;return i*i+a*a}function uB(t,n,e,r,i,a,o,s){const u=t-o,l=n-s,c=e-o,f=r-s,d=i-o,h=a-s,p=c*c+f*f,m=d*d+h*h;return u*(f*m-p*h)-l*(c*m-p*d)+(u*u+l*l)*(c*h-f*d)<0}function lB(t,n,e,r,i,a){const o=e-t,s=r-n,u=i-t,l=a-n,c=o*o+s*s,f=u*u+l*l,d=.5/(o*l-s*u),h=(l*c-s*f)*d,p=(o*f-u*c)*d;return h*h+p*p}function ns(t,n,e,r){if(r-e<=20)for(let i=e+1;i<=r;i++){const a=t[i],o=n[a];let s=i-1;for(;s>=e&&n[t[s]]>o;)t[s+1]=t[s--];t[s+1]=a}else{let i=e+1,a=r;Iu(t,e+r>>1,i),n[t[e]]>n[t[r]]&&Iu(t,e,r),n[t[i]]>n[t[r]]&&Iu(t,i,r),n[t[e]]>n[t[i]]&&Iu(t,e,i);const o=t[i],s=n[o];for(;;){do i++;while(n[t[i]]<s);do a--;while(n[t[a]]>s);if(a<i)break;Iu(t,i,a)}t[e+1]=t[a],t[a]=o,r-i+1>=a-e?(ns(t,n,i,r),ns(t,n,e,a-1)):(ns(t,n,e,a-1),ns(t,n,i,r))}}function Iu(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function cB(t){return t[0]}function fB(t){return t[1]}const XD=1e-6;class Ga{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(n,e){this._+=`M${this._x0=this._x1=+n},${this._y0=this._y1=+e}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(n,e){this._+=`L${this._x1=+n},${this._y1=+e}`}arc(n,e,r){const i=(n=+n)+(r=+r),a=e=+e;if(r<0)throw new Error("negative radius");this._x1===null?this._+=`M${i},${a}`:(Math.abs(this._x1-i)>XD||Math.abs(this._y1-a)>XD)&&(this._+="L"+i+","+a),r&&(this._+=`A${r},${r},0,1,1,${n-r},${e}A${r},${r},0,1,1,${this._x1=i},${this._y1=a}`)}rect(n,e,r,i){this._+=`M${this._x0=this._x1=+n},${this._y0=this._y1=+e}h${+r}v${+i}h${-r}Z`}value(){return this._||null}}class p1{constructor(){this._=[]}moveTo(n,e){this._.push([n,e])}closePath(){this._.push(this._[0].slice())}lineTo(n,e){this._.push([n,e])}value(){return this._.length?this._:null}}let dB=class{constructor(t,[n,e,r,i]=[0,0,960,500]){if(!((r=+r)>=(n=+n)&&(i=+i)>=(e=+e)))throw new Error("invalid bounds");this.delaunay=t,this._circumcenters=new Float64Array(2*t.points.length),this.vectors=new Float64Array(2*t.points.length),this.xmax=r,this.xmin=n,this.ymax=i,this.ymin=e,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:t,hull:n,triangles:e},vectors:r}=this;let i,a;const o=this.circumcenters=this._circumcenters.subarray(0,e.length/3*2);for(let p,m,g=0,y=0,v=e.length;g<v;g+=3,y+=2){const x=2*e[g],b=2*e[g+1],w=2*e[g+2],A=t[x],_=t[x+1],k=t[b],F=t[b+1],C=t[w],D=t[w+1],E=k-A,$=F-_,M=C-A,S=D-_,B=2*(E*S-$*M);if(Math.abs(B)<1e-9){if(i===void 0){i=a=0;for(const N of n)i+=t[2*N],a+=t[2*N+1];i/=n.length,a/=n.length}const z=1e9*Math.sign((i-A)*S-(a-_)*M);p=(A+C)/2-z*S,m=(_+D)/2+z*M}else{const z=1/B,N=E*E+$*$,W=M*M+S*S;p=A+(S*N-$*W)*z,m=_+(E*W-M*N)*z}o[y]=p,o[y+1]=m}let s,u,l,c=n[n.length-1],f=4*c,d=t[2*c],h=t[2*c+1];r.fill(0);for(let p=0;p<n.length;++p)c=n[p],s=f,u=d,l=h,f=4*c,d=t[2*c],h=t[2*c+1],r[s+2]=r[f]=l-h,r[s+3]=r[f+1]=d-u}render(t){const n=t==null?t=new Ga:void 0,{delaunay:{halfedges:e,inedges:r,hull:i},circumcenters:a,vectors:o}=this;if(i.length<=1)return null;for(let l=0,c=e.length;l<c;++l){const f=e[l];if(f<l)continue;const d=2*Math.floor(l/3),h=2*Math.floor(f/3),p=a[d],m=a[d+1],g=a[h],y=a[h+1];this._renderSegment(p,m,g,y,t)}let s,u=i[i.length-1];for(let l=0;l<i.length;++l){s=u,u=i[l];const c=2*Math.floor(r[u]/3),f=a[c],d=a[c+1],h=4*s,p=this._project(f,d,o[h+2],o[h+3]);p&&this._renderSegment(f,d,p[0],p[1],t)}return n&&n.value()}renderBounds(t){const n=t==null?t=new Ga:void 0;return t.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),n&&n.value()}renderCell(t,n){const e=n==null?n=new Ga:void 0,r=this._clip(t);if(r===null||!r.length)return;n.moveTo(r[0],r[1]);let i=r.length;for(;r[0]===r[i-2]&&r[1]===r[i-1]&&i>1;)i-=2;for(let a=2;a<i;a+=2)r[a]===r[a-2]&&r[a+1]===r[a-1]||n.lineTo(r[a],r[a+1]);return n.closePath(),e&&e.value()}*cellPolygons(){const{delaunay:{points:t}}=this;for(let n=0,e=t.length/2;n<e;++n){const r=this.cellPolygon(n);r&&(r.index=n,yield r)}}cellPolygon(t){const n=new p1;return this.renderCell(t,n),n.value()}_renderSegment(t,n,e,r,i){let a;const o=this._regioncode(t,n),s=this._regioncode(e,r);o===0&&s===0?(i.moveTo(t,n),i.lineTo(e,r)):(a=this._clipSegment(t,n,e,r,o,s))&&(i.moveTo(a[0],a[1]),i.lineTo(a[2],a[3]))}contains(t,n,e){return(n=+n)==n&&(e=+e)==e&&this.delaunay._step(t,n,e)===t}*neighbors(t){const n=this._clip(t);if(n)for(const e of this.delaunay.neighbors(t)){const r=this._clip(e);if(r){t:for(let i=0,a=n.length;i<a;i+=2)for(let o=0,s=r.length;o<s;o+=2)if(n[i]===r[o]&&n[i+1]===r[o+1]&&n[(i+2)%a]===r[(o+s-2)%s]&&n[(i+3)%a]===r[(o+s-1)%s]){yield e;break t}}}}_cell(t){const{circumcenters:n,delaunay:{inedges:e,halfedges:r,triangles:i}}=this,a=e[t];if(a===-1)return null;const o=[];let s=a;do{const u=Math.floor(s/3);if(o.push(n[2*u],n[2*u+1]),s=s%3==2?s-2:s+1,i[s]!==t)break;s=r[s]}while(s!==a&&s!==-1);return o}_clip(t){if(t===0&&this.delaunay.hull.length===1)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const n=this._cell(t);if(n===null)return null;const{vectors:e}=this,r=4*t;return this._simplify(e[r]||e[r+1]?this._clipInfinite(t,n,e[r],e[r+1],e[r+2],e[r+3]):this._clipFinite(t,n))}_clipFinite(t,n){const e=n.length;let r,i,a,o,s=null,u=n[e-2],l=n[e-1],c=this._regioncode(u,l),f=0;for(let d=0;d<e;d+=2)if(r=u,i=l,u=n[d],l=n[d+1],a=c,c=this._regioncode(u,l),a===0&&c===0)o=f,f=0,s?s.push(u,l):s=[u,l];else{let h,p,m,g,y;if(a===0){if((h=this._clipSegment(r,i,u,l,a,c))===null)continue;[p,m,g,y]=h}else{if((h=this._clipSegment(u,l,r,i,c,a))===null)continue;[g,y,p,m]=h,o=f,f=this._edgecode(p,m),o&&f&&this._edge(t,o,f,s,s.length),s?s.push(p,m):s=[p,m]}o=f,f=this._edgecode(g,y),o&&f&&this._edge(t,o,f,s,s.length),s?s.push(g,y):s=[g,y]}if(s)o=f,f=this._edgecode(s[0],s[1]),o&&f&&this._edge(t,o,f,s,s.length);else if(this.contains(t,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return s}_clipSegment(t,n,e,r,i,a){const o=i<a;for(o&&([t,n,e,r,i,a]=[e,r,t,n,a,i]);;){if(i===0&&a===0)return o?[e,r,t,n]:[t,n,e,r];if(i&a)return null;let s,u,l=i||a;8&l?(s=t+(e-t)*(this.ymax-n)/(r-n),u=this.ymax):4&l?(s=t+(e-t)*(this.ymin-n)/(r-n),u=this.ymin):2&l?(u=n+(r-n)*(this.xmax-t)/(e-t),s=this.xmax):(u=n+(r-n)*(this.xmin-t)/(e-t),s=this.xmin),i?(t=s,n=u,i=this._regioncode(t,n)):(e=s,r=u,a=this._regioncode(e,r))}}_clipInfinite(t,n,e,r,i,a){let o,s=Array.from(n);if((o=this._project(s[0],s[1],e,r))&&s.unshift(o[0],o[1]),(o=this._project(s[s.length-2],s[s.length-1],i,a))&&s.push(o[0],o[1]),s=this._clipFinite(t,s))for(let u,l=0,c=s.length,f=this._edgecode(s[c-2],s[c-1]);l<c;l+=2)u=f,f=this._edgecode(s[l],s[l+1]),u&&f&&(l=this._edge(t,u,f,s,l),c=s.length);else this.contains(t,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(s=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return s}_edge(t,n,e,r,i){for(;n!==e;){let a,o;switch(n){case 5:n=4;continue;case 4:n=6,a=this.xmax,o=this.ymin;break;case 6:n=2;continue;case 2:n=10,a=this.xmax,o=this.ymax;break;case 10:n=8;continue;case 8:n=9,a=this.xmin,o=this.ymax;break;case 9:n=1;continue;case 1:n=5,a=this.xmin,o=this.ymin}r[i]===a&&r[i+1]===o||!this.contains(t,a,o)||(r.splice(i,0,a,o),i+=2)}return i}_project(t,n,e,r){let i,a,o,s=1/0;if(r<0){if(n<=this.ymin)return null;(i=(this.ymin-n)/r)<s&&(o=this.ymin,a=t+(s=i)*e)}else if(r>0){if(n>=this.ymax)return null;(i=(this.ymax-n)/r)<s&&(o=this.ymax,a=t+(s=i)*e)}if(e>0){if(t>=this.xmax)return null;(i=(this.xmax-t)/e)<s&&(a=this.xmax,o=n+(s=i)*r)}else if(e<0){if(t<=this.xmin)return null;(i=(this.xmin-t)/e)<s&&(a=this.xmin,o=n+(s=i)*r)}return[a,o]}_edgecode(t,n){return(t===this.xmin?1:t===this.xmax?2:0)|(n===this.ymin?4:n===this.ymax?8:0)}_regioncode(t,n){return(t<this.xmin?1:t>this.xmax?2:0)|(n<this.ymin?4:n>this.ymax?8:0)}_simplify(t){if(t&&t.length>4){for(let n=0;n<t.length;n+=2){const e=(n+2)%t.length,r=(n+4)%t.length;(t[n]===t[e]&&t[e]===t[r]||t[n+1]===t[e+1]&&t[e+1]===t[r+1])&&(t.splice(e,2),n-=2)}t.length||(t=null)}return t}};const hB=2*Math.PI,es=Math.pow;function pB(t){return t[0]}function mB(t){return t[1]}function gB(t,n,e){return[t+Math.sin(t+n)*e,n+Math.cos(t-n)*e]}class Ub{static from(n,e=pB,r=mB,i){return new Ub("length"in n?function(a,o,s,u){const l=a.length,c=new Float64Array(2*l);for(let f=0;f<l;++f){const d=a[f];c[2*f]=o.call(u,d,f,a),c[2*f+1]=s.call(u,d,f,a)}return c}(n,e,r,i):Float64Array.from(function*(a,o,s,u){let l=0;for(const c of a)yield o.call(u,c,l,a),yield s.call(u,c,l,a),++l}(n,e,r,i)))}constructor(n){this._delaunator=new jh(n),this.inedges=new Int32Array(n.length/2),this._hullIndex=new Int32Array(n.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const n=this._delaunator,e=this.points;if(n.hull&&n.hull.length>2&&function(u){const{triangles:l,coords:c}=u;for(let f=0;f<l.length;f+=3){const d=2*l[f],h=2*l[f+1],p=2*l[f+2];if((c[p]-c[d])*(c[h+1]-c[d+1])-(c[h]-c[d])*(c[p+1]-c[d+1])>1e-10)return!1}return!0}(n)){this.collinear=Int32Array.from({length:e.length/2},(d,h)=>h).sort((d,h)=>e[2*d]-e[2*h]||e[2*d+1]-e[2*h+1]);const u=this.collinear[0],l=this.collinear[this.collinear.length-1],c=[e[2*u],e[2*u+1],e[2*l],e[2*l+1]],f=1e-8*Math.hypot(c[3]-c[1],c[2]-c[0]);for(let d=0,h=e.length/2;d<h;++d){const p=gB(e[2*d],e[2*d+1],f);e[2*d]=p[0],e[2*d+1]=p[1]}this._delaunator=new jh(e)}else delete this.collinear;const r=this.halfedges=this._delaunator.halfedges,i=this.hull=this._delaunator.hull,a=this.triangles=this._delaunator.triangles,o=this.inedges.fill(-1),s=this._hullIndex.fill(-1);for(let u=0,l=r.length;u<l;++u){const c=a[u%3==2?u-2:u+1];r[u]!==-1&&o[c]!==-1||(o[c]=u)}for(let u=0,l=i.length;u<l;++u)s[i[u]]=u;i.length<=2&&i.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=i[0],o[i[0]]=1,i.length===2&&(o[i[1]]=0,this.triangles[1]=i[1],this.triangles[2]=i[1]))}voronoi(n){return new dB(this,n)}*neighbors(n){const{inedges:e,hull:r,_hullIndex:i,halfedges:a,triangles:o,collinear:s}=this;if(s){const f=s.indexOf(n);return f>0&&(yield s[f-1]),void(f<s.length-1&&(yield s[f+1]))}const u=e[n];if(u===-1)return;let l=u,c=-1;do{if(yield c=o[l],l=l%3==2?l-2:l+1,o[l]!==n)return;if(l=a[l],l===-1){const f=r[(i[n]+1)%r.length];return void(f!==c&&(yield f))}}while(l!==u)}find(n,e,r=0){if((n=+n)!=n||(e=+e)!=e)return-1;const i=r;let a;for(;(a=this._step(r,n,e))>=0&&a!==r&&a!==i;)r=a;return a}_step(n,e,r){const{inedges:i,hull:a,_hullIndex:o,halfedges:s,triangles:u,points:l}=this;if(i[n]===-1||!l.length)return(n+1)%(l.length>>1);let c=n,f=es(e-l[2*n],2)+es(r-l[2*n+1],2);const d=i[n];let h=d;do{let p=u[h];const m=es(e-l[2*p],2)+es(r-l[2*p+1],2);if(m<f&&(f=m,c=p),h=h%3==2?h-2:h+1,u[h]!==n)break;if(h=s[h],h===-1){if(h=a[(o[n]+1)%a.length],h!==p&&es(e-l[2*h],2)+es(r-l[2*h+1],2)<f)return h;break}}while(h!==d);return c}render(n){const e=n==null?n=new Ga:void 0,{points:r,halfedges:i,triangles:a}=this;for(let o=0,s=i.length;o<s;++o){const u=i[o];if(u<o)continue;const l=2*a[o],c=2*a[u];n.moveTo(r[l],r[l+1]),n.lineTo(r[c],r[c+1])}return this.renderHull(n),e&&e.value()}renderPoints(n,e){e!==void 0||n&&typeof n.moveTo=="function"||(e=n,n=null),e=e==null?2:+e;const r=n==null?n=new Ga:void 0,{points:i}=this;for(let a=0,o=i.length;a<o;a+=2){const s=i[a],u=i[a+1];n.moveTo(s+e,u),n.arc(s,u,e,0,hB)}return r&&r.value()}renderHull(n){const e=n==null?n=new Ga:void 0,{hull:r,points:i}=this,a=2*r[0],o=r.length;n.moveTo(i[a],i[a+1]);for(let s=1;s<o;++s){const u=2*r[s];n.lineTo(i[u],i[u+1])}return n.closePath(),e&&e.value()}hullPolygon(){const n=new p1;return this.renderHull(n),n.value()}renderTriangle(n,e){const r=e==null?e=new Ga:void 0,{points:i,triangles:a}=this,o=2*a[n*=3],s=2*a[n+1],u=2*a[n+2];return e.moveTo(i[o],i[o+1]),e.lineTo(i[s],i[s+1]),e.lineTo(i[u],i[u+1]),e.closePath(),r&&r.value()}*trianglePolygons(){const{triangles:n}=this;for(let e=0,r=n.length/3;e<r;++e)yield this.trianglePolygon(e)}trianglePolygon(n){const e=new p1;return this.renderTriangle(n,e),e.value()}}function m1(t){O.call(this,null,t)}m1.Definition={type:"Voronoi",metadata:{modifies:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"size",type:"number",array:!0,length:2},{name:"extent",type:"array",array:!0,length:2,default:[[-1e5,-1e5],[1e5,1e5]],content:{type:"number",array:!0,length:2}},{name:"as",type:"string",default:"path"}]};const yB=[-1e5,-1e5,1e5,1e5];function vB(t){const n=t[0][0],e=t[0][1];let r=t.length-1;for(;t[r][0]===n&&t[r][1]===e;--r);return"M"+t.slice(0,r+1).join("L")+"Z"}function bB(t){return t.length===2&&t[0][0]===t[1][0]&&t[0][1]===t[1][1]}V(m1,O,{transform(t,n){const e=t.as||"path",r=n.source;if(!r||!r.length)return n;let i=t.size;i=i?[0,0,i[0],i[1]]:(i=t.extent)?[i[0][0],i[0][1],i[1][0],i[1][1]]:yB;const a=this.value=Ub.from(r,t.x,t.y).voronoi(i);for(let o=0,s=r.length;o<s;++o){const u=a.cellPolygon(o);r[o][e]=u&&!bB(u)?vB(u):null}return n.reflow(t.modified()).modifies(e)}});const xB=Object.freeze(Object.defineProperty({__proto__:null,voronoi:m1},Symbol.toStringTag,{value:"Module"}));var g1=Math.PI/180,td=2048;function wB(){var t,n,e,r,i,a,o,s=[256,256],u=JD,l=[],c=Math.random,f={};function d(h,p,m){for(var g,y,v,x=p.x,b=p.y,w=Math.hypot(s[0],s[1]),A=u(s),_=c()<.5?1:-1,k=-_;(g=A(k+=_))&&(y=~~g[0],v=~~g[1],!(Math.min(Math.abs(y),Math.abs(v))>=w));)if(p.x=x+y,p.y=b+v,!(p.x+p.x0<0||p.y+p.y0<0||p.x+p.x1>s[0]||p.y+p.y1>s[1])&&(!m||!_B(p,h,s[0]))&&(!m||DB(p,m))){for(var F,C=p.sprite,D=p.width>>5,E=s[0]>>5,$=p.x-(D<<4),M=127&$,S=32-M,B=p.y1-p.y0,z=(p.y+p.y0)*E+($>>5),N=0;N<B;N++){F=0;for(var W=0;W<=D;W++)h[z+W]|=F<<S|(W<D?(F=C[N*D+W])>>>M:0);z+=E}return p.sprite=null,!0}return!1}return f.layout=function(){for(var h=function(w){w.width=w.height=1;var A=Math.sqrt(w.getContext("2d").getImageData(0,0,1,1).data.length>>2);w.width=2048/A,w.height=td/A;var _=w.getContext("2d");return _.fillStyle=_.strokeStyle="red",_.textAlign="center",{context:_,ratio:A}}(qi()),p=function(w){for(var A=[],_=-1;++_<w;)A[_]=0;return A}((s[0]>>5)*s[1]),m=null,g=l.length,y=-1,v=[],x=l.map(w=>({text:t(w),font:n(w),style:r(w),weight:i(w),rotate:a(w),size:~~(e(w)+1e-14),padding:o(w),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:w})).sort((w,A)=>A.size-w.size);++y<g;){var b=x[y];b.x=s[0]*(c()+.5)>>1,b.y=s[1]*(c()+.5)>>1,AB(h,b,x,y),b.hasText&&d(p,b,m)&&(v.push(b),m?kB(m,b):m=[{x:b.x+b.x0,y:b.y+b.y0},{x:b.x+b.x1,y:b.y+b.y1}],b.x-=s[0]>>1,b.y-=s[1]>>1)}return v},f.words=function(h){return arguments.length?(l=h,f):l},f.size=function(h){return arguments.length?(s=[+h[0],+h[1]],f):s},f.font=function(h){return arguments.length?(n=Va(h),f):n},f.fontStyle=function(h){return arguments.length?(r=Va(h),f):r},f.fontWeight=function(h){return arguments.length?(i=Va(h),f):i},f.rotate=function(h){return arguments.length?(a=Va(h),f):a},f.text=function(h){return arguments.length?(t=Va(h),f):t},f.spiral=function(h){return arguments.length?(u=FB[h]||h,f):u},f.fontSize=function(h){return arguments.length?(e=Va(h),f):e},f.padding=function(h){return arguments.length?(o=Va(h),f):o},f.random=function(h){return arguments.length?(c=h,f):c},f}function AB(t,n,e,r){if(!n.sprite){var i=t.context,a=t.ratio;i.clearRect(0,0,2048/a,td/a);var o,s,u,l,c,f=0,d=0,h=0,p=e.length;for(--r;++r<p;){if(n=e[r],i.save(),i.font=n.style+" "+n.weight+" "+~~((n.size+1)/a)+"px "+n.font,o=i.measureText(n.text+"m").width*a,u=n.size<<1,n.rotate){var m=Math.sin(n.rotate*g1),g=Math.cos(n.rotate*g1),y=o*g,v=o*m,x=u*g,b=u*m;o=Math.max(Math.abs(y+b),Math.abs(y-b))+31>>5<<5,u=~~Math.max(Math.abs(v+x),Math.abs(v-x))}else o=o+31>>5<<5;if(u>h&&(h=u),f+o>=2048&&(f=0,d+=h,h=0),d+u>=td)break;i.translate((f+(o>>1))/a,(d+(u>>1))/a),n.rotate&&i.rotate(n.rotate*g1),i.fillText(n.text,0,0),n.padding&&(i.lineWidth=2*n.padding,i.strokeText(n.text,0,0)),i.restore(),n.width=o,n.height=u,n.xoff=f,n.yoff=d,n.x1=o>>1,n.y1=u>>1,n.x0=-n.x1,n.y0=-n.y1,n.hasText=!0,f+=o}for(var w=i.getImageData(0,0,2048/a,td/a).data,A=[];--r>=0;)if((n=e[r]).hasText){for(s=(o=n.width)>>5,u=n.y1-n.y0,l=0;l<u*s;l++)A[l]=0;if((f=n.xoff)==null)return;d=n.yoff;var _=0,k=-1;for(c=0;c<u;c++){for(l=0;l<o;l++){var F=s*c+(l>>5),C=w[2048*(d+c)+(f+l)<<2]?1<<31-l%32:0;A[F]|=C,_|=C}_?k=c:(n.y0++,u--,c--,d++)}n.y1=n.y0+k,n.sprite=A.slice(0,(n.y1-n.y0)*s)}}}function _B(t,n,e){e>>=5;for(var r,i=t.sprite,a=t.width>>5,o=t.x-(a<<4),s=127&o,u=32-s,l=t.y1-t.y0,c=(t.y+t.y0)*e+(o>>5),f=0;f<l;f++){r=0;for(var d=0;d<=a;d++)if((r<<u|(d<a?(r=i[f*a+d])>>>s:0))&n[c+d])return!0;c+=e}return!1}function kB(t,n){var e=t[0],r=t[1];n.x+n.x0<e.x&&(e.x=n.x+n.x0),n.y+n.y0<e.y&&(e.y=n.y+n.y0),n.x+n.x1>r.x&&(r.x=n.x+n.x1),n.y+n.y1>r.y&&(r.y=n.y+n.y1)}function DB(t,n){return t.x+t.x1>n[0].x&&t.x+t.x0<n[1].x&&t.y+t.y1>n[0].y&&t.y+t.y0<n[1].y}function JD(t){var n=t[0]/t[1];return function(e){return[n*(e*=.1)*Math.cos(e),e*Math.sin(e)]}}function Va(t){return typeof t=="function"?t:function(){return t}}var FB={archimedean:JD,rectangular:function(t){var n=4*t[0]/t[1],e=0,r=0;return function(i){var a=i<0?-1:1;switch(Math.sqrt(1+4*a*i)-a&3){case 0:e+=n;break;case 1:r+=4;break;case 2:e-=n;break;default:r-=4}return[e,r]}}};const KD=["x","y","font","fontSize","fontStyle","fontWeight","angle"],CB=["text","font","rotate","fontSize","fontStyle","fontWeight"];function y1(t){O.call(this,wB(),t)}y1.Definition={type:"Wordcloud",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2},{name:"font",type:"string",expr:!0,default:"sans-serif"},{name:"fontStyle",type:"string",expr:!0,default:"normal"},{name:"fontWeight",type:"string",expr:!0,default:"normal"},{name:"fontSize",type:"number",expr:!0,default:14},{name:"fontSizeRange",type:"number",array:"nullable",default:[10,50]},{name:"rotate",type:"number",expr:!0,default:0},{name:"text",type:"field"},{name:"spiral",type:"string",values:["archimedean","rectangular"]},{name:"padding",type:"number",expr:!0},{name:"as",type:"string",array:!0,length:7,default:KD}]},V(y1,O,{transform(t,n){!t.size||t.size[0]&&t.size[1]||j("Wordcloud size dimensions must be non-zero.");const e=t.modified();if(!(e||n.changed(n.ADD_REM)||CB.some(function(h){const p=t[h];return bt(p)&&n.modified(p.fields)})))return;const r=n.materialize(n.SOURCE).source,i=this.value,a=t.as||KD;let o,s=t.fontSize||14;if(bt(s)?o=t.fontSizeRange:s=In(s),o){const h=s,p=Dt("sqrt")().domain(kr(r,h)).range(o);s=m=>p(h(m))}r.forEach(h=>{h[a[0]]=NaN,h[a[1]]=NaN,h[a[3]]=0});const u=i.words(r).text(t.text).size(t.size||[500,500]).padding(t.padding||1).spiral(t.spiral||"archimedean").rotate(t.rotate||0).font(t.font||"sans-serif").fontStyle(t.fontStyle||"normal").fontWeight(t.fontWeight||"normal").fontSize(s).random(Ne).layout(),l=i.size(),c=l[0]>>1,f=l[1]>>1,d=u.length;for(let h,p,m=0;m<d;++m)h=u[m],p=h.datum,p[a[0]]=h.x+c,p[a[1]]=h.y+f,p[a[2]]=h.font,p[a[3]]=h.size,p[a[4]]=h.style,p[a[5]]=h.weight,p[a[6]]=h.rotate;return n.reflow(e).modifies(a)}});const EB=Object.freeze(Object.defineProperty({__proto__:null,wordcloud:y1},Symbol.toStringTag,{value:"Module"})),$B=t=>new Uint8Array(t),SB=t=>new Uint16Array(t),Wu=t=>new Uint32Array(t);function nd(t,n,e){const r=(n<257?$B:n<65537?SB:Wu)(t);return e&&r.set(e),r}function QD(t,n,e){const r=1<<n;return{one:r,zero:~r,range:e.slice(),bisect:t.bisect,index:t.index,size:t.size,onAdd(i,a){const o=this,s=o.bisect(o.range,i.value),u=i.index,l=s[0],c=s[1],f=u.length;let d;for(d=0;d<l;++d)a[u[d]]|=r;for(d=c;d<f;++d)a[u[d]]|=r;return o}}}function ZD(){let t=Wu(0),n=[],e=0;return{insert:function(r,i,a){if(!i.length)return[];const o=e,s=i.length,u=Wu(s);let l,c,f,d=Array(s);for(f=0;f<s;++f)d[f]=r(i[f]),u[f]=f;if(d=function(h,p){return h.sort.call(p,(m,g)=>{const y=h[m],v=h[g];return y<v?-1:y>v?1:0}),function(m,g){return Array.from(g,y=>m[y])}(h,p)}(d,u),o)l=n,c=t,n=Array(o+s),t=Wu(o+s),function(h,p,m,g,y,v,x,b,w){let A,_=0,k=0;for(A=0;_<g&&k<x;++A)p[_]<y[k]?(b[A]=p[_],w[A]=m[_++]):(b[A]=y[k],w[A]=v[k++]+h);for(;_<g;++_,++A)b[A]=p[_],w[A]=m[_];for(;k<x;++k,++A)b[A]=y[k],w[A]=v[k]+h}(a,l,c,o,d,u,s,n,t);else{if(a>0)for(f=0;f<s;++f)u[f]+=a;n=d,t=u}return e=o+s,{index:u,value:d}},remove:function(r,i){const a=e;let o,s,u;for(s=0;!i[t[s]]&&s<a;++s);for(u=s;s<a;++s)i[o=t[s]]||(t[u]=o,n[u]=n[s],++u);e=a-r},bisect:function(r,i){let a;return i?a=i.length:(i=n,a=e),[f8(i,r[0],0,a),Ea(i,r[1],0,a)]},reindex:function(r){for(let i=0,a=e;i<a;++i)t[i]=r[t[i]]},index:()=>t,size:()=>e}}function v1(t){O.call(this,function(){let n=8,e=[],r=Wu(0),i=nd(0,n),a=nd(0,n);return{data:()=>e,seen:()=>r=function(o,s,u){return o.length>=s?o:((u=u||new o.constructor(s)).set(o),u)}(r,e.length),add(o){for(let s,u=0,l=e.length,c=o.length;u<c;++u)s=o[u],s._index=l++,e.push(s)},remove(o,s){const u=e.length,l=Array(u-o),c=e;let f,d,h;for(d=0;!s[d]&&d<u;++d)l[d]=e[d],c[d]=d;for(h=d;d<u;++d)f=e[d],s[d]?c[d]=-1:(c[d]=h,i[h]=i[d],a[h]=a[d],l[h]=f,f._index=h++),i[d]=0;return e=l,c},size:()=>e.length,curr:()=>i,prev:()=>a,reset:o=>a[o]=i[o],all:()=>n<257?255:n<65537?65535:4294967295,set(o,s){i[o]|=s},clear(o,s){i[o]&=~s},resize(o,s){(o>i.length||s>n)&&(n=Math.max(s,n),i=nd(o,n,i),a=nd(o,n))}}}(),t),this._indices=null,this._dims=null}function b1(t){O.call(this,null,t)}v1.Definition={type:"CrossFilter",metadata:{},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"query",type:"array",array:!0,required:!0,content:{type:"number",array:!0,length:2}}]},V(v1,O,{transform(t,n){return this._dims?t.modified("fields")||t.fields.some(e=>n.modified(e.fields))?this.reinit(t,n):this.eval(t,n):this.init(t,n)},init(t,n){const e=t.fields,r=t.query,i=this._indices={},a=this._dims=[],o=r.length;let s,u,l=0;for(;l<o;++l)s=e[l].fname,u=i[s]||(i[s]=ZD()),a.push(QD(u,l,r[l]));return this.eval(t,n)},reinit(t,n){const e=n.materialize().fork(),r=t.fields,i=t.query,a=this._indices,o=this._dims,s=this.value,u=s.curr(),l=s.prev(),c=s.all(),f=e.rem=e.add,d=e.mod,h=i.length,p={};let m,g,y,v,x,b,w,A,_;if(l.set(u),n.rem.length&&(x=this.remove(t,n,e)),n.add.length&&s.add(n.add),n.mod.length)for(b={},v=n.mod,w=0,A=v.length;w<A;++w)b[v[w]._index]=1;for(w=0;w<h;++w)_=r[w],(!o[w]||t.modified("fields",w)||n.modified(_.fields))&&(y=_.fname,(m=p[y])||(a[y]=g=ZD(),p[y]=m=g.insert(_,n.source,0)),o[w]=QD(g,w,i[w]).onAdd(m,u));for(w=0,A=s.data().length;w<A;++w)x[w]||(l[w]!==u[w]?f.push(w):b[w]&&u[w]!==c&&d.push(w));return s.mask=(1<<h)-1,e},eval(t,n){const e=n.materialize().fork(),r=this._dims.length;let i=0;return n.rem.length&&(this.remove(t,n,e),i|=(1<<r)-1),t.modified("query")&&!t.modified("fields")&&(i|=this.update(t,n,e)),n.add.length&&(this.insert(t,n,e),i|=(1<<r)-1),n.mod.length&&(this.modify(n,e),i|=(1<<r)-1),this.value.mask=i,e},insert(t,n,e){const r=n.add,i=this.value,a=this._dims,o=this._indices,s=t.fields,u={},l=e.add,c=i.size()+r.length,f=a.length;let d,h,p,m=i.size();i.resize(c,f),i.add(r);const g=i.curr(),y=i.prev(),v=i.all();for(d=0;d<f;++d)h=s[d].fname,p=u[h]||(u[h]=o[h].insert(s[d],r,m)),a[d].onAdd(p,g);for(;m<c;++m)y[m]=v,g[m]!==v&&l.push(m)},modify(t,n){const e=n.mod,r=this.value,i=r.curr(),a=r.all(),o=t.mod;let s,u,l;for(s=0,u=o.length;s<u;++s)l=o[s]._index,i[l]!==a&&e.push(l)},remove(t,n,e){const r=this._indices,i=this.value,a=i.curr(),o=i.prev(),s=i.all(),u={},l=e.rem,c=n.rem;let f,d,h,p;for(f=0,d=c.length;f<d;++f)h=c[f]._index,u[h]=1,o[h]=p=a[h],a[h]=s,p!==s&&l.push(h);for(h in r)r[h].remove(d,u);return this.reindex(n,d,u),u},reindex(t,n,e){const r=this._indices,i=this.value;t.runAfter(()=>{const a=i.remove(n,e);for(const o in r)r[o].reindex(a)})},update(t,n,e){const r=this._dims,i=t.query,a=n.stamp,o=r.length;let s,u,l=0;for(e.filters=0,u=0;u<o;++u)t.modified("query",u)&&(s=u,++l);if(l===1)l=r[s].one,this.incrementOne(r[s],i[s],e.add,e.rem);else for(u=0,l=0;u<o;++u)t.modified("query",u)&&(l|=r[u].one,this.incrementAll(r[u],i[u],a,e.add),e.rem=e.add);return l},incrementAll(t,n,e,r){const i=this.value,a=i.seen(),o=i.curr(),s=i.prev(),u=t.index(),l=t.bisect(t.range),c=t.bisect(n),f=c[0],d=c[1],h=l[0],p=l[1],m=t.one;let g,y,v;if(f<h)for(g=f,y=Math.min(h,d);g<y;++g)v=u[g],a[v]!==e&&(s[v]=o[v],a[v]=e,r.push(v)),o[v]^=m;else if(f>h)for(g=h,y=Math.min(f,p);g<y;++g)v=u[g],a[v]!==e&&(s[v]=o[v],a[v]=e,r.push(v)),o[v]^=m;if(d>p)for(g=Math.max(f,p),y=d;g<y;++g)v=u[g],a[v]!==e&&(s[v]=o[v],a[v]=e,r.push(v)),o[v]^=m;else if(d<p)for(g=Math.max(h,d),y=p;g<y;++g)v=u[g],a[v]!==e&&(s[v]=o[v],a[v]=e,r.push(v)),o[v]^=m;t.range=n.slice()},incrementOne(t,n,e,r){const i=this.value.curr(),a=t.index(),o=t.bisect(t.range),s=t.bisect(n),u=s[0],l=s[1],c=o[0],f=o[1],d=t.one;let h,p,m;if(u<c)for(h=u,p=Math.min(c,l);h<p;++h)m=a[h],i[m]^=d,e.push(m);else if(u>c)for(h=c,p=Math.min(u,f);h<p;++h)m=a[h],i[m]^=d,r.push(m);if(l>f)for(h=Math.max(u,f),p=l;h<p;++h)m=a[h],i[m]^=d,e.push(m);else if(l<f)for(h=Math.max(c,l),p=f;h<p;++h)m=a[h],i[m]^=d,r.push(m);t.range=n.slice()}}),b1.Definition={type:"ResolveFilter",metadata:{},params:[{name:"ignore",type:"number",required:!0,description:"A bit mask indicating which filters to ignore."},{name:"filter",type:"object",required:!0,description:"Per-tuple filter bitmaps from a CrossFilter transform."}]},V(b1,O,{transform(t,n){const e=~(t.ignore||0),r=t.filter,i=r.mask;if((i&e)===0)return n.StopPropagation;const a=n.fork(n.ALL),o=r.data(),s=r.curr(),u=r.prev(),l=c=>s[c]&e?null:o[c];return a.filter(a.MOD,l),i&i-1?(a.filter(a.ADD,c=>{const f=s[c]&e;return!f&&f^u[c]&e?o[c]:null}),a.filter(a.REM,c=>{const f=s[c]&e;return f&&!(f^f^u[c]&e)?o[c]:null})):(a.filter(a.ADD,l),a.filter(a.REM,c=>(s[c]&e)===i?o[c]:null)),a.filter(a.SOURCE,c=>l(c._index))}});const MB=Object.freeze(Object.defineProperty({__proto__:null,crossfilter:v1,resolvefilter:b1},Symbol.toStringTag,{value:"Module"})),rs="Literal",BB="Property",zB="ArrayExpression",OB="BinaryExpression",tF="CallExpression",NB="ConditionalExpression",RB="LogicalExpression",TB="MemberExpression",PB="ObjectExpression",jB="UnaryExpression";function ir(t){this.type=t}var hi,rt,R,Tn,zt;ir.prototype.visit=function(t){let n,e,r;if(t(this))return 1;for(n=function(i){switch(i.type){case zB:return i.elements;case OB:case RB:return[i.left,i.right];case tF:return[i.callee].concat(i.arguments);case NB:return[i.test,i.consequent,i.alternate];case TB:return[i.object,i.property];case PB:return i.properties;case BB:return[i.key,i.value];case jB:return[i.argument];default:return[]}}(this),e=0,r=n.length;e<r;++e)if(n[e].visit(t))return 1},(hi={})[1]="Boolean",hi[2]="<end>",hi[3]="Identifier",hi[4]="Keyword",hi[5]="Null",hi[6]="Numeric",hi[7]="Punctuator",hi[8]="String",hi[9]="RegularExpression";var nF="Identifier",gn="Unexpected token %0",x1="Invalid regular expression",w1="Invalid regular expression: missing /",eF="Octal literals are not allowed in strict mode.",Fn="ILLEGAL",Hu="Disabled.",LB=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),qB=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function ed(t,n){if(!t)throw new Error("ASSERT: "+n)}function pi(t){return t>=48&&t<=57}function A1(t){return"0123456789abcdefABCDEF".includes(t)}function Gu(t){return"01234567".includes(t)}function UB(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].includes(t)}function Vu(t){return t===10||t===13||t===8232||t===8233}function Yu(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&LB.test(String.fromCharCode(t))}function rd(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&qB.test(String.fromCharCode(t))}const IB={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 rF(){for(;R<Tn;){const t=rt.charCodeAt(R);if(!UB(t)&&!Vu(t))break;++R}}function _1(t){var n,e,r,i=0;for(e=t==="u"?4:2,n=0;n<e;++n)R<Tn&&A1(rt[R])?(r=rt[R++],i=16*i+"0123456789abcdef".indexOf(r.toLowerCase())):Ft({},gn,Fn);return String.fromCharCode(i)}function WB(){var t,n,e,r;for(n=0,(t=rt[R])==="}"&&Ft({},gn,Fn);R<Tn&&A1(t=rt[R++]);)n=16*n+"0123456789abcdef".indexOf(t.toLowerCase());return(n>1114111||t!=="}")&&Ft({},gn,Fn),n<=65535?String.fromCharCode(n):(e=55296+(n-65536>>10),r=56320+(n-65536&1023),String.fromCharCode(e,r))}function iF(){var t,n;for(t=rt.charCodeAt(R++),n=String.fromCharCode(t),t===92&&(rt.charCodeAt(R)!==117&&Ft({},gn,Fn),++R,(t=_1("u"))&&t!=="\\"&&Yu(t.charCodeAt(0))||Ft({},gn,Fn),n=t);R<Tn&&rd(t=rt.charCodeAt(R));)++R,n+=String.fromCharCode(t),t===92&&(n=n.substr(0,n.length-1),rt.charCodeAt(R)!==117&&Ft({},gn,Fn),++R,(t=_1("u"))&&t!=="\\"&&rd(t.charCodeAt(0))||Ft({},gn,Fn),n+=t);return n}function HB(){var t,n;return t=R,n=rt.charCodeAt(R)===92?iF():function(){var e,r;for(e=R++;R<Tn;){if((r=rt.charCodeAt(R))===92)return R=e,iF();if(!rd(r))break;++R}return rt.slice(e,R)}(),{type:n.length===1?3:IB.hasOwnProperty(n)?4:n==="null"?5:n==="true"||n==="false"?1:3,value:n,start:t,end:R}}function k1(){var t,n,e,r,i=R,a=rt.charCodeAt(R),o=rt[R];switch(a){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++R,{type:7,value:String.fromCharCode(a),start:i,end:R};default:if((t=rt.charCodeAt(R+1))===61)switch(a){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return R+=2,{type:7,value:String.fromCharCode(a)+String.fromCharCode(t),start:i,end:R};case 33:case 61:return R+=2,rt.charCodeAt(R)===61&&++R,{type:7,value:rt.slice(i,R),start:i,end:R}}}return(r=rt.substr(R,4))===">>>="?{type:7,value:r,start:i,end:R+=4}:(e=r.substr(0,3))===">>>"||e==="<<="||e===">>="?{type:7,value:e,start:i,end:R+=3}:o===(n=e.substr(0,2))[1]&&"+-<>&|".includes(o)||n==="=>"?{type:7,value:n,start:i,end:R+=2}:(n==="//"&&Ft({},gn,Fn),"<>=!+-*%&|^/".includes(o)?{type:7,value:o,start:i,end:++R}:void Ft({},gn,Fn))}function aF(){var t,n,e;if(ed(pi((e=rt[R]).charCodeAt(0))||e===".","Numeric literal must start with a decimal digit or a decimal point"),n=R,t="",e!=="."){if(t=rt[R++],e=rt[R],t==="0"){if(e==="x"||e==="X")return++R,function(r){let i="";for(;R<Tn&&A1(rt[R]);)i+=rt[R++];return i.length===0&&Ft({},gn,Fn),Yu(rt.charCodeAt(R))&&Ft({},gn,Fn),{type:6,value:parseInt("0x"+i,16),start:r,end:R}}(n);if(Gu(e))return function(r){let i="0"+rt[R++];for(;R<Tn&&Gu(rt[R]);)i+=rt[R++];return(Yu(rt.charCodeAt(R))||pi(rt.charCodeAt(R)))&&Ft({},gn,Fn),{type:6,value:parseInt(i,8),octal:!0,start:r,end:R}}(n);e&&pi(e.charCodeAt(0))&&Ft({},gn,Fn)}for(;pi(rt.charCodeAt(R));)t+=rt[R++];e=rt[R]}if(e==="."){for(t+=rt[R++];pi(rt.charCodeAt(R));)t+=rt[R++];e=rt[R]}if(e==="e"||e==="E")if(t+=rt[R++],(e=rt[R])!=="+"&&e!=="-"||(t+=rt[R++]),pi(rt.charCodeAt(R)))for(;pi(rt.charCodeAt(R));)t+=rt[R++];else Ft({},gn,Fn);return Yu(rt.charCodeAt(R))&&Ft({},gn,Fn),{type:6,value:parseFloat(t),start:n,end:R}}function GB(){var t,n,e,r;return zt=null,rF(),t=R,n=function(){var i,a,o,s;for(ed((i=rt[R])==="/","Regular expression literal must start with a slash"),a=rt[R++],o=!1,s=!1;R<Tn;)if(a+=i=rt[R++],i==="\\")Vu((i=rt[R++]).charCodeAt(0))&&Ft({},w1),a+=i;else if(Vu(i.charCodeAt(0)))Ft({},w1);else if(o)i==="]"&&(o=!1);else{if(i==="/"){s=!0;break}i==="["&&(o=!0)}return s||Ft({},w1),{value:a.substr(1,a.length-2),literal:a}}(),e=function(){var i,a,o;for(a="",o="";R<Tn&&rd((i=rt[R]).charCodeAt(0));)++R,i==="\\"&&R<Tn?Ft({},gn,Fn):(o+=i,a+=i);return o.search(/[^gimuy]/g)>=0&&Ft({},x1,o),{value:o,literal:a}}(),r=function(i,a){let o=i;a.includes("u")&&(o=o.replace(/\\u\{([0-9a-fA-F]+)\}/g,(s,u)=>{if(parseInt(u,16)<=1114111)return"x";Ft({},x1)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(o)}catch{Ft({},x1)}try{return new RegExp(i,a)}catch{return null}}(n.value,e.value),{literal:n.literal+e.literal,value:r,regex:{pattern:n.value,flags:e.value},start:t,end:R}}function oF(){if(rF(),R>=Tn)return{type:2,start:R,end:R};const t=rt.charCodeAt(R);return Yu(t)?HB():t===40||t===41||t===59?k1():t===39||t===34?function(){var n,e,r,i,a="",o=!1;for(ed((n=rt[R])==="'"||n==='"',"String literal must starts with a quote"),e=R,++R;R<Tn;){if((r=rt[R++])===n){n="";break}if(r==="\\")if((r=rt[R++])&&Vu(r.charCodeAt(0)))r==="\r"&&rt[R]===`
|
3
|
-
`&&++R;else switch(r){case"u":case"x":rt[R]==="{"?(++R,a+=WB()):a+=_1(r);break;case"n":a+=`
|
4
|
-
`;break;case"r":a+="\r";break;case"t":a+=" ";break;case"b":a+="\b";break;case"f":a+="\f";break;case"v":a+="\v";break;default:Gu(r)?((i="01234567".indexOf(r))!==0&&(o=!0),R<Tn&&Gu(rt[R])&&(o=!0,i=8*i+"01234567".indexOf(rt[R++]),"0123".includes(r)&&R<Tn&&Gu(rt[R])&&(i=8*i+"01234567".indexOf(rt[R++]))),a+=String.fromCharCode(i)):a+=r}else{if(Vu(r.charCodeAt(0)))break;a+=r}}return n!==""&&Ft({},gn,Fn),{type:8,value:a,octal:o,start:e,end:R}}():t===46?pi(rt.charCodeAt(R+1))?aF():k1():pi(t)?aF():k1()}function fe(){const t=zt;return R=t.end,zt=oF(),R=t.end,t}function sF(){const t=R;zt=oF(),R=t}function uF(t,n,e){const r=new ir(t==="||"||t==="&&"?"LogicalExpression":"BinaryExpression");return r.operator=t,r.left=n,r.right=e,r}function VB(t,n){const e=new ir("CallExpression");return e.callee=t,e.arguments=n,e}function D1(t){const n=new ir(nF);return n.name=t,n}function Xu(t){const n=new ir("Literal");return n.value=t.value,n.raw=rt.slice(t.start,t.end),t.regex&&(n.raw==="//"&&(n.raw="/(?:)/"),n.regex=t.regex),n}function lF(t,n,e){const r=new ir("MemberExpression");return r.computed=t==="[",r.object=n,r.property=e,r.computed||(e.member=!0),r}function cF(t,n,e){const r=new ir("Property");return r.key=n,r.value=e,r.kind=t,r}function Ft(t,n){var e,r=Array.prototype.slice.call(arguments,2),i=n.replace(/%(\d)/g,(a,o)=>(ed(o<r.length,"Message reference must be in range"),r[o]));throw(e=new Error(i)).index=R,e.description=i,e}function id(t){t.type===2&&Ft(t,"Unexpected end of input"),t.type===6&&Ft(t,"Unexpected number"),t.type===8&&Ft(t,"Unexpected string"),t.type===3&&Ft(t,"Unexpected identifier"),t.type===4&&Ft(t,"Unexpected reserved word"),Ft(t,gn,t.value)}function Pn(t){const n=fe();n.type===7&&n.value===t||id(n)}function Ht(t){return zt.type===7&&zt.value===t}function F1(t){return zt.type===4&&zt.value===t}function YB(){const t=[];for(R=zt.start,Pn("[");!Ht("]");)Ht(",")?(fe(),t.push(null)):(t.push(Ya()),Ht("]")||Pn(","));return fe(),function(n){const e=new ir("ArrayExpression");return e.elements=n,e}(t)}function fF(){R=zt.start;const t=fe();return t.type===8||t.type===6?(t.octal&&Ft(t,eF),Xu(t)):D1(t.value)}function XB(){var t,n,e;return R=zt.start,(t=zt).type===3?(e=fF(),Pn(":"),cF("init",e,Ya())):t.type!==2&&t.type!==7?(n=fF(),Pn(":"),cF("init",n,Ya())):void id(t)}function JB(){var t,n,e=[],r={},i=String;for(R=zt.start,Pn("{");!Ht("}");)n="$"+((t=XB()).key.type===nF?t.key.name:i(t.key.value)),Object.prototype.hasOwnProperty.call(r,n)?Ft({},"Duplicate data property in object literal not allowed in strict mode"):r[n]=!0,e.push(t),Ht("}")||Pn(",");return Pn("}"),function(a){const o=new ir("ObjectExpression");return o.properties=a,o}(e)}const KB={if:1};function QB(){var t,n,e;if(Ht("("))return function(){Pn("(");const r=C1();return Pn(")"),r}();if(Ht("["))return YB();if(Ht("{"))return JB();if(t=zt.type,R=zt.start,t===3||KB[zt.value])e=D1(fe().value);else if(t===8||t===6)zt.octal&&Ft(zt,eF),e=Xu(fe());else{if(t===4)throw new Error(Hu);t===1?((n=fe()).value=n.value==="true",e=Xu(n)):t===5?((n=fe()).value=null,e=Xu(n)):Ht("/")||Ht("/=")?(e=Xu(GB()),sF()):id(fe())}return e}function ZB(){const t=[];if(Pn("("),!Ht(")"))for(;R<Tn&&(t.push(Ya()),!Ht(")"));)Pn(",");return Pn(")"),t}function tz(){return Pn("."),function(){R=zt.start;const t=fe();return function(n){return n.type===3||n.type===4||n.type===1||n.type===5}(t)||id(t),D1(t.value)}()}function nz(){Pn("[");const t=C1();return Pn("]"),t}function dF(){const t=function(){var n;for(n=QB();;)if(Ht("."))n=lF(".",n,tz());else if(Ht("("))n=VB(n,ZB());else{if(!Ht("["))break;n=lF("[",n,nz())}return n}();if(zt.type===7&&(Ht("++")||Ht("--")))throw new Error(Hu);return t}function ad(){var t,n;if(zt.type!==7&&zt.type!==4)n=dF();else{if(Ht("++")||Ht("--"))throw new Error(Hu);if(Ht("+")||Ht("-")||Ht("~")||Ht("!"))t=fe(),n=ad(),n=function(e,r){const i=new ir("UnaryExpression");return i.operator=e,i.argument=r,i.prefix=!0,i}(t.value,n);else{if(F1("delete")||F1("void")||F1("typeof"))throw new Error(Hu);n=dF()}}return n}function hF(t){let n=0;if(t.type!==7&&t.type!==4)return 0;switch(t.value){case"||":n=1;break;case"&&":n=2;break;case"|":n=3;break;case"^":n=4;break;case"&":n=5;break;case"==":case"!=":case"===":case"!==":n=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":n=7;break;case"<<":case">>":case">>>":n=8;break;case"+":case"-":n=9;break;case"*":case"/":case"%":n=11}return n}function Ya(){var t,n;return t=function(){var e,r,i,a,o,s,u,l,c,f;if(e=zt,c=ad(),(o=hF(a=zt))===0)return c;for(a.prec=o,fe(),r=[e,zt],s=[c,a,u=ad()];(o=hF(zt))>0;){for(;s.length>2&&o<=s[s.length-2].prec;)u=s.pop(),l=s.pop().value,c=s.pop(),r.pop(),i=uF(l,c,u),s.push(i);(a=fe()).prec=o,s.push(a),r.push(zt),i=ad(),s.push(i)}for(i=s[f=s.length-1],r.pop();f>1;)r.pop(),i=uF(s[f-1].value,s[f-2],i),f-=2;return i}(),Ht("?")&&(fe(),n=Ya(),Pn(":"),t=function(e,r,i){const a=new ir("ConditionalExpression");return a.test=e,a.consequent=r,a.alternate=i,a}(t,n,Ya())),t}function C1(){const t=Ya();if(Ht(","))throw new Error(Hu);return t}function pF(t){R=0,Tn=(rt=t).length,zt=null,sF();const n=C1();if(zt.type!==2)throw new Error("Unexpect token after expression.");return n}var mF={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 gF(t){function n(a,o,s){return u=>function(l,c,f,d){let h=t(c[0]);return f&&(h=f+"("+h+")",f.lastIndexOf("new ",0)===0&&(h="("+h+")")),h+"."+l+(d<0?"":d===0?"()":"("+c.slice(1).map(t).join(",")+")")}(a,u,o,s)}const e="new Date",r="String",i="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",hypot:"Math.hypot",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(a){a.length<3&&j("Missing arguments to clamp function."),a.length>3&&j("Too many arguments to clamp function.");const o=a.map(t);return"Math.max("+o[1]+", Math.min("+o[2]+","+o[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:e,date:n("getDate",e,0),day:n("getDay",e,0),year:n("getFullYear",e,0),month:n("getMonth",e,0),hours:n("getHours",e,0),minutes:n("getMinutes",e,0),seconds:n("getSeconds",e,0),milliseconds:n("getMilliseconds",e,0),time:n("getTime",e,0),timezoneoffset:n("getTimezoneOffset",e,0),utcdate:n("getUTCDate",e,0),utcday:n("getUTCDay",e,0),utcyear:n("getUTCFullYear",e,0),utcmonth:n("getUTCMonth",e,0),utchours:n("getUTCHours",e,0),utcminutes:n("getUTCMinutes",e,0),utcseconds:n("getUTCSeconds",e,0),utcmilliseconds:n("getUTCMilliseconds",e,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",r,0),lower:n("toLowerCase",r,0),substring:n("substring",r),split:n("split",r),trim:n("trim",r,0),btoa:"btoa",atob:"atob",regexp:i,test:n("test",i),if:function(a){a.length<3&&j("Missing arguments to if function."),a.length>3&&j("Too many arguments to if function.");const o=a.map(t);return"("+o[0]+"?"+o[1]+":"+o[2]+")"}}}function yF(t){const n=(t=t||{}).allowed?Dr(t.allowed):{},e=t.forbidden?Dr(t.forbidden):{},r=t.constants||mF,i=(t.functions||gF)(f),a=t.globalvar,o=t.fieldvar,s=bt(a)?a:p=>`${a}["${p}"]`;let u={},l={},c=0;function f(p){if(Q(p))return p;const m=d[p.type];return m==null&&j("Unsupported type: "+p.type),m(p)}const d={Literal:p=>p.raw,Identifier:p=>{const m=p.name;return c>0?m:tt(e,m)?j("Illegal identifier: "+m):tt(r,m)?r[m]:tt(n,m)?m:(u[m]=1,s(m))},MemberExpression:p=>{const m=!p.computed,g=f(p.object);m&&(c+=1);const y=f(p.property);return g===o&&(l[function(v){const x=v&&v.length-1;return x&&(v[0]==='"'&&v[x]==='"'||v[0]==="'"&&v[x]==="'")?v.slice(1,-1):v}(y)]=1),m&&(c-=1),g+(m?"."+y:"["+y+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&j("Illegal callee type: "+p.callee.type);const m=p.callee.name,g=p.arguments,y=tt(i,m)&&i[m];return y||j("Unrecognized function: "+m),bt(y)?y(g):y+"("+g.map(f).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(f).join(",")+"]",BinaryExpression:p=>"("+f(p.left)+" "+p.operator+" "+f(p.right)+")",UnaryExpression:p=>"("+p.operator+f(p.argument)+")",ConditionalExpression:p=>"("+f(p.test)+"?"+f(p.consequent)+":"+f(p.alternate)+")",LogicalExpression:p=>"("+f(p.left)+p.operator+f(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(f).join(",")+"}",Property:p=>{c+=1;const m=f(p.key);return c-=1,m+":"+f(p.value)}};function h(p){const m={code:f(p),globals:Object.keys(u),fields:Object.keys(l)};return u={},l={},m}return h.functions=i,h.constants=r,h}const vF=Symbol("vega_selection_getter");function bF(t){return t.getter&&t.getter[vF]||(t.getter=ei(t.field),t.getter[vF]=!0),t.getter}const E1="intersect",xF="union",wF="or",ez="and",Nr="_vgsid_",Ju=ei(Nr),od="index:unit";function AF(t,n){for(var e,r,i=n.fields,a=n.values,o=i.length,s=0;s<o;++s)if(e=bF(r=i[s])(t),Da(e)&&(e=ze(e)),Da(a[s])&&(a[s]=ze(a[s])),P(a[s])&&Da(a[s][0])&&(a[s]=a[s].map(ze)),r.type==="E"){if(P(a[s])?!a[s].includes(e):e!==a[s])return!1}else if(r.type==="R"){if(!Co(e,a[s]))return!1}else if(r.type==="R-RE"){if(!Co(e,a[s],!0,!1))return!1}else if(r.type==="R-E"){if(!Co(e,a[s],!1,!1))return!1}else if(r.type==="R-LE"){if(!Co(e,a[s],!1,!0))return!1}else if(r.type==="E-LT"){if(e>=a[s])return!1}else if(r.type==="E-LTE"){if(e>a[s])return!1}else if(r.type==="E-GT"){if(e<=a[s])return!1}else if(r.type==="E-GTE"){if(e<a[s])return!1}else if(r.type==="E-VALID"){if(e===null||isNaN(e))return!1}else if(r.type==="E-ONE"&&a[s].indexOf(e)===-1)return!1;return!0}const _F=ax(Ju),rz=_F.left,iz=_F.right;var $1={[`${Nr}_union`]:function(...t){const n=new Kl;for(const e of t)for(const r of e)n.add(r);return n},[`${Nr}_intersect`]:function(t,...n){t=new Kl(t),n=n.map(n9);t:for(const e of t)for(const r of n)if(!r.has(e)){t.delete(e);continue t}return t},E_union:function(t,n){if(!t.length)return n;for(var e=0,r=n.length;e<r;++e)t.includes(n[e])||t.push(n[e]);return t},E_intersect:function(t,n){return t.length?t.filter(e=>n.includes(e)):n},R_union:function(t,n){var e=ze(n[0]),r=ze(n[1]);return e>r&&(e=n[1],r=n[0]),t.length?(t[0]>e&&(t[0]=e),t[1]<r&&(t[1]=r),t):[e,r]},R_intersect:function(t,n){var e=ze(n[0]),r=ze(n[1]);return e>r&&(e=n[1],r=n[0]),t.length?r<t[0]||t[1]<e?[]:(t[0]<e&&(t[0]=e),t[1]>r&&(t[1]=r),t):[e,r]}};function S1(t,n,e,r){n[0].type!==rs&&j("First argument to selection functions must be a string literal.");const i=n[0].value,a="unit",o="@"+a,s=":"+i;(n.length>=2&&Bt(n).value)!==E1||tt(r,o)||(r[o]=e.getData(i).indataRef(e,a)),tt(r,s)||(r[s]=e.getData(i).tuplesRef())}function kF(t){const n=this.context.data[t];return n?n.values.value:[]}const Ku=t=>function(n,e){const r=this.context.dataflow.locale();return n===null?"null":r[t](e)(n)},az=Ku("format"),DF=Ku("timeFormat"),oz=Ku("utcFormat"),sz=Ku("timeParse"),uz=Ku("utcParse"),sd=new Date(2e3,0,1);function ud(t,n,e){return Number.isInteger(t)&&Number.isInteger(n)?(sd.setYear(2e3),sd.setMonth(t),sd.setDate(n),DF.call(this,sd,e)):""}function M1(t,n,e,r){n[0].type!==rs&&j("First argument to data functions must be a string literal.");const i=n[0].value,a=":"+i;if(!tt(a,r))try{r[a]=e.getData(i).tuplesRef()}catch{}}function ae(t,n,e,r){if(n[0].type===rs)FF(e,r,n[0].value);else for(t in e.scales)FF(e,r,t)}function FF(t,n,e){const r="%"+e;if(!tt(n,r))try{n[r]=t.scaleRef(e)}catch{}}function Rr(t,n){if(Q(t)){const e=n.scales[t];return e&&fw(e.value)?e.value:void 0}if(bt(t))return fw(t)?t:void 0}function lz(t,n,e){n.__bandwidth=i=>i&&i.bandwidth?i.bandwidth():0,e._bandwidth=ae,e._range=ae,e._scale=ae;const r=i=>"_["+(i.type===rs?G("%"+i.value):G("%")+"+"+t(i))+"]";return{_bandwidth:i=>`this.__bandwidth(${r(i[0])})`,_range:i=>`${r(i[0])}.range()`,_scale:i=>`${r(i[0])}(${t(i[1])})`}}function B1(t,n){return function(e,r,i){if(e){const a=Rr(e,(i||this).context);return a&&a.path[t](r)}return n(r)}}const cz=B1("area",function(t){return pf=new Gn,si(t,Mr),2*pf}),fz=B1("bounds",function(t){var n,e,r,i,a,o,s;if(_e=an=-(Kt=ce=1/0),na=[],si(t,li),e=na.length){for(na.sort(R4),n=1,a=[r=na[0]];n<e;++n)uk(r,(i=na[n])[0])||uk(r,i[1])?(ke(r[0],i[1])>ke(r[0],r[1])&&(r[1]=i[1]),ke(i[0],r[1])>ke(r[0],r[1])&&(r[0]=i[0])):a.push(r=i);for(o=-1/0,n=0,r=a[e=a.length-1];n<=e;r=i,++n)i=a[n],(s=ke(r[1],i[0]))>o&&(o=s,Kt=i[0],an=r[1])}return na=ui=null,Kt===1/0||ce===1/0?[[NaN,NaN],[NaN,NaN]]:[[Kt,ce],[an,_e]]}),dz=B1("centroid",function(t){Du=bf=xf=wf=Af=_f=kf=Df=0,J0=new Gn,K0=new Gn,Q0=new Gn,si(t,er);var n=+J0,e=+K0,r=+Q0,i=U0(n,e,r);return i<q0&&(n=_f,e=kf,r=Df,bf<dt&&(n=xf,e=wf,r=Af),(i=U0(n,e,r))<q0)?[NaN,NaN]:[je(e,n)*on,le(r/i)*on]});function z1(t,n,e){try{t[n].apply(t,["EXPRESSION"].concat([].slice.call(e)))}catch(r){t.warn(r)}return e[e.length-1]}function O1(t){const n=t/255;return n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)}function N1(t){const n=Jl(t);return .2126*O1(n.r)+.7152*O1(n.g)+.0722*O1(n.b)}function CF(t,n){return t===n||t!=t&&n!=n||(P(t)?!(!P(n)||t.length!==n.length)&&function(e,r){for(let i=0,a=e.length;i<a;++i)if(!CF(e[i],r[i]))return!1;return!0}(t,n):!(!Z(t)||!Z(n))&&EF(t,n))}function EF(t,n){for(const e in t)if(!CF(t[e],n[e]))return!1;return!0}function $F(t){return n=>EF(t,n)}const SF={};function ld(t){return P(t)||ArrayBuffer.isView(t)?t:null}function R1(t){return ld(t)||(Q(t)?t:null)}const MF=t=>t.data;function BF(t,n){const e=kF.call(n,t);return e.root&&e.root.lookup||{}}const zF=()=>typeof window<"u"&&window||null;function OF(t,n,e){if(!t)return[];const[r,i]=t,a=new cn().set(r[0],r[1],i[0],i[1]);return QA(e||this.context.dataflow.scenegraph().root,a,function(o){let s=null;if(o){const u=K(o.marktype),l=K(o.markname);s=c=>(!u.length||u.some(f=>c.marktype===f))&&(!l.length||l.some(f=>c.name===f))}return s}(n))}const Qu={random:()=>Ne(),cumulativeNormal:uc,cumulativeLogNormal:Sp,cumulativeUniform:Op,densityNormal:Dp,densityLogNormal:$p,densityUniform:zp,quantileNormal:lc,quantileLogNormal:Mp,quantileUniform:Np,sampleNormal:sc,sampleLogNormal:Ep,sampleUniform:Bp,isArray:P,isBoolean:Fa,isDate:Da,isDefined:t=>t!==void 0,isNumber:$t,isObject:Z,isRegExp:up,isString:Q,isTuple:tc,isValid:t=>t!=null&&t==t,toBoolean:zx,toDate:t=>Ox(t),toNumber:ze,toString:Bx,indexof:function(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),r=1;r<n;r++)e[r-1]=arguments[r];return R1(t).indexOf(...e)},join:function(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),r=1;r<n;r++)e[r-1]=arguments[r];return ld(t).join(...e)},lastindexof:function(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),r=1;r<n;r++)e[r-1]=arguments[r];return R1(t).lastIndexOf(...e)},replace:function(t,n,e){return bt(e)&&j("Function argument passed to replace."),Q(n)||up(n)||j("Please pass a string or RegExp argument to replace."),String(t).replace(n,e)},reverse:function(t){return ld(t).slice().reverse()},sort:function(t){return ld(t).slice().sort(Zh)},slice:function(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),r=1;r<n;r++)e[r-1]=arguments[r];return R1(t).slice(...e)},flush:Mx,lerp:Sx,merge:function(){const t=[].slice.call(arguments);return t.unshift({}),xt(...t)},pad:$x,peek:Bt,pluck:function(t,n){const e=SF[n]||(SF[n]=ei(n));return P(t)?t.map(e):e(t)},span:Gl,inrange:Co,truncate:Ex,rgb:Jl,lab:fp,hcl:e8,hsl:mp,luminance:N1,contrast:function(t,n){const e=N1(t),r=N1(n);return(Math.max(e,r)+.05)/(Math.min(e,r)+.05)},sequence:xe,format:az,utcFormat:oz,utcParse:uz,utcOffset:Cx,utcSequence:Fx,timeFormat:DF,timeParse:sz,timeOffset:Dx,timeSequence:kx,timeUnitSpecifier:_x,monthFormat:function(t){return ud.call(this,t,1,"%B")},monthAbbrevFormat:function(t){return ud.call(this,t,1,"%b")},dayFormat:function(t){return ud.call(this,0,2+t,"%A")},dayAbbrevFormat:function(t){return ud.call(this,0,2+t,"%a")},quarter:Ax,utcquarter:wx,week:xx,utcweek:bx,dayofyear:vx,utcdayofyear:yx,warn:function(){return z1(this.context.dataflow,"warn",arguments)},info:function(){return z1(this.context.dataflow,"info",arguments)},debug:function(){return z1(this.context.dataflow,"debug",arguments)},extent:t=>kr(t),inScope:function(t){const n=this.context.group;let e=!1;if(n)for(;t;){if(t===n){e=!0;break}t=t.mark.group}return e},intersect:OF,clampRange:gx,pinchDistance:function(t){const n=t.touches,e=n[0].clientX-n[1].clientX,r=n[0].clientY-n[1].clientY;return Math.hypot(e,r)},pinchAngle:function(t){const n=t.touches;return Math.atan2(n[0].clientY-n[1].clientY,n[0].clientX-n[1].clientX)},screen:function(){const t=zF();return t?t.screen:{}},containerSize:function(){const t=this.context.dataflow,n=t.container&&t.container();return n?[n.clientWidth,n.clientHeight]:[void 0,void 0]},windowSize:function(){const t=zF();return t?[t.innerWidth,t.innerHeight]:[void 0,void 0]},bandspace:function(t,n,e){return km(t||0,n||0,e||0)},setdata:function(t,n){const e=this.context.dataflow,r=this.context.data[t].input;return e.pulse(r,e.changeset().remove(Be).insert(n)),1},pathShape:function(t){let n=null;return function(e){return e?su(e,n=n||Ro(t)):t}},panLinear:mx,panLog:px,panPow:hx,panSymlog:dx,zoomLinear:sp,zoomLog:ap,zoomPow:Vl,zoomSymlog:op,encode:function(t,n,e){if(t){const r=this.context.dataflow,i=t.mark.source;r.pulse(i,r.changeset().encode(t,n))}return e!==void 0?e:t},modify:function(t,n,e,r,i,a){const o=this.context.dataflow,s=this.context.data[t],u=s.input,l=o.stamp();let c,f,d=s.changes;if(o._trigger===!1||!(u.value.length||n||r))return 0;if((!d||d.stamp<l)&&(s.changes=d=o.changeset(),d.stamp=l,o.runAfter(()=>{s.modified=!0,o.pulse(u,d).run()},!0,1)),e&&(c=e===!0?Be:P(e)||tc(e)?e:$F(e),d.remove(c)),n&&d.insert(n),r&&(c=$F(r),u.value.some(c)?d.remove(c):d.insert(r)),i)for(f in a)d.modify(i,f,a[f]);return 1},lassoAppend:function(t,n,e){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:5;const i=(t=K(t))[t.length-1];return i===void 0||Math.hypot(i[0]-n,i[1]-e)>r?[...t,[n,e]]:t},lassoPath:function(t){return K(t).reduce((n,e,r)=>{let[i,a]=e;return n+(r==0?`M ${i},${a} `:r===t.length-1?" Z":`L ${i},${a} `)},"")},intersectLasso:function(t,n,e){const{x:r,y:i,mark:a}=e,o=new cn().set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[s,u]of n)s<o.x1&&(o.x1=s),s>o.x2&&(o.x2=s),u<o.y1&&(o.y1=u),u>o.y2&&(o.y2=u);return o.translate(r,i),OF([[o.x1,o.y1],[o.x2,o.y2]],t,a).filter(s=>function(u,l,c){let f=0;for(let d=0,h=c.length-1;d<c.length;h=d++){const[p,m]=c[h],[g,y]=c[d];y>l!=m>l&&u<(p-g)*(l-y)/(m-y)+g&&f++}return 1&f}(s.x,s.y,n))}},hz=["view","item","group","xy","x","y"],NF="this.",T1={},RF={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:t=>`_[${G("$"+t)}]`,functions:function(t){const n=gF(t);hz.forEach(e=>n[e]="event.vega."+e);for(const e in Qu)n[e]=NF+e;return xt(n,lz(t,Qu,T1)),n},constants:mF,visitors:T1},P1=yF(RF);function sn(t,n,e){return arguments.length===1?Qu[t]:(Qu[t]=n,e&&(T1[t]=e),P1&&(P1.functions[t]=NF+t),this)}function Tr(t,n){const e={};let r;try{r=pF(t=Q(t)?t:G(t)+"")}catch{j("Expression parse error: "+t)}r.visit(a=>{if(a.type!==tF)return;const o=a.callee.name,s=RF.visitors[o];s&&s(o,a.arguments,n,e)});const i=P1(r);return i.globals.forEach(a=>{const o="$"+a;!tt(e,o)&&n.getSignal(a)&&(e[o]=n.signalRef(a))}),{$expr:xt({code:i.code},n.options.ast?{ast:r}:null),$fields:i.fields,$params:e}}sn("bandwidth",function(t,n){const e=Rr(t,(n||this).context);return e&&e.bandwidth?e.bandwidth():0},ae),sn("copy",function(t,n){const e=Rr(t,(n||this).context);return e?e.copy():void 0},ae),sn("domain",function(t,n){const e=Rr(t,(n||this).context);return e?e.domain():[]},ae),sn("range",function(t,n){const e=Rr(t,(n||this).context);return e&&e.range?e.range():[]},ae),sn("invert",function(t,n,e){const r=Rr(t,(e||this).context);return r?P(n)?(r.invertRange||r.invert)(n):(r.invert||r.invertExtent)(n):void 0},ae),sn("scale",function(t,n,e){const r=Rr(t,(e||this).context);return r?r(n):void 0},ae),sn("gradient",function(t,n,e,r,i){t=Rr(t,(i||this).context);const a=zw(n,e);let o=t.domain(),s=o[0],u=Bt(o),l=Me;return u-s?l=vw(t,s,u):t=(t.interpolator?Dt("sequential")().interpolator(t.interpolator()):Dt("linear")().interpolate(t.interpolate()).range(t.range())).domain([s=0,u=1]),t.ticks&&(o=t.ticks(+r||15),s!==o[0]&&o.unshift(s),u!==Bt(o)&&o.push(u)),o.forEach(c=>a.stop(l(c),t(c))),a},ae),sn("geoArea",cz,ae),sn("geoBounds",fz,ae),sn("geoCentroid",dz,ae),sn("geoShape",function(t,n,e){const r=Rr(t,(e||this).context);return function(i){return r?r.path.context(i)(n):""}},ae),sn("geoScale",function(t,n){const e=Rr(t,(n||this).context);return e&&e.scale()},ae),sn("indata",function(t,n,e){const r=this.context.data[t]["index:"+n],i=r?r.value.get(e):void 0;return i&&i.count},function(t,n,e,r){n[0].type!==rs&&j("First argument to indata must be a string literal."),n[1].type!==rs&&j("Second argument to indata must be a string literal.");const i=n[0].value,a=n[1].value,o="@"+a;tt(o,r)||(r[o]=e.getData(i).indataRef(e,a))}),sn("data",kF,M1),sn("treePath",function(t,n,e){const r=BF(t,this),i=r[n],a=r[e];return i&&a?i.path(a).map(MF):void 0},M1),sn("treeAncestors",function(t,n){const e=BF(t,this)[n];return e?e.ancestors().map(MF):void 0},M1),sn("vlSelectionTest",function(t,n,e){for(var r,i,a,o,s,u=this.context.data[t],l=u?u.values.value:[],c=u?u[od]&&u[od].value:void 0,f=e===E1,d=l.length,h=0;h<d;++h)if(r=l[h],c&&f){if((a=(i=i||{})[o=r.unit]||0)===-1)continue;if(s=AF(n,r),i[o]=s?-1:++a,s&&c.size===1)return!0;if(!s&&a===c.get(o).count)return!1}else if(f^(s=AF(n,r)))return s;return d&&f},S1),sn("vlSelectionIdTest",function(t,n,e){const r=this.context.data[t],i=r?r.values.value:[],a=r?r[od]&&r[od].value:void 0,o=e===E1,s=Ju(n),u=rz(i,s);if(u===i.length||Ju(i[u])!==s)return!1;if(a&&o){if(a.size===1)return!0;if(iz(i,s)-u<a.size)return!1}return!0},S1),sn("vlSelectionResolve",function(t,n,e,r){for(var i,a,o,s,u,l,c,f,d,h,p,m,g=this.context.data[t],y=g?g.values.value:[],v={},x={},b={},w=y.length,A=0;A<w;++A)if(s=(i=y[A]).unit,a=i.fields,o=i.values,a&&o){for(p=0,m=a.length;p<m;++p)u=a[p],f=(c=v[u.field]||(v[u.field]={}))[s]||(c[s]=[]),b[u.field]=d=u.type.charAt(0),h=$1[`${d}_union`],c[s]=h(f,K(o[p]));e&&(f=x[s]||(x[s]=[])).push(K(o).reduce((_,k,F)=>(_[a[F].field]=k,_),{}))}else u=Nr,l=Ju(i),(f=(c=v[u]||(v[u]={}))[s]||(c[s]=[])).push(l),e&&(f=x[s]||(x[s]=[])).push({[Nr]:l});return n=n||xF,v[Nr]?v[Nr]=$1[`${Nr}_${n}`](...Object.values(v[Nr])):Object.keys(v).forEach(_=>{v[_]=Object.keys(v[_]).map(k=>v[_][k]).reduce((k,F)=>k===void 0?F:$1[`${b[_]}_${n}`](k,F))}),y=Object.keys(x),e&&y.length&&(v[r?"vlPoint":"vlMulti"]=n===xF?{[wF]:y.reduce((_,k)=>(_.push(...x[k]),_),[])}:{[ez]:y.map(_=>({[wF]:x[_]}))}),v},S1),sn("vlSelectionTuples",function(t,n){return t.map(e=>xt(n.fields?{values:n.fields.map(r=>bF(r)(e.datum))}:{[Nr]:Ju(e.datum)},n))});const pz=Dr(["rule"]),TF=Dr(["group","image","rect"]);function j1(t){return(t+"").toLowerCase()}function Zu(t,n,e){e.endsWith(";")||(e="return("+e+");");const r=Function(...n.concat(e));return t&&t.functions?r.bind(t.functions):r}var mz={operator:(t,n)=>Zu(t,["_"],n.code),parameter:(t,n)=>Zu(t,["datum","_"],n.code),event:(t,n)=>Zu(t,["event"],n.code),handler:(t,n)=>Zu(t,["_","event"],`var datum=event.item&&event.item.datum;return ${n.code};`),encode:(t,n)=>{const{marktype:e,channels:r}=n;let i="var o=item,datum=o.datum,m=0,$;";for(const a in r){const o="o["+G(a)+"]";i+=`$=${r[a].code};if(${o}!==$)${o}=$,m=1;`}return i+=function(a,o){let s="";return pz[o]||(a.x2&&(a.x?(TF[o]&&(s+="if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"),s+="o.width=o.x2-o.x;"):s+="o.x=o.x2-(o.width||0);"),a.xc&&(s+="o.x=o.xc-(o.width||0)/2;"),a.y2&&(a.y?(TF[o]&&(s+="if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"),s+="o.height=o.y2-o.y;"):s+="o.y=o.y2-(o.height||0);"),a.yc&&(s+="o.y=o.yc-(o.height||0)/2;")),s}(r,e),i+="return m;",Zu(t,["item","_"],i)},codegen:{get(t){const n=`[${t.map(G).join("][")}]`,e=Function("_",`return _${n};`);return e.path=n,e},comparator(t,n){let e;const r=Function("a","b","var u, v; return "+t.map((i,a)=>{const o=n[a];let s,u;return i.path?(s=`a${i.path}`,u=`b${i.path}`):((e=e||{})["f"+a]=i,s=`this.f${a}(a)`,u=`this.f${a}(b)`),function(l,c,f,d){return`((u = ${l}) < (v = ${c}) || u == null) && v != null ? ${f}
|
5
|
-
: (u > v || v == null) && u != null ? ${d}
|
6
|
-
: ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ${f}
|
7
|
-
: v !== v && u === u ? ${d} : `}(s,u,-o,o)}).join("")+"0;");return e?r.bind(e):r}}};function PF(t,n,e){if(!t||!Z(t))return t;for(let r,i=0,a=jF.length;i<a;++i)if(r=jF[i],tt(t,r.key))return r.parse(t,n,e);return t}var jF=[{key:"$ref",parse:function(t,n){return n.get(t.$ref)||j("Operator not defined: "+t.$ref)}},{key:"$key",parse:function(t,n){const e="k:"+t.$key+"_"+!!t.$flat;return n.fn[e]||(n.fn[e]=rp(t.$key,t.$flat,n.expr.codegen))}},{key:"$expr",parse:function(t,n,e){t.$params&&n.parseParameters(t.$params,e);const r="e:"+t.$expr.code;return n.fn[r]||(n.fn[r]=Do(n.parameterExpression(t.$expr),t.$fields))}},{key:"$field",parse:function(t,n){if(!t.$field)return null;const e="f:"+t.$field+"_"+t.$name;return n.fn[e]||(n.fn[e]=ei(t.$field,t.$name,n.expr.codegen))}},{key:"$encode",parse:function(t,n){const e=t.$encode,r={};for(const i in e){const a=e[i];r[i]=Do(n.encodeExpression(a.$expr),a.$fields),r[i].output=a.$output}return r}},{key:"$compare",parse:function(t,n){const e="c:"+t.$compare+"_"+t.$order,r=K(t.$compare).map(i=>i&&i.$tupleid?st:i);return n.fn[e]||(n.fn[e]=ep(r,t.$order,n.expr.codegen))}},{key:"$context",parse:function(t,n){return n}},{key:"$subflow",parse:function(t,n){const e=t.$subflow;return function(r,i,a){const o=n.fork().parse(e),s=o.get(e.operators[0].id),u=o.signals.parent;return u&&u.set(a),s.detachSubflow=()=>n.detach(o),s}}},{key:"$tupleid",parse:function(){return st}}];const gz={skip:!0};function LF(t,n,e,r){return new qF(t,n,e,r)}function qF(t,n,e,r){this.dataflow=t,this.transforms=n,this.events=t.events.bind(t),this.expr=r||mz,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},e&&(this.functions=Object.create(e),this.functions.context=this)}function UF(t){this.dataflow=t.dataflow,this.transforms=t.transforms,this.events=t.events,this.expr=t.expr,this.signals=Object.create(t.signals),this.scales=Object.create(t.scales),this.nodes=Object.create(t.nodes),this.data=Object.create(t.data),this.fn=Object.create(t.fn),t.functions&&(this.functions=Object.create(t.functions),this.functions.context=this)}function IF(t,n){t&&(n==null?t.removeAttribute("aria-label"):t.setAttribute("aria-label",n))}qF.prototype=UF.prototype={fork(){const t=new UF(this);return(this.subcontext||(this.subcontext=[])).push(t),t},detach(t){this.subcontext=this.subcontext.filter(e=>e!==t);const n=Object.keys(t.nodes);for(const e of n)t.nodes[e]._targets=null;for(const e of n)t.nodes[e].detach();t.nodes=null},get(t){return this.nodes[t]},set(t,n){return this.nodes[t]=n},add(t,n){const e=this,r=e.dataflow,i=t.value;if(e.set(t.id,n),function(a){return j1(a)==="collect"}(t.type)&&i&&(i.$ingest?r.ingest(n,i.$ingest,i.$format):i.$request?r.preload(n,i.$request,i.$format):r.pulse(n,r.changeset().insert(i))),t.root&&(e.root=n),t.parent){let a=e.get(t.parent.$ref);a?(r.connect(a,[n]),n.targets().add(a)):(e.unresolved=e.unresolved||[]).push(()=>{a=e.get(t.parent.$ref),r.connect(a,[n]),n.targets().add(a)})}if(t.signal&&(e.signals[t.signal]=n),t.scale&&(e.scales[t.scale]=n),t.data)for(const a in t.data){const o=e.data[a]||(e.data[a]={});t.data[a].forEach(s=>o[s]=n)}},resolve(){return(this.unresolved||[]).forEach(t=>t()),delete this.unresolved,this},operator(t,n){this.add(t,this.dataflow.add(t.value,n))},transform(t,n){this.add(t,this.dataflow.add(this.transforms[j1(n)]))},stream(t,n){this.set(t.id,n)},update(t,n,e,r,i){this.dataflow.on(n,e,r,i,t.options)},operatorExpression(t){return this.expr.operator(this,t)},parameterExpression(t){return this.expr.parameter(this,t)},eventExpression(t){return this.expr.event(this,t)},handlerExpression(t){return this.expr.handler(this,t)},encodeExpression(t){return this.expr.encode(this,t)},parse:function(t){const n=this,e=t.operators||[];return t.background&&(n.background=t.background),t.eventConfig&&(n.eventConfig=t.eventConfig),t.locale&&(n.locale=t.locale),e.forEach(r=>n.parseOperator(r)),e.forEach(r=>n.parseOperatorParameters(r)),(t.streams||[]).forEach(r=>n.parseStream(r)),(t.updates||[]).forEach(r=>n.parseUpdate(r)),n.resolve()},parseOperator:function(t){const n=this;!function(e){return j1(e)==="operator"}(t.type)&&t.type?n.transform(t,t.type):n.operator(t,t.update?n.operatorExpression(t.update):null)},parseOperatorParameters:function(t){const n=this;if(t.params){const e=n.get(t.id);e||j("Invalid operator id: "+t.id),n.dataflow.connect(e,e.parameters(n.parseParameters(t.params),t.react,t.initonly))}},parseParameters:function(t,n){n=n||{};const e=this;for(const r in t){const i=t[r];n[r]=P(i)?i.map(a=>PF(a,e,n)):PF(i,e,n)}return n},parseStream:function(t){var n,e=this,r=t.filter!=null?e.eventExpression(t.filter):void 0,i=t.stream!=null?e.get(t.stream):void 0;t.source?i=e.events(t.source,t.type,r):t.merge&&(i=(n=t.merge.map(a=>e.get(a)))[0].merge.apply(n[0],n.slice(1))),t.between&&(n=t.between.map(a=>e.get(a)),i=i.between(n[0],n[1])),t.filter&&(i=i.filter(r)),t.throttle!=null&&(i=i.throttle(+t.throttle)),t.debounce!=null&&(i=i.debounce(+t.debounce)),i==null&&j("Invalid stream definition: "+JSON.stringify(t)),t.consume&&i.consume(!0),e.stream(t,i)},parseUpdate:function(t){var n,e=this,r=Z(r=t.source)?r.$ref:r,i=e.get(r),a=t.update,o=void 0;i||j("Source not defined: "+t.source),n=t.target&&t.target.$expr?e.eventExpression(t.target.$expr):e.get(t.target),a&&a.$expr&&(a.$params&&(o=e.parseParameters(a.$params)),a=e.handlerExpression(a.$expr)),e.update(t,i,n,a,o)},getState:function(t){var n=this,e={};if(t.signals){var r=e.signals={};Object.keys(n.signals).forEach(a=>{const o=n.signals[a];t.signals(a,o)&&(r[a]=o.value)})}if(t.data){var i=e.data={};Object.keys(n.data).forEach(a=>{const o=n.data[a];t.data(a,o)&&(i[a]=o.input.value)})}return n.subcontext&&t.recurse!==!1&&(e.subcontext=n.subcontext.map(a=>a.getState(t))),e},setState:function(t){var n=this,e=n.dataflow,r=t.data,i=t.signals;Object.keys(i||{}).forEach(a=>{e.update(n.signals[a],i[a],gz)}),Object.keys(r||{}).forEach(a=>{e.pulse(n.data[a].input,e.changeset().remove(Be).insert(r[a]))}),(t.subcontext||[]).forEach((a,o)=>{const s=n.subcontext[o];s&&s.setState(a)})}};const L1="default";function q1(t,n){const e=t.globalCursor()?typeof document<"u"&&document.body:t.container();if(e)return n==null?e.style.removeProperty("cursor"):e.style.cursor=n}function cd(t,n){var e=t._runtime.data;return tt(e,n)||j("Unrecognized data set: "+n),e[n]}function fd(t,n){t2(n)||j("Second argument to changes must be a changeset.");const e=cd(this,t);return e.modified=!0,this.pulse(e.input,n)}function WF(t){var n=t.padding();return Math.max(0,t._viewWidth+n.left+n.right)}function HF(t){var n=t.padding();return Math.max(0,t._viewHeight+n.top+n.bottom)}function dd(t){var n=t.padding(),e=t._origin;return[n.left+e[0],n.top+e[1]]}function yz(t,n,e){var r,i,a=t._renderer,o=a&&a.canvas();return o&&(i=dd(t),(r=Uc(n.changedTouches?n.changedTouches[0]:n,o))[0]-=i[0],r[1]-=i[1]),n.dataflow=t,n.item=e,n.vega=function(s,u,l){const c=u?u.mark.marktype==="group"?u:u.mark.group:null;function f(h){var p,m=c;if(h){for(p=u;p;p=p.mark.group)if(p.mark.name===h){m=p;break}}return m&&m.mark&&m.mark.interactive?m:{}}function d(h){if(!h)return l;Q(h)&&(h=f(h));const p=l.slice();for(;h;)p[0]-=h.x||0,p[1]-=h.y||0,h=h.mark&&h.mark.group;return p}return{view:In(s),item:In(u||{}),group:f,xy:d,x:h=>d(h)[0],y:h=>d(h)[1]}}(t,e,r),n}const GF="view",vz={trap:!1};function VF(t,n,e,r){t._eventListeners.push({type:e,sources:K(n),handler:r})}function hd(t,n,e){const r=t._eventConfig&&t._eventConfig[n];return!(r===!1||Z(r)&&!r[e])||(t.warn(`Blocked ${n} ${e} event listener.`),!1)}function YF(t){return t.item}function XF(t){return t.item.mark.source}function JF(t){return function(n,e){return e.vega.view().changeset().encode(e.item,t)}}function De(t,n,e){const r=document.createElement(t);for(const i in n)r.setAttribute(i,n[i]);return e!=null&&(r.textContent=e),r}function bz(t,n,e,r){const i=e.event||"input",a=()=>t.update(n.value);r.signal(e.signal,n.value),n.addEventListener(i,a),VF(r,n,i,a),t.set=o=>{n.value=o,n.dispatchEvent(function(s){return typeof Event<"u"?new Event(s):{type:s}}(i))}}function xz(t,n,e,r){const i=r.signal(e.signal),a=De("div",{class:"vega-bind"}),o=e.input==="radio"?a:a.appendChild(De("label"));o.appendChild(De("span",{class:"vega-bind-name"},e.name||e.signal)),n.appendChild(a);let s=wz;switch(e.input){case"checkbox":s=Az;break;case"select":s=_z;break;case"radio":s=kz;break;case"range":s=Dz}s(t,o,e,i)}function wz(t,n,e,r){const i=De("input");for(const a in e)a!=="signal"&&a!=="element"&&i.setAttribute(a==="input"?"type":a,e[a]);i.setAttribute("name",e.signal),i.value=r,n.appendChild(i),i.addEventListener("input",()=>t.update(i.value)),t.elements=[i],t.set=a=>i.value=a}function Az(t,n,e,r){const i={type:"checkbox",name:e.signal};r&&(i.checked=!0);const a=De("input",i);n.appendChild(a),a.addEventListener("change",()=>t.update(a.checked)),t.elements=[a],t.set=o=>a.checked=!!o||null}function _z(t,n,e,r){const i=De("select",{name:e.signal}),a=e.labels||[];e.options.forEach((o,s)=>{const u={value:o};pd(o,r)&&(u.selected=!0),i.appendChild(De("option",u,(a[s]||o)+""))}),n.appendChild(i),i.addEventListener("change",()=>{t.update(e.options[i.selectedIndex])}),t.elements=[i],t.set=o=>{for(let s=0,u=e.options.length;s<u;++s)if(pd(e.options[s],o))return void(i.selectedIndex=s)}}function kz(t,n,e,r){const i=De("span",{class:"vega-bind-radio"}),a=e.labels||[];n.appendChild(i),t.elements=e.options.map((o,s)=>{const u={type:"radio",name:e.signal,value:o};pd(o,r)&&(u.checked=!0);const l=De("input",u);l.addEventListener("change",()=>t.update(o));const c=De("label",{},(a[s]||o)+"");return c.prepend(l),i.appendChild(c),l}),t.set=o=>{const s=t.elements,u=s.length;for(let l=0;l<u;++l)pd(s[l].value,o)&&(s[l].checked=!0)}}function Dz(t,n,e,r){r=r!==void 0?r:(+e.max+ +e.min)/2;const i=e.max!=null?e.max:Math.max(100,+r)||100,a=e.min||Math.min(0,i,+r)||0,o=e.step||fx(a,i,100),s=De("input",{type:"range",name:e.signal,min:a,max:i,step:o});s.value=r;const u=De("span",{},+r);n.appendChild(s),n.appendChild(u);const l=()=>{u.textContent=s.value,t.update(+s.value)};s.addEventListener("input",l),s.addEventListener("change",l),t.elements=[s],t.set=c=>{s.value=c,u.textContent=c}}function pd(t,n){return t===n||t+""==n+""}function KF(t,n,e,r,i,a){return(n=n||new r(t.loader())).initialize(e,WF(t),HF(t),dd(t),i,a).background(t.background())}function U1(t,n){return n?function(){try{n.apply(this,arguments)}catch(e){t.error(e)}}:null}function I1(t,n,e){if(typeof n=="string"){if(typeof document>"u")return t.error("DOM document instance not found."),null;if(!(n=document.querySelector(n)))return t.error("Signal bind element not found: "+n),null}if(n&&e)try{n.textContent=""}catch(r){n=null,t.error(r)}return n}const tl=t=>+t||0;function QF(t){return Z(t)?{top:tl(t.top),bottom:tl(t.bottom),left:tl(t.left),right:tl(t.right)}:(n=>({top:n,bottom:n,left:n,right:n}))(tl(t))}async function W1(t,n,e,r){const i=ef(n),a=i&&i.headless;return a||j("Unrecognized renderer type: "+n),await t.runAsync(),KF(t,null,null,a,e,r).renderAsync(t._scenegraph.root)}var ZF="width",tC="height",H1="padding",nC={skip:!0};function eC(t,n){var e=t.autosize(),r=t.padding();return n-(e&&e.contains===H1?r.left+r.right:0)}function rC(t,n){var e=t.autosize(),r=t.padding();return n-(e&&e.contains===H1?r.top+r.bottom:0)}function Fz(t,n){return n.modified&&P(n.input.value)&&!t.startsWith("_:vega:_")}function Cz(t,n){return!(t==="parent"||n instanceof So.proxy)}function Ez(t,n,e,r){const i=t.element();i&&i.setAttribute("title",function(a){return a==null?"":P(a)?iC(a):Z(a)&&!Da(a)?(o=a,Object.keys(o).map(s=>{const u=o[s];return s+": "+(P(u)?iC(u):aC(u))}).join(`
|
8
|
-
`)):a+"";var o}(r))}function iC(t){return"["+t.map(aC).join(", ")+"]"}function aC(t){return P(t)?"[\u2026]":Z(t)&&!Da(t)?"{\u2026}":t}function oC(t,n){const e=this;if(n=n||{},$o.call(e),n.loader&&e.loader(n.loader),n.logger&&e.logger(n.logger),n.logLevel!=null&&e.logLevel(n.logLevel),n.locale||t.locale){const a=xt({},t.locale,n.locale);e.locale(Nx(a.number,a.time))}e._el=null,e._elBind=null,e._renderType=n.renderer||Ki.Canvas,e._scenegraph=new yA;const r=e._scenegraph.root;e._renderer=null,e._tooltip=n.tooltip||Ez,e._redraw=!0,e._handler=new wu().scene(r),e._globalCursor=!1,e._preventDefault=!1,e._timers=[],e._eventListeners=[],e._resizeListeners=[],e._eventConfig=function(a){const o=xt({defaults:{}},a),s=(u,l)=>{l.forEach(c=>{P(u[c])&&(u[c]=Dr(u[c]))})};return s(o.defaults,["prevent","allow"]),s(o,["view","window","selector"]),o}(t.eventConfig),e.globalCursor(e._eventConfig.globalCursor);const i=function(a,o,s){return LF(a,So,Qu,s).parse(o)}(e,t,n.expr);e._runtime=i,e._signals=i.signals,e._bind=(t.bindings||[]).map(a=>({state:null,param:xt({},a)})),i.root&&i.root.set(r),r.source=i.data.root.input,e.pulse(i.data.root.input,e.changeset().insert(r.items)),e._width=e.width(),e._height=e.height(),e._viewWidth=eC(e,e._width),e._viewHeight=rC(e,e._height),e._origin=[0,0],e._resize=0,e._autosize=1,function(a){var o=a._signals,s=o[ZF],u=o[tC],l=o[H1];function c(){a._autosize=a._resize=1}a._resizeWidth=a.add(null,d=>{a._width=d.size,a._viewWidth=eC(a,d.size),c()},{size:s}),a._resizeHeight=a.add(null,d=>{a._height=d.size,a._viewHeight=rC(a,d.size),c()},{size:u});const f=a.add(null,c,{pad:l});a._resizeWidth.rank=s.rank+1,a._resizeHeight.rank=u.rank+1,f.rank=l.rank+1}(e),function(a){a.add(null,o=>(a._background=o.bg,a._resize=1,o.bg),{bg:a._signals.background})}(e),function(a){const o=a._signals.cursor||(a._signals.cursor=a.add({user:L1,item:null}));a.on(a.events("view","pointermove"),o,(s,u)=>{const l=o.value,c=l?Q(l)?l:l.user:L1,f=u.item&&u.item.cursor||null;return l&&c===l.user&&f==l.item?l:{user:c,item:f}}),a.add(null,function(s){let u=s.cursor,l=this.value;return Q(u)||(l=u.item,u=u.user),q1(a,u&&u!==L1?u:l||u),l},{cursor:o})}(e),e.description(t.description),n.hover&&e.hover(),n.container&&e.initialize(n.container,n.bind),n.watchPixelRatio&&e._watchPixelRatio()}function md(t,n){return tt(t._signals,n)?t._signals[n]:j("Unrecognized signal name: "+G(n))}function sC(t,n){const e=(t._targets||[]).filter(r=>r._update&&r._update.handler===n);return e.length?e[0]:null}function uC(t,n,e,r){let i=sC(e,r);return i||(i=U1(t,()=>r(n,e.value)),i.handler=r,t.on(e,null,i)),t}function lC(t,n,e){const r=sC(n,e);return r&&n._targets.remove(r),t}V(oC,$o,{async evaluate(t,n,e){if(await $o.prototype.evaluate.call(this,t,n),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,function(r){var i=dd(r),a=WF(r),o=HF(r);r._renderer.background(r.background()),r._renderer.resize(a,o,i),r._handler.origin(i),r._resizeListeners.forEach(s=>{try{s(a,o)}catch(u){r.error(u)}})}(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(r){this.error(r)}return e&&Zl(this,e),this},dirty(t){this._redraw=!0,this._renderer&&this._renderer.dirty(t)},description(t){if(arguments.length){const n=t!=null?t+"":null;return n!==this._desc&&IF(this._el,this._desc=n),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(t,n,e){const r=md(this,t);return arguments.length===1?r.value:this.update(r,n,e)},width(t){return arguments.length?this.signal("width",t):this.signal("width")},height(t){return arguments.length?this.signal("height",t):this.signal("height")},padding(t){return arguments.length?this.signal("padding",QF(t)):QF(this.signal("padding"))},autosize(t){return arguments.length?this.signal("autosize",t):this.signal("autosize")},background(t){return arguments.length?this.signal("background",t):this.signal("background")},renderer(t){return arguments.length?(ef(t)||j("Unrecognized renderer type: "+t),t!==this._renderType&&(this._renderType=t,this._resetRenderer()),this):this._renderType},tooltip(t){return arguments.length?(t!==this._tooltip&&(this._tooltip=t,this._resetRenderer()),this):this._tooltip},loader(t){return arguments.length?(t!==this._loader&&($o.prototype.loader.call(this,t),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(md(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:function(t,n,e,r,i,a){this.runAfter(o=>{let s=0;o._autosize=0,o.width()!==e&&(s=1,o.signal(ZF,e,nC),o._resizeWidth.skip(!0)),o.height()!==r&&(s=1,o.signal(tC,r,nC),o._resizeHeight.skip(!0)),o._viewWidth!==t&&(o._resize=1,o._viewWidth=t),o._viewHeight!==n&&(o._resize=1,o._viewHeight=n),o._origin[0]===i[0]&&o._origin[1]===i[1]||(o._resize=1,o._origin=i),s&&o.run("enter"),a&&o.runAfter(u=>u.resize())},!1,1)},addEventListener(t,n,e){let r=n;return e&&e.trap===!1||(r=U1(this,n),r.raw=n),this._handler.on(t,r),this},removeEventListener(t,n){for(var e,r,i=this._handler.handlers(t),a=i.length;--a>=0;)if(r=i[a].type,e=i[a].handler,t===r&&(n===e||n===e.raw)){this._handler.off(r,e);break}return this},addResizeListener(t){const n=this._resizeListeners;return n.includes(t)||n.push(t),this},removeResizeListener(t){var n=this._resizeListeners,e=n.indexOf(t);return e>=0&&n.splice(e,1),this},addSignalListener(t,n){return uC(this,t,md(this,t),n)},removeSignalListener(t,n){return lC(this,md(this,t),n)},addDataListener(t,n){return uC(this,t,cd(this,t).values,n)},removeDataListener(t,n){return lC(this,cd(this,t).values,n)},globalCursor(t){if(arguments.length){if(this._globalCursor!==!!t){const n=q1(this,null);this._globalCursor=!!t,n&&q1(this,n)}return this}return this._globalCursor},preventDefault(t){return arguments.length?(this._preventDefault=t,this):this._preventDefault},timer:function(t,n){this._timers.push(function(e,r,i){var a=new D8,o=r;return r==null?(a.restart(e,r,i),a):(a._restart=a.restart,a.restart=function(s,u,l){u=+u,l=l==null?F8():+l,a._restart(function c(f){f+=o,a._restart(c,o+=u,l),s(f)},u,l)},a.restart(e,r,i),a)}(function(e){t({timestamp:Date.now(),elapsed:e})},n))},events:function(t,n,e){var r,i=this,a=new ic(e),o=function(l,c){i.runAsync(null,()=>{t===GF&&function(f,d){var h=f._eventConfig.defaults,p=h.prevent,m=h.allow;return p!==!1&&m!==!0&&(p===!0||m===!1||(p?p[d]:m?!m[d]:f.preventDefault()))}(i,n)&&l.preventDefault(),a.receive(yz(i,l,c))})};if(t==="timer")hd(i,"timer",n)&&i.timer(o,n);else if(t===GF)hd(i,"view",n)&&i.addEventListener(n,o,vz);else if(t==="window"?hd(i,"window",n)&&typeof window<"u"&&(r=[window]):typeof document<"u"&&hd(i,"selector",n)&&(r=Array.from(document.querySelectorAll(t))),r){for(var s=0,u=r.length;s<u;++s)r[s].addEventListener(n,o);VF(i,r,n,o)}else i.warn("Can not resolve event source: "+t);return a},finalize:function(){var t,n,e,r,i,a=this._tooltip,o=this._timers,s=this._handler.handlers(),u=this._eventListeners;for(t=o.length;--t>=0;)o[t].stop();for(t=u.length;--t>=0;)for(n=(e=u[t]).sources.length;--n>=0;)e.sources[n].removeEventListener(e.type,e.handler);for(a&&a.call(this,this._handler,null,null,null),t=s.length;--t>=0;)i=s[t].type,r=s[t].handler,this._handler.off(i,r);return this},hover:function(t,n){return n=[n||"update",(t=[t||"hover"])[0]],this.on(this.events("view","pointerover",YF),XF,JF(t)),this.on(this.events("view","pointerout",YF),XF,JF(n)),this},data:function(t,n){return arguments.length<2?cd(this,t).values.value:fd.call(this,t,Ma().remove(Be).insert(n))},change:fd,insert:function(t,n){return fd.call(this,t,Ma().insert(n))},remove:function(t,n){return fd.call(this,t,Ma().remove(n))},scale:function(t){var n=this._runtime.scales;return tt(n,t)||j("Unrecognized scale or projection: "+t),n[t].value},initialize:function(t,n){const e=this,r=e._renderType,i=e._eventConfig.bind,a=ef(r);t=e._el=t?I1(e,t,!0):null,function(u){const l=u.container();l&&(l.setAttribute("role","graphics-document"),l.setAttribute("aria-roleDescription","visualization"),IF(l,u.description()))}(e),a||e.error("Unrecognized renderer type: "+r);const o=a.handler||wu,s=t?a.renderer:a.headless;return e._renderer=s?KF(e,e._renderer,t,s):null,e._handler=function(u,l,c,f){const d=new f(u.loader(),U1(u,u.tooltip())).scene(u.scenegraph().root).initialize(c,dd(u),u);return l&&l.handlers().forEach(h=>{d.on(h.type,h.handler)}),d}(e,e._handler,t,o),e._redraw=!0,t&&i!=="none"&&(n=n?e._elBind=I1(e,n,!0):t.appendChild(De("form",{class:"vega-bindings"})),e._bind.forEach(u=>{u.param.element&&i!=="container"&&(u.element=I1(e,u.param.element,!!u.param.input))}),e._bind.forEach(u=>{(function(l,c,f){if(!c)return;const d=f.param;let h=f.state;h||(h=f.state={elements:null,active:!1,set:null,update:p=>{p!=l.signal(d.signal)&&l.runAsync(null,()=>{h.source=!0,l.signal(d.signal,p)})}},d.debounce&&(h.update=Qh(d.debounce,h.update))),(d.input==null&&d.element?bz:xz)(h,c,d,l),h.active||(l.on(l._signals[d.signal],null,()=>{h.source?h.source=!1:h.set(l.signal(d.signal))}),h.active=!0)})(e,u.element||n,u)})),e},toImageURL:async function(t,n){t!==Ki.Canvas&&t!==Ki.SVG&&t!==Ki.PNG&&j("Unrecognized image type: "+t);const e=await W1(this,t,n);return t===Ki.SVG?function(r,i){const a=new Blob([r],{type:i});return window.URL.createObjectURL(a)}(e.svg(),"image/svg+xml"):e.canvas().toDataURL("image/png")},toCanvas:async function(t,n){return(await W1(this,Ki.Canvas,t,n)).canvas()},toSVG:async function(t){return(await W1(this,Ki.SVG,t)).svg()},getState:function(t){return this._runtime.getState(t||{data:Fz,signals:Cz,recurse:!0})},setState:function(t){return this.runAsync(null,n=>{n._trigger=!1,n._runtime.setState(t)},n=>{n._trigger=!0}),this},_watchPixelRatio:function(){if(this.renderer()==="canvas"&&this._renderer._canvas){let t=null;const n=()=>{t!=null&&t();const e=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);e.addEventListener("change",n),t=()=>{e.removeEventListener("change",n)},this._renderer._canvas.getContext("2d").pixelRatio=window.devicePixelRatio||1,this._redraw=!0,this._resize=1,this.resize().runAsync()};n()}}});const G1="[",V1="]",$z=/[[\]{}]/,Sz={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};let cC,fC;function aa(t,n,e){return cC=n||"view",fC=e||Sz,dC(t.trim()).map(Y1)}function nl(t,n,e,r,i){const a=t.length;let o,s=0;for(;n<a;++n){if(o=t[n],!s&&o===e)return n;i&&i.indexOf(o)>=0?--s:r&&r.indexOf(o)>=0&&++s}return n}function dC(t){const n=[],e=t.length;let r=0,i=0;for(;i<e;)i=nl(t,i,",","[{","]}"),n.push(t.substring(r,i).trim()),r=++i;if(n.length===0)throw"Empty event selector: "+t;return n}function Y1(t){return t[0]==="["?function(n){const e=n.length;let r,i=1;if(i=nl(n,i,V1,G1,V1),i===e)throw"Empty between selector: "+n;if(r=dC(n.substring(1,i)),r.length!==2)throw"Between selector must have two elements: "+n;if(n=n.slice(i+1).trim(),n[0]!==">")throw"Expected '>' after between selector: "+n;r=r.map(Y1);const a=Y1(n.slice(1).trim());return a.between?{between:r,stream:a}:(a.between=r,a)}(t):function(n){const e={source:cC},r=[];let i,a,o=[0,0],s=0,u=0,l=n.length,c=0;if(n[l-1]==="}"){if(c=n.lastIndexOf("{"),!(c>=0))throw"Unmatched right brace: "+n;try{o=function(f){const d=f.split(",");if(!f.length||d.length>2)throw f;return d.map(h=>{const p=+h;if(p!=p)throw f;return p})}(n.substring(c+1,l-1))}catch{throw"Invalid throttle specification: "+n}l=(n=n.slice(0,c).trim()).length,c=0}if(!l)throw n;if(n[0]==="@"&&(s=++c),i=nl(n,c,":"),i<l&&(r.push(n.substring(u,i).trim()),u=c=++i),c=nl(n,c,G1),c===l)r.push(n.substring(u,l).trim());else if(r.push(n.substring(u,c).trim()),a=[],u=++c,u===l)throw"Unmatched left bracket: "+n;for(;c<l;){if(c=nl(n,c,V1),c===l)throw"Unmatched left bracket: "+n;if(a.push(n.substring(u,c).trim()),c<l-1&&n[++c]!==G1)throw"Expected left bracket: "+n;u=++c}if(!(l=r.length)||$z.test(r[l-1]))throw"Invalid event selector: "+n;return l>1?(e.type=r[1],s?e.markname=r[0].slice(1):function(f){return fC[f]}(r[0])?e.marktype=r[0]:e.source=r[0]):e.type=r[0],e.type.slice(-1)==="!"&&(e.consume=!0,e.type=e.type.slice(0,-1)),a!=null&&(e.filter=a),o[0]&&(e.throttle=o[0]),o[1]&&(e.debounce=o[1]),e}(t)}function Mz(t){return Z(t)?t:{type:t||"pad"}}const el=t=>+t||0;function Bz(t){return Z(t)?t.signal?t:{top:el(t.top),bottom:el(t.bottom),left:el(t.left),right:el(t.right)}:{top:n=el(t),bottom:n,left:n,right:n};var n}const yn=t=>Z(t)&&!P(t)?xt({},t):{value:t};function hC(t,n,e,r){return e!=null?(Z(e)&&!P(e)||P(e)&&e.length&&Z(e[0])?t.update[n]=e:t[r||"enter"][n]={value:e},1):0}function Cn(t,n,e){for(const r in n)hC(t,r,n[r]);for(const r in e)hC(t,r,e[r],"update")}function is(t,n,e){for(const r in n)e&&tt(e,r)||(t[r]=xt(t[r]||{},n[r]));return t}function as(t,n){return n&&(n.enter&&n.enter[t]||n.update&&n.update[t])}const X1="mark",J1="frame",K1="scope",pC="legend-label",zz="title-text",Oz="title-subtitle";function Q1(t,n,e){t[n]=e&&e.signal?{signal:e.signal}:{value:e}}const mC=t=>Q(t)?G(t):t.signal?`(${t.signal})`:gC(t);function gd(t){if(t.gradient!=null)return function(e){const r=[e.start,e.stop,e.count].map(i=>i==null?null:G(i));for(;r.length&&Bt(r)==null;)r.pop();return r.unshift(mC(e.gradient)),`gradient(${r.join(",")})`}(t);let n=t.signal?`(${t.signal})`:t.color?function(e){return e.c?yd("hcl",e.h,e.c,e.l):e.h||e.s?yd("hsl",e.h,e.s,e.l):e.l||e.a?yd("lab",e.l,e.a,e.b):e.r||e.g||e.b?yd("rgb",e.r,e.g,e.b):null}(t.color):t.field!=null?gC(t.field):t.value!==void 0?G(t.value):void 0;return t.scale!=null&&(n=function(e,r){const i=mC(e.scale);return e.range!=null?r=`lerp(_range(${i}), ${+e.range})`:(r!==void 0&&(r=`_scale(${i}, ${r})`),e.band&&(r=(r?r+"+":"")+`_bandwidth(${i})`+(+e.band==1?"":"*"+vd(e.band)),e.extra&&(r=`(datum.extra ? _scale(${i}, datum.extra.value) : ${r})`)),r==null&&(r="0")),r}(t,n)),n===void 0&&(n=null),t.exponent!=null&&(n=`pow(${n},${vd(t.exponent)})`),t.mult!=null&&(n+=`*${vd(t.mult)}`),t.offset!=null&&(n+=`+${vd(t.offset)}`),t.round&&(n=`round(${n})`),n}const yd=(t,n,e,r)=>`(${t}(${[n,e,r].map(gd).join(",")})+'')`;function vd(t){return Z(t)?"("+gd(t)+")":t}function gC(t){return yC(Z(t)?t:{datum:t})}function yC(t){let n,e,r;if(t.signal)n="datum",r=t.signal;else if(t.group||t.parent){for(e=Math.max(1,t.level||1),n="item";e-- >0;)n+=".mark.group";t.parent?(r=t.parent,n+=".datum"):r=t.group}else t.datum?(n="datum",r=t.datum):j("Invalid field reference: "+G(t));return t.signal||(r=Q(r)?Ni(r).map(G).join("]["):yC(r)),n+"["+r+"]"}function vC(t,n,e,r,i,a){const o={};(a=a||{}).encoders={$encode:o},t=function(s,u,l,c,f){const d={},h={};let p,m,g,y;for(m in m="lineBreak",u!=="text"||f[m]==null||as(m,s)||Q1(d,m,f[m]),(l=="legend"||String(l).startsWith("axis"))&&(l=null),y=l===J1?f.group:l===X1?xt({},f.mark,f[u]):null,y)g=as(m,s)||(m==="fill"||m==="stroke")&&(as("fill",s)||as("stroke",s)),g||Q1(d,m,y[m]);for(m in K(c).forEach(v=>{const x=f.style&&f.style[v];for(const b in x)as(b,s)||Q1(d,b,x[b])}),s=xt({},s),d)y=d[m],y.signal?(p=p||{})[m]=y:h[m]=y;return s.enter=xt(h,s.enter),p&&(s.update=xt(p,s.update)),s}(t,n,e,r,i.config);for(const s in t)o[s]=Nz(t[s],n,a,i);return a}function Nz(t,n,e,r){const i={},a={};for(const o in t)t[o]!=null&&(i[o]=Tz(Rz(t[o]),r,e,a));return{$expr:{marktype:n,channels:i},$fields:Object.keys(a),$output:Object.keys(t)}}function Rz(t){return P(t)?function(n){let e="";return n.forEach(r=>{const i=gd(r);e+=r.test?`(${r.test})?${i}:`:i}),Bt(e)===":"&&(e+="null"),e}(t):gd(t)}function Tz(t,n,e,r){const i=Tr(t,n);return i.$fields.forEach(a=>r[a]=1),xt(e,i.$params),i.$expr}const Pz=["value","update","init","react","bind"];function bC(t,n){j(t+' for "outer" push: '+G(n))}function xC(t,n){const e=t.name;if(t.push==="outer")n.signals[e]||bC("No prior signal definition",e),Pz.forEach(r=>{t[r]!==void 0&&bC("Invalid property ",r)});else{const r=n.addSignal(e,t.value);t.react===!1&&(r.react=!1),t.bind&&n.addBinding(e,t.bind)}}function Z1(t,n,e,r){this.id=-1,this.type=t,this.value=n,this.params=e,r&&(this.parent=r)}function bd(t,n,e,r){return new Z1(t,n,e,r)}function xd(t,n){return bd("operator",t,n)}function lt(t){const n={$ref:t.id};return t.id<0&&(t.refs=t.refs||[]).push(n),n}function rl(t,n){return n?{$field:t,$name:n}:{$field:t}}const ty=rl("key");function wC(t,n){return{$compare:t,$order:n}}function wd(t,n){return(t&&t.signal?"$"+t.signal:t||"")+(t&&n?"_":"")+(n&&n.signal?"$"+n.signal:n||"")}const ny="scope",ey="view";function pn(t){return t&&t.signal}function Ad(t){if(pn(t))return!0;if(Z(t)){for(const n in t)if(Ad(t[n]))return!0}return!1}function ar(t,n){return t??n}function Xa(t){return t&&t.signal||t}const AC="timer";function il(t,n){return(t.merge?jz:t.stream?Lz:t.type?qz:j("Invalid stream specification: "+G(t)))(t,n)}function jz(t,n){const e=ry({merge:t.merge.map(r=>il(r,n))},t,n);return n.addStream(e).id}function Lz(t,n){const e=ry({stream:il(t.stream,n)},t,n);return n.addStream(e).id}function qz(t,n){let e;t.type===AC?(e=n.event(AC,t.throttle),t={between:t.between,filter:t.filter}):e=n.event(function(i){return i===ny?ey:i||ey}(t.source),t.type);const r=ry({stream:e},t,n);return Object.keys(r).length===1?e:n.addStream(r).id}function ry(t,n,e){let r=n.between;return r&&(r.length!==2&&j('Stream "between" parameter must have 2 entries: '+G(n)),t.between=[il(r[0],e),il(r[1],e)]),r=n.filter?[].concat(n.filter):[],(n.marktype||n.markname||n.markrole)&&r.push(function(i,a,o){const s="event.item";return s+(i&&i!=="*"?"&&"+s+".mark.marktype==='"+i+"'":"")+(o?"&&"+s+".mark.role==='"+o+"'":"")+(a?"&&"+s+".mark.name==='"+a+"'":"")}(n.marktype,n.markname,n.markrole)),n.source===ny&&r.push("inScope(event.item)"),r.length&&(t.filter=Tr("("+r.join(")&&(")+")",e).$expr),(r=n.throttle)!=null&&(t.throttle=+r),(r=n.debounce)!=null&&(t.debounce=+r),n.consume&&(t.consume=!0),t}const Uz={code:"_.$value",ast:{type:"Identifier",value:"value"}};function Iz(t,n,e){const r=t.encode,i={target:e};let a=t.events,o=t.update,s=[];a||j("Signal update missing events specification."),Q(a)&&(a=aa(a,n.isSubscope()?ny:ey)),a=K(a).filter(u=>u.signal||u.scale?(s.push(u),0):1),s.length>1&&(s=[Wz(s)]),a.length&&s.push(a.length>1?{merge:a}:a[0]),r!=null&&(o&&j("Signal encode and update are mutually exclusive."),o="encode(item(),"+G(r)+")"),i.update=Q(o)?Tr(o,n):o.expr!=null?Tr(o.expr,n):o.value!=null?o.value:o.signal!=null?{$expr:Uz,$params:{$value:n.signalRef(o.signal)}}:j("Invalid signal update specification."),t.force&&(i.options={force:!0}),s.forEach(u=>n.addUpdate(xt(function(l,c){return{source:l.signal?c.signalRef(l.signal):l.scale?c.scaleRef(l.scale):il(l,c)}}(u,n),i)))}function Wz(t){return{signal:"["+t.map(n=>n.scale?'scale("'+n.scale+'")':n.signal)+"]"}}const Pt=t=>(n,e,r)=>bd(t,e,n||void 0,r),_C=Pt("aggregate"),Hz=Pt("axisticks"),kC=Pt("bound"),or=Pt("collect"),DC=Pt("compare"),Gz=Pt("datajoin"),FC=Pt("encode"),Vz=Pt("expression"),Yz=Pt("facet"),Xz=Pt("field"),Jz=Pt("key"),Kz=Pt("legendentries"),Qz=Pt("load"),Zz=Pt("mark"),tO=Pt("multiextent"),nO=Pt("multivalues"),eO=Pt("overlap"),rO=Pt("params"),CC=Pt("prefacet"),iO=Pt("projection"),aO=Pt("proxy"),oO=Pt("relay"),EC=Pt("render"),sO=Pt("scale"),Ja=Pt("sieve"),uO=Pt("sortitems"),$C=Pt("viewlayout"),lO=Pt("values");let cO=0;const SC={min:"min",max:"max",count:"sum"};function fO(t,n){const e=n.getScale(t.name).params;let r;for(r in e.domain=MC(t.domain,t,n),t.range!=null&&(e.range=zC(t,n,e)),t.interpolate!=null&&function(i,a){a.interpolate=Ue(i.type||i),i.gamma!=null&&(a.interpolateGamma=Ue(i.gamma))}(t.interpolate,e),t.nice!=null&&(e.nice=function(i,a){return i.signal?a.signalRef(i.signal):Z(i)?{interval:Ue(i.interval),step:Ue(i.step)}:Ue(i)}(t.nice,n)),t.bins!=null&&(e.bins=function(i,a){return i.signal||P(i)?_d(i,a):a.objectProperty(i)}(t.bins,n)),t)tt(e,r)||r==="name"||(e[r]=Ue(t[r],n))}function Ue(t,n){return Z(t)?t.signal?n.signalRef(t.signal):j("Unsupported object: "+G(t)):t}function _d(t,n){return t.signal?n.signalRef(t.signal):t.map(e=>Ue(e,n))}function kd(t){j("Can not find data set: "+G(t))}function MC(t,n,e){if(t)return t.signal?e.signalRef(t.signal):(P(t)?dO:t.fields?pO:hO)(t,n,e);n.domainMin==null&&n.domainMax==null||j("No scale domain defined for domainMin/domainMax to override.")}function dO(t,n,e){return t.map(r=>Ue(r,e))}function hO(t,n,e){const r=e.getData(t.data);return r||kd(t.data),No(n.type)?r.valuesRef(e,t.field,BC(t.sort,!1)):mw(n.type)?r.domainRef(e,t.field):r.extentRef(e,t.field)}function pO(t,n,e){const r=t.data,i=t.fields.reduce((a,o)=>(o=Q(o)?{data:r,field:o}:P(o)||o.signal?function(s,u){const l="_:vega:_"+cO++,c=or({});if(P(s))c.value={$ingest:s};else if(s.signal){const f="setdata("+G(l)+","+s.signal+")";c.params.input=u.signalRef(f)}return u.addDataPipeline(l,[c,Ja({})]),{data:l,field:"data"}}(o,e):o,a.push(o),a),[]);return(No(n.type)?mO:mw(n.type)?gO:yO)(t,e,i)}function mO(t,n,e){const r=BC(t.sort,!0);let i,a;const o=e.map(l=>{const c=n.getData(l.data);return c||kd(l.data),c.countsRef(n,l.field,r)}),s={groupby:ty,pulse:o};r&&(i=r.op||"count",a=r.field?wd(i,r.field):"count",s.ops=[SC[i]],s.fields=[n.fieldRef(a)],s.as=[a]),i=n.add(_C(s));const u=n.add(or({pulse:lt(i)}));return a=n.add(lO({field:ty,sort:n.sortRef(r),pulse:lt(u)})),lt(a)}function BC(t,n){return t&&(t.field||t.op?t.field||t.op==="count"?n&&t.field&&t.op&&!SC[t.op]&&j("Multiple domain scales can not be sorted using "+t.op):j("No field provided for sort aggregate op: "+t.op):Z(t)?t.field="key":t={field:"key"}),t}function gO(t,n,e){const r=e.map(i=>{const a=n.getData(i.data);return a||kd(i.data),a.domainRef(n,i.field)});return lt(n.add(nO({values:r})))}function yO(t,n,e){const r=e.map(i=>{const a=n.getData(i.data);return a||kd(i.data),a.extentRef(n,i.field)});return lt(n.add(tO({extents:r})))}function zC(t,n,e){const r=n.config.range;let i=t.range;if(i.signal)return n.signalRef(i.signal);if(Q(i)){if(r&&tt(r,i))return zC(t=xt({},t,{range:r[i]}),n,e);i==="width"?i=[0,{signal:"width"}]:i==="height"?i=No(t.type)?[0,{signal:"height"}]:[{signal:"height"},0]:j("Unrecognized scale range value: "+G(i))}else{if(i.scheme)return e.scheme=P(i.scheme)?_d(i.scheme,n):Ue(i.scheme,n),i.extent&&(e.schemeExtent=_d(i.extent,n)),void(i.count&&(e.schemeCount=Ue(i.count,n)));if(i.step)return void(e.rangeStep=Ue(i.step,n));if(No(t.type)&&!P(i))return MC(i,t,n);P(i)||j("Unsupported range type: "+G(i))}return i.map(a=>(P(a)?_d:Ue)(a,n))}function iy(t,n,e){return P(t)?t.map(r=>iy(r,n,e)):Z(t)?t.signal?e.signalRef(t.signal):n==="fit"?t:j("Unsupported parameter object: "+G(t)):t}const sr="top",os="left",ss="right",oa="bottom",OC="center",ay="index",oy="label",us="perc",Ie="value",al="guide-label",sy="guide-title",vO="group-title",bO="group-subtitle",NC="symbol",Dd="gradient",uy="discrete",ly="size",cy=[ly,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],ol={name:1,style:1,interactive:1},_t={value:0},We={value:1},Fd="group",RC="rect",fy="rule",Ka="text";function sl(t){return t.type=Fd,t.interactive=t.interactive||!1,t}function de(t,n){const e=(r,i)=>ar(t[r],ar(n[r],i));return e.isVertical=r=>ar(t.direction,n.direction||(r?n.symbolDirection:n.gradientDirection))==="vertical",e.gradientLength=()=>ar(t.gradientLength,n.gradientLength||n.gradientWidth),e.gradientThickness=()=>ar(t.gradientThickness,n.gradientThickness||n.gradientHeight),e.entryColumns=()=>ar(t.columns,ar(n.columns,+e.isVertical(!0))),e}function TC(t,n){const e=n&&(n.update&&n.update[t]||n.enter&&n.enter[t]);return e&&e.signal?e:e?e.value:null}function Cd(t,n,e){return`item.anchor === 'start' ? ${t} : item.anchor === 'end' ? ${n} : ${e}`}const dy=Cd(G(os),G(ss),G(OC));function PC(t,n){return n?t?Z(t)?Object.assign({},t,{offset:PC(t.offset,n)}):{value:t,offset:n}:n:t}function Fe(t,n){return n?(t.name=n.name,t.style=n.style||t.style,t.interactive=!!n.interactive,t.encode=is(t.encode,n,ol)):t.interactive=!1,t}function xO(t,n,e,r){const i=de(t,e),a=i.isVertical(),o=i.gradientThickness(),s=i.gradientLength();let u,l,c,f,d;a?(l=[0,1],c=[0,0],f=o,d=s):(l=[0,0],c=[1,0],f=s,d=o);const h={enter:u={opacity:_t,x:_t,y:_t,width:yn(f),height:yn(d)},update:xt({},u,{opacity:We,fill:{gradient:n,start:l,stop:c}}),exit:{opacity:_t}};return Cn(h,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),Fe({type:RC,role:"legend-gradient",encode:h},r)}function wO(t,n,e,r,i){const a=de(t,e),o=a.isVertical(),s=a.gradientThickness(),u=a.gradientLength();let l,c,f,d,h="";o?(l="y",f="y2",c="x",d="width",h="1-"):(l="x",f="x2",c="y",d="height");const p={opacity:_t,fill:{scale:n,field:Ie}};p[l]={signal:h+"datum."+us,mult:u},p[c]=_t,p[f]={signal:h+"datum.perc2",mult:u},p[d]=yn(s);const m={enter:p,update:xt({},p,{opacity:We}),exit:{opacity:_t}};return Cn(m,{stroke:a("gradientStrokeColor"),strokeWidth:a("gradientStrokeWidth")},{opacity:a("gradientOpacity")}),Fe({type:RC,role:"legend-band",key:Ie,from:i,encode:m},r)}const AO=`datum.${us}<=0?"${os}":datum.${us}>=1?"${ss}":"${OC}"`,_O=`datum.${us}<=0?"${oa}":datum.${us}>=1?"${sr}":"middle"`;function jC(t,n,e,r){const i=de(t,n),a=i.isVertical(),o=yn(i.gradientThickness()),s=i.gradientLength();let u,l,c,f,d=i("labelOverlap"),h="";const p={enter:u={opacity:_t},update:l={opacity:We,text:{field:oy}},exit:{opacity:_t}};return Cn(p,{fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:ar(t.labelLimit,n.gradientLabelLimit)}),a?(u.align={value:"left"},u.baseline=l.baseline={signal:_O},c="y",f="x",h="1-"):(u.align=l.align={signal:AO},u.baseline={value:"top"},c="x",f="y"),u[c]=l[c]={signal:h+"datum."+us,mult:s},u[f]=l[f]=o,o.offset=ar(t.labelOffset,n.gradientLabelOffset)||0,d=d?{separation:i("labelSeparation"),method:d,order:"datum."+ay}:void 0,Fe({type:Ka,role:pC,style:al,key:Ie,from:r,encode:p,overlap:d},e)}function kO(t,n,e,r,i){const a=de(t,n),o=e.entries,s=!(!o||!o.interactive),u=o?o.name:void 0,l=a("clipHeight"),c=a("symbolOffset"),f={data:"value"},d=`(${i}) ? datum.offset : datum.${ly}`,h=l?yn(l):{field:ly},p=`datum.${ay}`,m=`max(1, ${i})`;let g,y,v,x,b;h.mult=.5,g={enter:y={opacity:_t,x:{signal:d,mult:.5,offset:c},y:h},update:v={opacity:We,x:y.x,y:y.y},exit:{opacity:_t}};let w=null,A=null;t.fill||(w=n.symbolBaseFillColor,A=n.symbolBaseStrokeColor),Cn(g,{fill:a("symbolFillColor",w),shape:a("symbolType"),size:a("symbolSize"),stroke:a("symbolStrokeColor",A),strokeDash:a("symbolDash"),strokeDashOffset:a("symbolDashOffset"),strokeWidth:a("symbolStrokeWidth")},{opacity:a("symbolOpacity")}),cy.forEach(C=>{t[C]&&(v[C]=y[C]={scale:t[C],field:Ie})});const _=Fe({type:"symbol",role:"legend-symbol",key:Ie,from:f,clip:!!l||void 0,encode:g},e.symbols),k=yn(c);k.offset=a("labelOffset"),g={enter:y={opacity:_t,x:{signal:d,offset:k},y:h},update:v={opacity:We,text:{field:oy},x:y.x,y:y.y},exit:{opacity:_t}},Cn(g,{align:a("labelAlign"),baseline:a("labelBaseline"),fill:a("labelColor"),fillOpacity:a("labelOpacity"),font:a("labelFont"),fontSize:a("labelFontSize"),fontStyle:a("labelFontStyle"),fontWeight:a("labelFontWeight"),limit:a("labelLimit")});const F=Fe({type:Ka,role:pC,style:al,key:Ie,from:f,encode:g},e.labels);return g={enter:{noBound:{value:!l},width:_t,height:l?yn(l):_t,opacity:_t},exit:{opacity:_t},update:v={opacity:We,row:{signal:null},column:{signal:null}}},a.isVertical(!0)?(x=`ceil(item.mark.items.length / ${m})`,v.row.signal=`${p}%${x}`,v.column.signal=`floor(${p} / ${x})`,b={field:["row",p]}):(v.row.signal=`floor(${p} / ${m})`,v.column.signal=`${p} % ${m}`,b={field:p}),v.column.signal=`(${i})?${v.column.signal}:${p}`,sl({role:K1,from:r={facet:{data:r,name:"value",groupby:ay}},encode:is(g,o,ol),marks:[_,F],name:u,interactive:s,sort:b})}const hy='item.orient === "left"',py='item.orient === "right"',Ed=`(${hy} || ${py})`,DO=`datum.vgrad && ${Ed}`,FO=Cd('"top"','"bottom"','"middle"'),CO=`datum.vgrad && ${py} ? (${Cd('"right"','"left"','"center"')}) : (${Ed} && !(datum.vgrad && ${hy})) ? "left" : ${dy}`,EO=`item._anchor || (${Ed} ? "middle" : "start")`,$O=`${DO} ? (${hy} ? -90 : 90) : 0`,SO=`${Ed} ? (datum.vgrad ? (${py} ? "bottom" : "top") : ${FO}) : "top"`;function MO(t,n){let e;return Z(t)&&(t.signal?e=t.signal:t.path?e="pathShape("+LC(t.path)+")":t.sphere&&(e="geoShape("+LC(t.sphere)+', {type: "Sphere"})')),e?n.signalRef(e):!!t}function LC(t){return Z(t)&&t.signal?t.signal:G(t)}function qC(t){const n=t.role||"";return n.startsWith("axis")||n.startsWith("legend")||n.startsWith("title")?n:t.type===Fd?K1:n||X1}function BO(t){return{marktype:t.type,name:t.name||void 0,role:t.role||qC(t),zindex:+t.zindex||void 0,aria:t.aria,description:t.description}}function zO(t,n){return t&&t.signal?n.signalRef(t.signal):t!==!1}function my(t,n){const e=a2(t.type);e||j("Unrecognized transform type: "+G(t.type));const r=bd(e.type.toLowerCase(),null,UC(e,t,n));return t.signal&&n.addSignal(t.signal,n.proxy(r)),r.metadata=e.metadata||{},r}function UC(t,n,e){const r={},i=t.params.length;for(let a=0;a<i;++a){const o=t.params[a];r[o.name]=OO(o,n,e)}return r}function OO(t,n,e){const r=t.type,i=n[t.name];return r==="index"?function(a,o,s){return Q(o.from)||j('Lookup "from" parameter must be a string literal.'),s.getData(o.from).lookupRef(s,o.key)}(0,n,e):i!==void 0?r==="param"?function(a,o,s){const u=o[a.name];return a.array?(P(u)||j("Expected an array of sub-parameters. Instead: "+G(u)),u.map(l=>WC(a,l,s))):WC(a,u,s)}(t,n,e):r==="projection"?e.projectionRef(n[t.name]):t.array&&!pn(i)?i.map(a=>IC(t,a,e)):IC(t,i,e):void(t.required&&j("Missing required "+G(n.type)+" parameter: "+G(t.name)))}function IC(t,n,e){const r=t.type;if(pn(n))return HC(r)?j("Expression references can not be signals."):gy(r)?e.fieldRef(n):GC(r)?e.compareRef(n):e.signalRef(n.signal);{const i=t.expr||gy(r);return i&&NO(n)?e.exprRef(n.expr,n.as):i&&RO(n)?rl(n.field,n.as):HC(r)?Tr(n,e):TO(r)?lt(e.getData(n).values):gy(r)?rl(n):GC(r)?e.compareRef(n):n}}function WC(t,n,e){const r=t.params.length;let i;for(let o=0;o<r;++o){i=t.params[o];for(const s in i.key)if(i.key[s]!==n[s]){i=null;break}if(i)break}i||j("Unsupported parameter: "+G(n));const a=xt(UC(i,n,e),i.key);return lt(e.add(rO(a)))}const NO=t=>t&&t.expr,RO=t=>t&&t.field,TO=t=>t==="data",HC=t=>t==="expr",gy=t=>t==="field",GC=t=>t==="compare";function $d(t,n){return t.$ref?t:t.data&&t.data.$ref?t.data:lt(n.getData(t.data).output)}function Qa(t,n,e,r,i){this.scope=t,this.input=n,this.output=e,this.values=r,this.aggregate=i,this.index={}}function VC(t){return Q(t)?t:null}function YC(t,n,e){const r=wd(e.op,e.field);let i;if(n.ops){for(let a=0,o=n.as.length;a<o;++a)if(n.as[a]===r)return}else n.ops=["count"],n.fields=[null],n.as=["count"];e.op&&(n.ops.push((i=e.op.signal)?t.signalRef(i):e.op),n.fields.push(t.fieldRef(e.field)),n.as.push(r))}function ul(t,n,e,r,i,a,o){const s=n[e]||(n[e]={}),u=function(d){return Z(d)?(d.order==="descending"?"-":"+")+wd(d.op,d.field):""}(a);let l,c,f=VC(i);if(f!=null&&(t=n.scope,f+=u?"|"+u:"",l=s[f]),!l){const d=a?{field:ty,pulse:n.countsRef(t,i,a)}:{field:t.fieldRef(i),pulse:lt(n.output)};u&&(d.sort=t.sortRef(a)),c=t.add(bd(r,void 0,d)),o&&(n.index[i]=c),l=lt(c),f!=null&&(s[f]=l)}return l}function XC(t,n,e){const r=t.remove,i=t.insert,a=t.toggle,o=t.modify,s=t.values,u=n.add(xd()),l=Tr("if("+t.trigger+',modify("'+e+'",'+[i,r,a,o,s].map(c=>c??"null").join(",")+"),0)",n);u.update=l.$expr,u.params=l.$params}function Sd(t,n){const e=qC(t),r=t.type===Fd,i=t.from&&t.from.facet,a=t.overlap;let o,s,u,l,c,f,d,h=t.layout||e===K1||e===J1;const p=e===X1||h||i,m=function(A,_,k){let F,C,D,E,$;return A?(F=A.facet)&&(_||j("Only group marks can be faceted."),F.field!=null?E=$=$d(F,k):(A.data?$=lt(k.getData(A.data).aggregate):(D=my(xt({type:"aggregate",groupby:K(F.groupby)},F.aggregate),k),D.params.key=k.keyRef(F.groupby),D.params.pulse=$d(F,k),E=$=lt(k.add(D))),C=k.keyRef(F.groupby,!0))):E=lt(k.add(or(null,[{}]))),E||(E=$d(A,k)),{key:C,pulse:E,parent:$}}(t.from,r,n);s=n.add(Gz({key:m.key||(t.key?rl(t.key):void 0),pulse:m.pulse,clean:!r}));const g=lt(s);s=u=n.add(or({pulse:g})),s=n.add(Zz({markdef:BO(t),interactive:zO(t.interactive,n),clip:MO(t.clip,n),context:{$context:!0},groups:n.lookup(),parent:n.signals.parent?n.signalRef("parent"):null,index:n.markpath(),pulse:lt(s)}));const y=lt(s);s=l=n.add(FC(vC(t.encode,t.type,e,t.style,n,{mod:!1,pulse:y}))),s.params.parent=n.encode(),t.transform&&t.transform.forEach(A=>{const _=my(A,n),k=_.metadata;(k.generates||k.changes)&&j("Mark transforms should not generate new data."),k.nomod||(l.params.mod=!0),_.params.pulse=lt(s),n.add(s=_)}),t.sort&&(s=n.add(uO({sort:n.compareRef(t.sort),pulse:lt(s)})));const v=lt(s);(i||h)&&(h=n.add($C({layout:n.objectProperty(t.layout),legends:n.legends,mark:y,pulse:v})),f=lt(h));const x=n.add(kC({mark:y,pulse:f||v}));d=lt(x),r&&(p&&(o=n.operators,o.pop(),h&&o.pop()),n.pushState(v,f||d,g),i?function(A,_,k){const F=A.from.facet,C=F.name,D=$d(F,_);let E;F.name||j("Facet must have a name: "+G(F)),F.data||j("Facet must reference a data set: "+G(F)),F.field?E=_.add(CC({field:_.fieldRef(F.field),pulse:D})):F.groupby?E=_.add(Yz({key:_.keyRef(F.groupby),group:lt(_.proxy(k.parent)),pulse:D})):j("Facet must specify groupby or field: "+G(F));const $=_.fork(),M=$.add(or()),S=$.add(Ja({pulse:lt(M)}));$.addData(C,new Qa($,M,M,S)),$.addSignal("parent",null),E.params.subflow={$subflow:$.parse(A).toRuntime()}}(t,n,m):p?function(A,_,k){const F=_.add(CC({pulse:k.pulse})),C=_.fork();C.add(Ja()),C.addSignal("parent",null),F.params.subflow={$subflow:C.parse(A).toRuntime()}}(t,n,m):n.parse(t),n.popState(),p&&(h&&o.push(h),o.push(x))),a&&(d=function(A,_,k){const F=A.method,C=A.bound,D=A.separation,E={separation:pn(D)?k.signalRef(D.signal):D,method:pn(F)?k.signalRef(F.signal):F,pulse:_};if(A.order&&(E.sort=k.compareRef({field:A.order})),C){const $=C.tolerance;E.boundTolerance=pn($)?k.signalRef($.signal):+$,E.boundScale=k.scaleRef(C.scale),E.boundOrient=C.orient}return lt(k.add(eO(E)))}(a,d,n));const b=n.add(EC({pulse:d})),w=n.add(Ja({pulse:lt(b)},void 0,n.parent()));t.name!=null&&(c=t.name,n.addData(c,new Qa(n,u,b,w)),t.on&&t.on.forEach(A=>{(A.insert||A.remove||A.toggle)&&j("Marks only support modify triggers."),XC(A,n,c)}))}function PO(t,n){const e=n.config.legend,r=t.encode||{},i=de(t,e),a=r.legend||{},o=a.name||void 0,s=a.interactive,u=a.style,l={};let c,f,d,h=0;cy.forEach(v=>t[v]?(l[v]=t[v],h=h||t[v]):0),h||j("Missing valid scale for legend.");const p=function(v,x){let b=v.type||NC;return v.type||function(w){return cy.reduce((A,_)=>A+(w[_]?1:0),0)}(v)!==1||!v.fill&&!v.stroke||(b=Sm(x)?Dd:Mm(x)?uy:NC),b!==Dd?b:Mm(x)?uy:Dd}(t,n.scaleType(h)),m={title:t.title!=null,scales:l,type:p,vgrad:p!=="symbol"&&i.isVertical()},g=lt(n.add(or(null,[m]))),y=lt(n.add(Kz(f={type:p,scale:n.scaleRef(h),count:n.objectProperty(i("tickCount")),limit:n.property(i("symbolLimit")),values:n.objectProperty(t.values),minstep:n.property(t.tickMinStep),formatType:n.property(t.formatType),formatSpecifier:n.property(t.format)})));return p===Dd?(d=[xO(t,h,e,r.gradient),jC(t,e,r.labels,y)],f.count=f.count||n.signalRef(`max(2,2*floor((${Xa(i.gradientLength())})/100))`)):p===uy?d=[wO(t,h,e,r.gradient,y),jC(t,e,r.labels,y)]:(c=function(v,x){const b=de(v,x);return{align:b("gridAlign"),columns:b.entryColumns(),center:{row:!0,column:!1},padding:{row:b("rowPadding"),column:b("columnPadding")}}}(t,e),d=[kO(t,e,r,y,Xa(c.columns))],f.size=function(v,x,b){const w=Xa(JC("size",v,b)),A=Xa(JC("strokeWidth",v,b)),_=Xa(function(k,F,C){return TC("fontSize",k)||function(D,E,$){const M=E.config.style[$];return M&&M[D]}("fontSize",F,C)}(b[1].encode,x,al));return Tr(`max(ceil(sqrt(${w})+${A}),${_})`,x)}(t,n,d[0].marks)),d=[sl({role:"legend-entry",from:g,encode:{enter:{x:{value:0},y:{value:0}}},marks:d,layout:c,interactive:s})],m.title&&d.push(function(v,x,b,w){const A=de(v,x),_={enter:{opacity:_t},update:{opacity:We,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:_t}};return Cn(_,{orient:A("titleOrient"),_anchor:A("titleAnchor"),anchor:{signal:EO},angle:{signal:$O},align:{signal:CO},baseline:{signal:SO},text:v.title,fill:A("titleColor"),fillOpacity:A("titleOpacity"),font:A("titleFont"),fontSize:A("titleFontSize"),fontStyle:A("titleFontStyle"),fontWeight:A("titleFontWeight"),limit:A("titleLimit"),lineHeight:A("titleLineHeight")},{align:A("titleAlign"),baseline:A("titleBaseline")}),Fe({type:Ka,role:"legend-title",style:sy,from:w,encode:_},b)}(t,e,r.title,g)),Sd(sl({role:"legend",from:g,encode:is(jO(i,t,e),a,ol),marks:d,aria:i("aria"),description:i("description"),zindex:i("zindex"),name:o,interactive:s,style:u}),n)}function jO(t,n,e){const r={enter:{},update:{}};return Cn(r,{orient:t("orient"),offset:t("offset"),padding:t("padding"),titlePadding:t("titlePadding"),cornerRadius:t("cornerRadius"),fill:t("fillColor"),stroke:t("strokeColor"),strokeWidth:e.strokeWidth,strokeDash:e.strokeDash,x:t("legendX"),y:t("legendY"),format:n.format,formatType:n.formatType}),r}function JC(t,n,e){return n[t]?`scale("${n[t]}",datum)`:TC(t,e[0].encode)}Qa.fromEntries=function(t,n){const e=n.length,r=n[e-1],i=n[e-2];let a=n[0],o=null,s=1;for(a&&a.type==="load"&&(a=n[1]),t.add(n[0]);s<e;++s)n[s].params.pulse=lt(n[s-1]),t.add(n[s]),n[s].type==="aggregate"&&(o=n[s]);return new Qa(t,a,i,r,o)},Qa.prototype={countsRef(t,n,e){const r=this,i=r.counts||(r.counts={}),a=VC(n);let o,s,u;return a!=null&&(t=r.scope,o=i[a]),o?e&&e.field&&YC(t,o.agg.params,e):(u={groupby:t.fieldRef(n,"key"),pulse:lt(r.output)},e&&e.field&&YC(t,u,e),s=t.add(_C(u)),o=t.add(or({pulse:lt(s)})),o={agg:s,ref:lt(o)},a!=null&&(i[a]=o)),o.ref},tuplesRef(){return lt(this.values)},extentRef(t,n){return ul(t,this,"extent","extent",n,!1)},domainRef(t,n){return ul(t,this,"domain","values",n,!1)},valuesRef(t,n,e){return ul(t,this,"vals","values",n,e||!0)},lookupRef(t,n){return ul(t,this,"lookup","tupleindex",n,!1)},indataRef(t,n){return ul(t,this,"indata","tupleindex",n,!0,!0)}};const LO=`item.orient==="${os}"?-90:item.orient==="${ss}"?90:0`;function qO(t,n){const e=de(t=Q(t)?{text:t}:t,n.config.title),r=t.encode||{},i=r.group||{},a=i.name||void 0,o=i.interactive,s=i.style,u=[],l=lt(n.add(or(null,[{}])));return u.push(function(c,f,d,h){const p={value:0},m=c.text,g={enter:{opacity:p},update:{opacity:{value:1}},exit:{opacity:p}};return Cn(g,{text:m,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:f("dx"),dy:f("dy"),fill:f("color"),font:f("font"),fontSize:f("fontSize"),fontStyle:f("fontStyle"),fontWeight:f("fontWeight"),lineHeight:f("lineHeight")},{align:f("align"),angle:f("angle"),baseline:f("baseline")}),Fe({type:Ka,role:zz,style:vO,from:h,encode:g},d)}(t,e,function(c){const f=c.encode;return f&&f.title||xt({name:c.name,interactive:c.interactive,style:c.style},f)}(t),l)),t.subtitle&&u.push(function(c,f,d,h){const p={value:0},m=c.subtitle,g={enter:{opacity:p},update:{opacity:{value:1}},exit:{opacity:p}};return Cn(g,{text:m,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:f("dx"),dy:f("dy"),fill:f("subtitleColor"),font:f("subtitleFont"),fontSize:f("subtitleFontSize"),fontStyle:f("subtitleFontStyle"),fontWeight:f("subtitleFontWeight"),lineHeight:f("subtitleLineHeight")},{align:f("align"),angle:f("angle"),baseline:f("baseline")}),Fe({type:Ka,role:Oz,style:bO,from:h,encode:g},d)}(t,e,r.subtitle,l)),Sd(sl({role:"title",from:l,encode:UO(e,i),marks:u,aria:e("aria"),description:e("description"),zindex:e("zindex"),name:a,interactive:o,style:s}),n)}function UO(t,n){const e={enter:{},update:{}};return Cn(e,{orient:t("orient"),anchor:t("anchor"),align:{signal:dy},angle:{signal:LO},limit:t("limit"),frame:t("frame"),offset:t("offset")||0,padding:t("subtitlePadding")}),is(e,n,ol)}function IO(t,n){const e=[];t.transform&&t.transform.forEach(r=>{e.push(my(r,n))}),t.on&&t.on.forEach(r=>{XC(r,n,t.name)}),n.addDataPipeline(t.name,function(r,i,a){const o=[];let s,u,l,c,f,d=null,h=!1,p=!1;for(r.values?pn(r.values)||Ad(r.format)?(o.push(KC(i,r)),o.push(d=Za())):o.push(d=Za({$ingest:r.values,$format:r.format})):r.url?Ad(r.url)||Ad(r.format)?(o.push(KC(i,r)),o.push(d=Za())):o.push(d=Za({$request:r.url,$format:r.format})):r.source&&(d=s=K(r.source).map(m=>lt(i.getData(m).output)),o.push(null)),u=0,l=a.length;u<l;++u)c=a[u],f=c.metadata,d||f.source||o.push(d=Za()),o.push(c),f.generates&&(p=!0),f.modifies&&!p&&(h=!0),f.source?d=c:f.changes&&(d=null);return s&&(l=s.length-1,o[0]=oO({derive:h,pulse:l?s:s[0]}),(h||l)&&o.splice(1,0,Za())),d||o.push(Za()),o.push(Ja({})),o}(t,n,e))}function Za(t){const n=or({},t);return n.metadata={source:!0},n}function KC(t,n){return Qz({url:n.url?t.property(n.url):void 0,async:n.async?t.property(n.async):void 0,values:n.values?t.property(n.values):void 0,format:t.objectProperty(n.format)})}const QC=t=>t===oa||t===sr,Md=(t,n,e)=>pn(t)?GO(t.signal,n,e):t===os||t===sr?n:e,vn=(t,n,e)=>pn(t)?WO(t.signal,n,e):QC(t)?n:e,ur=(t,n,e)=>pn(t)?HO(t.signal,n,e):QC(t)?e:n,ZC=(t,n,e)=>pn(t)?VO(t.signal,n,e):t===sr?{value:n}:{value:e},WO=(t,n,e)=>tE(`${t} === '${sr}' || ${t} === '${oa}'`,n,e),HO=(t,n,e)=>tE(`${t} !== '${sr}' && ${t} !== '${oa}'`,n,e),GO=(t,n,e)=>yy(`${t} === '${os}' || ${t} === '${sr}'`,n,e),VO=(t,n,e)=>yy(`${t} === '${sr}'`,n,e),YO=(t,n,e)=>yy(`${t} === '${ss}'`,n,e),tE=(t,n,e)=>(n=n!=null?yn(n):n,e=e!=null?yn(e):e,nE(n)&&nE(e)?{signal:`${t} ? (${n=n?n.signal||G(n.value):null}) : (${e=e?e.signal||G(e.value):null})`}:[xt({test:t},n)].concat(e||[])),nE=t=>t==null||Object.keys(t).length===1,yy=(t,n,e)=>({signal:`${t} ? (${ls(n)}) : (${ls(e)})`}),XO=(t,n,e,r,i)=>({signal:(r!=null?`${t} === '${os}' ? (${ls(r)}) : `:"")+(e!=null?`${t} === '${oa}' ? (${ls(e)}) : `:"")+(i!=null?`${t} === '${ss}' ? (${ls(i)}) : `:"")+(n!=null?`${t} === '${sr}' ? (${ls(n)}) : `:"")+"(null)"}),ls=t=>pn(t)?t.signal:t==null?null:G(t),cs=(t,n)=>{const e=t.signal;return e&&e.endsWith("(null)")?{signal:e.slice(0,-6)+n.signal}:t};function fs(t,n,e,r){let i;if(n&&tt(n,t))return n[t];if(tt(e,t))return e[t];if(t.startsWith("title")){switch(t){case"titleColor":i="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":i=t[5].toLowerCase()+t.slice(6)}return r[sy][i]}if(t.startsWith("label")){switch(t){case"labelColor":i="fill";break;case"labelFont":case"labelFontSize":i=t[5].toLowerCase()+t.slice(6)}return r[al][i]}return null}function eE(t){const n={};for(const e of t)if(e)for(const r in e)n[r]=1;return Object.keys(n)}function rE(t,n){return{scale:t.scale,range:n}}function JO(t,n,e,r,i){const a=de(t,n),o=t.orient,s=t.gridScale,u=Md(o,1,-1),l=function(v,x){if(x!==1)if(Z(v)){let b=v=xt({},v);for(;b.mult!=null;){if(!Z(b.mult))return b.mult=pn(x)?{signal:`(${b.mult}) * (${x.signal})`}:b.mult*x,v;b=b.mult=xt({},b.mult)}b.mult=x}else v=pn(x)?{signal:`(${x.signal}) * (${v||0})`}:x*(v||0);return v}(t.offset,u);let c,f,d;const h={enter:c={opacity:_t},update:d={opacity:We},exit:f={opacity:_t}};Cn(h,{stroke:a("gridColor"),strokeCap:a("gridCap"),strokeDash:a("gridDash"),strokeDashOffset:a("gridDashOffset"),strokeOpacity:a("gridOpacity"),strokeWidth:a("gridWidth")});const p={scale:t.scale,field:Ie,band:i.band,extra:i.extra,offset:i.offset,round:a("tickRound")},m=vn(o,{signal:"height"},{signal:"width"}),g=s?{scale:s,range:0,mult:u,offset:l}:{value:0,offset:l},y=s?{scale:s,range:1,mult:u,offset:l}:xt(m,{mult:u,offset:l});return c.x=d.x=vn(o,p,g),c.y=d.y=ur(o,p,g),c.x2=d.x2=ur(o,y),c.y2=d.y2=vn(o,y),f.x=vn(o,p),f.y=ur(o,p),Fe({type:fy,role:"axis-grid",key:Ie,from:r,encode:h},e)}function vy(t,n,e,r,i){return{signal:'flush(range("'+t+'"), scale("'+t+'", datum.value), '+n+","+e+","+r+","+i+")"}}function KO(t,n,e,r,i,a){const o=de(t,n),s=t.orient,u=t.scale,l=Md(s,-1,1),c=Xa(o("labelFlush")),f=Xa(o("labelFlushOffset")),d=o("labelAlign"),h=o("labelBaseline");let p,m=c===0||!!c;const g=yn(i);g.mult=l,g.offset=yn(o("labelPadding")||0),g.offset.mult=l;const y={scale:u,field:Ie,band:.5,offset:PC(a.offset,o("labelOffset"))},v=vn(s,m?vy(u,c,'"left"','"right"','"center"'):{value:"center"},((F,C,D)=>pn(F)?YO(F.signal,C,D):F===ss?{value:C}:{value:D})(s,"left","right")),x=vn(s,ZC(s,"bottom","top"),m?vy(u,c,'"top"','"bottom"','"middle"'):{value:"middle"}),b=vy(u,c,`-(${f})`,f,0);m=m&&f;const w={opacity:_t,x:vn(s,y,g),y:ur(s,y,g)},A={enter:w,update:p={opacity:We,text:{field:oy},x:w.x,y:w.y,align:v,baseline:x},exit:{opacity:_t,x:w.x,y:w.y}};Cn(A,{dx:!d&&m?vn(s,b):null,dy:!h&&m?ur(s,b):null}),Cn(A,{angle:o("labelAngle"),fill:o("labelColor"),fillOpacity:o("labelOpacity"),font:o("labelFont"),fontSize:o("labelFontSize"),fontWeight:o("labelFontWeight"),fontStyle:o("labelFontStyle"),limit:o("labelLimit"),lineHeight:o("labelLineHeight")},{align:d,baseline:h});const _=o("labelBound");let k=o("labelOverlap");return k=k||_?{separation:o("labelSeparation"),method:k,order:"datum.index",bound:_?{scale:u,orient:s,tolerance:_}:null}:void 0,p.align!==v&&(p.align=cs(p.align,v)),p.baseline!==x&&(p.baseline=cs(p.baseline,x)),Fe({type:Ka,role:"axis-label",style:al,key:Ie,from:r,encode:A,overlap:k},e)}function QO(t,n,e,r){const i=de(t,n),a=t.orient,o=Md(a,-1,1);let s,u;const l={enter:s={opacity:_t,anchor:yn(i("titleAnchor",null)),align:{signal:dy}},update:u=xt({},s,{opacity:We,text:yn(t.title)}),exit:{opacity:_t}},c={signal:`lerp(range("${t.scale}"), ${Cd(0,1,.5)})`};return u.x=vn(a,c),u.y=ur(a,c),s.angle=vn(a,_t,((f,d)=>d===0?0:pn(f)?{signal:`(${f.signal}) * ${d}`}:{value:f*d})(o,90)),s.baseline=vn(a,ZC(a,oa,sr),{value:oa}),u.angle=s.angle,u.baseline=s.baseline,Cn(l,{fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),angle:i("titleAngle"),baseline:i("titleBaseline")}),function(f,d,h,p){const m=(v,x)=>v!=null?(h.update[x]=cs(yn(v),h.update[x]),!1):!as(x,p),g=m(f("titleX"),"x"),y=m(f("titleY"),"y");h.enter.auto=y===g?yn(y):vn(d,yn(y),yn(g))}(i,a,l,e),l.update.align=cs(l.update.align,s.align),l.update.angle=cs(l.update.angle,s.angle),l.update.baseline=cs(l.update.baseline,s.baseline),Fe({type:Ka,role:"axis-title",style:sy,from:r,encode:l},e)}function ZO(t,n){const e=function(m,g){var y,v,x,b=g.config,w=b.style,A=b.axis,_=g.scaleType(m.scale)==="band"&&b.axisBand,k=m.orient;if(pn(k)){const F=eE([b.axisX,b.axisY]),C=eE([b.axisTop,b.axisBottom,b.axisLeft,b.axisRight]);for(x of(y={},F))y[x]=vn(k,fs(x,b.axisX,A,w),fs(x,b.axisY,A,w));for(x of(v={},C))v[x]=XO(k.signal,fs(x,b.axisTop,A,w),fs(x,b.axisBottom,A,w),fs(x,b.axisLeft,A,w),fs(x,b.axisRight,A,w))}else y=k===sr||k===oa?b.axisX:b.axisY,v=b["axis"+k[0].toUpperCase()+k.slice(1)];return y||v||_?xt({},A,y,v,_):A}(t,n),r=t.encode||{},i=r.axis||{},a=i.name||void 0,o=i.interactive,s=i.style,u=de(t,e),l=function(m){const g=m("tickBand");let y,v,x=m("tickOffset");return g?g.signal?(y={signal:`(${g.signal}) === 'extent' ? 1 : 0.5`},v={signal:`(${g.signal}) === 'extent'`},Z(x)||(x={signal:`(${g.signal}) === 'extent' ? 0 : ${x}`})):g==="extent"?(y=1,v=!0,x=0):(y=.5,v=!1):(y=m("bandPosition"),v=m("tickExtra")),{extra:v,band:y,offset:x}}(u),c={scale:t.scale,ticks:!!u("ticks"),labels:!!u("labels"),grid:!!u("grid"),domain:!!u("domain"),title:t.title!=null},f=lt(n.add(or({},[c]))),d=lt(n.add(Hz({scale:n.scaleRef(t.scale),extra:n.property(l.extra),count:n.objectProperty(t.tickCount),values:n.objectProperty(t.values),minstep:n.property(t.tickMinStep),formatType:n.property(t.formatType),formatSpecifier:n.property(t.format)}))),h=[];let p;return c.grid&&h.push(JO(t,e,r.grid,d,l)),c.ticks&&(p=u("tickSize"),h.push(function(m,g,y,v,x,b){const w=de(m,g),A=m.orient,_=Md(A,-1,1);let k,F,C;const D={enter:k={opacity:_t},update:C={opacity:We},exit:F={opacity:_t}};Cn(D,{stroke:w("tickColor"),strokeCap:w("tickCap"),strokeDash:w("tickDash"),strokeDashOffset:w("tickDashOffset"),strokeOpacity:w("tickOpacity"),strokeWidth:w("tickWidth")});const E=yn(x);E.mult=_;const $={scale:m.scale,field:Ie,band:b.band,extra:b.extra,offset:b.offset,round:w("tickRound")};return C.y=k.y=vn(A,_t,$),C.y2=k.y2=vn(A,E),F.x=vn(A,$),C.x=k.x=ur(A,_t,$),C.x2=k.x2=ur(A,E),F.y=ur(A,$),Fe({type:fy,role:"axis-tick",key:Ie,from:v,encode:D},y)}(t,e,r.ticks,d,p,l))),c.labels&&(p=c.ticks?p:0,h.push(KO(t,e,r.labels,d,p,l))),c.domain&&h.push(function(m,g,y,v){const x=de(m,g),b=m.orient;let w,A;const _={enter:w={opacity:_t},update:A={opacity:We},exit:{opacity:_t}};Cn(_,{stroke:x("domainColor"),strokeCap:x("domainCap"),strokeDash:x("domainDash"),strokeDashOffset:x("domainDashOffset"),strokeWidth:x("domainWidth"),strokeOpacity:x("domainOpacity")});const k=rE(m,0),F=rE(m,1);return w.x=A.x=vn(b,k,_t),w.x2=A.x2=vn(b,F),w.y=A.y=ur(b,k,_t),w.y2=A.y2=ur(b,F),Fe({type:fy,role:"axis-domain",from:v,encode:_},y)}(t,e,r.domain,f)),c.title&&h.push(QO(t,e,r.title,f)),Sd(sl({role:"axis",from:f,encode:is(tN(u,t),i,ol),marks:h,aria:u("aria"),description:u("description"),zindex:u("zindex"),name:a,interactive:o,style:s}),n)}function tN(t,n){const e={enter:{},update:{}};return Cn(e,{orient:t("orient"),offset:t("offset")||0,position:ar(n.position,0),titlePadding:t("titlePadding"),minExtent:t("minExtent"),maxExtent:t("maxExtent"),range:{signal:`abs(span(range("${n.scale}")))`},translate:t("translate"),format:n.format,formatType:n.formatType}),e}function iE(t,n,e){const r=K(t.signals),i=K(t.scales);return e||r.forEach(a=>xC(a,n)),K(t.projections).forEach(a=>function(o,s){const u=s.config.projection||{},l={};for(const c in o)c!=="name"&&(l[c]=iy(o[c],c,s));for(const c in u)l[c]==null&&(l[c]=iy(u[c],c,s));s.addProjection(o.name,l)}(a,n)),i.forEach(a=>function(o,s){const u=o.type||"linear";dw(u)||j("Unrecognized scale type: "+G(u)),s.addScale(o.name,{type:u,domain:void 0})}(a,n)),K(t.data).forEach(a=>IO(a,n)),i.forEach(a=>fO(a,n)),(e||r).forEach(a=>function(o,s){const u=s.getSignal(o.name);let l=o.update;o.init&&(l?j("Signals can not include both init and update expressions."):(l=o.init,u.initonly=!0)),l&&(l=Tr(l,s),u.update=l.$expr,u.params=l.$params),o.on&&o.on.forEach(c=>Iz(c,s,u.id))}(a,n)),K(t.axes).forEach(a=>ZO(a,n)),K(t.marks).forEach(a=>Sd(a,n)),K(t.legends).forEach(a=>PO(a,n)),t.title&&qO(t.title,n),n.parseLambdas(),n}function nN(t,n){const e=n.config,r=lt(n.root=n.add(xd())),i=function(l,c){const f=m=>ar(l[m],c[m]),d=[ll("background",f("background")),ll("autosize",Mz(f("autosize"))),ll("padding",Bz(f("padding"))),ll("width",f("width")||0),ll("height",f("height")||0)],h=d.reduce((m,g)=>(m[g.name]=g,m),{}),p={};return K(l.signals).forEach(m=>{tt(h,m.name)?m=xt(h[m.name],m):d.push(m),p[m.name]=m}),K(c.signals).forEach(m=>{tt(p,m.name)||tt(h,m.name)||d.push(m)}),d}(t,e);i.forEach(l=>xC(l,n)),n.description=t.description||e.description,n.eventConfig=e.events,n.legends=n.objectProperty(e.legend&&e.legend.layout),n.locale=e.locale;const a=n.add(or()),o=n.add(FC(vC((l=>is({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},l))(t.encode),Fd,J1,t.style,n,{pulse:lt(a)}))),s=n.add($C({layout:n.objectProperty(t.layout),legends:n.legends,autosize:n.signalRef("autosize"),mark:r,pulse:lt(o)}));n.operators.pop(),n.pushState(lt(o),lt(s),null),iE(t,n,i),n.operators.push(s);let u=n.add(kC({mark:r,pulse:lt(s)}));return u=n.add(EC({pulse:lt(u)})),u=n.add(Ja({pulse:lt(u)})),n.addData("root",new Qa(n,a,a,u)),n}function ll(t,n){return n&&n.signal?{name:t,update:n.signal}:{name:t,value:n}}function aE(t,n){this.config=t||{},this.options=n||{},this.bindings=[],this.field={},this.signals={},this.lambdas={},this.scales={},this.events={},this.data={},this.streams=[],this.updates=[],this.operators=[],this.eventConfig=null,this.locale=null,this._id=0,this._subid=0,this._nextsub=[0],this._parent=[],this._encode=[],this._lookup=[],this._markpath=[]}function oE(t){this.config=t.config,this.options=t.options,this.legends=t.legends,this.field=Object.create(t.field),this.signals=Object.create(t.signals),this.lambdas=Object.create(t.lambdas),this.scales=Object.create(t.scales),this.events=Object.create(t.events),this.data=Object.create(t.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++t._nextsub[0],this._nextsub=t._nextsub,this._parent=t._parent.slice(),this._encode=t._encode.slice(),this._lookup=t._lookup.slice(),this._markpath=t._markpath}function by(t){return(P(t)?eN:rN)(t)}function eN(t){const n=t.length;let e="[";for(let r=0;r<n;++r){const i=t[r];e+=(r>0?",":"")+(Z(i)?i.signal||by(i):G(i))}return e+"]"}function rN(t){let n,e,r="{",i=0;for(n in t)e=t[n],r+=(++i>1?",":"")+G(n)+":"+(Z(e)?e.signal||by(e):G(e));return r+"}"}aE.prototype=oE.prototype={parse(t){return iE(t,this)},fork(){return new oE(this)},isSubscope(){return this._subid>0},toRuntime(){return this.finish(),{description:this.description,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig,locale:this.locale}},id(){return(this._subid?this._subid+":":0)+this._id++},add(t){return this.operators.push(t),t.id=this.id(),t.refs&&(t.refs.forEach(n=>{n.$ref=t.id}),t.refs=null),t},proxy(t){const n=t instanceof Z1?lt(t):t;return this.add(aO({value:n}))},addStream(t){return this.streams.push(t),t.id=this.id(),t},addUpdate(t){return this.updates.push(t),t},finish(){let t,n;for(t in this.root&&(this.root.root=!0),this.signals)this.signals[t].signal=t;for(t in this.scales)this.scales[t].scale=t;function e(r,i,a){let o,s;r&&(o=r.data||(r.data={}),s=o[i]||(o[i]=[]),s.push(a))}for(t in this.data){n=this.data[t],e(n.input,t,"input"),e(n.output,t,"output"),e(n.values,t,"values");for(const r in n.index)e(n.index[r],t,"index:"+r)}return this},pushState(t,n,e){this._encode.push(lt(this.add(Ja({pulse:t})))),this._parent.push(n),this._lookup.push(e?lt(this.proxy(e)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return Bt(this._parent)},encode(){return Bt(this._encode)},lookup(){return Bt(this._lookup)},markpath(){const t=this._markpath;return++t[t.length-1]},fieldRef(t,n){if(Q(t))return rl(t,n);t.signal||j("Unsupported field reference: "+G(t));const e=t.signal;let r=this.field[e];if(!r){const i={name:this.signalRef(e)};n&&(i.as=n),this.field[e]=r=lt(this.add(Xz(i)))}return r},compareRef(t){let n=!1;const e=a=>pn(a)?(n=!0,this.signalRef(a.signal)):function(o){return o&&o.expr}(a)?(n=!0,this.exprRef(a.expr)):a,r=K(t.field).map(e),i=K(t.order).map(e);return n?lt(this.add(DC({fields:r,orders:i}))):wC(r,i)},keyRef(t,n){let e=!1;const r=this.signals;return t=K(t).map(i=>pn(i)?(e=!0,lt(r[i.signal])):i),e?lt(this.add(Jz({fields:t,flat:n}))):function(i,a){const o={$key:i};return a&&(o.$flat=!0),o}(t,n)},sortRef(t){if(!t)return t;const n=wd(t.op,t.field),e=t.order||"ascending";return e.signal?lt(this.add(DC({fields:n,orders:this.signalRef(e.signal)}))):wC(n,e)},event(t,n){const e=t+":"+n;if(!this.events[e]){const r=this.id();this.streams.push({id:r,source:t,type:n}),this.events[e]=r}return this.events[e]},hasOwnSignal(t){return tt(this.signals,t)},addSignal(t,n){this.hasOwnSignal(t)&&j("Duplicate signal name: "+G(t));const e=n instanceof Z1?n:this.add(xd(n));return this.signals[t]=e},getSignal(t){return this.signals[t]||j("Unrecognized signal name: "+G(t)),this.signals[t]},signalRef(t){return this.signals[t]?lt(this.signals[t]):(tt(this.lambdas,t)||(this.lambdas[t]=this.add(xd(null))),lt(this.lambdas[t]))},parseLambdas(){const t=Object.keys(this.lambdas);for(let n=0,e=t.length;n<e;++n){const r=t[n],i=Tr(r,this),a=this.lambdas[r];a.params=i.$params,a.update=i.$expr}},property(t){return t&&t.signal?this.signalRef(t.signal):t},objectProperty(t){return t&&Z(t)?this.signalRef(t.signal||by(t)):t},exprRef(t,n){const e={expr:Tr(t,this)};return n&&(e.expr.$name=n),lt(this.add(Vz(e)))},addBinding(t,n){this.bindings||j("Nested signals do not support binding: "+G(t)),this.bindings.push(xt({signal:t},n))},addScaleProj(t,n){tt(this.scales,t)&&j("Duplicate scale or projection name: "+G(t)),this.scales[t]=this.add(n)},addScale(t,n){this.addScaleProj(t,sO(n))},addProjection(t,n){this.addScaleProj(t,iO(n))},getScale(t){return this.scales[t]||j("Unrecognized scale name: "+G(t)),this.scales[t]},scaleRef(t){return lt(this.getScale(t))},scaleType(t){return this.getScale(t).params.type},projectionRef(t){return this.scaleRef(t)},projectionType(t){return this.scaleType(t)},addData(t,n){return tt(this.data,t)&&j("Duplicate data set name: "+G(t)),this.data[t]=n},getData(t){return this.data[t]||j("Undefined data set name: "+G(t)),this.data[t]},addDataPipeline(t,n){return tt(this.data,t)&&j("Duplicate data set name: "+G(t)),this.addData(t,Qa.fromEntries(this,n))}},xt(So,z9,x4,S4,pM,EM,oB,JM,sB,xB,EB,MB);const iN=Object.freeze(Object.defineProperty({__proto__:null,Bounds:cn,CanvasHandler:wu,CanvasRenderer:Qc,DATE:_6,DAY:k6,DAYOFYEAR:D6,Dataflow:$o,Debug:F6,Error:Kb,EventStream:ic,Gradient:zw,GroupItem:Cc,HOURS:C6,Handler:h0,HybridHandler:YA,HybridRenderer:D0,Info:E6,Item:Fc,MILLISECONDS:$6,MINUTES:S6,MONTH:M6,Marks:Ae,MultiPulse:xp,None:B6,Operator:Ut,Parameters:rc,Pulse:ji,QUARTER:z6,RenderType:Ki,Renderer:bu,ResourceLoader:Ww,SECONDS:O6,SVGHandler:$A,SVGRenderer:k0,SVGStringRenderer:VA,Scenegraph:yA,TIME_UNITS:ux,Transform:O,View:oC,WEEK:N6,Warn:Rx,YEAR:R6,accessor:Do,accessorFields:Wn,accessorName:en,array:K,ascending:Zh,bandwidthNRD:kp,bin:u2,bootstrapCI:l2,boundClip:e_,boundContext:du,boundItem:f0,boundMark:hA,boundStroke:ai,changeset:Ma,clampRange:gx,codegenExpression:yF,compare:ep,constant:In,cumulativeLogNormal:Sp,cumulativeNormal:uc,cumulativeUniform:Op,dayofyear:vx,debounce:Qh,defaultLocale:Qb,definition:a2,densityLogNormal:$p,densityNormal:Dp,densityUniform:zp,domChild:dn,domClear:Pe,domCreate:Xi,domFind:d0,dotbin:c2,error:j,expressionFunction:sn,extend:xt,extent:kr,extentIndex:sx,falsy:Oi,fastmap:Fo,field:ei,flush:Mx,font:Lc,fontFamily:yu,fontSize:Sr,format:T6,formatLocale:P6,formats:j6,hasOwnProperty:tt,id:Hs,identity:Me,inferType:L6,inferTypes:q6,ingest:St,inherits:V,inrange:Co,interpolate:Bm,interpolateColors:wc,interpolateRange:gw,intersect:QA,intersectBoxLine:jo,intersectPath:Jm,intersectPoint:Km,intersectRule:Qw,isArray:P,isBoolean:Fa,isDate:Da,isFunction:bt,isIterable:U6,isNumber:$t,isObject:Z,isRegExp:up,isString:Q,isTuple:tc,key:rp,lerp:Sx,lineHeight:Vi,loader:Hl,locale:Nx,logger:Kh,lruCache:cx,markup:_0,merge:ox,mergeConfig:Yl,multiLineOffset:u0,one:Gs,pad:$x,panLinear:mx,panLog:px,panPow:hx,panSymlog:dx,parse:function(t,n,e){return Z(t)||j("Input Vega specification must be an object."),nN(t,new aE(n=Yl(function(){const r="sans-serif",i="#4c78a8",a="#000",o="#888",s="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:i},area:{fill:i},image:null,line:{stroke:i,strokeWidth:2},path:{stroke:i},rect:{fill:i},rule:{stroke:a},shape:{stroke:i},symbol:{fill:i,size:64},text:{fill:a,font:r,fontSize:11},trail:{fill:i,size:2},style:{"guide-label":{fill:a,font:r,fontSize:10},"guide-title":{fill:a,font:r,fontSize:11,fontWeight:"bold"},"group-title":{fill:a,font:r,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:a,font:r,fontSize:12},point:{size:30,strokeWidth:2,shape:"circle"},circle:{size:30,strokeWidth:2},square:{size:30,strokeWidth:2,shape:"square"},cell:{fill:"transparent",stroke:s},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:o,grid:!1,gridWidth:1,gridColor:s,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:o,tickOffset:0,tickRound:!0,tickSize:5,tickWidth:1,titlePadding:4},axisBand:{tickOffset:-.5},projection:{type:"mercator"},legend:{orient:"right",padding:0,gridAlign:"each",columnPadding:10,rowPadding:2,symbolDirection:"vertical",gradientDirection:"vertical",gradientLength:200,gradientThickness:16,gradientStrokeColor:s,gradientStrokeWidth:0,gradientLabelOffset:2,labelAlign:"left",labelBaseline:"middle",labelLimit:160,labelOffset:4,labelOverlap:!0,symbolLimit:30,symbolType:"circle",symbolSize:100,symbolOffset:0,symbolStrokeWidth:1.5,symbolBaseFillColor:"transparent",symbolBaseStrokeColor:o,titleLimit:180,titleOrient:"top",titlePadding:5,layout:{offset:18,direction:"horizontal",left:{direction:"vertical"},right:{direction:"vertical"}}},range:{category:{scheme:"tableau10"},ordinal:{scheme:"blues"},heatmap:{scheme:"yellowgreenblue"},ramp:{scheme:"blues"},diverging:{scheme:"blueorange",extent:[1,0]},symbol:["circle","square","triangle-up","cross","diamond","triangle-right","triangle-down","triangle-left"]}}}(),n,t.config),e)).toRuntime()},parseExpression:pF,parseSelector:aa,path:gp,pathCurves:Pm,pathEqual:r_,pathParse:Ro,pathRectangle:Lw,pathRender:su,pathSymbols:jw,pathTrail:qw,peek:Bt,point:Uc,projection:_g,quantileLogNormal:Mp,quantileNormal:lc,quantileUniform:Np,quantiles:Ap,quantizeInterpolator:yw,quarter:Ax,quartiles:_p,get random(){return Ne},randomInteger:function(t,n){let e,r,i;n==null&&(n=t,t=0);const a={min(o){return arguments.length?(e=o||0,i=r-e,a):e},max(o){return arguments.length?(r=o||0,i=r-e,a):r},sample:()=>e+Math.floor(i*Ne()),pdf:o=>o===Math.floor(o)&&o>=e&&o<r?1/i:0,cdf(o){const s=Math.floor(o);return s<e?0:s>=r?1:(s-e+1)/i},icdf:o=>o>=0&&o<=1?e-1+Math.floor(o*i):NaN};return a.min(t).max(n)},randomKDE:Cp,randomLCG:function(t){return function(){return(t=(1103515245*t+12345)%2147483647)/2147483647}},randomLogNormal:d2,randomMixture:h2,randomNormal:Fp,randomUniform:p2,read:tx,regressionConstant:Rp,regressionExp:g2,regressionLinear:Tp,regressionLoess:b2,regressionLog:m2,regressionPoly:v2,regressionPow:y2,regressionQuad:Pp,renderModule:ef,repeat:I6,resetDefaultLocale:W6,resetSVGClipId:Iw,resetSVGDefIds:function(){Iw(),Mw=0},responseType:Zb,runtimeContext:LF,sampleCurve:fc,sampleLogNormal:Ep,sampleNormal:sc,sampleUniform:Bp,scale:Dt,sceneEqual:C0,sceneFromJSON:mA,scenePickVisit:Oc,sceneToJSON:pA,sceneVisit:Qe,sceneZOrder:Qm,scheme:zm,serializeXML:LA,setHybridRendererOptions:function(t){Ze.svgMarkTypes=t.svgMarkTypes??["text"],Ze.svgOnTop=t.svgOnTop??!0,Ze.debug=t.debug??!1},setRandom:function(t){Ne=t},span:Gl,splitAccessPath:Ni,stringValue:G,textMetrics:we,timeBin:nx,timeFloor:ix,timeFormatLocale:H6,timeInterval:np,timeOffset:Dx,timeSequence:kx,timeUnitSpecifier:_x,timeUnits:ex,toBoolean:zx,toDate:Ox,toNumber:ze,toSet:Dr,toString:Bx,transform:o2,transforms:So,truncate:Ex,truthy:Be,tupleid:st,typeParsers:G6,utcFloor:rx,utcInterval:tp,utcOffset:Cx,utcSequence:Fx,utcdayofyear:yx,utcquarter:wx,utcweek:bx,version:"5.33.0",visitArray:ka,week:xx,writeConfig:lp,zero:ip,zoomLinear:sp,zoomLog:ap,zoomPow:Vl,zoomSymlog:op},Symbol.toStringTag,{value:"Module"}));function xy(t){return U(t,"or")}function wy(t){return U(t,"and")}function Ay(t){return U(t,"not")}function Bd(t,n){if(Ay(t))Bd(t.not,n);else if(wy(t))for(const e of t.and)Bd(e,n);else if(xy(t))for(const e of t.or)Bd(e,n);else n(t)}function ds(t,n){return Ay(t)?{not:ds(t.not,n)}:wy(t)?{and:t.and.map(e=>ds(e,n))}:xy(t)?{or:t.or.map(e=>ds(e,n))}:n(t)}const ft=structuredClone;function sE(t){throw new Error(t)}function hs(t,n){const e={};for(const r of n)tt(t,r)&&(e[r]=t[r]);return e}function he(t,n){const e={...t};for(const r of n)delete e[r];return e}function wt(t){if($t(t))return t;const n=Q(t)?t:Lt(t);if(n.length<250)return n;let e=0;for(let r=0;r<n.length;r++)e=(e<<5)-e+n.charCodeAt(r),e&=e;return e}function _y(t){return t===!1||t===null}function vt(t,n){return t.includes(n)}function ps(t,n){let e=0;for(const[r,i]of t.entries())if(n(i,r,e++))return!0;return!1}function ky(t,n){let e=0;for(const[r,i]of t.entries())if(!n(i,r,e++))return!1;return!0}function uE(t,...n){for(const e of n)aN(t,e??{});return t}function aN(t,n){for(const e of q(n))lp(t,e,n[e],!0)}function Pr(t,n){const e=[],r={};let i;for(const a of t)i=n(a),i in r||(r[i]=1,e.push(a));return e}function oN(t,n){const e=q(t),r=q(n);if(e.length!==r.length)return!1;for(const i of e)if(t[i]!==n[i])return!1;return!0}function lE(t,n){if(t.size!==n.size)return!1;for(const e of t)if(!n.has(e))return!1;return!0}function Dy(t,n){for(const e of t)if(n.has(e))return!0;return!1}function Fy(t){const n=new Set;for(const e of t){const r=Ni(e).map((a,o)=>o===0?a:`[${a}]`),i=r.map((a,o)=>r.slice(0,o+1).join(""));for(const a of i)n.add(a)}return n}function Cy(t,n){return t===void 0||n===void 0||Dy(Fy(t),Fy(n))}function jt(t){return q(t).length===0}Set.prototype.toJSON=function(){return`Set(${[...this].map(t=>Lt(t)).join(",")})`};const q=Object.keys,En=Object.values,sa=Object.entries;function cl(t){return t===!0||t===!1}function Xt(t){const n=t.replace(/\W/g,"_");return(t.match(/^\d+/)?"_":"")+n}function fl(t,n){return Ay(t)?`!(${fl(t.not,n)})`:wy(t)?`(${t.and.map(e=>fl(e,n)).join(") && (")})`:xy(t)?`(${t.or.map(e=>fl(e,n)).join(") || (")})`:n(t)}function zd(t,n){if(n.length===0)return!0;const e=n.shift();return e in t&&zd(t[e],n)&&delete t[e],jt(t)}function dl(t){return t.charAt(0).toUpperCase()+t.substr(1)}function Ey(t,n="datum"){const e=Ni(t),r=[];for(let i=1;i<=e.length;i++){const a=`[${e.slice(0,i).map(G).join("][")}]`;r.push(`${n}${a}`)}return r.join(" && ")}function cE(t,n="datum"){return`${n}[${G(Ni(t).join("."))}]`}function Ot(t){return`datum['${t.replaceAll("'","\\'")}']`}function sN(t){return t.replace(/(\[|\]|\.|'|")/g,"\\$1")}function He(t){return`${Ni(t).map(sN).join("\\.")}`}function to(t,n,e){return t.replace(new RegExp(n.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),e)}function ms(t){return`${Ni(t).join(".")}`}function gs(t){return t?Ni(t).length:0}function un(...t){return t.find(n=>n!==void 0)}let fE=42;function dE(t){const n=++fE;return t?String(t)+n:n}function uN(){fE=42}function hE(t){return pE(t)?t:`__${t}`}function pE(t){return t.startsWith("__")}function hl(t){if(t!==void 0)return(t%360+360)%360}function Od(t){return!!$t(t)||!isNaN(t)&&!isNaN(parseFloat(t))}const mE=Object.getPrototypeOf(structuredClone({}));function Ce(t,n){if(t===n)return!0;if(t&&n&&typeof t=="object"&&typeof n=="object"){if(t.constructor.name!==n.constructor.name)return!1;let e,r;if(Array.isArray(t)){if(e=t.length,e!=n.length)return!1;for(r=e;r--!==0;)if(!Ce(t[r],n[r]))return!1;return!0}if(t instanceof Map&&n instanceof Map){if(t.size!==n.size)return!1;for(const a of t.entries())if(!n.has(a[0]))return!1;for(const a of t.entries())if(!Ce(a[1],n.get(a[0])))return!1;return!0}if(t instanceof Set&&n instanceof Set){if(t.size!==n.size)return!1;for(const a of t.entries())if(!n.has(a[0]))return!1;return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(n)){if(e=t.length,e!=n.length)return!1;for(r=e;r--!==0;)if(t[r]!==n[r])return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf&&t.valueOf!==mE.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString&&t.toString!==mE.toString)return t.toString()===n.toString();const i=Object.keys(t);if(e=i.length,e!==Object.keys(n).length)return!1;for(r=e;r--!==0;)if(!Object.prototype.hasOwnProperty.call(n,i[r]))return!1;for(r=e;r--!==0;){const a=i[r];if(!Ce(t[a],n[a]))return!1}return!0}return t!=t&&n!=n}function Lt(t){const n=[];return function e(r){if(r&&r.toJSON&&typeof r.toJSON=="function"&&(r=r.toJSON()),r===void 0)return;if(typeof r=="number")return isFinite(r)?""+r:"null";if(typeof r!="object")return JSON.stringify(r);let i,a;if(Array.isArray(r)){for(a="[",i=0;i<r.length;i++)i&&(a+=","),a+=e(r[i])||"null";return a+"]"}if(r===null)return"null";if(n.includes(r))throw new TypeError("Converting circular structure to JSON");const o=n.push(r)-1,s=Object.keys(r).sort();for(a="",i=0;i<s.length;i++){const u=s[i],l=e(r[u]);l&&(a&&(a+=","),a+=JSON.stringify(u)+":"+l)}return n.splice(o,1),`{${a}}`}(t)}function U(t,n){return Z(t)&&tt(t,n)&&t[n]!==void 0}const mi="row",gi="column",Nd="facet",Jt="x",bn="y",lr="x2",jr="y2",ua="xOffset",ys="yOffset",cr="radius",yi="radius2",Ge="theta",vi="theta2",fr="latitude",dr="longitude",hr="latitude2",Ve="longitude2",la="time",pe="color",Lr="fill",qr="stroke",me="shape",bi="size",no="angle",xi="opacity",ca="fillOpacity",fa="strokeOpacity",da="strokeWidth",ha="strokeDash",pl="text",vs="order",ml="detail",Rd="key",eo="tooltip",Td="href",Pd="url",jd="description",gE={theta:1,theta2:1,radius:1,radius2:1};function yE(t){return tt(gE,t)}const $y={longitude:1,longitude2:1,latitude:1,latitude2:1};function vE(t){switch(t){case fr:return"y";case hr:return"y2";case dr:return"x";case Ve:return"x2"}}function bE(t){return tt($y,t)}const lN=q($y),Sy={x:1,y:1,x2:1,y2:1,...gE,...$y,xOffset:1,yOffset:1,color:1,fill:1,stroke:1,time:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeDash:1,size:1,angle:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1,url:1,description:1};function bs(t){return t===pe||t===Lr||t===qr}const xE={row:1,column:1,facet:1},Ye=q(xE),My={...Sy,...xE},cN=q(My),{order:yj,detail:vj,tooltip:bj,...fN}=My,{row:xj,column:wj,facet:Aj,...dN}=fN;function hN(t){return tt(dN,t)}function wE(t){return tt(My,t)}const pN=[lr,jr,hr,Ve,vi,yi];function AE(t){return ro(t)!==t}function ro(t){switch(t){case lr:return Jt;case jr:return bn;case hr:return fr;case Ve:return dr;case vi:return Ge;case yi:return cr}return t}function pa(t){if(yE(t))switch(t){case Ge:return"startAngle";case vi:return"endAngle";case cr:return"outerRadius";case yi:return"innerRadius"}return t}function Ur(t){switch(t){case Jt:return lr;case bn:return jr;case fr:return hr;case dr:return Ve;case Ge:return vi;case cr:return yi}}function ge(t){switch(t){case Jt:case lr:return"width";case bn:case jr:return"height"}}function _E(t){switch(t){case Jt:return"xOffset";case bn:return"yOffset";case lr:return"x2Offset";case jr:return"y2Offset";case Ge:return"thetaOffset";case cr:return"radiusOffset";case vi:return"theta2Offset";case yi:return"radius2Offset"}}function By(t){switch(t){case Jt:return"xOffset";case bn:return"yOffset"}}function mN(t){switch(t){case"xOffset":return"x";case"yOffset":return"y"}}const gN=q(Sy),{x:_j,y:kj,x2:Dj,y2:Fj,xOffset:Cj,yOffset:Ej,latitude:$j,longitude:Sj,latitude2:Mj,longitude2:Bj,theta:zj,theta2:Oj,radius:Nj,radius2:Rj,...zy}=Sy,yN=q(zy),Oy={x:1,y:1},wi=q(Oy);function ln(t){return tt(Oy,t)}const Ny={theta:1,radius:1},vN=q(Ny);function Ld(t){return t==="width"?Jt:bn}const kE={xOffset:1,yOffset:1};function gl(t){return tt(kE,t)}const bN={time:1};function Ry(t){return t in bN}const{text:Tj,tooltip:Pj,href:jj,url:Lj,description:qj,detail:Uj,key:Ij,order:Wj,...DE}=zy,FE=q(DE),CE={...Oy,...Ny,...kE,...DE},Ty=q(CE);function Ir(t){return tt(CE,t)}function xN(t,n){return function(e){switch(e){case pe:case Lr:case qr:case jd:case ml:case Rd:case eo:case Td:case vs:case xi:case ca:case fa:case da:case Nd:case mi:case gi:return EE;case Jt:case bn:case ua:case ys:case fr:case dr:case la:return wN;case lr:case jr:case hr:case Ve:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case bi:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case ha:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case me:return{point:"always",geoshape:"always"};case pl:return{text:"always"};case no:return{point:"always",square:"always",text:"always"};case Pd:return{image:"always"};case Ge:case cr:return{text:"always",arc:"always"};case vi:case yi:return{arc:"always"}}}(t)[n]}const EE={arc:"always",area:"always",bar:"always",circle:"always",geoshape:"always",image:"always",line:"always",rule:"always",point:"always",rect:"always",square:"always",trail:"always",text:"always",tick:"always"},{geoshape:Hj,...wN}=EE;function Py(t){switch(t){case Jt:case bn:case Ge:case cr:case ua:case ys:case bi:case no:case da:case xi:case ca:case fa:case la:case lr:case jr:case vi:case yi:return;case Nd:case mi:case gi:case me:case ha:case pl:case eo:case Td:case Pd:case jd:return"discrete";case pe:case Lr:case qr:return"flexible";case fr:case dr:case hr:case Ve:case ml:case Rd:case vs:return}}const AN={argmax:1,argmin:1,average:1,count:1,distinct:1,exponential:1,exponentialb:1,product:1,max:1,mean:1,median:1,min:1,missing:1,q1:1,q3:1,ci0:1,ci1:1,stderr:1,stdev:1,stdevp:1,sum:1,valid:1,values:1,variance:1,variancep:1},_N={count:1,min:1,max:1};function Ai(t){return U(t,"argmin")}function ma(t){return U(t,"argmax")}function qd(t){return Q(t)&&tt(AN,t)}const kN=new Set(["count","valid","missing","distinct"]);function Ud(t){return Q(t)&&kN.has(t)}const DN=new Set(["count","sum","distinct","valid","missing"]),FN=new Set(["mean","average","median","q1","q3","min","max"]);function $E(t){return Fa(t)&&(t=uh(t,void 0)),"bin"+q(t).map(n=>Id(t[n])?Xt(`_${n}_${sa(t[n])}`):Xt(`_${n}_${t[n]}`)).join("")}function Wt(t){return t===!0||io(t)&&!t.binned}function $n(t){return t==="binned"||io(t)&&t.binned===!0}function io(t){return Z(t)}function Id(t){return U(t,"param")}function SE(t){switch(t){case mi:case gi:case bi:case pe:case Lr:case qr:case da:case xi:case ca:case fa:case me:return 6;case ha:return 4;default:return 10}}function yl(t){return U(t,"expr")}function Sn(t,{level:n}={level:0}){const e=q(t||{}),r={};for(const i of e)r[i]=n===0?Ee(t[i]):Sn(t[i],{level:n-1});return r}function ME(t){const{anchor:n,frame:e,offset:r,orient:i,angle:a,limit:o,color:s,subtitleColor:u,subtitleFont:l,subtitleFontSize:c,subtitleFontStyle:f,subtitleFontWeight:d,subtitleLineHeight:h,subtitlePadding:p,...m}=t,g={...n?{anchor:n}:{},...e?{frame:e}:{},...r?{offset:r}:{},...i?{orient:i}:{},...a!==void 0?{angle:a}:{},...o!==void 0?{limit:o}:{}},y={...u?{subtitleColor:u}:{},...l?{subtitleFont:l}:{},...c?{subtitleFontSize:c}:{},...f?{subtitleFontStyle:f}:{},...d?{subtitleFontWeight:d}:{},...h?{subtitleLineHeight:h}:{},...p?{subtitlePadding:p}:{}};return{titleMarkConfig:{...m,...s?{fill:s}:{}},subtitleMarkConfig:hs(t,["align","baseline","dx","dy","limit"]),nonMarkTitleProperties:g,subtitle:y}}function ga(t){return Q(t)||P(t)&&Q(t[0])}function it(t){return U(t,"signal")}function ao(t){return U(t,"step")}function _i(t){return!P(t)&&U(t,"field")&&U(t,"data")}const CN=q({aria:1,description:1,ariaRole:1,ariaRoleDescription:1,blend:1,opacity:1,fill:1,fillOpacity:1,stroke:1,strokeCap:1,strokeWidth:1,strokeOpacity:1,strokeDash:1,strokeDashOffset:1,strokeJoin:1,strokeOffset:1,strokeMiterLimit:1,startAngle:1,endAngle:1,padAngle:1,innerRadius:1,outerRadius:1,size:1,shape:1,interpolate:1,tension:1,orient:1,align:1,baseline:1,text:1,dir:1,dx:1,dy:1,ellipsis:1,limit:1,radius:1,theta:1,angle:1,font:1,fontSize:1,fontWeight:1,fontStyle:1,lineBreak:1,lineHeight:1,cursor:1,href:1,tooltip:1,cornerRadius:1,cornerRadiusTopLeft:1,cornerRadiusTopRight:1,cornerRadiusBottomLeft:1,cornerRadiusBottomRight:1,aspect:1,width:1,height:1,url:1,smooth:1}),EN={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},jy=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function BE(t){const n=P(t.condition)?t.condition.map(zE):zE(t.condition);return{...Ee(t),condition:n}}function Ee(t){if(yl(t)){const{expr:n,...e}=t;return{signal:n,...e}}return t}function zE(t){if(yl(t)){const{expr:n,...e}=t;return{signal:n,...e}}return t}function Gt(t){if(yl(t)){const{expr:n,...e}=t;return{signal:n,...e}}return it(t)?t:t!==void 0?{value:t}:void 0}function $N(t){return it(t)?t.signal:G(t)}function OE(t){return it(t)?t.signal:G(t.value)}function pr(t){return it(t)?t.signal:t==null?null:G(t)}function SN(t,n,e){for(const r of e){const i=Wr(r,n.markDef,n.config);i!==void 0&&(t[r]=Gt(i))}return t}function NE(t){return[].concat(t.type,t.style??[])}function qt(t,n,e,r={}){const{vgChannel:i,ignoreVgConfig:a}=r;return i&&U(n,i)?n[i]:n[t]!==void 0?n[t]:!a||i&&i!==t?Wr(t,n,e,r):void 0}function Wr(t,n,e,{vgChannel:r}={}){const i=Ly(t,n,e.style);return un(r?i:void 0,i,r?e[n.type][r]:void 0,e[n.type][t],r?e.mark[r]:e.mark[t])}function Ly(t,n,e){return RE(t,NE(n),e)}function RE(t,n,e){let r;n=K(n);for(const i of n){const a=e[i];U(a,t)&&(r=a[t])}return r}function TE(t,n){return K(t).reduce((e,r)=>(e.field.push(Y(r,n)),e.order.push(r.sort??"ascending"),e),{field:[],order:[]})}function PE(t,n){const e=[...t];return n.forEach(r=>{for(const i of e)if(Ce(i,r))return;e.push(r)}),e}function jE(t,n){return Ce(t,n)||!n?t:t?[...K(t),...K(n)].join(", "):n}function LE(t,n){const e=t.value,r=n.value;if(e==null||r===null)return{explicit:t.explicit,value:null};if((ga(e)||it(e))&&(ga(r)||it(r)))return{explicit:t.explicit,value:jE(e,r)};if(ga(e)||it(e))return{explicit:t.explicit,value:e};if(ga(r)||it(r))return{explicit:t.explicit,value:r};if(!(ga(e)||it(e)||ga(r)||it(r)))return{explicit:t.explicit,value:PE(e,r)};throw new Error("It should never reach here")}function qy(t){return`Invalid specification ${Lt(t)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const MN='Autosize "fit" only works for single views and layered views.';function qE(t){return`${t=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function UE(t){return`${t=="width"?"Width":"Height"} "container" only works well with autosize "fit" or "fit-${t=="width"?"x":"y"}".`}function IE(t){return t?`Dropping "fit-${t}" because spec has discrete ${ge(t)}.`:'Dropping "fit" because spec has discrete size.'}function Uy(t){return`Unknown field for ${t}. Cannot calculate view size.`}function WE(t){return`Cannot project a selection on encoding channel "${t}", which has no field.`}function BN(t,n){return`Cannot project a selection on encoding channel "${t}" as it uses an aggregate function ("${n}").`}function HE(t){return`Selection not supported for ${t} yet.`}const zN="The same selection must be used to override scale domains in a layered view.";function GE(t){return`The "columns" property cannot be used when "${t}" has nested row/column.`}const Iy="Animation involving facet, layer, or concat is currently unsupported.";function VE(t,n,e){return`An ancestor parsed field "${t}" as ${e} but a child wants to parse the field as ${n}.`}function ON(t){return`Ignoring an invalid transform: ${Lt(t)}.`}function YE(t){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${t} are dropped.`}function NN(t){return`${t}Offset dropped because ${t} is continuous`}function XE(t){return`Invalid field type "${t}".`}function JE(t,n){const{fill:e,stroke:r}=n;return`Dropping color ${t} as the plot also has ${e&&r?"fill and stroke":e?"fill":"stroke"}.`}function Wy(t,n){return`Dropping ${Lt(t)} from channel "${n}" since it does not contain any data field, datum, value, or signal.`}function Wd(t,n,e){return`${t} dropped as it is incompatible with "${n}".`}function RN(t){return`${t}-encoding is dropped as ${t} is not a valid encoding channel.`}function TN(t){return`${t} encoding should be discrete (ordinal / nominal / binned).`}function PN(t){return`${t} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function Hy(t,n){return`Using discrete channel "${t}" to encode "${n}" field can be misleading as it does not encode ${n==="ordinal"?"order":"magnitude"}.`}function jN(t){return`Using unaggregated domain with raw field has no effect (${Lt(t)}).`}function LN(t){return`Unaggregated domain not applicable for "${t}" since it produces values outside the origin domain of the source data.`}function qN(t){return`Unaggregated domain is currently unsupported for log scale (${Lt(t)}).`}function KE(t,n,e){return`${e}-scale's "${n}" is dropped as it does not work with ${t} scale.`}function QE(t){return`The step for "${t}" is dropped because the ${t==="width"?"x":"y"} is continuous.`}const ZE="Domains that should be unioned has conflicting sort properties. Sort will be set to true.";function Hd(t,n){return`Invalid ${t}: ${Lt(n)}.`}function t3(t){return`1D error band does not support ${t}.`}function n3(t){return`Channel ${t} is required for "binned" bin.`}const e3=Kh(Rx);let vl=e3;function Gy(...t){vl.error(...t)}function I(...t){vl.warn(...t)}function oo(t){if(t&&Z(t)){for(const n of Yy)if(U(t,n))return!0}return!1}const r3=["january","february","march","april","may","june","july","august","september","october","november","december"],UN=r3.map(t=>t.substr(0,3)),i3=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],IN=i3.map(t=>t.substr(0,3));function Vy(t,n){const e=[];if(n&&t.day!==void 0&&q(t).length>1&&(I(function(r){return`Dropping day from datetime ${Lt(r)} as day cannot be combined with other units.`}(t)),delete(t=ft(t)).day),t.year!==void 0?e.push(t.year):e.push(2012),t.month!==void 0){const r=n?function(i){if(Od(i)&&(i=+i),$t(i))return i-1;{const a=i.toLowerCase(),o=r3.indexOf(a);if(o!==-1)return o;const s=a.substr(0,3),u=UN.indexOf(s);if(u!==-1)return u;throw new Error(Hd("month",i))}}(t.month):t.month;e.push(r)}else if(t.quarter!==void 0){const r=n?function(i){if(Od(i)&&(i=+i),$t(i))return i>4&&I(Hd("quarter",i)),i-1;throw new Error(Hd("quarter",i))}(t.quarter):t.quarter;e.push($t(r)?3*r:`${r}*3`)}else e.push(0);if(t.date!==void 0)e.push(t.date);else if(t.day!==void 0){const r=n?function(i){if(Od(i)&&(i=+i),$t(i))return i%7;{const a=i.toLowerCase(),o=i3.indexOf(a);if(o!==-1)return o;const s=a.substr(0,3),u=IN.indexOf(s);if(u!==-1)return u;throw new Error(Hd("day",i))}}(t.day):t.day;e.push($t(r)?r+1:`${r}+1`)}else e.push(1);for(const r of["hours","minutes","seconds","milliseconds"]){const i=t[r];e.push(i===void 0?0:i)}return e}function so(t){const n=Vy(t,!0).join(", ");return t.utc?`utc(${n})`:`datetime(${n})`}const a3={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},Yy=q(a3);function uo(t){return Z(t)?t.binned:o3(t)}function o3(t){return t&&t.startsWith("binned")}function Xy(t){return t.startsWith("utc")}const WN={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function Gd(t){return Yy.filter(n=>u3(t,n))}function s3(t){const n=Gd(t);return n[n.length-1]}function u3(t,n){const e=t.indexOf(n);return!(e<0)&&!(e>0&&n==="seconds"&&t.charAt(e-1)==="i")&&!(t.length>e+3&&n==="day"&&t.charAt(e+3)==="o")&&!(e>0&&n==="year"&&t.charAt(e-1)==="f")}function HN(t,n,{end:e}={end:!1}){const r=Ey(n),i=Xy(t)?"utc":"";function a(u){return u==="quarter"?`(${i}quarter(${r})-1)`:`${i}${u}(${r})`}let o;const s={};for(const u of Yy)u3(t,u)&&(s[u]=a(u),o=u);return e&&(s[o]+="+1"),function(u){const l=Vy(u,!1).join(", ");return u.utc?`utc(${l})`:`datetime(${l})`}(s)}function l3(t){if(t)return`timeUnitSpecifier(${Lt(Gd(t))}, ${Lt(WN)})`}function xn(t){if(!t)return;let n;return Q(t)?n=o3(t)?{unit:t.substring(6),binned:!0}:{unit:t}:Z(t)&&(n={...t,...t.unit?{unit:t.unit}:{}}),Xy(n.unit)&&(n.utc=!0,n.unit=n.unit.substring(3)),n}function c3(t,n=e=>e){const e=xn(t),r=s3(e.unit);if(r&&r!=="day"){const i={year:2001,month:1,date:1,hours:0,minutes:0,seconds:0,milliseconds:0},{step:a,part:o}=f3(r,e.step);return`${n(so({...i,[o]:+i[o]+a}))} - ${n(so(i))}`}}const GN={year:1,month:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};function f3(t,n=1){if(function(e){return tt(GN,e)}(t))return{part:t,step:n};switch(t){case"day":case"dayofyear":return{part:"date",step:n};case"quarter":return{part:"month",step:3*n};case"week":return{part:"date",step:7*n}}}function Jy(t){return!!(t!=null&&t.field)&&t.equal!==void 0}function Ky(t){return!!(t!=null&&t.field)&&t.lt!==void 0}function Qy(t){return!!(t!=null&&t.field)&&t.lte!==void 0}function Zy(t){return!!(t!=null&&t.field)&&t.gt!==void 0}function tv(t){return!!(t!=null&&t.field)&&t.gte!==void 0}function nv(t){return!!(t!=null&&t.field&&(P(t.range)&&t.range.length===2||it(t.range)))}function ev(t){return!!(t!=null&&t.field)&&(P(t.oneOf)||P(t.in))}function d3(t){return ev(t)||Jy(t)||nv(t)||Ky(t)||Zy(t)||Qy(t)||tv(t)}function Hr(t,n){return lh(t,{timeUnit:n,wrapTime:!0})}function h3(t,n=!0){const{field:e}=t,r=xn(t.timeUnit),{unit:i,binned:a}=r||{},o=Y(t,{expr:"datum"}),s=i?`time(${a?o:HN(i,e)})`:o;if(Jy(t))return`${s}===${Hr(t.equal,i)}`;if(Ky(t))return`${s}<${Hr(t.lt,i)}`;if(Zy(t))return`${s}>${Hr(t.gt,i)}`;if(Qy(t))return`${s}<=${Hr(t.lte,i)}`;if(tv(t))return`${s}>=${Hr(t.gte,i)}`;if(ev(t))return`indexof([${function(u,l){return u.map(c=>Hr(c,l))}(t.oneOf,i).join(",")}], ${s}) !== -1`;if(function(u){return!!(u!=null&&u.field)&&u.valid!==void 0}(t))return Vd(s,t.valid);if(nv(t)){const{range:u}=Sn(t),l=it(u)?{signal:`${u.signal}[0]`}:u[0],c=it(u)?{signal:`${u.signal}[1]`}:u[1];if(l!==null&&c!==null&&n)return"inrange("+s+", ["+Hr(l,i)+", "+Hr(c,i)+"])";const f=[];return l!==null&&f.push(`${s} >= ${Hr(l,i)}`),c!==null&&f.push(`${s} <= ${Hr(c,i)}`),f.length>0?f.join(" && "):"true"}throw new Error(`Invalid field predicate: ${Lt(t)}`)}function Vd(t,n=!0){return n?`isValid(${t}) && isFinite(+${t})`:`!isValid(${t}) || !isFinite(+${t})`}function VN(t){return d3(t)&&t.timeUnit?{...t,timeUnit:xn(t.timeUnit)}:t}function YN(t){return t==="quantitative"||t==="temporal"}function p3(t){return t==="ordinal"||t==="nominal"}const lo="quantitative",rv="ordinal",xs="temporal",iv="nominal",ws="geojson",m3="linear",XN="log",JN="pow",KN="sqrt",av="time",Yd="utc",g3="point",ov="band",sv={linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",identity:"numeric",sequential:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"};function QN(t,n){const e=sv[t],r=sv[n];return e===r||e==="ordinal-position"&&r==="time"||r==="ordinal-position"&&e==="time"}const ZN={linear:0,log:1,pow:1,sqrt:1,symlog:1,identity:1,sequential:1,time:0,utc:0,point:10,band:11,ordinal:0,"bin-ordinal":0,quantile:0,quantize:0,threshold:0};function y3(t){return ZN[t]}const v3=new Set(["linear","log","pow","sqrt","symlog"]),b3=new Set([...v3,"time","utc"]);function x3(t){return v3.has(t)}const w3=new Set(["quantile","quantize","threshold"]),tR=new Set([...b3,...w3,"sequential","identity"]),nR=new Set(["ordinal","bin-ordinal","point","band"]);function wn(t){return nR.has(t)}function mr(t){return tR.has(t)}function Gr(t){return b3.has(t)}function As(t){return w3.has(t)}function A3(t){return U(t,"param")}const{type:Gj,domain:Vj,range:Yj,rangeMax:Xj,rangeMin:Jj,scheme:Kj,...eR}={type:1,domain:1,domainMax:1,domainMin:1,domainMid:1,domainRaw:1,align:1,range:1,rangeMax:1,rangeMin:1,scheme:1,bins:1,reverse:1,round:1,clamp:1,nice:1,base:1,exponent:1,constant:1,interpolate:1,zero:1,padding:1,paddingInner:1,paddingOuter:1},rR=q(eR);function uv(t,n){switch(n){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(t);case"bins":return!["point","band","identity","ordinal"].includes(t);case"round":return Gr(t)||t==="band"||t==="point";case"padding":case"rangeMin":case"rangeMax":return Gr(t)||["point","band"].includes(t);case"paddingOuter":case"align":return["point","band"].includes(t);case"paddingInner":return t==="band";case"domainMax":case"domainMid":case"domainMin":case"domainRaw":case"clamp":return Gr(t);case"nice":return Gr(t)||t==="quantize"||t==="threshold";case"exponent":return t==="pow";case"base":return t==="log";case"constant":return t==="symlog";case"zero":return mr(t)&&!vt(["log","time","utc","threshold","quantile"],t)}}function _3(t,n){switch(n){case"interpolate":case"scheme":case"domainMid":return bs(t)?void 0:`Cannot use the scale property "${n}" with non-color channel.`;case"align":case"type":case"bins":case"domain":case"domainMax":case"domainMin":case"domainRaw":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"rangeMax":case"rangeMin":case"reverse":case"round":case"clamp":case"zero":return}}const jn={arc:"arc",area:"area",bar:"bar",image:"image",line:"line",point:"point",rect:"rect",rule:"rule",text:"text",tick:"tick",trail:"trail",circle:"circle",square:"square",geoshape:"geoshape"},k3=jn.arc,Xd=jn.area,Jd=jn.bar,iR=jn.image,Kd=jn.line,Qd=jn.point,aR=jn.rect,Zd=jn.rule,D3=jn.text,lv=jn.tick,oR=jn.trail,cv=jn.circle,fv=jn.square,F3=jn.geoshape;function ya(t){return["line","area","trail"].includes(t)}function bl(t){return["rect","bar","image","arc","tick"].includes(t)}const sR=new Set(q(jn));function Vr(t){return U(t,"type")}const uR=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit","fill","fillOpacity"],C3=q({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),dv=["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],lR={area:["line","point"],bar:dv,rect:dv,line:["point"],tick:["bandSize","thickness",...dv]},E3=q({mark:1,arc:1,area:1,bar:1,circle:1,image:1,line:1,point:1,rect:1,rule:1,square:1,text:1,tick:1,trail:1,geoshape:1});function co(t){return U(t,"band")}const cR={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},hv={binSpacing:0,continuousBandSize:5,minBandSize:.25,timeUnitBandPosition:.5},fR={...hv,binSpacing:1},dR={...hv,thickness:1};function $3(t,{isPath:n}){return t===void 0||t==="break-paths-show-path-domains"?n?"break-paths-show-domains":"filter":t===null?"show":t}function pv({markDef:t,config:n,scaleChannel:e,scaleType:r,isCountAggregate:i}){var s,u;if(!r||!mr(r)||i)return"always-valid";const a=$3(qt("invalid",t,n),{isPath:ya(t.type)});return((u=(s=n.scale)==null?void 0:s.invalid)==null?void 0:u[e])!==void 0?"show":a}function S3({scaleName:t,scale:n,mode:e}){const r=`domain('${t}')`;if(!n||!t)return;const i=`${r}[0]`,a=`peek(${r})`,o=n.domainHasZero();return o==="definitely"?{scale:t,value:0}:o==="maybe"?{signal:`scale('${t}', inrange(0, ${r}) ? 0 : ${e==="zeroOrMin"?i:a})`}:{signal:`scale('${t}', ${e==="zeroOrMin"?i:a})`}}function M3({scaleChannel:t,channelDef:n,scale:e,scaleName:r,markDef:i,config:a}){var l;const o=e==null?void 0:e.get("type"),s=vr(n),u=pv({scaleChannel:t,markDef:i,config:a,scaleType:o,isCountAggregate:Ud(s==null?void 0:s.aggregate)});if(s&&u==="show"){const c=((l=a.scale.invalid)==null?void 0:l[t])??"zero-or-min";return{test:Vd(Y(s,{expr:"datum"}),!1),...hR(c,e,r)}}}function hR(t,n,e){if(Z(r=t)&&"value"in r){const{value:i}=t;return it(i)?{signal:i.signal}:{value:i}}var r;return S3({scale:n,scaleName:e,mode:"zeroOrMin"})}function mv(t){const{channel:n,channelDef:e,markDef:r,scale:i,scaleName:a,config:o}=t,s=ro(n),u=gv(t),l=M3({scaleChannel:s,channelDef:e,scale:i,scaleName:a,markDef:r,config:o});return l!==void 0?[l,u]:u}function fo(t,n,e,r){const i={};if(n&&(i.scale=n),Yr(t)){const{datum:a}=t;oo(a)?i.signal=so(a):it(a)?i.signal=a.signal:yl(a)?i.signal=a.expr:i.value=a}else i.field=Y(t,e);if(r){const{offset:a,band:o}=r;a&&(i.offset=a),o&&(i.band=o)}return i}function th({scaleName:t,fieldOrDatumDef:n,fieldOrDatumDef2:e,offset:r,startSuffix:i,endSuffix:a="end",bandPosition:o=.5}){const s=!it(o)&&0<o&&o<1?"datum":void 0,u=Y(n,{expr:s,suffix:i}),l=e!==void 0?Y(e,{expr:s}):Y(n,{suffix:a,expr:s}),c={};if(o===0||o===1){c.scale=t;const f=o===0?u:l;c.field=f}else{const f=it(o)?`(1-${o.signal}) * ${u} + ${o.signal} * ${l}`:`${1-o} * ${u} + ${o} * ${l}`;c.signal=`scale("${t}", ${f})`}return r&&(c.offset=r),c}function gv({channel:t,channelDef:n,channel2Def:e,markDef:r,config:i,scaleName:a,scale:o,stack:s,offset:u,defaultRef:l,bandPosition:c}){if(n){if(ht(n)){const f=o==null?void 0:o.get("type");if(oe(n)){c??(c=va({fieldDef:n,fieldDef2:e,markDef:r,config:i}));const{bin:d,timeUnit:h,type:p}=n;if(Wt(d)||c&&h&&p===xs)return s!=null&&s.impute?fo(n,a,{binSuffix:"mid"},{offset:u}):c&&!wn(f)?th({scaleName:a,fieldOrDatumDef:n,bandPosition:c,offset:u}):fo(n,a,Dl(n,t)?{binSuffix:"range"}:{},{offset:u});if($n(d)){if(H(e))return th({scaleName:a,fieldOrDatumDef:n,fieldOrDatumDef2:e,bandPosition:c,offset:u});I(n3(t===Jt?lr:jr))}}return fo(n,a,wn(f)?{binSuffix:"range"}:{},{offset:u,band:f==="band"?c??n.bandPosition??.5:void 0})}if(yr(n)){const f=u?{offset:u}:{};return{...xl(t,n.value),...f}}}return bt(l)&&(l=l()),l&&{...l,...u?{offset:u}:{}}}function xl(t,n){return vt(["x","x2"],t)&&n==="width"?{field:{group:"width"}}:vt(["y","y2"],t)&&n==="height"?{field:{group:"height"}}:Gt(n)}function ho(t){return t&&t!=="number"&&t!=="time"}function B3(t,n,e){return`${t}(${n}${e?`, ${Lt(e)}`:""})`}function yv({fieldOrDatumDef:t,format:n,formatType:e,expr:r,normalizeStack:i,config:a}){var u,l;if(ho(e))return gr({fieldOrDatumDef:t,format:n,formatType:e,expr:r,config:a});const o=z3(t,r,i),s=_s(t);if(n===void 0&&e===void 0&&a.customFormatTypes){if(s==="quantitative"){if(i&&a.normalizedNumberFormatType)return gr({fieldOrDatumDef:t,format:a.normalizedNumberFormat,formatType:a.normalizedNumberFormatType,expr:r,config:a});if(a.numberFormatType)return gr({fieldOrDatumDef:t,format:a.numberFormat,formatType:a.numberFormatType,expr:r,config:a})}if(s==="temporal"&&a.timeFormatType&&H(t)&&t.timeUnit===void 0)return gr({fieldOrDatumDef:t,format:a.timeFormat,formatType:a.timeFormatType,expr:r,config:a})}if(Cs(t)){const c=function({field:f,timeUnit:d,format:h,formatType:p,rawTimeFormat:m,isUTCScale:g}){return!d||h?!d&&p?`${p}(${f}, '${h}')`:`${g?"utc":"time"}Format(${f}, '${h=Q(h)?h:m}')`:function(y,v,x){if(!y)return;const b=l3(y);return`${x||Xy(y)?"utc":"time"}Format(${v}, ${b})`}(d,f,g)}({field:o,timeUnit:H(t)?(u=xn(t.timeUnit))==null?void 0:u.unit:void 0,format:n,formatType:a.timeFormatType,rawTimeFormat:a.timeFormat,isUTCScale:po(t)&&((l=t.scale)==null?void 0:l.type)===Yd});return c?{signal:c}:void 0}return n=vv({type:s,specifiedFormat:n,config:a,normalizeStack:i}),H(t)&&Wt(t.bin)?{signal:wl(o,Y(t,{expr:r,binSuffix:"end"}),n,e,a)}:n||_s(t)==="quantitative"?{signal:`${R3(o,n)}`}:{signal:`isValid(${o}) ? ${o} : ""+${o}`}}function z3(t,n,e){return H(t)?e?`${Y(t,{expr:n,suffix:"end"})}-${Y(t,{expr:n,suffix:"start"})}`:Y(t,{expr:n}):function(r){const{datum:i}=r;return oo(i)?so(i):`${Lt(i)}`}(t)}function gr({fieldOrDatumDef:t,format:n,formatType:e,expr:r,normalizeStack:i,config:a,field:o}){return o??(o=z3(t,r,i)),o!=="datum.value"&&H(t)&&Wt(t.bin)?{signal:wl(o,Y(t,{expr:r,binSuffix:"end"}),n,e,a)}:{signal:B3(e,o,n)}}function O3(t,n,e,r,i,a){var o;if(!Q(r)||!ho(r)){if(e===void 0&&r===void 0&&i.customFormatTypes&&_s(t)==="quantitative"&&(i.normalizedNumberFormatType&&ks(t)&&t.stack==="normalize"||i.numberFormatType))return;if(ks(t)&&t.stack==="normalize"&&i.normalizedNumberFormat)return vv({type:"quantitative",config:i,normalizeStack:!0});if(Cs(t)){const s=H(t)?(o=xn(t.timeUnit))==null?void 0:o.unit:void 0;return s===void 0&&i.customFormatTypes&&i.timeFormatType?void 0:function({specifiedFormat:u,timeUnit:l,config:c,omitTimeFormatConfig:f}){return u||(l?{signal:l3(l)}:f?void 0:c.timeFormat)}({specifiedFormat:e,timeUnit:s,config:i,omitTimeFormatConfig:a})}return vv({type:n,specifiedFormat:e,config:i})}}function N3(t,n,e){var r;return t&&(it(t)||t==="number"||t==="time")?t:Cs(n)&&e!=="time"&&e!=="utc"?H(n)&&((r=xn(n==null?void 0:n.timeUnit))!=null&&r.utc)?"utc":"time":void 0}function vv({type:t,specifiedFormat:n,config:e,normalizeStack:r}){return Q(n)?n:t===lo?r?e.normalizedNumberFormat:e.numberFormat:void 0}function R3(t,n){return`format(${t}, "${n||""}")`}function T3(t,n,e,r){return ho(e)?B3(e,t,n):R3(t,(Q(n)?n:void 0)??r.numberFormat)}function wl(t,n,e,r,i){if(e===void 0&&r===void 0&&i.customFormatTypes&&i.numberFormatType)return wl(t,n,i.numberFormat,i.numberFormatType,i);const a=T3(t,e,r,i),o=T3(n,e,r,i);return`${Vd(t,!1)} ? "null" : ${a} + " \u2013 " + ${o}`}const nh="min",pR={x:1,y:1,color:1,fill:1,stroke:1,strokeWidth:1,size:1,shape:1,fillOpacity:1,strokeOpacity:1,opacity:1,text:1};function P3(t){return tt(pR,t)}function ki(t){return t&&(t.op==="count"||U(t,"field"))}function j3(t){return t&&P(t)}function Al(t){return U(t,"row")||U(t,"column")}function bv(t){return U(t,"header")}function eh(t){return U(t,"facet")}function L3(t){const{field:n,timeUnit:e,bin:r,aggregate:i}=t;return{...e?{timeUnit:e}:{},...r?{bin:r}:{},...i?{aggregate:i}:{},field:n}}function xv(t){return U(t,"sort")}function va({fieldDef:t,fieldDef2:n,markDef:e,config:r}){if(ht(t)&&t.bandPosition!==void 0)return t.bandPosition;if(H(t)){const{timeUnit:i,bin:a}=t;if(i&&!n)return Wr("timeUnitBandPosition",e,r);if(Wt(a))return .5}}function q3({channel:t,fieldDef:n,fieldDef2:e,markDef:r,config:i,scaleType:a,useVlSizeChannel:o}){var l,c,f;const s=ge(t),u=qt(o?"size":s,r,i,{vgChannel:s});if(u!==void 0)return u;if(H(n)){const{timeUnit:d,bin:h}=n;if(d&&!e)return{band:Wr("timeUnitBandSize",r,i)};if(Wt(h)&&!wn(a))return{band:1}}return bl(r.type)?a?wn(a)?((l=i[r.type])==null?void 0:l.discreteBandSize)||{band:1}:(c=i[r.type])==null?void 0:c.continuousBandSize:(f=i[r.type])==null?void 0:f.discreteBandSize:void 0}function U3(t,n,e,r){return!!(Wt(t.bin)||t.timeUnit&&oe(t)&&t.type==="temporal")&&va({fieldDef:t,fieldDef2:n,markDef:e,config:r})!==void 0}function I3(t){return U(t,"sort")&&!U(t,"field")}function _l(t){return U(t,"condition")}function rh(t){const n=t==null?void 0:t.condition;return!!n&&!P(n)&&H(n)}function kl(t){const n=t==null?void 0:t.condition;return!!n&&!P(n)&&ht(n)}function H(t){return U(t,"field")||(t==null?void 0:t.aggregate)==="count"}function _s(t){return t==null?void 0:t.type}function Yr(t){return U(t,"datum")}function ba(t){return oe(t)&&!ah(t)||ih(t)}function W3(t){return oe(t)&&t.type==="quantitative"&&!t.bin||ih(t)}function ih(t){return Yr(t)&&$t(t.datum)}function ht(t){return H(t)||Yr(t)}function oe(t){return t&&(U(t,"field")||t.aggregate==="count")&&U(t,"type")}function yr(t){return U(t,"value")}function po(t){return U(t,"scale")||U(t,"sort")}function ks(t){return U(t,"axis")||U(t,"stack")||U(t,"impute")}function H3(t){return U(t,"legend")}function G3(t){return U(t,"format")||U(t,"formatType")}function mR(t){return he(t,["legend","axis","header","scale"])}function Y(t,n={}){let e=t.field;const r=n.prefix;let i=n.suffix,a="";if(function(o){return o.aggregate==="count"}(t))e=hE("count");else{let o;if(!n.nofn)if(function(s){return U(s,"op")}(t))o=t.op;else{const{bin:s,aggregate:u,timeUnit:l}=t;Wt(s)?(o=$E(s),i=(n.binSuffix??"")+(n.suffix??"")):u?ma(u)?(a=`["${e}"]`,e=`argmax_${u.argmax}`):Ai(u)?(a=`["${e}"]`,e=`argmin_${u.argmin}`):o=String(u):l&&!uo(l)&&(o=function(c){const{utc:f,...d}=xn(c);return d.unit?(f?"utc":"")+q(d).map(h=>Xt(`${h==="unit"?"":`_${h}_`}${d[h]}`)).join(""):(f?"utc":"")+"timeunit"+q(d).map(h=>Xt(`_${h}_${d[h]}`)).join("")}(l),i=(!["range","mid"].includes(n.binSuffix)&&n.binSuffix||"")+(n.suffix??""))}o&&(e=e?`${o}_${e}`:o)}return i&&(e=`${e}_${i}`),r&&(e=`${r}_${e}`),n.forAs?ms(e):n.expr?cE(e,n.expr)+a:He(e)+a}function ah(t){switch(t.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return H(t)&&!!t.bin;case"temporal":return!1}throw new Error(XE(t.type))}const V3=(t,n)=>{switch(n.fieldTitle){case"plain":return t.field;case"functional":return function(e){const{aggregate:r,bin:i,timeUnit:a,field:o}=e;if(ma(r))return`${o} for argmax(${r.argmax})`;if(Ai(r))return`${o} for argmin(${r.argmin})`;const s=a&&!uo(a)?xn(a):void 0,u=r||(s==null?void 0:s.unit)||(s==null?void 0:s.maxbins)&&"timeunit"||Wt(i)&&"bin";return u?`${u.toUpperCase()}(${o})`:o}(t);default:return function(e,r){var u;const{field:i,bin:a,timeUnit:o,aggregate:s}=e;if(s==="count")return r.countTitle;if(Wt(a))return`${i} (binned)`;if(o&&!uo(o)){const l=(u=xn(o))==null?void 0:u.unit;if(l)return`${i} (${Gd(l).join("-")})`}else if(s)return ma(s)?`${i} for max ${s.argmax}`:Ai(s)?`${i} for min ${s.argmin}`:`${dl(s)} of ${i}`;return i}(t,n)}};let Y3=V3;function X3(t){Y3=t}function Ds(t,n,{allowDisabling:e,includeDefault:r=!0}){var s;const i=(s=wv(t))==null?void 0:s.title;if(!H(t))return i??t.title;const a=t,o=r?Av(a,n):void 0;return e?un(i,a.title,o):i??a.title??o}function wv(t){return ks(t)&&t.axis?t.axis:H3(t)&&t.legend?t.legend:bv(t)&&t.header?t.header:void 0}function Av(t,n){return Y3(t,n)}function oh(t){if(G3(t)){const{format:n,formatType:e}=t;return{format:n,formatType:e}}{const n=wv(t)??{},{format:e,formatType:r}=n;return{format:e,formatType:r}}}function vr(t){return H(t)?t:rh(t)?t.condition:void 0}function mn(t){return ht(t)?t:kl(t)?t.condition:void 0}function J3(t,n,e,r={}){return Q(t)||$t(t)||Fa(t)?(I(function(i,a,o){return`Channel ${i} is a ${a}. Converted to {value: ${Lt(o)}}.`}(n,Q(t)?"string":$t(t)?"number":"boolean",t)),{value:t}):ht(t)?sh(t,n,e,r):kl(t)?{...t,condition:sh(t.condition,n,e,r)}:t}function sh(t,n,e,r){if(G3(t)){const{format:i,formatType:a,...o}=t;if(ho(a)&&!e.customFormatTypes)return I(YE(n)),sh(o,n,e,r)}else{const i=ks(t)?"axis":H3(t)?"legend":bv(t)?"header":null;if(i&&t[i]){const{format:a,formatType:o,...s}=t[i];if(ho(o)&&!e.customFormatTypes)return I(YE(n)),sh({...t,[i]:s},n,e,r)}}return H(t)?_v(t,n,r):function(i){let a=i.type;if(a)return i;const{datum:o}=i;return a=$t(o)?"quantitative":Q(o)?"nominal":oo(o)?"temporal":void 0,{...i,type:a}}(t)}function _v(t,n,{compositeMark:e=!1}={}){const{aggregate:r,timeUnit:i,bin:a,field:o}=t,s={...t};if(e||!r||qd(r)||ma(r)||Ai(r)||(I(function(u){return`Invalid aggregation operator "${u}".`}(r)),delete s.aggregate),i&&(s.timeUnit=xn(i)),o&&(s.field=`${o}`),Wt(a)&&(s.bin=uh(a,n)),$n(a)&&!ln(n)&&I(function(u){return`Channel ${u} should not be used with "binned" bin.`}(n)),oe(s)){const{type:u}=s,l=function(c){if(c)switch(c=c.toLowerCase()){case"q":case lo:return"quantitative";case"t":case xs:return"temporal";case"o":case rv:return"ordinal";case"n":case iv:return"nominal";case ws:return"geojson"}}(u);u!==l&&(s.type=l),u!=="quantitative"&&Ud(r)&&(I(function(c,f){return`Invalid field type "${c}" for aggregate: "${f}", using "quantitative" instead.`}(u,r)),s.type="quantitative")}else if(!AE(n)){const u=function(l,c){var p;switch(c){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(xv(l)&&P(l.sort))return"ordinal";const{aggregate:f,bin:d,timeUnit:h}=l;if(h)return"temporal";if(d||f&&!ma(f)&&!Ai(f))return"quantitative";if(po(l)&&((p=l.scale)!=null&&p.type))switch(sv[l.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}(s,n);s.type=u}if(oe(s)){const{compatible:u,warning:l}=function(c,f){const d=c.type;if(d==="geojson"&&f!=="shape")return{compatible:!1,warning:`Channel ${f} should not be used with a geojson data.`};switch(f){case mi:case gi:case Nd:return ah(c)?Fs:{compatible:!1,warning:TN(f)};case Jt:case bn:case ua:case ys:case pe:case Lr:case qr:case pl:case ml:case Rd:case eo:case Td:case Pd:case no:case Ge:case cr:case jd:return Fs;case dr:case Ve:case fr:case hr:return d!==lo?{compatible:!1,warning:`Channel ${f} should be used with a quantitative field only, not ${c.type} field.`}:Fs;case xi:case ca:case fa:case da:case bi:case vi:case yi:case lr:case jr:case la:return d!=="nominal"||c.sort?Fs:{compatible:!1,warning:`Channel ${f} should not be used with an unsorted discrete field.`};case me:case ha:return ah(c)||function(h){var p;return po(h)&&As((p=h.scale)==null?void 0:p.type)}(c)?Fs:{compatible:!1,warning:PN(f)};case vs:return c.type!=="nominal"||"sort"in c?Fs:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}}(s,n)||{};u===!1&&I(l)}if(xv(s)&&Q(s.sort)){const{sort:u}=s;if(P3(u))return{...s,sort:{encoding:u}};const l=u.substring(1);if(u.charAt(0)==="-"&&P3(l))return{...s,sort:{encoding:l,order:"descending"}}}if(bv(s)){const{header:u}=s;if(u){const{orient:l,...c}=u;if(l)return{...s,header:{...c,labelOrient:u.labelOrient||l,titleOrient:u.titleOrient||l}}}}return s}function uh(t,n){return Fa(t)?{maxbins:SE(n)}:t==="binned"?{binned:!0}:t.maxbins||t.step?t:{...t,maxbins:SE(n)}}const Fs={compatible:!0};function Cs(t){const{formatType:n}=oh(t);return n==="time"||!n&&function(e){return e&&(e.type==="temporal"||H(e)&&!!e.timeUnit)}(t)}function lh(t,{timeUnit:n,type:e,wrapTime:r,undefinedIfExprNotRequired:i}){var u;const a=n&&((u=xn(n))==null?void 0:u.unit);let o,s=a||e==="temporal";return yl(t)?o=t.expr:it(t)?o=t.signal:oo(t)?(s=!0,o=so(t)):(Q(t)||$t(t))&&s&&(o=`datetime(${Lt(t)})`,function(l){return tt(a3,l)}(a)&&($t(t)&&t<1e4||Q(t)&&isNaN(Date.parse(t)))&&(o=so({[a]:t}))),o?r&&s?`time(${o})`:o:i?void 0:Lt(t)}function K3(t,n){const{type:e}=t;return n.map(r=>{const i=lh(r,{timeUnit:H(t)&&!uo(t.timeUnit)?t.timeUnit:void 0,type:e,undefinedIfExprNotRequired:!0});return i!==void 0?{signal:i}:r})}function Dl(t,n){return Wt(t.bin)?Ir(n)&&["ordinal","nominal"].includes(t.type):(console.warn("Only call this method for binned field defs."),!1)}const Q3={labelAlign:{part:"labels",vgProp:"align"},labelBaseline:{part:"labels",vgProp:"baseline"},labelColor:{part:"labels",vgProp:"fill"},labelFont:{part:"labels",vgProp:"font"},labelFontSize:{part:"labels",vgProp:"fontSize"},labelFontStyle:{part:"labels",vgProp:"fontStyle"},labelFontWeight:{part:"labels",vgProp:"fontWeight"},labelOpacity:{part:"labels",vgProp:"opacity"},labelOffset:null,labelPadding:null,gridColor:{part:"grid",vgProp:"stroke"},gridDash:{part:"grid",vgProp:"strokeDash"},gridDashOffset:{part:"grid",vgProp:"strokeDashOffset"},gridOpacity:{part:"grid",vgProp:"opacity"},gridWidth:{part:"grid",vgProp:"strokeWidth"},tickColor:{part:"ticks",vgProp:"stroke"},tickDash:{part:"ticks",vgProp:"strokeDash"},tickDashOffset:{part:"ticks",vgProp:"strokeDashOffset"},tickOpacity:{part:"ticks",vgProp:"opacity"},tickSize:null,tickWidth:{part:"ticks",vgProp:"strokeWidth"}};function Fl(t){return t==null?void 0:t.condition}const Z3=["domain","grid","labels","ticks","title"],gR={grid:"grid",gridCap:"grid",gridColor:"grid",gridDash:"grid",gridDashOffset:"grid",gridOpacity:"grid",gridScale:"grid",gridWidth:"grid",orient:"main",bandPosition:"both",aria:"main",description:"main",domain:"main",domainCap:"main",domainColor:"main",domainDash:"main",domainDashOffset:"main",domainOpacity:"main",domainWidth:"main",format:"main",formatType:"main",labelAlign:"main",labelAngle:"main",labelBaseline:"main",labelBound:"main",labelColor:"main",labelFlush:"main",labelFlushOffset:"main",labelFont:"main",labelFontSize:"main",labelFontStyle:"main",labelFontWeight:"main",labelLimit:"main",labelLineHeight:"main",labelOffset:"main",labelOpacity:"main",labelOverlap:"main",labelPadding:"main",labels:"main",labelSeparation:"main",maxExtent:"main",minExtent:"main",offset:"both",position:"main",tickCap:"main",tickColor:"main",tickDash:"main",tickDashOffset:"main",tickMinStep:"both",tickOffset:"both",tickOpacity:"main",tickRound:"both",ticks:"main",tickSize:"main",tickWidth:"both",title:"main",titleAlign:"main",titleAnchor:"main",titleAngle:"main",titleBaseline:"main",titleColor:"main",titleFont:"main",titleFontSize:"main",titleFontStyle:"main",titleFontWeight:"main",titleLimit:"main",titleLineHeight:"main",titleOpacity:"main",titlePadding:"main",titleX:"main",titleY:"main",encode:"both",scale:"both",tickBand:"both",tickCount:"both",tickExtra:"both",translate:"both",values:"both",zindex:"both"},t$={orient:1,aria:1,bandPosition:1,description:1,domain:1,domainCap:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridCap:1,gridColor:1,gridDash:1,gridDashOffset:1,gridOpacity:1,gridWidth:1,labelAlign:1,labelAngle:1,labelBaseline:1,labelBound:1,labelColor:1,labelFlush:1,labelFlushOffset:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelLineHeight:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position:1,tickBand:1,tickCap:1,tickColor:1,tickCount:1,tickDash:1,tickDashOffset:1,tickExtra:1,tickMinStep:1,tickOffset:1,tickOpacity:1,tickRound:1,ticks:1,tickSize:1,tickWidth:1,title:1,titleAlign:1,titleAnchor:1,titleAngle:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,translate:1,values:1,zindex:1},yR={...t$,style:1,labelExpr:1,encoding:1};function n$(t){return tt(yR,t)}const e$=q({axis:1,axisBand:1,axisBottom:1,axisDiscrete:1,axisLeft:1,axisPoint:1,axisQuantitative:1,axisRight:1,axisTemporal:1,axisTop:1,axisX:1,axisXBand:1,axisXDiscrete:1,axisXPoint:1,axisXQuantitative:1,axisXTemporal:1,axisY:1,axisYBand:1,axisYDiscrete:1,axisYPoint:1,axisYQuantitative:1,axisYTemporal:1});function Di(t){return U(t,"mark")}class ch{constructor(n,e){this.name=n,this.run=e}hasMatchingType(n){return!!Di(n)&&function(e){return Vr(e)?e.type:e}(n.mark)===this.name}}function mo(t,n){const e=t&&t[n];return!!e&&(P(e)?ps(e,r=>!!r.field):H(e)||rh(e))}function r$(t,n){const e=t&&t[n];return!!e&&(P(e)?ps(e,r=>!!r.field):H(e)||Yr(e)||kl(e))}function i$(t,n){if(ln(n)){const e=t[n];if((H(e)||Yr(e))&&(p3(e.type)||H(e)&&e.timeUnit))return r$(t,By(n))}return!1}function a$(t){return ps(cN,n=>{if(mo(t,n)){const e=t[n];if(P(e))return ps(e,r=>!!r.aggregate);{const r=vr(e);return r&&!!r.aggregate}}return!1})}function o$(t,n){const e=[],r=[],i=[],a=[],o={};return kv(t,(s,u)=>{if(H(s)){const{field:l,aggregate:c,bin:f,timeUnit:d,...h}=s;if(c||d||f){const p=wv(s),m=p==null?void 0:p.title;let g=Y(s,{forAs:!0});const y={...m?[]:{title:Ds(s,n,{allowDisabling:!0})},...h,field:g};if(c){let v;if(ma(c)?(v="argmax",g=Y({op:"argmax",field:c.argmax},{forAs:!0}),y.field=`${g}.${l}`):Ai(c)?(v="argmin",g=Y({op:"argmin",field:c.argmin},{forAs:!0}),y.field=`${g}.${l}`):c!=="boxplot"&&c!=="errorbar"&&c!=="errorband"&&(v=c),v){const x={op:v,as:g};l&&(x.field=l),a.push(x)}}else if(e.push(g),oe(s)&&Wt(f)){if(r.push({bin:f,field:l,as:g}),e.push(Y(s,{binSuffix:"end"})),Dl(s,u)&&e.push(Y(s,{binSuffix:"range"})),ln(u)){const v={field:`${g}_end`};o[`${u}2`]=v}y.bin="binned",AE(u)||(y.type=lo)}else if(d&&!uo(d)){i.push({timeUnit:d,field:l,as:g});const v=oe(s)&&s.type!==xs&&"time";v&&(u===pl||u===eo?y.formatType=v:function(x){return tt(zy,x)}(u)?y.legend={formatType:v,...y.legend}:ln(u)&&(y.axis={formatType:v,...y.axis}))}o[u]=y}else e.push(l),o[u]=t[u]}else o[u]=t[u]}),{bins:r,timeUnits:i,aggregate:a,groupby:e,encoding:o}}function vR(t,n,e){const r=xN(n,e);if(!r)return!1;if(r==="binned"){const i=t[n===lr?Jt:bn];return!!(H(i)&&H(t[n])&&$n(i.bin))}return!0}function fh(t,n){const e={};for(const r of q(t)){const i=J3(t[r],r,n,{compositeMark:!0});e[r]=i}return e}function kv(t,n,e){if(t)for(const r of q(t)){const i=t[r];if(P(i))for(const a of i)n.call(e,a,r);else n.call(e,i,r)}}function s$(t,n){return q(n).reduce((e,r)=>{switch(r){case Jt:case bn:case Td:case jd:case Pd:case lr:case jr:case ua:case ys:case Ge:case vi:case cr:case yi:case la:case fr:case dr:case hr:case Ve:case pl:case me:case no:case eo:return e;case vs:if(t==="line"||t==="trail")return e;case ml:case Rd:{const i=n[r];if(P(i)||H(i))for(const a of K(i))a.aggregate||e.push(Y(a,{}));return e}case bi:if(t==="trail")return e;case pe:case Lr:case qr:case xi:case ca:case fa:case ha:case da:{const i=vr(n[r]);return i&&!i.aggregate&&e.push(Y(i,{})),e}}},[])}function Dv(t,n,e,r=!0){if("tooltip"in e)return{tooltip:e.tooltip};const i=t.map(({fieldPrefix:o,titlePrefix:s})=>{const u=r?` of ${Fv(n)}`:"";return{field:o+n.field,type:n.type,title:it(s)?{signal:`${s}"${escape(u)}"`}:s+u}}),a=function(o){const s=[];for(const u of q(o))if(mo(o,u)){const l=o[u],c=K(l);for(const f of c)H(f)?s.push(f):rh(f)&&s.push(f.condition)}return s}(e).map(mR);return{tooltip:[...i,...Pr(a,wt)]}}function Fv(t){const{title:n,field:e}=t;return un(n,e)}function Cv(t,n,e,r,i){const{scale:a,axis:o}=e;return({partName:s,mark:u,positionPrefix:l,endPositionPrefix:c,extraEncoding:f={}})=>{const d=Fv(e);return u$(t,s,i,{mark:u,encoding:{[n]:{field:`${l}_${e.field}`,type:e.type,...d!==void 0?{title:d}:{},...a!==void 0?{scale:a}:{},...o!==void 0?{axis:o}:{}},...Q(c)?{[`${n}2`]:{field:`${c}_${e.field}`}}:{},...r,...f}})}}function u$(t,n,e,r){const{clip:i,color:a,opacity:o}=t,s=t.type;return t[n]||t[n]===void 0&&e[n]?[{...r,mark:{...e[n],...i?{clip:i}:{},...a?{color:a}:{},...o?{opacity:o}:{},...Vr(r.mark)?r.mark:{type:r.mark},style:`${s}-${String(n)}`,...Fa(t[n])?{}:t[n]}}]:[]}function l$(t,n,e){const{encoding:r}=t,i=n==="vertical"?"y":"x",a=r[i],o=r[`${i}2`],s=r[`${i}Error`],u=r[`${i}Error2`];return{continuousAxisChannelDef:dh(a,e),continuousAxisChannelDef2:dh(o,e),continuousAxisChannelDefError:dh(s,e),continuousAxisChannelDefError2:dh(u,e),continuousAxis:i}}function dh(t,n){if(t!=null&&t.aggregate){const{aggregate:e,...r}=t;return e!==n&&I(function(i,a){return`Continuous axis should not have customized aggregation function ${i}; ${a} already agregates the axis.`}(e,n)),r}return t}function c$(t,n){const{mark:e,encoding:r}=t,{x:i,y:a}=r;if(Vr(e)&&e.orient)return e.orient;if(ba(i)){if(ba(a)){const o=H(i)&&i.aggregate,s=H(a)&&a.aggregate;if(o||s!==n){if(s||o!==n){if(o===n&&s===n)throw new Error("Both x and y cannot have aggregate");return Cs(a)&&!Cs(i)?"horizontal":"vertical"}return"horizontal"}return"vertical"}return"horizontal"}if(ba(a))return"vertical";throw new Error(`Need a valid continuous axis for ${n}s`)}const hh="boxplot",bR=new ch(hh,d$);function f$(t){return $t(t)?"tukey":t}function d$(t,{config:n}){t={...t,encoding:fh(t.encoding,n)};const{mark:e,encoding:r,params:i,projection:a,...o}=t,s=Vr(e)?e:{type:e};i&&I(HE("boxplot"));const u=s.extent??n.boxplot.extent,l=qt("size",s,n),c=s.invalid,f=f$(u),{bins:d,timeUnits:h,transform:p,continuousAxisChannelDef:m,continuousAxis:g,groupby:y,aggregate:v,encodingWithoutContinuousAxis:x,ticksOrient:b,boxOrient:w,customTooltipWithoutAggregatedField:A}=function(Je,Se,e6){const Xh=c$(Je,hh),{continuousAxisChannelDef:Hb,continuousAxis:Gb}=l$(Je,Xh,hh),Us=Hb.field,ue=ms(Us),Il=f$(Se),r6=[...h$(Us),{op:"median",field:Us,as:`mid_box_${ue}`},{op:"min",field:Us,as:(Il==="min-max"?"lower_whisker_":"min_")+ue},{op:"max",field:Us,as:(Il==="min-max"?"upper_whisker_":"max_")+ue}],i6=Il==="min-max"||Il==="tukey"?[]:[{calculate:`${Ot(`upper_box_${ue}`)} - ${Ot(`lower_box_${ue}`)}`,as:`iqr_${ue}`},{calculate:`min(${Ot(`upper_box_${ue}`)} + ${Ot(`iqr_${ue}`)} * ${Se}, ${Ot(`max_${ue}`)})`,as:`upper_whisker_${ue}`},{calculate:`max(${Ot(`lower_box_${ue}`)} - ${Ot(`iqr_${ue}`)} * ${Se}, ${Ot(`min_${ue}`)})`,as:`lower_whisker_${ue}`}],{[Gb]:aj,...a6}=Je.encoding,{customTooltipWithoutAggregatedField:o6,filteredEncoding:s6}=function(d6){const{tooltip:ko,...Wl}=d6;if(!ko)return{filteredEncoding:Wl};let Is,ni;if(P(ko)){for(const Jh of ko)Jh.aggregate?(Is||(Is=[]),Is.push(Jh)):(ni||(ni=[]),ni.push(Jh));Is&&(Wl.tooltip=Is)}else ko.aggregate?Wl.tooltip=ko:ni=ko;return P(ni)&&ni.length===1&&(ni=ni[0]),{customTooltipWithoutAggregatedField:ni,filteredEncoding:Wl}}(a6),{bins:Vb,timeUnits:Yb,aggregate:Xb,groupby:Jb,encoding:u6}=o$(s6,e6),l6=Xh==="vertical"?"horizontal":"vertical",c6=Xh,f6=[...Vb,...Yb,{aggregate:[...Xb,...r6],groupby:Jb},...i6];return{bins:Vb,timeUnits:Yb,transform:f6,groupby:Jb,aggregate:Xb,continuousAxisChannelDef:Hb,continuousAxis:Gb,encodingWithoutContinuousAxis:u6,ticksOrient:l6,boxOrient:c6,customTooltipWithoutAggregatedField:o6}}(t,u,n),_=ms(m.field),{color:k,size:F,...C}=x,D=Je=>Cv(s,g,m,Je,n.boxplot),E=D(C),$=D(x),M=(Z(n.boxplot.box)?n.boxplot.box.color:n.mark.color)||"#4c78a8",S=D({...C,...F?{size:F}:{},color:{condition:{test:`${Ot(`lower_box_${m.field}`)} >= ${Ot(`upper_box_${m.field}`)}`,...k||{value:M}}}}),B=Dv([{fieldPrefix:f==="min-max"?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:f==="min-max"?"lower_whisker_":"min_",titlePrefix:"Min"}],m,x),z={type:"tick",color:"black",opacity:1,orient:b,invalid:c,aria:!1},N=f==="min-max"?B:Dv([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],m,x),W=[...E({partName:"rule",mark:{type:"rule",invalid:c,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:N}),...E({partName:"rule",mark:{type:"rule",invalid:c,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:N}),...E({partName:"ticks",mark:z,positionPrefix:"lower_whisker",extraEncoding:N}),...E({partName:"ticks",mark:z,positionPrefix:"upper_whisker",extraEncoding:N})],X=[...f!=="tukey"?W:[],...$({partName:"box",mark:{type:"bar",...l?{size:l}:{},orient:w,invalid:c,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:B}),...S({partName:"median",mark:{type:"tick",invalid:c,...Z(n.boxplot.median)&&n.boxplot.median.color?{color:n.boxplot.median.color}:{},...l?{size:l}:{},orient:b,aria:!1},positionPrefix:"mid_box",extraEncoding:B})];if(f==="min-max")return{...o,transform:(o.transform??[]).concat(p),layer:X};const L=Ot(`lower_box_${m.field}`),et=Ot(`upper_box_${m.field}`),ot=`(${et} - ${L})`,nt=`${L} - ${u} * ${ot}`,mt=`${et} + ${u} * ${ot}`,pt=Ot(m.field),J={joinaggregate:h$(m.field),groupby:y},Mt={transform:[{filter:`(${nt} <= ${pt}) && (${pt} <= ${mt})`},{aggregate:[{op:"min",field:m.field,as:`lower_whisker_${_}`},{op:"max",field:m.field,as:`upper_whisker_${_}`},{op:"min",field:`lower_box_${m.field}`,as:`lower_box_${_}`},{op:"max",field:`upper_box_${m.field}`,as:`upper_box_${_}`},...v],groupby:y}],layer:W},{tooltip:Tt,...kt}=C,{scale:Et,axis:tn}=m,nn=Fv(m),It=he(tn,["title"]),be=u$(s,"outliers",n.boxplot,{transform:[{filter:`(${pt} < ${nt}) || (${pt} > ${mt})`}],mark:"point",encoding:{[g]:{field:m.field,type:m.type,...nn!==void 0?{title:nn}:{},...Et!==void 0?{scale:Et}:{},...jt(It)?{}:{axis:It}},...kt,...k?{color:k}:{},...A?{tooltip:A}:{}}})[0];let zn;const ti=[...d,...h,J];return be?zn={transform:ti,layer:[be,Mt]}:(zn=Mt,zn.transform.unshift(...ti)),{...o,layer:[zn,{transform:p,layer:X}]}}function h$(t){const n=ms(t);return[{op:"q1",field:t,as:`lower_box_${n}`},{op:"q3",field:t,as:`upper_box_${n}`}]}const Ev="errorbar",xR=new ch(Ev,p$);function p$(t,{config:n}){t={...t,encoding:fh(t.encoding,n)};const{transform:e,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:a,ticksOrient:o,markDef:s,outerSpec:u,tooltipEncoding:l}=m$(t,Ev,n);delete a.size;const c=Cv(s,i,r,a,n.errorbar),f=s.thickness,d=s.size,h={type:"tick",orient:o,aria:!1,...f!==void 0?{thickness:f}:{},...d!==void 0?{size:d}:{}},p=[...c({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:l}),...c({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:l}),...c({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...f!==void 0?{size:f}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:l})];return{...u,transform:e,...p.length>1?{layer:p}:{...p[0]}}}function wR(t,n){const{encoding:e}=t;if(function(s){return(ht(s.x)||ht(s.y))&&!ht(s.x2)&&!ht(s.y2)&&!ht(s.xError)&&!ht(s.xError2)&&!ht(s.yError)&&!ht(s.yError2)}(e))return{orient:c$(t,n),inputType:"raw"};const r=function(s){return ht(s.x2)||ht(s.y2)}(e),i=function(s){return ht(s.xError)||ht(s.xError2)||ht(s.yError)||ht(s.yError2)}(e),a=e.x,o=e.y;if(r){if(i)throw new Error(`${n} cannot be both type aggregated-upper-lower and aggregated-error`);const s=e.x2,u=e.y2;if(ht(s)&&ht(u))throw new Error(`${n} cannot have both x2 and y2`);if(ht(s)){if(ba(a))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${n}`)}if(ht(u)){if(ba(o))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${n}`)}throw new Error("No ranged axis")}{const s=e.xError,u=e.xError2,l=e.yError,c=e.yError2;if(ht(u)&&!ht(s))throw new Error(`${n} cannot have xError2 without xError`);if(ht(c)&&!ht(l))throw new Error(`${n} cannot have yError2 without yError`);if(ht(s)&&ht(l))throw new Error(`${n} cannot have both xError and yError with both are quantiative`);if(ht(s)){if(ba(a))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}if(ht(l)){if(ba(o))return{orient:"vertical",inputType:"aggregated-error"};throw new Error("All y, yError, and yError2 (if exist) have to be quantitative")}throw new Error("No ranged axis")}}function m$(t,n,e){const{mark:r,encoding:i,params:a,projection:o,...s}=t,u=Vr(r)?r:{type:r};a&&I(HE(n));const{orient:l,inputType:c}=wR(t,n),{continuousAxisChannelDef:f,continuousAxisChannelDef2:d,continuousAxisChannelDefError:h,continuousAxisChannelDefError2:p,continuousAxis:m}=l$(t,l,n),{errorBarSpecificAggregate:g,postAggregateCalculates:y,tooltipSummary:v,tooltipTitleWithFieldName:x}=function(z,N,W,X,L,et,ot,nt){let mt=[],pt=[];const J=N.field;let Mt,Tt=!1;if(et==="raw"){const kt=z.center?z.center:z.extent?z.extent==="iqr"?"median":"mean":nt.errorbar.center,Et=z.extent?z.extent:kt==="mean"?"stderr":"iqr";if(kt==="median"!=(Et==="iqr")&&I(function(tn,nn,It){return`${tn} is not usually used with ${nn} for ${It}.`}(kt,Et,ot)),Et==="stderr"||Et==="stdev")mt=[{op:Et,field:J,as:`extent_${J}`},{op:kt,field:J,as:`center_${J}`}],pt=[{calculate:`${Ot(`center_${J}`)} + ${Ot(`extent_${J}`)}`,as:`upper_${J}`},{calculate:`${Ot(`center_${J}`)} - ${Ot(`extent_${J}`)}`,as:`lower_${J}`}],Mt=[{fieldPrefix:"center_",titlePrefix:dl(kt)},{fieldPrefix:"upper_",titlePrefix:g$(kt,Et,"+")},{fieldPrefix:"lower_",titlePrefix:g$(kt,Et,"-")}],Tt=!0;else{let tn,nn,It;Et==="ci"?(tn="mean",nn="ci0",It="ci1"):(tn="median",nn="q1",It="q3"),mt=[{op:nn,field:J,as:`lower_${J}`},{op:It,field:J,as:`upper_${J}`},{op:tn,field:J,as:`center_${J}`}],Mt=[{fieldPrefix:"upper_",titlePrefix:Ds({field:J,aggregate:It,type:"quantitative"},nt,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:Ds({field:J,aggregate:nn,type:"quantitative"},nt,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:Ds({field:J,aggregate:tn,type:"quantitative"},nt,{allowDisabling:!1})}]}}else{(z.center||z.extent)&&I(function(kt,Et){return`${Et?"extent ":""}${Et&&kt?"and ":""}${kt?"center ":""}${Et&&kt?"are ":"is "}not needed when data are aggregated.`}(z.center,z.extent)),et==="aggregated-upper-lower"?(Mt=[],pt=[{calculate:Ot(W.field),as:`upper_${J}`},{calculate:Ot(J),as:`lower_${J}`}]):et==="aggregated-error"&&(Mt=[{fieldPrefix:"",titlePrefix:J}],pt=[{calculate:`${Ot(J)} + ${Ot(X.field)}`,as:`upper_${J}`}],L?pt.push({calculate:`${Ot(J)} + ${Ot(L.field)}`,as:`lower_${J}`}):pt.push({calculate:`${Ot(J)} - ${Ot(X.field)}`,as:`lower_${J}`}));for(const kt of pt)Mt.push({fieldPrefix:kt.as.substring(0,6),titlePrefix:to(to(kt.calculate,"datum['",""),"']","")})}return{postAggregateCalculates:pt,errorBarSpecificAggregate:mt,tooltipSummary:Mt,tooltipTitleWithFieldName:Tt}}(u,f,d,h,p,c,n,e),{[m]:b,[m==="x"?"x2":"y2"]:w,[m==="x"?"xError":"yError"]:A,[m==="x"?"xError2":"yError2"]:_,...k}=i,{bins:F,timeUnits:C,aggregate:D,groupby:E,encoding:$}=o$(k,e),M=[...D,...g],S=c!=="raw"?[]:E,B=Dv(v,f,$,x);return{transform:[...s.transform??[],...F,...C,...M.length===0?[]:[{aggregate:M,groupby:S}],...y],groupby:S,continuousAxisChannelDef:f,continuousAxis:m,encodingWithoutContinuousAxis:$,ticksOrient:l==="vertical"?"horizontal":"vertical",markDef:u,outerSpec:s,tooltipEncoding:B}}function g$(t,n,e){return`${dl(t)} ${e} ${n}`}const $v="errorband",AR=new ch($v,y$);function y$(t,{config:n}){t={...t,encoding:fh(t.encoding,n)};const{transform:e,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:a,markDef:o,outerSpec:s,tooltipEncoding:u}=m$(t,$v,n),l=o,c=Cv(l,i,r,a,n.errorband),f=t.encoding.x!==void 0&&t.encoding.y!==void 0;let d={type:f?"area":"rect"},h={type:f?"line":"rule"};const p={...l.interpolate?{interpolate:l.interpolate}:{},...l.tension&&l.interpolate?{tension:l.tension}:{}};return f?(d={...d,...p,ariaRoleDescription:"errorband"},h={...h,...p,aria:!1}):l.interpolate?I(t3("interpolate")):l.tension&&I(t3("tension")),{...s,transform:e,layer:[...c({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u}),...c({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:u}),...c({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:u})]}}const v$={};function Sv(t,n,e){const r=new ch(t,n);v$[t]={normalizer:r,parts:e}}Sv(hh,d$,["box","median","outliers","rule","ticks"]),Sv(Ev,p$,["ticks","rule"]),Sv($v,y$,["band","borders"]);const _R=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],b$={titleAlign:"align",titleAnchor:"anchor",titleAngle:"angle",titleBaseline:"baseline",titleColor:"color",titleFont:"font",titleFontSize:"fontSize",titleFontStyle:"fontStyle",titleFontWeight:"fontWeight",titleLimit:"limit",titleLineHeight:"lineHeight",titleOrient:"orient",titlePadding:"offset"},x$={labelAlign:"align",labelAnchor:"anchor",labelAngle:"angle",labelBaseline:"baseline",labelColor:"color",labelFont:"font",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelFontWeight:"fontWeight",labelLimit:"limit",labelLineHeight:"lineHeight",labelOrient:"orient",labelPadding:"offset"},kR=q(b$),DR=q(x$),w$=q({header:1,headerRow:1,headerColumn:1,headerFacet:1}),A$=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],br="_vgsid_",FR={point:{on:"click",fields:[br],toggle:"event.shiftKey",resolve:"global",clear:"dblclick"},interval:{on:"[pointerdown, window:pointerup] > window:pointermove!",encodings:["x","y"],translate:"[pointerdown, window:pointerup] > window:pointermove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function Mv(t){return t==="legend"||!!(t!=null&&t.legend)}function Bv(t){return Mv(t)&&Z(t)}function zv(t){return!!(t!=null&&t.select)}function _$(t){const n=[];for(const e of t||[]){if(zv(e))continue;const{expr:r,bind:i,...a}=e;if(i&&r){const o={...a,bind:i,init:r};n.push(o)}else{const o={...a,...r?{update:r}:{},...i?{bind:i}:{}};n.push(o)}}return n}function Ov(t){return U(t,"concat")}function ph(t){return U(t,"vconcat")}function Nv(t){return U(t,"hconcat")}function k$({step:t,offsetIsDiscrete:n}){return n?t.for??"offset":"position"}function Xr(t){return U(t,"step")}function D$(t){return U(t,"view")||U(t,"width")||U(t,"height")}const CR=q({align:1,bounds:1,center:1,columns:1,spacing:1});function Rv(t,n){return t[n]??t[n==="width"?"continuousWidth":"continuousHeight"]}function Tv(t,n){const e=mh(t,n);return Xr(e)?e.step:F$}function mh(t,n){return un(t[n]??t[n==="width"?"discreteWidth":"discreteHeight"],{step:t.step})}const F$=20,ER={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:F$},mark:{color:"#4c78a8",invalid:"break-paths-show-path-domains",timeUnitBandSize:1},arc:{},area:{},bar:fR,circle:{},geoshape:{},image:{},line:{},point:{},rect:hv,rule:{color:"black"},square:{},text:{color:"black"},tick:dR,trail:{},boxplot:{size:14,extent:1.5,box:{},median:{color:"white"},outliers:{},rule:{},ticks:null},errorbar:{center:"mean",rule:!0,ticks:!1},errorband:{band:{opacity:.3},borders:!1},scale:{pointPadding:.5,barBandPaddingInner:.1,rectBandPaddingInner:0,tickBandPaddingInner:.25,bandWithNestedOffsetPaddingInner:.2,bandWithNestedOffsetPaddingOuter:.2,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:4,minStrokeWidth:1,maxStrokeWidth:4,quantileCount:4,quantizeCount:4,zero:!0,framesPerSecond:2,animationDuration:5},projection:{},legend:{gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:FR,style:{},title:{},facet:{spacing:20},concat:{spacing:20},normalizedNumberFormat:".0%"},Fi=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],C$={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},E$={blue:Fi[0],orange:Fi[1],red:Fi[2],teal:Fi[3],green:Fi[4],yellow:Fi[5],purple:Fi[6],pink:Fi[7],brown:Fi[8],gray0:"#000",gray1:"#111",gray2:"#222",gray3:"#333",gray4:"#444",gray5:"#555",gray6:"#666",gray7:"#777",gray8:"#888",gray9:"#999",gray10:"#aaa",gray11:"#bbb",gray12:"#ccc",gray13:"#ddd",gray14:"#eee",gray15:"#fff"};function $$(t){const n=q(t||{}),e={};for(const r of n){const i=t[r];e[r]=Fl(i)?BE(i):Ee(i)}return e}const $R=[...E3,...e$,...w$,"background","padding","legend","lineBreak","scale","style","title","view"];function S$(t={}){const{color:n,font:e,fontSize:r,selection:i,...a}=t,o=Yl({},ft(ER),e?function(u){return{text:{font:u},style:{"guide-label":{font:u},"guide-title":{font:u},"group-title":{font:u},"group-subtitle":{font:u}}}}(e):{},n?function(u={}){return{signals:[{name:"color",value:Z(u)?{...E$,...u}:E$}],mark:{color:{signal:"color.blue"}},rule:{color:{signal:"color.gray0"}},text:{color:{signal:"color.gray0"}},style:{"guide-label":{fill:{signal:"color.gray0"}},"guide-title":{fill:{signal:"color.gray0"}},"group-title":{fill:{signal:"color.gray0"}},"group-subtitle":{fill:{signal:"color.gray0"}},cell:{stroke:{signal:"color.gray8"}}},axis:{domainColor:{signal:"color.gray13"},gridColor:{signal:"color.gray8"},tickColor:{signal:"color.gray13"}},range:{category:[{signal:"color.blue"},{signal:"color.orange"},{signal:"color.red"},{signal:"color.teal"},{signal:"color.green"},{signal:"color.yellow"},{signal:"color.purple"},{signal:"color.pink"},{signal:"color.brown"},{signal:"color.grey8"}]}}}(n):{},r?function(u){return{signals:[{name:"fontSize",value:Z(u)?{...C$,...u}:C$}],text:{fontSize:{signal:"fontSize.text"}},style:{"guide-label":{fontSize:{signal:"fontSize.guideLabel"}},"guide-title":{fontSize:{signal:"fontSize.guideTitle"}},"group-title":{fontSize:{signal:"fontSize.groupTitle"}},"group-subtitle":{fontSize:{signal:"fontSize.groupSubtitle"}}}}}(r):{},a||{});i&&lp(o,"selection",i,!0);const s=he(o,$R);for(const u of["background","lineBreak","padding"])o[u]&&(s[u]=Ee(o[u]));for(const u of E3)o[u]&&(s[u]=Sn(o[u]));for(const u of e$)o[u]&&(s[u]=$$(o[u]));for(const u of w$)o[u]&&(s[u]=Sn(o[u]));if(o.legend&&(s.legend=Sn(o.legend)),o.scale){const{invalid:u,...l}=o.scale,c=Sn(u,{level:1});s.scale={...Sn(l),...q(c).length>0?{invalid:c}:{}}}return o.style&&(s.style=function(u){const l=q(u),c={};for(const f of l)c[f]=$$(u[f]);return c}(o.style)),o.title&&(s.title=Sn(o.title)),o.view&&(s.view=Sn(o.view)),s}const SR=new Set(["view",...sR]),MR=["color","fontSize","background","padding","facet","concat","numberFormat","numberFormatType","normalizedNumberFormat","normalizedNumberFormatType","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],BR={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],...lR};function zR(t){t=ft(t);for(const n of MR)delete t[n];if(t.axis)for(const n in t.axis)Fl(t.axis[n])&&delete t.axis[n];if(t.legend)for(const n of _R)delete t.legend[n];if(t.mark){for(const n of C3)delete t.mark[n];t.mark.tooltip&&Z(t.mark.tooltip)&&delete t.mark.tooltip}t.params&&(t.signals=(t.signals||[]).concat(_$(t.params)),delete t.params);for(const n of SR){for(const r of C3)delete t[n][r];const e=BR[n];if(e)for(const r of e)delete t[n][r];OR(t,n)}for(const n of q(v$))delete t[n];(function(n){const{titleMarkConfig:e,subtitleMarkConfig:r,subtitle:i}=ME(n.title);jt(e)||(n.style["group-title"]={...n.style["group-title"],...e}),jt(r)||(n.style["group-subtitle"]={...n.style["group-subtitle"],...r}),jt(i)?delete n.title:n.title=i})(t);for(const n in t)Z(t[n])&&jt(t[n])&&delete t[n];return jt(t)?void 0:t}function OR(t,n,e,r){n==="view"&&(e="cell");const i={...t[n],...t.style[e??n]};jt(i)||(t.style[e??n]=i),delete t[n]}function gh(t){return U(t,"layer")}class Pv{map(n,e){return eh(n)?this.mapFacet(n,e):function(r){return U(r,"repeat")}(n)?this.mapRepeat(n,e):Nv(n)?this.mapHConcat(n,e):ph(n)?this.mapVConcat(n,e):Ov(n)?this.mapConcat(n,e):this.mapLayerOrUnit(n,e)}mapLayerOrUnit(n,e){if(gh(n))return this.mapLayer(n,e);if(Di(n))return this.mapUnit(n,e);throw new Error(qy(n))}mapLayer(n,e){return{...n,layer:n.layer.map(r=>this.mapLayerOrUnit(r,e))}}mapHConcat(n,e){return{...n,hconcat:n.hconcat.map(r=>this.map(r,e))}}mapVConcat(n,e){return{...n,vconcat:n.vconcat.map(r=>this.map(r,e))}}mapConcat(n,e){const{concat:r,...i}=n;return{...i,concat:r.map(a=>this.map(a,e))}}mapFacet(n,e){return{...n,spec:this.map(n.spec,e)}}mapRepeat(n,e){return{...n,spec:this.map(n.spec,e)}}}const NR={zero:1,center:1,normalize:1},RR=new Set([k3,Jd,Xd,Zd,Qd,cv,fv,Kd,D3,lv]),TR=new Set([Jd,Xd,k3]);function Es(t){return H(t)&&_s(t)==="quantitative"&&!t.bin}function M$(t,n,{orient:e,type:r}){const i=n==="x"?"y":"radius",a=n==="x"&&["bar","area"].includes(r),o=t[n],s=t[i];if(H(o)&&H(s))if(Es(o)&&Es(s)){if(o.stack)return n;if(s.stack)return i;const u=H(o)&&!!o.aggregate;if(u!==(H(s)&&!!s.aggregate))return u?n:i;if(a){if(e==="vertical")return i;if(e==="horizontal")return n}}else{if(Es(o))return n;if(Es(s))return i}else{if(Es(o))return a&&e==="vertical"?void 0:n;if(Es(s))return a&&e==="horizontal"?void 0:i}}function B$(t,n){var g,y;const e=Vr(t)?t:{type:t},r=e.type;if(!RR.has(r))return null;const i=M$(n,"x",e)||M$(n,"theta",e);if(!i)return null;const a=n[i],o=H(a)?Y(a,{}):void 0,s=function(v){switch(v){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}(i),u=[],l=new Set;if(n[s]){const v=n[s],x=H(v)?Y(v,{}):void 0;x&&x!==o&&(u.push(s),l.add(x))}const c=s==="x"?"xOffset":"yOffset",f=n[c],d=H(f)?Y(f,{}):void 0;d&&d!==o&&(u.push(c),l.add(d));const h=yN.reduce((v,x)=>{if(x!=="tooltip"&&mo(n,x)){const b=n[x];for(const w of K(b)){const A=vr(w);if(A.aggregate)continue;const _=Y(A,{});_&&l.has(_)||v.push({channel:x,fieldDef:A})}}return v},[]);let p;return a.stack!==void 0?p=Fa(a.stack)?a.stack?"zero":null:a.stack:TR.has(r)&&(p="zero"),p&&tt(NR,p)?a$(n)&&h.length===0?null:((g=a==null?void 0:a.scale)!=null&&g.type&&((y=a==null?void 0:a.scale)==null?void 0:y.type)!==m3&&(a!=null&&a.stack)&&I(function(v){return`Stack is applied to a non-linear scale (${v}).`}(a.scale.type)),ht(n[Ur(i)])?(a.stack!==void 0&&I(`Cannot stack "${m=i}" if there is already "${m}2".`),null):(H(a)&&a.aggregate&&!DN.has(a.aggregate)&&I(`Stacking is applied even though the aggregate function is non-summative ("${a.aggregate}").`),{groupbyChannels:u,groupbyFields:l,fieldChannel:i,impute:a.impute!==null&&ya(r),stackBy:h,offset:p})):null;var m}function z$(t,n,e){const r=Sn(t),i=qt("orient",r,e);if(r.orient=function(s,u,l){switch(s){case Qd:case cv:case fv:case D3:case aR:case iR:return}const{x:c,y:f,x2:d,y2:h}=u;switch(s){case Jd:if(H(c)&&($n(c.bin)||H(f)&&f.aggregate&&!c.aggregate))return"vertical";if(H(f)&&($n(f.bin)||H(c)&&c.aggregate&&!f.aggregate))return"horizontal";if(h||d){if(l)return l;if(!d)return(H(c)&&c.type===lo&&!Wt(c.bin)||ih(c))&&H(f)&&$n(f.bin)?"horizontal":"vertical";if(!h)return(H(f)&&f.type===lo&&!Wt(f.bin)||ih(f))&&H(c)&&$n(c.bin)?"vertical":"horizontal"}case Zd:if(d&&(!H(c)||!$n(c.bin))&&h&&(!H(f)||!$n(f.bin)))return;case Xd:if(h)return H(f)&&$n(f.bin)?"horizontal":"vertical";if(d)return H(c)&&$n(c.bin)?"vertical":"horizontal";if(s===Zd){if(c&&!f)return"vertical";if(f&&!c)return"horizontal"}case Kd:case lv:{const p=W3(c),m=W3(f);if(l)return l;if(p&&!m)return s!=="tick"?"horizontal":"vertical";if(!p&&m)return s!=="tick"?"vertical":"horizontal";if(p&&m)return"vertical";{const g=oe(c)&&c.type===xs,y=oe(f)&&f.type===xs;if(g&&!y)return"vertical";if(!g&&y)return"horizontal"}return}}return"vertical"}(r.type,n,i),i!==void 0&&i!==r.orient&&I(`Specified orient "${r.orient}" overridden with "${i}".`),r.type==="bar"&&r.orient){const s=qt("cornerRadiusEnd",r,e);if(s!==void 0){const u=r.orient==="horizontal"&&n.x2||r.orient==="vertical"&&n.y2?["cornerRadius"]:cR[r.orient];for(const l of u)r[l]=s;r.cornerRadiusEnd!==void 0&&delete r.cornerRadiusEnd}}const a=qt("opacity",r,e),o=qt("fillOpacity",r,e);return a===void 0&&o===void 0&&(r.opacity=function(s,u){if(vt([Qd,lv,cv,fv],s)&&!a$(u))return .7}(r.type,n)),qt("cursor",r,e)===void 0&&(r.cursor=function(s,u,l){return u.href||s.href||qt("href",s,l)?"pointer":s.cursor}(r,n,e)),r}function PR(t){const{point:n,line:e,...r}=t;return q(r).length>1?r:r.type}function jR(t){for(const n of["line","area","rule","trail"])t[n]&&(t={...t,[n]:he(t[n],["point","line"])});return t}function jv(t,n={},e){return t.point==="transparent"?{opacity:0}:t.point?Z(t.point)?t.point:{}:t.point!==void 0?null:n.point||e.shape?Z(n.point)?n.point:{}:void 0}function O$(t,n={}){return t.line?t.line===!0?{}:t.line:t.line!==void 0?null:n.line?n.line===!0?{}:n.line:void 0}class LR{constructor(){this.name="path-overlay"}hasMatchingType(n,e){if(Di(n)){const{mark:r,encoding:i}=n,a=Vr(r)?r:{type:r};switch(a.type){case"line":case"rule":case"trail":return!!jv(a,e[a.type],i);case"area":return!!jv(a,e[a.type],i)||!!O$(a,e[a.type])}}return!1}run(n,e,r){const{config:i}=e,{params:a,projection:o,mark:s,name:u,encoding:l,...c}=n,f=fh(l,i),d=Vr(s)?s:{type:s},h=jv(d,i[d.type],f),p=d.type==="area"&&O$(d,i[d.type]),m=[{name:u,...a?{params:a}:{},mark:PR({...d.type==="area"&&d.opacity===void 0&&d.fillOpacity===void 0?{opacity:.7}:{},...d}),encoding:he(f,["shape"])}],g=B$(z$(d,f,i),f);let y=f;if(g){const{fieldChannel:v,offset:x}=g;y={...f,[v]:{...f[v],...x?{stack:x}:{}}}}return y=he(y,["y2","x2"]),p&&m.push({...o?{projection:o}:{},mark:{type:"line",...hs(d,["clip","interpolate","tension","tooltip"]),...p},encoding:y}),h&&m.push({...o?{projection:o}:{},mark:{type:"point",opacity:1,filled:!0,...hs(d,["clip","tooltip"]),...h},encoding:y}),r({...c,layer:m},{...e,config:jR(i)})}}function qR(t,n){return n?Al(t)?P$(t,n):N$(t,n):t}function Lv(t,n){return n?P$(t,n):t}function qv(t,n,e){const r=n[t];return function(i){return!Q(i)&&U(i,"repeat")}(r)?r.repeat in e?{...n,[t]:e[r.repeat]}:void I(function(i){return`Unknown repeated value "${i}".`}(r.repeat)):n}function N$(t,n){if((t=qv("field",t,n))!==void 0){if(t===null)return null;if(xv(t)&&ki(t.sort)){const e=qv("field",t.sort,n);t={...t,...e?{sort:e}:{}}}return t}}function R$(t,n){if(H(t))return N$(t,n);{const e=qv("datum",t,n);return e===t||e.type||(e.type="nominal"),e}}function T$(t,n){if(!ht(t)){if(kl(t)){const e=R$(t.condition,n);if(e)return{...t,condition:e};{const{condition:r,...i}=t;return i}}return t}{const e=R$(t,n);if(e)return e;if(_l(t))return{condition:t.condition}}}function P$(t,n){const e={};for(const r in t)if(U(t,r)){const i=t[r];if(P(i))e[r]=i.map(a=>T$(a,n)).filter(a=>a);else{const a=T$(i,n);a!==void 0&&(e[r]=a)}}return e}class UR{constructor(){this.name="RuleForRangedLine"}hasMatchingType(n){if(Di(n)){const{encoding:e,mark:r}=n;if(r==="line"||Vr(r)&&r.type==="line")for(const i of pN){const a=e[ro(i)];if(e[i]&&(H(a)&&!$n(a.bin)||Yr(a)))return!0}}return!1}run(n,e,r){const{encoding:i,mark:a}=n;var o,s;return I((o=!!i.x2,s=!!i.y2,`Line mark is for continuous lines and thus cannot be used with ${o&&s?"x2 and y2":o?"x2":"y2"}. We will use the rule mark (line segments) instead.`)),r({...n,mark:Z(a)?{...a,type:"rule"}:"rule"},e)}}function j$({parentEncoding:t,encoding:n={},layer:e}){let r={};if(t){const i=new Set([...q(t),...q(n)]);for(const a of i){const o=n[a],s=t[a];if(ht(o)){const u={...s,...o};r[a]=u}else kl(o)?r[a]={...o,condition:{...s,...o.condition}}:o||o===null?r[a]=o:(e||yr(s)||it(s)||ht(s)||P(s))&&(r[a]=s)}}else r=n;return!r||jt(r)?void 0:r}function L$(t){const{parentProjection:n,projection:e}=t;return n&&e&&I(function(r){const{parentProjection:i,projection:a}=r;return`Layer's shared projection ${Lt(i)} is overridden by a child projection ${Lt(a)}.`}({parentProjection:n,projection:e})),e??n}function Uv(t){return U(t,"filter")}function q$(t){return U(t,"lookup")}function IR(t){return U(t,"pivot")}function WR(t){return U(t,"density")}function HR(t){return U(t,"quantile")}function GR(t){return U(t,"regression")}function VR(t){return U(t,"loess")}function YR(t){return U(t,"sample")}function XR(t){return U(t,"window")}function JR(t){return U(t,"joinaggregate")}function KR(t){return U(t,"flatten")}function QR(t){return U(t,"calculate")}function U$(t){return U(t,"bin")}function ZR(t){return U(t,"impute")}function tT(t){return U(t,"timeUnit")}function nT(t){return U(t,"aggregate")}function eT(t){return U(t,"stack")}function rT(t){return U(t,"fold")}function iT(t){return U(t,"extent")&&!U(t,"density")&&!U(t,"regression")}function I$(t,n){const{transform:e,...r}=t;if(e){const i=e.map(a=>{if(Uv(a))return{filter:Iv(a,n)};if(U$(a)&&io(a.bin))return{...a,bin:H$(a.bin)};if(q$(a)){const{selection:o,...s}=a.from;return o?{...a,from:{param:o,...s}}:a}return a});return{...r,transform:i}}return t}function W$(t,n){var r,i;const e=ft(t);if(H(e)&&io(e.bin)&&(e.bin=H$(e.bin)),po(e)&&((i=(r=e.scale)==null?void 0:r.domain)==null?void 0:i.selection)){const{selection:a,...o}=e.scale.domain;e.scale.domain={...o,...a?{param:a}:{}}}if(_l(e))if(P(e.condition))e.condition=e.condition.map(a=>{const{selection:o,param:s,test:u,...l}=a;return s?a:{...l,test:Iv(a,n)}});else{const{selection:a,param:o,test:s,...u}=W$(e.condition,n);e.condition=o?e.condition:{...u,test:Iv(e.condition,n)}}return e}function H$(t){const n=t.extent;if(n!=null&&n.selection){const{selection:e,...r}=n;return{...t,extent:{...r,param:e}}}return t}function Iv(t,n){const e=r=>ds(r,i=>{var a;const o={param:i,empty:n.emptySelections[i]??!0};return(a=n.selectionPredicates)[i]??(a[i]=[]),n.selectionPredicates[i].push(o),o});return t.selection?e(t.selection):ds(t.test||t.filter,r=>r.selection?e(r.selection):r)}class Wv extends Pv{map(n,e){const r=e.selections??[];if(n.params&&!Di(n)){const i=[];for(const a of n.params)zv(a)?r.push(a):i.push(a);n.params=i}return e.selections=r,super.map(n,e)}mapUnit(n,e){const r=e.selections;if(!r||!r.length)return n;const i=(e.path??[]).concat(n.name),a=[];for(const o of r)if(o.views&&o.views.length)for(const s of o.views)(Q(s)&&(s===n.name||i.includes(s))||P(s)&&s.map(u=>i.indexOf(u)).every((u,l,c)=>u!==-1&&(l===0||u>c[l-1])))&&a.push(o);else a.push(o);return a.length&&(n.params=a),n}}for(const t of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const n=Wv.prototype[t];Wv.prototype[t]=function(e,r){return n.call(this,e,aT(e,r))}}function aT(t,n){return t.name?{...n,path:(n.path??[]).concat(t.name)}:n}function G$(t,n){n===void 0&&(n=S$(t.config));const e=function(o,s={}){const u={config:s};return uT.map(oT.map(sT.map(o,u),u),u)}(t,n),{width:r,height:i}=t,a=function(o,s,u){let{width:l,height:c}=s;const f=Di(o)||gh(o),d={};f?l=="container"&&c=="container"?(d.type="fit",d.contains="padding"):l=="container"?(d.type="fit-x",d.contains="padding"):c=="container"&&(d.type="fit-y",d.contains="padding"):(l=="container"&&(I(qE("width")),l=void 0),c=="container"&&(I(qE("height")),c=void 0));const h={type:"pad",...d,...u?V$(u.autosize):{},...V$(o.autosize)};if(h.type!=="fit"||f||(I(MN),h.type="pad"),l=="container"&&h.type!="fit"&&h.type!="fit-x"&&I(UE("width")),c=="container"&&h.type!="fit"&&h.type!="fit-y"&&I(UE("height")),!Ce(h,{type:"pad"}))return h}(e,{width:r,height:i,autosize:t.autosize},n);return{...e,...a?{autosize:a}:{}}}const oT=new class extends Pv{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[bR,xR,AR,new LR,new UR]}map(t,n){if(Di(t)){const e=mo(t.encoding,mi),r=mo(t.encoding,gi),i=mo(t.encoding,Nd);if(e||r||i)return this.mapFacetedUnit(t,n)}return super.map(t,n)}mapUnit(t,n){const{parentEncoding:e,parentProjection:r}=n,i=Lv(t.encoding,n.repeater),a={...t,...t.name?{name:[n.repeaterPrefix,t.name].filter(s=>s).join("_")}:{},...i?{encoding:i}:{}};if(e||r)return this.mapUnitWithParentEncodingOrProjection(a,n);const o=this.mapLayerOrUnit.bind(this);for(const s of this.nonFacetUnitNormalizers)if(s.hasMatchingType(a,n.config))return s.run(a,n,o);return a}mapRepeat(t,n){return function(e){return!P(e.repeat)&&U(e.repeat,"layer")}(t)?this.mapLayerRepeat(t,n):this.mapNonLayerRepeat(t,n)}mapLayerRepeat(t,n){const{repeat:e,spec:r,...i}=t,{row:a,column:o,layer:s}=e,{repeater:u={},repeaterPrefix:l=""}=n;return a||o?this.mapRepeat({...t,repeat:{...a?{row:a}:{},...o?{column:o}:{}},spec:{repeat:{layer:s},spec:r}},n):{...i,layer:s.map(c=>{const f={...u,layer:c},d=`${(r.name?`${r.name}_`:"")+l}child__layer_${Xt(c)}`,h=this.mapLayerOrUnit(r,{...n,repeater:f,repeaterPrefix:d});return h.name=d,h})}}mapNonLayerRepeat(t,n){const{repeat:e,spec:r,data:i,...a}=t;!P(e)&&t.columns&&(t=he(t,["columns"]),I(GE("repeat")));const o=[],{repeater:s={},repeaterPrefix:u=""}=n,l=!P(e)&&e.row||[s?s.row:null],c=!P(e)&&e.column||[s?s.column:null],f=P(e)&&e||[s?s.repeat:null];for(const h of f)for(const p of l)for(const m of c){const g={repeat:h,row:p,column:m,layer:s.layer},y=(r.name?`${r.name}_`:"")+u+"child__"+(P(e)?`${Xt(h)}`:(e.row?`row_${Xt(p)}`:"")+(e.column?`column_${Xt(m)}`:"")),v=this.map(r,{...n,repeater:g,repeaterPrefix:y});v.name=y,o.push(he(v,["data"]))}const d=P(e)?t.columns:e.column?e.column.length:1;return{data:r.data??i,align:"all",...a,columns:d,concat:o}}mapFacet(t,n){const{facet:e}=t;return Al(e)&&t.columns&&(t=he(t,["columns"]),I(GE("facet"))),super.mapFacet(t,n)}mapUnitWithParentEncodingOrProjection(t,n){const{encoding:e,projection:r}=t,{parentEncoding:i,parentProjection:a,config:o}=n,s=L$({parentProjection:a,projection:r}),u=j$({parentEncoding:i,encoding:Lv(e,n.repeater)});return this.mapUnit({...t,...s?{projection:s}:{},...u?{encoding:u}:{}},{config:o})}mapFacetedUnit(t,n){const{row:e,column:r,facet:i,...a}=t.encoding,{mark:o,width:s,projection:u,height:l,view:c,params:f,encoding:d,...h}=t,{facetMapping:p,layout:m}=this.getFacetMappingAndLayout({row:e,column:r,facet:i},n),g=Lv(a,n.repeater);return this.mapFacet({...h,...m,facet:p,spec:{...s?{width:s}:{},...l?{height:l}:{},...c?{view:c}:{},...u?{projection:u}:{},mark:o,encoding:g,...f?{params:f}:{}}},n)}getFacetMappingAndLayout(t,n){const{row:e,column:r,facet:i}=t;if(e||r){i&&I(`Facet encoding dropped as ${(a=[...e?[mi]:[],...r?[gi]:[]]).join(" and ")} ${a.length>1?"are":"is"} also specified.`);const o={},s={};for(const u of[mi,gi]){const l=t[u];if(l){const{align:c,center:f,spacing:d,columns:h,...p}=l;o[u]=p;for(const m of["align","center","spacing"])l[m]!==void 0&&(s[m]??(s[m]={}),s[m][u]=l[m])}}return{facetMapping:o,layout:s}}{const{align:o,center:s,spacing:u,columns:l,...c}=i;return{facetMapping:qR(c,n.repeater),layout:{...o?{align:o}:{},...s?{center:s}:{},...u?{spacing:u}:{},...l?{columns:l}:{}}}}var a}mapLayer(t,{parentEncoding:n,parentProjection:e,...r}){const{encoding:i,projection:a,...o}=t,s={...r,parentEncoding:j$({parentEncoding:n,encoding:i,layer:!0}),parentProjection:L$({parentProjection:e,projection:a})};return super.mapLayer({...o,...t.name?{name:[s.repeaterPrefix,t.name].filter(u=>u).join("_")}:{}},s)}},sT=new class extends Pv{map(t,n){return n.emptySelections??(n.emptySelections={}),n.selectionPredicates??(n.selectionPredicates={}),t=I$(t,n),super.map(t,n)}mapLayerOrUnit(t,n){if((t=I$(t,n)).encoding){const e={};for(const[r,i]of sa(t.encoding))e[r]=W$(i,n);t={...t,encoding:e}}return super.mapLayerOrUnit(t,n)}mapUnit(t,n){const{selection:e,...r}=t;return e?{...r,params:sa(e).map(([i,a])=>{const{init:o,bind:s,empty:u,...l}=a;l.type==="single"?(l.type="point",l.toggle=!1):l.type==="multi"&&(l.type="point"),n.emptySelections[i]=u!=="none";for(const c of En(n.selectionPredicates[i]??{}))c.empty=u!=="none";return{name:i,value:o,select:l,bind:s}})}:t}},uT=new Wv;function V$(t){return Q(t)?{type:t}:t??{}}const lT=["background","padding"];function Y$(t,n){const e={};for(const r of lT)t&&t[r]!==void 0&&(e[r]=Ee(t[r]));return n&&(e.params=t.params),e}class Bi{constructor(n={},e={}){this.explicit=n,this.implicit=e}clone(){return new Bi(ft(this.explicit),ft(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(n){return un(this.explicit[n],this.implicit[n])}getWithExplicit(n){return this.explicit[n]!==void 0?{explicit:!0,value:this.explicit[n]}:this.implicit[n]!==void 0?{explicit:!1,value:this.implicit[n]}:{explicit:!1,value:void 0}}setWithExplicit(n,{value:e,explicit:r}){e!==void 0&&this.set(n,e,r)}set(n,e,r){return delete this[r?"implicit":"explicit"][n],this[r?"explicit":"implicit"][n]=e,this}copyKeyFromSplit(n,{explicit:e,implicit:r}){e[n]!==void 0?this.set(n,e[n],!0):r[n]!==void 0&&this.set(n,r[n],!1)}copyKeyFromObject(n,e){e[n]!==void 0&&this.set(n,e[n],!0)}copyAll(n){for(const e of q(n.combine())){const r=n.getWithExplicit(e);this.setWithExplicit(e,r)}}}function Jr(t){return{explicit:!0,value:t}}function xr(t){return{explicit:!1,value:t}}function X$(t){return(n,e,r,i)=>{const a=t(n.value,e.value);return a>0?n:a<0?e:yh(n,e,r,i)}}function yh(t,n,e,r){return t.explicit&&n.explicit&&I(function(i,a,o,s){return`Conflicting ${a.toString()} property "${i.toString()}" (${Lt(o)} and ${Lt(s)}). Using ${Lt(o)}.`}(e,r,t.value,n.value)),t}function xa(t,n,e,r,i=yh){return t===void 0||t.value===void 0?n:t.explicit&&!n.explicit?t:n.explicit&&!t.explicit?n:Ce(t.value,n.value)?t:i(t,n,e,r)}class cT extends Bi{constructor(n={},e={},r=!1){super(n,e),this.explicit=n,this.implicit=e,this.parseNothing=r}clone(){const n=super.clone();return n.parseNothing=this.parseNothing,n}}function $s(t){return U(t,"url")}function Cl(t){return U(t,"values")}function J$(t){return U(t,"name")&&!$s(t)&&!Cl(t)&&!wa(t)}function wa(t){return t&&(K$(t)||Q$(t)||Hv(t))}function K$(t){return U(t,"sequence")}function Q$(t){return U(t,"sphere")}function Hv(t){return U(t,"graticule")}var Qt;function Z$({invalid:t,isPath:n}){switch($3(t,{isPath:n})){case"filter":return{marks:"exclude-invalid-values",scales:"exclude-invalid-values"};case"break-paths-show-domains":return{marks:n?"include-invalid-values":"exclude-invalid-values",scales:"include-invalid-values"};case"break-paths-filter-domains":return{marks:n?"include-invalid-values":"exclude-invalid-values",scales:"exclude-invalid-values"};case"show":return{marks:"include-invalid-values",scales:"include-invalid-values"}}}(function(t){t[t.Raw=0]="Raw",t[t.Main=1]="Main",t[t.Row=2]="Row",t[t.Column=3]="Column",t[t.Lookup=4]="Lookup",t[t.PreFilterInvalid=5]="PreFilterInvalid",t[t.PostFilterInvalid=6]="PostFilterInvalid"})(Qt||(Qt={}));class Nt{constructor(n,e){this.debugName=e,this._children=[],this._parent=null,n&&(this.parent=n)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(n){this._parent=n,n&&n.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(n,e){this._children.includes(n)?I("Attempt to add the same child twice."):e!==void 0?this._children.splice(e,0,n):this._children.push(n)}removeChild(n){const e=this._children.indexOf(n);return this._children.splice(e,1),e}remove(){let n=this._parent.removeChild(this);for(const e of this._children)e._parent=this._parent,this._parent.addChild(e,n++)}insertAsParentOf(n){const e=n.parent;e.removeChild(this),this.parent=e,n.parent=this}swapWithParent(){const n=this._parent,e=n.parent;for(const i of this._children)i.parent=n;this._children=[],n.removeChild(this);const r=n.parent.removeChild(n);this._parent=e,e.addChild(this,r),n.parent=this}}class ye extends Nt{clone(){const n=new this.constructor;return n.debugName=`clone_${this.debugName}`,n._source=this._source,n._name=`clone_${this._name}`,n.type=this.type,n.refCounts=this.refCounts,n.refCounts[n._name]=0,n}constructor(n,e,r,i){super(n,e),this.type=r,this.refCounts=i,this._source=this._name=e,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${dE()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(n){this._source=n}}function Gv(t){return t.as!==void 0}function t5(t){return`${t}_end`}class Qr extends Nt{clone(){return new Qr(null,ft(this.timeUnits))}constructor(n,e){super(n),this.timeUnits=e}static makeFromEncoding(n,e){const r=e.reduceFieldDef((i,a,o)=>{const{field:s,timeUnit:u}=a;if(u){let l;if(uo(u)){if(Zt(e)){const{mark:c,markDef:f,config:d}=e,h=va({fieldDef:a,markDef:f,config:d});(bl(c)||h)&&(l={timeUnit:xn(u),field:s})}}else l={as:Y(a,{forAs:!0}),field:s,timeUnit:u};if(Zt(e)){const{mark:c,markDef:f,config:d}=e,h=va({fieldDef:a,markDef:f,config:d});bl(c)&&ln(o)&&h!==.5&&(l.rectBandPosition=h)}l&&(i[wt(l)]=l)}return i},{});return jt(r)?null:new Qr(n,r)}static makeFromTransform(n,e){const{timeUnit:r,...i}={...e},a={...i,timeUnit:xn(r)};return new Qr(n,{[wt(a)]:a})}merge(n){this.timeUnits={...this.timeUnits};for(const e in n.timeUnits)this.timeUnits[e]||(this.timeUnits[e]=n.timeUnits[e]);for(const e of n.children)n.removeChild(e),e.parent=this;n.remove()}removeFormulas(n){const e={};for(const[r,i]of sa(this.timeUnits)){const a=Gv(i)?i.as:`${i.field}_end`;n.has(a)||(e[r]=i)}this.timeUnits=e}producedFields(){return new Set(En(this.timeUnits).map(n=>Gv(n)?n.as:t5(n.field)))}dependentFields(){return new Set(En(this.timeUnits).map(n=>n.field))}hash(){return`TimeUnit ${wt(this.timeUnits)}`}assemble(){const n=[];for(const e of En(this.timeUnits)){const{rectBandPosition:r}=e,i=xn(e.timeUnit);if(Gv(e)){const{field:a,as:o}=e,{unit:s,utc:u,...l}=i,c=[o,`${o}_end`];n.push({field:He(a),type:"timeunit",...s?{units:Gd(s)}:{},...u?{timezone:"utc"}:{},...l,as:c}),n.push(...e5(c,r,i))}else if(e){const{field:a}=e,o=a.replaceAll("\\.","."),s=n5({timeUnit:i,field:o}),u=t5(o);n.push({type:"formula",expr:s,as:u}),n.push(...e5([o,u],r,i))}}return n}}const vh="offsetted_rect_start",bh="offsetted_rect_end";function n5({timeUnit:t,field:n,reverse:e}){const{unit:r,utc:i}=t,a=s3(r),{part:o,step:s}=f3(a,t.step);return`${i?"utcOffset":"timeOffset"}('${o}', ${Ot(n)}, ${e?-s:s})`}function e5([t,n],e,r){if(e!==void 0&&e!==.5){const i=Ot(t),a=Ot(n);return[{type:"formula",expr:r5([n5({timeUnit:r,field:t,reverse:!0}),i],e+.5),as:`${t}_${vh}`},{type:"formula",expr:r5([i,a],e+.5),as:`${t}_${bh}`}]}return[]}function r5([t,n],e){return`${1-e} * ${t} + ${e} * ${n}`}const El="_tuple_fields";class fT{constructor(...n){this.items=n,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}const dT={defined:()=>!0,parse:(t,n,e)=>{const r=n.name,i=n.project??(n.project=new fT),a={},o={},s=new Set,u=(p,m)=>{const g=m==="visual"?p.channel:p.field;let y=Xt(`${r}_${g}`);for(let v=1;s.has(y);v++)y=Xt(`${r}_${g}_${v}`);return s.add(y),{[m]:y}},l=n.type,c=t.config.selection[l],f=e.value!==void 0?K(e.value):null;let{fields:d,encodings:h}=Z(e.select)?e.select:{};if(!d&&!h&&f){for(const p of f)if(Z(p))for(const m of q(p))hN(m)?(h||(h=[])).push(m):l==="interval"?(I('Interval selections should be initialized using "x", "y", "longitude", or "latitude" keys.'),h=c.encodings):(d??(d=[])).push(m)}d||h||(h=c.encodings,"fields"in c&&(d=c.fields));for(const p of h??[]){const m=t.fieldDef(p);if(m){let g=m.field;if(m.aggregate){I(BN(p,m.aggregate));continue}if(!g){I(WE(p));continue}if(m.timeUnit&&!uo(m.timeUnit)){g=t.vgField(p);const y={timeUnit:m.timeUnit,as:g,field:m.field};o[wt(y)]=y}if(!a[g]){const y={field:g,channel:p,type:l==="interval"&&Ir(p)&&mr(t.getScaleComponent(p).get("type"))?"R":m.bin?"R-RE":"E",index:i.items.length};y.signals={...u(y,"data"),...u(y,"visual")},i.items.push(a[g]=y),i.hasField[g]=a[g],i.hasSelectionId=i.hasSelectionId||g===br,bE(p)?(y.geoChannel=p,y.channel=vE(p),i.hasChannel[y.channel]=a[g]):i.hasChannel[p]=a[g]}}else I(WE(p))}for(const p of d??[]){if(i.hasField[p])continue;const m={type:"E",field:p,index:i.items.length};m.signals={...u(m,"data")},i.items.push(m),i.hasField[p]=m,i.hasSelectionId=i.hasSelectionId||p===br}f&&(n.init=f.map(p=>i.items.map(m=>Z(p)?p[m.geoChannel||m.channel]!==void 0?p[m.geoChannel||m.channel]:p[m.field]:p))),jt(o)||(i.timeUnit=new Qr(null,o))},signals:(t,n,e)=>{const r=n.name+El;return e.filter(i=>i.name===r).length>0||n.project.hasSelectionId?e:e.concat({name:r,value:n.project.items.map(s5)})}},i5="_curr",xh="anim_value",Ss="anim_clock",Vv="eased_anim_clock",a5="min_extent",o5="max_range_extent",Yv="last_tick_at",Xv="is_playing",hT=1/60*1e3,pT={defined:t=>t.type==="point",topLevelSignals:(t,n,e)=>(Kr(n)&&(e=e.concat([{name:Ss,init:"0",on:[{events:{type:"timer",throttle:hT},update:`${Xv} ? (${Ss} + (now() - ${Yv}) > ${o5} ? 0 : ${Ss} + (now() - ${Yv})) : ${Ss}`}]},{name:Yv,init:"now()",on:[{events:[{signal:Ss},{signal:Xv}],update:"now()"}]},{name:Xv,init:"true"}])),e),signals:(t,n,e)=>{const r=n.name,i=r+El,a=n.project,o="(item().isVoronoi ? datum.datum : datum)",s=En(t.component.selection??{}).reduce((d,h)=>h.type==="interval"?d.concat(h.name+Ms):d,[]).map(d=>`indexof(item().mark.name, '${d}') < 0`).join(" && "),u="datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0"+(s?` && ${s}`:"");let l=`unit: ${vo(t)}, `;if(n.project.hasSelectionId?l+=`${br}: ${o}[${G(br)}]`:Kr(n)?l+=`fields: ${i}, values: [${xh} ? ${xh} : ${a5}]`:l+=`fields: ${i}, values: [${a.items.map(d=>{const h=t.fieldDef(d.channel);return h!=null&&h.bin?`[${o}[${G(t.vgField(d.channel,{}))}], ${o}[${G(t.vgField(d.channel,{binSuffix:"end"}))}]]`:`${o}[${G(d.field)}]`}).join(", ")}]`,Kr(n))return e.concat((c=n.name,f=t.scaleName(la),[{name:Vv,update:Ss},{name:`${c}_domain`,init:`domain('${f}')`},{name:a5,init:`extent(${c}_domain)[0]`},{name:o5,init:`extent(range('${f}'))[1]`},{name:xh,update:`invert('${f}', ${Vv})`}]),[{name:r+$i,on:[{events:[{signal:Vv},{signal:xh}],update:`{${l}}`,force:!0}]}]);{const d=n.events;return e.concat([{name:r+$i,on:d?[{events:d,update:`${u} ? {${l}} : null`,force:!0}]:[]}])}var c,f}};function s5(t){const{signals:n,hasLegend:e,index:r,...i}=t;return i.field=He(i.field),i}function go(t,n=!0,e=Me){if(P(t)){const r=t.map(i=>go(i,n,e));return n?`[${r.join(", ")}]`:r}return oo(t)?e(n?so(t):function(r){const i=Vy(r,!0);return r.utc?+new Date(Date.UTC(...i)):+new Date(...i)}(t)):n?e(Lt(t)):t}function mT(t,n){for(const e of En(t.component.selection??{})){const r=e.name;let i=`${r}${$i}, ${e.resolve==="global"?"true":`{unit: ${vo(t)}}`}`;for(const a of Dh)a.defined(e)&&(a.signals&&(n=a.signals(t,e,n)),a.modifyExpr&&(i=a.modifyExpr(t,e,i)));n.push({name:r+ST,on:[{events:{signal:e.name+$i},update:`modify(${G(e.name+yo)}, ${i})`}]})}return Jv(n)}function gT(t,n){if(t.component.selection&&q(t.component.selection).length){const e=G(t.getName("cell"));n.unshift({name:"facet",value:{},on:[{events:aa("pointermove","scope"),update:`isTuple(facet) ? facet : group(${e}).datum`}]})}return Jv(n)}function u5(t,n){for(const e of En(t.component.selection??{}))for(const r of Dh)r.defined(e)&&r.marks&&(n=r.marks(t,e,n));return n}function Jv(t){return t.map(n=>(n.on&&!n.on.length&&delete n.on,n))}const Ci={defined:t=>t.type==="interval"&&t.resolve==="global"&&t.bind&&t.bind==="scales",parse:(t,n)=>{const e=n.scales=[];for(const r of n.project.items){const i=r.channel;if(!Ir(i))continue;const a=t.getScaleComponent(i),o=a?a.get("type"):void 0;o=="sequential"&&I("Sequntial scales are deprecated. The available quantitative scale type values are linear, log, pow, sqrt, symlog, time and utc"),a&&mr(o)?(a.set("selectionExtent",{param:n.name,field:r.field},!0),e.push(r)):I("Scale bindings are currently only supported for scales with unbinned, continuous domains.")}},topLevelSignals:(t,n,e)=>{const r=n.scales.filter(o=>e.filter(s=>s.name===o.signals.data).length===0);if(!t.parent||Qv(t)||r.length===0)return e;const i=e.find(o=>o.name===n.name);let a=i.update;if(a.includes(B5))i.update=`{${r.map(o=>`${G(He(o.field))}: ${o.signals.data}`).join(", ")}}`;else{for(const o of r){const s=`${G(He(o.field))}: ${o.signals.data}`;a.includes(s)||(a=`${a.substring(0,a.length-1)}, ${s}}`)}i.update=a}return e.concat(r.map(o=>({name:o.signals.data})))},signals:(t,n,e)=>{if(t.parent&&!Qv(t))for(const r of n.scales){const i=e.find(a=>a.name===r.signals.data);i.push="outer",delete i.value,delete i.update}return e}};function Kv(t,n){return`domain(${G(t.scaleName(n))})`}function Qv(t){return t.parent&&Rs(t.parent)&&(!t.parent.parent||Qv(t.parent.parent))}const Ms="_brush",l5="_scale_trigger",$l="geo_interval_init_tick",c5="_init",yT={defined:t=>t.type==="interval",parse:(t,n,e)=>{var r;if(t.hasProjection){const i={...Z(e.select)?e.select:{}};i.fields=[br],i.encodings||(i.encodings=e.value?q(e.value):[dr,fr]),e.select={type:"interval",...i}}if(n.translate&&!Ci.defined(n)){const i=`!event.item || event.item.mark.name !== ${G(n.name+Ms)}`;for(const a of n.events){if(!a.between){I(`${a} is not an ordered event stream for interval selections.`);continue}const o=K((r=a.between[0]).filter??(r.filter=[]));o.includes(i)||o.push(i)}}},signals:(t,n,e)=>{const r=n.name,i=r+$i,a=En(n.project.hasChannel).filter(s=>s.channel===Jt||s.channel===bn),o=n.init?n.init[0]:null;if(e.push(...a.reduce((s,u)=>s.concat(function(l,c,f,d){const h=!l.hasProjection,p=f.channel,m=f.signals.visual,g=G(h?l.scaleName(p):l.projectionName()),y=w=>`scale(${g}, ${w})`,v=l.getSizeSignalRef(p===Jt?"width":"height").signal,x=`${p}(unit)`,b=c.events.reduce((w,A)=>[...w,{events:A.between[0],update:`[${x}, ${x}]`},{events:A,update:`[${m}[0], clamp(${x}, 0, ${v})]`}],[]);if(h){const w=f.signals.data,A=Ci.defined(c),_=l.getScaleComponent(p),k=_?_.get("type"):void 0,F=d?{init:go(d,!0,y)}:{value:[]};return b.push({events:{signal:c.name+l5},update:mr(k)?`[${y(`${w}[0]`)}, ${y(`${w}[1]`)}]`:"[0, 0]"}),A?[{name:w,on:[]}]:[{name:m,...F,on:b},{name:w,...d?{init:go(d)}:{},on:[{events:{signal:m},update:`${m}[0] === ${m}[1] ? null : invert(${g}, ${m})`}]}]}{const w=p===Jt?0:1,A=c.name+c5;return[{name:m,...d?{init:`[${A}[0][${w}], ${A}[1][${w}]]`}:{value:[]},on:b}]}}(t,n,u,o&&o[u.index])),[])),t.hasProjection){const s=G(t.projectionName()),u=t.projectionName()+"_center",{x:l,y:c}=n.project.hasChannel,f=l&&l.signals.visual,d=c&&c.signals.visual,h=l?o&&o[l.index]:`${u}[0]`,p=c?o&&o[c.index]:`${u}[1]`,m=x=>t.getSizeSignalRef(x).signal,g=`[[${f?f+"[0]":"0"}, ${d?d+"[0]":"0"}],[${f?f+"[1]":m("width")}, ${d?d+"[1]":m("height")}]]`;o&&(e.unshift({name:r+c5,init:`[scale(${s}, [${l?h[0]:h}, ${c?p[0]:p}]), scale(${s}, [${l?h[1]:h}, ${c?p[1]:p}])]`}),!l||!c)&&(e.find(x=>x.name===u)||e.unshift({name:u,update:`invert(${s}, [${m("width")}/2, ${m("height")}/2])`}));const y=`vlSelectionTuples(${`intersect(${g}, {markname: ${G(t.getName("marks"))}}, unit.mark)`}, ${`{unit: ${vo(t)}}`})`,v=a.map(x=>x.signals.visual);return e.concat({name:i,on:[{events:[...v.length?[{signal:v.join(" || ")}]:[],...o?[{signal:$l}]:[]],update:y}]})}{if(!Ci.defined(n)){const l=r+l5,c=a.map(f=>{const d=f.channel,{data:h,visual:p}=f.signals,m=G(t.scaleName(d)),g=mr(t.getScaleComponent(d).get("type"))?"+":"";return`(!isArray(${h}) || (${g}invert(${m}, ${p})[0] === ${g}${h}[0] && ${g}invert(${m}, ${p})[1] === ${g}${h}[1]))`});c.length&&e.push({name:l,value:{},on:[{events:a.map(f=>({scale:t.scaleName(f.channel)})),update:c.join(" && ")+` ? ${l} : {}`}]})}const s=a.map(l=>l.signals.data),u=`unit: ${vo(t)}, fields: ${r+El}, values`;return e.concat({name:i,...o?{init:`{${u}: ${go(o)}}`}:{},...s.length?{on:[{events:[{signal:s.join(" || ")}],update:`${s.join(" && ")} ? {${u}: [${s}]} : null`}]}:{}})}},topLevelSignals:(t,n,e)=>(Zt(t)&&t.hasProjection&&n.init&&(e.filter(r=>r.name===$l).length||e.unshift({name:$l,value:null,on:[{events:"timer{1}",update:`${$l} === null ? {} : ${$l}`}]})),e),marks:(t,n,e)=>{const r=n.name,{x:i,y:a}=n.project.hasChannel,o=i==null?void 0:i.signals.visual,s=a==null?void 0:a.signals.visual,u=`data(${G(n.name+yo)})`;if(Ci.defined(n)||!i&&!a)return e;const l={x:i!==void 0?{signal:`${o}[0]`}:{value:0},y:a!==void 0?{signal:`${s}[0]`}:{value:0},x2:i!==void 0?{signal:`${o}[1]`}:{field:{group:"width"}},y2:a!==void 0?{signal:`${s}[1]`}:{field:{group:"height"}}};if(n.resolve==="global")for(const g of q(l))l[g]=[{test:`${u}.length && ${u}[0].unit === ${vo(t)}`,...l[g]},{value:0}];const{fill:c,fillOpacity:f,cursor:d,...h}=n.mark,p=q(h).reduce((g,y)=>(g[y]=[{test:[i!==void 0&&`${o}[0] !== ${o}[1]`,a!==void 0&&`${s}[0] !== ${s}[1]`].filter(v=>v).join(" && "),value:h[y]},{value:null}],g),{}),m=d??(n.translate?"move":null);return[{name:`${r+Ms}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:c},fillOpacity:{value:f}},update:l}},...e,{name:r+Ms,type:"rect",clip:!0,encode:{enter:{...m?{cursor:{value:m}}:{},fill:{value:"transparent"}},update:{...l,...p}}}]}};function Bs({model:t,channelDef:n,vgChannel:e,invalidValueRef:r,mainRefFn:i}){const a=_l(n)&&n.condition;let o=[];a&&(o=K(a).map(u=>{const l=i(u);if(function(c){return U(c,"param")}(u)){const{param:c,empty:f}=u;return{test:X5(t,{param:c,empty:f}),...l}}return{test:Sh(t,u.test),...l}})),r!==void 0&&o.push(r);const s=i(n);return s!==void 0&&o.push(s),o.length>1||o.length===1&&o[0].test?{[e]:o}:o.length===1?{[e]:o[0]}:{}}function Zv(t,n="text"){const e=t.encoding[n];return Bs({model:t,channelDef:e,vgChannel:n,mainRefFn:r=>wh(r,t.config),invalidValueRef:void 0})}function wh(t,n,e="datum"){if(t){if(yr(t))return Gt(t.value);if(ht(t)){const{format:r,formatType:i}=oh(t);return yv({fieldOrDatumDef:t,format:r,formatType:i,expr:e,config:n})}}}function f5(t,n={}){const{encoding:e,markDef:r,config:i,stack:a}=t,o=e.tooltip;if(P(o))return{tooltip:h5({tooltip:o},a,i,n)};{const s=n.reactiveGeom?"datum.datum":"datum";return Bs({model:t,channelDef:o,vgChannel:"tooltip",mainRefFn:u=>{const l=wh(u,i,s);if(l)return l;if(u===null)return;let c=qt("tooltip",r,i);return c===!0&&(c={content:"encoding"}),Q(c)?{value:c}:Z(c)?it(c)?c:c.content==="encoding"?h5(e,a,i,n):{signal:s}:void 0},invalidValueRef:void 0})}}function d5(t,n,e,{reactiveGeom:r}={}){const i={...e,...e.tooltipFormat},a=new Set,o=r?"datum.datum":"datum",s=[];function u(c,f){const d=ro(f),h=oe(c)?c:{...c,type:t[d].type},p=h.title||Av(h,i),m=K(p).join(", ").replaceAll(/"/g,'\\"');let g;if(ln(f)){const y=f==="x"?"x2":"y2",v=vr(t[y]);if($n(h.bin)&&v){const x=Y(h,{expr:o}),b=Y(v,{expr:o}),{format:w,formatType:A}=oh(h);g=wl(x,b,w,A,i),a.add(y)}}if((ln(f)||f===Ge||f===cr)&&n&&n.fieldChannel===f&&n.offset==="normalize"){const{format:y,formatType:v}=oh(h);g=yv({fieldOrDatumDef:h,format:y,formatType:v,expr:o,config:i,normalizeStack:!0}).signal}g??(g=wh(h,i,o).signal),s.push({channel:f,key:m,value:g})}kv(t,(c,f)=>{H(c)?u(c,f):rh(c)&&u(c.condition,f)});const l={};for(const{channel:c,key:f,value:d}of s)a.has(c)||l[f]||(l[f]=d);return l}function h5(t,n,e,{reactiveGeom:r}={}){const i=d5(t,n,e,{reactiveGeom:r}),a=sa(i).map(([o,s])=>`"${o}": ${s}`);return a.length>0?{signal:`{${a.join(", ")}}`}:void 0}function vT(t){const{markDef:n,config:e}=t,r=qt("aria",n,e);return r===!1?{}:{...r?{aria:r}:{},...bT(t),...xT(t)}}function bT(t){const{mark:n,markDef:e,config:r}=t;if(r.aria===!1)return{};const i=qt("ariaRoleDescription",e,r);return i!=null?{ariaRoleDescription:{value:i}}:tt(EN,n)?{}:{ariaRoleDescription:{value:n}}}function xT(t){const{encoding:n,markDef:e,config:r,stack:i}=t,a=n.description;if(a)return Bs({model:t,channelDef:a,vgChannel:"description",mainRefFn:u=>wh(u,t.config),invalidValueRef:void 0});const o=qt("description",e,r);if(o!=null)return{description:Gt(o)};if(r.aria===!1)return{};const s=d5(n,i,r);return jt(s)?void 0:{description:{signal:sa(s).map(([u,l],c)=>`"${c>0?"; ":""}${u}: " + (${l})`).join(" + ")}}}function Mn(t,n,e={}){const{markDef:r,encoding:i,config:a}=n,{vgChannel:o}=e;let{defaultRef:s,defaultValue:u}=e;const l=i[t];s===void 0&&(u??(u=qt(t,r,a,{vgChannel:o,ignoreVgConfig:!_l(l)})),u!==void 0&&(s=Gt(u)));const c={markDef:r,config:a,scaleName:n.scaleName(t),scale:n.getScaleComponent(t)},f=M3({...c,scaleChannel:t,channelDef:l});return Bs({model:n,channelDef:l,vgChannel:o??t,invalidValueRef:f,mainRefFn:d=>gv({...c,channel:t,channelDef:d,stack:null,defaultRef:s})})}function p5(t,n={filled:void 0}){const{markDef:e,encoding:r,config:i}=t,{type:a}=e,o=n.filled??qt("filled",e,i),s=vt(["bar","point","circle","square","geoshape"],a)?"transparent":void 0,u=qt(o===!0?"color":void 0,e,i,{vgChannel:"fill"})??i.mark[o===!0&&"color"]??s,l=qt(o===!1?"color":void 0,e,i,{vgChannel:"stroke"})??i.mark[o===!1&&"color"],c=o?"fill":"stroke",f={...u?{fill:Gt(u)}:{},...l?{stroke:Gt(l)}:{}};return e.color&&(o?e.fill:e.stroke)&&I(JE("property",{fill:"fill"in e,stroke:"stroke"in e})),{...f,...Mn("color",t,{vgChannel:c,defaultValue:o?u:l}),...Mn("fill",t,{defaultValue:r.fill?u:void 0}),...Mn("stroke",t,{defaultValue:r.stroke?l:void 0})}}function wT(t){const{encoding:n,mark:e}=t,r=n.order;return!ya(e)&&yr(r)?Bs({model:t,channelDef:r,vgChannel:"zindex",mainRefFn:i=>Gt(i.value),invalidValueRef:void 0}):{}}function Sl({channel:t,markDef:n,encoding:e={},model:r,bandPosition:i}){const a=`${t}Offset`,o=n[a],s=e[a];if((a==="xOffset"||a==="yOffset")&&s)return{offsetType:"encoding",offset:gv({channel:a,channelDef:s,markDef:n,config:r==null?void 0:r.config,scaleName:r.scaleName(a),scale:r.getScaleComponent(a),stack:null,defaultRef:Gt(o),bandPosition:i})};const u=n[a];return u?{offsetType:"visual",offset:u}:{}}function se(t,n,{defaultPos:e,vgChannel:r}){const{encoding:i,markDef:a,config:o,stack:s}=n,u=i[t],l=i[Ur(t)],c=n.scaleName(t),f=n.getScaleComponent(t),{offset:d,offsetType:h}=Sl({channel:t,markDef:a,encoding:i,model:n,bandPosition:.5}),p=tb({model:n,defaultPos:e,channel:t,scaleName:c,scale:f}),m=!u&&ln(t)&&(i.latitude||i.longitude)?{field:n.getName(t)}:function(g){const{channel:y,channelDef:v,scaleName:x,stack:b,offset:w,markDef:A}=g;if(ht(v)&&b&&y===b.fieldChannel){if(H(v)){let _=v.bandPosition;if(_!==void 0||A.type!=="text"||y!=="radius"&&y!=="theta"||(_=.5),_!==void 0)return th({scaleName:x,fieldOrDatumDef:v,startSuffix:"start",bandPosition:_,offset:w})}return fo(v,x,{suffix:"end"},{offset:w})}return mv(g)}({channel:t,channelDef:u,channel2Def:l,markDef:a,config:o,scaleName:c,scale:f,stack:s,offset:d,defaultRef:p,bandPosition:h==="encoding"?0:void 0});return m?{[r||t]:m}:void 0}function tb({model:t,defaultPos:n,channel:e,scaleName:r,scale:i}){const{markDef:a,config:o}=t;return()=>{const s=ro(e),u=pa(e),l=qt(e,a,o,{vgChannel:u});if(l!==void 0)return xl(e,l);switch(n){case"zeroOrMin":return m5({scaleName:r,scale:i,mode:"zeroOrMin",mainChannel:s,config:o});case"zeroOrMax":return m5({scaleName:r,scale:i,mode:{zeroOrMax:{widthSignal:t.width.signal,heightSignal:t.height.signal}},mainChannel:s,config:o});case"mid":return{...t[ge(e)],mult:.5}}}}function m5({mainChannel:t,config:n,...e}){const r=S3(e),{mode:i}=e;if(r)return r;switch(t){case"radius":{if(i==="zeroOrMin")return{value:0};const{widthSignal:a,heightSignal:o}=i.zeroOrMax;return{signal:`min(${a},${o})/2`}}case"theta":return i==="zeroOrMin"?{value:0}:{signal:"2*PI"};case"x":return i==="zeroOrMin"?{value:0}:{field:{group:"width"}};case"y":return i==="zeroOrMin"?{field:{group:"height"}}:{value:0}}}const AT={left:"x",center:"xc",right:"x2"},_T={top:"y",middle:"yc",bottom:"y2"};function g5(t,n,e,r="middle"){if(t==="radius"||t==="theta")return pa(t);const i=t==="x"?"align":"baseline",a=qt(i,n,e);let o;return it(a)?(I(function(s){return`The ${s} for range marks cannot be an expression`}(i)),o=void 0):o=a,t==="x"?AT[o||(r==="top"?"left":"center")]:_T[o||r]}function Ah(t,n,{defaultPos:e,defaultPos2:r,range:i}){return i?y5(t,n,{defaultPos:e,defaultPos2:r}):se(t,n,{defaultPos:e})}function y5(t,n,{defaultPos:e,defaultPos2:r}){const{markDef:i,config:a}=n,o=Ur(t),s=ge(t),u=function(l,c,f){const{encoding:d,mark:h,markDef:p,stack:m,config:g}=l,y=ro(f),v=ge(f),x=pa(f),b=d[y],w=l.scaleName(y),A=l.getScaleComponent(y),{offset:_}=Sl(f in d||f in p?{channel:f,markDef:p,encoding:d,model:l}:{channel:y,markDef:p,encoding:d,model:l});if(!b&&(f==="x2"||f==="y2")&&(d.latitude||d.longitude)){const F=ge(f),C=l.markDef[F];return C!=null?{[F]:{value:C}}:{[x]:{field:l.getName(f)}}}const k=function({channel:F,channelDef:C,channel2Def:D,markDef:E,config:$,scaleName:M,scale:S,stack:B,offset:z,defaultRef:N}){return ht(C)&&B&&F.charAt(0)===B.fieldChannel.charAt(0)?fo(C,M,{suffix:"start"},{offset:z}):mv({channel:F,channelDef:D,scaleName:M,scale:S,stack:B,markDef:E,config:$,offset:z,defaultRef:N})}({channel:f,channelDef:b,channel2Def:d[f],markDef:p,config:g,scaleName:w,scale:A,stack:m,offset:_,defaultRef:void 0});return k!==void 0?{[x]:k}:_h(f,p)||_h(f,{[f]:Ly(f,p,g.style),[v]:Ly(v,p,g.style)})||_h(f,g[h])||_h(f,g.mark)||{[x]:tb({model:l,defaultPos:c,channel:f,scaleName:w,scale:A})()}}(n,r,o);return{...se(t,n,{defaultPos:e,vgChannel:u[s]?g5(t,i,a):pa(t)}),...u}}function _h(t,n){const e=ge(t),r=pa(t);if(n[r]!==void 0)return{[r]:xl(t,n[r])};if(n[t]!==void 0)return{[r]:xl(t,n[t])};if(n[e]){const i=n[e];if(!co(i))return{[e]:xl(t,i)};I(function(a){return`Position range does not support relative band size for ${a}.`}(e))}}function Ei(t,n){const{config:e,encoding:r,markDef:i}=t,a=i.type,o=Ur(n),s=ge(n),u=r[n],l=r[o],c=t.getScaleComponent(n),f=c?c.get("type"):void 0,d=i.orient,h=r[s]??r.size??qt("size",i,e,{vgChannel:s}),p=_E(n),m=a==="bar"&&(n==="x"?d==="vertical":d==="horizontal")||a==="tick"&&(n==="y"?d==="vertical":d==="horizontal");return!H(u)||!(Wt(u.bin)||$n(u.bin)||u.timeUnit&&!l)||h&&!co(h)||r[p]||wn(f)?(ht(u)&&wn(f)||m)&&!l?function(g,y,v){var mt,pt;const{markDef:x,encoding:b,config:w,stack:A}=v,_=x.orient,k=v.scaleName(y),F=v.getScaleComponent(y),C=ge(y),D=Ur(y),E=_E(y),$=v.scaleName(E),M=v.getScaleComponent(By(y)),S=x.type==="tick"||_==="horizontal"&&y==="y"||_==="vertical"&&y==="x";let B;(b.size||x.size)&&(S?B=Mn("size",v,{vgChannel:C,defaultRef:Gt(x.size)}):I(function(J){return`Cannot apply size to non-oriented mark "${J}".`}(x.type)));const z=!!B,N=q3({channel:y,fieldDef:g,markDef:x,config:w,scaleType:(mt=F||M)==null?void 0:mt.get("type"),useVlSizeChannel:S});B=B||{[C]:kT(C,$||k,M||F,w,N,!!g,x.type)};const W=((pt=F||M)==null?void 0:pt.get("type"))==="band"&&co(N)&&!z?"top":"middle",X=g5(y,x,w,W),L=X==="xc"||X==="yc",{offset:et,offsetType:ot}=Sl({channel:y,markDef:x,encoding:b,model:v,bandPosition:L?.5:0}),nt=mv({channel:y,channelDef:g,markDef:x,config:w,scaleName:k,scale:F,stack:A,offset:et,defaultRef:tb({model:v,defaultPos:"mid",channel:y,scaleName:k,scale:F}),bandPosition:L?ot==="encoding"?0:.5:it(N)?{signal:`(1-${N})/2`}:co(N)?(1-N.band)/2:0});if(C)return{[X]:nt,...B};{const J=pa(D),Mt=B[C],Tt=et?{...Mt,offset:et}:Mt;return{[X]:nt,[J]:P(nt)?[nt[0],{...nt[1],offset:Tt}]:{...nt,offset:Tt}}}}(u,n,t):y5(n,t,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"}):function({fieldDef:g,fieldDef2:y,channel:v,model:x}){var pt;const{config:b,markDef:w,encoding:A}=x,_=x.getScaleComponent(v),k=x.scaleName(v),F=_?_.get("type"):void 0,C=_.get("reverse"),D=q3({channel:v,fieldDef:g,markDef:w,config:b,scaleType:F}),E=(pt=x.component.axes[v])==null?void 0:pt[0],$=(E==null?void 0:E.get("translate"))??.5,M=ln(v)?qt("binSpacing",w,b)??0:0,S=Ur(v),B=pa(v),z=pa(S),N=Wr("minBandSize",w,b),{offset:W}=Sl({channel:v,markDef:w,encoding:A,model:x,bandPosition:0}),{offset:X}=Sl({channel:S,markDef:w,encoding:A,model:x,bandPosition:0}),L=function({scaleName:J,fieldDef:Mt}){const Tt=Y(Mt,{expr:"datum"});return`abs(scale("${J}", ${Y(Mt,{expr:"datum",suffix:"end"})}) - scale("${J}", ${Tt}))`}({fieldDef:g,scaleName:k}),et=v5(v,M,C,$,W,N,L),ot=v5(S,M,C,$,X??W,N,L),nt=it(D)?{signal:`(1-${D.signal})/2`}:co(D)?(1-D.band)/2:.5,mt=va({fieldDef:g,fieldDef2:y,markDef:w,config:b});if(Wt(g.bin)||g.timeUnit){const J=g.timeUnit&&mt!==.5;return{[z]:b5({fieldDef:g,scaleName:k,bandPosition:nt,offset:ot,useRectOffsetField:J}),[B]:b5({fieldDef:g,scaleName:k,bandPosition:it(nt)?{signal:`1-${nt.signal}`}:1-nt,offset:et,useRectOffsetField:J})}}if($n(g.bin)){const J=fo(g,k,{},{offset:ot});if(H(y))return{[z]:J,[B]:fo(y,k,{},{offset:et})};if(io(g.bin)&&g.bin.step)return{[z]:J,[B]:{signal:`scale("${k}", ${Y(g,{expr:"datum"})} + ${g.bin.step})`,offset:et}}}return void I(n3(S))}({fieldDef:u,fieldDef2:l,channel:n,model:t})}function kT(t,n,e,r,i,a,o){if(co(i)){if(!e)return{mult:i.band,field:{group:t}};{const s=e.get("type");if(s==="band"){let u=`bandwidth('${n}')`;i.band!==1&&(u=`${i.band} * ${u}`);const l=Wr("minBandSize",{type:o},r);return{signal:l?`max(${pr(l)}, ${u})`:u}}i.band!==1&&(I(function(u){return`Cannot use the relative band size with ${u} scale.`}(s)),i=void 0)}}else{if(it(i))return i;if(i)return{value:i}}if(e){const s=e.get("range");if(ao(s)&&$t(s.step))return{value:s.step-2}}if(!a){const{bandPaddingInner:s,barBandPaddingInner:u,rectBandPaddingInner:l,tickBandPaddingInner:c}=r.scale,f=un(s,o==="tick"?c:o==="bar"?u:l);if(it(f))return{signal:`(1 - (${f.signal})) * ${t}`};if($t(f))return{signal:`${1-f} * ${t}`}}return{value:Tv(r.view,t)-2}}function v5(t,n,e,r,i,a,o){if(yE(t))return 0;const s=t==="x"||t==="y2",u=s?-n/2:n/2;if(it(e)||it(i)||it(r)||a){const l=pr(e),c=pr(i),f=pr(r),d=pr(a),h=a?`(${o} < ${d} ? ${s?"":"-"}0.5 * (${d} - (${o})) : ${u})`:u;return{signal:(f?`${f} + `:"")+(l?`(${l} ? -1 : 1) * `:"")+(c?`(${c} + ${h})`:h)}}return i=i||0,r+(e?-i-u:+i+u)}function b5({fieldDef:t,scaleName:n,bandPosition:e,offset:r,useRectOffsetField:i}){return th({scaleName:n,fieldOrDatumDef:t,bandPosition:e,offset:r,...i?{startSuffix:vh,endSuffix:bh}:{}})}const DT=new Set(["aria","width","height"]);function Xe(t,n){const{fill:e,stroke:r}=n.color==="include"?p5(t):{};return{...FT(t.markDef,n),...x5("fill",e),...x5("stroke",r),...Mn("opacity",t),...Mn("fillOpacity",t),...Mn("strokeOpacity",t),...Mn("strokeWidth",t),...Mn("strokeDash",t),...wT(t),...f5(t),...Zv(t,"href"),...vT(t)}}function x5(t,n){return n?{[t]:n}:{}}function FT(t,n){return CN.reduce((e,r)=>(!DT.has(r)&&U(t,r)&&n[r]!=="ignore"&&(e[r]=Gt(t[r])),e),{})}function nb(t){const{config:n,markDef:e}=t,r=new Set;if(t.forEachFieldDef((i,a)=>{var c;let o;if(!Ir(a)||!(o=t.getScaleType(a)))return;const s=Ud(i.aggregate);if((l=pv({scaleChannel:a,markDef:e,config:n,scaleType:o,isCountAggregate:s}))==="break-paths-filter-domains"||l==="break-paths-show-domains"){const f=t.vgField(a,{expr:"datum",binSuffix:(c=t.stack)!=null&&c.impute?"mid":void 0});f&&r.add(f)}var l}),r.size>0)return{defined:{signal:[...r].map(a=>Vd(a,!0)).join(" && ")}}}function w5(t,n){if(n!==void 0)return{[t]:Gt(n)}}const eb="voronoi",A5={defined:t=>t.type==="point"&&t.nearest,parse:(t,n)=>{if(n.events)for(const e of n.events)e.markname=t.getName(eb)},marks:(t,n,e)=>{const{x:r,y:i}=n.project.hasChannel,a=t.mark;if(ya(a))return I(`The "nearest" transform is not supported for ${a} marks.`),e;const o={name:t.getName(eb),type:"path",interactive:!0,from:{data:t.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...f5(t,{reactiveGeom:!0})}},transform:[{type:"voronoi",x:{expr:r||!i?"datum.datum.x || 0":"0"},y:{expr:i||!r?"datum.datum.y || 0":"0"},size:[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]}]};let s=0,u=!1;return e.forEach((l,c)=>{const f=l.name??"";f===t.component.mark[0].name?s=c:f.includes(eb)&&(u=!0)}),u||e.splice(s+1,0,o),e}},_5={defined:t=>t.type==="point"&&t.resolve==="global"&&t.bind&&t.bind!=="scales"&&!Mv(t.bind),parse:(t,n,e)=>z5(n,e),topLevelSignals:(t,n,e)=>{const r=n.name,i=n.project,a=n.bind,o=n.init&&n.init[0],s=A5.defined(n)?"(item().isVoronoi ? datum.datum : datum)":"datum";return i.items.forEach((u,l)=>{const c=Xt(`${r}_${u.field}`);e.filter(f=>f.name===c).length||e.unshift({name:c,...o?{init:go(o[l])}:{value:null},on:n.events?[{events:n.events,update:`datum && item().mark.marktype !== 'group' ? ${s}[${G(u.field)}] : null`}]:[],bind:a[u.field]??a[u.channel]??a})}),e},signals:(t,n,e)=>{const r=n.name,i=n.project,a=e.find(l=>l.name===r+$i),o=r+El,s=i.items.map(l=>Xt(`${r}_${l.field}`)),u=s.map(l=>`${l} !== null`).join(" && ");return s.length&&(a.update=`${u} ? {fields: ${o}, values: [${s.join(", ")}]} : null`),delete a.value,delete a.on,e}},kh="_toggle",k5={defined:t=>t.type==="point"&&!Kr(t)&&!!t.toggle,signals:(t,n,e)=>e.concat({name:n.name+kh,value:!1,on:[{events:n.events,update:n.toggle}]}),modifyExpr:(t,n)=>{const e=n.name+$i,r=n.name+kh;return`${r} ? null : ${e}, `+(n.resolve==="global"?`${r} ? null : true, `:`${r} ? null : {unit: ${vo(t)}}, `)+`${r} ? ${e} : null`}},CT={defined:t=>t.clear!==void 0&&t.clear!==!1&&!Kr(t),parse:(t,n)=>{n.clear&&(n.clear=Q(n.clear)?aa(n.clear,"view"):n.clear)},topLevelSignals:(t,n,e)=>{if(_5.defined(n))for(const r of n.project.items){const i=e.findIndex(a=>a.name===Xt(`${n.name}_${r.field}`));i!==-1&&e[i].on.push({events:n.clear,update:"null"})}return e},signals:(t,n,e)=>{function r(i,a){i!==-1&&e[i].on&&e[i].on.push({events:n.clear,update:a})}if(n.type==="interval")for(const i of n.project.items){const a=e.findIndex(o=>o.name===i.signals.visual);r(a,"[0, 0]"),a===-1&&r(e.findIndex(o=>o.name===i.signals.data),"null")}else{let i=e.findIndex(a=>a.name===n.name+$i);r(i,"null"),k5.defined(n)&&(i=e.findIndex(a=>a.name===n.name+kh),r(i,"false"))}return e}},D5={defined:t=>{const n=t.resolve==="global"&&t.bind&&Mv(t.bind),e=t.project.items.length===1&&t.project.items[0].field!==br;return n&&!e&&I("Legend bindings are only supported for selections over an individual field or encoding channel."),n&&e},parse:(t,n,e)=>{const r=ft(e);if(r.select=Q(r.select)?{type:r.select,toggle:n.toggle}:{...r.select,toggle:n.toggle},z5(n,r),Z(e.select)&&(e.select.on||e.select.clear)){const o='event.item && indexof(event.item.mark.role, "legend") < 0';for(const s of n.events)s.filter=K(s.filter??[]),s.filter.includes(o)||s.filter.push(o)}const i=Bv(n.bind)?n.bind.legend:"click",a=Q(i)?aa(i,"view"):K(i);n.bind={legend:{merge:a}}},topLevelSignals:(t,n,e)=>{const r=n.name,i=Bv(n.bind)&&n.bind.legend,a=o=>s=>{const u=ft(s);return u.markname=o,u};for(const o of n.project.items){if(!o.hasLegend)continue;const s=`${Xt(o.field)}_legend`,u=`${r}_${s}`;if(e.filter(l=>l.name===u).length===0){const l=i.merge.map(a(`${s}_symbols`)).concat(i.merge.map(a(`${s}_labels`))).concat(i.merge.map(a(`${s}_entries`)));e.unshift({name:u,...n.init?{}:{value:null},on:[{events:l,update:"isDefined(datum.value) ? datum.value : item().items[0].items[0].datum.value",force:!0},{events:i.merge,update:`!event.item || !datum ? null : ${u}`,force:!0}]})}}return e},signals:(t,n,e)=>{const r=n.name,i=n.project,a=e.find(f=>f.name===r+$i),o=r+El,s=i.items.filter(f=>f.hasLegend).map(f=>Xt(`${r}_${Xt(f.field)}_legend`)),u=`${s.map(f=>`${f} !== null`).join(" && ")} ? {fields: ${o}, values: [${s.join(", ")}]} : null`;n.events&&s.length>0?a.on.push({events:s.map(f=>({signal:f})),update:u}):s.length>0&&(a.update=u,delete a.value,delete a.on);const l=e.find(f=>f.name===r+kh),c=Bv(n.bind)&&n.bind.legend;return l&&(n.events?l.on.push({...l.on[0],events:c}):l.on[0].events=c),e}},F5="_translate_anchor",C5="_translate_delta",ET={defined:t=>t.type==="interval"&&t.translate,signals:(t,n,e)=>{const r=n.name,i=Ci.defined(n),a=r+F5,{x:o,y:s}=n.project.hasChannel;let u=aa(n.translate,"scope");return i||(u=u.map(l=>(l.between[0].markname=r+Ms,l))),e.push({name:a,value:{},on:[{events:u.map(l=>l.between[0]),update:"{x: x(unit), y: y(unit)"+(o!==void 0?`, extent_x: ${i?Kv(t,Jt):`slice(${o.signals.visual})`}`:"")+(s!==void 0?`, extent_y: ${i?Kv(t,bn):`slice(${s.signals.visual})`}`:"")+"}"}]},{name:r+C5,value:{},on:[{events:u,update:`{x: ${a}.x - x(unit), y: ${a}.y - y(unit)}`}]}),o!==void 0&&E5(t,n,o,"width",e),s!==void 0&&E5(t,n,s,"height",e),e}};function E5(t,n,e,r,i){const a=n.name,o=a+F5,s=a+C5,u=e.channel,l=Ci.defined(n),c=i.find(y=>y.name===e.signals[l?"data":"visual"]),f=t.getSizeSignalRef(r).signal,d=t.getScaleComponent(u),h=d&&d.get("type"),p=d&&d.get("reverse"),m=`${o}.extent_${u}`,g=`${l&&d?h==="log"?"panLog":h==="symlog"?"panSymlog":h==="pow"?"panPow":"panLinear":"panLinear"}(${m}, ${`${l?u===Jt?p?"":"-":p?"-":"":""}${s}.${u} / ${l?`${f}`:`span(${m})`}`}${l?h==="pow"?`, ${d.get("exponent")??1}`:h==="symlog"?`, ${d.get("constant")??1}`:"":""})`;c.on.push({events:{signal:s},update:l?g:`clampRange(${g}, 0, ${f})`})}const $5="_zoom_anchor",S5="_zoom_delta",$T={defined:t=>t.type==="interval"&&t.zoom,signals:(t,n,e)=>{const r=n.name,i=Ci.defined(n),a=r+S5,{x:o,y:s}=n.project.hasChannel,u=G(t.scaleName(Jt)),l=G(t.scaleName(bn));let c=aa(n.zoom,"scope");return i||(c=c.map(f=>(f.markname=r+Ms,f))),e.push({name:r+$5,on:[{events:c,update:i?"{"+[u?`x: invert(${u}, x(unit))`:"",l?`y: invert(${l}, y(unit))`:""].filter(f=>f).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:a,on:[{events:c,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),o!==void 0&&M5(t,n,o,"width",e),s!==void 0&&M5(t,n,s,"height",e),e}};function M5(t,n,e,r,i){const a=n.name,o=e.channel,s=Ci.defined(n),u=i.find(m=>m.name===e.signals[s?"data":"visual"]),l=t.getSizeSignalRef(r).signal,c=t.getScaleComponent(o),f=c&&c.get("type"),d=s?Kv(t,o):u.name,h=a+S5,p=`${s&&c?f==="log"?"zoomLog":f==="symlog"?"zoomSymlog":f==="pow"?"zoomPow":"zoomLinear":"zoomLinear"}(${d}, ${`${a}${$5}.${o}`}, ${h}${s?f==="pow"?`, ${c.get("exponent")??1}`:f==="symlog"?`, ${c.get("constant")??1}`:"":""})`;u.on.push({events:{signal:h},update:s?p:`clampRange(${p}, 0, ${l})`})}const yo="_store",$i="_tuple",ST="_modify",B5="vlSelectionResolve",Dh=[pT,yT,dT,k5,_5,Ci,D5,CT,ET,$T,A5];function vo(t,{escape:n}={escape:!0}){let e=n?G(t.name):t.name;const r=function(i){let a=i.parent;for(;a&&!$e(a);)a=a.parent;return a}(t);if(r){const{facet:i}=r;for(const a of Ye)i[a]&&(e+=` + '__facet_${a}_' + (facet[${G(r.vgField(a))}])`)}return e}function rb(t){return En(t.component.selection??{}).reduce((n,e)=>n||e.project.hasSelectionId,!1)}function z5(t,n){!Q(n.select)&&n.select.on||delete t.events,!Q(n.select)&&n.select.clear||delete t.clear,!Q(n.select)&&n.select.toggle||delete t.toggle}function Kr(t){var n;return(n=t.events)==null?void 0:n.find(e=>"type"in e&&e.type==="timer")}const MT="Property",BT="ArrayExpression",zT="BinaryExpression",OT="CallExpression",NT="ConditionalExpression",RT="LogicalExpression",TT="MemberExpression",PT="ObjectExpression",jT="UnaryExpression";function wr(t){this.type=t}var Si,at,T,Ln,Rt;wr.prototype.visit=function(t){let n,e,r;if(t(this))return 1;for(n=function(i){switch(i.type){case BT:return i.elements;case zT:case RT:return[i.left,i.right];case OT:return[i.callee].concat(i.arguments);case NT:return[i.test,i.consequent,i.alternate];case TT:return[i.object,i.property];case PT:return i.properties;case MT:return[i.key,i.value];case jT:return[i.argument];default:return[]}}(this),e=0,r=n.length;e<r;++e)if(n[e].visit(t))return 1},(Si={})[1]="Boolean",Si[2]="<end>",Si[3]="Identifier",Si[4]="Keyword",Si[5]="Null",Si[6]="Numeric",Si[7]="Punctuator",Si[8]="String",Si[9]="RegularExpression";var O5="Identifier",An="Unexpected token %0",ib="Invalid regular expression",ab="Invalid regular expression: missing /",N5="Octal literals are not allowed in strict mode.",Bn="ILLEGAL",Ml="Disabled.",LT=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]"),qT=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 Fh(t,n){if(!t)throw new Error("ASSERT: "+n)}function Mi(t){return t>=48&&t<=57}function ob(t){return"0123456789abcdefABCDEF".includes(t)}function Bl(t){return"01234567".includes(t)}function UT(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].includes(t)}function zl(t){return t===10||t===13||t===8232||t===8233}function Ol(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&<.test(String.fromCharCode(t))}function Ch(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&qT.test(String.fromCharCode(t))}const IT={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 R5(){for(;T<Ln;){const t=at.charCodeAt(T);if(!UT(t)&&!zl(t))break;++T}}function sb(t){var n,e,r,i=0;for(e=t==="u"?4:2,n=0;n<e;++n)T<Ln&&ob(at[T])?(r=at[T++],i=16*i+"0123456789abcdef".indexOf(r.toLowerCase())):Ct({},An,Bn);return String.fromCharCode(i)}function WT(){var t,n,e,r;for(n=0,(t=at[T])==="}"&&Ct({},An,Bn);T<Ln&&ob(t=at[T++]);)n=16*n+"0123456789abcdef".indexOf(t.toLowerCase());return(n>1114111||t!=="}")&&Ct({},An,Bn),n<=65535?String.fromCharCode(n):(e=55296+(n-65536>>10),r=56320+(n-65536&1023),String.fromCharCode(e,r))}function T5(){var t,n;for(t=at.charCodeAt(T++),n=String.fromCharCode(t),t===92&&(at.charCodeAt(T)!==117&&Ct({},An,Bn),++T,(t=sb("u"))&&t!=="\\"&&Ol(t.charCodeAt(0))||Ct({},An,Bn),n=t);T<Ln&&Ch(t=at.charCodeAt(T));)++T,n+=String.fromCharCode(t),t===92&&(n=n.substr(0,n.length-1),at.charCodeAt(T)!==117&&Ct({},An,Bn),++T,(t=sb("u"))&&t!=="\\"&&Ch(t.charCodeAt(0))||Ct({},An,Bn),n+=t);return n}function HT(){var t,n;return t=T,n=at.charCodeAt(T)===92?T5():function(){var e,r;for(e=T++;T<Ln;){if((r=at.charCodeAt(T))===92)return T=e,T5();if(!Ch(r))break;++T}return at.slice(e,T)}(),{type:n.length===1?3:IT.hasOwnProperty(n)?4:n==="null"?5:n==="true"||n==="false"?1:3,value:n,start:t,end:T}}function ub(){var t,n,e,r,i=T,a=at.charCodeAt(T),o=at[T];switch(a){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++T,{type:7,value:String.fromCharCode(a),start:i,end:T};default:if((t=at.charCodeAt(T+1))===61)switch(a){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return T+=2,{type:7,value:String.fromCharCode(a)+String.fromCharCode(t),start:i,end:T};case 33:case 61:return T+=2,at.charCodeAt(T)===61&&++T,{type:7,value:at.slice(i,T),start:i,end:T}}}return(r=at.substr(T,4))===">>>="?{type:7,value:r,start:i,end:T+=4}:(e=r.substr(0,3))===">>>"||e==="<<="||e===">>="?{type:7,value:e,start:i,end:T+=3}:o===(n=e.substr(0,2))[1]&&"+-<>&|".includes(o)||n==="=>"?{type:7,value:n,start:i,end:T+=2}:(n==="//"&&Ct({},An,Bn),"<>=!+-*%&|^/".includes(o)?{type:7,value:o,start:i,end:++T}:void Ct({},An,Bn))}function P5(){var t,n,e;if(Fh(Mi((e=at[T]).charCodeAt(0))||e===".","Numeric literal must start with a decimal digit or a decimal point"),n=T,t="",e!=="."){if(t=at[T++],e=at[T],t==="0"){if(e==="x"||e==="X")return++T,function(r){let i="";for(;T<Ln&&ob(at[T]);)i+=at[T++];return i.length===0&&Ct({},An,Bn),Ol(at.charCodeAt(T))&&Ct({},An,Bn),{type:6,value:parseInt("0x"+i,16),start:r,end:T}}(n);if(Bl(e))return function(r){let i="0"+at[T++];for(;T<Ln&&Bl(at[T]);)i+=at[T++];return(Ol(at.charCodeAt(T))||Mi(at.charCodeAt(T)))&&Ct({},An,Bn),{type:6,value:parseInt(i,8),octal:!0,start:r,end:T}}(n);e&&Mi(e.charCodeAt(0))&&Ct({},An,Bn)}for(;Mi(at.charCodeAt(T));)t+=at[T++];e=at[T]}if(e==="."){for(t+=at[T++];Mi(at.charCodeAt(T));)t+=at[T++];e=at[T]}if(e==="e"||e==="E")if(t+=at[T++],(e=at[T])!=="+"&&e!=="-"||(t+=at[T++]),Mi(at.charCodeAt(T)))for(;Mi(at.charCodeAt(T));)t+=at[T++];else Ct({},An,Bn);return Ol(at.charCodeAt(T))&&Ct({},An,Bn),{type:6,value:parseFloat(t),start:n,end:T}}function GT(){var t,n,e,r;return Rt=null,R5(),t=T,n=function(){var i,a,o,s;for(Fh((i=at[T])==="/","Regular expression literal must start with a slash"),a=at[T++],o=!1,s=!1;T<Ln;)if(a+=i=at[T++],i==="\\")zl((i=at[T++]).charCodeAt(0))&&Ct({},ab),a+=i;else if(zl(i.charCodeAt(0)))Ct({},ab);else if(o)i==="]"&&(o=!1);else{if(i==="/"){s=!0;break}i==="["&&(o=!0)}return s||Ct({},ab),{value:a.substr(1,a.length-2),literal:a}}(),e=function(){var i,a,o;for(a="",o="";T<Ln&&Ch((i=at[T]).charCodeAt(0));)++T,i==="\\"&&T<Ln?Ct({},An,Bn):(o+=i,a+=i);return o.search(/[^gimuy]/g)>=0&&Ct({},ib,o),{value:o,literal:a}}(),r=function(i,a){let o=i;a.includes("u")&&(o=o.replace(/\\u\{([0-9a-fA-F]+)\}/g,(s,u)=>{if(parseInt(u,16)<=1114111)return"x";Ct({},ib)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(o)}catch{Ct({},ib)}try{return new RegExp(i,a)}catch{return null}}(n.value,e.value),{literal:n.literal+e.literal,value:r,regex:{pattern:n.value,flags:e.value},start:t,end:T}}function j5(){if(R5(),T>=Ln)return{type:2,start:T,end:T};const t=at.charCodeAt(T);return Ol(t)?HT():t===40||t===41||t===59?ub():t===39||t===34?function(){var n,e,r,i,a="",o=!1;for(Fh((n=at[T])==="'"||n==='"',"String literal must starts with a quote"),e=T,++T;T<Ln;){if((r=at[T++])===n){n="";break}if(r==="\\")if((r=at[T++])&&zl(r.charCodeAt(0)))r==="\r"&&at[T]===`
|
9
|
-
`&&++T;else switch(r){case"u":case"x":at[T]==="{"?(++T,a+=WT()):a+=sb(r);break;case"n":a+=`
|
10
|
-
`;break;case"r":a+="\r";break;case"t":a+=" ";break;case"b":a+="\b";break;case"f":a+="\f";break;case"v":a+="\v";break;default:Bl(r)?((i="01234567".indexOf(r))!==0&&(o=!0),T<Ln&&Bl(at[T])&&(o=!0,i=8*i+"01234567".indexOf(at[T++]),"0123".includes(r)&&T<Ln&&Bl(at[T])&&(i=8*i+"01234567".indexOf(at[T++]))),a+=String.fromCharCode(i)):a+=r}else{if(zl(r.charCodeAt(0)))break;a+=r}}return n!==""&&Ct({},An,Bn),{type:8,value:a,octal:o,start:e,end:T}}():t===46?Mi(at.charCodeAt(T+1))?P5():ub():Mi(t)?P5():ub()}function ve(){const t=Rt;return T=t.end,Rt=j5(),T=t.end,t}function L5(){const t=T;Rt=j5(),T=t}function q5(t,n,e){const r=new wr(t==="||"||t==="&&"?"LogicalExpression":"BinaryExpression");return r.operator=t,r.left=n,r.right=e,r}function VT(t,n){const e=new wr("CallExpression");return e.callee=t,e.arguments=n,e}function lb(t){const n=new wr(O5);return n.name=t,n}function Nl(t){const n=new wr("Literal");return n.value=t.value,n.raw=at.slice(t.start,t.end),t.regex&&(n.raw==="//"&&(n.raw="/(?:)/"),n.regex=t.regex),n}function U5(t,n,e){const r=new wr("MemberExpression");return r.computed=t==="[",r.object=n,r.property=e,r.computed||(e.member=!0),r}function I5(t,n,e){const r=new wr("Property");return r.key=n,r.value=e,r.kind=t,r}function Ct(t,n){var e,r=Array.prototype.slice.call(arguments,2),i=n.replace(/%(\d)/g,(a,o)=>(Fh(o<r.length,"Message reference must be in range"),r[o]));throw(e=new Error(i)).index=T,e.description=i,e}function Eh(t){t.type===2&&Ct(t,"Unexpected end of input"),t.type===6&&Ct(t,"Unexpected number"),t.type===8&&Ct(t,"Unexpected string"),t.type===3&&Ct(t,"Unexpected identifier"),t.type===4&&Ct(t,"Unexpected reserved word"),Ct(t,An,t.value)}function qn(t){const n=ve();n.type===7&&n.value===t||Eh(n)}function Vt(t){return Rt.type===7&&Rt.value===t}function cb(t){return Rt.type===4&&Rt.value===t}function YT(){const t=[];for(T=Rt.start,qn("[");!Vt("]");)Vt(",")?(ve(),t.push(null)):(t.push(bo()),Vt("]")||qn(","));return ve(),function(n){const e=new wr("ArrayExpression");return e.elements=n,e}(t)}function W5(){T=Rt.start;const t=ve();return t.type===8||t.type===6?(t.octal&&Ct(t,N5),Nl(t)):lb(t.value)}function XT(){var t,n,e;return T=Rt.start,(t=Rt).type===3?(e=W5(),qn(":"),I5("init",e,bo())):t.type!==2&&t.type!==7?(n=W5(),qn(":"),I5("init",n,bo())):void Eh(t)}function JT(){var t,n,e=[],r={},i=String;for(T=Rt.start,qn("{");!Vt("}");)n="$"+((t=XT()).key.type===O5?t.key.name:i(t.key.value)),Object.prototype.hasOwnProperty.call(r,n)?Ct({},"Duplicate data property in object literal not allowed in strict mode"):r[n]=!0,e.push(t),Vt("}")||qn(",");return qn("}"),function(a){const o=new wr("ObjectExpression");return o.properties=a,o}(e)}const KT={if:1};function QT(){var t,n,e;if(Vt("("))return function(){qn("(");const r=fb();return qn(")"),r}();if(Vt("["))return YT();if(Vt("{"))return JT();if(t=Rt.type,T=Rt.start,t===3||KT[Rt.value])e=lb(ve().value);else if(t===8||t===6)Rt.octal&&Ct(Rt,N5),e=Nl(ve());else{if(t===4)throw new Error(Ml);t===1?((n=ve()).value=n.value==="true",e=Nl(n)):t===5?((n=ve()).value=null,e=Nl(n)):Vt("/")||Vt("/=")?(e=Nl(GT()),L5()):Eh(ve())}return e}function ZT(){const t=[];if(qn("("),!Vt(")"))for(;T<Ln&&(t.push(bo()),!Vt(")"));)qn(",");return qn(")"),t}function tP(){return qn("."),function(){T=Rt.start;const t=ve();return function(n){return n.type===3||n.type===4||n.type===1||n.type===5}(t)||Eh(t),lb(t.value)}()}function nP(){qn("[");const t=fb();return qn("]"),t}function H5(){const t=function(){var n;for(n=QT();;)if(Vt("."))n=U5(".",n,tP());else if(Vt("("))n=VT(n,ZT());else{if(!Vt("["))break;n=U5("[",n,nP())}return n}();if(Rt.type===7&&(Vt("++")||Vt("--")))throw new Error(Ml);return t}function $h(){var t,n;if(Rt.type!==7&&Rt.type!==4)n=H5();else{if(Vt("++")||Vt("--"))throw new Error(Ml);if(Vt("+")||Vt("-")||Vt("~")||Vt("!"))t=ve(),n=$h(),n=function(e,r){const i=new wr("UnaryExpression");return i.operator=e,i.argument=r,i.prefix=!0,i}(t.value,n);else{if(cb("delete")||cb("void")||cb("typeof"))throw new Error(Ml);n=H5()}}return n}function G5(t){let n=0;if(t.type!==7&&t.type!==4)return 0;switch(t.value){case"||":n=1;break;case"&&":n=2;break;case"|":n=3;break;case"^":n=4;break;case"&":n=5;break;case"==":case"!=":case"===":case"!==":n=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":n=7;break;case"<<":case">>":case">>>":n=8;break;case"+":case"-":n=9;break;case"*":case"/":case"%":n=11}return n}function bo(){var t,n;return t=function(){var e,r,i,a,o,s,u,l,c,f;if(e=Rt,c=$h(),(o=G5(a=Rt))===0)return c;for(a.prec=o,ve(),r=[e,Rt],s=[c,a,u=$h()];(o=G5(Rt))>0;){for(;s.length>2&&o<=s[s.length-2].prec;)u=s.pop(),l=s.pop().value,c=s.pop(),r.pop(),i=q5(l,c,u),s.push(i);(a=ve()).prec=o,s.push(a),r.push(Rt),i=$h(),s.push(i)}for(i=s[f=s.length-1],r.pop();f>1;)r.pop(),i=q5(s[f-1].value,s[f-2],i),f-=2;return i}(),Vt("?")&&(ve(),n=bo(),qn(":"),t=function(e,r,i){const a=new wr("ConditionalExpression");return a.test=e,a.consequent=r,a.alternate=i,a}(t,n,bo())),t}function fb(){const t=bo();if(Vt(","))throw new Error(Ml);return t}function db(t){const n=[];return t.type==="Identifier"?[t.name]:t.type==="Literal"?[t.value]:(t.type==="MemberExpression"&&(n.push(...db(t.object)),n.push(...db(t.property))),n)}function V5(t){return t.object.type==="MemberExpression"?V5(t.object):t.object.name==="datum"}function Y5(t){const n=function(r){T=0,Ln=(at=r).length,Rt=null,L5();const i=fb();if(Rt.type!==2)throw new Error("Unexpect token after expression.");return i}(t),e=new Set;return n.visit(r=>{r.type==="MemberExpression"&&V5(r)&&e.add(db(r).slice(1).join("."))}),e}class Ts extends Nt{clone(){return new Ts(null,this.model,ft(this.filter))}constructor(n,e,r){super(n),this.model=e,this.filter=r,this.expr=Sh(this.model,this.filter,this),this._dependentFields=Y5(this.expr)}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function X5(t,n,e,r="datum"){const i=Q(n)?n:n.param,a=Xt(i),o=G(a+yo);let s;try{s=t.getSelectionComponent(a,i)}catch{return`!!${a}`}if(s.project.timeUnit){const c=e??t.component.data.raw,f=s.project.timeUnit.clone();c.parent?f.insertAsParentOf(c):c.parent=f}const u=`${s.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest("}${o}, ${r}${s.resolve==="global"?")":`, ${G(s.resolve)})`}`,l=`length(data(${o}))`;return n.empty===!1?`${l} && ${u}`:`!${l} || ${u}`}function J5(t,n,e){const r=Xt(n),i=e.encoding;let a,o=e.field;try{a=t.getSelectionComponent(r,n)}catch{return r}if(i||o){if(i&&!o){const s=a.project.items.filter(u=>u.channel===i);!s.length||s.length>1?(o=a.project.items[0].field,I(function(u,l,c,f){return(u.length?"Multiple ":"No ")+`matching ${G(l)} encoding found for selection ${G(c.param)}. Using "field": ${G(f)}.`}(s,i,e,o))):o=s[0].field}}else o=a.project.items[0].field,a.project.items.length>1&&I(function(s){return`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${G(s)}.`}(o));return`${a.name}[${G(He(o))}]`}function Sh(t,n,e){return fl(n,r=>Q(r)?r:function(i){return U(i,"param")}(r)?X5(t,r,e):h3(r))}function hb(t,n,e,r){var i,a;t.encode??(t.encode={}),(i=t.encode)[n]??(i[n]={}),(a=t.encode[n]).update??(a.update={}),t.encode[n].update[e]=r}function Rl(t,n,e,r={header:!1}){var f,d;const{disable:i,orient:a,scale:o,labelExpr:s,title:u,zindex:l,...c}=t.combine();if(!i){for(const h in c){const p=h,m=gR[p],g=c[p];if(m&&m!==n&&m!=="both")delete c[p];else if(Fl(g)){const{condition:y,...v}=g,x=K(y),b=Q3[p];if(b){const{vgProp:w,part:A}=b,_=[...x.map(k=>{const{test:F,...C}=k;return{test:Sh(null,F),...C}}),v];hb(c,A,w,_),delete c[p]}else if(b===null){const w={signal:x.map(A=>{const{test:_,...k}=A;return`${Sh(null,_)} ? ${OE(k)} : `}).join("")+OE(v)};c[p]=w}}else if(it(g)){const y=Q3[p];if(y){const{vgProp:v,part:x}=y;hb(c,x,v,g),delete c[p]}}vt(["labelAlign","labelBaseline"],p)&&c[p]===null&&delete c[p]}if(n==="grid"){if(!c.grid)return;if(c.encode){const{grid:h}=c.encode;c.encode={...h?{grid:h}:{}},jt(c.encode)&&delete c.encode}return{scale:o,orient:a,...c,domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:un(l,0)}}{if(!r.header&&t.mainExtracted)return;if(s!==void 0){let p=s;(d=(f=c.encode)==null?void 0:f.labels)!=null&&d.update&&it(c.encode.labels.update.text)&&(p=to(s,"datum.label",c.encode.labels.update.text.signal)),hb(c,"labels","text",{signal:p})}if(c.labelAlign===null&&delete c.labelAlign,c.encode){for(const p of Z3)t.hasAxisPart(p)||delete c.encode[p];jt(c.encode)&&delete c.encode}const h=function(p,m){if(p)return P(p)&&!ga(p)?p.map(g=>Av(g,m)).join(", "):p}(u,e);return{scale:o,orient:a,grid:!1,...h?{title:h}:{},...c,...e.aria===!1?{aria:!1}:{},zindex:un(l,0)}}}}function K5(t){const{axes:n}=t.component,e=[];for(const r of wi)if(n[r]){for(const i of n[r])if(!i.get("disable")&&!i.get("gridScale")){const a=r==="x"?"height":"width",o=t.getSizeSignalRef(a).signal;a!==o&&e.push({name:a,update:o})}}return e}function Q5(t,n,e,r){return Object.assign.apply(null,[{},...t.map(i=>{if(i==="axisOrient"){const a=e==="x"?"bottom":"left",o=n[e==="x"?"axisBottom":"axisLeft"]||{},s=n[e==="x"?"axisTop":"axisRight"]||{},u=new Set([...q(o),...q(s)]),l={};for(const c of u.values())l[c]={signal:`${r.signal} === "${a}" ? ${pr(o[c])} : ${pr(s[c])}`};return l}return n[i]})])}function eP(t,n){var r;const e=[{}];for(const i of t){let a=(r=n[i])==null?void 0:r.style;if(a){a=K(a);for(const o of a)e.push(n.style[o])}}return Object.assign.apply(null,e)}function pb(t,n,e,r={}){var a;const i=RE(t,e,n);if(i!==void 0)return{configFrom:"style",configValue:i};for(const o of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(((a=r[o])==null?void 0:a[t])!==void 0)return{configFrom:o,configValue:r[o][t]};return{}}const Z5={scale:({model:t,channel:n})=>t.scaleName(n),format:({format:t})=>t,formatType:({formatType:t})=>t,grid:({fieldOrDatumDef:t,axis:n,scaleType:e})=>n.grid??function(r,i){return!wn(r)&&H(i)&&!Wt(i==null?void 0:i.bin)&&!$n(i==null?void 0:i.bin)}(e,t),gridScale:({model:t,channel:n})=>function(e,r){const i=r==="x"?"y":"x";if(e.getScaleComponent(i))return e.scaleName(i)}(t,n),labelAlign:({axis:t,labelAngle:n,orient:e,channel:r})=>t.labelAlign||nS(n,e,r),labelAngle:({labelAngle:t})=>t,labelBaseline:({axis:t,labelAngle:n,orient:e,channel:r})=>t.labelBaseline||tS(n,e,r),labelFlush:({axis:t,fieldOrDatumDef:n,channel:e})=>t.labelFlush??function(r,i){if(i==="x"&&vt(["quantitative","temporal"],r))return!0}(n.type,e),labelOverlap:({axis:t,fieldOrDatumDef:n,scaleType:e})=>t.labelOverlap??function(r,i,a,o){if(a&&!Z(o)||r!=="nominal"&&r!=="ordinal")return i!=="log"&&i!=="symlog"||"greedy"}(n.type,e,H(n)&&!!n.timeUnit,H(n)?n.sort:void 0),orient:({orient:t})=>t,tickCount:({channel:t,model:n,axis:e,fieldOrDatumDef:r,scaleType:i})=>{const a=t==="x"?"width":t==="y"?"height":void 0,o=a?n.getSizeSignalRef(a):void 0;return e.tickCount??function({fieldOrDatumDef:s,scaleType:u,size:l,values:c}){var f;if(!c&&!wn(u)&&u!=="log"){if(H(s)){if(Wt(s.bin))return{signal:`ceil(${l.signal}/10)`};if(s.timeUnit&&vt(["month","hours","day","quarter"],(f=xn(s.timeUnit))==null?void 0:f.unit))return}return{signal:`ceil(${l.signal}/40)`}}}({fieldOrDatumDef:r,scaleType:i,size:o,values:e.values})},tickMinStep:function({format:t,fieldOrDatumDef:n}){if(t==="d")return 1;if(H(n)){const{timeUnit:e}=n;if(e){const r=c3(e);if(r)return{signal:r}}}},title:({axis:t,model:n,channel:e})=>{if(t.title!==void 0)return t.title;const r=eS(n,e);if(r!==void 0)return r;const i=n.typedFieldDef(e),a=e==="x"?"x2":"y2",o=n.fieldDef(a);return PE(i?[L3(i)]:[],H(o)?[L3(o)]:[])},values:({axis:t,fieldOrDatumDef:n})=>function(e,r){const i=e.values;if(P(i))return K3(r,i);if(it(i))return i}(t,n),zindex:({axis:t,fieldOrDatumDef:n,mark:e})=>t.zindex??function(r,i){return r==="rect"&&ah(i)?1:0}(e,n)};function mb(t){return`(((${t.signal} % 360) + 360) % 360)`}function tS(t,n,e,r){if(t!==void 0){if(e==="x"){if(it(t)){const i=mb(t);return{signal:`(45 < ${i} && ${i} < 135) || (225 < ${i} && ${i} < 315) ? "middle" :(${i} <= 45 || 315 <= ${i}) === ${it(n)?`(${n.signal} === "top")`:n==="top"} ? "bottom" : "top"`}}if(45<t&&t<135||225<t&&t<315)return"middle";if(it(n)){const i=t<=45||315<=t?"===":"!==";return{signal:`${n.signal} ${i} "top" ? "bottom" : "top"`}}return(t<=45||315<=t)==(n==="top")?"bottom":"top"}if(it(t)){const i=mb(t);return{signal:`${i} <= 45 || 315 <= ${i} || (135 <= ${i} && ${i} <= 225) ? ${r?'"middle"':"null"} : (45 <= ${i} && ${i} <= 135) === ${it(n)?`(${n.signal} === "left")`:n==="left"} ? "top" : "bottom"`}}if(t<=45||315<=t||135<=t&&t<=225)return r?"middle":null;if(it(n)){const i=45<=t&&t<=135?"===":"!==";return{signal:`${n.signal} ${i} "left" ? "top" : "bottom"`}}return(45<=t&&t<=135)==(n==="left")?"top":"bottom"}}function nS(t,n,e){if(t===void 0)return;const r=e==="x",i=r?0:90,a=r?"bottom":"left";if(it(t)){const o=mb(t);return{signal:`(${i?`(${o} + 90)`:o} % 180 === 0) ? ${r?null:'"center"'} :(${i} < ${o} && ${o} < ${180+i}) === ${it(n)?`(${n.signal} === "${a}")`:n===a} ? "left" : "right"`}}if((t+i)%180==0)return r?null:"center";if(it(n)){const o=i<t&&t<180+i?"===":"!==";return{signal:`${`${n.signal} ${o} "${a}"`} ? "left" : "right"`}}return(i<t&&t<180+i)==(n===a)?"left":"right"}function eS(t,n){const e=n==="x"?"x2":"y2",r=t.fieldDef(n),i=t.fieldDef(e),a=r?r.title:void 0,o=i?i.title:void 0;return a&&o?jE(a,o):a||o||(a!==void 0?a:o!==void 0?o:void 0)}class js extends Nt{clone(){return new js(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e,this._dependentFields=Y5(this.transform.calculate)}static parseAllForSortIndex(n,e){return e.forEachFieldDef((r,i)=>{if(po(r)&&j3(r.sort)){const{field:a,timeUnit:o}=r,s=r.sort,u=s.map((l,c)=>`${h3({field:a,timeUnit:o,equal:l})} ? ${c} : `).join("")+s.length;n=new js(n,{calculate:u,as:zs(r,i,{forAs:!0})})}}),n}producedFields(){return new Set([this.transform.as])}dependentFields(){return this._dependentFields}assemble(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}hash(){return`Calculate ${wt(this.transform)}`}}function zs(t,n,e){return Y(t,{prefix:n,suffix:"sort_index",...e})}function Mh(t,n){return vt(["top","bottom"],n)?"column":vt(["left","right"],n)||t==="row"?"row":"column"}function Os(t,n,e,r){const i=r==="row"?e.headerRow:r==="column"?e.headerColumn:e.headerFacet;return un((n||{})[t],i[t],e.header[t])}function Bh(t,n,e,r){const i={};for(const a of t){const o=Os(a,n||{},e,r);o!==void 0&&(i[a]=o)}return i}const gb=["row","column"],yb=["header","footer"];function rP(t,n){const e=t.component.layoutHeaders[n].title,r=t.config?t.config:void 0,i=t.component.layoutHeaders[n].facetFieldDef?t.component.layoutHeaders[n].facetFieldDef:void 0,{titleAnchor:a,titleAngle:o,titleOrient:s}=Bh(["titleAnchor","titleAngle","titleOrient"],i.header,r,n),u=Mh(n,s),l=hl(o);return{name:`${n}-title`,type:"group",role:`${u}-title`,title:{text:e,...n==="row"?{orient:"left"}:{},style:"guide-title",...iS(l,u),...rS(u,l,a),...aS(r,i,n,kR,b$)}}}function rS(t,n,e="middle"){switch(e){case"start":return{align:"left"};case"end":return{align:"right"}}const r=nS(n,t==="row"?"left":"top",t==="row"?"y":"x");return r?{align:r}:{}}function iS(t,n){const e=tS(t,n==="row"?"left":"top",n==="row"?"y":"x",!0);return e?{baseline:e}:{}}function iP(t,n){const e=t.component.layoutHeaders[n],r=[];for(const i of yb)if(e[i])for(const a of e[i]){const o=oP(t,n,i,e,a);o!=null&&r.push(o)}return r}function aP(t,n){const{sort:e}=t;return ki(e)?{field:Y(e,{expr:"datum"}),order:e.order??"ascending"}:P(e)?{field:zs(t,n,{expr:"datum"}),order:"ascending"}:{field:Y(t,{expr:"datum"}),order:e??"ascending"}}function vb(t,n,e){const{format:r,formatType:i,labelAngle:a,labelAnchor:o,labelOrient:s,labelExpr:u}=Bh(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],t.header,e,n),l=yv({fieldOrDatumDef:t,format:r,formatType:i,expr:"parent",config:e}).signal,c=Mh(n,s);return{text:{signal:u?to(to(u,"datum.label",l),"datum.value",Y(t,{expr:"parent"})):l},...n==="row"?{orient:"left"}:{},style:"guide-label",frame:"group",...iS(a,c),...rS(c,a,o),...aS(e,t,n,DR,x$)}}function oP(t,n,e,r,i){if(i){let a=null;const{facetFieldDef:o}=r,s=t.config?t.config:void 0;if(o&&i.labels){const{labelOrient:f}=Bh(["labelOrient"],o.header,s,n);(n==="row"&&!vt(["top","bottom"],f)||n==="column"&&!vt(["left","right"],f))&&(a=vb(o,n,s))}const u=$e(t)&&!Al(t.facet),l=i.axes,c=(l==null?void 0:l.length)>0;if(a||c){const f=n==="row"?"height":"width";return{name:t.getName(`${n}_${e}`),type:"group",role:`${n}-${e}`,...r.facetFieldDef?{from:{data:t.getName(`${n}_domain`)},sort:aP(o,n)}:{},...c&&u?{from:{data:t.getName(`facet_domain_${n}`)}}:{},...a?{title:a}:{},...i.sizeSignal?{encode:{update:{[f]:i.sizeSignal}}}:{},...c?{axes:l}:{}}}}return null}const sP={column:{start:0,end:1},row:{start:1,end:0}};function uP(t,n){return sP[n][t]}function aS(t,n,e,r,i){const a={};for(const o of r){if(!i[o])continue;const s=Os(o,n==null?void 0:n.header,t,e);s!==void 0&&(a[i[o]]=s)}return a}function bb(t){return[...zh(t,"width"),...zh(t,"height"),...zh(t,"childWidth"),...zh(t,"childHeight")]}function zh(t,n){const e=n==="width"?"x":"y",r=t.component.layoutSize.get(n);if(!r||r==="merged")return[];const i=t.getSizeSignalRef(n).signal;if(r==="step"){const a=t.getScaleComponent(e);if(a){const o=a.get("type"),s=a.get("range");if(wn(o)&&ao(s)){const u=t.scaleName(e);return $e(t.parent)&&t.parent.component.resolve.scale[e]==="independent"?[oS(u,s)]:[oS(u,s),{name:i,update:sS(u,a,`domain('${u}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}if(r=="container"){const a=i.endsWith("width"),o=a?"containerSize()[0]":"containerSize()[1]",s=`isFinite(${o}) ? ${o} : ${Rv(t.config.view,a?"width":"height")}`;return[{name:i,init:s,on:[{update:s,events:"window:resize"}]}]}return[{name:i,value:r}]}function oS(t,n){const e=`${t}_step`;return it(n.step)?{name:e,update:n.step.signal}:{name:e,value:n.step}}function sS(t,n,e){const r=n.get("type"),i=n.get("padding"),a=un(n.get("paddingOuter"),i);let o=n.get("paddingInner");return o=r==="band"?o!==void 0?o:i:1,`bandspace(${e}, ${pr(o)}, ${pr(a)}) * ${t}_step`}function uS(t){return t==="childWidth"?"width":t==="childHeight"?"height":t}function lS(t,n){return q(t).reduce((e,r)=>({...e,...Bs({model:n,channelDef:t[r],vgChannel:r,mainRefFn:i=>Gt(i.value),invalidValueRef:void 0})}),{})}function cS(t,n){if($e(n))return t==="theta"?"independent":"shared";if(Rs(n))return"shared";if(Nb(n))return ln(t)||t==="theta"||t==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function xb(t,n){const e=t.scale[n],r=ln(n)?"axis":"legend";return e==="independent"?(t[r][n]==="shared"&&I(function(i){return`Setting the scale to be independent for "${i}" means we also have to set the guide (axis or legend) to be independent.`}(n)),"independent"):t[r][n]||"shared"}const fS=q({aria:1,clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,description:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolLimit:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1,disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1});class lP extends Bi{}const dS={symbols:function(t,{fieldOrDatumDef:n,model:e,channel:r,legendCmpt:i,legendType:a}){if(a!=="symbol")return;const{markDef:o,encoding:s,config:u,mark:l}=e,c=o.filled&&l!=="trail";let f={...SN({},e,uR),...p5(e,{filled:c})};const d=i.get("symbolOpacity")??u.legend.symbolOpacity,h=i.get("symbolFillColor")??u.legend.symbolFillColor,p=i.get("symbolStrokeColor")??u.legend.symbolStrokeColor,m=d===void 0?hS(s.opacity)??o.opacity:void 0;if(f.fill){if(r==="fill"||c&&r===pe)delete f.fill;else if(U(f.fill,"field"))h?delete f.fill:(f.fill=Gt(u.legend.symbolBaseFillColor??"black"),f.fillOpacity=Gt(m??1));else if(P(f.fill)){const g=wb(s.fill??s.color)??o.fill??(c&&o.color);g&&(f.fill=Gt(g))}}if(f.stroke){if(r==="stroke"||!c&&r===pe)delete f.stroke;else if(U(f.stroke,"field")||p)delete f.stroke;else if(P(f.stroke)){const g=un(wb(s.stroke||s.color),o.stroke,c?o.color:void 0);g&&(f.stroke={value:g})}}if(r!==xi){const g=H(n)&&mS(e,i,n);g?f.opacity=[{test:g,...Gt(m??1)},Gt(u.legend.unselectedOpacity)]:m&&(f.opacity=Gt(m))}return f={...f,...t},jt(f)?void 0:f},gradient:function(t,{model:n,legendType:e,legendCmpt:r}){if(e!=="gradient")return;const{config:i,markDef:a,encoding:o}=n;let s={};const u=(r.get("gradientOpacity")??i.legend.gradientOpacity)===void 0?hS(o.opacity)||a.opacity:void 0;return u&&(s.opacity=Gt(u)),s={...s,...t},jt(s)?void 0:s},labels:function(t,{fieldOrDatumDef:n,model:e,channel:r,legendCmpt:i}){const a=e.legend(r)||{},o=e.config,s=H(n)?mS(e,i,n):void 0,u=s?[{test:s,value:1},{value:o.legend.unselectedOpacity}]:void 0,{format:l,formatType:c}=a;let f;ho(c)?f=gr({fieldOrDatumDef:n,field:"datum.value",format:l,formatType:c,config:o}):l===void 0&&c===void 0&&o.customFormatTypes&&(n.type==="quantitative"&&o.numberFormatType?f=gr({fieldOrDatumDef:n,field:"datum.value",format:o.numberFormat,formatType:o.numberFormatType,config:o}):n.type==="temporal"&&o.timeFormatType&&H(n)&&n.timeUnit===void 0&&(f=gr({fieldOrDatumDef:n,field:"datum.value",format:o.timeFormat,formatType:o.timeFormatType,config:o})));const d={...u?{opacity:u}:{},...f?{text:f}:{},...t};return jt(d)?void 0:d},entries:function(t,{legendCmpt:n}){const e=n.get("selections");return e!=null&&e.length?{...t,fill:{value:"transparent"}}:t}};function hS(t){return pS(t,(n,e)=>Math.max(n,e.value))}function wb(t){return pS(t,(n,e)=>un(n,e.value))}function pS(t,n){return function(e){const r=e==null?void 0:e.condition;return!!r&&(P(r)||yr(r))}(t)?K(t.condition).reduce(n,t.value):yr(t)?t.value:void 0}function mS(t,n,e){const r=n.get("selections");if(!(r!=null&&r.length))return;const i=G(e.field);return r.map(a=>`(!length(data(${G(Xt(a)+yo)})) || (${a}[${i}] && indexof(${a}[${i}], datum.value) >= 0))`).join(" || ")}const gS={direction:({direction:t})=>t,format:({fieldOrDatumDef:t,legend:n,config:e})=>{const{format:r,formatType:i}=n;return O3(t,t.type,r,i,e,!1)},formatType:({legend:t,fieldOrDatumDef:n,scaleType:e})=>{const{formatType:r}=t;return N3(r,n,e)},gradientLength:t=>{const{legend:n,legendConfig:e}=t;return n.gradientLength??e.gradientLength??function({legendConfig:r,model:i,direction:a,orient:o,scaleType:s}){const{gradientHorizontalMaxLength:u,gradientHorizontalMinLength:l,gradientVerticalMaxLength:c,gradientVerticalMinLength:f}=r;if(Gr(s))return a==="horizontal"?o==="top"||o==="bottom"?yS(i,"width",l,u):l:yS(i,"height",f,c)}(t)},labelOverlap:({legend:t,legendConfig:n,scaleType:e})=>t.labelOverlap??n.labelOverlap??function(r){if(vt(["quantile","threshold","log","symlog"],r))return"greedy"}(e),symbolType:({legend:t,markDef:n,channel:e,encoding:r})=>t.symbolType??function(i,a,o,s){if(a!=="shape"){const u=wb(o)??s;if(u)return u}switch(i){case"bar":case"rect":case"image":case"square":return"square";case"line":case"trail":case"rule":return"stroke";case"arc":case"point":case"circle":case"tick":case"geoshape":case"area":case"text":return"circle"}}(n.type,e,r.shape,n.shape),title:({fieldOrDatumDef:t,config:n})=>Ds(t,n,{allowDisabling:!0}),type:({legendType:t,scaleType:n,channel:e})=>{if(bs(e)&&Gr(n)){if(t==="gradient")return}else if(t==="symbol")return;return t},values:({fieldOrDatumDef:t,legend:n})=>function(e,r){const i=e.values;if(P(i))return K3(r,i);if(it(i))return i}(n,t)};function cP(t){const{legend:n}=t;return un(n.type,function({channel:e,timeUnit:r,scaleType:i}){if(bs(e)){if(vt(["quarter","month","day"],r))return"symbol";if(Gr(i))return"gradient"}return"symbol"}(t))}function fP({legendConfig:t,legendType:n,orient:e,legend:r}){return r.direction??t[n?"gradientDirection":"symbolDirection"]??function(i,a){switch(i){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return a==="gradient"?"horizontal":void 0}}(e,n)}function yS(t,n,e,r){return{signal:`clamp(${t.getSizeSignalRef(n).signal}, ${e}, ${r})`}}function vS(t){const n=Zt(t)?function(e){const{encoding:r}=e,i={};for(const a of[pe,...A$]){const o=mn(r[a]);o&&e.getScaleComponent(a)&&(a===me&&H(o)&&o.type===ws||(i[a]=hP(e,a)))}return i}(t):function(e){const{legends:r,resolve:i}=e.component;for(const a of e.children){vS(a);for(const o of q(a.component.legends))i.legend[o]=xb(e.component.resolve,o),i.legend[o]==="shared"&&(r[o]=bS(r[o],a.component.legends[o]),r[o]||(i.legend[o]="independent",delete r[o]))}for(const a of q(r))for(const o of e.children)o.component.legends[a]&&i.legend[a]==="shared"&&delete o.component.legends[a];return r}(t);return t.component.legends=n,n}function dP(t,n,e,r){switch(n){case"disable":return e!==void 0;case"values":return!!(e!=null&&e.values);case"title":if(n==="title"&&t===(r==null?void 0:r.title))return!0}return t===(e||{})[n]}function hP(t,n){var x;let e=t.legend(n);const{markDef:r,encoding:i,config:a}=t,o=a.legend,s=new lP({},function(b,w){const A=b.scaleName(w);if(b.mark==="trail"){if(w==="color")return{stroke:A};if(w==="size")return{strokeWidth:A}}return w==="color"?b.markDef.filled?{fill:A}:{stroke:A}:{[w]:A}}(t,n));(function(b,w,A){var k;const _=(k=b.fieldDef(w))==null?void 0:k.field;for(const F of En(b.component.selection??{})){const C=F.project.hasField[_]??F.project.hasChannel[w];if(C&&D5.defined(F)){const D=A.get("selections")??[];D.push(F.name),A.set("selections",D,!1),C.hasLegend=!0}}})(t,n,s);const u=e!==void 0?!e:o.disable;if(s.set("disable",u,e!==void 0),u)return s;e=e||{};const l=t.getScaleComponent(n).get("type"),c=mn(i[n]),f=H(c)?(x=xn(c.timeUnit))==null?void 0:x.unit:void 0,d=e.orient||a.legend.orient||"right",h=cP({legend:e,channel:n,timeUnit:f,scaleType:l}),p={legend:e,channel:n,model:t,markDef:r,encoding:i,fieldOrDatumDef:c,legendConfig:o,config:a,scaleType:l,orient:d,legendType:h,direction:fP({legend:e,legendType:h,orient:d,legendConfig:o})};for(const b of fS){if(h==="gradient"&&b.startsWith("symbol")||h==="symbol"&&b.startsWith("gradient"))continue;const w=b in gS?gS[b](p):e[b];if(w!==void 0){const A=dP(w,b,e,t.fieldDef(n));(A||a.legend[b]===void 0)&&s.set(b,w,A)}}const m=(e==null?void 0:e.encoding)??{},g=s.get("selections"),y={},v={fieldOrDatumDef:c,model:t,channel:n,legendCmpt:s,legendType:h};for(const b of["labels","legend","title","symbols","gradient","entries"]){const w=lS(m[b]??{},t),A=b in dS?dS[b](w,v):w;A===void 0||jt(A)||(y[b]={...g!=null&&g.length&&H(c)?{name:`${Xt(c.field)}_legend_${b}`}:{},...g!=null&&g.length?{interactive:!!g}:{},update:A})}return jt(y)||s.set("encode",y,!!(e!=null&&e.encoding)),s}function bS(t,n){var a,o,s,u;if(!t)return n.clone();const e=t.getWithExplicit("orient"),r=n.getWithExplicit("orient");if(e.explicit&&r.explicit&&e.value!==r.value)return;let i=!1;for(const l of fS){const c=xa(t.getWithExplicit(l),n.getWithExplicit(l),l,"legend",(f,d)=>{switch(l){case"symbolType":return pP(f,d);case"title":return LE(f,d);case"type":return i=!0,xr("symbol")}return yh(f,d,l,"legend")});t.setWithExplicit(l,c)}return i&&((o=(a=t.implicit)==null?void 0:a.encode)!=null&&o.gradient&&zd(t.implicit,["encode","gradient"]),(u=(s=t.explicit)==null?void 0:s.encode)!=null&&u.gradient&&zd(t.explicit,["encode","gradient"])),t}function pP(t,n){return n.value==="circle"?n:t}function xS(t){const n=t.component.legends,e={};for(const i of q(n)){const a=Lt(t.getScaleComponent(i).get("domains"));if(e[a])for(const o of e[a])bS(o,n[i])||e[a].push(n[i]);else e[a]=[n[i].clone()]}return En(e).flat().map(i=>function(a,o){var f,d,h;const{disable:s,labelExpr:u,selections:l,...c}=a.combine();if(!s){if(o.aria===!1&&c.aria==null&&(c.aria=!1),(f=c.encode)!=null&&f.symbols){const p=c.encode.symbols.update;!p.fill||p.fill.value==="transparent"||p.stroke||c.stroke||(p.stroke={value:"transparent"});for(const m of A$)c[m]&&delete p[m]}if(c.title||delete c.title,u!==void 0){let p=u;(h=(d=c.encode)==null?void 0:d.labels)!=null&&h.update&&it(c.encode.labels.update.text)&&(p=to(u,"datum.label",c.encode.labels.update.text.signal)),function(m,g,y,v){var x,b;m.encode??(m.encode={}),(x=m.encode)[g]??(x[g]={}),(b=m.encode[g]).update??(b.update={}),m.encode[g].update[y]=v}(c,"labels","text",{signal:p})}return c}}(i,t.config)).filter(i=>i!==void 0)}function mP(t){return Rs(t)||Nb(t)?function(n){return n.children.reduce((e,r)=>e.concat(r.assembleProjections()),wS(n))}(t):wS(t)}function wS(t){const n=t.component.projection;if(!n||n.merged)return[];const e=n.combine(),{name:r}=e;if(n.data){const i={signal:`[${n.size.map(o=>o.signal).join(", ")}]`},a=n.data.reduce((o,s)=>{const u=it(s)?s.signal:`data('${t.lookupDataSource(s)}')`;return vt(o,u)||o.push(u),o},[]);if(a.length<=0)throw new Error("Projection's fit didn't find any data sources");return[{name:r,size:i,fit:{signal:a.length>1?`[${a.join(", ")}]`:a[0]},...e}]}return[{name:r,translate:{signal:"[width / 2, height / 2]"},...e}]}const gP=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class AS extends Bi{constructor(n,e,r,i){super({...e},{name:n}),this.specifiedProjection=e,this.size=r,this.data=i,this.merged=!1}get isFit(){return!!this.data}}function _S(t){t.component.projection=Zt(t)?function(n){if(n.hasProjection){const e=Sn(n.specifiedProjection),r=!(e&&(e.scale!=null||e.translate!=null)),i=r?[n.getSizeSignalRef("width"),n.getSizeSignalRef("height")]:void 0,a=r?function(s){const u=[],{encoding:l}=s;for(const c of[[dr,fr],[Ve,hr]])(mn(l[c[0]])||mn(l[c[1]]))&&u.push({signal:s.getName(`geojson_${u.length}`)});return s.channelHasField(me)&&s.typedFieldDef(me).type===ws&&u.push({signal:s.getName(`geojson_${u.length}`)}),u.length===0&&u.push(s.requestDataName(Qt.Main)),u}(n):void 0,o=new AS(n.projectionName(!0),{...Sn(n.config.projection),...e},i,a);return o.get("type")||o.set("type","equalEarth",!1),o}}(t):function(n){if(n.children.length===0)return;let e;for(const i of n.children)_S(i);const r=ky(n.children,i=>{const a=i.component.projection;if(a){if(e){const o=function(s,u){const l=ky(gP,f=>!tt(s.explicit,f)&&!tt(u.explicit,f)||!!(tt(s.explicit,f)&&tt(u.explicit,f)&&Ce(s.get(f),u.get(f))));if(Ce(s.size,u.size)){if(l)return s;if(Ce(s.explicit,{}))return u;if(Ce(u.explicit,{}))return s}return null}(e,a);return o&&(e=o),!!o}return e=a,!0}return!0});if(e&&r){const i=n.projectionName(!0),a=new AS(i,e.specifiedProjection,e.size,ft(e.data));for(const o of n.children){const s=o.component.projection;s&&(s.isFit&&a.data.push(...o.component.projection.data),o.renameProjection(s.get("name"),i),s.merged=!0)}return a}}(t)}function yP(t,n,e,r){if(Dl(n,e)){const i=Zt(t)?t.axis(e)??t.legend(e)??{}:{},a=Y(n,{expr:"datum"}),o=Y(n,{expr:"datum",binSuffix:"end"});return{formulaAs:Y(n,{binSuffix:"range",forAs:!0}),formula:wl(a,o,i.format,i.formatType,r)}}return{}}function kS(t,n){return`${$E(t)}_${n}`}function Ab(t,n,e){const r=kS(uh(e,void 0)??{},n);return t.getName(`${r}_bins`)}function DS(t,n,e){let r,i;r=function(l){return"as"in l}(t)?Q(t.as)?[t.as,`${t.as}_end`]:[t.as[0],t.as[1]]:[Y(t,{forAs:!0}),Y(t,{binSuffix:"end",forAs:!0})];const a={...uh(n,void 0)},o=kS(a,t.field),{signal:s,extentSignal:u}=function(l,c){return{signal:l.getName(`${c}_bins`),extentSignal:l.getName(`${c}_extent`)}}(e,o);if(Id(a.extent)){const l=a.extent;i=J5(e,l.param,l),delete a.extent}return{key:o,binComponent:{bin:a,field:t.field,as:[r],...s?{signal:s}:{},...u?{extentSignal:u}:{},...i?{span:i}:{}}}}class Zr extends Nt{clone(){return new Zr(null,ft(this.bins))}constructor(n,e){super(n),this.bins=e}static makeFromEncoding(n,e){const r=e.reduceFieldDef((i,a,o)=>{if(oe(a)&&Wt(a.bin)){const{key:s,binComponent:u}=DS(a,a.bin,e);i[s]={...u,...i[s],...yP(e,a,o,e.config)}}return i},{});return jt(r)?null:new Zr(n,r)}static makeFromTransform(n,e,r){const{key:i,binComponent:a}=DS(e,e.bin,r);return new Zr(n,{[i]:a})}merge(n,e){for(const r of q(n.bins))r in this.bins?(e(n.bins[r].signal,this.bins[r].signal),this.bins[r].as=Pr([...this.bins[r].as,...n.bins[r].as],wt)):this.bins[r]=n.bins[r];for(const r of n.children)n.removeChild(r),r.parent=this;n.remove()}producedFields(){return new Set(En(this.bins).map(n=>n.as).flat(2))}dependentFields(){return new Set(En(this.bins).map(n=>n.field))}hash(){return`Bin ${wt(this.bins)}`}assemble(){return En(this.bins).flatMap(n=>{const e=[],[r,...i]=n.as,{extent:a,...o}=n.bin,s={type:"bin",field:He(n.field),as:r,signal:n.signal,...Id(a)?{extent:null}:{extent:a},...n.span?{span:{signal:`span(${n.span})`}}:{},...o};!a&&n.extentSignal&&(e.push({type:"extent",field:He(n.field),signal:n.extentSignal}),s.extent={signal:n.extentSignal}),e.push(s);for(const u of i)for(let l=0;l<2;l++)e.push({type:"formula",expr:Y({field:r[l]},{expr:"datum"}),as:u[l]});return n.formula&&e.push({type:"formula",expr:n.formula,as:n.formulaAs}),e})}}function vP(t,n,e,r){var a;const i=Zt(r)?r.encoding[Ur(n)]:void 0;if(oe(e)&&Zt(r)&&U3(e,i,r.markDef,r.config)){t.add(Y(e,{})),t.add(Y(e,{suffix:"end"}));const{mark:o,markDef:s,config:u}=r,l=va({fieldDef:e,markDef:s,config:u});bl(o)&&l!==.5&&ln(n)&&(t.add(Y(e,{suffix:vh})),t.add(Y(e,{suffix:bh}))),e.bin&&Dl(e,n)&&t.add(Y(e,{binSuffix:"range"}))}else if(bE(n)){const o=vE(n);t.add(r.getName(o))}else t.add(Y(e));return po(e)&&function(o){return Z(o)&&"field"in o}((a=e.scale)==null?void 0:a.range)&&t.add(e.scale.range.field),t}class _r extends Nt{clone(){return new _r(null,new Set(this.dimensions),ft(this.measures))}constructor(n,e,r){super(n),this.dimensions=e,this.measures=r}get groupBy(){return this.dimensions}static makeFromEncoding(n,e){let r=!1;e.forEachFieldDef(o=>{o.aggregate&&(r=!0)});const i={},a=new Set;return r?(e.forEachFieldDef((o,s)=>{const{aggregate:u,field:l}=o;if(u)if(u==="count")i["*"]??(i["*"]={}),i["*"].count=new Set([Y(o,{forAs:!0})]);else{if(Ai(u)||ma(u)){const c=Ai(u)?"argmin":"argmax",f=u[c];i[f]??(i[f]={}),i[f][c]=new Set([Y({op:c,field:f},{forAs:!0})])}else i[l]??(i[l]={}),i[l][u]=new Set([Y(o,{forAs:!0})]);Ir(s)&&e.scaleDomain(s)==="unaggregated"&&(i[l]??(i[l]={}),i[l].min=new Set([Y({field:l,aggregate:"min"},{forAs:!0})]),i[l].max=new Set([Y({field:l,aggregate:"max"},{forAs:!0})]))}else vP(a,s,o,e)}),a.size+q(i).length===0?null:new _r(n,a,i)):null}static makeFromTransform(n,e){var r;const i=new Set,a={};for(const o of e.aggregate){const{op:s,field:u,as:l}=o;s&&(s==="count"?(a["*"]??(a["*"]={}),a["*"].count=new Set([l||Y(o,{forAs:!0})])):(a[u]??(a[u]={}),(r=a[u])[s]??(r[s]=new Set),a[u][s].add(l||Y(o,{forAs:!0}))))}for(const o of e.groupby??[])i.add(o);return i.size+q(a).length===0?null:new _r(n,i,a)}merge(n){return lE(this.dimensions,n.dimensions)?(function(e,r){for(const i of q(r)){const a=r[i];for(const o of q(a))i in e?e[i][o]=new Set([...e[i][o]??[],...a[o]]):e[i]={[o]:a[o]}}}(this.measures,n.measures),!0):(function(...e){vl.debug(...e)}("different dimensions, cannot merge"),!1)}addDimensions(n){n.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...q(this.measures)])}producedFields(){const n=new Set;for(const e of q(this.measures))for(const r of q(this.measures[e])){const i=this.measures[e][r];i.size===0?n.add(`${r}_${e}`):i.forEach(n.add,n)}return n}hash(){return`Aggregate ${wt({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const n=[],e=[],r=[];for(const i of q(this.measures))for(const a of q(this.measures[i]))for(const o of this.measures[i][a])r.push(o),n.push(a),e.push(i==="*"?null:He(i));return{type:"aggregate",groupby:[...this.dimensions].map(He),ops:n,fields:e,as:r}}}class Ns extends Nt{constructor(n,e,r,i){super(n),this.model=e,this.name=r,this.data=i;for(const a of Ye){const o=e.facet[a];if(o){const{bin:s,sort:u}=o;this[a]={name:e.getName(`${a}_domain`),fields:[Y(o),...Wt(s)?[Y(o,{binSuffix:"end"})]:[]],...ki(u)?{sortField:u}:P(u)?{sortIndexField:zs(o,a)}:{}}}}this.childModel=e.child}hash(){let n="Facet";for(const e of Ye)this[e]&&(n+=` ${e.charAt(0)}:${wt(this[e])}`);return n}get fields(){var e;const n=[];for(const r of Ye)(e=this[r])!=null&&e.fields&&n.push(...this[r].fields);return n}dependentFields(){const n=new Set(this.fields);for(const e of Ye)this[e]&&(this[e].sortField&&n.add(this[e].sortField.field),this[e].sortIndexField&&n.add(this[e].sortIndexField));return n}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const n={};for(const e of wi){const r=this.childModel.component.scales[e];if(r&&!r.merged){const i=r.get("type"),a=r.get("range");if(wn(i)&&ao(a)){const o=zb(Oh(this.childModel,e));o?n[e]=o:I(Uy(e))}}}return n}assembleRowColumnHeaderData(n,e,r){const i={row:"y",column:"x",facet:void 0}[n],a=[],o=[],s=[];i&&r&&r[i]&&(e?(a.push(`distinct_${r[i]}`),o.push("max")):(a.push(r[i]),o.push("distinct")),s.push(`distinct_${r[i]}`));const{sortField:u,sortIndexField:l}=this[n];if(u){const{op:c=nh,field:f}=u;a.push(f),o.push(c),s.push(Y(u,{forAs:!0}))}else l&&(a.push(l),o.push("max"),s.push(l));return{name:this[n].name,source:e??this.data,transform:[{type:"aggregate",groupby:this[n].fields,...a.length?{fields:a,ops:o,as:s}:{}}]}}assembleFacetHeaderData(n){var u;const{columns:e}=this.model.layout,{layoutHeaders:r}=this.model.component,i=[],a={};for(const l of gb){for(const c of yb){const f=(r[l]&&r[l][c])??[];for(const d of f)if(((u=d.axes)==null?void 0:u.length)>0){a[l]=!0;break}}if(a[l]){const c=`length(data("${this.facet.name}"))`,f=l==="row"?e?{signal:`ceil(${c} / ${e})`}:1:e?{signal:`min(${c}, ${e})`}:{signal:c};i.push({name:`${this.facet.name}_${l}`,transform:[{type:"sequence",start:0,stop:f}]})}}const{row:o,column:s}=a;return(o||s)&&i.unshift(this.assembleRowColumnHeaderData("facet",null,n)),i}assemble(){const n=[];let e=null;const r=this.getChildIndependentFieldsWithStep(),{column:i,row:a,facet:o}=this;if(i&&a&&(r.x||r.y)){e=`cross_${this.column.name}_${this.row.name}`;const s=[].concat(r.x??[],r.y??[]),u=s.map(()=>"distinct");n.push({name:e,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:s,ops:u}]})}for(const s of[gi,mi])this[s]&&n.push(this.assembleRowColumnHeaderData(s,e,r));if(o){const s=this.assembleFacetHeaderData(r);s&&n.push(...s)}return n}}function FS(t){return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function bP(t){const n={};return Bd(t.filter,e=>{if(d3(e)){let r=null;Jy(e)?r=Ee(e.equal):Qy(e)?r=Ee(e.lte):Ky(e)?r=Ee(e.lt):Zy(e)?r=Ee(e.gt):tv(e)?r=Ee(e.gte):nv(e)?r=e.range[0]:ev(e)&&(r=(e.oneOf??e.in)[0]),r&&(oo(r)?n[e.field]="date":$t(r)?n[e.field]="number":Q(r)&&(n[e.field]="string")),e.timeUnit&&(n[e.field]="date")}}),n}function xP(t){const n={};function e(r){var i;Cs(r)?n[r.field]="date":r.type==="quantitative"&&(i=r.aggregate,Q(i)&&vt(["min","max"],i))?n[r.field]="number":gs(r.field)>1?r.field in n||(n[r.field]="flatten"):po(r)&&ki(r.sort)&&gs(r.sort.field)>1&&(r.sort.field in n||(n[r.sort.field]="flatten"))}if((Zt(t)||$e(t))&&t.forEachFieldDef((r,i)=>{if(oe(r))e(r);else{const a=ro(i),o=t.fieldDef(a);e({...r,type:o.type})}}),Zt(t)){const{mark:r,markDef:i,encoding:a}=t;if(ya(r)&&!t.encoding.order){const o=a[i.orient==="horizontal"?"y":"x"];H(o)&&o.type==="quantitative"&&!(o.field in n)&&(n[o.field]="number")}}return n}class Un extends Nt{clone(){return new Un(null,ft(this._parse))}constructor(n,e){super(n),this._parse=e}hash(){return`Parse ${wt(this._parse)}`}static makeExplicit(n,e,r){var o;let i={};const a=e.data;return!wa(a)&&((o=a==null?void 0:a.format)!=null&&o.parse)&&(i=a.format.parse),this.makeWithAncestors(n,i,{},r)}static makeWithAncestors(n,e,r,i){for(const s of q(r)){const u=i.getWithExplicit(s);u.value!==void 0&&(u.explicit||u.value===r[s]||u.value==="derived"||r[s]==="flatten"?delete r[s]:I(VE(s,r[s],u.value)))}for(const s of q(e)){const u=i.get(s);u!==void 0&&(u===e[s]?delete e[s]:I(VE(s,e[s],u)))}const a=new Bi(e,r);i.copyAll(a);const o={};for(const s of q(a.combine())){const u=a.get(s);u!==null&&(o[s]=u)}return q(o).length===0||i.parseNothing?null:new Un(n,o)}get parse(){return this._parse}merge(n){this._parse={...this._parse,...n.parse},n.remove()}assembleFormatParse(){const n={};for(const e of q(this._parse)){const r=this._parse[e];gs(e)===1&&(n[e]=r)}return n}producedFields(){return new Set(q(this._parse))}dependentFields(){return new Set(q(this._parse))}assembleTransforms(n=!1){return q(this._parse).filter(e=>!n||gs(e)>1).map(e=>{const r=function(i,a){const o=Ey(i);return a==="number"?`toNumber(${o})`:a==="boolean"?`toBoolean(${o})`:a==="string"?`toString(${o})`:a==="date"?`toDate(${o})`:a==="flatten"?o:a.startsWith("date:")?`timeParse(${o},'${FS(a.slice(5,a.length))}')`:a.startsWith("utc:")?`utcParse(${o},'${FS(a.slice(4,a.length))}')`:(I(`Unrecognized parse "${a}".`),null)}(e,this._parse[e]);return r?{type:"formula",expr:r,as:ms(e)}:null}).filter(e=>e!==null)}}class _a extends Nt{clone(){return new _a(null)}constructor(n){super(n)}dependentFields(){return new Set}producedFields(){return new Set([br])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:br}}}class Pl extends Nt{clone(){return new Pl(null,this.params)}constructor(n,e){super(n),this.params=e}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${wt(this.params)}`}assemble(){return{type:"graticule",...this.params===!0?{}:this.params}}}class jl extends Nt{clone(){return new jl(null,this.params)}constructor(n,e){super(n),this.params=e}dependentFields(){return new Set}producedFields(){return new Set([this.params.as??"data"])}hash(){return`Hash ${wt(this.params)}`}assemble(){return{type:"sequence",...this.params}}}class xo extends Nt{constructor(n){let e;if(super(null),n??(n={name:"source"}),wa(n)||(e=n.format?{...he(n.format,["parse"])}:{}),Cl(n))this._data={values:n.values};else if($s(n)){if(this._data={url:n.url},!e.type){let r=/(?:\.([^.]+))?$/.exec(n.url)[1];vt(["json","csv","tsv","dsv","topojson"],r)||(r="json"),e.type=r}}else Q$(n)?this._data={values:[{type:"Sphere"}]}:(J$(n)||wa(n))&&(this._data={});this._generator=wa(n),n.name&&(this._name=n.name),e&&!jt(e)&&(this._data.format=e)}dependentFields(){return new Set}producedFields(){}get data(){return this._data}hasName(){return!!this._name}get isGenerator(){return this._generator}get dataName(){return this._name}set dataName(n){this._name=n}set parent(n){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return{name:this._name,...this._data,transform:[]}}}var Tl,CS=function(t,n,e,r,i){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof n=="function"?t!==n||!i:!n.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?i.call(t,e):i?i.value=e:n.set(t,e),e},wP=function(t,n,e,r){if(e==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof n=="function"?t!==n||!r:!n.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?r:e==="a"?r.call(t):r?r.value:n.get(t)};function _b(t){return t instanceof xo||t instanceof Pl||t instanceof jl}class kb{constructor(){Tl.set(this,void 0),CS(this,Tl,!1,"f")}setModified(){CS(this,Tl,!0,"f")}get modifiedFlag(){return wP(this,Tl,"f")}}Tl=new WeakMap;class wo extends kb{getNodeDepths(n,e,r){r.set(n,e);for(const i of n.children)this.getNodeDepths(i,e+1,r);return r}optimize(n){const e=[...this.getNodeDepths(n,0,new Map).entries()].sort((r,i)=>i[1]-r[1]);for(const r of e)this.run(r[0]);return this.modifiedFlag}}class Db extends kb{optimize(n){this.run(n);for(const e of n.children)this.optimize(e);return this.modifiedFlag}}class AP extends Db{mergeNodes(n,e){const r=e.shift();for(const i of e)n.removeChild(i),i.parent=r,i.remove()}run(n){const e=n.children.map(i=>i.hash()),r={};for(let i=0;i<e.length;i++)r[e[i]]===void 0?r[e[i]]=[n.children[i]]:r[e[i]].push(n.children[i]);for(const i of q(r))r[i].length>1&&(this.setModified(),this.mergeNodes(n,r[i]))}}class _P extends Db{constructor(n){super(),this.requiresSelectionId=n&&rb(n)}run(n){n instanceof _a&&(this.requiresSelectionId&&(_b(n.parent)||n.parent instanceof _r||n.parent instanceof Un)||(this.setModified(),n.remove()))}}class kP extends kb{optimize(n){return this.run(n,new Set),this.modifiedFlag}run(n,e){let r=new Set;n instanceof Qr&&(r=n.producedFields(),Dy(r,e)&&(this.setModified(),n.removeFormulas(e),n.producedFields.length===0&&n.remove()));for(const i of n.children)this.run(i,new Set([...e,...r]))}}class DP extends Db{constructor(){super()}run(n){n instanceof ye&&!n.isRequired()&&(this.setModified(),n.remove())}}class FP extends wo{run(n){if(!(_b(n)||n.numChildren()>1)){for(const e of n.children)if(e instanceof Un)if(n instanceof Un)this.setModified(),n.merge(e);else{if(Cy(n.producedFields(),e.dependentFields()))continue;this.setModified(),e.swapWithParent()}}}}class CP extends wo{run(n){const e=[...n.children],r=n.children.filter(i=>i instanceof Un);if(n.numChildren()>1&&r.length>=1){const i={},a=new Set;for(const o of r){const s=o.parse;for(const u of q(s))u in i?i[u]!==s[u]&&a.add(u):i[u]=s[u]}for(const o of a)delete i[o];if(!jt(i)){this.setModified();const o=new Un(n,i);for(const s of e){if(s instanceof Un)for(const u of q(i))delete s.parse[u];n.removeChild(s),s.parent=o,s instanceof Un&&q(s.parse).length===0&&s.remove()}}}}}class EP extends wo{run(n){n instanceof ye||n.numChildren()>0||n instanceof Ns||n instanceof xo||(this.setModified(),n.remove())}}class $P extends wo{run(n){const e=n.children.filter(i=>i instanceof Qr),r=e.pop();for(const i of e)this.setModified(),r.merge(i)}}class SP extends wo{run(n){const e=n.children.filter(i=>i instanceof _r),r={};for(const i of e){const a=wt(i.groupBy);a in r||(r[a]=[]),r[a].push(i)}for(const i of q(r)){const a=r[i];if(a.length>1){const o=a.pop();for(const s of a)o.merge(s)&&(n.removeChild(s),s.parent=o,s.remove(),this.setModified())}}}}class MP extends wo{constructor(n){super(),this.model=n}run(n){const e=!(_b(n)||n instanceof Ts||n instanceof Un||n instanceof _a),r=[],i=[];for(const a of n.children)a instanceof Zr&&(e&&!Cy(n.producedFields(),a.dependentFields())?r.push(a):i.push(a));if(r.length>0){const a=r.pop();for(const o of r)a.merge(o,this.model.renameSignal.bind(this.model));this.setModified(),n instanceof Zr?n.merge(a,this.model.renameSignal.bind(this.model)):a.swapWithParent()}if(i.length>1){const a=i.pop();for(const o of i)a.merge(o,this.model.renameSignal.bind(this.model));this.setModified()}}}class BP extends wo{run(n){const e=[...n.children];if(!ps(e,a=>a instanceof ye)||n.numChildren()<=1)return;const r=[];let i;for(const a of e)if(a instanceof ye){let o=a;for(;o.numChildren()===1;){const[s]=o.children;if(!(s instanceof ye))break;o=s}r.push(...o.children),i?(n.removeChild(a),a.parent=i.parent,i.parent.removeChild(i),i.parent=o,this.setModified()):i=o}else r.push(a);if(r.length){this.setModified();for(const a of r)a.parent.removeChild(a),a.parent=i}}}class Ao extends Nt{clone(){return new Ao(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e}addDimensions(n){this.transform.groupby=Pr(this.transform.groupby.concat(n),e=>e)}dependentFields(){const n=new Set;return this.transform.groupby&&this.transform.groupby.forEach(n.add,n),this.transform.joinaggregate.map(e=>e.field).filter(e=>e!==void 0).forEach(n.add,n),n}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(n){return n.as??Y(n)}hash(){return`JoinAggregateTransform ${wt(this.transform)}`}assemble(){const n=[],e=[],r=[];for(const a of this.transform.joinaggregate)e.push(a.op),r.push(this.getDefaultName(a)),n.push(a.field===void 0?null:a.field);const i=this.transform.groupby;return{type:"joinaggregate",as:r,ops:e,fields:n,...i!==void 0?{groupby:i}:{}}}}class Ls extends Nt{clone(){return new Ls(null,{...this.filter})}constructor(n,e){super(n),this.filter=e}static make(n,e,r){const{config:i,markDef:a}=e,{marks:o,scales:s}=r;if(o==="include-invalid-values"&&s==="include-invalid-values")return null;const u=e.reduceFieldDef((l,c,f)=>{const d=Ir(f)&&e.getScaleComponent(f);if(d){const h=d.get("type"),{aggregate:p}=c,m=pv({scaleChannel:f,markDef:a,config:i,scaleType:h,isCountAggregate:Ud(p)});m!=="show"&&m!=="always-valid"&&(l[c.field]=c)}return l},{});return q(u).length?new Ls(n,u):null}dependentFields(){return new Set(q(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${wt(this.filter)}`}assemble(){const n=q(this.filter).reduce((e,r)=>{const i=this.filter[r],a=Y(i,{expr:"datum"});return i!==null&&(i.type==="temporal"?e.push(`(isDate(${a}) || (${Fb(a)}))`):i.type==="quantitative"&&e.push(Fb(a))),e},[]);return n.length>0?{type:"filter",expr:n.join(" && ")}:null}}function Fb(t){return`isValid(${t}) && isFinite(+${t})`}class zi extends Nt{clone(){return new zi(null,ft(this._stack))}constructor(n,e){super(n),this._stack=e}static makeFromTransform(n,e){const{stack:r,groupby:i,as:a,offset:o="zero"}=e,s=[],u=[];if(e.sort!==void 0)for(const f of e.sort)s.push(f.field),u.push(un(f.order,"ascending"));const l={field:s,order:u};let c;return c=function(f){return P(f)&&f.every(d=>Q(d))&&f.length>1}(a)?a:Q(a)?[a,`${a}_end`]:[`${e.stack}_start`,`${e.stack}_end`],new zi(n,{dimensionFieldDefs:[],stackField:r,groupby:i,offset:o,sort:l,facetby:[],as:c})}static makeFromEncoding(n,e){const r=e.stack,{encoding:i}=e;if(!r)return null;const{groupbyChannels:a,fieldChannel:o,offset:s,impute:u}=r,l=a.map(h=>vr(i[h])).filter(h=>!!h),c=function(h){return h.stack.stackBy.reduce((p,m)=>{const g=Y(m.fieldDef);return g&&p.push(g),p},[])}(e),f=e.encoding.order;let d;if(P(f)||H(f))d=TE(f);else{const h=I3(f)?f.sort:o==="y"?"descending":"ascending";d=c.reduce((p,m)=>(p.field.includes(m)||(p.field.push(m),p.order.push(h)),p),{field:[],order:[]})}return new zi(n,{dimensionFieldDefs:l,stackField:e.vgField(o),facetby:[],stackby:c,sort:d,offset:s,impute:u,as:[e.vgField(o,{suffix:"start",forAs:!0}),e.vgField(o,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(n){this._stack.facetby.push(...n)}dependentFields(){const n=new Set;return n.add(this._stack.stackField),this.getGroupbyFields().forEach(n.add,n),this._stack.facetby.forEach(n.add,n),this._stack.sort.field.forEach(n.add,n),n}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${wt(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:n,impute:e,groupby:r}=this._stack;return n.length>0?n.map(i=>i.bin?e?[Y(i,{binSuffix:"mid"})]:[Y(i,{}),Y(i,{binSuffix:"end"})]:[Y(i)]).flat():r??[]}assemble(){const n=[],{facetby:e,dimensionFieldDefs:r,stackField:i,stackby:a,sort:o,offset:s,impute:u,as:l}=this._stack;if(u)for(const c of r){const{bandPosition:f=.5,bin:d}=c;if(d){const h=Y(c,{expr:"datum"}),p=Y(c,{expr:"datum",binSuffix:"end"});n.push({type:"formula",expr:`${Fb(h)} ? ${f}*${h}+${1-f}*${p} : ${h}`,as:Y(c,{binSuffix:"mid",forAs:!0})})}n.push({type:"impute",field:i,groupby:[...a,...e],key:Y(c,{binSuffix:"mid"}),method:"value",value:0})}return n.push({type:"stack",groupby:[...this.getGroupbyFields(),...e],field:i,sort:o,as:l,offset:s}),n}}class Ps extends Nt{clone(){return new Ps(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e}addDimensions(n){this.transform.groupby=Pr(this.transform.groupby.concat(n),e=>e)}dependentFields(){const n=new Set;return(this.transform.groupby??[]).forEach(n.add,n),(this.transform.sort??[]).forEach(e=>n.add(e.field)),this.transform.window.map(e=>e.field).filter(e=>e!==void 0).forEach(n.add,n),n}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(n){return n.as??Y(n)}hash(){return`WindowTransform ${wt(this.transform)}`}assemble(){const n=[],e=[],r=[],i=[];for(const f of this.transform.window)e.push(f.op),r.push(this.getDefaultName(f)),i.push(f.param===void 0?null:f.param),n.push(f.field===void 0?null:f.field);const a=this.transform.frame,o=this.transform.groupby;if(a&&a[0]===null&&a[1]===null&&e.every(f=>qd(f)))return{type:"joinaggregate",as:r,ops:e,fields:n,...o!==void 0?{groupby:o}:{}};const s=[],u=[];if(this.transform.sort!==void 0)for(const f of this.transform.sort)s.push(f.field),u.push(f.order??"ascending");const l={field:s,order:u},c=this.transform.ignorePeers;return{type:"window",params:i,as:r,ops:e,fields:n,sort:l,...c!==void 0?{ignorePeers:c}:{},...o!==void 0?{groupby:o}:{},...a!==void 0?{frame:a}:{}}}}function Cb(t){if(t instanceof Ns)if(t.numChildren()!==1||t.children[0]instanceof ye){const e=t.model.component.data.main;ES(e);const r=(n=t,function a(o){if(!(o instanceof Ns)){const s=o.clone();if(s instanceof ye){const u=Eb+s.getSource();s.setSource(u),n.model.component.data.outputNodes[u]=s}else(s instanceof _r||s instanceof zi||s instanceof Ps||s instanceof Ao)&&s.addDimensions(n.fields);for(const u of o.children.flatMap(a))u.parent=s;return[s]}return o.children.flatMap(a)}),i=t.children.map(r).flat();for(const a of i)a.parent=e}else{const e=t.children[0];(e instanceof _r||e instanceof zi||e instanceof Ps||e instanceof Ao)&&e.addDimensions(t.fields),e.swapWithParent(),Cb(t)}else t.children.map(Cb);var n}function ES(t){if(t instanceof ye&&t.type===Qt.Main&&t.numChildren()===1){const n=t.children[0];n instanceof Ns||(n.swapWithParent(),ES(t))}}const Eb="scale_";function $b(t){for(const n of t){for(const e of n.children)if(e.parent!==n)return!1;if(!$b(n.children))return!1}return!0}function Ar(t,n){let e=!1;for(const r of n)e=t.optimize(r)||e;return e}function $S(t,n,e){let r=t.sources,i=!1;return i=Ar(new DP,r)||i,i=Ar(new _P(n),r)||i,r=r.filter(a=>a.numChildren()>0),i=Ar(new EP,r)||i,r=r.filter(a=>a.numChildren()>0),e||(i=Ar(new FP,r)||i,i=Ar(new MP(n),r)||i,i=Ar(new kP,r)||i,i=Ar(new CP,r)||i,i=Ar(new SP,r)||i,i=Ar(new $P,r)||i,i=Ar(new AP,r)||i,i=Ar(new BP,r)||i),t.sources=r,i}class _n{constructor(n){Object.defineProperty(this,"signal",{enumerable:!0,get:n})}static fromName(n,e){return new _n(()=>n(e))}}function SS(t){Zt(t)?function(n){const e=n.component.scales;for(const r of q(e)){const i=zP(n,r);if(e[r].setWithExplicit("domains",i),OP(n,r),n.component.data.isFaceted){let a=n;for(;!$e(a)&&a.parent;)a=a.parent;if(a.component.resolve.scale[r]==="shared")for(const o of i.value)_i(o)&&(o.data=Eb+o.data.replace(Eb,""))}}}(t):function(n){for(const r of n.children)SS(r);const e=n.component.scales;for(const r of q(e)){let i,a=null;for(const o of n.children){const s=o.component.scales[r];if(s){i=i===void 0?s.getWithExplicit("domains"):xa(i,s.getWithExplicit("domains"),"domains","scale",Bb);const u=s.get("selectionExtent");a&&u&&a.param!==u.param&&I(zN),a=u}}e[r].setWithExplicit("domains",i),a&&e[r].set("selectionExtent",a,!0)}}(t)}function zP(t,n){const e=t.getScaleComponent(n).get("type"),{encoding:r}=t,i=function(a,o,s,u){if(a==="unaggregated"){const{valid:l,reason:c}=MS(o,s);if(!l)return void I(c)}else if(a===void 0&&u.useUnaggregatedDomain){const{valid:l}=MS(o,s);if(l)return"unaggregated"}return a}(t.scaleDomain(n),t.typedFieldDef(n),e,t.config.scale);return i!==t.scaleDomain(n)&&(t.specifiedScales[n]={...t.specifiedScales[n],domain:i}),n==="x"&&mn(r.x2)?mn(r.x)?xa(Aa(e,i,t,"x"),Aa(e,i,t,"x2"),"domain","scale",Bb):Aa(e,i,t,"x2"):n==="y"&&mn(r.y2)?mn(r.y)?xa(Aa(e,i,t,"y"),Aa(e,i,t,"y2"),"domain","scale",Bb):Aa(e,i,t,"y2"):Aa(e,i,t,n)}function Sb(t,n,e){var i;const r=(i=xn(e))==null?void 0:i.unit;return n==="temporal"||r?function(a,o,s){return a.map(u=>({signal:`{data: ${lh(u,{timeUnit:s,type:o})}}`}))}(t,n,r):[t]}function Aa(t,n,e,r){const{encoding:i,markDef:a,mark:o,config:s,stack:u}=e,l=mn(i[r]),{type:c}=l,f=l.timeUnit,d=function(m){const{marks:g,scales:y}=Z$(m);return g===y?Qt.Main:y==="include-invalid-values"?Qt.PreFilterInvalid:Qt.PostFilterInvalid}({invalid:Wr("invalid",a,s),isPath:ya(o)});if(function(m){return U(m,"unionWith")}(n)){const m=Aa(t,void 0,e,r);return Jr([...Sb(n.unionWith,c,f),...m.value])}if(it(n))return Jr([n]);if(n&&n!=="unaggregated"&&!A3(n))return Jr(Sb(n,c,f));if(u&&r===u.fieldChannel){if(u.offset==="normalize")return xr([[0,1]]);const m=e.requestDataName(d);return xr([{data:m,field:e.vgField(r,{suffix:"start"})},{data:m,field:e.vgField(r,{suffix:"end"})}])}const h=Ir(r)&&H(l)?function(m,g,y){if(!wn(y))return;const v=m.fieldDef(g),x=v.sort;if(j3(x))return{op:"min",field:zs(v,g),order:"ascending"};const{stack:b}=m,w=b?new Set([...b.groupbyFields,...b.stackBy.map(A=>A.fieldDef.field)]):void 0;if(ki(x))return Mb(x,b&&!w.has(x.field));if(function(A){return U(A,"encoding")}(x)){const{encoding:A,order:_}=x,k=m.fieldDef(A),{aggregate:F,field:C}=k,D=b&&!w.has(C);if(Ai(F)||ma(F))return Mb({field:Y(k),order:_},D);if(qd(F)||!F)return Mb({op:F,field:C,order:_},D)}else{if(x==="descending")return{op:"min",field:m.vgField(g),order:"descending"};if(vt(["ascending",void 0],x))return!0}}(e,r,t):void 0;if(Yr(l))return xr(Sb([l.datum],c,f));const p=l;if(n==="unaggregated"){const{field:m}=l;return xr([{data:e.requestDataName(d),field:Y({field:m,aggregate:"min"})},{data:e.requestDataName(d),field:Y({field:m,aggregate:"max"})}])}if(Wt(p.bin)){if(wn(t))return xr(t==="bin-ordinal"?[]:[{data:cl(h)?e.requestDataName(d):e.requestDataName(Qt.Raw),field:e.vgField(r,Dl(p,r)?{binSuffix:"range"}:{}),sort:h!==!0&&Z(h)?h:{field:e.vgField(r,{}),op:"min"}}]);{const{bin:m}=p;if(Wt(m)){const g=Ab(e,p.field,m);return xr([new _n(()=>{const y=e.getSignalName(g);return`[${y}.start, ${y}.stop]`})])}return xr([{data:e.requestDataName(d),field:e.vgField(r,{})}])}}if(p.timeUnit&&vt(["time","utc"],t)){const m=i[Ur(r)];if(U3(p,m,a,s)){const g=e.requestDataName(d),y=va({fieldDef:p,fieldDef2:m,markDef:a,config:s}),v=bl(o)&&y!==.5&&ln(r);return xr([{data:g,field:e.vgField(r,v?{suffix:vh}:{})},{data:g,field:e.vgField(r,{suffix:v?bh:"end"})}])}}return xr(h?[{data:cl(h)?e.requestDataName(d):e.requestDataName(Qt.Raw),field:e.vgField(r),sort:h}]:[{data:e.requestDataName(d),field:e.vgField(r)}])}function Mb(t,n){const{op:e,field:r,order:i}=t;return{op:e??(n?"sum":nh),...r?{field:He(r)}:{},...i?{order:i}:{}}}function OP(t,n){var s;const e=t.component.scales[n],r=t.specifiedScales[n].domain,i=(s=t.fieldDef(n))==null?void 0:s.bin,a=A3(r)?r:void 0,o=io(i)&&Id(i.extent)?i.extent:void 0;(a||o)&&e.set("selectionExtent",a??o,!0)}function MS(t,n){const{aggregate:e,type:r}=t;return e?Q(e)&&!FN.has(e)?{valid:!1,reason:LN(e)}:r==="quantitative"&&n==="log"?{valid:!1,reason:qN(t)}:{valid:!0}:{valid:!1,reason:jN(t)}}function Bb(t,n,e,r){return t.explicit&&n.explicit&&I(function(i,a,o,s){return`Conflicting ${a.toString()} property "${i.toString()}" (${Lt(o)} and ${Lt(s)}). Using the union of the two domains.`}(e,r,t.value,n.value)),{explicit:t.explicit,value:[...t.value,...n.value]}}function NP(t){const n=Pr(t.map(o=>{if(_i(o)){const{sort:s,...u}=o;return u}return o}),wt),e=Pr(t.map(o=>{if(_i(o)){const s=o.sort;return s===void 0||cl(s)||("op"in s&&s.op==="count"&&delete s.field,s.order==="ascending"&&delete s.order),s}}).filter(o=>o!==void 0),wt);if(n.length===0)return;if(n.length===1){const o=t[0];if(_i(o)&&e.length>0){let s=e[0];if(e.length>1){I(ZE);const u=e.filter(l=>Z(l)&&"op"in l&&l.op!=="min");s=!e.every(l=>Z(l)&&"op"in l)||u.length!==1||u[0]}else if(Z(s)&&"field"in s){const u=s.field;o.field===u&&(s=!s.order||{order:s.order})}return{...o,sort:s}}return o}const r=Pr(e.map(o=>cl(o)||!("op"in o)||Q(o.op)&&tt(_N,o.op)?o:(I(function(s){return`Dropping sort property ${Lt(s)} as unioned domains only support boolean or op "count", "min", and "max".`}(o)),!0)),wt);let i;r.length===1?i=r[0]:r.length>1&&(I(ZE),i=!0);const a=Pr(t.map(o=>_i(o)?o.data:null),o=>o);return a.length===1&&a[0]!==null?{data:a[0],fields:n.map(o=>o.field),...i?{sort:i}:{}}:{fields:n,...i?{sort:i}:{}}}function zb(t){if(_i(t)&&Q(t.field))return t.field;if(function(n){return!P(n)&&U(n,"fields")&&!U(n,"data")}(t)){let n;for(const e of t.fields)if(_i(e)&&Q(e.field))if(n){if(n!==e.field)return I("Detected faceted independent scales that union domain of multiple fields from different data sources. We will use the first field. The result view size may be incorrect."),n}else n=e.field;return I("Detected faceted independent scales that union domain of the same fields from different source. We will assume that this is the same field from a different fork of the same data source. However, if this is not the case, the result view size may be incorrect."),n}if(function(n){return!P(n)&&U(n,"fields")&&U(n,"data")}(t)){I("Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.");const n=t.fields[0];return Q(n)?n:void 0}}function Oh(t,n){const e=t.component.scales[n].get("domains").map(r=>(_i(r)&&(r.data=t.lookupDataSource(r.data)),r));return NP(e)}function BS(t){return Rs(t)||Nb(t)?t.children.reduce((n,e)=>n.concat(BS(e)),zS(t)):zS(t)}function zS(t){return q(t.component.scales).reduce((n,e)=>{const r=t.component.scales[e];if(r.merged)return n;const i=r.combine(),{name:a,type:o,selectionExtent:s,domains:u,range:l,reverse:c,...f}=i,d=function(m,g,y,v){if(ln(y)){if(ao(m))return{step:{signal:`${g}_step`}}}else if(Z(m)&&_i(m))return{...m,data:v.lookupDataSource(m.data)};return m}(i.range,a,e,t),h=Oh(t,e),p=s?function(m,g,y,v){const x=J5(m,g.param,g);return{signal:mr(y.get("type"))&&P(v)&&v[0]>v[1]?`isValid(${x}) && reverse(${x})`:x}}(t,s,r,h):null;return n.push({name:a,type:o,...h?{domain:h}:{},...p?{domainRaw:p}:{},range:d,...c!==void 0?{reverse:c}:{},...f}),n},[])}class OS extends Bi{constructor(n,e){super({},{name:n}),this.merged=!1,this.setWithExplicit("type",e)}domainHasZero(){const n=this.get("type");if(vt([XN,av,Yd],n))return"definitely-not";const e=this.get("zero");if(e===!0||e===void 0&&vt([m3,KN,JN],n))return"definitely";const r=this.get("domains");if(r.length>0){let i=!1,a=!1,o=!1;for(const s of r){if(P(s)){const u=s[0],l=s[s.length-1];if($t(u)&&$t(l)){if(u<=0&&l>=0){i=!0;continue}a=!0;continue}}o=!0}if(i)return"definitely";if(a&&!o)return"definitely-not"}return"maybe"}}const RP=["range","scheme"];function NS(t,n){const e=t.fieldDef(n);if(e!=null&&e.bin){const{bin:r,field:i}=e,a=ge(n),o=t.getName(a);if(Z(r)&&r.binned&&r.step!==void 0)return new _n(()=>{const s=t.scaleName(n),u=`(domain("${s}")[1] - domain("${s}")[0]) / ${r.step}`;return`${t.getSignalName(o)} / (${u})`});if(Wt(r)){const s=Ab(t,i,r);return new _n(()=>{const u=t.getSignalName(s),l=`(${u}.stop - ${u}.start) / ${u}.step`;return`${t.getSignalName(o)} / (${l})`})}}}function TP(t,n){const e=n.specifiedScales[t],{size:r}=n,i=n.getScaleComponent(t).get("type");for(const c of RP)if(e[c]!==void 0){const f=uv(i,c),d=_3(t,c);if(f)if(d)I(d);else switch(c){case"range":{const h=e.range;if(P(h)){if(ln(t))return Jr(h.map(p=>{if(p==="width"||p==="height"){const m=n.getName(p),g=n.getSignalName.bind(n);return _n.fromName(g,m)}return p}))}else if(Z(h))return Jr({data:n.requestDataName(Qt.Main),field:h.field,sort:{op:"min",field:n.vgField(t)}});return Jr(h)}case"scheme":return Jr(PP(e[c]))}else I(KE(i,c,t))}const a=t===Jt||t==="xOffset"?"width":"height",o=r[a];if(Xr(o)){if(ln(t))if(wn(i)){const c=TS(o,n,t);if(c)return Jr({step:c})}else I(QE(a));else if(gl(t)){const c=t===ua?"x":"y";if(n.getScaleComponent(c).get("type")==="band"){const f=PS(o,i);if(f)return Jr(f)}}}const{rangeMin:s,rangeMax:u}=e,l=function(c,f){const{size:d,config:h,mark:p,encoding:m}=f,{type:g}=mn(m[c]),y=f.getScaleComponent(c),v=y.get("type"),{domain:x,domainMid:b}=f.specifiedScales[c];switch(c){case Jt:case bn:if(vt(["point","band"],v)){const w=jS(c,d,h.view);if(Xr(w))return{step:TS(w,f,c)}}return RS(c,f,v);case ua:case ys:return function(w,A,_){const k=w===ua?"x":"y",F=A.getScaleComponent(k);if(!F)return RS(k,A,_,{center:!0});const C=F.get("type"),D=A.scaleName(k),{markDef:E,config:$}=A;if(C==="band"){const M=jS(k,A.size,A.config.view);if(Xr(M)){const S=PS(M,_);if(S)return S}return[0,{signal:`bandwidth('${D}')`}]}{const M=A.encoding[k];if(H(M)&&M.timeUnit){const S=c3(M.timeUnit,W=>`scale('${D}', ${W})`),B=A.config.scale.bandWithNestedOffsetPaddingInner,z=va({fieldDef:M,markDef:E,config:$})-.5,N=z!==0?` + ${z}`:"";return B?[{signal:`${it(B)?`${B.signal}/2`+N:`${B/2+z}`} * (${S})`},{signal:`${it(B)?`(1 - ${B.signal}/2)`+N:`${1-B/2+z}`} * (${S})`}]:[0,{signal:S}]}return sE(`Cannot use ${w} scale if ${k} scale is not discrete.`)}}(c,f,v);case bi:{const w=function(_,k){switch(_){case"bar":case"tick":return k.scale.minBandSize;case"line":case"trail":case"rule":return k.scale.minStrokeWidth;case"text":return k.scale.minFontSize;case"point":case"square":case"circle":return k.scale.minSize}throw new Error(Wd("size",_))}(p,h),A=function(_,k,F,C){const D={x:NS(F,"x"),y:NS(F,"y")};switch(_){case"bar":case"tick":{if(C.scale.maxBandSize!==void 0)return C.scale.maxBandSize;const E=qS(k,D,C.view);return $t(E)?E-1:new _n(()=>`${E.signal} - 1`)}case"line":case"trail":case"rule":return C.scale.maxStrokeWidth;case"text":return C.scale.maxFontSize;case"point":case"square":case"circle":{if(C.scale.maxSize)return C.scale.maxSize;const E=qS(k,D,C.view);return $t(E)?Math.pow(LS*E,2):new _n(()=>`pow(${LS} * ${E.signal}, 2)`)}}throw new Error(Wd("size",_))}(p,d,f,h);return As(v)?function(_,k,F){const C=()=>{const D=pr(k),E=pr(_),$=`(${D} - ${E}) / (${F} - 1)`;return`sequence(${E}, ${D} + ${$}, ${$})`};return it(k)?new _n(C):{signal:C()}}(w,A,function(_,k,F,C){switch(_){case"quantile":return k.scale.quantileCount;case"quantize":return k.scale.quantizeCount;case"threshold":return F!==void 0&&P(F)?F.length+1:(I(function(D){return`Domain for ${D} is required for threshold scale.`}(C)),3)}}(v,h,x,c)):[w,A]}case Ge:return[0,2*Math.PI];case no:return[0,360];case cr:return[0,new _n(()=>`min(${f.getSignalName($e(f.parent)?"child_width":"width")},${f.getSignalName($e(f.parent)?"child_height":"height")})/2`)];case la:return{step:1e3/h.scale.framesPerSecond};case da:return[h.scale.minStrokeWidth,h.scale.maxStrokeWidth];case ha:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case me:return"symbol";case pe:case Lr:case qr:return v==="ordinal"?g==="nominal"?"category":"ordinal":b!==void 0?"diverging":p==="rect"||p==="geoshape"?"heatmap":"ramp";case xi:case ca:case fa:return[h.scale.minOpacity,h.scale.maxOpacity]}}(t,n);return(s!==void 0||u!==void 0)&&uv(i,"rangeMin")&&P(l)&&l.length===2?Jr([s??l[0],u??l[1]]):xr(l)}function PP(t){return function(n){return!Q(n)&&U(n,"name")}(t)?{scheme:t.name,...he(t,["name"])}:{scheme:t}}function RS(t,n,e,{center:r}={}){const i=ge(t),a=n.getName(i),o=n.getSignalName.bind(n);return t===bn&&mr(e)?r?[_n.fromName(s=>`${o(s)}/2`,a),_n.fromName(s=>`-${o(s)}/2`,a)]:[_n.fromName(o,a),0]:r?[_n.fromName(s=>`-${o(s)}/2`,a),_n.fromName(s=>`${o(s)}/2`,a)]:[0,_n.fromName(o,a)]}function TS(t,n,e){const{encoding:r}=n,i=n.getScaleComponent(e),a=By(e),o=r[a];if(k$({step:t,offsetIsDiscrete:ht(o)&&p3(o.type)})==="offset"&&r$(r,a)){const s=n.getScaleComponent(a);let u=`domain('${n.scaleName(a)}').length`;s.get("type")==="band"&&(u=`bandspace(${u}, ${s.get("paddingInner")??s.get("padding")??0}, ${s.get("paddingOuter")??s.get("padding")??0})`);const l=i.get("paddingInner")??i.get("padding");return{signal:`${t.step} * ${u} / (1-${$N(l)})`}}return t.step}function PS(t,n){if(k$({step:t,offsetIsDiscrete:wn(n)})==="offset")return{step:t.step}}function jS(t,n,e){const r=t===Jt?"width":"height";return n[r]||mh(e,r)}const LS=.95;function qS(t,n,e){const r=Xr(t.width)?t.width.step:Tv(e,"width"),i=Xr(t.height)?t.height.step:Tv(e,"height");return n.x||n.y?new _n(()=>`min(${[n.x?n.x.signal:r,n.y?n.y.signal:i].join(", ")})`):Math.min(r,i)}function US(t,n){Zt(t)?function(e,r){const i=e.component.scales,{config:a,encoding:o,markDef:s,specifiedScales:u}=e;for(const l of q(i)){const c=u[l],f=i[l],d=e.getScaleComponent(l),h=mn(o[l]),p=c[r],m=d.get("type"),g=d.get("padding"),y=d.get("paddingInner"),v=uv(m,r),x=_3(l,r);if(p!==void 0&&(v?x&&I(x):I(KE(m,r,l))),v&&x===void 0)if(p!==void 0){const b=h.timeUnit,w=h.type;switch(r){case"domainMax":case"domainMin":oo(c[r])||w==="temporal"||b?f.set(r,{signal:lh(c[r],{type:w,timeUnit:b})},!0):f.set(r,c[r],!0);break;default:f.copyKeyFromObject(r,c)}}else{const b=U(IS,r)?IS[r]({model:e,channel:l,fieldOrDatumDef:h,scaleType:m,scalePadding:g,scalePaddingInner:y,domain:c.domain,domainMin:c.domainMin,domainMax:c.domainMax,markDef:s,config:a,hasNestedOffsetScale:i$(o,l),hasSecondaryRangeChannel:!!o[Ur(l)]}):a.scale[r];b!==void 0&&f.set(r,b,!1)}}}(t,n):HS(t,n)}const IS={bins:({model:t,fieldOrDatumDef:n})=>H(n)?function(e,r){const i=r.bin;if(Wt(i)){const a=Ab(e,r.field,i);return new _n(()=>e.getSignalName(a))}if($n(i)&&io(i)&&i.step!==void 0)return{step:i.step}}(t,n):void 0,interpolate:({channel:t,fieldOrDatumDef:n})=>function(e,r){if(vt([pe,Lr,qr],e)&&r!=="nominal")return"hcl"}(t,n.type),nice:({scaleType:t,channel:n,domain:e,domainMin:r,domainMax:i,fieldOrDatumDef:a})=>function(o,s,u,l,c,f){var d;if(!((d=vr(f))!=null&&d.bin||P(u)||c!=null||l!=null||vt([av,Yd],o)))return!!ln(s)||void 0}(t,n,e,r,i,a),padding:({channel:t,scaleType:n,fieldOrDatumDef:e,markDef:r,config:i})=>function(a,o,s,u,l,c){if(ln(a)){if(Gr(o)){if(s.continuousPadding!==void 0)return s.continuousPadding;const{type:f,orient:d}=l;if(f==="bar"&&(!H(u)||!u.bin&&!u.timeUnit)&&(d==="vertical"&&a==="x"||d==="horizontal"&&a==="y"))return c.continuousBandSize}if(o===g3)return s.pointPadding}}(t,n,i.scale,e,r,i.bar),paddingInner:({scalePadding:t,channel:n,markDef:e,scaleType:r,config:i,hasNestedOffsetScale:a})=>function(o,s,u,l,c,f=!1){if(o===void 0){if(ln(s)){const{bandPaddingInner:d,barBandPaddingInner:h,rectBandPaddingInner:p,tickBandPaddingInner:m,bandWithNestedOffsetPaddingInner:g}=c;return f?g:un(d,u==="bar"?h:u==="tick"?m:p)}if(gl(s)&&l===ov)return c.offsetBandPaddingInner}}(t,n,e.type,r,i.scale,a),paddingOuter:({scalePadding:t,channel:n,scaleType:e,scalePaddingInner:r,config:i,hasNestedOffsetScale:a})=>function(o,s,u,l,c,f=!1){if(o===void 0){if(ln(s)){const{bandPaddingOuter:d,bandWithNestedOffsetPaddingOuter:h}=c;if(f)return h;if(u===ov)return un(d,it(l)?{signal:`${l.signal}/2`}:l/2)}else if(gl(s)){if(u===g3)return .5;if(u===ov)return c.offsetBandPaddingOuter}}}(t,n,e,r,i.scale,a),reverse:({fieldOrDatumDef:t,scaleType:n,channel:e,config:r})=>function(i,a,o,s){if(o==="x"&&s.xReverse!==void 0)return mr(i)&&a==="descending"?it(s.xReverse)?{signal:`!${s.xReverse.signal}`}:!s.xReverse:s.xReverse;if(mr(i)&&a==="descending")return!0}(n,H(t)?t.sort:void 0,e,r.scale),zero:({channel:t,fieldOrDatumDef:n,domain:e,markDef:r,scaleType:i,config:a,hasSecondaryRangeChannel:o})=>function(s,u,l,c,f,d,h){if(l&&l!=="unaggregated"&&mr(f)){if(P(l)){const p=l[0],m=l[l.length-1];if($t(p)&&p<=0&&$t(m)&&m>=0)return!0}return!1}if(s==="size"&&u.type==="quantitative"&&!As(f))return!0;if((!H(u)||!u.bin)&&vt([...wi,...vN],s)){const{orient:p,type:m}=c;return(!vt(["bar","area","line","trail"],m)||!(p==="horizontal"&&s==="y"||p==="vertical"&&s==="x"))&&(!(!vt(["bar","area"],m)||h)||(d==null?void 0:d.zero))}return!1}(t,n,e,r,i,a.scale,o)};function WS(t){Zt(t)?function(n){const e=n.component.scales;for(const r of Ty){const i=e[r];if(!i)continue;const a=TP(r,n);i.setWithExplicit("range",a)}}(t):HS(t,"range")}function HS(t,n){const e=t.component.scales;for(const r of t.children)n==="range"?WS(r):US(r,n);for(const r of q(e)){let i;for(const a of t.children){const o=a.component.scales[r];o&&(i=xa(i,o.getWithExplicit(n),n,"scale",X$((s,u)=>n==="range"&&s.step&&u.step?s.step-u.step:0)))}e[r].setWithExplicit(n,i)}}function jP(t,n,e,r,i=!1){const a=function(l,c,f,d){var h;switch(c.type){case"nominal":case"ordinal":if(bs(l)||Py(l)==="discrete")return l==="shape"&&c.type==="ordinal"&&I(Hy(l,"ordinal")),"ordinal";if(Ry(l))return"band";if(ln(l)||gl(l)){if(vt(["rect","bar","image","rule","tick"],f.type)||d)return"band"}else if(f.type==="arc"&&l in Ny)return"band";return co(f[ge(l)])||ks(c)&&((h=c.axis)!=null&&h.tickBand)?"band":"point";case"temporal":return bs(l)?"time":Py(l)==="discrete"?(I(Hy(l,"temporal")),"ordinal"):H(c)&&c.timeUnit&&xn(c.timeUnit).utc?"utc":Ry(l)?"band":"time";case"quantitative":return bs(l)?H(c)&&Wt(c.bin)?"bin-ordinal":"linear":Py(l)==="discrete"?(I(Hy(l,"quantitative")),"ordinal"):Ry(l)?"band":"linear";case"geojson":return}throw new Error(XE(c.type))}(n,e,r,i),{type:o}=t;return Ir(n)?o!==void 0?function(l,c,f=!1){if(!Ir(l))return!1;switch(l){case Jt:case bn:case ua:case ys:case Ge:case cr:return!!Gr(c)||c==="band"||c==="point"&&!f;case la:return vt(["linear","band"],c);case bi:case da:case xi:case ca:case fa:case no:return Gr(c)||As(c)||vt(["band","point","ordinal"],c);case pe:case Lr:case qr:return c!=="band";case ha:case me:return c==="ordinal"||As(c)}}(n,o)?H(e)&&(s=o,u=e.type,!(vt([rv,iv],u)?s===void 0||wn(s):u===xs?vt([av,Yd,void 0],s):u!==lo||x3(s)||As(s)||s===void 0))?(I(function(l,c){return`FieldDef does not work with "${l}" scale. We are using "${c}" scale instead.`}(o,a)),a):o:(I(function(l,c,f){return`Channel "${l}" does not work with "${c}" scale. We are using "${f}" scale instead.`}(n,o,a)),a):a:null;var s,u}function GS(t){Zt(t)?t.component.scales=function(n){const{encoding:e,mark:r,markDef:i}=n,a={};for(const o of Ty){const s=mn(e[o]);if(s&&r===F3&&o===me&&s.type===ws)continue;let u=s&&s.scale;if(s&&u!==null&&u!==!1){u??(u={});const l=jP(u,o,s,i,i$(e,o));a[o]=new OS(n.scaleName(`${o}`,!0),{value:l,explicit:u.type===l})}}return a}(t):t.component.scales=function(n){var e;const r=n.component.scales={},i={},a=n.component.resolve;for(const o of n.children){GS(o);for(const s of q(o.component.scales))if((e=a.scale)[s]??(e[s]=cS(s,n)),a.scale[s]==="shared"){const u=i[s],l=o.component.scales[s].getWithExplicit("type");u?QN(u.value,l.value)?i[s]=xa(u,l,"type","scale",LP):(a.scale[s]="independent",delete i[s]):i[s]=l}}for(const o of q(i)){const s=n.scaleName(o,!0),u=i[o];r[o]=new OS(s,u);for(const l of n.children){const c=l.component.scales[o];c&&(l.renameScale(c.get("name"),s),c.merged=!0)}}return r}(t)}const LP=X$((t,n)=>y3(t)-y3(n));class Ob{constructor(){this.nameMap={}}rename(n,e){this.nameMap[n]=e}has(n){return this.nameMap[n]!==void 0}get(n){for(;this.nameMap[n]&&n!==this.nameMap[n];)n=this.nameMap[n];return n}}function Zt(t){return(t==null?void 0:t.type)==="unit"}function $e(t){return(t==null?void 0:t.type)==="facet"}function Nb(t){return(t==null?void 0:t.type)==="concat"}function Rs(t){return(t==null?void 0:t.type)==="layer"}class Rb{constructor(n,e,r,i,a,o,s){this.type=e,this.parent=r,this.config=a,this.parent=r,this.config=a,this.view=Sn(s),this.name=n.name??i,this.title=ga(n.title)?{text:n.title}:n.title?Sn(n.title):void 0,this.scaleNameMap=r?r.scaleNameMap:new Ob,this.projectionNameMap=r?r.projectionNameMap:new Ob,this.signalNameMap=r?r.signalNameMap:new Ob,this.data=n.data,this.description=n.description,this.transforms=function(u){return u.map(l=>Uv(l)?{filter:ds(l.filter,VN)}:l)}(n.transform??[]),this.layout=e==="layer"||e==="unit"?{}:function(u,l,c){const f=c[l],d={},{spacing:h,columns:p}=f;h!==void 0&&(d.spacing=h),p!==void 0&&(eh(u)&&!Al(u.facet)||Ov(u))&&(d.columns=p),ph(u)&&(d.columns=1);for(const m of CR)if(u[m]!==void 0)if(m==="spacing"){const g=u[m];d[m]=$t(g)?g:{row:g.row??h,column:g.column??h}}else d[m]=u[m];return d}(n,e,a),this.component={data:{sources:r?r.component.data.sources:[],outputNodes:r?r.component.data.outputNodes:{},outputNodeRefCounts:r?r.component.data.outputNodeRefCounts:{},isFaceted:eh(n)||(r==null?void 0:r.component.data.isFaceted)&&n.data===void 0},layoutSize:new Bi,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:{scale:{},axis:{},legend:{},...o?ft(o):{}},selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}parse(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}parseScale(){(function(n,{ignoreRange:e}={}){GS(n),SS(n);for(const r of rR)US(n,r);e||WS(n)})(this)}parseProjection(){_S(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){vS(this)}assembleEncodeFromView(n){const{style:e,...r}=n,i={};for(const a of q(r)){const o=r[a];o!==void 0&&(i[a]=Gt(o))}return i}assembleGroupEncodeEntry(n){let e={};return this.view&&(e=this.assembleEncodeFromView(this.view)),n||(this.description&&(e.description=Gt(this.description)),this.type!=="unit"&&this.type!=="layer")?jt(e)?void 0:e:{width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height"),...e}}assembleLayout(){if(!this.layout)return;const{spacing:n,...e}=this.layout,{component:r,config:i}=this,a=function(o,s){const u={};for(const l of Ye){const c=o[l];if(c!=null&&c.facetFieldDef){const{titleAnchor:f,titleOrient:d}=Bh(["titleAnchor","titleOrient"],c.facetFieldDef.header,s,l),h=Mh(l,d),p=uP(f,h);p!==void 0&&(u[h]=p)}}return jt(u)?void 0:u}(r.layoutHeaders,i);return{padding:n,...this.assembleDefaultLayout(),...e,...a?{titleBand:a}:{}}}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:n}=this.component;let e=[];for(const r of Ye)n[r].title&&e.push(rP(this,r));for(const r of gb)e=e.concat(iP(this,r));return e}assembleAxes(){return function(n,e){const{x:r=[],y:i=[]}=n;return[...r.map(a=>Rl(a,"grid",e)),...i.map(a=>Rl(a,"grid",e)),...r.map(a=>Rl(a,"main",e)),...i.map(a=>Rl(a,"main",e))].filter(a=>a)}(this.component.axes,this.config)}assembleLegends(){return xS(this)}assembleProjections(){return mP(this)}assembleTitle(){const{encoding:n,...e}=this.title??{},r={...ME(this.config.title).nonMarkTitleProperties,...e,...n?{encode:{update:n}}:{}};if(r.text)return vt(["unit","layer"],this.type)?vt(["middle",void 0],r.anchor)&&(r.frame??(r.frame="group")):r.anchor??(r.anchor="start"),jt(r)?void 0:r}assembleGroup(n=[]){const e={};(n=n.concat(this.assembleSignals())).length>0&&(e.signals=n);const r=this.assembleLayout();r&&(e.layout=r),e.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const i=!this.parent||$e(this.parent)?BS(this):[];i.length>0&&(e.scales=i);const a=this.assembleAxes();a.length>0&&(e.axes=a);const o=this.assembleLegends();return o.length>0&&(e.legends=o),e}getName(n){return Xt((this.name?`${this.name}_`:"")+n)}getDataName(n){return this.getName(Qt[n].toLowerCase())}requestDataName(n){const e=this.getDataName(n),r=this.component.data.outputNodeRefCounts;return r[e]=(r[e]||0)+1,e}getSizeSignalRef(n){if($e(this.parent)){const e=Ld(uS(n)),r=this.component.scales[e];if(r&&!r.merged){const i=r.get("type"),a=r.get("range");if(wn(i)&&ao(a)){const o=r.get("name"),s=zb(Oh(this,e));return s?{signal:sS(o,r,Y({aggregate:"distinct",field:s},{expr:"datum"}))}:(I(Uy(e)),null)}}}return{signal:this.signalNameMap.get(this.getName(n))}}lookupDataSource(n){const e=this.component.data.outputNodes[n];return e?e.getSource():n}getSignalName(n){return this.signalNameMap.get(n)}renameSignal(n,e){this.signalNameMap.rename(n,e)}renameScale(n,e){this.scaleNameMap.rename(n,e)}renameProjection(n,e){this.projectionNameMap.rename(n,e)}scaleName(n,e){return e?this.getName(n):wE(n)&&Ir(n)&&this.component.scales[n]||this.scaleNameMap.has(this.getName(n))?this.scaleNameMap.get(this.getName(n)):void 0}projectionName(n){return n?this.getName("projection"):this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection"))?this.projectionNameMap.get(this.getName("projection")):void 0}getScaleComponent(n){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");const e=this.component.scales[n];return e&&!e.merged?e:this.parent?this.parent.getScaleComponent(n):void 0}getScaleType(n){const e=this.getScaleComponent(n);return e?e.get("type"):void 0}getSelectionComponent(n,e){let r=this.component.selection[n];if(!r&&this.parent&&(r=this.parent.getSelectionComponent(n,e)),!r)throw new Error(`Cannot find a selection named "${e}".`);return r}hasAxisOrientSignalRef(){var n,e;return((n=this.component.axes.x)==null?void 0:n.some(r=>r.hasOrientSignalRef()))||((e=this.component.axes.y)==null?void 0:e.some(r=>r.hasOrientSignalRef()))}}class VS extends Rb{vgField(n,e={}){const r=this.fieldDef(n);if(r)return Y(r,e)}reduceFieldDef(n,e){return function(r,i,a,o){return r?q(r).reduce((s,u)=>{const l=r[u];return P(l)?l.reduce((c,f)=>i.call(o,c,f,u),s):i.call(o,s,l,u)},a):a}(this.getMapping(),(r,i,a)=>{const o=vr(i);return o?n(r,o,a):r},e)}forEachFieldDef(n,e){kv(this.getMapping(),(r,i)=>{const a=vr(r);a&&n(a,i)},e)}}class Lh extends Nt{clone(){return new Lh(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e,this.transform=ft(e);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??"value",r[1]??"density"];const i=this.transform.resolve??"shared";this.transform.resolve=i}dependentFields(){return new Set([this.transform.density,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${wt(this.transform)}`}assemble(){const{density:n,...e}=this.transform,r={type:"kde",field:n,...e};return r.resolve=this.transform.resolve,r}}class qh extends Nt{clone(){return new qh(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e,this.transform=ft(e)}dependentFields(){return new Set([this.transform.extent])}producedFields(){return new Set([])}hash(){return`ExtentTransform ${wt(this.transform)}`}assemble(){const{extent:n,param:e}=this.transform;return{type:"extent",field:n,signal:e}}}class Uh extends Nt{clone(){return new Uh(this.parent,ft(this.transform))}constructor(n,e){super(n),this.transform=e,this.transform=ft(e);const{flatten:r,as:i=[]}=this.transform;this.transform.as=r.map((a,o)=>i[o]??a)}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${wt(this.transform)}`}assemble(){const{flatten:n,as:e}=this.transform;return{type:"flatten",fields:n,as:e}}}class Ih extends Nt{clone(){return new Ih(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e,this.transform=ft(e);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??"key",r[1]??"value"]}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${wt(this.transform)}`}assemble(){const{fold:n,as:e}=this.transform;return{type:"fold",fields:n,as:e}}}class qs extends Nt{clone(){return new qs(null,ft(this.fields),this.geojson,this.signal)}static parseAll(n,e){if(e.component.projection&&!e.component.projection.isFit)return n;let r=0;for(const i of[[dr,fr],[Ve,hr]]){const a=i.map(o=>{const s=mn(e.encoding[o]);return H(s)?s.field:Yr(s)?{expr:`${s.datum}`}:yr(s)?{expr:`${s.value}`}:void 0});(a[0]||a[1])&&(n=new qs(n,a,null,e.getName("geojson_"+r++)))}if(e.channelHasField(me)){const i=e.typedFieldDef(me);i.type===ws&&(n=new qs(n,null,i.field,e.getName("geojson_"+r++)))}return n}constructor(n,e,r,i){super(n),this.fields=e,this.geojson=r,this.signal=i}dependentFields(){const n=(this.fields??[]).filter(Q);return new Set([...this.geojson?[this.geojson]:[],...n])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${wt(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],{type:"geojson",...this.fields?{fields:this.fields}:{},...this.geojson?{geojson:this.geojson}:{},signal:this.signal}]}}class ql extends Nt{clone(){return new ql(null,this.projection,ft(this.fields),ft(this.as))}constructor(n,e,r,i){super(n),this.projection=e,this.fields=r,this.as=i}static parseAll(n,e){if(!e.projectionName())return n;for(const r of[[dr,fr],[Ve,hr]]){const i=r.map(o=>{const s=mn(e.encoding[o]);return H(s)?s.field:Yr(s)?{expr:`${s.datum}`}:yr(s)?{expr:`${s.value}`}:void 0}),a=r[0]===Ve?"2":"";(i[0]||i[1])&&(n=new ql(n,e.projectionName(),i,[e.getName(`x${a}`),e.getName(`y${a}`)]))}return n}dependentFields(){return new Set(this.fields.filter(Q))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${wt(this.fields)} ${wt(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class _o extends Nt{clone(){return new _o(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e}dependentFields(){return new Set([this.transform.impute,this.transform.key,...this.transform.groupby??[]])}producedFields(){return new Set([this.transform.impute])}processSequence(n){const{start:e=0,stop:r,step:i}=n;return{signal:`sequence(${[e,r,...i?[i]:[]].join(",")})`}}static makeFromTransform(n,e){return new _o(n,e)}static makeFromEncoding(n,e){const r=e.encoding,i=r.x,a=r.y;if(H(i)&&H(a)){const o=i.impute?i:a.impute?a:void 0;if(o===void 0)return;const s=i.impute?a:a.impute?i:void 0,{method:u,value:l,frame:c,keyvals:f}=o.impute,d=s$(e.mark,r);return new _o(n,{impute:o.field,key:s.field,...u?{method:u}:{},...l!==void 0?{value:l}:{},...c?{frame:c}:{},...f!==void 0?{keyvals:f}:{},...d.length?{groupby:d}:{}})}return null}hash(){return`Impute ${wt(this.transform)}`}assemble(){const{impute:n,key:e,keyvals:r,method:i,groupby:a,value:o,frame:s=[null,null]}=this.transform,u={type:"impute",field:n,key:e,...r?{keyvals:(l=r,U(l,"stop")?this.processSequence(r):r)}:{},method:"value",...a?{groupby:a}:{},value:i&&i!=="value"?null:o};var l;return i&&i!=="value"?[u,{type:"window",as:[`imputed_${n}_value`],ops:[i],fields:[n],frame:s,ignorePeers:!1,...a?{groupby:a}:{}},{type:"formula",expr:`datum.${n} === null ? datum.imputed_${n}_value : datum.${n}`,as:n}]:[u]}}class Wh extends Nt{clone(){return new Wh(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e,this.transform=ft(e);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??e.on,r[1]??e.loess]}dependentFields(){return new Set([this.transform.loess,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${wt(this.transform)}`}assemble(){const{loess:n,on:e,...r}=this.transform;return{type:"loess",x:e,y:n,...r}}}class Ul extends Nt{clone(){return new Ul(null,ft(this.transform),this.secondary)}constructor(n,e,r){super(n),this.transform=e,this.secondary=r}static make(n,e,r,i){const a=e.component.data.sources,{from:o}=r;let s=null;if(function(u){return U(u,"data")}(o)){let u=KS(o.data,a);u||(u=new xo(o.data),a.push(u));const l=e.getName(`lookup_${i}`);s=new ye(u,l,Qt.Lookup,e.component.data.outputNodeRefCounts),e.component.data.outputNodes[l]=s}else if(function(u){return U(u,"param")}(o)){const u=o.param;let l;r={as:u,...r};try{l=e.getSelectionComponent(Xt(u),u)}catch{throw new Error(`Lookups can only be performed on selection parameters. "${u}" is a variable parameter.`)}if(s=l.materialized,!s)throw new Error(function(c){return`Cannot define and lookup the "${c}" selection in the same view. Try moving the lookup into a second, layered view?`}(u))}return new Ul(n,r,s.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?K(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${wt({transform:this.transform,secondary:this.secondary})}`}assemble(){let n;if(this.transform.from.fields)n={values:this.transform.from.fields,...this.transform.as?{as:K(this.transform.as)}:{}};else{let e=this.transform.as;Q(e)||(I('If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.'),e="_lookup"),n={as:[e]}}return{type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup],...n,...this.transform.default?{default:this.transform.default}:{}}}}class Hh extends Nt{clone(){return new Hh(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e,this.transform=ft(e);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??"prob",r[1]??"value"]}dependentFields(){return new Set([this.transform.quantile,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${wt(this.transform)}`}assemble(){const{quantile:n,...e}=this.transform;return{type:"quantile",field:n,...e}}}class Gh extends Nt{clone(){return new Gh(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e,this.transform=ft(e);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??e.on,r[1]??e.regression]}dependentFields(){return new Set([this.transform.regression,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${wt(this.transform)}`}assemble(){const{regression:n,on:e,...r}=this.transform;return{type:"regression",x:e,y:n,...r}}}class Vh extends Nt{clone(){return new Vh(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e}addDimensions(n){this.transform.groupby=Pr((this.transform.groupby??[]).concat(n),e=>e)}producedFields(){}dependentFields(){return new Set([this.transform.pivot,this.transform.value,...this.transform.groupby??[]])}hash(){return`PivotTransform ${wt(this.transform)}`}assemble(){const{pivot:n,value:e,groupby:r,limit:i,op:a}=this.transform;return{type:"pivot",field:n,value:e,...i!==void 0?{limit:i}:{},...a!==void 0?{op:a}:{},...r!==void 0?{groupby:r}:{}}}}class Yh extends Nt{clone(){return new Yh(null,ft(this.transform))}constructor(n,e){super(n),this.transform=e}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${wt(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function YS(t){let n=0;return function e(r,i){if(r instanceof xo&&!r.isGenerator&&!$s(r.data)&&(t.push(i),i={name:null,source:i.name,transform:[]}),r instanceof Un&&(r.parent instanceof xo&&!i.source?(i.format={...i.format,parse:r.assembleFormatParse()},i.transform.push(...r.assembleTransforms(!0))):i.transform.push(...r.assembleTransforms())),r instanceof Ns)return i.name||(i.name="data_"+n++),!i.source||i.transform.length>0?(t.push(i),r.data=i.name):r.data=i.source,void t.push(...r.assemble());switch((r instanceof Pl||r instanceof jl||r instanceof Ls||r instanceof Ts||r instanceof js||r instanceof ql||r instanceof _r||r instanceof Ul||r instanceof Ps||r instanceof Ao||r instanceof Ih||r instanceof Uh||r instanceof Lh||r instanceof Wh||r instanceof Hh||r instanceof Gh||r instanceof _a||r instanceof Yh||r instanceof Vh||r instanceof qh)&&i.transform.push(r.assemble()),(r instanceof Zr||r instanceof Qr||r instanceof _o||r instanceof zi||r instanceof qs)&&i.transform.push(...r.assemble()),r instanceof ye&&(i.source&&i.transform.length===0?r.setSource(i.source):r.parent instanceof ye?r.setSource(i.name):(i.name||(i.name="data_"+n++),r.setSource(i.name),r.numChildren()===1&&(t.push(i),i={name:null,source:i.name,transform:[]}))),r.numChildren()){case 0:r instanceof ye&&(!i.source||i.transform.length>0)&&t.push(i);break;case 1:e(r.children[0],i);break;default:{i.name||(i.name="data_"+n++);let a=i.name;!i.source||i.transform.length>0?t.push(i):a=i.source;for(const o of r.children)e(o,{name:null,source:a,transform:[]});break}}}}function qP(t){return t==="top"||t==="left"||it(t)?"header":"footer"}function UP(t,n){var o;const{facet:e,config:r,child:i,component:a}=t;if(t.channelHasField(n)){const s=e[n],u=Os("title",null,r,n);let l=Ds(s,r,{allowDisabling:!0,includeDefault:u===void 0||!!u});i.component.layoutHeaders[n].title&&(l=P(l)?l.join(", "):l,l+=` / ${i.component.layoutHeaders[n].title}`,i.component.layoutHeaders[n].title=null);const c=Os("labelOrient",s.header,r,n),f=s.header!==null&&un((o=s.header)==null?void 0:o.labels,r.header.labels,!0),d=vt(["bottom","right"],c)?"footer":"header";a.layoutHeaders[n]={title:s.header!==null?l:null,facetFieldDef:s,[d]:n==="facet"?[]:[XS(t,n,f)]}}}function XS(t,n,e){const r=n==="row"?"height":"width";return{labels:e,sizeSignal:t.child.component.layoutSize.get(r)?t.child.getSizeSignalRef(r):void 0,axes:[]}}function JS(t,n){const{child:e}=t;if(e.component.axes[n]){const{layoutHeaders:r,resolve:i}=t.component;if(i.axis[n]=xb(i,n),i.axis[n]==="shared"){const a=n==="x"?"column":"row",o=r[a];for(const s of e.component.axes[n]){const u=qP(s.get("orient"));o[u]??(o[u]=[XS(t,a,!1)]);const l=Rl(s,"main",t.config,{header:!0});l&&o[u][0].axes.push(l),s.mainExtracted=!0}}}}function Tb(t){for(const n of t.children)n.parseLayoutSize()}function Nh(t,n){const e=uS(n),r=Ld(e),i=t.component.resolve,a=t.component.layoutSize;let o;for(const s of t.children){const u=s.component.layoutSize.getWithExplicit(e),l=i.scale[r]??cS(r,t);if(l==="independent"&&u.value==="step"){o=void 0;break}if(o){if(l==="independent"&&o.value!==u.value){o=void 0;break}o=xa(o,u,e,"")}else o=u}if(o){for(const s of t.children)t.renameSignal(s.getName(e),t.getName(n)),s.component.layoutSize.set(e,"merged",!1);a.setWithExplicit(n,o)}else a.setWithExplicit(n,{explicit:!1,value:void 0})}function IP(t,n){const e=n==="width"?"x":"y",r=t.config,i=t.getScaleComponent(e);if(i){const a=i.get("type"),o=i.get("range");if(wn(a)){const s=mh(r.view,n);return ao(o)||Xr(s)?"step":s}return Rv(r.view,n)}if(t.hasProjection||t.mark==="arc")return Rv(r.view,n);{const a=mh(r.view,n);return Xr(a)?a.step:a}}function Pb(t,n,e){return Y(n,{suffix:`by_${Y(t)}`,...e})}class Ll extends VS{constructor(n,e,r,i){super(n,"facet",e,r,i,n.resolve),this.child=qb(n.spec,this,this.getName("child"),void 0,i),this.children=[this.child],this.facet=this.initFacet(n.facet)}initFacet(n){if(!Al(n))return{facet:this.initFacetFieldDef(n,"facet")};const e=q(n),r={};for(const i of e){if(![mi,gi].includes(i)){I(Wd(i,"facet"));break}const a=n[i];if(a.field===void 0){I(Wy(a,i));break}r[i]=this.initFacetFieldDef(a,i)}return r}initFacetFieldDef(n,e){const r=_v(n,e);return r.header?r.header=Sn(r.header):r.header===null&&(r.header=null),r}channelHasField(n){return U(this.facet,n)}fieldDef(n){return this.facet[n]}parseData(){this.component.data=Rh(this),this.child.parseData()}parseLayoutSize(){Tb(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection,Object.values(this.component.selection).some(n=>Kr(n))&&Gy(Iy)}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),function(n){for(const e of Ye)UP(n,e);JS(n,"x"),JS(n,"y")}(this)}assembleSelectionTopLevelSignals(n){return this.child.assembleSelectionTopLevelSignals(n)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(n){return this.child.assembleSelectionData(n)}getHeaderLayoutMixins(){const n={};for(const e of Ye)for(const r of yb){const i=this.component.layoutHeaders[e],a=i[r],{facetFieldDef:o}=i;if(o){const s=Os("titleOrient",o.header,this.config,e);if(["right","bottom"].includes(s)){const u=Mh(e,s);n.titleAnchor??(n.titleAnchor={}),n.titleAnchor[u]="end"}}if(a!=null&&a[0]){const s=e==="row"?"height":"width",u=r==="header"?"headerBand":"footerBand";e==="facet"||this.child.component.layoutSize.get(s)||(n[u]??(n[u]={}),n[u][e]=.5),i.title&&(n.offset??(n.offset={}),n.offset[e==="row"?"rowTitle":"columnTitle"]=10)}}return n}assembleDefaultLayout(){const{column:n,row:e}=this.facet,r=n?this.columnDistinctSignal():e?1:void 0;let i="all";return(e||this.component.resolve.scale.x!=="independent")&&(n||this.component.resolve.scale.y!=="independent")||(i="none"),{...this.getHeaderLayoutMixins(),...r?{columns:r}:{},bounds:"full",align:i}}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof Ll))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(n){return this.parent&&this.parent instanceof Ll?{...this.channelHasField("column")?{encode:{update:{columns:{field:Y(this.facet.column,{prefix:"distinct"})}}}}:{},...super.assembleGroup(n)}:super.assembleGroup(n)}getCardinalityAggregateForChild(){const n=[],e=[],r=[];if(this.child instanceof Ll){if(this.child.channelHasField("column")){const i=Y(this.child.facet.column);n.push(i),e.push("distinct"),r.push(`distinct_${i}`)}}else for(const i of wi){const a=this.child.component.scales[i];if(a&&!a.merged){const o=a.get("type"),s=a.get("range");if(wn(o)&&ao(s)){const u=zb(Oh(this.child,i));u?(n.push(u),e.push("distinct"),r.push(`distinct_${u}`)):I(Uy(i))}}}return{fields:n,ops:e,as:r}}assembleFacet(){const{name:n,data:e}=this.component.data.facetRoot,{row:r,column:i}=this.facet,{fields:a,ops:o,as:s}=this.getCardinalityAggregateForChild(),u=[];for(const c of Ye){const f=this.facet[c];if(f){u.push(Y(f));const{bin:d,sort:h}=f;if(Wt(d)&&u.push(Y(f,{binSuffix:"end"})),ki(h)){const{field:p,op:m=nh}=h,g=Pb(f,h);r&&i?(a.push(g),o.push("max"),s.push(g)):(a.push(p),o.push(m),s.push(g))}else if(P(h)){const p=zs(f,c);a.push(p),o.push("max"),s.push(p)}}}const l=!!r&&!!i;return{name:n,data:e,groupby:u,...l||a.length>0?{aggregate:{...l?{cross:l}:{},...a.length?{fields:a,ops:o,as:s}:{}}}:{}}}facetSortFields(n){const{facet:e}=this,r=e[n];return r?ki(r.sort)?[Pb(r,r.sort,{expr:"datum"})]:P(r.sort)?[zs(r,n,{expr:"datum"})]:[Y(r,{expr:"datum"})]:[]}facetSortOrder(n){const{facet:e}=this,r=e[n];if(r){const{sort:i}=r;return[(ki(i)?i.order:!P(i)&&i)||"ascending"]}return[]}assembleLabelTitle(){var i;const{facet:n,config:e}=this;if(n.facet)return vb(n.facet,"facet",e);const r={row:["top","bottom"],column:["left","right"]};for(const a of gb)if(n[a]){const o=Os("labelOrient",(i=n[a])==null?void 0:i.header,e,a);if(r[a].includes(o))return vb(n[a],a,e)}}assembleMarks(){const{child:n}=this,e=function(s){const u=[],l=YS(u);for(const c of s.children)l(c,{source:s.name,name:null,transform:[]});return u}(this.component.data.facetRoot),r=n.assembleGroupEncodeEntry(!1),i=this.assembleLabelTitle()||n.assembleTitle(),a=n.assembleGroupStyle();return[{name:this.getName("cell"),type:"group",...i?{title:i}:{},...a?{style:a}:{},from:{facet:this.assembleFacet()},sort:{field:Ye.map(s=>this.facetSortFields(s)).flat(),order:Ye.map(s=>this.facetSortOrder(s)).flat()},...e.length>0?{data:e}:{},...r?{encode:{update:r}}:{},...n.assembleGroup(gT(this,[]))}]}getMapping(){return this.facet}}function KS(t,n){var e,r,i,a;for(const o of n){const s=o.data;if(t.name&&o.hasName()&&t.name!==o.dataName)continue;const u=(e=t.format)==null?void 0:e.mesh,l=(r=s.format)==null?void 0:r.feature;if(u&&l)continue;const c=(i=t.format)==null?void 0:i.feature;if((c||l)&&c!==l)continue;const f=(a=s.format)==null?void 0:a.mesh;if(!u&&!f||u===f){if(Cl(t)&&Cl(s)){if(Ce(t.values,s.values))return o}else if($s(t)&&$s(s)){if(t.url===s.url)return o}else if(J$(t)&&t.name===o.dataName)return o}}return null}function Rh(t){var m;let n=function(g,y){if(g.data||!g.parent){if(g.data===null){const x=new xo({values:[]});return y.push(x),x}const v=KS(g.data,y);if(v)return wa(g.data)||(v.data.format=uE({},g.data.format,v.data.format)),!v.hasName()&&g.data.name&&(v.dataName=g.data.name),v;{const x=new xo(g.data);return y.push(x),x}}return g.parent.component.data.facetRoot?g.parent.component.data.facetRoot:g.parent.component.data.main}(t,t.component.data.sources);const{outputNodes:e,outputNodeRefCounts:r}=t.component.data,i=t.data,a=!(i&&(wa(i)||$s(i)||Cl(i)))&&t.parent?t.parent.component.data.ancestorParse.clone():new cT;wa(i)?(K$(i)?n=new jl(n,i.sequence):Hv(i)&&(n=new Pl(n,i.graticule)),a.parseNothing=!0):((m=i==null?void 0:i.format)==null?void 0:m.parse)===null&&(a.parseNothing=!0),n=Un.makeExplicit(n,t,a)??n,n=new _a(n);const o=t.parent&&Rs(t.parent);(Zt(t)||$e(t))&&o&&(n=Zr.makeFromEncoding(n,t)??n),t.transforms.length>0&&(n=function(g,y,v){let x=0;for(const b of y.transforms){let w,A;if(QR(b))A=g=new js(g,b),w="derived";else if(Uv(b)){const _=bP(b);A=g=Un.makeWithAncestors(g,{},_,v)??g,g=new Ts(g,y,b.filter)}else if(U$(b))A=g=Zr.makeFromTransform(g,b,y),w="number";else if(tT(b))w="date",v.getWithExplicit(b.field).value===void 0&&(g=new Un(g,{[b.field]:w}),v.set(b.field,w,!1)),A=g=Qr.makeFromTransform(g,b);else if(nT(b))A=g=_r.makeFromTransform(g,b),w="number",rb(y)&&(g=new _a(g));else if(q$(b))A=g=Ul.make(g,y,b,x++),w="derived";else if(XR(b))A=g=new Ps(g,b),w="number";else if(JR(b))A=g=new Ao(g,b),w="number";else if(eT(b))A=g=zi.makeFromTransform(g,b),w="derived";else if(rT(b))A=g=new Ih(g,b),w="derived";else if(iT(b))A=g=new qh(g,b),w="derived";else if(KR(b))A=g=new Uh(g,b),w="derived";else if(IR(b))A=g=new Vh(g,b),w="derived";else if(YR(b))g=new Yh(g,b);else if(ZR(b))A=g=_o.makeFromTransform(g,b),w="derived";else if(WR(b))A=g=new Lh(g,b),w="derived";else if(HR(b))A=g=new Hh(g,b),w="derived";else if(GR(b))A=g=new Gh(g,b),w="derived";else{if(!VR(b)){I(ON(b));continue}A=g=new Wh(g,b),w="derived"}if(A&&w!==void 0)for(const _ of A.producedFields()??[])v.set(_,w,!1)}return g}(n,t,a));const s=function(g){const y={};if(Zt(g)&&g.component.selection)for(const v of q(g.component.selection)){const x=g.component.selection[v];for(const b of x.project.items)!b.channel&&gs(b.field)>1&&(y[b.field]="flatten")}return y}(t),u=xP(t);n=Un.makeWithAncestors(n,{},{...s,...u},a)??n,Zt(t)&&(n=qs.parseAll(n,t),n=ql.parseAll(n,t)),(Zt(t)||$e(t))&&(o||(n=Zr.makeFromEncoding(n,t)??n),n=Qr.makeFromEncoding(n,t)??n,n=js.parseAllForSortIndex(n,t));const l=n=Th(Qt.Raw,t,n);if(Zt(t)){const g=_r.makeFromEncoding(n,t);g&&(n=g,rb(t)&&(n=new _a(n))),n=_o.makeFromEncoding(n,t)??n,n=zi.makeFromEncoding(n,t)??n}let c,f;if(Zt(t)){const{markDef:g,mark:y,config:v}=t,x=qt("invalid",g,v),{marks:b,scales:w}=f=Z$({invalid:x,isPath:ya(y)});b!==w&&w==="include-invalid-values"&&(c=n=Th(Qt.PreFilterInvalid,t,n)),b==="exclude-invalid-values"&&(n=Ls.make(n,t,f)??n)}const d=n=Th(Qt.Main,t,n);let h;if(Zt(t)&&f){const{marks:g,scales:y}=f;g==="include-invalid-values"&&y==="exclude-invalid-values"&&(n=Ls.make(n,t,f)??n,h=n=Th(Qt.PostFilterInvalid,t,n))}Zt(t)&&function(g,y){for(const[v,x]of sa(g.component.selection??{})){const b=g.getName(`lookup_${v}`);g.component.data.outputNodes[b]=x.materialized=new ye(new Ts(y,g,{param:v}),b,Qt.Lookup,g.component.data.outputNodeRefCounts)}}(t,d);let p=null;if($e(t)){const g=t.getName("facet");n=function(y,v){const{row:x,column:b}=v;if(x&&b){let w=null;for(const A of[x,b])if(ki(A.sort)){const{field:_,op:k=nh}=A.sort;y=w=new Ao(y,{joinaggregate:[{op:k,field:_,as:Pb(A,A.sort,{forAs:!0})}],groupby:[Y(A)]})}return w}return null}(n,t.facet)??n,p=new Ns(n,t,g,d.getSource()),e[g]=p}return{...t.component.data,outputNodes:e,outputNodeRefCounts:r,raw:l,main:d,facetRoot:p,ancestorParse:a,preFilterInvalid:c,postFilterInvalid:h}}function Th(t,n,e){const{outputNodes:r,outputNodeRefCounts:i}=n.component.data,a=n.getDataName(t),o=new ye(e,a,t,i);return r[a]=o,o}class WP extends Rb{constructor(n,e,r,i){var a,o,s,u;super(n,"concat",e,r,i,n.resolve),((o=(a=n.resolve)==null?void 0:a.axis)==null?void 0:o.x)!=="shared"&&((u=(s=n.resolve)==null?void 0:s.axis)==null?void 0:u.y)!=="shared"||I("Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415)."),this.children=this.getChildren(n).map((l,c)=>qb(l,this,this.getName(`concat_${c}`),void 0,i))}parseData(){this.component.data=Rh(this);for(const n of this.children)n.parseData()}parseSelections(){this.component.selection={};for(const n of this.children){n.parseSelections();for(const e of q(n.component.selection))this.component.selection[e]=n.component.selection[e]}Object.values(this.component.selection).some(n=>Kr(n))&&Gy(Iy)}parseMarkGroup(){for(const n of this.children)n.parseMarkGroup()}parseAxesAndHeaders(){for(const n of this.children)n.parseAxesAndHeaders()}getChildren(n){return ph(n)?n.vconcat:Nv(n)?n.hconcat:n.concat}parseLayoutSize(){(function(n){Tb(n);const e=n.layout.columns===1?"width":"childWidth",r=n.layout.columns===void 0?"height":"childHeight";Nh(n,e),Nh(n,r)})(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(n){return this.children.reduce((e,r)=>r.assembleSelectionTopLevelSignals(e),n)}assembleSignals(){return this.children.forEach(n=>n.assembleSignals()),[]}assembleLayoutSignals(){const n=bb(this);for(const e of this.children)n.push(...e.assembleLayoutSignals());return n}assembleSelectionData(n){return this.children.reduce((e,r)=>r.assembleSelectionData(e),n)}assembleMarks(){return this.children.map(n=>{const e=n.assembleTitle(),r=n.assembleGroupStyle(),i=n.assembleGroupEncodeEntry(!1);return{type:"group",name:n.getName("group"),...e?{title:e}:{},...r?{style:r}:{},...i?{encode:{update:i}}:{},...n.assembleGroup()}})}assembleGroupStyle(){}assembleDefaultLayout(){const n=this.layout.columns;return{...n!=null?{columns:n}:{},bounds:"full",align:"each"}}}const HP={disable:1,gridScale:1,scale:1,...t$,labelExpr:1,encode:1},QS=q(HP);class Ib extends Bi{constructor(n={},e={},r=!1){super(),this.explicit=n,this.implicit=e,this.mainExtracted=r}clone(){return new Ib(ft(this.explicit),ft(this.implicit),this.mainExtracted)}hasAxisPart(n){return n==="axis"||(n==="grid"||n==="title"?!!this.get(n):!((e=this.get(n))===!1||e===null));var e}hasOrientSignalRef(){return it(this.explicit.orient)}}const GP={bottom:"top",top:"bottom",left:"right",right:"left"};function VP(t,n){if(!t)return n.map(e=>e.clone());{if(t.length!==n.length)return;const e=t.length;for(let r=0;r<e;r++){const i=t[r],a=n[r];if(!!i!=!!a)return;if(i&&a){const o=i.getWithExplicit("orient"),s=a.getWithExplicit("orient");if(o.explicit&&s.explicit&&o.value!==s.value)return;t[r]=YP(i,a)}}}return t}function YP(t,n){for(const e of QS){const r=xa(t.getWithExplicit(e),n.getWithExplicit(e),e,"axis",(i,a)=>{switch(e){case"title":return LE(i,a);case"gridScale":return{explicit:i.explicit,value:un(i.value,a.value)}}return yh(i,a,e,"axis")});t.setWithExplicit(e,r)}return t}function XP(t,n,e,r,i){if(n==="disable")return e!==void 0;switch(e=e||{},n){case"titleAngle":case"labelAngle":return t===(it(e.labelAngle)?e.labelAngle:hl(e.labelAngle));case"values":return!!e.values;case"encode":return!!e.encoding||!!e.labelAngle;case"title":if(t===eS(r,i))return!0}return t===e[n]}const JP=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function KP(t,n){var y,v;let e=n.axis(t);const r=new Ib,i=mn(n.encoding[t]),{mark:a,config:o}=n,s=(e==null?void 0:e.orient)||((y=o[t==="x"?"axisX":"axisY"])==null?void 0:y.orient)||((v=o.axis)==null?void 0:v.orient)||function(x){return x==="x"?"bottom":"left"}(t),u=n.getScaleComponent(t).get("type"),l=function(x,b,w,A){const _=b==="band"?["axisDiscrete","axisBand"]:b==="point"?["axisDiscrete","axisPoint"]:x3(b)?["axisQuantitative"]:b==="time"||b==="utc"?["axisTemporal"]:[],k=x==="x"?"axisX":"axisY",F=it(w)?"axisOrient":`axis${dl(w)}`,C=[..._,..._.map(E=>k+E.substr(4))],D=["axis",F,k];return{vlOnlyAxisConfig:Q5(C,A,x,w),vgAxisConfig:Q5(D,A,x,w),axisConfigStyle:eP([...D,...C],A)}}(t,u,s,n.config),c=e!==void 0?!e:pb("disable",o.style,e==null?void 0:e.style,l).configValue;if(r.set("disable",c,e!==void 0),c)return r;e=e||{};const f=function(x,b,w,A,_){const k=b==null?void 0:b.labelAngle;if(k!==void 0)return it(k)?k:hl(k);{const{configValue:F}=pb("labelAngle",A,b==null?void 0:b.style,_);return F!==void 0?hl(F):w!==Jt||!vt([iv,rv],x.type)||H(x)&&x.timeUnit?void 0:270}}(i,e,t,o.style,l),d=N3(e.formatType,i,u),h=O3(i,i.type,e.format,e.formatType,o,!0),p={fieldOrDatumDef:i,axis:e,channel:t,model:n,scaleType:u,orient:s,labelAngle:f,format:h,formatType:d,mark:a,config:o};for(const x of QS){const b=x in Z5?Z5[x](p):n$(x)?e[x]:void 0,w=b!==void 0,A=XP(b,x,e,n,t);if(w&&A)r.set(x,b,A);else{const{configValue:_,configFrom:k}=n$(x)&&x!=="values"?pb(x,o.style,e.style,l):{},F=_!==void 0;w&&!F?r.set(x,b,A):(k!=="vgAxisConfig"||JP.has(x)&&F||Fl(_)||it(_))&&r.set(x,_,!1)}}const m=e.encoding??{},g=Z3.reduce((x,b)=>{if(!r.hasAxisPart(b))return x;const w=lS(m[b]??{},n),A=b==="labels"?function(_,k,F){const{encoding:C,config:D}=_,E=mn(C[k])??mn(C[Ur(k)]),$=_.axis(k)||{},{format:M,formatType:S}=$;if(ho(S))return{text:gr({fieldOrDatumDef:E,field:"datum.value",format:M,formatType:S,config:D}),...F};if(M===void 0&&S===void 0&&D.customFormatTypes){if(_s(E)==="quantitative"){if(ks(E)&&E.stack==="normalize"&&D.normalizedNumberFormatType)return{text:gr({fieldOrDatumDef:E,field:"datum.value",format:D.normalizedNumberFormat,formatType:D.normalizedNumberFormatType,config:D}),...F};if(D.numberFormatType)return{text:gr({fieldOrDatumDef:E,field:"datum.value",format:D.numberFormat,formatType:D.numberFormatType,config:D}),...F}}if(_s(E)==="temporal"&&D.timeFormatType&&H(E)&&!E.timeUnit)return{text:gr({fieldOrDatumDef:E,field:"datum.value",format:D.timeFormat,formatType:D.timeFormatType,config:D}),...F}}return F}(n,t,w):w;return A===void 0||jt(A)||(x[b]={update:A}),x},{});return jt(g)||r.set("encode",g,!!e.encoding||e.labelAngle!==void 0),r}function jb(t,n){const{config:e}=t;return{...Xe(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...se("x",t,{defaultPos:"mid"}),...se("y",t,{defaultPos:"mid"}),...Mn("size",t),...Mn("angle",t),...QP(t,e,n)}}function QP(t,n,e){return e?{shape:{value:e}}:Mn("shape",t)}const ZP={vgMark:"rule",encodeEntry:t=>{const{markDef:n}=t,e=n.orient;return t.encoding.x||t.encoding.y||t.encoding.latitude||t.encoding.longitude?{...Xe(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Ah("x",t,{defaultPos:e==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:e!=="vertical"}),...Ah("y",t,{defaultPos:e==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:e!=="horizontal"}),...Mn("size",t,{vgChannel:"strokeWidth"})}:{}}};function tj(t,n,e){if(qt("align",t,e)===void 0)return"center"}function nj(t,n,e){if(qt("baseline",t,e)===void 0)return"middle"}const ej={vgMark:"rect",encodeEntry:t=>{const{config:n,markDef:e}=t,r=e.orient,i=r==="horizontal"?"x":"y",a=r==="horizontal"?"y":"x",o=r==="horizontal"?"height":"width";return{...Xe(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Ei(t,i),...se(a,t,{defaultPos:"mid",vgChannel:a==="y"?"yc":"xc"}),[o]:Gt(qt("thickness",e,n))}}},Ph={arc:{vgMark:"arc",encodeEntry:t=>({...Xe(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...se("x",t,{defaultPos:"mid"}),...se("y",t,{defaultPos:"mid"}),...Ei(t,"radius"),...Ei(t,"theta")})},area:{vgMark:"area",encodeEntry:t=>({...Xe(t,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"}),...Ah("x",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="horizontal"}),...Ah("y",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="vertical"}),...nb(t)})},bar:{vgMark:"rect",encodeEntry:t=>({...Xe(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Ei(t,"x"),...Ei(t,"y")})},circle:{vgMark:"symbol",encodeEntry:t=>jb(t,"circle")},geoshape:{vgMark:"shape",encodeEntry:t=>({...Xe(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})}),postEncodingTransform:t=>{const{encoding:n}=t,e=n.shape;return[{type:"geoshape",projection:t.projectionName(),...e&&H(e)&&e.type===ws?{field:Y(e,{expr:"datum"})}:{}}]}},image:{vgMark:"image",encodeEntry:t=>({...Xe(t,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"}),...Ei(t,"x"),...Ei(t,"y"),...Zv(t,"url")})},line:{vgMark:"line",encodeEntry:t=>({...Xe(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...se("x",t,{defaultPos:"mid"}),...se("y",t,{defaultPos:"mid"}),...Mn("size",t,{vgChannel:"strokeWidth"}),...nb(t)})},point:{vgMark:"symbol",encodeEntry:t=>jb(t)},rect:{vgMark:"rect",encodeEntry:t=>({...Xe(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Ei(t,"x"),...Ei(t,"y")})},rule:ZP,square:{vgMark:"symbol",encodeEntry:t=>jb(t,"square")},text:{vgMark:"text",encodeEntry:t=>{const{config:n,encoding:e}=t;return{...Xe(t,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"}),...se("x",t,{defaultPos:"mid"}),...se("y",t,{defaultPos:"mid"}),...Zv(t),...Mn("size",t,{vgChannel:"fontSize"}),...Mn("angle",t),...w5("align",tj(t.markDef,e,n)),...w5("baseline",nj(t.markDef,e,n)),...se("radius",t,{defaultPos:null}),...se("theta",t,{defaultPos:null})}}},tick:ej,trail:{vgMark:"trail",encodeEntry:t=>({...Xe(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...se("x",t,{defaultPos:"mid"}),...se("y",t,{defaultPos:"mid"}),...Mn("size",t),...nb(t)})}};function rj(t){if(vt([Kd,Xd,oR],t.mark)){const n=s$(t.mark,t.encoding);if(n.length>0)return function(e,r){return[{name:e.getName("pathgroup"),type:"group",from:{facet:{name:ZS+e.requestDataName(Qt.Main),data:e.requestDataName(Qt.Main),groupby:r}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:Lb(e,{fromPrefix:ZS})}]}(t,n)}else if(t.mark===Jd){const n=jy.some(e=>qt(e,t.markDef,t.config));if(t.stack&&!t.fieldDef("size")&&n)return function(e){var c;const[r]=Lb(e,{fromPrefix:t6}),i=e.scaleName(e.stack.fieldChannel),a=(f={})=>e.vgField(e.stack.fieldChannel,f),o=(f,d)=>`${f}(${[a({prefix:"min",suffix:"start",expr:d}),a({prefix:"max",suffix:"start",expr:d}),a({prefix:"min",suffix:"end",expr:d}),a({prefix:"max",suffix:"end",expr:d})].map(h=>`scale('${i}',${h})`).join(",")})`;let s,u;e.stack.fieldChannel==="x"?(s={...hs(r.encode.update,["y","yc","y2","height",...jy]),x:{signal:o("min","datum")},x2:{signal:o("max","datum")},clip:{value:!0}},u={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},r.encode.update={...he(r.encode.update,["y","yc","y2"]),height:{field:{group:"height"}}}):(s={...hs(r.encode.update,["x","xc","x2","width"]),y:{signal:o("min","datum")},y2:{signal:o("max","datum")},clip:{value:!0}},u={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},r.encode.update={...he(r.encode.update,["x","xc","x2"]),width:{field:{group:"width"}}});for(const f of jy){const d=Wr(f,e.markDef,e.config);r.encode.update[f]?(s[f]=r.encode.update[f],delete r.encode.update[f]):d&&(s[f]=Gt(d)),d&&(r.encode.update[f]={value:0})}const l=[];if(((c=e.stack.groupbyChannels)==null?void 0:c.length)>0)for(const f of e.stack.groupbyChannels){const d=e.fieldDef(f),h=Y(d);h&&l.push(h),(d!=null&&d.bin||d!=null&&d.timeUnit)&&l.push(Y(d,{binSuffix:"end"}))}return s=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((f,d)=>{if(r.encode.update[d])return{...f,[d]:r.encode.update[d]};{const h=Wr(d,e.markDef,e.config);return h!==void 0?{...f,[d]:Gt(h)}:f}},s),s.stroke&&(s.strokeForeground={value:!0},s.strokeOffset={value:0}),[{type:"group",from:{facet:{data:e.requestDataName(Qt.Main),name:t6+e.requestDataName(Qt.Main),groupby:l,aggregate:{fields:[a({suffix:"start"}),a({suffix:"start"}),a({suffix:"end"}),a({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:s},marks:[{type:"group",encode:{update:u},marks:[r]}]}]}(t)}return Lb(t)}const ZS="faceted_path_",t6="stack_group_";function Lb(t,n={fromPrefix:""}){const{mark:e,markDef:r,encoding:i,config:a}=t,o=un(r.clip,function(h){const p=h.getScaleComponent("x"),m=h.getScaleComponent("y");return!(!(p!=null&&p.get("selectionExtent"))&&!(m!=null&&m.get("selectionExtent")))||void 0}(t),function(h){const p=h.component.projection;return!(!p||p.isFit)||void 0}(t)),s=NE(r),u=i.key,l=function(h){const{encoding:p,stack:m,mark:g,markDef:y,config:v}=h,x=p.order;if(!(!P(x)&&yr(x)&&_y(x.value)||!x&&_y(qt("order",y,v)))){if((P(x)||H(x))&&!m)return TE(x,{expr:"datum"});if(ya(g)){const b=y.orient==="horizontal"?"y":"x";if(H(p[b]))return{field:b}}}}(t),c=function(h){if(!h.component.selection)return null;const p=q(h.component.selection).length;let m=p,g=h.parent;for(;g&&m===0;)m=q(g.component.selection).length,g=g.parent;return m?{interactive:p>0||h.mark==="geoshape"||!!h.encoding.tooltip||!!h.markDef.tooltip}:null}(t),f=qt("aria",r,a),d=Ph[e].postEncodingTransform?Ph[e].postEncodingTransform(t):null;return[{name:t.getName("marks"),type:Ph[e].vgMark,...o?{clip:o}:{},...s?{style:s}:{},...u?{key:u.field}:{},...l?{sort:l}:{},...c||{},...f===!1?{aria:f}:{},from:{data:n.fromPrefix+t.requestDataName(Qt.Main)},encode:{update:Ph[e].encodeEntry(t)},...d?{transform:d}:{}}]}class n6 extends VS{constructor(n,e,r,i={},a){super(n,"unit",e,r,a,void 0,D$(n)?n.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[],this.correctDataNames=l=>{var c,f,d;return(c=l.from)!=null&&c.data&&(l.from.data=this.lookupDataSource(l.from.data),"time"in this.encoding&&(l.from.data=l.from.data+i5)),(d=(f=l.from)==null?void 0:f.facet)!=null&&d.data&&(l.from.facet.data=this.lookupDataSource(l.from.facet.data)),l};const o=Vr(n.mark)?{...n.mark}:{type:n.mark},s=o.type;o.filled===void 0&&(o.filled=function(l,c,{graticule:f}){if(f)return!1;const d=Wr("filled",l,c),h=l.type;return un(d,h!==Qd&&h!==Kd&&h!==Zd)}(o,a,{graticule:n.data&&Hv(n.data)}));const u=this.encoding=function(l,c,f,d){const h={};for(const p of q(l))wE(p)||I(RN(p));for(let p of gN){if(!l[p])continue;const m=l[p];if(gl(p)){const g=mN(p),y=h[g];if(H(y)&&YN(y.type)&&H(m)&&!y.timeUnit){I(NN(g));continue}}if(p!=="angle"||c!=="arc"||l.theta||(I("Arc marks uses theta channel rather than angle, replacing angle with theta."),p=Ge),vR(l,p,c)){if(p===bi&&c==="line"){const g=vr(l[p]);if(g!=null&&g.aggregate){I("Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.");continue}}if(p===pe&&(f?"fill"in l:"stroke"in l))I(JE("encoding",{fill:"fill"in l,stroke:"stroke"in l}));else if(p===ml||p===vs&&!P(m)&&!yr(m)||p===eo&&P(m)){if(m){if(p===vs){const g=l[p];if(I3(g)){h[p]=g;continue}}h[p]=K(m).reduce((g,y)=>(H(y)?g.push(_v(y,p)):I(Wy(y,p)),g),[])}}else{if(p===eo&&m===null)h[p]=null;else if(!(H(m)||Yr(m)||yr(m)||_l(m)||it(m))){I(Wy(m,p));continue}h[p]=J3(m,p,d)}}else I(Wd(p,c))}return h}(n.encoding||{},s,o.filled,a);this.markDef=z$(o,u,a),this.size=function({encoding:l,size:c}){for(const f of wi){const d=ge(f);Xr(c[d])&&ba(l[f])&&(delete c[d],I(QE(d)))}return c}({encoding:u,size:D$(n)?{...i,...n.width?{width:n.width}:{},...n.height?{height:n.height}:{}}:i}),this.stack=B$(this.markDef,u),this.specifiedScales=this.initScales(s,u),this.specifiedAxes=this.initAxes(u),this.specifiedLegends=this.initLegends(u),this.specifiedProjection=n.projection,this.selection=(n.params??[]).filter(l=>zv(l))}get hasProjection(){const{encoding:n}=this,e=this.mark===F3,r=n&&lN.some(i=>ht(n[i]));return e||r}scaleDomain(n){const e=this.specifiedScales[n];return e?e.domain:void 0}axis(n){return this.specifiedAxes[n]}legend(n){return this.specifiedLegends[n]}initScales(n,e){return Ty.reduce((r,i)=>{const a=mn(e[i]);return a&&(r[i]=this.initScale(a.scale??{})),r},{})}initScale(n){const{domain:e,range:r}=n,i=Sn(n);return P(e)&&(i.domain=e.map(Ee)),P(r)&&(i.range=r.map(Ee)),i}initAxes(n){return wi.reduce((e,r)=>{const i=n[r];if(ht(i)||r===Jt&&ht(n.x2)||r===bn&&ht(n.y2)){const a=ht(i)?i.axis:void 0;e[r]=a&&this.initAxis({...a})}return e},{})}initAxis(n){const e=q(n),r={};for(const i of e){const a=n[i];r[i]=Fl(a)?BE(a):Ee(a)}return r}initLegends(n){return FE.reduce((e,r)=>{const i=mn(n[r]);if(i&&function(a){switch(a){case pe:case Lr:case qr:case bi:case me:case xi:case da:case ha:return!0;case ca:case fa:case no:case la:return!1}}(r)){const a=i.legend;e[r]=a&&Sn(a)}return e},{})}parseData(){this.component.data=Rh(this)}parseLayoutSize(){(function(n){const{size:e,component:r}=n;for(const i of wi){const a=ge(i);if(e[a]){const o=e[a];r.layoutSize.set(a,Xr(o)?"step":o,!0)}else{const o=IP(n,a);r.layoutSize.set(a,o,!1)}}})(this)}parseSelections(){this.component.selection=function(n,e){const r={},i=n.config.selection;if(!e||!e.length)return r;let a=0;for(const o of e){const s=Xt(o.name),u=o.select,l=Q(u)?u:u.type,c=Z(u)?ft(u):{type:l},f=i[l];for(const p in f)p!=="fields"&&p!=="encodings"&&(p==="mark"&&(c.mark={...f.mark,...c.mark}),c[p]!==void 0&&c[p]!==!0||(c[p]=ft(f[p]??c[p])));const d=r[s]={...c,name:s,type:l,init:o.value,bind:o.bind,events:Q(c.on)?aa(c.on,"scope"):K(ft(c.on))};if(Kr(d)&&(a++,a>1)){delete r[s];continue}const h=ft(o);for(const p of Dh)p.defined(d)&&p.parse&&p.parse(n,d,h)}return a>1&&I("Multiple timer selections in one unit spec are not supported. Ignoring all but the first."),r}(this,this.selection)}parseMarkGroup(){this.component.mark=rj(this)}parseAxesAndHeaders(){var n;this.component.axes=(n=this,wi.reduce((e,r)=>(n.component.scales[r]&&(e[r]=[KP(r,n)]),e),{}))}assembleSelectionTopLevelSignals(n){return function(e,r){let i=!1;for(const a of En(e.component.selection??{})){const o=a.name,s=G(o+yo);if(r.filter(u=>u.name===o).length===0){const u=a.resolve==="global"?"union":a.resolve,l=a.type==="point"?", true, true)":")";r.push({name:a.name,update:`${B5}(${s}, ${G(u)}${l}`})}i=!0;for(const u of Dh)u.defined(a)&&u.topLevelSignals&&(r=u.topLevelSignals(e,a,r))}return i&&r.filter(a=>a.name==="unit").length===0&&r.unshift({name:"unit",value:{},on:[{events:"pointermove",update:"isTuple(group()) ? group() : unit"}]}),Jv(r)}(this,n)}assembleSignals(){return[...K5(this),...mT(this,[])]}assembleSelectionData(n){return function(e,r){const i=[],a=[],o=vo(e,{escape:!1});for(const s of En(e.component.selection??{})){const u={name:s.name+yo};if(s.project.hasSelectionId&&(u.transform=[{type:"collect",sort:{field:br}}]),s.init){const l=s.project.items.map(s5);u.values=s.project.hasSelectionId?s.init.map(c=>({unit:o,[br]:go(c,!1)[0]})):s.init.map(c=>({unit:o,fields:l,values:go(c,!1)}))}if([...i,...r].filter(l=>l.name===s.name+yo).length||i.push(u),Kr(s)&&r.length){const l=e.lookupDataSource(e.getDataName(Qt.Main)),c=r.find(d=>d.name===l),f=c.transform.find(d=>d.type==="filter"&&d.expr.includes("vlSelectionTest"));if(f){c.transform=c.transform.filter(h=>h!==f);const d={name:c.name+i5,source:c.name,transform:[f]};a.push(d)}}}return i.concat(r,a)}(this,n)}assembleLayout(){return null}assembleLayoutSignals(){return bb(this)}assembleMarks(){let n=this.component.mark??[];return this.parent&&Rs(this.parent)||(n=u5(this,n)),n.map(this.correctDataNames)}assembleGroupStyle(){const{style:n}=this.view||{};return n!==void 0?n:this.encoding.x||this.encoding.y?"cell":"view"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(n){return mo(this.encoding,n)}fieldDef(n){return vr(this.encoding[n])}typedFieldDef(n){const e=this.fieldDef(n);return oe(e)?e:null}}class Wb extends Rb{constructor(n,e,r,i,a){super(n,"layer",e,r,a,n.resolve,n.view);const o={...i,...n.width?{width:n.width}:{},...n.height?{height:n.height}:{}};this.children=n.layer.map((s,u)=>{if(gh(s))return new Wb(s,this,this.getName(`layer_${u}`),o,a);if(Di(s))return new n6(s,this,this.getName(`layer_${u}`),o,a);throw new Error(qy(s))})}parseData(){this.component.data=Rh(this);for(const n of this.children)n.parseData()}parseLayoutSize(){var n;Tb(n=this),Nh(n,"width"),Nh(n,"height")}parseSelections(){this.component.selection={};for(const n of this.children){n.parseSelections();for(const e of q(n.component.selection))this.component.selection[e]=n.component.selection[e]}Object.values(this.component.selection).some(n=>Kr(n))&&Gy(Iy)}parseMarkGroup(){for(const n of this.children)n.parseMarkGroup()}parseAxesAndHeaders(){(function(n){const{axes:e,resolve:r}=n.component,i={top:0,bottom:0,right:0,left:0};for(const a of n.children){a.parseAxesAndHeaders();for(const o of q(a.component.axes))r.axis[o]=xb(n.component.resolve,o),r.axis[o]==="shared"&&(e[o]=VP(e[o],a.component.axes[o]),e[o]||(r.axis[o]="independent",delete e[o]))}for(const a of wi){for(const o of n.children)if(o.component.axes[a]){if(r.axis[a]==="independent"){e[a]=(e[a]??[]).concat(o.component.axes[a]);for(const s of o.component.axes[a]){const{value:u,explicit:l}=s.getWithExplicit("orient");if(!it(u)){if(i[u]>0&&!l){const c=GP[u];i[u]>i[c]&&s.set("orient",c,!1)}i[u]++}}}delete o.component.axes[a]}if(r.axis[a]==="independent"&&e[a]&&e[a].length>1)for(const[o,s]of(e[a]||[]).entries())o>0&&s.get("grid")&&!s.explicit.grid&&(s.implicit.grid=!1)}})(this)}assembleSelectionTopLevelSignals(n){return this.children.reduce((e,r)=>r.assembleSelectionTopLevelSignals(e),n)}assembleSignals(){return this.children.reduce((n,e)=>n.concat(e.assembleSignals()),K5(this))}assembleLayoutSignals(){return this.children.reduce((n,e)=>n.concat(e.assembleLayoutSignals()),bb(this))}assembleSelectionData(n){return this.children.reduce((e,r)=>r.assembleSelectionData(e),n)}assembleGroupStyle(){const n=new Set;for(const r of this.children)for(const i of K(r.assembleGroupStyle()))n.add(i);const e=Array.from(n);return e.length>1?e:e.length===1?e[0]:void 0}assembleTitle(){let n=super.assembleTitle();if(n)return n;for(const e of this.children)if(n=e.assembleTitle(),n)return n}assembleLayout(){return null}assembleMarks(){return function(n,e){for(const r of n.children)Zt(r)&&(e=u5(r,e));return e}(this,this.children.flatMap(n=>n.assembleMarks()))}assembleLegends(){return this.children.reduce((n,e)=>n.concat(e.assembleLegends()),xS(this))}}function qb(t,n,e,r,i){if(eh(t))return new Ll(t,n,e,i);if(gh(t))return new Wb(t,n,e,r,i);if(Di(t))return new n6(t,n,e,r,i);if(function(a){return ph(a)||Nv(a)||Ov(a)}(t))return new WP(t,n,e,i);throw new Error(qy(t))}function ij(t,n={}){var e;n.logger&&(e=n.logger,vl=e),n.fieldTitle&&X3(n.fieldTitle);try{const r=S$(Yl(n.config,t.config)),i=G$(t,r),a=qb(i,null,"",void 0,r);return a.parse(),function(s,u){$b(s.sources);let l=0,c=0;for(let f=0;f<5&&$S(s,u,!0);f++)l++;s.sources.map(Cb);for(let f=0;f<5&&$S(s,u,!1);f++)c++;$b(s.sources),Math.max(l,c)===5&&I("Maximum optimization runs(5) reached.")}(a.component.data,a),{spec:function(s,u,l={},c){const f=s.config?zR(s.config):void 0,d=function(w,A){const _=[],k=YS(_);let F=0;for(const D of w.sources){D.hasName()||(D.dataName="source_"+F++);const E=D.assemble();k(D,E)}for(const D of _)D.transform.length===0&&delete D.transform;let C=0;for(const[D,E]of _.entries())(E.transform??[]).length!==0||E.source||_.splice(C++,0,_.splice(D,1)[0]);for(const D of _)for(const E of D.transform??[])E.type==="lookup"&&(E.from=w.outputNodes[E.from].getSource());for(const D of _)D.name in A&&(D.values=A[D.name]);return _}(s.component.data,l),h=s.assembleSelectionData(d),p=s.assembleProjections(),m=s.assembleTitle(),g=s.assembleGroupStyle(),y=s.assembleGroupEncodeEntry(!0);let v=s.assembleLayoutSignals();v=v.filter(w=>w.name!=="width"&&w.name!=="height"||w.value===void 0||(u[w.name]=+w.value,!1));const{params:x,...b}=u;return{$schema:"https://vega.github.io/schema/vega/v5.json",...s.description?{description:s.description}:{},...b,...m?{title:m}:{},...g?{style:g}:{},...y?{encode:{update:y}}:{},data:h,...p.length>0?{projections:p}:{},...s.assembleGroup([...v,...s.assembleSelectionTopLevelSignals([]),..._$(x)]),...f?{config:f}:{},...c?{usermeta:c}:{}}}(a,function(s,u,l,c){const f=c.component.layoutSize.get("width"),d=c.component.layoutSize.get("height");if(u===void 0?(u={type:"pad"},c.hasAxisOrientSignalRef()&&(u.resize=!0)):Q(u)&&(u={type:u}),f&&d&&(h=u.type,["fit","fit-x","fit-y"].includes(h))){if(f==="step"&&d==="step")I(IE()),u.type="pad";else if(f==="step"||d==="step"){const p=f==="step"?"width":"height";I(IE(Ld(p)));const m=p==="width"?"height":"width";u.type=function(g){return g?`fit-${Ld(g)}`:"fit"}(m)}}var h;return{...q(u).length===1&&u.type?u.type==="pad"?{}:{autosize:u.type}:{autosize:u},...Y$(l,!1),...Y$(s,!0)}}(t,i.autosize,r,a),t.datasets,t.usermeta),normalized:i}}finally{n.logger&&(vl=e3),n.fieldTitle&&X3(V3)}}export{sE as A,G$ as B,hl as C,he as D,hs as E,Fy as F,ms as G,to as H,He as I,uN as J,lE as K,ps as L,jn as M,Lt as N,dl as O,Pr as P,dE as Q,En as R,Xt as S,iN as T,qd as U,FE as V,gs as a,Ey as b,ij as c,Ot as d,vt as e,Ce as f,zd as g,ft as h,sa as i,ky as j,Cy as k,cE as l,un as m,Dy as n,U as o,wt as p,hE as q,cl as r,jt as s,oN as t,pE as u,_y as v,Od as w,q as x,fl as y,uE as z};
|