geneviewer-js 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/SHA256SUMS +7 -7
- package/dist/geneviewer.core.js +10 -4
- package/dist/geneviewer.d.ts +1 -0
- package/dist/geneviewer.min.js +23 -23
- package/dist/geneviewer.min.js.map +3 -3
- package/dist/geneviewer.mjs +10 -4
- package/dist/geneviewer.standalone.mjs +23 -23
- package/dist/geneviewer.standalone.mjs.map +3 -3
- package/package.json +1 -1
package/dist/geneviewer.min.js
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
var geneviewer=(()=>{var kc=Object.defineProperty;var x2=Object.getOwnPropertyDescriptor;var _2=Object.getOwnPropertyNames;var S2=Object.prototype.hasOwnProperty;var Cd=(t,e)=>{for(var n in e)kc(t,n,{get:e[n],enumerable:!0})},k2=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of _2(e))!S2.call(t,i)&&i!==n&&kc(t,i,{get:()=>e[i],enumerable:!(r=x2(e,i))||r.enumerable});return t};var A2=t=>k2(kc({},"__esModule",{value:!0}),t);var kM={};Cd(kM,{chartToPNG:()=>Ma,chartToSVG:()=>Vi,compile:()=>Ea,newChart:()=>Wb,palettes:()=>Gi,themes:()=>ka,version:()=>Ub});var R={};Cd(R,{Adder:()=>Lt,Delaunay:()=>Bu,FormatSpecifier:()=>Is,InternMap:()=>Jn,InternSet:()=>Fn,Node:()=>Pr,Path:()=>sr,Voronoi:()=>$s,ZoomTransform:()=>kn,active:()=>J5,arc:()=>sA,area:()=>oy,areaRadial:()=>dA,ascending:()=>Ot,autoType:()=>k8,axisBottom:()=>Nv,axisLeft:()=>Rv,axisRight:()=>zv,axisTop:()=>$v,bin:()=>Q2,bisect:()=>er,bisectCenter:()=>F2,bisectLeft:()=>C2,bisectRight:()=>er,bisector:()=>so,blob:()=>M8,blur:()=>T2,blur2:()=>Cc,blurImage:()=>O2,brush:()=>h_,brushSelection:()=>c_,brushX:()=>u_,brushY:()=>f_,buffer:()=>F8,chord:()=>b_,chordDirected:()=>w_,chordTranspose:()=>v_,cluster:()=>j6,color:()=>gn,contourDensity:()=>U_,contours:()=>Fu,count:()=>Va,create:()=>bx,creator:()=>os,cross:()=>P2,csv:()=>B8,csvFormat:()=>d8,csvFormatBody:()=>p8,csvFormatRow:()=>m8,csvFormatRows:()=>g8,csvFormatValue:()=>y8,csvParse:()=>Nu,csvParseRows:()=>h8,cubehelix:()=>Ne,cumsum:()=>I2,curveBasis:()=>TA,curveBasisClosed:()=>OA,curveBasisOpen:()=>BA,curveBumpX:()=>ly,curveBumpY:()=>cy,curveBundle:()=>DA,curveCardinal:()=>$A,curveCardinalClosed:()=>zA,curveCardinalOpen:()=>NA,curveCatmullRom:()=>RA,curveCatmullRomClosed:()=>PA,curveCatmullRomOpen:()=>IA,curveLinear:()=>Ul,curveLinearClosed:()=>LA,curveMonotoneX:()=>qA,curveMonotoneY:()=>YA,curveNatural:()=>UA,curveStep:()=>HA,curveStepAfter:()=>jA,curveStepBefore:()=>WA,descending:()=>Td,deviation:()=>$d,difference:()=>_v,disjoint:()=>Sv,dispatch:()=>qe,drag:()=>Mx,dragDisable:()=>ci,dragEnable:()=>ui,dsv:()=>O8,dsvFormat:()=>To,easeBack:()=>Y3,easeBackIn:()=>L3,easeBackInOut:()=>Y3,easeBackOut:()=>q3,easeBounce:()=>Ss,easeBounceIn:()=>P3,easeBounceInOut:()=>I3,easeBounceOut:()=>Ss,easeCircle:()=>F3,easeCircleIn:()=>M3,easeCircleInOut:()=>F3,easeCircleOut:()=>C3,easeCubic:()=>lu,easeCubicIn:()=>m3,easeCubicInOut:()=>lu,easeCubicOut:()=>y3,easeElastic:()=>H3,easeElasticIn:()=>U3,easeElasticInOut:()=>W3,easeElasticOut:()=>H3,easeExp:()=>E3,easeExpIn:()=>k3,easeExpInOut:()=>E3,easeExpOut:()=>A3,easeLinear:()=>h3,easePoly:()=>w3,easePolyIn:()=>b3,easePolyInOut:()=>w3,easePolyOut:()=>v3,easeQuad:()=>g3,easeQuadIn:()=>d3,easeQuadInOut:()=>g3,easeQuadOut:()=>p3,easeSin:()=>S3,easeSinIn:()=>x3,easeSinInOut:()=>S3,easeSinOut:()=>_3,every:()=>mv,extent:()=>ti,fcumsum:()=>q2,filter:()=>bv,flatGroup:()=>Y2,flatRollup:()=>U2,forceCenter:()=>n4,forceCollide:()=>o4,forceLink:()=>s4,forceManyBody:()=>m4,forceRadial:()=>y4,forceSimulation:()=>g4,forceX:()=>b4,forceY:()=>v4,format:()=>Bo,formatDefaultLocale:()=>Lp,formatLocale:()=>Ip,formatPrefix:()=>Ls,formatSpecifier:()=>Dr,fsum:()=>L2,geoAlbers:()=>Zg,geoAlbersUsa:()=>k6,geoArea:()=>F4,geoAzimuthalEqualArea:()=>A6,geoAzimuthalEqualAreaRaw:()=>Cf,geoAzimuthalEquidistant:()=>E6,geoAzimuthalEquidistantRaw:()=>Ff,geoBounds:()=>D4,geoCentroid:()=>I4,geoCircle:()=>L4,geoClipAntimeridian:()=>af,geoClipCircle:()=>$g,geoClipExtent:()=>X4,geoClipRectangle:()=>xl,geoConicConformal:()=>C6,geoConicConformalRaw:()=>Jg,geoConicEqualArea:()=>vl,geoConicEqualAreaRaw:()=>Vg,geoConicEquidistant:()=>T6,geoConicEquidistantRaw:()=>tm,geoContains:()=>t6,geoDistance:()=>ul,geoEqualEarth:()=>B6,geoEqualEarthRaw:()=>Tf,geoEquirectangular:()=>F6,geoEquirectangularRaw:()=>Go,geoGnomonic:()=>D6,geoGnomonicRaw:()=>Of,geoGraticule:()=>Rg,geoGraticule10:()=>e6,geoIdentity:()=>$6,geoInterpolate:()=>n6,geoLength:()=>zg,geoMercator:()=>M6,geoMercatorRaw:()=>Qo,geoNaturalEarth1:()=>z6,geoNaturalEarth1Raw:()=>Bf,geoOrthographic:()=>N6,geoOrthographicRaw:()=>Df,geoPath:()=>p6,geoProjection:()=>_n,geoProjectionMutator:()=>Ef,geoRotation:()=>Cg,geoStereographic:()=>R6,geoStereographicRaw:()=>$f,geoStream:()=>ln,geoTransform:()=>g6,geoTransverseMercator:()=>P6,geoTransverseMercatorRaw:()=>zf,gray:()=>Ix,greatest:()=>Wd,greatestIndex:()=>uv,group:()=>Pd,groupSort:()=>j2,groups:()=>Id,hcl:()=>yo,hierarchy:()=>Yf,histogram:()=>Q2,hsl:()=>go,html:()=>P8,image:()=>$8,index:()=>H2,indexes:()=>W2,interpolate:()=>mn,interpolateArray:()=>Wx,interpolateBasis:()=>z0,interpolateBasisClosed:()=>N0,interpolateBlues:()=>$k,interpolateBrBG:()=>dk,interpolateBuGn:()=>_k,interpolateBuPu:()=>Sk,interpolateCividis:()=>Lk,interpolateCool:()=>Uk,interpolateCubehelix:()=>a3,interpolateCubehelixDefault:()=>qk,interpolateCubehelixLong:()=>vo,interpolateDate:()=>q0,interpolateDiscrete:()=>Gx,interpolateGnBu:()=>kk,interpolateGreens:()=>zk,interpolateGreys:()=>Nk,interpolateHcl:()=>i3,interpolateHclLong:()=>o3,interpolateHsl:()=>e3,interpolateHslLong:()=>n3,interpolateHue:()=>Vx,interpolateInferno:()=>Kk,interpolateLab:()=>r3,interpolateMagma:()=>Zk,interpolateNumber:()=>Fe,interpolateNumberArray:()=>eu,interpolateObject:()=>Y0,interpolateOrRd:()=>Ak,interpolateOranges:()=>Ik,interpolatePRGn:()=>pk,interpolatePiYG:()=>gk,interpolatePlasma:()=>Qk,interpolatePuBu:()=>Mk,interpolatePuBuGn:()=>Ek,interpolatePuOr:()=>mk,interpolatePuRd:()=>Ck,interpolatePurples:()=>Rk,interpolateRainbow:()=>Hk,interpolateRdBu:()=>yk,interpolateRdGy:()=>bk,interpolateRdPu:()=>Fk,interpolateRdYlBu:()=>vk,interpolateRdYlGn:()=>wk,interpolateReds:()=>Pk,interpolateRgb:()=>gi,interpolateRgbBasis:()=>tu,interpolateRgbBasisClosed:()=>Hx,interpolateRound:()=>bo,interpolateSinebow:()=>Xk,interpolateSpectral:()=>xk,interpolateString:()=>ys,interpolateTransformCss:()=>nu,interpolateTransformSvg:()=>ru,interpolateTurbo:()=>Gk,interpolateViridis:()=>Vk,interpolateWarm:()=>Yk,interpolateYlGn:()=>Ok,interpolateYlGnBu:()=>Tk,interpolateYlOrBr:()=>Bk,interpolateYlOrRd:()=>Dk,interpolateZoom:()=>iu,interrupt:()=>Bn,intersection:()=>kv,interval:()=>f3,isoFormat:()=>D9,isoParse:()=>z9,json:()=>N8,lab:()=>mo,lch:()=>Lx,least:()=>cv,leastIndex:()=>Xd,line:()=>_h,lineRadial:()=>hA,link:()=>Hl,linkHorizontal:()=>yA,linkRadial:()=>vA,linkVertical:()=>bA,local:()=>s0,map:()=>vv,matcher:()=>ss,max:()=>ri,maxIndex:()=>Oc,mean:()=>ev,median:()=>nv,medianIndex:()=>rv,merge:()=>Ja,min:()=>Ga,minIndex:()=>Bc,mode:()=>ov,namespace:()=>si,namespaces:()=>Nc,nice:()=>Za,now:()=>yi,pack:()=>_7,packEnclose:()=>m7,packSiblings:()=>w7,pairs:()=>av,partition:()=>S7,path:()=>Fs,pathRound:()=>m_,permute:()=>Hd,pie:()=>fA,piecewise:()=>ou,pointRadial:()=>pa,pointer:()=>se,pointers:()=>wx,polygonArea:()=>I7,polygonCentroid:()=>L7,polygonContains:()=>H7,polygonHull:()=>U7,polygonLength:()=>W7,precisionFixed:()=>Lu,precisionPrefix:()=>qu,precisionRound:()=>Yu,quadtree:()=>Oo,quantile:()=>ii,quantileIndex:()=>jd,quantileSorted:()=>Dc,quantize:()=>s3,quickselect:()=>Qa,radialArea:()=>dA,radialLine:()=>hA,randomBates:()=>V7,randomBernoulli:()=>Q7,randomBeta:()=>Sm,randomBinomial:()=>km,randomCauchy:()=>tS,randomExponential:()=>Z7,randomGamma:()=>Wf,randomGeometric:()=>_m,randomInt:()=>X7,randomIrwinHall:()=>xm,randomLcg:()=>oS,randomLogNormal:()=>G7,randomLogistic:()=>eS,randomNormal:()=>Hf,randomPareto:()=>K7,randomPoisson:()=>nS,randomUniform:()=>j7,randomWeibull:()=>J7,range:()=>hn,rank:()=>lv,reduce:()=>wv,reverse:()=>xv,rgb:()=>or,ribbon:()=>C_,ribbonArrow:()=>F_,rollup:()=>qd,rollups:()=>Yd,scaleBand:()=>sh,scaleDiverging:()=>_1,scaleDivergingLog:()=>S1,scaleDivergingPow:()=>gh,scaleDivergingSqrt:()=>ek,scaleDivergingSymlog:()=>k1,scaleIdentity:()=>u1,scaleImplicit:()=>ih,scaleLinear:()=>c1,scaleLog:()=>h1,scaleOrdinal:()=>ah,scalePoint:()=>N9,scalePow:()=>hh,scaleQuantile:()=>g1,scaleQuantize:()=>m1,scaleRadial:()=>p1,scaleSequential:()=>b1,scaleSequentialLog:()=>v1,scaleSequentialPow:()=>ph,scaleSequentialQuantile:()=>x1,scaleSequentialSqrt:()=>tk,scaleSequentialSymlog:()=>w1,scaleSqrt:()=>G9,scaleSymlog:()=>d1,scaleThreshold:()=>y1,scaleTime:()=>Q9,scaleUtc:()=>J9,scan:()=>fv,schemeAccent:()=>rk,schemeBlues:()=>j1,schemeBrBG:()=>A1,schemeBuGn:()=>$1,schemeBuPu:()=>z1,schemeCategory10:()=>nk,schemeDark2:()=>ik,schemeGnBu:()=>N1,schemeGreens:()=>X1,schemeGreys:()=>G1,schemeObservable10:()=>ok,schemeOrRd:()=>R1,schemeOranges:()=>K1,schemePRGn:()=>E1,schemePaired:()=>ak,schemePastel1:()=>sk,schemePastel2:()=>lk,schemePiYG:()=>M1,schemePuBu:()=>I1,schemePuBuGn:()=>P1,schemePuOr:()=>C1,schemePuRd:()=>L1,schemePurples:()=>V1,schemeRdBu:()=>F1,schemeRdGy:()=>T1,schemeRdPu:()=>q1,schemeRdYlBu:()=>O1,schemeRdYlGn:()=>B1,schemeReds:()=>Z1,schemeSet1:()=>ck,schemeSet2:()=>uk,schemeSet3:()=>fk,schemeSpectral:()=>D1,schemeTableau10:()=>hk,schemeYlGn:()=>U1,schemeYlGnBu:()=>Y1,schemeYlOrBr:()=>H1,schemeYlOrRd:()=>W1,select:()=>Gt,selectAll:()=>xx,selection:()=>rr,selector:()=>co,selectorAll:()=>as,shuffle:()=>hv,shuffler:()=>Gd,some:()=>yv,sort:()=>Mc,stack:()=>VA,stackOffsetDiverging:()=>KA,stackOffsetExpand:()=>ZA,stackOffsetNone:()=>Li,stackOffsetSilhouette:()=>QA,stackOffsetWiggle:()=>JA,stackOrderAppearance:()=>$y,stackOrderAscending:()=>zy,stackOrderDescending:()=>eE,stackOrderInsideOut:()=>nE,stackOrderNone:()=>qi,stackOrderReverse:()=>rE,stratify:()=>M7,style:()=>nr,subset:()=>Ev,sum:()=>dv,superset:()=>Zd,svg:()=>I8,symbol:()=>FA,symbolAsterisk:()=>uy,symbolCircle:()=>Wl,symbolCross:()=>fy,symbolDiamond:()=>dy,symbolDiamond2:()=>py,symbolPlus:()=>gy,symbolSquare:()=>my,symbolSquare2:()=>yy,symbolStar:()=>vy,symbolTimes:()=>Sy,symbolTriangle:()=>wy,symbolTriangle2:()=>xy,symbolWye:()=>_y,symbolX:()=>Sy,symbols:()=>MA,symbolsFill:()=>MA,symbolsStroke:()=>CA,text:()=>zs,thresholdFreedmanDiaconis:()=>J2,thresholdScott:()=>tv,thresholdSturges:()=>Ka,tickFormat:()=>l1,tickIncrement:()=>tr,tickStep:()=>ai,ticks:()=>Tn,timeDay:()=>fr,timeDays:()=>hS,timeFormat:()=>Cl,timeFormatDefaultLocale:()=>Km,timeFormatLocale:()=>Wm,timeFriday:()=>Cm,timeFridays:()=>wS,timeHour:()=>ia,timeHours:()=>uS,timeInterval:()=>jt,timeMillisecond:()=>ea,timeMilliseconds:()=>aS,timeMinute:()=>na,timeMinutes:()=>lS,timeMonday:()=>Ni,timeMondays:()=>mS,timeMonth:()=>aa,timeMonths:()=>FS,timeParse:()=>Zm,timeSaturday:()=>Fm,timeSaturdays:()=>xS,timeSecond:()=>Sn,timeSeconds:()=>sS,timeSunday:()=>qr,timeSundays:()=>gS,timeThursday:()=>hr,timeThursdays:()=>vS,timeTickInterval:()=>th,timeTicks:()=>Jf,timeTuesday:()=>Em,timeTuesdays:()=>yS,timeWednesday:()=>Mm,timeWednesdays:()=>bS,timeWeek:()=>qr,timeWeeks:()=>gS,timeYear:()=>We,timeYears:()=>OS,timeout:()=>xs,timer:()=>bi,timerFlush:()=>K0,transition:()=>ip,transpose:()=>Vd,tree:()=>$7,treemap:()=>z7,treemapBinary:()=>N7,treemapDice:()=>ta,treemapResquarify:()=>P7,treemapSlice:()=>Ml,treemapSliceDice:()=>R7,treemapSquarify:()=>bm,tsv:()=>D8,tsvFormat:()=>v8,tsvFormatBody:()=>w8,tsvFormatRow:()=>_8,tsvFormatRows:()=>x8,tsvFormatValue:()=>S8,tsvParse:()=>Ru,tsvParseRows:()=>b8,union:()=>Mv,unixDay:()=>Zf,unixDays:()=>pS,utcDay:()=>Ir,utcDays:()=>dS,utcFormat:()=>fa,utcFriday:()=>Bm,utcFridays:()=>MS,utcHour:()=>oa,utcHours:()=>fS,utcMillisecond:()=>ea,utcMilliseconds:()=>aS,utcMinute:()=>ra,utcMinutes:()=>cS,utcMonday:()=>Ri,utcMondays:()=>SS,utcMonth:()=>sa,utcMonths:()=>TS,utcParse:()=>rh,utcSaturday:()=>Dm,utcSaturdays:()=>CS,utcSecond:()=>Sn,utcSeconds:()=>sS,utcSunday:()=>Ur,utcSundays:()=>_S,utcThursday:()=>dr,utcThursdays:()=>ES,utcTickInterval:()=>Qf,utcTicks:()=>Kf,utcTuesday:()=>Tm,utcTuesdays:()=>kS,utcWednesday:()=>Om,utcWednesdays:()=>AS,utcWeek:()=>Ur,utcWeeks:()=>_S,utcYear:()=>je,utcYears:()=>BS,variance:()=>Dd,window:()=>Pc,xml:()=>R8,zip:()=>gv,zoom:()=>uE,zoomIdentity:()=>Vl,zoomTransform:()=>Py});function Ot(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Td(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function so(t){let e,n,r;t.length!==2?(e=Ot,n=(s,c)=>Ot(t(s),c),r=(s,c)=>t(s)-c):(e=t===Ot||t===Td?t:E2,n=t,r=t);function i(s,c,l=0,u=s.length){if(l<u){if(e(c,c)!==0)return u;do{let h=l+u>>>1;n(s[h],c)<0?l=h+1:u=h}while(l<u)}return l}function o(s,c,l=0,u=s.length){if(l<u){if(e(c,c)!==0)return u;do{let h=l+u>>>1;n(s[h],c)<=0?l=h+1:u=h}while(l<u)}return l}function a(s,c,l=0,u=s.length){let h=i(s,c,l,u-1);return h>l&&r(s[h-1],c)>-r(s[h],c)?h-1:h}return{left:i,center:a,right:o}}function E2(){return 0}function ja(t){return t===null?NaN:+t}function*M2(t,e){if(e===void 0)for(let n of t)n!=null&&(n=+n)>=n&&(yield n);else{let n=-1;for(let r of t)(r=e(r,++n,t))!=null&&(r=+r)>=r&&(yield r)}}var Od=so(Ot),er=Od.right,C2=Od.left,F2=so(ja).center;function T2(t,e){if(!((e=+e)>=0))throw new RangeError("invalid r");let n=t.length;if(!((n=Math.floor(n))>=0))throw new RangeError("invalid length");if(!n||!e)return t;let r=Fc(e),i=t.slice();return r(t,i,0,n,1),r(i,t,0,n,1),r(t,i,0,n,1),t}var Cc=Bd(Fc),O2=Bd(B2);function Bd(t){return function(e,n,r=n){if(!((n=+n)>=0))throw new RangeError("invalid rx");if(!((r=+r)>=0))throw new RangeError("invalid ry");let{data:i,width:o,height:a}=e;if(!((o=Math.floor(o))>=0))throw new RangeError("invalid width");if(!((a=Math.floor(a!==void 0?a:i.length/o))>=0))throw new RangeError("invalid height");if(!o||!a||!n&&!r)return e;let s=n&&t(n),c=r&&t(r),l=i.slice();return s&&c?(Qr(s,l,i,o,a),Qr(s,i,l,o,a),Qr(s,l,i,o,a),Jr(c,i,l,o,a),Jr(c,l,i,o,a),Jr(c,i,l,o,a)):s?(Qr(s,i,l,o,a),Qr(s,l,i,o,a),Qr(s,i,l,o,a)):c&&(Jr(c,i,l,o,a),Jr(c,l,i,o,a),Jr(c,i,l,o,a)),e}}function Qr(t,e,n,r,i){for(let o=0,a=r*i;o<a;)t(e,n,o,o+=r,1)}function Jr(t,e,n,r,i){for(let o=0,a=r*i;o<r;++o)t(e,n,o,o+a,r)}function B2(t){let e=Fc(t);return(n,r,i,o,a)=>{i<<=2,o<<=2,a<<=2,e(n,r,i+0,o+0,a),e(n,r,i+1,o+1,a),e(n,r,i+2,o+2,a),e(n,r,i+3,o+3,a)}}function Fc(t){let e=Math.floor(t);if(e===t)return D2(t);let n=t-e,r=2*t+1;return(i,o,a,s,c)=>{if(!((s-=c)>=a))return;let l=e*o[a],u=c*e,h=u+c;for(let f=a,d=a+u;f<d;f+=c)l+=o[Math.min(s,f)];for(let f=a,d=s;f<=d;f+=c)l+=o[Math.min(s,f+u)],i[f]=(l+n*(o[Math.max(a,f-h)]+o[Math.min(s,f+h)]))/r,l-=o[Math.max(a,f-u)]}}function D2(t){let e=2*t+1;return(n,r,i,o,a)=>{if(!((o-=a)>=i))return;let s=t*r[i],c=a*t;for(let l=i,u=i+c;l<u;l+=a)s+=r[Math.min(o,l)];for(let l=i,u=o;l<=u;l+=a)s+=r[Math.min(o,l+c)],n[l]=s/e,s-=r[Math.max(i,l-c)]}}function Va(t,e){let n=0;if(e===void 0)for(let r of t)r!=null&&(r=+r)>=r&&++n;else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(i=+i)>=i&&++n}return n}function $2(t){return t.length|0}function z2(t){return!(t>0)}function N2(t){return typeof t!="object"||"length"in t?t:Array.from(t)}function R2(t){return e=>t(...e)}function P2(...t){let e=typeof t[t.length-1]=="function"&&R2(t.pop());t=t.map(N2);let n=t.map($2),r=t.length-1,i=new Array(r+1).fill(0),o=[];if(r<0||n.some(z2))return o;for(;;){o.push(i.map((s,c)=>t[c][s]));let a=r;for(;++i[a]===n[a];){if(a===0)return e?o.map(e):o;i[a--]=0}}}function I2(t,e){var n=0,r=0;return Float64Array.from(t,e===void 0?i=>n+=+i||0:i=>n+=+e(i,r++,t)||0)}function Dd(t,e){let n=0,r,i=0,o=0;if(e===void 0)for(let a of t)a!=null&&(a=+a)>=a&&(r=a-i,i+=r/++n,o+=r*(a-i));else{let a=-1;for(let s of t)(s=e(s,++a,t))!=null&&(s=+s)>=s&&(r=s-i,i+=r/++n,o+=r*(s-i))}if(n>1)return o/(n-1)}function $d(t,e){let n=Dd(t,e);return n&&Math.sqrt(n)}function ti(t,e){let n,r;if(e===void 0)for(let i of t)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let o of t)(o=e(o,++i,t))!=null&&(n===void 0?o>=o&&(n=r=o):(n>o&&(n=o),r<o&&(r=o)))}return[n,r]}var Lt=class{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){let n=this._partials,r=0;for(let i=0;i<this._n&&i<32;i++){let o=n[i],a=e+o,s=Math.abs(e)<Math.abs(o)?e-(a-o):o-(a-e);s&&(n[r++]=s),e=a}return n[r]=e,this._n=r+1,this}valueOf(){let e=this._partials,n=this._n,r,i,o,a=0;if(n>0){for(a=e[--n];n>0&&(r=a,i=e[--n],a=r+i,o=i-(a-r),!o););n>0&&(o<0&&e[n-1]<0||o>0&&e[n-1]>0)&&(i=o*2,r=a+i,i==r-a&&(a=r))}return a}};function L2(t,e){let n=new Lt;if(e===void 0)for(let r of t)(r=+r)&&n.add(r);else{let r=-1;for(let i of t)(i=+e(i,++r,t))&&n.add(i)}return+n}function q2(t,e){let n=new Lt,r=-1;return Float64Array.from(t,e===void 0?i=>n.add(+i||0):i=>n.add(+e(i,++r,t)||0))}var Jn=class extends Map{constructor(e,n=Rd){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(let[r,i]of e)this.set(r,i)}get(e){return super.get(Ec(this,e))}has(e){return super.has(Ec(this,e))}set(e,n){return super.set(zd(this,e),n)}delete(e){return super.delete(Nd(this,e))}},Fn=class extends Set{constructor(e,n=Rd){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(let r of e)this.add(r)}has(e){return super.has(Ec(this,e))}add(e){return super.add(zd(this,e))}delete(e){return super.delete(Nd(this,e))}};function Ec({_intern:t,_key:e},n){let r=e(n);return t.has(r)?t.get(r):n}function zd({_intern:t,_key:e},n){let r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function Nd({_intern:t,_key:e},n){let r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function Rd(t){return t!==null&&typeof t=="object"?t.valueOf():t}function ei(t){return t}function Pd(t,...e){return oi(t,ei,ei,e)}function Id(t,...e){return oi(t,Array.from,ei,e)}function Ld(t,e){for(let n=1,r=e.length;n<r;++n)t=t.flatMap(i=>i.pop().map(([o,a])=>[...i,o,a]));return t}function Y2(t,...e){return Ld(Id(t,...e),e)}function U2(t,e,...n){return Ld(Yd(t,e,...n),n)}function qd(t,e,...n){return oi(t,ei,e,n)}function Yd(t,e,...n){return oi(t,Array.from,e,n)}function H2(t,...e){return oi(t,ei,Ud,e)}function W2(t,...e){return oi(t,Array.from,Ud,e)}function Ud(t){if(t.length!==1)throw new Error("duplicate key");return t[0]}function oi(t,e,n,r){return(function i(o,a){if(a>=r.length)return n(o);let s=new Jn,c=r[a++],l=-1;for(let u of o){let h=c(u,++l,o),f=s.get(h);f?f.push(u):s.set(h,[u])}for(let[u,h]of s)s.set(u,i(h,a));return e(s)})(t,0)}function Hd(t,e){return Array.from(e,n=>t[n])}function Mc(t,...e){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");t=Array.from(t);let[n]=e;if(n&&n.length!==2||e.length>1){let r=Uint32Array.from(t,(i,o)=>o);return e.length>1?(e=e.map(i=>t.map(i)),r.sort((i,o)=>{for(let a of e){let s=ni(a[i],a[o]);if(s)return s}})):(n=t.map(n),r.sort((i,o)=>ni(n[i],n[o]))),Hd(t,r)}return t.sort(Tc(n))}function Tc(t=Ot){if(t===Ot)return ni;if(typeof t!="function")throw new TypeError("compare is not a function");return(e,n)=>{let r=t(e,n);return r||r===0?r:(t(n,n)===0)-(t(e,e)===0)}}function ni(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(t<e?-1:t>e?1:0)}function j2(t,e,n){return(e.length!==2?Mc(qd(t,e,n),(([r,i],[o,a])=>Ot(i,a)||Ot(r,o))):Mc(Pd(t,n),(([r,i],[o,a])=>e(i,a)||Ot(r,o)))).map(([r])=>r)}var X2=Array.prototype,G2=X2.slice;function Ac(t){return()=>t}var V2=Math.sqrt(50),Z2=Math.sqrt(10),K2=Math.sqrt(2);function Xa(t,e,n){let r=(e-t)/Math.max(0,n),i=Math.floor(Math.log10(r)),o=r/Math.pow(10,i),a=o>=V2?10:o>=Z2?5:o>=K2?2:1,s,c,l;return i<0?(l=Math.pow(10,-i)/a,s=Math.round(t*l),c=Math.round(e*l),s/l<t&&++s,c/l>e&&--c,l=-l):(l=Math.pow(10,i)*a,s=Math.round(t/l),c=Math.round(e/l),s*l<t&&++s,c*l>e&&--c),c<s&&.5<=n&&n<2?Xa(t,e,n*2):[s,c,l]}function Tn(t,e,n){if(e=+e,t=+t,n=+n,!(n>0))return[];if(t===e)return[t];let r=e<t,[i,o,a]=r?Xa(e,t,n):Xa(t,e,n);if(!(o>=i))return[];let s=o-i+1,c=new Array(s);if(r)if(a<0)for(let l=0;l<s;++l)c[l]=(o-l)/-a;else for(let l=0;l<s;++l)c[l]=(o-l)*a;else if(a<0)for(let l=0;l<s;++l)c[l]=(i+l)/-a;else for(let l=0;l<s;++l)c[l]=(i+l)*a;return c}function tr(t,e,n){return e=+e,t=+t,n=+n,Xa(t,e,n)[2]}function ai(t,e,n){e=+e,t=+t,n=+n;let r=e<t,i=r?tr(e,t,n):tr(t,e,n);return(r?-1:1)*(i<0?1/-i:i)}function Za(t,e,n){let r;for(;;){let i=tr(t,e,n);if(i===r||i===0||!isFinite(i))return[t,e];if(i>0){let o=Math.ceil(t/i),a=Math.floor(e/i);t=(o-(o*i>t))*i,e=(a+(a*i<e))*i}else if(i<0){let o=-i,a=Math.ceil(t*o),s=Math.floor(e*o);t=(a-(a/o>t))/o,e=(s+(s/o<e))/o}r=i}}function Ka(t){return Math.max(1,Math.ceil(Math.log(Va(t))/Math.LN2)+1)}function Q2(){var t=ei,e=ti,n=Ka;function r(i){Array.isArray(i)||(i=Array.from(i));var o,a=i.length,s,c,l=new Array(a);for(o=0;o<a;++o)l[o]=t(i[o],o,i);var u=e(l),h=u[0],f=u[1],d=n(l,h,f);if(!Array.isArray(d)){let b=f,v=+d;if(e===ti&&([h,f]=Za(h,f,v)),d=Tn(h,f,v),d[0]<=h&&(c=tr(h,f,v)),d[d.length-1]>=f)if(b>=f&&e===ti){let x=tr(h,f,v);isFinite(x)&&(x>0?f=(Math.floor(f/x)+1)*x:x<0&&(f=(Math.ceil(f*-x)+1)/-x))}else d.pop()}for(var m=d.length,p=0,g=m;d[p]<=h;)++p;for(;d[g-1]>f;)--g;(p||g<m)&&(d=d.slice(p,g),m=g-p);var y=new Array(m+1),w;for(o=0;o<=m;++o)w=y[o]=[],w.x0=o>0?d[o-1]:h,w.x1=o<m?d[o]:f;if(isFinite(c)){if(c>0)for(o=0;o<a;++o)(s=l[o])!=null&&h<=s&&s<=f&&y[Math.min(m,Math.floor((s-h)/c))].push(i[o]);else if(c<0){for(o=0;o<a;++o)if((s=l[o])!=null&&h<=s&&s<=f){let b=Math.floor((h-s)*c);y[Math.min(m,b+(d[b]<=s))].push(i[o])}}}else for(o=0;o<a;++o)(s=l[o])!=null&&h<=s&&s<=f&&y[er(d,s,0,m)].push(i[o]);return y}return r.value=function(i){return arguments.length?(t=typeof i=="function"?i:Ac(i),r):t},r.domain=function(i){return arguments.length?(e=typeof i=="function"?i:Ac([i[0],i[1]]),r):e},r.thresholds=function(i){return arguments.length?(n=typeof i=="function"?i:Ac(Array.isArray(i)?G2.call(i):i),r):n},r}function ri(t,e){let n;if(e===void 0)for(let r of t)r!=null&&(n<r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n<i||n===void 0&&i>=i)&&(n=i)}return n}function Oc(t,e){let n,r=-1,i=-1;if(e===void 0)for(let o of t)++i,o!=null&&(n<o||n===void 0&&o>=o)&&(n=o,r=i);else for(let o of t)(o=e(o,++i,t))!=null&&(n<o||n===void 0&&o>=o)&&(n=o,r=i);return r}function Ga(t,e){let n;if(e===void 0)for(let r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function Bc(t,e){let n,r=-1,i=-1;if(e===void 0)for(let o of t)++i,o!=null&&(n>o||n===void 0&&o>=o)&&(n=o,r=i);else for(let o of t)(o=e(o,++i,t))!=null&&(n>o||n===void 0&&o>=o)&&(n=o,r=i);return r}function Qa(t,e,n=0,r=1/0,i){if(e=Math.floor(e),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(t.length-1,r)),!(n<=e&&e<=r))return t;for(i=i===void 0?ni:Tc(i);r>n;){if(r-n>600){let c=r-n+1,l=e-n+1,u=Math.log(c),h=.5*Math.exp(2*u/3),f=.5*Math.sqrt(u*h*(c-h)/c)*(l-c/2<0?-1:1),d=Math.max(n,Math.floor(e-l*h/c+f)),m=Math.min(r,Math.floor(e+(c-l)*h/c+f));Qa(t,e,d,m,i)}let o=t[e],a=n,s=r;for(ao(t,n,e),i(t[r],o)>0&&ao(t,n,r);a<s;){for(ao(t,a,s),++a,--s;i(t[a],o)<0;)++a;for(;i(t[s],o)>0;)--s}i(t[n],o)===0?ao(t,n,s):(++s,ao(t,s,r)),s<=e&&(n=s+1),e<=s&&(r=s-1)}return t}function ao(t,e,n){let r=t[e];t[e]=t[n],t[n]=r}function Wd(t,e=Ot){let n,r=!1;if(e.length===1){let i;for(let o of t){let a=e(o);(r?Ot(a,i)>0:Ot(a,a)===0)&&(n=o,i=a,r=!0)}}else for(let i of t)(r?e(i,n)>0:e(i,i)===0)&&(n=i,r=!0);return n}function ii(t,e,n){if(t=Float64Array.from(M2(t,n)),!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return Ga(t);if(e>=1)return ri(t);var r,i=(r-1)*e,o=Math.floor(i),a=ri(Qa(t,o).subarray(0,o+1)),s=Ga(t.subarray(o+1));return a+(s-a)*(i-o)}}function Dc(t,e,n=ja){if(!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,i=(r-1)*e,o=Math.floor(i),a=+n(t[o],o,t),s=+n(t[o+1],o+1,t);return a+(s-a)*(i-o)}}function jd(t,e,n=ja){if(!isNaN(e=+e)){if(r=Float64Array.from(t,(s,c)=>ja(n(t[c],c,t))),e<=0)return Bc(r);if(e>=1)return Oc(r);var r,i=Uint32Array.from(t,(s,c)=>c),o=r.length-1,a=Math.floor(o*e);return Qa(i,a,0,o,(s,c)=>ni(r[s],r[c])),a=Wd(i.subarray(0,a+1),s=>r[s]),a>=0?a:-1}}function J2(t,e,n){let r=Va(t),i=ii(t,.75)-ii(t,.25);return r&&i?Math.ceil((n-e)/(2*i*Math.pow(r,-1/3))):1}function tv(t,e,n){let r=Va(t),i=$d(t);return r&&i?Math.ceil((n-e)*Math.cbrt(r)/(3.49*i)):1}function ev(t,e){let n=0,r=0;if(e===void 0)for(let i of t)i!=null&&(i=+i)>=i&&(++n,r+=i);else{let i=-1;for(let o of t)(o=e(o,++i,t))!=null&&(o=+o)>=o&&(++n,r+=o)}if(n)return r/n}function nv(t,e){return ii(t,.5,e)}function rv(t,e){return jd(t,.5,e)}function*iv(t){for(let e of t)yield*e}function Ja(t){return Array.from(iv(t))}function ov(t,e){let n=new Jn;if(e===void 0)for(let o of t)o!=null&&o>=o&&n.set(o,(n.get(o)||0)+1);else{let o=-1;for(let a of t)(a=e(a,++o,t))!=null&&a>=a&&n.set(a,(n.get(a)||0)+1)}let r,i=0;for(let[o,a]of n)a>i&&(i=a,r=o);return r}function av(t,e=sv){let n=[],r,i=!1;for(let o of t)i&&n.push(e(r,o)),r=o,i=!0;return n}function sv(t,e){return[t,e]}function hn(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((e-t)/n))|0,o=new Array(i);++r<i;)o[r]=t+r*n;return o}function lv(t,e=Ot){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");let n=Array.from(t),r=new Float64Array(n.length);e.length!==2&&(n=n.map(e),e=Ot);let i=(s,c)=>e(n[s],n[c]),o,a;return t=Uint32Array.from(n,(s,c)=>c),t.sort(e===Ot?(s,c)=>ni(n[s],n[c]):Tc(i)),t.forEach((s,c)=>{let l=i(s,o===void 0?s:o);l>=0?((o===void 0||l>0)&&(o=s,a=c),r[s]=a):r[s]=NaN}),r}function cv(t,e=Ot){let n,r=!1;if(e.length===1){let i;for(let o of t){let a=e(o);(r?Ot(a,i)<0:Ot(a,a)===0)&&(n=o,i=a,r=!0)}}else for(let i of t)(r?e(i,n)<0:e(i,i)===0)&&(n=i,r=!0);return n}function Xd(t,e=Ot){if(e.length===1)return Bc(t,e);let n,r=-1,i=-1;for(let o of t)++i,(r<0?e(o,o)===0:e(o,n)<0)&&(n=o,r=i);return r}function uv(t,e=Ot){if(e.length===1)return Oc(t,e);let n,r=-1,i=-1;for(let o of t)++i,(r<0?e(o,o)===0:e(o,n)>0)&&(n=o,r=i);return r}function fv(t,e){let n=Xd(t,e);return n<0?void 0:n}var hv=Gd(Math.random);function Gd(t){return function(n,r=0,i=n.length){let o=i-(r=+r);for(;o;){let a=t()*o--|0,s=n[o+r];n[o+r]=n[a+r],n[a+r]=s}return n}}function dv(t,e){let n=0;if(e===void 0)for(let r of t)(r=+r)&&(n+=r);else{let r=-1;for(let i of t)(i=+e(i,++r,t))&&(n+=i)}return n}function Vd(t){if(!(o=t.length))return[];for(var e=-1,n=Ga(t,pv),r=new Array(n);++e<n;)for(var i=-1,o,a=r[e]=new Array(o);++i<o;)a[i]=t[i][e];return r}function pv(t){return t.length}function gv(){return Vd(arguments)}function mv(t,e){if(typeof e!="function")throw new TypeError("test is not a function");let n=-1;for(let r of t)if(!e(r,++n,t))return!1;return!0}function yv(t,e){if(typeof e!="function")throw new TypeError("test is not a function");let n=-1;for(let r of t)if(e(r,++n,t))return!0;return!1}function bv(t,e){if(typeof e!="function")throw new TypeError("test is not a function");let n=[],r=-1;for(let i of t)e(i,++r,t)&&n.push(i);return n}function vv(t,e){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");if(typeof e!="function")throw new TypeError("mapper is not a function");return Array.from(t,(n,r)=>e(n,r,t))}function wv(t,e,n){if(typeof e!="function")throw new TypeError("reducer is not a function");let r=t[Symbol.iterator](),i,o,a=-1;if(arguments.length<3){if({done:i,value:n}=r.next(),i)return;++a}for(;{done:i,value:o}=r.next(),!i;)n=e(n,o,++a,t);return n}function xv(t){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");return Array.from(t).reverse()}function _v(t,...e){t=new Fn(t);for(let n of e)for(let r of n)t.delete(r);return t}function Sv(t,e){let n=e[Symbol.iterator](),r=new Fn;for(let i of t){if(r.has(i))return!1;let o,a;for(;({value:o,done:a}=n.next())&&!a;){if(Object.is(i,o))return!1;r.add(o)}}return!0}function kv(t,...e){t=new Fn(t),e=e.map(Av);t:for(let n of t)for(let r of e)if(!r.has(n)){t.delete(n);continue t}return t}function Av(t){return t instanceof Fn?t:new Fn(t)}function Zd(t,e){let n=t[Symbol.iterator](),r=new Set;for(let i of e){let o=Fd(i);if(r.has(o))continue;let a,s;for(;{value:a,done:s}=n.next();){if(s)return!1;let c=Fd(a);if(r.add(c),Object.is(o,c))break}}return!0}function Fd(t){return t!==null&&typeof t=="object"?t.valueOf():t}function Ev(t,e){return Zd(e,t)}function Mv(...t){let e=new Fn;for(let n of t)for(let r of n)e.add(r);return e}function Cv(t){return t}var ts=1,es=2,$c=3,lo=4,Kd=1e-6;function Fv(t){return"translate("+t+",0)"}function Tv(t){return"translate(0,"+t+")"}function Ov(t){return e=>+t(e)}function Bv(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function Dv(){return!this.__axis}function ns(t,e){var n=[],r=null,i=null,o=6,a=6,s=3,c=typeof window<"u"&&window.devicePixelRatio>1?0:.5,l=t===ts||t===lo?-1:1,u=t===lo||t===es?"x":"y",h=t===ts||t===$c?Fv:Tv;function f(d){var m=r??(e.ticks?e.ticks.apply(e,n):e.domain()),p=i??(e.tickFormat?e.tickFormat.apply(e,n):Cv),g=Math.max(o,0)+s,y=e.range(),w=+y[0]+c,b=+y[y.length-1]+c,v=(e.bandwidth?Bv:Ov)(e.copy(),c),x=d.selection?d.selection():d,S=x.selectAll(".domain").data([null]),k=x.selectAll(".tick").data(m,e).order(),C=k.exit(),F=k.enter().append("g").attr("class","tick"),A=k.select("line"),E=k.select("text");S=S.merge(S.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),k=k.merge(F),A=A.merge(F.append("line").attr("stroke","currentColor").attr(u+"2",l*o)),E=E.merge(F.append("text").attr("fill","currentColor").attr(u,l*g).attr("dy",t===ts?"0em":t===$c?"0.71em":"0.32em")),d!==x&&(S=S.transition(d),k=k.transition(d),A=A.transition(d),E=E.transition(d),C=C.transition(d).attr("opacity",Kd).attr("transform",function(D){return isFinite(D=v(D))?h(D+c):this.getAttribute("transform")}),F.attr("opacity",Kd).attr("transform",function(D){var $=this.parentNode.__axis;return h(($&&isFinite($=$(D))?$:v(D))+c)})),C.remove(),S.attr("d",t===lo||t===es?a?"M"+l*a+","+w+"H"+c+"V"+b+"H"+l*a:"M"+c+","+w+"V"+b:a?"M"+w+","+l*a+"V"+c+"H"+b+"V"+l*a:"M"+w+","+c+"H"+b),k.attr("opacity",1).attr("transform",function(D){return h(v(D)+c)}),A.attr(u+"2",l*o),E.attr(u,l*g).text(p),x.filter(Dv).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===es?"start":t===lo?"end":"middle"),x.each(function(){this.__axis=v})}return f.scale=function(d){return arguments.length?(e=d,f):e},f.ticks=function(){return n=Array.from(arguments),f},f.tickArguments=function(d){return arguments.length?(n=d==null?[]:Array.from(d),f):n.slice()},f.tickValues=function(d){return arguments.length?(r=d==null?null:Array.from(d),f):r&&r.slice()},f.tickFormat=function(d){return arguments.length?(i=d,f):i},f.tickSize=function(d){return arguments.length?(o=a=+d,f):o},f.tickSizeInner=function(d){return arguments.length?(o=+d,f):o},f.tickSizeOuter=function(d){return arguments.length?(a=+d,f):a},f.tickPadding=function(d){return arguments.length?(s=+d,f):s},f.offset=function(d){return arguments.length?(c=+d,f):c},f}function $v(t){return ns(ts,t)}function zv(t){return ns(es,t)}function Nv(t){return ns($c,t)}function Rv(t){return ns(lo,t)}var Pv={value:()=>{}};function qe(){for(var t=0,e=arguments.length,n={},r;t<e;++t){if(!(r=arguments[t]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new rs(n)}function rs(t){this._=t}function Iv(t,e){return t.trim().split(/^|\s+/).map(function(n){var r="",i=n.indexOf(".");if(i>=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}rs.prototype=qe.prototype={constructor:rs,on:function(t,e){var n=this._,r=Iv(t+"",n),i,o=-1,a=r.length;if(arguments.length<2){for(;++o<a;)if((i=(t=r[o]).type)&&(i=Lv(n[i],t.name)))return i;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++o<a;)if(i=(t=r[o]).type)n[i]=Qd(n[i],t.name,e);else if(e==null)for(i in n)n[i]=Qd(n[i],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new rs(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var n=new Array(i),r=0,i,o;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=this._[t],r=0,i=o.length;r<i;++r)o[r].value.apply(e,n)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(e,n)}};function Lv(t,e){for(var n=0,r=t.length,i;n<r;++n)if((i=t[n]).name===e)return i.value}function Qd(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=Pv,t=t.slice(0,r).concat(t.slice(r+1));break}return n!=null&&t.push({name:e,value:n}),t}var zc="http://www.w3.org/1999/xhtml",Nc={svg:"http://www.w3.org/2000/svg",xhtml:zc,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function si(t){var e=t+="",n=e.indexOf(":");return n>=0&&(e=t.slice(0,n))!=="xmlns"&&(t=t.slice(n+1)),Nc.hasOwnProperty(e)?{space:Nc[e],local:t}:t}function qv(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===zc&&e.documentElement.namespaceURI===zc?e.createElement(t):e.createElementNS(n,t)}}function Yv(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function os(t){var e=si(t);return(e.local?Yv:qv)(e)}function Uv(){}function co(t){return t==null?Uv:function(){return this.querySelector(t)}}function Hv(t){typeof t!="function"&&(t=co(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var o=e[i],a=o.length,s=r[i]=new Array(a),c,l,u=0;u<a;++u)(c=o[u])&&(l=t.call(c,c.__data__,u,o))&&("__data__"in c&&(l.__data__=c.__data__),s[u]=l);return new ye(r,this._parents)}function Jd(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function Wv(){return[]}function as(t){return t==null?Wv:function(){return this.querySelectorAll(t)}}function jv(t){return function(){return Jd(t.apply(this,arguments))}}function Xv(t){typeof t=="function"?t=jv(t):t=as(t);for(var e=this._groups,n=e.length,r=[],i=[],o=0;o<n;++o)for(var a=e[o],s=a.length,c,l=0;l<s;++l)(c=a[l])&&(r.push(t.call(c,c.__data__,l,a)),i.push(c));return new ye(r,i)}function ss(t){return function(){return this.matches(t)}}function t0(t){return function(e){return e.matches(t)}}var Gv=Array.prototype.find;function Vv(t){return function(){return Gv.call(this.children,t)}}function Zv(){return this.firstElementChild}function Kv(t){return this.select(t==null?Zv:Vv(typeof t=="function"?t:t0(t)))}var Qv=Array.prototype.filter;function Jv(){return Array.from(this.children)}function tw(t){return function(){return Qv.call(this.children,t)}}function ew(t){return this.selectAll(t==null?Jv:tw(typeof t=="function"?t:t0(t)))}function nw(t){typeof t!="function"&&(t=ss(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var o=e[i],a=o.length,s=r[i]=[],c,l=0;l<a;++l)(c=o[l])&&t.call(c,c.__data__,l,o)&&s.push(c);return new ye(r,this._parents)}function e0(t){return new Array(t.length)}function rw(){return new ye(this._enter||this._groups.map(e0),this._parents)}function is(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}is.prototype={constructor:is,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function iw(t){return function(){return t}}function ow(t,e,n,r,i,o){for(var a=0,s,c=e.length,l=o.length;a<l;++a)(s=e[a])?(s.__data__=o[a],r[a]=s):n[a]=new is(t,o[a]);for(;a<c;++a)(s=e[a])&&(i[a]=s)}function aw(t,e,n,r,i,o,a){var s,c,l=new Map,u=e.length,h=o.length,f=new Array(u),d;for(s=0;s<u;++s)(c=e[s])&&(f[s]=d=a.call(c,c.__data__,s,e)+"",l.has(d)?i[s]=c:l.set(d,c));for(s=0;s<h;++s)d=a.call(t,o[s],s,o)+"",(c=l.get(d))?(r[s]=c,c.__data__=o[s],l.delete(d)):n[s]=new is(t,o[s]);for(s=0;s<u;++s)(c=e[s])&&l.get(f[s])===c&&(i[s]=c)}function sw(t){return t.__data__}function lw(t,e){if(!arguments.length)return Array.from(this,sw);var n=e?aw:ow,r=this._parents,i=this._groups;typeof t!="function"&&(t=iw(t));for(var o=i.length,a=new Array(o),s=new Array(o),c=new Array(o),l=0;l<o;++l){var u=r[l],h=i[l],f=h.length,d=cw(t.call(u,u&&u.__data__,l,r)),m=d.length,p=s[l]=new Array(m),g=a[l]=new Array(m),y=c[l]=new Array(f);n(u,h,p,g,y,d,e);for(var w=0,b=0,v,x;w<m;++w)if(v=p[w]){for(w>=b&&(b=w+1);!(x=g[b])&&++b<m;);v._next=x||null}}return a=new ye(a,r),a._enter=s,a._exit=c,a}function cw(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function uw(){return new ye(this._exit||this._groups.map(e0),this._parents)}function fw(t,e,n){var r=this.enter(),i=this,o=this.exit();return typeof t=="function"?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),e!=null&&(i=e(i),i&&(i=i.selection())),n==null?o.remove():n(o),r&&i?r.merge(i).order():i}function hw(t){for(var e=t.selection?t.selection():t,n=this._groups,r=e._groups,i=n.length,o=r.length,a=Math.min(i,o),s=new Array(i),c=0;c<a;++c)for(var l=n[c],u=r[c],h=l.length,f=s[c]=new Array(h),d,m=0;m<h;++m)(d=l[m]||u[m])&&(f[m]=d);for(;c<i;++c)s[c]=n[c];return new ye(s,this._parents)}function dw(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r=t[e],i=r.length-1,o=r[i],a;--i>=0;)(a=r[i])&&(o&&a.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(a,o),o=a);return this}function pw(t){t||(t=gw);function e(h,f){return h&&f?t(h.__data__,f.__data__):!h-!f}for(var n=this._groups,r=n.length,i=new Array(r),o=0;o<r;++o){for(var a=n[o],s=a.length,c=i[o]=new Array(s),l,u=0;u<s;++u)(l=a[u])&&(c[u]=l);c.sort(e)}return new ye(i,this._parents).order()}function gw(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function mw(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function yw(){return Array.from(this)}function bw(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null}function vw(){let t=0;for(let e of this)++t;return t}function ww(){return!this.node()}function xw(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i=e[n],o=0,a=i.length,s;o<a;++o)(s=i[o])&&t.call(s,s.__data__,o,i);return this}function _w(t){return function(){this.removeAttribute(t)}}function Sw(t){return function(){this.removeAttributeNS(t.space,t.local)}}function kw(t,e){return function(){this.setAttribute(t,e)}}function Aw(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function Ew(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttribute(t):this.setAttribute(t,n)}}function Mw(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function Cw(t,e){var n=si(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((e==null?n.local?Sw:_w:typeof e=="function"?n.local?Mw:Ew:n.local?Aw:kw)(n,e))}function Pc(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Fw(t){return function(){this.style.removeProperty(t)}}function Tw(t,e,n){return function(){this.style.setProperty(t,e,n)}}function Ow(t,e,n){return function(){var r=e.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function Bw(t,e,n){return arguments.length>1?this.each((e==null?Fw:typeof e=="function"?Ow:Tw)(t,e,n??"")):nr(this.node(),t)}function nr(t,e){return t.style.getPropertyValue(e)||Pc(t).getComputedStyle(t,null).getPropertyValue(e)}function Dw(t){return function(){delete this[t]}}function $w(t,e){return function(){this[t]=e}}function zw(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function Nw(t,e){return arguments.length>1?this.each((e==null?Dw:typeof e=="function"?zw:$w)(t,e)):this.node()[t]}function n0(t){return t.trim().split(/^|\s+/)}function Ic(t){return t.classList||new r0(t)}function r0(t){this._node=t,this._names=n0(t.getAttribute("class")||"")}r0.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function i0(t,e){for(var n=Ic(t),r=-1,i=e.length;++r<i;)n.add(e[r])}function o0(t,e){for(var n=Ic(t),r=-1,i=e.length;++r<i;)n.remove(e[r])}function Rw(t){return function(){i0(this,t)}}function Pw(t){return function(){o0(this,t)}}function Iw(t,e){return function(){(e.apply(this,arguments)?i0:o0)(this,t)}}function Lw(t,e){var n=n0(t+"");if(arguments.length<2){for(var r=Ic(this.node()),i=-1,o=n.length;++i<o;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof e=="function"?Iw:e?Rw:Pw)(n,e))}function qw(){this.textContent=""}function Yw(t){return function(){this.textContent=t}}function Uw(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function Hw(t){return arguments.length?this.each(t==null?qw:(typeof t=="function"?Uw:Yw)(t)):this.node().textContent}function Ww(){this.innerHTML=""}function jw(t){return function(){this.innerHTML=t}}function Xw(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function Gw(t){return arguments.length?this.each(t==null?Ww:(typeof t=="function"?Xw:jw)(t)):this.node().innerHTML}function Vw(){this.nextSibling&&this.parentNode.appendChild(this)}function Zw(){return this.each(Vw)}function Kw(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Qw(){return this.each(Kw)}function Jw(t){var e=typeof t=="function"?t:os(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function tx(){return null}function ex(t,e){var n=typeof t=="function"?t:os(t),r=e==null?tx:typeof e=="function"?e:co(e);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function nx(){var t=this.parentNode;t&&t.removeChild(this)}function rx(){return this.each(nx)}function ix(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function ox(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function ax(t){return this.select(t?ox:ix)}function sx(t){return arguments.length?this.property("__data__",t):this.node().__data__}function lx(t){return function(e){t.call(this,e,this.__data__)}}function cx(t){return t.trim().split(/^|\s+/).map(function(e){var n="",r=e.indexOf(".");return r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),{type:e,name:n}})}function ux(t){return function(){var e=this.__on;if(e){for(var n=0,r=-1,i=e.length,o;n<i;++n)o=e[n],(!t.type||o.type===t.type)&&o.name===t.name?this.removeEventListener(o.type,o.listener,o.options):e[++r]=o;++r?e.length=r:delete this.__on}}}function fx(t,e,n){return function(){var r=this.__on,i,o=lx(e);if(r){for(var a=0,s=r.length;a<s;++a)if((i=r[a]).type===t.type&&i.name===t.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=o,i.options=n),i.value=e;return}}this.addEventListener(t.type,o,n),i={type:t.type,name:t.name,value:e,listener:o,options:n},r?r.push(i):this.__on=[i]}}function hx(t,e,n){var r=cx(t+""),i,o=r.length,a;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<o;++i)if((a=r[i]).type===u.type&&a.name===u.name)return u.value}return}for(s=e?fx:ux,i=0;i<o;++i)this.each(s(r[i],e,n));return this}function a0(t,e,n){var r=Pc(t),i=r.CustomEvent;typeof i=="function"?i=new i(e,n):(i=r.document.createEvent("Event"),n?(i.initEvent(e,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function dx(t,e){return function(){return a0(this,t,e)}}function px(t,e){return function(){return a0(this,t,e.apply(this,arguments))}}function gx(t,e){return this.each((typeof e=="function"?px:dx)(t,e))}function*mx(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,o=r.length,a;i<o;++i)(a=r[i])&&(yield a)}var Lc=[null];function ye(t,e){this._groups=t,this._parents=e}function rr(){return new ye([[document.documentElement]],Lc)}function yx(){return this}ye.prototype=rr.prototype={constructor:ye,select:Hv,selectAll:Xv,selectChild:Kv,selectChildren:ew,filter:nw,data:lw,enter:rw,exit:uw,join:fw,merge:hw,selection:yx,order:dw,sort:pw,call:mw,nodes:yw,node:bw,size:vw,empty:ww,each:xw,attr:Cw,style:Bw,property:Nw,classed:Lw,text:Hw,html:Gw,raise:Zw,lower:Qw,append:Jw,insert:ex,remove:rx,clone:ax,datum:sx,on:hx,dispatch:gx,[Symbol.iterator]:mx};function Gt(t){return typeof t=="string"?new ye([[document.querySelector(t)]],[document.documentElement]):new ye([[t]],Lc)}function bx(t){return Gt(os(t).call(document.documentElement))}var vx=0;function s0(){return new Rc}function Rc(){this._="@"+(++vx).toString(36)}Rc.prototype=s0.prototype={constructor:Rc,get:function(t){for(var e=this._;!(e in t);)if(!(t=t.parentNode))return;return t[e]},set:function(t,e){return t[this._]=e},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}};function l0(t){let e;for(;e=t.sourceEvent;)t=e;return t}function se(t,e){if(t=l0(t),e===void 0&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,r=r.matrixTransform(e.getScreenCTM().inverse()),[r.x,r.y]}if(e.getBoundingClientRect){var i=e.getBoundingClientRect();return[t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop]}}return[t.pageX,t.pageY]}function wx(t,e){return t.target&&(t=l0(t),e===void 0&&(e=t.currentTarget),t=t.touches||[t]),Array.from(t,n=>se(n,e))}function xx(t){return typeof t=="string"?new ye([document.querySelectorAll(t)],[document.documentElement]):new ye([Jd(t)],Lc)}var _x={passive:!1},uo={capture:!0,passive:!1};function qc(t){t.stopImmediatePropagation()}function li(t){t.preventDefault(),t.stopImmediatePropagation()}function ci(t){var e=t.document.documentElement,n=Gt(t).on("dragstart.drag",li,uo);"onselectstart"in e?n.on("selectstart.drag",li,uo):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function ui(t,e){var n=t.document.documentElement,r=Gt(t).on("dragstart.drag",null);e&&(r.on("click.drag",li,uo),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var ls=t=>()=>t;function Yc(t,{sourceEvent:e,subject:n,target:r,identifier:i,active:o,x:a,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}Yc.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function Sx(t){return!t.ctrlKey&&!t.button}function kx(){return this.parentNode}function Ax(t,e){return e??{x:t.x,y:t.y}}function Ex(){return navigator.maxTouchPoints||"ontouchstart"in this}function Mx(){var t=Sx,e=kx,n=Ax,r=Ex,i={},o=qe("start","drag","end"),a=0,s,c,l,u,h=0;function f(v){v.on("mousedown.drag",d).filter(r).on("touchstart.drag",g).on("touchmove.drag",y,_x).on("touchend.drag touchcancel.drag",w).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function d(v,x){if(!(u||!t.call(this,v,x))){var S=b(this,e.call(this,v,x),v,x,"mouse");S&&(Gt(v.view).on("mousemove.drag",m,uo).on("mouseup.drag",p,uo),ci(v.view),qc(v),l=!1,s=v.clientX,c=v.clientY,S("start",v))}}function m(v){if(li(v),!l){var x=v.clientX-s,S=v.clientY-c;l=x*x+S*S>h}i.mouse("drag",v)}function p(v){Gt(v.view).on("mousemove.drag mouseup.drag",null),ui(v.view,l),li(v),i.mouse("end",v)}function g(v,x){if(t.call(this,v,x)){var S=v.changedTouches,k=e.call(this,v,x),C=S.length,F,A;for(F=0;F<C;++F)(A=b(this,k,v,x,S[F].identifier,S[F]))&&(qc(v),A("start",v,S[F]))}}function y(v){var x=v.changedTouches,S=x.length,k,C;for(k=0;k<S;++k)(C=i[x[k].identifier])&&(li(v),C("drag",v,x[k]))}function w(v){var x=v.changedTouches,S=x.length,k,C;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),k=0;k<S;++k)(C=i[x[k].identifier])&&(qc(v),C("end",v,x[k]))}function b(v,x,S,k,C,F){var A=o.copy(),E=se(F||S,x),D,$,M;if((M=n.call(v,new Yc("beforestart",{sourceEvent:S,target:f,identifier:C,active:a,x:E[0],y:E[1],dx:0,dy:0,dispatch:A}),k))!=null)return D=M.x-E[0]||0,$=M.y-E[1]||0,function T(B,N,L){var q=E,U;switch(B){case"start":i[C]=T,U=a++;break;case"end":delete i[C],--a;case"drag":E=se(L||N,x),U=a;break}A.call(B,v,new Yc(B,{sourceEvent:N,subject:M,target:f,identifier:C,active:U,x:E[0]+D,y:E[1]+$,dx:E[0]-q[0],dy:E[1]-q[1],dispatch:A}),k)}}return f.filter=function(v){return arguments.length?(t=typeof v=="function"?v:ls(!!v),f):t},f.container=function(v){return arguments.length?(e=typeof v=="function"?v:ls(v),f):e},f.subject=function(v){return arguments.length?(n=typeof v=="function"?v:ls(v),f):n},f.touchable=function(v){return arguments.length?(r=typeof v=="function"?v:ls(!!v),f):r},f.on=function(){var v=o.on.apply(o,arguments);return v===o?f:v},f.clickDistance=function(v){return arguments.length?(h=(v=+v)*v,f):Math.sqrt(h)},f}function pi(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function po(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function ir(){}var Er=.7,di=1/Er,fi="\\s*([+-]?\\d+)\\s*",fo="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",pn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Cx=/^#([0-9a-f]{3,8})$/,Fx=new RegExp(`^rgb\\(${fi},${fi},${fi}\\)$`),Tx=new RegExp(`^rgb\\(${pn},${pn},${pn}\\)$`),Ox=new RegExp(`^rgba\\(${fi},${fi},${fi},${fo}\\)$`),Bx=new RegExp(`^rgba\\(${pn},${pn},${pn},${fo}\\)$`),Dx=new RegExp(`^hsl\\(${fo},${pn},${pn}\\)$`),$x=new RegExp(`^hsla\\(${fo},${pn},${pn},${fo}\\)$`),c0={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};pi(ir,gn,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:u0,formatHex:u0,formatHex8:zx,formatHsl:Nx,formatRgb:f0,toString:f0});function u0(){return this.rgb().formatHex()}function zx(){return this.rgb().formatHex8()}function Nx(){return w0(this).formatHsl()}function f0(){return this.rgb().formatRgb()}function gn(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=Cx.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?h0(e):n===3?new Kt(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?cs(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?cs(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=Fx.exec(t))?new Kt(e[1],e[2],e[3],1):(e=Tx.exec(t))?new Kt(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=Ox.exec(t))?cs(e[1],e[2],e[3],e[4]):(e=Bx.exec(t))?cs(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=Dx.exec(t))?g0(e[1],e[2]/100,e[3]/100,1):(e=$x.exec(t))?g0(e[1],e[2]/100,e[3]/100,e[4]):c0.hasOwnProperty(t)?h0(c0[t]):t==="transparent"?new Kt(NaN,NaN,NaN,0):null}function h0(t){return new Kt(t>>16&255,t>>8&255,t&255,1)}function cs(t,e,n,r){return r<=0&&(t=e=n=NaN),new Kt(t,e,n,r)}function Gc(t){return t instanceof ir||(t=gn(t)),t?(t=t.rgb(),new Kt(t.r,t.g,t.b,t.opacity)):new Kt}function or(t,e,n,r){return arguments.length===1?Gc(t):new Kt(t,e,n,r??1)}function Kt(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}pi(Kt,or,po(ir,{brighter(t){return t=t==null?di:Math.pow(di,t),new Kt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Er:Math.pow(Er,t),new Kt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Kt(kr(this.r),kr(this.g),kr(this.b),fs(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:d0,formatHex:d0,formatHex8:Rx,formatRgb:p0,toString:p0}));function d0(){return`#${Sr(this.r)}${Sr(this.g)}${Sr(this.b)}`}function Rx(){return`#${Sr(this.r)}${Sr(this.g)}${Sr(this.b)}${Sr((isNaN(this.opacity)?1:this.opacity)*255)}`}function p0(){let t=fs(this.opacity);return`${t===1?"rgb(":"rgba("}${kr(this.r)}, ${kr(this.g)}, ${kr(this.b)}${t===1?")":`, ${t})`}`}function fs(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function kr(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Sr(t){return t=kr(t),(t<16?"0":"")+t.toString(16)}function g0(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new on(t,e,n,r)}function w0(t){if(t instanceof on)return new on(t.h,t.s,t.l,t.opacity);if(t instanceof ir||(t=gn(t)),!t)return new on;if(t instanceof on)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),o=Math.max(e,n,r),a=NaN,s=o-i,c=(o+i)/2;return s?(e===o?a=(n-r)/s+(n<r)*6:n===o?a=(r-e)/s+2:a=(e-n)/s+4,s/=c<.5?o+i:2-o-i,a*=60):s=c>0&&c<1?0:a,new on(a,s,c,t.opacity)}function go(t,e,n,r){return arguments.length===1?w0(t):new on(t,e,n,r??1)}function on(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}pi(on,go,po(ir,{brighter(t){return t=t==null?di:Math.pow(di,t),new on(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Er:Math.pow(Er,t),new on(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new Kt(Uc(t>=240?t-240:t+120,i,r),Uc(t,i,r),Uc(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new on(m0(this.h),us(this.s),us(this.l),fs(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let t=fs(this.opacity);return`${t===1?"hsl(":"hsla("}${m0(this.h)}, ${us(this.s)*100}%, ${us(this.l)*100}%${t===1?")":`, ${t})`}`}}));function m0(t){return t=(t||0)%360,t<0?t+360:t}function us(t){return Math.max(0,Math.min(1,t||0))}function Uc(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}var x0=Math.PI/180,_0=180/Math.PI,hs=18,S0=.96422,k0=1,A0=.82521,E0=4/29,hi=6/29,M0=3*hi*hi,Px=hi*hi*hi;function C0(t){if(t instanceof an)return new an(t.l,t.a,t.b,t.opacity);if(t instanceof dn)return T0(t);t instanceof Kt||(t=Gc(t));var e=Xc(t.r),n=Xc(t.g),r=Xc(t.b),i=Hc((.2225045*e+.7168786*n+.0606169*r)/k0),o,a;return e===n&&n===r?o=a=i:(o=Hc((.4360747*e+.3850649*n+.1430804*r)/S0),a=Hc((.0139322*e+.0971045*n+.7141733*r)/A0)),new an(116*i-16,500*(o-i),200*(i-a),t.opacity)}function Ix(t,e){return new an(t,0,0,e??1)}function mo(t,e,n,r){return arguments.length===1?C0(t):new an(t,e,n,r??1)}function an(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}pi(an,mo,po(ir,{brighter(t){return new an(this.l+hs*(t??1),this.a,this.b,this.opacity)},darker(t){return new an(this.l-hs*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=S0*Wc(e),t=k0*Wc(t),n=A0*Wc(n),new Kt(jc(3.1338561*e-1.6168667*t-.4906146*n),jc(-.9787684*e+1.9161415*t+.033454*n),jc(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function Hc(t){return t>Px?Math.pow(t,1/3):t/M0+E0}function Wc(t){return t>hi?t*t*t:M0*(t-E0)}function jc(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Xc(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function F0(t){if(t instanceof dn)return new dn(t.h,t.c,t.l,t.opacity);if(t instanceof an||(t=C0(t)),t.a===0&&t.b===0)return new dn(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*_0;return new dn(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function Lx(t,e,n,r){return arguments.length===1?F0(t):new dn(n,e,t,r??1)}function yo(t,e,n,r){return arguments.length===1?F0(t):new dn(t,e,n,r??1)}function dn(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}function T0(t){if(isNaN(t.h))return new an(t.l,0,0,t.opacity);var e=t.h*x0;return new an(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}pi(dn,yo,po(ir,{brighter(t){return new dn(this.h,this.c,this.l+hs*(t??1),this.opacity)},darker(t){return new dn(this.h,this.c,this.l-hs*(t??1),this.opacity)},rgb(){return T0(this).rgb()}}));var O0=-.14861,Vc=1.78277,Zc=-.29227,ds=-.90649,ho=1.97294,y0=ho*ds,b0=ho*Vc,v0=Vc*Zc-ds*O0;function qx(t){if(t instanceof Ar)return new Ar(t.h,t.s,t.l,t.opacity);t instanceof Kt||(t=Gc(t));var e=t.r/255,n=t.g/255,r=t.b/255,i=(v0*r+y0*e-b0*n)/(v0+y0-b0),o=r-i,a=(ho*(n-i)-Zc*o)/ds,s=Math.sqrt(a*a+o*o)/(ho*i*(1-i)),c=s?Math.atan2(a,o)*_0-120:NaN;return new Ar(c<0?c+360:c,s,i,t.opacity)}function Ne(t,e,n,r){return arguments.length===1?qx(t):new Ar(t,e,n,r??1)}function Ar(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}pi(Ar,Ne,po(ir,{brighter(t){return t=t==null?di:Math.pow(di,t),new Ar(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Er:Math.pow(Er,t),new Ar(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*x0,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new Kt(255*(e+n*(O0*r+Vc*i)),255*(e+n*(Zc*r+ds*i)),255*(e+n*(ho*r)),this.opacity)}}));function $0(t,e,n,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*n+(1+3*t+3*o-3*a)*r+a*i)/6}function z0(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,s=r<e-1?t[r+2]:2*o-i;return $0((n-r/e)*e,a,i,o,s)}}function N0(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],o=t[r%e],a=t[(r+1)%e],s=t[(r+2)%e];return $0((n-r/e)*e,i,o,a,s)}}var gs=t=>()=>t;function R0(t,e){return function(n){return t+n*e}}function Yx(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function ms(t,e){var n=e-t;return n?R0(t,n>180||n<-180?n-360*Math.round(n/360):n):gs(isNaN(t)?e:t)}function Ux(t){return(t=+t)==1?Qt:function(e,n){return n-e?Yx(e,n,t):gs(isNaN(e)?n:e)}}function Qt(t,e){var n=e-t;return n?R0(t,n):gs(isNaN(t)?e:t)}var gi=(function t(e){var n=Ux(e);function r(i,o){var a=n((i=or(i)).r,(o=or(o)).r),s=n(i.g,o.g),c=n(i.b,o.b),l=Qt(i.opacity,o.opacity);return function(u){return i.r=a(u),i.g=s(u),i.b=c(u),i.opacity=l(u),i+""}}return r.gamma=t,r})(1);function P0(t){return function(e){var n=e.length,r=new Array(n),i=new Array(n),o=new Array(n),a,s;for(a=0;a<n;++a)s=or(e[a]),r[a]=s.r||0,i[a]=s.g||0,o[a]=s.b||0;return r=t(r),i=t(i),o=t(o),s.opacity=1,function(c){return s.r=r(c),s.g=i(c),s.b=o(c),s+""}}}var tu=P0(z0),Hx=P0(N0);function eu(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),i;return function(o){for(i=0;i<n;++i)r[i]=t[i]*(1-o)+e[i]*o;return r}}function I0(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Wx(t,e){return(I0(e)?eu:L0)(t,e)}function L0(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,i=new Array(r),o=new Array(n),a;for(a=0;a<r;++a)i[a]=mn(t[a],e[a]);for(;a<n;++a)o[a]=e[a];return function(s){for(a=0;a<r;++a)o[a]=i[a](s);return o}}function q0(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function Fe(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function Y0(t,e){var n={},r={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?n[i]=mn(t[i],e[i]):r[i]=e[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var Qc=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Kc=new RegExp(Qc.source,"g");function jx(t){return function(){return t}}function Xx(t){return function(e){return t(e)+""}}function ys(t,e){var n=Qc.lastIndex=Kc.lastIndex=0,r,i,o,a=-1,s=[],c=[];for(t=t+"",e=e+"";(r=Qc.exec(t))&&(i=Kc.exec(e));)(o=i.index)>n&&(o=e.slice(n,o),s[a]?s[a]+=o:s[++a]=o),(r=r[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,c.push({i:a,x:Fe(r,i)})),n=Kc.lastIndex;return n<e.length&&(o=e.slice(n),s[a]?s[a]+=o:s[++a]=o),s.length<2?c[0]?Xx(c[0].x):jx(e):(e=c.length,function(l){for(var u=0,h;u<e;++u)s[(h=c[u]).i]=h.x(l);return s.join("")})}function mn(t,e){var n=typeof e,r;return e==null||n==="boolean"?gs(e):(n==="number"?Fe:n==="string"?(r=gn(e))?(e=r,gi):ys:e instanceof gn?gi:e instanceof Date?q0:I0(e)?eu:Array.isArray(e)?L0:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?Y0:Fe)(t,e)}function Gx(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}function Vx(t,e){var n=ms(+t,+e);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function bo(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var B0=180/Math.PI,Jc={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function U0(t,e,n,r,i,o){var a,s,c;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(c=t*n+e*r)&&(n-=t*c,r-=e*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),t*r<e*n&&(t=-t,e=-e,c=-c,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(e,t)*B0,skewX:Math.atan(c)*B0,scaleX:a,scaleY:s}}var ps;function Zx(t){let e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?Jc:U0(e.a,e.b,e.c,e.d,e.e,e.f)}function Kx(t){return t==null||(ps||(ps=document.createElementNS("http://www.w3.org/2000/svg","g")),ps.setAttribute("transform",t),!(t=ps.transform.baseVal.consolidate()))?Jc:(t=t.matrix,U0(t.a,t.b,t.c,t.d,t.e,t.f))}function H0(t,e,n,r){function i(l){return l.length?l.pop()+" ":""}function o(l,u,h,f,d,m){if(l!==h||u!==f){var p=d.push("translate(",null,e,null,n);m.push({i:p-4,x:Fe(l,h)},{i:p-2,x:Fe(u,f)})}else(h||f)&&d.push("translate("+h+e+f+n)}function a(l,u,h,f){l!==u?(l-u>180?u+=360:u-l>180&&(l+=360),f.push({i:h.push(i(h)+"rotate(",null,r)-2,x:Fe(l,u)})):u&&h.push(i(h)+"rotate("+u+r)}function s(l,u,h,f){l!==u?f.push({i:h.push(i(h)+"skewX(",null,r)-2,x:Fe(l,u)}):u&&h.push(i(h)+"skewX("+u+r)}function c(l,u,h,f,d,m){if(l!==h||u!==f){var p=d.push(i(d)+"scale(",null,",",null,")");m.push({i:p-4,x:Fe(l,h)},{i:p-2,x:Fe(u,f)})}else(h!==1||f!==1)&&d.push(i(d)+"scale("+h+","+f+")")}return function(l,u){var h=[],f=[];return l=t(l),u=t(u),o(l.translateX,l.translateY,u.translateX,u.translateY,h,f),a(l.rotate,u.rotate,h,f),s(l.skewX,u.skewX,h,f),c(l.scaleX,l.scaleY,u.scaleX,u.scaleY,h,f),l=u=null,function(d){for(var m=-1,p=f.length,g;++m<p;)h[(g=f[m]).i]=g.x(d);return h.join("")}}}var nu=H0(Zx,"px, ","px)","deg)"),ru=H0(Kx,", ",")",")"),Qx=1e-12;function D0(t){return((t=Math.exp(t))+1/t)/2}function Jx(t){return((t=Math.exp(t))-1/t)/2}function t3(t){return((t=Math.exp(2*t))-1)/(t+1)}var iu=(function t(e,n,r){function i(o,a){var s=o[0],c=o[1],l=o[2],u=a[0],h=a[1],f=a[2],d=u-s,m=h-c,p=d*d+m*m,g,y;if(p<Qx)y=Math.log(f/l)/e,g=function(k){return[s+k*d,c+k*m,l*Math.exp(e*k*y)]};else{var w=Math.sqrt(p),b=(f*f-l*l+r*p)/(2*l*n*w),v=(f*f-l*l-r*p)/(2*f*n*w),x=Math.log(Math.sqrt(b*b+1)-b),S=Math.log(Math.sqrt(v*v+1)-v);y=(S-x)/e,g=function(k){var C=k*y,F=D0(x),A=l/(n*w)*(F*t3(e*C+x)-Jx(x));return[s+A*d,c+A*m,l*F/D0(e*C+x)]}}return g.duration=Math.abs(y)*1e3*e/Math.SQRT2,g}return i.rho=function(o){var a=Math.max(.001,+o),s=a*a,c=s*s;return t(a,s,c)},i})(Math.SQRT2,2,4);function W0(t){return function(e,n){var r=t((e=go(e)).h,(n=go(n)).h),i=Qt(e.s,n.s),o=Qt(e.l,n.l),a=Qt(e.opacity,n.opacity);return function(s){return e.h=r(s),e.s=i(s),e.l=o(s),e.opacity=a(s),e+""}}}var e3=W0(ms),n3=W0(Qt);function r3(t,e){var n=Qt((t=mo(t)).l,(e=mo(e)).l),r=Qt(t.a,e.a),i=Qt(t.b,e.b),o=Qt(t.opacity,e.opacity);return function(a){return t.l=n(a),t.a=r(a),t.b=i(a),t.opacity=o(a),t+""}}function j0(t){return function(e,n){var r=t((e=yo(e)).h,(n=yo(n)).h),i=Qt(e.c,n.c),o=Qt(e.l,n.l),a=Qt(e.opacity,n.opacity);return function(s){return e.h=r(s),e.c=i(s),e.l=o(s),e.opacity=a(s),e+""}}}var i3=j0(ms),o3=j0(Qt);function X0(t){return(function e(n){n=+n;function r(i,o){var a=t((i=Ne(i)).h,(o=Ne(o)).h),s=Qt(i.s,o.s),c=Qt(i.l,o.l),l=Qt(i.opacity,o.opacity);return function(u){return i.h=a(u),i.s=s(u),i.l=c(Math.pow(u,n)),i.opacity=l(u),i+""}}return r.gamma=e,r})(1)}var a3=X0(ms),vo=X0(Qt);function ou(t,e){e===void 0&&(e=t,t=mn);for(var n=0,r=e.length-1,i=e[0],o=new Array(r<0?0:r);n<r;)o[n]=t(i,i=e[++n]);return function(a){var s=Math.max(0,Math.min(r-1,Math.floor(a*=r)));return o[s](a-s)}}function s3(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t(r/(e-1));return n}var mi=0,xo=0,wo=0,V0=1e3,bs,_o,vs=0,Mr=0,ws=0,So=typeof performance=="object"&&performance.now?performance:Date,Z0=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function yi(){return Mr||(Z0(l3),Mr=So.now()+ws)}function l3(){Mr=0}function ko(){this._call=this._time=this._next=null}ko.prototype=bi.prototype={constructor:ko,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?yi():+n)+(e==null?0:+e),!this._next&&_o!==this&&(_o?_o._next=this:bs=this,_o=this),this._call=t,this._time=n,au()},stop:function(){this._call&&(this._call=null,this._time=1/0,au())}};function bi(t,e,n){var r=new ko;return r.restart(t,e,n),r}function K0(){yi(),++mi;for(var t=bs,e;t;)(e=Mr-t._time)>=0&&t._call.call(void 0,e),t=t._next;--mi}function G0(){Mr=(vs=So.now())+ws,mi=xo=0;try{K0()}finally{mi=0,u3(),Mr=0}}function c3(){var t=So.now(),e=t-vs;e>V0&&(ws-=e,vs=t)}function u3(){for(var t,e=bs,n,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:bs=n);_o=t,au(r)}function au(t){if(!mi){xo&&(xo=clearTimeout(xo));var e=t-Mr;e>24?(t<1/0&&(xo=setTimeout(G0,Math.ceil(t-So.now()-ws)+1)),wo&&(wo=clearInterval(wo))):(wo||(vs=So.now(),wo=setInterval(c3,V0)),mi=1,Z0(G0))}}function xs(t,e,n){var r=new ko;return e=e==null?0:+e,r.restart(i=>{r.stop(),t(i+e)},e,n),r}function f3(t,e,n){var r=new ko,i=e;return e==null?(r.restart(t,e,n),r):(r._restart=r.restart,r.restart=function(o,a,s){a=+a,s=s==null?yi():+s,r._restart(function c(l){l+=i,r._restart(c,i+=a,s),o(l)},a,s)},r.restart(t,e,n),r)}var h3=t=>+t;function d3(t){return t*t}function p3(t){return t*(2-t)}function g3(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function m3(t){return t*t*t}function y3(t){return--t*t*t+1}function lu(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var cu=3,b3=(function t(e){e=+e;function n(r){return Math.pow(r,e)}return n.exponent=t,n})(cu),v3=(function t(e){e=+e;function n(r){return 1-Math.pow(1-r,e)}return n.exponent=t,n})(cu),w3=(function t(e){e=+e;function n(r){return((r*=2)<=1?Math.pow(r,e):2-Math.pow(2-r,e))/2}return n.exponent=t,n})(cu),Q0=Math.PI,J0=Q0/2;function x3(t){return+t==1?1:1-Math.cos(t*J0)}function _3(t){return Math.sin(t*J0)}function S3(t){return(1-Math.cos(Q0*t))/2}function ar(t){return(Math.pow(2,-10*t)-.0009765625)*1.0009775171065494}function k3(t){return ar(1-+t)}function A3(t){return 1-ar(t)}function E3(t){return((t*=2)<=1?ar(1-t):2-ar(t-1))/2}function M3(t){return 1-Math.sqrt(1-t*t)}function C3(t){return Math.sqrt(1- --t*t)}function F3(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}var su=4/11,T3=6/11,O3=8/11,B3=3/4,D3=9/11,$3=10/11,z3=15/16,N3=21/22,R3=63/64,_s=1/su/su;function P3(t){return 1-Ss(1-t)}function Ss(t){return(t=+t)<su?_s*t*t:t<O3?_s*(t-=T3)*t+B3:t<$3?_s*(t-=D3)*t+z3:_s*(t-=N3)*t+R3}function I3(t){return((t*=2)<=1?1-Ss(1-t):Ss(t-1)+1)/2}var uu=1.70158,L3=(function t(e){e=+e;function n(r){return(r=+r)*r*(e*(r-1)+r)}return n.overshoot=t,n})(uu),q3=(function t(e){e=+e;function n(r){return--r*r*((r+1)*e+r)+1}return n.overshoot=t,n})(uu),Y3=(function t(e){e=+e;function n(r){return((r*=2)<1?r*r*((e+1)*r-e):(r-=2)*r*((e+1)*r+e)+2)/2}return n.overshoot=t,n})(uu),vi=2*Math.PI,fu=1,hu=.3,U3=(function t(e,n){var r=Math.asin(1/(e=Math.max(1,e)))*(n/=vi);function i(o){return e*ar(- --o)*Math.sin((r-o)/n)}return i.amplitude=function(o){return t(o,n*vi)},i.period=function(o){return t(e,o)},i})(fu,hu),H3=(function t(e,n){var r=Math.asin(1/(e=Math.max(1,e)))*(n/=vi);function i(o){return 1-e*ar(o=+o)*Math.sin((o+r)/n)}return i.amplitude=function(o){return t(o,n*vi)},i.period=function(o){return t(e,o)},i})(fu,hu),W3=(function t(e,n){var r=Math.asin(1/(e=Math.max(1,e)))*(n/=vi);function i(o){return((o=o*2-1)<0?e*ar(-o)*Math.sin((r-o)/n):2-e*ar(o)*Math.sin((r+o)/n))/2}return i.amplitude=function(o){return t(o,n*vi)},i.period=function(o){return t(e,o)},i})(fu,hu);var j3=qe("start","end","cancel","interrupt"),X3=[],ep=0,du=1,pu=2,ks=3,tp=4,gu=5,As=6;function Es(t,e,n,r,i,o){var a=t.__transition;if(!a)t.__transition={};else if(n in a)return;G3(t,n,{name:e,index:r,group:i,on:j3,tween:X3,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:ep})}function mu(t,e){var n=sn(t,e);if(n.state>ep)throw new Error("too late; already scheduled");return n}function bn(t,e){var n=sn(t,e);if(n.state>ks)throw new Error("too late; already running");return n}function sn(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function G3(t,e,n){var r=t.__transition,i;r[e]=n,n.timer=bi(o,0,n.time);function o(l){n.state=du,n.timer.restart(a,n.delay,n.time),n.delay<=l&&a(l-n.delay)}function a(l){var u,h,f,d;if(n.state!==du)return c();for(u in r)if(d=r[u],d.name===n.name){if(d.state===ks)return xs(a);d.state===tp?(d.state=As,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete r[u]):+u<e&&(d.state=As,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete r[u])}if(xs(function(){n.state===ks&&(n.state=tp,n.timer.restart(s,n.delay,n.time),s(l))}),n.state=pu,n.on.call("start",t,t.__data__,n.index,n.group),n.state===pu){for(n.state=ks,i=new Array(f=n.tween.length),u=0,h=-1;u<f;++u)(d=n.tween[u].value.call(t,t.__data__,n.index,n.group))&&(i[++h]=d);i.length=h+1}}function s(l){for(var u=l<n.duration?n.ease.call(null,l/n.duration):(n.timer.restart(c),n.state=gu,1),h=-1,f=i.length;++h<f;)i[h].call(t,u);n.state===gu&&(n.on.call("end",t,t.__data__,n.index,n.group),c())}function c(){n.state=As,n.timer.stop(),delete r[e];for(var l in r)return;delete t.__transition}}function Bn(t,e){var n=t.__transition,r,i,o=!0,a;if(n){e=e==null?null:e+"";for(a in n){if((r=n[a]).name!==e){o=!1;continue}i=r.state>pu&&r.state<gu,r.state=As,r.timer.stop(),r.on.call(i?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete n[a]}o&&delete t.__transition}}function V3(t){return this.each(function(){Bn(this,t)})}function Z3(t,e){var n,r;return function(){var i=bn(this,t),o=i.tween;if(o!==n){r=n=o;for(var a=0,s=r.length;a<s;++a)if(r[a].name===e){r=r.slice(),r.splice(a,1);break}}i.tween=r}}function K3(t,e,n){var r,i;if(typeof n!="function")throw new Error;return function(){var o=bn(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var s={name:e,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===e){i[c]=s;break}c===l&&i.push(s)}o.tween=i}}function Q3(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r=sn(this.node(),n).tween,i=0,o=r.length,a;i<o;++i)if((a=r[i]).name===t)return a.value;return null}return this.each((e==null?Z3:K3)(n,t,e))}function yu(t,e,n){var r=t._id;return t.each(function(){var i=bn(this,r);(i.value||(i.value={}))[e]=n.apply(this,arguments)}),function(i){return sn(i,r).value[e]}}function np(t,e){var n;return(typeof e=="number"?Fe:e instanceof gn?gi:(n=gn(e))?(e=n,gi):ys)(t,e)}function J3(t){return function(){this.removeAttribute(t)}}function t5(t){return function(){this.removeAttributeNS(t.space,t.local)}}function e5(t,e,n){var r,i=n+"",o;return function(){var a=this.getAttribute(t);return a===i?null:a===r?o:o=e(r=a,n)}}function n5(t,e,n){var r,i=n+"",o;return function(){var a=this.getAttributeNS(t.space,t.local);return a===i?null:a===r?o:o=e(r=a,n)}}function r5(t,e,n){var r,i,o;return function(){var a,s=n(this),c;return s==null?void this.removeAttribute(t):(a=this.getAttribute(t),c=s+"",a===c?null:a===r&&c===i?o:(i=c,o=e(r=a,s)))}}function i5(t,e,n){var r,i,o;return function(){var a,s=n(this),c;return s==null?void this.removeAttributeNS(t.space,t.local):(a=this.getAttributeNS(t.space,t.local),c=s+"",a===c?null:a===r&&c===i?o:(i=c,o=e(r=a,s)))}}function o5(t,e){var n=si(t),r=n==="transform"?ru:np;return this.attrTween(t,typeof e=="function"?(n.local?i5:r5)(n,r,yu(this,"attr."+t,e)):e==null?(n.local?t5:J3)(n):(n.local?n5:e5)(n,r,e))}function a5(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function s5(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function l5(t,e){var n,r;function i(){var o=e.apply(this,arguments);return o!==r&&(n=(r=o)&&s5(t,o)),n}return i._value=e,i}function c5(t,e){var n,r;function i(){var o=e.apply(this,arguments);return o!==r&&(n=(r=o)&&a5(t,o)),n}return i._value=e,i}function u5(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;var r=si(t);return this.tween(n,(r.local?l5:c5)(r,e))}function f5(t,e){return function(){mu(this,t).delay=+e.apply(this,arguments)}}function h5(t,e){return e=+e,function(){mu(this,t).delay=e}}function d5(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?f5:h5)(e,t)):sn(this.node(),e).delay}function p5(t,e){return function(){bn(this,t).duration=+e.apply(this,arguments)}}function g5(t,e){return e=+e,function(){bn(this,t).duration=e}}function m5(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?p5:g5)(e,t)):sn(this.node(),e).duration}function y5(t,e){if(typeof e!="function")throw new Error;return function(){bn(this,t).ease=e}}function b5(t){var e=this._id;return arguments.length?this.each(y5(e,t)):sn(this.node(),e).ease}function v5(t,e){return function(){var n=e.apply(this,arguments);if(typeof n!="function")throw new Error;bn(this,t).ease=n}}function w5(t){if(typeof t!="function")throw new Error;return this.each(v5(this._id,t))}function x5(t){typeof t!="function"&&(t=ss(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var o=e[i],a=o.length,s=r[i]=[],c,l=0;l<a;++l)(c=o[l])&&t.call(c,c.__data__,l,o)&&s.push(c);return new yn(r,this._parents,this._name,this._id)}function _5(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,r=e.length,i=n.length,o=Math.min(r,i),a=new Array(r),s=0;s<o;++s)for(var c=e[s],l=n[s],u=c.length,h=a[s]=new Array(u),f,d=0;d<u;++d)(f=c[d]||l[d])&&(h[d]=f);for(;s<r;++s)a[s]=e[s];return new yn(a,this._parents,this._name,this._id)}function S5(t){return(t+"").trim().split(/^|\s+/).every(function(e){var n=e.indexOf(".");return n>=0&&(e=e.slice(0,n)),!e||e==="start"})}function k5(t,e,n){var r,i,o=S5(e)?mu:bn;return function(){var a=o(this,t),s=a.on;s!==r&&(i=(r=s).copy()).on(e,n),a.on=i}}function A5(t,e){var n=this._id;return arguments.length<2?sn(this.node(),n).on.on(t):this.each(k5(n,t,e))}function E5(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function M5(){return this.on("end.remove",E5(this._id))}function C5(t){var e=this._name,n=this._id;typeof t!="function"&&(t=co(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a<i;++a)for(var s=r[a],c=s.length,l=o[a]=new Array(c),u,h,f=0;f<c;++f)(u=s[f])&&(h=t.call(u,u.__data__,f,s))&&("__data__"in u&&(h.__data__=u.__data__),l[f]=h,Es(l[f],e,n,f,l,sn(u,n)));return new yn(o,this._parents,e,n)}function F5(t){var e=this._name,n=this._id;typeof t!="function"&&(t=as(t));for(var r=this._groups,i=r.length,o=[],a=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,h=0;h<l;++h)if(u=c[h]){for(var f=t.call(u,u.__data__,h,c),d,m=sn(u,n),p=0,g=f.length;p<g;++p)(d=f[p])&&Es(d,e,n,p,f,m);o.push(f),a.push(u)}return new yn(o,a,e,n)}var T5=rr.prototype.constructor;function O5(){return new T5(this._groups,this._parents)}function B5(t,e){var n,r,i;return function(){var o=nr(this,t),a=(this.style.removeProperty(t),nr(this,t));return o===a?null:o===n&&a===r?i:i=e(n=o,r=a)}}function rp(t){return function(){this.style.removeProperty(t)}}function D5(t,e,n){var r,i=n+"",o;return function(){var a=nr(this,t);return a===i?null:a===r?o:o=e(r=a,n)}}function $5(t,e,n){var r,i,o;return function(){var a=nr(this,t),s=n(this),c=s+"";return s==null&&(c=s=(this.style.removeProperty(t),nr(this,t))),a===c?null:a===r&&c===i?o:(i=c,o=e(r=a,s))}}function z5(t,e){var n,r,i,o="style."+e,a="end."+o,s;return function(){var c=bn(this,t),l=c.on,u=c.value[o]==null?s||(s=rp(e)):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(a,i=u),c.on=r}}function N5(t,e,n){var r=(t+="")=="transform"?nu:np;return e==null?this.styleTween(t,B5(t,r)).on("end.style."+t,rp(t)):typeof e=="function"?this.styleTween(t,$5(t,r,yu(this,"style."+t,e))).each(z5(this._id,t)):this.styleTween(t,D5(t,r,e),n).on("end.style."+t,null)}function R5(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}function P5(t,e,n){var r,i;function o(){var a=e.apply(this,arguments);return a!==i&&(r=(i=a)&&R5(t,a,n)),r}return o._value=e,o}function I5(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(e==null)return this.tween(r,null);if(typeof e!="function")throw new Error;return this.tween(r,P5(t,e,n??""))}function L5(t){return function(){this.textContent=t}}function q5(t){return function(){var e=t(this);this.textContent=e??""}}function Y5(t){return this.tween("text",typeof t=="function"?q5(yu(this,"text",t)):L5(t==null?"":t+""))}function U5(t){return function(e){this.textContent=t.call(this,e)}}function H5(t){var e,n;function r(){var i=t.apply(this,arguments);return i!==n&&(e=(n=i)&&U5(i)),e}return r._value=t,r}function W5(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,H5(t))}function j5(){for(var t=this._name,e=this._id,n=op(),r=this._groups,i=r.length,o=0;o<i;++o)for(var a=r[o],s=a.length,c,l=0;l<s;++l)if(c=a[l]){var u=sn(c,e);Es(c,t,n,l,a,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new yn(r,this._parents,t,n)}function X5(){var t,e,n=this,r=n._id,i=n.size();return new Promise(function(o,a){var s={value:a},c={value:function(){--i===0&&o()}};n.each(function(){var l=bn(this,r),u=l.on;u!==t&&(e=(t=u).copy(),e._.cancel.push(s),e._.interrupt.push(s),e._.end.push(c)),l.on=e}),i===0&&o()})}var G5=0;function yn(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function ip(t){return rr().transition(t)}function op(){return++G5}var On=rr.prototype;yn.prototype=ip.prototype={constructor:yn,select:C5,selectAll:F5,selectChild:On.selectChild,selectChildren:On.selectChildren,filter:x5,merge:_5,selection:O5,transition:j5,call:On.call,nodes:On.nodes,node:On.node,size:On.size,empty:On.empty,each:On.each,on:A5,attr:o5,attrTween:u5,style:N5,styleTween:I5,text:Y5,textTween:W5,remove:M5,tween:Q3,delay:d5,duration:m5,ease:b5,easeVarying:w5,end:X5,[Symbol.iterator]:On[Symbol.iterator]};var V5={time:null,delay:0,duration:250,ease:lu};function Z5(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}function K5(t){var e,n;t instanceof yn?(e=t._id,t=t._name):(e=op(),(n=V5).time=yi(),t=t==null?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a=r[o],s=a.length,c,l=0;l<s;++l)(c=a[l])&&Es(c,t,e,l,a,n||Z5(c,e));return new yn(r,this._parents,t,e)}rr.prototype.interrupt=V3;rr.prototype.transition=K5;var Q5=[null];function J5(t,e){var n=t.__transition,r,i;if(n){e=e==null?null:e+"";for(i in n)if((r=n[i]).state>du&&r.name===e)return new yn([[t]],Q5,e,+i)}return null}var bu=t=>()=>t;function t_(t,{sourceEvent:e,target:n,selection:r,mode:i,dispatch:o}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},selection:{value:r,enumerable:!0,configurable:!0},mode:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function e_(t){t.stopImmediatePropagation()}function vu(t){t.preventDefault(),t.stopImmediatePropagation()}var ap={name:"drag"},wu={name:"space"},wi={name:"handle"},xi={name:"center"},{abs:sp,max:le,min:ce}=Math;function lp(t){return[+t[0],+t[1]]}function _u(t){return[lp(t[0]),lp(t[1])]}var Ms={name:"x",handles:["w","e"].map(Ao),input:function(t,e){return t==null?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},Cs={name:"y",handles:["n","s"].map(Ao),input:function(t,e){return t==null?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},n_={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(Ao),input:function(t){return t==null?null:_u(t)},output:function(t){return t}},Dn={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},cp={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},up={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},r_={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},i_={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function Ao(t){return{type:t}}function o_(t){return!t.ctrlKey&&!t.button}function a_(){var t=this.ownerSVGElement||this;return t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function s_(){return navigator.maxTouchPoints||"ontouchstart"in this}function xu(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function l_(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function c_(t){var e=t.__brush;return e?e.dim.output(e.selection):null}function u_(){return Su(Ms)}function f_(){return Su(Cs)}function h_(){return Su(n_)}function Su(t){var e=a_,n=o_,r=s_,i=!0,o=qe("start","brush","end"),a=6,s;function c(g){var y=g.property("__brush",p).selectAll(".overlay").data([Ao("overlay")]);y.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",Dn.overlay).merge(y).each(function(){var b=xu(this).extent;Gt(this).attr("x",b[0][0]).attr("y",b[0][1]).attr("width",b[1][0]-b[0][0]).attr("height",b[1][1]-b[0][1])}),g.selectAll(".selection").data([Ao("selection")]).enter().append("rect").attr("class","selection").attr("cursor",Dn.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var w=g.selectAll(".handle").data(t.handles,function(b){return b.type});w.exit().remove(),w.enter().append("rect").attr("class",function(b){return"handle handle--"+b.type}).attr("cursor",function(b){return Dn[b.type]}),g.each(l).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",f).filter(r).on("touchstart.brush",f).on("touchmove.brush",d).on("touchend.brush touchcancel.brush",m).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}c.move=function(g,y,w){g.tween?g.on("start.brush",function(b){u(this,arguments).beforestart().start(b)}).on("interrupt.brush end.brush",function(b){u(this,arguments).end(b)}).tween("brush",function(){var b=this,v=b.__brush,x=u(b,arguments),S=v.selection,k=t.input(typeof y=="function"?y.apply(this,arguments):y,v.extent),C=mn(S,k);function F(A){v.selection=A===1&&k===null?null:C(A),l.call(b),x.brush()}return S!==null&&k!==null?F:F(1)}):g.each(function(){var b=this,v=arguments,x=b.__brush,S=t.input(typeof y=="function"?y.apply(b,v):y,x.extent),k=u(b,v).beforestart();Bn(b),x.selection=S===null?null:S,l.call(b),k.start(w).brush(w).end(w)})},c.clear=function(g,y){c.move(g,null,y)};function l(){var g=Gt(this),y=xu(this).selection;y?(g.selectAll(".selection").style("display",null).attr("x",y[0][0]).attr("y",y[0][1]).attr("width",y[1][0]-y[0][0]).attr("height",y[1][1]-y[0][1]),g.selectAll(".handle").style("display",null).attr("x",function(w){return w.type[w.type.length-1]==="e"?y[1][0]-a/2:y[0][0]-a/2}).attr("y",function(w){return w.type[0]==="s"?y[1][1]-a/2:y[0][1]-a/2}).attr("width",function(w){return w.type==="n"||w.type==="s"?y[1][0]-y[0][0]+a:a}).attr("height",function(w){return w.type==="e"||w.type==="w"?y[1][1]-y[0][1]+a:a})):g.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function u(g,y,w){var b=g.__brush.emitter;return b&&(!w||!b.clean)?b:new h(g,y,w)}function h(g,y,w){this.that=g,this.args=y,this.state=g.__brush,this.active=0,this.clean=w}h.prototype={beforestart:function(){return++this.active===1&&(this.state.emitter=this,this.starting=!0),this},start:function(g,y){return this.starting?(this.starting=!1,this.emit("start",g,y)):this.emit("brush",g),this},brush:function(g,y){return this.emit("brush",g,y),this},end:function(g,y){return--this.active===0&&(delete this.state.emitter,this.emit("end",g,y)),this},emit:function(g,y,w){var b=Gt(this.that).datum();o.call(g,this.that,new t_(g,{sourceEvent:y,target:c,selection:t.output(this.state.selection),mode:w,dispatch:o}),b)}};function f(g){if(s&&!g.touches||!n.apply(this,arguments))return;var y=this,w=g.target.__data__.type,b=(i&&g.metaKey?w="overlay":w)==="selection"?ap:i&&g.altKey?xi:wi,v=t===Cs?null:r_[w],x=t===Ms?null:i_[w],S=xu(y),k=S.extent,C=S.selection,F=k[0][0],A,E,D=k[0][1],$,M,T=k[1][0],B,N,L=k[1][1],q,U,Z=0,Q=0,j,H=v&&x&&i&&g.shiftKey,W,J,K=Array.from(g.touches||[g],at=>{let _t=at.identifier;return at=se(at,y),at.point0=at.slice(),at.identifier=_t,at});Bn(y);var ht=u(y,arguments,!0).beforestart();if(w==="overlay"){C&&(j=!0);let at=[K[0],K[1]||K[0]];S.selection=C=[[A=t===Cs?F:ce(at[0][0],at[1][0]),$=t===Ms?D:ce(at[0][1],at[1][1])],[B=t===Cs?T:le(at[0][0],at[1][0]),q=t===Ms?L:le(at[0][1],at[1][1])]],K.length>1&&xt(g)}else A=C[0][0],$=C[0][1],B=C[1][0],q=C[1][1];E=A,M=$,N=B,U=q;var X=Gt(y).attr("pointer-events","none"),tt=X.selectAll(".overlay").attr("cursor",Dn[w]);if(g.touches)ht.moved=G,ht.ended=mt;else{var it=Gt(g.view).on("mousemove.brush",G,!0).on("mouseup.brush",mt,!0);i&&it.on("keydown.brush",Bt,!0).on("keyup.brush",Dt,!0),ci(g.view)}l.call(y),ht.start(g,b.name);function G(at){for(let _t of at.changedTouches||[at])for(let ge of K)ge.identifier===_t.identifier&&(ge.cur=se(_t,y));if(H&&!W&&!J&&K.length===1){let _t=K[0];sp(_t.cur[0]-_t[0])>sp(_t.cur[1]-_t[1])?J=!0:W=!0}for(let _t of K)_t.cur&&(_t[0]=_t.cur[0],_t[1]=_t.cur[1]);j=!0,vu(at),xt(at)}function xt(at){let _t=K[0],ge=_t.point0;var ne;switch(Z=_t[0]-ge[0],Q=_t[1]-ge[1],b){case wu:case ap:{v&&(Z=le(F-A,ce(T-B,Z)),E=A+Z,N=B+Z),x&&(Q=le(D-$,ce(L-q,Q)),M=$+Q,U=q+Q);break}case wi:{K[1]?(v&&(E=le(F,ce(T,K[0][0])),N=le(F,ce(T,K[1][0])),v=1),x&&(M=le(D,ce(L,K[0][1])),U=le(D,ce(L,K[1][1])),x=1)):(v<0?(Z=le(F-A,ce(T-A,Z)),E=A+Z,N=B):v>0&&(Z=le(F-B,ce(T-B,Z)),E=A,N=B+Z),x<0?(Q=le(D-$,ce(L-$,Q)),M=$+Q,U=q):x>0&&(Q=le(D-q,ce(L-q,Q)),M=$,U=q+Q));break}case xi:{v&&(E=le(F,ce(T,A-Z*v)),N=le(F,ce(T,B+Z*v))),x&&(M=le(D,ce(L,$-Q*x)),U=le(D,ce(L,q+Q*x)));break}}N<E&&(v*=-1,ne=A,A=B,B=ne,ne=E,E=N,N=ne,w in cp&&tt.attr("cursor",Dn[w=cp[w]])),U<M&&(x*=-1,ne=$,$=q,q=ne,ne=M,M=U,U=ne,w in up&&tt.attr("cursor",Dn[w=up[w]])),S.selection&&(C=S.selection),W&&(E=C[0][0],N=C[1][0]),J&&(M=C[0][1],U=C[1][1]),(C[0][0]!==E||C[0][1]!==M||C[1][0]!==N||C[1][1]!==U)&&(S.selection=[[E,M],[N,U]],l.call(y),ht.brush(at,b.name))}function mt(at){if(e_(at),at.touches){if(at.touches.length)return;s&&clearTimeout(s),s=setTimeout(function(){s=null},500)}else ui(at.view,j),it.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);X.attr("pointer-events","all"),tt.attr("cursor",Dn.overlay),S.selection&&(C=S.selection),l_(C)&&(S.selection=null,l.call(y)),ht.end(at,b.name)}function Bt(at){switch(at.keyCode){case 16:{H=v&&x;break}case 18:{b===wi&&(v&&(B=N-Z*v,A=E+Z*v),x&&(q=U-Q*x,$=M+Q*x),b=xi,xt(at));break}case 32:{(b===wi||b===xi)&&(v<0?B=N-Z:v>0&&(A=E-Z),x<0?q=U-Q:x>0&&($=M-Q),b=wu,tt.attr("cursor",Dn.selection),xt(at));break}default:return}vu(at)}function Dt(at){switch(at.keyCode){case 16:{H&&(W=J=H=!1,xt(at));break}case 18:{b===xi&&(v<0?B=N:v>0&&(A=E),x<0?q=U:x>0&&($=M),b=wi,xt(at));break}case 32:{b===wu&&(at.altKey?(v&&(B=N-Z*v,A=E+Z*v),x&&(q=U-Q*x,$=M+Q*x),b=xi):(v<0?B=N:v>0&&(A=E),x<0?q=U:x>0&&($=M),b=wi),tt.attr("cursor",Dn[w]),xt(at));break}default:return}vu(at)}}function d(g){u(this,arguments).moved(g)}function m(g){u(this,arguments).ended(g)}function p(){var g=this.__brush||{selection:null};return g.extent=_u(e.apply(this,arguments)),g.dim=t,g}return c.extent=function(g){return arguments.length?(e=typeof g=="function"?g:bu(_u(g)),c):e},c.filter=function(g){return arguments.length?(n=typeof g=="function"?g:bu(!!g),c):n},c.touchable=function(g){return arguments.length?(r=typeof g=="function"?g:bu(!!g),c):r},c.handleSize=function(g){return arguments.length?(a=+g,c):a},c.keyModifiers=function(g){return arguments.length?(i=!!g,c):i},c.on=function(){var g=o.on.apply(o,arguments);return g===o?c:g},c}var Eo=Math.PI,ku=2*Eo,Cr=1e-6,d_=ku-Cr;function fp(t){this._+=t[0];for(let e=1,n=t.length;e<n;++e)this._+=arguments[e]+t[e]}function p_(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return fp;let n=10**e;return function(r){this._+=r[0];for(let i=1,o=r.length;i<o;++i)this._+=Math.round(arguments[i]*n)/n+r[i]}}function hp(t,e,n,r){return t===n&&e===r}function g_(t){let e=Math.floor(t);if(!(e<=15))return hp;let n=10**e,r=function(i){return Math.round(i*n)};return function(i,o,a,s){return r(i)===r(a)&&r(o)===r(s)}}var sr=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?fp:p_(e),this._equal=e==null?hp:g_(e)}moveTo(e,n){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,n){this._append`L${this._x1=+e},${this._y1=+n}`}quadraticCurveTo(e,n,r,i){this._append`Q${+e},${+n},${this._x1=+r},${this._y1=+i}`}bezierCurveTo(e,n,r,i,o,a){this._append`C${+e},${+n},${+r},${+i},${this._x1=+o},${this._y1=+a}`}arcTo(e,n,r,i,o){if(e=+e,n=+n,r=+r,i=+i,o=+o,o<0)throw new Error(`negative radius: ${o}`);let a=this._x1,s=this._y1,c=r-e,l=i-n,u=a-e,h=s-n,f=u*u+h*h;if(this._x1===null)this._append`M${this._x1=e},${this._y1=n}`;else if(f>Cr)if(!(Math.abs(h*c-l*u)>Cr)||!o)this._append`L${this._x1=e},${this._y1=n}`;else{let d=r-a,m=i-s,p=c*c+l*l,g=d*d+m*m,y=Math.sqrt(p),w=Math.sqrt(f),b=o*Math.tan((Eo-Math.acos((p+f-g)/(2*y*w)))/2),v=b/w,x=b/y;Math.abs(v-1)>Cr&&this._append`L${e+v*u},${n+v*h}`,this._append`A${o},${o},0,0,${+(h*d>u*m)},${this._x1=e+x*c},${this._y1=n+x*l}`}}arc(e,n,r,i,o,a){if(e=+e,n=+n,r=+r,a=!!a,r<0)throw new Error(`negative radius: ${r}`);let s=r*Math.cos(i),c=r*Math.sin(i),l=e+s,u=n+c,h=1^a,f=a?i-o:o-i;if(this._x1===null?this._append`M${l},${u}`:(Math.abs(this._x1-l)>Cr||Math.abs(this._y1-u)>Cr)&&this._append`L${l},${u}`,!!r){if(f<0&&(f=f%ku+ku),f>d_)this._append`A${r},${r},0,1,${h},${e-s},${n-c}A${r},${r},0,1,${h},${this._x1=l},${this._y1=u}`;else if(f>Cr){let d=e+r*Math.cos(o),m=n+r*Math.sin(o);if(f>=Eo&&this._equal(l,u,d,m)){f/=2;let p=i+f;this._append`A${r},${r},0,${+(f>=Eo)},${h},${e+r*Math.cos(p)},${n+r*Math.sin(p)}`}this._append`A${r},${r},0,${+(f>=Eo)},${h},${this._x1=d},${this._y1=m}`}}}rect(e,n,r,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}};function Fs(){return new sr}Fs.prototype=sr.prototype;function m_(t=3){return new sr(+t)}var dp=Math.abs,_i=Math.cos,Si=Math.sin,yp=Math.PI,Ts=yp/2,pp=yp*2,gp=Math.max,Au=1e-12;function Eu(t,e){return Array.from({length:e-t},(n,r)=>t+r)}function y_(t){return function(e,n){return t(e.source.value+e.target.value,n.source.value+n.target.value)}}function b_(){return Mu(!1,!1)}function v_(){return Mu(!1,!0)}function w_(){return Mu(!0,!1)}function Mu(t,e){var n=0,r=null,i=null,o=null;function a(s){var c=s.length,l=new Array(c),u=Eu(0,c),h=new Array(c*c),f=new Array(c),d=0,m;s=Float64Array.from({length:c*c},e?(p,g)=>s[g%c][g/c|0]:(p,g)=>s[g/c|0][g%c]);for(let p=0;p<c;++p){let g=0;for(let y=0;y<c;++y)g+=s[p*c+y]+t*s[y*c+p];d+=l[p]=g}d=gp(0,pp-n*c)/d,m=d?n:pp/c;{let p=0;r&&u.sort((g,y)=>r(l[g],l[y]));for(let g of u){let y=p;if(t){let w=Eu(~c+1,c).filter(b=>b<0?s[~b*c+g]:s[g*c+b]);i&&w.sort((b,v)=>i(b<0?-s[~b*c+g]:s[g*c+b],v<0?-s[~v*c+g]:s[g*c+v]));for(let b of w)if(b<0){let v=h[~b*c+g]||(h[~b*c+g]={source:null,target:null});v.target={index:g,startAngle:p,endAngle:p+=s[~b*c+g]*d,value:s[~b*c+g]}}else{let v=h[g*c+b]||(h[g*c+b]={source:null,target:null});v.source={index:g,startAngle:p,endAngle:p+=s[g*c+b]*d,value:s[g*c+b]}}f[g]={index:g,startAngle:y,endAngle:p,value:l[g]}}else{let w=Eu(0,c).filter(b=>s[g*c+b]||s[b*c+g]);i&&w.sort((b,v)=>i(s[g*c+b],s[g*c+v]));for(let b of w){let v;if(g<b?(v=h[g*c+b]||(h[g*c+b]={source:null,target:null}),v.source={index:g,startAngle:p,endAngle:p+=s[g*c+b]*d,value:s[g*c+b]}):(v=h[b*c+g]||(h[b*c+g]={source:null,target:null}),v.target={index:g,startAngle:p,endAngle:p+=s[g*c+b]*d,value:s[g*c+b]},g===b&&(v.source=v.target)),v.source&&v.target&&v.source.value<v.target.value){let x=v.source;v.source=v.target,v.target=x}}f[g]={index:g,startAngle:y,endAngle:p,value:l[g]}}p+=m}}return h=Object.values(h),h.groups=f,o?h.sort(o):h}return a.padAngle=function(s){return arguments.length?(n=gp(0,s),a):n},a.sortGroups=function(s){return arguments.length?(r=s,a):r},a.sortSubgroups=function(s){return arguments.length?(i=s,a):i},a.sortChords=function(s){return arguments.length?(s==null?o=null:(o=y_(s))._=s,a):o&&o._},a}var x_=Array.prototype.slice;function Fr(t){return function(){return t}}function __(t){return t.source}function S_(t){return t.target}function mp(t){return t.radius}function k_(t){return t.startAngle}function A_(t){return t.endAngle}function E_(){return 0}function M_(){return 10}function bp(t){var e=__,n=S_,r=mp,i=mp,o=k_,a=A_,s=E_,c=null;function l(){var u,h=e.apply(this,arguments),f=n.apply(this,arguments),d=s.apply(this,arguments)/2,m=x_.call(arguments),p=+r.apply(this,(m[0]=h,m)),g=o.apply(this,m)-Ts,y=a.apply(this,m)-Ts,w=+i.apply(this,(m[0]=f,m)),b=o.apply(this,m)-Ts,v=a.apply(this,m)-Ts;if(c||(c=u=Fs()),d>Au&&(dp(y-g)>d*2+Au?y>g?(g+=d,y-=d):(g-=d,y+=d):g=y=(g+y)/2,dp(v-b)>d*2+Au?v>b?(b+=d,v-=d):(b-=d,v+=d):b=v=(b+v)/2),c.moveTo(p*_i(g),p*Si(g)),c.arc(0,0,p,g,y),g!==b||y!==v)if(t){var x=+t.apply(this,arguments),S=w-x,k=(b+v)/2;c.quadraticCurveTo(0,0,S*_i(b),S*Si(b)),c.lineTo(w*_i(k),w*Si(k)),c.lineTo(S*_i(v),S*Si(v))}else c.quadraticCurveTo(0,0,w*_i(b),w*Si(b)),c.arc(0,0,w,b,v);if(c.quadraticCurveTo(0,0,p*_i(g),p*Si(g)),c.closePath(),u)return c=null,u+""||null}return t&&(l.headRadius=function(u){return arguments.length?(t=typeof u=="function"?u:Fr(+u),l):t}),l.radius=function(u){return arguments.length?(r=i=typeof u=="function"?u:Fr(+u),l):r},l.sourceRadius=function(u){return arguments.length?(r=typeof u=="function"?u:Fr(+u),l):r},l.targetRadius=function(u){return arguments.length?(i=typeof u=="function"?u:Fr(+u),l):i},l.startAngle=function(u){return arguments.length?(o=typeof u=="function"?u:Fr(+u),l):o},l.endAngle=function(u){return arguments.length?(a=typeof u=="function"?u:Fr(+u),l):a},l.padAngle=function(u){return arguments.length?(s=typeof u=="function"?u:Fr(+u),l):s},l.source=function(u){return arguments.length?(e=u,l):e},l.target=function(u){return arguments.length?(n=u,l):n},l.context=function(u){return arguments.length?(c=u??null,l):c},l}function C_(){return bp()}function F_(){return bp(M_)}var T_=Array.prototype,wp=T_.slice;function O_(t,e){return t-e}function B_(t){for(var e=0,n=t.length,r=t[n-1][1]*t[0][0]-t[n-1][0]*t[0][1];++e<n;)r+=t[e-1][1]*t[e][0]-t[e-1][0]*t[e][1];return r}var lr=t=>()=>t;function D_(t,e){for(var n=-1,r=e.length,i;++n<r;)if(i=$_(t,e[n]))return i;return 0}function $_(t,e){for(var n=e[0],r=e[1],i=-1,o=0,a=t.length,s=a-1;o<a;s=o++){var c=t[o],l=c[0],u=c[1],h=t[s],f=h[0],d=h[1];if(z_(c,h,e))return 0;u>r!=d>r&&n<(f-l)*(r-u)/(d-u)+l&&(i=-i)}return i}function z_(t,e,n){var r;return N_(t,e,n)&&R_(t[r=+(t[0]===e[0])],n[r],e[r])}function N_(t,e,n){return(e[0]-t[0])*(n[1]-t[1])===(n[0]-t[0])*(e[1]-t[1])}function R_(t,e,n){return t<=e&&e<=n||n<=e&&e<=t}function P_(){}var $n=[[],[[[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 Fu(){var t=1,e=1,n=Ka,r=c;function i(l){var u=n(l);if(Array.isArray(u))u=u.slice().sort(O_);else{let h=ti(l,I_);for(u=Tn(...Za(h[0],h[1],u),u);u[u.length-1]>=h[1];)u.pop();for(;u[1]<h[0];)u.shift()}return u.map(h=>o(l,h))}function o(l,u){let h=u==null?NaN:+u;if(isNaN(h))throw new Error(`invalid value: ${u}`);var f=[],d=[];return a(l,h,function(m){r(m,l,h),B_(m)>0?f.push([m]):d.push(m)}),d.forEach(function(m){for(var p=0,g=f.length,y;p<g;++p)if(D_((y=f[p])[0],m)!==-1){y.push(m);return}}),{type:"MultiPolygon",value:u,coordinates:f}}function a(l,u,h){var f=new Array,d=new Array,m,p,g,y,w,b;for(m=p=-1,y=Tr(l[0],u),$n[y<<1].forEach(v);++m<t-1;)g=y,y=Tr(l[m+1],u),$n[g|y<<1].forEach(v);for($n[y<<0].forEach(v);++p<e-1;){for(m=-1,y=Tr(l[p*t+t],u),w=Tr(l[p*t],u),$n[y<<1|w<<2].forEach(v);++m<t-1;)g=y,y=Tr(l[p*t+t+m+1],u),b=w,w=Tr(l[p*t+m+1],u),$n[g|y<<1|w<<2|b<<3].forEach(v);$n[y|w<<3].forEach(v)}for(m=-1,w=l[p*t]>=u,$n[w<<2].forEach(v);++m<t-1;)b=w,w=Tr(l[p*t+m+1],u),$n[w<<2|b<<3].forEach(v);$n[w<<3].forEach(v);function v(x){var S=[x[0][0]+m,x[0][1]+p],k=[x[1][0]+m,x[1][1]+p],C=s(S),F=s(k),A,E;(A=d[C])?(E=f[F])?(delete d[A.end],delete f[E.start],A===E?(A.ring.push(k),h(A.ring)):f[A.start]=d[E.end]={start:A.start,end:E.end,ring:A.ring.concat(E.ring)}):(delete d[A.end],A.ring.push(k),d[A.end=F]=A):(A=f[F])?(E=d[C])?(delete f[A.start],delete d[E.end],A===E?(A.ring.push(k),h(A.ring)):f[E.start]=d[A.end]={start:E.start,end:A.end,ring:E.ring.concat(A.ring)}):(delete f[A.start],A.ring.unshift(S),f[A.start=C]=A):f[C]=d[F]={start:C,end:F,ring:[S,k]}}}function s(l){return l[0]*2+l[1]*(t+1)*4}function c(l,u,h){l.forEach(function(f){var d=f[0],m=f[1],p=d|0,g=m|0,y=Cu(u[g*t+p]);d>0&&d<t&&p===d&&(f[0]=vp(d,Cu(u[g*t+p-1]),y,h)),m>0&&m<e&&g===m&&(f[1]=vp(m,Cu(u[(g-1)*t+p]),y,h))})}return i.contour=o,i.size=function(l){if(!arguments.length)return[t,e];var u=Math.floor(l[0]),h=Math.floor(l[1]);if(!(u>=0&&h>=0))throw new Error("invalid size");return t=u,e=h,i},i.thresholds=function(l){return arguments.length?(n=typeof l=="function"?l:Array.isArray(l)?lr(wp.call(l)):lr(l),i):n},i.smooth=function(l){return arguments.length?(r=l?c:P_,i):r===c},i}function I_(t){return isFinite(t)?t:NaN}function Tr(t,e){return t==null?!1:+t>=e}function Cu(t){return t==null||isNaN(t=+t)?-1/0:t}function vp(t,e,n,r){let i=r-e,o=n-e,a=isFinite(i)||isFinite(o)?i/o:Math.sign(i)/Math.sign(o);return isNaN(a)?t:t+a-.5}function L_(t){return t[0]}function q_(t){return t[1]}function Y_(){return 1}function U_(){var t=L_,e=q_,n=Y_,r=960,i=500,o=20,a=2,s=o*3,c=r+s*2>>a,l=i+s*2>>a,u=lr(20);function h(w){var b=new Float32Array(c*l),v=Math.pow(2,-a),x=-1;for(let $ of w){var S=(t($,++x,w)+s)*v,k=(e($,x,w)+s)*v,C=+n($,x,w);if(C&&S>=0&&S<c&&k>=0&&k<l){var F=Math.floor(S),A=Math.floor(k),E=S-F-.5,D=k-A-.5;b[F+A*c]+=(1-E)*(1-D)*C,b[F+1+A*c]+=E*(1-D)*C,b[F+1+(A+1)*c]+=E*D*C,b[F+(A+1)*c]+=(1-E)*D*C}}return Cc({data:b,width:c,height:l},o*v),b}function f(w){var b=h(w),v=u(b),x=Math.pow(2,2*a);return Array.isArray(v)||(v=Tn(Number.MIN_VALUE,ri(b)/x,v)),Fu().size([c,l]).thresholds(v.map(S=>S*x))(b).map((S,k)=>(S.value=+v[k],d(S)))}f.contours=function(w){var b=h(w),v=Fu().size([c,l]),x=Math.pow(2,2*a),S=k=>{k=+k;var C=d(v.contour(b,k*x));return C.value=k,C};return Object.defineProperty(S,"max",{get:()=>ri(b)/x}),S};function d(w){return w.coordinates.forEach(m),w}function m(w){w.forEach(p)}function p(w){w.forEach(g)}function g(w){w[0]=w[0]*Math.pow(2,a)-s,w[1]=w[1]*Math.pow(2,a)-s}function y(){return s=o*3,c=r+s*2>>a,l=i+s*2>>a,f}return f.x=function(w){return arguments.length?(t=typeof w=="function"?w:lr(+w),f):t},f.y=function(w){return arguments.length?(e=typeof w=="function"?w:lr(+w),f):e},f.weight=function(w){return arguments.length?(n=typeof w=="function"?w:lr(+w),f):n},f.size=function(w){if(!arguments.length)return[r,i];var b=+w[0],v=+w[1];if(!(b>=0&&v>=0))throw new Error("invalid size");return r=b,i=v,y()},f.cellSize=function(w){if(!arguments.length)return 1<<a;if(!((w=+w)>=1))throw new Error("invalid cell size");return a=Math.floor(Math.log(w)/Math.LN2),y()},f.thresholds=function(w){return arguments.length?(u=typeof w=="function"?w:Array.isArray(w)?lr(wp.call(w)):lr(w),f):u},f.bandwidth=function(w){if(!arguments.length)return Math.sqrt(o*(o+1));if(!((w=+w)>=0))throw new Error("invalid bandwidth");return o=(Math.sqrt(4*w*w+1)-1)/2,y()},f}var Nn=11102230246251565e-32,ue=134217729,H_=(3+8*Nn)*Nn;function Tu(t,e,n,r,i){let o,a,s,c,l=e[0],u=r[0],h=0,f=0;u>l==u>-l?(o=l,l=e[++h]):(o=u,u=r[++f]);let d=0;if(h<t&&f<n)for(u>l==u>-l?(a=l+o,s=o-(a-l),l=e[++h]):(a=u+o,s=o-(a-u),u=r[++f]),o=a,s!==0&&(i[d++]=s);h<t&&f<n;)u>l==u>-l?(a=o+l,c=a-o,s=o-(a-c)+(l-c),l=e[++h]):(a=o+u,c=a-o,s=o-(a-c)+(u-c),u=r[++f]),o=a,s!==0&&(i[d++]=s);for(;h<t;)a=o+l,c=a-o,s=o-(a-c)+(l-c),l=e[++h],o=a,s!==0&&(i[d++]=s);for(;f<n;)a=o+u,c=a-o,s=o-(a-c)+(u-c),u=r[++f],o=a,s!==0&&(i[d++]=s);return(o!==0||d===0)&&(i[d++]=o),d}function W_(t,e){let n=e[0];for(let r=1;r<t;r++)n+=e[r];return n}function V(t){return new Float64Array(t)}var j_=(3+16*Nn)*Nn,X_=(2+12*Nn)*Nn,G_=(9+64*Nn)*Nn*Nn,ki=V(4),xp=V(8),_p=V(12),Sp=V(16),be=V(4);function V_(t,e,n,r,i,o,a){let s,c,l,u,h,f,d,m,p,g,y,w,b,v,x,S,k,C,F=t-i,A=n-i,E=e-o,D=r-o;v=F*D,f=ue*F,d=f-(f-F),m=F-d,f=ue*D,p=f-(f-D),g=D-p,x=m*g-(v-d*p-m*p-d*g),S=E*A,f=ue*E,d=f-(f-E),m=E-d,f=ue*A,p=f-(f-A),g=A-p,k=m*g-(S-d*p-m*p-d*g),y=x-k,h=x-y,ki[0]=x-(y+h)+(h-k),w=v+y,h=w-v,b=v-(w-h)+(y-h),y=b-S,h=b-y,ki[1]=b-(y+h)+(h-S),C=w+y,h=C-w,ki[2]=w-(C-h)+(y-h),ki[3]=C;let $=W_(4,ki),M=X_*a;if($>=M||-$>=M||(h=t-F,s=t-(F+h)+(h-i),h=n-A,l=n-(A+h)+(h-i),h=e-E,c=e-(E+h)+(h-o),h=r-D,u=r-(D+h)+(h-o),s===0&&c===0&&l===0&&u===0)||(M=G_*a+H_*Math.abs($),$+=F*u+D*s-(E*l+A*c),$>=M||-$>=M))return $;v=s*D,f=ue*s,d=f-(f-s),m=s-d,f=ue*D,p=f-(f-D),g=D-p,x=m*g-(v-d*p-m*p-d*g),S=c*A,f=ue*c,d=f-(f-c),m=c-d,f=ue*A,p=f-(f-A),g=A-p,k=m*g-(S-d*p-m*p-d*g),y=x-k,h=x-y,be[0]=x-(y+h)+(h-k),w=v+y,h=w-v,b=v-(w-h)+(y-h),y=b-S,h=b-y,be[1]=b-(y+h)+(h-S),C=w+y,h=C-w,be[2]=w-(C-h)+(y-h),be[3]=C;let T=Tu(4,ki,4,be,xp);v=F*u,f=ue*F,d=f-(f-F),m=F-d,f=ue*u,p=f-(f-u),g=u-p,x=m*g-(v-d*p-m*p-d*g),S=E*l,f=ue*E,d=f-(f-E),m=E-d,f=ue*l,p=f-(f-l),g=l-p,k=m*g-(S-d*p-m*p-d*g),y=x-k,h=x-y,be[0]=x-(y+h)+(h-k),w=v+y,h=w-v,b=v-(w-h)+(y-h),y=b-S,h=b-y,be[1]=b-(y+h)+(h-S),C=w+y,h=C-w,be[2]=w-(C-h)+(y-h),be[3]=C;let B=Tu(T,xp,4,be,_p);v=s*u,f=ue*s,d=f-(f-s),m=s-d,f=ue*u,p=f-(f-u),g=u-p,x=m*g-(v-d*p-m*p-d*g),S=c*l,f=ue*c,d=f-(f-c),m=c-d,f=ue*l,p=f-(f-l),g=l-p,k=m*g-(S-d*p-m*p-d*g),y=x-k,h=x-y,be[0]=x-(y+h)+(h-k),w=v+y,h=w-v,b=v-(w-h)+(y-h),y=b-S,h=b-y,be[1]=b-(y+h)+(h-S),C=w+y,h=C-w,be[2]=w-(C-h)+(y-h),be[3]=C;let N=Tu(B,_p,4,be,Sp);return Sp[N-1]}function Os(t,e,n,r,i,o){let a=(e-o)*(n-i),s=(t-i)*(r-o),c=a-s,l=Math.abs(a+s);return Math.abs(c)>=j_*l?c:-V_(t,e,n,r,i,o,l)}V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(8);V(8);V(8);V(4);V(8);V(8);V(16);V(12);V(192);V(192);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(8);V(8);V(8);V(8);V(8);V(8);V(8);V(8);V(8);V(4);V(4);V(4);V(8);V(16);V(16);V(16);V(32);V(32);V(48);V(64);V(1152);V(1152);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(24);V(24);V(24);V(24);V(24);V(24);V(24);V(24);V(24);V(24);V(1152);V(1152);V(1152);V(1152);V(1152);V(2304);V(2304);V(3456);V(5760);V(8);V(8);V(8);V(16);V(24);V(48);V(48);V(96);V(192);V(384);V(384);V(384);V(768);V(96);V(96);V(96);V(1152);var kp=Math.pow(2,-52),Bs=new Uint32Array(512),Ds=class t{static from(e,n=t8,r=e8){let i=e.length,o=new Float64Array(i*2);for(let a=0;a<i;a++){let s=e[a];o[2*a]=n(s),o[2*a+1]=r(s)}return new t(o)}constructor(e){let n=e.length>>1;if(n>0&&typeof e[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=e;let r=Math.max(2*n-5,0);this._triangles=new Uint32Array(r*3),this._halfedges=new Int32Array(r*3),this._hashSize=Math.ceil(Math.sqrt(n)),this._hullPrev=new Uint32Array(n),this._hullNext=new Uint32Array(n),this._hullTri=new Uint32Array(n),this._hullHash=new Int32Array(this._hashSize),this._ids=new Uint32Array(n),this._dists=new Float64Array(n),this.trianglesLen=0,this._cx=0,this._cy=0,this._hullStart=0,this.hull=this._triangles,this.triangles=this._triangles,this.halfedges=this._halfedges,this.update()}update(){let{coords:e,_hullPrev:n,_hullNext:r,_hullTri:i,_hullHash:o}=this,a=e.length>>1,s=1/0,c=1/0,l=-1/0,u=-1/0;for(let F=0;F<a;F++){let A=e[2*F],E=e[2*F+1];A<s&&(s=A),E<c&&(c=E),A>l&&(l=A),E>u&&(u=E),this._ids[F]=F}let h=(s+l)/2,f=(c+u)/2,d=0,m=0,p=0;for(let F=0,A=1/0;F<a;F++){let E=Ou(h,f,e[2*F],e[2*F+1]);E<A&&(d=F,A=E)}let g=e[2*d],y=e[2*d+1];for(let F=0,A=1/0;F<a;F++){if(F===d)continue;let E=Ou(g,y,e[2*F],e[2*F+1]);E<A&&E>0&&(m=F,A=E)}let w=e[2*m],b=e[2*m+1],v=1/0;for(let F=0;F<a;F++){if(F===d||F===m)continue;let A=Q_(g,y,w,b,e[2*F],e[2*F+1]);A<v&&(p=F,v=A)}let x=e[2*p],S=e[2*p+1];if(v===1/0){for(let E=0;E<a;E++)this._dists[E]=e[2*E]-e[0]||e[2*E+1]-e[1];Ei(this._ids,this._dists,0,a-1);let F=new Uint32Array(a),A=0;for(let E=0,D=-1/0;E<a;E++){let $=this._ids[E],M=this._dists[$];M>D&&(F[A++]=$,D=M)}this.hull=F.subarray(0,A),this.triangles=new Uint32Array(0),this.halfedges=new Int32Array(0);return}if(Os(g,y,w,b,x,S)<0){let F=m,A=w,E=b;m=p,w=x,b=S,p=F,x=A,S=E}let k=J_(g,y,w,b,x,S);this._cx=k.x,this._cy=k.y;for(let F=0;F<a;F++)this._dists[F]=Ou(e[2*F],e[2*F+1],k.x,k.y);Ei(this._ids,this._dists,0,a-1),this._hullStart=d;let C=3;r[d]=n[p]=m,r[m]=n[d]=p,r[p]=n[m]=d,i[d]=0,i[m]=1,i[p]=2,o.fill(-1),o[this._hashKey(g,y)]=d,o[this._hashKey(w,b)]=m,o[this._hashKey(x,S)]=p,this.trianglesLen=0,this._addTriangle(d,m,p,-1,-1,-1);for(let F=0,A=0,E=0;F<this._ids.length;F++){let D=this._ids[F],$=e[2*D],M=e[2*D+1];if(F>0&&Math.abs($-A)<=kp&&Math.abs(M-E)<=kp||(A=$,E=M,D===d||D===m||D===p))continue;let T=0;for(let U=0,Z=this._hashKey($,M);U<this._hashSize&&(T=o[(Z+U)%this._hashSize],!(T!==-1&&T!==r[T]));U++);T=n[T];let B=T,N;for(;N=r[B],Os($,M,e[2*B],e[2*B+1],e[2*N],e[2*N+1])>=0;)if(B=N,B===T){B=-1;break}if(B===-1)continue;let L=this._addTriangle(B,D,r[B],-1,-1,i[B]);i[D]=this._legalize(L+2),i[B]=L,C++;let q=r[B];for(;N=r[q],Os($,M,e[2*q],e[2*q+1],e[2*N],e[2*N+1])<0;)L=this._addTriangle(q,D,N,i[D],-1,i[q]),i[D]=this._legalize(L+2),r[q]=q,C--,q=N;if(B===T)for(;N=n[B],Os($,M,e[2*N],e[2*N+1],e[2*B],e[2*B+1])<0;)L=this._addTriangle(N,D,B,-1,i[B],i[N]),this._legalize(L+2),i[N]=L,r[B]=B,C--,B=N;this._hullStart=n[D]=B,r[B]=n[q]=D,r[D]=q,o[this._hashKey($,M)]=D,o[this._hashKey(e[2*B],e[2*B+1])]=B}this.hull=new Uint32Array(C);for(let F=0,A=this._hullStart;F<C;F++)this.hull[F]=A,A=r[A];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,n){return Math.floor(Z_(e-this._cx,n-this._cy)*this._hashSize)%this._hashSize}_legalize(e){let{_triangles:n,_halfedges:r,coords:i}=this,o=0,a=0;for(;;){let s=r[e],c=e-e%3;if(a=c+(e+2)%3,s===-1){if(o===0)break;e=Bs[--o];continue}let l=s-s%3,u=c+(e+1)%3,h=l+(s+2)%3,f=n[a],d=n[e],m=n[u],p=n[h];if(K_(i[2*f],i[2*f+1],i[2*d],i[2*d+1],i[2*m],i[2*m+1],i[2*p],i[2*p+1])){n[e]=p,n[s]=f;let y=r[h];if(y===-1){let b=this._hullStart;do{if(this._hullTri[b]===h){this._hullTri[b]=e;break}b=this._hullPrev[b]}while(b!==this._hullStart)}this._link(e,y),this._link(s,r[a]),this._link(a,h);let w=l+(s+1)%3;o<Bs.length&&(Bs[o++]=w)}else{if(o===0)break;e=Bs[--o]}}return a}_link(e,n){this._halfedges[e]=n,n!==-1&&(this._halfedges[n]=e)}_addTriangle(e,n,r,i,o,a){let s=this.trianglesLen;return this._triangles[s]=e,this._triangles[s+1]=n,this._triangles[s+2]=r,this._link(s,i),this._link(s+1,o),this._link(s+2,a),this.trianglesLen+=3,s}};function Z_(t,e){let n=t/(Math.abs(t)+Math.abs(e));return(e>0?3-n:1+n)/4}function Ou(t,e,n,r){let i=t-n,o=e-r;return i*i+o*o}function K_(t,e,n,r,i,o,a,s){let c=t-a,l=e-s,u=n-a,h=r-s,f=i-a,d=o-s,m=c*c+l*l,p=u*u+h*h,g=f*f+d*d;return c*(h*g-p*d)-l*(u*g-p*f)+m*(u*d-h*f)<0}function Q_(t,e,n,r,i,o){let a=n-t,s=r-e,c=i-t,l=o-e,u=a*a+s*s,h=c*c+l*l,f=.5/(a*l-s*c),d=(l*u-s*h)*f,m=(a*h-c*u)*f;return d*d+m*m}function J_(t,e,n,r,i,o){let a=n-t,s=r-e,c=i-t,l=o-e,u=a*a+s*s,h=c*c+l*l,f=.5/(a*l-s*c),d=t+(l*u-s*h)*f,m=e+(a*h-c*u)*f;return{x:d,y:m}}function Ei(t,e,n,r){if(r-n<=20)for(let i=n+1;i<=r;i++){let o=t[i],a=e[o],s=i-1;for(;s>=n&&e[t[s]]>a;)t[s+1]=t[s--];t[s+1]=o}else{let i=n+r>>1,o=n+1,a=r;Mo(t,i,o),e[t[n]]>e[t[r]]&&Mo(t,n,r),e[t[o]]>e[t[r]]&&Mo(t,o,r),e[t[n]]>e[t[o]]&&Mo(t,n,o);let s=t[o],c=e[s];for(;;){do o++;while(e[t[o]]<c);do a--;while(e[t[a]]>c);if(a<o)break;Mo(t,o,a)}t[n+1]=t[a],t[a]=s,r-o+1>=a-n?(Ei(t,e,o,r),Ei(t,e,n,a-1)):(Ei(t,e,n,a-1),Ei(t,e,o,r))}}function Mo(t,e,n){let r=t[e];t[e]=t[n],t[n]=r}function t8(t){return t[0]}function e8(t){return t[1]}var Ap=1e-6,zn=class{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,n){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,n){this._+=`L${this._x1=+e},${this._y1=+n}`}arc(e,n,r){e=+e,n=+n,r=+r;let i=e+r,o=n;if(r<0)throw new Error("negative radius");this._x1===null?this._+=`M${i},${o}`:(Math.abs(this._x1-i)>Ap||Math.abs(this._y1-o)>Ap)&&(this._+="L"+i+","+o),r&&(this._+=`A${r},${r},0,1,1,${e-r},${n}A${r},${r},0,1,1,${this._x1=i},${this._y1=o}`)}rect(e,n,r,i){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${+r}v${+i}h${-r}Z`}value(){return this._||null}},Co=class{constructor(){this._=[]}moveTo(e,n){this._.push([e,n])}closePath(){this._.push(this._[0].slice())}lineTo(e,n){this._.push([e,n])}value(){return this._.length?this._:null}},$s=class{constructor(e,[n,r,i,o]=[0,0,960,500]){if(!((i=+i)>=(n=+n))||!((o=+o)>=(r=+r)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(e.points.length*2),this.vectors=new Float64Array(e.points.length*2),this.xmax=i,this.xmin=n,this.ymax=o,this.ymin=r,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){let{delaunay:{points:e,hull:n,triangles:r},vectors:i}=this,o,a,s=this.circumcenters=this._circumcenters.subarray(0,r.length/3*2);for(let p=0,g=0,y=r.length,w,b;p<y;p+=3,g+=2){let v=r[p]*2,x=r[p+1]*2,S=r[p+2]*2,k=e[v],C=e[v+1],F=e[x],A=e[x+1],E=e[S],D=e[S+1],$=F-k,M=A-C,T=E-k,B=D-C,N=($*B-M*T)*2;if(Math.abs(N)<1e-9){if(o===void 0){o=a=0;for(let q of n)o+=e[q*2],a+=e[q*2+1];o/=n.length,a/=n.length}let L=1e9*Math.sign((o-k)*B-(a-C)*T);w=(k+E)/2-L*B,b=(C+D)/2+L*T}else{let L=1/N,q=$*$+M*M,U=T*T+B*B;w=k+(B*q-M*U)*L,b=C+($*U-T*q)*L}s[g]=w,s[g+1]=b}let c=n[n.length-1],l,u=c*4,h,f=e[2*c],d,m=e[2*c+1];i.fill(0);for(let p=0;p<n.length;++p)c=n[p],l=u,h=f,d=m,u=c*4,f=e[2*c],m=e[2*c+1],i[l+2]=i[u]=d-m,i[l+3]=i[u+1]=f-h}render(e){let n=e==null?e=new zn:void 0,{delaunay:{halfedges:r,inedges:i,hull:o},circumcenters:a,vectors:s}=this;if(o.length<=1)return null;for(let u=0,h=r.length;u<h;++u){let f=r[u];if(f<u)continue;let d=Math.floor(u/3)*2,m=Math.floor(f/3)*2,p=a[d],g=a[d+1],y=a[m],w=a[m+1];this._renderSegment(p,g,y,w,e)}let c,l=o[o.length-1];for(let u=0;u<o.length;++u){c=l,l=o[u];let h=Math.floor(i[l]/3)*2,f=a[h],d=a[h+1],m=c*4,p=this._project(f,d,s[m+2],s[m+3]);p&&this._renderSegment(f,d,p[0],p[1],e)}return n&&n.value()}renderBounds(e){let n=e==null?e=new zn:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),n&&n.value()}renderCell(e,n){let r=n==null?n=new zn:void 0,i=this._clip(e);if(i===null||!i.length)return;n.moveTo(i[0],i[1]);let o=i.length;for(;i[0]===i[o-2]&&i[1]===i[o-1]&&o>1;)o-=2;for(let a=2;a<o;a+=2)(i[a]!==i[a-2]||i[a+1]!==i[a-1])&&n.lineTo(i[a],i[a+1]);return n.closePath(),r&&r.value()}*cellPolygons(){let{delaunay:{points:e}}=this;for(let n=0,r=e.length/2;n<r;++n){let i=this.cellPolygon(n);i&&(i.index=n,yield i)}}cellPolygon(e){let n=new Co;return this.renderCell(e,n),n.value()}_renderSegment(e,n,r,i,o){let a,s=this._regioncode(e,n),c=this._regioncode(r,i);s===0&&c===0?(o.moveTo(e,n),o.lineTo(r,i)):(a=this._clipSegment(e,n,r,i,s,c))&&(o.moveTo(a[0],a[1]),o.lineTo(a[2],a[3]))}contains(e,n,r){return n=+n,n!==n||(r=+r,r!==r)?!1:this.delaunay._step(e,n,r)===e}*neighbors(e){let n=this._clip(e);if(n)for(let r of this.delaunay.neighbors(e)){let i=this._clip(r);if(i){t:for(let o=0,a=n.length;o<a;o+=2)for(let s=0,c=i.length;s<c;s+=2)if(n[o]===i[s]&&n[o+1]===i[s+1]&&n[(o+2)%a]===i[(s+c-2)%c]&&n[(o+3)%a]===i[(s+c-1)%c]){yield r;break t}}}}_cell(e){let{circumcenters:n,delaunay:{inedges:r,halfedges:i,triangles:o}}=this,a=r[e];if(a===-1)return null;let s=[],c=a;do{let l=Math.floor(c/3);if(s.push(n[l*2],n[l*2+1]),c=c%3===2?c-2:c+1,o[c]!==e)break;c=i[c]}while(c!==a&&c!==-1);return s}_clip(e){if(e===0&&this.delaunay.hull.length===1)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];let n=this._cell(e);if(n===null)return null;let{vectors:r}=this,i=e*4;return this._simplify(r[i]||r[i+1]?this._clipInfinite(e,n,r[i],r[i+1],r[i+2],r[i+3]):this._clipFinite(e,n))}_clipFinite(e,n){let r=n.length,i=null,o,a,s=n[r-2],c=n[r-1],l,u=this._regioncode(s,c),h,f=0;for(let d=0;d<r;d+=2)if(o=s,a=c,s=n[d],c=n[d+1],l=u,u=this._regioncode(s,c),l===0&&u===0)h=f,f=0,i?i.push(s,c):i=[s,c];else{let m,p,g,y,w;if(l===0){if((m=this._clipSegment(o,a,s,c,l,u))===null)continue;[p,g,y,w]=m}else{if((m=this._clipSegment(s,c,o,a,u,l))===null)continue;[y,w,p,g]=m,h=f,f=this._edgecode(p,g),h&&f&&this._edge(e,h,f,i,i.length),i?i.push(p,g):i=[p,g]}h=f,f=this._edgecode(y,w),h&&f&&this._edge(e,h,f,i,i.length),i?i.push(y,w):i=[y,w]}if(i)h=f,f=this._edgecode(i[0],i[1]),h&&f&&this._edge(e,h,f,i,i.length);else if(this.contains(e,(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 i}_clipSegment(e,n,r,i,o,a){let s=o<a;for(s&&([e,n,r,i,o,a]=[r,i,e,n,a,o]);;){if(o===0&&a===0)return s?[r,i,e,n]:[e,n,r,i];if(o&a)return null;let c,l,u=o||a;u&8?(c=e+(r-e)*(this.ymax-n)/(i-n),l=this.ymax):u&4?(c=e+(r-e)*(this.ymin-n)/(i-n),l=this.ymin):u&2?(l=n+(i-n)*(this.xmax-e)/(r-e),c=this.xmax):(l=n+(i-n)*(this.xmin-e)/(r-e),c=this.xmin),o?(e=c,n=l,o=this._regioncode(e,n)):(r=c,i=l,a=this._regioncode(r,i))}}_clipInfinite(e,n,r,i,o,a){let s=Array.from(n),c;if((c=this._project(s[0],s[1],r,i))&&s.unshift(c[0],c[1]),(c=this._project(s[s.length-2],s[s.length-1],o,a))&&s.push(c[0],c[1]),s=this._clipFinite(e,s))for(let l=0,u=s.length,h,f=this._edgecode(s[u-2],s[u-1]);l<u;l+=2)h=f,f=this._edgecode(s[l],s[l+1]),h&&f&&(l=this._edge(e,h,f,s,l),u=s.length);else this.contains(e,(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(e,n,r,i,o){for(;n!==r;){let a,s;switch(n){case 5:n=4;continue;case 4:n=6,a=this.xmax,s=this.ymin;break;case 6:n=2;continue;case 2:n=10,a=this.xmax,s=this.ymax;break;case 10:n=8;continue;case 8:n=9,a=this.xmin,s=this.ymax;break;case 9:n=1;continue;case 1:n=5,a=this.xmin,s=this.ymin;break}(i[o]!==a||i[o+1]!==s)&&this.contains(e,a,s)&&(i.splice(o,0,a,s),o+=2)}return o}_project(e,n,r,i){let o=1/0,a,s,c;if(i<0){if(n<=this.ymin)return null;(a=(this.ymin-n)/i)<o&&(c=this.ymin,s=e+(o=a)*r)}else if(i>0){if(n>=this.ymax)return null;(a=(this.ymax-n)/i)<o&&(c=this.ymax,s=e+(o=a)*r)}if(r>0){if(e>=this.xmax)return null;(a=(this.xmax-e)/r)<o&&(s=this.xmax,c=n+(o=a)*i)}else if(r<0){if(e<=this.xmin)return null;(a=(this.xmin-e)/r)<o&&(s=this.xmin,c=n+(o=a)*i)}return[s,c]}_edgecode(e,n){return(e===this.xmin?1:e===this.xmax?2:0)|(n===this.ymin?4:n===this.ymax?8:0)}_regioncode(e,n){return(e<this.xmin?1:e>this.xmax?2:0)|(n<this.ymin?4:n>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let n=0;n<e.length;n+=2){let r=(n+2)%e.length,i=(n+4)%e.length;(e[n]===e[r]&&e[r]===e[i]||e[n+1]===e[r+1]&&e[r+1]===e[i+1])&&(e.splice(r,2),n-=2)}e.length||(e=null)}return e}},n8=2*Math.PI,Ai=Math.pow;function r8(t){return t[0]}function i8(t){return t[1]}function o8(t){let{triangles:e,coords:n}=t;for(let r=0;r<e.length;r+=3){let i=2*e[r],o=2*e[r+1],a=2*e[r+2];if((n[a]-n[i])*(n[o+1]-n[i+1])-(n[o]-n[i])*(n[a+1]-n[i+1])>1e-10)return!1}return!0}function a8(t,e,n){return[t+Math.sin(t+e)*n,e+Math.cos(t-e)*n]}var Bu=class t{static from(e,n=r8,r=i8,i){return new t("length"in e?s8(e,n,r,i):Float64Array.from(l8(e,n,r,i)))}constructor(e){this._delaunator=new Ds(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){let e=this._delaunator,n=this.points;if(e.hull&&e.hull.length>2&&o8(e)){this.collinear=Int32Array.from({length:n.length/2},(f,d)=>d).sort((f,d)=>n[2*f]-n[2*d]||n[2*f+1]-n[2*d+1]);let c=this.collinear[0],l=this.collinear[this.collinear.length-1],u=[n[2*c],n[2*c+1],n[2*l],n[2*l+1]],h=1e-8*Math.hypot(u[3]-u[1],u[2]-u[0]);for(let f=0,d=n.length/2;f<d;++f){let m=a8(n[2*f],n[2*f+1],h);n[2*f]=m[0],n[2*f+1]=m[1]}this._delaunator=new Ds(n)}else delete this.collinear;let r=this.halfedges=this._delaunator.halfedges,i=this.hull=this._delaunator.hull,o=this.triangles=this._delaunator.triangles,a=this.inedges.fill(-1),s=this._hullIndex.fill(-1);for(let c=0,l=r.length;c<l;++c){let u=o[c%3===2?c-2:c+1];(r[c]===-1||a[u]===-1)&&(a[u]=c)}for(let c=0,l=i.length;c<l;++c)s[i[c]]=c;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],a[i[0]]=1,i.length===2&&(a[i[1]]=0,this.triangles[1]=i[1],this.triangles[2]=i[1]))}voronoi(e){return new $s(this,e)}*neighbors(e){let{inedges:n,hull:r,_hullIndex:i,halfedges:o,triangles:a,collinear:s}=this;if(s){let h=s.indexOf(e);h>0&&(yield s[h-1]),h<s.length-1&&(yield s[h+1]);return}let c=n[e];if(c===-1)return;let l=c,u=-1;do{if(yield u=a[l],l=l%3===2?l-2:l+1,a[l]!==e)return;if(l=o[l],l===-1){let h=r[(i[e]+1)%r.length];h!==u&&(yield h);return}}while(l!==c)}find(e,n,r=0){if(e=+e,e!==e||(n=+n,n!==n))return-1;let i=r,o;for(;(o=this._step(r,e,n))>=0&&o!==r&&o!==i;)r=o;return o}_step(e,n,r){let{inedges:i,hull:o,_hullIndex:a,halfedges:s,triangles:c,points:l}=this;if(l.length<2)return-1;if(i[e]===-1)return(e+1)%(l.length>>1);let u=e,h=Ai(n-l[e*2],2)+Ai(r-l[e*2+1],2),f=i[e],d=f;do{let m=c[d],p=Ai(n-l[m*2],2)+Ai(r-l[m*2+1],2);if(p<h&&(h=p,u=m),d=d%3===2?d-2:d+1,c[d]!==e)break;if(d=s[d],d===-1){if(d=o[(a[e]+1)%o.length],d!==m&&Ai(n-l[d*2],2)+Ai(r-l[d*2+1],2)<h)return d;break}}while(d!==f);return u}render(e){let n=e==null?e=new zn:void 0,{points:r,halfedges:i,triangles:o}=this;for(let a=0,s=i.length;a<s;++a){let c=i[a];if(c<a)continue;let l=o[a]*2,u=o[c]*2;e.moveTo(r[l],r[l+1]),e.lineTo(r[u],r[u+1])}return this.renderHull(e),n&&n.value()}renderPoints(e,n){n===void 0&&(!e||typeof e.moveTo!="function")&&(n=e,e=null),n=n==null?2:+n;let r=e==null?e=new zn:void 0,{points:i}=this;for(let o=0,a=i.length&-2;o<a;o+=2){let s=i[o],c=i[o+1];e.moveTo(s+n,c),e.arc(s,c,n,0,n8)}return r&&r.value()}renderHull(e){let n=e==null?e=new zn:void 0,{hull:r,points:i}=this,o=r[0]*2,a=r.length;e.moveTo(i[o],i[o+1]);for(let s=1;s<a;++s){let c=2*r[s];e.lineTo(i[c],i[c+1])}return e.closePath(),n&&n.value()}hullPolygon(){let e=new Co;return this.renderHull(e),e.value()}renderTriangle(e,n){let r=n==null?n=new zn:void 0,{points:i,triangles:o}=this,a=o[e*=3]*2,s=o[e+1]*2,c=o[e+2]*2;return n.moveTo(i[a],i[a+1]),n.lineTo(i[s],i[s+1]),n.lineTo(i[c],i[c+1]),n.closePath(),r&&r.value()}*trianglePolygons(){let{triangles:e}=this;for(let n=0,r=e.length/3;n<r;++n)yield this.trianglePolygon(n)}trianglePolygon(e){let n=new Co;return this.renderTriangle(e,n),n.value()}};function s8(t,e,n,r){let i=t.length,o=new Float64Array(i*2);for(let a=0;a<i;++a){let s=t[a];o[a*2]=e.call(r,s,a,t),o[a*2+1]=n.call(r,s,a,t)}return o}function*l8(t,e,n,r){let i=0;for(let o of t)yield e.call(r,o,i,t),yield n.call(r,o,i,t),++i}var Ep={},Du={},$u=34,Fo=10,zu=13;function Cp(t){return new Function("d","return {"+t.map(function(e,n){return JSON.stringify(e)+": d["+n+'] || ""'}).join(",")+"}")}function c8(t,e){var n=Cp(t);return function(r,i){return e(n(r),i,t)}}function Mp(t){var e=Object.create(null),n=[];return t.forEach(function(r){for(var i in r)i in e||n.push(e[i]=i)}),n}function Te(t,e){var n=t+"",r=n.length;return r<e?new Array(e-r+1).join(0)+n:n}function u8(t){return t<0?"-"+Te(-t,6):t>9999?"+"+Te(t,6):Te(t,4)}function f8(t){var e=t.getUTCHours(),n=t.getUTCMinutes(),r=t.getUTCSeconds(),i=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":u8(t.getUTCFullYear())+"-"+Te(t.getUTCMonth()+1,2)+"-"+Te(t.getUTCDate(),2)+(i?"T"+Te(e,2)+":"+Te(n,2)+":"+Te(r,2)+"."+Te(i,3)+"Z":r?"T"+Te(e,2)+":"+Te(n,2)+":"+Te(r,2)+"Z":n||e?"T"+Te(e,2)+":"+Te(n,2)+"Z":"")}function To(t){var e=new RegExp('["'+t+`
|
|
2
|
-
\r]`),n=t.charCodeAt(0);function r(h,f){var d,m,p=i(h,function(g,y){if(d)return d(g,y-1);m=g,d=f?
|
|
3
|
-
`)}function s(h,f){return f==null&&(f=
|
|
1
|
+
var geneviewer=(()=>{var Ec=Object.defineProperty;var S2=Object.getOwnPropertyDescriptor;var k2=Object.getOwnPropertyNames;var A2=Object.prototype.hasOwnProperty;var Td=(t,e)=>{for(var n in e)Ec(t,n,{get:e[n],enumerable:!0})},E2=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of k2(e))!A2.call(t,i)&&i!==n&&Ec(t,i,{get:()=>e[i],enumerable:!(r=S2(e,i))||r.enumerable});return t};var M2=t=>E2(Ec({},"__esModule",{value:!0}),t);var EM={};Td(EM,{chartToPNG:()=>Ca,chartToSVG:()=>Zi,compile:()=>Ma,newChart:()=>Xb,palettes:()=>Vi,themes:()=>Aa,version:()=>Wb});var R={};Td(R,{Adder:()=>It,Delaunay:()=>$u,FormatSpecifier:()=>Ls,InternMap:()=>tr,InternSet:()=>On,Node:()=>Ir,Path:()=>lr,Voronoi:()=>zs,ZoomTransform:()=>An,active:()=>e_,arc:()=>cA,area:()=>sy,areaRadial:()=>gA,ascending:()=>Bt,autoType:()=>E8,axisBottom:()=>Pv,axisLeft:()=>Iv,axisRight:()=>Rv,axisTop:()=>Nv,bin:()=>tv,bisect:()=>nr,bisectCenter:()=>O2,bisectLeft:()=>T2,bisectRight:()=>nr,bisector:()=>lo,blob:()=>F8,blur:()=>B2,blur2:()=>Tc,blurImage:()=>D2,brush:()=>p_,brushSelection:()=>f_,brushX:()=>h_,brushY:()=>d_,buffer:()=>O8,chord:()=>w_,chordDirected:()=>__,chordTranspose:()=>x_,cluster:()=>G6,color:()=>mn,contourDensity:()=>W_,contours:()=>Ou,count:()=>Za,create:()=>wx,creator:()=>as,cross:()=>L2,csv:()=>$8,csvFormat:()=>g8,csvFormatBody:()=>m8,csvFormatRow:()=>b8,csvFormatRows:()=>y8,csvFormatValue:()=>v8,csvParse:()=>Pu,csvParseRows:()=>p8,cubehelix:()=>Re,cumsum:()=>q2,curveBasis:()=>BA,curveBasisClosed:()=>DA,curveBasisOpen:()=>$A,curveBumpX:()=>uy,curveBumpY:()=>fy,curveBundle:()=>zA,curveCardinal:()=>NA,curveCardinalClosed:()=>RA,curveCardinalOpen:()=>PA,curveCatmullRom:()=>IA,curveCatmullRomClosed:()=>LA,curveCatmullRomOpen:()=>qA,curveLinear:()=>Hl,curveLinearClosed:()=>YA,curveMonotoneX:()=>UA,curveMonotoneY:()=>HA,curveNatural:()=>WA,curveStep:()=>jA,curveStepAfter:()=>GA,curveStepBefore:()=>XA,descending:()=>Bd,deviation:()=>Nd,difference:()=>kv,disjoint:()=>Av,dispatch:()=>Ye,drag:()=>Fx,dragDisable:()=>ui,dragEnable:()=>fi,dsv:()=>D8,dsvFormat:()=>Oo,easeBack:()=>H3,easeBackIn:()=>Y3,easeBackInOut:()=>H3,easeBackOut:()=>U3,easeBounce:()=>ks,easeBounceIn:()=>L3,easeBounceInOut:()=>q3,easeBounceOut:()=>ks,easeCircle:()=>O3,easeCircleIn:()=>F3,easeCircleInOut:()=>O3,easeCircleOut:()=>T3,easeCubic:()=>uu,easeCubicIn:()=>b3,easeCubicInOut:()=>uu,easeCubicOut:()=>v3,easeElastic:()=>j3,easeElasticIn:()=>W3,easeElasticInOut:()=>X3,easeElasticOut:()=>j3,easeExp:()=>C3,easeExpIn:()=>E3,easeExpInOut:()=>C3,easeExpOut:()=>M3,easeLinear:()=>p3,easePoly:()=>_3,easePolyIn:()=>w3,easePolyInOut:()=>_3,easePolyOut:()=>x3,easeQuad:()=>y3,easeQuadIn:()=>g3,easeQuadInOut:()=>y3,easeQuadOut:()=>m3,easeSin:()=>A3,easeSinIn:()=>S3,easeSinInOut:()=>A3,easeSinOut:()=>k3,every:()=>bv,extent:()=>ei,fcumsum:()=>U2,filter:()=>wv,flatGroup:()=>H2,flatRollup:()=>W2,forceCenter:()=>i4,forceCollide:()=>s4,forceLink:()=>c4,forceManyBody:()=>b4,forceRadial:()=>v4,forceSimulation:()=>y4,forceX:()=>w4,forceY:()=>x4,format:()=>Do,formatDefaultLocale:()=>Yp,formatLocale:()=>qp,formatPrefix:()=>qs,formatSpecifier:()=>$r,fsum:()=>Y2,geoAlbers:()=>Qg,geoAlbersUsa:()=>E6,geoArea:()=>O4,geoAzimuthalEqualArea:()=>M6,geoAzimuthalEqualAreaRaw:()=>Tf,geoAzimuthalEquidistant:()=>C6,geoAzimuthalEquidistantRaw:()=>Of,geoBounds:()=>z4,geoCentroid:()=>q4,geoCircle:()=>Y4,geoClipAntimeridian:()=>lf,geoClipCircle:()=>Ng,geoClipExtent:()=>V4,geoClipRectangle:()=>_l,geoConicConformal:()=>T6,geoConicConformalRaw:()=>em,geoConicEqualArea:()=>wl,geoConicEqualAreaRaw:()=>Kg,geoConicEquidistant:()=>B6,geoConicEquidistantRaw:()=>nm,geoContains:()=>n6,geoDistance:()=>fl,geoEqualEarth:()=>$6,geoEqualEarthRaw:()=>Bf,geoEquirectangular:()=>O6,geoEquirectangularRaw:()=>Vo,geoGnomonic:()=>z6,geoGnomonicRaw:()=>Df,geoGraticule:()=>Ig,geoGraticule10:()=>r6,geoIdentity:()=>N6,geoInterpolate:()=>i6,geoLength:()=>Rg,geoMercator:()=>F6,geoMercatorRaw:()=>Jo,geoNaturalEarth1:()=>R6,geoNaturalEarth1Raw:()=>$f,geoOrthographic:()=>P6,geoOrthographicRaw:()=>zf,geoPath:()=>m6,geoProjection:()=>Sn,geoProjectionMutator:()=>Cf,geoRotation:()=>Tg,geoStereographic:()=>I6,geoStereographicRaw:()=>Nf,geoStream:()=>cn,geoTransform:()=>y6,geoTransverseMercator:()=>L6,geoTransverseMercatorRaw:()=>Rf,gray:()=>qx,greatest:()=>Xd,greatestIndex:()=>hv,group:()=>Ld,groupSort:()=>G2,groups:()=>qd,hcl:()=>bo,hierarchy:()=>Hf,histogram:()=>tv,hsl:()=>mo,html:()=>L8,image:()=>N8,index:()=>j2,indexes:()=>X2,interpolate:()=>yn,interpolateArray:()=>Xx,interpolateBasis:()=>R0,interpolateBasisClosed:()=>P0,interpolateBlues:()=>Nk,interpolateBrBG:()=>gk,interpolateBuGn:()=>kk,interpolateBuPu:()=>Ak,interpolateCividis:()=>Yk,interpolateCool:()=>Wk,interpolateCubehelix:()=>l3,interpolateCubehelixDefault:()=>Uk,interpolateCubehelixLong:()=>wo,interpolateDate:()=>U0,interpolateDiscrete:()=>Zx,interpolateGnBu:()=>Ek,interpolateGreens:()=>Rk,interpolateGreys:()=>Pk,interpolateHcl:()=>a3,interpolateHclLong:()=>s3,interpolateHsl:()=>r3,interpolateHslLong:()=>i3,interpolateHue:()=>Kx,interpolateInferno:()=>Jk,interpolateLab:()=>o3,interpolateMagma:()=>Qk,interpolateNumber:()=>Fe,interpolateNumberArray:()=>ru,interpolateObject:()=>H0,interpolateOrRd:()=>Mk,interpolateOranges:()=>qk,interpolatePRGn:()=>mk,interpolatePiYG:()=>yk,interpolatePlasma:()=>tA,interpolatePuBu:()=>Fk,interpolatePuBuGn:()=>Ck,interpolatePuOr:()=>bk,interpolatePuRd:()=>Tk,interpolatePurples:()=>Ik,interpolateRainbow:()=>jk,interpolateRdBu:()=>vk,interpolateRdGy:()=>wk,interpolateRdPu:()=>Ok,interpolateRdYlBu:()=>xk,interpolateRdYlGn:()=>_k,interpolateReds:()=>Lk,interpolateRgb:()=>mi,interpolateRgbBasis:()=>nu,interpolateRgbBasisClosed:()=>jx,interpolateRound:()=>vo,interpolateSinebow:()=>Vk,interpolateSpectral:()=>Sk,interpolateString:()=>bs,interpolateTransformCss:()=>iu,interpolateTransformSvg:()=>ou,interpolateTurbo:()=>Zk,interpolateViridis:()=>Kk,interpolateWarm:()=>Hk,interpolateYlGn:()=>Dk,interpolateYlGnBu:()=>Bk,interpolateYlOrBr:()=>$k,interpolateYlOrRd:()=>zk,interpolateZoom:()=>au,interrupt:()=>$n,intersection:()=>Ev,interval:()=>d3,isoFormat:()=>z9,isoParse:()=>R9,json:()=>P8,lab:()=>yo,lch:()=>Yx,least:()=>fv,leastIndex:()=>Vd,line:()=>kh,lineRadial:()=>pA,link:()=>Wl,linkHorizontal:()=>vA,linkRadial:()=>xA,linkVertical:()=>wA,local:()=>c0,map:()=>xv,matcher:()=>ls,max:()=>ii,maxIndex:()=>Dc,mean:()=>rv,median:()=>iv,medianIndex:()=>ov,merge:()=>ts,min:()=>Va,minIndex:()=>$c,mode:()=>sv,namespace:()=>li,namespaces:()=>Pc,nice:()=>Ka,now:()=>bi,pack:()=>k7,packEnclose:()=>b7,packSiblings:()=>_7,pairs:()=>lv,partition:()=>A7,path:()=>Ts,pathRound:()=>b_,permute:()=>jd,pie:()=>dA,piecewise:()=>su,pointRadial:()=>ga,pointer:()=>le,pointers:()=>_x,polygonArea:()=>q7,polygonCentroid:()=>Y7,polygonContains:()=>j7,polygonHull:()=>W7,polygonLength:()=>X7,precisionFixed:()=>Yu,precisionPrefix:()=>Uu,precisionRound:()=>Hu,quadtree:()=>Bo,quantile:()=>oi,quantileIndex:()=>Gd,quantileSorted:()=>zc,quantize:()=>c3,quickselect:()=>Ja,radialArea:()=>gA,radialLine:()=>pA,randomBates:()=>K7,randomBernoulli:()=>tS,randomBeta:()=>Am,randomBinomial:()=>Em,randomCauchy:()=>nS,randomExponential:()=>Q7,randomGamma:()=>Xf,randomGeometric:()=>km,randomInt:()=>V7,randomIrwinHall:()=>Sm,randomLcg:()=>sS,randomLogNormal:()=>Z7,randomLogistic:()=>rS,randomNormal:()=>jf,randomPareto:()=>J7,randomPoisson:()=>iS,randomUniform:()=>G7,randomWeibull:()=>eS,range:()=>dn,rank:()=>uv,reduce:()=>_v,reverse:()=>Sv,rgb:()=>ar,ribbon:()=>T_,ribbonArrow:()=>O_,rollup:()=>Ud,rollups:()=>Hd,scaleBand:()=>ch,scaleDiverging:()=>k1,scaleDivergingLog:()=>A1,scaleDivergingPow:()=>yh,scaleDivergingSqrt:()=>rk,scaleDivergingSymlog:()=>E1,scaleIdentity:()=>h1,scaleImplicit:()=>ah,scaleLinear:()=>f1,scaleLog:()=>p1,scaleOrdinal:()=>lh,scalePoint:()=>P9,scalePow:()=>ph,scaleQuantile:()=>y1,scaleQuantize:()=>b1,scaleRadial:()=>m1,scaleSequential:()=>w1,scaleSequentialLog:()=>x1,scaleSequentialPow:()=>mh,scaleSequentialQuantile:()=>S1,scaleSequentialSqrt:()=>nk,scaleSequentialSymlog:()=>_1,scaleSqrt:()=>Z9,scaleSymlog:()=>g1,scaleThreshold:()=>v1,scaleTime:()=>tk,scaleUtc:()=>ek,scan:()=>dv,schemeAccent:()=>ok,schemeBlues:()=>G1,schemeBrBG:()=>M1,schemeBuGn:()=>N1,schemeBuPu:()=>R1,schemeCategory10:()=>ik,schemeDark2:()=>ak,schemeGnBu:()=>P1,schemeGreens:()=>V1,schemeGreys:()=>Z1,schemeObservable10:()=>sk,schemeOrRd:()=>I1,schemeOranges:()=>J1,schemePRGn:()=>C1,schemePaired:()=>lk,schemePastel1:()=>ck,schemePastel2:()=>uk,schemePiYG:()=>F1,schemePuBu:()=>q1,schemePuBuGn:()=>L1,schemePuOr:()=>T1,schemePuRd:()=>Y1,schemePurples:()=>K1,schemeRdBu:()=>O1,schemeRdGy:()=>B1,schemeRdPu:()=>U1,schemeRdYlBu:()=>D1,schemeRdYlGn:()=>$1,schemeReds:()=>Q1,schemeSet1:()=>fk,schemeSet2:()=>hk,schemeSet3:()=>dk,schemeSpectral:()=>z1,schemeTableau10:()=>pk,schemeYlGn:()=>W1,schemeYlGnBu:()=>H1,schemeYlOrBr:()=>j1,schemeYlOrRd:()=>X1,select:()=>Xt,selectAll:()=>Sx,selection:()=>ir,selector:()=>uo,selectorAll:()=>ss,shuffle:()=>pv,shuffler:()=>Zd,some:()=>vv,sort:()=>Fc,stack:()=>KA,stackOffsetDiverging:()=>JA,stackOffsetExpand:()=>QA,stackOffsetNone:()=>qi,stackOffsetSilhouette:()=>tE,stackOffsetWiggle:()=>eE,stackOrderAppearance:()=>Ny,stackOrderAscending:()=>Ry,stackOrderDescending:()=>rE,stackOrderInsideOut:()=>iE,stackOrderNone:()=>Yi,stackOrderReverse:()=>oE,stratify:()=>F7,style:()=>rr,subset:()=>Cv,sum:()=>gv,superset:()=>Qd,svg:()=>q8,symbol:()=>OA,symbolAsterisk:()=>hy,symbolCircle:()=>jl,symbolCross:()=>dy,symbolDiamond:()=>gy,symbolDiamond2:()=>my,symbolPlus:()=>yy,symbolSquare:()=>by,symbolSquare2:()=>vy,symbolStar:()=>xy,symbolTimes:()=>Ay,symbolTriangle:()=>_y,symbolTriangle2:()=>Sy,symbolWye:()=>ky,symbolX:()=>Ay,symbols:()=>FA,symbolsFill:()=>FA,symbolsStroke:()=>TA,text:()=>Ns,thresholdFreedmanDiaconis:()=>ev,thresholdScott:()=>nv,thresholdSturges:()=>Qa,tickFormat:()=>u1,tickIncrement:()=>er,tickStep:()=>si,ticks:()=>Bn,timeDay:()=>hr,timeDays:()=>pS,timeFormat:()=>Fl,timeFormatDefaultLocale:()=>Jm,timeFormatLocale:()=>Xm,timeFriday:()=>Tm,timeFridays:()=>_S,timeHour:()=>oa,timeHours:()=>hS,timeInterval:()=>Wt,timeMillisecond:()=>na,timeMilliseconds:()=>lS,timeMinute:()=>ra,timeMinutes:()=>uS,timeMonday:()=>Ri,timeMondays:()=>bS,timeMonth:()=>sa,timeMonths:()=>OS,timeParse:()=>Qm,timeSaturday:()=>Om,timeSaturdays:()=>SS,timeSecond:()=>kn,timeSeconds:()=>cS,timeSunday:()=>Yr,timeSundays:()=>yS,timeThursday:()=>dr,timeThursdays:()=>xS,timeTickInterval:()=>nh,timeTicks:()=>eh,timeTuesday:()=>Cm,timeTuesdays:()=>vS,timeWednesday:()=>Fm,timeWednesdays:()=>wS,timeWeek:()=>Yr,timeWeeks:()=>yS,timeYear:()=>je,timeYears:()=>DS,timeout:()=>_s,timer:()=>vi,timerFlush:()=>J0,transition:()=>ap,transpose:()=>Kd,tree:()=>N7,treemap:()=>R7,treemapBinary:()=>P7,treemapDice:()=>ea,treemapResquarify:()=>L7,treemapSlice:()=>Cl,treemapSliceDice:()=>I7,treemapSquarify:()=>wm,tsv:()=>z8,tsvFormat:()=>x8,tsvFormatBody:()=>_8,tsvFormatRow:()=>k8,tsvFormatRows:()=>S8,tsvFormatValue:()=>A8,tsvParse:()=>Iu,tsvParseRows:()=>w8,union:()=>Fv,unixDay:()=>Qf,unixDays:()=>mS,utcDay:()=>Lr,utcDays:()=>gS,utcFormat:()=>ha,utcFriday:()=>$m,utcFridays:()=>FS,utcHour:()=>aa,utcHours:()=>dS,utcMillisecond:()=>na,utcMilliseconds:()=>lS,utcMinute:()=>ia,utcMinutes:()=>fS,utcMonday:()=>Pi,utcMondays:()=>AS,utcMonth:()=>la,utcMonths:()=>BS,utcParse:()=>oh,utcSaturday:()=>zm,utcSaturdays:()=>TS,utcSecond:()=>kn,utcSeconds:()=>cS,utcSunday:()=>Hr,utcSundays:()=>kS,utcThursday:()=>pr,utcThursdays:()=>CS,utcTickInterval:()=>th,utcTicks:()=>Jf,utcTuesday:()=>Bm,utcTuesdays:()=>ES,utcWednesday:()=>Dm,utcWednesdays:()=>MS,utcWeek:()=>Hr,utcWeeks:()=>kS,utcYear:()=>Xe,utcYears:()=>$S,variance:()=>zd,window:()=>Lc,xml:()=>I8,zip:()=>yv,zoom:()=>hE,zoomIdentity:()=>Zl,zoomTransform:()=>Ly});function Bt(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Bd(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function lo(t){let e,n,r;t.length!==2?(e=Bt,n=(s,c)=>Bt(t(s),c),r=(s,c)=>t(s)-c):(e=t===Bt||t===Bd?t:C2,n=t,r=t);function i(s,c,l=0,u=s.length){if(l<u){if(e(c,c)!==0)return u;do{let h=l+u>>>1;n(s[h],c)<0?l=h+1:u=h}while(l<u)}return l}function o(s,c,l=0,u=s.length){if(l<u){if(e(c,c)!==0)return u;do{let h=l+u>>>1;n(s[h],c)<=0?l=h+1:u=h}while(l<u)}return l}function a(s,c,l=0,u=s.length){let h=i(s,c,l,u-1);return h>l&&r(s[h-1],c)>-r(s[h],c)?h-1:h}return{left:i,center:a,right:o}}function C2(){return 0}function Xa(t){return t===null?NaN:+t}function*F2(t,e){if(e===void 0)for(let n of t)n!=null&&(n=+n)>=n&&(yield n);else{let n=-1;for(let r of t)(r=e(r,++n,t))!=null&&(r=+r)>=r&&(yield r)}}var Dd=lo(Bt),nr=Dd.right,T2=Dd.left,O2=lo(Xa).center;function B2(t,e){if(!((e=+e)>=0))throw new RangeError("invalid r");let n=t.length;if(!((n=Math.floor(n))>=0))throw new RangeError("invalid length");if(!n||!e)return t;let r=Oc(e),i=t.slice();return r(t,i,0,n,1),r(i,t,0,n,1),r(t,i,0,n,1),t}var Tc=$d(Oc),D2=$d($2);function $d(t){return function(e,n,r=n){if(!((n=+n)>=0))throw new RangeError("invalid rx");if(!((r=+r)>=0))throw new RangeError("invalid ry");let{data:i,width:o,height:a}=e;if(!((o=Math.floor(o))>=0))throw new RangeError("invalid width");if(!((a=Math.floor(a!==void 0?a:i.length/o))>=0))throw new RangeError("invalid height");if(!o||!a||!n&&!r)return e;let s=n&&t(n),c=r&&t(r),l=i.slice();return s&&c?(Jr(s,l,i,o,a),Jr(s,i,l,o,a),Jr(s,l,i,o,a),ti(c,i,l,o,a),ti(c,l,i,o,a),ti(c,i,l,o,a)):s?(Jr(s,i,l,o,a),Jr(s,l,i,o,a),Jr(s,i,l,o,a)):c&&(ti(c,i,l,o,a),ti(c,l,i,o,a),ti(c,i,l,o,a)),e}}function Jr(t,e,n,r,i){for(let o=0,a=r*i;o<a;)t(e,n,o,o+=r,1)}function ti(t,e,n,r,i){for(let o=0,a=r*i;o<r;++o)t(e,n,o,o+a,r)}function $2(t){let e=Oc(t);return(n,r,i,o,a)=>{i<<=2,o<<=2,a<<=2,e(n,r,i+0,o+0,a),e(n,r,i+1,o+1,a),e(n,r,i+2,o+2,a),e(n,r,i+3,o+3,a)}}function Oc(t){let e=Math.floor(t);if(e===t)return z2(t);let n=t-e,r=2*t+1;return(i,o,a,s,c)=>{if(!((s-=c)>=a))return;let l=e*o[a],u=c*e,h=u+c;for(let f=a,d=a+u;f<d;f+=c)l+=o[Math.min(s,f)];for(let f=a,d=s;f<=d;f+=c)l+=o[Math.min(s,f+u)],i[f]=(l+n*(o[Math.max(a,f-h)]+o[Math.min(s,f+h)]))/r,l-=o[Math.max(a,f-u)]}}function z2(t){let e=2*t+1;return(n,r,i,o,a)=>{if(!((o-=a)>=i))return;let s=t*r[i],c=a*t;for(let l=i,u=i+c;l<u;l+=a)s+=r[Math.min(o,l)];for(let l=i,u=o;l<=u;l+=a)s+=r[Math.min(o,l+c)],n[l]=s/e,s-=r[Math.max(i,l-c)]}}function Za(t,e){let n=0;if(e===void 0)for(let r of t)r!=null&&(r=+r)>=r&&++n;else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(i=+i)>=i&&++n}return n}function N2(t){return t.length|0}function R2(t){return!(t>0)}function P2(t){return typeof t!="object"||"length"in t?t:Array.from(t)}function I2(t){return e=>t(...e)}function L2(...t){let e=typeof t[t.length-1]=="function"&&I2(t.pop());t=t.map(P2);let n=t.map(N2),r=t.length-1,i=new Array(r+1).fill(0),o=[];if(r<0||n.some(R2))return o;for(;;){o.push(i.map((s,c)=>t[c][s]));let a=r;for(;++i[a]===n[a];){if(a===0)return e?o.map(e):o;i[a--]=0}}}function q2(t,e){var n=0,r=0;return Float64Array.from(t,e===void 0?i=>n+=+i||0:i=>n+=+e(i,r++,t)||0)}function zd(t,e){let n=0,r,i=0,o=0;if(e===void 0)for(let a of t)a!=null&&(a=+a)>=a&&(r=a-i,i+=r/++n,o+=r*(a-i));else{let a=-1;for(let s of t)(s=e(s,++a,t))!=null&&(s=+s)>=s&&(r=s-i,i+=r/++n,o+=r*(s-i))}if(n>1)return o/(n-1)}function Nd(t,e){let n=zd(t,e);return n&&Math.sqrt(n)}function ei(t,e){let n,r;if(e===void 0)for(let i of t)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let o of t)(o=e(o,++i,t))!=null&&(n===void 0?o>=o&&(n=r=o):(n>o&&(n=o),r<o&&(r=o)))}return[n,r]}var It=class{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){let n=this._partials,r=0;for(let i=0;i<this._n&&i<32;i++){let o=n[i],a=e+o,s=Math.abs(e)<Math.abs(o)?e-(a-o):o-(a-e);s&&(n[r++]=s),e=a}return n[r]=e,this._n=r+1,this}valueOf(){let e=this._partials,n=this._n,r,i,o,a=0;if(n>0){for(a=e[--n];n>0&&(r=a,i=e[--n],a=r+i,o=i-(a-r),!o););n>0&&(o<0&&e[n-1]<0||o>0&&e[n-1]>0)&&(i=o*2,r=a+i,i==r-a&&(a=r))}return a}};function Y2(t,e){let n=new It;if(e===void 0)for(let r of t)(r=+r)&&n.add(r);else{let r=-1;for(let i of t)(i=+e(i,++r,t))&&n.add(i)}return+n}function U2(t,e){let n=new It,r=-1;return Float64Array.from(t,e===void 0?i=>n.add(+i||0):i=>n.add(+e(i,++r,t)||0))}var tr=class extends Map{constructor(e,n=Id){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(let[r,i]of e)this.set(r,i)}get(e){return super.get(Cc(this,e))}has(e){return super.has(Cc(this,e))}set(e,n){return super.set(Rd(this,e),n)}delete(e){return super.delete(Pd(this,e))}},On=class extends Set{constructor(e,n=Id){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(let r of e)this.add(r)}has(e){return super.has(Cc(this,e))}add(e){return super.add(Rd(this,e))}delete(e){return super.delete(Pd(this,e))}};function Cc({_intern:t,_key:e},n){let r=e(n);return t.has(r)?t.get(r):n}function Rd({_intern:t,_key:e},n){let r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function Pd({_intern:t,_key:e},n){let r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function Id(t){return t!==null&&typeof t=="object"?t.valueOf():t}function ni(t){return t}function Ld(t,...e){return ai(t,ni,ni,e)}function qd(t,...e){return ai(t,Array.from,ni,e)}function Yd(t,e){for(let n=1,r=e.length;n<r;++n)t=t.flatMap(i=>i.pop().map(([o,a])=>[...i,o,a]));return t}function H2(t,...e){return Yd(qd(t,...e),e)}function W2(t,e,...n){return Yd(Hd(t,e,...n),n)}function Ud(t,e,...n){return ai(t,ni,e,n)}function Hd(t,e,...n){return ai(t,Array.from,e,n)}function j2(t,...e){return ai(t,ni,Wd,e)}function X2(t,...e){return ai(t,Array.from,Wd,e)}function Wd(t){if(t.length!==1)throw new Error("duplicate key");return t[0]}function ai(t,e,n,r){return(function i(o,a){if(a>=r.length)return n(o);let s=new tr,c=r[a++],l=-1;for(let u of o){let h=c(u,++l,o),f=s.get(h);f?f.push(u):s.set(h,[u])}for(let[u,h]of s)s.set(u,i(h,a));return e(s)})(t,0)}function jd(t,e){return Array.from(e,n=>t[n])}function Fc(t,...e){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");t=Array.from(t);let[n]=e;if(n&&n.length!==2||e.length>1){let r=Uint32Array.from(t,(i,o)=>o);return e.length>1?(e=e.map(i=>t.map(i)),r.sort((i,o)=>{for(let a of e){let s=ri(a[i],a[o]);if(s)return s}})):(n=t.map(n),r.sort((i,o)=>ri(n[i],n[o]))),jd(t,r)}return t.sort(Bc(n))}function Bc(t=Bt){if(t===Bt)return ri;if(typeof t!="function")throw new TypeError("compare is not a function");return(e,n)=>{let r=t(e,n);return r||r===0?r:(t(n,n)===0)-(t(e,e)===0)}}function ri(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(t<e?-1:t>e?1:0)}function G2(t,e,n){return(e.length!==2?Fc(Ud(t,e,n),(([r,i],[o,a])=>Bt(i,a)||Bt(r,o))):Fc(Ld(t,n),(([r,i],[o,a])=>e(i,a)||Bt(r,o)))).map(([r])=>r)}var V2=Array.prototype,Z2=V2.slice;function Mc(t){return()=>t}var K2=Math.sqrt(50),Q2=Math.sqrt(10),J2=Math.sqrt(2);function Ga(t,e,n){let r=(e-t)/Math.max(0,n),i=Math.floor(Math.log10(r)),o=r/Math.pow(10,i),a=o>=K2?10:o>=Q2?5:o>=J2?2:1,s,c,l;return i<0?(l=Math.pow(10,-i)/a,s=Math.round(t*l),c=Math.round(e*l),s/l<t&&++s,c/l>e&&--c,l=-l):(l=Math.pow(10,i)*a,s=Math.round(t/l),c=Math.round(e/l),s*l<t&&++s,c*l>e&&--c),c<s&&.5<=n&&n<2?Ga(t,e,n*2):[s,c,l]}function Bn(t,e,n){if(e=+e,t=+t,n=+n,!(n>0))return[];if(t===e)return[t];let r=e<t,[i,o,a]=r?Ga(e,t,n):Ga(t,e,n);if(!(o>=i))return[];let s=o-i+1,c=new Array(s);if(r)if(a<0)for(let l=0;l<s;++l)c[l]=(o-l)/-a;else for(let l=0;l<s;++l)c[l]=(o-l)*a;else if(a<0)for(let l=0;l<s;++l)c[l]=(i+l)/-a;else for(let l=0;l<s;++l)c[l]=(i+l)*a;return c}function er(t,e,n){return e=+e,t=+t,n=+n,Ga(t,e,n)[2]}function si(t,e,n){e=+e,t=+t,n=+n;let r=e<t,i=r?er(e,t,n):er(t,e,n);return(r?-1:1)*(i<0?1/-i:i)}function Ka(t,e,n){let r;for(;;){let i=er(t,e,n);if(i===r||i===0||!isFinite(i))return[t,e];if(i>0){let o=Math.ceil(t/i),a=Math.floor(e/i);t=(o-(o*i>t))*i,e=(a+(a*i<e))*i}else if(i<0){let o=-i,a=Math.ceil(t*o),s=Math.floor(e*o);t=(a-(a/o>t))/o,e=(s+(s/o<e))/o}r=i}}function Qa(t){return Math.max(1,Math.ceil(Math.log(Za(t))/Math.LN2)+1)}function tv(){var t=ni,e=ei,n=Qa;function r(i){Array.isArray(i)||(i=Array.from(i));var o,a=i.length,s,c,l=new Array(a);for(o=0;o<a;++o)l[o]=t(i[o],o,i);var u=e(l),h=u[0],f=u[1],d=n(l,h,f);if(!Array.isArray(d)){let b=f,v=+d;if(e===ei&&([h,f]=Ka(h,f,v)),d=Bn(h,f,v),d[0]<=h&&(c=er(h,f,v)),d[d.length-1]>=f)if(b>=f&&e===ei){let _=er(h,f,v);isFinite(_)&&(_>0?f=(Math.floor(f/_)+1)*_:_<0&&(f=(Math.ceil(f*-_)+1)/-_))}else d.pop()}for(var m=d.length,p=0,g=m;d[p]<=h;)++p;for(;d[g-1]>f;)--g;(p||g<m)&&(d=d.slice(p,g),m=g-p);var y=new Array(m+1),w;for(o=0;o<=m;++o)w=y[o]=[],w.x0=o>0?d[o-1]:h,w.x1=o<m?d[o]:f;if(isFinite(c)){if(c>0)for(o=0;o<a;++o)(s=l[o])!=null&&h<=s&&s<=f&&y[Math.min(m,Math.floor((s-h)/c))].push(i[o]);else if(c<0){for(o=0;o<a;++o)if((s=l[o])!=null&&h<=s&&s<=f){let b=Math.floor((h-s)*c);y[Math.min(m,b+(d[b]<=s))].push(i[o])}}}else for(o=0;o<a;++o)(s=l[o])!=null&&h<=s&&s<=f&&y[nr(d,s,0,m)].push(i[o]);return y}return r.value=function(i){return arguments.length?(t=typeof i=="function"?i:Mc(i),r):t},r.domain=function(i){return arguments.length?(e=typeof i=="function"?i:Mc([i[0],i[1]]),r):e},r.thresholds=function(i){return arguments.length?(n=typeof i=="function"?i:Mc(Array.isArray(i)?Z2.call(i):i),r):n},r}function ii(t,e){let n;if(e===void 0)for(let r of t)r!=null&&(n<r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n<i||n===void 0&&i>=i)&&(n=i)}return n}function Dc(t,e){let n,r=-1,i=-1;if(e===void 0)for(let o of t)++i,o!=null&&(n<o||n===void 0&&o>=o)&&(n=o,r=i);else for(let o of t)(o=e(o,++i,t))!=null&&(n<o||n===void 0&&o>=o)&&(n=o,r=i);return r}function Va(t,e){let n;if(e===void 0)for(let r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function $c(t,e){let n,r=-1,i=-1;if(e===void 0)for(let o of t)++i,o!=null&&(n>o||n===void 0&&o>=o)&&(n=o,r=i);else for(let o of t)(o=e(o,++i,t))!=null&&(n>o||n===void 0&&o>=o)&&(n=o,r=i);return r}function Ja(t,e,n=0,r=1/0,i){if(e=Math.floor(e),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(t.length-1,r)),!(n<=e&&e<=r))return t;for(i=i===void 0?ri:Bc(i);r>n;){if(r-n>600){let c=r-n+1,l=e-n+1,u=Math.log(c),h=.5*Math.exp(2*u/3),f=.5*Math.sqrt(u*h*(c-h)/c)*(l-c/2<0?-1:1),d=Math.max(n,Math.floor(e-l*h/c+f)),m=Math.min(r,Math.floor(e+(c-l)*h/c+f));Ja(t,e,d,m,i)}let o=t[e],a=n,s=r;for(so(t,n,e),i(t[r],o)>0&&so(t,n,r);a<s;){for(so(t,a,s),++a,--s;i(t[a],o)<0;)++a;for(;i(t[s],o)>0;)--s}i(t[n],o)===0?so(t,n,s):(++s,so(t,s,r)),s<=e&&(n=s+1),e<=s&&(r=s-1)}return t}function so(t,e,n){let r=t[e];t[e]=t[n],t[n]=r}function Xd(t,e=Bt){let n,r=!1;if(e.length===1){let i;for(let o of t){let a=e(o);(r?Bt(a,i)>0:Bt(a,a)===0)&&(n=o,i=a,r=!0)}}else for(let i of t)(r?e(i,n)>0:e(i,i)===0)&&(n=i,r=!0);return n}function oi(t,e,n){if(t=Float64Array.from(F2(t,n)),!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return Va(t);if(e>=1)return ii(t);var r,i=(r-1)*e,o=Math.floor(i),a=ii(Ja(t,o).subarray(0,o+1)),s=Va(t.subarray(o+1));return a+(s-a)*(i-o)}}function zc(t,e,n=Xa){if(!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,i=(r-1)*e,o=Math.floor(i),a=+n(t[o],o,t),s=+n(t[o+1],o+1,t);return a+(s-a)*(i-o)}}function Gd(t,e,n=Xa){if(!isNaN(e=+e)){if(r=Float64Array.from(t,(s,c)=>Xa(n(t[c],c,t))),e<=0)return $c(r);if(e>=1)return Dc(r);var r,i=Uint32Array.from(t,(s,c)=>c),o=r.length-1,a=Math.floor(o*e);return Ja(i,a,0,o,(s,c)=>ri(r[s],r[c])),a=Xd(i.subarray(0,a+1),s=>r[s]),a>=0?a:-1}}function ev(t,e,n){let r=Za(t),i=oi(t,.75)-oi(t,.25);return r&&i?Math.ceil((n-e)/(2*i*Math.pow(r,-1/3))):1}function nv(t,e,n){let r=Za(t),i=Nd(t);return r&&i?Math.ceil((n-e)*Math.cbrt(r)/(3.49*i)):1}function rv(t,e){let n=0,r=0;if(e===void 0)for(let i of t)i!=null&&(i=+i)>=i&&(++n,r+=i);else{let i=-1;for(let o of t)(o=e(o,++i,t))!=null&&(o=+o)>=o&&(++n,r+=o)}if(n)return r/n}function iv(t,e){return oi(t,.5,e)}function ov(t,e){return Gd(t,.5,e)}function*av(t){for(let e of t)yield*e}function ts(t){return Array.from(av(t))}function sv(t,e){let n=new tr;if(e===void 0)for(let o of t)o!=null&&o>=o&&n.set(o,(n.get(o)||0)+1);else{let o=-1;for(let a of t)(a=e(a,++o,t))!=null&&a>=a&&n.set(a,(n.get(a)||0)+1)}let r,i=0;for(let[o,a]of n)a>i&&(i=a,r=o);return r}function lv(t,e=cv){let n=[],r,i=!1;for(let o of t)i&&n.push(e(r,o)),r=o,i=!0;return n}function cv(t,e){return[t,e]}function dn(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((e-t)/n))|0,o=new Array(i);++r<i;)o[r]=t+r*n;return o}function uv(t,e=Bt){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");let n=Array.from(t),r=new Float64Array(n.length);e.length!==2&&(n=n.map(e),e=Bt);let i=(s,c)=>e(n[s],n[c]),o,a;return t=Uint32Array.from(n,(s,c)=>c),t.sort(e===Bt?(s,c)=>ri(n[s],n[c]):Bc(i)),t.forEach((s,c)=>{let l=i(s,o===void 0?s:o);l>=0?((o===void 0||l>0)&&(o=s,a=c),r[s]=a):r[s]=NaN}),r}function fv(t,e=Bt){let n,r=!1;if(e.length===1){let i;for(let o of t){let a=e(o);(r?Bt(a,i)<0:Bt(a,a)===0)&&(n=o,i=a,r=!0)}}else for(let i of t)(r?e(i,n)<0:e(i,i)===0)&&(n=i,r=!0);return n}function Vd(t,e=Bt){if(e.length===1)return $c(t,e);let n,r=-1,i=-1;for(let o of t)++i,(r<0?e(o,o)===0:e(o,n)<0)&&(n=o,r=i);return r}function hv(t,e=Bt){if(e.length===1)return Dc(t,e);let n,r=-1,i=-1;for(let o of t)++i,(r<0?e(o,o)===0:e(o,n)>0)&&(n=o,r=i);return r}function dv(t,e){let n=Vd(t,e);return n<0?void 0:n}var pv=Zd(Math.random);function Zd(t){return function(n,r=0,i=n.length){let o=i-(r=+r);for(;o;){let a=t()*o--|0,s=n[o+r];n[o+r]=n[a+r],n[a+r]=s}return n}}function gv(t,e){let n=0;if(e===void 0)for(let r of t)(r=+r)&&(n+=r);else{let r=-1;for(let i of t)(i=+e(i,++r,t))&&(n+=i)}return n}function Kd(t){if(!(o=t.length))return[];for(var e=-1,n=Va(t,mv),r=new Array(n);++e<n;)for(var i=-1,o,a=r[e]=new Array(o);++i<o;)a[i]=t[i][e];return r}function mv(t){return t.length}function yv(){return Kd(arguments)}function bv(t,e){if(typeof e!="function")throw new TypeError("test is not a function");let n=-1;for(let r of t)if(!e(r,++n,t))return!1;return!0}function vv(t,e){if(typeof e!="function")throw new TypeError("test is not a function");let n=-1;for(let r of t)if(e(r,++n,t))return!0;return!1}function wv(t,e){if(typeof e!="function")throw new TypeError("test is not a function");let n=[],r=-1;for(let i of t)e(i,++r,t)&&n.push(i);return n}function xv(t,e){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");if(typeof e!="function")throw new TypeError("mapper is not a function");return Array.from(t,(n,r)=>e(n,r,t))}function _v(t,e,n){if(typeof e!="function")throw new TypeError("reducer is not a function");let r=t[Symbol.iterator](),i,o,a=-1;if(arguments.length<3){if({done:i,value:n}=r.next(),i)return;++a}for(;{done:i,value:o}=r.next(),!i;)n=e(n,o,++a,t);return n}function Sv(t){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");return Array.from(t).reverse()}function kv(t,...e){t=new On(t);for(let n of e)for(let r of n)t.delete(r);return t}function Av(t,e){let n=e[Symbol.iterator](),r=new On;for(let i of t){if(r.has(i))return!1;let o,a;for(;({value:o,done:a}=n.next())&&!a;){if(Object.is(i,o))return!1;r.add(o)}}return!0}function Ev(t,...e){t=new On(t),e=e.map(Mv);t:for(let n of t)for(let r of e)if(!r.has(n)){t.delete(n);continue t}return t}function Mv(t){return t instanceof On?t:new On(t)}function Qd(t,e){let n=t[Symbol.iterator](),r=new Set;for(let i of e){let o=Od(i);if(r.has(o))continue;let a,s;for(;{value:a,done:s}=n.next();){if(s)return!1;let c=Od(a);if(r.add(c),Object.is(o,c))break}}return!0}function Od(t){return t!==null&&typeof t=="object"?t.valueOf():t}function Cv(t,e){return Qd(e,t)}function Fv(...t){let e=new On;for(let n of t)for(let r of n)e.add(r);return e}function Tv(t){return t}var es=1,ns=2,Nc=3,co=4,Jd=1e-6;function Ov(t){return"translate("+t+",0)"}function Bv(t){return"translate(0,"+t+")"}function Dv(t){return e=>+t(e)}function $v(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function zv(){return!this.__axis}function rs(t,e){var n=[],r=null,i=null,o=6,a=6,s=3,c=typeof window<"u"&&window.devicePixelRatio>1?0:.5,l=t===es||t===co?-1:1,u=t===co||t===ns?"x":"y",h=t===es||t===Nc?Ov:Bv;function f(d){var m=r??(e.ticks?e.ticks.apply(e,n):e.domain()),p=i??(e.tickFormat?e.tickFormat.apply(e,n):Tv),g=Math.max(o,0)+s,y=e.range(),w=+y[0]+c,b=+y[y.length-1]+c,v=(e.bandwidth?$v:Dv)(e.copy(),c),_=d.selection?d.selection():d,S=_.selectAll(".domain").data([null]),k=_.selectAll(".tick").data(m,e).order(),C=k.exit(),F=k.enter().append("g").attr("class","tick"),A=k.select("line"),E=k.select("text");S=S.merge(S.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),k=k.merge(F),A=A.merge(F.append("line").attr("stroke","currentColor").attr(u+"2",l*o)),E=E.merge(F.append("text").attr("fill","currentColor").attr(u,l*g).attr("dy",t===es?"0em":t===Nc?"0.71em":"0.32em")),d!==_&&(S=S.transition(d),k=k.transition(d),A=A.transition(d),E=E.transition(d),C=C.transition(d).attr("opacity",Jd).attr("transform",function(D){return isFinite(D=v(D))?h(D+c):this.getAttribute("transform")}),F.attr("opacity",Jd).attr("transform",function(D){var $=this.parentNode.__axis;return h(($&&isFinite($=$(D))?$:v(D))+c)})),C.remove(),S.attr("d",t===co||t===ns?a?"M"+l*a+","+w+"H"+c+"V"+b+"H"+l*a:"M"+c+","+w+"V"+b:a?"M"+w+","+l*a+"V"+c+"H"+b+"V"+l*a:"M"+w+","+c+"H"+b),k.attr("opacity",1).attr("transform",function(D){return h(v(D)+c)}),A.attr(u+"2",l*o),E.attr(u,l*g).text(p),_.filter(zv).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===ns?"start":t===co?"end":"middle"),_.each(function(){this.__axis=v})}return f.scale=function(d){return arguments.length?(e=d,f):e},f.ticks=function(){return n=Array.from(arguments),f},f.tickArguments=function(d){return arguments.length?(n=d==null?[]:Array.from(d),f):n.slice()},f.tickValues=function(d){return arguments.length?(r=d==null?null:Array.from(d),f):r&&r.slice()},f.tickFormat=function(d){return arguments.length?(i=d,f):i},f.tickSize=function(d){return arguments.length?(o=a=+d,f):o},f.tickSizeInner=function(d){return arguments.length?(o=+d,f):o},f.tickSizeOuter=function(d){return arguments.length?(a=+d,f):a},f.tickPadding=function(d){return arguments.length?(s=+d,f):s},f.offset=function(d){return arguments.length?(c=+d,f):c},f}function Nv(t){return rs(es,t)}function Rv(t){return rs(ns,t)}function Pv(t){return rs(Nc,t)}function Iv(t){return rs(co,t)}var Lv={value:()=>{}};function Ye(){for(var t=0,e=arguments.length,n={},r;t<e;++t){if(!(r=arguments[t]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new is(n)}function is(t){this._=t}function qv(t,e){return t.trim().split(/^|\s+/).map(function(n){var r="",i=n.indexOf(".");if(i>=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}is.prototype=Ye.prototype={constructor:is,on:function(t,e){var n=this._,r=qv(t+"",n),i,o=-1,a=r.length;if(arguments.length<2){for(;++o<a;)if((i=(t=r[o]).type)&&(i=Yv(n[i],t.name)))return i;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++o<a;)if(i=(t=r[o]).type)n[i]=t0(n[i],t.name,e);else if(e==null)for(i in n)n[i]=t0(n[i],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new is(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var n=new Array(i),r=0,i,o;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=this._[t],r=0,i=o.length;r<i;++r)o[r].value.apply(e,n)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(e,n)}};function Yv(t,e){for(var n=0,r=t.length,i;n<r;++n)if((i=t[n]).name===e)return i.value}function t0(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=Lv,t=t.slice(0,r).concat(t.slice(r+1));break}return n!=null&&t.push({name:e,value:n}),t}var Rc="http://www.w3.org/1999/xhtml",Pc={svg:"http://www.w3.org/2000/svg",xhtml:Rc,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function li(t){var e=t+="",n=e.indexOf(":");return n>=0&&(e=t.slice(0,n))!=="xmlns"&&(t=t.slice(n+1)),Pc.hasOwnProperty(e)?{space:Pc[e],local:t}:t}function Uv(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===Rc&&e.documentElement.namespaceURI===Rc?e.createElement(t):e.createElementNS(n,t)}}function Hv(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function as(t){var e=li(t);return(e.local?Hv:Uv)(e)}function Wv(){}function uo(t){return t==null?Wv:function(){return this.querySelector(t)}}function jv(t){typeof t!="function"&&(t=uo(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var o=e[i],a=o.length,s=r[i]=new Array(a),c,l,u=0;u<a;++u)(c=o[u])&&(l=t.call(c,c.__data__,u,o))&&("__data__"in c&&(l.__data__=c.__data__),s[u]=l);return new ye(r,this._parents)}function e0(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function Xv(){return[]}function ss(t){return t==null?Xv:function(){return this.querySelectorAll(t)}}function Gv(t){return function(){return e0(t.apply(this,arguments))}}function Vv(t){typeof t=="function"?t=Gv(t):t=ss(t);for(var e=this._groups,n=e.length,r=[],i=[],o=0;o<n;++o)for(var a=e[o],s=a.length,c,l=0;l<s;++l)(c=a[l])&&(r.push(t.call(c,c.__data__,l,a)),i.push(c));return new ye(r,i)}function ls(t){return function(){return this.matches(t)}}function n0(t){return function(e){return e.matches(t)}}var Zv=Array.prototype.find;function Kv(t){return function(){return Zv.call(this.children,t)}}function Qv(){return this.firstElementChild}function Jv(t){return this.select(t==null?Qv:Kv(typeof t=="function"?t:n0(t)))}var tw=Array.prototype.filter;function ew(){return Array.from(this.children)}function nw(t){return function(){return tw.call(this.children,t)}}function rw(t){return this.selectAll(t==null?ew:nw(typeof t=="function"?t:n0(t)))}function iw(t){typeof t!="function"&&(t=ls(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var o=e[i],a=o.length,s=r[i]=[],c,l=0;l<a;++l)(c=o[l])&&t.call(c,c.__data__,l,o)&&s.push(c);return new ye(r,this._parents)}function r0(t){return new Array(t.length)}function ow(){return new ye(this._enter||this._groups.map(r0),this._parents)}function os(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}os.prototype={constructor:os,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function aw(t){return function(){return t}}function sw(t,e,n,r,i,o){for(var a=0,s,c=e.length,l=o.length;a<l;++a)(s=e[a])?(s.__data__=o[a],r[a]=s):n[a]=new os(t,o[a]);for(;a<c;++a)(s=e[a])&&(i[a]=s)}function lw(t,e,n,r,i,o,a){var s,c,l=new Map,u=e.length,h=o.length,f=new Array(u),d;for(s=0;s<u;++s)(c=e[s])&&(f[s]=d=a.call(c,c.__data__,s,e)+"",l.has(d)?i[s]=c:l.set(d,c));for(s=0;s<h;++s)d=a.call(t,o[s],s,o)+"",(c=l.get(d))?(r[s]=c,c.__data__=o[s],l.delete(d)):n[s]=new os(t,o[s]);for(s=0;s<u;++s)(c=e[s])&&l.get(f[s])===c&&(i[s]=c)}function cw(t){return t.__data__}function uw(t,e){if(!arguments.length)return Array.from(this,cw);var n=e?lw:sw,r=this._parents,i=this._groups;typeof t!="function"&&(t=aw(t));for(var o=i.length,a=new Array(o),s=new Array(o),c=new Array(o),l=0;l<o;++l){var u=r[l],h=i[l],f=h.length,d=fw(t.call(u,u&&u.__data__,l,r)),m=d.length,p=s[l]=new Array(m),g=a[l]=new Array(m),y=c[l]=new Array(f);n(u,h,p,g,y,d,e);for(var w=0,b=0,v,_;w<m;++w)if(v=p[w]){for(w>=b&&(b=w+1);!(_=g[b])&&++b<m;);v._next=_||null}}return a=new ye(a,r),a._enter=s,a._exit=c,a}function fw(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function hw(){return new ye(this._exit||this._groups.map(r0),this._parents)}function dw(t,e,n){var r=this.enter(),i=this,o=this.exit();return typeof t=="function"?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),e!=null&&(i=e(i),i&&(i=i.selection())),n==null?o.remove():n(o),r&&i?r.merge(i).order():i}function pw(t){for(var e=t.selection?t.selection():t,n=this._groups,r=e._groups,i=n.length,o=r.length,a=Math.min(i,o),s=new Array(i),c=0;c<a;++c)for(var l=n[c],u=r[c],h=l.length,f=s[c]=new Array(h),d,m=0;m<h;++m)(d=l[m]||u[m])&&(f[m]=d);for(;c<i;++c)s[c]=n[c];return new ye(s,this._parents)}function gw(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r=t[e],i=r.length-1,o=r[i],a;--i>=0;)(a=r[i])&&(o&&a.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(a,o),o=a);return this}function mw(t){t||(t=yw);function e(h,f){return h&&f?t(h.__data__,f.__data__):!h-!f}for(var n=this._groups,r=n.length,i=new Array(r),o=0;o<r;++o){for(var a=n[o],s=a.length,c=i[o]=new Array(s),l,u=0;u<s;++u)(l=a[u])&&(c[u]=l);c.sort(e)}return new ye(i,this._parents).order()}function yw(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function bw(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function vw(){return Array.from(this)}function ww(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null}function xw(){let t=0;for(let e of this)++t;return t}function _w(){return!this.node()}function Sw(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i=e[n],o=0,a=i.length,s;o<a;++o)(s=i[o])&&t.call(s,s.__data__,o,i);return this}function kw(t){return function(){this.removeAttribute(t)}}function Aw(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Ew(t,e){return function(){this.setAttribute(t,e)}}function Mw(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function Cw(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttribute(t):this.setAttribute(t,n)}}function Fw(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function Tw(t,e){var n=li(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((e==null?n.local?Aw:kw:typeof e=="function"?n.local?Fw:Cw:n.local?Mw:Ew)(n,e))}function Lc(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Ow(t){return function(){this.style.removeProperty(t)}}function Bw(t,e,n){return function(){this.style.setProperty(t,e,n)}}function Dw(t,e,n){return function(){var r=e.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function $w(t,e,n){return arguments.length>1?this.each((e==null?Ow:typeof e=="function"?Dw:Bw)(t,e,n??"")):rr(this.node(),t)}function rr(t,e){return t.style.getPropertyValue(e)||Lc(t).getComputedStyle(t,null).getPropertyValue(e)}function zw(t){return function(){delete this[t]}}function Nw(t,e){return function(){this[t]=e}}function Rw(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function Pw(t,e){return arguments.length>1?this.each((e==null?zw:typeof e=="function"?Rw:Nw)(t,e)):this.node()[t]}function i0(t){return t.trim().split(/^|\s+/)}function qc(t){return t.classList||new o0(t)}function o0(t){this._node=t,this._names=i0(t.getAttribute("class")||"")}o0.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function a0(t,e){for(var n=qc(t),r=-1,i=e.length;++r<i;)n.add(e[r])}function s0(t,e){for(var n=qc(t),r=-1,i=e.length;++r<i;)n.remove(e[r])}function Iw(t){return function(){a0(this,t)}}function Lw(t){return function(){s0(this,t)}}function qw(t,e){return function(){(e.apply(this,arguments)?a0:s0)(this,t)}}function Yw(t,e){var n=i0(t+"");if(arguments.length<2){for(var r=qc(this.node()),i=-1,o=n.length;++i<o;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof e=="function"?qw:e?Iw:Lw)(n,e))}function Uw(){this.textContent=""}function Hw(t){return function(){this.textContent=t}}function Ww(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function jw(t){return arguments.length?this.each(t==null?Uw:(typeof t=="function"?Ww:Hw)(t)):this.node().textContent}function Xw(){this.innerHTML=""}function Gw(t){return function(){this.innerHTML=t}}function Vw(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function Zw(t){return arguments.length?this.each(t==null?Xw:(typeof t=="function"?Vw:Gw)(t)):this.node().innerHTML}function Kw(){this.nextSibling&&this.parentNode.appendChild(this)}function Qw(){return this.each(Kw)}function Jw(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function tx(){return this.each(Jw)}function ex(t){var e=typeof t=="function"?t:as(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function nx(){return null}function rx(t,e){var n=typeof t=="function"?t:as(t),r=e==null?nx:typeof e=="function"?e:uo(e);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function ix(){var t=this.parentNode;t&&t.removeChild(this)}function ox(){return this.each(ix)}function ax(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function sx(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function lx(t){return this.select(t?sx:ax)}function cx(t){return arguments.length?this.property("__data__",t):this.node().__data__}function ux(t){return function(e){t.call(this,e,this.__data__)}}function fx(t){return t.trim().split(/^|\s+/).map(function(e){var n="",r=e.indexOf(".");return r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),{type:e,name:n}})}function hx(t){return function(){var e=this.__on;if(e){for(var n=0,r=-1,i=e.length,o;n<i;++n)o=e[n],(!t.type||o.type===t.type)&&o.name===t.name?this.removeEventListener(o.type,o.listener,o.options):e[++r]=o;++r?e.length=r:delete this.__on}}}function dx(t,e,n){return function(){var r=this.__on,i,o=ux(e);if(r){for(var a=0,s=r.length;a<s;++a)if((i=r[a]).type===t.type&&i.name===t.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=o,i.options=n),i.value=e;return}}this.addEventListener(t.type,o,n),i={type:t.type,name:t.name,value:e,listener:o,options:n},r?r.push(i):this.__on=[i]}}function px(t,e,n){var r=fx(t+""),i,o=r.length,a;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<o;++i)if((a=r[i]).type===u.type&&a.name===u.name)return u.value}return}for(s=e?dx:hx,i=0;i<o;++i)this.each(s(r[i],e,n));return this}function l0(t,e,n){var r=Lc(t),i=r.CustomEvent;typeof i=="function"?i=new i(e,n):(i=r.document.createEvent("Event"),n?(i.initEvent(e,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function gx(t,e){return function(){return l0(this,t,e)}}function mx(t,e){return function(){return l0(this,t,e.apply(this,arguments))}}function yx(t,e){return this.each((typeof e=="function"?mx:gx)(t,e))}function*bx(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,o=r.length,a;i<o;++i)(a=r[i])&&(yield a)}var Yc=[null];function ye(t,e){this._groups=t,this._parents=e}function ir(){return new ye([[document.documentElement]],Yc)}function vx(){return this}ye.prototype=ir.prototype={constructor:ye,select:jv,selectAll:Vv,selectChild:Jv,selectChildren:rw,filter:iw,data:uw,enter:ow,exit:hw,join:dw,merge:pw,selection:vx,order:gw,sort:mw,call:bw,nodes:vw,node:ww,size:xw,empty:_w,each:Sw,attr:Tw,style:$w,property:Pw,classed:Yw,text:jw,html:Zw,raise:Qw,lower:tx,append:ex,insert:rx,remove:ox,clone:lx,datum:cx,on:px,dispatch:yx,[Symbol.iterator]:bx};function Xt(t){return typeof t=="string"?new ye([[document.querySelector(t)]],[document.documentElement]):new ye([[t]],Yc)}function wx(t){return Xt(as(t).call(document.documentElement))}var xx=0;function c0(){return new Ic}function Ic(){this._="@"+(++xx).toString(36)}Ic.prototype=c0.prototype={constructor:Ic,get:function(t){for(var e=this._;!(e in t);)if(!(t=t.parentNode))return;return t[e]},set:function(t,e){return t[this._]=e},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}};function u0(t){let e;for(;e=t.sourceEvent;)t=e;return t}function le(t,e){if(t=u0(t),e===void 0&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,r=r.matrixTransform(e.getScreenCTM().inverse()),[r.x,r.y]}if(e.getBoundingClientRect){var i=e.getBoundingClientRect();return[t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop]}}return[t.pageX,t.pageY]}function _x(t,e){return t.target&&(t=u0(t),e===void 0&&(e=t.currentTarget),t=t.touches||[t]),Array.from(t,n=>le(n,e))}function Sx(t){return typeof t=="string"?new ye([document.querySelectorAll(t)],[document.documentElement]):new ye([e0(t)],Yc)}var kx={passive:!1},fo={capture:!0,passive:!1};function Uc(t){t.stopImmediatePropagation()}function ci(t){t.preventDefault(),t.stopImmediatePropagation()}function ui(t){var e=t.document.documentElement,n=Xt(t).on("dragstart.drag",ci,fo);"onselectstart"in e?n.on("selectstart.drag",ci,fo):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function fi(t,e){var n=t.document.documentElement,r=Xt(t).on("dragstart.drag",null);e&&(r.on("click.drag",ci,fo),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var cs=t=>()=>t;function Hc(t,{sourceEvent:e,subject:n,target:r,identifier:i,active:o,x:a,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}Hc.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function Ax(t){return!t.ctrlKey&&!t.button}function Ex(){return this.parentNode}function Mx(t,e){return e??{x:t.x,y:t.y}}function Cx(){return navigator.maxTouchPoints||"ontouchstart"in this}function Fx(){var t=Ax,e=Ex,n=Mx,r=Cx,i={},o=Ye("start","drag","end"),a=0,s,c,l,u,h=0;function f(v){v.on("mousedown.drag",d).filter(r).on("touchstart.drag",g).on("touchmove.drag",y,kx).on("touchend.drag touchcancel.drag",w).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function d(v,_){if(!(u||!t.call(this,v,_))){var S=b(this,e.call(this,v,_),v,_,"mouse");S&&(Xt(v.view).on("mousemove.drag",m,fo).on("mouseup.drag",p,fo),ui(v.view),Uc(v),l=!1,s=v.clientX,c=v.clientY,S("start",v))}}function m(v){if(ci(v),!l){var _=v.clientX-s,S=v.clientY-c;l=_*_+S*S>h}i.mouse("drag",v)}function p(v){Xt(v.view).on("mousemove.drag mouseup.drag",null),fi(v.view,l),ci(v),i.mouse("end",v)}function g(v,_){if(t.call(this,v,_)){var S=v.changedTouches,k=e.call(this,v,_),C=S.length,F,A;for(F=0;F<C;++F)(A=b(this,k,v,_,S[F].identifier,S[F]))&&(Uc(v),A("start",v,S[F]))}}function y(v){var _=v.changedTouches,S=_.length,k,C;for(k=0;k<S;++k)(C=i[_[k].identifier])&&(ci(v),C("drag",v,_[k]))}function w(v){var _=v.changedTouches,S=_.length,k,C;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),k=0;k<S;++k)(C=i[_[k].identifier])&&(Uc(v),C("end",v,_[k]))}function b(v,_,S,k,C,F){var A=o.copy(),E=le(F||S,_),D,$,M;if((M=n.call(v,new Hc("beforestart",{sourceEvent:S,target:f,identifier:C,active:a,x:E[0],y:E[1],dx:0,dy:0,dispatch:A}),k))!=null)return D=M.x-E[0]||0,$=M.y-E[1]||0,function T(B,N,L){var q=E,U;switch(B){case"start":i[C]=T,U=a++;break;case"end":delete i[C],--a;case"drag":E=le(L||N,_),U=a;break}A.call(B,v,new Hc(B,{sourceEvent:N,subject:M,target:f,identifier:C,active:U,x:E[0]+D,y:E[1]+$,dx:E[0]-q[0],dy:E[1]-q[1],dispatch:A}),k)}}return f.filter=function(v){return arguments.length?(t=typeof v=="function"?v:cs(!!v),f):t},f.container=function(v){return arguments.length?(e=typeof v=="function"?v:cs(v),f):e},f.subject=function(v){return arguments.length?(n=typeof v=="function"?v:cs(v),f):n},f.touchable=function(v){return arguments.length?(r=typeof v=="function"?v:cs(!!v),f):r},f.on=function(){var v=o.on.apply(o,arguments);return v===o?f:v},f.clickDistance=function(v){return arguments.length?(h=(v=+v)*v,f):Math.sqrt(h)},f}function gi(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function go(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function or(){}var Mr=.7,pi=1/Mr,hi="\\s*([+-]?\\d+)\\s*",ho="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",gn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Tx=/^#([0-9a-f]{3,8})$/,Ox=new RegExp(`^rgb\\(${hi},${hi},${hi}\\)$`),Bx=new RegExp(`^rgb\\(${gn},${gn},${gn}\\)$`),Dx=new RegExp(`^rgba\\(${hi},${hi},${hi},${ho}\\)$`),$x=new RegExp(`^rgba\\(${gn},${gn},${gn},${ho}\\)$`),zx=new RegExp(`^hsl\\(${ho},${gn},${gn}\\)$`),Nx=new RegExp(`^hsla\\(${ho},${gn},${gn},${ho}\\)$`),f0={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};gi(or,mn,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:h0,formatHex:h0,formatHex8:Rx,formatHsl:Px,formatRgb:d0,toString:d0});function h0(){return this.rgb().formatHex()}function Rx(){return this.rgb().formatHex8()}function Px(){return _0(this).formatHsl()}function d0(){return this.rgb().formatRgb()}function mn(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=Tx.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?p0(e):n===3?new Kt(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?us(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?us(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=Ox.exec(t))?new Kt(e[1],e[2],e[3],1):(e=Bx.exec(t))?new Kt(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=Dx.exec(t))?us(e[1],e[2],e[3],e[4]):(e=$x.exec(t))?us(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=zx.exec(t))?y0(e[1],e[2]/100,e[3]/100,1):(e=Nx.exec(t))?y0(e[1],e[2]/100,e[3]/100,e[4]):f0.hasOwnProperty(t)?p0(f0[t]):t==="transparent"?new Kt(NaN,NaN,NaN,0):null}function p0(t){return new Kt(t>>16&255,t>>8&255,t&255,1)}function us(t,e,n,r){return r<=0&&(t=e=n=NaN),new Kt(t,e,n,r)}function Zc(t){return t instanceof or||(t=mn(t)),t?(t=t.rgb(),new Kt(t.r,t.g,t.b,t.opacity)):new Kt}function ar(t,e,n,r){return arguments.length===1?Zc(t):new Kt(t,e,n,r??1)}function Kt(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}gi(Kt,ar,go(or,{brighter(t){return t=t==null?pi:Math.pow(pi,t),new Kt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Mr:Math.pow(Mr,t),new Kt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Kt(Ar(this.r),Ar(this.g),Ar(this.b),hs(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:g0,formatHex:g0,formatHex8:Ix,formatRgb:m0,toString:m0}));function g0(){return`#${kr(this.r)}${kr(this.g)}${kr(this.b)}`}function Ix(){return`#${kr(this.r)}${kr(this.g)}${kr(this.b)}${kr((isNaN(this.opacity)?1:this.opacity)*255)}`}function m0(){let t=hs(this.opacity);return`${t===1?"rgb(":"rgba("}${Ar(this.r)}, ${Ar(this.g)}, ${Ar(this.b)}${t===1?")":`, ${t})`}`}function hs(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Ar(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function kr(t){return t=Ar(t),(t<16?"0":"")+t.toString(16)}function y0(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new an(t,e,n,r)}function _0(t){if(t instanceof an)return new an(t.h,t.s,t.l,t.opacity);if(t instanceof or||(t=mn(t)),!t)return new an;if(t instanceof an)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),o=Math.max(e,n,r),a=NaN,s=o-i,c=(o+i)/2;return s?(e===o?a=(n-r)/s+(n<r)*6:n===o?a=(r-e)/s+2:a=(e-n)/s+4,s/=c<.5?o+i:2-o-i,a*=60):s=c>0&&c<1?0:a,new an(a,s,c,t.opacity)}function mo(t,e,n,r){return arguments.length===1?_0(t):new an(t,e,n,r??1)}function an(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}gi(an,mo,go(or,{brighter(t){return t=t==null?pi:Math.pow(pi,t),new an(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Mr:Math.pow(Mr,t),new an(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new Kt(Wc(t>=240?t-240:t+120,i,r),Wc(t,i,r),Wc(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new an(b0(this.h),fs(this.s),fs(this.l),hs(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let t=hs(this.opacity);return`${t===1?"hsl(":"hsla("}${b0(this.h)}, ${fs(this.s)*100}%, ${fs(this.l)*100}%${t===1?")":`, ${t})`}`}}));function b0(t){return t=(t||0)%360,t<0?t+360:t}function fs(t){return Math.max(0,Math.min(1,t||0))}function Wc(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}var S0=Math.PI/180,k0=180/Math.PI,ds=18,A0=.96422,E0=1,M0=.82521,C0=4/29,di=6/29,F0=3*di*di,Lx=di*di*di;function T0(t){if(t instanceof sn)return new sn(t.l,t.a,t.b,t.opacity);if(t instanceof pn)return B0(t);t instanceof Kt||(t=Zc(t));var e=Vc(t.r),n=Vc(t.g),r=Vc(t.b),i=jc((.2225045*e+.7168786*n+.0606169*r)/E0),o,a;return e===n&&n===r?o=a=i:(o=jc((.4360747*e+.3850649*n+.1430804*r)/A0),a=jc((.0139322*e+.0971045*n+.7141733*r)/M0)),new sn(116*i-16,500*(o-i),200*(i-a),t.opacity)}function qx(t,e){return new sn(t,0,0,e??1)}function yo(t,e,n,r){return arguments.length===1?T0(t):new sn(t,e,n,r??1)}function sn(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}gi(sn,yo,go(or,{brighter(t){return new sn(this.l+ds*(t??1),this.a,this.b,this.opacity)},darker(t){return new sn(this.l-ds*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=A0*Xc(e),t=E0*Xc(t),n=M0*Xc(n),new Kt(Gc(3.1338561*e-1.6168667*t-.4906146*n),Gc(-.9787684*e+1.9161415*t+.033454*n),Gc(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function jc(t){return t>Lx?Math.pow(t,1/3):t/F0+C0}function Xc(t){return t>di?t*t*t:F0*(t-C0)}function Gc(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Vc(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function O0(t){if(t instanceof pn)return new pn(t.h,t.c,t.l,t.opacity);if(t instanceof sn||(t=T0(t)),t.a===0&&t.b===0)return new pn(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*k0;return new pn(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function Yx(t,e,n,r){return arguments.length===1?O0(t):new pn(n,e,t,r??1)}function bo(t,e,n,r){return arguments.length===1?O0(t):new pn(t,e,n,r??1)}function pn(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}function B0(t){if(isNaN(t.h))return new sn(t.l,0,0,t.opacity);var e=t.h*S0;return new sn(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}gi(pn,bo,go(or,{brighter(t){return new pn(this.h,this.c,this.l+ds*(t??1),this.opacity)},darker(t){return new pn(this.h,this.c,this.l-ds*(t??1),this.opacity)},rgb(){return B0(this).rgb()}}));var D0=-.14861,Kc=1.78277,Qc=-.29227,ps=-.90649,po=1.97294,v0=po*ps,w0=po*Kc,x0=Kc*Qc-ps*D0;function Ux(t){if(t instanceof Er)return new Er(t.h,t.s,t.l,t.opacity);t instanceof Kt||(t=Zc(t));var e=t.r/255,n=t.g/255,r=t.b/255,i=(x0*r+v0*e-w0*n)/(x0+v0-w0),o=r-i,a=(po*(n-i)-Qc*o)/ps,s=Math.sqrt(a*a+o*o)/(po*i*(1-i)),c=s?Math.atan2(a,o)*k0-120:NaN;return new Er(c<0?c+360:c,s,i,t.opacity)}function Re(t,e,n,r){return arguments.length===1?Ux(t):new Er(t,e,n,r??1)}function Er(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}gi(Er,Re,go(or,{brighter(t){return t=t==null?pi:Math.pow(pi,t),new Er(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Mr:Math.pow(Mr,t),new Er(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*S0,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new Kt(255*(e+n*(D0*r+Kc*i)),255*(e+n*(Qc*r+ps*i)),255*(e+n*(po*r)),this.opacity)}}));function N0(t,e,n,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*n+(1+3*t+3*o-3*a)*r+a*i)/6}function R0(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,s=r<e-1?t[r+2]:2*o-i;return N0((n-r/e)*e,a,i,o,s)}}function P0(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],o=t[r%e],a=t[(r+1)%e],s=t[(r+2)%e];return N0((n-r/e)*e,i,o,a,s)}}var ms=t=>()=>t;function I0(t,e){return function(n){return t+n*e}}function Hx(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function ys(t,e){var n=e-t;return n?I0(t,n>180||n<-180?n-360*Math.round(n/360):n):ms(isNaN(t)?e:t)}function Wx(t){return(t=+t)==1?Qt:function(e,n){return n-e?Hx(e,n,t):ms(isNaN(e)?n:e)}}function Qt(t,e){var n=e-t;return n?I0(t,n):ms(isNaN(t)?e:t)}var mi=(function t(e){var n=Wx(e);function r(i,o){var a=n((i=ar(i)).r,(o=ar(o)).r),s=n(i.g,o.g),c=n(i.b,o.b),l=Qt(i.opacity,o.opacity);return function(u){return i.r=a(u),i.g=s(u),i.b=c(u),i.opacity=l(u),i+""}}return r.gamma=t,r})(1);function L0(t){return function(e){var n=e.length,r=new Array(n),i=new Array(n),o=new Array(n),a,s;for(a=0;a<n;++a)s=ar(e[a]),r[a]=s.r||0,i[a]=s.g||0,o[a]=s.b||0;return r=t(r),i=t(i),o=t(o),s.opacity=1,function(c){return s.r=r(c),s.g=i(c),s.b=o(c),s+""}}}var nu=L0(R0),jx=L0(P0);function ru(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),i;return function(o){for(i=0;i<n;++i)r[i]=t[i]*(1-o)+e[i]*o;return r}}function q0(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Xx(t,e){return(q0(e)?ru:Y0)(t,e)}function Y0(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,i=new Array(r),o=new Array(n),a;for(a=0;a<r;++a)i[a]=yn(t[a],e[a]);for(;a<n;++a)o[a]=e[a];return function(s){for(a=0;a<r;++a)o[a]=i[a](s);return o}}function U0(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function Fe(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function H0(t,e){var n={},r={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?n[i]=yn(t[i],e[i]):r[i]=e[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var tu=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Jc=new RegExp(tu.source,"g");function Gx(t){return function(){return t}}function Vx(t){return function(e){return t(e)+""}}function bs(t,e){var n=tu.lastIndex=Jc.lastIndex=0,r,i,o,a=-1,s=[],c=[];for(t=t+"",e=e+"";(r=tu.exec(t))&&(i=Jc.exec(e));)(o=i.index)>n&&(o=e.slice(n,o),s[a]?s[a]+=o:s[++a]=o),(r=r[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,c.push({i:a,x:Fe(r,i)})),n=Jc.lastIndex;return n<e.length&&(o=e.slice(n),s[a]?s[a]+=o:s[++a]=o),s.length<2?c[0]?Vx(c[0].x):Gx(e):(e=c.length,function(l){for(var u=0,h;u<e;++u)s[(h=c[u]).i]=h.x(l);return s.join("")})}function yn(t,e){var n=typeof e,r;return e==null||n==="boolean"?ms(e):(n==="number"?Fe:n==="string"?(r=mn(e))?(e=r,mi):bs:e instanceof mn?mi:e instanceof Date?U0:q0(e)?ru:Array.isArray(e)?Y0:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?H0:Fe)(t,e)}function Zx(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}function Kx(t,e){var n=ys(+t,+e);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function vo(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var $0=180/Math.PI,eu={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function W0(t,e,n,r,i,o){var a,s,c;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(c=t*n+e*r)&&(n-=t*c,r-=e*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),t*r<e*n&&(t=-t,e=-e,c=-c,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(e,t)*$0,skewX:Math.atan(c)*$0,scaleX:a,scaleY:s}}var gs;function Qx(t){let e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?eu:W0(e.a,e.b,e.c,e.d,e.e,e.f)}function Jx(t){return t==null||(gs||(gs=document.createElementNS("http://www.w3.org/2000/svg","g")),gs.setAttribute("transform",t),!(t=gs.transform.baseVal.consolidate()))?eu:(t=t.matrix,W0(t.a,t.b,t.c,t.d,t.e,t.f))}function j0(t,e,n,r){function i(l){return l.length?l.pop()+" ":""}function o(l,u,h,f,d,m){if(l!==h||u!==f){var p=d.push("translate(",null,e,null,n);m.push({i:p-4,x:Fe(l,h)},{i:p-2,x:Fe(u,f)})}else(h||f)&&d.push("translate("+h+e+f+n)}function a(l,u,h,f){l!==u?(l-u>180?u+=360:u-l>180&&(l+=360),f.push({i:h.push(i(h)+"rotate(",null,r)-2,x:Fe(l,u)})):u&&h.push(i(h)+"rotate("+u+r)}function s(l,u,h,f){l!==u?f.push({i:h.push(i(h)+"skewX(",null,r)-2,x:Fe(l,u)}):u&&h.push(i(h)+"skewX("+u+r)}function c(l,u,h,f,d,m){if(l!==h||u!==f){var p=d.push(i(d)+"scale(",null,",",null,")");m.push({i:p-4,x:Fe(l,h)},{i:p-2,x:Fe(u,f)})}else(h!==1||f!==1)&&d.push(i(d)+"scale("+h+","+f+")")}return function(l,u){var h=[],f=[];return l=t(l),u=t(u),o(l.translateX,l.translateY,u.translateX,u.translateY,h,f),a(l.rotate,u.rotate,h,f),s(l.skewX,u.skewX,h,f),c(l.scaleX,l.scaleY,u.scaleX,u.scaleY,h,f),l=u=null,function(d){for(var m=-1,p=f.length,g;++m<p;)h[(g=f[m]).i]=g.x(d);return h.join("")}}}var iu=j0(Qx,"px, ","px)","deg)"),ou=j0(Jx,", ",")",")"),t3=1e-12;function z0(t){return((t=Math.exp(t))+1/t)/2}function e3(t){return((t=Math.exp(t))-1/t)/2}function n3(t){return((t=Math.exp(2*t))-1)/(t+1)}var au=(function t(e,n,r){function i(o,a){var s=o[0],c=o[1],l=o[2],u=a[0],h=a[1],f=a[2],d=u-s,m=h-c,p=d*d+m*m,g,y;if(p<t3)y=Math.log(f/l)/e,g=function(k){return[s+k*d,c+k*m,l*Math.exp(e*k*y)]};else{var w=Math.sqrt(p),b=(f*f-l*l+r*p)/(2*l*n*w),v=(f*f-l*l-r*p)/(2*f*n*w),_=Math.log(Math.sqrt(b*b+1)-b),S=Math.log(Math.sqrt(v*v+1)-v);y=(S-_)/e,g=function(k){var C=k*y,F=z0(_),A=l/(n*w)*(F*n3(e*C+_)-e3(_));return[s+A*d,c+A*m,l*F/z0(e*C+_)]}}return g.duration=Math.abs(y)*1e3*e/Math.SQRT2,g}return i.rho=function(o){var a=Math.max(.001,+o),s=a*a,c=s*s;return t(a,s,c)},i})(Math.SQRT2,2,4);function X0(t){return function(e,n){var r=t((e=mo(e)).h,(n=mo(n)).h),i=Qt(e.s,n.s),o=Qt(e.l,n.l),a=Qt(e.opacity,n.opacity);return function(s){return e.h=r(s),e.s=i(s),e.l=o(s),e.opacity=a(s),e+""}}}var r3=X0(ys),i3=X0(Qt);function o3(t,e){var n=Qt((t=yo(t)).l,(e=yo(e)).l),r=Qt(t.a,e.a),i=Qt(t.b,e.b),o=Qt(t.opacity,e.opacity);return function(a){return t.l=n(a),t.a=r(a),t.b=i(a),t.opacity=o(a),t+""}}function G0(t){return function(e,n){var r=t((e=bo(e)).h,(n=bo(n)).h),i=Qt(e.c,n.c),o=Qt(e.l,n.l),a=Qt(e.opacity,n.opacity);return function(s){return e.h=r(s),e.c=i(s),e.l=o(s),e.opacity=a(s),e+""}}}var a3=G0(ys),s3=G0(Qt);function V0(t){return(function e(n){n=+n;function r(i,o){var a=t((i=Re(i)).h,(o=Re(o)).h),s=Qt(i.s,o.s),c=Qt(i.l,o.l),l=Qt(i.opacity,o.opacity);return function(u){return i.h=a(u),i.s=s(u),i.l=c(Math.pow(u,n)),i.opacity=l(u),i+""}}return r.gamma=e,r})(1)}var l3=V0(ys),wo=V0(Qt);function su(t,e){e===void 0&&(e=t,t=yn);for(var n=0,r=e.length-1,i=e[0],o=new Array(r<0?0:r);n<r;)o[n]=t(i,i=e[++n]);return function(a){var s=Math.max(0,Math.min(r-1,Math.floor(a*=r)));return o[s](a-s)}}function c3(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t(r/(e-1));return n}var yi=0,_o=0,xo=0,K0=1e3,vs,So,ws=0,Cr=0,xs=0,ko=typeof performance=="object"&&performance.now?performance:Date,Q0=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function bi(){return Cr||(Q0(u3),Cr=ko.now()+xs)}function u3(){Cr=0}function Ao(){this._call=this._time=this._next=null}Ao.prototype=vi.prototype={constructor:Ao,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?bi():+n)+(e==null?0:+e),!this._next&&So!==this&&(So?So._next=this:vs=this,So=this),this._call=t,this._time=n,lu()},stop:function(){this._call&&(this._call=null,this._time=1/0,lu())}};function vi(t,e,n){var r=new Ao;return r.restart(t,e,n),r}function J0(){bi(),++yi;for(var t=vs,e;t;)(e=Cr-t._time)>=0&&t._call.call(void 0,e),t=t._next;--yi}function Z0(){Cr=(ws=ko.now())+xs,yi=_o=0;try{J0()}finally{yi=0,h3(),Cr=0}}function f3(){var t=ko.now(),e=t-ws;e>K0&&(xs-=e,ws=t)}function h3(){for(var t,e=vs,n,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:vs=n);So=t,lu(r)}function lu(t){if(!yi){_o&&(_o=clearTimeout(_o));var e=t-Cr;e>24?(t<1/0&&(_o=setTimeout(Z0,Math.ceil(t-ko.now()-xs)+1)),xo&&(xo=clearInterval(xo))):(xo||(ws=ko.now(),xo=setInterval(f3,K0)),yi=1,Q0(Z0))}}function _s(t,e,n){var r=new Ao;return e=e==null?0:+e,r.restart(i=>{r.stop(),t(i+e)},e,n),r}function d3(t,e,n){var r=new Ao,i=e;return e==null?(r.restart(t,e,n),r):(r._restart=r.restart,r.restart=function(o,a,s){a=+a,s=s==null?bi():+s,r._restart(function c(l){l+=i,r._restart(c,i+=a,s),o(l)},a,s)},r.restart(t,e,n),r)}var p3=t=>+t;function g3(t){return t*t}function m3(t){return t*(2-t)}function y3(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function b3(t){return t*t*t}function v3(t){return--t*t*t+1}function uu(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var fu=3,w3=(function t(e){e=+e;function n(r){return Math.pow(r,e)}return n.exponent=t,n})(fu),x3=(function t(e){e=+e;function n(r){return 1-Math.pow(1-r,e)}return n.exponent=t,n})(fu),_3=(function t(e){e=+e;function n(r){return((r*=2)<=1?Math.pow(r,e):2-Math.pow(2-r,e))/2}return n.exponent=t,n})(fu),tp=Math.PI,ep=tp/2;function S3(t){return+t==1?1:1-Math.cos(t*ep)}function k3(t){return Math.sin(t*ep)}function A3(t){return(1-Math.cos(tp*t))/2}function sr(t){return(Math.pow(2,-10*t)-.0009765625)*1.0009775171065494}function E3(t){return sr(1-+t)}function M3(t){return 1-sr(t)}function C3(t){return((t*=2)<=1?sr(1-t):2-sr(t-1))/2}function F3(t){return 1-Math.sqrt(1-t*t)}function T3(t){return Math.sqrt(1- --t*t)}function O3(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}var cu=4/11,B3=6/11,D3=8/11,$3=3/4,z3=9/11,N3=10/11,R3=15/16,P3=21/22,I3=63/64,Ss=1/cu/cu;function L3(t){return 1-ks(1-t)}function ks(t){return(t=+t)<cu?Ss*t*t:t<D3?Ss*(t-=B3)*t+$3:t<N3?Ss*(t-=z3)*t+R3:Ss*(t-=P3)*t+I3}function q3(t){return((t*=2)<=1?1-ks(1-t):ks(t-1)+1)/2}var hu=1.70158,Y3=(function t(e){e=+e;function n(r){return(r=+r)*r*(e*(r-1)+r)}return n.overshoot=t,n})(hu),U3=(function t(e){e=+e;function n(r){return--r*r*((r+1)*e+r)+1}return n.overshoot=t,n})(hu),H3=(function t(e){e=+e;function n(r){return((r*=2)<1?r*r*((e+1)*r-e):(r-=2)*r*((e+1)*r+e)+2)/2}return n.overshoot=t,n})(hu),wi=2*Math.PI,du=1,pu=.3,W3=(function t(e,n){var r=Math.asin(1/(e=Math.max(1,e)))*(n/=wi);function i(o){return e*sr(- --o)*Math.sin((r-o)/n)}return i.amplitude=function(o){return t(o,n*wi)},i.period=function(o){return t(e,o)},i})(du,pu),j3=(function t(e,n){var r=Math.asin(1/(e=Math.max(1,e)))*(n/=wi);function i(o){return 1-e*sr(o=+o)*Math.sin((o+r)/n)}return i.amplitude=function(o){return t(o,n*wi)},i.period=function(o){return t(e,o)},i})(du,pu),X3=(function t(e,n){var r=Math.asin(1/(e=Math.max(1,e)))*(n/=wi);function i(o){return((o=o*2-1)<0?e*sr(-o)*Math.sin((r-o)/n):2-e*sr(o)*Math.sin((r+o)/n))/2}return i.amplitude=function(o){return t(o,n*wi)},i.period=function(o){return t(e,o)},i})(du,pu);var G3=Ye("start","end","cancel","interrupt"),V3=[],rp=0,gu=1,mu=2,As=3,np=4,yu=5,Es=6;function Ms(t,e,n,r,i,o){var a=t.__transition;if(!a)t.__transition={};else if(n in a)return;Z3(t,n,{name:e,index:r,group:i,on:G3,tween:V3,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:rp})}function bu(t,e){var n=ln(t,e);if(n.state>rp)throw new Error("too late; already scheduled");return n}function vn(t,e){var n=ln(t,e);if(n.state>As)throw new Error("too late; already running");return n}function ln(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function Z3(t,e,n){var r=t.__transition,i;r[e]=n,n.timer=vi(o,0,n.time);function o(l){n.state=gu,n.timer.restart(a,n.delay,n.time),n.delay<=l&&a(l-n.delay)}function a(l){var u,h,f,d;if(n.state!==gu)return c();for(u in r)if(d=r[u],d.name===n.name){if(d.state===As)return _s(a);d.state===np?(d.state=Es,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete r[u]):+u<e&&(d.state=Es,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete r[u])}if(_s(function(){n.state===As&&(n.state=np,n.timer.restart(s,n.delay,n.time),s(l))}),n.state=mu,n.on.call("start",t,t.__data__,n.index,n.group),n.state===mu){for(n.state=As,i=new Array(f=n.tween.length),u=0,h=-1;u<f;++u)(d=n.tween[u].value.call(t,t.__data__,n.index,n.group))&&(i[++h]=d);i.length=h+1}}function s(l){for(var u=l<n.duration?n.ease.call(null,l/n.duration):(n.timer.restart(c),n.state=yu,1),h=-1,f=i.length;++h<f;)i[h].call(t,u);n.state===yu&&(n.on.call("end",t,t.__data__,n.index,n.group),c())}function c(){n.state=Es,n.timer.stop(),delete r[e];for(var l in r)return;delete t.__transition}}function $n(t,e){var n=t.__transition,r,i,o=!0,a;if(n){e=e==null?null:e+"";for(a in n){if((r=n[a]).name!==e){o=!1;continue}i=r.state>mu&&r.state<yu,r.state=Es,r.timer.stop(),r.on.call(i?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete n[a]}o&&delete t.__transition}}function K3(t){return this.each(function(){$n(this,t)})}function Q3(t,e){var n,r;return function(){var i=vn(this,t),o=i.tween;if(o!==n){r=n=o;for(var a=0,s=r.length;a<s;++a)if(r[a].name===e){r=r.slice(),r.splice(a,1);break}}i.tween=r}}function J3(t,e,n){var r,i;if(typeof n!="function")throw new Error;return function(){var o=vn(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var s={name:e,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===e){i[c]=s;break}c===l&&i.push(s)}o.tween=i}}function t5(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r=ln(this.node(),n).tween,i=0,o=r.length,a;i<o;++i)if((a=r[i]).name===t)return a.value;return null}return this.each((e==null?Q3:J3)(n,t,e))}function vu(t,e,n){var r=t._id;return t.each(function(){var i=vn(this,r);(i.value||(i.value={}))[e]=n.apply(this,arguments)}),function(i){return ln(i,r).value[e]}}function ip(t,e){var n;return(typeof e=="number"?Fe:e instanceof mn?mi:(n=mn(e))?(e=n,mi):bs)(t,e)}function e5(t){return function(){this.removeAttribute(t)}}function n5(t){return function(){this.removeAttributeNS(t.space,t.local)}}function r5(t,e,n){var r,i=n+"",o;return function(){var a=this.getAttribute(t);return a===i?null:a===r?o:o=e(r=a,n)}}function i5(t,e,n){var r,i=n+"",o;return function(){var a=this.getAttributeNS(t.space,t.local);return a===i?null:a===r?o:o=e(r=a,n)}}function o5(t,e,n){var r,i,o;return function(){var a,s=n(this),c;return s==null?void this.removeAttribute(t):(a=this.getAttribute(t),c=s+"",a===c?null:a===r&&c===i?o:(i=c,o=e(r=a,s)))}}function a5(t,e,n){var r,i,o;return function(){var a,s=n(this),c;return s==null?void this.removeAttributeNS(t.space,t.local):(a=this.getAttributeNS(t.space,t.local),c=s+"",a===c?null:a===r&&c===i?o:(i=c,o=e(r=a,s)))}}function s5(t,e){var n=li(t),r=n==="transform"?ou:ip;return this.attrTween(t,typeof e=="function"?(n.local?a5:o5)(n,r,vu(this,"attr."+t,e)):e==null?(n.local?n5:e5)(n):(n.local?i5:r5)(n,r,e))}function l5(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function c5(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function u5(t,e){var n,r;function i(){var o=e.apply(this,arguments);return o!==r&&(n=(r=o)&&c5(t,o)),n}return i._value=e,i}function f5(t,e){var n,r;function i(){var o=e.apply(this,arguments);return o!==r&&(n=(r=o)&&l5(t,o)),n}return i._value=e,i}function h5(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;var r=li(t);return this.tween(n,(r.local?u5:f5)(r,e))}function d5(t,e){return function(){bu(this,t).delay=+e.apply(this,arguments)}}function p5(t,e){return e=+e,function(){bu(this,t).delay=e}}function g5(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?d5:p5)(e,t)):ln(this.node(),e).delay}function m5(t,e){return function(){vn(this,t).duration=+e.apply(this,arguments)}}function y5(t,e){return e=+e,function(){vn(this,t).duration=e}}function b5(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?m5:y5)(e,t)):ln(this.node(),e).duration}function v5(t,e){if(typeof e!="function")throw new Error;return function(){vn(this,t).ease=e}}function w5(t){var e=this._id;return arguments.length?this.each(v5(e,t)):ln(this.node(),e).ease}function x5(t,e){return function(){var n=e.apply(this,arguments);if(typeof n!="function")throw new Error;vn(this,t).ease=n}}function _5(t){if(typeof t!="function")throw new Error;return this.each(x5(this._id,t))}function S5(t){typeof t!="function"&&(t=ls(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var o=e[i],a=o.length,s=r[i]=[],c,l=0;l<a;++l)(c=o[l])&&t.call(c,c.__data__,l,o)&&s.push(c);return new bn(r,this._parents,this._name,this._id)}function k5(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,r=e.length,i=n.length,o=Math.min(r,i),a=new Array(r),s=0;s<o;++s)for(var c=e[s],l=n[s],u=c.length,h=a[s]=new Array(u),f,d=0;d<u;++d)(f=c[d]||l[d])&&(h[d]=f);for(;s<r;++s)a[s]=e[s];return new bn(a,this._parents,this._name,this._id)}function A5(t){return(t+"").trim().split(/^|\s+/).every(function(e){var n=e.indexOf(".");return n>=0&&(e=e.slice(0,n)),!e||e==="start"})}function E5(t,e,n){var r,i,o=A5(e)?bu:vn;return function(){var a=o(this,t),s=a.on;s!==r&&(i=(r=s).copy()).on(e,n),a.on=i}}function M5(t,e){var n=this._id;return arguments.length<2?ln(this.node(),n).on.on(t):this.each(E5(n,t,e))}function C5(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function F5(){return this.on("end.remove",C5(this._id))}function T5(t){var e=this._name,n=this._id;typeof t!="function"&&(t=uo(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a<i;++a)for(var s=r[a],c=s.length,l=o[a]=new Array(c),u,h,f=0;f<c;++f)(u=s[f])&&(h=t.call(u,u.__data__,f,s))&&("__data__"in u&&(h.__data__=u.__data__),l[f]=h,Ms(l[f],e,n,f,l,ln(u,n)));return new bn(o,this._parents,e,n)}function O5(t){var e=this._name,n=this._id;typeof t!="function"&&(t=ss(t));for(var r=this._groups,i=r.length,o=[],a=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,h=0;h<l;++h)if(u=c[h]){for(var f=t.call(u,u.__data__,h,c),d,m=ln(u,n),p=0,g=f.length;p<g;++p)(d=f[p])&&Ms(d,e,n,p,f,m);o.push(f),a.push(u)}return new bn(o,a,e,n)}var B5=ir.prototype.constructor;function D5(){return new B5(this._groups,this._parents)}function $5(t,e){var n,r,i;return function(){var o=rr(this,t),a=(this.style.removeProperty(t),rr(this,t));return o===a?null:o===n&&a===r?i:i=e(n=o,r=a)}}function op(t){return function(){this.style.removeProperty(t)}}function z5(t,e,n){var r,i=n+"",o;return function(){var a=rr(this,t);return a===i?null:a===r?o:o=e(r=a,n)}}function N5(t,e,n){var r,i,o;return function(){var a=rr(this,t),s=n(this),c=s+"";return s==null&&(c=s=(this.style.removeProperty(t),rr(this,t))),a===c?null:a===r&&c===i?o:(i=c,o=e(r=a,s))}}function R5(t,e){var n,r,i,o="style."+e,a="end."+o,s;return function(){var c=vn(this,t),l=c.on,u=c.value[o]==null?s||(s=op(e)):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(a,i=u),c.on=r}}function P5(t,e,n){var r=(t+="")=="transform"?iu:ip;return e==null?this.styleTween(t,$5(t,r)).on("end.style."+t,op(t)):typeof e=="function"?this.styleTween(t,N5(t,r,vu(this,"style."+t,e))).each(R5(this._id,t)):this.styleTween(t,z5(t,r,e),n).on("end.style."+t,null)}function I5(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}function L5(t,e,n){var r,i;function o(){var a=e.apply(this,arguments);return a!==i&&(r=(i=a)&&I5(t,a,n)),r}return o._value=e,o}function q5(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(e==null)return this.tween(r,null);if(typeof e!="function")throw new Error;return this.tween(r,L5(t,e,n??""))}function Y5(t){return function(){this.textContent=t}}function U5(t){return function(){var e=t(this);this.textContent=e??""}}function H5(t){return this.tween("text",typeof t=="function"?U5(vu(this,"text",t)):Y5(t==null?"":t+""))}function W5(t){return function(e){this.textContent=t.call(this,e)}}function j5(t){var e,n;function r(){var i=t.apply(this,arguments);return i!==n&&(e=(n=i)&&W5(i)),e}return r._value=t,r}function X5(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,j5(t))}function G5(){for(var t=this._name,e=this._id,n=sp(),r=this._groups,i=r.length,o=0;o<i;++o)for(var a=r[o],s=a.length,c,l=0;l<s;++l)if(c=a[l]){var u=ln(c,e);Ms(c,t,n,l,a,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new bn(r,this._parents,t,n)}function V5(){var t,e,n=this,r=n._id,i=n.size();return new Promise(function(o,a){var s={value:a},c={value:function(){--i===0&&o()}};n.each(function(){var l=vn(this,r),u=l.on;u!==t&&(e=(t=u).copy(),e._.cancel.push(s),e._.interrupt.push(s),e._.end.push(c)),l.on=e}),i===0&&o()})}var Z5=0;function bn(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function ap(t){return ir().transition(t)}function sp(){return++Z5}var Dn=ir.prototype;bn.prototype=ap.prototype={constructor:bn,select:T5,selectAll:O5,selectChild:Dn.selectChild,selectChildren:Dn.selectChildren,filter:S5,merge:k5,selection:D5,transition:G5,call:Dn.call,nodes:Dn.nodes,node:Dn.node,size:Dn.size,empty:Dn.empty,each:Dn.each,on:M5,attr:s5,attrTween:h5,style:P5,styleTween:q5,text:H5,textTween:X5,remove:F5,tween:t5,delay:g5,duration:b5,ease:w5,easeVarying:_5,end:V5,[Symbol.iterator]:Dn[Symbol.iterator]};var K5={time:null,delay:0,duration:250,ease:uu};function Q5(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}function J5(t){var e,n;t instanceof bn?(e=t._id,t=t._name):(e=sp(),(n=K5).time=bi(),t=t==null?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a=r[o],s=a.length,c,l=0;l<s;++l)(c=a[l])&&Ms(c,t,e,l,a,n||Q5(c,e));return new bn(r,this._parents,t,e)}ir.prototype.interrupt=K3;ir.prototype.transition=J5;var t_=[null];function e_(t,e){var n=t.__transition,r,i;if(n){e=e==null?null:e+"";for(i in n)if((r=n[i]).state>gu&&r.name===e)return new bn([[t]],t_,e,+i)}return null}var wu=t=>()=>t;function n_(t,{sourceEvent:e,target:n,selection:r,mode:i,dispatch:o}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},selection:{value:r,enumerable:!0,configurable:!0},mode:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function r_(t){t.stopImmediatePropagation()}function xu(t){t.preventDefault(),t.stopImmediatePropagation()}var lp={name:"drag"},_u={name:"space"},xi={name:"handle"},_i={name:"center"},{abs:cp,max:ce,min:ue}=Math;function up(t){return[+t[0],+t[1]]}function ku(t){return[up(t[0]),up(t[1])]}var Cs={name:"x",handles:["w","e"].map(Eo),input:function(t,e){return t==null?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},Fs={name:"y",handles:["n","s"].map(Eo),input:function(t,e){return t==null?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},i_={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(Eo),input:function(t){return t==null?null:ku(t)},output:function(t){return t}},zn={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},fp={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},hp={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},o_={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},a_={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function Eo(t){return{type:t}}function s_(t){return!t.ctrlKey&&!t.button}function l_(){var t=this.ownerSVGElement||this;return t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function c_(){return navigator.maxTouchPoints||"ontouchstart"in this}function Su(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function u_(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function f_(t){var e=t.__brush;return e?e.dim.output(e.selection):null}function h_(){return Au(Cs)}function d_(){return Au(Fs)}function p_(){return Au(i_)}function Au(t){var e=l_,n=s_,r=c_,i=!0,o=Ye("start","brush","end"),a=6,s;function c(g){var y=g.property("__brush",p).selectAll(".overlay").data([Eo("overlay")]);y.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",zn.overlay).merge(y).each(function(){var b=Su(this).extent;Xt(this).attr("x",b[0][0]).attr("y",b[0][1]).attr("width",b[1][0]-b[0][0]).attr("height",b[1][1]-b[0][1])}),g.selectAll(".selection").data([Eo("selection")]).enter().append("rect").attr("class","selection").attr("cursor",zn.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var w=g.selectAll(".handle").data(t.handles,function(b){return b.type});w.exit().remove(),w.enter().append("rect").attr("class",function(b){return"handle handle--"+b.type}).attr("cursor",function(b){return zn[b.type]}),g.each(l).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",f).filter(r).on("touchstart.brush",f).on("touchmove.brush",d).on("touchend.brush touchcancel.brush",m).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}c.move=function(g,y,w){g.tween?g.on("start.brush",function(b){u(this,arguments).beforestart().start(b)}).on("interrupt.brush end.brush",function(b){u(this,arguments).end(b)}).tween("brush",function(){var b=this,v=b.__brush,_=u(b,arguments),S=v.selection,k=t.input(typeof y=="function"?y.apply(this,arguments):y,v.extent),C=yn(S,k);function F(A){v.selection=A===1&&k===null?null:C(A),l.call(b),_.brush()}return S!==null&&k!==null?F:F(1)}):g.each(function(){var b=this,v=arguments,_=b.__brush,S=t.input(typeof y=="function"?y.apply(b,v):y,_.extent),k=u(b,v).beforestart();$n(b),_.selection=S===null?null:S,l.call(b),k.start(w).brush(w).end(w)})},c.clear=function(g,y){c.move(g,null,y)};function l(){var g=Xt(this),y=Su(this).selection;y?(g.selectAll(".selection").style("display",null).attr("x",y[0][0]).attr("y",y[0][1]).attr("width",y[1][0]-y[0][0]).attr("height",y[1][1]-y[0][1]),g.selectAll(".handle").style("display",null).attr("x",function(w){return w.type[w.type.length-1]==="e"?y[1][0]-a/2:y[0][0]-a/2}).attr("y",function(w){return w.type[0]==="s"?y[1][1]-a/2:y[0][1]-a/2}).attr("width",function(w){return w.type==="n"||w.type==="s"?y[1][0]-y[0][0]+a:a}).attr("height",function(w){return w.type==="e"||w.type==="w"?y[1][1]-y[0][1]+a:a})):g.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function u(g,y,w){var b=g.__brush.emitter;return b&&(!w||!b.clean)?b:new h(g,y,w)}function h(g,y,w){this.that=g,this.args=y,this.state=g.__brush,this.active=0,this.clean=w}h.prototype={beforestart:function(){return++this.active===1&&(this.state.emitter=this,this.starting=!0),this},start:function(g,y){return this.starting?(this.starting=!1,this.emit("start",g,y)):this.emit("brush",g),this},brush:function(g,y){return this.emit("brush",g,y),this},end:function(g,y){return--this.active===0&&(delete this.state.emitter,this.emit("end",g,y)),this},emit:function(g,y,w){var b=Xt(this.that).datum();o.call(g,this.that,new n_(g,{sourceEvent:y,target:c,selection:t.output(this.state.selection),mode:w,dispatch:o}),b)}};function f(g){if(s&&!g.touches||!n.apply(this,arguments))return;var y=this,w=g.target.__data__.type,b=(i&&g.metaKey?w="overlay":w)==="selection"?lp:i&&g.altKey?_i:xi,v=t===Fs?null:o_[w],_=t===Cs?null:a_[w],S=Su(y),k=S.extent,C=S.selection,F=k[0][0],A,E,D=k[0][1],$,M,T=k[1][0],B,N,L=k[1][1],q,U,Z=0,Q=0,j,H=v&&_&&i&&g.shiftKey,W,J,K=Array.from(g.touches||[g],st=>{let St=st.identifier;return st=le(st,y),st.point0=st.slice(),st.identifier=St,st});$n(y);var ht=u(y,arguments,!0).beforestart();if(w==="overlay"){C&&(j=!0);let st=[K[0],K[1]||K[0]];S.selection=C=[[A=t===Fs?F:ue(st[0][0],st[1][0]),$=t===Cs?D:ue(st[0][1],st[1][1])],[B=t===Fs?T:ce(st[0][0],st[1][0]),q=t===Cs?L:ce(st[0][1],st[1][1])]],K.length>1&&vt(g)}else A=C[0][0],$=C[0][1],B=C[1][0],q=C[1][1];E=A,M=$,N=B,U=q;var G=Xt(y).attr("pointer-events","none"),tt=G.selectAll(".overlay").attr("cursor",zn[w]);if(g.touches)ht.moved=X,ht.ended=yt;else{var ot=Xt(g.view).on("mousemove.brush",X,!0).on("mouseup.brush",yt,!0);i&&ot.on("keydown.brush",Tt,!0).on("keyup.brush",Mt,!0),ui(g.view)}l.call(y),ht.start(g,b.name);function X(st){for(let St of st.changedTouches||[st])for(let ne of K)ne.identifier===St.identifier&&(ne.cur=le(St,y));if(H&&!W&&!J&&K.length===1){let St=K[0];cp(St.cur[0]-St[0])>cp(St.cur[1]-St[1])?J=!0:W=!0}for(let St of K)St.cur&&(St[0]=St.cur[0],St[1]=St.cur[1]);j=!0,xu(st),vt(st)}function vt(st){let St=K[0],ne=St.point0;var Zt;switch(Z=St[0]-ne[0],Q=St[1]-ne[1],b){case _u:case lp:{v&&(Z=ce(F-A,ue(T-B,Z)),E=A+Z,N=B+Z),_&&(Q=ce(D-$,ue(L-q,Q)),M=$+Q,U=q+Q);break}case xi:{K[1]?(v&&(E=ce(F,ue(T,K[0][0])),N=ce(F,ue(T,K[1][0])),v=1),_&&(M=ce(D,ue(L,K[0][1])),U=ce(D,ue(L,K[1][1])),_=1)):(v<0?(Z=ce(F-A,ue(T-A,Z)),E=A+Z,N=B):v>0&&(Z=ce(F-B,ue(T-B,Z)),E=A,N=B+Z),_<0?(Q=ce(D-$,ue(L-$,Q)),M=$+Q,U=q):_>0&&(Q=ce(D-q,ue(L-q,Q)),M=$,U=q+Q));break}case _i:{v&&(E=ce(F,ue(T,A-Z*v)),N=ce(F,ue(T,B+Z*v))),_&&(M=ce(D,ue(L,$-Q*_)),U=ce(D,ue(L,q+Q*_)));break}}N<E&&(v*=-1,Zt=A,A=B,B=Zt,Zt=E,E=N,N=Zt,w in fp&&tt.attr("cursor",zn[w=fp[w]])),U<M&&(_*=-1,Zt=$,$=q,q=Zt,Zt=M,M=U,U=Zt,w in hp&&tt.attr("cursor",zn[w=hp[w]])),S.selection&&(C=S.selection),W&&(E=C[0][0],N=C[1][0]),J&&(M=C[0][1],U=C[1][1]),(C[0][0]!==E||C[0][1]!==M||C[1][0]!==N||C[1][1]!==U)&&(S.selection=[[E,M],[N,U]],l.call(y),ht.brush(st,b.name))}function yt(st){if(r_(st),st.touches){if(st.touches.length)return;s&&clearTimeout(s),s=setTimeout(function(){s=null},500)}else fi(st.view,j),ot.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);G.attr("pointer-events","all"),tt.attr("cursor",zn.overlay),S.selection&&(C=S.selection),u_(C)&&(S.selection=null,l.call(y)),ht.end(st,b.name)}function Tt(st){switch(st.keyCode){case 16:{H=v&&_;break}case 18:{b===xi&&(v&&(B=N-Z*v,A=E+Z*v),_&&(q=U-Q*_,$=M+Q*_),b=_i,vt(st));break}case 32:{(b===xi||b===_i)&&(v<0?B=N-Z:v>0&&(A=E-Z),_<0?q=U-Q:_>0&&($=M-Q),b=_u,tt.attr("cursor",zn.selection),vt(st));break}default:return}xu(st)}function Mt(st){switch(st.keyCode){case 16:{H&&(W=J=H=!1,vt(st));break}case 18:{b===_i&&(v<0?B=N:v>0&&(A=E),_<0?q=U:_>0&&($=M),b=xi,vt(st));break}case 32:{b===_u&&(st.altKey?(v&&(B=N-Z*v,A=E+Z*v),_&&(q=U-Q*_,$=M+Q*_),b=_i):(v<0?B=N:v>0&&(A=E),_<0?q=U:_>0&&($=M),b=xi),tt.attr("cursor",zn[w]),vt(st));break}default:return}xu(st)}}function d(g){u(this,arguments).moved(g)}function m(g){u(this,arguments).ended(g)}function p(){var g=this.__brush||{selection:null};return g.extent=ku(e.apply(this,arguments)),g.dim=t,g}return c.extent=function(g){return arguments.length?(e=typeof g=="function"?g:wu(ku(g)),c):e},c.filter=function(g){return arguments.length?(n=typeof g=="function"?g:wu(!!g),c):n},c.touchable=function(g){return arguments.length?(r=typeof g=="function"?g:wu(!!g),c):r},c.handleSize=function(g){return arguments.length?(a=+g,c):a},c.keyModifiers=function(g){return arguments.length?(i=!!g,c):i},c.on=function(){var g=o.on.apply(o,arguments);return g===o?c:g},c}var Mo=Math.PI,Eu=2*Mo,Fr=1e-6,g_=Eu-Fr;function dp(t){this._+=t[0];for(let e=1,n=t.length;e<n;++e)this._+=arguments[e]+t[e]}function m_(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return dp;let n=10**e;return function(r){this._+=r[0];for(let i=1,o=r.length;i<o;++i)this._+=Math.round(arguments[i]*n)/n+r[i]}}function pp(t,e,n,r){return t===n&&e===r}function y_(t){let e=Math.floor(t);if(!(e<=15))return pp;let n=10**e,r=function(i){return Math.round(i*n)};return function(i,o,a,s){return r(i)===r(a)&&r(o)===r(s)}}var lr=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?dp:m_(e),this._equal=e==null?pp:y_(e)}moveTo(e,n){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,n){this._append`L${this._x1=+e},${this._y1=+n}`}quadraticCurveTo(e,n,r,i){this._append`Q${+e},${+n},${this._x1=+r},${this._y1=+i}`}bezierCurveTo(e,n,r,i,o,a){this._append`C${+e},${+n},${+r},${+i},${this._x1=+o},${this._y1=+a}`}arcTo(e,n,r,i,o){if(e=+e,n=+n,r=+r,i=+i,o=+o,o<0)throw new Error(`negative radius: ${o}`);let a=this._x1,s=this._y1,c=r-e,l=i-n,u=a-e,h=s-n,f=u*u+h*h;if(this._x1===null)this._append`M${this._x1=e},${this._y1=n}`;else if(f>Fr)if(!(Math.abs(h*c-l*u)>Fr)||!o)this._append`L${this._x1=e},${this._y1=n}`;else{let d=r-a,m=i-s,p=c*c+l*l,g=d*d+m*m,y=Math.sqrt(p),w=Math.sqrt(f),b=o*Math.tan((Mo-Math.acos((p+f-g)/(2*y*w)))/2),v=b/w,_=b/y;Math.abs(v-1)>Fr&&this._append`L${e+v*u},${n+v*h}`,this._append`A${o},${o},0,0,${+(h*d>u*m)},${this._x1=e+_*c},${this._y1=n+_*l}`}}arc(e,n,r,i,o,a){if(e=+e,n=+n,r=+r,a=!!a,r<0)throw new Error(`negative radius: ${r}`);let s=r*Math.cos(i),c=r*Math.sin(i),l=e+s,u=n+c,h=1^a,f=a?i-o:o-i;if(this._x1===null?this._append`M${l},${u}`:(Math.abs(this._x1-l)>Fr||Math.abs(this._y1-u)>Fr)&&this._append`L${l},${u}`,!!r){if(f<0&&(f=f%Eu+Eu),f>g_)this._append`A${r},${r},0,1,${h},${e-s},${n-c}A${r},${r},0,1,${h},${this._x1=l},${this._y1=u}`;else if(f>Fr){let d=e+r*Math.cos(o),m=n+r*Math.sin(o);if(f>=Mo&&this._equal(l,u,d,m)){f/=2;let p=i+f;this._append`A${r},${r},0,${+(f>=Mo)},${h},${e+r*Math.cos(p)},${n+r*Math.sin(p)}`}this._append`A${r},${r},0,${+(f>=Mo)},${h},${this._x1=d},${this._y1=m}`}}}rect(e,n,r,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}};function Ts(){return new lr}Ts.prototype=lr.prototype;function b_(t=3){return new lr(+t)}var gp=Math.abs,Si=Math.cos,ki=Math.sin,vp=Math.PI,Os=vp/2,mp=vp*2,yp=Math.max,Mu=1e-12;function Cu(t,e){return Array.from({length:e-t},(n,r)=>t+r)}function v_(t){return function(e,n){return t(e.source.value+e.target.value,n.source.value+n.target.value)}}function w_(){return Fu(!1,!1)}function x_(){return Fu(!1,!0)}function __(){return Fu(!0,!1)}function Fu(t,e){var n=0,r=null,i=null,o=null;function a(s){var c=s.length,l=new Array(c),u=Cu(0,c),h=new Array(c*c),f=new Array(c),d=0,m;s=Float64Array.from({length:c*c},e?(p,g)=>s[g%c][g/c|0]:(p,g)=>s[g/c|0][g%c]);for(let p=0;p<c;++p){let g=0;for(let y=0;y<c;++y)g+=s[p*c+y]+t*s[y*c+p];d+=l[p]=g}d=yp(0,mp-n*c)/d,m=d?n:mp/c;{let p=0;r&&u.sort((g,y)=>r(l[g],l[y]));for(let g of u){let y=p;if(t){let w=Cu(~c+1,c).filter(b=>b<0?s[~b*c+g]:s[g*c+b]);i&&w.sort((b,v)=>i(b<0?-s[~b*c+g]:s[g*c+b],v<0?-s[~v*c+g]:s[g*c+v]));for(let b of w)if(b<0){let v=h[~b*c+g]||(h[~b*c+g]={source:null,target:null});v.target={index:g,startAngle:p,endAngle:p+=s[~b*c+g]*d,value:s[~b*c+g]}}else{let v=h[g*c+b]||(h[g*c+b]={source:null,target:null});v.source={index:g,startAngle:p,endAngle:p+=s[g*c+b]*d,value:s[g*c+b]}}f[g]={index:g,startAngle:y,endAngle:p,value:l[g]}}else{let w=Cu(0,c).filter(b=>s[g*c+b]||s[b*c+g]);i&&w.sort((b,v)=>i(s[g*c+b],s[g*c+v]));for(let b of w){let v;if(g<b?(v=h[g*c+b]||(h[g*c+b]={source:null,target:null}),v.source={index:g,startAngle:p,endAngle:p+=s[g*c+b]*d,value:s[g*c+b]}):(v=h[b*c+g]||(h[b*c+g]={source:null,target:null}),v.target={index:g,startAngle:p,endAngle:p+=s[g*c+b]*d,value:s[g*c+b]},g===b&&(v.source=v.target)),v.source&&v.target&&v.source.value<v.target.value){let _=v.source;v.source=v.target,v.target=_}}f[g]={index:g,startAngle:y,endAngle:p,value:l[g]}}p+=m}}return h=Object.values(h),h.groups=f,o?h.sort(o):h}return a.padAngle=function(s){return arguments.length?(n=yp(0,s),a):n},a.sortGroups=function(s){return arguments.length?(r=s,a):r},a.sortSubgroups=function(s){return arguments.length?(i=s,a):i},a.sortChords=function(s){return arguments.length?(s==null?o=null:(o=v_(s))._=s,a):o&&o._},a}var S_=Array.prototype.slice;function Tr(t){return function(){return t}}function k_(t){return t.source}function A_(t){return t.target}function bp(t){return t.radius}function E_(t){return t.startAngle}function M_(t){return t.endAngle}function C_(){return 0}function F_(){return 10}function wp(t){var e=k_,n=A_,r=bp,i=bp,o=E_,a=M_,s=C_,c=null;function l(){var u,h=e.apply(this,arguments),f=n.apply(this,arguments),d=s.apply(this,arguments)/2,m=S_.call(arguments),p=+r.apply(this,(m[0]=h,m)),g=o.apply(this,m)-Os,y=a.apply(this,m)-Os,w=+i.apply(this,(m[0]=f,m)),b=o.apply(this,m)-Os,v=a.apply(this,m)-Os;if(c||(c=u=Ts()),d>Mu&&(gp(y-g)>d*2+Mu?y>g?(g+=d,y-=d):(g-=d,y+=d):g=y=(g+y)/2,gp(v-b)>d*2+Mu?v>b?(b+=d,v-=d):(b-=d,v+=d):b=v=(b+v)/2),c.moveTo(p*Si(g),p*ki(g)),c.arc(0,0,p,g,y),g!==b||y!==v)if(t){var _=+t.apply(this,arguments),S=w-_,k=(b+v)/2;c.quadraticCurveTo(0,0,S*Si(b),S*ki(b)),c.lineTo(w*Si(k),w*ki(k)),c.lineTo(S*Si(v),S*ki(v))}else c.quadraticCurveTo(0,0,w*Si(b),w*ki(b)),c.arc(0,0,w,b,v);if(c.quadraticCurveTo(0,0,p*Si(g),p*ki(g)),c.closePath(),u)return c=null,u+""||null}return t&&(l.headRadius=function(u){return arguments.length?(t=typeof u=="function"?u:Tr(+u),l):t}),l.radius=function(u){return arguments.length?(r=i=typeof u=="function"?u:Tr(+u),l):r},l.sourceRadius=function(u){return arguments.length?(r=typeof u=="function"?u:Tr(+u),l):r},l.targetRadius=function(u){return arguments.length?(i=typeof u=="function"?u:Tr(+u),l):i},l.startAngle=function(u){return arguments.length?(o=typeof u=="function"?u:Tr(+u),l):o},l.endAngle=function(u){return arguments.length?(a=typeof u=="function"?u:Tr(+u),l):a},l.padAngle=function(u){return arguments.length?(s=typeof u=="function"?u:Tr(+u),l):s},l.source=function(u){return arguments.length?(e=u,l):e},l.target=function(u){return arguments.length?(n=u,l):n},l.context=function(u){return arguments.length?(c=u??null,l):c},l}function T_(){return wp()}function O_(){return wp(F_)}var B_=Array.prototype,_p=B_.slice;function D_(t,e){return t-e}function $_(t){for(var e=0,n=t.length,r=t[n-1][1]*t[0][0]-t[n-1][0]*t[0][1];++e<n;)r+=t[e-1][1]*t[e][0]-t[e-1][0]*t[e][1];return r}var cr=t=>()=>t;function z_(t,e){for(var n=-1,r=e.length,i;++n<r;)if(i=N_(t,e[n]))return i;return 0}function N_(t,e){for(var n=e[0],r=e[1],i=-1,o=0,a=t.length,s=a-1;o<a;s=o++){var c=t[o],l=c[0],u=c[1],h=t[s],f=h[0],d=h[1];if(R_(c,h,e))return 0;u>r!=d>r&&n<(f-l)*(r-u)/(d-u)+l&&(i=-i)}return i}function R_(t,e,n){var r;return P_(t,e,n)&&I_(t[r=+(t[0]===e[0])],n[r],e[r])}function P_(t,e,n){return(e[0]-t[0])*(n[1]-t[1])===(n[0]-t[0])*(e[1]-t[1])}function I_(t,e,n){return t<=e&&e<=n||n<=e&&e<=t}function L_(){}var Nn=[[],[[[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 Ou(){var t=1,e=1,n=Qa,r=c;function i(l){var u=n(l);if(Array.isArray(u))u=u.slice().sort(D_);else{let h=ei(l,q_);for(u=Bn(...Ka(h[0],h[1],u),u);u[u.length-1]>=h[1];)u.pop();for(;u[1]<h[0];)u.shift()}return u.map(h=>o(l,h))}function o(l,u){let h=u==null?NaN:+u;if(isNaN(h))throw new Error(`invalid value: ${u}`);var f=[],d=[];return a(l,h,function(m){r(m,l,h),$_(m)>0?f.push([m]):d.push(m)}),d.forEach(function(m){for(var p=0,g=f.length,y;p<g;++p)if(z_((y=f[p])[0],m)!==-1){y.push(m);return}}),{type:"MultiPolygon",value:u,coordinates:f}}function a(l,u,h){var f=new Array,d=new Array,m,p,g,y,w,b;for(m=p=-1,y=Or(l[0],u),Nn[y<<1].forEach(v);++m<t-1;)g=y,y=Or(l[m+1],u),Nn[g|y<<1].forEach(v);for(Nn[y<<0].forEach(v);++p<e-1;){for(m=-1,y=Or(l[p*t+t],u),w=Or(l[p*t],u),Nn[y<<1|w<<2].forEach(v);++m<t-1;)g=y,y=Or(l[p*t+t+m+1],u),b=w,w=Or(l[p*t+m+1],u),Nn[g|y<<1|w<<2|b<<3].forEach(v);Nn[y|w<<3].forEach(v)}for(m=-1,w=l[p*t]>=u,Nn[w<<2].forEach(v);++m<t-1;)b=w,w=Or(l[p*t+m+1],u),Nn[w<<2|b<<3].forEach(v);Nn[w<<3].forEach(v);function v(_){var S=[_[0][0]+m,_[0][1]+p],k=[_[1][0]+m,_[1][1]+p],C=s(S),F=s(k),A,E;(A=d[C])?(E=f[F])?(delete d[A.end],delete f[E.start],A===E?(A.ring.push(k),h(A.ring)):f[A.start]=d[E.end]={start:A.start,end:E.end,ring:A.ring.concat(E.ring)}):(delete d[A.end],A.ring.push(k),d[A.end=F]=A):(A=f[F])?(E=d[C])?(delete f[A.start],delete d[E.end],A===E?(A.ring.push(k),h(A.ring)):f[E.start]=d[A.end]={start:E.start,end:A.end,ring:E.ring.concat(A.ring)}):(delete f[A.start],A.ring.unshift(S),f[A.start=C]=A):f[C]=d[F]={start:C,end:F,ring:[S,k]}}}function s(l){return l[0]*2+l[1]*(t+1)*4}function c(l,u,h){l.forEach(function(f){var d=f[0],m=f[1],p=d|0,g=m|0,y=Tu(u[g*t+p]);d>0&&d<t&&p===d&&(f[0]=xp(d,Tu(u[g*t+p-1]),y,h)),m>0&&m<e&&g===m&&(f[1]=xp(m,Tu(u[(g-1)*t+p]),y,h))})}return i.contour=o,i.size=function(l){if(!arguments.length)return[t,e];var u=Math.floor(l[0]),h=Math.floor(l[1]);if(!(u>=0&&h>=0))throw new Error("invalid size");return t=u,e=h,i},i.thresholds=function(l){return arguments.length?(n=typeof l=="function"?l:Array.isArray(l)?cr(_p.call(l)):cr(l),i):n},i.smooth=function(l){return arguments.length?(r=l?c:L_,i):r===c},i}function q_(t){return isFinite(t)?t:NaN}function Or(t,e){return t==null?!1:+t>=e}function Tu(t){return t==null||isNaN(t=+t)?-1/0:t}function xp(t,e,n,r){let i=r-e,o=n-e,a=isFinite(i)||isFinite(o)?i/o:Math.sign(i)/Math.sign(o);return isNaN(a)?t:t+a-.5}function Y_(t){return t[0]}function U_(t){return t[1]}function H_(){return 1}function W_(){var t=Y_,e=U_,n=H_,r=960,i=500,o=20,a=2,s=o*3,c=r+s*2>>a,l=i+s*2>>a,u=cr(20);function h(w){var b=new Float32Array(c*l),v=Math.pow(2,-a),_=-1;for(let $ of w){var S=(t($,++_,w)+s)*v,k=(e($,_,w)+s)*v,C=+n($,_,w);if(C&&S>=0&&S<c&&k>=0&&k<l){var F=Math.floor(S),A=Math.floor(k),E=S-F-.5,D=k-A-.5;b[F+A*c]+=(1-E)*(1-D)*C,b[F+1+A*c]+=E*(1-D)*C,b[F+1+(A+1)*c]+=E*D*C,b[F+(A+1)*c]+=(1-E)*D*C}}return Tc({data:b,width:c,height:l},o*v),b}function f(w){var b=h(w),v=u(b),_=Math.pow(2,2*a);return Array.isArray(v)||(v=Bn(Number.MIN_VALUE,ii(b)/_,v)),Ou().size([c,l]).thresholds(v.map(S=>S*_))(b).map((S,k)=>(S.value=+v[k],d(S)))}f.contours=function(w){var b=h(w),v=Ou().size([c,l]),_=Math.pow(2,2*a),S=k=>{k=+k;var C=d(v.contour(b,k*_));return C.value=k,C};return Object.defineProperty(S,"max",{get:()=>ii(b)/_}),S};function d(w){return w.coordinates.forEach(m),w}function m(w){w.forEach(p)}function p(w){w.forEach(g)}function g(w){w[0]=w[0]*Math.pow(2,a)-s,w[1]=w[1]*Math.pow(2,a)-s}function y(){return s=o*3,c=r+s*2>>a,l=i+s*2>>a,f}return f.x=function(w){return arguments.length?(t=typeof w=="function"?w:cr(+w),f):t},f.y=function(w){return arguments.length?(e=typeof w=="function"?w:cr(+w),f):e},f.weight=function(w){return arguments.length?(n=typeof w=="function"?w:cr(+w),f):n},f.size=function(w){if(!arguments.length)return[r,i];var b=+w[0],v=+w[1];if(!(b>=0&&v>=0))throw new Error("invalid size");return r=b,i=v,y()},f.cellSize=function(w){if(!arguments.length)return 1<<a;if(!((w=+w)>=1))throw new Error("invalid cell size");return a=Math.floor(Math.log(w)/Math.LN2),y()},f.thresholds=function(w){return arguments.length?(u=typeof w=="function"?w:Array.isArray(w)?cr(_p.call(w)):cr(w),f):u},f.bandwidth=function(w){if(!arguments.length)return Math.sqrt(o*(o+1));if(!((w=+w)>=0))throw new Error("invalid bandwidth");return o=(Math.sqrt(4*w*w+1)-1)/2,y()},f}var Pn=11102230246251565e-32,fe=134217729,j_=(3+8*Pn)*Pn;function Bu(t,e,n,r,i){let o,a,s,c,l=e[0],u=r[0],h=0,f=0;u>l==u>-l?(o=l,l=e[++h]):(o=u,u=r[++f]);let d=0;if(h<t&&f<n)for(u>l==u>-l?(a=l+o,s=o-(a-l),l=e[++h]):(a=u+o,s=o-(a-u),u=r[++f]),o=a,s!==0&&(i[d++]=s);h<t&&f<n;)u>l==u>-l?(a=o+l,c=a-o,s=o-(a-c)+(l-c),l=e[++h]):(a=o+u,c=a-o,s=o-(a-c)+(u-c),u=r[++f]),o=a,s!==0&&(i[d++]=s);for(;h<t;)a=o+l,c=a-o,s=o-(a-c)+(l-c),l=e[++h],o=a,s!==0&&(i[d++]=s);for(;f<n;)a=o+u,c=a-o,s=o-(a-c)+(u-c),u=r[++f],o=a,s!==0&&(i[d++]=s);return(o!==0||d===0)&&(i[d++]=o),d}function X_(t,e){let n=e[0];for(let r=1;r<t;r++)n+=e[r];return n}function V(t){return new Float64Array(t)}var G_=(3+16*Pn)*Pn,V_=(2+12*Pn)*Pn,Z_=(9+64*Pn)*Pn*Pn,Ai=V(4),Sp=V(8),kp=V(12),Ap=V(16),be=V(4);function K_(t,e,n,r,i,o,a){let s,c,l,u,h,f,d,m,p,g,y,w,b,v,_,S,k,C,F=t-i,A=n-i,E=e-o,D=r-o;v=F*D,f=fe*F,d=f-(f-F),m=F-d,f=fe*D,p=f-(f-D),g=D-p,_=m*g-(v-d*p-m*p-d*g),S=E*A,f=fe*E,d=f-(f-E),m=E-d,f=fe*A,p=f-(f-A),g=A-p,k=m*g-(S-d*p-m*p-d*g),y=_-k,h=_-y,Ai[0]=_-(y+h)+(h-k),w=v+y,h=w-v,b=v-(w-h)+(y-h),y=b-S,h=b-y,Ai[1]=b-(y+h)+(h-S),C=w+y,h=C-w,Ai[2]=w-(C-h)+(y-h),Ai[3]=C;let $=X_(4,Ai),M=V_*a;if($>=M||-$>=M||(h=t-F,s=t-(F+h)+(h-i),h=n-A,l=n-(A+h)+(h-i),h=e-E,c=e-(E+h)+(h-o),h=r-D,u=r-(D+h)+(h-o),s===0&&c===0&&l===0&&u===0)||(M=Z_*a+j_*Math.abs($),$+=F*u+D*s-(E*l+A*c),$>=M||-$>=M))return $;v=s*D,f=fe*s,d=f-(f-s),m=s-d,f=fe*D,p=f-(f-D),g=D-p,_=m*g-(v-d*p-m*p-d*g),S=c*A,f=fe*c,d=f-(f-c),m=c-d,f=fe*A,p=f-(f-A),g=A-p,k=m*g-(S-d*p-m*p-d*g),y=_-k,h=_-y,be[0]=_-(y+h)+(h-k),w=v+y,h=w-v,b=v-(w-h)+(y-h),y=b-S,h=b-y,be[1]=b-(y+h)+(h-S),C=w+y,h=C-w,be[2]=w-(C-h)+(y-h),be[3]=C;let T=Bu(4,Ai,4,be,Sp);v=F*u,f=fe*F,d=f-(f-F),m=F-d,f=fe*u,p=f-(f-u),g=u-p,_=m*g-(v-d*p-m*p-d*g),S=E*l,f=fe*E,d=f-(f-E),m=E-d,f=fe*l,p=f-(f-l),g=l-p,k=m*g-(S-d*p-m*p-d*g),y=_-k,h=_-y,be[0]=_-(y+h)+(h-k),w=v+y,h=w-v,b=v-(w-h)+(y-h),y=b-S,h=b-y,be[1]=b-(y+h)+(h-S),C=w+y,h=C-w,be[2]=w-(C-h)+(y-h),be[3]=C;let B=Bu(T,Sp,4,be,kp);v=s*u,f=fe*s,d=f-(f-s),m=s-d,f=fe*u,p=f-(f-u),g=u-p,_=m*g-(v-d*p-m*p-d*g),S=c*l,f=fe*c,d=f-(f-c),m=c-d,f=fe*l,p=f-(f-l),g=l-p,k=m*g-(S-d*p-m*p-d*g),y=_-k,h=_-y,be[0]=_-(y+h)+(h-k),w=v+y,h=w-v,b=v-(w-h)+(y-h),y=b-S,h=b-y,be[1]=b-(y+h)+(h-S),C=w+y,h=C-w,be[2]=w-(C-h)+(y-h),be[3]=C;let N=Bu(B,kp,4,be,Ap);return Ap[N-1]}function Bs(t,e,n,r,i,o){let a=(e-o)*(n-i),s=(t-i)*(r-o),c=a-s,l=Math.abs(a+s);return Math.abs(c)>=G_*l?c:-K_(t,e,n,r,i,o,l)}V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(8);V(8);V(8);V(4);V(8);V(8);V(16);V(12);V(192);V(192);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(8);V(8);V(8);V(8);V(8);V(8);V(8);V(8);V(8);V(4);V(4);V(4);V(8);V(16);V(16);V(16);V(32);V(32);V(48);V(64);V(1152);V(1152);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(4);V(24);V(24);V(24);V(24);V(24);V(24);V(24);V(24);V(24);V(24);V(1152);V(1152);V(1152);V(1152);V(1152);V(2304);V(2304);V(3456);V(5760);V(8);V(8);V(8);V(16);V(24);V(48);V(48);V(96);V(192);V(384);V(384);V(384);V(768);V(96);V(96);V(96);V(1152);var Ep=Math.pow(2,-52),Ds=new Uint32Array(512),$s=class t{static from(e,n=n8,r=r8){let i=e.length,o=new Float64Array(i*2);for(let a=0;a<i;a++){let s=e[a];o[2*a]=n(s),o[2*a+1]=r(s)}return new t(o)}constructor(e){let n=e.length>>1;if(n>0&&typeof e[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=e;let r=Math.max(2*n-5,0);this._triangles=new Uint32Array(r*3),this._halfedges=new Int32Array(r*3),this._hashSize=Math.ceil(Math.sqrt(n)),this._hullPrev=new Uint32Array(n),this._hullNext=new Uint32Array(n),this._hullTri=new Uint32Array(n),this._hullHash=new Int32Array(this._hashSize),this._ids=new Uint32Array(n),this._dists=new Float64Array(n),this.trianglesLen=0,this._cx=0,this._cy=0,this._hullStart=0,this.hull=this._triangles,this.triangles=this._triangles,this.halfedges=this._halfedges,this.update()}update(){let{coords:e,_hullPrev:n,_hullNext:r,_hullTri:i,_hullHash:o}=this,a=e.length>>1,s=1/0,c=1/0,l=-1/0,u=-1/0;for(let F=0;F<a;F++){let A=e[2*F],E=e[2*F+1];A<s&&(s=A),E<c&&(c=E),A>l&&(l=A),E>u&&(u=E),this._ids[F]=F}let h=(s+l)/2,f=(c+u)/2,d=0,m=0,p=0;for(let F=0,A=1/0;F<a;F++){let E=Du(h,f,e[2*F],e[2*F+1]);E<A&&(d=F,A=E)}let g=e[2*d],y=e[2*d+1];for(let F=0,A=1/0;F<a;F++){if(F===d)continue;let E=Du(g,y,e[2*F],e[2*F+1]);E<A&&E>0&&(m=F,A=E)}let w=e[2*m],b=e[2*m+1],v=1/0;for(let F=0;F<a;F++){if(F===d||F===m)continue;let A=t8(g,y,w,b,e[2*F],e[2*F+1]);A<v&&(p=F,v=A)}let _=e[2*p],S=e[2*p+1];if(v===1/0){for(let E=0;E<a;E++)this._dists[E]=e[2*E]-e[0]||e[2*E+1]-e[1];Mi(this._ids,this._dists,0,a-1);let F=new Uint32Array(a),A=0;for(let E=0,D=-1/0;E<a;E++){let $=this._ids[E],M=this._dists[$];M>D&&(F[A++]=$,D=M)}this.hull=F.subarray(0,A),this.triangles=new Uint32Array(0),this.halfedges=new Int32Array(0);return}if(Bs(g,y,w,b,_,S)<0){let F=m,A=w,E=b;m=p,w=_,b=S,p=F,_=A,S=E}let k=e8(g,y,w,b,_,S);this._cx=k.x,this._cy=k.y;for(let F=0;F<a;F++)this._dists[F]=Du(e[2*F],e[2*F+1],k.x,k.y);Mi(this._ids,this._dists,0,a-1),this._hullStart=d;let C=3;r[d]=n[p]=m,r[m]=n[d]=p,r[p]=n[m]=d,i[d]=0,i[m]=1,i[p]=2,o.fill(-1),o[this._hashKey(g,y)]=d,o[this._hashKey(w,b)]=m,o[this._hashKey(_,S)]=p,this.trianglesLen=0,this._addTriangle(d,m,p,-1,-1,-1);for(let F=0,A=0,E=0;F<this._ids.length;F++){let D=this._ids[F],$=e[2*D],M=e[2*D+1];if(F>0&&Math.abs($-A)<=Ep&&Math.abs(M-E)<=Ep||(A=$,E=M,D===d||D===m||D===p))continue;let T=0;for(let U=0,Z=this._hashKey($,M);U<this._hashSize&&(T=o[(Z+U)%this._hashSize],!(T!==-1&&T!==r[T]));U++);T=n[T];let B=T,N;for(;N=r[B],Bs($,M,e[2*B],e[2*B+1],e[2*N],e[2*N+1])>=0;)if(B=N,B===T){B=-1;break}if(B===-1)continue;let L=this._addTriangle(B,D,r[B],-1,-1,i[B]);i[D]=this._legalize(L+2),i[B]=L,C++;let q=r[B];for(;N=r[q],Bs($,M,e[2*q],e[2*q+1],e[2*N],e[2*N+1])<0;)L=this._addTriangle(q,D,N,i[D],-1,i[q]),i[D]=this._legalize(L+2),r[q]=q,C--,q=N;if(B===T)for(;N=n[B],Bs($,M,e[2*N],e[2*N+1],e[2*B],e[2*B+1])<0;)L=this._addTriangle(N,D,B,-1,i[B],i[N]),this._legalize(L+2),i[N]=L,r[B]=B,C--,B=N;this._hullStart=n[D]=B,r[B]=n[q]=D,r[D]=q,o[this._hashKey($,M)]=D,o[this._hashKey(e[2*B],e[2*B+1])]=B}this.hull=new Uint32Array(C);for(let F=0,A=this._hullStart;F<C;F++)this.hull[F]=A,A=r[A];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,n){return Math.floor(Q_(e-this._cx,n-this._cy)*this._hashSize)%this._hashSize}_legalize(e){let{_triangles:n,_halfedges:r,coords:i}=this,o=0,a=0;for(;;){let s=r[e],c=e-e%3;if(a=c+(e+2)%3,s===-1){if(o===0)break;e=Ds[--o];continue}let l=s-s%3,u=c+(e+1)%3,h=l+(s+2)%3,f=n[a],d=n[e],m=n[u],p=n[h];if(J_(i[2*f],i[2*f+1],i[2*d],i[2*d+1],i[2*m],i[2*m+1],i[2*p],i[2*p+1])){n[e]=p,n[s]=f;let y=r[h];if(y===-1){let b=this._hullStart;do{if(this._hullTri[b]===h){this._hullTri[b]=e;break}b=this._hullPrev[b]}while(b!==this._hullStart)}this._link(e,y),this._link(s,r[a]),this._link(a,h);let w=l+(s+1)%3;o<Ds.length&&(Ds[o++]=w)}else{if(o===0)break;e=Ds[--o]}}return a}_link(e,n){this._halfedges[e]=n,n!==-1&&(this._halfedges[n]=e)}_addTriangle(e,n,r,i,o,a){let s=this.trianglesLen;return this._triangles[s]=e,this._triangles[s+1]=n,this._triangles[s+2]=r,this._link(s,i),this._link(s+1,o),this._link(s+2,a),this.trianglesLen+=3,s}};function Q_(t,e){let n=t/(Math.abs(t)+Math.abs(e));return(e>0?3-n:1+n)/4}function Du(t,e,n,r){let i=t-n,o=e-r;return i*i+o*o}function J_(t,e,n,r,i,o,a,s){let c=t-a,l=e-s,u=n-a,h=r-s,f=i-a,d=o-s,m=c*c+l*l,p=u*u+h*h,g=f*f+d*d;return c*(h*g-p*d)-l*(u*g-p*f)+m*(u*d-h*f)<0}function t8(t,e,n,r,i,o){let a=n-t,s=r-e,c=i-t,l=o-e,u=a*a+s*s,h=c*c+l*l,f=.5/(a*l-s*c),d=(l*u-s*h)*f,m=(a*h-c*u)*f;return d*d+m*m}function e8(t,e,n,r,i,o){let a=n-t,s=r-e,c=i-t,l=o-e,u=a*a+s*s,h=c*c+l*l,f=.5/(a*l-s*c),d=t+(l*u-s*h)*f,m=e+(a*h-c*u)*f;return{x:d,y:m}}function Mi(t,e,n,r){if(r-n<=20)for(let i=n+1;i<=r;i++){let o=t[i],a=e[o],s=i-1;for(;s>=n&&e[t[s]]>a;)t[s+1]=t[s--];t[s+1]=o}else{let i=n+r>>1,o=n+1,a=r;Co(t,i,o),e[t[n]]>e[t[r]]&&Co(t,n,r),e[t[o]]>e[t[r]]&&Co(t,o,r),e[t[n]]>e[t[o]]&&Co(t,n,o);let s=t[o],c=e[s];for(;;){do o++;while(e[t[o]]<c);do a--;while(e[t[a]]>c);if(a<o)break;Co(t,o,a)}t[n+1]=t[a],t[a]=s,r-o+1>=a-n?(Mi(t,e,o,r),Mi(t,e,n,a-1)):(Mi(t,e,n,a-1),Mi(t,e,o,r))}}function Co(t,e,n){let r=t[e];t[e]=t[n],t[n]=r}function n8(t){return t[0]}function r8(t){return t[1]}var Mp=1e-6,Rn=class{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,n){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,n){this._+=`L${this._x1=+e},${this._y1=+n}`}arc(e,n,r){e=+e,n=+n,r=+r;let i=e+r,o=n;if(r<0)throw new Error("negative radius");this._x1===null?this._+=`M${i},${o}`:(Math.abs(this._x1-i)>Mp||Math.abs(this._y1-o)>Mp)&&(this._+="L"+i+","+o),r&&(this._+=`A${r},${r},0,1,1,${e-r},${n}A${r},${r},0,1,1,${this._x1=i},${this._y1=o}`)}rect(e,n,r,i){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${+r}v${+i}h${-r}Z`}value(){return this._||null}},Fo=class{constructor(){this._=[]}moveTo(e,n){this._.push([e,n])}closePath(){this._.push(this._[0].slice())}lineTo(e,n){this._.push([e,n])}value(){return this._.length?this._:null}},zs=class{constructor(e,[n,r,i,o]=[0,0,960,500]){if(!((i=+i)>=(n=+n))||!((o=+o)>=(r=+r)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(e.points.length*2),this.vectors=new Float64Array(e.points.length*2),this.xmax=i,this.xmin=n,this.ymax=o,this.ymin=r,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){let{delaunay:{points:e,hull:n,triangles:r},vectors:i}=this,o,a,s=this.circumcenters=this._circumcenters.subarray(0,r.length/3*2);for(let p=0,g=0,y=r.length,w,b;p<y;p+=3,g+=2){let v=r[p]*2,_=r[p+1]*2,S=r[p+2]*2,k=e[v],C=e[v+1],F=e[_],A=e[_+1],E=e[S],D=e[S+1],$=F-k,M=A-C,T=E-k,B=D-C,N=($*B-M*T)*2;if(Math.abs(N)<1e-9){if(o===void 0){o=a=0;for(let q of n)o+=e[q*2],a+=e[q*2+1];o/=n.length,a/=n.length}let L=1e9*Math.sign((o-k)*B-(a-C)*T);w=(k+E)/2-L*B,b=(C+D)/2+L*T}else{let L=1/N,q=$*$+M*M,U=T*T+B*B;w=k+(B*q-M*U)*L,b=C+($*U-T*q)*L}s[g]=w,s[g+1]=b}let c=n[n.length-1],l,u=c*4,h,f=e[2*c],d,m=e[2*c+1];i.fill(0);for(let p=0;p<n.length;++p)c=n[p],l=u,h=f,d=m,u=c*4,f=e[2*c],m=e[2*c+1],i[l+2]=i[u]=d-m,i[l+3]=i[u+1]=f-h}render(e){let n=e==null?e=new Rn:void 0,{delaunay:{halfedges:r,inedges:i,hull:o},circumcenters:a,vectors:s}=this;if(o.length<=1)return null;for(let u=0,h=r.length;u<h;++u){let f=r[u];if(f<u)continue;let d=Math.floor(u/3)*2,m=Math.floor(f/3)*2,p=a[d],g=a[d+1],y=a[m],w=a[m+1];this._renderSegment(p,g,y,w,e)}let c,l=o[o.length-1];for(let u=0;u<o.length;++u){c=l,l=o[u];let h=Math.floor(i[l]/3)*2,f=a[h],d=a[h+1],m=c*4,p=this._project(f,d,s[m+2],s[m+3]);p&&this._renderSegment(f,d,p[0],p[1],e)}return n&&n.value()}renderBounds(e){let n=e==null?e=new Rn:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),n&&n.value()}renderCell(e,n){let r=n==null?n=new Rn:void 0,i=this._clip(e);if(i===null||!i.length)return;n.moveTo(i[0],i[1]);let o=i.length;for(;i[0]===i[o-2]&&i[1]===i[o-1]&&o>1;)o-=2;for(let a=2;a<o;a+=2)(i[a]!==i[a-2]||i[a+1]!==i[a-1])&&n.lineTo(i[a],i[a+1]);return n.closePath(),r&&r.value()}*cellPolygons(){let{delaunay:{points:e}}=this;for(let n=0,r=e.length/2;n<r;++n){let i=this.cellPolygon(n);i&&(i.index=n,yield i)}}cellPolygon(e){let n=new Fo;return this.renderCell(e,n),n.value()}_renderSegment(e,n,r,i,o){let a,s=this._regioncode(e,n),c=this._regioncode(r,i);s===0&&c===0?(o.moveTo(e,n),o.lineTo(r,i)):(a=this._clipSegment(e,n,r,i,s,c))&&(o.moveTo(a[0],a[1]),o.lineTo(a[2],a[3]))}contains(e,n,r){return n=+n,n!==n||(r=+r,r!==r)?!1:this.delaunay._step(e,n,r)===e}*neighbors(e){let n=this._clip(e);if(n)for(let r of this.delaunay.neighbors(e)){let i=this._clip(r);if(i){t:for(let o=0,a=n.length;o<a;o+=2)for(let s=0,c=i.length;s<c;s+=2)if(n[o]===i[s]&&n[o+1]===i[s+1]&&n[(o+2)%a]===i[(s+c-2)%c]&&n[(o+3)%a]===i[(s+c-1)%c]){yield r;break t}}}}_cell(e){let{circumcenters:n,delaunay:{inedges:r,halfedges:i,triangles:o}}=this,a=r[e];if(a===-1)return null;let s=[],c=a;do{let l=Math.floor(c/3);if(s.push(n[l*2],n[l*2+1]),c=c%3===2?c-2:c+1,o[c]!==e)break;c=i[c]}while(c!==a&&c!==-1);return s}_clip(e){if(e===0&&this.delaunay.hull.length===1)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];let n=this._cell(e);if(n===null)return null;let{vectors:r}=this,i=e*4;return this._simplify(r[i]||r[i+1]?this._clipInfinite(e,n,r[i],r[i+1],r[i+2],r[i+3]):this._clipFinite(e,n))}_clipFinite(e,n){let r=n.length,i=null,o,a,s=n[r-2],c=n[r-1],l,u=this._regioncode(s,c),h,f=0;for(let d=0;d<r;d+=2)if(o=s,a=c,s=n[d],c=n[d+1],l=u,u=this._regioncode(s,c),l===0&&u===0)h=f,f=0,i?i.push(s,c):i=[s,c];else{let m,p,g,y,w;if(l===0){if((m=this._clipSegment(o,a,s,c,l,u))===null)continue;[p,g,y,w]=m}else{if((m=this._clipSegment(s,c,o,a,u,l))===null)continue;[y,w,p,g]=m,h=f,f=this._edgecode(p,g),h&&f&&this._edge(e,h,f,i,i.length),i?i.push(p,g):i=[p,g]}h=f,f=this._edgecode(y,w),h&&f&&this._edge(e,h,f,i,i.length),i?i.push(y,w):i=[y,w]}if(i)h=f,f=this._edgecode(i[0],i[1]),h&&f&&this._edge(e,h,f,i,i.length);else if(this.contains(e,(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 i}_clipSegment(e,n,r,i,o,a){let s=o<a;for(s&&([e,n,r,i,o,a]=[r,i,e,n,a,o]);;){if(o===0&&a===0)return s?[r,i,e,n]:[e,n,r,i];if(o&a)return null;let c,l,u=o||a;u&8?(c=e+(r-e)*(this.ymax-n)/(i-n),l=this.ymax):u&4?(c=e+(r-e)*(this.ymin-n)/(i-n),l=this.ymin):u&2?(l=n+(i-n)*(this.xmax-e)/(r-e),c=this.xmax):(l=n+(i-n)*(this.xmin-e)/(r-e),c=this.xmin),o?(e=c,n=l,o=this._regioncode(e,n)):(r=c,i=l,a=this._regioncode(r,i))}}_clipInfinite(e,n,r,i,o,a){let s=Array.from(n),c;if((c=this._project(s[0],s[1],r,i))&&s.unshift(c[0],c[1]),(c=this._project(s[s.length-2],s[s.length-1],o,a))&&s.push(c[0],c[1]),s=this._clipFinite(e,s))for(let l=0,u=s.length,h,f=this._edgecode(s[u-2],s[u-1]);l<u;l+=2)h=f,f=this._edgecode(s[l],s[l+1]),h&&f&&(l=this._edge(e,h,f,s,l),u=s.length);else this.contains(e,(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(e,n,r,i,o){for(;n!==r;){let a,s;switch(n){case 5:n=4;continue;case 4:n=6,a=this.xmax,s=this.ymin;break;case 6:n=2;continue;case 2:n=10,a=this.xmax,s=this.ymax;break;case 10:n=8;continue;case 8:n=9,a=this.xmin,s=this.ymax;break;case 9:n=1;continue;case 1:n=5,a=this.xmin,s=this.ymin;break}(i[o]!==a||i[o+1]!==s)&&this.contains(e,a,s)&&(i.splice(o,0,a,s),o+=2)}return o}_project(e,n,r,i){let o=1/0,a,s,c;if(i<0){if(n<=this.ymin)return null;(a=(this.ymin-n)/i)<o&&(c=this.ymin,s=e+(o=a)*r)}else if(i>0){if(n>=this.ymax)return null;(a=(this.ymax-n)/i)<o&&(c=this.ymax,s=e+(o=a)*r)}if(r>0){if(e>=this.xmax)return null;(a=(this.xmax-e)/r)<o&&(s=this.xmax,c=n+(o=a)*i)}else if(r<0){if(e<=this.xmin)return null;(a=(this.xmin-e)/r)<o&&(s=this.xmin,c=n+(o=a)*i)}return[s,c]}_edgecode(e,n){return(e===this.xmin?1:e===this.xmax?2:0)|(n===this.ymin?4:n===this.ymax?8:0)}_regioncode(e,n){return(e<this.xmin?1:e>this.xmax?2:0)|(n<this.ymin?4:n>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let n=0;n<e.length;n+=2){let r=(n+2)%e.length,i=(n+4)%e.length;(e[n]===e[r]&&e[r]===e[i]||e[n+1]===e[r+1]&&e[r+1]===e[i+1])&&(e.splice(r,2),n-=2)}e.length||(e=null)}return e}},i8=2*Math.PI,Ei=Math.pow;function o8(t){return t[0]}function a8(t){return t[1]}function s8(t){let{triangles:e,coords:n}=t;for(let r=0;r<e.length;r+=3){let i=2*e[r],o=2*e[r+1],a=2*e[r+2];if((n[a]-n[i])*(n[o+1]-n[i+1])-(n[o]-n[i])*(n[a+1]-n[i+1])>1e-10)return!1}return!0}function l8(t,e,n){return[t+Math.sin(t+e)*n,e+Math.cos(t-e)*n]}var $u=class t{static from(e,n=o8,r=a8,i){return new t("length"in e?c8(e,n,r,i):Float64Array.from(u8(e,n,r,i)))}constructor(e){this._delaunator=new $s(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){let e=this._delaunator,n=this.points;if(e.hull&&e.hull.length>2&&s8(e)){this.collinear=Int32Array.from({length:n.length/2},(f,d)=>d).sort((f,d)=>n[2*f]-n[2*d]||n[2*f+1]-n[2*d+1]);let c=this.collinear[0],l=this.collinear[this.collinear.length-1],u=[n[2*c],n[2*c+1],n[2*l],n[2*l+1]],h=1e-8*Math.hypot(u[3]-u[1],u[2]-u[0]);for(let f=0,d=n.length/2;f<d;++f){let m=l8(n[2*f],n[2*f+1],h);n[2*f]=m[0],n[2*f+1]=m[1]}this._delaunator=new $s(n)}else delete this.collinear;let r=this.halfedges=this._delaunator.halfedges,i=this.hull=this._delaunator.hull,o=this.triangles=this._delaunator.triangles,a=this.inedges.fill(-1),s=this._hullIndex.fill(-1);for(let c=0,l=r.length;c<l;++c){let u=o[c%3===2?c-2:c+1];(r[c]===-1||a[u]===-1)&&(a[u]=c)}for(let c=0,l=i.length;c<l;++c)s[i[c]]=c;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],a[i[0]]=1,i.length===2&&(a[i[1]]=0,this.triangles[1]=i[1],this.triangles[2]=i[1]))}voronoi(e){return new zs(this,e)}*neighbors(e){let{inedges:n,hull:r,_hullIndex:i,halfedges:o,triangles:a,collinear:s}=this;if(s){let h=s.indexOf(e);h>0&&(yield s[h-1]),h<s.length-1&&(yield s[h+1]);return}let c=n[e];if(c===-1)return;let l=c,u=-1;do{if(yield u=a[l],l=l%3===2?l-2:l+1,a[l]!==e)return;if(l=o[l],l===-1){let h=r[(i[e]+1)%r.length];h!==u&&(yield h);return}}while(l!==c)}find(e,n,r=0){if(e=+e,e!==e||(n=+n,n!==n))return-1;let i=r,o;for(;(o=this._step(r,e,n))>=0&&o!==r&&o!==i;)r=o;return o}_step(e,n,r){let{inedges:i,hull:o,_hullIndex:a,halfedges:s,triangles:c,points:l}=this;if(l.length<2)return-1;if(i[e]===-1)return(e+1)%(l.length>>1);let u=e,h=Ei(n-l[e*2],2)+Ei(r-l[e*2+1],2),f=i[e],d=f;do{let m=c[d],p=Ei(n-l[m*2],2)+Ei(r-l[m*2+1],2);if(p<h&&(h=p,u=m),d=d%3===2?d-2:d+1,c[d]!==e)break;if(d=s[d],d===-1){if(d=o[(a[e]+1)%o.length],d!==m&&Ei(n-l[d*2],2)+Ei(r-l[d*2+1],2)<h)return d;break}}while(d!==f);return u}render(e){let n=e==null?e=new Rn:void 0,{points:r,halfedges:i,triangles:o}=this;for(let a=0,s=i.length;a<s;++a){let c=i[a];if(c<a)continue;let l=o[a]*2,u=o[c]*2;e.moveTo(r[l],r[l+1]),e.lineTo(r[u],r[u+1])}return this.renderHull(e),n&&n.value()}renderPoints(e,n){n===void 0&&(!e||typeof e.moveTo!="function")&&(n=e,e=null),n=n==null?2:+n;let r=e==null?e=new Rn:void 0,{points:i}=this;for(let o=0,a=i.length&-2;o<a;o+=2){let s=i[o],c=i[o+1];e.moveTo(s+n,c),e.arc(s,c,n,0,i8)}return r&&r.value()}renderHull(e){let n=e==null?e=new Rn:void 0,{hull:r,points:i}=this,o=r[0]*2,a=r.length;e.moveTo(i[o],i[o+1]);for(let s=1;s<a;++s){let c=2*r[s];e.lineTo(i[c],i[c+1])}return e.closePath(),n&&n.value()}hullPolygon(){let e=new Fo;return this.renderHull(e),e.value()}renderTriangle(e,n){let r=n==null?n=new Rn:void 0,{points:i,triangles:o}=this,a=o[e*=3]*2,s=o[e+1]*2,c=o[e+2]*2;return n.moveTo(i[a],i[a+1]),n.lineTo(i[s],i[s+1]),n.lineTo(i[c],i[c+1]),n.closePath(),r&&r.value()}*trianglePolygons(){let{triangles:e}=this;for(let n=0,r=e.length/3;n<r;++n)yield this.trianglePolygon(n)}trianglePolygon(e){let n=new Fo;return this.renderTriangle(e,n),n.value()}};function c8(t,e,n,r){let i=t.length,o=new Float64Array(i*2);for(let a=0;a<i;++a){let s=t[a];o[a*2]=e.call(r,s,a,t),o[a*2+1]=n.call(r,s,a,t)}return o}function*u8(t,e,n,r){let i=0;for(let o of t)yield e.call(r,o,i,t),yield n.call(r,o,i,t),++i}var Cp={},zu={},Nu=34,To=10,Ru=13;function Tp(t){return new Function("d","return {"+t.map(function(e,n){return JSON.stringify(e)+": d["+n+'] || ""'}).join(",")+"}")}function f8(t,e){var n=Tp(t);return function(r,i){return e(n(r),i,t)}}function Fp(t){var e=Object.create(null),n=[];return t.forEach(function(r){for(var i in r)i in e||n.push(e[i]=i)}),n}function Te(t,e){var n=t+"",r=n.length;return r<e?new Array(e-r+1).join(0)+n:n}function h8(t){return t<0?"-"+Te(-t,6):t>9999?"+"+Te(t,6):Te(t,4)}function d8(t){var e=t.getUTCHours(),n=t.getUTCMinutes(),r=t.getUTCSeconds(),i=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":h8(t.getUTCFullYear())+"-"+Te(t.getUTCMonth()+1,2)+"-"+Te(t.getUTCDate(),2)+(i?"T"+Te(e,2)+":"+Te(n,2)+":"+Te(r,2)+"."+Te(i,3)+"Z":r?"T"+Te(e,2)+":"+Te(n,2)+":"+Te(r,2)+"Z":n||e?"T"+Te(e,2)+":"+Te(n,2)+"Z":"")}function Oo(t){var e=new RegExp('["'+t+`
|
|
2
|
+
\r]`),n=t.charCodeAt(0);function r(h,f){var d,m,p=i(h,function(g,y){if(d)return d(g,y-1);m=g,d=f?f8(g,f):Tp(g)});return p.columns=m||[],p}function i(h,f){var d=[],m=h.length,p=0,g=0,y,w=m<=0,b=!1;h.charCodeAt(m-1)===To&&--m,h.charCodeAt(m-1)===Ru&&--m;function v(){if(w)return zu;if(b)return b=!1,Cp;var S,k=p,C;if(h.charCodeAt(k)===Nu){for(;p++<m&&h.charCodeAt(p)!==Nu||h.charCodeAt(++p)===Nu;);return(S=p)>=m?w=!0:(C=h.charCodeAt(p++))===To?b=!0:C===Ru&&(b=!0,h.charCodeAt(p)===To&&++p),h.slice(k+1,S-1).replace(/""/g,'"')}for(;p<m;){if((C=h.charCodeAt(S=p++))===To)b=!0;else if(C===Ru)b=!0,h.charCodeAt(p)===To&&++p;else if(C!==n)continue;return h.slice(k,S)}return w=!0,h.slice(k,m)}for(;(y=v())!==zu;){for(var _=[];y!==Cp&&y!==zu;)_.push(y),y=v();f&&(_=f(_,g++))==null||d.push(_)}return d}function o(h,f){return h.map(function(d){return f.map(function(m){return u(d[m])}).join(t)})}function a(h,f){return f==null&&(f=Fp(h)),[f.map(u).join(t)].concat(o(h,f)).join(`
|
|
3
|
+
`)}function s(h,f){return f==null&&(f=Fp(h)),o(h,f).join(`
|
|
4
4
|
`)}function c(h){return h.map(l).join(`
|
|
5
|
-
`)}function l(h){return h.map(u).join(t)}function u(h){return h==null?"":h instanceof Date?f8(h):e.test(h+="")?'"'+h.replace(/"/g,'""')+'"':h}return{parse:r,parseRows:i,format:a,formatBody:s,formatRows:c,formatRow:l,formatValue:u}}var Or=To(","),Nu=Or.parse,h8=Or.parseRows,d8=Or.format,p8=Or.formatBody,g8=Or.formatRows,m8=Or.formatRow,y8=Or.formatValue,Br=To(" "),Ru=Br.parse,b8=Br.parseRows,v8=Br.format,w8=Br.formatBody,x8=Br.formatRows,_8=Br.formatRow,S8=Br.formatValue;function k8(t){for(var e in t){var n=t[e].trim(),r,i;if(!n)n=null;else if(n==="true")n=!0;else if(n==="false")n=!1;else if(n==="NaN")n=NaN;else if(!isNaN(r=+n))n=r;else if(i=n.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/))A8&&i[4]&&!i[7]&&(n=n.replace(/-/g,"/").replace(/T/," ")),n=new Date(n);else continue;t[e]=n}return t}var A8=new Date("2019-01-01T00:00").getHours()||new Date("2019-07-01T00:00").getHours();function E8(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.blob()}function M8(t,e){return fetch(t,e).then(E8)}function C8(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.arrayBuffer()}function F8(t,e){return fetch(t,e).then(C8)}function T8(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}function zs(t,e){return fetch(t,e).then(T8)}function Fp(t){return function(e,n,r){return arguments.length===2&&typeof n=="function"&&(r=n,n=void 0),zs(e,n).then(function(i){return t(i,r)})}}function O8(t,e,n,r){arguments.length===3&&typeof n=="function"&&(r=n,n=void 0);var i=To(t);return zs(e,n).then(function(o){return i.parse(o,r)})}var B8=Fp(Nu),D8=Fp(Ru);function $8(t,e){return new Promise(function(n,r){var i=new Image;for(var o in e)i[o]=e[o];i.onerror=r,i.onload=function(){n(i)},i.src=t})}function z8(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);if(!(t.status===204||t.status===205))return t.json()}function N8(t,e){return fetch(t,e).then(z8)}function Pu(t){return(e,n)=>zs(e,n).then(r=>new DOMParser().parseFromString(r,t))}var R8=Pu("application/xml"),P8=Pu("text/html"),I8=Pu("image/svg+xml");function L8(t){let e=+this._x.call(null,t),n=+this._y.call(null,t);return Op(this.cover(e,n),e,n,t)}function Op(t,e,n,r){if(isNaN(e)||isNaN(n))return t;var i,o=t._root,a={data:r},s=t._x0,c=t._y0,l=t._x1,u=t._y1,h,f,d,m,p,g,y,w;if(!o)return t._root=a,t;for(;o.length;)if((p=e>=(h=(s+l)/2))?s=h:l=h,(g=n>=(f=(c+u)/2))?c=f:u=f,i=o,!(o=o[y=g<<1|p]))return i[y]=a,t;if(d=+t._x.call(null,o.data),m=+t._y.call(null,o.data),e===d&&n===m)return a.next=o,i?i[y]=a:t._root=a,t;do i=i?i[y]=new Array(4):t._root=new Array(4),(p=e>=(h=(s+l)/2))?s=h:l=h,(g=n>=(f=(c+u)/2))?c=f:u=f;while((y=g<<1|p)===(w=(m>=f)<<1|d>=h));return i[w]=o,i[y]=a,t}function q8(t){Array.isArray(t)||(t=Array.from(t));let e=t.length,n=new Float64Array(e),r=new Float64Array(e),i=1/0,o=i,a=-i,s=a;for(let c=0,l,u,h;c<e;++c){if(isNaN(u=+this._x.call(null,l=t[c]))||isNaN(h=+this._y.call(null,l))){n[c]=NaN;continue}n[c]=u,r[c]=h,u<i&&(i=u),u>a&&(a=u),h<o&&(o=h),h>s&&(s=h)}if(i>a||o>s)return this;this.cover(i,o).cover(a,s);for(let c=0;c<e;++c)Op(this,n[c],r[c],t[c]);return this}function Y8(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(n))i=(n=Math.floor(t))+1,o=(r=Math.floor(e))+1;else{for(var a=i-n||1,s=this._root,c,l;n>t||t>=i||r>e||e>=o;)switch(l=(e<r)<<1|t<n,c=new Array(4),c[l]=s,s=c,a*=2,l){case 0:i=n+a,o=r+a;break;case 1:n=i-a,o=r+a;break;case 2:i=n+a,r=o-a;break;case 3:n=i-a,r=o-a;break}this._root&&this._root.length&&(this._root=s)}return this._x0=n,this._y0=r,this._x1=i,this._y1=o,this}function U8(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function H8(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]]}function ve(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i}function W8(t,e,n){var r,i=this._x0,o=this._y0,a,s,c,l,u=this._x1,h=this._y1,f=[],d=this._root,m,p;for(d&&f.push(new ve(d,i,o,u,h)),n==null?n=1/0:(i=t-n,o=e-n,u=t+n,h=e+n,n*=n);m=f.pop();)if(!(!(d=m.node)||(a=m.x0)>u||(s=m.y0)>h||(c=m.x1)<i||(l=m.y1)<o))if(d.length){var g=(a+c)/2,y=(s+l)/2;f.push(new ve(d[3],g,y,c,l),new ve(d[2],a,y,g,l),new ve(d[1],g,s,c,y),new ve(d[0],a,s,g,y)),(p=(e>=y)<<1|t>=g)&&(m=f[f.length-1],f[f.length-1]=f[f.length-1-p],f[f.length-1-p]=m)}else{var w=t-+this._x.call(null,d.data),b=e-+this._y.call(null,d.data),v=w*w+b*b;if(v<n){var x=Math.sqrt(n=v);i=t-x,o=e-x,u=t+x,h=e+x,r=d.data}}return r}function j8(t){if(isNaN(u=+this._x.call(null,t))||isNaN(h=+this._y.call(null,t)))return this;var e,n=this._root,r,i,o,a=this._x0,s=this._y0,c=this._x1,l=this._y1,u,h,f,d,m,p,g,y;if(!n)return this;if(n.length)for(;;){if((m=u>=(f=(a+c)/2))?a=f:c=f,(p=h>=(d=(s+l)/2))?s=d:l=d,e=n,!(n=n[g=p<<1|m]))return this;if(!n.length)break;(e[g+1&3]||e[g+2&3]||e[g+3&3])&&(r=e,y=g)}for(;n.data!==t;)if(i=n,!(n=n.next))return this;return(o=n.next)&&delete n.next,i?(o?i.next=o:delete i.next,this):e?(o?e[g]=o:delete e[g],(n=e[0]||e[1]||e[2]||e[3])&&n===(e[3]||e[2]||e[1]||e[0])&&!n.length&&(r?r[y]=n:this._root=n),this):(this._root=o,this)}function X8(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function G8(){return this._root}function V8(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function Z8(t){var e=[],n,r=this._root,i,o,a,s,c;for(r&&e.push(new ve(r,this._x0,this._y0,this._x1,this._y1));n=e.pop();)if(!t(r=n.node,o=n.x0,a=n.y0,s=n.x1,c=n.y1)&&r.length){var l=(o+s)/2,u=(a+c)/2;(i=r[3])&&e.push(new ve(i,l,u,s,c)),(i=r[2])&&e.push(new ve(i,o,u,l,c)),(i=r[1])&&e.push(new ve(i,l,a,s,u)),(i=r[0])&&e.push(new ve(i,o,a,l,u))}return this}function K8(t){var e=[],n=[],r;for(this._root&&e.push(new ve(this._root,this._x0,this._y0,this._x1,this._y1));r=e.pop();){var i=r.node;if(i.length){var o,a=r.x0,s=r.y0,c=r.x1,l=r.y1,u=(a+c)/2,h=(s+l)/2;(o=i[0])&&e.push(new ve(o,a,s,u,h)),(o=i[1])&&e.push(new ve(o,u,s,c,h)),(o=i[2])&&e.push(new ve(o,a,h,u,l)),(o=i[3])&&e.push(new ve(o,u,h,c,l))}n.push(r)}for(;r=n.pop();)t(r.node,r.x0,r.y0,r.x1,r.y1);return this}function Q8(t){return t[0]}function J8(t){return arguments.length?(this._x=t,this):this._x}function t4(t){return t[1]}function e4(t){return arguments.length?(this._y=t,this):this._y}function Oo(t,e,n){var r=new Iu(e??Q8,n??t4,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function Iu(t,e,n,r,i,o){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function Tp(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var we=Oo.prototype=Iu.prototype;we.copy=function(){var t=new Iu(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,n,r;if(!e)return t;if(!e.length)return t._root=Tp(e),t;for(n=[{source:e,target:t._root=new Array(4)}];e=n.pop();)for(var i=0;i<4;++i)(r=e.source[i])&&(r.length?n.push({source:r,target:e.target[i]=new Array(4)}):e.target[i]=Tp(r));return t};we.add=L8;we.addAll=q8;we.cover=Y8;we.data=U8;we.extent=H8;we.find=W8;we.remove=j8;we.removeAll=X8;we.root=G8;we.size=V8;we.visit=Z8;we.visitAfter=K8;we.x=J8;we.y=e4;function n4(t,e){var n,r=1;t==null&&(t=0),e==null&&(e=0);function i(){var o,a=n.length,s,c=0,l=0;for(o=0;o<a;++o)s=n[o],c+=s.x,l+=s.y;for(c=(c/a-t)*r,l=(l/a-e)*r,o=0;o<a;++o)s=n[o],s.x-=c,s.y-=l}return i.initialize=function(o){n=o},i.x=function(o){return arguments.length?(t=+o,i):t},i.y=function(o){return arguments.length?(e=+o,i):e},i.strength=function(o){return arguments.length?(r=+o,i):r},i}function Vt(t){return function(){return t}}function cr(t){return(t()-.5)*1e-6}function r4(t){return t.x+t.vx}function i4(t){return t.y+t.vy}function o4(t){var e,n,r,i=1,o=1;typeof t!="function"&&(t=Vt(t==null?1:+t));function a(){for(var l,u=e.length,h,f,d,m,p,g,y=0;y<o;++y)for(h=Oo(e,r4,i4).visitAfter(s),l=0;l<u;++l)f=e[l],p=n[f.index],g=p*p,d=f.x+f.vx,m=f.y+f.vy,h.visit(w);function w(b,v,x,S,k){var C=b.data,F=b.r,A=p+F;if(C){if(C.index>f.index){var E=d-C.x-C.vx,D=m-C.y-C.vy,$=E*E+D*D;$<A*A&&(E===0&&(E=cr(r),$+=E*E),D===0&&(D=cr(r),$+=D*D),$=(A-($=Math.sqrt($)))/$*i,f.vx+=(E*=$)*(A=(F*=F)/(g+F)),f.vy+=(D*=$)*A,C.vx-=E*(A=1-A),C.vy-=D*A)}return}return v>d+A||S<d-A||x>m+A||k<m-A}}function s(l){if(l.data)return l.r=n[l.data.index];for(var u=l.r=0;u<4;++u)l[u]&&l[u].r>l.r&&(l.r=l[u].r)}function c(){if(e){var l,u=e.length,h;for(n=new Array(u),l=0;l<u;++l)h=e[l],n[h.index]=+t(h,l,e)}}return a.initialize=function(l,u){e=l,r=u,c()},a.iterations=function(l){return arguments.length?(o=+l,a):o},a.strength=function(l){return arguments.length?(i=+l,a):i},a.radius=function(l){return arguments.length?(t=typeof l=="function"?l:Vt(+l),c(),a):t},a}function a4(t){return t.index}function Bp(t,e){var n=t.get(e);if(!n)throw new Error("node not found: "+e);return n}function s4(t){var e=a4,n=h,r,i=Vt(30),o,a,s,c,l,u=1;t==null&&(t=[]);function h(g){return 1/Math.min(s[g.source.index],s[g.target.index])}function f(g){for(var y=0,w=t.length;y<u;++y)for(var b=0,v,x,S,k,C,F,A;b<w;++b)v=t[b],x=v.source,S=v.target,k=S.x+S.vx-x.x-x.vx||cr(l),C=S.y+S.vy-x.y-x.vy||cr(l),F=Math.sqrt(k*k+C*C),F=(F-o[b])/F*g*r[b],k*=F,C*=F,S.vx-=k*(A=c[b]),S.vy-=C*A,x.vx+=k*(A=1-A),x.vy+=C*A}function d(){if(a){var g,y=a.length,w=t.length,b=new Map(a.map((x,S)=>[e(x,S,a),x])),v;for(g=0,s=new Array(y);g<w;++g)v=t[g],v.index=g,typeof v.source!="object"&&(v.source=Bp(b,v.source)),typeof v.target!="object"&&(v.target=Bp(b,v.target)),s[v.source.index]=(s[v.source.index]||0)+1,s[v.target.index]=(s[v.target.index]||0)+1;for(g=0,c=new Array(w);g<w;++g)v=t[g],c[g]=s[v.source.index]/(s[v.source.index]+s[v.target.index]);r=new Array(w),m(),o=new Array(w),p()}}function m(){if(a)for(var g=0,y=t.length;g<y;++g)r[g]=+n(t[g],g,t)}function p(){if(a)for(var g=0,y=t.length;g<y;++g)o[g]=+i(t[g],g,t)}return f.initialize=function(g,y){a=g,l=y,d()},f.links=function(g){return arguments.length?(t=g,d(),f):t},f.id=function(g){return arguments.length?(e=g,f):e},f.iterations=function(g){return arguments.length?(u=+g,f):u},f.strength=function(g){return arguments.length?(n=typeof g=="function"?g:Vt(+g),m(),f):n},f.distance=function(g){return arguments.length?(i=typeof g=="function"?g:Vt(+g),p(),f):i},f}var l4=1664525,c4=1013904223,Dp=4294967296;function u4(){let t=1;return()=>(t=(l4*t+c4)%Dp)/Dp}function f4(t){return t.x}function h4(t){return t.y}var d4=10,p4=Math.PI*(3-Math.sqrt(5));function g4(t){var e,n=1,r=.001,i=1-Math.pow(r,1/300),o=0,a=.6,s=new Map,c=bi(h),l=qe("tick","end"),u=u4();t==null&&(t=[]);function h(){f(),l.call("tick",e),n<r&&(c.stop(),l.call("end",e))}function f(p){var g,y=t.length,w;p===void 0&&(p=1);for(var b=0;b<p;++b)for(n+=(o-n)*i,s.forEach(function(v){v(n)}),g=0;g<y;++g)w=t[g],w.fx==null?w.x+=w.vx*=a:(w.x=w.fx,w.vx=0),w.fy==null?w.y+=w.vy*=a:(w.y=w.fy,w.vy=0);return e}function d(){for(var p=0,g=t.length,y;p<g;++p){if(y=t[p],y.index=p,y.fx!=null&&(y.x=y.fx),y.fy!=null&&(y.y=y.fy),isNaN(y.x)||isNaN(y.y)){var w=d4*Math.sqrt(.5+p),b=p*p4;y.x=w*Math.cos(b),y.y=w*Math.sin(b)}(isNaN(y.vx)||isNaN(y.vy))&&(y.vx=y.vy=0)}}function m(p){return p.initialize&&p.initialize(t,u),p}return d(),e={tick:f,restart:function(){return c.restart(h),e},stop:function(){return c.stop(),e},nodes:function(p){return arguments.length?(t=p,d(),s.forEach(m),e):t},alpha:function(p){return arguments.length?(n=+p,e):n},alphaMin:function(p){return arguments.length?(r=+p,e):r},alphaDecay:function(p){return arguments.length?(i=+p,e):+i},alphaTarget:function(p){return arguments.length?(o=+p,e):o},velocityDecay:function(p){return arguments.length?(a=1-p,e):1-a},randomSource:function(p){return arguments.length?(u=p,s.forEach(m),e):u},force:function(p,g){return arguments.length>1?(g==null?s.delete(p):s.set(p,m(g)),e):s.get(p)},find:function(p,g,y){var w=0,b=t.length,v,x,S,k,C;for(y==null?y=1/0:y*=y,w=0;w<b;++w)k=t[w],v=p-k.x,x=g-k.y,S=v*v+x*x,S<y&&(C=k,y=S);return C},on:function(p,g){return arguments.length>1?(l.on(p,g),e):l.on(p)}}}function m4(){var t,e,n,r,i=Vt(-30),o,a=1,s=1/0,c=.81;function l(d){var m,p=t.length,g=Oo(t,f4,h4).visitAfter(h);for(r=d,m=0;m<p;++m)e=t[m],g.visit(f)}function u(){if(t){var d,m=t.length,p;for(o=new Array(m),d=0;d<m;++d)p=t[d],o[p.index]=+i(p,d,t)}}function h(d){var m=0,p,g,y=0,w,b,v;if(d.length){for(w=b=v=0;v<4;++v)(p=d[v])&&(g=Math.abs(p.value))&&(m+=p.value,y+=g,w+=g*p.x,b+=g*p.y);d.x=w/y,d.y=b/y}else{p=d,p.x=p.data.x,p.y=p.data.y;do m+=o[p.data.index];while(p=p.next)}d.value=m}function f(d,m,p,g){if(!d.value)return!0;var y=d.x-e.x,w=d.y-e.y,b=g-m,v=y*y+w*w;if(b*b/c<v)return v<s&&(y===0&&(y=cr(n),v+=y*y),w===0&&(w=cr(n),v+=w*w),v<a&&(v=Math.sqrt(a*v)),e.vx+=y*d.value*r/v,e.vy+=w*d.value*r/v),!0;if(d.length||v>=s)return;(d.data!==e||d.next)&&(y===0&&(y=cr(n),v+=y*y),w===0&&(w=cr(n),v+=w*w),v<a&&(v=Math.sqrt(a*v)));do d.data!==e&&(b=o[d.data.index]*r/v,e.vx+=y*b,e.vy+=w*b);while(d=d.next)}return l.initialize=function(d,m){t=d,n=m,u()},l.strength=function(d){return arguments.length?(i=typeof d=="function"?d:Vt(+d),u(),l):i},l.distanceMin=function(d){return arguments.length?(a=d*d,l):Math.sqrt(a)},l.distanceMax=function(d){return arguments.length?(s=d*d,l):Math.sqrt(s)},l.theta=function(d){return arguments.length?(c=d*d,l):Math.sqrt(c)},l}function y4(t,e,n){var r,i=Vt(.1),o,a;typeof t!="function"&&(t=Vt(+t)),e==null&&(e=0),n==null&&(n=0);function s(l){for(var u=0,h=r.length;u<h;++u){var f=r[u],d=f.x-e||1e-6,m=f.y-n||1e-6,p=Math.sqrt(d*d+m*m),g=(a[u]-p)*o[u]*l/p;f.vx+=d*g,f.vy+=m*g}}function c(){if(r){var l,u=r.length;for(o=new Array(u),a=new Array(u),l=0;l<u;++l)a[l]=+t(r[l],l,r),o[l]=isNaN(a[l])?0:+i(r[l],l,r)}}return s.initialize=function(l){r=l,c()},s.strength=function(l){return arguments.length?(i=typeof l=="function"?l:Vt(+l),c(),s):i},s.radius=function(l){return arguments.length?(t=typeof l=="function"?l:Vt(+l),c(),s):t},s.x=function(l){return arguments.length?(e=+l,s):e},s.y=function(l){return arguments.length?(n=+l,s):n},s}function b4(t){var e=Vt(.1),n,r,i;typeof t!="function"&&(t=Vt(t==null?0:+t));function o(s){for(var c=0,l=n.length,u;c<l;++c)u=n[c],u.vx+=(i[c]-u.x)*r[c]*s}function a(){if(n){var s,c=n.length;for(r=new Array(c),i=new Array(c),s=0;s<c;++s)r[s]=isNaN(i[s]=+t(n[s],s,n))?0:+e(n[s],s,n)}}return o.initialize=function(s){n=s,a()},o.strength=function(s){return arguments.length?(e=typeof s=="function"?s:Vt(+s),a(),o):e},o.x=function(s){return arguments.length?(t=typeof s=="function"?s:Vt(+s),a(),o):t},o}function v4(t){var e=Vt(.1),n,r,i;typeof t!="function"&&(t=Vt(t==null?0:+t));function o(s){for(var c=0,l=n.length,u;c<l;++c)u=n[c],u.vy+=(i[c]-u.y)*r[c]*s}function a(){if(n){var s,c=n.length;for(r=new Array(c),i=new Array(c),s=0;s<c;++s)r[s]=isNaN(i[s]=+t(n[s],s,n))?0:+e(n[s],s,n)}}return o.initialize=function(s){n=s,a()},o.strength=function(s){return arguments.length?(e=typeof s=="function"?s:Vt(+s),a(),o):e},o.y=function(s){return arguments.length?(t=typeof s=="function"?s:Vt(+s),a(),o):t},o}function w4(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function Rs(t,e){if(!isFinite(t)||t===0)return null;var n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"),r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function Mi(t){return t=Rs(Math.abs(t)),t?t[1]:NaN}function x4(t,e){return function(n,r){for(var i=n.length,o=[],a=0,s=t[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),o.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}}function _4(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var S4=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Dr(t){if(!(e=S4.exec(t)))throw new Error("invalid format: "+t);var e;return new Is({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}Dr.prototype=Is.prototype;function Is(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}Is.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function k4(t){t:for(var e=t.length,n=1,r=-1,i;n<e;++n)switch(t[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+t[n])break t;r>0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(i+1):t}var Ps;function A4(t,e){var n=Rs(t,e);if(!n)return Ps=void 0,t.toPrecision(e);var r=n[0],i=n[1],o=i-(Ps=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+Rs(t,Math.max(0,e+o-1))[0]}function $p(t,e){var n=Rs(t,e);if(!n)return t+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}var zp={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:w4,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>$p(t*100,e),r:$p,s:A4,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Np(t){return t}var Rp=Array.prototype.map,Pp=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Ip(t){var e=t.grouping===void 0||t.thousands===void 0?Np:x4(Rp.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",o=t.numerals===void 0?Np:_4(Rp.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"−":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function l(h,f){h=Dr(h);var d=h.fill,m=h.align,p=h.sign,g=h.symbol,y=h.zero,w=h.width,b=h.comma,v=h.precision,x=h.trim,S=h.type;S==="n"?(b=!0,S="g"):zp[S]||(v===void 0&&(v=12),x=!0,S="g"),(y||d==="0"&&m==="=")&&(y=!0,d="0",m="=");var k=(f&&f.prefix!==void 0?f.prefix:"")+(g==="$"?n:g==="#"&&/[boxX]/.test(S)?"0"+S.toLowerCase():""),C=(g==="$"?r:/[%p]/.test(S)?a:"")+(f&&f.suffix!==void 0?f.suffix:""),F=zp[S],A=/[defgprs%]/.test(S);v=v===void 0?6:/[gprs]/.test(S)?Math.max(1,Math.min(21,v)):Math.max(0,Math.min(20,v));function E(D){var $=k,M=C,T,B,N;if(S==="c")M=F(D)+M,D="";else{D=+D;var L=D<0||1/D<0;if(D=isNaN(D)?c:F(Math.abs(D),v),x&&(D=k4(D)),L&&+D==0&&p!=="+"&&(L=!1),$=(L?p==="("?p:s:p==="-"||p==="("?"":p)+$,M=(S==="s"&&!isNaN(D)&&Ps!==void 0?Pp[8+Ps/3]:"")+M+(L&&p==="("?")":""),A){for(T=-1,B=D.length;++T<B;)if(N=D.charCodeAt(T),48>N||N>57){M=(N===46?i+D.slice(T+1):D.slice(T))+M,D=D.slice(0,T);break}}}b&&!y&&(D=e(D,1/0));var q=$.length+D.length+M.length,U=q<w?new Array(w-q+1).join(d):"";switch(b&&y&&(D=e(U+D,U.length?w-M.length:1/0),U=""),m){case"<":D=$+D+M+U;break;case"=":D=$+U+D+M;break;case"^":D=U.slice(0,q=U.length>>1)+$+D+M+U.slice(q);break;default:D=U+$+D+M;break}return o(D)}return E.toString=function(){return h+""},E}function u(h,f){var d=Math.max(-8,Math.min(8,Math.floor(Mi(f)/3)))*3,m=Math.pow(10,-d),p=l((h=Dr(h),h.type="f",h),{suffix:Pp[8+d/3]});return function(g){return p(m*g)}}return{format:l,formatPrefix:u}}var Ns,Bo,Ls;Lp({thousands:",",grouping:[3],currency:["$",""]});function Lp(t){return Ns=Ip(t),Bo=Ns.format,Ls=Ns.formatPrefix,Ns}function Lu(t){return Math.max(0,-Mi(Math.abs(t)))}function qu(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Mi(e)/3)))*3-Mi(Math.abs(t)))}function Yu(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Mi(e)-Mi(t))+1}var lt=1e-6,Ho=1e-12,yt=Math.PI,Yt=yt/2,Zs=yt/4,ke=yt*2,Et=180/yt,ct=yt/180,bt=Math.abs,$i=Math.atan,Ae=Math.atan2,ot=Math.cos,qs=Math.ceil,mg=Math.exp,Gu=Math.hypot,Ks=Math.log,Uu=Math.pow,et=Math.sin,Ue=Math.sign||function(t){return t>0?1:t<0?-1:0},Jt=Math.sqrt,vf=Math.tan;function yg(t){return t>1?0:t<-1?yt:Math.acos(t)}function Ee(t){return t>1?Yt:t<-1?-Yt:Math.asin(t)}function qp(t){return(t=et(t/2))*t}function Nt(){}function Qs(t,e){t&&Up.hasOwnProperty(t.type)&&Up[t.type](t,e)}var Yp={Feature:function(t,e){Qs(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r<i;)Qs(n[r].geometry,e)}},Up={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)t=n[r],e.point(t[0],t[1],t[2])},LineString:function(t,e){Vu(t.coordinates,e,0)},MultiLineString:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)Vu(n[r],e,0)},Polygon:function(t,e){Hp(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)Hp(n[r],e)},GeometryCollection:function(t,e){for(var n=t.geometries,r=-1,i=n.length;++r<i;)Qs(n[r],e)}};function Vu(t,e,n){var r=-1,i=t.length-n,o;for(e.lineStart();++r<i;)o=t[r],e.point(o[0],o[1],o[2]);e.lineEnd()}function Hp(t,e){var n=-1,r=t.length;for(e.polygonStart();++n<r;)Vu(t[n],e,1);e.polygonEnd()}function ln(t,e){t&&Yp.hasOwnProperty(t.type)?Yp[t.type](t,e):Qs(t,e)}var Js=new Lt,tl=new Lt,bg,vg,Zu,Ku,Qu,xn={point:Nt,lineStart:Nt,lineEnd:Nt,polygonStart:function(){Js=new Lt,xn.lineStart=E4,xn.lineEnd=M4},polygonEnd:function(){var t=+Js;tl.add(t<0?ke+t:t),this.lineStart=this.lineEnd=this.point=Nt},sphere:function(){tl.add(ke)}};function E4(){xn.point=C4}function M4(){wg(bg,vg)}function C4(t,e){xn.point=wg,bg=t,vg=e,t*=ct,e*=ct,Zu=t,Ku=ot(e=e/2+Zs),Qu=et(e)}function wg(t,e){t*=ct,e*=ct,e=e/2+Zs;var n=t-Zu,r=n>=0?1:-1,i=r*n,o=ot(e),a=et(e),s=Qu*a,c=Ku*o+s*ot(i),l=s*r*et(i);Js.add(Ae(l,c)),Zu=t,Ku=o,Qu=a}function F4(t){return tl=new Lt,ln(t,xn),tl*2}function el(t){return[Ae(t[1],t[0]),Ee(t[2])]}function zr(t){var e=t[0],n=t[1],r=ot(n);return[r*ot(e),r*et(e),et(n)]}function Ys(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Oi(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function Hu(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function Us(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function nl(t){var e=Jt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}var zt,Oe,qt,Pe,$r,xg,_g,Ti,Io,ur,In,Rn={point:Ju,lineStart:Wp,lineEnd:jp,polygonStart:function(){Rn.point=kg,Rn.lineStart=T4,Rn.lineEnd=O4,Io=new Lt,xn.polygonStart()},polygonEnd:function(){xn.polygonEnd(),Rn.point=Ju,Rn.lineStart=Wp,Rn.lineEnd=jp,Js<0?(zt=-(qt=180),Oe=-(Pe=90)):Io>lt?Pe=90:Io<-lt&&(Oe=-90),In[0]=zt,In[1]=qt},sphere:function(){zt=-(qt=180),Oe=-(Pe=90)}};function Ju(t,e){ur.push(In=[zt=t,qt=t]),e<Oe&&(Oe=e),e>Pe&&(Pe=e)}function Sg(t,e){var n=zr([t*ct,e*ct]);if(Ti){var r=Oi(Ti,n),i=[r[1],-r[0],0],o=Oi(i,r);nl(o),o=el(o);var a=t-$r,s=a>0?1:-1,c=o[0]*Et*s,l,u=bt(a)>180;u^(s*$r<c&&c<s*t)?(l=o[1]*Et,l>Pe&&(Pe=l)):(c=(c+360)%360-180,u^(s*$r<c&&c<s*t)?(l=-o[1]*Et,l<Oe&&(Oe=l)):(e<Oe&&(Oe=e),e>Pe&&(Pe=e))),u?t<$r?Re(zt,t)>Re(zt,qt)&&(qt=t):Re(t,qt)>Re(zt,qt)&&(zt=t):qt>=zt?(t<zt&&(zt=t),t>qt&&(qt=t)):t>$r?Re(zt,t)>Re(zt,qt)&&(qt=t):Re(t,qt)>Re(zt,qt)&&(zt=t)}else ur.push(In=[zt=t,qt=t]);e<Oe&&(Oe=e),e>Pe&&(Pe=e),Ti=n,$r=t}function Wp(){Rn.point=Sg}function jp(){In[0]=zt,In[1]=qt,Rn.point=Ju,Ti=null}function kg(t,e){if(Ti){var n=t-$r;Io.add(bt(n)>180?n+(n>0?360:-360):n)}else xg=t,_g=e;xn.point(t,e),Sg(t,e)}function T4(){xn.lineStart()}function O4(){kg(xg,_g),xn.lineEnd(),bt(Io)>lt&&(zt=-(qt=180)),In[0]=zt,In[1]=qt,Ti=null}function Re(t,e){return(e-=t)<0?e+360:e}function B4(t,e){return t[0]-e[0]}function Xp(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:e<t[0]||t[1]<e}function D4(t){var e,n,r,i,o,a,s;if(Pe=qt=-(zt=Oe=1/0),ur=[],ln(t,Rn),n=ur.length){for(ur.sort(B4),e=1,r=ur[0],o=[r];e<n;++e)i=ur[e],Xp(r,i[0])||Xp(r,i[1])?(Re(r[0],i[1])>Re(r[0],r[1])&&(r[1]=i[1]),Re(i[0],r[1])>Re(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(a=-1/0,n=o.length-1,e=0,r=o[n];e<=n;r=i,++e)i=o[e],(s=Re(r[1],i[0]))>a&&(a=s,zt=i[0],qt=r[1])}return ur=In=null,zt===1/0||Oe===1/0?[[NaN,NaN],[NaN,NaN]]:[[zt,Oe],[qt,Pe]]}var Do,rl,il,ol,al,sl,ll,cl,tf,ef,nf,Ag,Eg,xe,_e,Se,cn={sphere:Nt,point:wf,lineStart:Gp,lineEnd:Vp,polygonStart:function(){cn.lineStart=N4,cn.lineEnd=R4},polygonEnd:function(){cn.lineStart=Gp,cn.lineEnd=Vp}};function wf(t,e){t*=ct,e*=ct;var n=ot(e);Vo(n*ot(t),n*et(t),et(e))}function Vo(t,e,n){++Do,il+=(t-il)/Do,ol+=(e-ol)/Do,al+=(n-al)/Do}function Gp(){cn.point=$4}function $4(t,e){t*=ct,e*=ct;var n=ot(e);xe=n*ot(t),_e=n*et(t),Se=et(e),cn.point=z4,Vo(xe,_e,Se)}function z4(t,e){t*=ct,e*=ct;var n=ot(e),r=n*ot(t),i=n*et(t),o=et(e),a=Ae(Jt((a=_e*o-Se*i)*a+(a=Se*r-xe*o)*a+(a=xe*i-_e*r)*a),xe*r+_e*i+Se*o);rl+=a,sl+=a*(xe+(xe=r)),ll+=a*(_e+(_e=i)),cl+=a*(Se+(Se=o)),Vo(xe,_e,Se)}function Vp(){cn.point=wf}function N4(){cn.point=P4}function R4(){Mg(Ag,Eg),cn.point=wf}function P4(t,e){Ag=t,Eg=e,t*=ct,e*=ct,cn.point=Mg;var n=ot(e);xe=n*ot(t),_e=n*et(t),Se=et(e),Vo(xe,_e,Se)}function Mg(t,e){t*=ct,e*=ct;var n=ot(e),r=n*ot(t),i=n*et(t),o=et(e),a=_e*o-Se*i,s=Se*r-xe*o,c=xe*i-_e*r,l=Gu(a,s,c),u=Ee(l),h=l&&-u/l;tf.add(h*a),ef.add(h*s),nf.add(h*c),rl+=u,sl+=u*(xe+(xe=r)),ll+=u*(_e+(_e=i)),cl+=u*(Se+(Se=o)),Vo(xe,_e,Se)}function I4(t){Do=rl=il=ol=al=sl=ll=cl=0,tf=new Lt,ef=new Lt,nf=new Lt,ln(t,cn);var e=+tf,n=+ef,r=+nf,i=Gu(e,n,r);return i<Ho&&(e=sl,n=ll,r=cl,rl<lt&&(e=il,n=ol,r=al),i=Gu(e,n,r),i<Ho)?[NaN,NaN]:[Ae(n,e)*Et,Ee(r/i)*Et]}function Ci(t){return function(){return t}}function rf(t,e){function n(r,i){return r=t(r,i),e(r[0],r[1])}return t.invert&&e.invert&&(n.invert=function(r,i){return r=e.invert(r,i),r&&t.invert(r[0],r[1])}),n}function of(t,e){return bt(t)>yt&&(t-=Math.round(t/ke)*ke),[t,e]}of.invert=of;function xf(t,e,n){return(t%=ke)?e||n?rf(Kp(t),Qp(e,n)):Kp(t):e||n?Qp(e,n):of}function Zp(t){return function(e,n){return e+=t,bt(e)>yt&&(e-=Math.round(e/ke)*ke),[e,n]}}function Kp(t){var e=Zp(t);return e.invert=Zp(-t),e}function Qp(t,e){var n=ot(t),r=et(t),i=ot(e),o=et(e);function a(s,c){var l=ot(c),u=ot(s)*l,h=et(s)*l,f=et(c),d=f*n+u*r;return[Ae(h*i-d*o,u*n-f*r),Ee(d*i+h*o)]}return a.invert=function(s,c){var l=ot(c),u=ot(s)*l,h=et(s)*l,f=et(c),d=f*i-h*o;return[Ae(h*i+f*o,u*n+d*r),Ee(d*n-u*r)]},a}function Cg(t){t=xf(t[0]*ct,t[1]*ct,t.length>2?t[2]*ct:0);function e(n){return n=t(n[0]*ct,n[1]*ct),n[0]*=Et,n[1]*=Et,n}return e.invert=function(n){return n=t.invert(n[0]*ct,n[1]*ct),n[0]*=Et,n[1]*=Et,n},e}function Fg(t,e,n,r,i,o){if(n){var a=ot(e),s=et(e),c=r*n;i==null?(i=e+r*ke,o=e-c/2):(i=Jp(a,i),o=Jp(a,o),(r>0?i<o:i>o)&&(i+=r*ke));for(var l,u=i;r>0?u>o:u<o;u-=c)l=el([a,-s*ot(u),-s*et(u)]),t.point(l[0],l[1])}}function Jp(t,e){e=zr(e),e[0]-=t,nl(e);var n=yg(-e[1]);return((-e[2]<0?-n:n)+ke-lt)%ke}function L4(){var t=Ci([0,0]),e=Ci(90),n=Ci(2),r,i,o={point:a};function a(c,l){r.push(c=i(c,l)),c[0]*=Et,c[1]*=Et}function s(){var c=t.apply(this,arguments),l=e.apply(this,arguments)*ct,u=n.apply(this,arguments)*ct;return r=[],i=xf(-c[0]*ct,-c[1]*ct,0).invert,Fg(o,l,u,1),c={type:"Polygon",coordinates:[r]},r=i=null,c}return s.center=function(c){return arguments.length?(t=typeof c=="function"?c:Ci([+c[0],+c[1]]),s):t},s.radius=function(c){return arguments.length?(e=typeof c=="function"?c:Ci(+c),s):e},s.precision=function(c){return arguments.length?(n=typeof c=="function"?c:Ci(+c),s):n},s}function Tg(){var t=[],e;return{point:function(n,r,i){e.push([n,r,i])},lineStart:function(){t.push(e=[])},lineEnd:Nt,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function Xs(t,e){return bt(t[0]-e[0])<lt&&bt(t[1]-e[1])<lt}function Hs(t,e,n,r){this.x=t,this.z=e,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function Og(t,e,n,r,i){var o=[],a=[],s,c;if(t.forEach(function(m){if(!((p=m.length-1)<=0)){var p,g=m[0],y=m[p],w;if(Xs(g,y)){if(!g[2]&&!y[2]){for(i.lineStart(),s=0;s<p;++s)i.point((g=m[s])[0],g[1]);i.lineEnd();return}y[0]+=2*lt}o.push(w=new Hs(g,m,null,!0)),a.push(w.o=new Hs(g,null,w,!1)),o.push(w=new Hs(y,m,null,!1)),a.push(w.o=new Hs(y,null,w,!0))}}),!!o.length){for(a.sort(e),tg(o),tg(a),s=0,c=a.length;s<c;++s)a[s].e=n=!n;for(var l=o[0],u,h;;){for(var f=l,d=!0;f.v;)if((f=f.n)===l)return;u=f.z,i.lineStart();do{if(f.v=f.o.v=!0,f.e){if(d)for(s=0,c=u.length;s<c;++s)i.point((h=u[s])[0],h[1]);else r(f.x,f.n.x,1,i);f=f.n}else{if(d)for(u=f.p.z,s=u.length-1;s>=0;--s)i.point((h=u[s])[0],h[1]);else r(f.x,f.p.x,-1,i);f=f.p}f=f.o,u=f.z,d=!d}while(!f.v);i.lineEnd()}}}function tg(t){if(e=t.length){for(var e,n=0,r=t[0],i;++n<e;)r.n=i=t[n],i.p=r,r=i;r.n=i=t[0],i.p=r}}function Wu(t){return bt(t[0])<=yt?t[0]:Ue(t[0])*((bt(t[0])+yt)%ke-yt)}function Bg(t,e){var n=Wu(e),r=e[1],i=et(r),o=[et(n),-ot(n),0],a=0,s=0,c=new Lt;i===1?r=Yt+lt:i===-1&&(r=-Yt-lt);for(var l=0,u=t.length;l<u;++l)if(f=(h=t[l]).length)for(var h,f,d=h[f-1],m=Wu(d),p=d[1]/2+Zs,g=et(p),y=ot(p),w=0;w<f;++w,m=v,g=S,y=k,d=b){var b=h[w],v=Wu(b),x=b[1]/2+Zs,S=et(x),k=ot(x),C=v-m,F=C>=0?1:-1,A=F*C,E=A>yt,D=g*S;if(c.add(Ae(D*F*et(A),y*k+D*ot(A))),a+=E?C+F*ke:C,E^m>=n^v>=n){var $=Oi(zr(d),zr(b));nl($);var M=Oi(o,$);nl(M);var T=(E^C>=0?-1:1)*Ee(M[2]);(r>T||r===T&&($[0]||$[1]))&&(s+=E^C>=0?1:-1)}}return(a<-lt||a<lt&&c<-Ho)^s&1}function Dg(t,e,n,r){return function(i){var o=e(i),a=Tg(),s=e(a),c=!1,l,u,h,f={point:d,lineStart:p,lineEnd:g,polygonStart:function(){f.point=y,f.lineStart=w,f.lineEnd=b,u=[],l=[]},polygonEnd:function(){f.point=d,f.lineStart=p,f.lineEnd=g,u=Ja(u);var v=Bg(l,r);u.length?(c||(i.polygonStart(),c=!0),Og(u,Y4,v,n,i)):v&&(c||(i.polygonStart(),c=!0),i.lineStart(),n(null,null,1,i),i.lineEnd()),c&&(i.polygonEnd(),c=!1),u=l=null},sphere:function(){i.polygonStart(),i.lineStart(),n(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function d(v,x){t(v,x)&&i.point(v,x)}function m(v,x){o.point(v,x)}function p(){f.point=m,o.lineStart()}function g(){f.point=d,o.lineEnd()}function y(v,x){h.push([v,x]),s.point(v,x)}function w(){s.lineStart(),h=[]}function b(){y(h[0][0],h[0][1]),s.lineEnd();var v=s.clean(),x=a.result(),S,k=x.length,C,F,A;if(h.pop(),l.push(h),h=null,!!k){if(v&1){if(F=x[0],(C=F.length-1)>0){for(c||(i.polygonStart(),c=!0),i.lineStart(),S=0;S<C;++S)i.point((A=F[S])[0],A[1]);i.lineEnd()}return}k>1&&v&2&&x.push(x.pop().concat(x.shift())),u.push(x.filter(q4))}}return f}}function q4(t){return t.length>1}function Y4(t,e){return((t=t.x)[0]<0?t[1]-Yt-lt:Yt-t[1])-((e=e.x)[0]<0?e[1]-Yt-lt:Yt-e[1])}var af=Dg(function(){return!0},U4,W4,[-yt,-Yt]);function U4(t){var e=NaN,n=NaN,r=NaN,i;return{lineStart:function(){t.lineStart(),i=1},point:function(o,a){var s=o>0?yt:-yt,c=bt(o-e);bt(c-yt)<lt?(t.point(e,n=(n+a)/2>0?Yt:-Yt),t.point(r,n),t.lineEnd(),t.lineStart(),t.point(s,n),t.point(o,n),i=0):r!==s&&c>=yt&&(bt(e-r)<lt&&(e-=r*lt),bt(o-s)<lt&&(o-=s*lt),n=H4(e,n,o,a),t.point(r,n),t.lineEnd(),t.lineStart(),t.point(s,n),i=0),t.point(e=o,n=a),r=s},lineEnd:function(){t.lineEnd(),e=n=NaN},clean:function(){return 2-i}}}function H4(t,e,n,r){var i,o,a=et(t-n);return bt(a)>lt?$i((et(e)*(o=ot(r))*et(n)-et(r)*(i=ot(e))*et(t))/(i*o*a)):(e+r)/2}function W4(t,e,n,r){var i;if(t==null)i=n*Yt,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(bt(t[0]-e[0])>lt){var o=t[0]<e[0]?yt:-yt;i=n*o/2,r.point(-o,i),r.point(0,i),r.point(o,i)}else r.point(e[0],e[1])}function $g(t){var e=ot(t),n=2*ct,r=e>0,i=bt(e)>lt;function o(u,h,f,d){Fg(d,t,n,f,u,h)}function a(u,h){return ot(u)*ot(h)>e}function s(u){var h,f,d,m,p;return{lineStart:function(){m=d=!1,p=1},point:function(g,y){var w=[g,y],b,v=a(g,y),x=r?v?0:l(g,y):v?l(g+(g<0?yt:-yt),y):0;if(!h&&(m=d=v)&&u.lineStart(),v!==d&&(b=c(h,w),(!b||Xs(h,b)||Xs(w,b))&&(w[2]=1)),v!==d)p=0,v?(u.lineStart(),b=c(w,h),u.point(b[0],b[1])):(b=c(h,w),u.point(b[0],b[1],2),u.lineEnd()),h=b;else if(i&&h&&r^v){var S;!(x&f)&&(S=c(w,h,!0))&&(p=0,r?(u.lineStart(),u.point(S[0][0],S[0][1]),u.point(S[1][0],S[1][1]),u.lineEnd()):(u.point(S[1][0],S[1][1]),u.lineEnd(),u.lineStart(),u.point(S[0][0],S[0][1],3)))}v&&(!h||!Xs(h,w))&&u.point(w[0],w[1]),h=w,d=v,f=x},lineEnd:function(){d&&u.lineEnd(),h=null},clean:function(){return p|(m&&d)<<1}}}function c(u,h,f){var d=zr(u),m=zr(h),p=[1,0,0],g=Oi(d,m),y=Ys(g,g),w=g[0],b=y-w*w;if(!b)return!f&&u;var v=e*y/b,x=-e*w/b,S=Oi(p,g),k=Us(p,v),C=Us(g,x);Hu(k,C);var F=S,A=Ys(k,F),E=Ys(F,F),D=A*A-E*(Ys(k,k)-1);if(!(D<0)){var $=Jt(D),M=Us(F,(-A-$)/E);if(Hu(M,k),M=el(M),!f)return M;var T=u[0],B=h[0],N=u[1],L=h[1],q;B<T&&(q=T,T=B,B=q);var U=B-T,Z=bt(U-yt)<lt,Q=Z||U<lt;if(!Z&&L<N&&(q=N,N=L,L=q),Q?Z?N+L>0^M[1]<(bt(M[0]-T)<lt?N:L):N<=M[1]&&M[1]<=L:U>yt^(T<=M[0]&&M[0]<=B)){var j=Us(F,(-A+$)/E);return Hu(j,k),[M,el(j)]}}}function l(u,h){var f=r?t:yt-t,d=0;return u<-f?d|=1:u>f&&(d|=2),h<-f?d|=4:h>f&&(d|=8),d}return Dg(a,s,o,r?[0,-t]:[-yt,t-yt])}function j4(t,e,n,r,i,o){var a=t[0],s=t[1],c=e[0],l=e[1],u=0,h=1,f=c-a,d=l-s,m;if(m=n-a,!(!f&&m>0)){if(m/=f,f<0){if(m<u)return;m<h&&(h=m)}else if(f>0){if(m>h)return;m>u&&(u=m)}if(m=i-a,!(!f&&m<0)){if(m/=f,f<0){if(m>h)return;m>u&&(u=m)}else if(f>0){if(m<u)return;m<h&&(h=m)}if(m=r-s,!(!d&&m>0)){if(m/=d,d<0){if(m<u)return;m<h&&(h=m)}else if(d>0){if(m>h)return;m>u&&(u=m)}if(m=o-s,!(!d&&m<0)){if(m/=d,d<0){if(m>h)return;m>u&&(u=m)}else if(d>0){if(m<u)return;m<h&&(h=m)}return u>0&&(t[0]=a+u*f,t[1]=s+u*d),h<1&&(e[0]=a+h*f,e[1]=s+h*d),!0}}}}}var $o=1e9,Ws=-$o;function xl(t,e,n,r){function i(l,u){return t<=l&&l<=n&&e<=u&&u<=r}function o(l,u,h,f){var d=0,m=0;if(l==null||(d=a(l,h))!==(m=a(u,h))||c(l,u)<0^h>0)do f.point(d===0||d===3?t:n,d>1?r:e);while((d=(d+h+4)%4)!==m);else f.point(u[0],u[1])}function a(l,u){return bt(l[0]-t)<lt?u>0?0:3:bt(l[0]-n)<lt?u>0?2:1:bt(l[1]-e)<lt?u>0?1:0:u>0?3:2}function s(l,u){return c(l.x,u.x)}function c(l,u){var h=a(l,1),f=a(u,1);return h!==f?h-f:h===0?u[1]-l[1]:h===1?l[0]-u[0]:h===2?l[1]-u[1]:u[0]-l[0]}return function(l){var u=l,h=Tg(),f,d,m,p,g,y,w,b,v,x,S,k={point:C,lineStart:D,lineEnd:$,polygonStart:A,polygonEnd:E};function C(T,B){i(T,B)&&u.point(T,B)}function F(){for(var T=0,B=0,N=d.length;B<N;++B)for(var L=d[B],q=1,U=L.length,Z=L[0],Q,j,H=Z[0],W=Z[1];q<U;++q)Q=H,j=W,Z=L[q],H=Z[0],W=Z[1],j<=r?W>r&&(H-Q)*(r-j)>(W-j)*(t-Q)&&++T:W<=r&&(H-Q)*(r-j)<(W-j)*(t-Q)&&--T;return T}function A(){u=h,f=[],d=[],S=!0}function E(){var T=F(),B=S&&T,N=(f=Ja(f)).length;(B||N)&&(l.polygonStart(),B&&(l.lineStart(),o(null,null,1,l),l.lineEnd()),N&&Og(f,s,T,o,l),l.polygonEnd()),u=l,f=d=m=null}function D(){k.point=M,d&&d.push(m=[]),x=!0,v=!1,w=b=NaN}function $(){f&&(M(p,g),y&&v&&h.rejoin(),f.push(h.result())),k.point=C,v&&u.lineEnd()}function M(T,B){var N=i(T,B);if(d&&m.push([T,B]),x)p=T,g=B,y=N,x=!1,N&&(u.lineStart(),u.point(T,B));else if(N&&v)u.point(T,B);else{var L=[w=Math.max(Ws,Math.min($o,w)),b=Math.max(Ws,Math.min($o,b))],q=[T=Math.max(Ws,Math.min($o,T)),B=Math.max(Ws,Math.min($o,B))];j4(L,q,t,e,n,r)?(v||(u.lineStart(),u.point(L[0],L[1])),u.point(q[0],q[1]),N||u.lineEnd(),S=!1):N&&(u.lineStart(),u.point(T,B),S=!1)}w=T,b=B,v=N}return k}}function X4(){var t=0,e=0,n=960,r=500,i,o,a;return a={stream:function(s){return i&&o===s?i:i=xl(t,e,n,r)(o=s)},extent:function(s){return arguments.length?(t=+s[0][0],e=+s[0][1],n=+s[1][0],r=+s[1][1],i=o=null,a):[[t,e],[n,r]]}}}var sf,lf,Gs,Vs,Bi={sphere:Nt,point:Nt,lineStart:G4,lineEnd:Nt,polygonStart:Nt,polygonEnd:Nt};function G4(){Bi.point=Z4,Bi.lineEnd=V4}function V4(){Bi.point=Bi.lineEnd=Nt}function Z4(t,e){t*=ct,e*=ct,lf=t,Gs=et(e),Vs=ot(e),Bi.point=K4}function K4(t,e){t*=ct,e*=ct;var n=et(e),r=ot(e),i=bt(t-lf),o=ot(i),a=et(i),s=r*a,c=Vs*n-Gs*r*o,l=Gs*n+Vs*r*o;sf.add(Ae(Jt(s*s+c*c),l)),lf=t,Gs=n,Vs=r}function zg(t){return sf=new Lt,ln(t,Bi),+sf}var cf=[null,null],Q4={type:"LineString",coordinates:cf};function ul(t,e){return cf[0]=t,cf[1]=e,zg(Q4)}var eg={Feature:function(t,e){return fl(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r<i;)if(fl(n[r].geometry,e))return!0;return!1}},ng={Sphere:function(){return!0},Point:function(t,e){return rg(t.coordinates,e)},MultiPoint:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)if(rg(n[r],e))return!0;return!1},LineString:function(t,e){return ig(t.coordinates,e)},MultiLineString:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)if(ig(n[r],e))return!0;return!1},Polygon:function(t,e){return og(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)if(og(n[r],e))return!0;return!1},GeometryCollection:function(t,e){for(var n=t.geometries,r=-1,i=n.length;++r<i;)if(fl(n[r],e))return!0;return!1}};function fl(t,e){return t&&ng.hasOwnProperty(t.type)?ng[t.type](t,e):!1}function rg(t,e){return ul(t,e)===0}function ig(t,e){for(var n,r,i,o=0,a=t.length;o<a;o++){if(r=ul(t[o],e),r===0||o>0&&(i=ul(t[o],t[o-1]),i>0&&n<=i&&r<=i&&(n+r-i)*(1-Math.pow((n-r)/i,2))<Ho*i))return!0;n=r}return!1}function og(t,e){return!!Bg(t.map(J4),Ng(e))}function J4(t){return t=t.map(Ng),t.pop(),t}function Ng(t){return[t[0]*ct,t[1]*ct]}function t6(t,e){return(t&&eg.hasOwnProperty(t.type)?eg[t.type]:fl)(t,e)}function ag(t,e,n){var r=hn(t,e-lt,n).concat(e);return function(i){return r.map(function(o){return[i,o]})}}function sg(t,e,n){var r=hn(t,e-lt,n).concat(e);return function(i){return r.map(function(o){return[o,i]})}}function Rg(){var t,e,n,r,i,o,a,s,c=10,l=c,u=90,h=360,f,d,m,p,g=2.5;function y(){return{type:"MultiLineString",coordinates:w()}}function w(){return hn(qs(r/u)*u,n,u).map(m).concat(hn(qs(s/h)*h,a,h).map(p)).concat(hn(qs(e/c)*c,t,c).filter(function(b){return bt(b%u)>lt}).map(f)).concat(hn(qs(o/l)*l,i,l).filter(function(b){return bt(b%h)>lt}).map(d))}return y.lines=function(){return w().map(function(b){return{type:"LineString",coordinates:b}})},y.outline=function(){return{type:"Polygon",coordinates:[m(r).concat(p(a).slice(1),m(n).reverse().slice(1),p(s).reverse().slice(1))]}},y.extent=function(b){return arguments.length?y.extentMajor(b).extentMinor(b):y.extentMinor()},y.extentMajor=function(b){return arguments.length?(r=+b[0][0],n=+b[1][0],s=+b[0][1],a=+b[1][1],r>n&&(b=r,r=n,n=b),s>a&&(b=s,s=a,a=b),y.precision(g)):[[r,s],[n,a]]},y.extentMinor=function(b){return arguments.length?(e=+b[0][0],t=+b[1][0],o=+b[0][1],i=+b[1][1],e>t&&(b=e,e=t,t=b),o>i&&(b=o,o=i,i=b),y.precision(g)):[[e,o],[t,i]]},y.step=function(b){return arguments.length?y.stepMajor(b).stepMinor(b):y.stepMinor()},y.stepMajor=function(b){return arguments.length?(u=+b[0],h=+b[1],y):[u,h]},y.stepMinor=function(b){return arguments.length?(c=+b[0],l=+b[1],y):[c,l]},y.precision=function(b){return arguments.length?(g=+b,f=ag(o,i,90),d=sg(e,t,g),m=ag(s,a,90),p=sg(r,n,g),y):g},y.extentMajor([[-180,-90+lt],[180,90-lt]]).extentMinor([[-180,-80-lt],[180,80+lt]])}function e6(){return Rg()()}function n6(t,e){var n=t[0]*ct,r=t[1]*ct,i=e[0]*ct,o=e[1]*ct,a=ot(r),s=et(r),c=ot(o),l=et(o),u=a*ot(n),h=a*et(n),f=c*ot(i),d=c*et(i),m=2*Ee(Jt(qp(o-r)+a*c*qp(i-n))),p=et(m),g=m?function(y){var w=et(y*=m)/p,b=et(m-y)/p,v=b*u+w*f,x=b*h+w*d,S=b*s+w*l;return[Ae(x,v)*Et,Ae(S,Jt(v*v+x*x))*Et]}:function(){return[n*Et,r*Et]};return g.distance=m,g}var Wo=t=>t,ju=new Lt,uf=new Lt,Pg,Ig,ff,hf,Pn={point:Nt,lineStart:Nt,lineEnd:Nt,polygonStart:function(){Pn.lineStart=r6,Pn.lineEnd=o6},polygonEnd:function(){Pn.lineStart=Pn.lineEnd=Pn.point=Nt,ju.add(bt(uf)),uf=new Lt},result:function(){var t=ju/2;return ju=new Lt,t}};function r6(){Pn.point=i6}function i6(t,e){Pn.point=Lg,Pg=ff=t,Ig=hf=e}function Lg(t,e){uf.add(hf*t-ff*e),ff=t,hf=e}function o6(){Lg(Pg,Ig)}var Di=1/0,hl=Di,jo=-Di,dl=jo,pl={point:a6,lineStart:Nt,lineEnd:Nt,polygonStart:Nt,polygonEnd:Nt,result:function(){var t=[[Di,hl],[jo,dl]];return jo=dl=-(hl=Di=1/0),t}};function a6(t,e){t<Di&&(Di=t),t>jo&&(jo=t),e<hl&&(hl=e),e>dl&&(dl=e)}var df=0,pf=0,zo=0,gl=0,ml=0,Fi=0,gf=0,mf=0,No=0,qg,Yg,vn,wn,Ye={point:Nr,lineStart:lg,lineEnd:cg,polygonStart:function(){Ye.lineStart=c6,Ye.lineEnd=u6},polygonEnd:function(){Ye.point=Nr,Ye.lineStart=lg,Ye.lineEnd=cg},result:function(){var t=No?[gf/No,mf/No]:Fi?[gl/Fi,ml/Fi]:zo?[df/zo,pf/zo]:[NaN,NaN];return df=pf=zo=gl=ml=Fi=gf=mf=No=0,t}};function Nr(t,e){df+=t,pf+=e,++zo}function lg(){Ye.point=s6}function s6(t,e){Ye.point=l6,Nr(vn=t,wn=e)}function l6(t,e){var n=t-vn,r=e-wn,i=Jt(n*n+r*r);gl+=i*(vn+t)/2,ml+=i*(wn+e)/2,Fi+=i,Nr(vn=t,wn=e)}function cg(){Ye.point=Nr}function c6(){Ye.point=f6}function u6(){Ug(qg,Yg)}function f6(t,e){Ye.point=Ug,Nr(qg=vn=t,Yg=wn=e)}function Ug(t,e){var n=t-vn,r=e-wn,i=Jt(n*n+r*r);gl+=i*(vn+t)/2,ml+=i*(wn+e)/2,Fi+=i,i=wn*t-vn*e,gf+=i*(vn+t),mf+=i*(wn+e),No+=i*3,Nr(vn=t,wn=e)}function Hg(t){this._context=t}Hg.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,e){switch(this._point){case 0:{this._context.moveTo(t,e),this._point=1;break}case 1:{this._context.lineTo(t,e);break}default:{this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,ke);break}}},result:Nt};var yf=new Lt,Xu,Wg,jg,Ro,Po,Xo={point:Nt,lineStart:function(){Xo.point=h6},lineEnd:function(){Xu&&Xg(Wg,jg),Xo.point=Nt},polygonStart:function(){Xu=!0},polygonEnd:function(){Xu=null},result:function(){var t=+yf;return yf=new Lt,t}};function h6(t,e){Xo.point=Xg,Wg=Ro=t,jg=Po=e}function Xg(t,e){Ro-=t,Po-=e,yf.add(Jt(Ro*Ro+Po*Po)),Ro=t,Po=e}var ug,yl,fg,hg,bl=class{constructor(e){this._append=e==null?Gg:d6(e),this._radius=4.5,this._=""}pointRadius(e){return this._radius=+e,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){this._line===0&&(this._+="Z"),this._point=NaN}point(e,n){switch(this._point){case 0:{this._append`M${e},${n}`,this._point=1;break}case 1:{this._append`L${e},${n}`;break}default:{if(this._append`M${e},${n}`,this._radius!==fg||this._append!==yl){let 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`,fg=r,yl=this._append,hg=this._,this._=i}this._+=hg;break}}}result(){let e=this._;return this._="",e.length?e:null}};function Gg(t){let e=1;this._+=t[0];for(let n=t.length;e<n;++e)this._+=arguments[e]+t[e]}function d6(t){let e=Math.floor(t);if(!(e>=0))throw new RangeError(`invalid digits: ${t}`);if(e>15)return Gg;if(e!==ug){let n=10**e;ug=e,yl=function(i){let o=1;this._+=i[0];for(let a=i.length;o<a;++o)this._+=Math.round(arguments[o]*n)/n+i[o]}}return yl}function p6(t,e){let n=3,r=4.5,i,o;function a(s){return s&&(typeof r=="function"&&o.pointRadius(+r.apply(this,arguments)),ln(s,i(o))),o.result()}return a.area=function(s){return ln(s,i(Pn)),Pn.result()},a.measure=function(s){return ln(s,i(Xo)),Xo.result()},a.bounds=function(s){return ln(s,i(pl)),pl.result()},a.centroid=function(s){return ln(s,i(Ye)),Ye.result()},a.projection=function(s){return arguments.length?(i=s==null?(t=null,Wo):(t=s).stream,a):t},a.context=function(s){return arguments.length?(o=s==null?(e=null,new bl(n)):new Hg(e=s),typeof r!="function"&&o.pointRadius(r),a):e},a.pointRadius=function(s){return arguments.length?(r=typeof s=="function"?s:(o.pointRadius(+s),+s),a):r},a.digits=function(s){if(!arguments.length)return n;if(s==null)n=null;else{let c=Math.floor(s);if(!(c>=0))throw new RangeError(`invalid digits: ${s}`);n=c}return e===null&&(o=new bl(n)),a},a.projection(t).digits(n).context(e)}function g6(t){return{stream:Zo(t)}}function Zo(t){return function(e){var n=new bf;for(var r in t)n[r]=t[r];return n.stream=e,n}}function bf(){}bf.prototype={constructor:bf,point:function(t,e){this.stream.point(t,e)},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()}};function _f(t,e,n){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),r!=null&&t.clipExtent(null),ln(n,t.stream(pl)),e(pl.result()),r!=null&&t.clipExtent(r),t}function _l(t,e,n){return _f(t,function(r){var i=e[1][0]-e[0][0],o=e[1][1]-e[0][1],a=Math.min(i/(r[1][0]-r[0][0]),o/(r[1][1]-r[0][1])),s=+e[0][0]+(i-a*(r[1][0]+r[0][0]))/2,c=+e[0][1]+(o-a*(r[1][1]+r[0][1]))/2;t.scale(150*a).translate([s,c])},n)}function Sf(t,e,n){return _l(t,[[0,0],e],n)}function kf(t,e,n){return _f(t,function(r){var i=+e,o=i/(r[1][0]-r[0][0]),a=(i-o*(r[1][0]+r[0][0]))/2,s=-o*r[0][1];t.scale(150*o).translate([a,s])},n)}function Af(t,e,n){return _f(t,function(r){var i=+e,o=i/(r[1][1]-r[0][1]),a=-o*r[0][0],s=(i-o*(r[1][1]+r[0][1]))/2;t.scale(150*o).translate([a,s])},n)}var dg=16,m6=ot(30*ct);function pg(t,e){return+e?b6(t,e):y6(t)}function y6(t){return Zo({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})}function b6(t,e){function n(r,i,o,a,s,c,l,u,h,f,d,m,p,g){var y=l-r,w=u-i,b=y*y+w*w;if(b>4*e&&p--){var v=a+f,x=s+d,S=c+m,k=Jt(v*v+x*x+S*S),C=Ee(S/=k),F=bt(bt(S)-1)<lt||bt(o-h)<lt?(o+h)/2:Ae(x,v),A=t(F,C),E=A[0],D=A[1],$=E-r,M=D-i,T=w*$-y*M;(T*T/b>e||bt((y*$+w*M)/b-.5)>.3||a*f+s*d+c*m<m6)&&(n(r,i,o,a,s,c,E,D,F,v/=k,x/=k,S,p,g),g.point(E,D),n(E,D,F,v,x,S,l,u,h,f,d,m,p,g))}}return function(r){var i,o,a,s,c,l,u,h,f,d,m,p,g={point:y,lineStart:w,lineEnd:v,polygonStart:function(){r.polygonStart(),g.lineStart=x},polygonEnd:function(){r.polygonEnd(),g.lineStart=w}};function y(C,F){C=t(C,F),r.point(C[0],C[1])}function w(){h=NaN,g.point=b,r.lineStart()}function b(C,F){var A=zr([C,F]),E=t(C,F);n(h,f,u,d,m,p,h=E[0],f=E[1],u=C,d=A[0],m=A[1],p=A[2],dg,r),r.point(h,f)}function v(){g.point=y,r.lineEnd()}function x(){w(),g.point=S,g.lineEnd=k}function S(C,F){b(i=C,F),o=h,a=f,s=d,c=m,l=p,g.point=b}function k(){n(h,f,u,d,m,p,o,a,i,s,c,l,dg,r),g.lineEnd=v,v()}return g}}var v6=Zo({point:function(t,e){this.stream.point(t*ct,e*ct)}});function w6(t){return Zo({point:function(e,n){var r=t(e,n);return this.stream.point(r[0],r[1])}})}function x6(t,e,n,r,i){function o(a,s){return a*=r,s*=i,[e+t*a,n-t*s]}return o.invert=function(a,s){return[(a-e)/t*r,(n-s)/t*i]},o}function gg(t,e,n,r,i,o){if(!o)return x6(t,e,n,r,i);var a=ot(o),s=et(o),c=a*t,l=s*t,u=a/t,h=s/t,f=(s*n-a*e)/t,d=(s*e+a*n)/t;function m(p,g){return p*=r,g*=i,[c*p-l*g+e,n-l*p-c*g]}return m.invert=function(p,g){return[r*(u*p-h*g+f),i*(d-h*p-u*g)]},m}function _n(t){return Ef(function(){return t})()}function Ef(t){var e,n=150,r=480,i=250,o=0,a=0,s=0,c=0,l=0,u,h=0,f=1,d=1,m=null,p=af,g=null,y,w,b,v=Wo,x=.5,S,k,C,F,A;function E(T){return C(T[0]*ct,T[1]*ct)}function D(T){return T=C.invert(T[0],T[1]),T&&[T[0]*Et,T[1]*Et]}E.stream=function(T){return F&&A===T?F:F=v6(w6(u)(p(S(v(A=T)))))},E.preclip=function(T){return arguments.length?(p=T,m=void 0,M()):p},E.postclip=function(T){return arguments.length?(v=T,g=y=w=b=null,M()):v},E.clipAngle=function(T){return arguments.length?(p=+T?$g(m=T*ct):(m=null,af),M()):m*Et},E.clipExtent=function(T){return arguments.length?(v=T==null?(g=y=w=b=null,Wo):xl(g=+T[0][0],y=+T[0][1],w=+T[1][0],b=+T[1][1]),M()):g==null?null:[[g,y],[w,b]]},E.scale=function(T){return arguments.length?(n=+T,$()):n},E.translate=function(T){return arguments.length?(r=+T[0],i=+T[1],$()):[r,i]},E.center=function(T){return arguments.length?(o=T[0]%360*ct,a=T[1]%360*ct,$()):[o*Et,a*Et]},E.rotate=function(T){return arguments.length?(s=T[0]%360*ct,c=T[1]%360*ct,l=T.length>2?T[2]%360*ct:0,$()):[s*Et,c*Et,l*Et]},E.angle=function(T){return arguments.length?(h=T%360*ct,$()):h*Et},E.reflectX=function(T){return arguments.length?(f=T?-1:1,$()):f<0},E.reflectY=function(T){return arguments.length?(d=T?-1:1,$()):d<0},E.precision=function(T){return arguments.length?(S=pg(k,x=T*T),M()):Jt(x)},E.fitExtent=function(T,B){return _l(E,T,B)},E.fitSize=function(T,B){return Sf(E,T,B)},E.fitWidth=function(T,B){return kf(E,T,B)},E.fitHeight=function(T,B){return Af(E,T,B)};function $(){var T=gg(n,0,0,f,d,h).apply(null,e(o,a)),B=gg(n,r-T[0],i-T[1],f,d,h);return u=xf(s,c,l),k=rf(e,B),C=rf(u,k),S=pg(k,x),M()}function M(){return F=A=null,E}return function(){return e=t.apply(this,arguments),E.invert=e.invert&&D,$()}}function Mf(t){var e=0,n=yt/3,r=Ef(t),i=r(e,n);return i.parallels=function(o){return arguments.length?r(e=o[0]*ct,n=o[1]*ct):[e*Et,n*Et]},i}function _6(t){var e=ot(t);function n(r,i){return[r*e,et(i)/e]}return n.invert=function(r,i){return[r/e,Ee(i*e)]},n}function Vg(t,e){var n=et(t),r=(n+et(e))/2;if(bt(r)<lt)return _6(t);var i=1+n*(2*r-n),o=Jt(i)/r;function a(s,c){var l=Jt(i-2*r*et(c))/r;return[l*et(s*=r),o-l*ot(s)]}return a.invert=function(s,c){var l=o-c,u=Ae(s,bt(l))*Ue(l);return l*r<0&&(u-=yt*Ue(s)*Ue(l)),[u/r,Ee((i-(s*s+l*l)*r*r)/(2*r))]},a}function vl(){return Mf(Vg).scale(155.424).center([0,33.6442])}function Zg(){return vl().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function S6(t){var e=t.length;return{point:function(n,r){for(var i=-1;++i<e;)t[i].point(n,r)},sphere:function(){for(var n=-1;++n<e;)t[n].sphere()},lineStart:function(){for(var n=-1;++n<e;)t[n].lineStart()},lineEnd:function(){for(var n=-1;++n<e;)t[n].lineEnd()},polygonStart:function(){for(var n=-1;++n<e;)t[n].polygonStart()},polygonEnd:function(){for(var n=-1;++n<e;)t[n].polygonEnd()}}}function k6(){var t,e,n=Zg(),r,i=vl().rotate([154,0]).center([-2,58.5]).parallels([55,65]),o,a=vl().rotate([157,0]).center([-3,19.9]).parallels([8,18]),s,c,l={point:function(f,d){c=[f,d]}};function u(f){var d=f[0],m=f[1];return c=null,r.point(d,m),c||(o.point(d,m),c)||(s.point(d,m),c)}u.invert=function(f){var d=n.scale(),m=n.translate(),p=(f[0]-m[0])/d,g=(f[1]-m[1])/d;return(g>=.12&&g<.234&&p>=-.425&&p<-.214?i:g>=.166&&g<.234&&p>=-.214&&p<-.115?a:n).invert(f)},u.stream=function(f){return t&&e===f?t:t=S6([n.stream(e=f),i.stream(f),a.stream(f)])},u.precision=function(f){return arguments.length?(n.precision(f),i.precision(f),a.precision(f),h()):n.precision()},u.scale=function(f){return arguments.length?(n.scale(f),i.scale(f*.35),a.scale(f),u.translate(n.translate())):n.scale()},u.translate=function(f){if(!arguments.length)return n.translate();var d=n.scale(),m=+f[0],p=+f[1];return r=n.translate(f).clipExtent([[m-.455*d,p-.238*d],[m+.455*d,p+.238*d]]).stream(l),o=i.translate([m-.307*d,p+.201*d]).clipExtent([[m-.425*d+lt,p+.12*d+lt],[m-.214*d-lt,p+.234*d-lt]]).stream(l),s=a.translate([m-.205*d,p+.212*d]).clipExtent([[m-.214*d+lt,p+.166*d+lt],[m-.115*d-lt,p+.234*d-lt]]).stream(l),h()},u.fitExtent=function(f,d){return _l(u,f,d)},u.fitSize=function(f,d){return Sf(u,f,d)},u.fitWidth=function(f,d){return kf(u,f,d)},u.fitHeight=function(f,d){return Af(u,f,d)};function h(){return t=e=null,u}return u.scale(1070)}function Kg(t){return function(e,n){var r=ot(e),i=ot(n),o=t(r*i);return o===1/0?[2,0]:[o*i*et(e),o*et(n)]}}function Ko(t){return function(e,n){var r=Jt(e*e+n*n),i=t(r),o=et(i),a=ot(i);return[Ae(e*o,r*a),Ee(r&&n*o/r)]}}var Cf=Kg(function(t){return Jt(2/(1+t))});Cf.invert=Ko(function(t){return 2*Ee(t/2)});function A6(){return _n(Cf).scale(124.75).clipAngle(180-.001)}var Ff=Kg(function(t){return(t=yg(t))&&t/et(t)});Ff.invert=Ko(function(t){return t});function E6(){return _n(Ff).scale(79.4188).clipAngle(180-.001)}function Qo(t,e){return[t,Ks(vf((Yt+e)/2))]}Qo.invert=function(t,e){return[t,2*$i(mg(e))-Yt]};function M6(){return Qg(Qo).scale(961/ke)}function Qg(t){var e=_n(t),n=e.center,r=e.scale,i=e.translate,o=e.clipExtent,a=null,s,c,l;e.scale=function(h){return arguments.length?(r(h),u()):r()},e.translate=function(h){return arguments.length?(i(h),u()):i()},e.center=function(h){return arguments.length?(n(h),u()):n()},e.clipExtent=function(h){return arguments.length?(h==null?a=s=c=l=null:(a=+h[0][0],s=+h[0][1],c=+h[1][0],l=+h[1][1]),u()):a==null?null:[[a,s],[c,l]]};function u(){var h=yt*r(),f=e(Cg(e.rotate()).invert([0,0]));return o(a==null?[[f[0]-h,f[1]-h],[f[0]+h,f[1]+h]]:t===Qo?[[Math.max(f[0]-h,a),s],[Math.min(f[0]+h,c),l]]:[[a,Math.max(f[1]-h,s)],[c,Math.min(f[1]+h,l)]])}return u()}function js(t){return vf((Yt+t)/2)}function Jg(t,e){var n=ot(t),r=t===e?et(t):Ks(n/ot(e))/Ks(js(e)/js(t)),i=n*Uu(js(t),r)/r;if(!r)return Qo;function o(a,s){i>0?s<-Yt+lt&&(s=-Yt+lt):s>Yt-lt&&(s=Yt-lt);var c=i/Uu(js(s),r);return[c*et(r*a),i-c*ot(r*a)]}return o.invert=function(a,s){var c=i-s,l=Ue(r)*Jt(a*a+c*c),u=Ae(a,bt(c))*Ue(c);return c*r<0&&(u-=yt*Ue(a)*Ue(c)),[u/r,2*$i(Uu(i/l,1/r))-Yt]},o}function C6(){return Mf(Jg).scale(109.5).parallels([30,30])}function Go(t,e){return[t,e]}Go.invert=Go;function F6(){return _n(Go).scale(152.63)}function tm(t,e){var n=ot(t),r=t===e?et(t):(n-ot(e))/(e-t),i=n/r+t;if(bt(r)<lt)return Go;function o(a,s){var c=i-s,l=r*a;return[c*et(l),i-c*ot(l)]}return o.invert=function(a,s){var c=i-s,l=Ae(a,bt(c))*Ue(c);return c*r<0&&(l-=yt*Ue(a)*Ue(c)),[l/r,i-Ue(r)*Jt(a*a+c*c)]},o}function T6(){return Mf(tm).scale(131.154).center([0,13.9389])}var Lo=1.340264,qo=-.081106,Yo=893e-6,Uo=.003796,wl=Jt(3)/2,O6=12;function Tf(t,e){var n=Ee(wl*et(e)),r=n*n,i=r*r*r;return[t*ot(n)/(wl*(Lo+3*qo*r+i*(7*Yo+9*Uo*r))),n*(Lo+qo*r+i*(Yo+Uo*r))]}Tf.invert=function(t,e){for(var n=e,r=n*n,i=r*r*r,o=0,a,s,c;o<O6&&(s=n*(Lo+qo*r+i*(Yo+Uo*r))-e,c=Lo+3*qo*r+i*(7*Yo+9*Uo*r),n-=a=s/c,r=n*n,i=r*r*r,!(bt(a)<Ho));++o);return[wl*t*(Lo+3*qo*r+i*(7*Yo+9*Uo*r))/ot(n),Ee(et(n)/wl)]};function B6(){return _n(Tf).scale(177.158)}function Of(t,e){var n=ot(e),r=ot(t)*n;return[n*et(t)/r,et(e)/r]}Of.invert=Ko($i);function D6(){return _n(Of).scale(144.049).clipAngle(60)}function $6(){var t=1,e=0,n=0,r=1,i=1,o=0,a,s,c=null,l,u,h,f=1,d=1,m=Zo({point:function(v,x){var S=b([v,x]);this.stream.point(S[0],S[1])}}),p=Wo,g,y;function w(){return f=t*r,d=t*i,g=y=null,b}function b(v){var x=v[0]*f,S=v[1]*d;if(o){var k=S*a-x*s;x=x*a+S*s,S=k}return[x+e,S+n]}return b.invert=function(v){var x=v[0]-e,S=v[1]-n;if(o){var k=S*a+x*s;x=x*a-S*s,S=k}return[x/f,S/d]},b.stream=function(v){return g&&y===v?g:g=m(p(y=v))},b.postclip=function(v){return arguments.length?(p=v,c=l=u=h=null,w()):p},b.clipExtent=function(v){return arguments.length?(p=v==null?(c=l=u=h=null,Wo):xl(c=+v[0][0],l=+v[0][1],u=+v[1][0],h=+v[1][1]),w()):c==null?null:[[c,l],[u,h]]},b.scale=function(v){return arguments.length?(t=+v,w()):t},b.translate=function(v){return arguments.length?(e=+v[0],n=+v[1],w()):[e,n]},b.angle=function(v){return arguments.length?(o=v%360*ct,s=et(o),a=ot(o),w()):o*Et},b.reflectX=function(v){return arguments.length?(r=v?-1:1,w()):r<0},b.reflectY=function(v){return arguments.length?(i=v?-1:1,w()):i<0},b.fitExtent=function(v,x){return _l(b,v,x)},b.fitSize=function(v,x){return Sf(b,v,x)},b.fitWidth=function(v,x){return kf(b,v,x)},b.fitHeight=function(v,x){return Af(b,v,x)},b}function Bf(t,e){var n=e*e,r=n*n;return[t*(.8707-.131979*n+r*(-.013791+r*(.003971*n-.001529*r))),e*(1.007226+n*(.015085+r*(-.044475+.028874*n-.005916*r)))]}Bf.invert=function(t,e){var n=e,r=25,i;do{var o=n*n,a=o*o;n-=i=(n*(1.007226+o*(.015085+a*(-.044475+.028874*o-.005916*a)))-e)/(1.007226+o*(.015085*3+a*(-.044475*7+.028874*9*o-.005916*11*a)))}while(bt(i)>lt&&--r>0);return[t/(.8707+(o=n*n)*(-.131979+o*(-.013791+o*o*o*(.003971-.001529*o)))),n]};function z6(){return _n(Bf).scale(175.295)}function Df(t,e){return[ot(e)*et(t),et(e)]}Df.invert=Ko(Ee);function N6(){return _n(Df).scale(249.5).clipAngle(90+lt)}function $f(t,e){var n=ot(e),r=1+ot(t)*n;return[n*et(t)/r,et(e)/r]}$f.invert=Ko(function(t){return 2*$i(t)});function R6(){return _n($f).scale(250).clipAngle(142)}function zf(t,e){return[Ks(vf((Yt+e)/2)),-t]}zf.invert=function(t,e){return[-e,2*$i(mg(t))-Yt]};function P6(){var t=Qg(zf),e=t.center,n=t.rotate;return t.center=function(r){return arguments.length?e([-r[1],r[0]]):(r=e(),[r[1],-r[0]])},t.rotate=function(r){return arguments.length?n([r[0],r[1],r.length>2?r[2]+90:90]):(r=n(),[r[0],r[1],r[2]-90])},n([0,0,90]).scale(159.155)}function I6(t,e){return t.parent===e.parent?1:2}function L6(t){return t.reduce(q6,0)/t.length}function q6(t,e){return t+e.x}function Y6(t){return 1+t.reduce(U6,0)}function U6(t,e){return Math.max(t,e.y)}function H6(t){for(var e;e=t.children;)t=e[0];return t}function W6(t){for(var e;e=t.children;)t=e[e.length-1];return t}function j6(){var t=I6,e=1,n=1,r=!1;function i(o){var a,s=0;o.eachAfter(function(f){var d=f.children;d?(f.x=L6(d),f.y=Y6(d)):(f.x=a?s+=t(f,a):0,f.y=0,a=f)});var c=H6(o),l=W6(o),u=c.x-t(c,l)/2,h=l.x+t(l,c)/2;return o.eachAfter(r?function(f){f.x=(f.x-o.x)*e,f.y=(o.y-f.y)*n}:function(f){f.x=(f.x-u)/(h-u)*e,f.y=(1-(o.y?f.y/o.y:1))*n})}return i.separation=function(o){return arguments.length?(t=o,i):t},i.size=function(o){return arguments.length?(r=!1,e=+o[0],n=+o[1],i):r?null:[e,n]},i.nodeSize=function(o){return arguments.length?(r=!0,e=+o[0],n=+o[1],i):r?[e,n]:null},i}function X6(t){var e=0,n=t.children,r=n&&n.length;if(!r)e=1;else for(;--r>=0;)e+=n[r].value;t.value=e}function G6(){return this.eachAfter(X6)}function V6(t,e){let n=-1;for(let r of this)t.call(e,r,++n,this);return this}function Z6(t,e){for(var n=this,r=[n],i,o,a=-1;n=r.pop();)if(t.call(e,n,++a,this),i=n.children)for(o=i.length-1;o>=0;--o)r.push(i[o]);return this}function K6(t,e){for(var n=this,r=[n],i=[],o,a,s,c=-1;n=r.pop();)if(i.push(n),o=n.children)for(a=0,s=o.length;a<s;++a)r.push(o[a]);for(;n=i.pop();)t.call(e,n,++c,this);return this}function Q6(t,e){let n=-1;for(let r of this)if(t.call(e,r,++n,this))return r}function J6(t){return this.eachAfter(function(e){for(var n=+t(e.data)||0,r=e.children,i=r&&r.length;--i>=0;)n+=r[i].value;e.value=n})}function t7(t){return this.eachBefore(function(e){e.children&&e.children.sort(t)})}function e7(t){for(var e=this,n=n7(e,t),r=[e];e!==n;)e=e.parent,r.push(e);for(var i=r.length;t!==n;)r.splice(i,0,t),t=t.parent;return r}function n7(t,e){if(t===e)return t;var n=t.ancestors(),r=e.ancestors(),i=null;for(t=n.pop(),e=r.pop();t===e;)i=t,t=n.pop(),e=r.pop();return i}function r7(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e}function i7(){return Array.from(this)}function o7(){var t=[];return this.eachBefore(function(e){e.children||t.push(e)}),t}function a7(){var t=this,e=[];return t.each(function(n){n!==t&&e.push({source:n.parent,target:n})}),e}function*s7(){var t=this,e,n=[t],r,i,o;do for(e=n.reverse(),n=[];t=e.pop();)if(yield t,r=t.children)for(i=0,o=r.length;i<o;++i)n.push(r[i]);while(n.length)}function Yf(t,e){t instanceof Map?(t=[void 0,t],e===void 0&&(e=u7)):e===void 0&&(e=c7);for(var n=new Pr(t),r,i=[n],o,a,s,c;r=i.pop();)if((a=e(r.data))&&(c=(a=Array.from(a)).length))for(r.children=a,s=c-1;s>=0;--s)i.push(o=a[s]=new Pr(a[s])),o.parent=r,o.depth=r.depth+1;return n.eachBefore(cm)}function l7(){return Yf(this).eachBefore(f7)}function c7(t){return t.children}function u7(t){return Array.isArray(t)?t[1]:null}function f7(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function cm(t){var e=0;do t.height=e;while((t=t.parent)&&t.height<++e)}function Pr(t){this.data=t,this.depth=this.height=0,this.parent=null}Pr.prototype=Yf.prototype={constructor:Pr,count:G6,each:V6,eachAfter:K6,eachBefore:Z6,find:Q6,sum:J6,sort:t7,path:e7,ancestors:r7,descendants:i7,leaves:o7,links:a7,copy:l7,[Symbol.iterator]:s7};function Al(t){return t==null?null:um(t)}function um(t){if(typeof t!="function")throw new Error;return t}function Rr(){return 0}function zi(t){return function(){return t}}var h7=1664525,d7=1013904223,em=4294967296;function Uf(){let t=1;return()=>(t=(h7*t+d7)%em)/em}function p7(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function g7(t,e){let n=t.length,r,i;for(;n;)i=e()*n--|0,r=t[n],t[n]=t[i],t[i]=r;return t}function m7(t){return fm(t,Uf())}function fm(t,e){for(var n=0,r=(t=g7(Array.from(t),e)).length,i=[],o,a;n<r;)o=t[n],a&&hm(a,o)?++n:(a=b7(i=y7(i,o)),n=0);return a}function y7(t,e){var n,r;if(Nf(e,t))return[e];for(n=0;n<t.length;++n)if(Sl(e,t[n])&&Nf(Jo(t[n],e),t))return[t[n],e];for(n=0;n<t.length-1;++n)for(r=n+1;r<t.length;++r)if(Sl(Jo(t[n],t[r]),e)&&Sl(Jo(t[n],e),t[r])&&Sl(Jo(t[r],e),t[n])&&Nf(dm(t[n],t[r],e),t))return[t[n],t[r],e];throw new Error}function Sl(t,e){var n=t.r-e.r,r=e.x-t.x,i=e.y-t.y;return n<0||n*n<r*r+i*i}function hm(t,e){var n=t.r-e.r+Math.max(t.r,e.r,1)*1e-9,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function Nf(t,e){for(var n=0;n<e.length;++n)if(!hm(t,e[n]))return!1;return!0}function b7(t){switch(t.length){case 1:return v7(t[0]);case 2:return Jo(t[0],t[1]);case 3:return dm(t[0],t[1],t[2])}}function v7(t){return{x:t.x,y:t.y,r:t.r}}function Jo(t,e){var n=t.x,r=t.y,i=t.r,o=e.x,a=e.y,s=e.r,c=o-n,l=a-r,u=s-i,h=Math.sqrt(c*c+l*l);return{x:(n+o+c/h*u)/2,y:(r+a+l/h*u)/2,r:(h+i+s)/2}}function dm(t,e,n){var r=t.x,i=t.y,o=t.r,a=e.x,s=e.y,c=e.r,l=n.x,u=n.y,h=n.r,f=r-a,d=r-l,m=i-s,p=i-u,g=c-o,y=h-o,w=r*r+i*i-o*o,b=w-a*a-s*s+c*c,v=w-l*l-u*u+h*h,x=d*m-f*p,S=(m*v-p*b)/(x*2)-r,k=(p*g-m*y)/x,C=(d*b-f*v)/(x*2)-i,F=(f*y-d*g)/x,A=k*k+F*F-1,E=2*(o+S*k+C*F),D=S*S+C*C-o*o,$=-(Math.abs(A)>1e-6?(E+Math.sqrt(E*E-4*A*D))/(2*A):D/E);return{x:r+S+k*$,y:i+C+F*$,r:$}}function nm(t,e,n){var r=t.x-e.x,i,o,a=t.y-e.y,s,c,l=r*r+a*a;l?(o=e.r+n.r,o*=o,c=t.r+n.r,c*=c,o>c?(i=(l+c-o)/(2*l),s=Math.sqrt(Math.max(0,c/l-i*i)),n.x=t.x-i*r-s*a,n.y=t.y-i*a+s*r):(i=(l+o-c)/(2*l),s=Math.sqrt(Math.max(0,o/l-i*i)),n.x=e.x+i*r-s*a,n.y=e.y+i*a+s*r)):(n.x=e.x+n.r,n.y=e.y)}function rm(t,e){var n=t.r+e.r-1e-6,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function im(t){var e=t._,n=t.next._,r=e.r+n.r,i=(e.x*n.r+n.x*e.r)/r,o=(e.y*n.r+n.y*e.r)/r;return i*i+o*o}function kl(t){this._=t,this.next=null,this.previous=null}function pm(t,e){if(!(o=(t=p7(t)).length))return 0;var n,r,i,o,a,s,c,l,u,h,f;if(n=t[0],n.x=0,n.y=0,!(o>1))return n.r;if(r=t[1],n.x=-r.r,r.x=n.r,r.y=0,!(o>2))return n.r+r.r;nm(r,n,i=t[2]),n=new kl(n),r=new kl(r),i=new kl(i),n.next=i.previous=r,r.next=n.previous=i,i.next=r.previous=n;t:for(c=3;c<o;++c){nm(n._,r._,i=t[c]),i=new kl(i),l=r.next,u=n.previous,h=r._.r,f=n._.r;do if(h<=f){if(rm(l._,i._)){r=l,n.next=r,r.previous=n,--c;continue t}h+=l._.r,l=l.next}else{if(rm(u._,i._)){n=u,n.next=r,r.previous=n,--c;continue t}f+=u._.r,u=u.previous}while(l!==u.next);for(i.previous=n,i.next=r,n.next=r.previous=r=i,a=im(n);(i=i.next)!==r;)(s=im(i))<a&&(n=i,a=s);r=n.next}for(n=[r._],i=r;(i=i.next)!==r;)n.push(i._);for(i=fm(n,e),c=0;c<o;++c)n=t[c],n.x-=i.x,n.y-=i.y;return i.r}function w7(t){return pm(t,Uf()),t}function x7(t){return Math.sqrt(t.value)}function _7(){var t=null,e=1,n=1,r=Rr;function i(o){let a=Uf();return o.x=e/2,o.y=n/2,t?o.eachBefore(om(t)).eachAfter(Rf(r,.5,a)).eachBefore(am(1)):o.eachBefore(om(x7)).eachAfter(Rf(Rr,1,a)).eachAfter(Rf(r,o.r/Math.min(e,n),a)).eachBefore(am(Math.min(e,n)/(2*o.r))),o}return i.radius=function(o){return arguments.length?(t=Al(o),i):t},i.size=function(o){return arguments.length?(e=+o[0],n=+o[1],i):[e,n]},i.padding=function(o){return arguments.length?(r=typeof o=="function"?o:zi(+o),i):r},i}function om(t){return function(e){e.children||(e.r=Math.max(0,+t(e)||0))}}function Rf(t,e,n){return function(r){if(i=r.children){var i,o,a=i.length,s=t(r)*e||0,c;if(s)for(o=0;o<a;++o)i[o].r+=s;if(c=pm(i,n),s)for(o=0;o<a;++o)i[o].r-=s;r.r=c+s}}}function am(t){return function(e){var n=e.parent;e.r*=t,n&&(e.x=n.x+t*e.x,e.y=n.y+t*e.y)}}function gm(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 ta(t,e,n,r,i){for(var o=t.children,a,s=-1,c=o.length,l=t.value&&(r-e)/t.value;++s<c;)a=o[s],a.y0=n,a.y1=i,a.x0=e,a.x1=e+=a.value*l}function S7(){var t=1,e=1,n=0,r=!1;function i(a){var s=a.height+1;return a.x0=a.y0=n,a.x1=t,a.y1=e/s,a.eachBefore(o(e,s)),r&&a.eachBefore(gm),a}function o(a,s){return function(c){c.children&&ta(c,c.x0,a*(c.depth+1)/s,c.x1,a*(c.depth+2)/s);var l=c.x0,u=c.y0,h=c.x1-n,f=c.y1-n;h<l&&(l=h=(l+h)/2),f<u&&(u=f=(u+f)/2),c.x0=l,c.y0=u,c.x1=h,c.y1=f}}return i.round=function(a){return arguments.length?(r=!!a,i):r},i.size=function(a){return arguments.length?(t=+a[0],e=+a[1],i):[t,e]},i.padding=function(a){return arguments.length?(n=+a,i):n},i}var k7={depth:-1},sm={},Pf={};function A7(t){return t.id}function E7(t){return t.parentId}function M7(){var t=A7,e=E7,n;function r(i){var o=Array.from(i),a=t,s=e,c,l,u,h,f,d,m,p,g=new Map;if(n!=null){let y=o.map((v,x)=>C7(n(v,x,i))),w=y.map(lm),b=new Set(y).add("");for(let v of w)b.has(v)||(b.add(v),y.push(v),w.push(lm(v)),o.push(Pf));a=(v,x)=>y[x],s=(v,x)=>w[x]}for(u=0,c=o.length;u<c;++u)l=o[u],d=o[u]=new Pr(l),(m=a(l,u,i))!=null&&(m+="")&&(p=d.id=m,g.set(p,g.has(p)?sm:d)),(m=s(l,u,i))!=null&&(m+="")&&(d.parent=m);for(u=0;u<c;++u)if(d=o[u],m=d.parent){if(f=g.get(m),!f)throw new Error("missing: "+m);if(f===sm)throw new Error("ambiguous: "+m);f.children?f.children.push(d):f.children=[d],d.parent=f}else{if(h)throw new Error("multiple roots");h=d}if(!h)throw new Error("no root");if(n!=null){for(;h.data===Pf&&h.children.length===1;)h=h.children[0],--c;for(let y=o.length-1;y>=0&&(d=o[y],d.data===Pf);--y)d.data=null}if(h.parent=k7,h.eachBefore(function(y){y.depth=y.parent.depth+1,--c}).eachBefore(cm),h.parent=null,c>0)throw new Error("cycle");return h}return r.id=function(i){return arguments.length?(t=Al(i),r):t},r.parentId=function(i){return arguments.length?(e=Al(i),r):e},r.path=function(i){return arguments.length?(n=Al(i),r):n},r}function C7(t){t=`${t}`;let e=t.length;return qf(t,e-1)&&!qf(t,e-2)&&(t=t.slice(0,-1)),t[0]==="/"?t:`/${t}`}function lm(t){let e=t.length;if(e<2)return"";for(;--e>1&&!qf(t,e););return t.slice(0,e)}function qf(t,e){if(t[e]==="/"){let n=0;for(;e>0&&t[--e]==="\\";)++n;if((n&1)===0)return!0}return!1}function F7(t,e){return t.parent===e.parent?1:2}function If(t){var e=t.children;return e?e[0]:t.t}function Lf(t){var e=t.children;return e?e[e.length-1]:t.t}function T7(t,e,n){var r=n/(e.i-t.i);e.c-=r,e.s+=n,t.c+=r,e.z+=n,e.m+=n}function O7(t){for(var e=0,n=0,r=t.children,i=r.length,o;--i>=0;)o=r[i],o.z+=e,o.m+=e,e+=o.s+(n+=o.c)}function B7(t,e,n){return t.a.parent===e.parent?t.a:n}function El(t,e){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=e}El.prototype=Object.create(Pr.prototype);function D7(t){for(var e=new El(t,0),n,r=[e],i,o,a,s;n=r.pop();)if(o=n._.children)for(n.children=new Array(s=o.length),a=s-1;a>=0;--a)r.push(i=n.children[a]=new El(o[a],a)),i.parent=n;return(e.parent=new El(null,0)).children=[e],e}function $7(){var t=F7,e=1,n=1,r=null;function i(l){var u=D7(l);if(u.eachAfter(o),u.parent.m=-u.z,u.eachBefore(a),r)l.eachBefore(c);else{var h=l,f=l,d=l;l.eachBefore(function(w){w.x<h.x&&(h=w),w.x>f.x&&(f=w),w.depth>d.depth&&(d=w)});var m=h===f?1:t(h,f)/2,p=m-h.x,g=e/(f.x+m+p),y=n/(d.depth||1);l.eachBefore(function(w){w.x=(w.x+p)*g,w.y=w.depth*y})}return l}function o(l){var u=l.children,h=l.parent.children,f=l.i?h[l.i-1]:null;if(u){O7(l);var d=(u[0].z+u[u.length-1].z)/2;f?(l.z=f.z+t(l._,f._),l.m=l.z-d):l.z=d}else f&&(l.z=f.z+t(l._,f._));l.parent.A=s(l,f,l.parent.A||h[0])}function a(l){l._.x=l.z+l.parent.m,l.m+=l.parent.m}function s(l,u,h){if(u){for(var f=l,d=l,m=u,p=f.parent.children[0],g=f.m,y=d.m,w=m.m,b=p.m,v;m=Lf(m),f=If(f),m&&f;)p=If(p),d=Lf(d),d.a=l,v=m.z+w-f.z-g+t(m._,f._),v>0&&(T7(B7(m,l,h),l,v),g+=v,y+=v),w+=m.m,g+=f.m,b+=p.m,y+=d.m;m&&!Lf(d)&&(d.t=m,d.m+=w-y),f&&!If(p)&&(p.t=f,p.m+=g-b,h=l)}return h}function c(l){l.x*=e,l.y=l.depth*n}return i.separation=function(l){return arguments.length?(t=l,i):t},i.size=function(l){return arguments.length?(r=!1,e=+l[0],n=+l[1],i):r?null:[e,n]},i.nodeSize=function(l){return arguments.length?(r=!0,e=+l[0],n=+l[1],i):r?[e,n]:null},i}function Ml(t,e,n,r,i){for(var o=t.children,a,s=-1,c=o.length,l=t.value&&(i-n)/t.value;++s<c;)a=o[s],a.x0=e,a.x1=r,a.y0=n,a.y1=n+=a.value*l}var mm=(1+Math.sqrt(5))/2;function ym(t,e,n,r,i,o){for(var a=[],s=e.children,c,l,u=0,h=0,f=s.length,d,m,p=e.value,g,y,w,b,v,x,S;u<f;){d=i-n,m=o-r;do g=s[h++].value;while(!g&&h<f);for(y=w=g,x=Math.max(m/d,d/m)/(p*t),S=g*g*x,v=Math.max(w/S,S/y);h<f;++h){if(g+=l=s[h].value,l<y&&(y=l),l>w&&(w=l),S=g*g*x,b=Math.max(w/S,S/y),b>v){g-=l;break}v=b}a.push(c={value:g,dice:d<m,children:s.slice(u,h)}),c.dice?ta(c,n,r,i,p?r+=m*g/p:o):Ml(c,n,r,p?n+=d*g/p:i,o),p-=g,u=h}return a}var bm=(function t(e){function n(r,i,o,a,s){ym(e,r,i,o,a,s)}return n.ratio=function(r){return t((r=+r)>1?r:1)},n})(mm);function z7(){var t=bm,e=!1,n=1,r=1,i=[0],o=Rr,a=Rr,s=Rr,c=Rr,l=Rr;function u(f){return f.x0=f.y0=0,f.x1=n,f.y1=r,f.eachBefore(h),i=[0],e&&f.eachBefore(gm),f}function h(f){var d=i[f.depth],m=f.x0+d,p=f.y0+d,g=f.x1-d,y=f.y1-d;g<m&&(m=g=(m+g)/2),y<p&&(p=y=(p+y)/2),f.x0=m,f.y0=p,f.x1=g,f.y1=y,f.children&&(d=i[f.depth+1]=o(f)/2,m+=l(f)-d,p+=a(f)-d,g-=s(f)-d,y-=c(f)-d,g<m&&(m=g=(m+g)/2),y<p&&(p=y=(p+y)/2),t(f,m,p,g,y))}return u.round=function(f){return arguments.length?(e=!!f,u):e},u.size=function(f){return arguments.length?(n=+f[0],r=+f[1],u):[n,r]},u.tile=function(f){return arguments.length?(t=um(f),u):t},u.padding=function(f){return arguments.length?u.paddingInner(f).paddingOuter(f):u.paddingInner()},u.paddingInner=function(f){return arguments.length?(o=typeof f=="function"?f:zi(+f),u):o},u.paddingOuter=function(f){return arguments.length?u.paddingTop(f).paddingRight(f).paddingBottom(f).paddingLeft(f):u.paddingTop()},u.paddingTop=function(f){return arguments.length?(a=typeof f=="function"?f:zi(+f),u):a},u.paddingRight=function(f){return arguments.length?(s=typeof f=="function"?f:zi(+f),u):s},u.paddingBottom=function(f){return arguments.length?(c=typeof f=="function"?f:zi(+f),u):c},u.paddingLeft=function(f){return arguments.length?(l=typeof f=="function"?f:zi(+f),u):l},u}function N7(t,e,n,r,i){var o=t.children,a,s=o.length,c,l=new Array(s+1);for(l[0]=c=a=0;a<s;++a)l[a+1]=c+=o[a].value;u(0,s,t.value,e,n,r,i);function u(h,f,d,m,p,g,y){if(h>=f-1){var w=o[h];w.x0=m,w.y0=p,w.x1=g,w.y1=y;return}for(var b=l[h],v=d/2+b,x=h+1,S=f-1;x<S;){var k=x+S>>>1;l[k]<v?x=k+1:S=k}v-l[x-1]<l[x]-v&&h+1<x&&--x;var C=l[x]-b,F=d-C;if(g-m>y-p){var A=d?(m*F+g*C)/d:g;u(h,x,C,m,p,A,y),u(x,f,F,A,p,g,y)}else{var E=d?(p*F+y*C)/d:y;u(h,x,C,m,p,g,E),u(x,f,F,m,E,g,y)}}}function R7(t,e,n,r,i){(t.depth&1?Ml:ta)(t,e,n,r,i)}var P7=(function t(e){function n(r,i,o,a,s){if((c=r._squarify)&&c.ratio===e)for(var c,l,u,h,f=-1,d,m=c.length,p=r.value;++f<m;){for(l=c[f],u=l.children,h=l.value=0,d=u.length;h<d;++h)l.value+=u[h].value;l.dice?ta(l,i,o,a,p?o+=(s-o)*l.value/p:s):Ml(l,i,o,p?i+=(a-i)*l.value/p:a,s),p-=l.value}else r._squarify=c=ym(e,r,i,o,a,s),c.ratio=e}return n.ratio=function(r){return t((r=+r)>1?r:1)},n})(mm);function I7(t){for(var e=-1,n=t.length,r,i=t[n-1],o=0;++e<n;)r=i,i=t[e],o+=r[1]*i[0]-r[0]*i[1];return o/2}function L7(t){for(var e=-1,n=t.length,r=0,i=0,o,a=t[n-1],s,c=0;++e<n;)o=a,a=t[e],c+=s=o[0]*a[1]-a[0]*o[1],r+=(o[0]+a[0])*s,i+=(o[1]+a[1])*s;return c*=3,[r/c,i/c]}function q7(t,e,n){return(e[0]-t[0])*(n[1]-t[1])-(e[1]-t[1])*(n[0]-t[0])}function Y7(t,e){return t[0]-e[0]||t[1]-e[1]}function vm(t){let e=t.length,n=[0,1],r=2,i;for(i=2;i<e;++i){for(;r>1&&q7(t[n[r-2]],t[n[r-1]],t[i])<=0;)--r;n[r++]=i}return n.slice(0,r)}function U7(t){if((n=t.length)<3)return null;var e,n,r=new Array(n),i=new Array(n);for(e=0;e<n;++e)r[e]=[+t[e][0],+t[e][1],e];for(r.sort(Y7),e=0;e<n;++e)i[e]=[r[e][0],-r[e][1]];var o=vm(r),a=vm(i),s=a[0]===o[0],c=a[a.length-1]===o[o.length-1],l=[];for(e=o.length-1;e>=0;--e)l.push(t[r[o[e]][2]]);for(e=+s;e<a.length-c;++e)l.push(t[r[a[e]][2]]);return l}function H7(t,e){for(var n=t.length,r=t[n-1],i=e[0],o=e[1],a=r[0],s=r[1],c,l,u=!1,h=0;h<n;++h)r=t[h],c=r[0],l=r[1],l>o!=s>o&&i<(a-c)*(o-l)/(s-l)+c&&(u=!u),a=c,s=l;return u}function W7(t){for(var e=-1,n=t.length,r=t[n-1],i,o,a=r[0],s=r[1],c=0;++e<n;)i=a,o=s,r=t[e],a=r[0],s=r[1],i-=a,o-=s,c+=Math.hypot(i,o);return c}var re=Math.random,j7=(function t(e){function n(r,i){return r=r==null?0:+r,i=i==null?1:+i,arguments.length===1?(i=r,r=0):i-=r,function(){return e()*i+r}}return n.source=t,n})(re),X7=(function t(e){function n(r,i){return arguments.length<2&&(i=r,r=0),r=Math.floor(r),i=Math.floor(i)-r,function(){return Math.floor(e()*i+r)}}return n.source=t,n})(re),Hf=(function t(e){function n(r,i){var o,a;return r=r==null?0:+r,i=i==null?1:+i,function(){var s;if(o!=null)s=o,o=null;else do o=e()*2-1,s=e()*2-1,a=o*o+s*s;while(!a||a>1);return r+i*s*Math.sqrt(-2*Math.log(a)/a)}}return n.source=t,n})(re),G7=(function t(e){var n=Hf.source(e);function r(){var i=n.apply(this,arguments);return function(){return Math.exp(i())}}return r.source=t,r})(re),xm=(function t(e){function n(r){return(r=+r)<=0?()=>0:function(){for(var i=0,o=r;o>1;--o)i+=e();return i+o*e()}}return n.source=t,n})(re),V7=(function t(e){var n=xm.source(e);function r(i){if((i=+i)==0)return e;var o=n(i);return function(){return o()/i}}return r.source=t,r})(re),Z7=(function t(e){function n(r){return function(){return-Math.log1p(-e())/r}}return n.source=t,n})(re),K7=(function t(e){function n(r){if((r=+r)<0)throw new RangeError("invalid alpha");return r=1/-r,function(){return Math.pow(1-e(),r)}}return n.source=t,n})(re),Q7=(function t(e){function n(r){if((r=+r)<0||r>1)throw new RangeError("invalid p");return function(){return Math.floor(e()+r)}}return n.source=t,n})(re),_m=(function t(e){function n(r){if((r=+r)<0||r>1)throw new RangeError("invalid p");return r===0?()=>1/0:r===1?()=>1:(r=Math.log1p(-r),function(){return 1+Math.floor(Math.log1p(-e())/r)})}return n.source=t,n})(re),Wf=(function t(e){var n=Hf.source(e)();function r(i,o){if((i=+i)<0)throw new RangeError("invalid k");if(i===0)return()=>0;if(o=o==null?1:+o,i===1)return()=>-Math.log1p(-e())*o;var a=(i<1?i+1:i)-1/3,s=1/(3*Math.sqrt(a)),c=i<1?()=>Math.pow(e(),1/i):()=>1;return function(){do{do var l=n(),u=1+s*l;while(u<=0);u*=u*u;var h=1-e()}while(h>=1-.0331*l*l*l*l&&Math.log(h)>=.5*l*l+a*(1-u+Math.log(u)));return a*u*c()*o}}return r.source=t,r})(re),Sm=(function t(e){var n=Wf.source(e);function r(i,o){var a=n(i),s=n(o);return function(){var c=a();return c===0?0:c/(c+s())}}return r.source=t,r})(re),km=(function t(e){var n=_m.source(e),r=Sm.source(e);function i(o,a){return o=+o,(a=+a)>=1?()=>o:a<=0?()=>0:function(){for(var s=0,c=o,l=a;c*l>16&&c*(1-l)>16;){var u=Math.floor((c+1)*l),h=r(u,c-u+1)();h<=l?(s+=u,c-=u,l=(l-h)/(1-h)):(c=u-1,l/=h)}for(var f=l<.5,d=f?l:1-l,m=n(d),p=m(),g=0;p<=c;++g)p+=m();return s+(f?g:c-g)}}return i.source=t,i})(re),J7=(function t(e){function n(r,i,o){var a;return(r=+r)==0?a=s=>-Math.log(s):(r=1/r,a=s=>Math.pow(s,r)),i=i==null?0:+i,o=o==null?1:+o,function(){return i+o*a(-Math.log1p(-e()))}}return n.source=t,n})(re),tS=(function t(e){function n(r,i){return r=r==null?0:+r,i=i==null?1:+i,function(){return r+i*Math.tan(Math.PI*e())}}return n.source=t,n})(re),eS=(function t(e){function n(r,i){return r=r==null?0:+r,i=i==null?1:+i,function(){var o=e();return r+i*Math.log(o/(1-o))}}return n.source=t,n})(re),nS=(function t(e){var n=Wf.source(e),r=km.source(e);function i(o){return function(){for(var a=0,s=o;s>16;){var c=Math.floor(.875*s),l=n(c)();if(l>s)return a+r(c-1,s/l)();a+=c,s-=l}for(var u=-Math.log1p(-e()),h=0;u<=s;++h)u-=Math.log1p(-e());return a+h}}return i.source=t,i})(re),rS=1664525,iS=1013904223,wm=1/4294967296;function oS(t=Math.random()){let e=(0<=t&&t<1?t/wm:Math.abs(t))|0;return()=>(e=rS*e+iS|0,wm*(e>>>0))}var jf=new Date,Xf=new Date;function jt(t,e,n,r){function i(o){return t(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=o=>(t(o=new Date(+o)),o),i.ceil=o=>(t(o=new Date(o-1)),e(o,1),t(o),o),i.round=o=>{let a=i(o),s=i.ceil(o);return o-a<s-o?a:s},i.offset=(o,a)=>(e(o=new Date(+o),a==null?1:Math.floor(a)),o),i.range=(o,a,s)=>{let c=[];if(o=i.ceil(o),s=s==null?1:Math.floor(s),!(o<a)||!(s>0))return c;let l;do c.push(l=new Date(+o)),e(o,s),t(o);while(l<o&&o<a);return c},i.filter=o=>jt(a=>{if(a>=a)for(;t(a),!o(a);)a.setTime(a-1)},(a,s)=>{if(a>=a)if(s<0)for(;++s<=0;)for(;e(a,-1),!o(a););else for(;--s>=0;)for(;e(a,1),!o(a););}),n&&(i.count=(o,a)=>(jf.setTime(+o),Xf.setTime(+a),t(jf),t(Xf),Math.floor(n(jf,Xf))),i.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?a=>r(a)%o===0:a=>i.count(0,a)%o===0):i)),i}var ea=jt(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);ea.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?jt(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):ea);var aS=ea.range,Ln=1e3,He=Ln*60,qn=He*60,Yn=qn*24,Vf=Yn*7,Am=Yn*30,Gf=Yn*365,Sn=jt(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*Ln)},(t,e)=>(e-t)/Ln,t=>t.getUTCSeconds()),sS=Sn.range,na=jt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Ln)},(t,e)=>{t.setTime(+t+e*He)},(t,e)=>(e-t)/He,t=>t.getMinutes()),lS=na.range,ra=jt(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*He)},(t,e)=>(e-t)/He,t=>t.getUTCMinutes()),cS=ra.range,ia=jt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Ln-t.getMinutes()*He)},(t,e)=>{t.setTime(+t+e*qn)},(t,e)=>(e-t)/qn,t=>t.getHours()),uS=ia.range,oa=jt(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*qn)},(t,e)=>(e-t)/qn,t=>t.getUTCHours()),fS=oa.range,fr=jt(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*He)/Yn,t=>t.getDate()-1),hS=fr.range,Ir=jt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/Yn,t=>t.getUTCDate()-1),dS=Ir.range,Zf=jt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/Yn,t=>Math.floor(t/Yn)),pS=Zf.range;function Lr(t){return jt(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*He)/Vf)}var qr=Lr(0),Ni=Lr(1),Em=Lr(2),Mm=Lr(3),hr=Lr(4),Cm=Lr(5),Fm=Lr(6),gS=qr.range,mS=Ni.range,yS=Em.range,bS=Mm.range,vS=hr.range,wS=Cm.range,xS=Fm.range;function Yr(t){return jt(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/Vf)}var Ur=Yr(0),Ri=Yr(1),Tm=Yr(2),Om=Yr(3),dr=Yr(4),Bm=Yr(5),Dm=Yr(6),_S=Ur.range,SS=Ri.range,kS=Tm.range,AS=Om.range,ES=dr.range,MS=Bm.range,CS=Dm.range,aa=jt(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth()),FS=aa.range,sa=jt(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth()),TS=sa.range,We=jt(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());We.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:jt(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});var OS=We.range,je=jt(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());je.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:jt(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});var BS=je.range;function $m(t,e,n,r,i,o){let a=[[Sn,1,Ln],[Sn,5,5*Ln],[Sn,15,15*Ln],[Sn,30,30*Ln],[o,1,He],[o,5,5*He],[o,15,15*He],[o,30,30*He],[i,1,qn],[i,3,3*qn],[i,6,6*qn],[i,12,12*qn],[r,1,Yn],[r,2,2*Yn],[n,1,Vf],[e,1,Am],[e,3,3*Am],[t,1,Gf]];function s(l,u,h){let f=u<l;f&&([l,u]=[u,l]);let d=h&&typeof h.range=="function"?h:c(l,u,h),m=d?d.range(l,+u+1):[];return f?m.reverse():m}function c(l,u,h){let f=Math.abs(u-l)/h,d=so(([,,g])=>g).right(a,f);if(d===a.length)return t.every(ai(l/Gf,u/Gf,h));if(d===0)return ea.every(Math.max(ai(l,u,h),1));let[m,p]=a[f/a[d-1][2]<a[d][2]/f?d-1:d];return m.every(p)}return[s,c]}var[Kf,Qf]=$m(je,sa,Ur,Zf,oa,ra),[Jf,th]=$m(We,aa,qr,fr,ia,na);function eh(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function nh(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function la(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function Wm(t){var e=t.dateTime,n=t.date,r=t.time,i=t.periods,o=t.days,a=t.shortDays,s=t.months,c=t.shortMonths,l=ca(i),u=ua(i),h=ca(o),f=ua(o),d=ca(a),m=ua(a),p=ca(s),g=ua(s),y=ca(c),w=ua(c),b={a:N,A:L,b:q,B:U,c:null,d:Lm,e:Lm,f:e9,g:f9,G:d9,H:QS,I:JS,j:t9,L:jm,m:n9,M:r9,p:Z,q:Q,Q:Um,s:Hm,S:i9,u:o9,U:a9,V:s9,w:l9,W:c9,x:null,X:null,y:u9,Y:h9,Z:p9,"%":Ym},v={a:j,A:H,b:W,B:J,c:null,d:qm,e:qm,f:b9,g:C9,G:T9,H:g9,I:m9,j:y9,L:Gm,m:v9,M:w9,p:K,q:ht,Q:Um,s:Hm,S:x9,u:_9,U:S9,V:k9,w:A9,W:E9,x:null,X:null,y:M9,Y:F9,Z:O9,"%":Ym},x={a:A,A:E,b:D,B:$,c:M,d:Pm,e:Pm,f:GS,g:Rm,G:Nm,H:Im,I:Im,j:HS,L:XS,m:US,M:WS,p:F,q:YS,Q:ZS,s:KS,S:jS,u:RS,U:PS,V:IS,w:NS,W:LS,x:T,X:B,y:Rm,Y:Nm,Z:qS,"%":VS};b.x=S(n,b),b.X=S(r,b),b.c=S(e,b),v.x=S(n,v),v.X=S(r,v),v.c=S(e,v);function S(X,tt){return function(it){var G=[],xt=-1,mt=0,Bt=X.length,Dt,at,_t;for(it instanceof Date||(it=new Date(+it));++xt<Bt;)X.charCodeAt(xt)===37&&(G.push(X.slice(mt,xt)),(at=zm[Dt=X.charAt(++xt)])!=null?Dt=X.charAt(++xt):at=Dt==="e"?" ":"0",(_t=tt[Dt])&&(Dt=_t(it,at)),G.push(Dt),mt=xt+1);return G.push(X.slice(mt,xt)),G.join("")}}function k(X,tt){return function(it){var G=la(1900,void 0,1),xt=C(G,X,it+="",0),mt,Bt;if(xt!=it.length)return null;if("Q"in G)return new Date(G.Q);if("s"in G)return new Date(G.s*1e3+("L"in G?G.L:0));if(tt&&!("Z"in G)&&(G.Z=0),"p"in G&&(G.H=G.H%12+G.p*12),G.m===void 0&&(G.m="q"in G?G.q:0),"V"in G){if(G.V<1||G.V>53)return null;"w"in G||(G.w=1),"Z"in G?(mt=nh(la(G.y,0,1)),Bt=mt.getUTCDay(),mt=Bt>4||Bt===0?Ri.ceil(mt):Ri(mt),mt=Ir.offset(mt,(G.V-1)*7),G.y=mt.getUTCFullYear(),G.m=mt.getUTCMonth(),G.d=mt.getUTCDate()+(G.w+6)%7):(mt=eh(la(G.y,0,1)),Bt=mt.getDay(),mt=Bt>4||Bt===0?Ni.ceil(mt):Ni(mt),mt=fr.offset(mt,(G.V-1)*7),G.y=mt.getFullYear(),G.m=mt.getMonth(),G.d=mt.getDate()+(G.w+6)%7)}else("W"in G||"U"in G)&&("w"in G||(G.w="u"in G?G.u%7:"W"in G?1:0),Bt="Z"in G?nh(la(G.y,0,1)).getUTCDay():eh(la(G.y,0,1)).getDay(),G.m=0,G.d="W"in G?(G.w+6)%7+G.W*7-(Bt+5)%7:G.w+G.U*7-(Bt+6)%7);return"Z"in G?(G.H+=G.Z/100|0,G.M+=G.Z%100,nh(G)):eh(G)}}function C(X,tt,it,G){for(var xt=0,mt=tt.length,Bt=it.length,Dt,at;xt<mt;){if(G>=Bt)return-1;if(Dt=tt.charCodeAt(xt++),Dt===37){if(Dt=tt.charAt(xt++),at=x[Dt in zm?tt.charAt(xt++):Dt],!at||(G=at(X,it,G))<0)return-1}else if(Dt!=it.charCodeAt(G++))return-1}return G}function F(X,tt,it){var G=l.exec(tt.slice(it));return G?(X.p=u.get(G[0].toLowerCase()),it+G[0].length):-1}function A(X,tt,it){var G=d.exec(tt.slice(it));return G?(X.w=m.get(G[0].toLowerCase()),it+G[0].length):-1}function E(X,tt,it){var G=h.exec(tt.slice(it));return G?(X.w=f.get(G[0].toLowerCase()),it+G[0].length):-1}function D(X,tt,it){var G=y.exec(tt.slice(it));return G?(X.m=w.get(G[0].toLowerCase()),it+G[0].length):-1}function $(X,tt,it){var G=p.exec(tt.slice(it));return G?(X.m=g.get(G[0].toLowerCase()),it+G[0].length):-1}function M(X,tt,it){return C(X,e,tt,it)}function T(X,tt,it){return C(X,n,tt,it)}function B(X,tt,it){return C(X,r,tt,it)}function N(X){return a[X.getDay()]}function L(X){return o[X.getDay()]}function q(X){return c[X.getMonth()]}function U(X){return s[X.getMonth()]}function Z(X){return i[+(X.getHours()>=12)]}function Q(X){return 1+~~(X.getMonth()/3)}function j(X){return a[X.getUTCDay()]}function H(X){return o[X.getUTCDay()]}function W(X){return c[X.getUTCMonth()]}function J(X){return s[X.getUTCMonth()]}function K(X){return i[+(X.getUTCHours()>=12)]}function ht(X){return 1+~~(X.getUTCMonth()/3)}return{format:function(X){var tt=S(X+="",b);return tt.toString=function(){return X},tt},parse:function(X){var tt=k(X+="",!1);return tt.toString=function(){return X},tt},utcFormat:function(X){var tt=S(X+="",v);return tt.toString=function(){return X},tt},utcParse:function(X){var tt=k(X+="",!0);return tt.toString=function(){return X},tt}}}var zm={"-":"",_:" ",0:"0"},te=/^\s*\d+/,DS=/^%/,$S=/[\\^$*+?|[\]().{}]/g;function wt(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<n?new Array(n-o+1).join(e)+i:i)}function zS(t){return t.replace($S,"\\$&")}function ca(t){return new RegExp("^(?:"+t.map(zS).join("|")+")","i")}function ua(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function NS(t,e,n){var r=te.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function RS(t,e,n){var r=te.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function PS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function IS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function LS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Nm(t,e,n){var r=te.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Rm(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function qS(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function YS(t,e,n){var r=te.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function US(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Pm(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function HS(t,e,n){var r=te.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Im(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function WS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function jS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function XS(t,e,n){var r=te.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function GS(t,e,n){var r=te.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function VS(t,e,n){var r=DS.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function ZS(t,e,n){var r=te.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function KS(t,e,n){var r=te.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Lm(t,e){return wt(t.getDate(),e,2)}function QS(t,e){return wt(t.getHours(),e,2)}function JS(t,e){return wt(t.getHours()%12||12,e,2)}function t9(t,e){return wt(1+fr.count(We(t),t),e,3)}function jm(t,e){return wt(t.getMilliseconds(),e,3)}function e9(t,e){return jm(t,e)+"000"}function n9(t,e){return wt(t.getMonth()+1,e,2)}function r9(t,e){return wt(t.getMinutes(),e,2)}function i9(t,e){return wt(t.getSeconds(),e,2)}function o9(t){var e=t.getDay();return e===0?7:e}function a9(t,e){return wt(qr.count(We(t)-1,t),e,2)}function Xm(t){var e=t.getDay();return e>=4||e===0?hr(t):hr.ceil(t)}function s9(t,e){return t=Xm(t),wt(hr.count(We(t),t)+(We(t).getDay()===4),e,2)}function l9(t){return t.getDay()}function c9(t,e){return wt(Ni.count(We(t)-1,t),e,2)}function u9(t,e){return wt(t.getFullYear()%100,e,2)}function f9(t,e){return t=Xm(t),wt(t.getFullYear()%100,e,2)}function h9(t,e){return wt(t.getFullYear()%1e4,e,4)}function d9(t,e){var n=t.getDay();return t=n>=4||n===0?hr(t):hr.ceil(t),wt(t.getFullYear()%1e4,e,4)}function p9(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+wt(e/60|0,"0",2)+wt(e%60,"0",2)}function qm(t,e){return wt(t.getUTCDate(),e,2)}function g9(t,e){return wt(t.getUTCHours(),e,2)}function m9(t,e){return wt(t.getUTCHours()%12||12,e,2)}function y9(t,e){return wt(1+Ir.count(je(t),t),e,3)}function Gm(t,e){return wt(t.getUTCMilliseconds(),e,3)}function b9(t,e){return Gm(t,e)+"000"}function v9(t,e){return wt(t.getUTCMonth()+1,e,2)}function w9(t,e){return wt(t.getUTCMinutes(),e,2)}function x9(t,e){return wt(t.getUTCSeconds(),e,2)}function _9(t){var e=t.getUTCDay();return e===0?7:e}function S9(t,e){return wt(Ur.count(je(t)-1,t),e,2)}function Vm(t){var e=t.getUTCDay();return e>=4||e===0?dr(t):dr.ceil(t)}function k9(t,e){return t=Vm(t),wt(dr.count(je(t),t)+(je(t).getUTCDay()===4),e,2)}function A9(t){return t.getUTCDay()}function E9(t,e){return wt(Ri.count(je(t)-1,t),e,2)}function M9(t,e){return wt(t.getUTCFullYear()%100,e,2)}function C9(t,e){return t=Vm(t),wt(t.getUTCFullYear()%100,e,2)}function F9(t,e){return wt(t.getUTCFullYear()%1e4,e,4)}function T9(t,e){var n=t.getUTCDay();return t=n>=4||n===0?dr(t):dr.ceil(t),wt(t.getUTCFullYear()%1e4,e,4)}function O9(){return"+0000"}function Ym(){return"%"}function Um(t){return+t}function Hm(t){return Math.floor(+t/1e3)}var Pi,Cl,Zm,fa,rh;Km({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Km(t){return Pi=Wm(t),Cl=Pi.format,Zm=Pi.parse,fa=Pi.utcFormat,rh=Pi.utcParse,Pi}var Qm="%Y-%m-%dT%H:%M:%S.%LZ";function B9(t){return t.toISOString()}var D9=Date.prototype.toISOString?B9:fa(Qm);function $9(t){var e=new Date(t);return isNaN(e)?null:e}var z9=+new Date("2000-01-01T00:00:00.000Z")?$9:rh(Qm);function Xe(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function Un(t,e){switch(arguments.length){case 0:break;case 1:{typeof t=="function"?this.interpolator(t):this.range(t);break}default:{this.domain(t),typeof e=="function"?this.interpolator(e):this.range(e);break}}return this}var ih=Symbol("implicit");function ah(){var t=new Jn,e=[],n=[],r=ih;function i(o){let a=t.get(o);if(a===void 0){if(r!==ih)return r;t.set(o,a=e.push(o)-1)}return n[a%n.length]}return i.domain=function(o){if(!arguments.length)return e.slice();e=[],t=new Jn;for(let a of o)t.has(a)||t.set(a,e.push(a)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return ah(e,n).unknown(r)},Xe.apply(i,arguments),i}function sh(){var t=ah().unknown(void 0),e=t.domain,n=t.range,r=0,i=1,o,a,s=!1,c=0,l=0,u=.5;delete t.unknown;function h(){var f=e().length,d=i<r,m=d?i:r,p=d?r:i;o=(p-m)/Math.max(1,f-c+l*2),s&&(o=Math.floor(o)),m+=(p-m-o*(f-c))*u,a=o*(1-c),s&&(m=Math.round(m),a=Math.round(a));var g=hn(f).map(function(y){return m+o*y});return n(d?g.reverse():g)}return t.domain=function(f){return arguments.length?(e(f),h()):e()},t.range=function(f){return arguments.length?([r,i]=f,r=+r,i=+i,h()):[r,i]},t.rangeRound=function(f){return[r,i]=f,r=+r,i=+i,s=!0,h()},t.bandwidth=function(){return a},t.step=function(){return o},t.round=function(f){return arguments.length?(s=!!f,h()):s},t.padding=function(f){return arguments.length?(c=Math.min(1,l=+f),h()):c},t.paddingInner=function(f){return arguments.length?(c=Math.min(1,f),h()):c},t.paddingOuter=function(f){return arguments.length?(l=+f,h()):l},t.align=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),h()):u},t.copy=function(){return sh(e(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},Xe.apply(h(),arguments)}function s1(t){var e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return s1(e())},t}function N9(){return s1(sh.apply(null,arguments).paddingInner(1))}function R9(t){return function(){return t}}function Fl(t){return+t}var Jm=[0,1];function Me(t){return t}function oh(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:R9(isNaN(e)?NaN:.5)}function P9(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function I9(t,e,n){var r=t[0],i=t[1],o=e[0],a=e[1];return i<r?(r=oh(i,r),o=n(a,o)):(r=oh(r,i),o=n(o,a)),function(s){return o(r(s))}}function L9(t,e,n){var r=Math.min(t.length,e.length)-1,i=new Array(r),o=new Array(r),a=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<r;)i[a]=oh(t[a],t[a+1]),o[a]=n(e[a],e[a+1]);return function(s){var c=er(t,s,1,r)-1;return o[c](i[c](s))}}function ha(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Tl(){var t=Jm,e=Jm,n=mn,r,i,o,a=Me,s,c,l;function u(){var f=Math.min(t.length,e.length);return a!==Me&&(a=P9(t[0],t[f-1])),s=f>2?L9:I9,c=l=null,h}function h(f){return f==null||isNaN(f=+f)?o:(c||(c=s(t.map(r),e,n)))(r(a(f)))}return h.invert=function(f){return a(i((l||(l=s(e,t.map(r),Fe)))(f)))},h.domain=function(f){return arguments.length?(t=Array.from(f,Fl),u()):t.slice()},h.range=function(f){return arguments.length?(e=Array.from(f),u()):e.slice()},h.rangeRound=function(f){return e=Array.from(f),n=bo,u()},h.clamp=function(f){return arguments.length?(a=f?!0:Me,u()):a!==Me},h.interpolate=function(f){return arguments.length?(n=f,u()):n},h.unknown=function(f){return arguments.length?(o=f,h):o},function(f,d){return r=f,i=d,u()}}function lh(){return Tl()(Me,Me)}function l1(t,e,n,r){var i=ai(t,e,n),o;switch(r=Dr(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(o=qu(i,a))&&(r.precision=o),Ls(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=Yu(i,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=Lu(i))&&(r.precision=o-(r.type==="%")*2);break}}return Bo(r)}function pr(t){var e=t.domain;return t.ticks=function(n){var r=e();return Tn(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var i=e();return l1(i[0],i[i.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),i=0,o=r.length-1,a=r[i],s=r[o],c,l,u=10;for(s<a&&(l=a,a=s,s=l,l=i,i=o,o=l);u-- >0;){if(l=tr(a,s,n),l===c)return r[i]=a,r[o]=s,e(r);if(l>0)a=Math.floor(a/l)*l,s=Math.ceil(s/l)*l;else if(l<0)a=Math.ceil(a*l)/l,s=Math.floor(s*l)/l;else break;c=l}return t},t}function c1(){var t=lh();return t.copy=function(){return ha(t,c1())},Xe.apply(t,arguments),pr(t)}function u1(t){var e;function n(r){return r==null||isNaN(r=+r)?e:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(t=Array.from(r,Fl),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return u1(t).unknown(e)},t=arguments.length?Array.from(t,Fl):[0,1],pr(n)}function f1(t,e){t=t.slice();var n=0,r=t.length-1,i=t[n],o=t[r],a;return o<i&&(a=n,n=r,r=a,a=i,i=o,o=a),t[n]=e.floor(i),t[r]=e.ceil(o),t}function t1(t){return Math.log(t)}function e1(t){return Math.exp(t)}function q9(t){return-Math.log(-t)}function Y9(t){return-Math.exp(-t)}function U9(t){return isFinite(t)?+("1e"+t):t<0?0:t}function H9(t){return t===10?U9:t===Math.E?Math.exp:e=>Math.pow(t,e)}function W9(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function n1(t){return(e,n)=>-t(-e,n)}function ch(t){let e=t(t1,e1),n=e.domain,r=10,i,o;function a(){return i=W9(r),o=H9(r),n()[0]<0?(i=n1(i),o=n1(o),t(q9,Y9)):t(t1,e1),e}return e.base=function(s){return arguments.length?(r=+s,a()):r},e.domain=function(s){return arguments.length?(n(s),a()):n()},e.ticks=s=>{let c=n(),l=c[0],u=c[c.length-1],h=u<l;h&&([l,u]=[u,l]);let f=i(l),d=i(u),m,p,g=s==null?10:+s,y=[];if(!(r%1)&&d-f<g){if(f=Math.floor(f),d=Math.ceil(d),l>0){for(;f<=d;++f)for(m=1;m<r;++m)if(p=f<0?m/o(-f):m*o(f),!(p<l)){if(p>u)break;y.push(p)}}else for(;f<=d;++f)for(m=r-1;m>=1;--m)if(p=f>0?m/o(-f):m*o(f),!(p<l)){if(p>u)break;y.push(p)}y.length*2<g&&(y=Tn(l,u,g))}else y=Tn(f,d,Math.min(d-f,g)).map(o);return h?y.reverse():y},e.tickFormat=(s,c)=>{if(s==null&&(s=10),c==null&&(c=r===10?"s":","),typeof c!="function"&&(!(r%1)&&(c=Dr(c)).precision==null&&(c.trim=!0),c=Bo(c)),s===1/0)return c;let l=Math.max(1,r*s/e.ticks().length);return u=>{let h=u/o(Math.round(i(u)));return h*r<r-.5&&(h*=r),h<=l?c(u):""}},e.nice=()=>n(f1(n(),{floor:s=>o(Math.floor(i(s))),ceil:s=>o(Math.ceil(i(s)))})),e}function h1(){let t=ch(Tl()).domain([1,10]);return t.copy=()=>ha(t,h1()).base(t.base()),Xe.apply(t,arguments),t}function r1(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function i1(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function uh(t){var e=1,n=t(r1(e),i1(e));return n.constant=function(r){return arguments.length?t(r1(e=+r),i1(e)):e},pr(n)}function d1(){var t=uh(Tl());return t.copy=function(){return ha(t,d1()).constant(t.constant())},Xe.apply(t,arguments)}function o1(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function j9(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function X9(t){return t<0?-t*t:t*t}function fh(t){var e=t(Me,Me),n=1;function r(){return n===1?t(Me,Me):n===.5?t(j9,X9):t(o1(n),o1(1/n))}return e.exponent=function(i){return arguments.length?(n=+i,r()):n},pr(e)}function hh(){var t=fh(Tl());return t.copy=function(){return ha(t,hh()).exponent(t.exponent())},Xe.apply(t,arguments),t}function G9(){return hh.apply(null,arguments).exponent(.5)}function a1(t){return Math.sign(t)*t*t}function V9(t){return Math.sign(t)*Math.sqrt(Math.abs(t))}function p1(){var t=lh(),e=[0,1],n=!1,r;function i(o){var a=V9(t(o));return isNaN(a)?r:n?Math.round(a):a}return i.invert=function(o){return t.invert(a1(o))},i.domain=function(o){return arguments.length?(t.domain(o),i):t.domain()},i.range=function(o){return arguments.length?(t.range((e=Array.from(o,Fl)).map(a1)),i):e.slice()},i.rangeRound=function(o){return i.range(o).round(!0)},i.round=function(o){return arguments.length?(n=!!o,i):n},i.clamp=function(o){return arguments.length?(t.clamp(o),i):t.clamp()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return p1(t.domain(),e).round(n).clamp(t.clamp()).unknown(r)},Xe.apply(i,arguments),pr(i)}function g1(){var t=[],e=[],n=[],r;function i(){var a=0,s=Math.max(1,e.length);for(n=new Array(s-1);++a<s;)n[a-1]=Dc(t,a/s);return o}function o(a){return a==null||isNaN(a=+a)?r:e[er(n,a)]}return o.invertExtent=function(a){var s=e.indexOf(a);return s<0?[NaN,NaN]:[s>0?n[s-1]:t[0],s<n.length?n[s]:t[t.length-1]]},o.domain=function(a){if(!arguments.length)return t.slice();t=[];for(let s of a)s!=null&&!isNaN(s=+s)&&t.push(s);return t.sort(Ot),i()},o.range=function(a){return arguments.length?(e=Array.from(a),i()):e.slice()},o.unknown=function(a){return arguments.length?(r=a,o):r},o.quantiles=function(){return n.slice()},o.copy=function(){return g1().domain(t).range(e).unknown(r)},Xe.apply(o,arguments)}function m1(){var t=0,e=1,n=1,r=[.5],i=[0,1],o;function a(c){return c!=null&&c<=c?i[er(r,c,0,n)]:o}function s(){var c=-1;for(r=new Array(n);++c<n;)r[c]=((c+1)*e-(c-n)*t)/(n+1);return a}return a.domain=function(c){return arguments.length?([t,e]=c,t=+t,e=+e,s()):[t,e]},a.range=function(c){return arguments.length?(n=(i=Array.from(c)).length-1,s()):i.slice()},a.invertExtent=function(c){var l=i.indexOf(c);return l<0?[NaN,NaN]:l<1?[t,r[0]]:l>=n?[r[n-1],e]:[r[l-1],r[l]]},a.unknown=function(c){return arguments.length&&(o=c),a},a.thresholds=function(){return r.slice()},a.copy=function(){return m1().domain([t,e]).range(i).unknown(o)},Xe.apply(pr(a),arguments)}function y1(){var t=[.5],e=[0,1],n,r=1;function i(o){return o!=null&&o<=o?e[er(t,o,0,r)]:n}return i.domain=function(o){return arguments.length?(t=Array.from(o),r=Math.min(t.length,e.length-1),i):t.slice()},i.range=function(o){return arguments.length?(e=Array.from(o),r=Math.min(t.length,e.length-1),i):e.slice()},i.invertExtent=function(o){var a=e.indexOf(o);return[t[a-1],t[a]]},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return y1().domain(t).range(e).unknown(n)},Xe.apply(i,arguments)}function Z9(t){return new Date(t)}function K9(t){return t instanceof Date?+t:Math.round(t)}function dh(t,e,n,r,i,o,a,s,c,l){var u=lh(),h=u.invert,f=u.domain,d=l(".%L"),m=l(":%S"),p=l("%I:%M"),g=l("%I %p"),y=l("%a %d"),w=l("%b %d"),b=l("%B"),v=l("%Y");function x(S){return(c(S)<S?d:s(S)<S?m:a(S)<S?p:o(S)<S?g:r(S)<S?i(S)<S?y:w:n(S)<S?b:v)(S)}return u.invert=function(S){return new Date(Math.round(h(S)))},u.domain=function(S){return arguments.length?f(Array.from(S,K9)):f().map(Z9)},u.ticks=function(S){var k=f();return t(k[0],k[k.length-1],S??10)},u.tickFormat=function(S,k){return k==null?x:l(k)},u.nice=function(S){var k=f();return(!S||typeof S.range!="function")&&(S=e(k[0],k[k.length-1],S??10)),S?f(f1(k,S)):u},u.copy=function(){return ha(u,dh(t,e,n,r,i,o,a,s,c,l))},u}function Q9(){return Xe.apply(dh(Jf,th,We,aa,qr,fr,ia,na,Sn,Cl).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function J9(){return Xe.apply(dh(Kf,Qf,je,sa,Ur,Ir,oa,ra,Sn,fa).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Ol(){var t=0,e=1,n,r,i,o,a=Me,s=!1,c;function l(h){return h==null||isNaN(h=+h)?c:a(i===0?.5:(h=(o(h)-n)*i,s?Math.max(0,Math.min(1,h)):h))}l.domain=function(h){return arguments.length?([t,e]=h,n=o(t=+t),r=o(e=+e),i=n===r?0:1/(r-n),l):[t,e]},l.clamp=function(h){return arguments.length?(s=!!h,l):s},l.interpolator=function(h){return arguments.length?(a=h,l):a};function u(h){return function(f){var d,m;return arguments.length?([d,m]=f,a=h(d,m),l):[a(0),a(1)]}}return l.range=u(mn),l.rangeRound=u(bo),l.unknown=function(h){return arguments.length?(c=h,l):c},function(h){return o=h,n=h(t),r=h(e),i=n===r?0:1/(r-n),l}}function gr(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function b1(){var t=pr(Ol()(Me));return t.copy=function(){return gr(t,b1())},Un.apply(t,arguments)}function v1(){var t=ch(Ol()).domain([1,10]);return t.copy=function(){return gr(t,v1()).base(t.base())},Un.apply(t,arguments)}function w1(){var t=uh(Ol());return t.copy=function(){return gr(t,w1()).constant(t.constant())},Un.apply(t,arguments)}function ph(){var t=fh(Ol());return t.copy=function(){return gr(t,ph()).exponent(t.exponent())},Un.apply(t,arguments)}function tk(){return ph.apply(null,arguments).exponent(.5)}function x1(){var t=[],e=Me;function n(r){if(r!=null&&!isNaN(r=+r))return e((er(t,r,1)-1)/(t.length-1))}return n.domain=function(r){if(!arguments.length)return t.slice();t=[];for(let i of r)i!=null&&!isNaN(i=+i)&&t.push(i);return t.sort(Ot),n},n.interpolator=function(r){return arguments.length?(e=r,n):e},n.range=function(){return t.map((r,i)=>e(i/(t.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(i,o)=>ii(t,o/r))},n.copy=function(){return x1(e).domain(t)},Un.apply(n,arguments)}function Bl(){var t=0,e=.5,n=1,r=1,i,o,a,s,c,l=Me,u,h=!1,f;function d(p){return p==null||isNaN(p=+p)?f:(p=.5+((p=+u(p))-o)*(r*p<r*o?s:c),l(h?Math.max(0,Math.min(1,p)):p))}d.domain=function(p){return arguments.length?([t,e,n]=p,i=u(t=+t),o=u(e=+e),a=u(n=+n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,d):[t,e,n]},d.clamp=function(p){return arguments.length?(h=!!p,d):h},d.interpolator=function(p){return arguments.length?(l=p,d):l};function m(p){return function(g){var y,w,b;return arguments.length?([y,w,b]=g,l=ou(p,[y,w,b]),d):[l(0),l(.5),l(1)]}}return d.range=m(mn),d.rangeRound=m(bo),d.unknown=function(p){return arguments.length?(f=p,d):f},function(p){return u=p,i=p(t),o=p(e),a=p(n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,d}}function _1(){var t=pr(Bl()(Me));return t.copy=function(){return gr(t,_1())},Un.apply(t,arguments)}function S1(){var t=ch(Bl()).domain([.1,1,10]);return t.copy=function(){return gr(t,S1()).base(t.base())},Un.apply(t,arguments)}function k1(){var t=uh(Bl());return t.copy=function(){return gr(t,k1()).constant(t.constant())},Un.apply(t,arguments)}function gh(){var t=fh(Bl());return t.copy=function(){return gr(t,gh()).exponent(t.exponent())},Un.apply(t,arguments)}function ek(){return gh.apply(null,arguments).exponent(.5)}function pt(t){for(var e=t.length/6|0,n=new Array(e),r=0;r<e;)n[r]="#"+t.slice(r*6,++r*6);return n}var nk=pt("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),rk=pt("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),ik=pt("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),ok=pt("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0"),ak=pt("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),sk=pt("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),lk=pt("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),ck=pt("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),uk=pt("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),fk=pt("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"),hk=pt("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab"),Mt=t=>tu(t[t.length-1]),A1=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(pt),dk=Mt(A1),E1=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(pt),pk=Mt(E1),M1=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(pt),gk=Mt(M1),C1=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(pt),mk=Mt(C1),F1=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(pt),yk=Mt(F1),T1=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(pt),bk=Mt(T1),O1=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(pt),vk=Mt(O1),B1=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(pt),wk=Mt(B1),D1=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(pt),xk=Mt(D1),$1=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(pt),_k=Mt($1),z1=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(pt),Sk=Mt(z1),N1=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(pt),kk=Mt(N1),R1=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(pt),Ak=Mt(R1),P1=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(pt),Ek=Mt(P1),I1=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(pt),Mk=Mt(I1),L1=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(pt),Ck=Mt(L1),q1=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(pt),Fk=Mt(q1),Y1=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(pt),Tk=Mt(Y1),U1=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(pt),Ok=Mt(U1),H1=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(pt),Bk=Mt(H1),W1=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(pt),Dk=Mt(W1),j1=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(pt),$k=Mt(j1),X1=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(pt),zk=Mt(X1),G1=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(pt),Nk=Mt(G1),V1=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(pt),Rk=Mt(V1),Z1=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(pt),Pk=Mt(Z1),K1=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(pt),Ik=Mt(K1);function Lk(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-t*(35.34-t*(2381.73-t*(6402.7-t*(7024.72-t*2710.57)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+t*(170.73+t*(52.82-t*(131.46-t*(176.58-t*67.37)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+t*(442.36-t*(2482.43-t*(6167.24-t*(6614.94-t*2475.67)))))))+")"}var qk=vo(Ne(300,.5,0),Ne(-240,.5,1)),Yk=vo(Ne(-100,.75,.35),Ne(80,1.5,.8)),Uk=vo(Ne(260,.75,.35),Ne(80,1.5,.8)),Dl=Ne();function Hk(t){(t<0||t>1)&&(t-=Math.floor(t));var e=Math.abs(t-.5);return Dl.h=360*t-100,Dl.s=1.5-1.5*e,Dl.l=.8-.9*e,Dl+""}var $l=or(),Wk=Math.PI/3,jk=Math.PI*2/3;function Xk(t){var e;return t=(.5-t)*Math.PI,$l.r=255*(e=Math.sin(t))*e,$l.g=255*(e=Math.sin(t+Wk))*e,$l.b=255*(e=Math.sin(t+jk))*e,$l+""}function Gk(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+t*(1172.33-t*(10793.56-t*(33300.12-t*(38394.49-t*14825.05)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+t*(557.33+t*(1225.33-t*(3574.96-t*(1073.77+t*707.56)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+t*(3211.1-t*(15327.97-t*(27814-t*(22569.18-t*6838.66)))))))+")"}function zl(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}var Vk=zl(pt("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),Zk=zl(pt("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),Kk=zl(pt("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),Qk=zl(pt("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));function dt(t){return function(){return t}}var Q1=Math.abs,fe=Math.atan2,Hn=Math.cos,Jk=Math.max,Ii=Math.min,Be=Math.sin,Ct=Math.sqrt,he=1e-12,yr=Math.PI,Rl=yr/2,mr=2*yr;function tA(t){return t>1?0:t<-1?yr:Math.acos(t)}function J1(t){return t>=1?Rl:t<=-1?-Rl:Math.asin(t)}function ga(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(n==null)e=null;else{let r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);e=r}return t},()=>new sr(e)}function eA(t){return t.innerRadius}function nA(t){return t.outerRadius}function rA(t){return t.startAngle}function iA(t){return t.endAngle}function oA(t){return t&&t.padAngle}function aA(t,e,n,r,i,o,a,s){var c=n-t,l=r-e,u=a-i,h=s-o,f=h*c-u*l;if(!(f*f<he))return f=(u*(e-o)-h*(t-i))/f,[t+f*c,e+f*l]}function Nl(t,e,n,r,i,o,a){var s=t-n,c=e-r,l=(a?o:-o)/Ct(s*s+c*c),u=l*c,h=-l*s,f=t+u,d=e+h,m=n+u,p=r+h,g=(f+m)/2,y=(d+p)/2,w=m-f,b=p-d,v=w*w+b*b,x=i-o,S=f*p-m*d,k=(b<0?-1:1)*Ct(Jk(0,x*x*v-S*S)),C=(S*b-w*k)/v,F=(-S*w-b*k)/v,A=(S*b+w*k)/v,E=(-S*w+b*k)/v,D=C-g,$=F-y,M=A-g,T=E-y;return D*D+$*$>M*M+T*T&&(C=A,F=E),{cx:C,cy:F,x01:-u,y01:-h,x11:C*(i/x-1),y11:F*(i/x-1)}}function sA(){var t=eA,e=nA,n=dt(0),r=null,i=rA,o=iA,a=oA,s=null,c=ga(l);function l(){var u,h,f=+t.apply(this,arguments),d=+e.apply(this,arguments),m=i.apply(this,arguments)-Rl,p=o.apply(this,arguments)-Rl,g=Q1(p-m),y=p>m;if(s||(s=u=c()),d<f&&(h=d,d=f,f=h),!(d>he))s.moveTo(0,0);else if(g>mr-he)s.moveTo(d*Hn(m),d*Be(m)),s.arc(0,0,d,m,p,!y),f>he&&(s.moveTo(f*Hn(p),f*Be(p)),s.arc(0,0,f,p,m,y));else{var w=m,b=p,v=m,x=p,S=g,k=g,C=a.apply(this,arguments)/2,F=C>he&&(r?+r.apply(this,arguments):Ct(f*f+d*d)),A=Ii(Q1(d-f)/2,+n.apply(this,arguments)),E=A,D=A,$,M;if(F>he){var T=J1(F/f*Be(C)),B=J1(F/d*Be(C));(S-=T*2)>he?(T*=y?1:-1,v+=T,x-=T):(S=0,v=x=(m+p)/2),(k-=B*2)>he?(B*=y?1:-1,w+=B,b-=B):(k=0,w=b=(m+p)/2)}var N=d*Hn(w),L=d*Be(w),q=f*Hn(x),U=f*Be(x);if(A>he){var Z=d*Hn(b),Q=d*Be(b),j=f*Hn(v),H=f*Be(v),W;if(g<yr)if(W=aA(N,L,j,H,Z,Q,q,U)){var J=N-W[0],K=L-W[1],ht=Z-W[0],X=Q-W[1],tt=1/Be(tA((J*ht+K*X)/(Ct(J*J+K*K)*Ct(ht*ht+X*X)))/2),it=Ct(W[0]*W[0]+W[1]*W[1]);E=Ii(A,(f-it)/(tt-1)),D=Ii(A,(d-it)/(tt+1))}else E=D=0}k>he?D>he?($=Nl(j,H,N,L,d,D,y),M=Nl(Z,Q,q,U,d,D,y),s.moveTo($.cx+$.x01,$.cy+$.y01),D<A?s.arc($.cx,$.cy,D,fe($.y01,$.x01),fe(M.y01,M.x01),!y):(s.arc($.cx,$.cy,D,fe($.y01,$.x01),fe($.y11,$.x11),!y),s.arc(0,0,d,fe($.cy+$.y11,$.cx+$.x11),fe(M.cy+M.y11,M.cx+M.x11),!y),s.arc(M.cx,M.cy,D,fe(M.y11,M.x11),fe(M.y01,M.x01),!y))):(s.moveTo(N,L),s.arc(0,0,d,w,b,!y)):s.moveTo(N,L),!(f>he)||!(S>he)?s.lineTo(q,U):E>he?($=Nl(q,U,Z,Q,f,-E,y),M=Nl(N,L,j,H,f,-E,y),s.lineTo($.cx+$.x01,$.cy+$.y01),E<A?s.arc($.cx,$.cy,E,fe($.y01,$.x01),fe(M.y01,M.x01),!y):(s.arc($.cx,$.cy,E,fe($.y01,$.x01),fe($.y11,$.x11),!y),s.arc(0,0,f,fe($.cy+$.y11,$.cx+$.x11),fe(M.cy+M.y11,M.cx+M.x11),y),s.arc(M.cx,M.cy,E,fe(M.y11,M.x11),fe(M.y01,M.x01),!y))):s.arc(0,0,f,x,v,y)}if(s.closePath(),u)return s=null,u+""||null}return l.centroid=function(){var u=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,h=(+i.apply(this,arguments)+ +o.apply(this,arguments))/2-yr/2;return[Hn(h)*u,Be(h)*u]},l.innerRadius=function(u){return arguments.length?(t=typeof u=="function"?u:dt(+u),l):t},l.outerRadius=function(u){return arguments.length?(e=typeof u=="function"?u:dt(+u),l):e},l.cornerRadius=function(u){return arguments.length?(n=typeof u=="function"?u:dt(+u),l):n},l.padRadius=function(u){return arguments.length?(r=u==null?null:typeof u=="function"?u:dt(+u),l):r},l.startAngle=function(u){return arguments.length?(i=typeof u=="function"?u:dt(+u),l):i},l.endAngle=function(u){return arguments.length?(o=typeof u=="function"?u:dt(+u),l):o},l.padAngle=function(u){return arguments.length?(a=typeof u=="function"?u:dt(+u),l):a},l.context=function(u){return arguments.length?(s=u??null,l):s},l}var lA=Array.prototype.slice;function Yl(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function iy(t){this._context=t}iy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function Ul(t){return new iy(t)}function wh(t){return t[0]}function xh(t){return t[1]}function _h(t,e){var n=dt(!0),r=null,i=Ul,o=null,a=ga(s);t=typeof t=="function"?t:t===void 0?wh:dt(t),e=typeof e=="function"?e:e===void 0?xh:dt(e);function s(c){var l,u=(c=Yl(c)).length,h,f=!1,d;for(r==null&&(o=i(d=a())),l=0;l<=u;++l)!(l<u&&n(h=c[l],l,c))===f&&((f=!f)?o.lineStart():o.lineEnd()),f&&o.point(+t(h,l,c),+e(h,l,c));if(d)return o=null,d+""||null}return s.x=function(c){return arguments.length?(t=typeof c=="function"?c:dt(+c),s):t},s.y=function(c){return arguments.length?(e=typeof c=="function"?c:dt(+c),s):e},s.defined=function(c){return arguments.length?(n=typeof c=="function"?c:dt(!!c),s):n},s.curve=function(c){return arguments.length?(i=c,r!=null&&(o=i(r)),s):i},s.context=function(c){return arguments.length?(c==null?r=o=null:o=i(r=c),s):r},s}function oy(t,e,n){var r=null,i=dt(!0),o=null,a=Ul,s=null,c=ga(l);t=typeof t=="function"?t:t===void 0?wh:dt(+t),e=typeof e=="function"?e:dt(e===void 0?0:+e),n=typeof n=="function"?n:n===void 0?xh:dt(+n);function l(h){var f,d,m,p=(h=Yl(h)).length,g,y=!1,w,b=new Array(p),v=new Array(p);for(o==null&&(s=a(w=c())),f=0;f<=p;++f){if(!(f<p&&i(g=h[f],f,h))===y)if(y=!y)d=f,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),m=f-1;m>=d;--m)s.point(b[m],v[m]);s.lineEnd(),s.areaEnd()}y&&(b[f]=+t(g,f,h),v[f]=+e(g,f,h),s.point(r?+r(g,f,h):b[f],n?+n(g,f,h):v[f]))}if(w)return s=null,w+""||null}function u(){return _h().defined(i).curve(a).context(o)}return l.x=function(h){return arguments.length?(t=typeof h=="function"?h:dt(+h),r=null,l):t},l.x0=function(h){return arguments.length?(t=typeof h=="function"?h:dt(+h),l):t},l.x1=function(h){return arguments.length?(r=h==null?null:typeof h=="function"?h:dt(+h),l):r},l.y=function(h){return arguments.length?(e=typeof h=="function"?h:dt(+h),n=null,l):e},l.y0=function(h){return arguments.length?(e=typeof h=="function"?h:dt(+h),l):e},l.y1=function(h){return arguments.length?(n=h==null?null:typeof h=="function"?h:dt(+h),l):n},l.lineX0=l.lineY0=function(){return u().x(t).y(e)},l.lineY1=function(){return u().x(t).y(n)},l.lineX1=function(){return u().x(r).y(e)},l.defined=function(h){return arguments.length?(i=typeof h=="function"?h:dt(!!h),l):i},l.curve=function(h){return arguments.length?(a=h,o!=null&&(s=a(o)),l):a},l.context=function(h){return arguments.length?(h==null?o=s=null:s=a(o=h),l):o},l}function cA(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}function uA(t){return t}function fA(){var t=uA,e=cA,n=null,r=dt(0),i=dt(mr),o=dt(0);function a(s){var c,l=(s=Yl(s)).length,u,h,f=0,d=new Array(l),m=new Array(l),p=+r.apply(this,arguments),g=Math.min(mr,Math.max(-mr,i.apply(this,arguments)-p)),y,w=Math.min(Math.abs(g)/l,o.apply(this,arguments)),b=w*(g<0?-1:1),v;for(c=0;c<l;++c)(v=m[d[c]=c]=+t(s[c],c,s))>0&&(f+=v);for(e!=null?d.sort(function(x,S){return e(m[x],m[S])}):n!=null&&d.sort(function(x,S){return n(s[x],s[S])}),c=0,h=f?(g-l*b)/f:0;c<l;++c,p=y)u=d[c],v=m[u],y=p+(v>0?v*h:0)+b,m[u]={data:s[u],index:c,value:v,startAngle:p,endAngle:y,padAngle:w};return m}return a.value=function(s){return arguments.length?(t=typeof s=="function"?s:dt(+s),a):t},a.sortValues=function(s){return arguments.length?(e=s,n=null,a):e},a.sort=function(s){return arguments.length?(n=s,e=null,a):n},a.startAngle=function(s){return arguments.length?(r=typeof s=="function"?s:dt(+s),a):r},a.endAngle=function(s){return arguments.length?(i=typeof s=="function"?s:dt(+s),a):i},a.padAngle=function(s){return arguments.length?(o=typeof s=="function"?s:dt(+s),a):o},a}var ay=Sh(Ul);function sy(t){this._curve=t}sy.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,e){this._curve.point(e*Math.sin(t),e*-Math.cos(t))}};function Sh(t){function e(n){return new sy(t(n))}return e._curve=t,e}function da(t){var e=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(n){return arguments.length?e(Sh(n)):e()._curve},t}function hA(){return da(_h().curve(ay))}function dA(){var t=oy().curve(ay),e=t.curve,n=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return da(n())},delete t.lineX0,t.lineEndAngle=function(){return da(r())},delete t.lineX1,t.lineInnerRadius=function(){return da(i())},delete t.lineY0,t.lineOuterRadius=function(){return da(o())},delete t.lineY1,t.curve=function(a){return arguments.length?e(Sh(a)):e()._curve},t}function pa(t,e){return[(e=+e)*Math.cos(t-=Math.PI/2),e*Math.sin(t)]}var Pl=class{constructor(e,n){this._context=e,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,n){switch(e=+e,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,n):this._context.moveTo(e,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,n,e,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,e,this._y0,e,n);break}}this._x0=e,this._y0=n}},bh=class{constructor(e){this._context=e}lineStart(){this._point=0}lineEnd(){}point(e,n){if(e=+e,n=+n,this._point===0)this._point=1;else{let r=pa(this._x0,this._y0),i=pa(this._x0,this._y0=(this._y0+n)/2),o=pa(e,this._y0),a=pa(e,n);this._context.moveTo(...r),this._context.bezierCurveTo(...i,...o,...a)}this._x0=e,this._y0=n}};function ly(t){return new Pl(t,!0)}function cy(t){return new Pl(t,!1)}function pA(t){return new bh(t)}function gA(t){return t.source}function mA(t){return t.target}function Hl(t){let e=gA,n=mA,r=wh,i=xh,o=null,a=null,s=ga(c);function c(){let l,u=lA.call(arguments),h=e.apply(this,u),f=n.apply(this,u);if(o==null&&(a=t(l=s())),a.lineStart(),u[0]=h,a.point(+r.apply(this,u),+i.apply(this,u)),u[0]=f,a.point(+r.apply(this,u),+i.apply(this,u)),a.lineEnd(),l)return a=null,l+""||null}return c.source=function(l){return arguments.length?(e=l,c):e},c.target=function(l){return arguments.length?(n=l,c):n},c.x=function(l){return arguments.length?(r=typeof l=="function"?l:dt(+l),c):r},c.y=function(l){return arguments.length?(i=typeof l=="function"?l:dt(+l),c):i},c.context=function(l){return arguments.length?(l==null?o=a=null:a=t(o=l),c):o},c}function yA(){return Hl(ly)}function bA(){return Hl(cy)}function vA(){let t=Hl(pA);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t}var wA=Ct(3),uy={draw(t,e){let n=Ct(e+Ii(e/28,.75))*.59436,r=n/2,i=r*wA;t.moveTo(0,n),t.lineTo(0,-n),t.moveTo(-i,-r),t.lineTo(i,r),t.moveTo(-i,r),t.lineTo(i,-r)}},Wl={draw(t,e){let n=Ct(e/yr);t.moveTo(n,0),t.arc(0,0,n,0,mr)}},fy={draw(t,e){let n=Ct(e/5)/2;t.moveTo(-3*n,-n),t.lineTo(-n,-n),t.lineTo(-n,-3*n),t.lineTo(n,-3*n),t.lineTo(n,-n),t.lineTo(3*n,-n),t.lineTo(3*n,n),t.lineTo(n,n),t.lineTo(n,3*n),t.lineTo(-n,3*n),t.lineTo(-n,n),t.lineTo(-3*n,n),t.closePath()}},hy=Ct(1/3),xA=hy*2,dy={draw(t,e){let n=Ct(e/xA),r=n*hy;t.moveTo(0,-n),t.lineTo(r,0),t.lineTo(0,n),t.lineTo(-r,0),t.closePath()}},py={draw(t,e){let n=Ct(e)*.62625;t.moveTo(0,-n),t.lineTo(n,0),t.lineTo(0,n),t.lineTo(-n,0),t.closePath()}},gy={draw(t,e){let n=Ct(e-Ii(e/7,2))*.87559;t.moveTo(-n,0),t.lineTo(n,0),t.moveTo(0,n),t.lineTo(0,-n)}},my={draw(t,e){let n=Ct(e),r=-n/2;t.rect(r,r,n,n)}},yy={draw(t,e){let n=Ct(e)*.4431;t.moveTo(n,n),t.lineTo(n,-n),t.lineTo(-n,-n),t.lineTo(-n,n),t.closePath()}},_A=.8908130915292852,by=Be(yr/10)/Be(7*yr/10),SA=Be(mr/10)*by,kA=-Hn(mr/10)*by,vy={draw(t,e){let n=Ct(e*_A),r=SA*n,i=kA*n;t.moveTo(0,-n),t.lineTo(r,i);for(let o=1;o<5;++o){let a=mr*o/5,s=Hn(a),c=Be(a);t.lineTo(c*n,-s*n),t.lineTo(s*r-c*i,c*r+s*i)}t.closePath()}},mh=Ct(3),wy={draw(t,e){let n=-Ct(e/(mh*3));t.moveTo(0,n*2),t.lineTo(-mh*n,-n),t.lineTo(mh*n,-n),t.closePath()}},AA=Ct(3),xy={draw(t,e){let n=Ct(e)*.6824,r=n/2,i=n*AA/2;t.moveTo(0,-n),t.lineTo(i,r),t.lineTo(-i,r),t.closePath()}},Ge=-.5,Ve=Ct(3)/2,vh=1/Ct(12),EA=(vh/2+1)*3,_y={draw(t,e){let n=Ct(e/EA),r=n/2,i=n*vh,o=r,a=n*vh+n,s=-o,c=a;t.moveTo(r,i),t.lineTo(o,a),t.lineTo(s,c),t.lineTo(Ge*r-Ve*i,Ve*r+Ge*i),t.lineTo(Ge*o-Ve*a,Ve*o+Ge*a),t.lineTo(Ge*s-Ve*c,Ve*s+Ge*c),t.lineTo(Ge*r+Ve*i,Ge*i-Ve*r),t.lineTo(Ge*o+Ve*a,Ge*a-Ve*o),t.lineTo(Ge*s+Ve*c,Ge*c-Ve*s),t.closePath()}},Sy={draw(t,e){let n=Ct(e-Ii(e/6,1.7))*.6189;t.moveTo(-n,-n),t.lineTo(n,n),t.moveTo(-n,n),t.lineTo(n,-n)}},MA=[Wl,fy,dy,my,vy,wy,_y],CA=[Wl,gy,Sy,xy,uy,yy,py];function FA(t,e){let n=null,r=ga(i);t=typeof t=="function"?t:dt(t||Wl),e=typeof e=="function"?e:dt(e===void 0?64:+e);function i(){let o;if(n||(n=o=r()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),o)return n=null,o+""||null}return i.type=function(o){return arguments.length?(t=typeof o=="function"?o:dt(o),i):t},i.size=function(o){return arguments.length?(e=typeof o=="function"?o:dt(+o),i):e},i.context=function(o){return arguments.length?(n=o??null,i):n},i}function br(){}function Il(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function jl(t){this._context=t}jl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Il(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Il(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function TA(t){return new jl(t)}function ky(t){this._context=t}ky.prototype={areaStart:br,areaEnd:br,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:Il(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function OA(t){return new ky(t)}function Ay(t){this._context=t}Ay.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Il(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function BA(t){return new Ay(t)}function Ey(t,e){this._basis=new jl(t),this._beta=e}Ey.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var r=t[0],i=e[0],o=t[n]-r,a=e[n]-i,s=-1,c;++s<=n;)c=s/n,this._basis.point(this._beta*t[s]+(1-this._beta)*(r+c*o),this._beta*e[s]+(1-this._beta)*(i+c*a));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var DA=(function t(e){function n(r){return e===1?new jl(r):new Ey(r,e)}return n.beta=function(r){return t(+r)},n})(.85);function Ll(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function kh(t,e){this._context=t,this._k=(1-e)/6}kh.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Ll(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:Ll(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var $A=(function t(e){function n(r){return new kh(r,e)}return n.tension=function(r){return t(+r)},n})(0);function Ah(t,e){this._context=t,this._k=(1-e)/6}Ah.prototype={areaStart:br,areaEnd:br,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Ll(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var zA=(function t(e){function n(r){return new Ah(r,e)}return n.tension=function(r){return t(+r)},n})(0);function Eh(t,e){this._context=t,this._k=(1-e)/6}Eh.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Ll(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var NA=(function t(e){function n(r){return new Eh(r,e)}return n.tension=function(r){return t(+r)},n})(0);function Mh(t,e,n){var r=t._x1,i=t._y1,o=t._x2,a=t._y2;if(t._l01_a>he){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>he){var l=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,u=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*l+t._x1*t._l23_2a-e*t._l12_2a)/u,a=(a*l+t._y1*t._l23_2a-n*t._l12_2a)/u}t._context.bezierCurveTo(r,i,o,a,t._x2,t._y2)}function My(t,e){this._context=t,this._alpha=e}My.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Mh(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var RA=(function t(e){function n(r){return e?new My(r,e):new kh(r,0)}return n.alpha=function(r){return t(+r)},n})(.5);function Cy(t,e){this._context=t,this._alpha=e}Cy.prototype={areaStart:br,areaEnd:br,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Mh(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var PA=(function t(e){function n(r){return e?new Cy(r,e):new Ah(r,0)}return n.alpha=function(r){return t(+r)},n})(.5);function Fy(t,e){this._context=t,this._alpha=e}Fy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Mh(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var IA=(function t(e){function n(r){return e?new Fy(r,e):new Eh(r,0)}return n.alpha=function(r){return t(+r)},n})(.5);function Ty(t){this._context=t}Ty.prototype={areaStart:br,areaEnd:br,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function LA(t){return new Ty(t)}function ty(t){return t<0?-1:1}function ey(t,e,n){var r=t._x1-t._x0,i=e-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),a=(n-t._y1)/(i||r<0&&-0),s=(o*i+a*r)/(r+i);return(ty(o)+ty(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function ny(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function yh(t,e,n){var r=t._x0,i=t._y0,o=t._x1,a=t._y1,s=(o-r)/3;t._context.bezierCurveTo(r+s,i+s*e,o-s,a-s*n,o,a)}function ql(t){this._context=t}ql.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:yh(this,this._t0,ny(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,yh(this,ny(this,n=ey(this,t,e)),n);break;default:yh(this,this._t0,n=ey(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}};function Oy(t){this._context=new By(t)}(Oy.prototype=Object.create(ql.prototype)).point=function(t,e){ql.prototype.point.call(this,e,t)};function By(t){this._context=t}By.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,r,i,o){this._context.bezierCurveTo(e,t,r,n,o,i)}};function qA(t){return new ql(t)}function YA(t){return new Oy(t)}function Dy(t){this._context=t}Dy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),n===2)this._context.lineTo(t[1],e[1]);else for(var r=ry(t),i=ry(e),o=0,a=1;a<n;++o,++a)this._context.bezierCurveTo(r[0][o],i[0][o],r[1][o],i[1][o],t[a],e[a]);(this._line||this._line!==0&&n===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}};function ry(t){var e,n=t.length-1,r,i=new Array(n),o=new Array(n),a=new Array(n);for(i[0]=0,o[0]=2,a[0]=t[0]+2*t[1],e=1;e<n-1;++e)i[e]=1,o[e]=4,a[e]=4*t[e]+2*t[e+1];for(i[n-1]=2,o[n-1]=7,a[n-1]=8*t[n-1]+t[n],e=1;e<n;++e)r=i[e]/o[e-1],o[e]-=r,a[e]-=r*a[e-1];for(i[n-1]=a[n-1]/o[n-1],e=n-2;e>=0;--e)i[e]=(a[e]-i[e+1])/o[e];for(o[n-1]=(t[n]+i[n-1])/2,e=0;e<n-1;++e)o[e]=2*t[e+1]-i[e+1];return[i,o]}function UA(t){return new Dy(t)}function Xl(t,e){this._context=t,this._t=e}Xl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}break}}this._x=t,this._y=e}};function HA(t){return new Xl(t,.5)}function WA(t){return new Xl(t,0)}function jA(t){return new Xl(t,1)}function Li(t,e){if((a=t.length)>1)for(var n=1,r,i,o=t[e[0]],a,s=o.length;n<a;++n)for(i=o,o=t[e[n]],r=0;r<s;++r)o[r][1]+=o[r][0]=isNaN(i[r][1])?i[r][0]:i[r][1]}function qi(t){for(var e=t.length,n=new Array(e);--e>=0;)n[e]=e;return n}function XA(t,e){return t[e]}function GA(t){let e=[];return e.key=t,e}function VA(){var t=dt([]),e=qi,n=Li,r=XA;function i(o){var a=Array.from(t.apply(this,arguments),GA),s,c=a.length,l=-1,u;for(let h of o)for(s=0,++l;s<c;++s)(a[s][l]=[0,+r(h,a[s].key,l,o)]).data=h;for(s=0,u=Yl(e(a));s<c;++s)a[u[s]].index=s;return n(a,u),a}return i.keys=function(o){return arguments.length?(t=typeof o=="function"?o:dt(Array.from(o)),i):t},i.value=function(o){return arguments.length?(r=typeof o=="function"?o:dt(+o),i):r},i.order=function(o){return arguments.length?(e=o==null?qi:typeof o=="function"?o:dt(Array.from(o)),i):e},i.offset=function(o){return arguments.length?(n=o??Li,i):n},i}function ZA(t,e){if((r=t.length)>0){for(var n,r,i=0,o=t[0].length,a;i<o;++i){for(a=n=0;n<r;++n)a+=t[n][i][1]||0;if(a)for(n=0;n<r;++n)t[n][i][1]/=a}Li(t,e)}}function KA(t,e){if((c=t.length)>0)for(var n,r=0,i,o,a,s,c,l=t[e[0]].length;r<l;++r)for(a=s=0,n=0;n<c;++n)(o=(i=t[e[n]][r])[1]-i[0])>0?(i[0]=a,i[1]=a+=o):o<0?(i[1]=s,i[0]=s+=o):(i[0]=0,i[1]=o)}function QA(t,e){if((i=t.length)>0){for(var n=0,r=t[e[0]],i,o=r.length;n<o;++n){for(var a=0,s=0;a<i;++a)s+=t[a][n][1]||0;r[n][1]+=r[n][0]=-s/2}Li(t,e)}}function JA(t,e){if(!(!((a=t.length)>0)||!((o=(i=t[e[0]]).length)>0))){for(var n=0,r=1,i,o,a;r<o;++r){for(var s=0,c=0,l=0;s<a;++s){for(var u=t[e[s]],h=u[r][1]||0,f=u[r-1][1]||0,d=(h-f)/2,m=0;m<s;++m){var p=t[e[m]],g=p[r][1]||0,y=p[r-1][1]||0;d+=g-y}c+=h,l+=d*h}i[r-1][1]+=i[r-1][0]=n,c&&(n-=l/c)}i[r-1][1]+=i[r-1][0]=n,Li(t,e)}}function $y(t){var e=t.map(tE);return qi(t).sort(function(n,r){return e[n]-e[r]})}function tE(t){for(var e=-1,n=0,r=t.length,i,o=-1/0;++e<r;)(i=+t[e][1])>o&&(o=i,n=e);return n}function zy(t){var e=t.map(Ny);return qi(t).sort(function(n,r){return e[n]-e[r]})}function Ny(t){for(var e=0,n=-1,r=t.length,i;++n<r;)(i=+t[n][1])&&(e+=i);return e}function eE(t){return zy(t).reverse()}function nE(t){var e=t.length,n,r,i=t.map(Ny),o=$y(t),a=0,s=0,c=[],l=[];for(n=0;n<e;++n)r=o[n],a<s?(a+=i[r],c.push(r)):(s+=i[r],l.push(r));return l.reverse().concat(c)}function rE(t){return qi(t).reverse()}var Gl=t=>()=>t;function iE(t,{sourceEvent:e,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function kn(t,e,n){this.k=t,this.x=e,this.y=n}kn.prototype={constructor:kn,scale:function(t){return t===1?this:new kn(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new kn(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Vl=new kn(1,0,0);Py.prototype=kn.prototype;function Py(t){for(;!t.__zoom;)if(!(t=t.parentNode))return Vl;return t.__zoom}function Ch(t){t.stopImmediatePropagation()}function ma(t){t.preventDefault(),t.stopImmediatePropagation()}function oE(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function aE(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function Ry(){return this.__zoom||Vl}function sE(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function lE(){return navigator.maxTouchPoints||"ontouchstart"in this}function cE(t,e,n){var r=t.invertX(e[0][0])-n[0][0],i=t.invertX(e[1][0])-n[1][0],o=t.invertY(e[0][1])-n[0][1],a=t.invertY(e[1][1])-n[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function uE(){var t=oE,e=aE,n=cE,r=sE,i=lE,o=[0,1/0],a=[[-1/0,-1/0],[1/0,1/0]],s=250,c=iu,l=qe("start","zoom","end"),u,h,f,d=500,m=150,p=0,g=10;function y(M){M.property("__zoom",Ry).on("wheel.zoom",C,{passive:!1}).on("mousedown.zoom",F).on("dblclick.zoom",A).filter(i).on("touchstart.zoom",E).on("touchmove.zoom",D).on("touchend.zoom touchcancel.zoom",$).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}y.transform=function(M,T,B,N){var L=M.selection?M.selection():M;L.property("__zoom",Ry),M!==L?x(M,T,B,N):L.interrupt().each(function(){S(this,arguments).event(N).start().zoom(null,typeof T=="function"?T.apply(this,arguments):T).end()})},y.scaleBy=function(M,T,B,N){y.scaleTo(M,function(){var L=this.__zoom.k,q=typeof T=="function"?T.apply(this,arguments):T;return L*q},B,N)},y.scaleTo=function(M,T,B,N){y.transform(M,function(){var L=e.apply(this,arguments),q=this.__zoom,U=B==null?v(L):typeof B=="function"?B.apply(this,arguments):B,Z=q.invert(U),Q=typeof T=="function"?T.apply(this,arguments):T;return n(b(w(q,Q),U,Z),L,a)},B,N)},y.translateBy=function(M,T,B,N){y.transform(M,function(){return n(this.__zoom.translate(typeof T=="function"?T.apply(this,arguments):T,typeof B=="function"?B.apply(this,arguments):B),e.apply(this,arguments),a)},null,N)},y.translateTo=function(M,T,B,N,L){y.transform(M,function(){var q=e.apply(this,arguments),U=this.__zoom,Z=N==null?v(q):typeof N=="function"?N.apply(this,arguments):N;return n(Vl.translate(Z[0],Z[1]).scale(U.k).translate(typeof T=="function"?-T.apply(this,arguments):-T,typeof B=="function"?-B.apply(this,arguments):-B),q,a)},N,L)};function w(M,T){return T=Math.max(o[0],Math.min(o[1],T)),T===M.k?M:new kn(T,M.x,M.y)}function b(M,T,B){var N=T[0]-B[0]*M.k,L=T[1]-B[1]*M.k;return N===M.x&&L===M.y?M:new kn(M.k,N,L)}function v(M){return[(+M[0][0]+ +M[1][0])/2,(+M[0][1]+ +M[1][1])/2]}function x(M,T,B,N){M.on("start.zoom",function(){S(this,arguments).event(N).start()}).on("interrupt.zoom end.zoom",function(){S(this,arguments).event(N).end()}).tween("zoom",function(){var L=this,q=arguments,U=S(L,q).event(N),Z=e.apply(L,q),Q=B==null?v(Z):typeof B=="function"?B.apply(L,q):B,j=Math.max(Z[1][0]-Z[0][0],Z[1][1]-Z[0][1]),H=L.__zoom,W=typeof T=="function"?T.apply(L,q):T,J=c(H.invert(Q).concat(j/H.k),W.invert(Q).concat(j/W.k));return function(K){if(K===1)K=W;else{var ht=J(K),X=j/ht[2];K=new kn(X,Q[0]-ht[0]*X,Q[1]-ht[1]*X)}U.zoom(null,K)}})}function S(M,T,B){return!B&&M.__zooming||new k(M,T)}function k(M,T){this.that=M,this.args=T,this.active=0,this.sourceEvent=null,this.extent=e.apply(M,T),this.taps=0}k.prototype={event:function(M){return M&&(this.sourceEvent=M),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(M,T){return this.mouse&&M!=="mouse"&&(this.mouse[1]=T.invert(this.mouse[0])),this.touch0&&M!=="touch"&&(this.touch0[1]=T.invert(this.touch0[0])),this.touch1&&M!=="touch"&&(this.touch1[1]=T.invert(this.touch1[0])),this.that.__zoom=T,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(M){var T=Gt(this.that).datum();l.call(M,this.that,new iE(M,{sourceEvent:this.sourceEvent,target:y,transform:this.that.__zoom,dispatch:l}),T)}};function C(M,...T){if(!t.apply(this,arguments))return;var B=S(this,T).event(M),N=this.__zoom,L=Math.max(o[0],Math.min(o[1],N.k*Math.pow(2,r.apply(this,arguments)))),q=se(M);if(B.wheel)(B.mouse[0][0]!==q[0]||B.mouse[0][1]!==q[1])&&(B.mouse[1]=N.invert(B.mouse[0]=q)),clearTimeout(B.wheel);else{if(N.k===L)return;B.mouse=[q,N.invert(q)],Bn(this),B.start()}ma(M),B.wheel=setTimeout(U,m),B.zoom("mouse",n(b(w(N,L),B.mouse[0],B.mouse[1]),B.extent,a));function U(){B.wheel=null,B.end()}}function F(M,...T){if(f||!t.apply(this,arguments))return;var B=M.currentTarget,N=S(this,T,!0).event(M),L=Gt(M.view).on("mousemove.zoom",Q,!0).on("mouseup.zoom",j,!0),q=se(M,B),U=M.clientX,Z=M.clientY;ci(M.view),Ch(M),N.mouse=[q,this.__zoom.invert(q)],Bn(this),N.start();function Q(H){if(ma(H),!N.moved){var W=H.clientX-U,J=H.clientY-Z;N.moved=W*W+J*J>p}N.event(H).zoom("mouse",n(b(N.that.__zoom,N.mouse[0]=se(H,B),N.mouse[1]),N.extent,a))}function j(H){L.on("mousemove.zoom mouseup.zoom",null),ui(H.view,N.moved),ma(H),N.event(H).end()}}function A(M,...T){if(t.apply(this,arguments)){var B=this.__zoom,N=se(M.changedTouches?M.changedTouches[0]:M,this),L=B.invert(N),q=B.k*(M.shiftKey?.5:2),U=n(b(w(B,q),N,L),e.apply(this,T),a);ma(M),s>0?Gt(this).transition().duration(s).call(x,U,N,M):Gt(this).call(y.transform,U,N,M)}}function E(M,...T){if(t.apply(this,arguments)){var B=M.touches,N=B.length,L=S(this,T,M.changedTouches.length===N).event(M),q,U,Z,Q;for(Ch(M),U=0;U<N;++U)Z=B[U],Q=se(Z,this),Q=[Q,this.__zoom.invert(Q),Z.identifier],L.touch0?!L.touch1&&L.touch0[2]!==Q[2]&&(L.touch1=Q,L.taps=0):(L.touch0=Q,q=!0,L.taps=1+!!u);u&&(u=clearTimeout(u)),q&&(L.taps<2&&(h=Q[0],u=setTimeout(function(){u=null},d)),Bn(this),L.start())}}function D(M,...T){if(this.__zooming){var B=S(this,T).event(M),N=M.changedTouches,L=N.length,q,U,Z,Q;for(ma(M),q=0;q<L;++q)U=N[q],Z=se(U,this),B.touch0&&B.touch0[2]===U.identifier?B.touch0[0]=Z:B.touch1&&B.touch1[2]===U.identifier&&(B.touch1[0]=Z);if(U=B.that.__zoom,B.touch1){var j=B.touch0[0],H=B.touch0[1],W=B.touch1[0],J=B.touch1[1],K=(K=W[0]-j[0])*K+(K=W[1]-j[1])*K,ht=(ht=J[0]-H[0])*ht+(ht=J[1]-H[1])*ht;U=w(U,Math.sqrt(K/ht)),Z=[(j[0]+W[0])/2,(j[1]+W[1])/2],Q=[(H[0]+J[0])/2,(H[1]+J[1])/2]}else if(B.touch0)Z=B.touch0[0],Q=B.touch0[1];else return;B.zoom("touch",n(b(U,Z,Q),B.extent,a))}}function $(M,...T){if(this.__zooming){var B=S(this,T).event(M),N=M.changedTouches,L=N.length,q,U;for(Ch(M),f&&clearTimeout(f),f=setTimeout(function(){f=null},d),q=0;q<L;++q)U=N[q],B.touch0&&B.touch0[2]===U.identifier?delete B.touch0:B.touch1&&B.touch1[2]===U.identifier&&delete B.touch1;if(B.touch1&&!B.touch0&&(B.touch0=B.touch1,delete B.touch1),B.touch0)B.touch0[1]=this.__zoom.invert(B.touch0[0]);else if(B.end(),B.taps===2&&(U=se(U,this),Math.hypot(h[0]-U[0],h[1]-U[1])<g)){var Z=Gt(this).on("dblclick.zoom");Z&&Z.apply(this,arguments)}}}return y.wheelDelta=function(M){return arguments.length?(r=typeof M=="function"?M:Gl(+M),y):r},y.filter=function(M){return arguments.length?(t=typeof M=="function"?M:Gl(!!M),y):t},y.touchable=function(M){return arguments.length?(i=typeof M=="function"?M:Gl(!!M),y):i},y.extent=function(M){return arguments.length?(e=typeof M=="function"?M:Gl([[+M[0][0],+M[0][1]],[+M[1][0],+M[1][1]]]),y):e},y.scaleExtent=function(M){return arguments.length?(o[0]=+M[0],o[1]=+M[1],y):[o[0],o[1]]},y.translateExtent=function(M){return arguments.length?(a[0][0]=+M[0][0],a[1][0]=+M[1][0],a[0][1]=+M[0][1],a[1][1]=+M[1][1],y):[[a[0][0],a[0][1]],[a[1][0],a[1][1]]]},y.constrain=function(M){return arguments.length?(n=M,y):n},y.duration=function(M){return arguments.length?(s=+M,y):s},y.interpolate=function(M){return arguments.length?(c=M,y):c},y.on=function(){var M=l.on.apply(l,arguments);return M===l?y:M},y.clickDistance=function(M){return arguments.length?(p=(M=+M)*M,y):Math.sqrt(p)},y.tapDistance=function(M){return arguments.length?(g=+M,y):g},y}function Zl(t){return t.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function st(t,e){return Object.keys(t).reduce((r,i)=>(i in e||(r[i]=t[i]),r),{})}var Fh=["moveX","moveY"],fE=["fill","fillOpacity","stroke","strokeOpacity","strokeWidth","strokeDasharray","opacity","color","cursor","pointerEvents"],hE=["index","rowID","text","labelAdjustmentOptions",...Fh];function ya(t){return Object.keys(t??{}).some(e=>!fE.includes(e)&&!hE.includes(e)&&e in document.documentElement.style)}function rt(t,e){for(let[n,r]of Object.entries(e))Fh.includes(n)||t.style(Zl(n),r)}function Yi(t,e,n,r=[]){return t.flatMap((i,o)=>{let a=e&&n?n[i[e]]:void 0,s=r.find(l=>l.rowID==null&&l.index===o),c=r.find(l=>l.rowID!=null&&l.rowID===i.rowID);return a||s||c?[{...a,...s,...c,index:o}]:[]})}function Ui(t,e,n){let r=e.find(i=>i.index===n);if(r)for(let[i,o]of Object.entries(r))["index","rowID","text","labelAdjustmentOptions",...Fh].includes(i)||t.style(Zl(i),o)}function Iy(t){let e=typeof t=="string"?R.color(t)?.rgb():null;return!!e&&e.r===255&&e.g===255&&e.b===255&&e.opacity===1}function Wn(t,e){let{part:n,text:r,...i}=(t??[]).find(o=>o.part===e)??{};return{text:r,style:i}}function De(t,e={}){t.each(function(){let n=Number(e.moveX??0),r=Number(e.moveY??0),i=this.getAttribute("transform")||"";this.__drawn__={...this.__drawn__,moveX:n,moveY:r},this.setAttribute("transform",`translate(${n}, ${r}) ${i}`.trim())})}function Wr(t){if(t==null)return[];if(Array.isArray(t))return t;let e=Object.keys(t),n=e.length?t[e[0]].length:0,r=[];for(let i=0;i<n;i++){let o={};for(let a of e)o[a]=t[a][i];r.push(o)}return r}function jr(t){for(var e=1;document.getElementById(t+"-"+e);)e++;return t+"-"+e}function vr(t){return t.replace(/[^a-zA-Z0-9_-]/g,"_")}function Ie(t,e){if(typeof t>"u"||t===null)return 0;if(typeof t=="number")return t;var n;if(t.includes("%")){var r=parseFloat(t),i=r/100;n=Math.round(i*e)}else t.includes("px"),n=parseFloat(t);return Math.floor(n)}function Hr(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function ba(t,e){let n={...t};if(!Hr(e))return n;for(let r in e){let i=e[r];if(i!=null)if(Hr(i))n[r]=ba(Hr(n[r])?n[r]:{},i);else{if(Array.isArray(i)&&i.length===0&&Hr(n[r]))continue;n[r]=i}}return n}function dE(t,e){if(typeof t=="number")return t*e;let n=typeof t=="string"&&t.trim().match(/^(-?[\d.]+)([a-z%]*)$/i);return n?`${parseFloat(n[1])*e}${n[2]}`:t}function qy(t,e){if(!Hr(t))return t;let n={};for(let r in t)n[r]=r==="fontSize"?dE(t[r],e):qy(t[r],e);return n}function ut(t,e,n={},r=this?.themeOptions){let i=r?.[e],o=ba(t,i),a=jn(r);return a!==1&&(o=qy(o,a)),ba(o,n)}function jn(t){let e=t?.textScale;return typeof e=="number"&&e>0?e:1}var Ly=new Set;function Le(t){Ly.has(t)||(Ly.add(t),console.warn(t))}function ft(t,e,n,r){this.svg=t,this.margin=e,this.width=n,this.height=r}function Kl(t,e,n,r={},i={}){let o={id:e||"svg-container",margin:{top:5,right:50,bottom:5,left:50},style:{backgroundColor:"#0000"},width:null,height:null},a=ut(o,n,r,i),{id:s,margin:c,style:l,width:u,height:h}=a,f=st(l,o.style),d={top:Ie(c?.top??0,h),right:Ie(c?.right??0,u),bottom:Ie(c?.bottom??0,h),left:Ie(c?.left??0,u)};var m=R.select(t).append("svg").attr("id",jr(s)).attr("width",u||"100%").attr("height",h||"100%").attr("preserveAspectRatio","xMinYMin meet").attr("viewBox",`0 0 ${u} ${h}`).classed("geneviewer-svg-content",!0).style("box-sizing","border-box").style("background-color",l.backgroundColor).each(function(){let g=R.select(this);rt(g,f)});Object.entries(l).forEach(([g,y])=>{m.style(g,y)});let p=new ft(m,d,u,h);return p.themeOptions=i,p}ft.prototype.cluster=function(t={}){let e={separateStrands:!1,strandSpacing:0,preventGeneOverlap:!1,overlapSpacing:5},n=ut.call(this,e,"clusterOptions",t),{separateStrands:r,strandSpacing:i,preventGeneOverlap:o,overlapSpacing:a}=n;return this.separateStrands=r,this.strandSpacing=i,this.preventGeneOverlap=o,this.overlapSpacing=a,this};ft.prototype.geneData=function(t,e){return this.dataAll=t,this.data=e.map(n=>{var r={...n};return r.cluster=String(r.cluster),r.direction="forward",r.start>r.end&&(r.direction="reverse"),r}),this};function pE(t,e){for(let n of e)if(t>=n.start&&t<=n.end)return!0;return!1}function Th(t,e,n,r,i,o=!1){i=[...i].sort((h,f)=>h.start-f.start);let a=0;for(let h of i)h.start>=t&&h.end<=e&&(a+=h.end-h.start);let s=o?e-a:t,c=o?t:e-a,l=R.scaleLinear().domain([s,c]).range([0,n-r.left-r.right]),u=function(h){if(pE(h,i))return null;let f=0;for(let d of i)if(h>d.end)f+=d.end-d.start;else break;return h=h-f,l(h)};for(let h in l)typeof l[h]=="function"?u[h]=(...f)=>{let d=l[h](...f);return d===l?u:d}:u[h]=l[h];return u.invert=function(h){let f=l.invert(h);for(let d of i)if(f>d.start)f+=d.end-d.start;else break;return f},u}function Hi(t,e,n,r,i=[]){let o;if(typeof n=="string"&&n.endsWith("%"))o=parseFloat(n)/100;else if(typeof n=="number"&&n>=0&&n<=100)o=n/100;else return Le("Invalid padding format. Padding should be a percentage (as a string or a number between 0 and 100). No padding applied."),r==="start"?t:e;let[a,s]=[Math.min(t,e),Math.max(t,e)],c=i.reduce((u,h)=>u+Math.max(0,Math.min(h.end,s)-Math.max(h.start,a)),0);return o=(s-a-c)*o,r==="start"?t-o:r==="end"?e+o:(console.error('Invalid "to" parameter in addScalePadding. Must be "start" or "end".'),r==="start"?t:e)}ft.prototype.scale=function(t={}){if(!this.data)return console.error("No data has been added to this cluster container."),this;let e={start:null,end:null,xMin:null,xMax:null,padding:2,hidden:!0,reverse:!1,axisPosition:"bottom",breaks:[],tickValues:null,ticksCount:10,ticksFormat:",.0f",y:null,tickStyle:{stroke:"grey",strokeWidth:1,lineLength:6},textStyle:{fill:"black",fontSize:"10px",fontFamily:"Arial",cursor:"default"},lineStyle:{stroke:"grey",strokeWidth:1}},n=ut.call(this,e,"scaleOptions",t),{start:r,end:i,xMin:o,xMax:a,padding:s,hidden:c,breaks:l,tickValues:u,reverse:h,axisPosition:f,ticksCount:d,ticksFormat:m,y:p,tickStyle:g,textStyle:y,lineStyle:w}=n,b=p!==null?p:f==="bottom"?20:80,v=st(g,e.tickStyle),x=st(y,e.textStyle),S=st(w,e.lineStyle);if(r!==null&&(this.data=this.data.filter(C=>C.start>=r)),i!==null&&(this.data=this.data.filter(C=>C.end<=i)),this.data=this.data.filter(C=>!l.some(F=>C.start>=F.start&&C.start<=F.end||C.end>=F.start&&C.end<=F.end)),this.reverse=h,this.padding=s,this.minStart=r!==null?r:o!==null?o:R.min(this.data,C=>Math.min(C.start,C.end)),this.maxEnd=i!==null?i:a!==null?a:R.max(this.data,C=>Math.max(C.start,C.end)),r==null&&(this.minStart=Hi(this.minStart,this.maxEnd,s,"start",l)),i==null&&(this.maxEnd=Hi(this.minStart,this.maxEnd,s,"end",l)),this.xScale=Th(this.minStart,this.maxEnd,this.width,this.margin,l,h),this.fullScale=Th(this.minStart,this.maxEnd,this.width,this.margin,l,h),this.zoom=null,t.zoom){let C=this.width-this.margin.left-this.margin.right,F=T=>{let B=l.find(N=>T>=N.start&&T<=N.end);return this.fullScale(B?B.end+1e-9:T)/C},{from:A,to:E,mode:D}=t.zoom,[$,M]=(D==="absolute"?[F(A),F(E)]:[A,E]).sort((T,B)=>T-B);M-$>1e-9||(M=$+1e-9),($>1e-9||M<1-1e-9)&&(this.zoom=[$,M],this.xScale.range([-$*C/(M-$),(1-$)*C/(M-$)]))}this.yScale=R.scaleLinear().domain([0,100]).range([this.height-this.margin.bottom-this.margin.top,0]),this.breaks=l.filter(C=>C.start>=this.minStart&&C.end<=this.maxEnd);let k=this;if(!c){let C=this.yScale?this.yScale(b):b,F=this.svg.append("g").attr("data-component","scale").attr("transform",`translate(${this.margin.left},${this.margin.top+C})`),A=this.width-this.margin.left-this.margin.right,E=this.zoom?[this.xScale.invert(0),this.xScale.invert(A)].sort((T,B)=>T-B):[this.minStart,this.maxEnd],D=R.scaleLinear().domain(E).range([0,A]),$=R.axisBottom(D).tickFormat(R.format(m));Array.isArray(u)&&u.length>0?$.tickValues(u):typeof u=="number"?$.tickValues([u]):$.ticks(d);let M=F.append("g").call($);De(F,n.itemStyle?.[0]),M.selectAll(".tick line").style("stroke",g.stroke).style("stroke-width",g.strokeWidth).attr("y2",g.lineLength).each(function(){let T=R.select(this);rt(T,v)}),M.selectAll(".tick text").style("fill",y.fill).style("font-size",y.fontSize).style("font-family",y.fontFamily).style("cursor",y.cursor).each(function(){let T=R.select(this);rt(T,x)}),M.selectAll(".tick").each(function(T){let B=R.select(this).data()[0],N=k.xScale(B);N===null||N<-.5||N>A+.5?R.select(this).remove():R.select(this).attr("transform",`translate(${N},0)`)}),M.select(".domain").style("stroke",w.stroke).style("stroke-width",w.strokeWidth).each(function(){let T=R.select(this);rt(T,S)})}return this};function Oh(t,e,n={}){let r={dyAdjust:0,lineHeightEms:1.05,lineHeightSquishFactor:1,splitOnHyphen:!0,centreVertically:!0},{dyAdjust:i,lineHeightEms:o,lineHeightSquishFactor:a,splitOnHyphen:s,centreVertically:c}={...r,...n};t.each(function(){var l=R.select(this),u=l.attr("x"),h=l.attr("y"),f=[],d=[],m=function(x){d.length&&f.push({pieces:d,space:x}),d=[]};Yy(l.text()).forEach(function(x){x.content.split(/(\s+)/).forEach(function(S){if(/^\s+$/.test(S)){m(!0);return}var k=s?S.split(/(?<=-)/):[S];k.forEach(function(C,F){C&&d.push({...x,content:C}),F<k.length-1&&m(!1)})})}),m(!0);var p=function(x,S){x.selectAll("*").remove(),S.forEach(function(k,C){k.pieces.forEach(function(F,A){var E=A===k.pieces.length-1&&C<S.length-1,D=E&&k.space?" ":"",$=x.append("tspan").text(F.content+D);F.bold&&$.style("font-weight","bold"),F.italic&&$.style("font-style","italic"),F.underline&&$.style("text-decoration","underline")})})};l.text(null);for(var g=l.append("tspan").attr("class","wrap-line"),y=[],w=0;w<f.length;w++)y.push(f[w]),p(g,y),g.node().getComputedTextLength()>e&&y.length>1&&(y.pop(),p(g,y),y=[f[w]],g=l.append("tspan").attr("class","wrap-line"),p(g,y));var b=l.selectAll("tspan.wrap-line"),v=o;if(b.size()>2)for(var w=0;w<b.size();w++)v*=a;b.each(function(x,S){var k=S*v+i;c&&(k-=(b.size()-1)*v/2),R.select(this).attr("y",h).attr("x",u).attr("dy",k+"em")})})}function Ql(t,e,n=null){let r={rotation:-65,offsetX:0,offsetY:0,dx:"0em",dy:"0em"},i=(b,v)=>{let x=Math.max(0,Math.min(b.right,v.right)-Math.max(b.left,v.left)),S=Math.max(0,Math.min(b.bottom,v.bottom)-Math.max(b.top,v.top)),k=x*S,C=(b.right-b.left)*(b.bottom-b.top);return k/C*100},o=new Map,a=(b,v)=>{let x=b.parentNode;if(!o.has(x)){let E=x.getScreenCTM?.();o.set(x,E?DOMMatrix.fromMatrix(E):null)}let S=o.get(x);if(!S)return b.getBoundingClientRect();let k=b.transform?.baseVal?.consolidate();k&&(S=S.multiply(DOMMatrix.fromMatrix(k.matrix)));let C=[[v.x,v.y],[v.x+v.width,v.y],[v.x,v.y+v.height],[v.x+v.width,v.y+v.height]].map(([E,D])=>new DOMPoint(E,D).matrixTransform(S)),F=C.map(E=>E.x),A=C.map(E=>E.y);return{left:Math.min(...F),right:Math.max(...F),top:Math.min(...A),bottom:Math.max(...A)}},s=new Map,c=b=>{let v=b.getBBox();return s.set(b,v),a(b,v)},l=(b,v)=>{if(v==null||v==="")return 0;let x=String(v).trim().match(/^([-+]?[0-9.]+(?:e[-+]?[0-9]+)?)(px|em)?$/i);if(!x)return null;let S=parseFloat(x[1]);if(S===0||!x[2]||x[2].toLowerCase()==="px")return S;let k=b.style.fontSize.endsWith("px")?b.style.fontSize:getComputedStyle(b).fontSize;return S*parseFloat(k)},u=50,h=new Map,f=b=>{if(!Number.isFinite(b.left)||!Number.isFinite(b.right))return[];let v=[];for(let x=Math.floor(b.left/u);x<=Math.floor(b.right/u);x++)v.push(x);return v},d=(b,v)=>{let x=g.get(b);x&&f(x).forEach(S=>h.get(S).delete(b)),g.set(b,v),f(v).forEach(S=>{h.has(S)||h.set(S,new Set),h.get(S).add(b)})},m=b=>{let v=new Set;return f(g.get(b)).forEach(x=>h.get(x)?.forEach(S=>v.add(S))),v.delete(b),v},p=null,g=new Map,y=b=>{p&&d(b,c(b))};return{adjust:(b,v={})=>{p||(p=t.svg.selectAll(e).nodes(),p.forEach(T=>d(T,c(T))));let{rotation:x,offsetX:S,offsetY:k,dx:C,dy:F,hide:A=!1}={...r,...v},E=s.get(b)??b.getBBox(),D=E.x+E.width/2,$=E.y;D+=S,$+=x<0?E.height:E.height/2,$+=k,g.has(b)||d(b,c(b));let M=g.get(b);for(let T of m(b))if(i(M,g.get(T))>0){if(A)return R.select(b).style("display","none"),f(M).forEach(K=>h.get(K)?.delete(b)),g.delete(b),!1;let B=parseFloat(b.getAttribute("y")),N=l(b,b.getAttribute("dy")),L=l(b,C),q=l(b,F),U=K=>Math.abs(K)*Math.PI/180,Z=K=>E.width*Math.sin(U(K))+E.height*Math.cos(U(K)),Q=$+(q??0),j=K=>!n||(K<0?Q-Z(K)>=n.top:Q+Z(K)<=n.bottom),H=E.width*Math.cos(U(x)),W=D+S+(L??0);if(!j(x)||n&&W+H>n.right)return R.select(b).style("display","none"),f(M).forEach(K=>h.get(K)?.delete(b)),g.delete(b),!1;let J=x;if(R.select(b).style("text-anchor","start").attr("dx",C).attr("dy",F).attr("x",D+S).attr("y",$).attr("transform",`rotate(${J}, ${D}, ${$})`),b.__drawn__={...b.__drawn__,rotate:J},!b.childElementCount&&Number.isFinite(B)&&[N,L,q].every(Number.isFinite)){let K={x:D+S+L,y:E.y+($+q)-(B+N),width:E.width,height:E.height};s.set(b,K),d(b,a(b,K))}else y(b);return!0}return!1},refresh:y}}function Yy(t){let e=/<([biu])>(.*?)<\/\1>/g,n=[],r=a=>({content:a,bold:!1,italic:!1,underline:!1}),i=0,o;for(;(o=e.exec(t))!==null;){o.index>i&&n.push(r(t.substring(i,o.index)));let[,a,s]=o;n.push({content:s,bold:a==="b",italic:a==="i",underline:a==="u"}),i=o.index+o[0].length}return i<t.length&&n.push(r(t.substring(i))),n}function wr(t,e,n){Yy(t).forEach(({content:r,bold:i,italic:o,underline:a})=>{let s=e.append("tspan").style("font-weight",i?"bold":n.weight).style("font-style",o?"italic":n.style).text(r);a&&s.style("text-decoration","underline")})}function Bh(t,e,n,r=!1){let{width:i,margin:o}=t;switch(e){case"left":return{xPos:r?o.left+n:n,textAnchor:"start"};case"right":return{xPos:(r?i-o.right:i-o.left-o.right)+n,textAnchor:"end"};default:{let a=i-o.left-o.right;return{xPos:(r?o.left+a/2:a/2)+n,textAnchor:"middle"}}}}function va(t,e,n,r){for(let o of Object.keys(r))t.style(Zl(o),n[o]);let i=st(n,r);t.each(function(){let o=R.select(this);wr(e,o,n),rt(o,i)}),De(t,n)}ft.prototype.title=function(t,e,n=!0,r={},i="titleOptions"){if(!t&&!e)return this;if(!n)return this;let o=jn(this.themeOptions),a={x:0,y:20*o,align:"center",spacing:20*o,titleFont:{fontSize:"16px",fontStyle:"normal",fontWeight:"bold",textDecoration:"normal",fontFamily:"sans-serif",cursor:"default"},subtitleFont:{fontSize:"14px",fontStyle:"normal",fontWeight:"normal",textDecoration:"none",fontFamily:"sans-serif",cursor:"default"}},s=ut.call(this,a,i,r),{x:c,y:l,align:u,spacing:h,itemStyle:f}=s,d=Wn(f,"title"),m=Wn(f,"subtitle"),p={...s.titleFont,...d.style},g={...s.subtitleFont,...m.style};t=d.text??t,e=m.text??e;let{xPos:y,textAnchor:w}=Bh(this,u,c);var b=this.svg.append("g").attr("data-component",i==="clusterTitleOptions"?"clusterTitle":"title").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);return t&&b.append("text").attr("data-part","title").property("__text__",t).attr("x",y).attr("y",l+this.margin.top/2).attr("text-anchor",w).call(va,t,p,a.titleFont),e&&b.append("text").attr("data-part","subtitle").property("__text__",e).attr("x",y).attr("y",l+this.margin.top/2+h).attr("text-anchor",w).call(va,e,g,a.subtitleFont),this};ft.prototype.footer=function(t,e,n=!0,r={}){if(!t&&!e)return this;if(!n)return this;let i={x:0,y:0,align:"left",spacing:12*jn(this.themeOptions),titleFont:{fontSize:"12px",fontWeight:"bold",fontStyle:"normal",fontFamily:"sans-serif",cursor:"default"},subtitleFont:{fontSize:"10px",fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",cursor:"default"}},o=ut.call(this,i,"footerOptions",r),{x:a,y:s,align:c,spacing:l,itemStyle:u}=o,h=Wn(u,"title"),f=Wn(u,"subtitle"),d={...o.titleFont,...h.style},m={...o.subtitleFont,...f.style};t=h.text??t,e=f.text??e;let{xPos:p,textAnchor:g}=Bh(this,c,a,!0),y=this.height-this.margin.bottom+s-20,w=y+l;return t&&this.svg.append("text").attr("data-component","clusterFooter").attr("data-part","title").property("__text__",t).attr("x",p).attr("y",y).attr("text-anchor",g).call(va,t,d,i.titleFont),e&&this.svg.append("text").attr("data-component","clusterFooter").attr("data-part","subtitle").property("__text__",e).attr("x",p).attr("y",w).attr("text-anchor",g).call(va,e,m,i.subtitleFont),this};function Wy(t,e,n={}){let r=n?.clusterLabelOptions??{},i=e?.position??r.position??"left",o=e?.width??t?.margin?.[i]??r.width??n?.containerOptions?.margin?.[i]??`${100*jn(n)}px`;return{[i]:o}}ft.prototype.clusterLabel=function(t,e=!0,n={}){if(!e)return this;let r={x:0,y:0,position:"left",align:"center",width:null,wrapLabel:!0,wrapOptions:{},fontSize:"12px",fontStyle:"normal",fontWeight:"bold",fontFamily:"sans-serif",cursor:"default",subtitle:null,spacing:null,subtitleFont:{fontSize:"11px",fontStyle:"normal",fontWeight:"normal",fontFamily:"sans-serif",cursor:"default"}},{itemStyle:i,...o}=ut.call(this,r,"clusterLabelOptions",n),a=Wn(i,"title"),s=Wn(i,"subtitle"),c={...o,...a.style,subtitle:s.text??o.subtitle,subtitleFont:{...o.subtitleFont,...s.style}};t=a.text??t;let{x:l,y:u,position:h,align:f,wrapLabel:d,wrapOptions:m,fontSize:p,fontStyle:g,fontWeight:y,fontFamily:w,cursor:b,subtitle:v,spacing:x,subtitleFont:S}=c,k=st(m,r.wrapOptions),C=st(c,r),F={size:p,style:g,weight:y,family:w,cursor:b},A=this.height-this.margin.top-this.margin.bottom,E=this.margin.top+A/2+u,D=h==="left"?this.margin.left-l:this.margin.right-l,$={left:0,right:1}[f]??.5,M={left:"start",right:"end"}[f]??"middle",T;h==="left"?T=this.margin.left*$+l:T=this.width-this.margin.right*(1-$)-l;let B=this.svg.append("text").attr("data-component","clusterLabel").attr("data-part","title").property("__text__",t).attr("x",T).attr("y",E).attr("text-anchor",M).attr("dominant-baseline","central").style("font-size",p).style("font-style",g).style("font-weight",y).style("font-family",w).style("cursor",b).each(function(){let N=R.select(this);d?(N.text(t),Oh(N,D,m)):wr(t,N,F),rt(N,C)});if(v){let N=st(S,r.subtitleFont),L={size:S.fontSize,style:S.fontStyle,weight:S.fontWeight,family:S.fontFamily,cursor:S.cursor},q=this.svg.append("text").attr("data-component","clusterLabel").attr("data-part","subtitle").property("__text__",v).attr("x",T).attr("y",E).attr("text-anchor",M).attr("dominant-baseline","central").style("font-size",S.fontSize).style("font-style",S.fontStyle).style("font-weight",S.fontWeight).style("font-family",S.fontFamily).style("cursor",S.cursor).each(function(){let H=R.select(this);d?(H.text(v),Oh(H,D,m)):wr(v,H,L),rt(H,N)}),U=Uy(B),Z=Uy(q),Q=x??1.2*(U.fontSize+Z.fontSize)/2,j=E-(U.first+U.last+Q-Z.first+Z.last)/2;Hy(B,j),Hy(q,j+U.last+Q-Z.first)}return De(B,a.style),this.svg.selectAll('text[data-component="clusterLabel"][data-part="subtitle"]').call(De,s.style),this};function Uy(t){let e=parseFloat(getComputedStyle(t.node()).fontSize),n=t.selectAll("tspan.wrap-line").nodes();if(!n.length)return{fontSize:e,first:0,last:0};let r=i=>(parseFloat(i.getAttribute("dy"))||0)*e;return{fontSize:e,first:r(n[0]),last:r(n[n.length-1])}}function Hy(t,e){t.attr("y",e),t.selectAll("tspan.wrap-line").attr("y",e)}ft.prototype.sequence=function(t=!0,e={}){if(!t)return this;if(!this.data)return console.error("No data has been added to this cluster container. Please use the addGeneData() function before attempting to draw a gene line."),this;let n={y:50,start:null,end:null,sequenceStyle:{stroke:"grey",strokeWidth:1},markerStyle:{markerHeight:10,stroke:"grey",strokeWidth:1,tiltAmount:-5,gap:0}},r=ut.call(this,n,"sequenceOptions",e),{y:i,start:o,end:a,markerStyle:s,sequenceStyle:c}=r,l=st(c,n.sequenceStyle);var u=this.svg.append("g").attr("data-component","sequence").attr("transform",`translate(${this.margin.left},${this.margin.top})`),h=o??R.min(this.data,b=>Math.min(b.start,b.end)),f=a??R.max(this.data,b=>Math.max(b.start,b.end));o==null&&(h=Hi(h,f,this.padding,"start",this.breaks)),a==null&&(f=Hi(h,f,this.padding,"end",this.breaks));let d=this.breaks.map(b=>({xStart:this.xScale(b.start-.001)-s.gap,xEnd:this.xScale(b.end+.001)+s.gap})),[m,p]=[this.xScale(h),this.xScale(f)].sort((b,v)=>b-v),g=d.map(({xStart:b,xEnd:v})=>[b+s.tiltAmount/2,v-s.tiltAmount/2].sort((x,S)=>x-S)).sort((b,v)=>b[0]-v[0]),y=[],w=m;for(let[b,v]of g)b>w&&y.push([w,Math.min(b,p)]),w=Math.max(w,v);w<p&&y.push([w,p]),u.selectAll("line.baseline").data(y).enter().append("line").attr("class","baseline").attr("x1",b=>b[0]).attr("y1",this.yScale(i)).attr("x2",b=>b[1]).attr("y2",this.yScale(i)).style("stroke",c.stroke).style("stroke-width",c.strokeWidth).each(function(){let b=R.select(this);rt(b,l)});for(let{xStart:b,xEnd:v}of d){let x=this.yScale(i),S=x-s.markerHeight/2,k=x+s.markerHeight/2;u.append("line").attr("x1",b).attr("y1",S).attr("x2",b+s.tiltAmount).attr("y2",k).attr("stroke",s.stroke).attr("stroke-width",s.strokeWidth),u.append("line").attr("x1",v-s.tiltAmount).attr("y1",S).attr("x2",v).attr("y2",k).attr("stroke",s.stroke).attr("stroke-width",s.strokeWidth)}return this};ft.prototype.coordinates=function(t=!0,e={}){if(!t)return this;let n={rotate:-45,yPositionTop:53,yPositionBottom:48,tickValuesTop:null,tickValuesBottom:null,overlapThreshold:20,ticksFormat:",.0f",groupStyle:{},styleBy:null,itemStyle:[],tickStyle:{stroke:"black",strokeWidth:1,lineLength:6},textStyle:{fill:"black",fontSize:"10px",fontFamily:"Arial",cursor:"default",x:0,y:0}},r=ut.call(this,n,"coordinatesOptions",e),{rotate:i,yPositionTop:o,yPositionBottom:a,tickValuesBottom:s,tickValuesTop:c,ticksFormat:l,tickStyle:u,textStyle:h,groupStyle:f,styleBy:d,itemStyle:m}=r,p=A=>m.filter(E=>A?.rowID!=null&&E.rowID===A.rowID&&(E.end==null||E.end===A.end)).reduce((E,{rowID:D,end:$,...M})=>({...E,...M}),{}),g=A=>{let E=(d&&A?.gene?f[A.gene[d]]:void 0)??{},D=p(A);return{...E,...D,tick:{...E.tick,...D.tick}}},y=A=>{let{show:E,tick:D,...$}=g(A);return $},w=st(u,n.tickStyle),b=st(h,n.textStyle),v=this.svg.append("g").attr("data-component","coordinates").attr("transform","translate("+this.margin.left+","+this.margin.top+")"),x=Array.isArray(c)?c.map(A=>({value:A,rowID:null})):c!=null?[{value:c,rowID:null}]:[],S=Array.isArray(s)?s.map(A=>({value:A,rowID:null})):s!=null?[{value:s,rowID:null}]:[];if(!c&&!s){let A=this.data.reduce((E,D)=>{let $={value:D.start,rowID:D.rowID,end:"start",gene:D},M={value:D.end,rowID:D.rowID,end:"end",gene:D};return $.strand=D.strand,M.strand=D.strand,"geneTrack"in D&&($.geneTrack=D.geneTrack,M.geneTrack=D.geneTrack),E.push($),E.push(M),E},[]);if(A=A.filter(E=>g(E).show!==!1),A=A.filter((E,D,$)=>D===$.findIndex(M=>M.value===E.value)),A.sort((E,D)=>E.value-D.value),this.separateStrands)A.forEach(E=>{E.strand==="forward"?x.push(E):S.push(E)});else{let E=r.overlapThreshold;for(let D=0;D<A.length;D++){if(D===0){S.push(A[D]);continue}this.xScale(A[D].value)-this.xScale(A[D-1].value)<E?(x.push(A[D]),D+1<A.length&&(S.push(A[D+1]),D++)):S.push(A[D])}}}let k=this,C=v.append("g").attr("transform","translate(0,"+this.yScale(o)+")").call(R.axisTop(this.xScale).tickValues(x.map(A=>A.value)).tickFormat(R.format(l)));C.selectAll(".tick").data(x).attr("rowID",A=>A.rowID).attr("transform",function(A){let E=k.xScale(A.value);var D=A.geneTrack?(A.geneTrack-1)*k.geneOverlapSpacing:0;return"translate("+E+","+-D+")"}),C.select(".domain").attr("stroke","none"),C.selectAll("text").data(x).attr("class","coordinate").style("text-anchor","end").attr("dx",`${-.8+h.x}em`).attr("dy",`${.4+h.y}em`).attr("transform","rotate("+-i+")").style("fill",h.fill).style("font-size",h.fontSize).style("font-family",h.fontFamily).style("cursor",h.cursor).each(function(A){let E=R.select(this);rt(E,b),rt(E,y(A))}),C.selectAll(".tick line").style("stroke",u.stroke).style("stroke-width",u.strokeWidth).attr("y2",-u.lineLength).each(function(){let A=R.select(this);rt(A,w),rt(A,g(R.select(this.parentNode).datum()).tick??{})});let F=v.append("g").attr("transform","translate(0,"+this.yScale(a)+")").call(R.axisBottom(this.xScale).tickValues(S.map(A=>A.value)).tickFormat(R.format(l)));return F.selectAll(".tick").data(S).attr("rowID",A=>A.rowID).attr("transform",function(A){let E=k.xScale(A.value);var D=A.geneTrack?-(A.geneTrack-1)*k.geneOverlapSpacing:0;return"translate("+E+","+-D+")"}),F.select(".domain").attr("stroke","none"),F.selectAll("text").data(S).attr("class","coordinate").style("text-anchor","start").attr("dx",`${.8+h.x}em`).attr("dy",`${-.15+h.y}em`).attr("transform","rotate("+-i+")").style("fill",h.fill).style("font-size",h.fontSize).style("font-family",h.fontFamily).style("cursor",h.cursor).each(function(A){let E=R.select(this);rt(E,b),rt(E,y(A))}),F.selectAll(".tick line").style("stroke",u.stroke).style("stroke-width",u.strokeWidth).attr("y2",u.lineLength).each(function(){let A=R.select(this);rt(A,w),rt(A,g(R.select(this.parentNode).datum()).tick??{})}),this};ft.prototype.scaleBar=function(t=!0,e={}){if(!t)return this;let n={title:"1 kb",scaleBarUnit:1e3,x:0,y:10,labelStyle:{fontSize:"10px",fontFamily:"sans-serif",cursor:"default",fill:"black",labelPosition:"left"},textPadding:0,scaleBarLineStyle:{stroke:"grey",strokeWidth:1},scaleBarTickStyle:{stroke:"grey",strokeWidth:1}},r=ut.call(this,n,"scaleBarOptions",e),{title:i,scaleBarUnit:o,x:a,y:s,textPadding:c,labelStyle:l,scaleBarLineStyle:u,scaleBarTickStyle:h}=r,f=st(u,n.scaleBarLineStyle),d=st(h,n.scaleBarTickStyle),m=st(l,n.labelStyle),p=Math.abs(this.xScale(o)-this.xScale(0)),g=this.svg.append("g").attr("data-component","scaleBar").attr("transform",`translate(${this.width-this.margin.right-p-parseInt(l.fontSize)-5+a}, ${this.height-this.margin.bottom})`);g.append("line").attr("x1",parseInt(l.fontSize)+5+p).attr("x2",parseInt(l.fontSize)+5).attr("y1",-s).attr("y2",-s).style("stroke",u.stroke).style("stroke-width",u.strokeWidth).each(function(){let b=R.select(this);rt(b,f)}),[parseInt(l.fontSize)+5,parseInt(l.fontSize)+5+p].forEach(b=>{g.append("line").attr("x1",b).attr("x2",b).attr("y1",-s-5).attr("y2",-s+5).style("stroke",h.stroke).style("stroke-width",h.strokeWidth).each(function(){let v=R.select(this);rt(v,d)})});let y=l.labelPosition==="left"?parseInt(l.fontSize)-c:parseInt(l.fontSize)+5+p+c,w=l.labelPosition==="left"?"end":"start";return g.append("text").attr("x",y).attr("y",-s).style("text-anchor",w).style("dominant-baseline","middle").style("font-size",l.fontSize).style("font-family",l.fontFamily).style("cursor",l.cursor).style("fill",l.fill).each(function(){let b=R.select(this);rt(b,m)}).text(i),De(g,r.itemStyle?.[0]),this};function gE(t,e){let n=R.select(t),r=t.textContent;t.textContent="",n.append("tspan").attr("class","label-name").text(r);let i=n.append("tspan").attr("class","label-measure").text(e.textContent);for(let o of e.style)o!=="text-anchor"&&i.style(o,e.style.getPropertyValue(o));if(e.remove(),r){i.attr("x",n.attr("x")).attr("dy","1.1em");let o=1.1*parseFloat(getComputedStyle(i.node()).fontSize);n.attr("y",parseFloat(n.attr("y"))-o)}}function mE(t){let e=R.select(t),n=e.select(".label-measure");n.empty()||n.attr("x",null).attr("dy",null).attr("dx",e.select(".label-name").text()?"0.3em":null)}function yE(t,e,n,r,i){let o=t.map((l,u)=>u).sort((l,u)=>t[l]-t[u]),a=[],s=l=>{l.start=Math.max(r,Math.min(l.total/l.members.length,i-l.width))};for(let l of o){let u={members:[{i:l,offset:0}],width:e[l],total:t[l]-e[l]/2};s(u);let h=a[a.length-1];for(;h&&h.start+h.width+n>u.start;){let f=h.width+n;u.members.forEach(d=>{d.offset+=f}),h.members.push(...u.members),h.total+=u.total-u.members.length*f,h.width+=n+u.width,u=a.pop(),s(u),h=a[a.length-1]}a.push(u)}let c=new Array(t.length);return a.forEach(l=>l.members.forEach(({i:u,offset:h})=>{c[u]=l.start+h+e[u]/2})),c}function jy(t){let e=t.__leader__;if(!e||!e.line.isConnected)return;let n=!t.isConnected||getComputedStyle(t).display==="none";if(e.line.style.display=n?"none":null,n)return;let r=t.getScreenCTM?.(),i=e.line.parentNode.getScreenCTM?.(),o=t.transform?.baseVal?.consolidate(),a=r&&i?i.inverse().multiply(r):o?o.matrix:new DOMMatrix,s=t.getBBox(),c=new DOMPoint(s.x+s.width/2,s.y).matrixTransform(a),l=new DOMPoint(s.x+s.width/2,s.y+s.height).matrixTransform(a),u=l.y<=(e.geneTop+e.geneBottom)/2,h=u?l:c;e.line.setAttribute("y1",u?e.geneTop-e.gap:e.geneBottom+e.gap),e.line.setAttribute("x2",h.x),e.line.setAttribute("y2",u?h.y+e.gap:h.y-e.gap)}ft.prototype.labels=function(t,e=!0,n={}){if(!e)return this;if(!t)return this;if(!this.data)return console.error("No data has been added to this cluster container. Please use the addGeneData() function before attempting to draw genes."),this;let r={x:0,y:55,dy:"0em",dx:"0em",rotate:0,start:null,end:null,adjustLabels:!0,spreadPosition:"bottom",leaderLine:{length:20,stroke:"#999999",strokeWidth:.75},fontSize:"12px",fontStyle:"italic",fontFamily:"sans-serif",textAnchor:"middle",cursor:"default",labelAdjustmentOptions:{rotation:65,offsetX:0,offsetY:0,dx:"0em",dy:"0em"},itemStyle:[],groupStyle:{},styleBy:null,group:null},i=ut.call(this,r,"labelsOptions",n),{x:o,y:a,start:s,end:c,adjustLabels:l,labelAdjustmentOptions:u,spreadPosition:h,leaderLine:f,groupStyle:d,styleBy:m,group:p,dx:g,dy:y,anchor:w,rotate:b,fontSize:v,fontStyle:x,fontFamily:S,textAnchor:k,cursor:C}=i,F=st(i,r),A=this.svg.append("g").attr("data-component","labels").attr("transform",`translate(${this.margin.left},${this.margin.top})`);this.data.sort((j,H)=>Math.min(j.start,j.end)-Math.min(H.start,H.end));let E=Yi(this.data,m??p,d,i.itemStyle),D=new Map(E.map(j=>[j.index,j])),$=(j,H)=>{let W=D.get(H)||{},J=W.x??o,K=W.y??a,ht=W.dx??g,X=W.dy??y,tt=W.adjustLabels!==void 0?W.adjustLabels:l,it=tt==="spread",G=it?0:W.rotate??b,xt=!it&&j.geneTrack>1,mt={...W.labelAdjustmentOptions??u};mt.rotation=-Math.abs(mt.rotation);let Bt=j.strand=="forward"&&this.geneStrandSpacing!==0?this.geneStrandSpacing:-this.geneStrandSpacing;var Dt=j.geneTrack?(j.geneTrack-1)*this.geneOverlapSpacing:0;let at=this.yScale(this.markerY??50),_t=this.yScale(K)-this.markerHeight/2-Bt+Dt,ge=2*at-this.yScale(K)+this.markerHeight/2-Bt+Dt,ne=xt?ge:_t;return{xPos:this.xScale((j.start+j.end)/2)+J,yPos:ne,dx:ht,dy:X,rotate:G,labelAdjustmentOptions:mt,adjustLabels:tt,spread:it,below:xt,yAbove:_t}},M=R.group(this.data,j=>j.geneTrack??1),T=(j,H,W)=>(M.get(j)||[]).some(J=>{let[K,ht]=[this.xScale(J.start),this.xScale(J.end)].sort((X,tt)=>X-tt);return K<W&&ht>H}),B=(j,H,W)=>{if(!W.below)return;let J=j.getBBox(),K=J.x,ht=J.x+J.width;T(H.geneTrack+1,K,ht)&&!T(H.geneTrack-1,K,ht)&&(W.below=!1,W.yPos=W.yAbove,R.select(j).attr("dominant-baseline",null).attr("y",W.yPos).attr("transform",`rotate(${W.rotate}, ${W.xPos}, ${W.yPos})`))},N=this.data.map((j,H)=>$(j,H)),L=Ql(this,"text.label",{left:0,right:this.width-this.margin.left-this.margin.right,top:-this.margin.top,bottom:this.height-this.margin.top}),q=new Map(this.svg.selectAll(".link-text").nodes().map(j=>[j.getAttribute("rowID"),j]));A.selectAll("text.label").data(this.data).enter().append("text").attr("id",(j,H)=>`cluster-${vr(j.cluster)}-label-${H}`).attr("rowID",(j,H)=>`${j.rowID}`).attr("class","label").each(function(j,H){let{dx:W,dy:J,rotate:K}=N[H];this.__drawn__={dx:W,dy:J,rotate:K}}).attr("x",(j,H)=>N[H].xPos).attr("y",(j,H)=>N[H].yPos).attr("dx",(j,H)=>N[H].dx).attr("dy",(j,H)=>N[H].dy).attr("text-anchor",k).attr("dominant-baseline",(j,H)=>N[H].below?"hanging":null).attr("transform",(j,H)=>{let{xPos:W,yPos:J,rotate:K}=N[H];return`rotate(${K}, ${W}, ${J})`}).style("font-size",v).style("font-style",x).style("font-family",S).style("cursor",C).text((j,H)=>D.get(H)?.text??j[t]).each(function(j){let H=q.get(String(j.rowID));H&&gE(this,H)}).each(function(j,H){let W=N[H];B(this,j,W),W.below&&(W.labelAdjustmentOptions.rotation=Math.abs(W.labelAdjustmentOptions.rotation))});let U=(j,H)=>{let W=R.select(j);rt(W,F),Ui(W,D.has(H)?[D.get(H)]:[],H),(j.childElementCount||ya(F)||ya(D.get(H)))&&L.refresh(j)};A.selectAll("text.label").each(function(j,H){N[H].spread&&U(this,H)});let{length:Z,...Q}={...r.leaderLine,...Hr(f)?f:{}};return this.spreadLabels(A,N,{length:Number.isFinite(Number(Z))?Number(Z):r.leaderLine.length,lineStyle:f===!1?null:Q,onTop:h==="top"}),A.selectAll("text.label").each(function(j,H){let W=N[H];W.spread||(W.adjustLabels&&L.adjust(this,{...W.labelAdjustmentOptions,hide:W.adjustLabels==="hide"})&&mE(this),U(this,H))}),A.selectAll("text.label").each(function(j,H){De(R.select(this),D.get(H)??{})}),this.labels=A.selectAll(".label"),this};ft.prototype.spreadLabels=function(t,e,n){let r=this.svg.node();if(!r.getClientRects().length){let k=new ResizeObserver(()=>{if(!r.isConnected)return k.disconnect();r.getClientRects().length&&(k.disconnect(),this.spreadLabels(t,e,n))});return k.observe(r),this}let i=this.width-this.margin.left-this.margin.right,o=k=>{let[C,F]=[this.xScale(k.start),this.xScale(k.end)].sort((D,$)=>D-$),A=Math.max(0,C),E=Math.min(i,F);return A<=E?[A,E]:null},a=[];if(t.selectAll("text.label").each(function(k,C){if(!e[C].spread||this.textContent.trim()==="")return;let F=o(k);if(!F){this.style.display="none";return}let{xPos:A}=e[C];a.push({node:this,d:k,geneX:(F[0]+F[1])/2,wanted:Math.min(F[1],Math.max(F[0],A))})}),!a.length)return this;let s=t.node().getCTM(),c=new Set(a.map(({d:k})=>String(k.rowID))),l=new Map,u=new Map,h=1/0,f=-1/0;this.svg.selectAll(".gene, .exon, .intron, .utr").each(function(){let k=this.getCTM();if(!k||!s)return;let C=s.inverse().multiply(k),F=this.getBBox(),A=1/0,E=-1/0;for(let[$,M]of[[F.x,F.y],[F.x+F.width,F.y],[F.x,F.y+F.height],[F.x+F.width,F.y+F.height]]){let T=new DOMPoint($,M).matrixTransform(C).y;A=Math.min(A,T),E=Math.max(E,T)}h=Math.min(h,A),f=Math.max(f,E);let D=this.getAttribute("rowID");c.has(D)&&(l.set(D,Math.min(l.get(D)??1/0,A)),u.set(D,Math.max(u.get(D)??-1/0,E)))});let d=this.yScale(this.markerY??50),m=(this.markerHeight??0)/2;Number.isFinite(h)||(h=d-m),Number.isFinite(f)||(f=d+m);let p=6,g=2,y=a.map(({node:k})=>k.getBBox()),w=yE(a.map(({wanted:k})=>k),y.map(k=>k.width),p,0,i),b=y.reduce((k,C)=>Math.max(k,C.height),0),v=n.onTop?h-b+this.margin.top:this.height-this.margin.top-f-b,x=Math.max(2*g,Math.min(n.length,v));if(a.forEach(({node:k},C)=>{let F=y[C],A=w[C]-F.width/2;if(A<-.5||A+F.width>i+.5){k.style.display="none";return}let E=n.onTop?h-x-(F.y+F.height):f+x-F.y,{moveX:D=0,moveY:$=0}=k.__drawn__??{},M=D||$?`translate(${D}, ${$}) `:"";k.setAttribute("transform",`${M}translate(${w[C]-(F.x+F.width/2)}, ${E})`)}),!n.lineStyle)return this;let S=t.insert("g","text.label").attr("class","leader-lines").style("pointer-events","none");return a.forEach(({node:k,d:C,geneX:F})=>{if(k.style.display==="none")return;let A=S.append("line").attr("x1",F).attr("x2",F);rt(A,n.lineStyle),k.__leader__={line:A.node(),gap:g,geneTop:l.get(String(C.rowID))??h,geneBottom:u.get(String(C.rowID))??f},jy(k),new MutationObserver(()=>jy(k)).observe(k,{attributes:!0,attributeFilter:["transform","style"]})}),this};ft.prototype.tooltip=function(t=!0,e={}){if(!t)return this;let n={triggers:["markers","genes","labels","exons","introns","utrs"],formatter:"<b>Start:</b> {start}<br><b>End: {end}</b>",opacity:0,position:"absolute",backgroundColor:"rgba(255, 255, 255, 0.9)",padding:"8px",borderRadius:"4px",border:"1px solid rgba(0,0,0,0.1)",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)",pointerEvents:"none",fontFamily:"Arial, sans-serif",fontSize:"12px",zIndex:1e3,color:"#333",lineHeight:"1.5"},r=ut.call(this,n,"tooltipOptions",e),i=st(r,n);typeof r.triggers=="string"&&(r.triggers=[r.triggers]);let o=this.svg.node().closest(".html-widget")||document.body,a=R.select(o).append("div").attr("class","cluster-tooltip").style("opacity",r.opacity).style("position",r.position).style("background-color",r.backgroundColor).style("--tooltip-bg",r.backgroundColor).style("padding",r.padding).style("border-radius",r.borderRadius).style("border",r.border).style("box-shadow",r.boxShadow).style("pointer-events",r.pointerEvents).style("font-family",r.fontFamily).style("font-size",r.fontSize).style("z-index",r.zIndex).style("color",r.color).style("line-height",r.lineHeight);rt(a,i);let s=h=>{let[f,d]=R.pointer(h,o);a.style("left",f-a.node().offsetWidth/2+"px").style("top",d-a.node().offsetHeight-15+"px")},c=R.format(","),l=h=>h==null||h===""||typeof h=="number"&&isNaN(h),u=h=>r.formatter.split(/<br\s*\/?>/i).filter(f=>{let d=[...f.matchAll(/\{(\w+)\}/g)].map(m=>m[1]);return d.length===0||!d.every(m=>l(h[m]))}).join("<br>").replace(/\{(\w+)\}/g,(f,d)=>typeof h[d]=="number"?c(h[d]):h[d]||"");return r.triggers.forEach(h=>{if(!this.hasOwnProperty(h))return;let f=this[h];!f||f.empty()||(f.on("mouseover",(d,m)=>{let p=this.data.find(y=>y===m);R.select(d.currentTarget).classed("hovered",!0),a.transition().duration(200).style("opacity",1),a.html(u(p)),s(d)}),f.on("mousemove",s),f.on("mouseout",d=>{R.select(d.currentTarget).classed("hovered",!1),a.transition().duration(500).style("opacity",0)}))}),this};function Wi(t,e,n){let r=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf","#393b79","#637939","#8c6d31","#843c39","#7b4173","#bd9e39","#ad494a","#d6616b","#31a354","#cedb9c","#9c9ede","#5254a3","#8ca252","#b5cf6b","#e7ba52","#ce6dbd","#e7cb94","#e7969c","#6b6ecf","#a55194"],i=n.filter(s=>s!==null),o=(s=()=>!0)=>{if(t&&(Array.isArray(t)||R[t])){let c=Array.isArray(t)?t:R[t];return i.some((l,u)=>u>=c.length&&s(l))&&Le("Warning: More unique groups than colors. Some colors will repeat."),i.map((l,u)=>c[u%c.length])}return t&&Le(`Warning: The color scheme "${t}" does not exist. Defaulting to schemeCategory30.`),i.map((c,l)=>c==="No Hit"?"#FFF":r[l%r.length])},a;if(e&&typeof e=="string")a=i.map(()=>e);else if(e&&Array.isArray(e))a=i.map((s,c)=>e[c%e.length]||"#FFF");else if(e&&typeof e=="object"){let s=o(c=>!e[c]);a=i.map((c,l)=>e[c]||s[l])}else a=o();return R.scaleOrdinal().domain([...i,null]).range([...a,"#FFF"])}var wa={none:()=>{},solid:(t,e,n)=>t.append("rect").attr("width",e).attr("height",e).attr("fill",n),horizontal:(t,e,n,r)=>t.append("path").attr("d",`M0,${e/2}H${e}`).attr("stroke",n).attr("stroke-width",r),vertical:(t,e,n,r)=>t.append("path").attr("d",`M${e/2},0V${e}`).attr("stroke",n).attr("stroke-width",r),diagonal:(t,e,n,r)=>t.append("path").attr("d",`M0,${e}L${e},0M${-e/4},${e/4}L${e/4},${-e/4}M${e*3/4},${e*5/4}L${e*5/4},${e*3/4}`).attr("stroke",n).attr("stroke-width",r),antidiagonal:(t,e,n,r)=>t.append("path").attr("d",`M0,0L${e},${e}M${-e/4},${e*3/4}L${e/4},${e*5/4}M${e*3/4},${-e/4}L${e*5/4},${e/4}`).attr("stroke",n).attr("stroke-width",r),grid:(t,e,n,r)=>t.append("path").attr("d",`M0,${e/2}H${e}M${e/2},0V${e}`).attr("stroke",n).attr("stroke-width",r),crosshatch:(t,e,n,r)=>{wa.diagonal(t,e,n,r),wa.antidiagonal(t,e,n,r)},dots:(t,e,n)=>t.append("circle").attr("cx",e/2).attr("cy",e/2).attr("r",e/5).attr("fill",n),zigzag:(t,e,n,r)=>t.append("path").attr("d",`M0,${e*.7}L${e/2},${e*.3}L${e},${e*.7}`).attr("fill","none").attr("stroke",n).attr("stroke-width",r),checkerboard:(t,e,n)=>t.append("path").attr("d",`M0,0H${e/2}V${e/2}H0ZM${e/2},${e/2}H${e}V${e}H${e/2}Z`).attr("fill",n),rings:(t,e,n,r)=>t.append("circle").attr("cx",e/2).attr("cy",e/2).attr("r",e/3.2).attr("fill","none").attr("stroke",n).attr("stroke-width",r*.8),bricks:(t,e,n,r)=>t.append("path").attr("d",`M0,0H${e}M0,${e/2}H${e}M${e/4},0V${e/2}M${e*3/4},${e/2}V${e}`).attr("stroke",n).attr("stroke-width",r),plus:(t,e,n,r)=>t.append("path").attr("d",`M${e/2},${e*.2}V${e*.8}M${e*.2},${e/2}H${e*.8}`).attr("stroke",n).attr("stroke-width",r),wideStripes:(t,e,n)=>t.append("path").attr("d",`M0,${e}L${e},0H${e/2}L0,${e/2}ZM${e},${e/2}V${e}H${e/2}Z`).attr("fill",n),inverseDots:(t,e,n,r,i)=>{wa.solid(t,e,n),t.append("circle").attr("cx",e/2).attr("cy",e/2).attr("r",e/4).attr("fill",i)}},bE={checkerboard:4/3,rings:7/6,bricks:5/3,plus:4/3,wideStripes:4/3},Dh=["diagonal","dots","horizontal","crosshatch","vertical","zigzag","checkerboard","solid","rings","bricks","inverseDots","grid","wideStripes","plus","antidiagonal"];function $h(t,e,n){return t==null?e.map(()=>n):typeof t=="string"?e.map(()=>t):Array.isArray(t)?e.map((r,i)=>t[i%t.length]):e.map(r=>t[r]??n)}function ji(t,e,n,r,i){if(!e)return{fill:r,stroke:r,outline:null,align:()=>{}};let{patterns:o=null,color:a="black",background:s=null,size:c=6,strokeWidth:l=1}=e,u=n.filter(b=>b!==null),h=$h(o,u,"none");o==null&&(u.forEach((b,v)=>{h[v]=Dh[v%Dh.length]}),u.length>Dh.length&&Le("Warning: More unique groups than patterns. Some patterns will repeat."));let f=$h(s,u,null),d=$h(a,u,"black"),m=t.attr("id")||"geneviewer",p=t.append("defs"),g=new Map,y=new Map;u.forEach((b,v)=>{let x=h[v];wa[x]||(Le(`Warning: The pattern "${x}" does not exist. Using "none".`),x="none"),b==="No Hit"&&o==null&&(x="none");let S=`${m}-${i}-pattern-${v}`,k=c*(bE[x]??1),C=f[v]??r(b),F=p.append("pattern").attr("id",S).attr("patternUnits","userSpaceOnUse").attr("width",k).attr("height",k);F.append("rect").attr("width",k).attr("height",k).attr("fill",C),wa[x](F,k,d[v],l,C),g.set(b,`url(#${S})`),y.set(b,F)});let w=new Map(u.map((b,v)=>[b,d[v]]));return{fill:b=>g.get(b)??r(b),stroke:b=>s==null?r(b):w.get(b)??d[0],outline:typeof a=="string"?a:"black",align:(b,v,x)=>y.get(b)?.attr("x",v).attr("y",x)}}function vE(t,e){let n=t.filter((u,h)=>{let f=t[(h-1+t.length)%t.length];return Math.abs(u[0]-f[0])>1e-6||Math.abs(u[1]-f[1])>1e-6});if(!(e>0)||n.length<3)return`M${n.map(u=>`${u[0]} ${u[1]}`).join(" L")} Z`;let r=n.length,i=(u,h)=>Math.hypot(h[0]-u[0],h[1]-u[1]),o=(u,h,f)=>{let d=i(u,h);return[u[0]+(h[0]-u[0])*f/d,u[1]+(h[1]-u[1])*f/d]},a=(u,h,f)=>(h[0]-u[0])*(f[1]-h[1])-(h[1]-u[1])*(f[0]-h[0]),s=Math.sign(n.reduce((u,h,f)=>{let d=n[(f+1)%r];return u+h[0]*d[1]-d[0]*h[1]},0)),c=n.map((u,h)=>{let f=n[(h-1+r)%r],d=n[(h+1)%r],p=Math.sign(a(f,u,d))===s?Math.min(e,i(f,u)/2,i(u,d)/2):0;return{p:u,start:o(u,f,p),end:o(u,d,p)}}),l=`M${c[0].end[0]} ${c[0].end[1]}`;for(let u=1;u<=r;u++){let{p:h,start:f,end:d}=c[u%r];l+=` L${f[0]} ${f[1]} Q${h[0]} ${h[1]} ${d[0]} ${d[1]}`}return l+" Z"}function Xy(t,e,n,r={}){let i={small:{scale:.75},medium:{scale:1},large:{scale:1.25}},o={arrow:{arrowheadWidth:10,arrowheadHeight:30,markerHeight:15},boxarrow:{arrowheadWidth:10,arrowheadHeight:30,markerHeight:30},box:{arrowheadWidth:0,arrowheadHeight:30,markerHeight:30},rbox:{arrowheadWidth:0,arrowheadHeight:30,markerHeight:30,cornerRadius:5},cbox:{arrowheadWidth:10,arrowheadHeight:30,markerHeight:30},intron:{arrowheadWidth:0,arrowheadHeight:0,markerHeight:20}},a=i[n]||i.medium,s=o[t]||{},c=ba(s,r),{arrowheadWidth:l,arrowheadHeight:u,markerHeight:h,cornerRadius:f}=c,d=l*a.scale,m=u*a.scale,p=h*a.scale,g=e-d;g=Math.max(0,g);let y=(m-p)/2,w=y+p,b,v=Math.max(p,m),x;switch(t){case"arrow":case"boxarrow":case"box":b=vE([[0,y],[0,w],[g,w],[g,m],[e,m/2],[g,0],[g,y]],f||0);break;case"rbox":x=Math.min(f,p/2,e/2),v=p,b=`M ${x},0
|
|
6
|
-
H ${e-
|
|
7
|
-
A ${
|
|
8
|
-
V ${p-
|
|
9
|
-
A ${
|
|
10
|
-
H ${
|
|
11
|
-
A ${
|
|
12
|
-
V ${
|
|
13
|
-
A ${
|
|
14
|
-
Z`;break;case"cbox":
|
|
15
|
-
L ${e-
|
|
16
|
-
Q ${e} ${p/2} ${e-
|
|
17
|
-
L ${
|
|
18
|
-
Q 0 ${p/2} ${
|
|
5
|
+
`)}function l(h){return h.map(u).join(t)}function u(h){return h==null?"":h instanceof Date?d8(h):e.test(h+="")?'"'+h.replace(/"/g,'""')+'"':h}return{parse:r,parseRows:i,format:a,formatBody:s,formatRows:c,formatRow:l,formatValue:u}}var Br=Oo(","),Pu=Br.parse,p8=Br.parseRows,g8=Br.format,m8=Br.formatBody,y8=Br.formatRows,b8=Br.formatRow,v8=Br.formatValue,Dr=Oo(" "),Iu=Dr.parse,w8=Dr.parseRows,x8=Dr.format,_8=Dr.formatBody,S8=Dr.formatRows,k8=Dr.formatRow,A8=Dr.formatValue;function E8(t){for(var e in t){var n=t[e].trim(),r,i;if(!n)n=null;else if(n==="true")n=!0;else if(n==="false")n=!1;else if(n==="NaN")n=NaN;else if(!isNaN(r=+n))n=r;else if(i=n.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/))M8&&i[4]&&!i[7]&&(n=n.replace(/-/g,"/").replace(/T/," ")),n=new Date(n);else continue;t[e]=n}return t}var M8=new Date("2019-01-01T00:00").getHours()||new Date("2019-07-01T00:00").getHours();function C8(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.blob()}function F8(t,e){return fetch(t,e).then(C8)}function T8(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.arrayBuffer()}function O8(t,e){return fetch(t,e).then(T8)}function B8(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}function Ns(t,e){return fetch(t,e).then(B8)}function Op(t){return function(e,n,r){return arguments.length===2&&typeof n=="function"&&(r=n,n=void 0),Ns(e,n).then(function(i){return t(i,r)})}}function D8(t,e,n,r){arguments.length===3&&typeof n=="function"&&(r=n,n=void 0);var i=Oo(t);return Ns(e,n).then(function(o){return i.parse(o,r)})}var $8=Op(Pu),z8=Op(Iu);function N8(t,e){return new Promise(function(n,r){var i=new Image;for(var o in e)i[o]=e[o];i.onerror=r,i.onload=function(){n(i)},i.src=t})}function R8(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);if(!(t.status===204||t.status===205))return t.json()}function P8(t,e){return fetch(t,e).then(R8)}function Lu(t){return(e,n)=>Ns(e,n).then(r=>new DOMParser().parseFromString(r,t))}var I8=Lu("application/xml"),L8=Lu("text/html"),q8=Lu("image/svg+xml");function Y8(t){let e=+this._x.call(null,t),n=+this._y.call(null,t);return Dp(this.cover(e,n),e,n,t)}function Dp(t,e,n,r){if(isNaN(e)||isNaN(n))return t;var i,o=t._root,a={data:r},s=t._x0,c=t._y0,l=t._x1,u=t._y1,h,f,d,m,p,g,y,w;if(!o)return t._root=a,t;for(;o.length;)if((p=e>=(h=(s+l)/2))?s=h:l=h,(g=n>=(f=(c+u)/2))?c=f:u=f,i=o,!(o=o[y=g<<1|p]))return i[y]=a,t;if(d=+t._x.call(null,o.data),m=+t._y.call(null,o.data),e===d&&n===m)return a.next=o,i?i[y]=a:t._root=a,t;do i=i?i[y]=new Array(4):t._root=new Array(4),(p=e>=(h=(s+l)/2))?s=h:l=h,(g=n>=(f=(c+u)/2))?c=f:u=f;while((y=g<<1|p)===(w=(m>=f)<<1|d>=h));return i[w]=o,i[y]=a,t}function U8(t){Array.isArray(t)||(t=Array.from(t));let e=t.length,n=new Float64Array(e),r=new Float64Array(e),i=1/0,o=i,a=-i,s=a;for(let c=0,l,u,h;c<e;++c){if(isNaN(u=+this._x.call(null,l=t[c]))||isNaN(h=+this._y.call(null,l))){n[c]=NaN;continue}n[c]=u,r[c]=h,u<i&&(i=u),u>a&&(a=u),h<o&&(o=h),h>s&&(s=h)}if(i>a||o>s)return this;this.cover(i,o).cover(a,s);for(let c=0;c<e;++c)Dp(this,n[c],r[c],t[c]);return this}function H8(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(n))i=(n=Math.floor(t))+1,o=(r=Math.floor(e))+1;else{for(var a=i-n||1,s=this._root,c,l;n>t||t>=i||r>e||e>=o;)switch(l=(e<r)<<1|t<n,c=new Array(4),c[l]=s,s=c,a*=2,l){case 0:i=n+a,o=r+a;break;case 1:n=i-a,o=r+a;break;case 2:i=n+a,r=o-a;break;case 3:n=i-a,r=o-a;break}this._root&&this._root.length&&(this._root=s)}return this._x0=n,this._y0=r,this._x1=i,this._y1=o,this}function W8(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function j8(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]]}function ve(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i}function X8(t,e,n){var r,i=this._x0,o=this._y0,a,s,c,l,u=this._x1,h=this._y1,f=[],d=this._root,m,p;for(d&&f.push(new ve(d,i,o,u,h)),n==null?n=1/0:(i=t-n,o=e-n,u=t+n,h=e+n,n*=n);m=f.pop();)if(!(!(d=m.node)||(a=m.x0)>u||(s=m.y0)>h||(c=m.x1)<i||(l=m.y1)<o))if(d.length){var g=(a+c)/2,y=(s+l)/2;f.push(new ve(d[3],g,y,c,l),new ve(d[2],a,y,g,l),new ve(d[1],g,s,c,y),new ve(d[0],a,s,g,y)),(p=(e>=y)<<1|t>=g)&&(m=f[f.length-1],f[f.length-1]=f[f.length-1-p],f[f.length-1-p]=m)}else{var w=t-+this._x.call(null,d.data),b=e-+this._y.call(null,d.data),v=w*w+b*b;if(v<n){var _=Math.sqrt(n=v);i=t-_,o=e-_,u=t+_,h=e+_,r=d.data}}return r}function G8(t){if(isNaN(u=+this._x.call(null,t))||isNaN(h=+this._y.call(null,t)))return this;var e,n=this._root,r,i,o,a=this._x0,s=this._y0,c=this._x1,l=this._y1,u,h,f,d,m,p,g,y;if(!n)return this;if(n.length)for(;;){if((m=u>=(f=(a+c)/2))?a=f:c=f,(p=h>=(d=(s+l)/2))?s=d:l=d,e=n,!(n=n[g=p<<1|m]))return this;if(!n.length)break;(e[g+1&3]||e[g+2&3]||e[g+3&3])&&(r=e,y=g)}for(;n.data!==t;)if(i=n,!(n=n.next))return this;return(o=n.next)&&delete n.next,i?(o?i.next=o:delete i.next,this):e?(o?e[g]=o:delete e[g],(n=e[0]||e[1]||e[2]||e[3])&&n===(e[3]||e[2]||e[1]||e[0])&&!n.length&&(r?r[y]=n:this._root=n),this):(this._root=o,this)}function V8(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function Z8(){return this._root}function K8(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function Q8(t){var e=[],n,r=this._root,i,o,a,s,c;for(r&&e.push(new ve(r,this._x0,this._y0,this._x1,this._y1));n=e.pop();)if(!t(r=n.node,o=n.x0,a=n.y0,s=n.x1,c=n.y1)&&r.length){var l=(o+s)/2,u=(a+c)/2;(i=r[3])&&e.push(new ve(i,l,u,s,c)),(i=r[2])&&e.push(new ve(i,o,u,l,c)),(i=r[1])&&e.push(new ve(i,l,a,s,u)),(i=r[0])&&e.push(new ve(i,o,a,l,u))}return this}function J8(t){var e=[],n=[],r;for(this._root&&e.push(new ve(this._root,this._x0,this._y0,this._x1,this._y1));r=e.pop();){var i=r.node;if(i.length){var o,a=r.x0,s=r.y0,c=r.x1,l=r.y1,u=(a+c)/2,h=(s+l)/2;(o=i[0])&&e.push(new ve(o,a,s,u,h)),(o=i[1])&&e.push(new ve(o,u,s,c,h)),(o=i[2])&&e.push(new ve(o,a,h,u,l)),(o=i[3])&&e.push(new ve(o,u,h,c,l))}n.push(r)}for(;r=n.pop();)t(r.node,r.x0,r.y0,r.x1,r.y1);return this}function t4(t){return t[0]}function e4(t){return arguments.length?(this._x=t,this):this._x}function n4(t){return t[1]}function r4(t){return arguments.length?(this._y=t,this):this._y}function Bo(t,e,n){var r=new qu(e??t4,n??n4,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function qu(t,e,n,r,i,o){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function Bp(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var we=Bo.prototype=qu.prototype;we.copy=function(){var t=new qu(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,n,r;if(!e)return t;if(!e.length)return t._root=Bp(e),t;for(n=[{source:e,target:t._root=new Array(4)}];e=n.pop();)for(var i=0;i<4;++i)(r=e.source[i])&&(r.length?n.push({source:r,target:e.target[i]=new Array(4)}):e.target[i]=Bp(r));return t};we.add=Y8;we.addAll=U8;we.cover=H8;we.data=W8;we.extent=j8;we.find=X8;we.remove=G8;we.removeAll=V8;we.root=Z8;we.size=K8;we.visit=Q8;we.visitAfter=J8;we.x=e4;we.y=r4;function i4(t,e){var n,r=1;t==null&&(t=0),e==null&&(e=0);function i(){var o,a=n.length,s,c=0,l=0;for(o=0;o<a;++o)s=n[o],c+=s.x,l+=s.y;for(c=(c/a-t)*r,l=(l/a-e)*r,o=0;o<a;++o)s=n[o],s.x-=c,s.y-=l}return i.initialize=function(o){n=o},i.x=function(o){return arguments.length?(t=+o,i):t},i.y=function(o){return arguments.length?(e=+o,i):e},i.strength=function(o){return arguments.length?(r=+o,i):r},i}function Gt(t){return function(){return t}}function ur(t){return(t()-.5)*1e-6}function o4(t){return t.x+t.vx}function a4(t){return t.y+t.vy}function s4(t){var e,n,r,i=1,o=1;typeof t!="function"&&(t=Gt(t==null?1:+t));function a(){for(var l,u=e.length,h,f,d,m,p,g,y=0;y<o;++y)for(h=Bo(e,o4,a4).visitAfter(s),l=0;l<u;++l)f=e[l],p=n[f.index],g=p*p,d=f.x+f.vx,m=f.y+f.vy,h.visit(w);function w(b,v,_,S,k){var C=b.data,F=b.r,A=p+F;if(C){if(C.index>f.index){var E=d-C.x-C.vx,D=m-C.y-C.vy,$=E*E+D*D;$<A*A&&(E===0&&(E=ur(r),$+=E*E),D===0&&(D=ur(r),$+=D*D),$=(A-($=Math.sqrt($)))/$*i,f.vx+=(E*=$)*(A=(F*=F)/(g+F)),f.vy+=(D*=$)*A,C.vx-=E*(A=1-A),C.vy-=D*A)}return}return v>d+A||S<d-A||_>m+A||k<m-A}}function s(l){if(l.data)return l.r=n[l.data.index];for(var u=l.r=0;u<4;++u)l[u]&&l[u].r>l.r&&(l.r=l[u].r)}function c(){if(e){var l,u=e.length,h;for(n=new Array(u),l=0;l<u;++l)h=e[l],n[h.index]=+t(h,l,e)}}return a.initialize=function(l,u){e=l,r=u,c()},a.iterations=function(l){return arguments.length?(o=+l,a):o},a.strength=function(l){return arguments.length?(i=+l,a):i},a.radius=function(l){return arguments.length?(t=typeof l=="function"?l:Gt(+l),c(),a):t},a}function l4(t){return t.index}function $p(t,e){var n=t.get(e);if(!n)throw new Error("node not found: "+e);return n}function c4(t){var e=l4,n=h,r,i=Gt(30),o,a,s,c,l,u=1;t==null&&(t=[]);function h(g){return 1/Math.min(s[g.source.index],s[g.target.index])}function f(g){for(var y=0,w=t.length;y<u;++y)for(var b=0,v,_,S,k,C,F,A;b<w;++b)v=t[b],_=v.source,S=v.target,k=S.x+S.vx-_.x-_.vx||ur(l),C=S.y+S.vy-_.y-_.vy||ur(l),F=Math.sqrt(k*k+C*C),F=(F-o[b])/F*g*r[b],k*=F,C*=F,S.vx-=k*(A=c[b]),S.vy-=C*A,_.vx+=k*(A=1-A),_.vy+=C*A}function d(){if(a){var g,y=a.length,w=t.length,b=new Map(a.map((_,S)=>[e(_,S,a),_])),v;for(g=0,s=new Array(y);g<w;++g)v=t[g],v.index=g,typeof v.source!="object"&&(v.source=$p(b,v.source)),typeof v.target!="object"&&(v.target=$p(b,v.target)),s[v.source.index]=(s[v.source.index]||0)+1,s[v.target.index]=(s[v.target.index]||0)+1;for(g=0,c=new Array(w);g<w;++g)v=t[g],c[g]=s[v.source.index]/(s[v.source.index]+s[v.target.index]);r=new Array(w),m(),o=new Array(w),p()}}function m(){if(a)for(var g=0,y=t.length;g<y;++g)r[g]=+n(t[g],g,t)}function p(){if(a)for(var g=0,y=t.length;g<y;++g)o[g]=+i(t[g],g,t)}return f.initialize=function(g,y){a=g,l=y,d()},f.links=function(g){return arguments.length?(t=g,d(),f):t},f.id=function(g){return arguments.length?(e=g,f):e},f.iterations=function(g){return arguments.length?(u=+g,f):u},f.strength=function(g){return arguments.length?(n=typeof g=="function"?g:Gt(+g),m(),f):n},f.distance=function(g){return arguments.length?(i=typeof g=="function"?g:Gt(+g),p(),f):i},f}var u4=1664525,f4=1013904223,zp=4294967296;function h4(){let t=1;return()=>(t=(u4*t+f4)%zp)/zp}function d4(t){return t.x}function p4(t){return t.y}var g4=10,m4=Math.PI*(3-Math.sqrt(5));function y4(t){var e,n=1,r=.001,i=1-Math.pow(r,1/300),o=0,a=.6,s=new Map,c=vi(h),l=Ye("tick","end"),u=h4();t==null&&(t=[]);function h(){f(),l.call("tick",e),n<r&&(c.stop(),l.call("end",e))}function f(p){var g,y=t.length,w;p===void 0&&(p=1);for(var b=0;b<p;++b)for(n+=(o-n)*i,s.forEach(function(v){v(n)}),g=0;g<y;++g)w=t[g],w.fx==null?w.x+=w.vx*=a:(w.x=w.fx,w.vx=0),w.fy==null?w.y+=w.vy*=a:(w.y=w.fy,w.vy=0);return e}function d(){for(var p=0,g=t.length,y;p<g;++p){if(y=t[p],y.index=p,y.fx!=null&&(y.x=y.fx),y.fy!=null&&(y.y=y.fy),isNaN(y.x)||isNaN(y.y)){var w=g4*Math.sqrt(.5+p),b=p*m4;y.x=w*Math.cos(b),y.y=w*Math.sin(b)}(isNaN(y.vx)||isNaN(y.vy))&&(y.vx=y.vy=0)}}function m(p){return p.initialize&&p.initialize(t,u),p}return d(),e={tick:f,restart:function(){return c.restart(h),e},stop:function(){return c.stop(),e},nodes:function(p){return arguments.length?(t=p,d(),s.forEach(m),e):t},alpha:function(p){return arguments.length?(n=+p,e):n},alphaMin:function(p){return arguments.length?(r=+p,e):r},alphaDecay:function(p){return arguments.length?(i=+p,e):+i},alphaTarget:function(p){return arguments.length?(o=+p,e):o},velocityDecay:function(p){return arguments.length?(a=1-p,e):1-a},randomSource:function(p){return arguments.length?(u=p,s.forEach(m),e):u},force:function(p,g){return arguments.length>1?(g==null?s.delete(p):s.set(p,m(g)),e):s.get(p)},find:function(p,g,y){var w=0,b=t.length,v,_,S,k,C;for(y==null?y=1/0:y*=y,w=0;w<b;++w)k=t[w],v=p-k.x,_=g-k.y,S=v*v+_*_,S<y&&(C=k,y=S);return C},on:function(p,g){return arguments.length>1?(l.on(p,g),e):l.on(p)}}}function b4(){var t,e,n,r,i=Gt(-30),o,a=1,s=1/0,c=.81;function l(d){var m,p=t.length,g=Bo(t,d4,p4).visitAfter(h);for(r=d,m=0;m<p;++m)e=t[m],g.visit(f)}function u(){if(t){var d,m=t.length,p;for(o=new Array(m),d=0;d<m;++d)p=t[d],o[p.index]=+i(p,d,t)}}function h(d){var m=0,p,g,y=0,w,b,v;if(d.length){for(w=b=v=0;v<4;++v)(p=d[v])&&(g=Math.abs(p.value))&&(m+=p.value,y+=g,w+=g*p.x,b+=g*p.y);d.x=w/y,d.y=b/y}else{p=d,p.x=p.data.x,p.y=p.data.y;do m+=o[p.data.index];while(p=p.next)}d.value=m}function f(d,m,p,g){if(!d.value)return!0;var y=d.x-e.x,w=d.y-e.y,b=g-m,v=y*y+w*w;if(b*b/c<v)return v<s&&(y===0&&(y=ur(n),v+=y*y),w===0&&(w=ur(n),v+=w*w),v<a&&(v=Math.sqrt(a*v)),e.vx+=y*d.value*r/v,e.vy+=w*d.value*r/v),!0;if(d.length||v>=s)return;(d.data!==e||d.next)&&(y===0&&(y=ur(n),v+=y*y),w===0&&(w=ur(n),v+=w*w),v<a&&(v=Math.sqrt(a*v)));do d.data!==e&&(b=o[d.data.index]*r/v,e.vx+=y*b,e.vy+=w*b);while(d=d.next)}return l.initialize=function(d,m){t=d,n=m,u()},l.strength=function(d){return arguments.length?(i=typeof d=="function"?d:Gt(+d),u(),l):i},l.distanceMin=function(d){return arguments.length?(a=d*d,l):Math.sqrt(a)},l.distanceMax=function(d){return arguments.length?(s=d*d,l):Math.sqrt(s)},l.theta=function(d){return arguments.length?(c=d*d,l):Math.sqrt(c)},l}function v4(t,e,n){var r,i=Gt(.1),o,a;typeof t!="function"&&(t=Gt(+t)),e==null&&(e=0),n==null&&(n=0);function s(l){for(var u=0,h=r.length;u<h;++u){var f=r[u],d=f.x-e||1e-6,m=f.y-n||1e-6,p=Math.sqrt(d*d+m*m),g=(a[u]-p)*o[u]*l/p;f.vx+=d*g,f.vy+=m*g}}function c(){if(r){var l,u=r.length;for(o=new Array(u),a=new Array(u),l=0;l<u;++l)a[l]=+t(r[l],l,r),o[l]=isNaN(a[l])?0:+i(r[l],l,r)}}return s.initialize=function(l){r=l,c()},s.strength=function(l){return arguments.length?(i=typeof l=="function"?l:Gt(+l),c(),s):i},s.radius=function(l){return arguments.length?(t=typeof l=="function"?l:Gt(+l),c(),s):t},s.x=function(l){return arguments.length?(e=+l,s):e},s.y=function(l){return arguments.length?(n=+l,s):n},s}function w4(t){var e=Gt(.1),n,r,i;typeof t!="function"&&(t=Gt(t==null?0:+t));function o(s){for(var c=0,l=n.length,u;c<l;++c)u=n[c],u.vx+=(i[c]-u.x)*r[c]*s}function a(){if(n){var s,c=n.length;for(r=new Array(c),i=new Array(c),s=0;s<c;++s)r[s]=isNaN(i[s]=+t(n[s],s,n))?0:+e(n[s],s,n)}}return o.initialize=function(s){n=s,a()},o.strength=function(s){return arguments.length?(e=typeof s=="function"?s:Gt(+s),a(),o):e},o.x=function(s){return arguments.length?(t=typeof s=="function"?s:Gt(+s),a(),o):t},o}function x4(t){var e=Gt(.1),n,r,i;typeof t!="function"&&(t=Gt(t==null?0:+t));function o(s){for(var c=0,l=n.length,u;c<l;++c)u=n[c],u.vy+=(i[c]-u.y)*r[c]*s}function a(){if(n){var s,c=n.length;for(r=new Array(c),i=new Array(c),s=0;s<c;++s)r[s]=isNaN(i[s]=+t(n[s],s,n))?0:+e(n[s],s,n)}}return o.initialize=function(s){n=s,a()},o.strength=function(s){return arguments.length?(e=typeof s=="function"?s:Gt(+s),a(),o):e},o.y=function(s){return arguments.length?(t=typeof s=="function"?s:Gt(+s),a(),o):t},o}function _4(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function Ps(t,e){if(!isFinite(t)||t===0)return null;var n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"),r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function Ci(t){return t=Ps(Math.abs(t)),t?t[1]:NaN}function S4(t,e){return function(n,r){for(var i=n.length,o=[],a=0,s=t[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),o.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}}function k4(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var A4=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function $r(t){if(!(e=A4.exec(t)))throw new Error("invalid format: "+t);var e;return new Ls({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}$r.prototype=Ls.prototype;function Ls(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}Ls.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function E4(t){t:for(var e=t.length,n=1,r=-1,i;n<e;++n)switch(t[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+t[n])break t;r>0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(i+1):t}var Is;function M4(t,e){var n=Ps(t,e);if(!n)return Is=void 0,t.toPrecision(e);var r=n[0],i=n[1],o=i-(Is=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+Ps(t,Math.max(0,e+o-1))[0]}function Np(t,e){var n=Ps(t,e);if(!n)return t+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}var Rp={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:_4,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Np(t*100,e),r:Np,s:M4,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Pp(t){return t}var Ip=Array.prototype.map,Lp=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function qp(t){var e=t.grouping===void 0||t.thousands===void 0?Pp:S4(Ip.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",o=t.numerals===void 0?Pp:k4(Ip.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"−":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function l(h,f){h=$r(h);var d=h.fill,m=h.align,p=h.sign,g=h.symbol,y=h.zero,w=h.width,b=h.comma,v=h.precision,_=h.trim,S=h.type;S==="n"?(b=!0,S="g"):Rp[S]||(v===void 0&&(v=12),_=!0,S="g"),(y||d==="0"&&m==="=")&&(y=!0,d="0",m="=");var k=(f&&f.prefix!==void 0?f.prefix:"")+(g==="$"?n:g==="#"&&/[boxX]/.test(S)?"0"+S.toLowerCase():""),C=(g==="$"?r:/[%p]/.test(S)?a:"")+(f&&f.suffix!==void 0?f.suffix:""),F=Rp[S],A=/[defgprs%]/.test(S);v=v===void 0?6:/[gprs]/.test(S)?Math.max(1,Math.min(21,v)):Math.max(0,Math.min(20,v));function E(D){var $=k,M=C,T,B,N;if(S==="c")M=F(D)+M,D="";else{D=+D;var L=D<0||1/D<0;if(D=isNaN(D)?c:F(Math.abs(D),v),_&&(D=E4(D)),L&&+D==0&&p!=="+"&&(L=!1),$=(L?p==="("?p:s:p==="-"||p==="("?"":p)+$,M=(S==="s"&&!isNaN(D)&&Is!==void 0?Lp[8+Is/3]:"")+M+(L&&p==="("?")":""),A){for(T=-1,B=D.length;++T<B;)if(N=D.charCodeAt(T),48>N||N>57){M=(N===46?i+D.slice(T+1):D.slice(T))+M,D=D.slice(0,T);break}}}b&&!y&&(D=e(D,1/0));var q=$.length+D.length+M.length,U=q<w?new Array(w-q+1).join(d):"";switch(b&&y&&(D=e(U+D,U.length?w-M.length:1/0),U=""),m){case"<":D=$+D+M+U;break;case"=":D=$+U+D+M;break;case"^":D=U.slice(0,q=U.length>>1)+$+D+M+U.slice(q);break;default:D=U+$+D+M;break}return o(D)}return E.toString=function(){return h+""},E}function u(h,f){var d=Math.max(-8,Math.min(8,Math.floor(Ci(f)/3)))*3,m=Math.pow(10,-d),p=l((h=$r(h),h.type="f",h),{suffix:Lp[8+d/3]});return function(g){return p(m*g)}}return{format:l,formatPrefix:u}}var Rs,Do,qs;Yp({thousands:",",grouping:[3],currency:["$",""]});function Yp(t){return Rs=qp(t),Do=Rs.format,qs=Rs.formatPrefix,Rs}function Yu(t){return Math.max(0,-Ci(Math.abs(t)))}function Uu(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ci(e)/3)))*3-Ci(Math.abs(t)))}function Hu(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Ci(e)-Ci(t))+1}var lt=1e-6,Wo=1e-12,mt=Math.PI,qt=mt/2,Ks=mt/4,ke=mt*2,At=180/mt,ct=mt/180,bt=Math.abs,zi=Math.atan,Ae=Math.atan2,it=Math.cos,Ys=Math.ceil,bg=Math.exp,Zu=Math.hypot,Qs=Math.log,Wu=Math.pow,et=Math.sin,He=Math.sign||function(t){return t>0?1:t<0?-1:0},Jt=Math.sqrt,xf=Math.tan;function vg(t){return t>1?0:t<-1?mt:Math.acos(t)}function Ee(t){return t>1?qt:t<-1?-qt:Math.asin(t)}function Up(t){return(t=et(t/2))*t}function zt(){}function Js(t,e){t&&Wp.hasOwnProperty(t.type)&&Wp[t.type](t,e)}var Hp={Feature:function(t,e){Js(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r<i;)Js(n[r].geometry,e)}},Wp={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)t=n[r],e.point(t[0],t[1],t[2])},LineString:function(t,e){Ku(t.coordinates,e,0)},MultiLineString:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)Ku(n[r],e,0)},Polygon:function(t,e){jp(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)jp(n[r],e)},GeometryCollection:function(t,e){for(var n=t.geometries,r=-1,i=n.length;++r<i;)Js(n[r],e)}};function Ku(t,e,n){var r=-1,i=t.length-n,o;for(e.lineStart();++r<i;)o=t[r],e.point(o[0],o[1],o[2]);e.lineEnd()}function jp(t,e){var n=-1,r=t.length;for(e.polygonStart();++n<r;)Ku(t[n],e,1);e.polygonEnd()}function cn(t,e){t&&Hp.hasOwnProperty(t.type)?Hp[t.type](t,e):Js(t,e)}var tl=new It,el=new It,wg,xg,Qu,Ju,tf,_n={point:zt,lineStart:zt,lineEnd:zt,polygonStart:function(){tl=new It,_n.lineStart=C4,_n.lineEnd=F4},polygonEnd:function(){var t=+tl;el.add(t<0?ke+t:t),this.lineStart=this.lineEnd=this.point=zt},sphere:function(){el.add(ke)}};function C4(){_n.point=T4}function F4(){_g(wg,xg)}function T4(t,e){_n.point=_g,wg=t,xg=e,t*=ct,e*=ct,Qu=t,Ju=it(e=e/2+Ks),tf=et(e)}function _g(t,e){t*=ct,e*=ct,e=e/2+Ks;var n=t-Qu,r=n>=0?1:-1,i=r*n,o=it(e),a=et(e),s=tf*a,c=Ju*o+s*it(i),l=s*r*et(i);tl.add(Ae(l,c)),Qu=t,Ju=o,tf=a}function O4(t){return el=new It,cn(t,_n),el*2}function nl(t){return[Ae(t[1],t[0]),Ee(t[2])]}function Nr(t){var e=t[0],n=t[1],r=it(n);return[r*it(e),r*et(e),et(n)]}function Us(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Bi(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function ju(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function Hs(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function rl(t){var e=Jt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}var $t,Oe,Lt,Ie,zr,Sg,kg,Oi,Lo,fr,qn,In={point:ef,lineStart:Xp,lineEnd:Gp,polygonStart:function(){In.point=Eg,In.lineStart=B4,In.lineEnd=D4,Lo=new It,_n.polygonStart()},polygonEnd:function(){_n.polygonEnd(),In.point=ef,In.lineStart=Xp,In.lineEnd=Gp,tl<0?($t=-(Lt=180),Oe=-(Ie=90)):Lo>lt?Ie=90:Lo<-lt&&(Oe=-90),qn[0]=$t,qn[1]=Lt},sphere:function(){$t=-(Lt=180),Oe=-(Ie=90)}};function ef(t,e){fr.push(qn=[$t=t,Lt=t]),e<Oe&&(Oe=e),e>Ie&&(Ie=e)}function Ag(t,e){var n=Nr([t*ct,e*ct]);if(Oi){var r=Bi(Oi,n),i=[r[1],-r[0],0],o=Bi(i,r);rl(o),o=nl(o);var a=t-zr,s=a>0?1:-1,c=o[0]*At*s,l,u=bt(a)>180;u^(s*zr<c&&c<s*t)?(l=o[1]*At,l>Ie&&(Ie=l)):(c=(c+360)%360-180,u^(s*zr<c&&c<s*t)?(l=-o[1]*At,l<Oe&&(Oe=l)):(e<Oe&&(Oe=e),e>Ie&&(Ie=e))),u?t<zr?Pe($t,t)>Pe($t,Lt)&&(Lt=t):Pe(t,Lt)>Pe($t,Lt)&&($t=t):Lt>=$t?(t<$t&&($t=t),t>Lt&&(Lt=t)):t>zr?Pe($t,t)>Pe($t,Lt)&&(Lt=t):Pe(t,Lt)>Pe($t,Lt)&&($t=t)}else fr.push(qn=[$t=t,Lt=t]);e<Oe&&(Oe=e),e>Ie&&(Ie=e),Oi=n,zr=t}function Xp(){In.point=Ag}function Gp(){qn[0]=$t,qn[1]=Lt,In.point=ef,Oi=null}function Eg(t,e){if(Oi){var n=t-zr;Lo.add(bt(n)>180?n+(n>0?360:-360):n)}else Sg=t,kg=e;_n.point(t,e),Ag(t,e)}function B4(){_n.lineStart()}function D4(){Eg(Sg,kg),_n.lineEnd(),bt(Lo)>lt&&($t=-(Lt=180)),qn[0]=$t,qn[1]=Lt,Oi=null}function Pe(t,e){return(e-=t)<0?e+360:e}function $4(t,e){return t[0]-e[0]}function Vp(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:e<t[0]||t[1]<e}function z4(t){var e,n,r,i,o,a,s;if(Ie=Lt=-($t=Oe=1/0),fr=[],cn(t,In),n=fr.length){for(fr.sort($4),e=1,r=fr[0],o=[r];e<n;++e)i=fr[e],Vp(r,i[0])||Vp(r,i[1])?(Pe(r[0],i[1])>Pe(r[0],r[1])&&(r[1]=i[1]),Pe(i[0],r[1])>Pe(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(a=-1/0,n=o.length-1,e=0,r=o[n];e<=n;r=i,++e)i=o[e],(s=Pe(r[1],i[0]))>a&&(a=s,$t=i[0],Lt=r[1])}return fr=qn=null,$t===1/0||Oe===1/0?[[NaN,NaN],[NaN,NaN]]:[[$t,Oe],[Lt,Ie]]}var $o,il,ol,al,sl,ll,cl,ul,nf,rf,of,Mg,Cg,xe,_e,Se,un={sphere:zt,point:_f,lineStart:Zp,lineEnd:Kp,polygonStart:function(){un.lineStart=P4,un.lineEnd=I4},polygonEnd:function(){un.lineStart=Zp,un.lineEnd=Kp}};function _f(t,e){t*=ct,e*=ct;var n=it(e);Zo(n*it(t),n*et(t),et(e))}function Zo(t,e,n){++$o,ol+=(t-ol)/$o,al+=(e-al)/$o,sl+=(n-sl)/$o}function Zp(){un.point=N4}function N4(t,e){t*=ct,e*=ct;var n=it(e);xe=n*it(t),_e=n*et(t),Se=et(e),un.point=R4,Zo(xe,_e,Se)}function R4(t,e){t*=ct,e*=ct;var n=it(e),r=n*it(t),i=n*et(t),o=et(e),a=Ae(Jt((a=_e*o-Se*i)*a+(a=Se*r-xe*o)*a+(a=xe*i-_e*r)*a),xe*r+_e*i+Se*o);il+=a,ll+=a*(xe+(xe=r)),cl+=a*(_e+(_e=i)),ul+=a*(Se+(Se=o)),Zo(xe,_e,Se)}function Kp(){un.point=_f}function P4(){un.point=L4}function I4(){Fg(Mg,Cg),un.point=_f}function L4(t,e){Mg=t,Cg=e,t*=ct,e*=ct,un.point=Fg;var n=it(e);xe=n*it(t),_e=n*et(t),Se=et(e),Zo(xe,_e,Se)}function Fg(t,e){t*=ct,e*=ct;var n=it(e),r=n*it(t),i=n*et(t),o=et(e),a=_e*o-Se*i,s=Se*r-xe*o,c=xe*i-_e*r,l=Zu(a,s,c),u=Ee(l),h=l&&-u/l;nf.add(h*a),rf.add(h*s),of.add(h*c),il+=u,ll+=u*(xe+(xe=r)),cl+=u*(_e+(_e=i)),ul+=u*(Se+(Se=o)),Zo(xe,_e,Se)}function q4(t){$o=il=ol=al=sl=ll=cl=ul=0,nf=new It,rf=new It,of=new It,cn(t,un);var e=+nf,n=+rf,r=+of,i=Zu(e,n,r);return i<Wo&&(e=ll,n=cl,r=ul,il<lt&&(e=ol,n=al,r=sl),i=Zu(e,n,r),i<Wo)?[NaN,NaN]:[Ae(n,e)*At,Ee(r/i)*At]}function Fi(t){return function(){return t}}function af(t,e){function n(r,i){return r=t(r,i),e(r[0],r[1])}return t.invert&&e.invert&&(n.invert=function(r,i){return r=e.invert(r,i),r&&t.invert(r[0],r[1])}),n}function sf(t,e){return bt(t)>mt&&(t-=Math.round(t/ke)*ke),[t,e]}sf.invert=sf;function Sf(t,e,n){return(t%=ke)?e||n?af(Jp(t),tg(e,n)):Jp(t):e||n?tg(e,n):sf}function Qp(t){return function(e,n){return e+=t,bt(e)>mt&&(e-=Math.round(e/ke)*ke),[e,n]}}function Jp(t){var e=Qp(t);return e.invert=Qp(-t),e}function tg(t,e){var n=it(t),r=et(t),i=it(e),o=et(e);function a(s,c){var l=it(c),u=it(s)*l,h=et(s)*l,f=et(c),d=f*n+u*r;return[Ae(h*i-d*o,u*n-f*r),Ee(d*i+h*o)]}return a.invert=function(s,c){var l=it(c),u=it(s)*l,h=et(s)*l,f=et(c),d=f*i-h*o;return[Ae(h*i+f*o,u*n+d*r),Ee(d*n-u*r)]},a}function Tg(t){t=Sf(t[0]*ct,t[1]*ct,t.length>2?t[2]*ct:0);function e(n){return n=t(n[0]*ct,n[1]*ct),n[0]*=At,n[1]*=At,n}return e.invert=function(n){return n=t.invert(n[0]*ct,n[1]*ct),n[0]*=At,n[1]*=At,n},e}function Og(t,e,n,r,i,o){if(n){var a=it(e),s=et(e),c=r*n;i==null?(i=e+r*ke,o=e-c/2):(i=eg(a,i),o=eg(a,o),(r>0?i<o:i>o)&&(i+=r*ke));for(var l,u=i;r>0?u>o:u<o;u-=c)l=nl([a,-s*it(u),-s*et(u)]),t.point(l[0],l[1])}}function eg(t,e){e=Nr(e),e[0]-=t,rl(e);var n=vg(-e[1]);return((-e[2]<0?-n:n)+ke-lt)%ke}function Y4(){var t=Fi([0,0]),e=Fi(90),n=Fi(2),r,i,o={point:a};function a(c,l){r.push(c=i(c,l)),c[0]*=At,c[1]*=At}function s(){var c=t.apply(this,arguments),l=e.apply(this,arguments)*ct,u=n.apply(this,arguments)*ct;return r=[],i=Sf(-c[0]*ct,-c[1]*ct,0).invert,Og(o,l,u,1),c={type:"Polygon",coordinates:[r]},r=i=null,c}return s.center=function(c){return arguments.length?(t=typeof c=="function"?c:Fi([+c[0],+c[1]]),s):t},s.radius=function(c){return arguments.length?(e=typeof c=="function"?c:Fi(+c),s):e},s.precision=function(c){return arguments.length?(n=typeof c=="function"?c:Fi(+c),s):n},s}function Bg(){var t=[],e;return{point:function(n,r,i){e.push([n,r,i])},lineStart:function(){t.push(e=[])},lineEnd:zt,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function Gs(t,e){return bt(t[0]-e[0])<lt&&bt(t[1]-e[1])<lt}function Ws(t,e,n,r){this.x=t,this.z=e,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function Dg(t,e,n,r,i){var o=[],a=[],s,c;if(t.forEach(function(m){if(!((p=m.length-1)<=0)){var p,g=m[0],y=m[p],w;if(Gs(g,y)){if(!g[2]&&!y[2]){for(i.lineStart(),s=0;s<p;++s)i.point((g=m[s])[0],g[1]);i.lineEnd();return}y[0]+=2*lt}o.push(w=new Ws(g,m,null,!0)),a.push(w.o=new Ws(g,null,w,!1)),o.push(w=new Ws(y,m,null,!1)),a.push(w.o=new Ws(y,null,w,!0))}}),!!o.length){for(a.sort(e),ng(o),ng(a),s=0,c=a.length;s<c;++s)a[s].e=n=!n;for(var l=o[0],u,h;;){for(var f=l,d=!0;f.v;)if((f=f.n)===l)return;u=f.z,i.lineStart();do{if(f.v=f.o.v=!0,f.e){if(d)for(s=0,c=u.length;s<c;++s)i.point((h=u[s])[0],h[1]);else r(f.x,f.n.x,1,i);f=f.n}else{if(d)for(u=f.p.z,s=u.length-1;s>=0;--s)i.point((h=u[s])[0],h[1]);else r(f.x,f.p.x,-1,i);f=f.p}f=f.o,u=f.z,d=!d}while(!f.v);i.lineEnd()}}}function ng(t){if(e=t.length){for(var e,n=0,r=t[0],i;++n<e;)r.n=i=t[n],i.p=r,r=i;r.n=i=t[0],i.p=r}}function Xu(t){return bt(t[0])<=mt?t[0]:He(t[0])*((bt(t[0])+mt)%ke-mt)}function $g(t,e){var n=Xu(e),r=e[1],i=et(r),o=[et(n),-it(n),0],a=0,s=0,c=new It;i===1?r=qt+lt:i===-1&&(r=-qt-lt);for(var l=0,u=t.length;l<u;++l)if(f=(h=t[l]).length)for(var h,f,d=h[f-1],m=Xu(d),p=d[1]/2+Ks,g=et(p),y=it(p),w=0;w<f;++w,m=v,g=S,y=k,d=b){var b=h[w],v=Xu(b),_=b[1]/2+Ks,S=et(_),k=it(_),C=v-m,F=C>=0?1:-1,A=F*C,E=A>mt,D=g*S;if(c.add(Ae(D*F*et(A),y*k+D*it(A))),a+=E?C+F*ke:C,E^m>=n^v>=n){var $=Bi(Nr(d),Nr(b));rl($);var M=Bi(o,$);rl(M);var T=(E^C>=0?-1:1)*Ee(M[2]);(r>T||r===T&&($[0]||$[1]))&&(s+=E^C>=0?1:-1)}}return(a<-lt||a<lt&&c<-Wo)^s&1}function zg(t,e,n,r){return function(i){var o=e(i),a=Bg(),s=e(a),c=!1,l,u,h,f={point:d,lineStart:p,lineEnd:g,polygonStart:function(){f.point=y,f.lineStart=w,f.lineEnd=b,u=[],l=[]},polygonEnd:function(){f.point=d,f.lineStart=p,f.lineEnd=g,u=ts(u);var v=$g(l,r);u.length?(c||(i.polygonStart(),c=!0),Dg(u,H4,v,n,i)):v&&(c||(i.polygonStart(),c=!0),i.lineStart(),n(null,null,1,i),i.lineEnd()),c&&(i.polygonEnd(),c=!1),u=l=null},sphere:function(){i.polygonStart(),i.lineStart(),n(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function d(v,_){t(v,_)&&i.point(v,_)}function m(v,_){o.point(v,_)}function p(){f.point=m,o.lineStart()}function g(){f.point=d,o.lineEnd()}function y(v,_){h.push([v,_]),s.point(v,_)}function w(){s.lineStart(),h=[]}function b(){y(h[0][0],h[0][1]),s.lineEnd();var v=s.clean(),_=a.result(),S,k=_.length,C,F,A;if(h.pop(),l.push(h),h=null,!!k){if(v&1){if(F=_[0],(C=F.length-1)>0){for(c||(i.polygonStart(),c=!0),i.lineStart(),S=0;S<C;++S)i.point((A=F[S])[0],A[1]);i.lineEnd()}return}k>1&&v&2&&_.push(_.pop().concat(_.shift())),u.push(_.filter(U4))}}return f}}function U4(t){return t.length>1}function H4(t,e){return((t=t.x)[0]<0?t[1]-qt-lt:qt-t[1])-((e=e.x)[0]<0?e[1]-qt-lt:qt-e[1])}var lf=zg(function(){return!0},W4,X4,[-mt,-qt]);function W4(t){var e=NaN,n=NaN,r=NaN,i;return{lineStart:function(){t.lineStart(),i=1},point:function(o,a){var s=o>0?mt:-mt,c=bt(o-e);bt(c-mt)<lt?(t.point(e,n=(n+a)/2>0?qt:-qt),t.point(r,n),t.lineEnd(),t.lineStart(),t.point(s,n),t.point(o,n),i=0):r!==s&&c>=mt&&(bt(e-r)<lt&&(e-=r*lt),bt(o-s)<lt&&(o-=s*lt),n=j4(e,n,o,a),t.point(r,n),t.lineEnd(),t.lineStart(),t.point(s,n),i=0),t.point(e=o,n=a),r=s},lineEnd:function(){t.lineEnd(),e=n=NaN},clean:function(){return 2-i}}}function j4(t,e,n,r){var i,o,a=et(t-n);return bt(a)>lt?zi((et(e)*(o=it(r))*et(n)-et(r)*(i=it(e))*et(t))/(i*o*a)):(e+r)/2}function X4(t,e,n,r){var i;if(t==null)i=n*qt,r.point(-mt,i),r.point(0,i),r.point(mt,i),r.point(mt,0),r.point(mt,-i),r.point(0,-i),r.point(-mt,-i),r.point(-mt,0),r.point(-mt,i);else if(bt(t[0]-e[0])>lt){var o=t[0]<e[0]?mt:-mt;i=n*o/2,r.point(-o,i),r.point(0,i),r.point(o,i)}else r.point(e[0],e[1])}function Ng(t){var e=it(t),n=2*ct,r=e>0,i=bt(e)>lt;function o(u,h,f,d){Og(d,t,n,f,u,h)}function a(u,h){return it(u)*it(h)>e}function s(u){var h,f,d,m,p;return{lineStart:function(){m=d=!1,p=1},point:function(g,y){var w=[g,y],b,v=a(g,y),_=r?v?0:l(g,y):v?l(g+(g<0?mt:-mt),y):0;if(!h&&(m=d=v)&&u.lineStart(),v!==d&&(b=c(h,w),(!b||Gs(h,b)||Gs(w,b))&&(w[2]=1)),v!==d)p=0,v?(u.lineStart(),b=c(w,h),u.point(b[0],b[1])):(b=c(h,w),u.point(b[0],b[1],2),u.lineEnd()),h=b;else if(i&&h&&r^v){var S;!(_&f)&&(S=c(w,h,!0))&&(p=0,r?(u.lineStart(),u.point(S[0][0],S[0][1]),u.point(S[1][0],S[1][1]),u.lineEnd()):(u.point(S[1][0],S[1][1]),u.lineEnd(),u.lineStart(),u.point(S[0][0],S[0][1],3)))}v&&(!h||!Gs(h,w))&&u.point(w[0],w[1]),h=w,d=v,f=_},lineEnd:function(){d&&u.lineEnd(),h=null},clean:function(){return p|(m&&d)<<1}}}function c(u,h,f){var d=Nr(u),m=Nr(h),p=[1,0,0],g=Bi(d,m),y=Us(g,g),w=g[0],b=y-w*w;if(!b)return!f&&u;var v=e*y/b,_=-e*w/b,S=Bi(p,g),k=Hs(p,v),C=Hs(g,_);ju(k,C);var F=S,A=Us(k,F),E=Us(F,F),D=A*A-E*(Us(k,k)-1);if(!(D<0)){var $=Jt(D),M=Hs(F,(-A-$)/E);if(ju(M,k),M=nl(M),!f)return M;var T=u[0],B=h[0],N=u[1],L=h[1],q;B<T&&(q=T,T=B,B=q);var U=B-T,Z=bt(U-mt)<lt,Q=Z||U<lt;if(!Z&&L<N&&(q=N,N=L,L=q),Q?Z?N+L>0^M[1]<(bt(M[0]-T)<lt?N:L):N<=M[1]&&M[1]<=L:U>mt^(T<=M[0]&&M[0]<=B)){var j=Hs(F,(-A+$)/E);return ju(j,k),[M,nl(j)]}}}function l(u,h){var f=r?t:mt-t,d=0;return u<-f?d|=1:u>f&&(d|=2),h<-f?d|=4:h>f&&(d|=8),d}return zg(a,s,o,r?[0,-t]:[-mt,t-mt])}function G4(t,e,n,r,i,o){var a=t[0],s=t[1],c=e[0],l=e[1],u=0,h=1,f=c-a,d=l-s,m;if(m=n-a,!(!f&&m>0)){if(m/=f,f<0){if(m<u)return;m<h&&(h=m)}else if(f>0){if(m>h)return;m>u&&(u=m)}if(m=i-a,!(!f&&m<0)){if(m/=f,f<0){if(m>h)return;m>u&&(u=m)}else if(f>0){if(m<u)return;m<h&&(h=m)}if(m=r-s,!(!d&&m>0)){if(m/=d,d<0){if(m<u)return;m<h&&(h=m)}else if(d>0){if(m>h)return;m>u&&(u=m)}if(m=o-s,!(!d&&m<0)){if(m/=d,d<0){if(m>h)return;m>u&&(u=m)}else if(d>0){if(m<u)return;m<h&&(h=m)}return u>0&&(t[0]=a+u*f,t[1]=s+u*d),h<1&&(e[0]=a+h*f,e[1]=s+h*d),!0}}}}}var zo=1e9,js=-zo;function _l(t,e,n,r){function i(l,u){return t<=l&&l<=n&&e<=u&&u<=r}function o(l,u,h,f){var d=0,m=0;if(l==null||(d=a(l,h))!==(m=a(u,h))||c(l,u)<0^h>0)do f.point(d===0||d===3?t:n,d>1?r:e);while((d=(d+h+4)%4)!==m);else f.point(u[0],u[1])}function a(l,u){return bt(l[0]-t)<lt?u>0?0:3:bt(l[0]-n)<lt?u>0?2:1:bt(l[1]-e)<lt?u>0?1:0:u>0?3:2}function s(l,u){return c(l.x,u.x)}function c(l,u){var h=a(l,1),f=a(u,1);return h!==f?h-f:h===0?u[1]-l[1]:h===1?l[0]-u[0]:h===2?l[1]-u[1]:u[0]-l[0]}return function(l){var u=l,h=Bg(),f,d,m,p,g,y,w,b,v,_,S,k={point:C,lineStart:D,lineEnd:$,polygonStart:A,polygonEnd:E};function C(T,B){i(T,B)&&u.point(T,B)}function F(){for(var T=0,B=0,N=d.length;B<N;++B)for(var L=d[B],q=1,U=L.length,Z=L[0],Q,j,H=Z[0],W=Z[1];q<U;++q)Q=H,j=W,Z=L[q],H=Z[0],W=Z[1],j<=r?W>r&&(H-Q)*(r-j)>(W-j)*(t-Q)&&++T:W<=r&&(H-Q)*(r-j)<(W-j)*(t-Q)&&--T;return T}function A(){u=h,f=[],d=[],S=!0}function E(){var T=F(),B=S&&T,N=(f=ts(f)).length;(B||N)&&(l.polygonStart(),B&&(l.lineStart(),o(null,null,1,l),l.lineEnd()),N&&Dg(f,s,T,o,l),l.polygonEnd()),u=l,f=d=m=null}function D(){k.point=M,d&&d.push(m=[]),_=!0,v=!1,w=b=NaN}function $(){f&&(M(p,g),y&&v&&h.rejoin(),f.push(h.result())),k.point=C,v&&u.lineEnd()}function M(T,B){var N=i(T,B);if(d&&m.push([T,B]),_)p=T,g=B,y=N,_=!1,N&&(u.lineStart(),u.point(T,B));else if(N&&v)u.point(T,B);else{var L=[w=Math.max(js,Math.min(zo,w)),b=Math.max(js,Math.min(zo,b))],q=[T=Math.max(js,Math.min(zo,T)),B=Math.max(js,Math.min(zo,B))];G4(L,q,t,e,n,r)?(v||(u.lineStart(),u.point(L[0],L[1])),u.point(q[0],q[1]),N||u.lineEnd(),S=!1):N&&(u.lineStart(),u.point(T,B),S=!1)}w=T,b=B,v=N}return k}}function V4(){var t=0,e=0,n=960,r=500,i,o,a;return a={stream:function(s){return i&&o===s?i:i=_l(t,e,n,r)(o=s)},extent:function(s){return arguments.length?(t=+s[0][0],e=+s[0][1],n=+s[1][0],r=+s[1][1],i=o=null,a):[[t,e],[n,r]]}}}var cf,uf,Vs,Zs,Di={sphere:zt,point:zt,lineStart:Z4,lineEnd:zt,polygonStart:zt,polygonEnd:zt};function Z4(){Di.point=Q4,Di.lineEnd=K4}function K4(){Di.point=Di.lineEnd=zt}function Q4(t,e){t*=ct,e*=ct,uf=t,Vs=et(e),Zs=it(e),Di.point=J4}function J4(t,e){t*=ct,e*=ct;var n=et(e),r=it(e),i=bt(t-uf),o=it(i),a=et(i),s=r*a,c=Zs*n-Vs*r*o,l=Vs*n+Zs*r*o;cf.add(Ae(Jt(s*s+c*c),l)),uf=t,Vs=n,Zs=r}function Rg(t){return cf=new It,cn(t,Di),+cf}var ff=[null,null],t6={type:"LineString",coordinates:ff};function fl(t,e){return ff[0]=t,ff[1]=e,Rg(t6)}var rg={Feature:function(t,e){return hl(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r<i;)if(hl(n[r].geometry,e))return!0;return!1}},ig={Sphere:function(){return!0},Point:function(t,e){return og(t.coordinates,e)},MultiPoint:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)if(og(n[r],e))return!0;return!1},LineString:function(t,e){return ag(t.coordinates,e)},MultiLineString:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)if(ag(n[r],e))return!0;return!1},Polygon:function(t,e){return sg(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)if(sg(n[r],e))return!0;return!1},GeometryCollection:function(t,e){for(var n=t.geometries,r=-1,i=n.length;++r<i;)if(hl(n[r],e))return!0;return!1}};function hl(t,e){return t&&ig.hasOwnProperty(t.type)?ig[t.type](t,e):!1}function og(t,e){return fl(t,e)===0}function ag(t,e){for(var n,r,i,o=0,a=t.length;o<a;o++){if(r=fl(t[o],e),r===0||o>0&&(i=fl(t[o],t[o-1]),i>0&&n<=i&&r<=i&&(n+r-i)*(1-Math.pow((n-r)/i,2))<Wo*i))return!0;n=r}return!1}function sg(t,e){return!!$g(t.map(e6),Pg(e))}function e6(t){return t=t.map(Pg),t.pop(),t}function Pg(t){return[t[0]*ct,t[1]*ct]}function n6(t,e){return(t&&rg.hasOwnProperty(t.type)?rg[t.type]:hl)(t,e)}function lg(t,e,n){var r=dn(t,e-lt,n).concat(e);return function(i){return r.map(function(o){return[i,o]})}}function cg(t,e,n){var r=dn(t,e-lt,n).concat(e);return function(i){return r.map(function(o){return[o,i]})}}function Ig(){var t,e,n,r,i,o,a,s,c=10,l=c,u=90,h=360,f,d,m,p,g=2.5;function y(){return{type:"MultiLineString",coordinates:w()}}function w(){return dn(Ys(r/u)*u,n,u).map(m).concat(dn(Ys(s/h)*h,a,h).map(p)).concat(dn(Ys(e/c)*c,t,c).filter(function(b){return bt(b%u)>lt}).map(f)).concat(dn(Ys(o/l)*l,i,l).filter(function(b){return bt(b%h)>lt}).map(d))}return y.lines=function(){return w().map(function(b){return{type:"LineString",coordinates:b}})},y.outline=function(){return{type:"Polygon",coordinates:[m(r).concat(p(a).slice(1),m(n).reverse().slice(1),p(s).reverse().slice(1))]}},y.extent=function(b){return arguments.length?y.extentMajor(b).extentMinor(b):y.extentMinor()},y.extentMajor=function(b){return arguments.length?(r=+b[0][0],n=+b[1][0],s=+b[0][1],a=+b[1][1],r>n&&(b=r,r=n,n=b),s>a&&(b=s,s=a,a=b),y.precision(g)):[[r,s],[n,a]]},y.extentMinor=function(b){return arguments.length?(e=+b[0][0],t=+b[1][0],o=+b[0][1],i=+b[1][1],e>t&&(b=e,e=t,t=b),o>i&&(b=o,o=i,i=b),y.precision(g)):[[e,o],[t,i]]},y.step=function(b){return arguments.length?y.stepMajor(b).stepMinor(b):y.stepMinor()},y.stepMajor=function(b){return arguments.length?(u=+b[0],h=+b[1],y):[u,h]},y.stepMinor=function(b){return arguments.length?(c=+b[0],l=+b[1],y):[c,l]},y.precision=function(b){return arguments.length?(g=+b,f=lg(o,i,90),d=cg(e,t,g),m=lg(s,a,90),p=cg(r,n,g),y):g},y.extentMajor([[-180,-90+lt],[180,90-lt]]).extentMinor([[-180,-80-lt],[180,80+lt]])}function r6(){return Ig()()}function i6(t,e){var n=t[0]*ct,r=t[1]*ct,i=e[0]*ct,o=e[1]*ct,a=it(r),s=et(r),c=it(o),l=et(o),u=a*it(n),h=a*et(n),f=c*it(i),d=c*et(i),m=2*Ee(Jt(Up(o-r)+a*c*Up(i-n))),p=et(m),g=m?function(y){var w=et(y*=m)/p,b=et(m-y)/p,v=b*u+w*f,_=b*h+w*d,S=b*s+w*l;return[Ae(_,v)*At,Ae(S,Jt(v*v+_*_))*At]}:function(){return[n*At,r*At]};return g.distance=m,g}var jo=t=>t,Gu=new It,hf=new It,Lg,qg,df,pf,Ln={point:zt,lineStart:zt,lineEnd:zt,polygonStart:function(){Ln.lineStart=o6,Ln.lineEnd=s6},polygonEnd:function(){Ln.lineStart=Ln.lineEnd=Ln.point=zt,Gu.add(bt(hf)),hf=new It},result:function(){var t=Gu/2;return Gu=new It,t}};function o6(){Ln.point=a6}function a6(t,e){Ln.point=Yg,Lg=df=t,qg=pf=e}function Yg(t,e){hf.add(pf*t-df*e),df=t,pf=e}function s6(){Yg(Lg,qg)}var $i=1/0,dl=$i,Xo=-$i,pl=Xo,gl={point:l6,lineStart:zt,lineEnd:zt,polygonStart:zt,polygonEnd:zt,result:function(){var t=[[$i,dl],[Xo,pl]];return Xo=pl=-(dl=$i=1/0),t}};function l6(t,e){t<$i&&($i=t),t>Xo&&(Xo=t),e<dl&&(dl=e),e>pl&&(pl=e)}var gf=0,mf=0,No=0,ml=0,yl=0,Ti=0,yf=0,bf=0,Ro=0,Ug,Hg,wn,xn,Ue={point:Rr,lineStart:ug,lineEnd:fg,polygonStart:function(){Ue.lineStart=f6,Ue.lineEnd=h6},polygonEnd:function(){Ue.point=Rr,Ue.lineStart=ug,Ue.lineEnd=fg},result:function(){var t=Ro?[yf/Ro,bf/Ro]:Ti?[ml/Ti,yl/Ti]:No?[gf/No,mf/No]:[NaN,NaN];return gf=mf=No=ml=yl=Ti=yf=bf=Ro=0,t}};function Rr(t,e){gf+=t,mf+=e,++No}function ug(){Ue.point=c6}function c6(t,e){Ue.point=u6,Rr(wn=t,xn=e)}function u6(t,e){var n=t-wn,r=e-xn,i=Jt(n*n+r*r);ml+=i*(wn+t)/2,yl+=i*(xn+e)/2,Ti+=i,Rr(wn=t,xn=e)}function fg(){Ue.point=Rr}function f6(){Ue.point=d6}function h6(){Wg(Ug,Hg)}function d6(t,e){Ue.point=Wg,Rr(Ug=wn=t,Hg=xn=e)}function Wg(t,e){var n=t-wn,r=e-xn,i=Jt(n*n+r*r);ml+=i*(wn+t)/2,yl+=i*(xn+e)/2,Ti+=i,i=xn*t-wn*e,yf+=i*(wn+t),bf+=i*(xn+e),Ro+=i*3,Rr(wn=t,xn=e)}function jg(t){this._context=t}jg.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,e){switch(this._point){case 0:{this._context.moveTo(t,e),this._point=1;break}case 1:{this._context.lineTo(t,e);break}default:{this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,ke);break}}},result:zt};var vf=new It,Vu,Xg,Gg,Po,Io,Go={point:zt,lineStart:function(){Go.point=p6},lineEnd:function(){Vu&&Vg(Xg,Gg),Go.point=zt},polygonStart:function(){Vu=!0},polygonEnd:function(){Vu=null},result:function(){var t=+vf;return vf=new It,t}};function p6(t,e){Go.point=Vg,Xg=Po=t,Gg=Io=e}function Vg(t,e){Po-=t,Io-=e,vf.add(Jt(Po*Po+Io*Io)),Po=t,Io=e}var hg,bl,dg,pg,vl=class{constructor(e){this._append=e==null?Zg:g6(e),this._radius=4.5,this._=""}pointRadius(e){return this._radius=+e,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){this._line===0&&(this._+="Z"),this._point=NaN}point(e,n){switch(this._point){case 0:{this._append`M${e},${n}`,this._point=1;break}case 1:{this._append`L${e},${n}`;break}default:{if(this._append`M${e},${n}`,this._radius!==dg||this._append!==bl){let 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`,dg=r,bl=this._append,pg=this._,this._=i}this._+=pg;break}}}result(){let e=this._;return this._="",e.length?e:null}};function Zg(t){let e=1;this._+=t[0];for(let n=t.length;e<n;++e)this._+=arguments[e]+t[e]}function g6(t){let e=Math.floor(t);if(!(e>=0))throw new RangeError(`invalid digits: ${t}`);if(e>15)return Zg;if(e!==hg){let n=10**e;hg=e,bl=function(i){let o=1;this._+=i[0];for(let a=i.length;o<a;++o)this._+=Math.round(arguments[o]*n)/n+i[o]}}return bl}function m6(t,e){let n=3,r=4.5,i,o;function a(s){return s&&(typeof r=="function"&&o.pointRadius(+r.apply(this,arguments)),cn(s,i(o))),o.result()}return a.area=function(s){return cn(s,i(Ln)),Ln.result()},a.measure=function(s){return cn(s,i(Go)),Go.result()},a.bounds=function(s){return cn(s,i(gl)),gl.result()},a.centroid=function(s){return cn(s,i(Ue)),Ue.result()},a.projection=function(s){return arguments.length?(i=s==null?(t=null,jo):(t=s).stream,a):t},a.context=function(s){return arguments.length?(o=s==null?(e=null,new vl(n)):new jg(e=s),typeof r!="function"&&o.pointRadius(r),a):e},a.pointRadius=function(s){return arguments.length?(r=typeof s=="function"?s:(o.pointRadius(+s),+s),a):r},a.digits=function(s){if(!arguments.length)return n;if(s==null)n=null;else{let c=Math.floor(s);if(!(c>=0))throw new RangeError(`invalid digits: ${s}`);n=c}return e===null&&(o=new vl(n)),a},a.projection(t).digits(n).context(e)}function y6(t){return{stream:Ko(t)}}function Ko(t){return function(e){var n=new wf;for(var r in t)n[r]=t[r];return n.stream=e,n}}function wf(){}wf.prototype={constructor:wf,point:function(t,e){this.stream.point(t,e)},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()}};function kf(t,e,n){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),r!=null&&t.clipExtent(null),cn(n,t.stream(gl)),e(gl.result()),r!=null&&t.clipExtent(r),t}function Sl(t,e,n){return kf(t,function(r){var i=e[1][0]-e[0][0],o=e[1][1]-e[0][1],a=Math.min(i/(r[1][0]-r[0][0]),o/(r[1][1]-r[0][1])),s=+e[0][0]+(i-a*(r[1][0]+r[0][0]))/2,c=+e[0][1]+(o-a*(r[1][1]+r[0][1]))/2;t.scale(150*a).translate([s,c])},n)}function Af(t,e,n){return Sl(t,[[0,0],e],n)}function Ef(t,e,n){return kf(t,function(r){var i=+e,o=i/(r[1][0]-r[0][0]),a=(i-o*(r[1][0]+r[0][0]))/2,s=-o*r[0][1];t.scale(150*o).translate([a,s])},n)}function Mf(t,e,n){return kf(t,function(r){var i=+e,o=i/(r[1][1]-r[0][1]),a=-o*r[0][0],s=(i-o*(r[1][1]+r[0][1]))/2;t.scale(150*o).translate([a,s])},n)}var gg=16,b6=it(30*ct);function mg(t,e){return+e?w6(t,e):v6(t)}function v6(t){return Ko({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})}function w6(t,e){function n(r,i,o,a,s,c,l,u,h,f,d,m,p,g){var y=l-r,w=u-i,b=y*y+w*w;if(b>4*e&&p--){var v=a+f,_=s+d,S=c+m,k=Jt(v*v+_*_+S*S),C=Ee(S/=k),F=bt(bt(S)-1)<lt||bt(o-h)<lt?(o+h)/2:Ae(_,v),A=t(F,C),E=A[0],D=A[1],$=E-r,M=D-i,T=w*$-y*M;(T*T/b>e||bt((y*$+w*M)/b-.5)>.3||a*f+s*d+c*m<b6)&&(n(r,i,o,a,s,c,E,D,F,v/=k,_/=k,S,p,g),g.point(E,D),n(E,D,F,v,_,S,l,u,h,f,d,m,p,g))}}return function(r){var i,o,a,s,c,l,u,h,f,d,m,p,g={point:y,lineStart:w,lineEnd:v,polygonStart:function(){r.polygonStart(),g.lineStart=_},polygonEnd:function(){r.polygonEnd(),g.lineStart=w}};function y(C,F){C=t(C,F),r.point(C[0],C[1])}function w(){h=NaN,g.point=b,r.lineStart()}function b(C,F){var A=Nr([C,F]),E=t(C,F);n(h,f,u,d,m,p,h=E[0],f=E[1],u=C,d=A[0],m=A[1],p=A[2],gg,r),r.point(h,f)}function v(){g.point=y,r.lineEnd()}function _(){w(),g.point=S,g.lineEnd=k}function S(C,F){b(i=C,F),o=h,a=f,s=d,c=m,l=p,g.point=b}function k(){n(h,f,u,d,m,p,o,a,i,s,c,l,gg,r),g.lineEnd=v,v()}return g}}var x6=Ko({point:function(t,e){this.stream.point(t*ct,e*ct)}});function _6(t){return Ko({point:function(e,n){var r=t(e,n);return this.stream.point(r[0],r[1])}})}function S6(t,e,n,r,i){function o(a,s){return a*=r,s*=i,[e+t*a,n-t*s]}return o.invert=function(a,s){return[(a-e)/t*r,(n-s)/t*i]},o}function yg(t,e,n,r,i,o){if(!o)return S6(t,e,n,r,i);var a=it(o),s=et(o),c=a*t,l=s*t,u=a/t,h=s/t,f=(s*n-a*e)/t,d=(s*e+a*n)/t;function m(p,g){return p*=r,g*=i,[c*p-l*g+e,n-l*p-c*g]}return m.invert=function(p,g){return[r*(u*p-h*g+f),i*(d-h*p-u*g)]},m}function Sn(t){return Cf(function(){return t})()}function Cf(t){var e,n=150,r=480,i=250,o=0,a=0,s=0,c=0,l=0,u,h=0,f=1,d=1,m=null,p=lf,g=null,y,w,b,v=jo,_=.5,S,k,C,F,A;function E(T){return C(T[0]*ct,T[1]*ct)}function D(T){return T=C.invert(T[0],T[1]),T&&[T[0]*At,T[1]*At]}E.stream=function(T){return F&&A===T?F:F=x6(_6(u)(p(S(v(A=T)))))},E.preclip=function(T){return arguments.length?(p=T,m=void 0,M()):p},E.postclip=function(T){return arguments.length?(v=T,g=y=w=b=null,M()):v},E.clipAngle=function(T){return arguments.length?(p=+T?Ng(m=T*ct):(m=null,lf),M()):m*At},E.clipExtent=function(T){return arguments.length?(v=T==null?(g=y=w=b=null,jo):_l(g=+T[0][0],y=+T[0][1],w=+T[1][0],b=+T[1][1]),M()):g==null?null:[[g,y],[w,b]]},E.scale=function(T){return arguments.length?(n=+T,$()):n},E.translate=function(T){return arguments.length?(r=+T[0],i=+T[1],$()):[r,i]},E.center=function(T){return arguments.length?(o=T[0]%360*ct,a=T[1]%360*ct,$()):[o*At,a*At]},E.rotate=function(T){return arguments.length?(s=T[0]%360*ct,c=T[1]%360*ct,l=T.length>2?T[2]%360*ct:0,$()):[s*At,c*At,l*At]},E.angle=function(T){return arguments.length?(h=T%360*ct,$()):h*At},E.reflectX=function(T){return arguments.length?(f=T?-1:1,$()):f<0},E.reflectY=function(T){return arguments.length?(d=T?-1:1,$()):d<0},E.precision=function(T){return arguments.length?(S=mg(k,_=T*T),M()):Jt(_)},E.fitExtent=function(T,B){return Sl(E,T,B)},E.fitSize=function(T,B){return Af(E,T,B)},E.fitWidth=function(T,B){return Ef(E,T,B)},E.fitHeight=function(T,B){return Mf(E,T,B)};function $(){var T=yg(n,0,0,f,d,h).apply(null,e(o,a)),B=yg(n,r-T[0],i-T[1],f,d,h);return u=Sf(s,c,l),k=af(e,B),C=af(u,k),S=mg(k,_),M()}function M(){return F=A=null,E}return function(){return e=t.apply(this,arguments),E.invert=e.invert&&D,$()}}function Ff(t){var e=0,n=mt/3,r=Cf(t),i=r(e,n);return i.parallels=function(o){return arguments.length?r(e=o[0]*ct,n=o[1]*ct):[e*At,n*At]},i}function k6(t){var e=it(t);function n(r,i){return[r*e,et(i)/e]}return n.invert=function(r,i){return[r/e,Ee(i*e)]},n}function Kg(t,e){var n=et(t),r=(n+et(e))/2;if(bt(r)<lt)return k6(t);var i=1+n*(2*r-n),o=Jt(i)/r;function a(s,c){var l=Jt(i-2*r*et(c))/r;return[l*et(s*=r),o-l*it(s)]}return a.invert=function(s,c){var l=o-c,u=Ae(s,bt(l))*He(l);return l*r<0&&(u-=mt*He(s)*He(l)),[u/r,Ee((i-(s*s+l*l)*r*r)/(2*r))]},a}function wl(){return Ff(Kg).scale(155.424).center([0,33.6442])}function Qg(){return wl().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function A6(t){var e=t.length;return{point:function(n,r){for(var i=-1;++i<e;)t[i].point(n,r)},sphere:function(){for(var n=-1;++n<e;)t[n].sphere()},lineStart:function(){for(var n=-1;++n<e;)t[n].lineStart()},lineEnd:function(){for(var n=-1;++n<e;)t[n].lineEnd()},polygonStart:function(){for(var n=-1;++n<e;)t[n].polygonStart()},polygonEnd:function(){for(var n=-1;++n<e;)t[n].polygonEnd()}}}function E6(){var t,e,n=Qg(),r,i=wl().rotate([154,0]).center([-2,58.5]).parallels([55,65]),o,a=wl().rotate([157,0]).center([-3,19.9]).parallels([8,18]),s,c,l={point:function(f,d){c=[f,d]}};function u(f){var d=f[0],m=f[1];return c=null,r.point(d,m),c||(o.point(d,m),c)||(s.point(d,m),c)}u.invert=function(f){var d=n.scale(),m=n.translate(),p=(f[0]-m[0])/d,g=(f[1]-m[1])/d;return(g>=.12&&g<.234&&p>=-.425&&p<-.214?i:g>=.166&&g<.234&&p>=-.214&&p<-.115?a:n).invert(f)},u.stream=function(f){return t&&e===f?t:t=A6([n.stream(e=f),i.stream(f),a.stream(f)])},u.precision=function(f){return arguments.length?(n.precision(f),i.precision(f),a.precision(f),h()):n.precision()},u.scale=function(f){return arguments.length?(n.scale(f),i.scale(f*.35),a.scale(f),u.translate(n.translate())):n.scale()},u.translate=function(f){if(!arguments.length)return n.translate();var d=n.scale(),m=+f[0],p=+f[1];return r=n.translate(f).clipExtent([[m-.455*d,p-.238*d],[m+.455*d,p+.238*d]]).stream(l),o=i.translate([m-.307*d,p+.201*d]).clipExtent([[m-.425*d+lt,p+.12*d+lt],[m-.214*d-lt,p+.234*d-lt]]).stream(l),s=a.translate([m-.205*d,p+.212*d]).clipExtent([[m-.214*d+lt,p+.166*d+lt],[m-.115*d-lt,p+.234*d-lt]]).stream(l),h()},u.fitExtent=function(f,d){return Sl(u,f,d)},u.fitSize=function(f,d){return Af(u,f,d)},u.fitWidth=function(f,d){return Ef(u,f,d)},u.fitHeight=function(f,d){return Mf(u,f,d)};function h(){return t=e=null,u}return u.scale(1070)}function Jg(t){return function(e,n){var r=it(e),i=it(n),o=t(r*i);return o===1/0?[2,0]:[o*i*et(e),o*et(n)]}}function Qo(t){return function(e,n){var r=Jt(e*e+n*n),i=t(r),o=et(i),a=it(i);return[Ae(e*o,r*a),Ee(r&&n*o/r)]}}var Tf=Jg(function(t){return Jt(2/(1+t))});Tf.invert=Qo(function(t){return 2*Ee(t/2)});function M6(){return Sn(Tf).scale(124.75).clipAngle(180-.001)}var Of=Jg(function(t){return(t=vg(t))&&t/et(t)});Of.invert=Qo(function(t){return t});function C6(){return Sn(Of).scale(79.4188).clipAngle(180-.001)}function Jo(t,e){return[t,Qs(xf((qt+e)/2))]}Jo.invert=function(t,e){return[t,2*zi(bg(e))-qt]};function F6(){return tm(Jo).scale(961/ke)}function tm(t){var e=Sn(t),n=e.center,r=e.scale,i=e.translate,o=e.clipExtent,a=null,s,c,l;e.scale=function(h){return arguments.length?(r(h),u()):r()},e.translate=function(h){return arguments.length?(i(h),u()):i()},e.center=function(h){return arguments.length?(n(h),u()):n()},e.clipExtent=function(h){return arguments.length?(h==null?a=s=c=l=null:(a=+h[0][0],s=+h[0][1],c=+h[1][0],l=+h[1][1]),u()):a==null?null:[[a,s],[c,l]]};function u(){var h=mt*r(),f=e(Tg(e.rotate()).invert([0,0]));return o(a==null?[[f[0]-h,f[1]-h],[f[0]+h,f[1]+h]]:t===Jo?[[Math.max(f[0]-h,a),s],[Math.min(f[0]+h,c),l]]:[[a,Math.max(f[1]-h,s)],[c,Math.min(f[1]+h,l)]])}return u()}function Xs(t){return xf((qt+t)/2)}function em(t,e){var n=it(t),r=t===e?et(t):Qs(n/it(e))/Qs(Xs(e)/Xs(t)),i=n*Wu(Xs(t),r)/r;if(!r)return Jo;function o(a,s){i>0?s<-qt+lt&&(s=-qt+lt):s>qt-lt&&(s=qt-lt);var c=i/Wu(Xs(s),r);return[c*et(r*a),i-c*it(r*a)]}return o.invert=function(a,s){var c=i-s,l=He(r)*Jt(a*a+c*c),u=Ae(a,bt(c))*He(c);return c*r<0&&(u-=mt*He(a)*He(c)),[u/r,2*zi(Wu(i/l,1/r))-qt]},o}function T6(){return Ff(em).scale(109.5).parallels([30,30])}function Vo(t,e){return[t,e]}Vo.invert=Vo;function O6(){return Sn(Vo).scale(152.63)}function nm(t,e){var n=it(t),r=t===e?et(t):(n-it(e))/(e-t),i=n/r+t;if(bt(r)<lt)return Vo;function o(a,s){var c=i-s,l=r*a;return[c*et(l),i-c*it(l)]}return o.invert=function(a,s){var c=i-s,l=Ae(a,bt(c))*He(c);return c*r<0&&(l-=mt*He(a)*He(c)),[l/r,i-He(r)*Jt(a*a+c*c)]},o}function B6(){return Ff(nm).scale(131.154).center([0,13.9389])}var qo=1.340264,Yo=-.081106,Uo=893e-6,Ho=.003796,xl=Jt(3)/2,D6=12;function Bf(t,e){var n=Ee(xl*et(e)),r=n*n,i=r*r*r;return[t*it(n)/(xl*(qo+3*Yo*r+i*(7*Uo+9*Ho*r))),n*(qo+Yo*r+i*(Uo+Ho*r))]}Bf.invert=function(t,e){for(var n=e,r=n*n,i=r*r*r,o=0,a,s,c;o<D6&&(s=n*(qo+Yo*r+i*(Uo+Ho*r))-e,c=qo+3*Yo*r+i*(7*Uo+9*Ho*r),n-=a=s/c,r=n*n,i=r*r*r,!(bt(a)<Wo));++o);return[xl*t*(qo+3*Yo*r+i*(7*Uo+9*Ho*r))/it(n),Ee(et(n)/xl)]};function $6(){return Sn(Bf).scale(177.158)}function Df(t,e){var n=it(e),r=it(t)*n;return[n*et(t)/r,et(e)/r]}Df.invert=Qo(zi);function z6(){return Sn(Df).scale(144.049).clipAngle(60)}function N6(){var t=1,e=0,n=0,r=1,i=1,o=0,a,s,c=null,l,u,h,f=1,d=1,m=Ko({point:function(v,_){var S=b([v,_]);this.stream.point(S[0],S[1])}}),p=jo,g,y;function w(){return f=t*r,d=t*i,g=y=null,b}function b(v){var _=v[0]*f,S=v[1]*d;if(o){var k=S*a-_*s;_=_*a+S*s,S=k}return[_+e,S+n]}return b.invert=function(v){var _=v[0]-e,S=v[1]-n;if(o){var k=S*a+_*s;_=_*a-S*s,S=k}return[_/f,S/d]},b.stream=function(v){return g&&y===v?g:g=m(p(y=v))},b.postclip=function(v){return arguments.length?(p=v,c=l=u=h=null,w()):p},b.clipExtent=function(v){return arguments.length?(p=v==null?(c=l=u=h=null,jo):_l(c=+v[0][0],l=+v[0][1],u=+v[1][0],h=+v[1][1]),w()):c==null?null:[[c,l],[u,h]]},b.scale=function(v){return arguments.length?(t=+v,w()):t},b.translate=function(v){return arguments.length?(e=+v[0],n=+v[1],w()):[e,n]},b.angle=function(v){return arguments.length?(o=v%360*ct,s=et(o),a=it(o),w()):o*At},b.reflectX=function(v){return arguments.length?(r=v?-1:1,w()):r<0},b.reflectY=function(v){return arguments.length?(i=v?-1:1,w()):i<0},b.fitExtent=function(v,_){return Sl(b,v,_)},b.fitSize=function(v,_){return Af(b,v,_)},b.fitWidth=function(v,_){return Ef(b,v,_)},b.fitHeight=function(v,_){return Mf(b,v,_)},b}function $f(t,e){var n=e*e,r=n*n;return[t*(.8707-.131979*n+r*(-.013791+r*(.003971*n-.001529*r))),e*(1.007226+n*(.015085+r*(-.044475+.028874*n-.005916*r)))]}$f.invert=function(t,e){var n=e,r=25,i;do{var o=n*n,a=o*o;n-=i=(n*(1.007226+o*(.015085+a*(-.044475+.028874*o-.005916*a)))-e)/(1.007226+o*(.015085*3+a*(-.044475*7+.028874*9*o-.005916*11*a)))}while(bt(i)>lt&&--r>0);return[t/(.8707+(o=n*n)*(-.131979+o*(-.013791+o*o*o*(.003971-.001529*o)))),n]};function R6(){return Sn($f).scale(175.295)}function zf(t,e){return[it(e)*et(t),et(e)]}zf.invert=Qo(Ee);function P6(){return Sn(zf).scale(249.5).clipAngle(90+lt)}function Nf(t,e){var n=it(e),r=1+it(t)*n;return[n*et(t)/r,et(e)/r]}Nf.invert=Qo(function(t){return 2*zi(t)});function I6(){return Sn(Nf).scale(250).clipAngle(142)}function Rf(t,e){return[Qs(xf((qt+e)/2)),-t]}Rf.invert=function(t,e){return[-e,2*zi(bg(t))-qt]};function L6(){var t=tm(Rf),e=t.center,n=t.rotate;return t.center=function(r){return arguments.length?e([-r[1],r[0]]):(r=e(),[r[1],-r[0]])},t.rotate=function(r){return arguments.length?n([r[0],r[1],r.length>2?r[2]+90:90]):(r=n(),[r[0],r[1],r[2]-90])},n([0,0,90]).scale(159.155)}function q6(t,e){return t.parent===e.parent?1:2}function Y6(t){return t.reduce(U6,0)/t.length}function U6(t,e){return t+e.x}function H6(t){return 1+t.reduce(W6,0)}function W6(t,e){return Math.max(t,e.y)}function j6(t){for(var e;e=t.children;)t=e[0];return t}function X6(t){for(var e;e=t.children;)t=e[e.length-1];return t}function G6(){var t=q6,e=1,n=1,r=!1;function i(o){var a,s=0;o.eachAfter(function(f){var d=f.children;d?(f.x=Y6(d),f.y=H6(d)):(f.x=a?s+=t(f,a):0,f.y=0,a=f)});var c=j6(o),l=X6(o),u=c.x-t(c,l)/2,h=l.x+t(l,c)/2;return o.eachAfter(r?function(f){f.x=(f.x-o.x)*e,f.y=(o.y-f.y)*n}:function(f){f.x=(f.x-u)/(h-u)*e,f.y=(1-(o.y?f.y/o.y:1))*n})}return i.separation=function(o){return arguments.length?(t=o,i):t},i.size=function(o){return arguments.length?(r=!1,e=+o[0],n=+o[1],i):r?null:[e,n]},i.nodeSize=function(o){return arguments.length?(r=!0,e=+o[0],n=+o[1],i):r?[e,n]:null},i}function V6(t){var e=0,n=t.children,r=n&&n.length;if(!r)e=1;else for(;--r>=0;)e+=n[r].value;t.value=e}function Z6(){return this.eachAfter(V6)}function K6(t,e){let n=-1;for(let r of this)t.call(e,r,++n,this);return this}function Q6(t,e){for(var n=this,r=[n],i,o,a=-1;n=r.pop();)if(t.call(e,n,++a,this),i=n.children)for(o=i.length-1;o>=0;--o)r.push(i[o]);return this}function J6(t,e){for(var n=this,r=[n],i=[],o,a,s,c=-1;n=r.pop();)if(i.push(n),o=n.children)for(a=0,s=o.length;a<s;++a)r.push(o[a]);for(;n=i.pop();)t.call(e,n,++c,this);return this}function t7(t,e){let n=-1;for(let r of this)if(t.call(e,r,++n,this))return r}function e7(t){return this.eachAfter(function(e){for(var n=+t(e.data)||0,r=e.children,i=r&&r.length;--i>=0;)n+=r[i].value;e.value=n})}function n7(t){return this.eachBefore(function(e){e.children&&e.children.sort(t)})}function r7(t){for(var e=this,n=i7(e,t),r=[e];e!==n;)e=e.parent,r.push(e);for(var i=r.length;t!==n;)r.splice(i,0,t),t=t.parent;return r}function i7(t,e){if(t===e)return t;var n=t.ancestors(),r=e.ancestors(),i=null;for(t=n.pop(),e=r.pop();t===e;)i=t,t=n.pop(),e=r.pop();return i}function o7(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e}function a7(){return Array.from(this)}function s7(){var t=[];return this.eachBefore(function(e){e.children||t.push(e)}),t}function l7(){var t=this,e=[];return t.each(function(n){n!==t&&e.push({source:n.parent,target:n})}),e}function*c7(){var t=this,e,n=[t],r,i,o;do for(e=n.reverse(),n=[];t=e.pop();)if(yield t,r=t.children)for(i=0,o=r.length;i<o;++i)n.push(r[i]);while(n.length)}function Hf(t,e){t instanceof Map?(t=[void 0,t],e===void 0&&(e=h7)):e===void 0&&(e=f7);for(var n=new Ir(t),r,i=[n],o,a,s,c;r=i.pop();)if((a=e(r.data))&&(c=(a=Array.from(a)).length))for(r.children=a,s=c-1;s>=0;--s)i.push(o=a[s]=new Ir(a[s])),o.parent=r,o.depth=r.depth+1;return n.eachBefore(fm)}function u7(){return Hf(this).eachBefore(d7)}function f7(t){return t.children}function h7(t){return Array.isArray(t)?t[1]:null}function d7(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function fm(t){var e=0;do t.height=e;while((t=t.parent)&&t.height<++e)}function Ir(t){this.data=t,this.depth=this.height=0,this.parent=null}Ir.prototype=Hf.prototype={constructor:Ir,count:Z6,each:K6,eachAfter:J6,eachBefore:Q6,find:t7,sum:e7,sort:n7,path:r7,ancestors:o7,descendants:a7,leaves:s7,links:l7,copy:u7,[Symbol.iterator]:c7};function El(t){return t==null?null:hm(t)}function hm(t){if(typeof t!="function")throw new Error;return t}function Pr(){return 0}function Ni(t){return function(){return t}}var p7=1664525,g7=1013904223,rm=4294967296;function Wf(){let t=1;return()=>(t=(p7*t+g7)%rm)/rm}function m7(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function y7(t,e){let n=t.length,r,i;for(;n;)i=e()*n--|0,r=t[n],t[n]=t[i],t[i]=r;return t}function b7(t){return dm(t,Wf())}function dm(t,e){for(var n=0,r=(t=y7(Array.from(t),e)).length,i=[],o,a;n<r;)o=t[n],a&&pm(a,o)?++n:(a=w7(i=v7(i,o)),n=0);return a}function v7(t,e){var n,r;if(Pf(e,t))return[e];for(n=0;n<t.length;++n)if(kl(e,t[n])&&Pf(ta(t[n],e),t))return[t[n],e];for(n=0;n<t.length-1;++n)for(r=n+1;r<t.length;++r)if(kl(ta(t[n],t[r]),e)&&kl(ta(t[n],e),t[r])&&kl(ta(t[r],e),t[n])&&Pf(gm(t[n],t[r],e),t))return[t[n],t[r],e];throw new Error}function kl(t,e){var n=t.r-e.r,r=e.x-t.x,i=e.y-t.y;return n<0||n*n<r*r+i*i}function pm(t,e){var n=t.r-e.r+Math.max(t.r,e.r,1)*1e-9,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function Pf(t,e){for(var n=0;n<e.length;++n)if(!pm(t,e[n]))return!1;return!0}function w7(t){switch(t.length){case 1:return x7(t[0]);case 2:return ta(t[0],t[1]);case 3:return gm(t[0],t[1],t[2])}}function x7(t){return{x:t.x,y:t.y,r:t.r}}function ta(t,e){var n=t.x,r=t.y,i=t.r,o=e.x,a=e.y,s=e.r,c=o-n,l=a-r,u=s-i,h=Math.sqrt(c*c+l*l);return{x:(n+o+c/h*u)/2,y:(r+a+l/h*u)/2,r:(h+i+s)/2}}function gm(t,e,n){var r=t.x,i=t.y,o=t.r,a=e.x,s=e.y,c=e.r,l=n.x,u=n.y,h=n.r,f=r-a,d=r-l,m=i-s,p=i-u,g=c-o,y=h-o,w=r*r+i*i-o*o,b=w-a*a-s*s+c*c,v=w-l*l-u*u+h*h,_=d*m-f*p,S=(m*v-p*b)/(_*2)-r,k=(p*g-m*y)/_,C=(d*b-f*v)/(_*2)-i,F=(f*y-d*g)/_,A=k*k+F*F-1,E=2*(o+S*k+C*F),D=S*S+C*C-o*o,$=-(Math.abs(A)>1e-6?(E+Math.sqrt(E*E-4*A*D))/(2*A):D/E);return{x:r+S+k*$,y:i+C+F*$,r:$}}function im(t,e,n){var r=t.x-e.x,i,o,a=t.y-e.y,s,c,l=r*r+a*a;l?(o=e.r+n.r,o*=o,c=t.r+n.r,c*=c,o>c?(i=(l+c-o)/(2*l),s=Math.sqrt(Math.max(0,c/l-i*i)),n.x=t.x-i*r-s*a,n.y=t.y-i*a+s*r):(i=(l+o-c)/(2*l),s=Math.sqrt(Math.max(0,o/l-i*i)),n.x=e.x+i*r-s*a,n.y=e.y+i*a+s*r)):(n.x=e.x+n.r,n.y=e.y)}function om(t,e){var n=t.r+e.r-1e-6,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function am(t){var e=t._,n=t.next._,r=e.r+n.r,i=(e.x*n.r+n.x*e.r)/r,o=(e.y*n.r+n.y*e.r)/r;return i*i+o*o}function Al(t){this._=t,this.next=null,this.previous=null}function mm(t,e){if(!(o=(t=m7(t)).length))return 0;var n,r,i,o,a,s,c,l,u,h,f;if(n=t[0],n.x=0,n.y=0,!(o>1))return n.r;if(r=t[1],n.x=-r.r,r.x=n.r,r.y=0,!(o>2))return n.r+r.r;im(r,n,i=t[2]),n=new Al(n),r=new Al(r),i=new Al(i),n.next=i.previous=r,r.next=n.previous=i,i.next=r.previous=n;t:for(c=3;c<o;++c){im(n._,r._,i=t[c]),i=new Al(i),l=r.next,u=n.previous,h=r._.r,f=n._.r;do if(h<=f){if(om(l._,i._)){r=l,n.next=r,r.previous=n,--c;continue t}h+=l._.r,l=l.next}else{if(om(u._,i._)){n=u,n.next=r,r.previous=n,--c;continue t}f+=u._.r,u=u.previous}while(l!==u.next);for(i.previous=n,i.next=r,n.next=r.previous=r=i,a=am(n);(i=i.next)!==r;)(s=am(i))<a&&(n=i,a=s);r=n.next}for(n=[r._],i=r;(i=i.next)!==r;)n.push(i._);for(i=dm(n,e),c=0;c<o;++c)n=t[c],n.x-=i.x,n.y-=i.y;return i.r}function _7(t){return mm(t,Wf()),t}function S7(t){return Math.sqrt(t.value)}function k7(){var t=null,e=1,n=1,r=Pr;function i(o){let a=Wf();return o.x=e/2,o.y=n/2,t?o.eachBefore(sm(t)).eachAfter(If(r,.5,a)).eachBefore(lm(1)):o.eachBefore(sm(S7)).eachAfter(If(Pr,1,a)).eachAfter(If(r,o.r/Math.min(e,n),a)).eachBefore(lm(Math.min(e,n)/(2*o.r))),o}return i.radius=function(o){return arguments.length?(t=El(o),i):t},i.size=function(o){return arguments.length?(e=+o[0],n=+o[1],i):[e,n]},i.padding=function(o){return arguments.length?(r=typeof o=="function"?o:Ni(+o),i):r},i}function sm(t){return function(e){e.children||(e.r=Math.max(0,+t(e)||0))}}function If(t,e,n){return function(r){if(i=r.children){var i,o,a=i.length,s=t(r)*e||0,c;if(s)for(o=0;o<a;++o)i[o].r+=s;if(c=mm(i,n),s)for(o=0;o<a;++o)i[o].r-=s;r.r=c+s}}}function lm(t){return function(e){var n=e.parent;e.r*=t,n&&(e.x=n.x+t*e.x,e.y=n.y+t*e.y)}}function ym(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 ea(t,e,n,r,i){for(var o=t.children,a,s=-1,c=o.length,l=t.value&&(r-e)/t.value;++s<c;)a=o[s],a.y0=n,a.y1=i,a.x0=e,a.x1=e+=a.value*l}function A7(){var t=1,e=1,n=0,r=!1;function i(a){var s=a.height+1;return a.x0=a.y0=n,a.x1=t,a.y1=e/s,a.eachBefore(o(e,s)),r&&a.eachBefore(ym),a}function o(a,s){return function(c){c.children&&ea(c,c.x0,a*(c.depth+1)/s,c.x1,a*(c.depth+2)/s);var l=c.x0,u=c.y0,h=c.x1-n,f=c.y1-n;h<l&&(l=h=(l+h)/2),f<u&&(u=f=(u+f)/2),c.x0=l,c.y0=u,c.x1=h,c.y1=f}}return i.round=function(a){return arguments.length?(r=!!a,i):r},i.size=function(a){return arguments.length?(t=+a[0],e=+a[1],i):[t,e]},i.padding=function(a){return arguments.length?(n=+a,i):n},i}var E7={depth:-1},cm={},Lf={};function M7(t){return t.id}function C7(t){return t.parentId}function F7(){var t=M7,e=C7,n;function r(i){var o=Array.from(i),a=t,s=e,c,l,u,h,f,d,m,p,g=new Map;if(n!=null){let y=o.map((v,_)=>T7(n(v,_,i))),w=y.map(um),b=new Set(y).add("");for(let v of w)b.has(v)||(b.add(v),y.push(v),w.push(um(v)),o.push(Lf));a=(v,_)=>y[_],s=(v,_)=>w[_]}for(u=0,c=o.length;u<c;++u)l=o[u],d=o[u]=new Ir(l),(m=a(l,u,i))!=null&&(m+="")&&(p=d.id=m,g.set(p,g.has(p)?cm:d)),(m=s(l,u,i))!=null&&(m+="")&&(d.parent=m);for(u=0;u<c;++u)if(d=o[u],m=d.parent){if(f=g.get(m),!f)throw new Error("missing: "+m);if(f===cm)throw new Error("ambiguous: "+m);f.children?f.children.push(d):f.children=[d],d.parent=f}else{if(h)throw new Error("multiple roots");h=d}if(!h)throw new Error("no root");if(n!=null){for(;h.data===Lf&&h.children.length===1;)h=h.children[0],--c;for(let y=o.length-1;y>=0&&(d=o[y],d.data===Lf);--y)d.data=null}if(h.parent=E7,h.eachBefore(function(y){y.depth=y.parent.depth+1,--c}).eachBefore(fm),h.parent=null,c>0)throw new Error("cycle");return h}return r.id=function(i){return arguments.length?(t=El(i),r):t},r.parentId=function(i){return arguments.length?(e=El(i),r):e},r.path=function(i){return arguments.length?(n=El(i),r):n},r}function T7(t){t=`${t}`;let e=t.length;return Uf(t,e-1)&&!Uf(t,e-2)&&(t=t.slice(0,-1)),t[0]==="/"?t:`/${t}`}function um(t){let e=t.length;if(e<2)return"";for(;--e>1&&!Uf(t,e););return t.slice(0,e)}function Uf(t,e){if(t[e]==="/"){let n=0;for(;e>0&&t[--e]==="\\";)++n;if((n&1)===0)return!0}return!1}function O7(t,e){return t.parent===e.parent?1:2}function qf(t){var e=t.children;return e?e[0]:t.t}function Yf(t){var e=t.children;return e?e[e.length-1]:t.t}function B7(t,e,n){var r=n/(e.i-t.i);e.c-=r,e.s+=n,t.c+=r,e.z+=n,e.m+=n}function D7(t){for(var e=0,n=0,r=t.children,i=r.length,o;--i>=0;)o=r[i],o.z+=e,o.m+=e,e+=o.s+(n+=o.c)}function $7(t,e,n){return t.a.parent===e.parent?t.a:n}function Ml(t,e){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=e}Ml.prototype=Object.create(Ir.prototype);function z7(t){for(var e=new Ml(t,0),n,r=[e],i,o,a,s;n=r.pop();)if(o=n._.children)for(n.children=new Array(s=o.length),a=s-1;a>=0;--a)r.push(i=n.children[a]=new Ml(o[a],a)),i.parent=n;return(e.parent=new Ml(null,0)).children=[e],e}function N7(){var t=O7,e=1,n=1,r=null;function i(l){var u=z7(l);if(u.eachAfter(o),u.parent.m=-u.z,u.eachBefore(a),r)l.eachBefore(c);else{var h=l,f=l,d=l;l.eachBefore(function(w){w.x<h.x&&(h=w),w.x>f.x&&(f=w),w.depth>d.depth&&(d=w)});var m=h===f?1:t(h,f)/2,p=m-h.x,g=e/(f.x+m+p),y=n/(d.depth||1);l.eachBefore(function(w){w.x=(w.x+p)*g,w.y=w.depth*y})}return l}function o(l){var u=l.children,h=l.parent.children,f=l.i?h[l.i-1]:null;if(u){D7(l);var d=(u[0].z+u[u.length-1].z)/2;f?(l.z=f.z+t(l._,f._),l.m=l.z-d):l.z=d}else f&&(l.z=f.z+t(l._,f._));l.parent.A=s(l,f,l.parent.A||h[0])}function a(l){l._.x=l.z+l.parent.m,l.m+=l.parent.m}function s(l,u,h){if(u){for(var f=l,d=l,m=u,p=f.parent.children[0],g=f.m,y=d.m,w=m.m,b=p.m,v;m=Yf(m),f=qf(f),m&&f;)p=qf(p),d=Yf(d),d.a=l,v=m.z+w-f.z-g+t(m._,f._),v>0&&(B7($7(m,l,h),l,v),g+=v,y+=v),w+=m.m,g+=f.m,b+=p.m,y+=d.m;m&&!Yf(d)&&(d.t=m,d.m+=w-y),f&&!qf(p)&&(p.t=f,p.m+=g-b,h=l)}return h}function c(l){l.x*=e,l.y=l.depth*n}return i.separation=function(l){return arguments.length?(t=l,i):t},i.size=function(l){return arguments.length?(r=!1,e=+l[0],n=+l[1],i):r?null:[e,n]},i.nodeSize=function(l){return arguments.length?(r=!0,e=+l[0],n=+l[1],i):r?[e,n]:null},i}function Cl(t,e,n,r,i){for(var o=t.children,a,s=-1,c=o.length,l=t.value&&(i-n)/t.value;++s<c;)a=o[s],a.x0=e,a.x1=r,a.y0=n,a.y1=n+=a.value*l}var bm=(1+Math.sqrt(5))/2;function vm(t,e,n,r,i,o){for(var a=[],s=e.children,c,l,u=0,h=0,f=s.length,d,m,p=e.value,g,y,w,b,v,_,S;u<f;){d=i-n,m=o-r;do g=s[h++].value;while(!g&&h<f);for(y=w=g,_=Math.max(m/d,d/m)/(p*t),S=g*g*_,v=Math.max(w/S,S/y);h<f;++h){if(g+=l=s[h].value,l<y&&(y=l),l>w&&(w=l),S=g*g*_,b=Math.max(w/S,S/y),b>v){g-=l;break}v=b}a.push(c={value:g,dice:d<m,children:s.slice(u,h)}),c.dice?ea(c,n,r,i,p?r+=m*g/p:o):Cl(c,n,r,p?n+=d*g/p:i,o),p-=g,u=h}return a}var wm=(function t(e){function n(r,i,o,a,s){vm(e,r,i,o,a,s)}return n.ratio=function(r){return t((r=+r)>1?r:1)},n})(bm);function R7(){var t=wm,e=!1,n=1,r=1,i=[0],o=Pr,a=Pr,s=Pr,c=Pr,l=Pr;function u(f){return f.x0=f.y0=0,f.x1=n,f.y1=r,f.eachBefore(h),i=[0],e&&f.eachBefore(ym),f}function h(f){var d=i[f.depth],m=f.x0+d,p=f.y0+d,g=f.x1-d,y=f.y1-d;g<m&&(m=g=(m+g)/2),y<p&&(p=y=(p+y)/2),f.x0=m,f.y0=p,f.x1=g,f.y1=y,f.children&&(d=i[f.depth+1]=o(f)/2,m+=l(f)-d,p+=a(f)-d,g-=s(f)-d,y-=c(f)-d,g<m&&(m=g=(m+g)/2),y<p&&(p=y=(p+y)/2),t(f,m,p,g,y))}return u.round=function(f){return arguments.length?(e=!!f,u):e},u.size=function(f){return arguments.length?(n=+f[0],r=+f[1],u):[n,r]},u.tile=function(f){return arguments.length?(t=hm(f),u):t},u.padding=function(f){return arguments.length?u.paddingInner(f).paddingOuter(f):u.paddingInner()},u.paddingInner=function(f){return arguments.length?(o=typeof f=="function"?f:Ni(+f),u):o},u.paddingOuter=function(f){return arguments.length?u.paddingTop(f).paddingRight(f).paddingBottom(f).paddingLeft(f):u.paddingTop()},u.paddingTop=function(f){return arguments.length?(a=typeof f=="function"?f:Ni(+f),u):a},u.paddingRight=function(f){return arguments.length?(s=typeof f=="function"?f:Ni(+f),u):s},u.paddingBottom=function(f){return arguments.length?(c=typeof f=="function"?f:Ni(+f),u):c},u.paddingLeft=function(f){return arguments.length?(l=typeof f=="function"?f:Ni(+f),u):l},u}function P7(t,e,n,r,i){var o=t.children,a,s=o.length,c,l=new Array(s+1);for(l[0]=c=a=0;a<s;++a)l[a+1]=c+=o[a].value;u(0,s,t.value,e,n,r,i);function u(h,f,d,m,p,g,y){if(h>=f-1){var w=o[h];w.x0=m,w.y0=p,w.x1=g,w.y1=y;return}for(var b=l[h],v=d/2+b,_=h+1,S=f-1;_<S;){var k=_+S>>>1;l[k]<v?_=k+1:S=k}v-l[_-1]<l[_]-v&&h+1<_&&--_;var C=l[_]-b,F=d-C;if(g-m>y-p){var A=d?(m*F+g*C)/d:g;u(h,_,C,m,p,A,y),u(_,f,F,A,p,g,y)}else{var E=d?(p*F+y*C)/d:y;u(h,_,C,m,p,g,E),u(_,f,F,m,E,g,y)}}}function I7(t,e,n,r,i){(t.depth&1?Cl:ea)(t,e,n,r,i)}var L7=(function t(e){function n(r,i,o,a,s){if((c=r._squarify)&&c.ratio===e)for(var c,l,u,h,f=-1,d,m=c.length,p=r.value;++f<m;){for(l=c[f],u=l.children,h=l.value=0,d=u.length;h<d;++h)l.value+=u[h].value;l.dice?ea(l,i,o,a,p?o+=(s-o)*l.value/p:s):Cl(l,i,o,p?i+=(a-i)*l.value/p:a,s),p-=l.value}else r._squarify=c=vm(e,r,i,o,a,s),c.ratio=e}return n.ratio=function(r){return t((r=+r)>1?r:1)},n})(bm);function q7(t){for(var e=-1,n=t.length,r,i=t[n-1],o=0;++e<n;)r=i,i=t[e],o+=r[1]*i[0]-r[0]*i[1];return o/2}function Y7(t){for(var e=-1,n=t.length,r=0,i=0,o,a=t[n-1],s,c=0;++e<n;)o=a,a=t[e],c+=s=o[0]*a[1]-a[0]*o[1],r+=(o[0]+a[0])*s,i+=(o[1]+a[1])*s;return c*=3,[r/c,i/c]}function U7(t,e,n){return(e[0]-t[0])*(n[1]-t[1])-(e[1]-t[1])*(n[0]-t[0])}function H7(t,e){return t[0]-e[0]||t[1]-e[1]}function xm(t){let e=t.length,n=[0,1],r=2,i;for(i=2;i<e;++i){for(;r>1&&U7(t[n[r-2]],t[n[r-1]],t[i])<=0;)--r;n[r++]=i}return n.slice(0,r)}function W7(t){if((n=t.length)<3)return null;var e,n,r=new Array(n),i=new Array(n);for(e=0;e<n;++e)r[e]=[+t[e][0],+t[e][1],e];for(r.sort(H7),e=0;e<n;++e)i[e]=[r[e][0],-r[e][1]];var o=xm(r),a=xm(i),s=a[0]===o[0],c=a[a.length-1]===o[o.length-1],l=[];for(e=o.length-1;e>=0;--e)l.push(t[r[o[e]][2]]);for(e=+s;e<a.length-c;++e)l.push(t[r[a[e]][2]]);return l}function j7(t,e){for(var n=t.length,r=t[n-1],i=e[0],o=e[1],a=r[0],s=r[1],c,l,u=!1,h=0;h<n;++h)r=t[h],c=r[0],l=r[1],l>o!=s>o&&i<(a-c)*(o-l)/(s-l)+c&&(u=!u),a=c,s=l;return u}function X7(t){for(var e=-1,n=t.length,r=t[n-1],i,o,a=r[0],s=r[1],c=0;++e<n;)i=a,o=s,r=t[e],a=r[0],s=r[1],i-=a,o-=s,c+=Math.hypot(i,o);return c}var re=Math.random,G7=(function t(e){function n(r,i){return r=r==null?0:+r,i=i==null?1:+i,arguments.length===1?(i=r,r=0):i-=r,function(){return e()*i+r}}return n.source=t,n})(re),V7=(function t(e){function n(r,i){return arguments.length<2&&(i=r,r=0),r=Math.floor(r),i=Math.floor(i)-r,function(){return Math.floor(e()*i+r)}}return n.source=t,n})(re),jf=(function t(e){function n(r,i){var o,a;return r=r==null?0:+r,i=i==null?1:+i,function(){var s;if(o!=null)s=o,o=null;else do o=e()*2-1,s=e()*2-1,a=o*o+s*s;while(!a||a>1);return r+i*s*Math.sqrt(-2*Math.log(a)/a)}}return n.source=t,n})(re),Z7=(function t(e){var n=jf.source(e);function r(){var i=n.apply(this,arguments);return function(){return Math.exp(i())}}return r.source=t,r})(re),Sm=(function t(e){function n(r){return(r=+r)<=0?()=>0:function(){for(var i=0,o=r;o>1;--o)i+=e();return i+o*e()}}return n.source=t,n})(re),K7=(function t(e){var n=Sm.source(e);function r(i){if((i=+i)==0)return e;var o=n(i);return function(){return o()/i}}return r.source=t,r})(re),Q7=(function t(e){function n(r){return function(){return-Math.log1p(-e())/r}}return n.source=t,n})(re),J7=(function t(e){function n(r){if((r=+r)<0)throw new RangeError("invalid alpha");return r=1/-r,function(){return Math.pow(1-e(),r)}}return n.source=t,n})(re),tS=(function t(e){function n(r){if((r=+r)<0||r>1)throw new RangeError("invalid p");return function(){return Math.floor(e()+r)}}return n.source=t,n})(re),km=(function t(e){function n(r){if((r=+r)<0||r>1)throw new RangeError("invalid p");return r===0?()=>1/0:r===1?()=>1:(r=Math.log1p(-r),function(){return 1+Math.floor(Math.log1p(-e())/r)})}return n.source=t,n})(re),Xf=(function t(e){var n=jf.source(e)();function r(i,o){if((i=+i)<0)throw new RangeError("invalid k");if(i===0)return()=>0;if(o=o==null?1:+o,i===1)return()=>-Math.log1p(-e())*o;var a=(i<1?i+1:i)-1/3,s=1/(3*Math.sqrt(a)),c=i<1?()=>Math.pow(e(),1/i):()=>1;return function(){do{do var l=n(),u=1+s*l;while(u<=0);u*=u*u;var h=1-e()}while(h>=1-.0331*l*l*l*l&&Math.log(h)>=.5*l*l+a*(1-u+Math.log(u)));return a*u*c()*o}}return r.source=t,r})(re),Am=(function t(e){var n=Xf.source(e);function r(i,o){var a=n(i),s=n(o);return function(){var c=a();return c===0?0:c/(c+s())}}return r.source=t,r})(re),Em=(function t(e){var n=km.source(e),r=Am.source(e);function i(o,a){return o=+o,(a=+a)>=1?()=>o:a<=0?()=>0:function(){for(var s=0,c=o,l=a;c*l>16&&c*(1-l)>16;){var u=Math.floor((c+1)*l),h=r(u,c-u+1)();h<=l?(s+=u,c-=u,l=(l-h)/(1-h)):(c=u-1,l/=h)}for(var f=l<.5,d=f?l:1-l,m=n(d),p=m(),g=0;p<=c;++g)p+=m();return s+(f?g:c-g)}}return i.source=t,i})(re),eS=(function t(e){function n(r,i,o){var a;return(r=+r)==0?a=s=>-Math.log(s):(r=1/r,a=s=>Math.pow(s,r)),i=i==null?0:+i,o=o==null?1:+o,function(){return i+o*a(-Math.log1p(-e()))}}return n.source=t,n})(re),nS=(function t(e){function n(r,i){return r=r==null?0:+r,i=i==null?1:+i,function(){return r+i*Math.tan(Math.PI*e())}}return n.source=t,n})(re),rS=(function t(e){function n(r,i){return r=r==null?0:+r,i=i==null?1:+i,function(){var o=e();return r+i*Math.log(o/(1-o))}}return n.source=t,n})(re),iS=(function t(e){var n=Xf.source(e),r=Em.source(e);function i(o){return function(){for(var a=0,s=o;s>16;){var c=Math.floor(.875*s),l=n(c)();if(l>s)return a+r(c-1,s/l)();a+=c,s-=l}for(var u=-Math.log1p(-e()),h=0;u<=s;++h)u-=Math.log1p(-e());return a+h}}return i.source=t,i})(re),oS=1664525,aS=1013904223,_m=1/4294967296;function sS(t=Math.random()){let e=(0<=t&&t<1?t/_m:Math.abs(t))|0;return()=>(e=oS*e+aS|0,_m*(e>>>0))}var Gf=new Date,Vf=new Date;function Wt(t,e,n,r){function i(o){return t(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=o=>(t(o=new Date(+o)),o),i.ceil=o=>(t(o=new Date(o-1)),e(o,1),t(o),o),i.round=o=>{let a=i(o),s=i.ceil(o);return o-a<s-o?a:s},i.offset=(o,a)=>(e(o=new Date(+o),a==null?1:Math.floor(a)),o),i.range=(o,a,s)=>{let c=[];if(o=i.ceil(o),s=s==null?1:Math.floor(s),!(o<a)||!(s>0))return c;let l;do c.push(l=new Date(+o)),e(o,s),t(o);while(l<o&&o<a);return c},i.filter=o=>Wt(a=>{if(a>=a)for(;t(a),!o(a);)a.setTime(a-1)},(a,s)=>{if(a>=a)if(s<0)for(;++s<=0;)for(;e(a,-1),!o(a););else for(;--s>=0;)for(;e(a,1),!o(a););}),n&&(i.count=(o,a)=>(Gf.setTime(+o),Vf.setTime(+a),t(Gf),t(Vf),Math.floor(n(Gf,Vf))),i.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?a=>r(a)%o===0:a=>i.count(0,a)%o===0):i)),i}var na=Wt(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);na.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?Wt(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):na);var lS=na.range,Yn=1e3,We=Yn*60,Un=We*60,Hn=Un*24,Kf=Hn*7,Mm=Hn*30,Zf=Hn*365,kn=Wt(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*Yn)},(t,e)=>(e-t)/Yn,t=>t.getUTCSeconds()),cS=kn.range,ra=Wt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Yn)},(t,e)=>{t.setTime(+t+e*We)},(t,e)=>(e-t)/We,t=>t.getMinutes()),uS=ra.range,ia=Wt(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*We)},(t,e)=>(e-t)/We,t=>t.getUTCMinutes()),fS=ia.range,oa=Wt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Yn-t.getMinutes()*We)},(t,e)=>{t.setTime(+t+e*Un)},(t,e)=>(e-t)/Un,t=>t.getHours()),hS=oa.range,aa=Wt(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*Un)},(t,e)=>(e-t)/Un,t=>t.getUTCHours()),dS=aa.range,hr=Wt(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*We)/Hn,t=>t.getDate()-1),pS=hr.range,Lr=Wt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/Hn,t=>t.getUTCDate()-1),gS=Lr.range,Qf=Wt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/Hn,t=>Math.floor(t/Hn)),mS=Qf.range;function qr(t){return Wt(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*We)/Kf)}var Yr=qr(0),Ri=qr(1),Cm=qr(2),Fm=qr(3),dr=qr(4),Tm=qr(5),Om=qr(6),yS=Yr.range,bS=Ri.range,vS=Cm.range,wS=Fm.range,xS=dr.range,_S=Tm.range,SS=Om.range;function Ur(t){return Wt(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/Kf)}var Hr=Ur(0),Pi=Ur(1),Bm=Ur(2),Dm=Ur(3),pr=Ur(4),$m=Ur(5),zm=Ur(6),kS=Hr.range,AS=Pi.range,ES=Bm.range,MS=Dm.range,CS=pr.range,FS=$m.range,TS=zm.range,sa=Wt(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth()),OS=sa.range,la=Wt(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth()),BS=la.range,je=Wt(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());je.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:Wt(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});var DS=je.range,Xe=Wt(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());Xe.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:Wt(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});var $S=Xe.range;function Nm(t,e,n,r,i,o){let a=[[kn,1,Yn],[kn,5,5*Yn],[kn,15,15*Yn],[kn,30,30*Yn],[o,1,We],[o,5,5*We],[o,15,15*We],[o,30,30*We],[i,1,Un],[i,3,3*Un],[i,6,6*Un],[i,12,12*Un],[r,1,Hn],[r,2,2*Hn],[n,1,Kf],[e,1,Mm],[e,3,3*Mm],[t,1,Zf]];function s(l,u,h){let f=u<l;f&&([l,u]=[u,l]);let d=h&&typeof h.range=="function"?h:c(l,u,h),m=d?d.range(l,+u+1):[];return f?m.reverse():m}function c(l,u,h){let f=Math.abs(u-l)/h,d=lo(([,,g])=>g).right(a,f);if(d===a.length)return t.every(si(l/Zf,u/Zf,h));if(d===0)return na.every(Math.max(si(l,u,h),1));let[m,p]=a[f/a[d-1][2]<a[d][2]/f?d-1:d];return m.every(p)}return[s,c]}var[Jf,th]=Nm(Xe,la,Hr,Qf,aa,ia),[eh,nh]=Nm(je,sa,Yr,hr,oa,ra);function rh(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function ih(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function ca(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function Xm(t){var e=t.dateTime,n=t.date,r=t.time,i=t.periods,o=t.days,a=t.shortDays,s=t.months,c=t.shortMonths,l=ua(i),u=fa(i),h=ua(o),f=fa(o),d=ua(a),m=fa(a),p=ua(s),g=fa(s),y=ua(c),w=fa(c),b={a:N,A:L,b:q,B:U,c:null,d:Ym,e:Ym,f:r9,g:d9,G:g9,H:t9,I:e9,j:n9,L:Gm,m:i9,M:o9,p:Z,q:Q,Q:Wm,s:jm,S:a9,u:s9,U:l9,V:c9,w:u9,W:f9,x:null,X:null,y:h9,Y:p9,Z:m9,"%":Hm},v={a:j,A:H,b:W,B:J,c:null,d:Um,e:Um,f:w9,g:T9,G:B9,H:y9,I:b9,j:v9,L:Zm,m:x9,M:_9,p:K,q:ht,Q:Wm,s:jm,S:S9,u:k9,U:A9,V:E9,w:M9,W:C9,x:null,X:null,y:F9,Y:O9,Z:D9,"%":Hm},_={a:A,A:E,b:D,B:$,c:M,d:Lm,e:Lm,f:ZS,g:Im,G:Pm,H:qm,I:qm,j:jS,L:VS,m:WS,M:XS,p:F,q:HS,Q:QS,s:JS,S:GS,u:IS,U:LS,V:qS,w:PS,W:YS,x:T,X:B,y:Im,Y:Pm,Z:US,"%":KS};b.x=S(n,b),b.X=S(r,b),b.c=S(e,b),v.x=S(n,v),v.X=S(r,v),v.c=S(e,v);function S(G,tt){return function(ot){var X=[],vt=-1,yt=0,Tt=G.length,Mt,st,St;for(ot instanceof Date||(ot=new Date(+ot));++vt<Tt;)G.charCodeAt(vt)===37&&(X.push(G.slice(yt,vt)),(st=Rm[Mt=G.charAt(++vt)])!=null?Mt=G.charAt(++vt):st=Mt==="e"?" ":"0",(St=tt[Mt])&&(Mt=St(ot,st)),X.push(Mt),yt=vt+1);return X.push(G.slice(yt,vt)),X.join("")}}function k(G,tt){return function(ot){var X=ca(1900,void 0,1),vt=C(X,G,ot+="",0),yt,Tt;if(vt!=ot.length)return null;if("Q"in X)return new Date(X.Q);if("s"in X)return new Date(X.s*1e3+("L"in X?X.L:0));if(tt&&!("Z"in X)&&(X.Z=0),"p"in X&&(X.H=X.H%12+X.p*12),X.m===void 0&&(X.m="q"in X?X.q:0),"V"in X){if(X.V<1||X.V>53)return null;"w"in X||(X.w=1),"Z"in X?(yt=ih(ca(X.y,0,1)),Tt=yt.getUTCDay(),yt=Tt>4||Tt===0?Pi.ceil(yt):Pi(yt),yt=Lr.offset(yt,(X.V-1)*7),X.y=yt.getUTCFullYear(),X.m=yt.getUTCMonth(),X.d=yt.getUTCDate()+(X.w+6)%7):(yt=rh(ca(X.y,0,1)),Tt=yt.getDay(),yt=Tt>4||Tt===0?Ri.ceil(yt):Ri(yt),yt=hr.offset(yt,(X.V-1)*7),X.y=yt.getFullYear(),X.m=yt.getMonth(),X.d=yt.getDate()+(X.w+6)%7)}else("W"in X||"U"in X)&&("w"in X||(X.w="u"in X?X.u%7:"W"in X?1:0),Tt="Z"in X?ih(ca(X.y,0,1)).getUTCDay():rh(ca(X.y,0,1)).getDay(),X.m=0,X.d="W"in X?(X.w+6)%7+X.W*7-(Tt+5)%7:X.w+X.U*7-(Tt+6)%7);return"Z"in X?(X.H+=X.Z/100|0,X.M+=X.Z%100,ih(X)):rh(X)}}function C(G,tt,ot,X){for(var vt=0,yt=tt.length,Tt=ot.length,Mt,st;vt<yt;){if(X>=Tt)return-1;if(Mt=tt.charCodeAt(vt++),Mt===37){if(Mt=tt.charAt(vt++),st=_[Mt in Rm?tt.charAt(vt++):Mt],!st||(X=st(G,ot,X))<0)return-1}else if(Mt!=ot.charCodeAt(X++))return-1}return X}function F(G,tt,ot){var X=l.exec(tt.slice(ot));return X?(G.p=u.get(X[0].toLowerCase()),ot+X[0].length):-1}function A(G,tt,ot){var X=d.exec(tt.slice(ot));return X?(G.w=m.get(X[0].toLowerCase()),ot+X[0].length):-1}function E(G,tt,ot){var X=h.exec(tt.slice(ot));return X?(G.w=f.get(X[0].toLowerCase()),ot+X[0].length):-1}function D(G,tt,ot){var X=y.exec(tt.slice(ot));return X?(G.m=w.get(X[0].toLowerCase()),ot+X[0].length):-1}function $(G,tt,ot){var X=p.exec(tt.slice(ot));return X?(G.m=g.get(X[0].toLowerCase()),ot+X[0].length):-1}function M(G,tt,ot){return C(G,e,tt,ot)}function T(G,tt,ot){return C(G,n,tt,ot)}function B(G,tt,ot){return C(G,r,tt,ot)}function N(G){return a[G.getDay()]}function L(G){return o[G.getDay()]}function q(G){return c[G.getMonth()]}function U(G){return s[G.getMonth()]}function Z(G){return i[+(G.getHours()>=12)]}function Q(G){return 1+~~(G.getMonth()/3)}function j(G){return a[G.getUTCDay()]}function H(G){return o[G.getUTCDay()]}function W(G){return c[G.getUTCMonth()]}function J(G){return s[G.getUTCMonth()]}function K(G){return i[+(G.getUTCHours()>=12)]}function ht(G){return 1+~~(G.getUTCMonth()/3)}return{format:function(G){var tt=S(G+="",b);return tt.toString=function(){return G},tt},parse:function(G){var tt=k(G+="",!1);return tt.toString=function(){return G},tt},utcFormat:function(G){var tt=S(G+="",v);return tt.toString=function(){return G},tt},utcParse:function(G){var tt=k(G+="",!0);return tt.toString=function(){return G},tt}}}var Rm={"-":"",_:" ",0:"0"},te=/^\s*\d+/,zS=/^%/,NS=/[\\^$*+?|[\]().{}]/g;function xt(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<n?new Array(n-o+1).join(e)+i:i)}function RS(t){return t.replace(NS,"\\$&")}function ua(t){return new RegExp("^(?:"+t.map(RS).join("|")+")","i")}function fa(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function PS(t,e,n){var r=te.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function IS(t,e,n){var r=te.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function LS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function qS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function YS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Pm(t,e,n){var r=te.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Im(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function US(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function HS(t,e,n){var r=te.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function WS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Lm(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function jS(t,e,n){var r=te.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function qm(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function XS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function GS(t,e,n){var r=te.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function VS(t,e,n){var r=te.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function ZS(t,e,n){var r=te.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function KS(t,e,n){var r=zS.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function QS(t,e,n){var r=te.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function JS(t,e,n){var r=te.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Ym(t,e){return xt(t.getDate(),e,2)}function t9(t,e){return xt(t.getHours(),e,2)}function e9(t,e){return xt(t.getHours()%12||12,e,2)}function n9(t,e){return xt(1+hr.count(je(t),t),e,3)}function Gm(t,e){return xt(t.getMilliseconds(),e,3)}function r9(t,e){return Gm(t,e)+"000"}function i9(t,e){return xt(t.getMonth()+1,e,2)}function o9(t,e){return xt(t.getMinutes(),e,2)}function a9(t,e){return xt(t.getSeconds(),e,2)}function s9(t){var e=t.getDay();return e===0?7:e}function l9(t,e){return xt(Yr.count(je(t)-1,t),e,2)}function Vm(t){var e=t.getDay();return e>=4||e===0?dr(t):dr.ceil(t)}function c9(t,e){return t=Vm(t),xt(dr.count(je(t),t)+(je(t).getDay()===4),e,2)}function u9(t){return t.getDay()}function f9(t,e){return xt(Ri.count(je(t)-1,t),e,2)}function h9(t,e){return xt(t.getFullYear()%100,e,2)}function d9(t,e){return t=Vm(t),xt(t.getFullYear()%100,e,2)}function p9(t,e){return xt(t.getFullYear()%1e4,e,4)}function g9(t,e){var n=t.getDay();return t=n>=4||n===0?dr(t):dr.ceil(t),xt(t.getFullYear()%1e4,e,4)}function m9(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+xt(e/60|0,"0",2)+xt(e%60,"0",2)}function Um(t,e){return xt(t.getUTCDate(),e,2)}function y9(t,e){return xt(t.getUTCHours(),e,2)}function b9(t,e){return xt(t.getUTCHours()%12||12,e,2)}function v9(t,e){return xt(1+Lr.count(Xe(t),t),e,3)}function Zm(t,e){return xt(t.getUTCMilliseconds(),e,3)}function w9(t,e){return Zm(t,e)+"000"}function x9(t,e){return xt(t.getUTCMonth()+1,e,2)}function _9(t,e){return xt(t.getUTCMinutes(),e,2)}function S9(t,e){return xt(t.getUTCSeconds(),e,2)}function k9(t){var e=t.getUTCDay();return e===0?7:e}function A9(t,e){return xt(Hr.count(Xe(t)-1,t),e,2)}function Km(t){var e=t.getUTCDay();return e>=4||e===0?pr(t):pr.ceil(t)}function E9(t,e){return t=Km(t),xt(pr.count(Xe(t),t)+(Xe(t).getUTCDay()===4),e,2)}function M9(t){return t.getUTCDay()}function C9(t,e){return xt(Pi.count(Xe(t)-1,t),e,2)}function F9(t,e){return xt(t.getUTCFullYear()%100,e,2)}function T9(t,e){return t=Km(t),xt(t.getUTCFullYear()%100,e,2)}function O9(t,e){return xt(t.getUTCFullYear()%1e4,e,4)}function B9(t,e){var n=t.getUTCDay();return t=n>=4||n===0?pr(t):pr.ceil(t),xt(t.getUTCFullYear()%1e4,e,4)}function D9(){return"+0000"}function Hm(){return"%"}function Wm(t){return+t}function jm(t){return Math.floor(+t/1e3)}var Ii,Fl,Qm,ha,oh;Jm({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Jm(t){return Ii=Xm(t),Fl=Ii.format,Qm=Ii.parse,ha=Ii.utcFormat,oh=Ii.utcParse,Ii}var t1="%Y-%m-%dT%H:%M:%S.%LZ";function $9(t){return t.toISOString()}var z9=Date.prototype.toISOString?$9:ha(t1);function N9(t){var e=new Date(t);return isNaN(e)?null:e}var R9=+new Date("2000-01-01T00:00:00.000Z")?N9:oh(t1);function Ge(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function Wn(t,e){switch(arguments.length){case 0:break;case 1:{typeof t=="function"?this.interpolator(t):this.range(t);break}default:{this.domain(t),typeof e=="function"?this.interpolator(e):this.range(e);break}}return this}var ah=Symbol("implicit");function lh(){var t=new tr,e=[],n=[],r=ah;function i(o){let a=t.get(o);if(a===void 0){if(r!==ah)return r;t.set(o,a=e.push(o)-1)}return n[a%n.length]}return i.domain=function(o){if(!arguments.length)return e.slice();e=[],t=new tr;for(let a of o)t.has(a)||t.set(a,e.push(a)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return lh(e,n).unknown(r)},Ge.apply(i,arguments),i}function ch(){var t=lh().unknown(void 0),e=t.domain,n=t.range,r=0,i=1,o,a,s=!1,c=0,l=0,u=.5;delete t.unknown;function h(){var f=e().length,d=i<r,m=d?i:r,p=d?r:i;o=(p-m)/Math.max(1,f-c+l*2),s&&(o=Math.floor(o)),m+=(p-m-o*(f-c))*u,a=o*(1-c),s&&(m=Math.round(m),a=Math.round(a));var g=dn(f).map(function(y){return m+o*y});return n(d?g.reverse():g)}return t.domain=function(f){return arguments.length?(e(f),h()):e()},t.range=function(f){return arguments.length?([r,i]=f,r=+r,i=+i,h()):[r,i]},t.rangeRound=function(f){return[r,i]=f,r=+r,i=+i,s=!0,h()},t.bandwidth=function(){return a},t.step=function(){return o},t.round=function(f){return arguments.length?(s=!!f,h()):s},t.padding=function(f){return arguments.length?(c=Math.min(1,l=+f),h()):c},t.paddingInner=function(f){return arguments.length?(c=Math.min(1,f),h()):c},t.paddingOuter=function(f){return arguments.length?(l=+f,h()):l},t.align=function(f){return arguments.length?(u=Math.max(0,Math.min(1,f)),h()):u},t.copy=function(){return ch(e(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},Ge.apply(h(),arguments)}function c1(t){var e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return c1(e())},t}function P9(){return c1(ch.apply(null,arguments).paddingInner(1))}function I9(t){return function(){return t}}function Tl(t){return+t}var e1=[0,1];function Me(t){return t}function sh(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:I9(isNaN(e)?NaN:.5)}function L9(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function q9(t,e,n){var r=t[0],i=t[1],o=e[0],a=e[1];return i<r?(r=sh(i,r),o=n(a,o)):(r=sh(r,i),o=n(o,a)),function(s){return o(r(s))}}function Y9(t,e,n){var r=Math.min(t.length,e.length)-1,i=new Array(r),o=new Array(r),a=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<r;)i[a]=sh(t[a],t[a+1]),o[a]=n(e[a],e[a+1]);return function(s){var c=nr(t,s,1,r)-1;return o[c](i[c](s))}}function da(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Ol(){var t=e1,e=e1,n=yn,r,i,o,a=Me,s,c,l;function u(){var f=Math.min(t.length,e.length);return a!==Me&&(a=L9(t[0],t[f-1])),s=f>2?Y9:q9,c=l=null,h}function h(f){return f==null||isNaN(f=+f)?o:(c||(c=s(t.map(r),e,n)))(r(a(f)))}return h.invert=function(f){return a(i((l||(l=s(e,t.map(r),Fe)))(f)))},h.domain=function(f){return arguments.length?(t=Array.from(f,Tl),u()):t.slice()},h.range=function(f){return arguments.length?(e=Array.from(f),u()):e.slice()},h.rangeRound=function(f){return e=Array.from(f),n=vo,u()},h.clamp=function(f){return arguments.length?(a=f?!0:Me,u()):a!==Me},h.interpolate=function(f){return arguments.length?(n=f,u()):n},h.unknown=function(f){return arguments.length?(o=f,h):o},function(f,d){return r=f,i=d,u()}}function uh(){return Ol()(Me,Me)}function u1(t,e,n,r){var i=si(t,e,n),o;switch(r=$r(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(o=Uu(i,a))&&(r.precision=o),qs(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=Hu(i,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=Yu(i))&&(r.precision=o-(r.type==="%")*2);break}}return Do(r)}function gr(t){var e=t.domain;return t.ticks=function(n){var r=e();return Bn(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var i=e();return u1(i[0],i[i.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),i=0,o=r.length-1,a=r[i],s=r[o],c,l,u=10;for(s<a&&(l=a,a=s,s=l,l=i,i=o,o=l);u-- >0;){if(l=er(a,s,n),l===c)return r[i]=a,r[o]=s,e(r);if(l>0)a=Math.floor(a/l)*l,s=Math.ceil(s/l)*l;else if(l<0)a=Math.ceil(a*l)/l,s=Math.floor(s*l)/l;else break;c=l}return t},t}function f1(){var t=uh();return t.copy=function(){return da(t,f1())},Ge.apply(t,arguments),gr(t)}function h1(t){var e;function n(r){return r==null||isNaN(r=+r)?e:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(t=Array.from(r,Tl),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return h1(t).unknown(e)},t=arguments.length?Array.from(t,Tl):[0,1],gr(n)}function d1(t,e){t=t.slice();var n=0,r=t.length-1,i=t[n],o=t[r],a;return o<i&&(a=n,n=r,r=a,a=i,i=o,o=a),t[n]=e.floor(i),t[r]=e.ceil(o),t}function n1(t){return Math.log(t)}function r1(t){return Math.exp(t)}function U9(t){return-Math.log(-t)}function H9(t){return-Math.exp(-t)}function W9(t){return isFinite(t)?+("1e"+t):t<0?0:t}function j9(t){return t===10?W9:t===Math.E?Math.exp:e=>Math.pow(t,e)}function X9(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function i1(t){return(e,n)=>-t(-e,n)}function fh(t){let e=t(n1,r1),n=e.domain,r=10,i,o;function a(){return i=X9(r),o=j9(r),n()[0]<0?(i=i1(i),o=i1(o),t(U9,H9)):t(n1,r1),e}return e.base=function(s){return arguments.length?(r=+s,a()):r},e.domain=function(s){return arguments.length?(n(s),a()):n()},e.ticks=s=>{let c=n(),l=c[0],u=c[c.length-1],h=u<l;h&&([l,u]=[u,l]);let f=i(l),d=i(u),m,p,g=s==null?10:+s,y=[];if(!(r%1)&&d-f<g){if(f=Math.floor(f),d=Math.ceil(d),l>0){for(;f<=d;++f)for(m=1;m<r;++m)if(p=f<0?m/o(-f):m*o(f),!(p<l)){if(p>u)break;y.push(p)}}else for(;f<=d;++f)for(m=r-1;m>=1;--m)if(p=f>0?m/o(-f):m*o(f),!(p<l)){if(p>u)break;y.push(p)}y.length*2<g&&(y=Bn(l,u,g))}else y=Bn(f,d,Math.min(d-f,g)).map(o);return h?y.reverse():y},e.tickFormat=(s,c)=>{if(s==null&&(s=10),c==null&&(c=r===10?"s":","),typeof c!="function"&&(!(r%1)&&(c=$r(c)).precision==null&&(c.trim=!0),c=Do(c)),s===1/0)return c;let l=Math.max(1,r*s/e.ticks().length);return u=>{let h=u/o(Math.round(i(u)));return h*r<r-.5&&(h*=r),h<=l?c(u):""}},e.nice=()=>n(d1(n(),{floor:s=>o(Math.floor(i(s))),ceil:s=>o(Math.ceil(i(s)))})),e}function p1(){let t=fh(Ol()).domain([1,10]);return t.copy=()=>da(t,p1()).base(t.base()),Ge.apply(t,arguments),t}function o1(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function a1(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function hh(t){var e=1,n=t(o1(e),a1(e));return n.constant=function(r){return arguments.length?t(o1(e=+r),a1(e)):e},gr(n)}function g1(){var t=hh(Ol());return t.copy=function(){return da(t,g1()).constant(t.constant())},Ge.apply(t,arguments)}function s1(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function G9(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function V9(t){return t<0?-t*t:t*t}function dh(t){var e=t(Me,Me),n=1;function r(){return n===1?t(Me,Me):n===.5?t(G9,V9):t(s1(n),s1(1/n))}return e.exponent=function(i){return arguments.length?(n=+i,r()):n},gr(e)}function ph(){var t=dh(Ol());return t.copy=function(){return da(t,ph()).exponent(t.exponent())},Ge.apply(t,arguments),t}function Z9(){return ph.apply(null,arguments).exponent(.5)}function l1(t){return Math.sign(t)*t*t}function K9(t){return Math.sign(t)*Math.sqrt(Math.abs(t))}function m1(){var t=uh(),e=[0,1],n=!1,r;function i(o){var a=K9(t(o));return isNaN(a)?r:n?Math.round(a):a}return i.invert=function(o){return t.invert(l1(o))},i.domain=function(o){return arguments.length?(t.domain(o),i):t.domain()},i.range=function(o){return arguments.length?(t.range((e=Array.from(o,Tl)).map(l1)),i):e.slice()},i.rangeRound=function(o){return i.range(o).round(!0)},i.round=function(o){return arguments.length?(n=!!o,i):n},i.clamp=function(o){return arguments.length?(t.clamp(o),i):t.clamp()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return m1(t.domain(),e).round(n).clamp(t.clamp()).unknown(r)},Ge.apply(i,arguments),gr(i)}function y1(){var t=[],e=[],n=[],r;function i(){var a=0,s=Math.max(1,e.length);for(n=new Array(s-1);++a<s;)n[a-1]=zc(t,a/s);return o}function o(a){return a==null||isNaN(a=+a)?r:e[nr(n,a)]}return o.invertExtent=function(a){var s=e.indexOf(a);return s<0?[NaN,NaN]:[s>0?n[s-1]:t[0],s<n.length?n[s]:t[t.length-1]]},o.domain=function(a){if(!arguments.length)return t.slice();t=[];for(let s of a)s!=null&&!isNaN(s=+s)&&t.push(s);return t.sort(Bt),i()},o.range=function(a){return arguments.length?(e=Array.from(a),i()):e.slice()},o.unknown=function(a){return arguments.length?(r=a,o):r},o.quantiles=function(){return n.slice()},o.copy=function(){return y1().domain(t).range(e).unknown(r)},Ge.apply(o,arguments)}function b1(){var t=0,e=1,n=1,r=[.5],i=[0,1],o;function a(c){return c!=null&&c<=c?i[nr(r,c,0,n)]:o}function s(){var c=-1;for(r=new Array(n);++c<n;)r[c]=((c+1)*e-(c-n)*t)/(n+1);return a}return a.domain=function(c){return arguments.length?([t,e]=c,t=+t,e=+e,s()):[t,e]},a.range=function(c){return arguments.length?(n=(i=Array.from(c)).length-1,s()):i.slice()},a.invertExtent=function(c){var l=i.indexOf(c);return l<0?[NaN,NaN]:l<1?[t,r[0]]:l>=n?[r[n-1],e]:[r[l-1],r[l]]},a.unknown=function(c){return arguments.length&&(o=c),a},a.thresholds=function(){return r.slice()},a.copy=function(){return b1().domain([t,e]).range(i).unknown(o)},Ge.apply(gr(a),arguments)}function v1(){var t=[.5],e=[0,1],n,r=1;function i(o){return o!=null&&o<=o?e[nr(t,o,0,r)]:n}return i.domain=function(o){return arguments.length?(t=Array.from(o),r=Math.min(t.length,e.length-1),i):t.slice()},i.range=function(o){return arguments.length?(e=Array.from(o),r=Math.min(t.length,e.length-1),i):e.slice()},i.invertExtent=function(o){var a=e.indexOf(o);return[t[a-1],t[a]]},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return v1().domain(t).range(e).unknown(n)},Ge.apply(i,arguments)}function Q9(t){return new Date(t)}function J9(t){return t instanceof Date?+t:Math.round(t)}function gh(t,e,n,r,i,o,a,s,c,l){var u=uh(),h=u.invert,f=u.domain,d=l(".%L"),m=l(":%S"),p=l("%I:%M"),g=l("%I %p"),y=l("%a %d"),w=l("%b %d"),b=l("%B"),v=l("%Y");function _(S){return(c(S)<S?d:s(S)<S?m:a(S)<S?p:o(S)<S?g:r(S)<S?i(S)<S?y:w:n(S)<S?b:v)(S)}return u.invert=function(S){return new Date(Math.round(h(S)))},u.domain=function(S){return arguments.length?f(Array.from(S,J9)):f().map(Q9)},u.ticks=function(S){var k=f();return t(k[0],k[k.length-1],S??10)},u.tickFormat=function(S,k){return k==null?_:l(k)},u.nice=function(S){var k=f();return(!S||typeof S.range!="function")&&(S=e(k[0],k[k.length-1],S??10)),S?f(d1(k,S)):u},u.copy=function(){return da(u,gh(t,e,n,r,i,o,a,s,c,l))},u}function tk(){return Ge.apply(gh(eh,nh,je,sa,Yr,hr,oa,ra,kn,Fl).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function ek(){return Ge.apply(gh(Jf,th,Xe,la,Hr,Lr,aa,ia,kn,ha).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Bl(){var t=0,e=1,n,r,i,o,a=Me,s=!1,c;function l(h){return h==null||isNaN(h=+h)?c:a(i===0?.5:(h=(o(h)-n)*i,s?Math.max(0,Math.min(1,h)):h))}l.domain=function(h){return arguments.length?([t,e]=h,n=o(t=+t),r=o(e=+e),i=n===r?0:1/(r-n),l):[t,e]},l.clamp=function(h){return arguments.length?(s=!!h,l):s},l.interpolator=function(h){return arguments.length?(a=h,l):a};function u(h){return function(f){var d,m;return arguments.length?([d,m]=f,a=h(d,m),l):[a(0),a(1)]}}return l.range=u(yn),l.rangeRound=u(vo),l.unknown=function(h){return arguments.length?(c=h,l):c},function(h){return o=h,n=h(t),r=h(e),i=n===r?0:1/(r-n),l}}function mr(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function w1(){var t=gr(Bl()(Me));return t.copy=function(){return mr(t,w1())},Wn.apply(t,arguments)}function x1(){var t=fh(Bl()).domain([1,10]);return t.copy=function(){return mr(t,x1()).base(t.base())},Wn.apply(t,arguments)}function _1(){var t=hh(Bl());return t.copy=function(){return mr(t,_1()).constant(t.constant())},Wn.apply(t,arguments)}function mh(){var t=dh(Bl());return t.copy=function(){return mr(t,mh()).exponent(t.exponent())},Wn.apply(t,arguments)}function nk(){return mh.apply(null,arguments).exponent(.5)}function S1(){var t=[],e=Me;function n(r){if(r!=null&&!isNaN(r=+r))return e((nr(t,r,1)-1)/(t.length-1))}return n.domain=function(r){if(!arguments.length)return t.slice();t=[];for(let i of r)i!=null&&!isNaN(i=+i)&&t.push(i);return t.sort(Bt),n},n.interpolator=function(r){return arguments.length?(e=r,n):e},n.range=function(){return t.map((r,i)=>e(i/(t.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(i,o)=>oi(t,o/r))},n.copy=function(){return S1(e).domain(t)},Wn.apply(n,arguments)}function Dl(){var t=0,e=.5,n=1,r=1,i,o,a,s,c,l=Me,u,h=!1,f;function d(p){return p==null||isNaN(p=+p)?f:(p=.5+((p=+u(p))-o)*(r*p<r*o?s:c),l(h?Math.max(0,Math.min(1,p)):p))}d.domain=function(p){return arguments.length?([t,e,n]=p,i=u(t=+t),o=u(e=+e),a=u(n=+n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,d):[t,e,n]},d.clamp=function(p){return arguments.length?(h=!!p,d):h},d.interpolator=function(p){return arguments.length?(l=p,d):l};function m(p){return function(g){var y,w,b;return arguments.length?([y,w,b]=g,l=su(p,[y,w,b]),d):[l(0),l(.5),l(1)]}}return d.range=m(yn),d.rangeRound=m(vo),d.unknown=function(p){return arguments.length?(f=p,d):f},function(p){return u=p,i=p(t),o=p(e),a=p(n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,d}}function k1(){var t=gr(Dl()(Me));return t.copy=function(){return mr(t,k1())},Wn.apply(t,arguments)}function A1(){var t=fh(Dl()).domain([.1,1,10]);return t.copy=function(){return mr(t,A1()).base(t.base())},Wn.apply(t,arguments)}function E1(){var t=hh(Dl());return t.copy=function(){return mr(t,E1()).constant(t.constant())},Wn.apply(t,arguments)}function yh(){var t=dh(Dl());return t.copy=function(){return mr(t,yh()).exponent(t.exponent())},Wn.apply(t,arguments)}function rk(){return yh.apply(null,arguments).exponent(.5)}function pt(t){for(var e=t.length/6|0,n=new Array(e),r=0;r<e;)n[r]="#"+t.slice(r*6,++r*6);return n}var ik=pt("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),ok=pt("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),ak=pt("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),sk=pt("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0"),lk=pt("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),ck=pt("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),uk=pt("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),fk=pt("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),hk=pt("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),dk=pt("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"),pk=pt("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab"),Et=t=>nu(t[t.length-1]),M1=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(pt),gk=Et(M1),C1=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(pt),mk=Et(C1),F1=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(pt),yk=Et(F1),T1=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(pt),bk=Et(T1),O1=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(pt),vk=Et(O1),B1=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(pt),wk=Et(B1),D1=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(pt),xk=Et(D1),$1=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(pt),_k=Et($1),z1=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(pt),Sk=Et(z1),N1=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(pt),kk=Et(N1),R1=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(pt),Ak=Et(R1),P1=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(pt),Ek=Et(P1),I1=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(pt),Mk=Et(I1),L1=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(pt),Ck=Et(L1),q1=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(pt),Fk=Et(q1),Y1=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(pt),Tk=Et(Y1),U1=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(pt),Ok=Et(U1),H1=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(pt),Bk=Et(H1),W1=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(pt),Dk=Et(W1),j1=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(pt),$k=Et(j1),X1=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(pt),zk=Et(X1),G1=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(pt),Nk=Et(G1),V1=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(pt),Rk=Et(V1),Z1=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(pt),Pk=Et(Z1),K1=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(pt),Ik=Et(K1),Q1=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(pt),Lk=Et(Q1),J1=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(pt),qk=Et(J1);function Yk(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-t*(35.34-t*(2381.73-t*(6402.7-t*(7024.72-t*2710.57)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+t*(170.73+t*(52.82-t*(131.46-t*(176.58-t*67.37)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+t*(442.36-t*(2482.43-t*(6167.24-t*(6614.94-t*2475.67)))))))+")"}var Uk=wo(Re(300,.5,0),Re(-240,.5,1)),Hk=wo(Re(-100,.75,.35),Re(80,1.5,.8)),Wk=wo(Re(260,.75,.35),Re(80,1.5,.8)),$l=Re();function jk(t){(t<0||t>1)&&(t-=Math.floor(t));var e=Math.abs(t-.5);return $l.h=360*t-100,$l.s=1.5-1.5*e,$l.l=.8-.9*e,$l+""}var zl=ar(),Xk=Math.PI/3,Gk=Math.PI*2/3;function Vk(t){var e;return t=(.5-t)*Math.PI,zl.r=255*(e=Math.sin(t))*e,zl.g=255*(e=Math.sin(t+Xk))*e,zl.b=255*(e=Math.sin(t+Gk))*e,zl+""}function Zk(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+t*(1172.33-t*(10793.56-t*(33300.12-t*(38394.49-t*14825.05)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+t*(557.33+t*(1225.33-t*(3574.96-t*(1073.77+t*707.56)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+t*(3211.1-t*(15327.97-t*(27814-t*(22569.18-t*6838.66)))))))+")"}function Nl(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}var Kk=Nl(pt("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),Qk=Nl(pt("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),Jk=Nl(pt("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),tA=Nl(pt("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));function dt(t){return function(){return t}}var ty=Math.abs,he=Math.atan2,jn=Math.cos,eA=Math.max,Li=Math.min,Be=Math.sin,Ct=Math.sqrt,de=1e-12,br=Math.PI,Pl=br/2,yr=2*br;function nA(t){return t>1?0:t<-1?br:Math.acos(t)}function ey(t){return t>=1?Pl:t<=-1?-Pl:Math.asin(t)}function ma(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(n==null)e=null;else{let r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);e=r}return t},()=>new lr(e)}function rA(t){return t.innerRadius}function iA(t){return t.outerRadius}function oA(t){return t.startAngle}function aA(t){return t.endAngle}function sA(t){return t&&t.padAngle}function lA(t,e,n,r,i,o,a,s){var c=n-t,l=r-e,u=a-i,h=s-o,f=h*c-u*l;if(!(f*f<de))return f=(u*(e-o)-h*(t-i))/f,[t+f*c,e+f*l]}function Rl(t,e,n,r,i,o,a){var s=t-n,c=e-r,l=(a?o:-o)/Ct(s*s+c*c),u=l*c,h=-l*s,f=t+u,d=e+h,m=n+u,p=r+h,g=(f+m)/2,y=(d+p)/2,w=m-f,b=p-d,v=w*w+b*b,_=i-o,S=f*p-m*d,k=(b<0?-1:1)*Ct(eA(0,_*_*v-S*S)),C=(S*b-w*k)/v,F=(-S*w-b*k)/v,A=(S*b+w*k)/v,E=(-S*w+b*k)/v,D=C-g,$=F-y,M=A-g,T=E-y;return D*D+$*$>M*M+T*T&&(C=A,F=E),{cx:C,cy:F,x01:-u,y01:-h,x11:C*(i/_-1),y11:F*(i/_-1)}}function cA(){var t=rA,e=iA,n=dt(0),r=null,i=oA,o=aA,a=sA,s=null,c=ma(l);function l(){var u,h,f=+t.apply(this,arguments),d=+e.apply(this,arguments),m=i.apply(this,arguments)-Pl,p=o.apply(this,arguments)-Pl,g=ty(p-m),y=p>m;if(s||(s=u=c()),d<f&&(h=d,d=f,f=h),!(d>de))s.moveTo(0,0);else if(g>yr-de)s.moveTo(d*jn(m),d*Be(m)),s.arc(0,0,d,m,p,!y),f>de&&(s.moveTo(f*jn(p),f*Be(p)),s.arc(0,0,f,p,m,y));else{var w=m,b=p,v=m,_=p,S=g,k=g,C=a.apply(this,arguments)/2,F=C>de&&(r?+r.apply(this,arguments):Ct(f*f+d*d)),A=Li(ty(d-f)/2,+n.apply(this,arguments)),E=A,D=A,$,M;if(F>de){var T=ey(F/f*Be(C)),B=ey(F/d*Be(C));(S-=T*2)>de?(T*=y?1:-1,v+=T,_-=T):(S=0,v=_=(m+p)/2),(k-=B*2)>de?(B*=y?1:-1,w+=B,b-=B):(k=0,w=b=(m+p)/2)}var N=d*jn(w),L=d*Be(w),q=f*jn(_),U=f*Be(_);if(A>de){var Z=d*jn(b),Q=d*Be(b),j=f*jn(v),H=f*Be(v),W;if(g<br)if(W=lA(N,L,j,H,Z,Q,q,U)){var J=N-W[0],K=L-W[1],ht=Z-W[0],G=Q-W[1],tt=1/Be(nA((J*ht+K*G)/(Ct(J*J+K*K)*Ct(ht*ht+G*G)))/2),ot=Ct(W[0]*W[0]+W[1]*W[1]);E=Li(A,(f-ot)/(tt-1)),D=Li(A,(d-ot)/(tt+1))}else E=D=0}k>de?D>de?($=Rl(j,H,N,L,d,D,y),M=Rl(Z,Q,q,U,d,D,y),s.moveTo($.cx+$.x01,$.cy+$.y01),D<A?s.arc($.cx,$.cy,D,he($.y01,$.x01),he(M.y01,M.x01),!y):(s.arc($.cx,$.cy,D,he($.y01,$.x01),he($.y11,$.x11),!y),s.arc(0,0,d,he($.cy+$.y11,$.cx+$.x11),he(M.cy+M.y11,M.cx+M.x11),!y),s.arc(M.cx,M.cy,D,he(M.y11,M.x11),he(M.y01,M.x01),!y))):(s.moveTo(N,L),s.arc(0,0,d,w,b,!y)):s.moveTo(N,L),!(f>de)||!(S>de)?s.lineTo(q,U):E>de?($=Rl(q,U,Z,Q,f,-E,y),M=Rl(N,L,j,H,f,-E,y),s.lineTo($.cx+$.x01,$.cy+$.y01),E<A?s.arc($.cx,$.cy,E,he($.y01,$.x01),he(M.y01,M.x01),!y):(s.arc($.cx,$.cy,E,he($.y01,$.x01),he($.y11,$.x11),!y),s.arc(0,0,f,he($.cy+$.y11,$.cx+$.x11),he(M.cy+M.y11,M.cx+M.x11),y),s.arc(M.cx,M.cy,E,he(M.y11,M.x11),he(M.y01,M.x01),!y))):s.arc(0,0,f,_,v,y)}if(s.closePath(),u)return s=null,u+""||null}return l.centroid=function(){var u=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,h=(+i.apply(this,arguments)+ +o.apply(this,arguments))/2-br/2;return[jn(h)*u,Be(h)*u]},l.innerRadius=function(u){return arguments.length?(t=typeof u=="function"?u:dt(+u),l):t},l.outerRadius=function(u){return arguments.length?(e=typeof u=="function"?u:dt(+u),l):e},l.cornerRadius=function(u){return arguments.length?(n=typeof u=="function"?u:dt(+u),l):n},l.padRadius=function(u){return arguments.length?(r=u==null?null:typeof u=="function"?u:dt(+u),l):r},l.startAngle=function(u){return arguments.length?(i=typeof u=="function"?u:dt(+u),l):i},l.endAngle=function(u){return arguments.length?(o=typeof u=="function"?u:dt(+u),l):o},l.padAngle=function(u){return arguments.length?(a=typeof u=="function"?u:dt(+u),l):a},l.context=function(u){return arguments.length?(s=u??null,l):s},l}var uA=Array.prototype.slice;function Ul(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function ay(t){this._context=t}ay.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function Hl(t){return new ay(t)}function _h(t){return t[0]}function Sh(t){return t[1]}function kh(t,e){var n=dt(!0),r=null,i=Hl,o=null,a=ma(s);t=typeof t=="function"?t:t===void 0?_h:dt(t),e=typeof e=="function"?e:e===void 0?Sh:dt(e);function s(c){var l,u=(c=Ul(c)).length,h,f=!1,d;for(r==null&&(o=i(d=a())),l=0;l<=u;++l)!(l<u&&n(h=c[l],l,c))===f&&((f=!f)?o.lineStart():o.lineEnd()),f&&o.point(+t(h,l,c),+e(h,l,c));if(d)return o=null,d+""||null}return s.x=function(c){return arguments.length?(t=typeof c=="function"?c:dt(+c),s):t},s.y=function(c){return arguments.length?(e=typeof c=="function"?c:dt(+c),s):e},s.defined=function(c){return arguments.length?(n=typeof c=="function"?c:dt(!!c),s):n},s.curve=function(c){return arguments.length?(i=c,r!=null&&(o=i(r)),s):i},s.context=function(c){return arguments.length?(c==null?r=o=null:o=i(r=c),s):r},s}function sy(t,e,n){var r=null,i=dt(!0),o=null,a=Hl,s=null,c=ma(l);t=typeof t=="function"?t:t===void 0?_h:dt(+t),e=typeof e=="function"?e:dt(e===void 0?0:+e),n=typeof n=="function"?n:n===void 0?Sh:dt(+n);function l(h){var f,d,m,p=(h=Ul(h)).length,g,y=!1,w,b=new Array(p),v=new Array(p);for(o==null&&(s=a(w=c())),f=0;f<=p;++f){if(!(f<p&&i(g=h[f],f,h))===y)if(y=!y)d=f,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),m=f-1;m>=d;--m)s.point(b[m],v[m]);s.lineEnd(),s.areaEnd()}y&&(b[f]=+t(g,f,h),v[f]=+e(g,f,h),s.point(r?+r(g,f,h):b[f],n?+n(g,f,h):v[f]))}if(w)return s=null,w+""||null}function u(){return kh().defined(i).curve(a).context(o)}return l.x=function(h){return arguments.length?(t=typeof h=="function"?h:dt(+h),r=null,l):t},l.x0=function(h){return arguments.length?(t=typeof h=="function"?h:dt(+h),l):t},l.x1=function(h){return arguments.length?(r=h==null?null:typeof h=="function"?h:dt(+h),l):r},l.y=function(h){return arguments.length?(e=typeof h=="function"?h:dt(+h),n=null,l):e},l.y0=function(h){return arguments.length?(e=typeof h=="function"?h:dt(+h),l):e},l.y1=function(h){return arguments.length?(n=h==null?null:typeof h=="function"?h:dt(+h),l):n},l.lineX0=l.lineY0=function(){return u().x(t).y(e)},l.lineY1=function(){return u().x(t).y(n)},l.lineX1=function(){return u().x(r).y(e)},l.defined=function(h){return arguments.length?(i=typeof h=="function"?h:dt(!!h),l):i},l.curve=function(h){return arguments.length?(a=h,o!=null&&(s=a(o)),l):a},l.context=function(h){return arguments.length?(h==null?o=s=null:s=a(o=h),l):o},l}function fA(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}function hA(t){return t}function dA(){var t=hA,e=fA,n=null,r=dt(0),i=dt(yr),o=dt(0);function a(s){var c,l=(s=Ul(s)).length,u,h,f=0,d=new Array(l),m=new Array(l),p=+r.apply(this,arguments),g=Math.min(yr,Math.max(-yr,i.apply(this,arguments)-p)),y,w=Math.min(Math.abs(g)/l,o.apply(this,arguments)),b=w*(g<0?-1:1),v;for(c=0;c<l;++c)(v=m[d[c]=c]=+t(s[c],c,s))>0&&(f+=v);for(e!=null?d.sort(function(_,S){return e(m[_],m[S])}):n!=null&&d.sort(function(_,S){return n(s[_],s[S])}),c=0,h=f?(g-l*b)/f:0;c<l;++c,p=y)u=d[c],v=m[u],y=p+(v>0?v*h:0)+b,m[u]={data:s[u],index:c,value:v,startAngle:p,endAngle:y,padAngle:w};return m}return a.value=function(s){return arguments.length?(t=typeof s=="function"?s:dt(+s),a):t},a.sortValues=function(s){return arguments.length?(e=s,n=null,a):e},a.sort=function(s){return arguments.length?(n=s,e=null,a):n},a.startAngle=function(s){return arguments.length?(r=typeof s=="function"?s:dt(+s),a):r},a.endAngle=function(s){return arguments.length?(i=typeof s=="function"?s:dt(+s),a):i},a.padAngle=function(s){return arguments.length?(o=typeof s=="function"?s:dt(+s),a):o},a}var ly=Ah(Hl);function cy(t){this._curve=t}cy.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,e){this._curve.point(e*Math.sin(t),e*-Math.cos(t))}};function Ah(t){function e(n){return new cy(t(n))}return e._curve=t,e}function pa(t){var e=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(n){return arguments.length?e(Ah(n)):e()._curve},t}function pA(){return pa(kh().curve(ly))}function gA(){var t=sy().curve(ly),e=t.curve,n=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return pa(n())},delete t.lineX0,t.lineEndAngle=function(){return pa(r())},delete t.lineX1,t.lineInnerRadius=function(){return pa(i())},delete t.lineY0,t.lineOuterRadius=function(){return pa(o())},delete t.lineY1,t.curve=function(a){return arguments.length?e(Ah(a)):e()._curve},t}function ga(t,e){return[(e=+e)*Math.cos(t-=Math.PI/2),e*Math.sin(t)]}var Il=class{constructor(e,n){this._context=e,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,n){switch(e=+e,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,n):this._context.moveTo(e,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,n,e,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,e,this._y0,e,n);break}}this._x0=e,this._y0=n}},wh=class{constructor(e){this._context=e}lineStart(){this._point=0}lineEnd(){}point(e,n){if(e=+e,n=+n,this._point===0)this._point=1;else{let r=ga(this._x0,this._y0),i=ga(this._x0,this._y0=(this._y0+n)/2),o=ga(e,this._y0),a=ga(e,n);this._context.moveTo(...r),this._context.bezierCurveTo(...i,...o,...a)}this._x0=e,this._y0=n}};function uy(t){return new Il(t,!0)}function fy(t){return new Il(t,!1)}function mA(t){return new wh(t)}function yA(t){return t.source}function bA(t){return t.target}function Wl(t){let e=yA,n=bA,r=_h,i=Sh,o=null,a=null,s=ma(c);function c(){let l,u=uA.call(arguments),h=e.apply(this,u),f=n.apply(this,u);if(o==null&&(a=t(l=s())),a.lineStart(),u[0]=h,a.point(+r.apply(this,u),+i.apply(this,u)),u[0]=f,a.point(+r.apply(this,u),+i.apply(this,u)),a.lineEnd(),l)return a=null,l+""||null}return c.source=function(l){return arguments.length?(e=l,c):e},c.target=function(l){return arguments.length?(n=l,c):n},c.x=function(l){return arguments.length?(r=typeof l=="function"?l:dt(+l),c):r},c.y=function(l){return arguments.length?(i=typeof l=="function"?l:dt(+l),c):i},c.context=function(l){return arguments.length?(l==null?o=a=null:a=t(o=l),c):o},c}function vA(){return Wl(uy)}function wA(){return Wl(fy)}function xA(){let t=Wl(mA);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t}var _A=Ct(3),hy={draw(t,e){let n=Ct(e+Li(e/28,.75))*.59436,r=n/2,i=r*_A;t.moveTo(0,n),t.lineTo(0,-n),t.moveTo(-i,-r),t.lineTo(i,r),t.moveTo(-i,r),t.lineTo(i,-r)}},jl={draw(t,e){let n=Ct(e/br);t.moveTo(n,0),t.arc(0,0,n,0,yr)}},dy={draw(t,e){let n=Ct(e/5)/2;t.moveTo(-3*n,-n),t.lineTo(-n,-n),t.lineTo(-n,-3*n),t.lineTo(n,-3*n),t.lineTo(n,-n),t.lineTo(3*n,-n),t.lineTo(3*n,n),t.lineTo(n,n),t.lineTo(n,3*n),t.lineTo(-n,3*n),t.lineTo(-n,n),t.lineTo(-3*n,n),t.closePath()}},py=Ct(1/3),SA=py*2,gy={draw(t,e){let n=Ct(e/SA),r=n*py;t.moveTo(0,-n),t.lineTo(r,0),t.lineTo(0,n),t.lineTo(-r,0),t.closePath()}},my={draw(t,e){let n=Ct(e)*.62625;t.moveTo(0,-n),t.lineTo(n,0),t.lineTo(0,n),t.lineTo(-n,0),t.closePath()}},yy={draw(t,e){let n=Ct(e-Li(e/7,2))*.87559;t.moveTo(-n,0),t.lineTo(n,0),t.moveTo(0,n),t.lineTo(0,-n)}},by={draw(t,e){let n=Ct(e),r=-n/2;t.rect(r,r,n,n)}},vy={draw(t,e){let n=Ct(e)*.4431;t.moveTo(n,n),t.lineTo(n,-n),t.lineTo(-n,-n),t.lineTo(-n,n),t.closePath()}},kA=.8908130915292852,wy=Be(br/10)/Be(7*br/10),AA=Be(yr/10)*wy,EA=-jn(yr/10)*wy,xy={draw(t,e){let n=Ct(e*kA),r=AA*n,i=EA*n;t.moveTo(0,-n),t.lineTo(r,i);for(let o=1;o<5;++o){let a=yr*o/5,s=jn(a),c=Be(a);t.lineTo(c*n,-s*n),t.lineTo(s*r-c*i,c*r+s*i)}t.closePath()}},bh=Ct(3),_y={draw(t,e){let n=-Ct(e/(bh*3));t.moveTo(0,n*2),t.lineTo(-bh*n,-n),t.lineTo(bh*n,-n),t.closePath()}},MA=Ct(3),Sy={draw(t,e){let n=Ct(e)*.6824,r=n/2,i=n*MA/2;t.moveTo(0,-n),t.lineTo(i,r),t.lineTo(-i,r),t.closePath()}},Ve=-.5,Ze=Ct(3)/2,xh=1/Ct(12),CA=(xh/2+1)*3,ky={draw(t,e){let n=Ct(e/CA),r=n/2,i=n*xh,o=r,a=n*xh+n,s=-o,c=a;t.moveTo(r,i),t.lineTo(o,a),t.lineTo(s,c),t.lineTo(Ve*r-Ze*i,Ze*r+Ve*i),t.lineTo(Ve*o-Ze*a,Ze*o+Ve*a),t.lineTo(Ve*s-Ze*c,Ze*s+Ve*c),t.lineTo(Ve*r+Ze*i,Ve*i-Ze*r),t.lineTo(Ve*o+Ze*a,Ve*a-Ze*o),t.lineTo(Ve*s+Ze*c,Ve*c-Ze*s),t.closePath()}},Ay={draw(t,e){let n=Ct(e-Li(e/6,1.7))*.6189;t.moveTo(-n,-n),t.lineTo(n,n),t.moveTo(-n,n),t.lineTo(n,-n)}},FA=[jl,dy,gy,by,xy,_y,ky],TA=[jl,yy,Ay,Sy,hy,vy,my];function OA(t,e){let n=null,r=ma(i);t=typeof t=="function"?t:dt(t||jl),e=typeof e=="function"?e:dt(e===void 0?64:+e);function i(){let o;if(n||(n=o=r()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),o)return n=null,o+""||null}return i.type=function(o){return arguments.length?(t=typeof o=="function"?o:dt(o),i):t},i.size=function(o){return arguments.length?(e=typeof o=="function"?o:dt(+o),i):e},i.context=function(o){return arguments.length?(n=o??null,i):n},i}function vr(){}function Ll(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function Xl(t){this._context=t}Xl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Ll(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Ll(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function BA(t){return new Xl(t)}function Ey(t){this._context=t}Ey.prototype={areaStart:vr,areaEnd:vr,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:Ll(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function DA(t){return new Ey(t)}function My(t){this._context=t}My.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Ll(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function $A(t){return new My(t)}function Cy(t,e){this._basis=new Xl(t),this._beta=e}Cy.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var r=t[0],i=e[0],o=t[n]-r,a=e[n]-i,s=-1,c;++s<=n;)c=s/n,this._basis.point(this._beta*t[s]+(1-this._beta)*(r+c*o),this._beta*e[s]+(1-this._beta)*(i+c*a));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var zA=(function t(e){function n(r){return e===1?new Xl(r):new Cy(r,e)}return n.beta=function(r){return t(+r)},n})(.85);function ql(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function Eh(t,e){this._context=t,this._k=(1-e)/6}Eh.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:ql(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:ql(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var NA=(function t(e){function n(r){return new Eh(r,e)}return n.tension=function(r){return t(+r)},n})(0);function Mh(t,e){this._context=t,this._k=(1-e)/6}Mh.prototype={areaStart:vr,areaEnd:vr,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:ql(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var RA=(function t(e){function n(r){return new Mh(r,e)}return n.tension=function(r){return t(+r)},n})(0);function Ch(t,e){this._context=t,this._k=(1-e)/6}Ch.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:ql(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var PA=(function t(e){function n(r){return new Ch(r,e)}return n.tension=function(r){return t(+r)},n})(0);function Fh(t,e,n){var r=t._x1,i=t._y1,o=t._x2,a=t._y2;if(t._l01_a>de){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>de){var l=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,u=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*l+t._x1*t._l23_2a-e*t._l12_2a)/u,a=(a*l+t._y1*t._l23_2a-n*t._l12_2a)/u}t._context.bezierCurveTo(r,i,o,a,t._x2,t._y2)}function Fy(t,e){this._context=t,this._alpha=e}Fy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Fh(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var IA=(function t(e){function n(r){return e?new Fy(r,e):new Eh(r,0)}return n.alpha=function(r){return t(+r)},n})(.5);function Ty(t,e){this._context=t,this._alpha=e}Ty.prototype={areaStart:vr,areaEnd:vr,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Fh(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var LA=(function t(e){function n(r){return e?new Ty(r,e):new Mh(r,0)}return n.alpha=function(r){return t(+r)},n})(.5);function Oy(t,e){this._context=t,this._alpha=e}Oy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Fh(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var qA=(function t(e){function n(r){return e?new Oy(r,e):new Ch(r,0)}return n.alpha=function(r){return t(+r)},n})(.5);function By(t){this._context=t}By.prototype={areaStart:vr,areaEnd:vr,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function YA(t){return new By(t)}function ny(t){return t<0?-1:1}function ry(t,e,n){var r=t._x1-t._x0,i=e-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),a=(n-t._y1)/(i||r<0&&-0),s=(o*i+a*r)/(r+i);return(ny(o)+ny(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function iy(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function vh(t,e,n){var r=t._x0,i=t._y0,o=t._x1,a=t._y1,s=(o-r)/3;t._context.bezierCurveTo(r+s,i+s*e,o-s,a-s*n,o,a)}function Yl(t){this._context=t}Yl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:vh(this,this._t0,iy(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,vh(this,iy(this,n=ry(this,t,e)),n);break;default:vh(this,this._t0,n=ry(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}};function Dy(t){this._context=new $y(t)}(Dy.prototype=Object.create(Yl.prototype)).point=function(t,e){Yl.prototype.point.call(this,e,t)};function $y(t){this._context=t}$y.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,r,i,o){this._context.bezierCurveTo(e,t,r,n,o,i)}};function UA(t){return new Yl(t)}function HA(t){return new Dy(t)}function zy(t){this._context=t}zy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),n===2)this._context.lineTo(t[1],e[1]);else for(var r=oy(t),i=oy(e),o=0,a=1;a<n;++o,++a)this._context.bezierCurveTo(r[0][o],i[0][o],r[1][o],i[1][o],t[a],e[a]);(this._line||this._line!==0&&n===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}};function oy(t){var e,n=t.length-1,r,i=new Array(n),o=new Array(n),a=new Array(n);for(i[0]=0,o[0]=2,a[0]=t[0]+2*t[1],e=1;e<n-1;++e)i[e]=1,o[e]=4,a[e]=4*t[e]+2*t[e+1];for(i[n-1]=2,o[n-1]=7,a[n-1]=8*t[n-1]+t[n],e=1;e<n;++e)r=i[e]/o[e-1],o[e]-=r,a[e]-=r*a[e-1];for(i[n-1]=a[n-1]/o[n-1],e=n-2;e>=0;--e)i[e]=(a[e]-i[e+1])/o[e];for(o[n-1]=(t[n]+i[n-1])/2,e=0;e<n-1;++e)o[e]=2*t[e+1]-i[e+1];return[i,o]}function WA(t){return new zy(t)}function Gl(t,e){this._context=t,this._t=e}Gl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}break}}this._x=t,this._y=e}};function jA(t){return new Gl(t,.5)}function XA(t){return new Gl(t,0)}function GA(t){return new Gl(t,1)}function qi(t,e){if((a=t.length)>1)for(var n=1,r,i,o=t[e[0]],a,s=o.length;n<a;++n)for(i=o,o=t[e[n]],r=0;r<s;++r)o[r][1]+=o[r][0]=isNaN(i[r][1])?i[r][0]:i[r][1]}function Yi(t){for(var e=t.length,n=new Array(e);--e>=0;)n[e]=e;return n}function VA(t,e){return t[e]}function ZA(t){let e=[];return e.key=t,e}function KA(){var t=dt([]),e=Yi,n=qi,r=VA;function i(o){var a=Array.from(t.apply(this,arguments),ZA),s,c=a.length,l=-1,u;for(let h of o)for(s=0,++l;s<c;++s)(a[s][l]=[0,+r(h,a[s].key,l,o)]).data=h;for(s=0,u=Ul(e(a));s<c;++s)a[u[s]].index=s;return n(a,u),a}return i.keys=function(o){return arguments.length?(t=typeof o=="function"?o:dt(Array.from(o)),i):t},i.value=function(o){return arguments.length?(r=typeof o=="function"?o:dt(+o),i):r},i.order=function(o){return arguments.length?(e=o==null?Yi:typeof o=="function"?o:dt(Array.from(o)),i):e},i.offset=function(o){return arguments.length?(n=o??qi,i):n},i}function QA(t,e){if((r=t.length)>0){for(var n,r,i=0,o=t[0].length,a;i<o;++i){for(a=n=0;n<r;++n)a+=t[n][i][1]||0;if(a)for(n=0;n<r;++n)t[n][i][1]/=a}qi(t,e)}}function JA(t,e){if((c=t.length)>0)for(var n,r=0,i,o,a,s,c,l=t[e[0]].length;r<l;++r)for(a=s=0,n=0;n<c;++n)(o=(i=t[e[n]][r])[1]-i[0])>0?(i[0]=a,i[1]=a+=o):o<0?(i[1]=s,i[0]=s+=o):(i[0]=0,i[1]=o)}function tE(t,e){if((i=t.length)>0){for(var n=0,r=t[e[0]],i,o=r.length;n<o;++n){for(var a=0,s=0;a<i;++a)s+=t[a][n][1]||0;r[n][1]+=r[n][0]=-s/2}qi(t,e)}}function eE(t,e){if(!(!((a=t.length)>0)||!((o=(i=t[e[0]]).length)>0))){for(var n=0,r=1,i,o,a;r<o;++r){for(var s=0,c=0,l=0;s<a;++s){for(var u=t[e[s]],h=u[r][1]||0,f=u[r-1][1]||0,d=(h-f)/2,m=0;m<s;++m){var p=t[e[m]],g=p[r][1]||0,y=p[r-1][1]||0;d+=g-y}c+=h,l+=d*h}i[r-1][1]+=i[r-1][0]=n,c&&(n-=l/c)}i[r-1][1]+=i[r-1][0]=n,qi(t,e)}}function Ny(t){var e=t.map(nE);return Yi(t).sort(function(n,r){return e[n]-e[r]})}function nE(t){for(var e=-1,n=0,r=t.length,i,o=-1/0;++e<r;)(i=+t[e][1])>o&&(o=i,n=e);return n}function Ry(t){var e=t.map(Py);return Yi(t).sort(function(n,r){return e[n]-e[r]})}function Py(t){for(var e=0,n=-1,r=t.length,i;++n<r;)(i=+t[n][1])&&(e+=i);return e}function rE(t){return Ry(t).reverse()}function iE(t){var e=t.length,n,r,i=t.map(Py),o=Ny(t),a=0,s=0,c=[],l=[];for(n=0;n<e;++n)r=o[n],a<s?(a+=i[r],c.push(r)):(s+=i[r],l.push(r));return l.reverse().concat(c)}function oE(t){return Yi(t).reverse()}var Vl=t=>()=>t;function aE(t,{sourceEvent:e,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function An(t,e,n){this.k=t,this.x=e,this.y=n}An.prototype={constructor:An,scale:function(t){return t===1?this:new An(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new An(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Zl=new An(1,0,0);Ly.prototype=An.prototype;function Ly(t){for(;!t.__zoom;)if(!(t=t.parentNode))return Zl;return t.__zoom}function Th(t){t.stopImmediatePropagation()}function ya(t){t.preventDefault(),t.stopImmediatePropagation()}function sE(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function lE(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function Iy(){return this.__zoom||Zl}function cE(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function uE(){return navigator.maxTouchPoints||"ontouchstart"in this}function fE(t,e,n){var r=t.invertX(e[0][0])-n[0][0],i=t.invertX(e[1][0])-n[1][0],o=t.invertY(e[0][1])-n[0][1],a=t.invertY(e[1][1])-n[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function hE(){var t=sE,e=lE,n=fE,r=cE,i=uE,o=[0,1/0],a=[[-1/0,-1/0],[1/0,1/0]],s=250,c=au,l=Ye("start","zoom","end"),u,h,f,d=500,m=150,p=0,g=10;function y(M){M.property("__zoom",Iy).on("wheel.zoom",C,{passive:!1}).on("mousedown.zoom",F).on("dblclick.zoom",A).filter(i).on("touchstart.zoom",E).on("touchmove.zoom",D).on("touchend.zoom touchcancel.zoom",$).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}y.transform=function(M,T,B,N){var L=M.selection?M.selection():M;L.property("__zoom",Iy),M!==L?_(M,T,B,N):L.interrupt().each(function(){S(this,arguments).event(N).start().zoom(null,typeof T=="function"?T.apply(this,arguments):T).end()})},y.scaleBy=function(M,T,B,N){y.scaleTo(M,function(){var L=this.__zoom.k,q=typeof T=="function"?T.apply(this,arguments):T;return L*q},B,N)},y.scaleTo=function(M,T,B,N){y.transform(M,function(){var L=e.apply(this,arguments),q=this.__zoom,U=B==null?v(L):typeof B=="function"?B.apply(this,arguments):B,Z=q.invert(U),Q=typeof T=="function"?T.apply(this,arguments):T;return n(b(w(q,Q),U,Z),L,a)},B,N)},y.translateBy=function(M,T,B,N){y.transform(M,function(){return n(this.__zoom.translate(typeof T=="function"?T.apply(this,arguments):T,typeof B=="function"?B.apply(this,arguments):B),e.apply(this,arguments),a)},null,N)},y.translateTo=function(M,T,B,N,L){y.transform(M,function(){var q=e.apply(this,arguments),U=this.__zoom,Z=N==null?v(q):typeof N=="function"?N.apply(this,arguments):N;return n(Zl.translate(Z[0],Z[1]).scale(U.k).translate(typeof T=="function"?-T.apply(this,arguments):-T,typeof B=="function"?-B.apply(this,arguments):-B),q,a)},N,L)};function w(M,T){return T=Math.max(o[0],Math.min(o[1],T)),T===M.k?M:new An(T,M.x,M.y)}function b(M,T,B){var N=T[0]-B[0]*M.k,L=T[1]-B[1]*M.k;return N===M.x&&L===M.y?M:new An(M.k,N,L)}function v(M){return[(+M[0][0]+ +M[1][0])/2,(+M[0][1]+ +M[1][1])/2]}function _(M,T,B,N){M.on("start.zoom",function(){S(this,arguments).event(N).start()}).on("interrupt.zoom end.zoom",function(){S(this,arguments).event(N).end()}).tween("zoom",function(){var L=this,q=arguments,U=S(L,q).event(N),Z=e.apply(L,q),Q=B==null?v(Z):typeof B=="function"?B.apply(L,q):B,j=Math.max(Z[1][0]-Z[0][0],Z[1][1]-Z[0][1]),H=L.__zoom,W=typeof T=="function"?T.apply(L,q):T,J=c(H.invert(Q).concat(j/H.k),W.invert(Q).concat(j/W.k));return function(K){if(K===1)K=W;else{var ht=J(K),G=j/ht[2];K=new An(G,Q[0]-ht[0]*G,Q[1]-ht[1]*G)}U.zoom(null,K)}})}function S(M,T,B){return!B&&M.__zooming||new k(M,T)}function k(M,T){this.that=M,this.args=T,this.active=0,this.sourceEvent=null,this.extent=e.apply(M,T),this.taps=0}k.prototype={event:function(M){return M&&(this.sourceEvent=M),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(M,T){return this.mouse&&M!=="mouse"&&(this.mouse[1]=T.invert(this.mouse[0])),this.touch0&&M!=="touch"&&(this.touch0[1]=T.invert(this.touch0[0])),this.touch1&&M!=="touch"&&(this.touch1[1]=T.invert(this.touch1[0])),this.that.__zoom=T,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(M){var T=Xt(this.that).datum();l.call(M,this.that,new aE(M,{sourceEvent:this.sourceEvent,target:y,transform:this.that.__zoom,dispatch:l}),T)}};function C(M,...T){if(!t.apply(this,arguments))return;var B=S(this,T).event(M),N=this.__zoom,L=Math.max(o[0],Math.min(o[1],N.k*Math.pow(2,r.apply(this,arguments)))),q=le(M);if(B.wheel)(B.mouse[0][0]!==q[0]||B.mouse[0][1]!==q[1])&&(B.mouse[1]=N.invert(B.mouse[0]=q)),clearTimeout(B.wheel);else{if(N.k===L)return;B.mouse=[q,N.invert(q)],$n(this),B.start()}ya(M),B.wheel=setTimeout(U,m),B.zoom("mouse",n(b(w(N,L),B.mouse[0],B.mouse[1]),B.extent,a));function U(){B.wheel=null,B.end()}}function F(M,...T){if(f||!t.apply(this,arguments))return;var B=M.currentTarget,N=S(this,T,!0).event(M),L=Xt(M.view).on("mousemove.zoom",Q,!0).on("mouseup.zoom",j,!0),q=le(M,B),U=M.clientX,Z=M.clientY;ui(M.view),Th(M),N.mouse=[q,this.__zoom.invert(q)],$n(this),N.start();function Q(H){if(ya(H),!N.moved){var W=H.clientX-U,J=H.clientY-Z;N.moved=W*W+J*J>p}N.event(H).zoom("mouse",n(b(N.that.__zoom,N.mouse[0]=le(H,B),N.mouse[1]),N.extent,a))}function j(H){L.on("mousemove.zoom mouseup.zoom",null),fi(H.view,N.moved),ya(H),N.event(H).end()}}function A(M,...T){if(t.apply(this,arguments)){var B=this.__zoom,N=le(M.changedTouches?M.changedTouches[0]:M,this),L=B.invert(N),q=B.k*(M.shiftKey?.5:2),U=n(b(w(B,q),N,L),e.apply(this,T),a);ya(M),s>0?Xt(this).transition().duration(s).call(_,U,N,M):Xt(this).call(y.transform,U,N,M)}}function E(M,...T){if(t.apply(this,arguments)){var B=M.touches,N=B.length,L=S(this,T,M.changedTouches.length===N).event(M),q,U,Z,Q;for(Th(M),U=0;U<N;++U)Z=B[U],Q=le(Z,this),Q=[Q,this.__zoom.invert(Q),Z.identifier],L.touch0?!L.touch1&&L.touch0[2]!==Q[2]&&(L.touch1=Q,L.taps=0):(L.touch0=Q,q=!0,L.taps=1+!!u);u&&(u=clearTimeout(u)),q&&(L.taps<2&&(h=Q[0],u=setTimeout(function(){u=null},d)),$n(this),L.start())}}function D(M,...T){if(this.__zooming){var B=S(this,T).event(M),N=M.changedTouches,L=N.length,q,U,Z,Q;for(ya(M),q=0;q<L;++q)U=N[q],Z=le(U,this),B.touch0&&B.touch0[2]===U.identifier?B.touch0[0]=Z:B.touch1&&B.touch1[2]===U.identifier&&(B.touch1[0]=Z);if(U=B.that.__zoom,B.touch1){var j=B.touch0[0],H=B.touch0[1],W=B.touch1[0],J=B.touch1[1],K=(K=W[0]-j[0])*K+(K=W[1]-j[1])*K,ht=(ht=J[0]-H[0])*ht+(ht=J[1]-H[1])*ht;U=w(U,Math.sqrt(K/ht)),Z=[(j[0]+W[0])/2,(j[1]+W[1])/2],Q=[(H[0]+J[0])/2,(H[1]+J[1])/2]}else if(B.touch0)Z=B.touch0[0],Q=B.touch0[1];else return;B.zoom("touch",n(b(U,Z,Q),B.extent,a))}}function $(M,...T){if(this.__zooming){var B=S(this,T).event(M),N=M.changedTouches,L=N.length,q,U;for(Th(M),f&&clearTimeout(f),f=setTimeout(function(){f=null},d),q=0;q<L;++q)U=N[q],B.touch0&&B.touch0[2]===U.identifier?delete B.touch0:B.touch1&&B.touch1[2]===U.identifier&&delete B.touch1;if(B.touch1&&!B.touch0&&(B.touch0=B.touch1,delete B.touch1),B.touch0)B.touch0[1]=this.__zoom.invert(B.touch0[0]);else if(B.end(),B.taps===2&&(U=le(U,this),Math.hypot(h[0]-U[0],h[1]-U[1])<g)){var Z=Xt(this).on("dblclick.zoom");Z&&Z.apply(this,arguments)}}}return y.wheelDelta=function(M){return arguments.length?(r=typeof M=="function"?M:Vl(+M),y):r},y.filter=function(M){return arguments.length?(t=typeof M=="function"?M:Vl(!!M),y):t},y.touchable=function(M){return arguments.length?(i=typeof M=="function"?M:Vl(!!M),y):i},y.extent=function(M){return arguments.length?(e=typeof M=="function"?M:Vl([[+M[0][0],+M[0][1]],[+M[1][0],+M[1][1]]]),y):e},y.scaleExtent=function(M){return arguments.length?(o[0]=+M[0],o[1]=+M[1],y):[o[0],o[1]]},y.translateExtent=function(M){return arguments.length?(a[0][0]=+M[0][0],a[1][0]=+M[1][0],a[0][1]=+M[0][1],a[1][1]=+M[1][1],y):[[a[0][0],a[0][1]],[a[1][0],a[1][1]]]},y.constrain=function(M){return arguments.length?(n=M,y):n},y.duration=function(M){return arguments.length?(s=+M,y):s},y.interpolate=function(M){return arguments.length?(c=M,y):c},y.on=function(){var M=l.on.apply(l,arguments);return M===l?y:M},y.clickDistance=function(M){return arguments.length?(p=(M=+M)*M,y):Math.sqrt(p)},y.tapDistance=function(M){return arguments.length?(g=+M,y):g},y}function Kl(t){return t.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function at(t,e){return Object.keys(t).reduce((r,i)=>(i in e||(r[i]=t[i]),r),{})}var Oh=["moveX","moveY"],dE=["fill","fillOpacity","stroke","strokeOpacity","strokeWidth","strokeDasharray","opacity","color","cursor","pointerEvents"],pE=["index","rowID","text","labelAdjustmentOptions",...Oh];function ba(t){return Object.keys(t??{}).some(e=>!dE.includes(e)&&!pE.includes(e)&&e in document.documentElement.style)}function rt(t,e){for(let[n,r]of Object.entries(e))Oh.includes(n)||t.style(Kl(n),r)}function Ui(t,e,n,r=[]){return t.flatMap((i,o)=>{let a=e&&n?n[i[e]]:void 0,s=r.find(l=>l.rowID==null&&l.index===o),c=r.find(l=>l.rowID!=null&&l.rowID===i.rowID);return a||s||c?[{...a,...s,...c,index:o}]:[]})}function Hi(t,e,n){let r=e.find(i=>i.index===n);if(r)for(let[i,o]of Object.entries(r))["index","rowID","text","labelAdjustmentOptions",...Oh].includes(i)||t.style(Kl(i),o)}function qy(t){let e=typeof t=="string"?R.color(t)?.rgb():null;return!!e&&e.r===255&&e.g===255&&e.b===255&&e.opacity===1}function Xn(t,e){let{part:n,text:r,...i}=(t??[]).find(o=>o.part===e)??{};return{text:r,style:i}}function De(t,e={}){t.each(function(){let n=Number(e.moveX??0),r=Number(e.moveY??0),i=this.getAttribute("transform")||"";this.__drawn__={...this.__drawn__,moveX:n,moveY:r},this.setAttribute("transform",`translate(${n}, ${r}) ${i}`.trim())})}function jr(t){if(t==null)return[];if(Array.isArray(t))return t;let e=Object.keys(t),n=e.length?t[e[0]].length:0,r=[];for(let i=0;i<n;i++){let o={};for(let a of e)o[a]=t[a][i];r.push(o)}return r}function Xr(t){for(var e=1;document.getElementById(t+"-"+e);)e++;return t+"-"+e}function wr(t){return t.replace(/[^a-zA-Z0-9_-]/g,"_")}function Le(t,e){if(typeof t>"u"||t===null)return 0;if(typeof t=="number")return t;var n;if(t.includes("%")){var r=parseFloat(t),i=r/100;n=Math.round(i*e)}else t.includes("px"),n=parseFloat(t);return Math.floor(n)}function Wr(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function va(t,e){let n={...t};if(!Wr(e))return n;for(let r in e){let i=e[r];if(i!=null)if(Wr(i))n[r]=va(Wr(n[r])?n[r]:{},i);else{if(Array.isArray(i)&&i.length===0&&Wr(n[r]))continue;n[r]=i}}return n}function gE(t,e){if(typeof t=="number")return t*e;let n=typeof t=="string"&&t.trim().match(/^(-?[\d.]+)([a-z%]*)$/i);return n?`${parseFloat(n[1])*e}${n[2]}`:t}function Uy(t,e){if(!Wr(t))return t;let n={};for(let r in t)n[r]=r==="fontSize"?gE(t[r],e):Uy(t[r],e);return n}function ut(t,e,n={},r=this?.themeOptions){let i=r?.[e],o=va(t,i),a=Gn(r);return a!==1&&(o=Uy(o,a)),va(o,n)}function Gn(t){let e=t?.textScale;return typeof e=="number"&&e>0?e:1}var Yy=new Set;function qe(t){Yy.has(t)||(Yy.add(t),console.warn(t))}function ft(t,e,n,r){this.svg=t,this.margin=e,this.width=n,this.height=r}function Ql(t,e,n,r={},i={}){let o={id:e||"svg-container",margin:{top:5,right:50,bottom:5,left:50},style:{backgroundColor:"#0000"},width:null,height:null},a=ut(o,n,r,i),{id:s,margin:c,style:l,width:u,height:h}=a,f=at(l,o.style),d={top:Le(c?.top??0,h),right:Le(c?.right??0,u),bottom:Le(c?.bottom??0,h),left:Le(c?.left??0,u)};var m=R.select(t).append("svg").attr("id",Xr(s)).attr("width",u||"100%").attr("height",h||"100%").attr("preserveAspectRatio","xMinYMin meet").attr("viewBox",`0 0 ${u} ${h}`).classed("geneviewer-svg-content",!0).style("box-sizing","border-box").style("background-color",l.backgroundColor).each(function(){let g=R.select(this);rt(g,f)});Object.entries(l).forEach(([g,y])=>{m.style(g,y)});let p=new ft(m,d,u,h);return p.themeOptions=i,p}ft.prototype.cluster=function(t={}){let e={separateStrands:!1,strandSpacing:0,preventGeneOverlap:!1,overlapSpacing:5},n=ut.call(this,e,"clusterOptions",t),{separateStrands:r,strandSpacing:i,preventGeneOverlap:o,overlapSpacing:a}=n;return this.separateStrands=r,this.strandSpacing=i,this.preventGeneOverlap=o,this.overlapSpacing=a,this};ft.prototype.geneData=function(t,e){return this.dataAll=t,this.data=e.map(n=>{var r={...n};return r.cluster=String(r.cluster),r.direction="forward",r.start>r.end&&(r.direction="reverse"),r}),this};function mE(t,e){for(let n of e)if(t>=n.start&&t<=n.end)return!0;return!1}function Bh(t,e,n,r,i,o=!1){i=[...i].sort((h,f)=>h.start-f.start);let a=0;for(let h of i)h.start>=t&&h.end<=e&&(a+=h.end-h.start);let s=o?e-a:t,c=o?t:e-a,l=R.scaleLinear().domain([s,c]).range([0,n-r.left-r.right]),u=function(h){if(mE(h,i))return null;let f=0;for(let d of i)if(h>d.end)f+=d.end-d.start;else break;return h=h-f,l(h)};for(let h in l)typeof l[h]=="function"?u[h]=(...f)=>{let d=l[h](...f);return d===l?u:d}:u[h]=l[h];return u.invert=function(h){let f=l.invert(h);for(let d of i)if(f>d.start)f+=d.end-d.start;else break;return f},u}function Wi(t,e,n,r,i=[]){let o;if(typeof n=="string"&&n.endsWith("%"))o=parseFloat(n)/100;else if(typeof n=="number"&&n>=0&&n<=100)o=n/100;else return qe("Invalid padding format. Padding should be a percentage (as a string or a number between 0 and 100). No padding applied."),r==="start"?t:e;let[a,s]=[Math.min(t,e),Math.max(t,e)],c=i.reduce((u,h)=>u+Math.max(0,Math.min(h.end,s)-Math.max(h.start,a)),0);return o=(s-a-c)*o,r==="start"?t-o:r==="end"?e+o:(console.error('Invalid "to" parameter in addScalePadding. Must be "start" or "end".'),r==="start"?t:e)}ft.prototype.scale=function(t={}){if(!this.data)return console.error("No data has been added to this cluster container."),this;let e={start:null,end:null,xMin:null,xMax:null,padding:2,hidden:!0,reverse:!1,axisPosition:"bottom",breaks:[],tickValues:null,ticksCount:10,ticksFormat:",.0f",y:null,tickStyle:{stroke:"grey",strokeWidth:1,lineLength:6},textStyle:{fill:"black",fontSize:"10px",fontFamily:"Arial",cursor:"default"},lineStyle:{stroke:"grey",strokeWidth:1}},n=ut.call(this,e,"scaleOptions",t),{start:r,end:i,xMin:o,xMax:a,padding:s,hidden:c,breaks:l,tickValues:u,reverse:h,axisPosition:f,ticksCount:d,ticksFormat:m,y:p,tickStyle:g,textStyle:y,lineStyle:w}=n,b=p!==null?p:f==="bottom"?20:80,v=at(g,e.tickStyle),_=at(y,e.textStyle),S=at(w,e.lineStyle);if(r!==null&&(this.data=this.data.filter(C=>C.start>=r)),i!==null&&(this.data=this.data.filter(C=>C.end<=i)),this.data=this.data.filter(C=>!l.some(F=>C.start>=F.start&&C.start<=F.end||C.end>=F.start&&C.end<=F.end)),this.reverse=h,this.padding=s,this.minStart=r!==null?r:o!==null?o:R.min(this.data,C=>Math.min(C.start,C.end)),this.maxEnd=i!==null?i:a!==null?a:R.max(this.data,C=>Math.max(C.start,C.end)),r==null&&(this.minStart=Wi(this.minStart,this.maxEnd,s,"start",l)),i==null&&(this.maxEnd=Wi(this.minStart,this.maxEnd,s,"end",l)),this.xScale=Bh(this.minStart,this.maxEnd,this.width,this.margin,l,h),this.fullScale=Bh(this.minStart,this.maxEnd,this.width,this.margin,l,h),this.zoom=null,t.zoom){let C=this.width-this.margin.left-this.margin.right,F=T=>{let B=l.find(N=>T>=N.start&&T<=N.end);return this.fullScale(B?B.end+1e-9:T)/C},{from:A,to:E,mode:D}=t.zoom,[$,M]=(D==="absolute"?[F(A),F(E)]:[A,E]).sort((T,B)=>T-B);M-$>1e-9||(M=$+1e-9),($>1e-9||M<1-1e-9)&&(this.zoom=[$,M],this.xScale.range([-$*C/(M-$),(1-$)*C/(M-$)]))}this.yScale=R.scaleLinear().domain([0,100]).range([this.height-this.margin.bottom-this.margin.top,0]),this.breaks=l.filter(C=>C.start>=this.minStart&&C.end<=this.maxEnd);let k=this;if(!c){let C=this.yScale?this.yScale(b):b,F=this.svg.append("g").attr("data-component","scale").attr("transform",`translate(${this.margin.left},${this.margin.top+C})`),A=this.width-this.margin.left-this.margin.right,E=this.zoom?[this.xScale.invert(0),this.xScale.invert(A)].sort((T,B)=>T-B):[this.minStart,this.maxEnd],D=R.scaleLinear().domain(E).range([0,A]),$=R.axisBottom(D).tickFormat(R.format(m));Array.isArray(u)&&u.length>0?$.tickValues(u):typeof u=="number"?$.tickValues([u]):$.ticks(d);let M=F.append("g").call($);De(F,n.itemStyle?.[0]),M.selectAll(".tick line").style("stroke",g.stroke).style("stroke-width",g.strokeWidth).attr("y2",g.lineLength).each(function(){let T=R.select(this);rt(T,v)}),M.selectAll(".tick text").style("fill",y.fill).style("font-size",y.fontSize).style("font-family",y.fontFamily).style("cursor",y.cursor).each(function(){let T=R.select(this);rt(T,_)}),M.selectAll(".tick").each(function(T){let B=R.select(this).data()[0],N=k.xScale(B);N===null||N<-.5||N>A+.5?R.select(this).remove():R.select(this).attr("transform",`translate(${N},0)`)}),M.select(".domain").style("stroke",w.stroke).style("stroke-width",w.strokeWidth).each(function(){let T=R.select(this);rt(T,S)})}return this};function Dh(t,e,n={}){let r={dyAdjust:0,lineHeightEms:1.05,lineHeightSquishFactor:1,splitOnHyphen:!0,centreVertically:!0},{dyAdjust:i,lineHeightEms:o,lineHeightSquishFactor:a,splitOnHyphen:s,centreVertically:c}={...r,...n};t.each(function(){var l=R.select(this),u=l.attr("x"),h=l.attr("y"),f=[],d=[],m=function(_){d.length&&f.push({pieces:d,space:_}),d=[]};Hy(l.text()).forEach(function(_){_.content.split(/(\s+)/).forEach(function(S){if(/^\s+$/.test(S)){m(!0);return}var k=s?S.split(/(?<=-)/):[S];k.forEach(function(C,F){C&&d.push({..._,content:C}),F<k.length-1&&m(!1)})})}),m(!0);var p=function(_,S){_.selectAll("*").remove(),S.forEach(function(k,C){k.pieces.forEach(function(F,A){var E=A===k.pieces.length-1&&C<S.length-1,D=E&&k.space?" ":"",$=_.append("tspan").text(F.content+D);F.bold&&$.style("font-weight","bold"),F.italic&&$.style("font-style","italic"),F.underline&&$.style("text-decoration","underline")})})};l.text(null);for(var g=l.append("tspan").attr("class","wrap-line"),y=[],w=0;w<f.length;w++)y.push(f[w]),p(g,y),g.node().getComputedTextLength()>e&&y.length>1&&(y.pop(),p(g,y),y=[f[w]],g=l.append("tspan").attr("class","wrap-line"),p(g,y));var b=l.selectAll("tspan.wrap-line"),v=o;if(b.size()>2)for(var w=0;w<b.size();w++)v*=a;b.each(function(_,S){var k=S*v+i;c&&(k-=(b.size()-1)*v/2),R.select(this).attr("y",h).attr("x",u).attr("dy",k+"em")})})}function Jl(t,e,n=null){let r={rotation:-65,offsetX:0,offsetY:0,dx:"0em",dy:"0em"},i=(b,v)=>{let _=Math.max(0,Math.min(b.right,v.right)-Math.max(b.left,v.left)),S=Math.max(0,Math.min(b.bottom,v.bottom)-Math.max(b.top,v.top)),k=_*S,C=(b.right-b.left)*(b.bottom-b.top);return k/C*100},o=new Map,a=(b,v)=>{let _=b.parentNode;if(!o.has(_)){let E=_.getScreenCTM?.();o.set(_,E?DOMMatrix.fromMatrix(E):null)}let S=o.get(_);if(!S)return b.getBoundingClientRect();let k=b.transform?.baseVal?.consolidate();k&&(S=S.multiply(DOMMatrix.fromMatrix(k.matrix)));let C=[[v.x,v.y],[v.x+v.width,v.y],[v.x,v.y+v.height],[v.x+v.width,v.y+v.height]].map(([E,D])=>new DOMPoint(E,D).matrixTransform(S)),F=C.map(E=>E.x),A=C.map(E=>E.y);return{left:Math.min(...F),right:Math.max(...F),top:Math.min(...A),bottom:Math.max(...A)}},s=new Map,c=b=>{let v=b.getBBox();return s.set(b,v),a(b,v)},l=(b,v)=>{if(v==null||v==="")return 0;let _=String(v).trim().match(/^([-+]?[0-9.]+(?:e[-+]?[0-9]+)?)(px|em)?$/i);if(!_)return null;let S=parseFloat(_[1]);if(S===0||!_[2]||_[2].toLowerCase()==="px")return S;let k=b.style.fontSize.endsWith("px")?b.style.fontSize:getComputedStyle(b).fontSize;return S*parseFloat(k)},u=50,h=new Map,f=b=>{if(!Number.isFinite(b.left)||!Number.isFinite(b.right))return[];let v=[];for(let _=Math.floor(b.left/u);_<=Math.floor(b.right/u);_++)v.push(_);return v},d=(b,v)=>{let _=g.get(b);_&&f(_).forEach(S=>h.get(S).delete(b)),g.set(b,v),f(v).forEach(S=>{h.has(S)||h.set(S,new Set),h.get(S).add(b)})},m=b=>{let v=new Set;return f(g.get(b)).forEach(_=>h.get(_)?.forEach(S=>v.add(S))),v.delete(b),v},p=null,g=new Map,y=b=>{p&&d(b,c(b))};return{adjust:(b,v={})=>{p||(p=t.svg.selectAll(e).nodes(),p.forEach(T=>d(T,c(T))));let{rotation:_,offsetX:S,offsetY:k,dx:C,dy:F,hide:A=!1}={...r,...v},E=s.get(b)??b.getBBox(),D=E.x+E.width/2,$=E.y;D+=S,$+=_<0?E.height:E.height/2,$+=k,g.has(b)||d(b,c(b));let M=g.get(b);for(let T of m(b))if(i(M,g.get(T))>0){if(A)return R.select(b).style("display","none"),f(M).forEach(K=>h.get(K)?.delete(b)),g.delete(b),!1;let B=parseFloat(b.getAttribute("y")),N=l(b,b.getAttribute("dy")),L=l(b,C),q=l(b,F),U=K=>Math.abs(K)*Math.PI/180,Z=K=>E.width*Math.sin(U(K))+E.height*Math.cos(U(K)),Q=$+(q??0),j=K=>!n||(K<0?Q-Z(K)>=n.top:Q+Z(K)<=n.bottom),H=E.width*Math.cos(U(_)),W=D+S+(L??0);if(!j(_)||n&&W+H>n.right)return R.select(b).style("display","none"),f(M).forEach(K=>h.get(K)?.delete(b)),g.delete(b),!1;let J=_;if(R.select(b).style("text-anchor","start").attr("dx",C).attr("dy",F).attr("x",D+S).attr("y",$).attr("transform",`rotate(${J}, ${D}, ${$})`),b.__drawn__={...b.__drawn__,rotate:J},!b.childElementCount&&Number.isFinite(B)&&[N,L,q].every(Number.isFinite)){let K={x:D+S+L,y:E.y+($+q)-(B+N),width:E.width,height:E.height};s.set(b,K),d(b,a(b,K))}else y(b);return!0}return!1},refresh:y}}function Hy(t){let e=/<([biu])>(.*?)<\/\1>/g,n=[],r=a=>({content:a,bold:!1,italic:!1,underline:!1}),i=0,o;for(;(o=e.exec(t))!==null;){o.index>i&&n.push(r(t.substring(i,o.index)));let[,a,s]=o;n.push({content:s,bold:a==="b",italic:a==="i",underline:a==="u"}),i=o.index+o[0].length}return i<t.length&&n.push(r(t.substring(i))),n}function xr(t,e,n){Hy(t).forEach(({content:r,bold:i,italic:o,underline:a})=>{let s=e.append("tspan").style("font-weight",i?"bold":n.weight).style("font-style",o?"italic":n.style).text(r);a&&s.style("text-decoration","underline")})}function $h(t,e,n,r=!1){let{width:i,margin:o}=t;switch(e){case"left":return{xPos:r?o.left+n:n,textAnchor:"start"};case"right":return{xPos:(r?i-o.right:i-o.left-o.right)+n,textAnchor:"end"};default:{let a=i-o.left-o.right;return{xPos:(r?o.left+a/2:a/2)+n,textAnchor:"middle"}}}}function wa(t,e,n,r){for(let o of Object.keys(r))t.style(Kl(o),n[o]);let i=at(n,r);t.each(function(){let o=R.select(this);xr(e,o,n),rt(o,i)}),De(t,n)}ft.prototype.title=function(t,e,n=!0,r={},i="titleOptions"){if(!t&&!e)return this;if(!n)return this;let o=Gn(this.themeOptions),a={x:0,y:20*o,align:"center",spacing:20*o,titleFont:{fontSize:"16px",fontStyle:"normal",fontWeight:"bold",textDecoration:"normal",fontFamily:"sans-serif",cursor:"default"},subtitleFont:{fontSize:"14px",fontStyle:"normal",fontWeight:"normal",textDecoration:"none",fontFamily:"sans-serif",cursor:"default"}},s=ut.call(this,a,i,r),{x:c,y:l,align:u,spacing:h,itemStyle:f}=s,d=Xn(f,"title"),m=Xn(f,"subtitle"),p={...s.titleFont,...d.style},g={...s.subtitleFont,...m.style};t=d.text??t,e=m.text??e;let{xPos:y,textAnchor:w}=$h(this,u,c);var b=this.svg.append("g").attr("data-component",i==="clusterTitleOptions"?"clusterTitle":"title").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);return t&&b.append("text").attr("data-part","title").property("__text__",t).attr("x",y).attr("y",l+this.margin.top/2).attr("text-anchor",w).call(wa,t,p,a.titleFont),e&&b.append("text").attr("data-part","subtitle").property("__text__",e).attr("x",y).attr("y",l+this.margin.top/2+h).attr("text-anchor",w).call(wa,e,g,a.subtitleFont),this};ft.prototype.footer=function(t,e,n=!0,r={}){if(!t&&!e)return this;if(!n)return this;let i={x:0,y:0,align:"left",spacing:12*Gn(this.themeOptions),titleFont:{fontSize:"12px",fontWeight:"bold",fontStyle:"normal",fontFamily:"sans-serif",cursor:"default"},subtitleFont:{fontSize:"10px",fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",cursor:"default"}},o=ut.call(this,i,"footerOptions",r),{x:a,y:s,align:c,spacing:l,itemStyle:u}=o,h=Xn(u,"title"),f=Xn(u,"subtitle"),d={...o.titleFont,...h.style},m={...o.subtitleFont,...f.style};t=h.text??t,e=f.text??e;let{xPos:p,textAnchor:g}=$h(this,c,a,!0),y=this.height-this.margin.bottom+s-20,w=y+l;return t&&this.svg.append("text").attr("data-component","clusterFooter").attr("data-part","title").property("__text__",t).attr("x",p).attr("y",y).attr("text-anchor",g).call(wa,t,d,i.titleFont),e&&this.svg.append("text").attr("data-component","clusterFooter").attr("data-part","subtitle").property("__text__",e).attr("x",p).attr("y",w).attr("text-anchor",g).call(wa,e,m,i.subtitleFont),this};function Xy(t,e,n={}){let r=n?.clusterLabelOptions??{},i=e?.position??r.position??"left",o=e?.width??t?.margin?.[i]??r.width??n?.containerOptions?.margin?.[i]??`${100*Gn(n)}px`;return{[i]:o}}ft.prototype.clusterLabel=function(t,e=!0,n={}){if(!e)return this;let r={x:0,y:0,position:"left",align:"center",width:null,wrapLabel:!0,wrapOptions:{},fontSize:"12px",fontStyle:"normal",fontWeight:"bold",fontFamily:"sans-serif",cursor:"default",subtitle:null,spacing:null,subtitleFont:{fontSize:"11px",fontStyle:"normal",fontWeight:"normal",fontFamily:"sans-serif",cursor:"default"}},{itemStyle:i,...o}=ut.call(this,r,"clusterLabelOptions",n),a=Xn(i,"title"),s=Xn(i,"subtitle"),c={...o,...a.style,subtitle:s.text??o.subtitle,subtitleFont:{...o.subtitleFont,...s.style}};t=a.text??t;let{x:l,y:u,position:h,align:f,wrapLabel:d,wrapOptions:m,fontSize:p,fontStyle:g,fontWeight:y,fontFamily:w,cursor:b,subtitle:v,spacing:_,subtitleFont:S}=c,k=at(m,r.wrapOptions),C=at(c,r),F={size:p,style:g,weight:y,family:w,cursor:b},A=this.height-this.margin.top-this.margin.bottom,E=this.margin.top+A/2+u,D=h==="left"?this.margin.left-l:this.margin.right-l,$={left:0,right:1}[f]??.5,M={left:"start",right:"end"}[f]??"middle",T;h==="left"?T=this.margin.left*$+l:T=this.width-this.margin.right*(1-$)-l;let B=this.svg.append("text").attr("data-component","clusterLabel").attr("data-part","title").property("__text__",t).attr("x",T).attr("y",E).attr("text-anchor",M).attr("dominant-baseline","central").style("font-size",p).style("font-style",g).style("font-weight",y).style("font-family",w).style("cursor",b).each(function(){let N=R.select(this);d?(N.text(t),Dh(N,D,m)):xr(t,N,F),rt(N,C)});if(v){let N=at(S,r.subtitleFont),L={size:S.fontSize,style:S.fontStyle,weight:S.fontWeight,family:S.fontFamily,cursor:S.cursor},q=this.svg.append("text").attr("data-component","clusterLabel").attr("data-part","subtitle").property("__text__",v).attr("x",T).attr("y",E).attr("text-anchor",M).attr("dominant-baseline","central").style("font-size",S.fontSize).style("font-style",S.fontStyle).style("font-weight",S.fontWeight).style("font-family",S.fontFamily).style("cursor",S.cursor).each(function(){let H=R.select(this);d?(H.text(v),Dh(H,D,m)):xr(v,H,L),rt(H,N)}),U=Wy(B),Z=Wy(q),Q=_??1.2*(U.fontSize+Z.fontSize)/2,j=E-(U.first+U.last+Q-Z.first+Z.last)/2;jy(B,j),jy(q,j+U.last+Q-Z.first)}return De(B,a.style),this.svg.selectAll('text[data-component="clusterLabel"][data-part="subtitle"]').call(De,s.style),this};function Wy(t){let e=parseFloat(getComputedStyle(t.node()).fontSize),n=t.selectAll("tspan.wrap-line").nodes();if(!n.length)return{fontSize:e,first:0,last:0};let r=i=>(parseFloat(i.getAttribute("dy"))||0)*e;return{fontSize:e,first:r(n[0]),last:r(n[n.length-1])}}function jy(t,e){t.attr("y",e),t.selectAll("tspan.wrap-line").attr("y",e)}ft.prototype.sequence=function(t=!0,e={}){if(!t)return this;if(!this.data)return console.error("No data has been added to this cluster container. Please use the addGeneData() function before attempting to draw a gene line."),this;let n={y:50,start:null,end:null,sequenceStyle:{stroke:"grey",strokeWidth:1},markerStyle:{markerHeight:10,stroke:"grey",strokeWidth:1,tiltAmount:-5,gap:0}},r=ut.call(this,n,"sequenceOptions",e),{y:i,start:o,end:a,markerStyle:s,sequenceStyle:c}=r,l=at(c,n.sequenceStyle);var u=this.svg.append("g").attr("data-component","sequence").attr("transform",`translate(${this.margin.left},${this.margin.top})`),h=o??R.min(this.data,b=>Math.min(b.start,b.end)),f=a??R.max(this.data,b=>Math.max(b.start,b.end));o==null&&(h=Wi(h,f,this.padding,"start",this.breaks)),a==null&&(f=Wi(h,f,this.padding,"end",this.breaks));let d=this.breaks.map(b=>({xStart:this.xScale(b.start-.001)-s.gap,xEnd:this.xScale(b.end+.001)+s.gap})),[m,p]=[this.xScale(h),this.xScale(f)].sort((b,v)=>b-v),g=d.map(({xStart:b,xEnd:v})=>[b+s.tiltAmount/2,v-s.tiltAmount/2].sort((_,S)=>_-S)).sort((b,v)=>b[0]-v[0]),y=[],w=m;for(let[b,v]of g)b>w&&y.push([w,Math.min(b,p)]),w=Math.max(w,v);w<p&&y.push([w,p]),u.selectAll("line.baseline").data(y).enter().append("line").attr("class","baseline").attr("x1",b=>b[0]).attr("y1",this.yScale(i)).attr("x2",b=>b[1]).attr("y2",this.yScale(i)).style("stroke",c.stroke).style("stroke-width",c.strokeWidth).each(function(){let b=R.select(this);rt(b,l)});for(let{xStart:b,xEnd:v}of d){let _=this.yScale(i),S=_-s.markerHeight/2,k=_+s.markerHeight/2;u.append("line").attr("x1",b).attr("y1",S).attr("x2",b+s.tiltAmount).attr("y2",k).attr("stroke",s.stroke).attr("stroke-width",s.strokeWidth),u.append("line").attr("x1",v-s.tiltAmount).attr("y1",S).attr("x2",v).attr("y2",k).attr("stroke",s.stroke).attr("stroke-width",s.strokeWidth)}return this};ft.prototype.coordinates=function(t=!0,e={}){if(!t)return this;let n={rotate:-45,yPositionTop:53,yPositionBottom:48,tickValuesTop:null,tickValuesBottom:null,overlapThreshold:20,ticksFormat:",.0f",groupStyle:{},styleBy:null,itemStyle:[],tickStyle:{stroke:"black",strokeWidth:1,lineLength:6},textStyle:{fill:"black",fontSize:"10px",fontFamily:"Arial",cursor:"default",x:0,y:0}},r=ut.call(this,n,"coordinatesOptions",e),{rotate:i,yPositionTop:o,yPositionBottom:a,tickValuesBottom:s,tickValuesTop:c,ticksFormat:l,tickStyle:u,textStyle:h,groupStyle:f,styleBy:d,itemStyle:m}=r,p=A=>m.filter(E=>A?.rowID!=null&&E.rowID===A.rowID&&(E.end==null||E.end===A.end)).reduce((E,{rowID:D,end:$,...M})=>({...E,...M}),{}),g=A=>{let E=(d&&A?.gene?f[A.gene[d]]:void 0)??{},D=p(A);return{...E,...D,tick:{...E.tick,...D.tick}}},y=A=>{let{show:E,tick:D,...$}=g(A);return $},w=at(u,n.tickStyle),b=at(h,n.textStyle),v=this.svg.append("g").attr("data-component","coordinates").attr("transform","translate("+this.margin.left+","+this.margin.top+")"),_=Array.isArray(c)?c.map(A=>({value:A,rowID:null})):c!=null?[{value:c,rowID:null}]:[],S=Array.isArray(s)?s.map(A=>({value:A,rowID:null})):s!=null?[{value:s,rowID:null}]:[];if(!c&&!s){let A=this.data.reduce((E,D)=>{let $={value:D.start,rowID:D.rowID,end:"start",gene:D},M={value:D.end,rowID:D.rowID,end:"end",gene:D};return $.strand=D.strand,M.strand=D.strand,"geneTrack"in D&&($.geneTrack=D.geneTrack,M.geneTrack=D.geneTrack),E.push($),E.push(M),E},[]);if(A=A.filter(E=>g(E).show!==!1),A=A.filter((E,D,$)=>D===$.findIndex(M=>M.value===E.value)),A.sort((E,D)=>E.value-D.value),this.separateStrands)A.forEach(E=>{E.strand==="forward"?_.push(E):S.push(E)});else{let E=r.overlapThreshold;for(let D=0;D<A.length;D++){if(D===0){S.push(A[D]);continue}this.xScale(A[D].value)-this.xScale(A[D-1].value)<E?(_.push(A[D]),D+1<A.length&&(S.push(A[D+1]),D++)):S.push(A[D])}}}let k=this,C=v.append("g").attr("transform","translate(0,"+this.yScale(o)+")").call(R.axisTop(this.xScale).tickValues(_.map(A=>A.value)).tickFormat(R.format(l)));C.selectAll(".tick").data(_).attr("rowID",A=>A.rowID).attr("transform",function(A){let E=k.xScale(A.value);var D=A.geneTrack?(A.geneTrack-1)*k.geneOverlapSpacing:0;return"translate("+E+","+-D+")"}),C.select(".domain").attr("stroke","none"),C.selectAll("text").data(_).attr("class","coordinate").style("text-anchor","end").attr("dx",`${-.8+h.x}em`).attr("dy",`${.4+h.y}em`).attr("transform","rotate("+-i+")").style("fill",h.fill).style("font-size",h.fontSize).style("font-family",h.fontFamily).style("cursor",h.cursor).each(function(A){let E=R.select(this);rt(E,b),rt(E,y(A))}),C.selectAll(".tick line").style("stroke",u.stroke).style("stroke-width",u.strokeWidth).attr("y2",-u.lineLength).each(function(){let A=R.select(this);rt(A,w),rt(A,g(R.select(this.parentNode).datum()).tick??{})});let F=v.append("g").attr("transform","translate(0,"+this.yScale(a)+")").call(R.axisBottom(this.xScale).tickValues(S.map(A=>A.value)).tickFormat(R.format(l)));return F.selectAll(".tick").data(S).attr("rowID",A=>A.rowID).attr("transform",function(A){let E=k.xScale(A.value);var D=A.geneTrack?-(A.geneTrack-1)*k.geneOverlapSpacing:0;return"translate("+E+","+-D+")"}),F.select(".domain").attr("stroke","none"),F.selectAll("text").data(S).attr("class","coordinate").style("text-anchor","start").attr("dx",`${.8+h.x}em`).attr("dy",`${-.15+h.y}em`).attr("transform","rotate("+-i+")").style("fill",h.fill).style("font-size",h.fontSize).style("font-family",h.fontFamily).style("cursor",h.cursor).each(function(A){let E=R.select(this);rt(E,b),rt(E,y(A))}),F.selectAll(".tick line").style("stroke",u.stroke).style("stroke-width",u.strokeWidth).attr("y2",u.lineLength).each(function(){let A=R.select(this);rt(A,w),rt(A,g(R.select(this.parentNode).datum()).tick??{})}),this};ft.prototype.scaleBar=function(t=!0,e={}){if(!t)return this;let n={title:"1 kb",scaleBarUnit:1e3,x:0,y:10,labelStyle:{fontSize:"10px",fontFamily:"sans-serif",cursor:"default",fill:"black",labelPosition:"left"},textPadding:0,scaleBarLineStyle:{stroke:"grey",strokeWidth:1},scaleBarTickStyle:{stroke:"grey",strokeWidth:1}},r=ut.call(this,n,"scaleBarOptions",e),{title:i,scaleBarUnit:o,x:a,y:s,textPadding:c,labelStyle:l,scaleBarLineStyle:u,scaleBarTickStyle:h}=r,f=at(u,n.scaleBarLineStyle),d=at(h,n.scaleBarTickStyle),m=at(l,n.labelStyle),p=Math.abs(this.xScale(o)-this.xScale(0)),g=this.svg.append("g").attr("data-component","scaleBar").attr("transform",`translate(${this.width-this.margin.right-p-parseInt(l.fontSize)-5+a}, ${this.height-this.margin.bottom})`);g.append("line").attr("x1",parseInt(l.fontSize)+5+p).attr("x2",parseInt(l.fontSize)+5).attr("y1",-s).attr("y2",-s).style("stroke",u.stroke).style("stroke-width",u.strokeWidth).each(function(){let b=R.select(this);rt(b,f)}),[parseInt(l.fontSize)+5,parseInt(l.fontSize)+5+p].forEach(b=>{g.append("line").attr("x1",b).attr("x2",b).attr("y1",-s-5).attr("y2",-s+5).style("stroke",h.stroke).style("stroke-width",h.strokeWidth).each(function(){let v=R.select(this);rt(v,d)})});let y=l.labelPosition==="left"?parseInt(l.fontSize)-c:parseInt(l.fontSize)+5+p+c,w=l.labelPosition==="left"?"end":"start";return g.append("text").attr("x",y).attr("y",-s).style("text-anchor",w).style("dominant-baseline","middle").style("font-size",l.fontSize).style("font-family",l.fontFamily).style("cursor",l.cursor).style("fill",l.fill).each(function(){let b=R.select(this);rt(b,m)}).text(i),De(g,r.itemStyle?.[0]),this};function yE(t,e){let n=R.select(t),r=t.textContent;t.textContent="",n.append("tspan").attr("class","label-name").text(r);let i=n.append("tspan").attr("class","label-measure").text(e.textContent);for(let o of e.style)o!=="text-anchor"&&i.style(o,e.style.getPropertyValue(o));if(e.remove(),r){i.attr("x",n.attr("x")).attr("dy","1.1em");let o=1.1*parseFloat(getComputedStyle(i.node()).fontSize);n.attr("y",parseFloat(n.attr("y"))-o)}}function bE(t){let e=R.select(t),n=e.select(".label-measure");n.empty()||n.attr("x",null).attr("dy",null).attr("dx",e.select(".label-name").text()?"0.3em":null)}function vE(t,e,n,r,i){let o=t.map((l,u)=>u).sort((l,u)=>t[l]-t[u]),a=[],s=l=>{l.start=Math.max(r,Math.min(l.total/l.members.length,i-l.width))};for(let l of o){let u={members:[{i:l,offset:0}],width:e[l],total:t[l]-e[l]/2};s(u);let h=a[a.length-1];for(;h&&h.start+h.width+n>u.start;){let f=h.width+n;u.members.forEach(d=>{d.offset+=f}),h.members.push(...u.members),h.total+=u.total-u.members.length*f,h.width+=n+u.width,u=a.pop(),s(u),h=a[a.length-1]}a.push(u)}let c=new Array(t.length);return a.forEach(l=>l.members.forEach(({i:u,offset:h})=>{c[u]=l.start+h+e[u]/2})),c}function Gy(t){let e=t.__leader__;if(!e||!e.line.isConnected)return;let n=!t.isConnected||getComputedStyle(t).display==="none";if(e.line.style.display=n?"none":null,n)return;let r=t.getScreenCTM?.(),i=e.line.parentNode.getScreenCTM?.(),o=t.transform?.baseVal?.consolidate(),a=r&&i?i.inverse().multiply(r):o?o.matrix:new DOMMatrix,s=t.getBBox(),c=new DOMPoint(s.x+s.width/2,s.y).matrixTransform(a),l=new DOMPoint(s.x+s.width/2,s.y+s.height).matrixTransform(a),u=l.y<=(e.geneTop+e.geneBottom)/2,h=u?l:c;e.line.setAttribute("y1",u?e.geneTop-e.gap:e.geneBottom+e.gap),e.line.setAttribute("x2",h.x),e.line.setAttribute("y2",u?h.y+e.gap:h.y-e.gap)}ft.prototype.labels=function(t,e=!0,n={}){if(!e)return this;if(!t)return this;if(!this.data)return console.error("No data has been added to this cluster container. Please use the addGeneData() function before attempting to draw genes."),this;let r={x:0,y:55,dy:"0em",dx:"0em",rotate:0,start:null,end:null,adjustLabels:!0,spreadPosition:"bottom",leaderLine:{length:20,stroke:"#999999",strokeWidth:.75},fontSize:"12px",fontStyle:"italic",fontFamily:"sans-serif",textAnchor:"middle",cursor:"default",labelAdjustmentOptions:{rotation:65,offsetX:0,offsetY:0,dx:"0em",dy:"0em"},itemStyle:[],groupStyle:{},styleBy:null,group:null},i=ut.call(this,r,"labelsOptions",n),{x:o,y:a,start:s,end:c,adjustLabels:l,labelAdjustmentOptions:u,spreadPosition:h,leaderLine:f,groupStyle:d,styleBy:m,group:p,dx:g,dy:y,anchor:w,rotate:b,fontSize:v,fontStyle:_,fontFamily:S,textAnchor:k,cursor:C}=i,F=at(i,r),A=this.svg.append("g").attr("data-component","labels").attr("transform",`translate(${this.margin.left},${this.margin.top})`);this.data.sort((j,H)=>Math.min(j.start,j.end)-Math.min(H.start,H.end));let E=Ui(this.data,m??p,d,i.itemStyle),D=new Map(E.map(j=>[j.index,j])),$=(j,H)=>{let W=D.get(H)||{},J=W.x??o,K=W.y??a,ht=W.dx??g,G=W.dy??y,tt=W.adjustLabels!==void 0?W.adjustLabels:l,ot=tt==="spread",X=ot?0:W.rotate??b,vt=!ot&&j.geneTrack>1,yt={...W.labelAdjustmentOptions??u};yt.rotation=-Math.abs(yt.rotation);let Tt=j.strand=="forward"&&this.geneStrandSpacing!==0?this.geneStrandSpacing:-this.geneStrandSpacing;var Mt=j.geneTrack?(j.geneTrack-1)*this.geneOverlapSpacing:0;let st=this.yScale(this.markerY??50),St=this.yScale(K)-this.markerHeight/2-Tt+Mt,ne=2*st-this.yScale(K)+this.markerHeight/2-Tt+Mt,Zt=vt?ne:St;return{xPos:this.xScale((j.start+j.end)/2)+J,yPos:Zt,dx:ht,dy:G,rotate:X,labelAdjustmentOptions:yt,adjustLabels:tt,spread:ot,below:vt,yAbove:St}},M=R.group(this.data,j=>j.geneTrack??1),T=(j,H,W)=>(M.get(j)||[]).some(J=>{let[K,ht]=[this.xScale(J.start),this.xScale(J.end)].sort((G,tt)=>G-tt);return K<W&&ht>H}),B=(j,H,W)=>{if(!W.below)return;let J=j.getBBox(),K=J.x,ht=J.x+J.width;T(H.geneTrack+1,K,ht)&&!T(H.geneTrack-1,K,ht)&&(W.below=!1,W.yPos=W.yAbove,R.select(j).attr("dominant-baseline",null).attr("y",W.yPos).attr("transform",`rotate(${W.rotate}, ${W.xPos}, ${W.yPos})`))},N=this.data.map((j,H)=>$(j,H)),L=Jl(this,"text.label",{left:0,right:this.width-this.margin.left-this.margin.right,top:-this.margin.top,bottom:this.height-this.margin.top}),q=new Map(this.svg.selectAll(".link-text").nodes().map(j=>[j.getAttribute("rowID"),j]));A.selectAll("text.label").data(this.data).enter().append("text").attr("id",(j,H)=>`cluster-${wr(j.cluster)}-label-${H}`).attr("rowID",(j,H)=>`${j.rowID}`).attr("class","label").each(function(j,H){let{dx:W,dy:J,rotate:K}=N[H];this.__drawn__={dx:W,dy:J,rotate:K}}).attr("x",(j,H)=>N[H].xPos).attr("y",(j,H)=>N[H].yPos).attr("dx",(j,H)=>N[H].dx).attr("dy",(j,H)=>N[H].dy).attr("text-anchor",k).attr("dominant-baseline",(j,H)=>N[H].below?"hanging":null).attr("transform",(j,H)=>{let{xPos:W,yPos:J,rotate:K}=N[H];return`rotate(${K}, ${W}, ${J})`}).style("font-size",v).style("font-style",_).style("font-family",S).style("cursor",C).text((j,H)=>D.get(H)?.text??j[t]).each(function(j){let H=q.get(String(j.rowID));H&&yE(this,H)}).each(function(j,H){let W=N[H];B(this,j,W),W.below&&(W.labelAdjustmentOptions.rotation=Math.abs(W.labelAdjustmentOptions.rotation))});let U=(j,H)=>{let W=R.select(j);rt(W,F),Hi(W,D.has(H)?[D.get(H)]:[],H),(j.childElementCount||ba(F)||ba(D.get(H)))&&L.refresh(j)};A.selectAll("text.label").each(function(j,H){N[H].spread&&U(this,H)});let{length:Z,...Q}={...r.leaderLine,...Wr(f)?f:{}};return this.spreadLabels(A,N,{length:Number.isFinite(Number(Z))?Number(Z):r.leaderLine.length,lineStyle:f===!1?null:Q,onTop:h==="top"}),A.selectAll("text.label").each(function(j,H){let W=N[H];W.spread||(W.adjustLabels&&L.adjust(this,{...W.labelAdjustmentOptions,hide:W.adjustLabels==="hide"})&&bE(this),U(this,H))}),A.selectAll("text.label").each(function(j,H){De(R.select(this),D.get(H)??{})}),this.labels=A.selectAll(".label"),this};ft.prototype.spreadLabels=function(t,e,n){let r=this.svg.node();if(!r.getClientRects().length){let k=new ResizeObserver(()=>{if(!r.isConnected)return k.disconnect();r.getClientRects().length&&(k.disconnect(),this.spreadLabels(t,e,n))});return k.observe(r),this}let i=this.width-this.margin.left-this.margin.right,o=k=>{let[C,F]=[this.xScale(k.start),this.xScale(k.end)].sort((D,$)=>D-$),A=Math.max(0,C),E=Math.min(i,F);return A<=E?[A,E]:null},a=[];if(t.selectAll("text.label").each(function(k,C){if(!e[C].spread||this.textContent.trim()==="")return;let F=o(k);if(!F){this.style.display="none";return}let{xPos:A}=e[C];a.push({node:this,d:k,geneX:(F[0]+F[1])/2,wanted:Math.min(F[1],Math.max(F[0],A))})}),!a.length)return this;let s=t.node().getCTM(),c=new Set(a.map(({d:k})=>String(k.rowID))),l=new Map,u=new Map,h=1/0,f=-1/0;this.svg.selectAll(".gene, .exon, .intron, .utr").each(function(){let k=this.getCTM();if(!k||!s)return;let C=s.inverse().multiply(k),F=this.getBBox(),A=1/0,E=-1/0;for(let[$,M]of[[F.x,F.y],[F.x+F.width,F.y],[F.x,F.y+F.height],[F.x+F.width,F.y+F.height]]){let T=new DOMPoint($,M).matrixTransform(C).y;A=Math.min(A,T),E=Math.max(E,T)}h=Math.min(h,A),f=Math.max(f,E);let D=this.getAttribute("rowID");c.has(D)&&(l.set(D,Math.min(l.get(D)??1/0,A)),u.set(D,Math.max(u.get(D)??-1/0,E)))});let d=this.yScale(this.markerY??50),m=(this.markerHeight??0)/2;Number.isFinite(h)||(h=d-m),Number.isFinite(f)||(f=d+m);let p=6,g=2,y=a.map(({node:k})=>k.getBBox()),w=vE(a.map(({wanted:k})=>k),y.map(k=>k.width),p,0,i),b=y.reduce((k,C)=>Math.max(k,C.height),0),v=n.onTop?h-b+this.margin.top:this.height-this.margin.top-f-b,_=Math.max(2*g,Math.min(n.length,v));if(a.forEach(({node:k},C)=>{let F=y[C],A=w[C]-F.width/2;if(A<-.5||A+F.width>i+.5){k.style.display="none";return}let E=n.onTop?h-_-(F.y+F.height):f+_-F.y,{moveX:D=0,moveY:$=0}=k.__drawn__??{},M=D||$?`translate(${D}, ${$}) `:"";k.setAttribute("transform",`${M}translate(${w[C]-(F.x+F.width/2)}, ${E})`)}),!n.lineStyle)return this;let S=t.insert("g","text.label").attr("class","leader-lines").style("pointer-events","none");return a.forEach(({node:k,d:C,geneX:F})=>{if(k.style.display==="none")return;let A=S.append("line").attr("x1",F).attr("x2",F);rt(A,n.lineStyle),k.__leader__={line:A.node(),gap:g,geneTop:l.get(String(C.rowID))??h,geneBottom:u.get(String(C.rowID))??f},Gy(k),new MutationObserver(()=>Gy(k)).observe(k,{attributes:!0,attributeFilter:["transform","style"]})}),this};ft.prototype.tooltip=function(t=!0,e={}){if(!t)return this;let n={triggers:["markers","genes","labels","exons","introns","utrs"],formatter:"<b>Start:</b> {start}<br><b>End: {end}</b>",opacity:0,position:"absolute",backgroundColor:"rgba(255, 255, 255, 0.9)",padding:"8px",borderRadius:"4px",border:"1px solid rgba(0,0,0,0.1)",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)",pointerEvents:"none",fontFamily:"Arial, sans-serif",fontSize:"12px",zIndex:1e3,color:"#333",lineHeight:"1.5"},r=ut.call(this,n,"tooltipOptions",e),i=at(r,n);typeof r.triggers=="string"&&(r.triggers=[r.triggers]);let o=this.svg.node().closest(".html-widget")||document.body,a=R.select(o).append("div").attr("class","cluster-tooltip").style("opacity",r.opacity).style("position",r.position).style("background-color",r.backgroundColor).style("--tooltip-bg",r.backgroundColor).style("padding",r.padding).style("border-radius",r.borderRadius).style("border",r.border).style("box-shadow",r.boxShadow).style("pointer-events",r.pointerEvents).style("font-family",r.fontFamily).style("font-size",r.fontSize).style("z-index",r.zIndex).style("color",r.color).style("line-height",r.lineHeight);rt(a,i);let s=h=>{let[f,d]=R.pointer(h,o);a.style("left",f-a.node().offsetWidth/2+"px").style("top",d-a.node().offsetHeight-15+"px")},c=R.format(","),l=h=>h==null||h===""||typeof h=="number"&&isNaN(h),u=h=>r.formatter.split(/<br\s*\/?>/i).filter(f=>{let d=[...f.matchAll(/\{(\w+)\}/g)].map(m=>m[1]);return d.length===0||!d.every(m=>l(h[m]))}).join("<br>").replace(/\{(\w+)\}/g,(f,d)=>typeof h[d]=="number"?c(h[d]):h[d]||"");return r.triggers.forEach(h=>{if(!this.hasOwnProperty(h))return;let f=this[h];!f||f.empty()||(f.on("mouseover",(d,m)=>{let p=this.data.find(y=>y===m);R.select(d.currentTarget).classed("hovered",!0),a.transition().duration(200).style("opacity",1),a.html(u(p)),s(d)}),f.on("mousemove",s),f.on("mouseout",d=>{R.select(d.currentTarget).classed("hovered",!1),a.transition().duration(500).style("opacity",0)}))}),this};function ji(t,e,n){let r=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf","#393b79","#637939","#8c6d31","#843c39","#7b4173","#bd9e39","#ad494a","#d6616b","#31a354","#cedb9c","#9c9ede","#5254a3","#8ca252","#b5cf6b","#e7ba52","#ce6dbd","#e7cb94","#e7969c","#6b6ecf","#a55194"],i=n.filter(s=>s!==null),o=(s=()=>!0)=>{if(t&&(Array.isArray(t)||R[t])){let c=Array.isArray(t)?t:R[t];return i.some((l,u)=>u>=c.length&&s(l))&&qe("Warning: More unique groups than colors. Some colors will repeat."),i.map((l,u)=>c[u%c.length])}return t&&qe(`Warning: The color scheme "${t}" does not exist. Defaulting to schemeCategory30.`),i.map((c,l)=>c==="No Hit"?"#FFF":r[l%r.length])},a;if(e&&typeof e=="string")a=i.map(()=>e);else if(e&&Array.isArray(e))a=i.map((s,c)=>e[c%e.length]||"#FFF");else if(e&&typeof e=="object"){let s=o(c=>!e[c]);a=i.map((c,l)=>e[c]||s[l])}else a=o();return R.scaleOrdinal().domain([...i,null]).range([...a,"#FFF"])}var xa={none:()=>{},solid:(t,e,n)=>t.append("rect").attr("width",e).attr("height",e).attr("fill",n),horizontal:(t,e,n,r)=>t.append("path").attr("d",`M0,${e/2}H${e}`).attr("stroke",n).attr("stroke-width",r),vertical:(t,e,n,r)=>t.append("path").attr("d",`M${e/2},0V${e}`).attr("stroke",n).attr("stroke-width",r),diagonal:(t,e,n,r)=>t.append("path").attr("d",`M0,${e}L${e},0M${-e/4},${e/4}L${e/4},${-e/4}M${e*3/4},${e*5/4}L${e*5/4},${e*3/4}`).attr("stroke",n).attr("stroke-width",r),antidiagonal:(t,e,n,r)=>t.append("path").attr("d",`M0,0L${e},${e}M${-e/4},${e*3/4}L${e/4},${e*5/4}M${e*3/4},${-e/4}L${e*5/4},${e/4}`).attr("stroke",n).attr("stroke-width",r),grid:(t,e,n,r)=>t.append("path").attr("d",`M0,${e/2}H${e}M${e/2},0V${e}`).attr("stroke",n).attr("stroke-width",r),crosshatch:(t,e,n,r)=>{xa.diagonal(t,e,n,r),xa.antidiagonal(t,e,n,r)},dots:(t,e,n)=>t.append("circle").attr("cx",e/2).attr("cy",e/2).attr("r",e/5).attr("fill",n),zigzag:(t,e,n,r)=>t.append("path").attr("d",`M0,${e*.7}L${e/2},${e*.3}L${e},${e*.7}`).attr("fill","none").attr("stroke",n).attr("stroke-width",r),checkerboard:(t,e,n)=>t.append("path").attr("d",`M0,0H${e/2}V${e/2}H0ZM${e/2},${e/2}H${e}V${e}H${e/2}Z`).attr("fill",n),rings:(t,e,n,r)=>t.append("circle").attr("cx",e/2).attr("cy",e/2).attr("r",e/3.2).attr("fill","none").attr("stroke",n).attr("stroke-width",r*.8),bricks:(t,e,n,r)=>t.append("path").attr("d",`M0,0H${e}M0,${e/2}H${e}M${e/4},0V${e/2}M${e*3/4},${e/2}V${e}`).attr("stroke",n).attr("stroke-width",r),plus:(t,e,n,r)=>t.append("path").attr("d",`M${e/2},${e*.2}V${e*.8}M${e*.2},${e/2}H${e*.8}`).attr("stroke",n).attr("stroke-width",r),wideStripes:(t,e,n)=>t.append("path").attr("d",`M0,${e}L${e},0H${e/2}L0,${e/2}ZM${e},${e/2}V${e}H${e/2}Z`).attr("fill",n),inverseDots:(t,e,n,r,i)=>{xa.solid(t,e,n),t.append("circle").attr("cx",e/2).attr("cy",e/2).attr("r",e/4).attr("fill",i)}},wE={checkerboard:4/3,rings:7/6,bricks:5/3,plus:4/3,wideStripes:4/3},zh=["diagonal","dots","horizontal","crosshatch","vertical","zigzag","checkerboard","solid","rings","bricks","inverseDots","grid","wideStripes","plus","antidiagonal"];function Nh(t,e,n){return t==null?e.map(()=>n):typeof t=="string"?e.map(()=>t):Array.isArray(t)?e.map((r,i)=>t[i%t.length]):e.map(r=>t[r]??n)}function Xi(t,e,n,r,i){if(!e)return{fill:r,stroke:r,outline:null,align:()=>{}};let{patterns:o=null,color:a="black",background:s=null,size:c=6,strokeWidth:l=1}=e,u=n.filter(b=>b!==null),h=Nh(o,u,"none");o==null&&(u.forEach((b,v)=>{h[v]=zh[v%zh.length]}),u.length>zh.length&&qe("Warning: More unique groups than patterns. Some patterns will repeat."));let f=Nh(s,u,null),d=Nh(a,u,"black"),m=t.attr("id")||"geneviewer",p=t.append("defs"),g=new Map,y=new Map;u.forEach((b,v)=>{let _=h[v];xa[_]||(qe(`Warning: The pattern "${_}" does not exist. Using "none".`),_="none"),b==="No Hit"&&o==null&&(_="none");let S=`${m}-${i}-pattern-${v}`,k=c*(wE[_]??1),C=f[v]??r(b),F=p.append("pattern").attr("id",S).attr("patternUnits","userSpaceOnUse").attr("width",k).attr("height",k);F.append("rect").attr("width",k).attr("height",k).attr("fill",C),xa[_](F,k,d[v],l,C),g.set(b,`url(#${S})`),y.set(b,F)});let w=new Map(u.map((b,v)=>[b,d[v]]));return{fill:b=>g.get(b)??r(b),stroke:b=>s==null?r(b):w.get(b)??d[0],outline:typeof a=="string"?a:"black",align:(b,v,_)=>y.get(b)?.attr("x",v).attr("y",_)}}function xE(t,e){let n=t.filter((u,h)=>{let f=t[(h-1+t.length)%t.length];return Math.abs(u[0]-f[0])>1e-6||Math.abs(u[1]-f[1])>1e-6});if(!(e>0)||n.length<3)return`M${n.map(u=>`${u[0]} ${u[1]}`).join(" L")} Z`;let r=n.length,i=(u,h)=>Math.hypot(h[0]-u[0],h[1]-u[1]),o=(u,h,f)=>{let d=i(u,h);return[u[0]+(h[0]-u[0])*f/d,u[1]+(h[1]-u[1])*f/d]},a=(u,h,f)=>(h[0]-u[0])*(f[1]-h[1])-(h[1]-u[1])*(f[0]-h[0]),s=Math.sign(n.reduce((u,h,f)=>{let d=n[(f+1)%r];return u+h[0]*d[1]-d[0]*h[1]},0)),c=n.map((u,h)=>{let f=n[(h-1+r)%r],d=n[(h+1)%r],p=Math.sign(a(f,u,d))===s?Math.min(e,i(f,u)/2,i(u,d)/2):0;return{p:u,start:o(u,f,p),end:o(u,d,p)}}),l=`M${c[0].end[0]} ${c[0].end[1]}`;for(let u=1;u<=r;u++){let{p:h,start:f,end:d}=c[u%r];l+=` L${f[0]} ${f[1]} Q${h[0]} ${h[1]} ${d[0]} ${d[1]}`}return l+" Z"}function Vy(t,e,n,r={}){let i={small:{scale:.75},medium:{scale:1},large:{scale:1.25}},o={arrow:{arrowheadWidth:10,arrowheadHeight:30,markerHeight:15},boxarrow:{arrowheadWidth:10,arrowheadHeight:30,markerHeight:30},box:{arrowheadWidth:0,arrowheadHeight:30,markerHeight:30},rbox:{arrowheadWidth:0,arrowheadHeight:30,markerHeight:30,cornerRadius:5},cbox:{arrowheadWidth:10,arrowheadHeight:30,markerHeight:30},intron:{arrowheadWidth:0,arrowheadHeight:0,markerHeight:20}},a=i[n]||i.medium,s=o[t]||{},c=va(s,r),{arrowheadWidth:l,arrowheadHeight:u,markerHeight:h,cornerRadius:f}=c,d=l*a.scale,m=u*a.scale,p=h*a.scale,g=e-d;g=Math.max(0,g);let y=(m-p)/2,w=y+p,b,v=Math.max(p,m),_;switch(t){case"arrow":case"boxarrow":case"box":b=xE([[0,y],[0,w],[g,w],[g,m],[e,m/2],[g,0],[g,y]],f||0);break;case"rbox":_=Math.min(f,p/2,e/2),v=p,b=`M ${_},0
|
|
6
|
+
H ${e-_}
|
|
7
|
+
A ${_},${_} 0 0 1 ${e},${_}
|
|
8
|
+
V ${p-_}
|
|
9
|
+
A ${_},${_} 0 0 1 ${e-_},${p}
|
|
10
|
+
H ${_}
|
|
11
|
+
A ${_},${_} 0 0 1 0,${p-_}
|
|
12
|
+
V ${_}
|
|
13
|
+
A ${_},${_} 0 0 1 ${_},0
|
|
14
|
+
Z`;break;case"cbox":_=Math.min(p/2,e/2),v=p,b=`M ${_} 0
|
|
15
|
+
L ${e-_} 0
|
|
16
|
+
Q ${e} ${p/2} ${e-_} ${p}
|
|
17
|
+
L ${_} ${p}
|
|
18
|
+
Q 0 ${p/2} ${_} 0
|
|
19
19
|
Z`;break;case"intron":let k=e/2;v=p/2,b=`M0 ${v}
|
|
20
20
|
L${k} 0
|
|
21
|
-
L${e} ${v}`;break;default:Le(`Marker type '${t}' not recognized.`),b=""}return{path:b,length:e,scaledArrowheadWidth:d,scaledArrowheadHeight:m,height:v,used:{arrowheadWidth:l,arrowheadHeight:u,markerHeight:h,cornerRadius:f??0}}}function zh(t){t.attr("rowID",(e,n)=>`${e.rowID}`).attr("start",(e,n)=>`${e.start}`).attr("end",(e,n)=>`${e.end}`).attr("strand",(e,n)=>`${e.strand}`).attr("cluster",(e,n)=>`${e.cluster}`)}function Nh(t,e,{xPos:n,yPos:r,height:i}){return`rotate(${t?e.direction==="forward"?180:0:e.direction==="forward"?0:180}, ${n}, ${r}) translate(${n}, ${r-i/2})`}function Rh(t,e,n,r,i,o){let a=o.find(S=>S.index===n)||{},s=Math.abs(t.xScale(e.end)-t.xScale(e.start)),c=a.y??r,l=a.marker??i.marker,u=a.markerSize??i.markerSize,{path:h,arrowheadWidth:f,arrowheadHeight:d,height:m,used:p}=Xy(l,s,u,{arrowheadWidth:a.arrowheadWidth??i.arrowheadWidth,arrowheadHeight:a.arrowheadHeight??i.arrowheadHeight,markerHeight:a.markerHeight??i.markerHeight,cornerRadius:a.cornerRadius??i.cornerRadius}),g=Xy(i.marker,s,i.markerSize,{arrowheadWidth:i.arrowheadWidth,arrowheadHeight:i.arrowheadHeight,markerHeight:i.markerHeight,cornerRadius:i.cornerRadius}).height;t.markerHeight=g,t.markerY=r,t.geneStrandSpacing=t.separateStrands?g/2+t.strandSpacing:0,t.geneOverlapSpacing=g+t.overlapSpacing;let y=e.strand==="forward"&&t.geneStrandSpacing!==0?t.geneStrandSpacing:-t.geneStrandSpacing,w=e.geneTrack?(e.geneTrack-1)*t.geneOverlapSpacing:0,b=t.yScale(c)-y+w,v=t.xScale(e.start),x={marker:l,markerSize:u,...p,y:c};return{xPos:v,yPos:b,path:h,arrowheadWidth:f,arrowheadHeight:d,height:m,drawn:x}}ft.prototype.genes=function(t,e=!0,n={}){if(!e)return this;if(!this.data)return console.error("No data has been added to this cluster container. Please use the geneData() function before attempting to draw arrows."),this;let r={x:1,y:50,stroke:"black",strokeWidth:1,colorScheme:null,customColors:null,pattern:null,cursor:"default",marker:"arrow",markerSize:"medium",itemStyle:[],groupStyle:{},styleBy:null,arrowheadWidth:null,arrowheadHeight:null,markerHeight:null,cornerRadius:null},i=ut.call(this,r,"geneOptions",n),{x:o,y:a,stroke:s,strokeWidth:c,colorScheme:l,customColors:u,pattern:h,cursor:f,groupStyle:d,styleBy:m}=i,p=st(i,r),g=[...new Set(this.dataAll.map(S=>S[t]))],y=Wi(l,u,g);this.genesColorScale=y;let w=ji(this.svg,h,g,y,"gene");var b=this.svg.append("g").attr("data-component","genes").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);this.data.sort((S,k)=>Math.min(S.start,S.end)-Math.min(k.start,k.end));let v=Yi(this.data,m??t,d,i.itemStyle),x=(S,k)=>Rh(this,S,k,a,i,v);return b.selectAll(".gene").data(this.data).enter().append("path").attr("d",(S,k)=>x(S,k).path).attr("transform",(S,k)=>Nh(this.reverse,S,x(S,k))).attr("fill",S=>w.fill(S[t])).attr("class","gene").attr("id",(S,k)=>`${vr(S.cluster)}-gene-${k}`).call(zh).style("stroke-width",c).style("stroke",s).style("cursor",f).each(function(S,k){let C=R.select(this);rt(C,p),Ui(C,v,k),this.__drawn__=x(S,k).drawn}),this.genes=b.selectAll(".gene"),this};ft.prototype.transcript=function(t,e=!0,n={}){if(!e)return this;if(!this.data)return console.error("No data has been added to this cluster container. Please use the geneData() function before attempting to draw arrows."),this;let r={x:1,y:50,colorScheme:null,customColors:null,pattern:null,styleExons:{show:!0,strokeWidth:0,cursor:"default",marker:"box",markerSize:"medium",arrowheadWidth:null,arrowheadHeight:null,markerHeight:null,cornerRadius:null},styleIntrons:{show:!0,strokeWidth:1,fill:"none",cursor:"default",marker:"intron",markerSize:"medium",arrowheadWidth:null,arrowheadHeight:null,markerHeight:null,cornerRadius:null},styleUTRs:{show:!0,fontSize:"10px",fontStyle:"normal",fontFamily:"sans-serif",cursor:"default",color:"black",fill:"#FFF",strokeWidth:1,marker:"box",markerSize:"medium",arrowheadWidth:null,arrowheadHeight:null,markerHeight:null,cornerRadius:null},labelOptions:{show:!0,xOffset:2,yOffset:0,fontSize:"12px",fontStyle:"normal",fontWeight:"normal",fontFamily:"sans-serif",cursor:"default",color:"black"},itemStyleExons:[],itemStyleIntrons:[],itemStyleUTRs:[],groupStyleExons:{},groupStyleIntrons:{},groupStyleUTRs:{},styleBy:null},i=ut.call(this,r,"transcriptOptions",n),{x:o,y:a,colorScheme:s,customColors:c,pattern:l,styleExons:u,styleIntrons:h,styleUTRs:f,labelOptions:d}=i,m=i.styleBy??t,p=st(i.styleExons,r.styleExons),g=st(i.styleIntrons,r.styleIntrons),y=st(i.styleUTRs,r.styleUTRs),w=[...new Set(this.dataAll.map(A=>A[t]))],b=Wi(s,c,w);this.genesColorScale=b;let v=ji(this.svg,l,w,b,"exon"),x=this.svg.append("g").attr("data-component","transcript").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);this.data.sort((A,E)=>Math.min(A.start,A.end)-Math.min(E.start,E.end));let S=(A,E,D,$)=>Rh(this,A,E,a,D,$),k=(A,E,D,$,M,T,B,N)=>{let L=this.data.filter(U=>new RegExp(A,"i").test(U.type)),q=Yi(L,m,D,$);return x.selectAll(`.${A}`).data(L).enter().append("path").attr("d",(U,Z)=>S(U,Z,E,q).path).attr("transform",(U,Z)=>T(U,S(U,Z,E,q))).attr("fill",B).attr("class",A).attr("id",(U,Z)=>`${vr(U.cluster)}-${A}-${Z}`).call(zh).style("stroke-width",E.strokeWidth).style("stroke",N).style("cursor",E.cursor).each(function(U,Z){let Q=R.select(this);rt(Q,M),Ui(Q,q,Z)}),x.selectAll(`.${A}`)},C=(A,E)=>Nh(this.reverse,A,E),F=A=>v.stroke(A[t]);if(u.show&&(this.exons=k("exon",u,i.groupStyleExons,i.itemStyleExons,p,C,A=>v.fill(A[t]),u.stroke)),h.show){let A=(E,{xPos:D,yPos:$,height:M})=>{let T=E.direction==="forward"?-M:+M;return`rotate(${this.reverse?E.direction==="reverse"?180:0:E.direction==="forward"?0:180}, ${D}, ${$+T}) translate(${D}, ${$+T})`};this.introns=k("intron",h,i.groupStyleIntrons,i.itemStyleIntrons,g,A,h.fill,F)}if(f.show&&(this.utrs=k("utr",f,i.groupStyleUTRs,i.itemStyleUTRs,y,C,f.fill,F),d.show)){let A=this.data[0].direction==="forward"?this.xScale(this.maxEnd)+d.xOffset:this.xScale(this.minStart)-d.xOffset,E=this.data[0].direction==="forward"?this.xScale(this.minStart)-d.xOffset:this.xScale(this.maxEnd)+d.xOffset;x.append("text").attr("x",A).attr("y",D=>this.yScale(a+d.yOffset)).attr("class","three-prime-label").attr("text-anchor","middle").attr("alignment-baseline","middle").style("font-size",d.fontSize).style("font-style",d.fontStyle).style("font-weight",d.fontWeight).style("font-family",d.fontFamily).style("cursor",d.cursor).style("fill",d.color).text("3'"),x.append("text").attr("x",E).attr("y",D=>this.yScale(a+d.yOffset)).attr("class","five-prime-label").attr("text-anchor","middle").attr("alignment-baseline","middle").style("font-size",d.fontSize).style("font-style",d.fontStyle).style("font-weight",d.fontWeight).style("font-family",d.fontFamily).style("cursor",d.cursor).style("fill",d.color).text("5'")}return this};function wE(t,e){return e.map(r=>{let i=`.link-marker[cluster='${r.cluster1}'][linkID='${r.linkID}'][position='${r.start1}']`,o=`.link-marker[cluster='${r.cluster2}'][linkID='${r.linkID}'][position='${r.start2}']`,a=`.link-marker[cluster='${r.cluster1}'][linkID='${r.linkID}'][position='${r.end1}']`,s=`.link-marker[cluster='${r.cluster2}'][linkID='${r.linkID}'][position='${r.end2}']`,c=t.select(i).node(),l=t.select(o).node(),u=t.select(a).node(),h=t.select(s).node();if(!c||!l||!u||!h)return null;let f=c.getBoundingClientRect(),d=l.getBoundingClientRect(),m=u.getBoundingClientRect(),p=h.getBoundingClientRect(),g=t.node().getBoundingClientRect(),y=S=>({x:S.left-g.left,y:S.top-g.top}),w=r.start1<=r.end1?"forward":"reverse",b=r.start2<=r.end2?"forward":"reverse",v=c.getAttribute("groupColor"),x=l.getAttribute("groupColor");return[{startPoint:y(f),endPoint:y(d),strand:w,groupColor:v},{startPoint:y(m),endPoint:y(p),strand:b,groupColor:x}]})}var Gy={normalColor:"#969696",invertedColor:"#d62728",lowColor:"#FFFFFF",vmin:0,vmax:100};function Vy(t,e,n,r){let i=R.interpolateRgb(t,e)(.1);return R.scaleLinear().domain([n,r]).range([i,e]).interpolate(R.interpolateRgb).clamp(!0)}function Zy(t,e,n={}){if(!e||e.length===0)return;let r={curve:!0,...Gy,useGroupColors:!1,color:"lightgrey",measure:"identity",label:!0,labelPosition:"gene",linkStyle:{stroke:"none",fillOpacity:.8},labelStyle:{fontSize:"10px",fontStyle:"normal",fontFamily:"sans-serif",cursor:"default",textAnchor:"middle",alignmentBaseline:"middle"}},i=t.node().getBoundingClientRect();var a=t.insert("div",":first-child").style("position","relative").style("width","100%").style("height","100%").insert("svg",":first-child").attr("width",i.width).attr("height",i.height).classed("GeneLink",!0).style("position","absolute").style("z-index",1);let s=[];e.forEach(function(u){let h=ut(r,"linkOptions",u.options,n),{curve:f,invertedColor:d,normalColor:m,lowColor:p,vmin:g,vmax:y,useGroupColors:w,color:b,linkStyle:v,measure:x}=h,S=st(v,r.linkStyle),k=Wr(u.data);wE(t,k).forEach(function(F,A){if(!F)return;let E=F[0].strand==F[1].strand?R.rgb(m):R.rgb(d);var D=Vy(p,E,g,y);let $=h.measure==="none"?100:u.data?.[x]?.[A]??100,M=w?F[0].groupColor:D($);a.append("path").attr("data-component","links").datum(k[A]).attr("d",xE(F[0],F[1],f)).style("fill",M).style("stroke",v.stroke).style("fill-opacity",v.fillOpacity).classed("GeneLink",!0).each(function(){let B=R.select(this);rt(B,S)});let T=u.data?.[x]?.[A];if(h.label&&h.labelPosition==="link"&&x!=="none"&&T!=null&&Number.isFinite(+T)){let B=(F[0].startPoint.x+F[0].endPoint.x)/2,N=(F[1].startPoint.x+F[1].endPoint.x)/2;s.push({x:(B+N)/2,y:(F[0].startPoint.y+F[0].endPoint.y)/2,width:Math.abs(N-B),text:`${parseFloat((+T).toFixed(1))}%`,fill:R.hsl(R.color(M)??"#ffffff").l<.55?"#ffffff":"#333333",datum:k[A],labelStyle:h.labelStyle,defaults:r.labelStyle})}})});let c=a.append("g").attr("class","link-measure-labels"),l=[];s.sort((u,h)=>h.width-u.width).forEach(u=>{let{labelStyle:h}=u,f=c.append("text").attr("class","link-measure").attr("data-component","links").datum(u.datum).attr("x",u.x).attr("y",u.y).attr("text-anchor","middle").attr("dominant-baseline","central").style("font-size",h.fontSize).style("font-style",h.fontStyle).style("font-family",h.fontFamily).style("fill",u.fill).style("pointer-events","none").text(u.text).each(function(){let p=st(h,u.defaults);delete p.labelPosition,rt(R.select(this),p)}),d=f.node().getBBox(),m=l.every(p=>d.x+d.width<p.x||p.x+p.width<d.x||d.y+d.height<p.y||p.y+p.height<d.y);d.width+4>u.width||!m?f.remove():l.push(d)})}function xE(t,e,n=!0){var r=R.path();if(n){var i=(t.startPoint.y+t.endPoint.y)/2;r.moveTo(t.startPoint.x,t.startPoint.y),r.bezierCurveTo(t.startPoint.x,i,t.endPoint.x,i,t.endPoint.x,t.endPoint.y),r.lineTo(e.endPoint.x,e.endPoint.y);var o=(e.startPoint.y+e.endPoint.y)/2;r.bezierCurveTo(e.endPoint.x,o,e.startPoint.x,o,e.startPoint.x,e.startPoint.y)}else r.moveTo(t.startPoint.x,t.startPoint.y),r.lineTo(t.endPoint.x,t.endPoint.y),r.lineTo(e.endPoint.x,e.endPoint.y),r.lineTo(e.startPoint.x,e.startPoint.y);return r.closePath(),r.toString()}function Ky(t,e){if(!t||t.length===0)return[];let n=t.filter(o=>o.cluster1===e),r=t.filter(o=>o.cluster2===e);return n.concat(r)}function _E(t){let e=!1,n=!1;return t.forEach(r=>{let{start1:i=[],end1:o=[],start2:a=[],end2:s=[]}=r.data;for(let c=0;c<i.length;c++)i[c]<=o[c]==a[c]<=s[c]?e=!0:n=!0}),{normal:e,inverted:n}}function Ph(t,e={}){let n={colorBar:!0,...Gy,measure:"identity",margin:{top:5,right:25,bottom:0,left:50},colorBarOptions:{position:"bottomright",orientation:"vertical",labels:"inline",legendSide:"left",x:0,y:null,title:!0,width:null,height:null,labelOptions:{fontSize:8,fontFamily:"sans-serif",xOffset:2,yOffset:0},titleOptions:{fontSize:10,fontFamily:"sans-serif",xOffset:2,yOffset:0},barOptions:{stroke:"#000",strokeWidth:.5,opacity:1}}},r=ut(n,"linkOptions",t[0].options,e),{colorBarOptions:i}=r;if(r.colorBar===!1||r.measure==="none"||!t[0].data.hasOwnProperty("identity")&&!t[0].data.hasOwnProperty("similarity"))return null;let{normal:o,inverted:a}=_E(t);if(!o&&!a)return null;let s=n.colorBarOptions;return{linkOptions:r,colorBarOptions:i,horizontal:i.position==="legend"||i.orientation==="horizontal",hasNormal:o,hasInverted:a,additional:{label:st(i.labelOptions,s.labelOptions),title:st(i.titleOptions,s.titleOptions),bar:st(i.barOptions,s.barOptions)}}}function Ih(t,e,n={}){let{linkOptions:r,colorBarOptions:i,horizontal:o,hasNormal:a,hasInverted:s,additional:c}=e,{labelOptions:l,titleOptions:u,barOptions:h}=i,f=o&&(n.labels??i.labels)==="below",d=parseFloat(n.width??i.width??(o?f?120:80:10)),m=parseFloat(n.height??i.height??(o?8:60)),p=n.fontSize??l.fontSize,g=n.fontSize??u.fontSize,y=n.fontFamily,w=n.outline&&(!h.stroke||h.stroke==="none")?n.outline:h.stroke,b=w===h.stroke?h.strokeWidth:.5,v=t.append("defs"),x=r.vmin,S=r.vmax,k=(B,N,L,q)=>{let U=jr(B),Z=v.append("linearGradient").attr("id",U).attr("gradientTransform",o?null:"rotate(90)"),Q=Vy(r.lowColor,N,x,S);Z.append("stop").attr("offset","0%").attr("stop-color",Q(o?x:S)),Z.append("stop").attr("offset","100%").attr("stop-color",Q(o?S:x)),t.append("rect").attr("x",L).attr("y",q).attr("width",d).attr("height",m).style("fill",`url(#${U})`).style("stroke",w).style("stroke-width",b).style("opacity",h.opacity).each(function(){rt(R.select(this),c.bar)})},C=(B,N,L,q)=>t.append("text").attr("font-size",L).style("font-family",y??N.fontFamily).text(B).each(function(){rt(R.select(this),q)});if(!o)return i.title!==!1&&C(r.measure,u,g,c.title).attr("x",d+u.xOffset).attr("y",m/2+u.yOffset+10).attr("transform",`rotate(-90, ${d+u.xOffset}, ${m/2+u.yOffset})`).attr("alignment-baseline","bottom").attr("text-anchor","middle"),a&&k("linear-gradient",r.normalColor,0,0),s&&k("reverse-gradient",r.invertedColor,a?-d:0,0),C(S+"%",l,p,c.label).attr("x",d+l.xOffset).attr("y",-l.yOffset).attr("alignment-baseline","middle"),C(x+"%",l,p,c.label).attr("x",d+l.xOffset).attr("y",m+l.yOffset).attr("alignment-baseline","middle"),{width:(a&&s?2:1)*d,height:m};let F=(a&&s?2:1)*m,A=()=>C(r.measure,u,g,{fontWeight:"bold",...c.title}),E=(B,N)=>{a&&k("linear-gradient",r.normalColor,B,N),s&&k("reverse-gradient",r.invertedColor,B,N+(a?m:0))};if(f){let B=0;i.title!==!1&&(B=A().attr("x",0).attr("y",u.yOffset).attr("dominant-baseline","hanging").node().getBBox().height+3),E(0,B);let N=R.scaleLinear().domain([x,S]).range([0,d]),L=3,q=w&&w!=="none"?w:"#555555",U=j=>{let H=C(j,l,p,c.label),W=H.node().getComputedTextLength();return H.remove(),W},Z=j=>j.length>1&&j.every((H,W)=>W===0||N(H)-N(j[W-1])>(U(j[W-1]+"%")+U(H+"%"))/2+4);return([5,4,3,2].map(j=>N.ticks(j)).find(Z)??[x,S]).forEach(j=>{t.append("line").attr("x1",N(j)).attr("x2",N(j)).attr("y1",B+F).attr("y2",B+F+L).style("stroke",q).style("stroke-width",.5),C(j+"%",l,p,c.label).attr("x",N(j)).attr("y",B+F+L+1+l.yOffset).attr("dominant-baseline","hanging").attr("text-anchor","middle")}),{width:d,height:F}}let D=F/2,$=4,M=0,T=(B,N)=>{B.attr("x",M).attr("y",D+N).attr("dominant-baseline","central"),M+=B.node().getComputedTextLength()+$};return i.title!==!1&&(T(A(),u.yOffset),M+=$),T(C(x+"%",l,p,c.label),l.yOffset),E(M,0),M+=d+$,T(C(S+"%",l,p,c.label),l.yOffset),{width:d,height:F}}function Qy(t,e,n={},r=!1){let i=Ph(e,n);if(!i)return null;let{linkOptions:o,colorBarOptions:a}=i;if(a.position==="legend"&&r)return null;let s=a.position==="legend"?"bottomright":a.position,c=a.orientation==="horizontal",l=t.node().getBoundingClientRect(),h=t.insert("div",":first-child").style("position","relative").style("width","100%").style("height","100%").append("svg").attr("width",l.width).attr("height",l.height).classed("color-bar",!0).attr("data-component","links").style("position","absolute"),f=h.append("g").attr("transform",`translate(${o.margin.left}, ${o.margin.top})`),d=l.width-o.margin.left-o.margin.right,m=l.height-o.margin.top-o.margin.bottom,p=s==="topleft"||s==="topright",g=s==="topleft"||s==="bottomleft",y=a.x??0,w=a.y??(p||c?0:24),b=f.append("g"),{width:v,height:x}=Ih(b,{...i,horizontal:c});if(s==="bottomright"&&!c)b.attr("transform",`translate(${d-v-y}, ${m-x-w})`);else{let S=b.node().getBBox(),k=g?y-S.x:d-y-(S.x+S.width),C=p?w-S.y:m-w-(S.y+S.height);b.attr("transform",`translate(${k}, ${C})`)}return h}ft.prototype.legendData=function(t){return this.data=[...new Set(t)],this};ft.prototype.legend=function(t,e=!0,n=null,r={},i=null){if(!e)return this;let o={x:0,y:0,width:null,orientation:"horizontal",align:"left",adjustHeight:!0,order:[],cornerRadius:0,groupStyle:{},legendOptions:{cursor:"pointer",colorScheme:null,customColors:null,pattern:null},legendTextOptions:{cursor:"pointer",textAnchor:"start",dy:".35em",fontSize:"12px",fontFamily:"sans-serif"}},a=ut.call(this,o,"legendOptions",r),{x:s,y:c,width:l,orientation:u,align:h,adjustHeight:f,order:d,cornerRadius:m,legendOptions:p,legendTextOptions:g,groupStyle:y,itemStyle:w=[],editable:b=!1}=a,v=st(p,o.legendOptions),x=st(g,o.legendTextOptions),S=this.svg,k=Ie(l,S.node().getBoundingClientRect().width)||S.node().getBoundingClientRect().width,C=[...new Set(this.data.map(J=>J[t]))];C=C.filter(J=>J!==null);let F=Wi(p.colorScheme,p.customColors,C),A=ji(this.svg,p.pattern,C,F,"legend"),E=["Other","No Hit","Unknown"],D=C.filter(J=>!E.includes(J)),$=E.filter(J=>C.includes(J));if(C=[...D,...$],d&&d.length>0&&(C=d.filter(J=>C.includes(J)).concat(C.filter(J=>!d.includes(J)))),!C.length){console.error(`Error: No labels provided and the group "${t}" does not exist in the data.`);return}let M=parseFloat(g.fontSize),T=M/2,B=s,N=c,L=[];var q=this.svg.append("g").attr("data-component","legend").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let U=i?.colorBarOptions.legendSide==="right"?"right":"left",Z=()=>{let J=q.append("g").attr("class","legend-color-bar").attr("data-component","links"),K=J.append("g"),ht=i.hasNormal&&i.hasInverted;Ih(K,i,{height:i.colorBarOptions.height??M/(ht?2:1),fontSize:g.fontSize,fontFamily:g.fontFamily,outline:"#bdbdbd",labels:"inline"});let X=K.node().getBBox(),tt=2*M+T;if(u==="horizontal"&&U==="right"&&B>s){let it=this.width-this.margin.left-this.margin.right;B+tt+X.width>it?(B=s,N+=M+T):B+=tt}K.attr("transform",`translate(${B-X.x}, ${N+M/2-(X.y+X.height/2)})`),L.push({node:J.node(),row:N,start:B,end:B+X.width}),u==="horizontal"?B+=X.width+tt+T:N+=Math.max(M,X.height)+T};i&&U==="left"&&Z(),q.selectAll(".legend").data(C).enter().append("g").attr("class","legend").each((J,K,ht)=>{let X=R.select(ht[K]),{marker:tt={},text:it,...G}=y[J]??{},{group:xt,part:mt,text:Bt,...Dt}=w.find(At=>At.group===J&&At.part==="label")??{},{group:at,part:_t,...ge}=w.find(At=>At.group===J&&At.part==="marker")??{},ne=X.append("text").attr("class","legend-label").attr("data-part","label").attr("id",`legend-label-${K}`).attr("dy",g.dy).style("text-anchor",g.textAnchor).style("font-size",g.fontSize).style("font-family",g.fontFamily).style("cursor",g.cursor).text(Bt??it??J).each(function(){let At=R.select(this);rt(At,x),rt(At,G),rt(At,Dt)}),Gn=ne.node().getComputedTextLength(),Vr=this.width-this.margin.left-this.margin.right,Oa=Gn+M+2*T;B+Oa>Vr&&(B=s,N+=M+T),ne.attr("x",B+M+T).attr("y",N+M/2);let Zi=X.append("rect").attr("class","legend-marker").attr("data-part","marker").attr("id",`legend-marker-${K}`).style("cursor",p.cursor).attr("x",B).attr("y",N).attr("width",M).attr("height",M).attr("rx",m).style("fill",A.fill(J)).style("stroke",A.outline??(Iy(A.fill(J))?"#bdbdbd":null)).each(()=>A.align(J,B,N)).each(function(){let At=R.select(this);rt(At,v),rt(At,tt),rt(At,ge)});De(ne,Dt),De(Zi,ge),L.push({node:ht[K],row:N,start:B,end:B+M+T+Gn}),u==="horizontal"?B+=Gn+M+2*T:N+=M+T}).on("mouseover",(J,K)=>{R.select(J.currentTarget).classed("hovered",!0)}).on("mouseout",(J,K)=>{R.select(J.currentTarget).classed("hovered",!1)}).on("click",(J,K)=>{if(J.detail>1||b&&J.bubbles)return;let ht=R.select(J.currentTarget);ht.classed("unselected")?ht.classed("unselected",!1):ht.classed("unselected",!0);let X=q.selectAll(".unselected").data(),tt=this.data.filter(it=>X.includes(it[t])).map(it=>it.rowID);n&&typeof n=="string"?R.select("#"+n).selectAll("[rowID]").each(function(){let it=+R.select(this).attr("rowID");tt.includes(it)?R.select(this).style("display","none"):R.select(this).style("display","")}):R.selectAll("[rowID]").each(function(){let it=+R.select(this).attr("rowID");tt.includes(it)?R.select(this).style("display","none"):R.select(this).style("display","")})}),i&&U==="right"&&Z();let Q={center:.5,right:1}[h]??0;if(Q>0){let J=this.width-this.margin.left-this.margin.right,K=X=>u==="horizontal"?X.row:0,ht=R.rollup(L,X=>R.max(X,tt=>tt.end)-R.min(X,tt=>tt.start),K);L.forEach(X=>{let tt=Math.max(0,J-ht.get(K(X)))*Q;R.select(X.node).attr("transform",`translate(${tt}, 0)`)})}if(f&&this.height===0){var j=20,H=N+M+T+j;S.attr("height",H);var W=k;S.attr("viewBox",`0 0 ${W} ${H}`),q.attr("transform",`translate(${this.margin.left}, ${this.margin.top+j/2})`)}return this};ft.prototype.links=function(t,e,n={}){let r={y:50,showLinks:!0,label:!0,measure:"identity",linkWidth:1,labelStyle:{cursor:"pointer",fontSize:"12px",fontStyle:"italic",fontFamily:"sans-serif",textAnchor:"middle"},labelAdjustmentOptions:{rotation:-65,offsetX:0,offsetY:0,dx:"0em",dy:"0em"}};if(!t||t.length===0)return this;let i=ut.call(this,r,"linkOptions",n),{x:o,y:a,cursor:s,fontSize:c,fontStyle:l,fontFamily:u,textAnchor:h,showLinks:f,label:d,measure:m,labelStyle:p,labelAdjustmentOptions:g,linkWidth:y}=i,w=st(n,r),b=st(p,r.labelStyle);var v=this.svg.append("g").attr("data-component","links").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let S=this.data.some(k=>k.strand==="reverse")?this.geneStrandSpacing*1:0;if(f&&t.forEach(k=>{let C=(1-y)/2,F=k.start1+(k.end1-k.start1)*C,A=k.end1-(k.end1-k.start1)*C,E=k.start2+(k.end2-k.start2)*C,D=k.end2-(k.end2-k.start2)*C;if(k.cluster1===e){let $=k.groupColor?this.genesColorScale(k.groupColor):this.genesColorScale(k.group1);v.append("circle").attr("cx",this.xScale(F)).attr("cy",this.yScale(a)+S).attr("position",k.start1).attr("r",1).attr("cluster",e).attr("visibility","hidden").attr("groupColor",$).attr("linkID",k.linkID).attr("class","link-marker"),v.append("circle").attr("cx",this.xScale(A)).attr("cy",this.yScale(a)+S).attr("position",k.end1).attr("class","link-marker").attr("groupColor",$).attr("visibility","hidden").attr("linkID",k.linkID).attr("cluster",e).attr("r",1)}if(k.cluster2===e){let $=k.groupColor?this.genesColorScale(k.groupColor):this.genesColorScale(k.group2);v.append("circle").attr("cx",this.xScale(E)).attr("cy",this.yScale(a)-S).attr("position",k.start2).attr("class","link-marker").attr("cluster",e).attr("visibility","hidden").attr("groupColor",$).attr("linkID",k.linkID).attr("r",1),v.append("circle").attr("cx",this.xScale(D)).attr("cy",this.yScale(a)-S).attr("position",k.end2).attr("class","link-marker").attr("linkID",k.linkID).attr("cluster",e).attr("visibility","hidden").attr("groupColor",$).attr("r",1)}}),d&&i.labelPosition!=="link"){let k=Ql(this,".link-text"),C=this.svg.selectAll(".link-text").nodes(),F=new Set(C.map(E=>E.getAttribute("rowID"))),A=this.data.filter(E=>!F.has(`${E.rowID}`)&&E[m]!=null&&E.BlastP!="No Hit"&&(E.BlastP===void 0||E.BlastP!=E.protein_id&&E.BlastP)&&(n.value1===void 0&&n.value2===void 0||n.value1&&n.value1.includes(E[n.group])||n.value2&&n.value2.includes(E[n.group])));v.selectAll(".link-text").data(A).enter().append("text").attr("id",(E,D)=>`cluster-${vr(E.cluster)}-link-label-${C.length+D}`).attr("rowID",(E,D)=>`${E.rowID}`).attr("class","link-text").attr("x",(E,D)=>this.xScale((E.start+E.end)/2)).attr("y",(E,D)=>this.yScale(a)-this.markerHeight/1.5-S).text(E=>`${parseFloat(E[m].toFixed(1))}%`).style("font-size",p.fontSize).style("font-style",p.fontStyle).style("font-family",p.fontFamily).style("cursor",p.cursor).attr("text-anchor",p.textAnchor).attr("cluster",e).each(function(E,D){let $=R.select(this);k.adjust(this,g),rt($,b),ya(b)&&k.refresh(this)})}return this};ft.prototype.trackMouse=function(t=!0,e={}){if(!t)return this;let n={cursor:"crosshair",backgroundColor:"rgba(255, 255, 255, 0.9)",padding:"8px",borderRadius:"4px",border:"1px solid rgba(0,0,0,0.1)",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)",fontFamily:"Arial, sans-serif",fontSize:"12px",color:"#333",lineHeight:"1.5",zIndex:1e3},{cursor:r,show:i,...o}=ut.call(this,n,"trackMouseOptions",e);this.svg.style("cursor",r),this.svg.selectAll("*").each(function(){this.style.cssText+=`cursor: ${r} !important;`});let a=this.svg.node().closest(".html-widget")||document.body,s=R.select(a).append("div").attr("class","coordinate-tooltip").style("pointer-events","none").style("position","absolute").style("visibility","hidden");rt(s,o);let c=R.scaleLinear().domain([0+this.margin.left,this.width-this.margin.right]).range([0,100]),l=R.scaleLinear().domain([this.height-this.margin.bottom,0+this.margin.top]).range([0,100]),u=R.scaleLinear().domain([0-this.margin.left,this.width]).range([0,100]);return this.svg.on("mousemove",h=>{let[f,d]=R.pointer(h),m=f-this.margin.left,p=Math.round(this.xScale.invert(m)),g=R.format(",");s.html(`x: ${g(p)} <br>y: ${l(d).toFixed(1)}`).style("visibility","visible").style("left",R.pointer(h,a)[0]+10+"px").style("top",R.pointer(h,a)[1]-10+"px")}),this.svg.on("mouseout",()=>{s.style("visibility","hidden")}),this};var SE=["sequence","genes","transcript","links","coordinates","labels","annotations"];ft.prototype.clipZoom=function(){if(!this.zoom)return this;let t=this.svg.node(),e=Array.from(t.children).filter(i=>SE.includes(i.getAttribute("data-component")));if(!e.length)return this;let n=this.width-this.margin.left-this.margin.right,r=document.createElementNS("http://www.w3.org/2000/svg","svg");return r.setAttribute("class","geneviewer-zoom-clip"),r.setAttribute("x",this.margin.left),r.setAttribute("y",0),r.setAttribute("width",n),r.setAttribute("height",this.height),r.setAttribute("viewBox",`${this.margin.left} 0 ${n} ${this.height}`),r.setAttribute("preserveAspectRatio","none"),r.setAttribute("overflow","hidden"),t.insertBefore(r,e[0]),e.forEach(i=>r.appendChild(i)),this};ft.prototype.addAnnotations=function(t){if(!t||t.length===0)return this;var e=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);return t.forEach(n=>{this.createAnnotation(e,n)}),this};ft.prototype.createAnnotation=function(t,e){switch(e.type){case"text":this.createTextAnnotation(t,e);break;case"line":this.createLineAnnotation(t,e);break;case"textMarker":this.createTextMarkerAnnotation(t,e);break;case"arrow":this.createArrowAnnotation(t,e);break;case"promoter":this.createPromoterAnnotation(t,e);break;case"terminator":this.createTerminatorAnnotation(t,e);break;case"rectangle":this.createRectangleAnnotation(t,e);break;case"symbol":this.createSymbolAnnotation(t,e);break;case"arc":this.createCurveAnnotation(t,e);break;default:Le("Unsupported annotation type: "+e.type)}};ft.prototype.createTextAnnotation=function(l,e){let n={x:0,y:60,text:"",style:{fontSize:"10px",fontStyle:"normal",fontWeight:"normal",textDecoration:"none",fontFamily:"sans-serif",cursor:"default"}},r=ut.call(this,n,"textAnnotationOptions",e),{x:i,y:o,text:a,style:s}=r;Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]);let c=st(s,n.style);var l=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let u=0;u<Math.max(i.length,o.length,a.length);u++){let h=i[Math.min(u,i.length-1)],f=o[Math.min(u,o.length-1)],d=a[Math.min(u,a.length-1)];l.append("text").attr("x",this.xScale(h)).attr("y",this.yScale(f)).style("font-size",s.fontSize).style("font-style",s.fontStyle).style("font-weight",s.fontWeight).style("text-decoration",s.textDecoration).style("font-family",s.fontFamily).style("cursor",s.cursor).each(function(){let m=R.select(this);wr(d,m,s),rt(m,c)})}};ft.prototype.createLineAnnotation=function(u,e){let n={x1:0,y1:70,x2:0,y2:50,style:{stroke:"black",strokeWidth:1}},r=ut.call(this,n,"lineAnnotationOptions",e),{x1:i,y1:o,x2:a,y2:s,style:c}=r;Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]),Array.isArray(s)||(s=[s]);let l=st(c,n.style);var u=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let h=0;h<Math.max(i.length,o.length,a.length,s.length);h++){let f=i[Math.min(h,i.length-1)],d=o[Math.min(h,o.length-1)],m=a[Math.min(h,a.length-1)],p=s[Math.min(h,s.length-1)];u.append("line").attr("x1",this.xScale(f)).attr("y1",this.yScale(d)).attr("x2",this.xScale(m)).attr("y2",this.yScale(p)).style("stroke",c.stroke).style("stroke-width",c.strokeWidth).each(function(){let g=R.select(this);rt(g,l)})}};ft.prototype.createArrowAnnotation=function(d,e){let n={x1:1,y1:70,x2:1,y2:50,arrowSize:8,arrowStyle:{fill:"black"},lineStyle:{stroke:"black",strokeWidth:1}},r=ut.call(this,n,"arrowAnnotationOptions",e),{x1:i,y1:o,x2:a,y2:s,arrowSize:c,arrowStyle:l,lineStyle:u}=r;Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]),Array.isArray(s)||(s=[s]),Array.isArray(c)||(c=[c]);let h=st(u,n.lineStyle),f=st(l,n.arrowStyle);var d=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let m=0;m<Math.max(i.length,o.length,a.length,s.length,c.length);m++){let p=i[Math.min(m,i.length-1)],g=o[Math.min(m,o.length-1)],y=a[Math.min(m,a.length-1)],w=s[Math.min(m,s.length-1)],b=c[Math.min(m,c.length-1)],v=jr("arrowhead");this.svg.append("defs").append("marker").attr("id",v).attr("viewBox","-0 -5 10 10").attr("refX",5).attr("refY",0).attr("orient","auto").attr("markerWidth",b).attr("markerHeight",b).attr("xoverflow","visible").append("path").attr("d","M 0,-5 L 10 ,0 L 0,5").attr("fill",l.fill).each(function(){let x=R.select(this);rt(x,f)}),d.append("line").attr("x1",this.xScale(p)).attr("y1",this.yScale(g)).attr("x2",this.xScale(y)).attr("y2",this.yScale(w+b/2)).attr("marker-end",`url(#${v})`).style("stroke",u.stroke).style("stroke-width",u.strokeWidth).each(function(){let x=R.select(this);rt(x,h)})}};ft.prototype.createTextMarkerAnnotation=function(t,e){let n={x1:null,y1:66,x2:null,y2:50,position:0,text:"",labelX:0,labelY:0,showArrow:!1,arrowSize:8,textStyle:{fontSize:"10px",fontFamily:"sans-serif",fill:"black",textAnchor:"middle"},arrowStyle:{fill:"black"},lineStyle:{stroke:"black",strokeWidth:1}},r=ut.call(this,n,"textMarkerAnnotationOptions",e),{textStyle:i,arrowStyle:o,lineStyle:a}=r,s=["x1","y1","x2","y2","position","text","labelX","labelY","showArrow","arrowSize"];s.forEach(h=>{Array.isArray(r[h])||(r[h]=[r[h]])});let c=st(a,n.lineStyle),l=st(o,n.arrowStyle),u=Math.max(...s.map(h=>r[h].length));for(let h=0;h<u;h++){let f={};s.forEach(b=>{f[b]=r[b][h%r[b].length]});let d=f.showArrow?f.arrowSize/2:0;var t=this.svg.insert("g",":first-child").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let p=Math.round(this.xScale(f.x1!==null?f.x1:f.position)),g=Math.round(this.xScale(f.x2!==null?f.x2:f.position)),y=t.append("line").attr("x1",p).attr("y1",this.yScale(f.y1)).attr("x2",g).attr("y2",this.yScale(f.y2+d)).style("stroke",a.stroke).style("stroke-width",a.strokeWidth).each(function(){let b=R.select(this);rt(b,c)}),w=jr("arrowhead-marker");this.svg.append("defs").append("marker").attr("id",w).attr("viewBox","-0 -5 10 10").attr("refX",5).attr("refY",0).attr("orient","auto").attr("markerWidth",f.arrowSize).attr("markerHeight",f.arrowSize).attr("xoverflow","visible").append("path").attr("d","M 0,-5 L 10 ,0 L 0,5").attr("fill",o.fill).each(function(){let b=R.select(this);rt(b,l)}),f.showArrow&&y.attr("marker-end",`url(#${w})`),f.text&&t.append("text").attr("x",this.xScale(f.x1!==null?f.x1:f.position)+f.labelX).attr("y",this.yScale(f.y1)-5-f.labelY).style("text-anchor",i.textAnchor).style("font-size",i.fontSize).style("font-family",i.fontFamily).style("fill",i.fill).each(function(){let b=R.select(this);wr(f.text,b,i),rt(b,st(i,n.textStyle))})}return t};ft.prototype.createSymbolAnnotation=function(u,e){let n={x:0,y:50,size:64,symbol:"circle",style:{fill:"black",stroke:"black",strokeWidth:2},rotation:0},r=ut.call(this,n,"symbolAnnotationOptions",e),{x:i,y:o,size:a,symbol:s,style:c,rotation:l}=r;Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(s)||(s=[s]),Array.isArray(l)||(l=[l]),Array.isArray(a)||(a=[a]);var u=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let h=st(c,n.style),f={circle:R.symbolCircle,cross:R.symbolCross,diamond:R.symbolDiamond,square:R.symbolSquare,star:R.symbolStar,triangle:R.symbolTriangle,wye:R.symbolWye};for(let d=0;d<Math.max(i.length,o.length,s.length,l.length);d++){let m=i[Math.min(d,i.length-1)],p=o[Math.min(d,o.length-1)],g=s[Math.min(d,s.length-1)],y=l[Math.min(d,l.length-1)],w=a[Math.min(d,a.length-1)];if(!f[g]){console.error(`Unsupported symbol type: ${g}`);continue}let b=R.symbol().type(f[g]).size(w);u.append("path").attr("d",b).attr("transform",`translate(${this.xScale(m)}, ${this.yScale(p)}) rotate(${y})`).style("fill",c.fill).style("stroke",c.stroke).style("stroke-width",c.strokeWidth).each(function(){let v=R.select(this);rt(v,h)})}return u};ft.prototype.createRectangleAnnotation=function(c,e){let n={position:[[[9300,20],[9400,50]]],rotation:[0],style:{fill:"#0000",stroke:"black",strokeWidth:2}},r=ut.call(this,n,"rectangleAnnotationOptions",e),{position:i,style:o,rotation:a}=r;Array.isArray(i[0][0])||(i=[i]),Array.isArray(a)||(a=[a]);let s=st(o,n.style);var c=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let l=Math.max(i.length,a.length);for(let u=0;u<l;u++){let h=i[Math.min(u,i.length-1)],f=a[Math.min(u,a.length-1)],d=Math.min(h[0][0],h[1][0]),m=Math.max(h[0][0],h[1][0]),p=Math.max(h[0][1],h[1][1]),g=Math.min(h[0][1],h[1][1]),y=Math.abs(d-m),w=Math.abs(g-p);c.append("rect").attr("x",this.xScale(d)).attr("y",this.yScale(p)).attr("width",this.xScale(m)-this.xScale(d)).attr("height",this.yScale(g)-this.yScale(p)).attr("transform",`rotate(${f}, ${this.xScale(d+y/2)}, ${this.yScale(p+w/2)})`).style("fill",o.fill).style("stroke",o.stroke).style("stroke-width",o.strokeWidth).each(function(){let b=R.select(this);rt(b,s)})}};ft.prototype.createPromoterAnnotation=function(d,e){let n={x:0,y:50,direction:"forward",rotation:0,scale:1,style:{fill:"none",stroke:"black",strokeWidth:1}},r=ut.call(this,n,"promoterAnnotationOptions",e),{x:i,y:o,direction:a,rotation:s,scale:c,style:l}=r,u=st(l,n.style);Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]),Array.isArray(s)||(s=[s]),Array.isArray(c)||(c=[c]);let h="M -8 -17.5 L -13 -14 l 5 3.5 M -13 -14 L 0 -14 v 14",f="M 8 -17.5 L 13 -14 l -5 3.5 M 13 -14 H 0 v 14";var d=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let m=0;m<Math.max(i.length,o.length,a.length,s.length,c.length);m++){let p=i[Math.min(m,i.length-1)],g=o[Math.min(m,o.length-1)],y=a[Math.min(m,a.length-1)],w=s[Math.min(m,s.length-1)],b=c[Math.min(m,c.length-1)],v=y==="forward"?f:h,x=this.xScale(p);d.append("path").attr("d",v).attr("transform",`translate(${x}, ${this.yScale(g)}) scale(${b}) rotate(${w})`).style("fill",l.fill).style("stroke",l.stroke).style("stroke-width",l.strokeWidth).each(function(){let S=R.select(this);rt(S,u)})}};ft.prototype.createTerminatorAnnotation=function(d,e){let n={x:0,y:50,direction:"forward",rotation:0,scale:1,style:{fill:"none",stroke:"black",strokeWidth:1}},r=ut.call(this,n,"terminatorAnnotationOptions",e),{x:i,y:o,direction:a,rotation:s,scale:c,style:l}=r,u=st(l,n.style);Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]),Array.isArray(s)||(s=[s]),Array.isArray(c)||(c=[c]);let h="M -8 17.5 L -13 14 l 5 -3.5 M -13 14 H 0 v -14",f="M 8 17.5 L 13 14 l -5 -3.5 M 13 14 L 0 14 v -14";var d=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let m=0;m<Math.max(i.length,o.length,a.length,s.length,c.length);m++){let p=i[Math.min(m,i.length-1)],g=o[Math.min(m,o.length-1)],y=a[Math.min(m,a.length-1)],w=s[Math.min(m,s.length-1)],b=c[Math.min(m,c.length-1)],v=y==="forward"?h:f,x=this.xScale(p);d.append("path").attr("d",v).attr("transform",`translate(${x}, ${this.yScale(g)}) scale(${b}) rotate(${w})`).style("fill",l.fill).style("stroke",l.stroke).style("stroke-width",l.strokeWidth).each(function(){let S=R.select(this);rt(S,u)})}};ft.prototype.createCurveAnnotation=function(y,e){let n={x1:[0],y1:[50],x2:[100],y2:[50],midY:[80],stroke:["black"],strokeWidth:[1],lineStyle:{},text:[""],labelX:[0],labelY:[0],textStyle:{fontSize:"10px",fontFamily:"sans-serif",fill:"black",textAnchor:"middle"}},r=ut.call(this,n,"curveAnnotationOptions",e);["x1","y1","x2","y2","midY","stroke","strokeWidth","text","labelX","labelY"].forEach(w=>{Array.isArray(r[w])||(r[w]=[r[w]])});let{x1:o,y1:a,x2:s,y2:c,midY:l,stroke:u,strokeWidth:h,lineStyle:f,text:d,labelX:m,labelY:p,textStyle:g}=r;var y=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let w=0;w<Math.max(o.length,a.length,s.length,c.length,d.length,m.length,p.length);w++){let b=o[w%o.length],v=a[w%a.length],x=s[w%s.length],S=c[w%c.length],k=l[w%l.length],C=u[w%u.length],F=h[w%h.length],A=d[w%d.length],E=m[w%m.length],D=p[w%p.length],$=(b+x)/2,M=R.line().curve(R.curveBasis).x(L=>this.xScale(L.x)).y(L=>this.yScale(L.y)),T=[{x:b,y:v},{x:$,y:k},{x,y:S}],B=y.append("path").attr("d",M(T)).style("stroke",C).style("stroke-width",F).style("fill","none");rt(B,st(f,n.lineStyle));let N=y.append("text").attr("x",this.xScale($)+E).attr("y",this.yScale(k)-D).text(A);rt(N,g)}};var Ze=class t{constructor(e={}){this.columns=new Map(Object.entries(e))}static from(e){if(e instanceof t)return e.copy();if(Array.isArray(e)){let r=[];for(let o of e)for(let a of Object.keys(o))r.includes(a)||r.push(a);let i=new t;for(let o of r)i.columns.set(o,e.map(a=>a[o]===void 0?null:a[o]));return i}let n=new t;for(let[r,i]of Object.entries(e||{}))n.columns.set(r,Array.isArray(i)?i.slice():[i]);return n}copy(){let e=new t;for(let[n,r]of this.columns)e.columns.set(n,r.slice());return e}get nrow(){let e=this.columns.values().next();return e.done?0:e.value.length}get names(){return[...this.columns.keys()]}has(e){return this.columns.has(e)}get(e){return this.columns.get(e)}set(e,n){let r=this.nrow;return this.columns.set(e,Array.isArray(n)?n:Array.from({length:r},()=>n)),this}drop(e){return this.columns.delete(e),this}rows(e){let n=new t;for(let[r,i]of this.columns)n.columns.set(r,e.map(o=>i[o]));return n}filter(e){let n=[];for(let r=0;r<this.nrow;r++)e(r)&&n.push(r);return this.rows(n)}select(e){let n=new t;for(let r of e)this.columns.has(r)&&n.columns.set(r,this.columns.get(r).slice());return n}row(e){let n={};for(let[r,i]of this.columns)n[r]=i[e];return n}toJSON(){return Object.fromEntries(this.columns)}};function de(t){if(t==null)return null;if(typeof t=="boolean")return t?"TRUE":"FALSE";if(typeof t!="number")return String(t);if(Number.isNaN(t))return"NaN";if(!Number.isFinite(t))return t>0?"Inf":"-Inf";if(t===0)return"0";let e=Number(t.toPrecision(15)),n=e!==t&&Number.isInteger(t)?t:e,[r,i]=Math.abs(n).toExponential().split("e"),o=r.replace(".",""),a=Number(i),s=n<0?"-":"",c;a>=0?c=o.length>a+1?`${o.slice(0,a+1)}.${o.slice(a+1)}`:o+"0".repeat(a+1-o.length):c=`0.${"0".repeat(-a-1)}${o}`;let l=`${r}e${a<0?"-":"+"}${String(Math.abs(a)).padStart(2,"0")}`;return s+(c.length<=l.length?c:l)}function Xi(t){if(t==null)return null;if(typeof t=="number")return t;if(typeof t=="boolean")return t?1:0;let e=String(t).trim();return e===""||!/^[-+]?(\d+\.?\d*|\.\d+)([eE][-+]?\d+)?$|^[-+]?(Inf|NaN)$/.test(e)?null:Number(e.replace("Inf","Infinity"))}function gt(t,e){if(t!=null){if(Array.isArray(t)){if(!t.length)return;let n=t[e%t.length];return n!==null&&typeof n=="object"?[n]:n}if(Wt(t)){let n=Object.keys(t);if(!n.length)return;let r=n[e%n.length];return{[r]:t[r]}}return t}}function xa(t,e,n){return Object.prototype.hasOwnProperty.call(t,e)?t[e]:n}function Wt(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function Jy(t){return t==null?!0:Array.isArray(t)?t.length===0:Wt(t)?Object.keys(t).length===0:!1}function Ce(t){let e={};for(let[n,r]of Object.entries(t))r!=null&&(Array.isArray(r)&&r.length===0||Wt(r)&&Object.keys(r).length===0||(e[n]=r));return e}function _a(t){let e={};for(let[n,r]of Object.entries(t))r!=null&&(e[n]=r);return e}function Xr(t,e){let n=Wt(t)?{...t}:{};for(let[r,i]of Object.entries(e||{}))i==null?delete n[r]:Wt(n[r])&&Wt(i)?n[r]=Xr(n[r],i):n[r]=i;return n}function Ke(t,e){return t==null?e:Xr(t,e)}function Jl(t,e=2){if(typeof t=="number")return t/e;if(/px$/.test(t))return`${de(Xi(t.replace(/px$/,""))/e)}px`;if(/%$/.test(t))return`${de(Xi(t.replace(/%$/,""))/e)}%`;throw new Error("Unsupported format")}function Xn(t,e){let n=o=>typeof o=="string"&&/%$/.test(o);if(n(t)&&n(e))return e;let r=t;if(typeof r=="string"&&/px$/.test(r)&&(r=Xi(r.replace("px",""))),n(e)){let o=Xi(String(e).replace("%",""))/100;return typeof r=="number"?r*o:null}let i=e;return typeof i=="string"&&/px$/.test(i)&&(i=Xi(String(i).replace("px",""))),Xi(i)}function pe(t){if(t===null||typeof t!="object")return t;if(typeof t.copy=="function")return t.copy();if(Array.isArray(t))return t.map(pe);let e={};for(let[n,r]of Object.entries(t))e[n]=pe(r);return e}var kE="<b>Start:</b> {start}<br><b>End:</b> {end}",AE=`<b>{protein_id}</b><br>
|
|
21
|
+
L${e} ${v}`;break;default:qe(`Marker type '${t}' not recognized.`),b=""}return{path:b,length:e,scaledArrowheadWidth:d,scaledArrowheadHeight:m,height:v,used:{arrowheadWidth:l,arrowheadHeight:u,markerHeight:h,cornerRadius:f??0}}}function Rh(t){t.attr("rowID",(e,n)=>`${e.rowID}`).attr("start",(e,n)=>`${e.start}`).attr("end",(e,n)=>`${e.end}`).attr("strand",(e,n)=>`${e.strand}`).attr("cluster",(e,n)=>`${e.cluster}`)}function Ph(t,e,{xPos:n,yPos:r,height:i}){return`rotate(${t?e.direction==="forward"?180:0:e.direction==="forward"?0:180}, ${n}, ${r}) translate(${n}, ${r-i/2})`}function Ih(t,e,n,r,i,o){let a=o.find(S=>S.index===n)||{},s=Math.abs(t.xScale(e.end)-t.xScale(e.start)),c=a.y??r,l=a.marker??i.marker,u=a.markerSize??i.markerSize,{path:h,arrowheadWidth:f,arrowheadHeight:d,height:m,used:p}=Vy(l,s,u,{arrowheadWidth:a.arrowheadWidth??i.arrowheadWidth,arrowheadHeight:a.arrowheadHeight??i.arrowheadHeight,markerHeight:a.markerHeight??i.markerHeight,cornerRadius:a.cornerRadius??i.cornerRadius}),g=Vy(i.marker,s,i.markerSize,{arrowheadWidth:i.arrowheadWidth,arrowheadHeight:i.arrowheadHeight,markerHeight:i.markerHeight,cornerRadius:i.cornerRadius}).height;t.markerHeight=g,t.markerY=r,t.geneStrandSpacing=t.separateStrands?g/2+t.strandSpacing:0,t.geneOverlapSpacing=g+t.overlapSpacing;let y=e.strand==="forward"&&t.geneStrandSpacing!==0?t.geneStrandSpacing:-t.geneStrandSpacing,w=e.geneTrack?(e.geneTrack-1)*t.geneOverlapSpacing:0,b=t.yScale(c)-y+w,v=t.xScale(e.start),_={marker:l,markerSize:u,...p,y:c};return{xPos:v,yPos:b,path:h,arrowheadWidth:f,arrowheadHeight:d,height:m,drawn:_}}ft.prototype.genes=function(t,e=!0,n={}){if(!e)return this;if(!this.data)return console.error("No data has been added to this cluster container. Please use the geneData() function before attempting to draw arrows."),this;let r={x:1,y:50,stroke:"black",strokeWidth:1,colorScheme:null,customColors:null,pattern:null,cursor:"default",marker:"arrow",markerSize:"medium",itemStyle:[],groupStyle:{},styleBy:null,arrowheadWidth:null,arrowheadHeight:null,markerHeight:null,cornerRadius:null},i=ut.call(this,r,"geneOptions",n),{x:o,y:a,stroke:s,strokeWidth:c,colorScheme:l,customColors:u,pattern:h,cursor:f,groupStyle:d,styleBy:m}=i,p=at(i,r),g=[...new Set(this.dataAll.map(S=>S[t]))],y=ji(l,u,g);this.genesColorScale=y;let w=Xi(this.svg,h,g,y,"gene");var b=this.svg.append("g").attr("data-component","genes").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);this.data.sort((S,k)=>Math.min(S.start,S.end)-Math.min(k.start,k.end));let v=Ui(this.data,m??t,d,i.itemStyle),_=(S,k)=>Ih(this,S,k,a,i,v);return b.selectAll(".gene").data(this.data).enter().append("path").attr("d",(S,k)=>_(S,k).path).attr("transform",(S,k)=>Ph(this.reverse,S,_(S,k))).attr("fill",S=>w.fill(S[t])).attr("class","gene").attr("id",(S,k)=>`${wr(S.cluster)}-gene-${k}`).call(Rh).style("stroke-width",c).style("stroke",s).style("cursor",f).each(function(S,k){let C=R.select(this);rt(C,p),Hi(C,v,k),this.__drawn__=_(S,k).drawn}),this.genes=b.selectAll(".gene"),this};ft.prototype.transcript=function(t,e=!0,n={}){if(!e)return this;if(!this.data)return console.error("No data has been added to this cluster container. Please use the geneData() function before attempting to draw arrows."),this;let r={x:1,y:50,colorScheme:null,customColors:null,pattern:null,styleExons:{show:!0,strokeWidth:0,cursor:"default",marker:"box",markerSize:"medium",arrowheadWidth:null,arrowheadHeight:null,markerHeight:null,cornerRadius:null},styleIntrons:{show:!0,strokeWidth:1,fill:"none",cursor:"default",marker:"intron",markerSize:"medium",arrowheadWidth:null,arrowheadHeight:null,markerHeight:null,cornerRadius:null},styleUTRs:{show:!0,fontSize:"10px",fontStyle:"normal",fontFamily:"sans-serif",cursor:"default",color:"black",fill:"#FFF",strokeWidth:1,marker:"box",markerSize:"medium",arrowheadWidth:null,arrowheadHeight:null,markerHeight:null,cornerRadius:null},labelOptions:{show:!0,xOffset:2,yOffset:0,fontSize:"12px",fontStyle:"normal",fontWeight:"normal",fontFamily:"sans-serif",cursor:"default",color:"black"},itemStyleExons:[],itemStyleIntrons:[],itemStyleUTRs:[],groupStyleExons:{},groupStyleIntrons:{},groupStyleUTRs:{},styleBy:null},i=ut.call(this,r,"transcriptOptions",n),{x:o,y:a,colorScheme:s,customColors:c,pattern:l,styleExons:u,styleIntrons:h,styleUTRs:f,labelOptions:d}=i,m=i.styleBy??t,p=at(i.styleExons,r.styleExons),g=at(i.styleIntrons,r.styleIntrons),y=at(i.styleUTRs,r.styleUTRs),w=[...new Set(this.dataAll.map(A=>A[t]))],b=ji(s,c,w);this.genesColorScale=b;let v=Xi(this.svg,l,w,b,"exon"),_=this.svg.append("g").attr("data-component","transcript").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);this.data.sort((A,E)=>Math.min(A.start,A.end)-Math.min(E.start,E.end));let S=(A,E,D,$)=>Ih(this,A,E,a,D,$),k=(A,E,D,$,M,T,B,N)=>{let L=this.data.filter(U=>new RegExp(A,"i").test(U.type)),q=Ui(L,m,D,$);return _.selectAll(`.${A}`).data(L).enter().append("path").attr("d",(U,Z)=>S(U,Z,E,q).path).attr("transform",(U,Z)=>T(U,S(U,Z,E,q))).attr("fill",B).attr("class",A).attr("id",(U,Z)=>`${wr(U.cluster)}-${A}-${Z}`).call(Rh).style("stroke-width",E.strokeWidth).style("stroke",N).style("cursor",E.cursor).each(function(U,Z){let Q=R.select(this);rt(Q,M),Hi(Q,q,Z)}),_.selectAll(`.${A}`)},C=(A,E)=>Ph(this.reverse,A,E),F=A=>v.stroke(A[t]);if(u.show&&(this.exons=k("exon",u,i.groupStyleExons,i.itemStyleExons,p,C,A=>v.fill(A[t]),u.stroke)),h.show){let A=(E,{xPos:D,yPos:$,height:M})=>{let T=E.direction==="forward"?-M:+M;return`rotate(${this.reverse?E.direction==="reverse"?180:0:E.direction==="forward"?0:180}, ${D}, ${$+T}) translate(${D}, ${$+T})`};this.introns=k("intron",h,i.groupStyleIntrons,i.itemStyleIntrons,g,A,h.fill,F)}if(f.show&&(this.utrs=k("utr",f,i.groupStyleUTRs,i.itemStyleUTRs,y,C,f.fill,F),d.show)){let A=this.data[0].direction==="forward"?this.xScale(this.maxEnd)+d.xOffset:this.xScale(this.minStart)-d.xOffset,E=this.data[0].direction==="forward"?this.xScale(this.minStart)-d.xOffset:this.xScale(this.maxEnd)+d.xOffset;_.append("text").attr("x",A).attr("y",D=>this.yScale(a+d.yOffset)).attr("class","three-prime-label").attr("text-anchor","middle").attr("alignment-baseline","middle").style("font-size",d.fontSize).style("font-style",d.fontStyle).style("font-weight",d.fontWeight).style("font-family",d.fontFamily).style("cursor",d.cursor).style("fill",d.color).text("3'"),_.append("text").attr("x",E).attr("y",D=>this.yScale(a+d.yOffset)).attr("class","five-prime-label").attr("text-anchor","middle").attr("alignment-baseline","middle").style("font-size",d.fontSize).style("font-style",d.fontStyle).style("font-weight",d.fontWeight).style("font-family",d.fontFamily).style("cursor",d.cursor).style("fill",d.color).text("5'")}return this};function _E(t,e){return e.map(r=>{let i=`.link-marker[cluster='${r.cluster1}'][linkID='${r.linkID}'][position='${r.start1}']`,o=`.link-marker[cluster='${r.cluster2}'][linkID='${r.linkID}'][position='${r.start2}']`,a=`.link-marker[cluster='${r.cluster1}'][linkID='${r.linkID}'][position='${r.end1}']`,s=`.link-marker[cluster='${r.cluster2}'][linkID='${r.linkID}'][position='${r.end2}']`,c=t.select(i).node(),l=t.select(o).node(),u=t.select(a).node(),h=t.select(s).node();if(!c||!l||!u||!h)return null;let f=c.getBoundingClientRect(),d=l.getBoundingClientRect(),m=u.getBoundingClientRect(),p=h.getBoundingClientRect(),g=t.node().getBoundingClientRect(),y=S=>({x:S.left-g.left,y:S.top-g.top}),w=r.start1<=r.end1?"forward":"reverse",b=r.start2<=r.end2?"forward":"reverse",v=c.getAttribute("groupColor"),_=l.getAttribute("groupColor");return[{startPoint:y(f),endPoint:y(d),strand:w,groupColor:v},{startPoint:y(m),endPoint:y(p),strand:b,groupColor:_}]})}var Zy={normalColor:"#969696",invertedColor:"#d62728",lowColor:"#FFFFFF",vmin:0,vmax:100};function Ky(t,e,n,r){let i=R.interpolateRgb(t,e)(.1);return R.scaleLinear().domain([n,r]).range([i,e]).interpolate(R.interpolateRgb).clamp(!0)}function Qy(t,e,n={}){if(!e||e.length===0)return;let r={curve:!0,...Zy,useGroupColors:!1,color:"lightgrey",measure:"identity",label:!0,labelPosition:"gene",linkStyle:{stroke:"none",fillOpacity:.8},labelStyle:{fontSize:"10px",fontStyle:"normal",fontFamily:"sans-serif",cursor:"default",textAnchor:"middle",alignmentBaseline:"middle"}},i=t.node().getBoundingClientRect();var a=t.insert("div",":first-child").style("position","relative").style("width","100%").style("height","100%").insert("svg",":first-child").attr("width",i.width).attr("height",i.height).classed("GeneLink",!0).style("position","absolute").style("z-index",1);let s=[];e.forEach(function(u){let h=ut(r,"linkOptions",u.options,n),{curve:f,invertedColor:d,normalColor:m,lowColor:p,vmin:g,vmax:y,useGroupColors:w,color:b,linkStyle:v,measure:_}=h,S=at(v,r.linkStyle),k=jr(u.data);_E(t,k).forEach(function(F,A){if(!F)return;let E=F[0].strand==F[1].strand?R.rgb(m):R.rgb(d);var D=Ky(p,E,g,y);let $=h.measure==="none"?100:u.data?.[_]?.[A]??100,M=w?F[0].groupColor:D($);a.append("path").attr("data-component","links").datum(k[A]).attr("d",SE(F[0],F[1],f)).style("fill",M).style("stroke",v.stroke).style("fill-opacity",v.fillOpacity).classed("GeneLink",!0).each(function(){let B=R.select(this);rt(B,S)});let T=u.data?.[_]?.[A];if(h.label&&h.labelPosition==="link"&&_!=="none"&&T!=null&&Number.isFinite(+T)){let B=(F[0].startPoint.x+F[0].endPoint.x)/2,N=(F[1].startPoint.x+F[1].endPoint.x)/2;s.push({x:(B+N)/2,y:(F[0].startPoint.y+F[0].endPoint.y)/2,width:Math.abs(N-B),text:`${parseFloat((+T).toFixed(1))}%`,fill:R.hsl(R.color(M)??"#ffffff").l<.55?"#ffffff":"#333333",datum:k[A],labelStyle:h.labelStyle,defaults:r.labelStyle})}})});let c=a.append("g").attr("class","link-measure-labels"),l=[];s.sort((u,h)=>h.width-u.width).forEach(u=>{let{labelStyle:h}=u,f=c.append("text").attr("class","link-measure").attr("data-component","links").datum(u.datum).attr("x",u.x).attr("y",u.y).attr("text-anchor","middle").attr("dominant-baseline","central").style("font-size",h.fontSize).style("font-style",h.fontStyle).style("font-family",h.fontFamily).style("fill",u.fill).style("pointer-events","none").text(u.text).each(function(){let p=at(h,u.defaults);delete p.labelPosition,rt(R.select(this),p)}),d=f.node().getBBox(),m=l.every(p=>d.x+d.width<p.x||p.x+p.width<d.x||d.y+d.height<p.y||p.y+p.height<d.y);d.width+4>u.width||!m?f.remove():l.push(d)})}function SE(t,e,n=!0){var r=R.path();if(n){var i=(t.startPoint.y+t.endPoint.y)/2;r.moveTo(t.startPoint.x,t.startPoint.y),r.bezierCurveTo(t.startPoint.x,i,t.endPoint.x,i,t.endPoint.x,t.endPoint.y),r.lineTo(e.endPoint.x,e.endPoint.y);var o=(e.startPoint.y+e.endPoint.y)/2;r.bezierCurveTo(e.endPoint.x,o,e.startPoint.x,o,e.startPoint.x,e.startPoint.y)}else r.moveTo(t.startPoint.x,t.startPoint.y),r.lineTo(t.endPoint.x,t.endPoint.y),r.lineTo(e.endPoint.x,e.endPoint.y),r.lineTo(e.startPoint.x,e.startPoint.y);return r.closePath(),r.toString()}function Jy(t,e){if(!t||t.length===0)return[];let n=t.filter(o=>o.cluster1===e),r=t.filter(o=>o.cluster2===e);return n.concat(r)}function kE(t){let e=!1,n=!1;return t.forEach(r=>{let{start1:i=[],end1:o=[],start2:a=[],end2:s=[]}=r.data;for(let c=0;c<i.length;c++)i[c]<=o[c]==a[c]<=s[c]?e=!0:n=!0}),{normal:e,inverted:n}}function Lh(t,e={}){let n={colorBar:!0,...Zy,measure:"identity",margin:{top:5,right:25,bottom:0,left:50},colorBarOptions:{position:"bottomright",orientation:"vertical",labels:"inline",legendSide:"left",x:0,y:null,title:!0,width:null,height:null,labelOptions:{fontSize:8,fontFamily:"sans-serif",xOffset:2,yOffset:0},titleOptions:{fontSize:10,fontFamily:"sans-serif",xOffset:2,yOffset:0},barOptions:{stroke:"#000",strokeWidth:.5,opacity:1}}},r=ut(n,"linkOptions",t[0].options,e),{colorBarOptions:i}=r;if(r.colorBar===!1||r.measure==="none"||!t[0].data.hasOwnProperty("identity")&&!t[0].data.hasOwnProperty("similarity"))return null;let{normal:o,inverted:a}=kE(t);if(!o&&!a)return null;let s=n.colorBarOptions;return{linkOptions:r,colorBarOptions:i,horizontal:i.position==="legend"||i.orientation==="horizontal",hasNormal:o,hasInverted:a,additional:{label:at(i.labelOptions,s.labelOptions),title:at(i.titleOptions,s.titleOptions),bar:at(i.barOptions,s.barOptions)}}}function qh(t,e,n={}){let{linkOptions:r,colorBarOptions:i,horizontal:o,hasNormal:a,hasInverted:s,additional:c}=e,{labelOptions:l,titleOptions:u,barOptions:h}=i,f=o&&(n.labels??i.labels)==="below",d=parseFloat(n.width??i.width??(o?f?120:80:10)),m=parseFloat(n.height??i.height??(o?8:60)),p=n.fontSize??l.fontSize,g=n.fontSize??u.fontSize,y=n.fontFamily,w=n.outline&&(!h.stroke||h.stroke==="none")?n.outline:h.stroke,b=w===h.stroke?h.strokeWidth:.5,v=t.append("defs"),_=r.vmin,S=r.vmax,k=(B,N,L,q)=>{let U=Xr(B),Z=v.append("linearGradient").attr("id",U).attr("gradientTransform",o?null:"rotate(90)"),Q=Ky(r.lowColor,N,_,S);Z.append("stop").attr("offset","0%").attr("stop-color",Q(o?_:S)),Z.append("stop").attr("offset","100%").attr("stop-color",Q(o?S:_)),t.append("rect").attr("x",L).attr("y",q).attr("width",d).attr("height",m).style("fill",`url(#${U})`).style("stroke",w).style("stroke-width",b).style("opacity",h.opacity).each(function(){rt(R.select(this),c.bar)})},C=(B,N,L,q)=>t.append("text").attr("font-size",L).style("font-family",y??N.fontFamily).text(B).each(function(){rt(R.select(this),q)});if(!o)return i.title!==!1&&C(r.measure,u,g,c.title).attr("x",d+u.xOffset).attr("y",m/2+u.yOffset+10).attr("transform",`rotate(-90, ${d+u.xOffset}, ${m/2+u.yOffset})`).attr("alignment-baseline","bottom").attr("text-anchor","middle"),a&&k("linear-gradient",r.normalColor,0,0),s&&k("reverse-gradient",r.invertedColor,a?-d:0,0),C(S+"%",l,p,c.label).attr("x",d+l.xOffset).attr("y",-l.yOffset).attr("alignment-baseline","middle"),C(_+"%",l,p,c.label).attr("x",d+l.xOffset).attr("y",m+l.yOffset).attr("alignment-baseline","middle"),{width:(a&&s?2:1)*d,height:m};let F=(a&&s?2:1)*m,A=()=>C(r.measure,u,g,{fontWeight:"bold",...c.title}),E=(B,N)=>{a&&k("linear-gradient",r.normalColor,B,N),s&&k("reverse-gradient",r.invertedColor,B,N+(a?m:0))};if(f){let B=0;i.title!==!1&&(B=A().attr("x",0).attr("y",u.yOffset).attr("dominant-baseline","hanging").node().getBBox().height+3),E(0,B);let N=R.scaleLinear().domain([_,S]).range([0,d]),L=3,q=w&&w!=="none"?w:"#555555",U=j=>{let H=C(j,l,p,c.label),W=H.node().getComputedTextLength();return H.remove(),W},Z=j=>j.length>1&&j.every((H,W)=>W===0||N(H)-N(j[W-1])>(U(j[W-1]+"%")+U(H+"%"))/2+4);return([5,4,3,2].map(j=>N.ticks(j)).find(Z)??[_,S]).forEach(j=>{t.append("line").attr("x1",N(j)).attr("x2",N(j)).attr("y1",B+F).attr("y2",B+F+L).style("stroke",q).style("stroke-width",.5),C(j+"%",l,p,c.label).attr("x",N(j)).attr("y",B+F+L+1+l.yOffset).attr("dominant-baseline","hanging").attr("text-anchor","middle")}),{width:d,height:F}}let D=F/2,$=4,M=0,T=(B,N)=>{B.attr("x",M).attr("y",D+N).attr("dominant-baseline","central"),M+=B.node().getComputedTextLength()+$};return i.title!==!1&&(T(A(),u.yOffset),M+=$),T(C(_+"%",l,p,c.label),l.yOffset),E(M,0),M+=d+$,T(C(S+"%",l,p,c.label),l.yOffset),{width:d,height:F}}function tb(t,e,n={},r=!1){let i=Lh(e,n);if(!i)return null;let{linkOptions:o,colorBarOptions:a}=i;if(a.position==="legend"&&r)return null;let s=a.position==="legend"?"bottomright":a.position,c=a.orientation==="horizontal",l=t.node().getBoundingClientRect(),h=t.insert("div",":first-child").style("position","relative").style("width","100%").style("height","100%").append("svg").attr("width",l.width).attr("height",l.height).classed("color-bar",!0).attr("data-component","links").style("position","absolute"),f=h.append("g").attr("transform",`translate(${o.margin.left}, ${o.margin.top})`),d=l.width-o.margin.left-o.margin.right,m=l.height-o.margin.top-o.margin.bottom,p=s==="topleft"||s==="topright",g=s==="topleft"||s==="bottomleft",y=a.x??0,w=a.y??(p||c?0:24),b=f.append("g"),{width:v,height:_}=qh(b,{...i,horizontal:c});if(s==="bottomright"&&!c)b.attr("transform",`translate(${d-v-y}, ${m-_-w})`);else{let S=b.node().getBBox(),k=g?y-S.x:d-y-(S.x+S.width),C=p?w-S.y:m-w-(S.y+S.height);b.attr("transform",`translate(${k}, ${C})`)}return h}ft.prototype.legendData=function(t){return this.data=[...new Set(t)],this};ft.prototype.legend=function(t,e=!0,n=null,r={},i=null){if(!e)return this;let o={x:0,y:0,width:null,orientation:"horizontal",align:"left",adjustHeight:!0,order:[],cornerRadius:0,groupStyle:{},legendOptions:{cursor:"pointer",colorScheme:null,customColors:null,pattern:null},legendTextOptions:{cursor:"pointer",textAnchor:"start",dy:".35em",fontSize:"12px",fontFamily:"sans-serif"}},a=ut.call(this,o,"legendOptions",r),{x:s,y:c,width:l,orientation:u,align:h,adjustHeight:f,order:d,cornerRadius:m,legendOptions:p,legendTextOptions:g,groupStyle:y,itemStyle:w=[],editable:b=!1}=a,v=at(p,o.legendOptions),_=at(g,o.legendTextOptions),S=this.svg,k=Le(l,S.node().getBoundingClientRect().width)||S.node().getBoundingClientRect().width,C=[...new Set(this.data.map(J=>J[t]))];C=C.filter(J=>J!==null);let F=ji(p.colorScheme,p.customColors,C),A=Xi(this.svg,p.pattern,C,F,"legend"),E=["Other","No Hit","Unknown"],D=C.filter(J=>!E.includes(J)),$=E.filter(J=>C.includes(J));if(C=[...D,...$],d&&d.length>0&&(C=d.filter(J=>C.includes(J)).concat(C.filter(J=>!d.includes(J)))),!C.length){console.error(`Error: No labels provided and the group "${t}" does not exist in the data.`);return}let M=parseFloat(g.fontSize),T=M/2,B=s,N=c,L=[];var q=this.svg.append("g").attr("data-component","legend").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let U=i?.colorBarOptions.legendSide==="right"?"right":"left",Z=()=>{let J=q.append("g").attr("class","legend-color-bar").attr("data-component","links"),K=J.append("g"),ht=i.hasNormal&&i.hasInverted;qh(K,i,{height:i.colorBarOptions.height??M/(ht?2:1),fontSize:g.fontSize,fontFamily:g.fontFamily,outline:"#bdbdbd",labels:"inline"});let G=K.node().getBBox(),tt=2*M+T;if(u==="horizontal"&&U==="right"&&B>s){let ot=this.width-this.margin.left-this.margin.right;B+tt+G.width>ot?(B=s,N+=M+T):B+=tt}K.attr("transform",`translate(${B-G.x}, ${N+M/2-(G.y+G.height/2)})`),L.push({node:J.node(),row:N,start:B,end:B+G.width}),u==="horizontal"?B+=G.width+tt+T:N+=Math.max(M,G.height)+T};i&&U==="left"&&Z(),q.selectAll(".legend").data(C).enter().append("g").attr("class","legend").each((J,K,ht)=>{let G=R.select(ht[K]),{marker:tt={},text:ot,...X}=y[J]??{},{group:vt,part:yt,text:Tt,...Mt}=w.find(ie=>ie.group===J&&ie.part==="label")??{},{group:st,part:St,...ne}=w.find(ie=>ie.group===J&&ie.part==="marker")??{},Zt=G.append("text").attr("class","legend-label").attr("data-part","label").attr("id",`legend-label-${K}`).attr("dy",g.dy).style("text-anchor",g.textAnchor).style("font-size",g.fontSize).style("font-family",g.fontFamily).style("cursor",g.cursor).text(Tt??ot??J).each(function(){let ie=R.select(this);rt(ie,_),rt(ie,X),rt(ie,Mt)}),Mn=Zt.node().getComputedTextLength(),Ba=this.width-this.margin.left-this.margin.right,Ki=Mn+M+2*T;B+Ki>Ba&&(B=s,N+=M+T),Zt.attr("x",B+M+T).attr("y",N+M/2);let Zr=G.append("rect").attr("class","legend-marker").attr("data-part","marker").attr("id",`legend-marker-${K}`).style("cursor",p.cursor).attr("x",B).attr("y",N).attr("width",M).attr("height",M).attr("rx",m).style("fill",A.fill(J)).style("stroke",A.outline??(qy(A.fill(J))?"#bdbdbd":null)).each(()=>A.align(J,B,N)).each(function(){let ie=R.select(this);rt(ie,v),rt(ie,tt),rt(ie,ne)});De(Zt,Mt),De(Zr,ne),L.push({node:ht[K],row:N,start:B,end:B+M+T+Mn}),u==="horizontal"?B+=Mn+M+2*T:N+=M+T}).on("mouseover",(J,K)=>{R.select(J.currentTarget).classed("hovered",!0)}).on("mouseout",(J,K)=>{R.select(J.currentTarget).classed("hovered",!1)}).on("click",(J,K)=>{if(J.detail>1||b&&J.bubbles)return;let ht=R.select(J.currentTarget);ht.classed("unselected")?ht.classed("unselected",!1):ht.classed("unselected",!0);let G=q.selectAll(".unselected").data(),tt=this.data.filter(ot=>G.includes(ot[t])).map(ot=>ot.rowID);n&&typeof n=="string"?R.select("#"+n).selectAll("[rowID]").each(function(){let ot=+R.select(this).attr("rowID");tt.includes(ot)?R.select(this).style("display","none"):R.select(this).style("display","")}):R.selectAll("[rowID]").each(function(){let ot=+R.select(this).attr("rowID");tt.includes(ot)?R.select(this).style("display","none"):R.select(this).style("display","")})}),i&&U==="right"&&Z();let Q={center:.5,right:1}[h]??0;if(Q>0){let J=this.width-this.margin.left-this.margin.right,K=G=>u==="horizontal"?G.row:0,ht=R.rollup(L,G=>R.max(G,tt=>tt.end)-R.min(G,tt=>tt.start),K);L.forEach(G=>{let tt=Math.max(0,J-ht.get(K(G)))*Q;R.select(G.node).attr("transform",`translate(${tt}, 0)`)})}if(f&&this.height===0){var j=20,H=N+M+T+j;S.attr("height",H);var W=k;S.attr("viewBox",`0 0 ${W} ${H}`),q.attr("transform",`translate(${this.margin.left}, ${this.margin.top+j/2})`)}return this};ft.prototype.links=function(t,e,n={}){let r={y:50,showLinks:!0,label:!0,measure:"identity",linkWidth:1,labelStyle:{cursor:"pointer",fontSize:"12px",fontStyle:"italic",fontFamily:"sans-serif",textAnchor:"middle"},labelAdjustmentOptions:{rotation:-65,offsetX:0,offsetY:0,dx:"0em",dy:"0em"}};if(!t||t.length===0)return this;let i=ut.call(this,r,"linkOptions",n),{x:o,y:a,cursor:s,fontSize:c,fontStyle:l,fontFamily:u,textAnchor:h,showLinks:f,label:d,measure:m,labelStyle:p,labelAdjustmentOptions:g,linkWidth:y}=i,w=at(n,r),b=at(p,r.labelStyle);var v=this.svg.append("g").attr("data-component","links").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let S=this.data.some(k=>k.strand==="reverse")?this.geneStrandSpacing*1:0;if(f&&t.forEach(k=>{let C=(1-y)/2,F=k.start1+(k.end1-k.start1)*C,A=k.end1-(k.end1-k.start1)*C,E=k.start2+(k.end2-k.start2)*C,D=k.end2-(k.end2-k.start2)*C;if(k.cluster1===e){let $=k.groupColor?this.genesColorScale(k.groupColor):this.genesColorScale(k.group1);v.append("circle").attr("cx",this.xScale(F)).attr("cy",this.yScale(a)+S).attr("position",k.start1).attr("r",1).attr("cluster",e).attr("visibility","hidden").attr("groupColor",$).attr("linkID",k.linkID).attr("class","link-marker"),v.append("circle").attr("cx",this.xScale(A)).attr("cy",this.yScale(a)+S).attr("position",k.end1).attr("class","link-marker").attr("groupColor",$).attr("visibility","hidden").attr("linkID",k.linkID).attr("cluster",e).attr("r",1)}if(k.cluster2===e){let $=k.groupColor?this.genesColorScale(k.groupColor):this.genesColorScale(k.group2);v.append("circle").attr("cx",this.xScale(E)).attr("cy",this.yScale(a)-S).attr("position",k.start2).attr("class","link-marker").attr("cluster",e).attr("visibility","hidden").attr("groupColor",$).attr("linkID",k.linkID).attr("r",1),v.append("circle").attr("cx",this.xScale(D)).attr("cy",this.yScale(a)-S).attr("position",k.end2).attr("class","link-marker").attr("linkID",k.linkID).attr("cluster",e).attr("visibility","hidden").attr("groupColor",$).attr("r",1)}}),d&&i.labelPosition!=="link"){let k=Jl(this,".link-text"),C=this.svg.selectAll(".link-text").nodes(),F=new Set(C.map(E=>E.getAttribute("rowID"))),A=this.data.filter(E=>!F.has(`${E.rowID}`)&&E[m]!=null&&E.BlastP!="No Hit"&&(E.BlastP===void 0||E.BlastP!=E.protein_id&&E.BlastP)&&(n.value1===void 0&&n.value2===void 0||n.value1&&n.value1.includes(E[n.group])||n.value2&&n.value2.includes(E[n.group])));v.selectAll(".link-text").data(A).enter().append("text").attr("id",(E,D)=>`cluster-${wr(E.cluster)}-link-label-${C.length+D}`).attr("rowID",(E,D)=>`${E.rowID}`).attr("class","link-text").attr("x",(E,D)=>this.xScale((E.start+E.end)/2)).attr("y",(E,D)=>this.yScale(a)-this.markerHeight/1.5-S).text(E=>`${parseFloat(E[m].toFixed(1))}%`).style("font-size",p.fontSize).style("font-style",p.fontStyle).style("font-family",p.fontFamily).style("cursor",p.cursor).attr("text-anchor",p.textAnchor).attr("cluster",e).each(function(E,D){let $=R.select(this);k.adjust(this,g),rt($,b),ba(b)&&k.refresh(this)})}return this};ft.prototype.trackMouse=function(t=!0,e={}){if(!t)return this;let n={cursor:"crosshair",backgroundColor:"rgba(255, 255, 255, 0.9)",padding:"8px",borderRadius:"4px",border:"1px solid rgba(0,0,0,0.1)",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)",fontFamily:"Arial, sans-serif",fontSize:"12px",color:"#333",lineHeight:"1.5",zIndex:1e3},{cursor:r,show:i,...o}=ut.call(this,n,"trackMouseOptions",e);this.svg.style("cursor",r),this.svg.selectAll("*").each(function(){this.style.cssText+=`cursor: ${r} !important;`});let a=this.svg.node().closest(".html-widget")||document.body,s=R.select(a).append("div").attr("class","coordinate-tooltip").style("pointer-events","none").style("position","absolute").style("visibility","hidden");rt(s,o);let c=R.scaleLinear().domain([0+this.margin.left,this.width-this.margin.right]).range([0,100]),l=R.scaleLinear().domain([this.height-this.margin.bottom,0+this.margin.top]).range([0,100]),u=R.scaleLinear().domain([0-this.margin.left,this.width]).range([0,100]);return this.svg.on("mousemove",h=>{let[f,d]=R.pointer(h),m=f-this.margin.left,p=Math.round(this.xScale.invert(m)),g=R.format(",");s.html(`x: ${g(p)} <br>y: ${l(d).toFixed(1)}`).style("visibility","visible").style("left",R.pointer(h,a)[0]+10+"px").style("top",R.pointer(h,a)[1]-10+"px")}),this.svg.on("mouseout",()=>{s.style("visibility","hidden")}),this};var AE=["sequence","genes","transcript","links","coordinates","labels","annotations"];ft.prototype.clipZoom=function(){if(!this.zoom)return this;let t=this.svg.node(),e=Array.from(t.children).filter(i=>AE.includes(i.getAttribute("data-component")));if(!e.length)return this;let n=this.width-this.margin.left-this.margin.right,r=document.createElementNS("http://www.w3.org/2000/svg","svg");return r.setAttribute("class","geneviewer-zoom-clip"),r.setAttribute("x",this.margin.left),r.setAttribute("y",0),r.setAttribute("width",n),r.setAttribute("height",this.height),r.setAttribute("viewBox",`${this.margin.left} 0 ${n} ${this.height}`),r.setAttribute("preserveAspectRatio","none"),r.setAttribute("overflow","hidden"),t.insertBefore(r,e[0]),e.forEach(i=>r.appendChild(i)),this};ft.prototype.addAnnotations=function(t){if(!t||t.length===0)return this;var e=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);return t.forEach(n=>{this.createAnnotation(e,n)}),this};ft.prototype.createAnnotation=function(t,e){switch(e.type){case"text":this.createTextAnnotation(t,e);break;case"line":this.createLineAnnotation(t,e);break;case"textMarker":this.createTextMarkerAnnotation(t,e);break;case"arrow":this.createArrowAnnotation(t,e);break;case"promoter":this.createPromoterAnnotation(t,e);break;case"terminator":this.createTerminatorAnnotation(t,e);break;case"rectangle":this.createRectangleAnnotation(t,e);break;case"symbol":this.createSymbolAnnotation(t,e);break;case"arc":this.createCurveAnnotation(t,e);break;default:qe("Unsupported annotation type: "+e.type)}};ft.prototype.createTextAnnotation=function(l,e){let n={x:0,y:60,text:"",style:{fontSize:"10px",fontStyle:"normal",fontWeight:"normal",textDecoration:"none",fontFamily:"sans-serif",cursor:"default"}},r=ut.call(this,n,"textAnnotationOptions",e),{x:i,y:o,text:a,style:s}=r;Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]);let c=at(s,n.style);var l=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let u=0;u<Math.max(i.length,o.length,a.length);u++){let h=i[Math.min(u,i.length-1)],f=o[Math.min(u,o.length-1)],d=a[Math.min(u,a.length-1)];l.append("text").attr("x",this.xScale(h)).attr("y",this.yScale(f)).style("font-size",s.fontSize).style("font-style",s.fontStyle).style("font-weight",s.fontWeight).style("text-decoration",s.textDecoration).style("font-family",s.fontFamily).style("cursor",s.cursor).each(function(){let m=R.select(this);xr(d,m,s),rt(m,c)})}};ft.prototype.createLineAnnotation=function(u,e){let n={x1:0,y1:70,x2:0,y2:50,style:{stroke:"black",strokeWidth:1}},r=ut.call(this,n,"lineAnnotationOptions",e),{x1:i,y1:o,x2:a,y2:s,style:c}=r;Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]),Array.isArray(s)||(s=[s]);let l=at(c,n.style);var u=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let h=0;h<Math.max(i.length,o.length,a.length,s.length);h++){let f=i[Math.min(h,i.length-1)],d=o[Math.min(h,o.length-1)],m=a[Math.min(h,a.length-1)],p=s[Math.min(h,s.length-1)];u.append("line").attr("x1",this.xScale(f)).attr("y1",this.yScale(d)).attr("x2",this.xScale(m)).attr("y2",this.yScale(p)).style("stroke",c.stroke).style("stroke-width",c.strokeWidth).each(function(){let g=R.select(this);rt(g,l)})}};ft.prototype.createArrowAnnotation=function(d,e){let n={x1:1,y1:70,x2:1,y2:50,arrowSize:8,arrowStyle:{fill:"black"},lineStyle:{stroke:"black",strokeWidth:1}},r=ut.call(this,n,"arrowAnnotationOptions",e),{x1:i,y1:o,x2:a,y2:s,arrowSize:c,arrowStyle:l,lineStyle:u}=r;Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]),Array.isArray(s)||(s=[s]),Array.isArray(c)||(c=[c]);let h=at(u,n.lineStyle),f=at(l,n.arrowStyle);var d=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let m=0;m<Math.max(i.length,o.length,a.length,s.length,c.length);m++){let p=i[Math.min(m,i.length-1)],g=o[Math.min(m,o.length-1)],y=a[Math.min(m,a.length-1)],w=s[Math.min(m,s.length-1)],b=c[Math.min(m,c.length-1)],v=Xr("arrowhead");this.svg.append("defs").append("marker").attr("id",v).attr("viewBox","-0 -5 10 10").attr("refX",5).attr("refY",0).attr("orient","auto").attr("markerWidth",b).attr("markerHeight",b).attr("xoverflow","visible").append("path").attr("d","M 0,-5 L 10 ,0 L 0,5").attr("fill",l.fill).each(function(){let _=R.select(this);rt(_,f)}),d.append("line").attr("x1",this.xScale(p)).attr("y1",this.yScale(g)).attr("x2",this.xScale(y)).attr("y2",this.yScale(w+b/2)).attr("marker-end",`url(#${v})`).style("stroke",u.stroke).style("stroke-width",u.strokeWidth).each(function(){let _=R.select(this);rt(_,h)})}};ft.prototype.createTextMarkerAnnotation=function(t,e){let n={x1:null,y1:66,x2:null,y2:50,position:0,text:"",labelX:0,labelY:0,showArrow:!1,arrowSize:8,textStyle:{fontSize:"10px",fontFamily:"sans-serif",fill:"black",textAnchor:"middle"},arrowStyle:{fill:"black"},lineStyle:{stroke:"black",strokeWidth:1}},r=ut.call(this,n,"textMarkerAnnotationOptions",e),{textStyle:i,arrowStyle:o,lineStyle:a}=r,s=["x1","y1","x2","y2","position","text","labelX","labelY","showArrow","arrowSize"];s.forEach(h=>{Array.isArray(r[h])||(r[h]=[r[h]])});let c=at(a,n.lineStyle),l=at(o,n.arrowStyle),u=Math.max(...s.map(h=>r[h].length));for(let h=0;h<u;h++){let f={};s.forEach(b=>{f[b]=r[b][h%r[b].length]});let d=f.showArrow?f.arrowSize/2:0;var t=this.svg.insert("g",":first-child").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let p=Math.round(this.xScale(f.x1!==null?f.x1:f.position)),g=Math.round(this.xScale(f.x2!==null?f.x2:f.position)),y=t.append("line").attr("x1",p).attr("y1",this.yScale(f.y1)).attr("x2",g).attr("y2",this.yScale(f.y2+d)).style("stroke",a.stroke).style("stroke-width",a.strokeWidth).each(function(){let b=R.select(this);rt(b,c)}),w=Xr("arrowhead-marker");this.svg.append("defs").append("marker").attr("id",w).attr("viewBox","-0 -5 10 10").attr("refX",5).attr("refY",0).attr("orient","auto").attr("markerWidth",f.arrowSize).attr("markerHeight",f.arrowSize).attr("xoverflow","visible").append("path").attr("d","M 0,-5 L 10 ,0 L 0,5").attr("fill",o.fill).each(function(){let b=R.select(this);rt(b,l)}),f.showArrow&&y.attr("marker-end",`url(#${w})`),f.text&&t.append("text").attr("x",this.xScale(f.x1!==null?f.x1:f.position)+f.labelX).attr("y",this.yScale(f.y1)-5-f.labelY).style("text-anchor",i.textAnchor).style("font-size",i.fontSize).style("font-family",i.fontFamily).style("fill",i.fill).each(function(){let b=R.select(this);xr(f.text,b,i),rt(b,at(i,n.textStyle))})}return t};ft.prototype.createSymbolAnnotation=function(u,e){let n={x:0,y:50,size:64,symbol:"circle",style:{fill:"black",stroke:"black",strokeWidth:2},rotation:0},r=ut.call(this,n,"symbolAnnotationOptions",e),{x:i,y:o,size:a,symbol:s,style:c,rotation:l}=r;Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(s)||(s=[s]),Array.isArray(l)||(l=[l]),Array.isArray(a)||(a=[a]);var u=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let h=at(c,n.style),f={circle:R.symbolCircle,cross:R.symbolCross,diamond:R.symbolDiamond,square:R.symbolSquare,star:R.symbolStar,triangle:R.symbolTriangle,wye:R.symbolWye};for(let d=0;d<Math.max(i.length,o.length,s.length,l.length);d++){let m=i[Math.min(d,i.length-1)],p=o[Math.min(d,o.length-1)],g=s[Math.min(d,s.length-1)],y=l[Math.min(d,l.length-1)],w=a[Math.min(d,a.length-1)];if(!f[g]){console.error(`Unsupported symbol type: ${g}`);continue}let b=R.symbol().type(f[g]).size(w);u.append("path").attr("d",b).attr("transform",`translate(${this.xScale(m)}, ${this.yScale(p)}) rotate(${y})`).style("fill",c.fill).style("stroke",c.stroke).style("stroke-width",c.strokeWidth).each(function(){let v=R.select(this);rt(v,h)})}return u};ft.prototype.createRectangleAnnotation=function(c,e){let n={position:[[[9300,20],[9400,50]]],rotation:[0],style:{fill:"#0000",stroke:"black",strokeWidth:2}},r=ut.call(this,n,"rectangleAnnotationOptions",e),{position:i,style:o,rotation:a}=r;Array.isArray(i[0][0])||(i=[i]),Array.isArray(a)||(a=[a]);let s=at(o,n.style);var c=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);let l=Math.max(i.length,a.length);for(let u=0;u<l;u++){let h=i[Math.min(u,i.length-1)],f=a[Math.min(u,a.length-1)],d=Math.min(h[0][0],h[1][0]),m=Math.max(h[0][0],h[1][0]),p=Math.max(h[0][1],h[1][1]),g=Math.min(h[0][1],h[1][1]),y=Math.abs(d-m),w=Math.abs(g-p);c.append("rect").attr("x",this.xScale(d)).attr("y",this.yScale(p)).attr("width",this.xScale(m)-this.xScale(d)).attr("height",this.yScale(g)-this.yScale(p)).attr("transform",`rotate(${f}, ${this.xScale(d+y/2)}, ${this.yScale(p+w/2)})`).style("fill",o.fill).style("stroke",o.stroke).style("stroke-width",o.strokeWidth).each(function(){let b=R.select(this);rt(b,s)})}};ft.prototype.createPromoterAnnotation=function(d,e){let n={x:0,y:50,direction:"forward",rotation:0,scale:1,style:{fill:"none",stroke:"black",strokeWidth:1}},r=ut.call(this,n,"promoterAnnotationOptions",e),{x:i,y:o,direction:a,rotation:s,scale:c,style:l}=r,u=at(l,n.style);Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]),Array.isArray(s)||(s=[s]),Array.isArray(c)||(c=[c]);let h="M -8 -17.5 L -13 -14 l 5 3.5 M -13 -14 L 0 -14 v 14",f="M 8 -17.5 L 13 -14 l -5 3.5 M 13 -14 H 0 v 14";var d=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let m=0;m<Math.max(i.length,o.length,a.length,s.length,c.length);m++){let p=i[Math.min(m,i.length-1)],g=o[Math.min(m,o.length-1)],y=a[Math.min(m,a.length-1)],w=s[Math.min(m,s.length-1)],b=c[Math.min(m,c.length-1)],v=y==="forward"?f:h,_=this.xScale(p);d.append("path").attr("d",v).attr("transform",`translate(${_}, ${this.yScale(g)}) scale(${b}) rotate(${w})`).style("fill",l.fill).style("stroke",l.stroke).style("stroke-width",l.strokeWidth).each(function(){let S=R.select(this);rt(S,u)})}};ft.prototype.createTerminatorAnnotation=function(d,e){let n={x:0,y:50,direction:"forward",rotation:0,scale:1,style:{fill:"none",stroke:"black",strokeWidth:1}},r=ut.call(this,n,"terminatorAnnotationOptions",e),{x:i,y:o,direction:a,rotation:s,scale:c,style:l}=r,u=at(l,n.style);Array.isArray(i)||(i=[i]),Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]),Array.isArray(s)||(s=[s]),Array.isArray(c)||(c=[c]);let h="M -8 17.5 L -13 14 l 5 -3.5 M -13 14 H 0 v -14",f="M 8 17.5 L 13 14 l -5 -3.5 M 13 14 L 0 14 v -14";var d=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let m=0;m<Math.max(i.length,o.length,a.length,s.length,c.length);m++){let p=i[Math.min(m,i.length-1)],g=o[Math.min(m,o.length-1)],y=a[Math.min(m,a.length-1)],w=s[Math.min(m,s.length-1)],b=c[Math.min(m,c.length-1)],v=y==="forward"?h:f,_=this.xScale(p);d.append("path").attr("d",v).attr("transform",`translate(${_}, ${this.yScale(g)}) scale(${b}) rotate(${w})`).style("fill",l.fill).style("stroke",l.stroke).style("stroke-width",l.strokeWidth).each(function(){let S=R.select(this);rt(S,u)})}};ft.prototype.createCurveAnnotation=function(y,e){let n={x1:[0],y1:[50],x2:[100],y2:[50],midY:[80],stroke:["black"],strokeWidth:[1],lineStyle:{},text:[""],labelX:[0],labelY:[0],textStyle:{fontSize:"10px",fontFamily:"sans-serif",fill:"black",textAnchor:"middle"}},r=ut.call(this,n,"curveAnnotationOptions",e);["x1","y1","x2","y2","midY","stroke","strokeWidth","text","labelX","labelY"].forEach(w=>{Array.isArray(r[w])||(r[w]=[r[w]])});let{x1:o,y1:a,x2:s,y2:c,midY:l,stroke:u,strokeWidth:h,lineStyle:f,text:d,labelX:m,labelY:p,textStyle:g}=r;var y=this.svg.append("g").attr("data-component","annotations").attr("transform",`translate(${this.margin.left}, ${this.margin.top})`);for(let w=0;w<Math.max(o.length,a.length,s.length,c.length,d.length,m.length,p.length);w++){let b=o[w%o.length],v=a[w%a.length],_=s[w%s.length],S=c[w%c.length],k=l[w%l.length],C=u[w%u.length],F=h[w%h.length],A=d[w%d.length],E=m[w%m.length],D=p[w%p.length],$=(b+_)/2,M=R.line().curve(R.curveBasis).x(L=>this.xScale(L.x)).y(L=>this.yScale(L.y)),T=[{x:b,y:v},{x:$,y:k},{x:_,y:S}],B=y.append("path").attr("d",M(T)).style("stroke",C).style("stroke-width",F).style("fill","none");rt(B,at(f,n.lineStyle));let N=y.append("text").attr("x",this.xScale($)+E).attr("y",this.yScale(k)-D).text(A);rt(N,g)}};var Ke=class t{constructor(e={}){this.columns=new Map(Object.entries(e))}static from(e){if(e instanceof t)return e.copy();if(Array.isArray(e)){let r=[];for(let o of e)for(let a of Object.keys(o))r.includes(a)||r.push(a);let i=new t;for(let o of r)i.columns.set(o,e.map(a=>a[o]===void 0?null:a[o]));return i}let n=new t;for(let[r,i]of Object.entries(e||{}))n.columns.set(r,Array.isArray(i)?i.slice():[i]);return n}copy(){let e=new t;for(let[n,r]of this.columns)e.columns.set(n,r.slice());return e}get nrow(){let e=this.columns.values().next();return e.done?0:e.value.length}get names(){return[...this.columns.keys()]}has(e){return this.columns.has(e)}get(e){return this.columns.get(e)}set(e,n){let r=this.nrow;return this.columns.set(e,Array.isArray(n)?n:Array.from({length:r},()=>n)),this}drop(e){return this.columns.delete(e),this}rows(e){let n=new t;for(let[r,i]of this.columns)n.columns.set(r,e.map(o=>i[o]));return n}filter(e){let n=[];for(let r=0;r<this.nrow;r++)e(r)&&n.push(r);return this.rows(n)}select(e){let n=new t;for(let r of e)this.columns.has(r)&&n.columns.set(r,this.columns.get(r).slice());return n}row(e){let n={};for(let[r,i]of this.columns)n[r]=i[e];return n}toJSON(){return Object.fromEntries(this.columns)}};function pe(t){if(t==null)return null;if(typeof t=="boolean")return t?"TRUE":"FALSE";if(typeof t!="number")return String(t);if(Number.isNaN(t))return"NaN";if(!Number.isFinite(t))return t>0?"Inf":"-Inf";if(t===0)return"0";let e=Number(t.toPrecision(15)),n=e!==t&&Number.isInteger(t)?t:e,[r,i]=Math.abs(n).toExponential().split("e"),o=r.replace(".",""),a=Number(i),s=n<0?"-":"",c;a>=0?c=o.length>a+1?`${o.slice(0,a+1)}.${o.slice(a+1)}`:o+"0".repeat(a+1-o.length):c=`0.${"0".repeat(-a-1)}${o}`;let l=`${r}e${a<0?"-":"+"}${String(Math.abs(a)).padStart(2,"0")}`;return s+(c.length<=l.length?c:l)}function Gi(t){if(t==null)return null;if(typeof t=="number")return t;if(typeof t=="boolean")return t?1:0;let e=String(t).trim();return e===""||!/^[-+]?(\d+\.?\d*|\.\d+)([eE][-+]?\d+)?$|^[-+]?(Inf|NaN)$/.test(e)?null:Number(e.replace("Inf","Infinity"))}function gt(t,e){if(t!=null){if(Array.isArray(t)){if(!t.length)return;let n=t[e%t.length];return n!==null&&typeof n=="object"?[n]:n}if(Ht(t)){let n=Object.keys(t);if(!n.length)return;let r=n[e%n.length];return{[r]:t[r]}}return t}}function _a(t,e,n){return Object.prototype.hasOwnProperty.call(t,e)?t[e]:n}function Ht(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function eb(t){return t==null?!0:Array.isArray(t)?t.length===0:Ht(t)?Object.keys(t).length===0:!1}function Ce(t){let e={};for(let[n,r]of Object.entries(t))r!=null&&(Array.isArray(r)&&r.length===0||Ht(r)&&Object.keys(r).length===0||(e[n]=r));return e}function Sa(t){let e={};for(let[n,r]of Object.entries(t))r!=null&&(e[n]=r);return e}function Gr(t,e){let n=Ht(t)?{...t}:{};for(let[r,i]of Object.entries(e||{}))i==null?delete n[r]:Ht(n[r])&&Ht(i)?n[r]=Gr(n[r],i):n[r]=i;return n}function Qe(t,e){return t==null?e:Gr(t,e)}function tc(t,e=2){if(typeof t=="number")return t/e;if(/px$/.test(t))return`${pe(Gi(t.replace(/px$/,""))/e)}px`;if(/%$/.test(t))return`${pe(Gi(t.replace(/%$/,""))/e)}%`;throw new Error("Unsupported format")}function Vn(t,e){let n=o=>typeof o=="string"&&/%$/.test(o);if(n(t)&&n(e))return e;let r=t;if(typeof r=="string"&&/px$/.test(r)&&(r=Gi(r.replace("px",""))),n(e)){let o=Gi(String(e).replace("%",""))/100;return typeof r=="number"?r*o:null}let i=e;return typeof i=="string"&&/px$/.test(i)&&(i=Gi(String(i).replace("px",""))),Gi(i)}function ge(t){if(t===null||typeof t!="object")return t;if(typeof t.copy=="function")return t.copy();if(Array.isArray(t))return t.map(ge);let e={};for(let[n,r]of Object.entries(t))e[n]=ge(r);return e}var EE="<b>Start:</b> {start}<br><b>End:</b> {end}",ME=`<b>{protein_id}</b><br>
|
|
22
22
|
<b>Query gene</b><br>
|
|
23
|
-
<b>Location:</b> {start} - {end}<br>`,
|
|
23
|
+
<b>Location:</b> {start} - {end}<br>`,CE=`<b>{protein_id}</b><br>
|
|
24
24
|
<b>Best hit:</b> {BlastP}<br>
|
|
25
25
|
<b>Identity:</b> {identity}%<br>
|
|
26
26
|
<b>Similarity:</b> {similarity}%<br>
|
|
27
|
-
<b>Location:</b> {start} - {end}<br>`,tb=["1","forward","+","sense"],ME=["-1","0","reverse","-","antisense","complement"];function CE(t,e=null){if(!t||t.nrow===0)return null;if(e===null&&t.has("strand")&&(e="strand"),!t.has("start"))throw new Error("start column not found in data");if(!t.has("end"))throw new Error("end column not found in data");let n=t.get("start"),r=t.get("end");if(e===null)return t.set("strand",n.map((c,l)=>c===null||r[l]===null?null:c<r[l]?"forward":"reverse")),t;if(!t.has(e))throw new Error("strand column not found in data");let i=t.get(e).map(de);if(!i.every(c=>tb.includes(c)||ME.includes(c)))throw new Error("Invalid strand values found. Valid values are 1/forward/+/sense or -1/0/reverse/-/antisense/complement.");let o=i.map(c=>tb.includes(c)?"forward":"reverse");t.set("strand",o);let a=n.slice(),s=r.slice();return o.forEach((c,l)=>{(c==="forward"&&n[l]>r[l]||c==="reverse"&&n[l]<r[l])&&(a[l]=r[l],s[l]=n[l])}),t.set("start",a),t.set("end",s),t}function Zt(t,e){let n=[...t.x.series.keys()];if(e==null)return n;let r=Array.isArray(e)?e:[e];if(r.length&&r.every(o=>typeof o=="number"))return r.some(o=>o>n.length||o<1)?(t.warnings.push("Some cluster numbers provided are out of range. Please check the cluster numbers."),[]):r.map(o=>n[Math.trunc(o)-1]);let i=r.map(o=>de(o));return i.every(o=>n.includes(o))?i:(t.warnings.push("Some cluster names provided are not valid. Please check the cluster names."),[])}function tc(t){let e=t.fields||{},n=e.start??"start",r=e.end??"end",i=e.cluster??null,o=e.group??null,a=e.strand??null,s=t.width??"100%",c=t.height??"400px",l=t.style??{},u=t.toolbar&&!Array.isArray(t.toolbar)?t.toolbar.buttons:void 0,h=!(Array.isArray(u)&&!u.includes("save")),f={};f.params={start:n,end:r},i!==null&&(f.params.cluster=i),o!==null&&(f.params.group=o),a!==null&&(f.params.strand=a),f.params.width=s,f.params.height=c,Object.keys(l).length&&(f.params.style=pe(l)),f.params.save_button=h;let d=Ze.from(t.data);for(let[k,C]of[[n,"start"],[r,"end"],[i,"cluster"],[o,"group"],[a,"strand"]])if(k!==null&&!d.has(k))throw new Error(`${C} column not found in data`);let m=d.names,p=d.get(n),g=d.get(r),y=d.filter(k=>p[k]!==null&&g[k]!==null),w=[];y.nrow<d.nrow&&w.push("Rows with NA values in 'start' or 'end' columns have been filtered out."),d=y,d.set("rowID",Array.from({length:d.nrow},(k,C)=>C+1));let b=d.copy();d.set("start",b.get(n).slice()),d.set("end",b.get(r).slice()),i!==null&&d.set(i,d.get(i).map(de)),d=CE(d,a),f.data=d,o!==null&&(f.group=o),i!==null&&(f.cluster=i),f.graphContainer={direction:"column"},f.style=l,f.title={style:{width:"100%"}},f.legend={group:o,show:o!==null,width:s},f.legend.style={width:"100%",backgroundColor:l.backgroundColor??null},f.saveButton=h;let v=i===null?["cluster"]:[...new Set(d.get(i))],x=m.includes("BlastP")&&m.includes("protein_id"),S=new Map;for(let k of v){let C=i===null?d.copy():d.filter(M=>d.get(i)[M]===k);C.set("cluster",k);let F=typeof c=="string"&&/%$/.test(c)?Jl(c,v.length):Number(Xn(c,c))/v.length,A=C.get("start"),E=C.get("end"),D=[...A,...E].filter(M=>M!==null),$=kE;if(x){let M=C.get("BlastP"),T=C.get("protein_id");$=M.some((N,L)=>N!==null&&T[L]!==null&&N===T[L])&&M.every(N=>N===null||N==="No Hit"||T.includes(N))?AE:EE}S.set(k,{clusterName:k,data:C,cluster:{},container:{height:F,width:s,style:{width:"100%",backgroundColor:l.backgroundColor??null}},genes:{group:o,show:!0},sequence:{show:!0},scale:{xMin:Math.min(...D),xMax:Math.max(...D)},transcript:{group:o,show:!1},labels:{group:o,show:!0},coordinates:{show:!1},scaleBar:{},footer:{},clusterLabel:{},clusterTitle:{},annotations:[],trackMouse:{show:!1},tooltip:{show:!0,formatter:$}})}return f.series=S,{x:f,width:s,height:c,spec:t,warnings:w}}var Lh={palettes:{okabeIto:["#E69F00","#56B4E9","#009E73","#F0E442","#0072B2","#D55E00","#CC79A7","#999999"],classic:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],vivid:["#4992ff","#7cffb2","#fddd60","#ff6e76","#58d9f9","#05c091","#ff8a45","#8d48e3","#dd79ff"],dark:["#dd6b66","#759aa0","#e69d87","#8dc1a9","#ea7e53","#eedd78","#73a373","#73b9bc","#7289ab","#91ca8c","#f49f42"],vintage:["#d87c7c","#919e8b","#d7ab82","#6e7074","#61a0a8","#efa18d","#787464","#cc7e63","#724e58","#4b565b"],infographic:["#C1232B","#27727B","#FCCE10","#E87C25","#B5C334","#FE8463","#9BCA63","#FAD860","#F3A43B","#60C0DD","#D7504B","#C6E579","#F4E001","#F0805A","#26C0C0"],greys:["#252525","#525252","#737373","#969696","#bdbdbd","#d9d9d9"],blues:["#08306b","#08519c","#2171b5","#4292c6","#6baed6","#9ecae1","#c6dbef"]},themes:{default:{},classic:{fontFamily:"sans-serif",textColor:"#6E7079",lineColor:"#6E7079",palette:"classic",title:{titleFont:{fontSize:"18px",fill:"#464646"},subtitleFont:{fontSize:"12px"}},clusterTitle:{titleFont:{fill:"#464646"}},clusterLabel:{fill:"#464646"},genes:{stroke:"none",corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"12px",leaderLine:{strokeWidth:1}},coordinates:{tickStyle:{lineLength:5}},scale:{textStyle:{fontSize:"12px"},tickStyle:{lineLength:5}},scaleBar:{labelStyle:{fontSize:"12px"}},legend:{corner_radius:3,legendTextOptions:{fill:"#464646"}},links:{normal_color:"#5470c6",inverted_color:"#ee6666",linkStyle:{fillOpacity:.6},colorBarOptions:{barOptions:{stroke:"none"},labelOptions:{fontSize:12},titleOptions:{fontSize:12}}},tooltip:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},trackMouse:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},toolbar:{color:"#999999",hoverColor:"#3E98C5",tooltipBackground:"#ffffff",tooltipColor:"#6d6e73",tooltipBorder:"1px solid #b7b9be",tooltipRadius:"4px",tooltipShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)",fontFamily:"sans-serif"}},dark:{fontFamily:"sans-serif",background:"#333333",textColor:"#eeeeee",lineColor:"#eeeeee",palette:"dark",title:{titleFont:{fontSize:"18px"},subtitleFont:{fontSize:"12px",fill:"#aaaaaa"}},clusterTitle:{subtitleFont:{fill:"#aaaaaa"}},clusterLabel:{subtitleFont:{fill:"#aaaaaa"}},genes:{stroke:"none",corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"12px",leaderLine:{strokeWidth:1}},coordinates:{tickStyle:{lineLength:5}},scale:{textStyle:{fontSize:"12px"},tickStyle:{lineLength:5}},scaleBar:{labelStyle:{fontSize:"12px"}},legend:{corner_radius:3},links:{normal_color:"#759aa0",inverted_color:"#dd6b66",low_color:"#333333",linkStyle:{fillOpacity:.6},colorBarOptions:{barOptions:{stroke:"none"},labelOptions:{fontSize:12},titleOptions:{fontSize:12}}},tooltip:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},trackMouse:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},toolbar:{color:"#999999",hoverColor:"#eeeeee",tooltipBackground:"#ffffff",tooltipColor:"#6d6e73",tooltipBorder:"1px solid #b7b9be",tooltipRadius:"4px",tooltipShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)",fontFamily:"sans-serif"}},vintage:{background:"#fef8ef",textColor:"#3f3a33",lineColor:"#787464",palette:"vintage",title:{subtitleFont:{fill:"#787464"}},clusterTitle:{subtitleFont:{fill:"#787464"}},clusterLabel:{subtitleFont:{fill:"#787464"}},sequence:{sequenceStyle:{stroke:"#c9c2b5"}},genes:{stroke:"none",corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"11px",leaderLine:{stroke:"#c9c2b5",strokeWidth:1}},legend:{corner_radius:3},links:{normal_color:"#61a0a8",inverted_color:"#d87c7c",low_color:"#fef8ef",linkStyle:{fillOpacity:.6},colorBarOptions:{barOptions:{stroke:"none"}}},tooltip:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},trackMouse:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},toolbar:{color:"#c9c2b5",hoverColor:"#d87c7c",tooltipBackground:"#ffffff",tooltipColor:"#6d6e73",tooltipBorder:"1px solid #b7b9be",tooltipRadius:"4px",tooltipShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)",fontFamily:"sans-serif"}},infographic:{fontFamily:"sans-serif",textColor:"#6E7079",lineColor:"#6E7079",palette:"infographic",title:{titleFont:{fontSize:"18px",fill:"#464646"},subtitleFont:{fontSize:"12px"}},clusterTitle:{titleFont:{fill:"#464646"}},clusterLabel:{fill:"#464646"},genes:{stroke:"none",corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"12px",leaderLine:{strokeWidth:1}},coordinates:{tickStyle:{lineLength:5}},scale:{textStyle:{fontSize:"12px"},tickStyle:{lineLength:5}},scaleBar:{labelStyle:{fontSize:"12px"}},legend:{corner_radius:3,legendTextOptions:{fill:"#464646"}},links:{normal_color:"#27727B",inverted_color:"#C1232B",linkStyle:{fillOpacity:.6},colorBarOptions:{barOptions:{stroke:"none"},labelOptions:{fontSize:12},titleOptions:{fontSize:12}}},tooltip:{backgroundColor:"rgba(50, 50, 50, 0.85)",color:"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px"},trackMouse:{backgroundColor:"rgba(50, 50, 50, 0.85)",color:"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px"},toolbar:{color:"#C1232B",hoverColor:"#E87C25",tooltipBackground:"rgba(50, 50, 50, 0.85)",tooltipColor:"#ffffff",tooltipBorder:"none",tooltipRadius:"4px"}},publication:{fontFamily:"Arial, Helvetica, sans-serif",textColor:"black",lineColor:"black",palette:"okabeIto",title:{titleFont:{fontSize:"9.33px",fill:"black"},subtitleFont:{fontSize:"9.33px"}},clusterTitle:{titleFont:{fontSize:"9.33px"},subtitleFont:{fontSize:"9.33px"}},clusterFooter:{titleFont:{fontSize:"9.33px"},subtitleFont:{fontSize:"9.33px"}},clusterLabel:{fontSize:"9.33px",subtitleFont:{fontSize:"9.33px"}},genes:{stroke:"black",strokeWidth:.75,corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3,fontSize:"9.33px"},labelOptions:{fontSize:"9.33px"}},labels:{fontStyle:"italic",fontSize:"9.33px",leaderLine:{strokeWidth:.75}},coordinates:{textStyle:{fontSize:"9.33px"},tickStyle:{lineLength:4}},scale:{textStyle:{fontSize:"9.33px"},tickStyle:{lineLength:4}},scaleBar:{labelStyle:{fontSize:"9.33px"}},legend:{corner_radius:2,legendOptions:{stroke:"black",strokeWidth:.75},legendTextOptions:{fontSize:"9.33px"}},links:{normal_color:"#0072B2",inverted_color:"#D55E00",linkStyle:{fillOpacity:.6},labelStyle:{fontSize:"9.33px"},colorBarOptions:{barOptions:{stroke:"none"},labelOptions:{fontSize:9.33},titleOptions:{fontSize:9.33}}},annotations:{text:{style:{fontSize:"9.33px"}},textMarker:{textStyle:{fontSize:"9.33px"}},arc:{textStyle:{fontSize:"9.33px"}}},tooltip:{backgroundColor:"white",color:"black",border:"1px solid black",borderRadius:"0",boxShadow:"none",fontSize:"9.33px",padding:"8px"},trackMouse:{backgroundColor:"white",color:"black",border:"1px solid black",borderRadius:"0",boxShadow:"none",fontSize:"9.33px",padding:"8px"},toolbar:{color:"#999999",hoverColor:"black",tooltipBackground:"white",tooltipColor:"black",tooltipBorder:"1px solid black",tooltipRadius:"0",tooltipShadow:"none"}},bw:{fontFamily:"sans-serif",textColor:"#555555",lineColor:"#555555",pattern:{color:"black",background:"white",size:6,strokeWidth:1},title:{titleFont:{fontSize:"18px",fill:"black"},subtitleFont:{fontSize:"12px"}},clusterTitle:{titleFont:{fill:"black"}},clusterLabel:{fill:"black"},genes:{stroke:"black",strokeWidth:.75,corner_radius:3},transcript:{styleExons:{stroke:"black",strokeWidth:.75,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"12px",leaderLine:{strokeWidth:1}},coordinates:{tickStyle:{lineLength:5}},scale:{textStyle:{fontSize:"12px"},tickStyle:{lineLength:5}},scaleBar:{labelStyle:{fontSize:"12px"}},legend:{corner_radius:3,legendTextOptions:{fill:"black"}},links:{normal_color:"#bdbdbd",inverted_color:"#525252",colorBarOptions:{barOptions:{stroke:"#555555"},labelOptions:{fontSize:12},titleOptions:{fontSize:12}}},tooltip:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},trackMouse:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},toolbar:{color:"#bdbdbd",hoverColor:"black",tooltipBackground:"#ffffff",tooltipColor:"#6d6e73",tooltipBorder:"1px solid #b7b9be",tooltipRadius:"4px",tooltipShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)",fontFamily:"sans-serif"}}}};function Ft(t,e){let n={};for(let[r,i]of Object.entries(t))e.includes(r)||(n[r]=i);return n}function Sa(t,e){return Array.from({length:t},(r,i)=>i).sort((r,i)=>{for(let o of e){let a=o(r),s=o(i),c=a===null||Number.isNaN(a),l=s===null||Number.isNaN(s);if(c||l){if(c!==l)return c?1:-1;continue}if(a<s)return-1;if(a>s)return 1}return r-i})}function TE(t,e=!1,n=0){if(!t||t.nrow===0)return null;let r=t.get("start"),i=t.get("end"),o=r.map((d,m)=>Math.min(d,i[m])),a=r.map((d,m)=>Math.max(d,i[m])),s=typeof n=="string",c=s?Number(n.replace(/%$/,""))/100:n,l=(d,m)=>{let p=Math.min(a[d],a[m])-Math.max(o[d],o[m])+1;if(p<=0)return!1;let g=s?c*Math.min(a[d]-o[d]+1,a[m]-o[m]+1):c;return p>g},u=o.map((d,m)=>o.some((p,g)=>g!==m&&o[g]<=o[m]&&a[g]>=a[m]&&(o[g]<o[m]||a[g]>a[m]||g<m))),h=[],f=new Map;for(let d=0;d<o.length;d++){if(e&&!u[d]){h[d]=1;continue}let m=e?2:1;for(;(f.get(m)||[]).some(p=>l(d,p));)m++;h[d]=m,f.set(m,[...f.get(m)||[],d])}return t.set("geneTrack",h),t}var OE=["separateStrands","strandSpacing","preventGeneOverlap","overlapMin","overlapSpacing","clusters","style"];function eb(t,e){let n=e.separateStrands??null,r=e.preventGeneOverlap??null,i=e.overlapMin??null;n===!0&&r!==null&&r!==!1&&(t.warnings.push("Setting both 'separate_strands' and 'prevent_gene_overlap' to TRUE is not supported. Resetting to NULL."),n=null,r=null);let o=Ft(e,OE);for(let a of Zt(t,e.clusters)){let s=t.x.series.get(a);if(r!==null&&r!==!1){let l=s.data,u=l.get("start"),h=l.get("end"),f=Sa(l.nrow,[d=>-Math.max(u[d],h[d]),d=>Math.abs(h[d]-u[d])]);s.data=TE(l.rows(f),r==="nested",i===null?0:i)}s.container.style=Ke(s.container.style,e.style??{});let c=Ce({separateStrands:n,strandSpacing:e.strandSpacing,preventGeneOverlap:r!==null?r!==!1:null,overlapSpacing:e.overlapSpacing,...o});s.cluster=Ke(s.cluster,c),s.container=Ke(s.container,Ce({...o}))}}var qh={white:"#FFFFFF",aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",antiquewhite1:"#FFEFDB",antiquewhite2:"#EEDFCC",antiquewhite3:"#CDC0B0",antiquewhite4:"#8B8378",aquamarine:"#7FFFD4",aquamarine1:"#7FFFD4",aquamarine2:"#76EEC6",aquamarine3:"#66CDAA",aquamarine4:"#458B74",azure:"#F0FFFF",azure1:"#F0FFFF",azure2:"#E0EEEE",azure3:"#C1CDCD",azure4:"#838B8B",beige:"#F5F5DC",bisque:"#FFE4C4",bisque1:"#FFE4C4",bisque2:"#EED5B7",bisque3:"#CDB79E",bisque4:"#8B7D6B",black:"#000000",blanchedalmond:"#FFEBCD",blue:"#0000FF",blue1:"#0000FF",blue2:"#0000EE",blue3:"#0000CD",blue4:"#00008B",blueviolet:"#8A2BE2",brown:"#A52A2A",brown1:"#FF4040",brown2:"#EE3B3B",brown3:"#CD3333",brown4:"#8B2323",burlywood:"#DEB887",burlywood1:"#FFD39B",burlywood2:"#EEC591",burlywood3:"#CDAA7D",burlywood4:"#8B7355",cadetblue:"#5F9EA0",cadetblue1:"#98F5FF",cadetblue2:"#8EE5EE",cadetblue3:"#7AC5CD",cadetblue4:"#53868B",chartreuse:"#7FFF00",chartreuse1:"#7FFF00",chartreuse2:"#76EE00",chartreuse3:"#66CD00",chartreuse4:"#458B00",chocolate:"#D2691E",chocolate1:"#FF7F24",chocolate2:"#EE7621",chocolate3:"#CD661D",chocolate4:"#8B4513",coral:"#FF7F50",coral1:"#FF7256",coral2:"#EE6A50",coral3:"#CD5B45",coral4:"#8B3E2F",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",cornsilk1:"#FFF8DC",cornsilk2:"#EEE8CD",cornsilk3:"#CDC8B1",cornsilk4:"#8B8878",cyan:"#00FFFF",cyan1:"#00FFFF",cyan2:"#00EEEE",cyan3:"#00CDCD",cyan4:"#008B8B",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgoldenrod1:"#FFB90F",darkgoldenrod2:"#EEAD0E",darkgoldenrod3:"#CD950C",darkgoldenrod4:"#8B6508",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkolivegreen1:"#CAFF70",darkolivegreen2:"#BCEE68",darkolivegreen3:"#A2CD5A",darkolivegreen4:"#6E8B3D",darkorange:"#FF8C00",darkorange1:"#FF7F00",darkorange2:"#EE7600",darkorange3:"#CD6600",darkorange4:"#8B4500",darkorchid:"#9932CC",darkorchid1:"#BF3EFF",darkorchid2:"#B23AEE",darkorchid3:"#9A32CD",darkorchid4:"#68228B",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkseagreen1:"#C1FFC1",darkseagreen2:"#B4EEB4",darkseagreen3:"#9BCD9B",darkseagreen4:"#698B69",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategray1:"#97FFFF",darkslategray2:"#8DEEEE",darkslategray3:"#79CDCD",darkslategray4:"#528B8B",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deeppink1:"#FF1493",deeppink2:"#EE1289",deeppink3:"#CD1076",deeppink4:"#8B0A50",deepskyblue:"#00BFFF",deepskyblue1:"#00BFFF",deepskyblue2:"#00B2EE",deepskyblue3:"#009ACD",deepskyblue4:"#00688B",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",dodgerblue1:"#1E90FF",dodgerblue2:"#1C86EE",dodgerblue3:"#1874CD",dodgerblue4:"#104E8B",firebrick:"#B22222",firebrick1:"#FF3030",firebrick2:"#EE2C2C",firebrick3:"#CD2626",firebrick4:"#8B1A1A",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",gold1:"#FFD700",gold2:"#EEC900",gold3:"#CDAD00",gold4:"#8B7500",goldenrod:"#DAA520",goldenrod1:"#FFC125",goldenrod2:"#EEB422",goldenrod3:"#CD9B1D",goldenrod4:"#8B6914",gray:"#BEBEBE",gray0:"#000000",gray1:"#030303",gray2:"#050505",gray3:"#080808",gray4:"#0A0A0A",gray5:"#0D0D0D",gray6:"#0F0F0F",gray7:"#121212",gray8:"#141414",gray9:"#171717",gray10:"#1A1A1A",gray11:"#1C1C1C",gray12:"#1F1F1F",gray13:"#212121",gray14:"#242424",gray15:"#262626",gray16:"#292929",gray17:"#2B2B2B",gray18:"#2E2E2E",gray19:"#303030",gray20:"#333333",gray21:"#363636",gray22:"#383838",gray23:"#3B3B3B",gray24:"#3D3D3D",gray25:"#404040",gray26:"#424242",gray27:"#454545",gray28:"#474747",gray29:"#4A4A4A",gray30:"#4D4D4D",gray31:"#4F4F4F",gray32:"#525252",gray33:"#545454",gray34:"#575757",gray35:"#595959",gray36:"#5C5C5C",gray37:"#5E5E5E",gray38:"#616161",gray39:"#636363",gray40:"#666666",gray41:"#696969",gray42:"#6B6B6B",gray43:"#6E6E6E",gray44:"#707070",gray45:"#737373",gray46:"#757575",gray47:"#787878",gray48:"#7A7A7A",gray49:"#7D7D7D",gray50:"#7F7F7F",gray51:"#828282",gray52:"#858585",gray53:"#878787",gray54:"#8A8A8A",gray55:"#8C8C8C",gray56:"#8F8F8F",gray57:"#919191",gray58:"#949494",gray59:"#969696",gray60:"#999999",gray61:"#9C9C9C",gray62:"#9E9E9E",gray63:"#A1A1A1",gray64:"#A3A3A3",gray65:"#A6A6A6",gray66:"#A8A8A8",gray67:"#ABABAB",gray68:"#ADADAD",gray69:"#B0B0B0",gray70:"#B3B3B3",gray71:"#B5B5B5",gray72:"#B8B8B8",gray73:"#BABABA",gray74:"#BDBDBD",gray75:"#BFBFBF",gray76:"#C2C2C2",gray77:"#C4C4C4",gray78:"#C7C7C7",gray79:"#C9C9C9",gray80:"#CCCCCC",gray81:"#CFCFCF",gray82:"#D1D1D1",gray83:"#D4D4D4",gray84:"#D6D6D6",gray85:"#D9D9D9",gray86:"#DBDBDB",gray87:"#DEDEDE",gray88:"#E0E0E0",gray89:"#E3E3E3",gray90:"#E5E5E5",gray91:"#E8E8E8",gray92:"#EBEBEB",gray93:"#EDEDED",gray94:"#F0F0F0",gray95:"#F2F2F2",gray96:"#F5F5F5",gray97:"#F7F7F7",gray98:"#FAFAFA",gray99:"#FCFCFC",gray100:"#FFFFFF",green:"#00FF00",green1:"#00FF00",green2:"#00EE00",green3:"#00CD00",green4:"#008B00",greenyellow:"#ADFF2F",grey:"#BEBEBE",grey0:"#000000",grey1:"#030303",grey2:"#050505",grey3:"#080808",grey4:"#0A0A0A",grey5:"#0D0D0D",grey6:"#0F0F0F",grey7:"#121212",grey8:"#141414",grey9:"#171717",grey10:"#1A1A1A",grey11:"#1C1C1C",grey12:"#1F1F1F",grey13:"#212121",grey14:"#242424",grey15:"#262626",grey16:"#292929",grey17:"#2B2B2B",grey18:"#2E2E2E",grey19:"#303030",grey20:"#333333",grey21:"#363636",grey22:"#383838",grey23:"#3B3B3B",grey24:"#3D3D3D",grey25:"#404040",grey26:"#424242",grey27:"#454545",grey28:"#474747",grey29:"#4A4A4A",grey30:"#4D4D4D",grey31:"#4F4F4F",grey32:"#525252",grey33:"#545454",grey34:"#575757",grey35:"#595959",grey36:"#5C5C5C",grey37:"#5E5E5E",grey38:"#616161",grey39:"#636363",grey40:"#666666",grey41:"#696969",grey42:"#6B6B6B",grey43:"#6E6E6E",grey44:"#707070",grey45:"#737373",grey46:"#757575",grey47:"#787878",grey48:"#7A7A7A",grey49:"#7D7D7D",grey50:"#7F7F7F",grey51:"#828282",grey52:"#858585",grey53:"#878787",grey54:"#8A8A8A",grey55:"#8C8C8C",grey56:"#8F8F8F",grey57:"#919191",grey58:"#949494",grey59:"#969696",grey60:"#999999",grey61:"#9C9C9C",grey62:"#9E9E9E",grey63:"#A1A1A1",grey64:"#A3A3A3",grey65:"#A6A6A6",grey66:"#A8A8A8",grey67:"#ABABAB",grey68:"#ADADAD",grey69:"#B0B0B0",grey70:"#B3B3B3",grey71:"#B5B5B5",grey72:"#B8B8B8",grey73:"#BABABA",grey74:"#BDBDBD",grey75:"#BFBFBF",grey76:"#C2C2C2",grey77:"#C4C4C4",grey78:"#C7C7C7",grey79:"#C9C9C9",grey80:"#CCCCCC",grey81:"#CFCFCF",grey82:"#D1D1D1",grey83:"#D4D4D4",grey84:"#D6D6D6",grey85:"#D9D9D9",grey86:"#DBDBDB",grey87:"#DEDEDE",grey88:"#E0E0E0",grey89:"#E3E3E3",grey90:"#E5E5E5",grey91:"#E8E8E8",grey92:"#EBEBEB",grey93:"#EDEDED",grey94:"#F0F0F0",grey95:"#F2F2F2",grey96:"#F5F5F5",grey97:"#F7F7F7",grey98:"#FAFAFA",grey99:"#FCFCFC",grey100:"#FFFFFF",honeydew:"#F0FFF0",honeydew1:"#F0FFF0",honeydew2:"#E0EEE0",honeydew3:"#C1CDC1",honeydew4:"#838B83",hotpink:"#FF69B4",hotpink1:"#FF6EB4",hotpink2:"#EE6AA7",hotpink3:"#CD6090",hotpink4:"#8B3A62",indianred:"#CD5C5C",indianred1:"#FF6A6A",indianred2:"#EE6363",indianred3:"#CD5555",indianred4:"#8B3A3A",ivory:"#FFFFF0",ivory1:"#FFFFF0",ivory2:"#EEEEE0",ivory3:"#CDCDC1",ivory4:"#8B8B83",khaki:"#F0E68C",khaki1:"#FFF68F",khaki2:"#EEE685",khaki3:"#CDC673",khaki4:"#8B864E",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lavenderblush1:"#FFF0F5",lavenderblush2:"#EEE0E5",lavenderblush3:"#CDC1C5",lavenderblush4:"#8B8386",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lemonchiffon1:"#FFFACD",lemonchiffon2:"#EEE9BF",lemonchiffon3:"#CDC9A5",lemonchiffon4:"#8B8970",lightblue:"#ADD8E6",lightblue1:"#BFEFFF",lightblue2:"#B2DFEE",lightblue3:"#9AC0CD",lightblue4:"#68838B",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightcyan1:"#E0FFFF",lightcyan2:"#D1EEEE",lightcyan3:"#B4CDCD",lightcyan4:"#7A8B8B",lightgoldenrod:"#EEDD82",lightgoldenrod1:"#FFEC8B",lightgoldenrod2:"#EEDC82",lightgoldenrod3:"#CDBE70",lightgoldenrod4:"#8B814C",lightgoldenrodyellow:"#FAFAD2",lightgray:"#D3D3D3",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightpink1:"#FFAEB9",lightpink2:"#EEA2AD",lightpink3:"#CD8C95",lightpink4:"#8B5F65",lightsalmon:"#FFA07A",lightsalmon1:"#FFA07A",lightsalmon2:"#EE9572",lightsalmon3:"#CD8162",lightsalmon4:"#8B5742",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightskyblue1:"#B0E2FF",lightskyblue2:"#A4D3EE",lightskyblue3:"#8DB6CD",lightskyblue4:"#607B8B",lightslateblue:"#8470FF",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightsteelblue1:"#CAE1FF",lightsteelblue2:"#BCD2EE",lightsteelblue3:"#A2B5CD",lightsteelblue4:"#6E7B8B",lightyellow:"#FFFFE0",lightyellow1:"#FFFFE0",lightyellow2:"#EEEED1",lightyellow3:"#CDCDB4",lightyellow4:"#8B8B7A",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",magenta1:"#FF00FF",magenta2:"#EE00EE",magenta3:"#CD00CD",magenta4:"#8B008B",maroon:"#B03060",maroon1:"#FF34B3",maroon2:"#EE30A7",maroon3:"#CD2990",maroon4:"#8B1C62",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumorchid1:"#E066FF",mediumorchid2:"#D15FEE",mediumorchid3:"#B452CD",mediumorchid4:"#7A378B",mediumpurple:"#9370DB",mediumpurple1:"#AB82FF",mediumpurple2:"#9F79EE",mediumpurple3:"#8968CD",mediumpurple4:"#5D478B",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",mistyrose1:"#FFE4E1",mistyrose2:"#EED5D2",mistyrose3:"#CDB7B5",mistyrose4:"#8B7D7B",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",navajowhite1:"#FFDEAD",navajowhite2:"#EECFA1",navajowhite3:"#CDB38B",navajowhite4:"#8B795E",navy:"#000080",navyblue:"#000080",oldlace:"#FDF5E6",olivedrab:"#6B8E23",olivedrab1:"#C0FF3E",olivedrab2:"#B3EE3A",olivedrab3:"#9ACD32",olivedrab4:"#698B22",orange:"#FFA500",orange1:"#FFA500",orange2:"#EE9A00",orange3:"#CD8500",orange4:"#8B5A00",orangered:"#FF4500",orangered1:"#FF4500",orangered2:"#EE4000",orangered3:"#CD3700",orangered4:"#8B2500",orchid:"#DA70D6",orchid1:"#FF83FA",orchid2:"#EE7AE9",orchid3:"#CD69C9",orchid4:"#8B4789",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",palegreen1:"#9AFF9A",palegreen2:"#90EE90",palegreen3:"#7CCD7C",palegreen4:"#548B54",paleturquoise:"#AFEEEE",paleturquoise1:"#BBFFFF",paleturquoise2:"#AEEEEE",paleturquoise3:"#96CDCD",paleturquoise4:"#668B8B",palevioletred:"#DB7093",palevioletred1:"#FF82AB",palevioletred2:"#EE799F",palevioletred3:"#CD6889",palevioletred4:"#8B475D",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peachpuff1:"#FFDAB9",peachpuff2:"#EECBAD",peachpuff3:"#CDAF95",peachpuff4:"#8B7765",peru:"#CD853F",pink:"#FFC0CB",pink1:"#FFB5C5",pink2:"#EEA9B8",pink3:"#CD919E",pink4:"#8B636C",plum:"#DDA0DD",plum1:"#FFBBFF",plum2:"#EEAEEE",plum3:"#CD96CD",plum4:"#8B668B",powderblue:"#B0E0E6",purple:"#A020F0",purple1:"#9B30FF",purple2:"#912CEE",purple3:"#7D26CD",purple4:"#551A8B",red:"#FF0000",red1:"#FF0000",red2:"#EE0000",red3:"#CD0000",red4:"#8B0000",rosybrown:"#BC8F8F",rosybrown1:"#FFC1C1",rosybrown2:"#EEB4B4",rosybrown3:"#CD9B9B",rosybrown4:"#8B6969",royalblue:"#4169E1",royalblue1:"#4876FF",royalblue2:"#436EEE",royalblue3:"#3A5FCD",royalblue4:"#27408B",saddlebrown:"#8B4513",salmon:"#FA8072",salmon1:"#FF8C69",salmon2:"#EE8262",salmon3:"#CD7054",salmon4:"#8B4C39",sandybrown:"#F4A460",seagreen:"#2E8B57",seagreen1:"#54FF9F",seagreen2:"#4EEE94",seagreen3:"#43CD80",seagreen4:"#2E8B57",seashell:"#FFF5EE",seashell1:"#FFF5EE",seashell2:"#EEE5DE",seashell3:"#CDC5BF",seashell4:"#8B8682",sienna:"#A0522D",sienna1:"#FF8247",sienna2:"#EE7942",sienna3:"#CD6839",sienna4:"#8B4726",skyblue:"#87CEEB",skyblue1:"#87CEFF",skyblue2:"#7EC0EE",skyblue3:"#6CA6CD",skyblue4:"#4A708B",slateblue:"#6A5ACD",slateblue1:"#836FFF",slateblue2:"#7A67EE",slateblue3:"#6959CD",slateblue4:"#473C8B",slategray:"#708090",slategray1:"#C6E2FF",slategray2:"#B9D3EE",slategray3:"#9FB6CD",slategray4:"#6C7B8B",slategrey:"#708090",snow:"#FFFAFA",snow1:"#FFFAFA",snow2:"#EEE9E9",snow3:"#CDC9C9",snow4:"#8B8989",springgreen:"#00FF7F",springgreen1:"#00FF7F",springgreen2:"#00EE76",springgreen3:"#00CD66",springgreen4:"#008B45",steelblue:"#4682B4",steelblue1:"#63B8FF",steelblue2:"#5CACEE",steelblue3:"#4F94CD",steelblue4:"#36648B",tan:"#D2B48C",tan1:"#FFA54F",tan2:"#EE9A49",tan3:"#CD853F",tan4:"#8B5A2B",thistle:"#D8BFD8",thistle1:"#FFE1FF",thistle2:"#EED2EE",thistle3:"#CDB5CD",thistle4:"#8B7B8B",tomato:"#FF6347",tomato1:"#FF6347",tomato2:"#EE5C42",tomato3:"#CD4F39",tomato4:"#8B3626",turquoise:"#40E0D0",turquoise1:"#00F5FF",turquoise2:"#00E5EE",turquoise3:"#00C5CD",turquoise4:"#00868B",violet:"#EE82EE",violetred:"#D02090",violetred1:"#FF3E96",violetred2:"#EE3A8C",violetred3:"#CD3278",violetred4:"#8B2252",wheat:"#F5DEB3",wheat1:"#FFE7BA",wheat2:"#EED8AE",wheat3:"#CDBA96",wheat4:"#8B7E66",whitesmoke:"#F5F5F5",yellow:"#FFFF00",yellow1:"#FFFF00",yellow2:"#EEEE00",yellow3:"#CDCD00",yellow4:"#8B8B00",yellowgreen:"#9ACD32"},Yh=["#000000","#DF536B","#61D04F","#2297E6","#28E2E5","#CD0BBC","#F5C710","#9E9E9E"];function ee(t,e,n){let r=e[e.length-1],i=t;for(let o of e.slice(0,-1)){if(!Wt(i[o])){if(n==null)return;i[o]={}}i=i[o]}n==null?delete i[r]:i[r]=n}function An(t,e,n){for(let[r,i]of Object.entries(e)){let o=gt(i,n);o===void 0?delete t[r]:t[r]=o}return t}function Gr(t,e,n,r){Zt(t,e).forEach((i,o)=>{let a=t.x.series.get(i);a[n]=r(o,a)})}var BE=t=>Array.isArray(t)?t:[t];function Hh(t,e,n){let r=t.x.data.names;if(!BE(e).every(i=>r.includes(i)))throw new Error(n)}var DE=["label","show","clusters","itemStyle","groupStyle","styleBy"];function rb(t,e){let n=e.label??null,r=e.show??!0;if(n===null&&t.x.group===void 0)throw new Error("Please define labels");n===null&&(n=t.x.group),Hh(t,n,"label column not found in data");let i=Ft(e,DE);Zt(t,e.clusters).forEach((o,a)=>{let s=t.x.series.get(o),c=Ce({label:gt(n,a),show:gt(r,a),itemStyle:e.itemStyle,groupStyle:e.groupStyle,styleBy:e.styleBy,...i});s.labels=Ke(s.labels,c)})}function Wh(t,e){return t.colorScheme==null&&t.customColors==null&&(ee(t,["colorScheme"],e?.colorScheme),ee(t,["customColors"],e?.customColors)),t.pattern==null&&ee(t,["pattern"],e?.pattern),t}function jh(t,e,n){e==null&&n==null||(ee(t.x,["legend","legendOptions","colorScheme"],e),ee(t.x,["legend","legendOptions","customColors"],n))}var $E=["group","marker","markerSize","show","colorScheme","customColors","clusters","itemStyle","groupStyle","styleBy","cornerRadius"];function ib(t,e){let n=e.group??null,r=e.show??!0;n===null&&t.x.group!==void 0&&(n=t.x.group),n!==null&&Hh(t,n,"group column not found in data");let i=Ft(e,$E);Zt(t,e.clusters).forEach((o,a)=>{let s=t.x.series.get(o),c=Ce({group:gt(n,a),marker:gt(e.marker,a),cornerRadius:e.cornerRadius,markerSize:e.markerSize,show:gt(r,a),colorScheme:e.colorScheme,customColors:e.customColors,itemStyle:e.itemStyle,groupStyle:e.groupStyle,styleBy:e.styleBy,...i});s.genes=Wh(c,s.genes)}),e.clusters==null&&jh(t,e.colorScheme,e.customColors)}function ob(t,e){let n=e.colorScheme??null,r=e.customColors??null;if(n!==null&&r!==null&&!Wt(r)){t.warnings.push("Both colorScheme and customColors are selected. Use a named list of customColors to set the colours of some groups, or choose only one.");return}ee(t.x,["legend","legendOptions","colorScheme"],n),ee(t.x,["legend","legendOptions","customColors"],r);for(let i of t.x.series.values())for(let o of["genes","transcript"])ee(i,[o,"colorScheme"],n),ee(i,[o,"customColors"],r)}var nb=["none","solid","horizontal","vertical","diagonal","antidiagonal","grid","crosshatch","dots","zigzag","checkerboard","rings","bricks","plus","wideStripes","inverseDots"];function Uh(t){if(t==null)return"#FFFFFF00";let e=String(t),n=o=>o.toString(16).toUpperCase().padStart(2,"0"),r=/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.exec(e);if(r){let o=r[1];return o.length<=4&&(o=o.split("").map(a=>a+a).join("")),o=o.toUpperCase(),o.length===8&&o.endsWith("FF")?`#${o.slice(0,6)}`:`#${o}`}let i=e.toLowerCase();return i==="transparent"?"#FFFFFF00":qh[i]?qh[i]:/^[1-9][0-9]*$/.test(e)?Yh[(Number(e)-1)%Yh.length]:t}function Xh(t){let n=(Wt(t.patterns)?Object.values(t.patterns):[t.patterns??[]].flat()).filter(o=>o!==null&&!nb.includes(o));if(n.length)throw new Error(`Unknown pattern(s): ${n.join(", ")}. Available patterns: ${nb.join(", ")}`);let r=o=>{if(o!=null)return Wt(o)?Object.fromEntries(Object.entries(o).map(([a,s])=>[a,Uh(s)])):Array.isArray(o)?o.map(Uh):Uh(o)},i={};for(let[o,a]of Object.entries({patterns:t.patterns,color:r(t.color),background:r(t.background),size:t.size,strokeWidth:t.strokeWidth}))a!=null&&(i[o]=a);return i}function ab(t,e){let n=Xh({patterns:e.patterns,color:xa(e,"color","black"),background:xa(e,"background","white"),size:xa(e,"size",6),strokeWidth:xa(e,"strokeWidth",1)});ee(t.x,["legend","legendOptions","pattern"],n);for(let r of t.x.series.values())r.genes.pattern=n,r.transcript.pattern=n}var zE=["group","show","backgroundColor","order","position","align","style","markerStyle","textStyle","cornerRadius","groupStyle"];function sb(t,e){let n=e.group??null,r=e.show??!0;if(r===!0&&n===null&&t.x.group===void 0)throw new Error("Please define a group");n===null&&t.x.group!==void 0&&(n=t.x.group),n!==null&&Hh(t,n,"group column not found in data");let i={...e.style??{}};e.backgroundColor!=null&&i.backgroundColor==null&&(i.backgroundColor=e.backgroundColor);let o=Ce({group:n,show:r,order:e.order,position:e.position,align:e.align,cornerRadius:e.cornerRadius,style:i,legendOptions:e.markerStyle,legendTextOptions:e.textStyle,groupStyle:e.groupStyle,...Ft(e,zE)});t.x.legend=Ke(t.x.legend,o)}var NE=["show","clusters","y","lineStyle","markerStyle"];function Gh(t,e){if(!t||!e)return t;for(let n of["start","end"])typeof t[n]=="number"&&(t[n]-=e);return t}function lb(t,e){let n=e.show??!0,r=Ft(e,NE);Gr(t,e.clusters,"sequence",(i,o)=>{let a={show:gt(n,i),y:gt(e.y,i)??null,sequenceStyle:e.lineStyle??{},markerStyle:e.markerStyle??{}};return Gh(An(a,r,i),o.positionShift)})}var RE=["show","tickValuesTop","tickValuesBottom","ticksFormat","tickStyle","textStyle","clusters","groupStyle","styleBy"];function cb(t,e){let n=e.show??!0,r=e.styleBy??null;if(r===null&&t.x.group!==void 0&&(r=t.x.group),e.groupStyle!=null&&r===null)throw new Error("groupStyle needs a group in GC_chart() or a style_by column");let i=Ft(e,RE);Gr(t,e.clusters,"coordinates",o=>{let a={show:gt(n,o),ticksFormat:e.ticksFormat??null,tickStyle:e.tickStyle??{},textStyle:e.textStyle??{}};return e.groupStyle!=null&&(a.groupStyle=e.groupStyle,a.styleBy=r),An(a,i,o),ee(a,["tickValuesTop"],e.tickValuesTop),ee(a,["tickValuesBottom"],e.tickValuesBottom),a})}var PE=["formatter","show","clusters"];function ub(t,e){let n=e.formatter??"<b>Start:</b> {start}<br><b>End:</b> {end}",r=e.show??!0,i=Ft(e,PE);Gr(t,e.clusters,"tooltip",o=>An({formatter:n,show:gt(r,o)},i,o))}var fb={scaleBar:{unit:"scaleBarUnit"},labels:{labelAdjustment:"labelAdjustmentOptions"},links:{labelAdjustment:"labelAdjustmentOptions"}},Vh={legend:{markerStyle:"legendOptions",textStyle:"legendTextOptions"},sequence:{lineStyle:"sequenceStyle"},scaleBar:{lineStyle:"scaleBarLineStyle",tickStyle:"scaleBarTickStyle",unit:"scaleBarUnit"},links:{show:"showLinks",labelAdjustment:"labelAdjustmentOptions"},labels:{labelAdjustment:"labelAdjustmentOptions"},scale:{autoBreaks:"scaleBreaks",autoBreakThreshold:"scaleBreakThreshold",breakPadding:"scaleBreakPadding"}};function ec(t,e){return!e||t===null||typeof t!="object"||Array.isArray(t)?t:Object.fromEntries(Object.entries(t).map(([n,r])=>[e[n]??n,r]))}var Zh={chart:"chartOptions",grid:"containerOptions",cluster:"clusterOptions",title:"titleOptions",clusterTitle:"clusterTitleOptions",clusterFooter:"footerOptions",clusterLabel:"clusterLabelOptions",sequence:"sequenceOptions",genes:"geneOptions",transcript:"transcriptOptions",labels:"labelsOptions",coordinates:"coordinatesOptions",scale:"scaleOptions",scaleBar:"scaleBarOptions",legend:"legendOptions",links:"linkOptions",tooltip:"tooltipOptions",trackMouse:"trackMouseOptions",toolbar:"toolbarOptions"},hb={text:"textAnnotationOptions",line:"lineAnnotationOptions",arrow:"arrowAnnotationOptions",textMarker:"textMarkerAnnotationOptions",symbol:"symbolAnnotationOptions",rectangle:"rectangleAnnotationOptions",promoter:"promoterAnnotationOptions",terminator:"terminatorAnnotationOptions",arc:"curveAnnotationOptions"},ka=Lh.themes,Gi=Lh.palettes,IE=t=>t.replace(/_([a-z])/g,(e,n)=>n.toUpperCase());function nc(t){return Wt(t)?Object.fromEntries(Object.entries(t).map(([e,n])=>[IE(e),n])):t}function LE(t){let e={...t};for(let n of Object.keys(e))n==="annotations"?Wt(e[n])&&(e[n]=Object.fromEntries(Object.entries(e[n]).map(([r,i])=>[r,nc(i)]))):n in Zh&&(e[n]=nc(e[n]));return e}function Qh(t,e){let n={...t};for(let[r,i]of Object.entries(e||{}))i==null?delete n[r]:Wt(n[r])&&Wt(i)?n[r]=Qh(n[r],i):n[r]=i;return n}function db(t,e){let n=typeof e=="string"?{base:e}:pe(e),r=n.base;delete n.base;let i;if(r==null)i=t.x.theme||{};else{if(!(r in ka))throw new Error(`name must be one of: ${Object.keys(ka).map(a=>`"${a}"`).join(", ")}`);i=LE(pe(ka[r]))}for(let a of Object.keys(n))a in Vh&&(n[a]=ec(n[a],Vh[a]));let o=n.pattern===!1;o&&delete n.pattern,t.x.theme=Qh(i,n),o&&delete t.x.theme.pattern}function Kh(t){if(!Wt(t)&&!Array.isArray(t))return t;if(Array.isArray(t))return t.map(Kh).filter(n=>!((Wt(n)||Array.isArray(n))&&!Object.keys(n).length));let e={};for(let[n,r]of Object.entries(t)){let i=Kh(r);(Wt(i)||Array.isArray(i))&&Object.keys(i).length===0||(e[n]=i)}return e}function qE(t){let e=t.fontFamily!=null?{fontFamily:t.fontFamily}:{},n={...e,...t.textColor!=null?{fill:t.textColor}:{}},r={...e,...t.textColor!=null?{color:t.textColor}:{}},i=t.lineColor!=null?{stroke:t.lineColor}:{},o=t.palette??null;o!==null&&!(typeof o=="string"&&(o.startsWith("scheme")||o in Gi))&&(o=Array.isArray(o)?o:[o]);let a=o!==null?{colorScheme:o}:{},s=t.pattern!=null?{pattern:Xh(t.pattern)}:{},c=t.background!=null?{backgroundColor:t.background}:{};return Kh({chart:{style:c},title:{titleFont:n,subtitleFont:n},clusterTitle:{titleFont:n,subtitleFont:n},clusterFooter:{titleFont:n,subtitleFont:n},clusterLabel:{...n,subtitleFont:n},sequence:{sequenceStyle:i,markerStyle:i},genes:{...a,...s},transcript:{...a,...s,labelOptions:r,styleUTRs:t.background!=null?{fill:t.background}:{}},labels:{...n,leaderLine:i},coordinates:{textStyle:n,tickStyle:i},scale:{textStyle:n,tickStyle:i,lineStyle:i},scaleBar:{labelStyle:n,scaleBarLineStyle:i,scaleBarTickStyle:i},legend:{legendOptions:{...a,...s},legendTextOptions:n},links:{labelStyle:n,colorBarOptions:{labelOptions:n,titleOptions:n}},tooltip:r,trackMouse:r,toolbar:e,annotations:{text:{style:n},textMarker:{textStyle:n},arc:{textStyle:n}}})}function pb(t){if(!t||Object.keys(t).length===0)return;let e={};for(let i of Object.keys(t))i in Zh&&(e[i]=nc(t[i]));t.annotations!=null&&(e.annotations=Object.fromEntries(Object.entries(t.annotations).map(([i,o])=>[i,nc(o)])));let n=Qh(qE(t),e),r={};for(let[i,o]of Object.entries(Zh))i in n&&(r[o]=n[i]);for(let i of Object.keys(n.annotations||{}))i in hb&&(r[hb[i]]=n.annotations[i]);return t.textScale!=null&&(r.textScale=t.textScale),r}var YE=["translation","sequence"];function rc(t,e=[]){if(t instanceof Ze)return e;if(t instanceof Map)for(let n of t.values())rc(n,e);else if(Array.isArray(t))for(let n of t)rc(n,e);else if(t!==null&&typeof t=="object")for(let n of Object.values(t))rc(n,e);else typeof t=="string"&&e.push(t);return e}function UE(t){if(!t.data)return;let e={...t,data:void 0,series:new Map};for(let[o,a]of t.series)e.series.set(o,{...a,data:void 0});let n=rc(e),r=t.data.names,i=YE.filter(o=>r.includes(o)&&!n.some(a=>a.includes(o)));t.dataColumns=r.filter(o=>!i.includes(o)),delete t.data;for(let o of t.series.values())o.data instanceof Ze&&(o.data=o.data.select(o.data.names.filter(a=>!i.includes(a))))}function Jh(t){if(t instanceof Map){for(let[e,n]of t)t.set(e,Jh(n));return t}if(t===null||typeof t!="object"||t instanceof Ze)return t;for(let[e,n]of Object.entries(t))e==="colorScheme"&&typeof n=="string"&&Gi[n]?t[e]=Gi[n].slice():n!==null&&typeof n=="object"&&(t[e]=Jh(n));return t}function gb(t){let e=t.x;e.size={width:t.width};let n=pb(e.theme);return n===void 0?delete e.theme:e.theme=n,Jh(e),UE(e),e}var HE=["title","subtitle","style","subtitleFont","titleFont","show","height","align","spacing"];function mb(t,e){let n=e.show??!0;if(!n||e.title==null&&e.subtitle==null)return;let r=Ce({title:e.title,subtitle:e.subtitle,subtitleFont:e.subtitleFont,titleFont:e.titleFont,style:e.style,height:e.height,show:n,align:e.align,spacing:e.spacing,...Ft(e,HE)});t.x.title=Ke(t.x.title,r)}var WE=["title","subtitle","subtitleFont","titleFont","show","height","clusters","align","spacing"];function yb(t,e){let n=e.show??!0,r=Ft(e,WE);Zt(t,e.clusters).forEach((i,o)=>{let a=t.x.series.get(i),s={title:gt(e.title,o)??null,subtitle:gt(e.subtitle,o)??null,subtitleFont:e.subtitleFont??{},titleFont:e.titleFont??{},show:gt(n,o)};ee(s,["align"],gt(e.align,o)),ee(s,["spacing"],gt(e.spacing,o)),An(s,r,o),ee(a,["grid","margin","top"],gt(e.height,o)),a.clusterTitle=s})}var jE=["title","show","width","clusters","position","align","wrapLabel","wrapOptions","subtitle","subtitleFont","spacing"];function bb(t,e){let n=e.show??!0,r=Ft(e,jE),i=Zt(t,e.clusters),o=e.title??null;t.x.cluster!==void 0&&o===null&&(o=i),i.forEach((a,s)=>{let c=t.x.series.get(a),l=_a({title:gt(o,s),show:gt(n,s),width:gt(e.width,s),wrapLabel:e.wrapLabel,wrapOptions:e.wrapOptions??{},position:gt(e.position,s),align:gt(e.align,s),subtitle:gt(e.subtitle,s),spacing:gt(e.spacing,s)});Jy(e.subtitleFont)||(l.subtitleFont=e.subtitleFont),c.clusterLabel=An(l,r,s)})}var XE=["title","subtitle","show","clusters","subtitleFont","titleFont","align","spacing"];function vb(t,e){let n=e.show??!0,r=Ft(e,XE);Gr(t,e.clusters,"footer",i=>{let o={title:gt(e.title,i)??null,subtitle:gt(e.subtitle,i)??null,show:gt(n,i),subtitleFont:e.subtitleFont??{},titleFont:e.titleFont??{}};return ee(o,["align"],gt(e.align,i)),ee(o,["spacing"],gt(e.spacing,i)),An(o,r,i)})}function GE(t,e){let n=10**e;return Math.round(t*n)/n}function Aa(t,e){let n=t.x,r=[...n.series.keys()],i=Zt(t,e.clusters),o=t.height,a=e.clusters!=null,s=e.margin==null?null:{...e.margin},c=e.width??null,l=e.height??null;if(c!==null&&!a&&(t.width=Xn(t.width,c)),(e.direction??"column")==="row"&&(n.graphContainer.direction="row",i.length>0)){let u=`${de(GE(100/i.length,3))}%`;for(let h of i){let f=n.series.get(h).container;f.style={...f.style||{},width:u},f.width=u}}if(s!==null&&!a){let u=s.top!=null?Xn(o,s.top):0,h=s.bottom!=null?Xn(o,s.bottom):0;if(typeof u!="number"||typeof h!="number")throw new Error("Use pixel values for the top and bottom margins when the chart height is a percentage.");if(delete s.top,delete s.bottom,n.legend.margin=Ke(n.legend.margin,s),n.title.margin=Ke(n.title.margin,s),Array.isArray(n.style)&&(n.style={}),u>0&&(n.style.paddingTop=`${de(u)}px`),h>0&&(n.style.paddingBottom=`${de(h)}px`),u>0||h>0){t.height="100%";for(let f of r){let d=n.series.get(f).container;if(typeof d.height=="string"&&/%$/.test(d.height))continue;let m=Number(Xn(d.height,d.height));d.height=m-(u+h)/r.length}}}i.forEach((u,h)=>{let f=n.series.get(u).container;if(s!==null&&(f.margin=Ke(f.margin,s)),c!==null&&a){let d=Xn(t.width,gt(c,h));f.style={...f.style||{},width:d},f.width=d}l!==null&&(f.height=a?Xn(o,gt(l,h)):Jl(l,r.length))})}function wb(t){if(!/^\s*[0-9]*\.?[0-9]+\s*bp\s*$/.test(t))throw new Error('scale_break_padding must be a percentage, e.g. 1, or base pairs, e.g. "500bp"');return Number(t.replace(/\s*bp\s*$/,""))}function VE(t,e=0,n=0){let r=t.get("start").slice(),i=t.get("end").slice();r.forEach((f,d)=>{f>i[d]&&([r[d],i[d]]=[i[d],f])});let o=Math.max(...i)-Math.min(...r)+1,a=o*e/100,s=Sa(r.length,[f=>r[f]]);r=s.map(f=>r[f]),i=s.map(f=>i[f]);let c=[],l={start:r[0],end:i[0]};for(let f=1;f<r.length;f++)r[f]<=l.end?l.end=Math.max(l.end,i[f]):(c.push(l),l={start:r[f],end:i[f]});c.push(l);let u=[];for(let f=0;f<c.length-1;f++){let d=c[f].end+1,m=c[f+1].start-1;m-d+1>=a&&u.push({start:d,end:m})}let h;return typeof n=="string"?h=wb(n):h=(o-u.reduce((d,m)=>d+(m.end-m.start+1),0))*n/100,u=u.map(f=>({start:f.start+h,end:f.end-h})),u.filter(f=>f.start<f.end)}function ZE(t,e,n){if(Wt(t)){if(!("start"in t)||!("end"in t))throw new Error("A data frame of breaks needs a start and an end column");let r=[t.start].flat(),i=[t.end].flat(),o=r.map((a,s)=>s);if("cluster"in t){let a=[t.cluster].flat();o=o.filter(s=>de(a[s])===e)}t=o.map(a=>({start:r[a],end:i[a]}))}return n?(t||[]).map(r=>({...r,start:r.start-n,end:r.end-n})):t}function td(t,e){if(!e)return t;let n=i=>typeof i=="number"?i-e:i,r=i=>Array.isArray(i)?i.map(n):n(i);for(let i of["x","x1","x2"])i in t&&(t[i]=r(t[i]));return t.position!==null&&t.position!==void 0&&(t.type==="rectangle"?t.position=[t.position].flat(0).map(i=>Array.isArray(i)?i.map(o=>Array.isArray(o)?[n(o[0]),...o.slice(1)]:n(o)):[n(i)]):t.position=r(t.position)),t}var KE=["clusters","start","end","padding","hidden","breaks","tickValues","reverse","axisPosition","axisType","y","autoBreaks","autoBreakThreshold","breakPadding","ticksCount","ticksFormat","tickStyle","textStyle","lineStyle"];function xb(t,e){let n=t.x,r=e.axisType??"position",i=e.hidden??!1,o=e.autoBreaks??!1,a=e.autoBreakThreshold??20,s=e.breakPadding??1,c=e.ticksFormat??null;typeof s=="string"&&wb(s);let l=null,u=null,h=Zt(t,e.clusters);if(r==="range"){c===null&&(c=".2s");for(let d of h){let m=n.series.get(d),p=m.data,g=Math.min(...p.get("start"),...p.get("end"));p.set("start",p.get("start").map(x=>x-g+1)),p.set("end",p.get("end").map(x=>x-g+1));let y=g-1;m.sequence=Gh(m.sequence,y),m.annotations.length>0&&(m.annotations=m.annotations.map(x=>td(x,y))),m.positionShift=m.positionShift==null?y:m.positionShift+y;let w=n.data.get("rowID"),b=n.data.get("start"),v=n.data.get("end");p.get("rowID").forEach((x,S)=>{let k=w.indexOf(x);b[k]=p.get("start")[S],v[k]=p.get("end")[S]})}l=1,u=Math.max(...h.flatMap(d=>{let m=n.series.get(d).data;return[...m.get("start"),...m.get("end")]}))}let f=Ft(e,KE);h.forEach((d,m)=>{let p=n.series.get(d),g=r==="range"&&!i&&m<h.length-1?!0:i,y=o?VE(p.data,a,s):ZE(e.breaks??[],d,p.positionShift),w={start:gt(e.start,m)??null,end:gt(e.end,m)??null,xMin:l,xMax:u,padding:e.padding??null,hidden:g,breaks:y,tickValues:e.tickValues??null,reverse:gt(e.reverse??!1,m),axisPosition:e.axisPosition??null,axisType:r,scale_breaks:o,scale_break_threshold:a,scale_break_padding:s,ticksCount:e.ticksCount??null,ticksFormat:c,y:e.y??null,tickStyle:e.tickStyle??{},textStyle:e.textStyle??{},lineStyle:e.lineStyle??{}};p.scale=An(w,f,m)}),kb(t)}var QE=["show","clusters","lineStyle","tickStyle","labelStyle"];function _b(t,e){let n=e.show??!0,r=Ft(e,QE);Gr(t,e.clusters,"scaleBar",i=>An({show:gt(n,i),scaleBarLineStyle:e.lineStyle??{},scaleBarTickStyle:e.tickStyle??{},labelStyle:e.labelStyle??{}},r,i))}function JE(t,e,n,r){return t==="left"&&!r||t==="right"&&r?e:t==="right"&&!r||t==="left"&&r?n:t==="center"?(e+n)/2:e}function Sb(t,e){let n=t.x;if(n.cluster===void 0){t.warnings.push("Could not align selected gene. Please define cluster in the GC_chart function.");return}if(!n.data.has(e.idColumn)){t.warnings.push(`Column ${e.idColumn} not found in the data.`);return}let r=de(e.id);if(!n.data.get(e.idColumn).some(i=>de(i)===r)){t.warnings.push(`ID ${e.id} not found in the ${e.idColumn} column.`);return}t.align={idColumn:e.idColumn,id:e.id,align:e.align??"left"},n.align={id_column:e.idColumn,id:e.id,align:t.align.align},kb(t)}function kb(t){let e=t.align;if(!e)return;let n=t.x,r=n.data,i=n.cluster,o=r.get(i),a=[...new Set(o)],s=new Set(a.filter(w=>n.series.get(w)?.scale?.reverse===!0)),c=r.get("start").map((w,b)=>Math.min(w,r.get("end")[b])),l=r.get("start").map((w,b)=>Math.max(w,r.get("end")[b])),u=r.get(e.idColumn),h=de(e.id),f=[];for(let w=0;w<r.nrow;w++)u[w]!==null&&de(u[w])===h&&f.push(w);if(!f.length){t.warnings.push(`Selected gene coud not be aligned. Gene ${e.id} not found in the ${e.idColumn} column.`);return}if(new Set(f.map(w=>o[w])).size<f.length){t.warnings.push(`The selected gene ${e.id} appears multiple times in some clusters. Please make sure to use a unique gene id.`);return}let d=new Map;o.forEach((w,b)=>{let v=d.get(w)||{start:1/0,end:-1/0};d.set(w,{start:Math.min(v.start,c[b]),end:Math.max(v.end,l[b])})});let m=(w,b,v)=>(n.series.get(v)?.scale?.breaks||[]).reduce((x,S)=>x+Math.max(0,Math.min(S.end,b)-Math.max(S.start,w)),0),p=f.map(w=>{let b=o[w],v=s.has(b),x=JE(e.align,c[w],l[w],v),{start:S,end:k}=d.get(b),C=m(S,x,b),F=m(x,k,b),A=x-S-C,E=k-x-F;return{cl:b,isReversed:v,position:x,gapsBelow:C,gapsAbove:F,left:v?E:A,right:v?A:E}}),g=Math.max(...p.map(w=>w.left)),y=Math.max(...p.map(w=>w.right));for(let w of p){let b=n.series.get(w.cl);b.scale.start=w.position-(w.isReversed?y:g)-w.gapsBelow,b.scale.end=w.position+(w.isReversed?g:y)+w.gapsAbove}}var tM=["identity","similarity","none"],eM=["data","group","value1","value2","clusters","curve","measure","show","label","labelPosition","normalColor","invertedColor","lowColor","vmin","vmax","useGroupColors","colorBar","colorBarOptions","linkWidth","linkStyle","labelStyle"],nM={position:["bottomright","bottomleft","topright","topleft","legend"],orientation:["vertical","horizontal"],labels:["inline","below"],legendSide:["left","right"]};function ic(t,e,n){t.has(e)&&(t.columns=new Map([...t.columns].map(([r,i])=>[r===e?n:r,i])))}function Ab(t,e){let n=e.measure??"identity",r=e.labelPosition??"gene",i=e.colorBarOptions??{};if(!tM.includes(n))throw new Error("Invalid measure specified. Choose 'identity', 'similarity', or 'none'.");if(!["gene","link"].includes(r))throw new Error(`'label_position' must be one of "gene", "link".`);for(let[y,w]of Object.entries(nM)){let b=i[y];if(b!=null&&!w.includes(b))throw new Error(`'colorBarOptions$${y}' must be one of ${w.map(v=>`"${v}"`).join(", ")}.`)}let o=e.vmin??null,a=e.vmax??null;if((o!==null||a!==null)&&(o??0)>=(a??100))throw new Error("'vmin' must be smaller than 'vmax'.");let s=e.group??null,c=e.label??!0;s===null&&r==="gene"&&(c=!1);let l=Ze.from(e.data??[]);if(l.nrow===0)return;l.has("identity2")&&ic(l,"identity2","identity"),l.has("similarity2")&&ic(l,"similarity2","similarity"),ic(l,`${s??""}1`,"group1"),ic(l,`${s??""}2`,"group2");let u=["cluster1","group1","start1","end1","cluster2","group2","start2","end2"];n!=="none"&&u.push(n);let h=e.useGroupColors??!1,f=e.colorBar;if(h){let y=t.x.group!==void 0?t.x.group:s,w=l.get(`${y??""}2`);w&&l.set("groupColor",w.slice()),u.push("groupColor"),f=!1}let d=l.select(u.filter(y=>l.has(y))),m=d.get("start2")||[];d=d.rows(Sa(d.nrow,[y=>m[y]]));let p=Ce({group:s,curve:e.curve,measure:n,showLinks:e.show??!0,label:c,labelPosition:r,normalColor:e.normalColor,invertedColor:e.invertedColor,lowColor:e.lowColor,vmin:o,vmax:a,useGroupColors:h,value1:e.value1,value2:e.value2,colorBar:f,colorBarOptions:i,linkWidth:e.linkWidth,linkStyle:e.linkStyle,labelStyle:e.labelStyle,...Ft(e,eM)}),g=t.x.links||[];d.set("linkID",Array.from({length:d.nrow},(y,w)=>`${g.length}-${w+1}`)),t.x.links=[...g,{data:d,options:p}]}var rM=["transcript","type","strand","group","selection","show","colorScheme","customColors","styleExons","styleIntrons","styleUTRs","itemStyleExons","itemStyleIntrons","itemStyleUTRs","groupStyleExons","groupStyleIntrons","groupStyleUTRs","styleBy","labelOptions"];function iM(t,e){return JSON.stringify(t)===JSON.stringify(e)}function oM(t,e){for(let a of["title","legend","theme","events","toolbar","zoom"])e.x[a]===void 0?delete t.x[a]:t.x[a]=e.x[a];t.width=e.width;let n=[...e.x.series.values()].map(a=>a.container.margin),i=n.length>0&&n.every(a=>iM(a,n[0]))?n[0]:{},o=Array.isArray(e.x.style)?{}:e.x.style||{};o.paddingTop!=null&&(i={...i||{},top:o.paddingTop}),o.paddingBottom!=null&&(i={...i||{},bottom:o.paddingBottom}),i&&Object.keys(i).length>0&&Aa(t,{margin:i}),e.x.graphContainer?.direction==="row"&&Aa(t,{direction:"row"})}function Eb(t,e){if(!t.x.transcript_called){let o=t.x.params,a={...t,x:t.x},s={start:o.start,end:o.end,cluster:e.transcript??"transcript"};o.group!==void 0&&(s.group=o.group),e.strand!=null&&(s.strand=e.strand);let c=tc({...t.spec,fields:s,width:o.width,height:o.height,style:o.style});c.x.saveButton=o.save_button,c.x.params.save_button=o.save_button,t.x=c.x,t.width=c.width,t.height=c.height,oM(t,a);let l=[...new Set(t.x.data.get("transcript").map(String))];for(let u of l){let h=t.x.series.get(u);h.genes={group:null,show:!1},h.sequence={show:!1},h.transcript={group:null,show:!0}}}let n=e.group??null,r=e.show??!0;if(n===null&&t.x.group!==void 0&&(n=t.x.group),n!==null&&![n].flat().every(o=>t.x.data.has(o)))throw new Error("group column not found in data");let i=Ft(e,rM);Zt(t,e.selection).forEach((o,a)=>{let s=t.x.series.get(o),c=Ce({group:gt(n,a),show:gt(r,a),colorScheme:e.colorScheme,customColors:e.customColors,styleExons:e.styleExons,styleIntrons:e.styleIntrons,styleUTRs:e.styleUTRs,itemStyleExons:e.itemStyleExons,itemStyleIntrons:e.itemStyleIntrons,itemStyleUTRs:e.itemStyleUTRs,groupStyleExons:e.groupStyleExons,groupStyleIntrons:e.groupStyleIntrons,groupStyleUTRs:e.groupStyleUTRs,styleBy:e.styleBy,labelOptions:e.labelOptions,...i});s.transcript=Wh(c,s.transcript)}),e.selection==null&&jh(t,e.colorScheme,e.customColors),t.x.transcript_called=!0}var Mb=["text","textMarker","line","arrow","symbol","rectangle","promoter","terminator","arc"];function Tb(t,e){let n=e.type??"text";if(typeof n!="string"||!Mb.includes(n))throw new Error(`'type' must be one of ${Mb.map(i=>`"${i}"`).join(", ")}.`);let r=Ft(e,["type","clusters"]);for(let i of Zt(t,e.clusters)){let o=t.x.series.get(i),a=td(Ce({type:n,...pe(r)}),o.positionShift);o.annotations=[...o.annotations||[],a]}}var aM=["genes","labels","coordinates"],sM=["legend","title"],lM=["scaleBar","scale"],Cb=["genes","labels","coordinates","clusterTitle","clusterFooter","clusterLabel","legend","title","scaleBar","scale"];function Fb(t,e,n,r){let i=Array.isArray(t)?t:[],o=i.find(e)||{},a=i.filter(c=>!e(c)),s=Xr(o,r);for(let[c,l]of Object.entries(n))s[c]=l;return[...a,s]}function Ob(t,e){let n=e.component??"genes";if(!Cb.includes(n))throw new Error(`'component' must be one of ${Cb.join(", ")}`);let{rowID:r=null,cluster:i=null,part:o=null,end:a=null,group:s=null}=e,c=pe(Ft(e,["component","rowID","cluster","part","end","group"])),l=aM.includes(n),u=t.x;if(sM.includes(n)){if(n==="legend"){let y=u.legend?.group;if(s===null||y==null||!u.data.get(y)?.some(w=>String(w)===String(s)))throw new Error("'group' must identify one group in the legend.")}let p=n==="legend"?{group:s,part:o}:{part:o},g=y=>y.part===o&&(n==="title"||y.group===s);u[n].itemStyle=Fb(u[n].itemStyle,g,p,c);return}let h=n==="clusterFooter"?"footer":n,f,d,m;if(l){if(typeof r!="number"||!u.data.get("rowID").includes(r))throw new Error("'row_id' must identify one row in the chart's data.");f=a===null?{rowID:r}:{rowID:r,end:a},d=p=>Number(p.rowID)===Number(r)&&(p.end??null)===a,m=[...u.series.keys()]}else if(f=lM.includes(n)?{}:{part:o},d=p=>(p.part??null)===o,m=Zt(t,i),!m.length)throw new Error("'cluster' must be the name or number of a cluster of the chart.");for(let p of m){let g=u.series.get(p);l&&!g.data.get("rowID").includes(r)||((!g[h]||Array.isArray(g[h]))&&(g[h]={}),g[h].itemStyle=Fb(g[h].itemStyle,d,f,c))}}function Bb(t,e){let n=e.show??!0,r=Ft(e,["show","clusters"]);Zt(t,e.clusters).forEach((i,o)=>{t.x.series.get(i).trackMouse={show:gt(n,o),...pe(r)}})}function Db(t,e){let n={click:e.click??!0,highlight:e.highlight??!1};e.dblclick&&(n.dblclick=!0),e.select&&(n.select=!0),e.drag&&(n.drag=!0),e.legendClick===!1&&(n.legendClick=!1),e.zoom&&(n.zoom=!0),e.rendered&&(n.rendered=!0),e.renderId!=null&&(n.renderId=e.renderId),t.x.events=n}var cM=["show","position","buttons","size","color","hoverColor","tooltipBackground","tooltipColor","tooltipBorder","tooltipRadius","tooltipShadow","fontFamily","icons"];function $b(t,e){let n=_a(Object.fromEntries(cM.map(r=>[r,pe(e[r])])));n.buttons!==void 0&&!Array.isArray(n.buttons)&&(n.buttons=[n.buttons]),t.x.toolbar=Xr(t.x.toolbar||{},n)}var uM=["show","range","mode","min","update","height","overview","color","style","windowStyle","handleStyle"];function zb(t,e){let n=_a(Object.fromEntries(uM.map(i=>[i,pe(e[i])])));n.show===void 0&&(n.show=!0);let r={...t.x.zoom||{}};n.mode!==void 0&&n.mode!==r.mode&&(delete r.range,delete r.min),n.range!==void 0&&(n.range=[n.range].flat().map(Number).sort((i,o)=>i-o)),t.x.zoom=Xr(r,n)}var fM={cluster:eb,labels:rb,genes:ib,color:ob,pattern:ab,legend:sb,sequence:lb,coordinates:cb,tooltip:ub,title:mb,clusterTitle:yb,clusterLabel:bb,clusterFooter:vb,grid:Aa,scale:xb,scaleBar:_b,align:Sb,links:Ab,transcript:Eb,annotation:Tb,elementStyle:Ob,theme:db,zoom:zb,toolbar:$b,events:Db,trackMouse:Bb},Nb=1,hM=new Set(["version","data","fields","width","height","style"]);function dM(t){return t==null?[]:Array.isArray(t)?t:[t]}function Ea(t){if(!t||typeof t!="object")throw new Error("compile() needs a spec object");typeof t.version=="number"&&t.version>Nb&&console.warn(`geneviewer: spec version ${t.version} is newer than this library's (${Nb}); drawing what it knows`),t=pe(t);let e=tc(t);for(let[n,r]of Object.entries(t)){if(hM.has(n))continue;let i=fM[n];if(i)for(let o of dM(r))i(e,ec(o,fb[n]))}return oc(gb(e))}function oc(t){if(t instanceof Ze)return t.toJSON();if(t instanceof Map){let e={};for(let[n,r]of t)e[n]=oc(r);return e}if(Array.isArray(t))return t.map(oc);if(t!==null&&typeof t=="object"){let e={};for(let[n,r]of Object.entries(t))r!==void 0&&(e[n]=oc(r));return e}return t}var Rb=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);function ed(t,e){let n={...t};for(let[r,i]of Object.entries(e||{}))i!==void 0&&(n[r]=r!=="data"&&Rb(n[r])&&Rb(i)?ed(n[r],i):structuredClone(i));return n}var Pb=`.geneviewer-container {
|
|
27
|
+
<b>Location:</b> {start} - {end}<br>`,nb=["1","forward","+","sense"],FE=["-1","0","reverse","-","antisense","complement"];function TE(t,e=null){if(!t||t.nrow===0)return null;if(e===null&&t.has("strand")&&(e="strand"),!t.has("start"))throw new Error("start column not found in data");if(!t.has("end"))throw new Error("end column not found in data");let n=t.get("start"),r=t.get("end");if(e===null)return t.set("strand",n.map((c,l)=>c===null||r[l]===null?null:c<r[l]?"forward":"reverse")),t;if(!t.has(e))throw new Error("strand column not found in data");let i=t.get(e).map(pe);if(!i.every(c=>nb.includes(c)||FE.includes(c)))throw new Error("Invalid strand values found. Valid values are 1/forward/+/sense or -1/0/reverse/-/antisense/complement.");let o=i.map(c=>nb.includes(c)?"forward":"reverse");t.set("strand",o);let a=n.slice(),s=r.slice();return o.forEach((c,l)=>{(c==="forward"&&n[l]>r[l]||c==="reverse"&&n[l]<r[l])&&(a[l]=r[l],s[l]=n[l])}),t.set("start",a),t.set("end",s),t}function Vt(t,e){let n=[...t.x.series.keys()];if(e==null)return n;let r=Array.isArray(e)?e:[e];if(r.length&&r.every(o=>typeof o=="number"))return r.some(o=>o>n.length||o<1)?(t.warnings.push("Some cluster numbers provided are out of range. Please check the cluster numbers."),[]):r.map(o=>n[Math.trunc(o)-1]);let i=r.map(o=>pe(o));return i.every(o=>n.includes(o))?i:(t.warnings.push("Some cluster names provided are not valid. Please check the cluster names."),[])}function ec(t){let e=t.fields||{},n=e.start??"start",r=e.end??"end",i=e.cluster??null,o=e.group??null,a=e.strand??null,s=t.width??"100%",c=t.height??"400px",l=t.style??{},u=t.toolbar&&!Array.isArray(t.toolbar)?t.toolbar.buttons:void 0,h=!(Array.isArray(u)&&!u.includes("save")),f={};f.params={start:n,end:r},i!==null&&(f.params.cluster=i),o!==null&&(f.params.group=o),a!==null&&(f.params.strand=a),f.params.width=s,f.params.height=c,Object.keys(l).length&&(f.params.style=ge(l)),f.params.save_button=h;let d=Ke.from(t.data);for(let[k,C]of[[n,"start"],[r,"end"],[i,"cluster"],[o,"group"],[a,"strand"]])if(k!==null&&!d.has(k))throw new Error(`${C} column not found in data`);let m=d.names,p=d.get(n),g=d.get(r),y=d.filter(k=>p[k]!==null&&g[k]!==null),w=[];y.nrow<d.nrow&&w.push("Rows with NA values in 'start' or 'end' columns have been filtered out."),d=y,d.set("rowID",Array.from({length:d.nrow},(k,C)=>C+1));let b=d.copy();d.set("start",b.get(n).slice()),d.set("end",b.get(r).slice()),i!==null&&d.set(i,d.get(i).map(pe)),d=TE(d,a),f.data=d,o!==null&&(f.group=o),i!==null&&(f.cluster=i),f.graphContainer={direction:"column"},f.style=l,f.title={style:{width:"100%"}},f.legend={group:o,show:o!==null,width:s},f.legend.style={width:"100%",backgroundColor:l.backgroundColor??null},f.saveButton=h;let v=i===null?["cluster"]:[...new Set(d.get(i))],_=m.includes("BlastP")&&m.includes("protein_id"),S=new Map;for(let k of v){let C=i===null?d.copy():d.filter(M=>d.get(i)[M]===k);C.set("cluster",k);let F=typeof c=="string"&&/%$/.test(c)?tc(c,v.length):Number(Vn(c,c))/v.length,A=C.get("start"),E=C.get("end"),D=[...A,...E].filter(M=>M!==null),$=EE;if(_){let M=C.get("BlastP"),T=C.get("protein_id");$=M.some((N,L)=>N!==null&&T[L]!==null&&N===T[L])&&M.every(N=>N===null||N==="No Hit"||T.includes(N))?ME:CE}S.set(k,{clusterName:k,data:C,cluster:{},container:{height:F,width:s,style:{width:"100%",backgroundColor:l.backgroundColor??null}},genes:{group:o,show:!0},sequence:{show:!0},scale:{xMin:Math.min(...D),xMax:Math.max(...D)},transcript:{group:o,show:!1},labels:{group:o,show:!0},coordinates:{show:!1},scaleBar:{},footer:{},clusterLabel:{},clusterTitle:{},annotations:[],trackMouse:{show:!1},tooltip:{show:!0,formatter:$}})}return f.series=S,{x:f,width:s,height:c,spec:t,warnings:w}}var Yh={palettes:{okabeIto:["#E69F00","#56B4E9","#009E73","#F0E442","#0072B2","#D55E00","#CC79A7","#999999"],classic:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],vivid:["#4992ff","#7cffb2","#fddd60","#ff6e76","#58d9f9","#05c091","#ff8a45","#8d48e3","#dd79ff"],dark:["#dd6b66","#759aa0","#e69d87","#8dc1a9","#ea7e53","#eedd78","#73a373","#73b9bc","#7289ab","#91ca8c","#f49f42"],vintage:["#d87c7c","#919e8b","#d7ab82","#6e7074","#61a0a8","#efa18d","#787464","#cc7e63","#724e58","#4b565b"],infographic:["#C1232B","#27727B","#FCCE10","#E87C25","#B5C334","#FE8463","#9BCA63","#FAD860","#F3A43B","#60C0DD","#D7504B","#C6E579","#F4E001","#F0805A","#26C0C0"],greys:["#252525","#525252","#737373","#969696","#bdbdbd","#d9d9d9"],blues:["#08306b","#08519c","#2171b5","#4292c6","#6baed6","#9ecae1","#c6dbef"]},themes:{default:{},classic:{fontFamily:"sans-serif",textColor:"#6E7079",lineColor:"#6E7079",palette:"classic",title:{titleFont:{fontSize:"18px",fill:"#464646"},subtitleFont:{fontSize:"12px"}},clusterTitle:{titleFont:{fill:"#464646"}},clusterLabel:{fill:"#464646"},genes:{stroke:"none",corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"12px",leaderLine:{strokeWidth:1}},coordinates:{tickStyle:{lineLength:5}},scale:{textStyle:{fontSize:"12px"},tickStyle:{lineLength:5}},scaleBar:{labelStyle:{fontSize:"12px"}},legend:{corner_radius:3,legendTextOptions:{fill:"#464646"}},links:{normal_color:"#5470c6",inverted_color:"#ee6666",linkStyle:{fillOpacity:.6},colorBarOptions:{barOptions:{stroke:"none"},labelOptions:{fontSize:12},titleOptions:{fontSize:12}}},tooltip:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},trackMouse:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},toolbar:{color:"#999999",hoverColor:"#3E98C5",tooltipBackground:"#ffffff",tooltipColor:"#6d6e73",tooltipBorder:"1px solid #b7b9be",tooltipRadius:"4px",tooltipShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)",fontFamily:"sans-serif"}},dark:{fontFamily:"sans-serif",background:"#333333",textColor:"#eeeeee",lineColor:"#eeeeee",palette:"dark",title:{titleFont:{fontSize:"18px"},subtitleFont:{fontSize:"12px",fill:"#aaaaaa"}},clusterTitle:{subtitleFont:{fill:"#aaaaaa"}},clusterLabel:{subtitleFont:{fill:"#aaaaaa"}},genes:{stroke:"none",corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"12px",leaderLine:{strokeWidth:1}},coordinates:{tickStyle:{lineLength:5}},scale:{textStyle:{fontSize:"12px"},tickStyle:{lineLength:5}},scaleBar:{labelStyle:{fontSize:"12px"}},legend:{corner_radius:3},links:{normal_color:"#759aa0",inverted_color:"#dd6b66",low_color:"#333333",linkStyle:{fillOpacity:.6},colorBarOptions:{barOptions:{stroke:"none"},labelOptions:{fontSize:12},titleOptions:{fontSize:12}}},tooltip:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},trackMouse:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},toolbar:{color:"#999999",hoverColor:"#eeeeee",tooltipBackground:"#ffffff",tooltipColor:"#6d6e73",tooltipBorder:"1px solid #b7b9be",tooltipRadius:"4px",tooltipShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)",fontFamily:"sans-serif"}},vintage:{background:"#fef8ef",textColor:"#3f3a33",lineColor:"#787464",palette:"vintage",title:{subtitleFont:{fill:"#787464"}},clusterTitle:{subtitleFont:{fill:"#787464"}},clusterLabel:{subtitleFont:{fill:"#787464"}},sequence:{sequenceStyle:{stroke:"#c9c2b5"}},genes:{stroke:"none",corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"11px",leaderLine:{stroke:"#c9c2b5",strokeWidth:1}},legend:{corner_radius:3},links:{normal_color:"#61a0a8",inverted_color:"#d87c7c",low_color:"#fef8ef",linkStyle:{fillOpacity:.6},colorBarOptions:{barOptions:{stroke:"none"}}},tooltip:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},trackMouse:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},toolbar:{color:"#c9c2b5",hoverColor:"#d87c7c",tooltipBackground:"#ffffff",tooltipColor:"#6d6e73",tooltipBorder:"1px solid #b7b9be",tooltipRadius:"4px",tooltipShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)",fontFamily:"sans-serif"}},infographic:{fontFamily:"sans-serif",textColor:"#6E7079",lineColor:"#6E7079",palette:"infographic",title:{titleFont:{fontSize:"18px",fill:"#464646"},subtitleFont:{fontSize:"12px"}},clusterTitle:{titleFont:{fill:"#464646"}},clusterLabel:{fill:"#464646"},genes:{stroke:"none",corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"12px",leaderLine:{strokeWidth:1}},coordinates:{tickStyle:{lineLength:5}},scale:{textStyle:{fontSize:"12px"},tickStyle:{lineLength:5}},scaleBar:{labelStyle:{fontSize:"12px"}},legend:{corner_radius:3,legendTextOptions:{fill:"#464646"}},links:{normal_color:"#27727B",inverted_color:"#C1232B",linkStyle:{fillOpacity:.6},colorBarOptions:{barOptions:{stroke:"none"},labelOptions:{fontSize:12},titleOptions:{fontSize:12}}},tooltip:{backgroundColor:"rgba(50, 50, 50, 0.85)",color:"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px"},trackMouse:{backgroundColor:"rgba(50, 50, 50, 0.85)",color:"#ffffff",border:"none",borderRadius:"4px",fontSize:"12px"},toolbar:{color:"#C1232B",hoverColor:"#E87C25",tooltipBackground:"rgba(50, 50, 50, 0.85)",tooltipColor:"#ffffff",tooltipBorder:"none",tooltipRadius:"4px"}},publication:{fontFamily:"Arial, Helvetica, sans-serif",textColor:"black",lineColor:"black",palette:"okabeIto",title:{titleFont:{fontSize:"9.33px",fill:"black"},subtitleFont:{fontSize:"9.33px"}},clusterTitle:{titleFont:{fontSize:"9.33px"},subtitleFont:{fontSize:"9.33px"}},clusterFooter:{titleFont:{fontSize:"9.33px"},subtitleFont:{fontSize:"9.33px"}},clusterLabel:{fontSize:"9.33px",subtitleFont:{fontSize:"9.33px"}},genes:{stroke:"black",strokeWidth:.75,corner_radius:3},transcript:{styleExons:{strokeWidth:0,cornerRadius:3},styleUTRs:{cornerRadius:3,fontSize:"9.33px"},labelOptions:{fontSize:"9.33px"}},labels:{fontStyle:"italic",fontSize:"9.33px",leaderLine:{strokeWidth:.75}},coordinates:{textStyle:{fontSize:"9.33px"},tickStyle:{lineLength:4}},scale:{textStyle:{fontSize:"9.33px"},tickStyle:{lineLength:4}},scaleBar:{labelStyle:{fontSize:"9.33px"}},legend:{corner_radius:2,legendOptions:{stroke:"black",strokeWidth:.75},legendTextOptions:{fontSize:"9.33px"}},links:{normal_color:"#0072B2",inverted_color:"#D55E00",linkStyle:{fillOpacity:.6},labelStyle:{fontSize:"9.33px"},colorBarOptions:{barOptions:{stroke:"none"},labelOptions:{fontSize:9.33},titleOptions:{fontSize:9.33}}},annotations:{text:{style:{fontSize:"9.33px"}},textMarker:{textStyle:{fontSize:"9.33px"}},arc:{textStyle:{fontSize:"9.33px"}}},tooltip:{backgroundColor:"white",color:"black",border:"1px solid black",borderRadius:"0",boxShadow:"none",fontSize:"9.33px",padding:"8px"},trackMouse:{backgroundColor:"white",color:"black",border:"1px solid black",borderRadius:"0",boxShadow:"none",fontSize:"9.33px",padding:"8px"},toolbar:{color:"#999999",hoverColor:"black",tooltipBackground:"white",tooltipColor:"black",tooltipBorder:"1px solid black",tooltipRadius:"0",tooltipShadow:"none"}},bw:{fontFamily:"sans-serif",textColor:"#555555",lineColor:"#555555",pattern:{color:"black",background:"white",size:6,strokeWidth:1},title:{titleFont:{fontSize:"18px",fill:"black"},subtitleFont:{fontSize:"12px"}},clusterTitle:{titleFont:{fill:"black"}},clusterLabel:{fill:"black"},genes:{stroke:"black",strokeWidth:.75,corner_radius:3},transcript:{styleExons:{stroke:"black",strokeWidth:.75,cornerRadius:3},styleUTRs:{cornerRadius:3}},labels:{fontStyle:"normal",fontSize:"12px",leaderLine:{strokeWidth:1}},coordinates:{tickStyle:{lineLength:5}},scale:{textStyle:{fontSize:"12px"},tickStyle:{lineLength:5}},scaleBar:{labelStyle:{fontSize:"12px"}},legend:{corner_radius:3,legendTextOptions:{fill:"black"}},links:{normal_color:"#bdbdbd",inverted_color:"#525252",colorBarOptions:{barOptions:{stroke:"#555555"},labelOptions:{fontSize:12},titleOptions:{fontSize:12}}},tooltip:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},trackMouse:{backgroundColor:"#ffffff",color:"#6d6e73",border:"1px solid #b7b9be",borderRadius:"4px",fontSize:"12px",fontFamily:"sans-serif",padding:"8px",boxShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)"},toolbar:{color:"#bdbdbd",hoverColor:"black",tooltipBackground:"#ffffff",tooltipColor:"#6d6e73",tooltipBorder:"1px solid #b7b9be",tooltipRadius:"4px",tooltipShadow:"1px 2px 10px rgba(0, 0, 0, 0.2)",fontFamily:"sans-serif"}}}};function Ft(t,e){let n={};for(let[r,i]of Object.entries(t))e.includes(r)||(n[r]=i);return n}function ka(t,e){return Array.from({length:t},(r,i)=>i).sort((r,i)=>{for(let o of e){let a=o(r),s=o(i),c=a===null||Number.isNaN(a),l=s===null||Number.isNaN(s);if(c||l){if(c!==l)return c?1:-1;continue}if(a<s)return-1;if(a>s)return 1}return r-i})}function BE(t,e=!1,n=0){if(!t||t.nrow===0)return null;let r=t.get("start"),i=t.get("end"),o=r.map((d,m)=>Math.min(d,i[m])),a=r.map((d,m)=>Math.max(d,i[m])),s=typeof n=="string",c=s?Number(n.replace(/%$/,""))/100:n,l=(d,m)=>{let p=Math.min(a[d],a[m])-Math.max(o[d],o[m])+1;if(p<=0)return!1;let g=s?c*Math.min(a[d]-o[d]+1,a[m]-o[m]+1):c;return p>g},u=o.map((d,m)=>o.some((p,g)=>g!==m&&o[g]<=o[m]&&a[g]>=a[m]&&(o[g]<o[m]||a[g]>a[m]||g<m))),h=[],f=new Map;for(let d=0;d<o.length;d++){if(e&&!u[d]){h[d]=1;continue}let m=e?2:1;for(;(f.get(m)||[]).some(p=>l(d,p));)m++;h[d]=m,f.set(m,[...f.get(m)||[],d])}return t.set("geneTrack",h),t}var DE=["separateStrands","strandSpacing","preventGeneOverlap","overlapMin","overlapSpacing","clusters","style"];function rb(t,e){let n=e.separateStrands??null,r=e.preventGeneOverlap??null,i=e.overlapMin??null;n===!0&&r!==null&&r!==!1&&(t.warnings.push("Setting both 'separate_strands' and 'prevent_gene_overlap' to TRUE is not supported. Resetting to NULL."),n=null,r=null);let o=Ft(e,DE);for(let a of Vt(t,e.clusters)){let s=t.x.series.get(a);if(r!==null&&r!==!1){let l=s.data,u=l.get("start"),h=l.get("end"),f=ka(l.nrow,[d=>-Math.max(u[d],h[d]),d=>Math.abs(h[d]-u[d])]);s.data=BE(l.rows(f),r==="nested",i===null?0:i)}s.container.style=Qe(s.container.style,e.style??{});let c=Ce({separateStrands:n,strandSpacing:e.strandSpacing,preventGeneOverlap:r!==null?r!==!1:null,overlapSpacing:e.overlapSpacing,...o});s.cluster=Qe(s.cluster,c),s.container=Qe(s.container,Ce({...o}))}}var Uh={white:"#FFFFFF",aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",antiquewhite1:"#FFEFDB",antiquewhite2:"#EEDFCC",antiquewhite3:"#CDC0B0",antiquewhite4:"#8B8378",aquamarine:"#7FFFD4",aquamarine1:"#7FFFD4",aquamarine2:"#76EEC6",aquamarine3:"#66CDAA",aquamarine4:"#458B74",azure:"#F0FFFF",azure1:"#F0FFFF",azure2:"#E0EEEE",azure3:"#C1CDCD",azure4:"#838B8B",beige:"#F5F5DC",bisque:"#FFE4C4",bisque1:"#FFE4C4",bisque2:"#EED5B7",bisque3:"#CDB79E",bisque4:"#8B7D6B",black:"#000000",blanchedalmond:"#FFEBCD",blue:"#0000FF",blue1:"#0000FF",blue2:"#0000EE",blue3:"#0000CD",blue4:"#00008B",blueviolet:"#8A2BE2",brown:"#A52A2A",brown1:"#FF4040",brown2:"#EE3B3B",brown3:"#CD3333",brown4:"#8B2323",burlywood:"#DEB887",burlywood1:"#FFD39B",burlywood2:"#EEC591",burlywood3:"#CDAA7D",burlywood4:"#8B7355",cadetblue:"#5F9EA0",cadetblue1:"#98F5FF",cadetblue2:"#8EE5EE",cadetblue3:"#7AC5CD",cadetblue4:"#53868B",chartreuse:"#7FFF00",chartreuse1:"#7FFF00",chartreuse2:"#76EE00",chartreuse3:"#66CD00",chartreuse4:"#458B00",chocolate:"#D2691E",chocolate1:"#FF7F24",chocolate2:"#EE7621",chocolate3:"#CD661D",chocolate4:"#8B4513",coral:"#FF7F50",coral1:"#FF7256",coral2:"#EE6A50",coral3:"#CD5B45",coral4:"#8B3E2F",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",cornsilk1:"#FFF8DC",cornsilk2:"#EEE8CD",cornsilk3:"#CDC8B1",cornsilk4:"#8B8878",cyan:"#00FFFF",cyan1:"#00FFFF",cyan2:"#00EEEE",cyan3:"#00CDCD",cyan4:"#008B8B",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgoldenrod1:"#FFB90F",darkgoldenrod2:"#EEAD0E",darkgoldenrod3:"#CD950C",darkgoldenrod4:"#8B6508",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkolivegreen1:"#CAFF70",darkolivegreen2:"#BCEE68",darkolivegreen3:"#A2CD5A",darkolivegreen4:"#6E8B3D",darkorange:"#FF8C00",darkorange1:"#FF7F00",darkorange2:"#EE7600",darkorange3:"#CD6600",darkorange4:"#8B4500",darkorchid:"#9932CC",darkorchid1:"#BF3EFF",darkorchid2:"#B23AEE",darkorchid3:"#9A32CD",darkorchid4:"#68228B",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkseagreen1:"#C1FFC1",darkseagreen2:"#B4EEB4",darkseagreen3:"#9BCD9B",darkseagreen4:"#698B69",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategray1:"#97FFFF",darkslategray2:"#8DEEEE",darkslategray3:"#79CDCD",darkslategray4:"#528B8B",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deeppink1:"#FF1493",deeppink2:"#EE1289",deeppink3:"#CD1076",deeppink4:"#8B0A50",deepskyblue:"#00BFFF",deepskyblue1:"#00BFFF",deepskyblue2:"#00B2EE",deepskyblue3:"#009ACD",deepskyblue4:"#00688B",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",dodgerblue1:"#1E90FF",dodgerblue2:"#1C86EE",dodgerblue3:"#1874CD",dodgerblue4:"#104E8B",firebrick:"#B22222",firebrick1:"#FF3030",firebrick2:"#EE2C2C",firebrick3:"#CD2626",firebrick4:"#8B1A1A",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",gold1:"#FFD700",gold2:"#EEC900",gold3:"#CDAD00",gold4:"#8B7500",goldenrod:"#DAA520",goldenrod1:"#FFC125",goldenrod2:"#EEB422",goldenrod3:"#CD9B1D",goldenrod4:"#8B6914",gray:"#BEBEBE",gray0:"#000000",gray1:"#030303",gray2:"#050505",gray3:"#080808",gray4:"#0A0A0A",gray5:"#0D0D0D",gray6:"#0F0F0F",gray7:"#121212",gray8:"#141414",gray9:"#171717",gray10:"#1A1A1A",gray11:"#1C1C1C",gray12:"#1F1F1F",gray13:"#212121",gray14:"#242424",gray15:"#262626",gray16:"#292929",gray17:"#2B2B2B",gray18:"#2E2E2E",gray19:"#303030",gray20:"#333333",gray21:"#363636",gray22:"#383838",gray23:"#3B3B3B",gray24:"#3D3D3D",gray25:"#404040",gray26:"#424242",gray27:"#454545",gray28:"#474747",gray29:"#4A4A4A",gray30:"#4D4D4D",gray31:"#4F4F4F",gray32:"#525252",gray33:"#545454",gray34:"#575757",gray35:"#595959",gray36:"#5C5C5C",gray37:"#5E5E5E",gray38:"#616161",gray39:"#636363",gray40:"#666666",gray41:"#696969",gray42:"#6B6B6B",gray43:"#6E6E6E",gray44:"#707070",gray45:"#737373",gray46:"#757575",gray47:"#787878",gray48:"#7A7A7A",gray49:"#7D7D7D",gray50:"#7F7F7F",gray51:"#828282",gray52:"#858585",gray53:"#878787",gray54:"#8A8A8A",gray55:"#8C8C8C",gray56:"#8F8F8F",gray57:"#919191",gray58:"#949494",gray59:"#969696",gray60:"#999999",gray61:"#9C9C9C",gray62:"#9E9E9E",gray63:"#A1A1A1",gray64:"#A3A3A3",gray65:"#A6A6A6",gray66:"#A8A8A8",gray67:"#ABABAB",gray68:"#ADADAD",gray69:"#B0B0B0",gray70:"#B3B3B3",gray71:"#B5B5B5",gray72:"#B8B8B8",gray73:"#BABABA",gray74:"#BDBDBD",gray75:"#BFBFBF",gray76:"#C2C2C2",gray77:"#C4C4C4",gray78:"#C7C7C7",gray79:"#C9C9C9",gray80:"#CCCCCC",gray81:"#CFCFCF",gray82:"#D1D1D1",gray83:"#D4D4D4",gray84:"#D6D6D6",gray85:"#D9D9D9",gray86:"#DBDBDB",gray87:"#DEDEDE",gray88:"#E0E0E0",gray89:"#E3E3E3",gray90:"#E5E5E5",gray91:"#E8E8E8",gray92:"#EBEBEB",gray93:"#EDEDED",gray94:"#F0F0F0",gray95:"#F2F2F2",gray96:"#F5F5F5",gray97:"#F7F7F7",gray98:"#FAFAFA",gray99:"#FCFCFC",gray100:"#FFFFFF",green:"#00FF00",green1:"#00FF00",green2:"#00EE00",green3:"#00CD00",green4:"#008B00",greenyellow:"#ADFF2F",grey:"#BEBEBE",grey0:"#000000",grey1:"#030303",grey2:"#050505",grey3:"#080808",grey4:"#0A0A0A",grey5:"#0D0D0D",grey6:"#0F0F0F",grey7:"#121212",grey8:"#141414",grey9:"#171717",grey10:"#1A1A1A",grey11:"#1C1C1C",grey12:"#1F1F1F",grey13:"#212121",grey14:"#242424",grey15:"#262626",grey16:"#292929",grey17:"#2B2B2B",grey18:"#2E2E2E",grey19:"#303030",grey20:"#333333",grey21:"#363636",grey22:"#383838",grey23:"#3B3B3B",grey24:"#3D3D3D",grey25:"#404040",grey26:"#424242",grey27:"#454545",grey28:"#474747",grey29:"#4A4A4A",grey30:"#4D4D4D",grey31:"#4F4F4F",grey32:"#525252",grey33:"#545454",grey34:"#575757",grey35:"#595959",grey36:"#5C5C5C",grey37:"#5E5E5E",grey38:"#616161",grey39:"#636363",grey40:"#666666",grey41:"#696969",grey42:"#6B6B6B",grey43:"#6E6E6E",grey44:"#707070",grey45:"#737373",grey46:"#757575",grey47:"#787878",grey48:"#7A7A7A",grey49:"#7D7D7D",grey50:"#7F7F7F",grey51:"#828282",grey52:"#858585",grey53:"#878787",grey54:"#8A8A8A",grey55:"#8C8C8C",grey56:"#8F8F8F",grey57:"#919191",grey58:"#949494",grey59:"#969696",grey60:"#999999",grey61:"#9C9C9C",grey62:"#9E9E9E",grey63:"#A1A1A1",grey64:"#A3A3A3",grey65:"#A6A6A6",grey66:"#A8A8A8",grey67:"#ABABAB",grey68:"#ADADAD",grey69:"#B0B0B0",grey70:"#B3B3B3",grey71:"#B5B5B5",grey72:"#B8B8B8",grey73:"#BABABA",grey74:"#BDBDBD",grey75:"#BFBFBF",grey76:"#C2C2C2",grey77:"#C4C4C4",grey78:"#C7C7C7",grey79:"#C9C9C9",grey80:"#CCCCCC",grey81:"#CFCFCF",grey82:"#D1D1D1",grey83:"#D4D4D4",grey84:"#D6D6D6",grey85:"#D9D9D9",grey86:"#DBDBDB",grey87:"#DEDEDE",grey88:"#E0E0E0",grey89:"#E3E3E3",grey90:"#E5E5E5",grey91:"#E8E8E8",grey92:"#EBEBEB",grey93:"#EDEDED",grey94:"#F0F0F0",grey95:"#F2F2F2",grey96:"#F5F5F5",grey97:"#F7F7F7",grey98:"#FAFAFA",grey99:"#FCFCFC",grey100:"#FFFFFF",honeydew:"#F0FFF0",honeydew1:"#F0FFF0",honeydew2:"#E0EEE0",honeydew3:"#C1CDC1",honeydew4:"#838B83",hotpink:"#FF69B4",hotpink1:"#FF6EB4",hotpink2:"#EE6AA7",hotpink3:"#CD6090",hotpink4:"#8B3A62",indianred:"#CD5C5C",indianred1:"#FF6A6A",indianred2:"#EE6363",indianred3:"#CD5555",indianred4:"#8B3A3A",ivory:"#FFFFF0",ivory1:"#FFFFF0",ivory2:"#EEEEE0",ivory3:"#CDCDC1",ivory4:"#8B8B83",khaki:"#F0E68C",khaki1:"#FFF68F",khaki2:"#EEE685",khaki3:"#CDC673",khaki4:"#8B864E",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lavenderblush1:"#FFF0F5",lavenderblush2:"#EEE0E5",lavenderblush3:"#CDC1C5",lavenderblush4:"#8B8386",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lemonchiffon1:"#FFFACD",lemonchiffon2:"#EEE9BF",lemonchiffon3:"#CDC9A5",lemonchiffon4:"#8B8970",lightblue:"#ADD8E6",lightblue1:"#BFEFFF",lightblue2:"#B2DFEE",lightblue3:"#9AC0CD",lightblue4:"#68838B",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightcyan1:"#E0FFFF",lightcyan2:"#D1EEEE",lightcyan3:"#B4CDCD",lightcyan4:"#7A8B8B",lightgoldenrod:"#EEDD82",lightgoldenrod1:"#FFEC8B",lightgoldenrod2:"#EEDC82",lightgoldenrod3:"#CDBE70",lightgoldenrod4:"#8B814C",lightgoldenrodyellow:"#FAFAD2",lightgray:"#D3D3D3",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightpink1:"#FFAEB9",lightpink2:"#EEA2AD",lightpink3:"#CD8C95",lightpink4:"#8B5F65",lightsalmon:"#FFA07A",lightsalmon1:"#FFA07A",lightsalmon2:"#EE9572",lightsalmon3:"#CD8162",lightsalmon4:"#8B5742",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightskyblue1:"#B0E2FF",lightskyblue2:"#A4D3EE",lightskyblue3:"#8DB6CD",lightskyblue4:"#607B8B",lightslateblue:"#8470FF",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightsteelblue1:"#CAE1FF",lightsteelblue2:"#BCD2EE",lightsteelblue3:"#A2B5CD",lightsteelblue4:"#6E7B8B",lightyellow:"#FFFFE0",lightyellow1:"#FFFFE0",lightyellow2:"#EEEED1",lightyellow3:"#CDCDB4",lightyellow4:"#8B8B7A",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",magenta1:"#FF00FF",magenta2:"#EE00EE",magenta3:"#CD00CD",magenta4:"#8B008B",maroon:"#B03060",maroon1:"#FF34B3",maroon2:"#EE30A7",maroon3:"#CD2990",maroon4:"#8B1C62",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumorchid1:"#E066FF",mediumorchid2:"#D15FEE",mediumorchid3:"#B452CD",mediumorchid4:"#7A378B",mediumpurple:"#9370DB",mediumpurple1:"#AB82FF",mediumpurple2:"#9F79EE",mediumpurple3:"#8968CD",mediumpurple4:"#5D478B",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",mistyrose1:"#FFE4E1",mistyrose2:"#EED5D2",mistyrose3:"#CDB7B5",mistyrose4:"#8B7D7B",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",navajowhite1:"#FFDEAD",navajowhite2:"#EECFA1",navajowhite3:"#CDB38B",navajowhite4:"#8B795E",navy:"#000080",navyblue:"#000080",oldlace:"#FDF5E6",olivedrab:"#6B8E23",olivedrab1:"#C0FF3E",olivedrab2:"#B3EE3A",olivedrab3:"#9ACD32",olivedrab4:"#698B22",orange:"#FFA500",orange1:"#FFA500",orange2:"#EE9A00",orange3:"#CD8500",orange4:"#8B5A00",orangered:"#FF4500",orangered1:"#FF4500",orangered2:"#EE4000",orangered3:"#CD3700",orangered4:"#8B2500",orchid:"#DA70D6",orchid1:"#FF83FA",orchid2:"#EE7AE9",orchid3:"#CD69C9",orchid4:"#8B4789",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",palegreen1:"#9AFF9A",palegreen2:"#90EE90",palegreen3:"#7CCD7C",palegreen4:"#548B54",paleturquoise:"#AFEEEE",paleturquoise1:"#BBFFFF",paleturquoise2:"#AEEEEE",paleturquoise3:"#96CDCD",paleturquoise4:"#668B8B",palevioletred:"#DB7093",palevioletred1:"#FF82AB",palevioletred2:"#EE799F",palevioletred3:"#CD6889",palevioletred4:"#8B475D",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peachpuff1:"#FFDAB9",peachpuff2:"#EECBAD",peachpuff3:"#CDAF95",peachpuff4:"#8B7765",peru:"#CD853F",pink:"#FFC0CB",pink1:"#FFB5C5",pink2:"#EEA9B8",pink3:"#CD919E",pink4:"#8B636C",plum:"#DDA0DD",plum1:"#FFBBFF",plum2:"#EEAEEE",plum3:"#CD96CD",plum4:"#8B668B",powderblue:"#B0E0E6",purple:"#A020F0",purple1:"#9B30FF",purple2:"#912CEE",purple3:"#7D26CD",purple4:"#551A8B",red:"#FF0000",red1:"#FF0000",red2:"#EE0000",red3:"#CD0000",red4:"#8B0000",rosybrown:"#BC8F8F",rosybrown1:"#FFC1C1",rosybrown2:"#EEB4B4",rosybrown3:"#CD9B9B",rosybrown4:"#8B6969",royalblue:"#4169E1",royalblue1:"#4876FF",royalblue2:"#436EEE",royalblue3:"#3A5FCD",royalblue4:"#27408B",saddlebrown:"#8B4513",salmon:"#FA8072",salmon1:"#FF8C69",salmon2:"#EE8262",salmon3:"#CD7054",salmon4:"#8B4C39",sandybrown:"#F4A460",seagreen:"#2E8B57",seagreen1:"#54FF9F",seagreen2:"#4EEE94",seagreen3:"#43CD80",seagreen4:"#2E8B57",seashell:"#FFF5EE",seashell1:"#FFF5EE",seashell2:"#EEE5DE",seashell3:"#CDC5BF",seashell4:"#8B8682",sienna:"#A0522D",sienna1:"#FF8247",sienna2:"#EE7942",sienna3:"#CD6839",sienna4:"#8B4726",skyblue:"#87CEEB",skyblue1:"#87CEFF",skyblue2:"#7EC0EE",skyblue3:"#6CA6CD",skyblue4:"#4A708B",slateblue:"#6A5ACD",slateblue1:"#836FFF",slateblue2:"#7A67EE",slateblue3:"#6959CD",slateblue4:"#473C8B",slategray:"#708090",slategray1:"#C6E2FF",slategray2:"#B9D3EE",slategray3:"#9FB6CD",slategray4:"#6C7B8B",slategrey:"#708090",snow:"#FFFAFA",snow1:"#FFFAFA",snow2:"#EEE9E9",snow3:"#CDC9C9",snow4:"#8B8989",springgreen:"#00FF7F",springgreen1:"#00FF7F",springgreen2:"#00EE76",springgreen3:"#00CD66",springgreen4:"#008B45",steelblue:"#4682B4",steelblue1:"#63B8FF",steelblue2:"#5CACEE",steelblue3:"#4F94CD",steelblue4:"#36648B",tan:"#D2B48C",tan1:"#FFA54F",tan2:"#EE9A49",tan3:"#CD853F",tan4:"#8B5A2B",thistle:"#D8BFD8",thistle1:"#FFE1FF",thistle2:"#EED2EE",thistle3:"#CDB5CD",thistle4:"#8B7B8B",tomato:"#FF6347",tomato1:"#FF6347",tomato2:"#EE5C42",tomato3:"#CD4F39",tomato4:"#8B3626",turquoise:"#40E0D0",turquoise1:"#00F5FF",turquoise2:"#00E5EE",turquoise3:"#00C5CD",turquoise4:"#00868B",violet:"#EE82EE",violetred:"#D02090",violetred1:"#FF3E96",violetred2:"#EE3A8C",violetred3:"#CD3278",violetred4:"#8B2252",wheat:"#F5DEB3",wheat1:"#FFE7BA",wheat2:"#EED8AE",wheat3:"#CDBA96",wheat4:"#8B7E66",whitesmoke:"#F5F5F5",yellow:"#FFFF00",yellow1:"#FFFF00",yellow2:"#EEEE00",yellow3:"#CDCD00",yellow4:"#8B8B00",yellowgreen:"#9ACD32"},Hh=["#000000","#DF536B","#61D04F","#2297E6","#28E2E5","#CD0BBC","#F5C710","#9E9E9E"];function ee(t,e,n){let r=e[e.length-1],i=t;for(let o of e.slice(0,-1)){if(!Ht(i[o])){if(n==null)return;i[o]={}}i=i[o]}n==null?delete i[r]:i[r]=n}function En(t,e,n){for(let[r,i]of Object.entries(e)){let o=gt(i,n);o===void 0?delete t[r]:t[r]=o}return t}function Vr(t,e,n,r){Vt(t,e).forEach((i,o)=>{let a=t.x.series.get(i);a[n]=r(o,a)})}var $E=t=>Array.isArray(t)?t:[t];function jh(t,e,n){let r=t.x.data.names;if(!$E(e).every(i=>r.includes(i)))throw new Error(n)}var zE=["label","show","clusters","itemStyle","groupStyle","styleBy"];function ob(t,e){let n=e.label??null,r=e.show??!0;if(n===null&&t.x.group===void 0)throw new Error("Please define labels");n===null&&(n=t.x.group),jh(t,n,"label column not found in data");let i=Ft(e,zE);Vt(t,e.clusters).forEach((o,a)=>{let s=t.x.series.get(o),c=Ce({label:gt(n,a),show:gt(r,a),itemStyle:e.itemStyle,groupStyle:e.groupStyle,styleBy:e.styleBy,...i});s.labels=Qe(s.labels,c)})}function Xh(t,e){return t.colorScheme==null&&t.customColors==null&&(ee(t,["colorScheme"],e?.colorScheme),ee(t,["customColors"],e?.customColors)),t.pattern==null&&ee(t,["pattern"],e?.pattern),t}function Gh(t,e,n){e==null&&n==null||(ee(t.x,["legend","legendOptions","colorScheme"],e),ee(t.x,["legend","legendOptions","customColors"],n))}var NE=["group","marker","markerSize","show","colorScheme","customColors","clusters","itemStyle","groupStyle","styleBy","cornerRadius"];function ab(t,e){let n=e.group??null,r=e.show??!0;n===null&&t.x.group!==void 0&&(n=t.x.group),n!==null&&jh(t,n,"group column not found in data");let i=Ft(e,NE);Vt(t,e.clusters).forEach((o,a)=>{let s=t.x.series.get(o),c=Ce({group:gt(n,a),marker:gt(e.marker,a),cornerRadius:e.cornerRadius,markerSize:e.markerSize,show:gt(r,a),colorScheme:e.colorScheme,customColors:e.customColors,itemStyle:e.itemStyle,groupStyle:e.groupStyle,styleBy:e.styleBy,...i});s.genes=Xh(c,s.genes)}),e.clusters==null&&Gh(t,e.colorScheme,e.customColors)}function sb(t,e){let n=e.colorScheme??null,r=e.customColors??null;if(n!==null&&r!==null&&!Ht(r)){t.warnings.push("Both colorScheme and customColors are selected. Use a named list of customColors to set the colours of some groups, or choose only one.");return}ee(t.x,["legend","legendOptions","colorScheme"],n),ee(t.x,["legend","legendOptions","customColors"],r);for(let i of t.x.series.values())for(let o of["genes","transcript"])ee(i,[o,"colorScheme"],n),ee(i,[o,"customColors"],r)}var ib=["none","solid","horizontal","vertical","diagonal","antidiagonal","grid","crosshatch","dots","zigzag","checkerboard","rings","bricks","plus","wideStripes","inverseDots"];function Wh(t){if(t==null)return"#FFFFFF00";let e=String(t),n=o=>o.toString(16).toUpperCase().padStart(2,"0"),r=/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.exec(e);if(r){let o=r[1];return o.length<=4&&(o=o.split("").map(a=>a+a).join("")),o=o.toUpperCase(),o.length===8&&o.endsWith("FF")?`#${o.slice(0,6)}`:`#${o}`}let i=e.toLowerCase();return i==="transparent"?"#FFFFFF00":Uh[i]?Uh[i]:/^[1-9][0-9]*$/.test(e)?Hh[(Number(e)-1)%Hh.length]:t}function Vh(t){let n=(Ht(t.patterns)?Object.values(t.patterns):[t.patterns??[]].flat()).filter(o=>o!==null&&!ib.includes(o));if(n.length)throw new Error(`Unknown pattern(s): ${n.join(", ")}. Available patterns: ${ib.join(", ")}`);let r=o=>{if(o!=null)return Ht(o)?Object.fromEntries(Object.entries(o).map(([a,s])=>[a,Wh(s)])):Array.isArray(o)?o.map(Wh):Wh(o)},i={};for(let[o,a]of Object.entries({patterns:t.patterns,color:r(t.color),background:r(t.background),size:t.size,strokeWidth:t.strokeWidth}))a!=null&&(i[o]=a);return i}function lb(t,e){let n=Vh({patterns:e.patterns,color:_a(e,"color","black"),background:_a(e,"background","white"),size:_a(e,"size",6),strokeWidth:_a(e,"strokeWidth",1)});ee(t.x,["legend","legendOptions","pattern"],n);for(let r of t.x.series.values())r.genes.pattern=n,r.transcript.pattern=n}var RE=["group","show","backgroundColor","order","position","align","style","markerStyle","textStyle","cornerRadius","groupStyle"];function cb(t,e){let n=e.group??null,r=e.show??!0;if(r===!0&&n===null&&t.x.group===void 0)throw new Error("Please define a group");n===null&&t.x.group!==void 0&&(n=t.x.group),n!==null&&jh(t,n,"group column not found in data");let i={...e.style??{}};e.backgroundColor!=null&&i.backgroundColor==null&&(i.backgroundColor=e.backgroundColor);let o=Ce({group:n,show:r,order:e.order,position:e.position,align:e.align,cornerRadius:e.cornerRadius,style:i,legendOptions:e.markerStyle,legendTextOptions:e.textStyle,groupStyle:e.groupStyle,...Ft(e,RE)});t.x.legend=Qe(t.x.legend,o)}var PE=["show","clusters","y","lineStyle","markerStyle"];function Zh(t,e){if(!t||!e)return t;for(let n of["start","end"])typeof t[n]=="number"&&(t[n]-=e);return t}function ub(t,e){let n=e.show??!0,r=Ft(e,PE);Vr(t,e.clusters,"sequence",(i,o)=>{let a={show:gt(n,i),y:gt(e.y,i)??null,sequenceStyle:e.lineStyle??{},markerStyle:e.markerStyle??{}};return Zh(En(a,r,i),o.positionShift)})}var IE=["show","tickValuesTop","tickValuesBottom","ticksFormat","tickStyle","textStyle","clusters","groupStyle","styleBy"];function fb(t,e){let n=e.show??!0,r=e.styleBy??null;if(r===null&&t.x.group!==void 0&&(r=t.x.group),e.groupStyle!=null&&r===null)throw new Error("groupStyle needs a group in GC_chart() or a style_by column");let i=Ft(e,IE);Vr(t,e.clusters,"coordinates",o=>{let a={show:gt(n,o),ticksFormat:e.ticksFormat??null,tickStyle:e.tickStyle??{},textStyle:e.textStyle??{}};return e.groupStyle!=null&&(a.groupStyle=e.groupStyle,a.styleBy=r),En(a,i,o),ee(a,["tickValuesTop"],e.tickValuesTop),ee(a,["tickValuesBottom"],e.tickValuesBottom),a})}var LE=["formatter","show","clusters"];function hb(t,e){let n=e.formatter??"<b>Start:</b> {start}<br><b>End:</b> {end}",r=e.show??!0,i=Ft(e,LE);Vr(t,e.clusters,"tooltip",o=>En({formatter:n,show:gt(r,o)},i,o))}var db={scaleBar:{unit:"scaleBarUnit"},labels:{labelAdjustment:"labelAdjustmentOptions"},links:{labelAdjustment:"labelAdjustmentOptions"}},Kh={legend:{markerStyle:"legendOptions",textStyle:"legendTextOptions"},sequence:{lineStyle:"sequenceStyle"},scaleBar:{lineStyle:"scaleBarLineStyle",tickStyle:"scaleBarTickStyle",unit:"scaleBarUnit"},links:{show:"showLinks",labelAdjustment:"labelAdjustmentOptions"},labels:{labelAdjustment:"labelAdjustmentOptions"},scale:{autoBreaks:"scaleBreaks",autoBreakThreshold:"scaleBreakThreshold",breakPadding:"scaleBreakPadding"}};function nc(t,e){return!e||t===null||typeof t!="object"||Array.isArray(t)?t:Object.fromEntries(Object.entries(t).map(([n,r])=>[e[n]??n,r]))}var Qh={chart:"chartOptions",grid:"containerOptions",cluster:"clusterOptions",title:"titleOptions",clusterTitle:"clusterTitleOptions",clusterFooter:"footerOptions",clusterLabel:"clusterLabelOptions",sequence:"sequenceOptions",genes:"geneOptions",transcript:"transcriptOptions",labels:"labelsOptions",coordinates:"coordinatesOptions",scale:"scaleOptions",scaleBar:"scaleBarOptions",legend:"legendOptions",links:"linkOptions",tooltip:"tooltipOptions",trackMouse:"trackMouseOptions",toolbar:"toolbarOptions"},pb={text:"textAnnotationOptions",line:"lineAnnotationOptions",arrow:"arrowAnnotationOptions",textMarker:"textMarkerAnnotationOptions",symbol:"symbolAnnotationOptions",rectangle:"rectangleAnnotationOptions",promoter:"promoterAnnotationOptions",terminator:"terminatorAnnotationOptions",arc:"curveAnnotationOptions"},Aa=Yh.themes,Vi=Yh.palettes,qE=t=>t.replace(/_([a-z])/g,(e,n)=>n.toUpperCase());function rc(t){return Ht(t)?Object.fromEntries(Object.entries(t).map(([e,n])=>[qE(e),n])):t}function YE(t){let e={...t};for(let n of Object.keys(e))n==="annotations"?Ht(e[n])&&(e[n]=Object.fromEntries(Object.entries(e[n]).map(([r,i])=>[r,rc(i)]))):n in Qh&&(e[n]=rc(e[n]));return e}function td(t,e){let n={...t};for(let[r,i]of Object.entries(e||{}))i==null?delete n[r]:Ht(n[r])&&Ht(i)?n[r]=td(n[r],i):n[r]=i;return n}function gb(t,e){let n=typeof e=="string"?{base:e}:ge(e),r=n.base;delete n.base;let i;if(r==null)i=t.x.theme||{};else{if(!(r in Aa))throw new Error(`name must be one of: ${Object.keys(Aa).map(a=>`"${a}"`).join(", ")}`);i=YE(ge(Aa[r]))}for(let a of Object.keys(n))a in Kh&&(n[a]=nc(n[a],Kh[a]));let o=n.pattern===!1;o&&delete n.pattern,t.x.theme=td(i,n),o&&delete t.x.theme.pattern}function Jh(t){if(!Ht(t)&&!Array.isArray(t))return t;if(Array.isArray(t))return t.map(Jh).filter(n=>!((Ht(n)||Array.isArray(n))&&!Object.keys(n).length));let e={};for(let[n,r]of Object.entries(t)){let i=Jh(r);(Ht(i)||Array.isArray(i))&&Object.keys(i).length===0||(e[n]=i)}return e}function UE(t){let e=t.fontFamily!=null?{fontFamily:t.fontFamily}:{},n={...e,...t.textColor!=null?{fill:t.textColor}:{}},r={...e,...t.textColor!=null?{color:t.textColor}:{}},i=t.lineColor!=null?{stroke:t.lineColor}:{},o=t.palette??null;o!==null&&!(typeof o=="string"&&(o.startsWith("scheme")||o in Vi))&&(o=Array.isArray(o)?o:[o]);let a=o!==null?{colorScheme:o}:{},s=t.pattern!=null?{pattern:Vh(t.pattern)}:{},c=t.background!=null?{backgroundColor:t.background}:{};return Jh({chart:{style:c},title:{titleFont:n,subtitleFont:n},clusterTitle:{titleFont:n,subtitleFont:n},clusterFooter:{titleFont:n,subtitleFont:n},clusterLabel:{...n,subtitleFont:n},sequence:{sequenceStyle:i,markerStyle:i},genes:{...a,...s},transcript:{...a,...s,labelOptions:r,styleUTRs:t.background!=null?{fill:t.background}:{}},labels:{...n,leaderLine:i},coordinates:{textStyle:n,tickStyle:i},scale:{textStyle:n,tickStyle:i,lineStyle:i},scaleBar:{labelStyle:n,scaleBarLineStyle:i,scaleBarTickStyle:i},legend:{legendOptions:{...a,...s},legendTextOptions:n},links:{labelStyle:n,colorBarOptions:{labelOptions:n,titleOptions:n}},tooltip:r,trackMouse:r,toolbar:e,annotations:{text:{style:n},textMarker:{textStyle:n},arc:{textStyle:n}}})}function mb(t){if(!t||Object.keys(t).length===0)return;let e={};for(let i of Object.keys(t))i in Qh&&(e[i]=rc(t[i]));t.annotations!=null&&(e.annotations=Object.fromEntries(Object.entries(t.annotations).map(([i,o])=>[i,rc(o)])));let n=td(UE(t),e),r={};for(let[i,o]of Object.entries(Qh))i in n&&(r[o]=n[i]);for(let i of Object.keys(n.annotations||{}))i in pb&&(r[pb[i]]=n.annotations[i]);return t.textScale!=null&&(r.textScale=t.textScale),r}var HE=["translation","sequence"];function ic(t,e=[]){if(t instanceof Ke)return e;if(t instanceof Map)for(let n of t.values())ic(n,e);else if(Array.isArray(t))for(let n of t)ic(n,e);else if(t!==null&&typeof t=="object")for(let n of Object.values(t))ic(n,e);else typeof t=="string"&&e.push(t);return e}function WE(t){if(!t.data)return;let e={...t,data:void 0,series:new Map};for(let[o,a]of t.series)e.series.set(o,{...a,data:void 0});let n=ic(e),r=t.data.names,i=HE.filter(o=>r.includes(o)&&!n.some(a=>a.includes(o)));t.dataColumns=r.filter(o=>!i.includes(o)),delete t.data;for(let o of t.series.values())o.data instanceof Ke&&(o.data=o.data.select(o.data.names.filter(a=>!i.includes(a))))}function ed(t){if(t instanceof Map){for(let[e,n]of t)t.set(e,ed(n));return t}if(t===null||typeof t!="object"||t instanceof Ke)return t;for(let[e,n]of Object.entries(t))e==="colorScheme"&&typeof n=="string"&&Vi[n]?t[e]=Vi[n].slice():n!==null&&typeof n=="object"&&(t[e]=ed(n));return t}function yb(t){let e=t.x;e.size={width:t.width};let n=mb(e.theme);return n===void 0?delete e.theme:e.theme=n,ed(e),WE(e),e}var jE=["title","subtitle","style","subtitleFont","titleFont","show","height","align","spacing"];function bb(t,e){let n=e.show??!0;if(!n||e.title==null&&e.subtitle==null)return;let r=Ce({title:e.title,subtitle:e.subtitle,subtitleFont:e.subtitleFont,titleFont:e.titleFont,style:e.style,height:e.height,show:n,align:e.align,spacing:e.spacing,...Ft(e,jE)});t.x.title=Qe(t.x.title,r)}var XE=["title","subtitle","subtitleFont","titleFont","show","height","clusters","align","spacing"];function vb(t,e){let n=e.show??!0,r=Ft(e,XE);Vt(t,e.clusters).forEach((i,o)=>{let a=t.x.series.get(i),s={title:gt(e.title,o)??null,subtitle:gt(e.subtitle,o)??null,subtitleFont:e.subtitleFont??{},titleFont:e.titleFont??{},show:gt(n,o)};ee(s,["align"],gt(e.align,o)),ee(s,["spacing"],gt(e.spacing,o)),En(s,r,o),ee(a,["grid","margin","top"],gt(e.height,o)),a.clusterTitle=s})}var GE=["title","show","width","clusters","position","align","wrapLabel","wrapOptions","subtitle","subtitleFont","spacing"];function wb(t,e){let n=e.show??!0,r=Ft(e,GE),i=Vt(t,e.clusters),o=e.title??null;t.x.cluster!==void 0&&o===null&&(o=i),i.forEach((a,s)=>{let c=t.x.series.get(a),l=Sa({title:gt(o,s),show:gt(n,s),width:gt(e.width,s),wrapLabel:e.wrapLabel,wrapOptions:e.wrapOptions??{},position:gt(e.position,s),align:gt(e.align,s),subtitle:gt(e.subtitle,s),spacing:gt(e.spacing,s)});eb(e.subtitleFont)||(l.subtitleFont=e.subtitleFont),c.clusterLabel=En(l,r,s)})}var VE=["title","subtitle","show","clusters","subtitleFont","titleFont","align","spacing"];function xb(t,e){let n=e.show??!0,r=Ft(e,VE);Vr(t,e.clusters,"footer",i=>{let o={title:gt(e.title,i)??null,subtitle:gt(e.subtitle,i)??null,show:gt(n,i),subtitleFont:e.subtitleFont??{},titleFont:e.titleFont??{}};return ee(o,["align"],gt(e.align,i)),ee(o,["spacing"],gt(e.spacing,i)),En(o,r,i)})}function ZE(t,e){let n=10**e;return Math.round(t*n)/n}function Ea(t,e){let n=t.x,r=[...n.series.keys()],i=Vt(t,e.clusters),o=t.height,a=e.clusters!=null,s=e.margin==null?null:{...e.margin},c=e.width??null,l=e.height??null;if(c!==null&&!a&&(t.width=Vn(t.width,c)),(e.direction??"column")==="row"&&(n.graphContainer.direction="row",i.length>0)){let u=`${pe(ZE(100/i.length,3))}%`;for(let h of i){let f=n.series.get(h).container;f.style={...f.style||{},width:u},f.width=u}}if(s!==null&&!a){let u=s.top!=null?Vn(o,s.top):0,h=s.bottom!=null?Vn(o,s.bottom):0;if(typeof u!="number"||typeof h!="number")throw new Error("Use pixel values for the top and bottom margins when the chart height is a percentage.");if(delete s.top,delete s.bottom,n.legend.margin=Qe(n.legend.margin,s),n.title.margin=Qe(n.title.margin,s),Array.isArray(n.style)&&(n.style={}),u>0&&(n.style.paddingTop=`${pe(u)}px`),h>0&&(n.style.paddingBottom=`${pe(h)}px`),u>0||h>0){t.height="100%";for(let f of r){let d=n.series.get(f).container;if(typeof d.height=="string"&&/%$/.test(d.height))continue;let m=Number(Vn(d.height,d.height));d.height=m-(u+h)/r.length}}}i.forEach((u,h)=>{let f=n.series.get(u).container;if(s!==null&&(f.margin=Qe(f.margin,s)),c!==null&&a){let d=Vn(t.width,gt(c,h));f.style={...f.style||{},width:d},f.width=d}l!==null&&(f.height=a?Vn(o,gt(l,h)):tc(l,r.length))})}function _b(t){if(!/^\s*[0-9]*\.?[0-9]+\s*bp\s*$/.test(t))throw new Error('scale_break_padding must be a percentage, e.g. 1, or base pairs, e.g. "500bp"');return Number(t.replace(/\s*bp\s*$/,""))}function KE(t,e=0,n=0){let r=t.get("start").slice(),i=t.get("end").slice();r.forEach((f,d)=>{f>i[d]&&([r[d],i[d]]=[i[d],f])});let o=Math.max(...i)-Math.min(...r)+1,a=o*e/100,s=ka(r.length,[f=>r[f]]);r=s.map(f=>r[f]),i=s.map(f=>i[f]);let c=[],l={start:r[0],end:i[0]};for(let f=1;f<r.length;f++)r[f]<=l.end?l.end=Math.max(l.end,i[f]):(c.push(l),l={start:r[f],end:i[f]});c.push(l);let u=[];for(let f=0;f<c.length-1;f++){let d=c[f].end+1,m=c[f+1].start-1;m-d+1>=a&&u.push({start:d,end:m})}let h;return typeof n=="string"?h=_b(n):h=(o-u.reduce((d,m)=>d+(m.end-m.start+1),0))*n/100,u=u.map(f=>({start:f.start+h,end:f.end-h})),u.filter(f=>f.start<f.end)}function QE(t,e,n){if(Ht(t)){if(!("start"in t)||!("end"in t))throw new Error("A data frame of breaks needs a start and an end column");let r=[t.start].flat(),i=[t.end].flat(),o=r.map((a,s)=>s);if("cluster"in t){let a=[t.cluster].flat();o=o.filter(s=>pe(a[s])===e)}t=o.map(a=>({start:r[a],end:i[a]}))}return n?(t||[]).map(r=>({...r,start:r.start-n,end:r.end-n})):t}function nd(t,e){if(!e)return t;let n=i=>typeof i=="number"?i-e:i,r=i=>Array.isArray(i)?i.map(n):n(i);for(let i of["x","x1","x2"])i in t&&(t[i]=r(t[i]));return t.position!==null&&t.position!==void 0&&(t.type==="rectangle"?t.position=[t.position].flat(0).map(i=>Array.isArray(i)?i.map(o=>Array.isArray(o)?[n(o[0]),...o.slice(1)]:n(o)):[n(i)]):t.position=r(t.position)),t}var JE=["clusters","start","end","padding","hidden","breaks","tickValues","reverse","axisPosition","axisType","y","autoBreaks","autoBreakThreshold","breakPadding","ticksCount","ticksFormat","tickStyle","textStyle","lineStyle"];function Sb(t,e){let n=t.x,r=e.axisType??"position",i=e.hidden??!1,o=e.autoBreaks??!1,a=e.autoBreakThreshold??20,s=e.breakPadding??1,c=e.ticksFormat??null;typeof s=="string"&&_b(s);let l=null,u=null,h=Vt(t,e.clusters);if(r==="range"){c===null&&(c=".2s");for(let d of h){let m=n.series.get(d),p=m.data,g=Math.min(...p.get("start"),...p.get("end"));p.set("start",p.get("start").map(_=>_-g+1)),p.set("end",p.get("end").map(_=>_-g+1));let y=g-1;m.sequence=Zh(m.sequence,y),m.annotations.length>0&&(m.annotations=m.annotations.map(_=>nd(_,y))),m.positionShift=m.positionShift==null?y:m.positionShift+y;let w=n.data.get("rowID"),b=n.data.get("start"),v=n.data.get("end");p.get("rowID").forEach((_,S)=>{let k=w.indexOf(_);b[k]=p.get("start")[S],v[k]=p.get("end")[S]})}l=1,u=Math.max(...h.flatMap(d=>{let m=n.series.get(d).data;return[...m.get("start"),...m.get("end")]}))}let f=Ft(e,JE);h.forEach((d,m)=>{let p=n.series.get(d),g=r==="range"&&!i&&m<h.length-1?!0:i,y=o?KE(p.data,a,s):QE(e.breaks??[],d,p.positionShift),w={start:gt(e.start,m)??null,end:gt(e.end,m)??null,xMin:l,xMax:u,padding:e.padding??null,hidden:g,breaks:y,tickValues:e.tickValues??null,reverse:gt(e.reverse??!1,m),axisPosition:e.axisPosition??null,axisType:r,scale_breaks:o,scale_break_threshold:a,scale_break_padding:s,ticksCount:e.ticksCount??null,ticksFormat:c,y:e.y??null,tickStyle:e.tickStyle??{},textStyle:e.textStyle??{},lineStyle:e.lineStyle??{}};p.scale=En(w,f,m)}),Eb(t)}var tM=["show","clusters","lineStyle","tickStyle","labelStyle"];function kb(t,e){let n=e.show??!0,r=Ft(e,tM);Vr(t,e.clusters,"scaleBar",i=>En({show:gt(n,i),scaleBarLineStyle:e.lineStyle??{},scaleBarTickStyle:e.tickStyle??{},labelStyle:e.labelStyle??{}},r,i))}function eM(t,e,n,r){return t==="left"&&!r||t==="right"&&r?e:t==="right"&&!r||t==="left"&&r?n:t==="center"?(e+n)/2:e}function Ab(t,e){let n=t.x;if(n.cluster===void 0){t.warnings.push("Could not align selected gene. Please define cluster in the GC_chart function.");return}if(!n.data.has(e.idColumn)){t.warnings.push(`Column ${e.idColumn} not found in the data.`);return}let r=pe(e.id);if(!n.data.get(e.idColumn).some(i=>pe(i)===r)){t.warnings.push(`ID ${e.id} not found in the ${e.idColumn} column.`);return}t.align={idColumn:e.idColumn,id:e.id,align:e.align??"left"},n.align={id_column:e.idColumn,id:e.id,align:t.align.align},Eb(t)}function Eb(t){let e=t.align;if(!e)return;let n=t.x,r=n.data,i=n.cluster,o=r.get(i),a=[...new Set(o)],s=new Set(a.filter(w=>n.series.get(w)?.scale?.reverse===!0)),c=r.get("start").map((w,b)=>Math.min(w,r.get("end")[b])),l=r.get("start").map((w,b)=>Math.max(w,r.get("end")[b])),u=r.get(e.idColumn),h=pe(e.id),f=[];for(let w=0;w<r.nrow;w++)u[w]!==null&&pe(u[w])===h&&f.push(w);if(!f.length){t.warnings.push(`Selected gene coud not be aligned. Gene ${e.id} not found in the ${e.idColumn} column.`);return}if(new Set(f.map(w=>o[w])).size<f.length){t.warnings.push(`The selected gene ${e.id} appears multiple times in some clusters. Please make sure to use a unique gene id.`);return}let d=new Map;o.forEach((w,b)=>{let v=d.get(w)||{start:1/0,end:-1/0};d.set(w,{start:Math.min(v.start,c[b]),end:Math.max(v.end,l[b])})});let m=(w,b,v)=>(n.series.get(v)?.scale?.breaks||[]).reduce((_,S)=>_+Math.max(0,Math.min(S.end,b)-Math.max(S.start,w)),0),p=f.map(w=>{let b=o[w],v=s.has(b),_=eM(e.align,c[w],l[w],v),{start:S,end:k}=d.get(b),C=m(S,_,b),F=m(_,k,b),A=_-S-C,E=k-_-F;return{cl:b,isReversed:v,position:_,gapsBelow:C,gapsAbove:F,left:v?E:A,right:v?A:E}}),g=Math.max(...p.map(w=>w.left)),y=Math.max(...p.map(w=>w.right));for(let w of p){let b=n.series.get(w.cl);b.scale.start=w.position-(w.isReversed?y:g)-w.gapsBelow,b.scale.end=w.position+(w.isReversed?g:y)+w.gapsAbove}}var nM=["identity","similarity","none"],rM=["data","group","value1","value2","clusters","curve","measure","show","label","labelPosition","normalColor","invertedColor","lowColor","vmin","vmax","useGroupColors","colorBar","colorBarOptions","linkWidth","linkStyle","labelStyle"],iM={position:["bottomright","bottomleft","topright","topleft","legend"],orientation:["vertical","horizontal"],labels:["inline","below"],legendSide:["left","right"]};function oc(t,e,n){t.has(e)&&(t.columns=new Map([...t.columns].map(([r,i])=>[r===e?n:r,i])))}function Mb(t,e){let n=e.measure??"identity",r=e.labelPosition??"gene",i=e.colorBarOptions??{};if(!nM.includes(n))throw new Error("Invalid measure specified. Choose 'identity', 'similarity', or 'none'.");if(!["gene","link"].includes(r))throw new Error(`'label_position' must be one of "gene", "link".`);for(let[y,w]of Object.entries(iM)){let b=i[y];if(b!=null&&!w.includes(b))throw new Error(`'colorBarOptions$${y}' must be one of ${w.map(v=>`"${v}"`).join(", ")}.`)}let o=e.vmin??null,a=e.vmax??null;if((o!==null||a!==null)&&(o??0)>=(a??100))throw new Error("'vmin' must be smaller than 'vmax'.");let s=e.group??null,c=e.label??!0;s===null&&r==="gene"&&(c=!1);let l=Ke.from(e.data??[]);if(l.nrow===0)return;l.has("identity2")&&oc(l,"identity2","identity"),l.has("similarity2")&&oc(l,"similarity2","similarity"),oc(l,`${s??""}1`,"group1"),oc(l,`${s??""}2`,"group2");let u=["cluster1","group1","start1","end1","cluster2","group2","start2","end2"];n!=="none"&&u.push(n);let h=e.useGroupColors??!1,f=e.colorBar;if(h){let y=t.x.group!==void 0?t.x.group:s,w=l.get(`${y??""}2`);w&&l.set("groupColor",w.slice()),u.push("groupColor"),f=!1}let d=l.select(u.filter(y=>l.has(y))),m=d.get("start2")||[];d=d.rows(ka(d.nrow,[y=>m[y]]));let p=Ce({group:s,curve:e.curve,measure:n,showLinks:e.show??!0,label:c,labelPosition:r,normalColor:e.normalColor,invertedColor:e.invertedColor,lowColor:e.lowColor,vmin:o,vmax:a,useGroupColors:h,value1:e.value1,value2:e.value2,colorBar:f,colorBarOptions:i,linkWidth:e.linkWidth,linkStyle:e.linkStyle,labelStyle:e.labelStyle,...Ft(e,rM)}),g=t.x.links||[];d.set("linkID",Array.from({length:d.nrow},(y,w)=>`${g.length}-${w+1}`)),t.x.links=[...g,{data:d,options:p}]}var oM=["transcript","type","strand","group","selection","show","colorScheme","customColors","styleExons","styleIntrons","styleUTRs","itemStyleExons","itemStyleIntrons","itemStyleUTRs","groupStyleExons","groupStyleIntrons","groupStyleUTRs","styleBy","labelOptions"];function aM(t,e){return JSON.stringify(t)===JSON.stringify(e)}function sM(t,e){for(let a of["title","legend","theme","events","toolbar","zoom"])e.x[a]===void 0?delete t.x[a]:t.x[a]=e.x[a];t.width=e.width;let n=[...e.x.series.values()].map(a=>a.container.margin),i=n.length>0&&n.every(a=>aM(a,n[0]))?n[0]:{},o=Array.isArray(e.x.style)?{}:e.x.style||{};o.paddingTop!=null&&(i={...i||{},top:o.paddingTop}),o.paddingBottom!=null&&(i={...i||{},bottom:o.paddingBottom}),i&&Object.keys(i).length>0&&Ea(t,{margin:i}),e.x.graphContainer?.direction==="row"&&Ea(t,{direction:"row"})}function Cb(t,e){if(!t.x.transcript_called){let o=t.x.params,a={...t,x:t.x},s={start:o.start,end:o.end,cluster:e.transcript??"transcript"};o.group!==void 0&&(s.group=o.group),e.strand!=null&&(s.strand=e.strand);let c=ec({...t.spec,fields:s,width:o.width,height:o.height,style:o.style});c.x.saveButton=o.save_button,c.x.params.save_button=o.save_button,t.x=c.x,t.width=c.width,t.height=c.height,sM(t,a);let l=[...new Set(t.x.data.get("transcript").map(String))];for(let u of l){let h=t.x.series.get(u);h.genes={group:null,show:!1},h.sequence={show:!1},h.transcript={group:null,show:!0}}}let n=e.group??null,r=e.show??!0;if(n===null&&t.x.group!==void 0&&(n=t.x.group),n!==null&&![n].flat().every(o=>t.x.data.has(o)))throw new Error("group column not found in data");let i=Ft(e,oM);Vt(t,e.selection).forEach((o,a)=>{let s=t.x.series.get(o),c=Ce({group:gt(n,a),show:gt(r,a),colorScheme:e.colorScheme,customColors:e.customColors,styleExons:e.styleExons,styleIntrons:e.styleIntrons,styleUTRs:e.styleUTRs,itemStyleExons:e.itemStyleExons,itemStyleIntrons:e.itemStyleIntrons,itemStyleUTRs:e.itemStyleUTRs,groupStyleExons:e.groupStyleExons,groupStyleIntrons:e.groupStyleIntrons,groupStyleUTRs:e.groupStyleUTRs,styleBy:e.styleBy,labelOptions:e.labelOptions,...i});s.transcript=Xh(c,s.transcript)}),e.selection==null&&Gh(t,e.colorScheme,e.customColors),t.x.transcript_called=!0}var Fb=["text","textMarker","line","arrow","symbol","rectangle","promoter","terminator","arc"];function Bb(t,e){let n=e.type??"text";if(typeof n!="string"||!Fb.includes(n))throw new Error(`'type' must be one of ${Fb.map(i=>`"${i}"`).join(", ")}.`);let r=Ft(e,["type","clusters"]);for(let i of Vt(t,e.clusters)){let o=t.x.series.get(i),a=nd(Ce({type:n,...ge(r)}),o.positionShift);o.annotations=[...o.annotations||[],a]}}var lM=["genes","labels","coordinates"],cM=["legend","title"],uM=["scaleBar","scale"],Tb=["genes","labels","coordinates","clusterTitle","clusterFooter","clusterLabel","legend","title","scaleBar","scale"];function Ob(t,e,n,r){let i=Array.isArray(t)?t:[],o=i.find(e)||{},a=i.filter(c=>!e(c)),s=Gr(o,r);for(let[c,l]of Object.entries(n))s[c]=l;return[...a,s]}function Db(t,e){let n=e.component??"genes";if(!Tb.includes(n))throw new Error(`'component' must be one of ${Tb.join(", ")}`);let{rowID:r=null,cluster:i=null,part:o=null,end:a=null,group:s=null}=e,c=ge(Ft(e,["component","rowID","cluster","part","end","group"])),l=lM.includes(n),u=t.x;if(cM.includes(n)){if(n==="legend"){let y=u.legend?.group;if(s===null||y==null||!u.data.get(y)?.some(w=>String(w)===String(s)))throw new Error("'group' must identify one group in the legend.")}let p=n==="legend"?{group:s,part:o}:{part:o},g=y=>y.part===o&&(n==="title"||y.group===s);u[n].itemStyle=Ob(u[n].itemStyle,g,p,c);return}let h=n==="clusterFooter"?"footer":n,f,d,m;if(l){if(typeof r!="number"||!u.data.get("rowID").includes(r))throw new Error("'row_id' must identify one row in the chart's data.");f=a===null?{rowID:r}:{rowID:r,end:a},d=p=>Number(p.rowID)===Number(r)&&(p.end??null)===a,m=[...u.series.keys()]}else if(f=uM.includes(n)?{}:{part:o},d=p=>(p.part??null)===o,m=Vt(t,i),!m.length)throw new Error("'cluster' must be the name or number of a cluster of the chart.");for(let p of m){let g=u.series.get(p);l&&!g.data.get("rowID").includes(r)||((!g[h]||Array.isArray(g[h]))&&(g[h]={}),g[h].itemStyle=Ob(g[h].itemStyle,d,f,c))}}function $b(t,e){let n=e.show??!0,r=Ft(e,["show","clusters"]);Vt(t,e.clusters).forEach((i,o)=>{t.x.series.get(i).trackMouse={show:gt(n,o),...ge(r)}})}function zb(t,e){let n={click:e.click??!0,highlight:e.highlight??!1};e.dblclick&&(n.dblclick=!0),e.select&&(n.select=!0),e.drag&&(n.drag=!0),e.legendClick===!1&&(n.legendClick=!1),e.zoom&&(n.zoom=!0),e.rendered&&(n.rendered=!0),e.renderId!=null&&(n.renderId=e.renderId),t.x.events=n}var fM=["show","position","buttons","size","color","hoverColor","tooltipBackground","tooltipColor","tooltipBorder","tooltipRadius","tooltipShadow","fontFamily","icons"];function Nb(t,e){let n=Sa(Object.fromEntries(fM.map(r=>[r,ge(e[r])])));n.buttons!==void 0&&!Array.isArray(n.buttons)&&(n.buttons=[n.buttons]),t.x.toolbar=Gr(t.x.toolbar||{},n)}var hM=["show","range","mode","min","update","height","overview","color","style","windowStyle","handleStyle"];function Rb(t,e){let n=Sa(Object.fromEntries(hM.map(i=>[i,ge(e[i])])));n.show===void 0&&(n.show=!0);let r={...t.x.zoom||{}};n.mode!==void 0&&n.mode!==r.mode&&(delete r.range,delete r.min),n.range!==void 0&&(n.range=[n.range].flat().map(Number).sort((i,o)=>i-o)),t.x.zoom=Gr(r,n)}var dM={cluster:rb,labels:ob,genes:ab,color:sb,pattern:lb,legend:cb,sequence:ub,coordinates:fb,tooltip:hb,title:bb,clusterTitle:vb,clusterLabel:wb,clusterFooter:xb,grid:Ea,scale:Sb,scaleBar:kb,align:Ab,links:Mb,transcript:Cb,annotation:Bb,elementStyle:Db,theme:gb,zoom:Rb,toolbar:Nb,events:zb,trackMouse:$b},Pb=1,pM=new Set(["version","data","fields","width","height","style"]);function gM(t){return t==null?[]:Array.isArray(t)?t:[t]}function Ma(t){if(!t||typeof t!="object")throw new Error("compile() needs a spec object");typeof t.version=="number"&&t.version>Pb&&console.warn(`geneviewer: spec version ${t.version} is newer than this library's (${Pb}); drawing what it knows`),t=ge(t);let e=ec(t);for(let[n,r]of Object.entries(t)){if(pM.has(n))continue;let i=dM[n];if(i)for(let o of gM(r))i(e,nc(o,db[n]))}return ac(yb(e))}function ac(t){if(t instanceof Ke)return t.toJSON();if(t instanceof Map){let e={};for(let[n,r]of t)e[n]=ac(r);return e}if(Array.isArray(t))return t.map(ac);if(t!==null&&typeof t=="object"){let e={};for(let[n,r]of Object.entries(t))r!==void 0&&(e[n]=ac(r));return e}return t}var Ib=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);function rd(t,e){let n={...t};for(let[r,i]of Object.entries(e||{}))i!==void 0&&(n[r]=r!=="data"&&Ib(n[r])&&Ib(i)?rd(n[r],i):structuredClone(i));return n}var Lb=`.geneviewer-container {
|
|
28
28
|
display: flex;
|
|
29
29
|
flex-direction: column; /* or row, depending on the desired layout */
|
|
30
30
|
align-content: stretch;
|
|
@@ -411,7 +411,7 @@ var geneviewer=(()=>{var kc=Object.defineProperty;var x2=Object.getOwnPropertyDe
|
|
|
411
411
|
outline: 2px solid #4a90e2;
|
|
412
412
|
outline-offset: 1px;
|
|
413
413
|
}
|
|
414
|
-
`;function
|
|
415
|
-
`+new XMLSerializer().serializeToString(l)}function
|
|
416
|
-
`)};return{canUndo:function(){return t.length>0},canRedo:function(){return e.length>0},clear:function(){t=[],e=[]},record:function(r,i){if(r=r.filter(function(s){return s.key!==null&&!Fa(s.before,s.after)}),!!r.length){var o=t[t.length-1],a=performance.now();i&&o&&o.merge&&n(o.items)===n(r)&&a-o.time<1e3?(o.items.forEach(function(s,c){s.after=r[c].after}),o.time=a):(t.push({items:r,merge:i,time:a}),t.length>100&&t.shift()),e=[]}},next:function(r){var i=r?t:e;return i[i.length-1]},take:function(r){var i=(r?t:e).pop();return i.merge=!1,(r?e:t).push(i),i.items.map(function(o){return{key:o.key,position:r?o.before:o.after}})},expected:function(){var r={};return e.forEach(function(i){i.items.forEach(function(o){r[o.key]=o.before})}),t.forEach(function(i){i.items.forEach(function(o){r[o.key]=o.after})}),r}}};function Wb(t,e,n){if(typeof t=="string"){var r=document.querySelector(t);if(!r)throw new Error("No element matches "+t);t=r}var i=t;n=n||{},n.injectStyles!==!1&&Ib(i.ownerDocument);var o=!i.classList.contains("geneviewer");i.classList.add("geneviewer");var a,s,c,l,u,h,f,d,m,p,g={},y={},w=i.style.width,b=i.style.flex,v=!1,x=!1,S=i.id?i.id.replace(/[^A-Za-z0-9_-]/g,"_"):"geneviewer-chart-"+ ++vM,k={},C=!1,F=[],A=["genes","transcript","labels","links","legend","coordinates"],E=["genes","labels","coordinates","clusterTitle","clusterFooter","clusterLabel","legend","title","scaleBar","scale"],D=".gene, text.label, text.coordinate, [data-part], "+Yb,$=E.filter(function(_){return!["genes","coordinates"].includes(_)}),M="text.label, [data-part], "+Yb,T=[],B=null,N=function(_){T=_,B=_[_.length-1]??null},L=null,q=!0,U=function(_){var O=_.target;if(!O.classList||!O.classList.contains("geneviewer-svg-content")||typeof _.clientX!="number")return O;var z=document.elementsFromPoint(_.clientX,_.clientY).find(function(P){return P.closest&&P.closest('[data-component="links"]')&&i.contains(P)});return z||O},Z=function(_){var O=/^rgba?\((\d+), (\d+), (\d+)(?:, ([\d.]+))?\)$/.exec(_);return!O||O[4]!==void 0&&O[4]!=="1"?_:"#"+O.slice(1,4).map(function(z){return(+z).toString(16).padStart(2,"0")}).join("")},Q=function(_){var O=/^url\("?#([^")]+)"?\)$/.exec(_),z=O&&i.querySelector("#"+CSS.escape(O[1]));return!z||z.children.length!==1||z.firstElementChild.tagName!=="rect"?_:getComputedStyle(z.firstElementChild).fill},j=function(_,O){if(Ca(_))return Object.assign({moveX:0,moveY:0},O.__drawn__);O=O.closest(_==="genes"?".gene":_==="legend"?"[data-part]":"text")||O;var z=getComputedStyle(O),P={fill:Z(Q(z.fill)),opacity:+z.opacity};return _==="genes"||_==="legend"&&O.matches(".legend-marker")?Object.assign(P,{stroke:Z(z.stroke),strokeWidth:parseFloat(z.strokeWidth),strokeDasharray:z.strokeDasharray},O.__drawn__):(Object.assign(P,{text:O.__text__??O.textContent,fontSize:parseFloat(z.fontSize),fontWeight:z.fontWeight,fontStyle:z.fontStyle,fontFamily:z.fontFamily},O.__drawn__),_==="labels"&&["dx","dy"].forEach(function(I){var Y=O[I].baseVal;Y.numberOfItems&&(P[I]=Y.getItem(0).value)}),P)},H=function(_,O){var z=U(_),P=z.closest&&z.closest("[data-component]");if(!(!P||!i.contains(P))){for(var I=P.getAttribute("data-component"),Y=null,nt=z;A.includes(I)&&nt&&nt!==P.parentNode;nt=nt.parentNode)if(nt.__data__!==void 0){Y=nt.__data__;break}var vt=P.closest("[data-cluster]"),kt={component:I,cluster:vt?vt.getAttribute("data-cluster"):null,data:Y},It=z.closest("[data-part]");return It&&P.contains(It)&&(kt.part=It.getAttribute("data-part")),O&&W(kt)!==null&&(kt.style=j(I,Ca(I)?P:I==="legend"?It:nt)),kt}},W=function(_){return!_||!E.includes(_.component)?null:Ca(_.component)?[_.component,_.cluster].join("|"):_.component==="legend"?_.data!=null&&["label","marker"].includes(_.part)?JSON.stringify([_.component,_.data,_.part]):null:["genes","labels","coordinates"].includes(_.component)?!_.data||_.data.rowID==null?null:[_.component,_.cluster,_.data.rowID,_.data.end??""].join("|"):_.part?[_.component,_.cluster,_.part].join("|"):null},J=function(_){return JSON.stringify(_.map(W))},K=function(_,O){(k[_]||[]).slice().forEach(function(z){z({type:_,detail:O})}),i.dispatchEvent(new CustomEvent("geneviewer:"+_,{bubbles:!0,detail:O}))},ht=function(_,O){return W(_)!==null&&W(_)===W(O)},X=function(_){var O=W(_);return O!==null&&T.some(function(z){return W(z)===O})},tt=function(){K("select",B),K("selection",T)},it=function(_){var O=JSON.stringify(T.map(function(Y){return Y.style})),z={};i.querySelectorAll(D).forEach(function(Y){var nt=H({target:Y}),vt=W(nt);if(vt!==null){var kt=X(nt);Y.classList.toggle("geneviewer-selected",kt),y.select===!0&&(Y.setAttribute("tabindex","0"),Y.setAttribute("role","button"),Y.setAttribute("aria-pressed",String(kt)),Y.setAttribute("aria-label",nt.component+": "+(nt.component==="legend"?String(nt.data)+" "+nt.part:nt.data?.name??Y.__text__??Y.textContent))),kt&&!z[vt]&&(z[vt]=H({target:Y},!0))}});var P=T.map(function(Y){return z[W(Y)]}).filter(Boolean),I=P.length!==T.length;N(P),(I||_&&T.length&&JSON.stringify(T.map(function(Y){return Y.style}))!==O)&&tt()},G=function(_,O,z){var P=z==="replace"?[]:_.slice();return O.forEach(function(I){if(W(I)!==null){var Y=P.findIndex(function(nt){return W(nt)===W(I)});Y>=0&&z==="toggle"?P.splice(Y,1):Y<0&&P.push(I)}}),P},xt=function(_,O,z){var P=G(T,_,O);J(P)!==J(T)&&(N(P),it(),z||tt())},mt=function(_){xt(_?[_]:[],"replace")},Bt=function(_,O){return _===null||typeof _!="object"?_===O:O===null||typeof O!="object"?!1:Object.keys(_).every(function(z){return Bt(_[z],O[z])})},Dt=function(_){var O=[];i.querySelectorAll(D).forEach(function(P){var I=H({target:P});W(I)!==null&&O.push(I)});var z=[];return _.forEach(function(P){if(!P||typeof P!="object"||typeof P.component!="string")throw new Error("select() needs items with a component, as getSelection() gives them");O.forEach(function(I){var Y=I.component===P.component&&(P.cluster==null||String(P.cluster)===I.cluster)&&(P.part==null||P.part===I.part)&&(P.data===void 0||Bt(P.data,I.data));Y&&z.push(I)})}),z},at=0,_t=function(_){if(performance.now()<at){_.preventDefault(),_.stopPropagation();return}var O=H(_,!0);if(y.select===!0&&_.detail<2){var z=_.shiftKey||_.metaKey||_.ctrlKey;if(z)W(O)!==null&&xt([O],"toggle");else if(O||_.target.closest("svg")&&!_.target.closest(".geneviewer-toolbar")||_.target===i){var P=T.length===1&&ht(B,O);mt(P?null:O??null)}}!O||O.component==="legend"&&y.legendClick===!1||y.click===!0&&K("click",O)},ge=function(_){if(!(performance.now()<at)){var O=H(_,!0);O&&(y.select===!0&&mt(O),K("dblclick",O))}},ne=function(_,O){return Ca(O)?_.closest('[data-component="'+O+'"]'):_.closest(O==="legend"?"[data-part]":"text")},Gn=function(_,O){if(_.closest(".geneviewer-move-overlay")||!i.clientWidth||!i.clientHeight)return null;var z=_.parentNode,P=z.getScreenCTM();if(!P)return null;var I="http://www.w3.org/2000/svg",Y=i.querySelector(".geneviewer-move-overlay");Y||(Y=document.createElementNS(I,"svg"),Y.setAttribute("class","geneviewer-move-overlay"),Y.setAttribute("width",i.clientWidth),Y.setAttribute("height",i.clientHeight),Y.setAttribute("viewBox",`0 0 ${i.clientWidth} ${i.clientHeight}`),Object.assign(Y.style,{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",pointerEvents:"none",zIndex:"4"}),i.appendChild(Y));var nt={parent:z,next:_.nextSibling};O.component==="legend"&&(_.__home__=z.closest(".legend"));var vt=getComputedStyle(_);["fill","fill-opacity","stroke","stroke-width","stroke-opacity","font-family","font-size","font-weight","font-style","text-anchor","dominant-baseline"].forEach(function($t){_.style.getPropertyValue($t)||_.style.setProperty($t,vt.getPropertyValue($t))});var kt=document.createElementNS(I,"g"),It=Y.getScreenCTM().inverse().multiply(P);return kt.setAttribute("transform",`matrix(${It.a} ${It.b} ${It.c} ${It.d} ${It.e} ${It.f})`),Ca(O.component)||kt.setAttribute("data-component",O.component),O.cluster!=null&&kt.setAttribute("data-cluster",O.cluster),Y.appendChild(kt),kt.appendChild(_),_.style.pointerEvents="visiblePainted",nt.frame=kt,Vr(),nt},Vr=function(){i.querySelectorAll(".geneviewer-move-overlay [data-part]").forEach(function(_){_.__home__&&_.parentNode.classList.toggle("unselected",_.__home__.classList.contains("unselected"))})},Oa=function(){i.querySelectorAll(M).forEach(function(_){if(_.__drawn__?.moveX||_.__drawn__?.moveY){var O=H({target:_});O&&$.includes(O.component)&&Gn(_,O)}})},Zi=function(_,O){K("dragmove",Object.assign({},_,{position:O}))},At=null,Ki=null,sc=function(){var _=Ki;return Ki=null,_&&La(_),!!_},id=function(_){if(At){var O=At;if(At=null,O.stopListening(),i.classList.remove("geneviewer-dragging"),!O.moved){sc();return}if(at=performance.now()+350,!_){O.items.forEach(function(I){if(I.node.setAttribute("transform",I.transform),I.placement){var Y=I.placement;Y.parent.insertBefore(I.node,Y.next&&Y.next.parentNode===Y.parent?Y.next:null);var nt=Y.frame.parentNode;Y.frame.remove(),nt.firstChild||nt.remove()}Zi(I.detail,{moveX:I.moveX,moveY:I.moveY})}),N(O.selection),it(),sc();return}var z=O.items.map(function(I){I.node.__drawn__=Object.assign({},I.node.__drawn__,I.position);var Y=H({target:I.node},!0);return Y.position=I.position,Y.action="drag",Y});if(sc()){var P=un();O.items.forEach(function(I){var Y=P[W(I.detail)];Y&&za(Y,I.position)})}$e.record(O.items.map(function(I){return{key:W(I.detail),before:{moveX:I.moveX,moveY:I.moveY},after:I.position}}),!1),Qi(),cc(z,!1)}},Vn=function(){id(!1)},jb=function(_){_.key==="Escape"&&At&&(_.preventDefault(),Vn())},Xb=function(_){At&&_.pointerId===At.id&&id(!0)},Gb=function(_){var O=At;!O||_.pointerId!==O.id||!O.moved&&Math.hypot(_.clientX-O.x,_.clientY-O.y)<4||(O.moved||(O.moved=!0,O.items.forEach(function(z){z.placement=Gn(z.node,z.detail)}),y.select===!0&&O.items.length===1&&!X(O.items[0].detail)&&(N([O.items[0].detail]),it()),i.classList.add("geneviewer-dragging")),_.preventDefault(),O.items.forEach(function(z){var P=new DOMPoint(_.clientX,_.clientY).matrixTransform(z.inverse);z.position={moveX:Math.round(z.moveX+P.x-z.start.x),moveY:Math.round(z.moveY+P.y-z.start.y)};var I=z.position.moveX-z.moveX,Y=z.position.moveY-z.moveY;z.node.setAttribute("transform",`translate(${I}, ${Y}) ${z.transform}`),Zi(z.detail,z.position)}))},od=function(_,O,z){var P=_.parentNode.getScreenCTM();if(!P)return null;var I=P.inverse();return{node:_,detail:O,inverse:I,start:new DOMPoint(z.clientX,z.clientY).matrixTransform(I),transform:_.getAttribute("transform")||"",moveX:O.style?.moveX??Qe(_).moveX,moveY:O.style?.moveY??Qe(_).moveY}},lc=function(_){if(!(_.button!==0||_.isPrimary===!1)){var O=H(_,!0);if(!O||!$.includes(O.component)||W(O)===null){Vb(_,O);return}if(y.drag===!0){var z=ne(_.target,O.component);if(z){var P=od(z,O,_);if(P){var I=[P];if(y.select===!0&&X(O)&&T.length>1){var Y=un();T.forEach(function(nt){var vt=W(nt);if(!(vt===W(O)||!Y[vt])){var kt=od(Y[vt],H({target:Y[vt]},!0),_);kt&&I.push(kt)}})}At={id:_.pointerId,items:I,selection:T.slice(),x:_.clientX,y:_.clientY,moved:!1,stopListening:rd({pointermove:Gb,pointerup:Xb,pointercancel:Vn,blur:Vn,keydown:jb})}}}}}},Tt=null,Vb=function(_,O){y.select!==!0||W(O)!==null||_.target.closest(".geneviewer-toolbar")||!i.contains(_.target)||(Tt={id:_.pointerId,x:_.clientX,y:_.clientY,node:null,mode:_.shiftKey||_.metaKey||_.ctrlKey?"add":"replace",selection:T.slice(),stopListening:rd({pointermove:Kb,pointerup:Qb,pointercancel:Da,blur:Da,keydown:Jb})})},Zb=function(_){var O={};return i.querySelectorAll(D).forEach(function(z){var P=H({target:z}),I=W(P);if(!(I===null||O[I])){var Y=z.getBoundingClientRect();(Y.width||Y.height)&&Y.left>=_.left&&Y.right<=_.right&&Y.top>=_.top&&Y.bottom<=_.bottom&&(O[I]=H({target:z},!0))}}),Object.values(O)},Kb=function(_){if(!(!Tt||_.pointerId!==Tt.id)&&!(!Tt.node&&Math.hypot(_.clientX-Tt.x,_.clientY-Tt.y)<4)){_.preventDefault();var O={left:Math.min(Tt.x,_.clientX),right:Math.max(Tt.x,_.clientX),top:Math.min(Tt.y,_.clientY),bottom:Math.max(Tt.y,_.clientY)};Tt.node||(Tt.node=document.createElement("div"),Tt.node.className="geneviewer-marquee",i.appendChild(Tt.node));var z=i.getBoundingClientRect(),P=z.width/i.offsetWidth||1,I=z.height/i.offsetHeight||1;Object.assign(Tt.node.style,{left:(O.left-z.left)/P+"px",top:(O.top-z.top)/I+"px",width:(O.right-O.left)/P+"px",height:(O.bottom-O.top)/I+"px"}),N(G(Tt.selection,Zb(O),Tt.mode)),it()}},Ba=function(_){if(Tt){var O=Tt;if(Tt=null,O.stopListening(),!!O.node){if(O.node.remove(),at=performance.now()+350,!_){N(O.selection),it();return}J(T)!==J(O.selection)&&tt()}}},Qb=function(_){Tt&&_.pointerId===Tt.id&&Ba(!0)},Da=function(){Ba(!1)},Jb=function(_){_.key==="Escape"&&Tt&&(_.preventDefault(),Da())},$e=SM(),Zr={},$a={},Kr={},xr=null,ie=null,Qe=function(_){return{moveX:_.__drawn__?.moveX??0,moveY:_.__drawn__?.moveY??0}},un=function(){var _={};return i.querySelectorAll(D).forEach(function(O){var z=H({target:O}),P=z&&$.includes(z.component)?W(z):null;P===null||_[P]||(_[P]=ne(O,z.component))}),_},za=function(_,O){var z=Qe(_),P=O.moveX-z.moveX,I=O.moveY-z.moveY;if(P||I){var Y=H({target:_});Y&&Gn(_,Y),_.setAttribute("transform",`translate(${P}, ${I}) ${_.getAttribute("transform")||""}`.trim())}_.__drawn__=Object.assign({},_.__drawn__,{moveX:O.moveX,moveY:O.moveY})},ad=function(_,O){var z=H({target:_},!0);return z?(z.position=Qe(_),z.action=O,z):null},cc=function(_,O){_.forEach(function(z){var P=W(z);n.server?Zr[P]=z.position:$a[P]=z.position}),_.length&&(y.select===!0&&(O&&_.length===1&&N([_[0]]),it(),tt()),_.length===1?K("drag",_[0]):K("moves",{action:_[0].action,moves:_}))},sd=function(_){return Object.keys(_).filter(function(O){return Kr[O]&&!Fa(Qe(_[O]),Kr[O])})},Qi=function(_){if(!(!ie||y.drag!==!0)){var O=sd(_||un()).length>0;ie.select(".geneviewer-history").property("hidden",!$e.canUndo()&&!$e.canRedo()&&!O),ie.select(".geneviewer-undo").property("disabled",!$e.canUndo()),ie.select(".geneviewer-redo").property("disabled",!$e.canRedo()),ie.select(".geneviewer-reset").property("disabled",!O)}},ld=function(_,O,z){var P=un(),I=[];_.forEach(function(Y){var nt=P[Y.key];if(nt){za(nt,Y.position);var vt=ad(nt,O);vt&&I.push(vt)}}),clearTimeout(xr),xr=null,Qi(P),cc(I,z)},Ji=function(_){var O=$e.next(_);if(!(!O||At)){var z=un(),P=O.items.every(function(I){return z[I.key]&&Fa(Qe(z[I.key]),_?I.after:I.before)});if(!P)return $e.clear(),Qi(z);ld($e.take(_),_?"undo":"redo",O.items.length===1)}},t2=function(){if(!At){var _=un(),O=sd(_).map(function(z){return{key:z,before:Qe(_[z]),after:Kr[z]}});O.length&&($e.record(O,!1),ld(O.map(function(z){return{key:z.key,position:z.after}}),"reset",!1))}},cd=function(){var _=un();if(Object.keys(_).forEach(function(P){Kr[P]||(Kr[P]=Qe(_[P]))}),Object.keys(Zr).forEach(function(P){(!_[P]||Fa(Qe(_[P]),Zr[P]))&&delete Zr[P]}),xr===null&&!Object.keys(Zr).length){var O=$e.expected(),z=Object.keys(O).some(function(P){return!_[P]||!Fa(Qe(_[P]),O[P])});z&&$e.clear()}Qi(_)},e2=function(){var _=un();Object.keys($a).forEach(function(O){_[O]&&za(_[O],$a[O])})},n2=function(_,O){var z=un(),P=T.map(function(I){return W(I)}).filter(function(I){return I!==null&&z[I]}).map(function(I){var Y=Qe(z[I]),nt={moveX:Math.round(Y.moveX+_),moveY:Math.round(Y.moveY+O)};return za(z[I],nt),Zi(H({target:z[I]}),nt),{key:I,before:Y,after:nt}});return P.length?($e.record(P,!0),Qi(),clearTimeout(xr),xr=setTimeout(function(){xr=null;var I=un();cc(P.map(function(Y){return I[Y.key]&&ad(I[Y.key],"nudge")}).filter(Boolean),!1)},300),!0):!1},ud=function(_){if(!(y.drag!==!0||!i.isConnected)){var O=_.key.toLowerCase();if((_.metaKey||_.ctrlKey)&&(O==="z"||O==="y")){_.preventDefault(),Ji(!(O==="y"||_.shiftKey));return}var z={ArrowLeft:[-1,0],ArrowRight:[1,0],ArrowUp:[0,-1],ArrowDown:[0,1]}[_.key];if(!(!z||_.metaKey||_.ctrlKey||y.select!==!0||At)&&!(_.target!==document.body&&!i.contains(_.target))){var P=_.shiftKey?10:1;n2(z[0]*P,z[1]*P)&&_.preventDefault()}}},Na=function(){Ta=ud},fd=function(_){if(performance.now()<at&&!_.target.closest(".geneviewer-toolbar")){at=0,_.preventDefault(),_.stopPropagation();return}var O=_.target.closest&&_.target.closest(".geneviewer-move-overlay [data-part]")?.__home__,z=y.select===!0||y.dblclick===!0||y.click===!0&&y.legendClick!==!1;O&&!z&&O.isConnected&&(_.stopPropagation(),O.dispatchEvent(new MouseEvent("click",{bubbles:!1,detail:_.detail})),Vr())};i.addEventListener("click",fd,!0),i.addEventListener("click",Vr),i.addEventListener("pointerdown",Na,!0),i.addEventListener("focusin",Na);var r2=function(_){return/(^|\s)fa-/.test(_)?_:"fa-solid fa-"+_},i2=function(){ie=null;var _=ut({show:"hover",position:"topright",buttons:xM,icons:{}},"toolbarOptions",p,d),O=[].concat(_.buttons),z=function(St){return O.includes(St)},P=y.drag===!0&&["undo","redo","reset"].some(z),I=m&&z("save"),Y=!!Rt&&z("zoom");if(!(_.show==="never"||!P&&!I&&!Y)){var nt=function(St){return _.icons[St]!=null?r2(_.icons[St]):null};ie=R.select(i).append("div").attr("class",`geneviewer-toolbar geneviewer-toolbar-${_.position}`+(_.show==="always"?" geneviewer-toolbar-always":"")).attr("id",`geneviewer-toolbar-${S}`).attr("role","toolbar").attr("aria-label","Chart");var vt=function(St){return typeof St=="number"?St+"px":St};[["color","--gv-toolbar-color"],["hoverColor","--gv-toolbar-hover"],["tooltipBackground","--gv-toolbar-tip-background"],["tooltipColor","--gv-toolbar-tip-color"],["tooltipBorder","--gv-toolbar-tip-border"],["tooltipRadius","--gv-toolbar-tip-radius"],["tooltipShadow","--gv-toolbar-tip-shadow"],["fontFamily","--gv-toolbar-font"],["size","--gv-toolbar-size"]].forEach(function(St){_[St[0]]!=null&&ie.style(St[1],vt(_[St[0]]))});var kt=function(St,Xt){var oe=St.append("button").attr("type","button").attr("class","geneviewer-toolbar-button geneviewer-"+Xt.name).attr("aria-label",Xt.label).attr("aria-keyshortcuts",Xt.shortcuts).property("disabled",!!Xt.disabled).on("click",Xt.onClick);nt(Xt.name)?oe.append("i").attr("class",nt(Xt.name)).attr("aria-hidden","true"):ac(oe.append("span").attr("class","geneviewer-icon").attr("aria-hidden","true"),Xt.icon);var Mn=oe.append("span").attr("class","geneviewer-toolbar-tip").attr("aria-hidden","true");Mn.append("span").text(Xt.label),Xt.kbd&&Mn.append("kbd").text(Xt.kbd)};if(P){var It=ie.append("div").attr("class","geneviewer-history").attr("role","group").attr("aria-label","Positions").property("hidden",!0);[{name:"undo",label:"Undo",icon:"rotate-left",kbd:qb?"⌘Z":"Ctrl+Z",shortcuts:"Control+Z Meta+Z",onClick:function(){Ji(!0)}},{name:"redo",label:"Redo",icon:"rotate-right",kbd:qb?"⇧⌘Z":"Ctrl+Y",shortcuts:"Control+Shift+Z Meta+Shift+Z Control+Y",onClick:function(){Ji(!1)}},{name:"reset",label:"Reset positions",icon:"house",kbd:null,shortcuts:null,onClick:t2}].filter(function(St){return z(St.name)}).forEach(function(St){kt(It,Object.assign({disabled:!0},St))}),(I||Y)&&It.append("span").attr("class","geneviewer-toolbar-divider")}if(Y){var $t=ie.append("div").attr("class","geneviewer-history geneviewer-zoom-buttons").attr("role","group").attr("aria-label","Zoom").property("hidden",Ut===null);kt($t,{name:"zoom",label:"Reset zoom",icon:"magnifying-glass-minus",kbd:null,shortcuts:null,onClick:bd}),I&&$t.append("span").attr("class","geneviewer-toolbar-divider")}I&&Lb(S,i,ie.node(),nt("save"),n.saveAs)}},Zn=null,hd=function(_){Zn!==_&&(Zn&&Zn.classList.remove("geneviewer-hover"),Zn=_,Zn&&Zn.classList.add("geneviewer-hover"),i.classList.toggle("geneviewer-hover-below",!!Zn))},uc=function(_){var O=U(_);hd(O===_.target?null:O.closest("[data-component]"))},fc=function(){hd(null)},hc=function(_){if(_.key==="Escape"){At?Vn():Tt?Da():mt(null);return}_.key==="Enter"&&y.dblclick===!0&&_.target.matches(D)&&(_.preventDefault(),ge(_))},dd=function(){Vn();var _=y.click===!0;i.removeEventListener("click",_t),i.removeEventListener("dblclick",ge),i.removeEventListener("keydown",hc),i.removeEventListener("pointerdown",lc),Ba(!1),i.removeEventListener("mousemove",uc),i.removeEventListener("mouseleave",fc),Zn=null,i.classList.remove("geneviewer-hover-below");var O=(_||y.select===!0||y.dblclick===!0)&&y.highlight===!0;O&&(i.addEventListener("mousemove",uc),i.addEventListener("mouseleave",fc)),(_||y.select===!0)&&i.addEventListener("click",_t),y.dblclick===!0&&i.addEventListener("dblclick",ge),(y.select===!0||y.drag===!0)&&i.addEventListener("keydown",hc),(y.drag===!0||y.select===!0)&&i.addEventListener("pointerdown",lc),i.classList.toggle("geneviewer-draggable",y.drag===!0),y.select!==!0&&T.length&&(N([]),tt()),i.classList.toggle("geneviewer-selectable",y.select===!0),i.classList.toggle("geneviewer-highlight",O),it(!0)},Rt=null,Ut=null,pd=null,gd=null,Je=[],tn=[0,1],Ra=null,en=null,Pt=null,Kn=null,to=null,ze=function(){return Rt?.mode==="absolute"?"absolute":"relative"},o2=function(){var _=Rt?.range;return!Array.isArray(_)||_.length!==2?null:(_=_.slice().sort(function(O,z){return O-z}),ze()==="relative"&&_[0]<=0&&_[1]>=1?null:_)},md=function(_){return(_-tn[0])/(tn[1]-tn[0])},a2=function(_){return tn[0]+_*(tn[1]-tn[0])},dc=function(){return Ut?ze()==="absolute"?Ut.map(md):Ut.slice():[0,1]},yd=function(){var _=Rt?.min;return _==null?.01:Math.min(1,ze()==="absolute"?_/(tn[1]-tn[0]):_)},pc=function(_){return ze()==="absolute"?Math.round(_):Math.round(_*1e4)/1e4},s2=function(_){Ut=_[0]<=1e-6&&_[1]>=1-1e-6?null:_.map(function(O){return pc(ze()==="absolute"?a2(O):O)})},l2=function(){var _=ze()==="absolute",O=Ut||(_?tn:[0,1]);return{mode:ze(),start:pc(O[0]),end:pc(O[1]),zoomed:Ut!==null,range:Ut?Ut.slice():null,clusters:Je.map(function(z){var P=z.chart,I=[P.xScale.invert(0),P.xScale.invert(P.width-P.margin.left-P.margin.right)].sort(function(Y,nt){return Y-nt});return{cluster:z.key,start:Math.round(I[0]),end:Math.round(I[1])}})}},Pa=null,eo=function(_){if(clearTimeout(to),to=null,!(y.zoom!==!0||!Rt)){var O=l2(),z=JSON.stringify([O.mode,O.range,O.clusters]);(_==="render"||_==="set")&&z===Pa||(Pa=z,O.action=_,K("zoom",O))}},gc=function(){if(en){var _=dc(),O=function(Y){return Y*100+"%"};en.querySelector('[data-side="start"]').style.width=O(_[0]),en.querySelector('[data-side="end"]').style.left=O(_[1]);var z=en.querySelector('[data-zoom-part="window"]');z.style.left=O(_[0]),z.style.width=O(_[1]-_[0]);var P=Ut||(ze()==="absolute"?tn:[0,1]),I=function(Y){return ze()==="absolute"?R.format(",.0f")(Y):R.format(".0%")(Y)};["start","end"].forEach(function(Y,nt){var vt=en.querySelector('[data-zoom-part="'+Y+'"]');vt.style.left=O(_[nt]),vt.setAttribute("aria-valuenow",Math.round(_[nt]*100)),vt.setAttribute("aria-valuetext",I(P[nt]))}),z.setAttribute("aria-valuenow",Math.round(_[0]*100)),z.setAttribute("aria-valuetext",I(P[0])+" to "+I(P[1])),ie?.select(".geneviewer-zoom-buttons").property("hidden",Ut===null)}},mc=function(_){if(gc(),_)return Kn&&cancelAnimationFrame(Kn),Kn=null,vc();Kn||(Kn=requestAnimationFrame(function(){Kn=null,vc()}))},Ia=function(_,O){s2(_),Pt&&Rt?.update==="release"?gc():mc(O)},bd=function(){Ut!==null&&(Ia([0,1],!0),eo("reset"))},c2=function(_){if(_.stopPropagation(),!(_.button!==0||Pt)){_.preventDefault();var O=_.currentTarget.getBoundingClientRect(),z=(_.clientX-O.left)/O.width,P=_.target.closest("[data-zoom-part]")?.getAttribute("data-zoom-part")??"track",I=dc();if(Pt={id:_.pointerId,left:O.left,width:O.width,at:z,moved:!1,stopListening:rd({pointermove:u2,pointerup:yc,pointercancel:yc,blur:yc})},P==="track"){var Y=(I[1]-I[0])/2,nt=Math.max(Y,Math.min(1-Y,z));I=[nt-Y,nt+Y],Pt.moved=!0,Ia(I),P="window"}Pt.part=P,Pt.shares=I}},u2=function(_){if(!(!Pt||_.pointerId!==Pt.id)){_.preventDefault();var O=(_.clientX-Pt.left)/Pt.width-Pt.at,z=Pt.shares,P=yd(),I=Pt.part==="start"?[Math.max(0,Math.min(z[1]-P,z[0]+O)),z[1]]:Pt.part==="end"?[z[0],Math.min(1,Math.max(z[0]+P,z[1]+O))]:(function(){var Y=Math.max(-z[0],Math.min(1-z[1],O));return[z[0]+Y,z[1]+Y]})();Pt.moved=!0,Ia(I)}},yc=function(_){if(!(!Pt||_.pointerId!==void 0&&_.pointerId!==Pt.id)){var O=Pt;Pt=null,O.stopListening(),O.moved&&(mc(!0),eo("drag"))}},f2=function(_){var O=_.target.getAttribute&&_.target.getAttribute("data-zoom-part");if(O){var z=dc(),P=yd(),I={ArrowLeft:-1,ArrowDown:-1,ArrowRight:1,ArrowUp:1}[_.key],Y=null;if(I){var nt=I*(_.shiftKey?.1:.01);Y=O==="start"?[Math.max(0,Math.min(z[1]-P,z[0]+nt)),z[1]]:O==="end"?[z[0],Math.min(1,Math.max(z[0]+P,z[1]+nt))]:[z[0]+Math.max(-z[0],Math.min(1-z[1],nt)),z[1]+Math.max(-z[0],Math.min(1-z[1],nt))]}else _.key==="Home"?Y=O==="end"?[z[0],Math.min(1,z[0]+P)]:O==="start"?[0,z[1]]:[0,z[1]-z[0]]:_.key==="End"&&(Y=O==="start"?[Math.max(0,z[1]-P),z[1]]:O==="end"?[z[0],1]:[1-(z[1]-z[0]),1]);Y&&(_.preventDefault(),_.stopPropagation(),Ia(Y),clearTimeout(to),to=setTimeout(function(){eo("keyboard")},300))}},bc=function(_,O){Object.keys(O||{}).forEach(function(z){z.includes("-")?_.style.setProperty(z,O[z]):_.style[z]=O[z]})},h2=function(_){if(en=null,!(!Rt||!Je.length)){var O=ze()==="absolute";tn=O?[R.min(Je,function(Ht){return Ht.chart.minStart}),R.max(Je,function(Ht){return Ht.chart.maxEnd})]:[0,1];var z=Je[0].chart,P=R.select(i).append("div").attr("class","geneviewer-zoom-row").style("height",_+"px"),I=i.getBoundingClientRect(),Y=I.width/i.offsetWidth||1,nt=z.svg.node().getBoundingClientRect(),vt=nt.width/z.width||1,kt=z.width-z.margin.left-z.margin.right,It=P.node().getBoundingClientRect(),$t=P.append("div").attr("class","geneviewer-zoom-slider").attr("role","group").attr("aria-label","Zoom").style("left",(nt.left+z.margin.left*vt-It.left)/Y+"px").style("width",kt*vt/Y+"px").on("pointerdown",c2).on("click",function(Ht){Ht.stopPropagation()}).on("dblclick",function(Ht){Ht.stopPropagation(),bd()}).on("keydown",f2);if(bc($t.node(),Rt.style),Rt.overview!==!1){var St=$t.append("svg").attr("class","geneviewer-zoom-overview").attr("viewBox","0 0 1000 "+_).attr("preserveAspectRatio","none").attr("aria-hidden","true"),Xt=(_-6)/Je.length,oe=Math.max(1,Math.min(Xt*.7,8));Je.forEach(function(Ht,fn){var Cn=Ht.chart,_r=Cn.width-Cn.margin.left-Cn.margin.right,ro=function(nn){if(O)return md(nn);var Qn=Cn.fullScale(nn);return Qn===null?null:Qn/_r},xc=function(nn){return Rt.color?Rt.color:Ht.group&&Cn.genesColorScale?Cn.genesColorScale(nn[Ht.group]):"#9e9e9e"};(Cn.data||[]).forEach(function(nn){var Qn=ro(nn.start),io=ro(nn.end);Qn===null||io===null||St.append("rect").attr("x",Math.min(Qn,io)*1e3).attr("width",Math.max(Math.abs(io-Qn)*1e3,1)).attr("y",3+Xt*fn+(Xt-oe)/2).attr("height",oe).attr("fill",xc(nn))})})}$t.append("div").attr("class","geneviewer-zoom-shade").attr("data-side","start"),$t.append("div").attr("class","geneviewer-zoom-shade").attr("data-side","end");var Mn=$t.append("div").attr("class","geneviewer-zoom-window").attr("data-zoom-part","window");bc(Mn.node(),Rt.windowStyle),[Mn].concat(["start","end"].map(function(Ht){var fn=$t.append("div").attr("class","geneviewer-zoom-handle").attr("data-zoom-part",Ht);return bc(fn.node(),Rt.handleStyle),fn})).forEach(function(Ht){var fn=Ht.attr("data-zoom-part");Ht.attr("tabindex",0).attr("role","slider").attr("aria-label",fn==="window"?"Zoom window":fn==="start"?"Zoom start":"Zoom end").attr("aria-valuemin",0).attr("aria-valuemax",100)}),en=$t.node(),gc()}},d2=function(){if(Je.some(function(O){return O.chart.zoom})){var _="http://www.w3.org/2000/svg";i.querySelectorAll("svg.GeneLink").forEach(function(O,z){var P=O.getBoundingClientRect(),I=P.width/(+O.getAttribute("width")||P.width)||1,Y="geneviewer-zoom-links-"+S+"-"+z,nt=document.createElementNS(_,"clipPath");nt.setAttribute("id",Y),Je.forEach(function(It){var $t=It.chart,St=$t.svg.node().getBoundingClientRect(),Xt=St.width/$t.width||1,oe=document.createElementNS(_,"rect");oe.setAttribute("x",(St.left+$t.margin.left*Xt-P.left)/I),oe.setAttribute("y",0),oe.setAttribute("width",($t.width-$t.margin.left-$t.margin.right)*Xt/I),oe.setAttribute("height",O.getAttribute("height")),nt.appendChild(oe)});var vt=document.createElementNS(_,"defs");vt.appendChild(nt);var kt=document.createElementNS(_,"g");kt.setAttribute("clip-path","url(#"+Y+")"),Array.from(O.childNodes).forEach(function(It){kt.appendChild(It)}),O.appendChild(vt),O.appendChild(kt)})}},p2=function(_){C||!Rt||(Ut=Array.isArray(_)&&_.length===2?_.slice().sort(function(O,z){return O-z}):null,Ut&&ze()==="relative"&&Ut[0]<=0&&Ut[1]>=1&&(Ut=null),mc(!0),eo("set"))},vd=function(){Vn(),Je=[],Ra=null;var _=q?Array.from(i.querySelectorAll(".legend.unselected"),function(ae){return ae.__data__}):[];if(q=!0,R.select(i).selectAll("*").remove(),F.forEach(function(ae){i.style[ae]=""}),n.server){var O=typeof g.width=="number"?g.width+"px":g.width,z=typeof O=="string"&&/^\d+(\.\d+)?px$/.test(O);z?(i.style.width=O,v=!0):v&&(i.style.width=w,v=!1);var P=i.parentElement&&getComputedStyle(i.parentElement),I=P&&/^(inline-)?flex$/.test(P.display)&&/^row/.test(P.flexDirection);z&&I?(i.style.flex="0 0 auto",x=!0):x&&(i.style.flex=b,x=!1)}i.style.height="100%",i.style.position="relative",i.style.boxSizing="border-box";var Y=ut({style:{}},"chartOptions",{style:s},d).style;F=Object.keys(Y);for(var nt in Y)i.style[nt]=Y[nt];var vt=0;if(h?.show){var kt=R.select(i).append("div").attr("id",`geneviewer-title-container-${S}`).classed("geneviewer-container",!0),It=(h.title&&h.subtitle?50:40)*jn(d),$t=ut({height:It},"titleOptions",h,d).height;vt=Ie($t,i.clientHeight);var St={...h,width:i.clientWidth,height:vt},Xt=Kl(`#geneviewer-title-container-${S}`,"svg-container","titleOptions",St,d).title(St.title,St.subtitle,St.show??!1,St)}var oe=f?.show===!1?0:Ie(f?.height,i.clientHeight);if(f?.group!==null&&f?.show){R.select(i).append("div").attr("id",`geneviewer-legend-container-${S}`).classed("geneviewer-container",!0);var Mn=Array.isArray(l)&&l.length?Ph(l,d):null;Ra=Mn&&Mn.colorBarOptions.position==="legend"?Mn:null;var Ht={...f,width:i.clientWidth,height:Ie(f.height,i.clientHeight),editable:y.select===!0||y.dblclick===!0||y.click===!0&&y.legendClick!==!1};Kl(`#geneviewer-legend-container-${S}`,"svg-container","legendOptions",Ht,d).legendData(c).legend(Ht.group??!1,Ht.show??!1,i.id,Ht,Ra);var fn=R.select(`#geneviewer-legend-container-${S}`).node(),Cn=fn.getBoundingClientRect();oe=Cn.height}R.select(i).append("div").attr("id",`geneviewer-graph-container-${S}`).style("flex-direction",a.direction).style("position","relative").classed("geneviewer-container",!0);var _r=Object.keys(u),ro=Rt?Rt.height??24:0,xc=Rt?ro+8:0,nn=Rt&&Ut?{from:Ut[0],to:Ut[1],mode:ze()}:null,Qn=(Array.isArray(l)?l:[]).map(ae=>({data:Wr(ae.data),options:ae.options??{}}));_r.forEach(function(ae){var me=u[ae],qa=me.container,y2=me.cluster,b2=Wr(u[ae].data),xd=me.scale,Ya=me.clusterTitle,Ua=me.footer,oo=me.clusterLabel,_c=me.labels,_d=me.sequence,Ha=me.genes,Sc=me.transcript,Sd=me.coordinates,kd=me.scaleBar,v2=me.annotations,Ad=me.trackMouse,Ed=me.tooltip,rn=JSON.parse(JSON.stringify(qa));if(rn.height=Ie(rn.height,i.clientHeight),rn.height-=vt/_r.length,rn.height-=oe?oe/_r.length:0,rn.height-=xc/_r.length,typeof qa.height=="string"&&qa.height.endsWith("%")){var w2=(parseFloat(Y.paddingTop)||0)+(parseFloat(Y.paddingBottom)||0);rn.height-=w2/_r.length}rn.width=Ie(rn.width,i.clientWidth),oo?.show&&(rn.margin={...rn.margin,...Wy(qa,oo,d)});var Wa=Kl(`#geneviewer-graph-container-${S}`,"svg-container","containerOptions",rn,d).cluster(y2).title(Ya?.title,Ya?.subtitle,Ya?.show??!1,Ya,"clusterTitleOptions").footer(Ua?.title,Ua?.subtitle,Ua?.show??!1,Ua).clusterLabel(oo?.title,oo?.show??!1,oo).geneData(c,b2).scale(nn?Object.assign({},xd,{zoom:nn}):xd).sequence(_d?.show??!1,_d).genes(Ha?.group,Ha?.show??!1,Ha).transcript(Sc?.group,Sc?.show??!1,Sc);Wa.svg.attr("data-cluster",ae),Qn.forEach(Md=>{Wa.links(Ky(Md.data,ae),ae,Md.options)}),Wa.coordinates(Sd?.show??!1,Sd).labels(_c?.label,_c?.show??!1,_c).scaleBar(kd?.show??!1,kd).addAnnotations(v2).trackMouse(Ad?.show??!1,Ad).tooltip(Ed?.show??!1,Ed).clipZoom(),Je.push({key:ae,chart:Wa,group:Ha?.group})}),h2(ro);var io=ut({position:"bottom"},"legendOptions",f,d).position;io=="bottom"&&f?.show&&f?.group!==null&&i.appendChild(fn),i2(),i.querySelectorAll(".legend").forEach(function(ae){_.includes(ae.__data__)&&ae.dispatchEvent(new MouseEvent("click",{bubbles:!1}))})},wd=function(){if(!l||l.length===0)return;let _=R.select(`#geneviewer-graph-container-${S}`);Zy(_,l,d),Qy(_,l,d,Ra!==null),d2()},g2=function(_){for(var O=[],z=i.parentElement;z;z=z.parentElement)(z.scrollTop||z.scrollLeft)&&O.push([z,z.scrollTop,z.scrollLeft]);var P=document.scrollingElement;P&&!O.some(function(I){return I[0]===P})&&O.push([P,P.scrollTop,P.scrollLeft]);try{_()}finally{O.forEach(function(I){I[0].scrollTop!==I[1]&&(I[0].scrollTop=I[1]),I[0].scrollLeft!==I[2]&&(I[0].scrollLeft=I[2])})}},vc=function(){var _=en&&en.contains(document.activeElement)?document.activeElement.getAttribute("data-zoom-part"):null;g2(function(){vd(),wd(),Oa(),e2(),dd(),cd()}),_&&en&&en.querySelector('[data-zoom-part="'+_+'"]')?.focus({preventScroll:!0})},m2=function(_){if(_.data)return Wr(_.data);var O=_.dataColumns??[],z=[];return Object.values(_.series??{}).forEach(function(P){Wr(P.data).forEach(function(I){var Y={};O.forEach(function(nt){Y[nt]=I[nt]}),z.push(Y)})}),z.sort(function(P,I){return P.rowID-I.rowID})},La=function(_){var O=m2(_),z=JSON.stringify([O,_.group,_.cluster,_.legend?.group]);if(At&&z===L&&_.events?.drag===!0){Ki=_;return}Ki=null,Vn(),Rt=_.zoom&&_.zoom.show!==!1?_.zoom:null;var P=Rt?JSON.stringify([Rt.range??null,ze()]):null,I=_.events?.renderId??null,Y=I!==null&&I!==gd;if(gd=I,(z!==L||P!==pd||Y)&&(Ut=o2(),Pa=null),Rt||(Pa=null),pd=P,L!==null&&z!==L&&(q=!1,T.length&&(N([]),tt()),$e.clear(),Zr={},Kr={}),$a={},L=z,a=_.graphContainer,s=_.style,c=O,l=_.links,u=_.series,m=_.saveButton,p=_.toolbar??{},h=_.title,f=_.legend,d=_.theme??{},y=_.events??{},g=_.size??{},vd(),wd(),Oa(),dd(),cd(),eo("render"),y.rendered===!0){var nt={id:y.renderId??i.id+"-render-"+ ++bM,chartId:i.id,width:i.clientWidth,height:i.clientHeight};K("rendered",nt)}},En=null,wc=function(_){_&&_.version!==void 0?(En=structuredClone(_),La(Ea(En))):(En=null,La(_))},no={update:function(_){C||(En!==null?(En=ed(En,_),La(Ea(En))):wc(_))},setSpec:function(_){if(!C){if(!_||_.version===void 0)throw new Error("setSpec() needs a spec with a version");wc(_)}},getSpec:function(){return En===null?null:structuredClone(En)},resize:function(){C||vc()},on:function(_,O){if(!_M.includes(_))throw new Error("Unknown event: "+_);return(k[_]=k[_]||[]).push(O),function(){no.off(_,O)}},off:function(_,O){var z=k[_]||[],P=z.indexOf(O);P>=0&&z.splice(P,1)},zoomTo:p2,select:function(_){if(!C){if(y.select!==!0){Le("chart.select() needs events: { select: true }; nothing was selected.");return}xt(Dt(_==null?[]:Array.isArray(_)?_:[_]),"replace")}},getSelection:function(){return T.slice()},undo:function(){C||Ji(!0)},redo:function(){C||Ji(!1)},download:function(_,O){if(_!=="svg"&&_!=="png")return Promise.reject(new Error('download() needs the format "svg" or "png"'));var z=O??"graph."+_,P=n.saveAs||nd;return Promise.resolve().then(function(){return _==="svg"?new Blob([no.toSVG()],{type:"image/svg+xml;charset=utf-8"}):no.toPNG()}).then(function(I){return P(I,z)}).then(function(){})},toSVG:function(){return Vi(i,ie?ie.node():null)},toPNG:function(){return Ma(i,ie?ie.node():null)},destroy:function(){C||(C=!0,Ki=null,Vn(),Ba(!1),Pt&&Pt.stopListening(),Pt=null,clearTimeout(xr),clearTimeout(to),Kn&&cancelAnimationFrame(Kn),Ta===ud&&(Ta=null),k={},[["click",fd,!0],["click",Vr],["pointerdown",Na,!0],["focusin",Na],["click",_t],["dblclick",ge],["keydown",hc],["pointerdown",lc],["mousemove",uc],["mouseleave",fc]].forEach(function(_){i.removeEventListener(_[0],_[1],_[2])}),R.select(i).on("mouseleave",null).selectAll("*").remove(),F.forEach(function(_){i.style[_]=""}),i.classList.remove("geneviewer-draggable","geneviewer-selectable","geneviewer-highlight","geneviewer-dragging","geneviewer-hover-below"),o&&i.classList.remove("geneviewer"))}};return Object.keys(n.on||{}).forEach(function(_){no.on(_,n.on[_])}),wc(e),no}return A2(kM);})();
|
|
414
|
+
`;function qb(t){if(!t||!t.head||t.querySelector("style[data-geneviewer]"))return;let e=t.createElement("style");e.setAttribute("data-geneviewer",""),e.textContent=Lb,t.head.insertBefore(e,t.head.firstChild)}var yM={download:{width:512,height:512,path:"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V274.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7V32zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V416c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352H64zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"},"rotate-left":{width:512,height:512,path:"M48.5 224H40c-13.3 0-24-10.7-24-24V72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8H48.5z"},"rotate-right":{width:512,height:512,path:"M463.5 224H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5z"},house:{width:576,height:512,path:"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"},"magnifying-glass-minus":{width:512,height:512,path:"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24H280c13.3 0 24-10.7 24-24s-10.7-24-24-24H136z"}};function sc(t,e){let n=yM[e],r=t.append("svg").attr("class","geneviewer-icon-svg").attr("viewBox",`0 0 ${n.width} ${n.height}`).attr("aria-hidden","true").attr("focusable","false").style("width",`${n.width/n.height}em`);return r.append("path").attr("d",n.path),r}var bM=["fill","fill-opacity","fill-rule","stroke","stroke-width","stroke-opacity","stroke-dasharray","stroke-linecap","stroke-linejoin","font-family","font-size","font-weight","font-style","text-anchor","dominant-baseline","visibility"],vM={opacity:"1"};function Zi(t,e=null){let n="http://www.w3.org/2000/svg",r=t.getBoundingClientRect(),i=Math.ceil(r.width),o=t.querySelector(".geneviewer-zoom-row"),a=null;if(o){let p=o.getBoundingClientRect(),g=getComputedStyle(o),y=p.top-r.top-(parseFloat(g.marginTop)||0),w=p.bottom-r.top+(parseFloat(g.marginBottom)||0);w>y&&(a={top:y,bottom:w,height:w-y})}let s=p=>a&&p>=a.bottom-.5?a.height:0,c=Math.ceil(r.height-(a?a.height:0)),l=document.createElementNS(n,"svg");l.setAttribute("xmlns",n),l.setAttribute("width",i),l.setAttribute("height",c),l.setAttribute("viewBox",`0 0 ${i} ${c}`);let u=(p,g,y,w,b,v)=>{if(!v||v==="transparent"||v==="rgba(0, 0, 0, 0)")return;let _=document.createElementNS(n,"rect");_.setAttribute("x",g),_.setAttribute("y",y),_.setAttribute("width",w),_.setAttribute("height",b),_.setAttribute("fill",v),_.setAttribute("shape-rendering","crispEdges"),p.appendChild(_)};u(l,0,0,i,c,getComputedStyle(t).backgroundColor);let h=p=>p.replace(/url\((["']?)[^#)]*#([^)"']+)\1\)/g,"url(#$2)"),f=(p,g,y)=>{let w=getComputedStyle(p);return bM.forEach(b=>{let v=w.getPropertyValue(b);v&&(!y||y.getPropertyValue(b)!==v)&&g.style.setProperty(b,h(v))}),Object.entries(vM).forEach(([b,v])=>{let _=w.getPropertyValue(b);_&&_!==v&&g.style.setProperty(b,_)}),w},d=p=>parseInt(getComputedStyle(p).zIndex,10)||0;return Array.from(t.querySelectorAll("svg")).filter(p=>!p.parentElement.closest("svg")&&!(e&&e.contains(p))&&!p.closest(".geneviewer-zoom-slider")).map((p,g)=>({svg:p,order:g,z:d(p)})).sort((p,g)=>p.z-g.z||p.order-g.order).map(p=>p.svg).forEach(p=>{let g=getComputedStyle(p);if(g.display==="none"||g.visibility==="hidden")return;let y=p.getBoundingClientRect();if(y.width===0||y.height===0)return;let w=y.left-r.left,b=y.top-r.top,v=b-s(b);u(l,w,v,y.width,y.height,g.backgroundColor);let _=p.cloneNode(!0);_.removeAttribute("style"),_.removeAttribute("class"),_.setAttribute("x",w),_.setAttribute("y",v),_.setAttribute("width",y.width),_.setAttribute("height",y.height);let S=p.querySelectorAll("*"),k=_.querySelectorAll("*"),C=new Map([[p,f(p,_,null)]]);S.forEach((F,A)=>{let E=k[A];if(getComputedStyle(F).display==="none"&&!F.closest("defs")){E.setAttribute("display","none");return}F.closest("defs")||(E.removeAttribute("class"),C.set(F,f(F,E,C.get(F.parentNode))))}),a&&b<a.bottom-.5&&Array.from(p.children).forEach((F,A)=>{if(F.tagName.toLowerCase()==="defs")return;let E=F.getBoundingClientRect().top-r.top,D=s(E);if(!D)return;let $=_.children[A];$.setAttribute("transform",`translate(0, ${-D}) ${$.getAttribute("transform")||""}`.trim())}),_.querySelectorAll("[display='none']").forEach(F=>F.remove()),l.appendChild(_)}),`<?xml version="1.0" encoding="UTF-8"?>
|
|
415
|
+
`+new XMLSerializer().serializeToString(l)}function Ca(t,e=null){let n=new Blob([Zi(t,e)],{type:"image/svg+xml;charset=utf-8"}),r=URL.createObjectURL(n);return new Promise((i,o)=>{let a=new Image,s=c=>{URL.revokeObjectURL(r),o(c)};a.onerror=()=>s(new Error("Could not render the chart SVG as PNG.")),a.onload=()=>{try{let c=window.devicePixelRatio||1,l=document.createElement("canvas");l.width=Math.ceil(a.naturalWidth*c),l.height=Math.ceil(a.naturalHeight*c),l.getContext("2d").drawImage(a,0,0,l.width,l.height),l.toBlob(u=>{URL.revokeObjectURL(r),u?i(u):o(new Error("Could not encode the chart as PNG."))},"image/png")}catch(c){s(c)}},a.src=r})}function id(t,e){let n=URL.createObjectURL(t),r=document.createElement("a");r.href=n,r.download=e,r.style.display="none",document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),4e4)}function Yb(t,e,n,r=null,i=id){var o=R.select(n).append("div").attr("id",`saveMenu-${t}`).style("position","relative").style("z-index","1000").style("display","block"),a=o.append(r?"i":"span").attr("class",(r?r+" ":"")+"geneviewer-save-icon").attr("id",`saveIcon-${t}`).attr("tabindex","0").attr("role","button").attr("aria-label","Save chart").attr("aria-haspopup","menu").style("text-align","right").style("cursor","pointer");r||sc(a,"download");var s=o.append("div").attr("id",`saveIconTooltip-${t}`).attr("class","save-tooltip").attr("role","menu").style("display","none").style("font-size","12px").style("overflow","hidden").style("white-space","nowrap"),c=function(){s.style("display","none")},l=[{label:"Save as SVG",save:function(){var u=Zi(e,n);i(new Blob([u],{type:"image/svg+xml;charset=utf-8"}),"graph.svg")}},{label:"Save as PNG",save:function(){return Ca(e,n).then(u=>i(u,"graph.png"))}}];l.forEach(function(u){s.append("div").attr("class","save-option").attr("tabindex","0").attr("role","menuitem").text(u.label).style("padding","5px 8px").style("cursor","pointer").on("click",function(){c(),u.save()}).on("keydown",function(h){(h.key==="Enter"||h.key===" ")&&(h.preventDefault(),this.click())})}),o.on("focusin",function(){s.style("display","block")}).on("focusout",function(u){o.node().contains(u.relatedTarget)||c()}),R.select(e).on("mouseleave",c),o.on("mouseenter",function(){s.style("display","block")}).on("mouseleave",c)}var Wb="0.3.1",wM=0,xM=0,Oa=null,_M=function(t){return!t||t.isContentEditable||/^(INPUT|TEXTAREA|SELECT)$/.test(t.tagName)||!!(t.closest&&t.closest('[role="combobox"], [role="listbox"], [role="menu"], [role="dialog"], [role="slider"], [role="tablist"], [role="radiogroup"], [role="spinbutton"]'))};document.addEventListener("keydown",function(t){!Oa||t.defaultPrevented||t.altKey||_M(t.target)||Oa(t)});var Ub=/Mac|iPhone|iPad/.test(navigator.platform||navigator.userAgent),jb=["scale","scaleBar"],Fa=function(t){return jb.includes(t)},Hb=jb.map(function(t){return'[data-component="'+t+'"]'}).join(", "),SM=["undo","redo","reset","zoom","save"],kM=["click","dblclick","select","selection","drag","dragmove","moves","zoom","rendered"],Ta=function(t,e){return!!t&&!!e&&Math.abs(t.moveX-e.moveX)<.01&&Math.abs(t.moveY-e.moveY)<.01},od=function(t){return Object.keys(t).forEach(function(e){window.addEventListener(e,t[e],e==="pointermove"?{passive:!1}:void 0)}),function(){Object.keys(t).forEach(function(e){window.removeEventListener(e,t[e])})}},AM=function(){var t=[],e=[],n=function(r){return r.map(function(i){return i.key}).join(`
|
|
416
|
+
`)};return{canUndo:function(){return t.length>0},canRedo:function(){return e.length>0},clear:function(){t=[],e=[]},record:function(r,i){if(r=r.filter(function(s){return s.key!==null&&!Ta(s.before,s.after)}),!!r.length){var o=t[t.length-1],a=performance.now();i&&o&&o.merge&&n(o.items)===n(r)&&a-o.time<1e3?(o.items.forEach(function(s,c){s.after=r[c].after}),o.time=a):(t.push({items:r,merge:i,time:a}),t.length>100&&t.shift()),e=[]}},next:function(r){var i=r?t:e;return i[i.length-1]},take:function(r){var i=(r?t:e).pop();return i.merge=!1,(r?e:t).push(i),i.items.map(function(o){return{key:o.key,position:r?o.before:o.after}})},expected:function(){var r={};return e.forEach(function(i){i.items.forEach(function(o){r[o.key]=o.before})}),t.forEach(function(i){i.items.forEach(function(o){r[o.key]=o.after})}),r}}};function Xb(t,e,n){if(typeof t=="string"){var r=document.querySelector(t);if(!r)throw new Error("No element matches "+t);t=r}var i=t;n=n||{},n.injectStyles!==!1&&qb(i.ownerDocument);var o=!i.classList.contains("geneviewer");i.classList.add("geneviewer");var a,s,c,l,u,h,f,d,m,p,g={},y={},w=i.style.width,b=i.style.flex,v=!1,_=!1,S=i.id?i.id.replace(/[^A-Za-z0-9_-]/g,"_"):"geneviewer-chart-"+ ++xM,k={},C=!1,F=[],A=["genes","transcript","labels","links","legend","coordinates"],E=["genes","labels","coordinates","clusterTitle","clusterFooter","clusterLabel","legend","title","scaleBar","scale"],D=".gene, text.label, text.coordinate, [data-part], "+Hb,$=E.filter(function(x){return!["genes","coordinates"].includes(x)}),M="text.label, [data-part], "+Hb,T=[],B=null,N=function(x){T=x,B=x[x.length-1]??null},L=null,q=!0,U=function(x){var O=x.target;if(!O.classList||!O.classList.contains("geneviewer-svg-content")||typeof x.clientX!="number")return O;var z=document.elementsFromPoint(x.clientX,x.clientY).find(function(P){return P.closest&&P.closest('[data-component="links"]')&&i.contains(P)});return z||O},Z=function(x){var O=/^rgba?\((\d+), (\d+), (\d+)(?:, ([\d.]+))?\)$/.exec(x);return!O||O[4]!==void 0&&O[4]!=="1"?x:"#"+O.slice(1,4).map(function(z){return(+z).toString(16).padStart(2,"0")}).join("")},Q=function(x){var O=/^url\("?#([^")]+)"?\)$/.exec(x),z=O&&i.querySelector("#"+CSS.escape(O[1]));return!z||z.children.length!==1||z.firstElementChild.tagName!=="rect"?x:getComputedStyle(z.firstElementChild).fill},j=function(x,O){if(Fa(x))return Object.assign({moveX:0,moveY:0},O.__drawn__);O=O.closest(x==="genes"?".gene":x==="legend"?"[data-part]":"text")||O;var z=getComputedStyle(O),P={fill:Z(Q(z.fill)),opacity:+z.opacity};return x==="genes"||x==="legend"&&O.matches(".legend-marker")?Object.assign(P,{stroke:Z(z.stroke),strokeWidth:parseFloat(z.strokeWidth),strokeDasharray:z.strokeDasharray},O.__drawn__):(Object.assign(P,{text:O.__text__??O.textContent,fontSize:parseFloat(z.fontSize),fontWeight:z.fontWeight,fontStyle:z.fontStyle,fontFamily:z.fontFamily},O.__drawn__),x==="labels"&&["dx","dy"].forEach(function(I){var Y=O[I].baseVal;Y.numberOfItems&&(P[I]=Y.getItem(0).value)}),P)},H=function(x,O){var z=U(x),P=z.closest&&z.closest("[data-component]");if(!(!P||!i.contains(P))){for(var I=P.getAttribute("data-component"),Y=null,nt=z;A.includes(I)&&nt&&nt!==P.parentNode;nt=nt.parentNode)if(nt.__data__!==void 0){Y=nt.__data__;break}var wt=P.closest("[data-cluster]"),kt={component:I,cluster:wt?wt.getAttribute("data-cluster"):null,data:Y},Pt=z.closest("[data-part]");return Pt&&P.contains(Pt)&&(kt.part=Pt.getAttribute("data-part")),O&&W(kt)!==null&&(kt.style=j(I,Fa(I)?P:I==="legend"?Pt:nt)),kt}},W=function(x){return!x||!E.includes(x.component)?null:Fa(x.component)?[x.component,x.cluster].join("|"):x.component==="legend"?x.data!=null&&["label","marker"].includes(x.part)?JSON.stringify([x.component,x.data,x.part]):null:["genes","labels","coordinates"].includes(x.component)?!x.data||x.data.rowID==null?null:[x.component,x.cluster,x.data.rowID,x.data.end??""].join("|"):x.part?[x.component,x.cluster,x.part].join("|"):null},J=function(x){return JSON.stringify(x.map(W))},K=function(x,O){(k[x]||[]).slice().forEach(function(z){z({type:x,detail:O})}),i.dispatchEvent(new CustomEvent("geneviewer:"+x,{bubbles:!0,detail:O}))},ht=function(x,O){return W(x)!==null&&W(x)===W(O)},G=function(x){var O=W(x);return O!==null&&T.some(function(z){return W(z)===O})},tt=function(x){return x===null?null:structuredClone(x)},ot=function(){return T.map(tt)},X=function(){K("select",tt(B)),K("selection",ot())},vt=function(x){var O=JSON.stringify(T.map(function(Y){return Y.style})),z={};i.querySelectorAll(D).forEach(function(Y){var nt=H({target:Y}),wt=W(nt);if(wt!==null){var kt=G(nt);Y.classList.toggle("geneviewer-selected",kt),y.select===!0&&(Y.setAttribute("tabindex","0"),Y.setAttribute("role","button"),Y.setAttribute("aria-pressed",String(kt)),Y.setAttribute("aria-label",nt.component+": "+(nt.component==="legend"?String(nt.data)+" "+nt.part:nt.data?.name??Y.__text__??Y.textContent))),kt&&!z[wt]&&(z[wt]=H({target:Y},!0))}});var P=T.map(function(Y){return z[W(Y)]}).filter(Boolean),I=P.length!==T.length;N(P),(I||x&&T.length&&JSON.stringify(T.map(function(Y){return Y.style}))!==O)&&X()},yt=function(x,O,z){var P=z==="replace"?[]:x.slice();return O.forEach(function(I){if(W(I)!==null){var Y=P.findIndex(function(nt){return W(nt)===W(I)});Y>=0&&z==="toggle"?P.splice(Y,1):Y<0&&P.push(I)}}),P},Tt=function(x,O,z){var P=yt(T,x,O);J(P)!==J(T)&&(N(P),vt(),z||X())},Mt=function(x){Tt(x?[x]:[],"replace")},st=function(x,O){return x===null||typeof x!="object"?x===O:O===null||typeof O!="object"?!1:Object.keys(x).every(function(z){return st(x[z],O[z])})},St=function(x){var O=[];i.querySelectorAll(D).forEach(function(P){var I=H({target:P});W(I)!==null&&O.push(I)});var z=[];return x.forEach(function(P){if(!P||typeof P!="object"||typeof P.component!="string")throw new Error("select() needs items with a component, as getSelection() gives them");O.forEach(function(I){var Y=I.component===P.component&&(P.cluster==null||String(P.cluster)===I.cluster)&&(P.part==null||P.part===I.part)&&(P.data===void 0||st(P.data,I.data));Y&&z.push(I)})}),z},ne=0,Zt=function(x){if(performance.now()<ne){x.preventDefault(),x.stopPropagation();return}var O=H(x,!0);if(y.select===!0&&x.detail<2){var z=x.shiftKey||x.metaKey||x.ctrlKey;if(z)W(O)!==null&&Tt([O],"toggle");else if(O||x.target.closest("svg")&&!x.target.closest(".geneviewer-toolbar")||x.target===i){var P=T.length===1&&ht(B,O);Mt(P?null:O??null)}}!O||O.component==="legend"&&y.legendClick===!1||y.click===!0&&K("click",O)},Mn=function(x){if(!(performance.now()<ne)){var O=H(x,!0);O&&(y.select===!0&&Mt(O),K("dblclick",O))}},Ba=function(x,O){return Fa(O)?x.closest('[data-component="'+O+'"]'):x.closest(O==="legend"?"[data-part]":"text")},Ki=function(x,O){if(x.closest(".geneviewer-move-overlay")||!i.clientWidth||!i.clientHeight)return null;var z=x.parentNode,P=z.getScreenCTM();if(!P)return null;var I="http://www.w3.org/2000/svg",Y=i.querySelector(".geneviewer-move-overlay");Y||(Y=document.createElementNS(I,"svg"),Y.setAttribute("class","geneviewer-move-overlay"),Y.setAttribute("width",i.clientWidth),Y.setAttribute("height",i.clientHeight),Y.setAttribute("viewBox",`0 0 ${i.clientWidth} ${i.clientHeight}`),Object.assign(Y.style,{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",pointerEvents:"none",zIndex:"4"}),i.appendChild(Y));var nt={parent:z,next:x.nextSibling};O.component==="legend"&&(x.__home__=z.closest(".legend"));var wt=getComputedStyle(x);["fill","fill-opacity","stroke","stroke-width","stroke-opacity","font-family","font-size","font-weight","font-style","text-anchor","dominant-baseline"].forEach(function(Dt){x.style.getPropertyValue(Dt)||x.style.setProperty(Dt,wt.getPropertyValue(Dt))});var kt=document.createElementNS(I,"g"),Pt=Y.getScreenCTM().inverse().multiply(P);return kt.setAttribute("transform",`matrix(${Pt.a} ${Pt.b} ${Pt.c} ${Pt.d} ${Pt.e} ${Pt.f})`),Fa(O.component)||kt.setAttribute("data-component",O.component),O.cluster!=null&&kt.setAttribute("data-cluster",O.cluster),Y.appendChild(kt),kt.appendChild(x),x.style.pointerEvents="visiblePainted",nt.frame=kt,Zr(),nt},Zr=function(){i.querySelectorAll(".geneviewer-move-overlay [data-part]").forEach(function(x){x.__home__&&x.parentNode.classList.toggle("unselected",x.__home__.classList.contains("unselected"))})},ie=function(){i.querySelectorAll(M).forEach(function(x){if(x.__drawn__?.moveX||x.__drawn__?.moveY){var O=H({target:x});O&&$.includes(O.component)&&Ki(x,O)}})},lc=function(x,O){K("dragmove",Object.assign({},x,{position:O}))},$e=null,Qi=null,cc=function(){var x=Qi;return Qi=null,x&&qa(x),!!x},ad=function(x){if($e){var O=$e;if($e=null,O.stopListening(),i.classList.remove("geneviewer-dragging"),!O.moved){cc();return}if(ne=performance.now()+350,!x){O.items.forEach(function(I){if(I.node.setAttribute("transform",I.transform),I.placement){var Y=I.placement;Y.parent.insertBefore(I.node,Y.next&&Y.next.parentNode===Y.parent?Y.next:null);var nt=Y.frame.parentNode;Y.frame.remove(),nt.firstChild||nt.remove()}lc(I.detail,{moveX:I.moveX,moveY:I.moveY})}),N(O.selection),vt(),cc();return}var z=O.items.map(function(I){I.node.__drawn__=Object.assign({},I.node.__drawn__,I.position);var Y=H({target:I.node},!0);return Y.position=I.position,Y.action="drag",Y});if(cc()){var P=fn();O.items.forEach(function(I){var Y=P[W(I.detail)];Y&&Na(Y,I.position)})}ze.record(O.items.map(function(I){return{key:W(I.detail),before:{moveX:I.moveX,moveY:I.moveY},after:I.position}}),!1),Ji(),fc(z,!1)}},Zn=function(){ad(!1)},Gb=function(x){x.key==="Escape"&&$e&&(x.preventDefault(),Zn())},Vb=function(x){$e&&x.pointerId===$e.id&&ad(!0)},Zb=function(x){var O=$e;!O||x.pointerId!==O.id||!O.moved&&Math.hypot(x.clientX-O.x,x.clientY-O.y)<4||(O.moved||(O.moved=!0,O.items.forEach(function(z){z.placement=Ki(z.node,z.detail)}),y.select===!0&&O.items.length===1&&!G(O.items[0].detail)&&(N([O.items[0].detail]),vt()),i.classList.add("geneviewer-dragging")),x.preventDefault(),O.items.forEach(function(z){var P=new DOMPoint(x.clientX,x.clientY).matrixTransform(z.inverse);z.position={moveX:Math.round(z.moveX+P.x-z.start.x),moveY:Math.round(z.moveY+P.y-z.start.y)};var I=z.position.moveX-z.moveX,Y=z.position.moveY-z.moveY;z.node.setAttribute("transform",`translate(${I}, ${Y}) ${z.transform}`),lc(z.detail,z.position)}))},sd=function(x,O,z){var P=x.parentNode.getScreenCTM();if(!P)return null;var I=P.inverse();return{node:x,detail:O,inverse:I,start:new DOMPoint(z.clientX,z.clientY).matrixTransform(I),transform:x.getAttribute("transform")||"",moveX:O.style?.moveX??Je(x).moveX,moveY:O.style?.moveY??Je(x).moveY}},uc=function(x){if(!(x.button!==0||x.isPrimary===!1)){var O=H(x,!0);if(!O||!$.includes(O.component)||W(O)===null){Kb(x,O);return}if(y.drag===!0){var z=Ba(x.target,O.component);if(z){var P=sd(z,O,x);if(P){var I=[P];if(y.select===!0&&G(O)&&T.length>1){var Y=fn();T.forEach(function(nt){var wt=W(nt);if(!(wt===W(O)||!Y[wt])){var kt=sd(Y[wt],H({target:Y[wt]},!0),x);kt&&I.push(kt)}})}$e={id:x.pointerId,items:I,selection:T.slice(),x:x.clientX,y:x.clientY,moved:!1,stopListening:od({pointermove:Zb,pointerup:Vb,pointercancel:Zn,blur:Zn,keydown:Gb})}}}}}},Ot=null,Kb=function(x,O){y.select!==!0||W(O)!==null||x.target.closest(".geneviewer-toolbar")||!i.contains(x.target)||(Ot={id:x.pointerId,x:x.clientX,y:x.clientY,node:null,mode:x.shiftKey||x.metaKey||x.ctrlKey?"add":"replace",selection:T.slice(),stopListening:od({pointermove:Jb,pointerup:t2,pointercancel:$a,blur:$a,keydown:e2})})},Qb=function(x){var O={};return i.querySelectorAll(D).forEach(function(z){var P=H({target:z}),I=W(P);if(!(I===null||O[I])){var Y=z.getBoundingClientRect();(Y.width||Y.height)&&Y.left>=x.left&&Y.right<=x.right&&Y.top>=x.top&&Y.bottom<=x.bottom&&(O[I]=H({target:z},!0))}}),Object.values(O)},Jb=function(x){if(!(!Ot||x.pointerId!==Ot.id)&&!(!Ot.node&&Math.hypot(x.clientX-Ot.x,x.clientY-Ot.y)<4)){x.preventDefault();var O={left:Math.min(Ot.x,x.clientX),right:Math.max(Ot.x,x.clientX),top:Math.min(Ot.y,x.clientY),bottom:Math.max(Ot.y,x.clientY)};Ot.node||(Ot.node=document.createElement("div"),Ot.node.className="geneviewer-marquee",i.appendChild(Ot.node));var z=i.getBoundingClientRect(),P=z.width/i.offsetWidth||1,I=z.height/i.offsetHeight||1;Object.assign(Ot.node.style,{left:(O.left-z.left)/P+"px",top:(O.top-z.top)/I+"px",width:(O.right-O.left)/P+"px",height:(O.bottom-O.top)/I+"px"}),N(yt(Ot.selection,Qb(O),Ot.mode)),vt()}},Da=function(x){if(Ot){var O=Ot;if(Ot=null,O.stopListening(),!!O.node){if(O.node.remove(),ne=performance.now()+350,!x){N(O.selection),vt();return}J(T)!==J(O.selection)&&X()}}},t2=function(x){Ot&&x.pointerId===Ot.id&&Da(!0)},$a=function(){Da(!1)},e2=function(x){x.key==="Escape"&&Ot&&(x.preventDefault(),$a())},ze=AM(),Kr={},za={},Qr={},_r=null,oe=null,Je=function(x){return{moveX:x.__drawn__?.moveX??0,moveY:x.__drawn__?.moveY??0}},fn=function(){var x={};return i.querySelectorAll(D).forEach(function(O){var z=H({target:O}),P=z&&$.includes(z.component)?W(z):null;P===null||x[P]||(x[P]=Ba(O,z.component))}),x},Na=function(x,O){var z=Je(x),P=O.moveX-z.moveX,I=O.moveY-z.moveY;if(P||I){var Y=H({target:x});Y&&Ki(x,Y),x.setAttribute("transform",`translate(${P}, ${I}) ${x.getAttribute("transform")||""}`.trim())}x.__drawn__=Object.assign({},x.__drawn__,{moveX:O.moveX,moveY:O.moveY})},ld=function(x,O){var z=H({target:x},!0);return z?(z.position=Je(x),z.action=O,z):null},fc=function(x,O){x.forEach(function(z){var P=W(z);n.server?Kr[P]=z.position:za[P]=z.position}),x.length&&(y.select===!0&&(O&&x.length===1&&N([x[0]]),vt(),X()),x.length===1?K("drag",x[0]):K("moves",{action:x[0].action,moves:x}))},cd=function(x){return Object.keys(x).filter(function(O){return Qr[O]&&!Ta(Je(x[O]),Qr[O])})},Ji=function(x){if(!(!oe||y.drag!==!0)){var O=cd(x||fn()).length>0;oe.select(".geneviewer-history").property("hidden",!ze.canUndo()&&!ze.canRedo()&&!O),oe.select(".geneviewer-undo").property("disabled",!ze.canUndo()),oe.select(".geneviewer-redo").property("disabled",!ze.canRedo()),oe.select(".geneviewer-reset").property("disabled",!O)}},ud=function(x,O,z){var P=fn(),I=[];x.forEach(function(Y){var nt=P[Y.key];if(nt){Na(nt,Y.position);var wt=ld(nt,O);wt&&I.push(wt)}}),clearTimeout(_r),_r=null,Ji(P),fc(I,z)},to=function(x){var O=ze.next(x);if(!(!O||$e)){var z=fn(),P=O.items.every(function(I){return z[I.key]&&Ta(Je(z[I.key]),x?I.after:I.before)});if(!P)return ze.clear(),Ji(z);ud(ze.take(x),x?"undo":"redo",O.items.length===1)}},n2=function(){if(!$e){var x=fn(),O=cd(x).map(function(z){return{key:z,before:Je(x[z]),after:Qr[z]}});O.length&&(ze.record(O,!1),ud(O.map(function(z){return{key:z.key,position:z.after}}),"reset",!1))}},fd=function(){var x=fn();if(Object.keys(x).forEach(function(P){Qr[P]||(Qr[P]=Je(x[P]))}),Object.keys(Kr).forEach(function(P){(!x[P]||Ta(Je(x[P]),Kr[P]))&&delete Kr[P]}),_r===null&&!Object.keys(Kr).length){var O=ze.expected(),z=Object.keys(O).some(function(P){return!x[P]||!Ta(Je(x[P]),O[P])});z&&ze.clear()}Ji(x)},r2=function(){var x=fn();Object.keys(za).forEach(function(O){x[O]&&Na(x[O],za[O])})},i2=function(x,O){var z=fn(),P=T.map(function(I){return W(I)}).filter(function(I){return I!==null&&z[I]}).map(function(I){var Y=Je(z[I]),nt={moveX:Math.round(Y.moveX+x),moveY:Math.round(Y.moveY+O)};return Na(z[I],nt),lc(H({target:z[I]}),nt),{key:I,before:Y,after:nt}});return P.length?(ze.record(P,!0),Ji(),clearTimeout(_r),_r=setTimeout(function(){_r=null;var I=fn();fc(P.map(function(Y){return I[Y.key]&&ld(I[Y.key],"nudge")}).filter(Boolean),!1)},300),!0):!1},hd=function(x){if(!(y.drag!==!0||!i.isConnected)){var O=x.key.toLowerCase();if((x.metaKey||x.ctrlKey)&&(O==="z"||O==="y")){x.preventDefault(),to(!(O==="y"||x.shiftKey));return}var z={ArrowLeft:[-1,0],ArrowRight:[1,0],ArrowUp:[0,-1],ArrowDown:[0,1]}[x.key];if(!(!z||x.metaKey||x.ctrlKey||y.select!==!0||$e)&&!(x.target!==document.body&&!i.contains(x.target))){var P=x.shiftKey?10:1;i2(z[0]*P,z[1]*P)&&x.preventDefault()}}},Ra=function(){Oa=hd},dd=function(x){if(performance.now()<ne&&!x.target.closest(".geneviewer-toolbar")){ne=0,x.preventDefault(),x.stopPropagation();return}var O=x.target.closest&&x.target.closest(".geneviewer-move-overlay [data-part]")?.__home__,z=y.select===!0||y.dblclick===!0||y.click===!0&&y.legendClick!==!1;O&&!z&&O.isConnected&&(x.stopPropagation(),O.dispatchEvent(new MouseEvent("click",{bubbles:!1,detail:x.detail})),Zr())};i.addEventListener("click",dd,!0),i.addEventListener("click",Zr),i.addEventListener("pointerdown",Ra,!0),i.addEventListener("focusin",Ra);var o2=function(x){return/(^|\s)fa-/.test(x)?x:"fa-solid fa-"+x},a2=function(){oe=null;var x=ut({show:"hover",position:"topright",buttons:SM,icons:{}},"toolbarOptions",p,d),O=[].concat(x.buttons),z=function(_t){return O.includes(_t)},P=y.drag===!0&&["undo","redo","reset"].some(z),I=m&&z("save"),Y=!!Nt&&z("zoom");if(!(x.show==="never"||!P&&!I&&!Y)){var nt=function(_t){return x.icons[_t]!=null?o2(x.icons[_t]):null};oe=R.select(i).append("div").attr("class",`geneviewer-toolbar geneviewer-toolbar-${x.position}`+(x.show==="always"?" geneviewer-toolbar-always":"")).attr("id",`geneviewer-toolbar-${S}`).attr("role","toolbar").attr("aria-label","Chart");var wt=function(_t){return typeof _t=="number"?_t+"px":_t};[["color","--gv-toolbar-color"],["hoverColor","--gv-toolbar-hover"],["tooltipBackground","--gv-toolbar-tip-background"],["tooltipColor","--gv-toolbar-tip-color"],["tooltipBorder","--gv-toolbar-tip-border"],["tooltipRadius","--gv-toolbar-tip-radius"],["tooltipShadow","--gv-toolbar-tip-shadow"],["fontFamily","--gv-toolbar-font"],["size","--gv-toolbar-size"]].forEach(function(_t){x[_t[0]]!=null&&oe.style(_t[1],wt(x[_t[0]]))});var kt=function(_t,jt){var ae=_t.append("button").attr("type","button").attr("class","geneviewer-toolbar-button geneviewer-"+jt.name).attr("aria-label",jt.label).attr("aria-keyshortcuts",jt.shortcuts).property("disabled",!!jt.disabled).on("click",jt.onClick);nt(jt.name)?ae.append("i").attr("class",nt(jt.name)).attr("aria-hidden","true"):sc(ae.append("span").attr("class","geneviewer-icon").attr("aria-hidden","true"),jt.icon);var Fn=ae.append("span").attr("class","geneviewer-toolbar-tip").attr("aria-hidden","true");Fn.append("span").text(jt.label),jt.kbd&&Fn.append("kbd").text(jt.kbd)};if(P){var Pt=oe.append("div").attr("class","geneviewer-history").attr("role","group").attr("aria-label","Positions").property("hidden",!0);[{name:"undo",label:"Undo",icon:"rotate-left",kbd:Ub?"⌘Z":"Ctrl+Z",shortcuts:"Control+Z Meta+Z",onClick:function(){to(!0)}},{name:"redo",label:"Redo",icon:"rotate-right",kbd:Ub?"⇧⌘Z":"Ctrl+Y",shortcuts:"Control+Shift+Z Meta+Shift+Z Control+Y",onClick:function(){to(!1)}},{name:"reset",label:"Reset positions",icon:"house",kbd:null,shortcuts:null,onClick:n2}].filter(function(_t){return z(_t.name)}).forEach(function(_t){kt(Pt,Object.assign({disabled:!0},_t))}),(I||Y)&&Pt.append("span").attr("class","geneviewer-toolbar-divider")}if(Y){var Dt=oe.append("div").attr("class","geneviewer-history geneviewer-zoom-buttons").attr("role","group").attr("aria-label","Zoom").property("hidden",Yt===null);kt(Dt,{name:"zoom",label:"Reset zoom",icon:"magnifying-glass-minus",kbd:null,shortcuts:null,onClick:wd}),I&&Dt.append("span").attr("class","geneviewer-toolbar-divider")}I&&Yb(S,i,oe.node(),nt("save"),n.saveAs)}},Kn=null,pd=function(x){Kn!==x&&(Kn&&Kn.classList.remove("geneviewer-hover"),Kn=x,Kn&&Kn.classList.add("geneviewer-hover"),i.classList.toggle("geneviewer-hover-below",!!Kn))},hc=function(x){var O=U(x);pd(O===x.target?null:O.closest("[data-component]"))},dc=function(){pd(null)},pc=function(x){if(x.key==="Escape"){$e?Zn():Ot?$a():Mt(null);return}x.key==="Enter"&&y.dblclick===!0&&x.target.matches(D)&&(x.preventDefault(),Mn(x))},gd=function(){Zn();var x=y.click===!0;i.removeEventListener("click",Zt),i.removeEventListener("dblclick",Mn),i.removeEventListener("keydown",pc),i.removeEventListener("pointerdown",uc),Da(!1),i.removeEventListener("mousemove",hc),i.removeEventListener("mouseleave",dc),Kn=null,i.classList.remove("geneviewer-hover-below");var O=(x||y.select===!0||y.dblclick===!0)&&y.highlight===!0;O&&(i.addEventListener("mousemove",hc),i.addEventListener("mouseleave",dc)),(x||y.select===!0)&&i.addEventListener("click",Zt),y.dblclick===!0&&i.addEventListener("dblclick",Mn),(y.select===!0||y.drag===!0)&&i.addEventListener("keydown",pc),(y.drag===!0||y.select===!0)&&i.addEventListener("pointerdown",uc),i.classList.toggle("geneviewer-draggable",y.drag===!0),y.select!==!0&&T.length&&(N([]),X()),i.classList.toggle("geneviewer-selectable",y.select===!0),i.classList.toggle("geneviewer-highlight",O),vt(!0)},Nt=null,Yt=null,md=null,yd=null,tn=[],en=[0,1],Pa=null,nn=null,Rt=null,Qn=null,eo=null,Ne=function(){return Nt?.mode==="absolute"?"absolute":"relative"},s2=function(){var x=Nt?.range;return!Array.isArray(x)||x.length!==2?null:(x=x.slice().sort(function(O,z){return O-z}),Ne()==="relative"&&x[0]<=0&&x[1]>=1?null:x)},bd=function(x){return(x-en[0])/(en[1]-en[0])},l2=function(x){return en[0]+x*(en[1]-en[0])},gc=function(){return Yt?Ne()==="absolute"?Yt.map(bd):Yt.slice():[0,1]},vd=function(){var x=Nt?.min;return x==null?.01:Math.min(1,Ne()==="absolute"?x/(en[1]-en[0]):x)},mc=function(x){return Ne()==="absolute"?Math.round(x):Math.round(x*1e4)/1e4},c2=function(x){Yt=x[0]<=1e-6&&x[1]>=1-1e-6?null:x.map(function(O){return mc(Ne()==="absolute"?l2(O):O)})},u2=function(){var x=Ne()==="absolute",O=Yt||(x?en:[0,1]);return{mode:Ne(),start:mc(O[0]),end:mc(O[1]),zoomed:Yt!==null,range:Yt?Yt.slice():null,clusters:tn.map(function(z){var P=z.chart,I=[P.xScale.invert(0),P.xScale.invert(P.width-P.margin.left-P.margin.right)].sort(function(Y,nt){return Y-nt});return{cluster:z.key,start:Math.round(I[0]),end:Math.round(I[1])}})}},Ia=null,no=function(x){if(clearTimeout(eo),eo=null,!(y.zoom!==!0||!Nt)){var O=u2(),z=JSON.stringify([O.mode,O.range,O.clusters]);(x==="render"||x==="set")&&z===Ia||(Ia=z,O.action=x,K("zoom",O))}},yc=function(){if(nn){var x=gc(),O=function(Y){return Y*100+"%"};nn.querySelector('[data-side="start"]').style.width=O(x[0]),nn.querySelector('[data-side="end"]').style.left=O(x[1]);var z=nn.querySelector('[data-zoom-part="window"]');z.style.left=O(x[0]),z.style.width=O(x[1]-x[0]);var P=Yt||(Ne()==="absolute"?en:[0,1]),I=function(Y){return Ne()==="absolute"?R.format(",.0f")(Y):R.format(".0%")(Y)};["start","end"].forEach(function(Y,nt){var wt=nn.querySelector('[data-zoom-part="'+Y+'"]');wt.style.left=O(x[nt]),wt.setAttribute("aria-valuenow",Math.round(x[nt]*100)),wt.setAttribute("aria-valuetext",I(P[nt]))}),z.setAttribute("aria-valuenow",Math.round(x[0]*100)),z.setAttribute("aria-valuetext",I(P[0])+" to "+I(P[1])),oe?.select(".geneviewer-zoom-buttons").property("hidden",Yt===null)}},bc=function(x){if(yc(),x)return Qn&&cancelAnimationFrame(Qn),Qn=null,xc();Qn||(Qn=requestAnimationFrame(function(){Qn=null,xc()}))},La=function(x,O){c2(x),Rt&&Nt?.update==="release"?yc():bc(O)},wd=function(){Yt!==null&&(La([0,1],!0),no("reset"))},f2=function(x){if(x.stopPropagation(),!(x.button!==0||Rt)){x.preventDefault();var O=x.currentTarget.getBoundingClientRect(),z=(x.clientX-O.left)/O.width,P=x.target.closest("[data-zoom-part]")?.getAttribute("data-zoom-part")??"track",I=gc();if(Rt={id:x.pointerId,left:O.left,width:O.width,at:z,moved:!1,stopListening:od({pointermove:h2,pointerup:vc,pointercancel:vc,blur:vc})},P==="track"){var Y=(I[1]-I[0])/2,nt=Math.max(Y,Math.min(1-Y,z));I=[nt-Y,nt+Y],Rt.moved=!0,La(I),P="window"}Rt.part=P,Rt.shares=I}},h2=function(x){if(!(!Rt||x.pointerId!==Rt.id)){x.preventDefault();var O=(x.clientX-Rt.left)/Rt.width-Rt.at,z=Rt.shares,P=vd(),I=Rt.part==="start"?[Math.max(0,Math.min(z[1]-P,z[0]+O)),z[1]]:Rt.part==="end"?[z[0],Math.min(1,Math.max(z[0]+P,z[1]+O))]:(function(){var Y=Math.max(-z[0],Math.min(1-z[1],O));return[z[0]+Y,z[1]+Y]})();Rt.moved=!0,La(I)}},vc=function(x){if(!(!Rt||x.pointerId!==void 0&&x.pointerId!==Rt.id)){var O=Rt;Rt=null,O.stopListening(),O.moved&&(bc(!0),no("drag"))}},d2=function(x){var O=x.target.getAttribute&&x.target.getAttribute("data-zoom-part");if(O){var z=gc(),P=vd(),I={ArrowLeft:-1,ArrowDown:-1,ArrowRight:1,ArrowUp:1}[x.key],Y=null;if(I){var nt=I*(x.shiftKey?.1:.01);Y=O==="start"?[Math.max(0,Math.min(z[1]-P,z[0]+nt)),z[1]]:O==="end"?[z[0],Math.min(1,Math.max(z[0]+P,z[1]+nt))]:[z[0]+Math.max(-z[0],Math.min(1-z[1],nt)),z[1]+Math.max(-z[0],Math.min(1-z[1],nt))]}else x.key==="Home"?Y=O==="end"?[z[0],Math.min(1,z[0]+P)]:O==="start"?[0,z[1]]:[0,z[1]-z[0]]:x.key==="End"&&(Y=O==="start"?[Math.max(0,z[1]-P),z[1]]:O==="end"?[z[0],1]:[1-(z[1]-z[0]),1]);Y&&(x.preventDefault(),x.stopPropagation(),La(Y),clearTimeout(eo),eo=setTimeout(function(){no("keyboard")},300))}},wc=function(x,O){Object.keys(O||{}).forEach(function(z){z.includes("-")?x.style.setProperty(z,O[z]):x.style[z]=O[z]})},p2=function(x){if(nn=null,!(!Nt||!tn.length)){var O=Ne()==="absolute";en=O?[R.min(tn,function(Ut){return Ut.chart.minStart}),R.max(tn,function(Ut){return Ut.chart.maxEnd})]:[0,1];var z=tn[0].chart,P=R.select(i).append("div").attr("class","geneviewer-zoom-row").style("height",x+"px"),I=i.getBoundingClientRect(),Y=I.width/i.offsetWidth||1,nt=z.svg.node().getBoundingClientRect(),wt=nt.width/z.width||1,kt=z.width-z.margin.left-z.margin.right,Pt=P.node().getBoundingClientRect(),Dt=P.append("div").attr("class","geneviewer-zoom-slider").attr("role","group").attr("aria-label","Zoom").style("left",(nt.left+z.margin.left*wt-Pt.left)/Y+"px").style("width",kt*wt/Y+"px").on("pointerdown",f2).on("click",function(Ut){Ut.stopPropagation()}).on("dblclick",function(Ut){Ut.stopPropagation(),wd()}).on("keydown",d2);if(wc(Dt.node(),Nt.style),Nt.overview!==!1){var _t=Dt.append("svg").attr("class","geneviewer-zoom-overview").attr("viewBox","0 0 1000 "+x).attr("preserveAspectRatio","none").attr("aria-hidden","true"),jt=(x-6)/tn.length,ae=Math.max(1,Math.min(jt*.7,8));tn.forEach(function(Ut,hn){var Tn=Ut.chart,Sr=Tn.width-Tn.margin.left-Tn.margin.right,io=function(rn){if(O)return bd(rn);var Jn=Tn.fullScale(rn);return Jn===null?null:Jn/Sr},Sc=function(rn){return Nt.color?Nt.color:Ut.group&&Tn.genesColorScale?Tn.genesColorScale(rn[Ut.group]):"#9e9e9e"};(Tn.data||[]).forEach(function(rn){var Jn=io(rn.start),oo=io(rn.end);Jn===null||oo===null||_t.append("rect").attr("x",Math.min(Jn,oo)*1e3).attr("width",Math.max(Math.abs(oo-Jn)*1e3,1)).attr("y",3+jt*hn+(jt-ae)/2).attr("height",ae).attr("fill",Sc(rn))})})}Dt.append("div").attr("class","geneviewer-zoom-shade").attr("data-side","start"),Dt.append("div").attr("class","geneviewer-zoom-shade").attr("data-side","end");var Fn=Dt.append("div").attr("class","geneviewer-zoom-window").attr("data-zoom-part","window");wc(Fn.node(),Nt.windowStyle),[Fn].concat(["start","end"].map(function(Ut){var hn=Dt.append("div").attr("class","geneviewer-zoom-handle").attr("data-zoom-part",Ut);return wc(hn.node(),Nt.handleStyle),hn})).forEach(function(Ut){var hn=Ut.attr("data-zoom-part");Ut.attr("tabindex",0).attr("role","slider").attr("aria-label",hn==="window"?"Zoom window":hn==="start"?"Zoom start":"Zoom end").attr("aria-valuemin",0).attr("aria-valuemax",100)}),nn=Dt.node(),yc()}},g2=function(){if(tn.some(function(O){return O.chart.zoom})){var x="http://www.w3.org/2000/svg";i.querySelectorAll("svg.GeneLink").forEach(function(O,z){var P=O.getBoundingClientRect(),I=P.width/(+O.getAttribute("width")||P.width)||1,Y="geneviewer-zoom-links-"+S+"-"+z,nt=document.createElementNS(x,"clipPath");nt.setAttribute("id",Y),tn.forEach(function(Pt){var Dt=Pt.chart,_t=Dt.svg.node().getBoundingClientRect(),jt=_t.width/Dt.width||1,ae=document.createElementNS(x,"rect");ae.setAttribute("x",(_t.left+Dt.margin.left*jt-P.left)/I),ae.setAttribute("y",0),ae.setAttribute("width",(Dt.width-Dt.margin.left-Dt.margin.right)*jt/I),ae.setAttribute("height",O.getAttribute("height")),nt.appendChild(ae)});var wt=document.createElementNS(x,"defs");wt.appendChild(nt);var kt=document.createElementNS(x,"g");kt.setAttribute("clip-path","url(#"+Y+")"),Array.from(O.childNodes).forEach(function(Pt){kt.appendChild(Pt)}),O.appendChild(wt),O.appendChild(kt)})}},m2=function(x){C||!Nt||(Yt=Array.isArray(x)&&x.length===2?x.slice().sort(function(O,z){return O-z}):null,Yt&&Ne()==="relative"&&Yt[0]<=0&&Yt[1]>=1&&(Yt=null),bc(!0),no("set"))},xd=function(){Zn(),tn=[],Pa=null;var x=q?Array.from(i.querySelectorAll(".legend.unselected"),function(se){return se.__data__}):[];if(q=!0,R.select(i).selectAll("*").remove(),F.forEach(function(se){i.style[se]=""}),n.server){var O=typeof g.width=="number"?g.width+"px":g.width,z=typeof O=="string"&&/^\d+(\.\d+)?px$/.test(O);z?(i.style.width=O,v=!0):v&&(i.style.width=w,v=!1);var P=i.parentElement&&getComputedStyle(i.parentElement),I=P&&/^(inline-)?flex$/.test(P.display)&&/^row/.test(P.flexDirection);z&&I?(i.style.flex="0 0 auto",_=!0):_&&(i.style.flex=b,_=!1)}i.style.height="100%",i.style.position="relative",i.style.boxSizing="border-box";var Y=ut({style:{}},"chartOptions",{style:s},d).style;F=Object.keys(Y);for(var nt in Y)i.style[nt]=Y[nt];var wt=0;if(h?.show){var kt=R.select(i).append("div").attr("id",`geneviewer-title-container-${S}`).classed("geneviewer-container",!0),Pt=(h.title&&h.subtitle?50:40)*Gn(d),Dt=ut({height:Pt},"titleOptions",h,d).height;wt=Le(Dt,i.clientHeight);var _t={...h,width:i.clientWidth,height:wt},jt=Ql(`#geneviewer-title-container-${S}`,"svg-container","titleOptions",_t,d).title(_t.title,_t.subtitle,_t.show??!1,_t)}var ae=f?.show===!1?0:Le(f?.height,i.clientHeight);if(f?.group!==null&&f?.show){R.select(i).append("div").attr("id",`geneviewer-legend-container-${S}`).classed("geneviewer-container",!0);var Fn=Array.isArray(l)&&l.length?Lh(l,d):null;Pa=Fn&&Fn.colorBarOptions.position==="legend"?Fn:null;var Ut={...f,width:i.clientWidth,height:Le(f.height,i.clientHeight),editable:y.select===!0||y.dblclick===!0||y.click===!0&&y.legendClick!==!1};Ql(`#geneviewer-legend-container-${S}`,"svg-container","legendOptions",Ut,d).legendData(c).legend(Ut.group??!1,Ut.show??!1,i.id,Ut,Pa);var hn=R.select(`#geneviewer-legend-container-${S}`).node(),Tn=hn.getBoundingClientRect();ae=Tn.height}R.select(i).append("div").attr("id",`geneviewer-graph-container-${S}`).style("flex-direction",a.direction).style("position","relative").classed("geneviewer-container",!0);var Sr=Object.keys(u),io=Nt?Nt.height??24:0,Sc=Nt?io+8:0,rn=Nt&&Yt?{from:Yt[0],to:Yt[1],mode:Ne()}:null,Jn=(Array.isArray(l)?l:[]).map(se=>({data:jr(se.data),options:se.options??{}}));Sr.forEach(function(se){var me=u[se],Ya=me.container,v2=me.cluster,w2=jr(u[se].data),Sd=me.scale,Ua=me.clusterTitle,Ha=me.footer,ao=me.clusterLabel,kc=me.labels,kd=me.sequence,Wa=me.genes,Ac=me.transcript,Ad=me.coordinates,Ed=me.scaleBar,x2=me.annotations,Md=me.trackMouse,Cd=me.tooltip,on=JSON.parse(JSON.stringify(Ya));if(on.height=Le(on.height,i.clientHeight),on.height-=wt/Sr.length,on.height-=ae?ae/Sr.length:0,on.height-=Sc/Sr.length,typeof Ya.height=="string"&&Ya.height.endsWith("%")){var _2=(parseFloat(Y.paddingTop)||0)+(parseFloat(Y.paddingBottom)||0);on.height-=_2/Sr.length}on.width=Le(on.width,i.clientWidth),ao?.show&&(on.margin={...on.margin,...Xy(Ya,ao,d)});var ja=Ql(`#geneviewer-graph-container-${S}`,"svg-container","containerOptions",on,d).cluster(v2).title(Ua?.title,Ua?.subtitle,Ua?.show??!1,Ua,"clusterTitleOptions").footer(Ha?.title,Ha?.subtitle,Ha?.show??!1,Ha).clusterLabel(ao?.title,ao?.show??!1,ao).geneData(c,w2).scale(rn?Object.assign({},Sd,{zoom:rn}):Sd).sequence(kd?.show??!1,kd).genes(Wa?.group,Wa?.show??!1,Wa).transcript(Ac?.group,Ac?.show??!1,Ac);ja.svg.attr("data-cluster",se),Jn.forEach(Fd=>{ja.links(Jy(Fd.data,se),se,Fd.options)}),ja.coordinates(Ad?.show??!1,Ad).labels(kc?.label,kc?.show??!1,kc).scaleBar(Ed?.show??!1,Ed).addAnnotations(x2).trackMouse(Md?.show??!1,Md).tooltip(Cd?.show??!1,Cd).clipZoom(),tn.push({key:se,chart:ja,group:Wa?.group})}),p2(io);var oo=ut({position:"bottom"},"legendOptions",f,d).position;oo=="bottom"&&f?.show&&f?.group!==null&&i.appendChild(hn),a2(),i.querySelectorAll(".legend").forEach(function(se){x.includes(se.__data__)&&se.dispatchEvent(new MouseEvent("click",{bubbles:!1}))})},_d=function(){if(!l||l.length===0)return;let x=R.select(`#geneviewer-graph-container-${S}`);Qy(x,l,d),tb(x,l,d,Pa!==null),g2()},y2=function(x){for(var O=[],z=i.parentElement;z;z=z.parentElement)(z.scrollTop||z.scrollLeft)&&O.push([z,z.scrollTop,z.scrollLeft]);var P=document.scrollingElement;P&&!O.some(function(I){return I[0]===P})&&O.push([P,P.scrollTop,P.scrollLeft]);try{x()}finally{O.forEach(function(I){I[0].scrollTop!==I[1]&&(I[0].scrollTop=I[1]),I[0].scrollLeft!==I[2]&&(I[0].scrollLeft=I[2])})}},xc=function(){var x=nn&&nn.contains(document.activeElement)?document.activeElement.getAttribute("data-zoom-part"):null;y2(function(){xd(),_d(),ie(),r2(),gd(),fd()}),x&&nn&&nn.querySelector('[data-zoom-part="'+x+'"]')?.focus({preventScroll:!0})},b2=function(x){if(x.data)return jr(x.data);var O=x.dataColumns??[],z=[];return Object.values(x.series??{}).forEach(function(P){jr(P.data).forEach(function(I){var Y={};O.forEach(function(nt){Y[nt]=I[nt]}),z.push(Y)})}),z.sort(function(P,I){return P.rowID-I.rowID})},qa=function(x){var O=b2(x),z=JSON.stringify([O,x.group,x.cluster,x.legend?.group]);if($e&&z===L&&x.events?.drag===!0){Qi=x;return}Qi=null,Zn(),Nt=x.zoom&&x.zoom.show!==!1?x.zoom:null;var P=Nt?JSON.stringify([Nt.range??null,Ne()]):null,I=x.events?.renderId??null,Y=I!==null&&I!==yd;if(yd=I,(z!==L||P!==md||Y)&&(Yt=s2(),Ia=null),Nt||(Ia=null),md=P,L!==null&&z!==L&&(q=!1,T.length&&(N([]),X()),ze.clear(),Kr={},Qr={}),za={},L=z,a=x.graphContainer,s=x.style,c=O,l=x.links,u=x.series,m=x.saveButton,p=x.toolbar??{},h=x.title,f=x.legend,d=x.theme??{},y=x.events??{},g=x.size??{},xd(),_d(),ie(),gd(),fd(),no("render"),y.rendered===!0){var nt={id:y.renderId??i.id+"-render-"+ ++wM,chartId:i.id,width:i.clientWidth,height:i.clientHeight};K("rendered",nt)}},Cn=null,_c=function(x){x&&x.version!==void 0?(Cn=structuredClone(x),qa(Ma(Cn))):(Cn=null,qa(x))},ro={update:function(x){C||(Cn!==null?(Cn=rd(Cn,x),qa(Ma(Cn))):_c(x))},setSpec:function(x){if(!C){if(!x||x.version===void 0)throw new Error("setSpec() needs a spec with a version");_c(x)}},getSpec:function(){return Cn===null?null:structuredClone(Cn)},resize:function(){C||xc()},on:function(x,O){if(!kM.includes(x))throw new Error("Unknown event: "+x);return(k[x]=k[x]||[]).push(O),function(){ro.off(x,O)}},off:function(x,O){var z=k[x]||[],P=z.indexOf(O);P>=0&&z.splice(P,1)},zoomTo:m2,select:function(x){if(!C){if(y.select!==!0){qe("chart.select() needs events: { select: true }; nothing was selected.");return}Tt(St(x==null?[]:Array.isArray(x)?x:[x]),"replace")}},getSelection:function(){return ot()},undo:function(){C||to(!0)},redo:function(){C||to(!1)},download:function(x,O){if(x!=="svg"&&x!=="png")return Promise.reject(new Error('download() needs the format "svg" or "png"'));var z=O??"graph."+x,P=n.saveAs||id;return Promise.resolve().then(function(){return x==="svg"?new Blob([ro.toSVG()],{type:"image/svg+xml;charset=utf-8"}):ro.toPNG()}).then(function(I){return P(I,z)}).then(function(){})},toSVG:function(){return Zi(i,oe?oe.node():null)},toPNG:function(){return Ca(i,oe?oe.node():null)},destroy:function(){C||(C=!0,Qi=null,Zn(),Da(!1),Rt&&Rt.stopListening(),Rt=null,clearTimeout(_r),clearTimeout(eo),Qn&&cancelAnimationFrame(Qn),Oa===hd&&(Oa=null),k={},[["click",dd,!0],["click",Zr],["pointerdown",Ra,!0],["focusin",Ra],["click",Zt],["dblclick",Mn],["keydown",pc],["pointerdown",uc],["mousemove",hc],["mouseleave",dc]].forEach(function(x){i.removeEventListener(x[0],x[1],x[2])}),R.select(i).on("mouseleave",null).selectAll("*").remove(),F.forEach(function(x){i.style[x]=""}),i.classList.remove("geneviewer-draggable","geneviewer-selectable","geneviewer-highlight","geneviewer-dragging","geneviewer-hover-below"),o&&i.classList.remove("geneviewer"))}};return Object.keys(n.on||{}).forEach(function(x){ro.on(x,n.on[x])}),_c(e),ro}return M2(EM);})();
|
|
417
417
|
//# sourceMappingURL=geneviewer.min.js.map
|