@explorables/ride_my_kuramotocycle
Version:
This explorable illustrates the Kuramoto model for phase coupled oscillators. This model is used to describe synchronization phenomena in natural systems, e.g. the flash synchronization of fire flies or wall-mounted clocks.
2 lines • 178 kB
JavaScript
(function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode('/*! tailwindcss v4.1.4 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial}}}@layer theme{:root,:host{--tw-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--tw-color-black:#000;--tw-color-white:#fff;--tw-spacing:.25rem;--tw-container-5xl:64rem;--tw-text-2xl:1.5rem;--tw-text-2xl--line-height:calc(2/1.5);--tw-text-3xl:1.875rem;--tw-text-3xl--line-height: 1.2 ;--tw-text-5xl:3rem;--tw-text-5xl--line-height:1;--tw-font-weight-light:300}}@layer base,components;@layer utilities{.tw\\:m-8{margin:calc(var(--tw-spacing)*8)}.tw\\:grid{display:grid}.tw\\:max-w-5xl{max-width:var(--tw-container-5xl)}.tw\\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.tw\\:border-1{border-style:var(--tw-border-style);border-width:1px}.tw\\:border-black{border-color:var(--tw-color-black)}.tw\\:bg-white{background-color:var(--tw-color-white)}.tw\\:p-0{padding:calc(var(--tw-spacing)*0)}.tw\\:px-1{padding-inline:calc(var(--tw-spacing)*1)}.tw\\:px-10{padding-inline:calc(var(--tw-spacing)*10)}.tw\\:font-sans{font-family:var(--tw-font-sans)}.tw\\:text-2xl{font-size:var(--tw-text-2xl);line-height:var(--tw-leading,var(--tw-text-2xl--line-height))}.tw\\:text-3xl{font-size:var(--tw-text-3xl);line-height:var(--tw-leading,var(--tw-text-3xl--line-height))}.tw\\:text-5xl{font-size:var(--tw-text-5xl);line-height:var(--tw-leading,var(--tw-text-5xl--line-height))}.tw\\:font-light{--tw-font-weight:var(--tw-font-weight-light);font-weight:var(--tw-font-weight-light)}.tw\\:text-black{color:var(--tw-color-black)}@media (min-width:40rem){.tw\\:sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tw\\:sm\\:gap-8{gap:calc(var(--tw-spacing)*8)}.tw\\:sm\\:p-0{padding:calc(var(--tw-spacing)*0)}}@media (prefers-color-scheme:dark){.tw\\:dark\\:border-white{border-color:var(--tw-color-white)}.tw\\:dark\\:bg-black{background-color:var(--tw-color-black)}.tw\\:dark\\:text-white{color:var(--tw-color-white)}}.debug-grid-16{background-image:linear-gradient(90deg,#0000ff1a 1px,#0000 1px),linear-gradient(#0000ff1a 1px,#0000 1px);background-repeat:repeat;background-size:6.25% 6.25%,6.25% 6.25%}}.explorable *,.explorable :before,.explorable :after{box-sizing:border-box}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}._agent_79sa2_1{opacity:.7;stroke:#000;stroke-width:.5px}._xlabel_79sa2_22,._ylabel_79sa2_25{text-anchor:middle}._caxis_79sa2_28{stroke:#000;stroke-width:.5px;stroke-opacity:.5}._dot_79sa2_34{stroke:gray;stroke-width:.5px;fill:#8b0000}._op_79sa2_40{stroke:#8b0000;stroke-width:.5px;fill:none}._plotline_79sa2_46{stroke:#8b0000;stroke-width:2px;fill:none}._osctrack_79sa2_52{fill:none;stroke-width:1px;stroke-opacity:.6;stroke:gray}@media (prefers-color-scheme: dark){._caxis_79sa2_28{stroke:#fff}._plot_79sa2_11{color:#fff}._xlabel_79sa2_22,._ylabel_79sa2_25{fill:#fff}._plotline_79sa2_46{stroke:red}._op_79sa2_40{stroke:red;stroke-width:1px;fill:none}._dot_79sa2_34{stroke:gray;stroke-width:.5px;fill:red}}._displayPanel_79sa2_89,._controlPanel_79sa2_96{display:block;line-height:0;box-sizing:border-box}._displayPanel_79sa2_89>canvas,._displayPanel_79sa2_89>svg,._controlPanel_79sa2_96>svg,._controlPanel_79sa2_96>canvas{display:block;box-sizing:border-box}')),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
(function(P,Gt){typeof exports=="object"&&typeof module<"u"?Gt(exports):typeof define=="function"&&define.amd?define(["exports"],Gt):(P=typeof globalThis<"u"?globalThis:P||self,Gt(P.ride_my_kuramotocycle={}))})(this,function(P){"use strict";const Gt={display_type:"svg",debug:!1,debug_lattice:"debug-grid-16",controls_grid:{nx:12,ny:12},display_size:{width:500,height:500},controls_size:{width:480,height:480},display_class:" tw:p-0 tw:border-1 tw:border-black tw:dark:border-white",controls_class:"d3-widgets tw:p-0",container_class:"tw:font-sans tw:font-light tw:grid tw:grid-cols-1 tw:sm:grid-cols-2 tw:sm:gap-8 tw:px-1 tw:sm:p-0 tw:m-8"};function Kn(t,n){return t==null||n==null?NaN:t<n?-1:t>n?1:t>=n?0:NaN}function cl(t,n){return t==null||n==null?NaN:n<t?-1:n>t?1:n>=t?0:NaN}function oa(t){let n,e,r;t.length!==2?(n=Kn,e=(s,l)=>Kn(t(s),l),r=(s,l)=>t(s)-l):(n=t===Kn||t===cl?t:fl,e=t,r=t);function i(s,l,u=0,c=s.length){if(u<c){if(n(l,l)!==0)return c;do{const h=u+c>>>1;e(s[h],l)<0?u=h+1:c=h}while(u<c)}return u}function a(s,l,u=0,c=s.length){if(u<c){if(n(l,l)!==0)return c;do{const h=u+c>>>1;e(s[h],l)<=0?u=h+1:c=h}while(u<c)}return u}function o(s,l,u=0,c=s.length){const h=i(s,l,u,c-1);return h>u&&r(s[h-1],l)>-r(s[h],l)?h-1:h}return{left:i,center:o,right:a}}function fl(){return 0}function hl(t){return t===null?NaN:+t}const dl=oa(Kn).right;oa(hl).center;const pl=Math.sqrt(50),gl=Math.sqrt(10),_l=Math.sqrt(2);function Zn(t,n,e){const r=(n-t)/Math.max(0,e),i=Math.floor(Math.log10(r)),a=r/Math.pow(10,i),o=a>=pl?10:a>=gl?5:a>=_l?2:1;let s,l,u;return i<0?(u=Math.pow(10,-i)/o,s=Math.round(t*u),l=Math.round(n*u),s/u<t&&++s,l/u>n&&--l,u=-u):(u=Math.pow(10,i)*o,s=Math.round(t/u),l=Math.round(n/u),s*u<t&&++s,l*u>n&&--l),l<s&&.5<=e&&e<2?Zn(t,n,e*2):[s,l,u]}function yl(t,n,e){if(n=+n,t=+t,e=+e,!(e>0))return[];if(t===n)return[t];const r=n<t,[i,a,o]=r?Zn(n,t,e):Zn(t,n,e);if(!(a>=i))return[];const s=a-i+1,l=new Array(s);if(r)if(o<0)for(let u=0;u<s;++u)l[u]=(a-u)/-o;else for(let u=0;u<s;++u)l[u]=(a-u)*o;else if(o<0)for(let u=0;u<s;++u)l[u]=(i+u)/-o;else for(let u=0;u<s;++u)l[u]=(i+u)*o;return l}function gr(t,n,e){return n=+n,t=+t,e=+e,Zn(t,n,e)[2]}function ml(t,n,e){n=+n,t=+t,e=+e;const r=n<t,i=r?gr(n,t,e):gr(t,n,e);return(r?-1:1)*(i<0?1/-i:i)}function vl(t){return t}var _r=1,yr=2,mr=3,yn=4,sa=1e-6;function wl(t){return"translate("+t+",0)"}function bl(t){return"translate(0,"+t+")"}function xl(t){return n=>+t(n)}function Ml(t,n){return n=Math.max(0,t.bandwidth()-n*2)/2,t.round()&&(n=Math.round(n)),e=>+t(e)+n}function Al(){return!this.__axis}function ua(t,n){var e=[],r=null,i=null,a=6,o=6,s=3,l=typeof window<"u"&&window.devicePixelRatio>1?0:.5,u=t===_r||t===yn?-1:1,c=t===yn||t===yr?"x":"y",h=t===_r||t===mr?wl:bl;function f(d){var g=r??(n.ticks?n.ticks.apply(n,e):n.domain()),y=i??(n.tickFormat?n.tickFormat.apply(n,e):vl),w=Math.max(a,0)+s,x=n.range(),p=+x[0]+l,M=+x[x.length-1]+l,_=(n.bandwidth?Ml:xl)(n.copy(),l),v=d.selection?d.selection():d,S=v.selectAll(".domain").data([null]),T=v.selectAll(".tick").data(g,n).order(),C=T.exit(),D=T.enter().append("g").attr("class","tick"),F=T.select("line"),m=T.select("text");S=S.merge(S.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),T=T.merge(D),F=F.merge(D.append("line").attr("stroke","currentColor").attr(c+"2",u*a)),m=m.merge(D.append("text").attr("fill","currentColor").attr(c,u*w).attr("dy",t===_r?"0em":t===mr?"0.71em":"0.32em")),d!==v&&(S=S.transition(d),T=T.transition(d),F=F.transition(d),m=m.transition(d),C=C.transition(d).attr("opacity",sa).attr("transform",function(N){return isFinite(N=_(N))?h(N+l):this.getAttribute("transform")}),D.attr("opacity",sa).attr("transform",function(N){var $=this.parentNode.__axis;return h(($&&isFinite($=$(N))?$:_(N))+l)})),C.remove(),S.attr("d",t===yn||t===yr?o?"M"+u*o+","+p+"H"+l+"V"+M+"H"+u*o:"M"+l+","+p+"V"+M:o?"M"+p+","+u*o+"V"+l+"H"+M+"V"+u*o:"M"+p+","+l+"H"+M),T.attr("opacity",1).attr("transform",function(N){return h(_(N)+l)}),F.attr(c+"2",u*a),m.attr(c,u*w).text(y),v.filter(Al).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===yr?"start":t===yn?"end":"middle"),v.each(function(){this.__axis=_})}return f.scale=function(d){return arguments.length?(n=d,f):n},f.ticks=function(){return e=Array.from(arguments),f},f.tickArguments=function(d){return arguments.length?(e=d==null?[]:Array.from(d),f):e.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?(a=o=+d,f):a},f.tickSizeInner=function(d){return arguments.length?(a=+d,f):a},f.tickSizeOuter=function(d){return arguments.length?(o=+d,f):o},f.tickPadding=function(d){return arguments.length?(s=+d,f):s},f.offset=function(d){return arguments.length?(l=+d,f):l},f}function $l(t){return ua(mr,t)}function Tl(t){return ua(yn,t)}var kl={value:()=>{}};function la(){for(var t=0,n=arguments.length,e={},r;t<n;++t){if(!(r=arguments[t]+"")||r in e||/[\s.]/.test(r))throw new Error("illegal type: "+r);e[r]=[]}return new Wn(e)}function Wn(t){this._=t}function Sl(t,n){return t.trim().split(/^|\s+/).map(function(e){var r="",i=e.indexOf(".");if(i>=0&&(r=e.slice(i+1),e=e.slice(0,i)),e&&!n.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:r}})}Wn.prototype=la.prototype={constructor:Wn,on:function(t,n){var e=this._,r=Sl(t+"",e),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(t=r[a]).type)&&(i=Nl(e[i],t.name)))return i;return}if(n!=null&&typeof n!="function")throw new Error("invalid callback: "+n);for(;++a<o;)if(i=(t=r[a]).type)e[i]=ca(e[i],t.name,n);else if(n==null)for(i in e)e[i]=ca(e[i],t.name,null);return this},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new Wn(t)},call:function(t,n){if((i=arguments.length-2)>0)for(var e=new Array(i),r=0,i,a;r<i;++r)e[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(a=this._[t],r=0,i=a.length;r<i;++r)a[r].value.apply(n,e)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,a=r.length;i<a;++i)r[i].value.apply(n,e)}};function Nl(t,n){for(var e=0,r=t.length,i;e<r;++e)if((i=t[e]).name===n)return i.value}function ca(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=kl,t=t.slice(0,r).concat(t.slice(r+1));break}return e!=null&&t.push({name:n,value:e}),t}var vr="http://www.w3.org/1999/xhtml";const fa={svg:"http://www.w3.org/2000/svg",xhtml:vr,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Jn(t){var n=t+="",e=n.indexOf(":");return e>=0&&(n=t.slice(0,e))!=="xmlns"&&(t=t.slice(e+1)),fa.hasOwnProperty(n)?{space:fa[n],local:t}:t}function Pl(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===vr&&n.documentElement.namespaceURI===vr?n.createElement(t):n.createElementNS(e,t)}}function El(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function ha(t){var n=Jn(t);return(n.local?El:Pl)(n)}function Ol(){}function wr(t){return t==null?Ol:function(){return this.querySelector(t)}}function zl(t){typeof t!="function"&&(t=wr(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var a=n[i],o=a.length,s=r[i]=new Array(o),l,u,c=0;c<o;++c)(l=a[c])&&(u=t.call(l,l.__data__,c,a))&&("__data__"in l&&(u.__data__=l.__data__),s[c]=u);return new X(r,this._parents)}function Cl(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function Il(){return[]}function da(t){return t==null?Il:function(){return this.querySelectorAll(t)}}function Rl(t){return function(){return Cl(t.apply(this,arguments))}}function jl(t){typeof t=="function"?t=Rl(t):t=da(t);for(var n=this._groups,e=n.length,r=[],i=[],a=0;a<e;++a)for(var o=n[a],s=o.length,l,u=0;u<s;++u)(l=o[u])&&(r.push(t.call(l,l.__data__,u,o)),i.push(l));return new X(r,i)}function pa(t){return function(){return this.matches(t)}}function ga(t){return function(n){return n.matches(t)}}var Fl=Array.prototype.find;function Ll(t){return function(){return Fl.call(this.children,t)}}function Dl(){return this.firstElementChild}function ql(t){return this.select(t==null?Dl:Ll(typeof t=="function"?t:ga(t)))}var Bl=Array.prototype.filter;function Hl(){return Array.from(this.children)}function Xl(t){return function(){return Bl.call(this.children,t)}}function Ul(t){return this.selectAll(t==null?Hl:Xl(typeof t=="function"?t:ga(t)))}function Yl(t){typeof t!="function"&&(t=pa(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var a=n[i],o=a.length,s=r[i]=[],l,u=0;u<o;++u)(l=a[u])&&t.call(l,l.__data__,u,a)&&s.push(l);return new X(r,this._parents)}function _a(t){return new Array(t.length)}function Gl(){return new X(this._enter||this._groups.map(_a),this._parents)}function Qn(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}Qn.prototype={constructor:Qn,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function Vl(t){return function(){return t}}function Kl(t,n,e,r,i,a){for(var o=0,s,l=n.length,u=a.length;o<u;++o)(s=n[o])?(s.__data__=a[o],r[o]=s):e[o]=new Qn(t,a[o]);for(;o<l;++o)(s=n[o])&&(i[o]=s)}function Zl(t,n,e,r,i,a,o){var s,l,u=new Map,c=n.length,h=a.length,f=new Array(c),d;for(s=0;s<c;++s)(l=n[s])&&(f[s]=d=o.call(l,l.__data__,s,n)+"",u.has(d)?i[s]=l:u.set(d,l));for(s=0;s<h;++s)d=o.call(t,a[s],s,a)+"",(l=u.get(d))?(r[s]=l,l.__data__=a[s],u.delete(d)):e[s]=new Qn(t,a[s]);for(s=0;s<c;++s)(l=n[s])&&u.get(f[s])===l&&(i[s]=l)}function Wl(t){return t.__data__}function Jl(t,n){if(!arguments.length)return Array.from(this,Wl);var e=n?Zl:Kl,r=this._parents,i=this._groups;typeof t!="function"&&(t=Vl(t));for(var a=i.length,o=new Array(a),s=new Array(a),l=new Array(a),u=0;u<a;++u){var c=r[u],h=i[u],f=h.length,d=Ql(t.call(c,c&&c.__data__,u,r)),g=d.length,y=s[u]=new Array(g),w=o[u]=new Array(g),x=l[u]=new Array(f);e(c,h,y,w,x,d,n);for(var p=0,M=0,_,v;p<g;++p)if(_=y[p]){for(p>=M&&(M=p+1);!(v=w[M])&&++M<g;);_._next=v||null}}return o=new X(o,r),o._enter=s,o._exit=l,o}function Ql(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function tc(){return new X(this._exit||this._groups.map(_a),this._parents)}function nc(t,n,e){var r=this.enter(),i=this,a=this.exit();return typeof t=="function"?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),n!=null&&(i=n(i),i&&(i=i.selection())),e==null?a.remove():e(a),r&&i?r.merge(i).order():i}function ec(t){for(var n=t.selection?t.selection():t,e=this._groups,r=n._groups,i=e.length,a=r.length,o=Math.min(i,a),s=new Array(i),l=0;l<o;++l)for(var u=e[l],c=r[l],h=u.length,f=s[l]=new Array(h),d,g=0;g<h;++g)(d=u[g]||c[g])&&(f[g]=d);for(;l<i;++l)s[l]=e[l];return new X(s,this._parents)}function rc(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r=t[n],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function ic(t){t||(t=ac);function n(h,f){return h&&f?t(h.__data__,f.__data__):!h-!f}for(var e=this._groups,r=e.length,i=new Array(r),a=0;a<r;++a){for(var o=e[a],s=o.length,l=i[a]=new Array(s),u,c=0;c<s;++c)(u=o[c])&&(l[c]=u);l.sort(n)}return new X(i,this._parents).order()}function ac(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function oc(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function sc(){return Array.from(this)}function uc(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function lc(){let t=0;for(const n of this)++t;return t}function cc(){return!this.node()}function fc(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i=n[e],a=0,o=i.length,s;a<o;++a)(s=i[a])&&t.call(s,s.__data__,a,i);return this}function hc(t){return function(){this.removeAttribute(t)}}function dc(t){return function(){this.removeAttributeNS(t.space,t.local)}}function pc(t,n){return function(){this.setAttribute(t,n)}}function gc(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function _c(t,n){return function(){var e=n.apply(this,arguments);e==null?this.removeAttribute(t):this.setAttribute(t,e)}}function yc(t,n){return function(){var e=n.apply(this,arguments);e==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function mc(t,n){var e=Jn(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((n==null?e.local?dc:hc:typeof n=="function"?e.local?yc:_c:e.local?gc:pc)(e,n))}function ya(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function vc(t){return function(){this.style.removeProperty(t)}}function wc(t,n,e){return function(){this.style.setProperty(t,n,e)}}function bc(t,n,e){return function(){var r=n.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function xc(t,n,e){return arguments.length>1?this.each((n==null?vc:typeof n=="function"?bc:wc)(t,n,e??"")):Vt(this.node(),t)}function Vt(t,n){return t.style.getPropertyValue(n)||ya(t).getComputedStyle(t,null).getPropertyValue(n)}function Mc(t){return function(){delete this[t]}}function Ac(t,n){return function(){this[t]=n}}function $c(t,n){return function(){var e=n.apply(this,arguments);e==null?delete this[t]:this[t]=e}}function Tc(t,n){return arguments.length>1?this.each((n==null?Mc:typeof n=="function"?$c:Ac)(t,n)):this.node()[t]}function ma(t){return t.trim().split(/^|\s+/)}function br(t){return t.classList||new va(t)}function va(t){this._node=t,this._names=ma(t.getAttribute("class")||"")}va.prototype={add:function(t){var n=this._names.indexOf(t);n<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function wa(t,n){for(var e=br(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function ba(t,n){for(var e=br(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function kc(t){return function(){wa(this,t)}}function Sc(t){return function(){ba(this,t)}}function Nc(t,n){return function(){(n.apply(this,arguments)?wa:ba)(this,t)}}function Pc(t,n){var e=ma(t+"");if(arguments.length<2){for(var r=br(this.node()),i=-1,a=e.length;++i<a;)if(!r.contains(e[i]))return!1;return!0}return this.each((typeof n=="function"?Nc:n?kc:Sc)(e,n))}function Ec(){this.textContent=""}function Oc(t){return function(){this.textContent=t}}function zc(t){return function(){var n=t.apply(this,arguments);this.textContent=n??""}}function Cc(t){return arguments.length?this.each(t==null?Ec:(typeof t=="function"?zc:Oc)(t)):this.node().textContent}function Ic(){this.innerHTML=""}function Rc(t){return function(){this.innerHTML=t}}function jc(t){return function(){var n=t.apply(this,arguments);this.innerHTML=n??""}}function Fc(t){return arguments.length?this.each(t==null?Ic:(typeof t=="function"?jc:Rc)(t)):this.node().innerHTML}function Lc(){this.nextSibling&&this.parentNode.appendChild(this)}function Dc(){return this.each(Lc)}function qc(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Bc(){return this.each(qc)}function Hc(t){var n=typeof t=="function"?t:ha(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})}function Xc(){return null}function Uc(t,n){var e=typeof t=="function"?t:ha(t),r=n==null?Xc:typeof n=="function"?n:wr(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})}function Yc(){var t=this.parentNode;t&&t.removeChild(this)}function Gc(){return this.each(Yc)}function Vc(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Kc(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Zc(t){return this.select(t?Kc:Vc)}function Wc(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Jc(t){return function(n){t.call(this,n,this.__data__)}}function Qc(t){return t.trim().split(/^|\s+/).map(function(n){var e="",r=n.indexOf(".");return r>=0&&(e=n.slice(r+1),n=n.slice(0,r)),{type:n,name:e}})}function tf(t){return function(){var n=this.__on;if(n){for(var e=0,r=-1,i=n.length,a;e<i;++e)a=n[e],(!t.type||a.type===t.type)&&a.name===t.name?this.removeEventListener(a.type,a.listener,a.options):n[++r]=a;++r?n.length=r:delete this.__on}}}function nf(t,n,e){return function(){var r=this.__on,i,a=Jc(n);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===t.type&&i.name===t.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=e),i.value=n;return}}this.addEventListener(t.type,a,e),i={type:t.type,name:t.name,value:n,listener:a,options:e},r?r.push(i):this.__on=[i]}}function ef(t,n,e){var r=Qc(t+""),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var l=0,u=s.length,c;l<u;++l)for(i=0,c=s[l];i<a;++i)if((o=r[i]).type===c.type&&o.name===c.name)return c.value}return}for(s=n?nf:tf,i=0;i<a;++i)this.each(s(r[i],n,e));return this}function xa(t,n,e){var r=ya(t),i=r.CustomEvent;typeof i=="function"?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function rf(t,n){return function(){return xa(this,t,n)}}function af(t,n){return function(){return xa(this,t,n.apply(this,arguments))}}function of(t,n){return this.each((typeof n=="function"?af:rf)(t,n))}function*sf(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var Ma=[null];function X(t,n){this._groups=t,this._parents=n}function mn(){return new X([[document.documentElement]],Ma)}function uf(){return this}X.prototype=mn.prototype={constructor:X,select:zl,selectAll:jl,selectChild:ql,selectChildren:Ul,filter:Yl,data:Jl,enter:Gl,exit:tc,join:nc,merge:ec,selection:uf,order:rc,sort:ic,call:oc,nodes:sc,node:uc,size:lc,empty:cc,each:fc,attr:mc,style:xc,property:Tc,classed:Pc,text:Cc,html:Fc,raise:Dc,lower:Bc,append:Hc,insert:Uc,remove:Gc,clone:Zc,datum:Wc,on:ef,dispatch:of,[Symbol.iterator]:sf};function lf(t){return typeof t=="string"?new X([[document.querySelector(t)]],[document.documentElement]):new X([[t]],Ma)}function xr(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function Aa(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function vn(){}var wn=.7,te=1/wn,Kt="\\s*([+-]?\\d+)\\s*",bn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",it="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",cf=/^#([0-9a-f]{3,8})$/,ff=new RegExp(`^rgb\\(${Kt},${Kt},${Kt}\\)$`),hf=new RegExp(`^rgb\\(${it},${it},${it}\\)$`),df=new RegExp(`^rgba\\(${Kt},${Kt},${Kt},${bn}\\)$`),pf=new RegExp(`^rgba\\(${it},${it},${it},${bn}\\)$`),gf=new RegExp(`^hsl\\(${bn},${it},${it}\\)$`),_f=new RegExp(`^hsla\\(${bn},${it},${it},${bn}\\)$`),$a={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};xr(vn,Nt,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Ta,formatHex:Ta,formatHex8:yf,formatHsl:mf,formatRgb:ka,toString:ka});function Ta(){return this.rgb().formatHex()}function yf(){return this.rgb().formatHex8()}function mf(){return Oa(this).formatHsl()}function ka(){return this.rgb().formatRgb()}function Nt(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=cf.exec(t))?(e=n[1].length,n=parseInt(n[1],16),e===6?Sa(n):e===3?new B(n>>8&15|n>>4&240,n>>4&15|n&240,(n&15)<<4|n&15,1):e===8?ne(n>>24&255,n>>16&255,n>>8&255,(n&255)/255):e===4?ne(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|n&240,((n&15)<<4|n&15)/255):null):(n=ff.exec(t))?new B(n[1],n[2],n[3],1):(n=hf.exec(t))?new B(n[1]*255/100,n[2]*255/100,n[3]*255/100,1):(n=df.exec(t))?ne(n[1],n[2],n[3],n[4]):(n=pf.exec(t))?ne(n[1]*255/100,n[2]*255/100,n[3]*255/100,n[4]):(n=gf.exec(t))?Ea(n[1],n[2]/100,n[3]/100,1):(n=_f.exec(t))?Ea(n[1],n[2]/100,n[3]/100,n[4]):$a.hasOwnProperty(t)?Sa($a[t]):t==="transparent"?new B(NaN,NaN,NaN,0):null}function Sa(t){return new B(t>>16&255,t>>8&255,t&255,1)}function ne(t,n,e,r){return r<=0&&(t=n=e=NaN),new B(t,n,e,r)}function vf(t){return t instanceof vn||(t=Nt(t)),t?(t=t.rgb(),new B(t.r,t.g,t.b,t.opacity)):new B}function ee(t,n,e,r){return arguments.length===1?vf(t):new B(t,n,e,r??1)}function B(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}xr(B,ee,Aa(vn,{brighter(t){return t=t==null?te:Math.pow(te,t),new B(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?wn:Math.pow(wn,t),new B(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new B(Pt(this.r),Pt(this.g),Pt(this.b),re(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:Na,formatHex:Na,formatHex8:wf,formatRgb:Pa,toString:Pa}));function Na(){return`#${Et(this.r)}${Et(this.g)}${Et(this.b)}`}function wf(){return`#${Et(this.r)}${Et(this.g)}${Et(this.b)}${Et((isNaN(this.opacity)?1:this.opacity)*255)}`}function Pa(){const t=re(this.opacity);return`${t===1?"rgb(":"rgba("}${Pt(this.r)}, ${Pt(this.g)}, ${Pt(this.b)}${t===1?")":`, ${t})`}`}function re(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Pt(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Et(t){return t=Pt(t),(t<16?"0":"")+t.toString(16)}function Ea(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new K(t,n,e,r)}function Oa(t){if(t instanceof K)return new K(t.h,t.s,t.l,t.opacity);if(t instanceof vn||(t=Nt(t)),!t)return new K;if(t instanceof K)return t;t=t.rgb();var n=t.r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),a=Math.max(n,e,r),o=NaN,s=a-i,l=(a+i)/2;return s?(n===a?o=(e-r)/s+(e<r)*6:e===a?o=(r-n)/s+2:o=(n-e)/s+4,s/=l<.5?a+i:2-a-i,o*=60):s=l>0&&l<1?0:o,new K(o,s,l,t.opacity)}function bf(t,n,e,r){return arguments.length===1?Oa(t):new K(t,n,e,r??1)}function K(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}xr(K,bf,Aa(vn,{brighter(t){return t=t==null?te:Math.pow(te,t),new K(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?wn:Math.pow(wn,t),new K(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new B(Mr(t>=240?t-240:t+120,i,r),Mr(t,i,r),Mr(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new K(za(this.h),ie(this.s),ie(this.l),re(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=re(this.opacity);return`${t===1?"hsl(":"hsla("}${za(this.h)}, ${ie(this.s)*100}%, ${ie(this.l)*100}%${t===1?")":`, ${t})`}`}}));function za(t){return t=(t||0)%360,t<0?t+360:t}function ie(t){return Math.max(0,Math.min(1,t||0))}function Mr(t,n,e){return(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)*255}function xf(t,n,e,r,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*n+(4-6*a+3*o)*e+(1+3*t+3*a-3*o)*r+o*i)/6}function Mf(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],a=t[r+1],o=r>0?t[r-1]:2*i-a,s=r<n-1?t[r+2]:2*a-i;return xf((e-r/n)*n,o,i,a,s)}}const Ar=t=>()=>t;function Af(t,n){return function(e){return t+e*n}}function $f(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}function Tf(t){return(t=+t)==1?Ca:function(n,e){return e-n?$f(n,e,t):Ar(isNaN(n)?e:n)}}function Ca(t,n){var e=n-t;return e?Af(t,e):Ar(isNaN(t)?n:t)}const ae=function t(n){var e=Tf(n);function r(i,a){var o=e((i=ee(i)).r,(a=ee(a)).r),s=e(i.g,a.g),l=e(i.b,a.b),u=Ca(i.opacity,a.opacity);return function(c){return i.r=o(c),i.g=s(c),i.b=l(c),i.opacity=u(c),i+""}}return r.gamma=t,r}(1);function kf(t){return function(n){var e=n.length,r=new Array(e),i=new Array(e),a=new Array(e),o,s;for(o=0;o<e;++o)s=ee(n[o]),r[o]=s.r||0,i[o]=s.g||0,a[o]=s.b||0;return r=t(r),i=t(i),a=t(a),s.opacity=1,function(l){return s.r=r(l),s.g=i(l),s.b=a(l),s+""}}}var Sf=kf(Mf);function Nf(t,n){n||(n=[]);var e=t?Math.min(n.length,t.length):0,r=n.slice(),i;return function(a){for(i=0;i<e;++i)r[i]=t[i]*(1-a)+n[i]*a;return r}}function Pf(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Ef(t,n){var e=n?n.length:0,r=t?Math.min(e,t.length):0,i=new Array(r),a=new Array(e),o;for(o=0;o<r;++o)i[o]=kr(t[o],n[o]);for(;o<e;++o)a[o]=n[o];return function(s){for(o=0;o<r;++o)a[o]=i[o](s);return a}}function Of(t,n){var e=new Date;return t=+t,n=+n,function(r){return e.setTime(t*(1-r)+n*r),e}}function Z(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}function zf(t,n){var e={},r={},i;(t===null||typeof t!="object")&&(t={}),(n===null||typeof n!="object")&&(n={});for(i in n)i in t?e[i]=kr(t[i],n[i]):r[i]=n[i];return function(a){for(i in e)r[i]=e[i](a);return r}}var $r=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Tr=new RegExp($r.source,"g");function Cf(t){return function(){return t}}function If(t){return function(n){return t(n)+""}}function Ia(t,n){var e=$r.lastIndex=Tr.lastIndex=0,r,i,a,o=-1,s=[],l=[];for(t=t+"",n=n+"";(r=$r.exec(t))&&(i=Tr.exec(n));)(a=i.index)>e&&(a=n.slice(e,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,l.push({i:o,x:Z(r,i)})),e=Tr.lastIndex;return e<n.length&&(a=n.slice(e),s[o]?s[o]+=a:s[++o]=a),s.length<2?l[0]?If(l[0].x):Cf(n):(n=l.length,function(u){for(var c=0,h;c<n;++c)s[(h=l[c]).i]=h.x(u);return s.join("")})}function kr(t,n){var e=typeof n,r;return n==null||e==="boolean"?Ar(n):(e==="number"?Z:e==="string"?(r=Nt(n))?(n=r,ae):Ia:n instanceof Nt?ae:n instanceof Date?Of:Pf(n)?Nf:Array.isArray(n)?Ef:typeof n.valueOf!="function"&&typeof n.toString!="function"||isNaN(n)?zf:Z)(t,n)}function Rf(t,n){return t=+t,n=+n,function(e){return Math.round(t*(1-e)+n*e)}}var Ra=180/Math.PI,Sr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ja(t,n,e,r,i,a){var o,s,l;return(o=Math.sqrt(t*t+n*n))&&(t/=o,n/=o),(l=t*e+n*r)&&(e-=t*l,r-=n*l),(s=Math.sqrt(e*e+r*r))&&(e/=s,r/=s,l/=s),t*r<n*e&&(t=-t,n=-n,l=-l,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(n,t)*Ra,skewX:Math.atan(l)*Ra,scaleX:o,scaleY:s}}var oe;function jf(t){const n=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return n.isIdentity?Sr:ja(n.a,n.b,n.c,n.d,n.e,n.f)}function Ff(t){return t==null||(oe||(oe=document.createElementNS("http://www.w3.org/2000/svg","g")),oe.setAttribute("transform",t),!(t=oe.transform.baseVal.consolidate()))?Sr:(t=t.matrix,ja(t.a,t.b,t.c,t.d,t.e,t.f))}function Fa(t,n,e,r){function i(u){return u.length?u.pop()+" ":""}function a(u,c,h,f,d,g){if(u!==h||c!==f){var y=d.push("translate(",null,n,null,e);g.push({i:y-4,x:Z(u,h)},{i:y-2,x:Z(c,f)})}else(h||f)&&d.push("translate("+h+n+f+e)}function o(u,c,h,f){u!==c?(u-c>180?c+=360:c-u>180&&(u+=360),f.push({i:h.push(i(h)+"rotate(",null,r)-2,x:Z(u,c)})):c&&h.push(i(h)+"rotate("+c+r)}function s(u,c,h,f){u!==c?f.push({i:h.push(i(h)+"skewX(",null,r)-2,x:Z(u,c)}):c&&h.push(i(h)+"skewX("+c+r)}function l(u,c,h,f,d,g){if(u!==h||c!==f){var y=d.push(i(d)+"scale(",null,",",null,")");g.push({i:y-4,x:Z(u,h)},{i:y-2,x:Z(c,f)})}else(h!==1||f!==1)&&d.push(i(d)+"scale("+h+","+f+")")}return function(u,c){var h=[],f=[];return u=t(u),c=t(c),a(u.translateX,u.translateY,c.translateX,c.translateY,h,f),o(u.rotate,c.rotate,h,f),s(u.skewX,c.skewX,h,f),l(u.scaleX,u.scaleY,c.scaleX,c.scaleY,h,f),u=c=null,function(d){for(var g=-1,y=f.length,w;++g<y;)h[(w=f[g]).i]=w.x(d);return h.join("")}}}var Lf=Fa(jf,"px, ","px)","deg)"),Df=Fa(Ff,", ",")",")"),Zt=0,xn=0,Mn=0,La=1e3,se,An,ue=0,Ot=0,le=0,$n=typeof performance=="object"&&performance.now?performance:Date,Da=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function ce(){return Ot||(Da(qf),Ot=$n.now()+le)}function qf(){Ot=0}function Tn(){this._call=this._time=this._next=null}Tn.prototype=qa.prototype={constructor:Tn,restart:function(t,n,e){if(typeof t!="function")throw new TypeError("callback is not a function");e=(e==null?ce():+e)+(n==null?0:+n),!this._next&&An!==this&&(An?An._next=this:se=this,An=this),this._call=t,this._time=e,Nr()},stop:function(){this._call&&(this._call=null,this._time=1/0,Nr())}};function qa(t,n,e){var r=new Tn;return r.restart(t,n,e),r}function Bf(){ce(),++Zt;for(var t=se,n;t;)(n=Ot-t._time)>=0&&t._call.call(void 0,n),t=t._next;--Zt}function Ba(){Ot=(ue=$n.now())+le,Zt=xn=0;try{Bf()}finally{Zt=0,Xf(),Ot=0}}function Hf(){var t=$n.now(),n=t-ue;n>La&&(le-=n,ue=t)}function Xf(){for(var t,n=se,e,r=1/0;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:se=e);An=t,Nr(r)}function Nr(t){if(!Zt){xn&&(xn=clearTimeout(xn));var n=t-Ot;n>24?(t<1/0&&(xn=setTimeout(Ba,t-$n.now()-le)),Mn&&(Mn=clearInterval(Mn))):(Mn||(ue=$n.now(),Mn=setInterval(Hf,La)),Zt=1,Da(Ba))}}function Ha(t,n,e){var r=new Tn;return n=n==null?0:+n,r.restart(i=>{r.stop(),t(i+n)},n,e),r}function Uf(t,n,e){var r=new Tn,i=n;return r._restart=r.restart,r.restart=function(a,o,s){o=+o,s=s==null?ce():+s,r._restart(function l(u){u+=i,r._restart(l,i+=o,s),a(u)},o,s)},r.restart(t,n,e),r}var Yf=la("start","end","cancel","interrupt"),Gf=[],Xa=0,Ua=1,Pr=2,fe=3,Ya=4,Er=5,he=6;function de(t,n,e,r,i,a){var o=t.__transition;if(!o)t.__transition={};else if(e in o)return;Vf(t,e,{name:n,index:r,group:i,on:Yf,tween:Gf,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:Xa})}function Or(t,n){var e=W(t,n);if(e.state>Xa)throw new Error("too late; already scheduled");return e}function at(t,n){var e=W(t,n);if(e.state>fe)throw new Error("too late; already running");return e}function W(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function Vf(t,n,e){var r=t.__transition,i;r[n]=e,e.timer=qa(a,0,e.time);function a(u){e.state=Ua,e.timer.restart(o,e.delay,e.time),e.delay<=u&&o(u-e.delay)}function o(u){var c,h,f,d;if(e.state!==Ua)return l();for(c in r)if(d=r[c],d.name===e.name){if(d.state===fe)return Ha(o);d.state===Ya?(d.state=he,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete r[c]):+c<n&&(d.state=he,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete r[c])}if(Ha(function(){e.state===fe&&(e.state=Ya,e.timer.restart(s,e.delay,e.time),s(u))}),e.state=Pr,e.on.call("start",t,t.__data__,e.index,e.group),e.state===Pr){for(e.state=fe,i=new Array(f=e.tween.length),c=0,h=-1;c<f;++c)(d=e.tween[c].value.call(t,t.__data__,e.index,e.group))&&(i[++h]=d);i.length=h+1}}function s(u){for(var c=u<e.duration?e.ease.call(null,u/e.duration):(e.timer.restart(l),e.state=Er,1),h=-1,f=i.length;++h<f;)i[h].call(t,c);e.state===Er&&(e.on.call("end",t,t.__data__,e.index,e.group),l())}function l(){e.state=he,e.timer.stop(),delete r[n];for(var u in r)return;delete t.__transition}}function Kf(t,n){var e=t.__transition,r,i,a=!0,o;if(e){n=n==null?null:n+"";for(o in e){if((r=e[o]).name!==n){a=!1;continue}i=r.state>Pr&&r.state<Er,r.state=he,r.timer.stop(),r.on.call(i?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete e[o]}a&&delete t.__transition}}function Zf(t){return this.each(function(){Kf(this,t)})}function Wf(t,n){var e,r;return function(){var i=at(this,t),a=i.tween;if(a!==e){r=e=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===n){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function Jf(t,n,e){var r,i;if(typeof e!="function")throw new Error;return function(){var a=at(this,t),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:n,value:e},l=0,u=i.length;l<u;++l)if(i[l].name===n){i[l]=s;break}l===u&&i.push(s)}a.tween=i}}function Qf(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r=W(this.node(),e).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===t)return o.value;return null}return this.each((n==null?Wf:Jf)(e,t,n))}function zr(t,n,e){var r=t._id;return t.each(function(){var i=at(this,r);(i.value||(i.value={}))[n]=e.apply(this,arguments)}),function(i){return W(i,r).value[n]}}function Ga(t,n){var e;return(typeof n=="number"?Z:n instanceof Nt?ae:(e=Nt(n))?(n=e,ae):Ia)(t,n)}function th(t){return function(){this.removeAttribute(t)}}function nh(t){return function(){this.removeAttributeNS(t.space,t.local)}}function eh(t,n,e){var r,i=e+"",a;return function(){var o=this.getAttribute(t);return o===i?null:o===r?a:a=n(r=o,e)}}function rh(t,n,e){var r,i=e+"",a;return function(){var o=this.getAttributeNS(t.space,t.local);return o===i?null:o===r?a:a=n(r=o,e)}}function ih(t,n,e){var r,i,a;return function(){var o,s=e(this),l;return s==null?void this.removeAttribute(t):(o=this.getAttribute(t),l=s+"",o===l?null:o===r&&l===i?a:(i=l,a=n(r=o,s)))}}function ah(t,n,e){var r,i,a;return function(){var o,s=e(this),l;return s==null?void this.removeAttributeNS(t.space,t.local):(o=this.getAttributeNS(t.space,t.local),l=s+"",o===l?null:o===r&&l===i?a:(i=l,a=n(r=o,s)))}}function oh(t,n){var e=Jn(t),r=e==="transform"?Df:Ga;return this.attrTween(t,typeof n=="function"?(e.local?ah:ih)(e,r,zr(this,"attr."+t,n)):n==null?(e.local?nh:th)(e):(e.local?rh:eh)(e,r,n))}function sh(t,n){return function(e){this.setAttribute(t,n.call(this,e))}}function uh(t,n){return function(e){this.setAttributeNS(t.space,t.local,n.call(this,e))}}function lh(t,n){var e,r;function i(){var a=n.apply(this,arguments);return a!==r&&(e=(r=a)&&uh(t,a)),e}return i._value=n,i}function ch(t,n){var e,r;function i(){var a=n.apply(this,arguments);return a!==r&&(e=(r=a)&&sh(t,a)),e}return i._value=n,i}function fh(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(n==null)return this.tween(e,null);if(typeof n!="function")throw new Error;var r=Jn(t);return this.tween(e,(r.local?lh:ch)(r,n))}function hh(t,n){return function(){Or(this,t).delay=+n.apply(this,arguments)}}function dh(t,n){return n=+n,function(){Or(this,t).delay=n}}function ph(t){var n=this._id;return arguments.length?this.each((typeof t=="function"?hh:dh)(n,t)):W(this.node(),n).delay}function gh(t,n){return function(){at(this,t).duration=+n.apply(this,arguments)}}function _h(t,n){return n=+n,function(){at(this,t).duration=n}}function yh(t){var n=this._id;return arguments.length?this.each((typeof t=="function"?gh:_h)(n,t)):W(this.node(),n).duration}function mh(t,n){if(typeof n!="function")throw new Error;return function(){at(this,t).ease=n}}function vh(t){var n=this._id;return arguments.length?this.each(mh(n,t)):W(this.node(),n).ease}function wh(t,n){return function(){var e=n.apply(this,arguments);if(typeof e!="function")throw new Error;at(this,t).ease=e}}function bh(t){if(typeof t!="function")throw new Error;return this.each(wh(this._id,t))}function xh(t){typeof t!="function"&&(t=pa(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var a=n[i],o=a.length,s=r[i]=[],l,u=0;u<o;++u)(l=a[u])&&t.call(l,l.__data__,u,a)&&s.push(l);return new lt(r,this._parents,this._name,this._id)}function Mh(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,a=Math.min(r,i),o=new Array(r),s=0;s<a;++s)for(var l=n[s],u=e[s],c=l.length,h=o[s]=new Array(c),f,d=0;d<c;++d)(f=l[d]||u[d])&&(h[d]=f);for(;s<r;++s)o[s]=n[s];return new lt(o,this._parents,this._name,this._id)}function Ah(t){return(t+"").trim().split(/^|\s+/).every(function(n){var e=n.indexOf(".");return e>=0&&(n=n.slice(0,e)),!n||n==="start"})}function $h(t,n,e){var r,i,a=Ah(n)?Or:at;return function(){var o=a(this,t),s=o.on;s!==r&&(i=(r=s).copy()).on(n,e),o.on=i}}function Th(t,n){var e=this._id;return arguments.length<2?W(this.node(),e).on.on(t):this.each($h(e,t,n))}function kh(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}function Sh(){return this.on("end.remove",kh(this._id))}function Nh(t){var n=this._name,e=this._id;typeof t!="function"&&(t=wr(t));for(var r=this._groups,i=r.length,a=new Array(i),o=0;o<i;++o)for(var s=r[o],l=s.length,u=a[o]=new Array(l),c,h,f=0;f<l;++f)(c=s[f])&&(h=t.call(c,c.__data__,f,s))&&("__data__"in c&&(h.__data__=c.__data__),u[f]=h,de(u[f],n,e,f,u,W(c,e)));return new lt(a,this._parents,n,e)}function Ph(t){var n=this._name,e=this._id;typeof t!="function"&&(t=da(t));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var l=r[s],u=l.length,c,h=0;h<u;++h)if(c=l[h]){for(var f=t.call(c,c.__data__,h,l),d,g=W(c,e),y=0,w=f.length;y<w;++y)(d=f[y])&&de(d,n,e,y,f,g);a.push(f),o.push(c)}return new lt(a,o,n,e)}var Eh=mn.prototype.constructor;function Oh(){return new Eh(this._groups,this._parents)}function zh(t,n){var e,r,i;return function(){var a=Vt(this,t),o=(this.style.removeProperty(t),Vt(this,t));return a===o?null:a===e&&o===r?i:i=n(e=a,r=o)}}function Va(t){return function(){this.style.removeProperty(t)}}function Ch(t,n,e){var r,i=e+"",a;return function(){var o=Vt(this,t);return o===i?null:o===r?a:a=n(r=o,e)}}function Ih(t,n,e){var r,i,a;return function(){var o=Vt(this,t),s=e(this),l=s+"";return s==null&&(l=s=(this.style.removeProperty(t),Vt(this,t))),o===l?null:o===r&&l===i?a:(i=l,a=n(r=o,s))}}function Rh(t,n){var e,r,i,a="style."+n,o="end."+a,s;return function(){var l=at(this,t),u=l.on,c=l.value[a]==null?s||(s=Va(n)):void 0;(u!==e||i!==c)&&(r=(e=u).copy()).on(o,i=c),l.on=r}}function jh(t,n,e){var r=(t+="")=="transform"?Lf:Ga;return n==null?this.styleTween(t,zh(t,r)).on("end.style."+t,Va(t)):typeof n=="function"?this.styleTween(t,Ih(t,r,zr(this,"style."+t,n))).each(Rh(this._id,t)):this.styleTween(t,Ch(t,r,n),e).on("end.style."+t,null)}function Fh(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}function Lh(t,n,e){var r,i;function a(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&Fh(t,o,e)),r}return a._value=n,a}function Dh(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(n==null)return this.tween(r,null);if(typeof n!="function")throw new Error;return this.tween(r,Lh(t,n,e??""))}function qh(t){return function(){this.textContent=t}}function Bh(t){return function(){var n=t(this);this.textContent=n??""}}function Hh(t){return this.tween("text",typeof t=="function"?Bh(zr(this,"text",t)):qh(t==null?"":t+""))}function Xh(t){return function(n){this.textContent=t.call(this,n)}}function Uh(t){var n,e;function r(){var i=t.apply(this,arguments);return i!==e&&(n=(e=i)&&Xh(i)),n}return r._value=t,r}function Yh(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;return this.tween(n,Uh(t))}function Gh(){for(var t=this._name,n=this._id,e=Ka(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,l,u=0;u<s;++u)if(l=o[u]){var c=W(l,n);de(l,t,e,u,o,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new lt(r,this._parents,t,e)}function Vh(){var t,n,e=this,r=e._id,i=e.size();return new Promise(function(a,o){var s={value:o},l={value:function(){--i===0&&a()}};e.each(function(){var u=at(this,r),c=u.on;c!==t&&(n=(t=c).copy(),n._.cancel.push(s),n._.interrupt.push(s),n._.end.push(l)),u.on=n}),i===0&&a()})}var Kh=0;function lt(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function Ka(){return++Kh}var ct=mn.prototype;lt.prototype={constructor:lt,select:Nh,selectAll:Ph,selectChild:ct.selectChild,selectChildren:ct.selectChildren,filter:xh,merge:Mh,selection:Oh,transition:Gh,call:ct.call,nodes:ct.nodes,node:ct.node,size:ct.size,empty:ct.empty,each:ct.each,on:Th,attr:oh,attrTween:fh,style:jh,styleTween:Dh,text:Hh,textTween:Yh,remove:Sh,tween:Qf,delay:ph,duration:yh,ease:vh,easeVarying:bh,end:Vh,[Symbol.iterator]:ct[Symbol.iterator]};function Zh(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Wh={time:null,delay:0,duration:250,ease:Zh};function Jh(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))throw new Error(`transition ${n} not found`);return e}function Qh(t){var n,e;t instanceof lt?(n=t._id,t=t._name):(n=Ka(),(e=Wh).time=ce(),t=t==null?null:t+"");for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,l,u=0;u<s;++u)(l=o[u])&&de(l,t,n,u,o,e||Jh(l,n));return new lt(r,this._parents,t,n)}mn.prototype.interrupt=Zf,mn.prototype.transition=Qh;const Cr=Math.PI,Ir=2*Cr,zt=1e-6,td=Ir-zt;function Za(t){this._+=t[0];for(let n=1,e=t.length;n<e;++n)this._+=arguments[n]+t[n]}function nd(t){let n=Math.floor(t);if(!(n>=0))throw new Error(`invalid digits: ${t}`);if(n>15)return Za;const e=10**n;return function(r){this._+=r[0];for(let i=1,a=r.length;i<a;++i)this._+=Math.round(arguments[i]*e)/e+r[i]}}class ed{constructor(n){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=n==null?Za:nd(n)}moveTo(n,e){this._append`M${this._x0=this._x1=+n},${this._y0=this._y1=+e}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(n,e){this._append`L${this._x1=+n},${this._y1=+e}`}quadraticCurveTo(n,e,r,i){this._append`Q${+n},${+e},${this._x1=+r},${this._y1=+i}`}bezierCurveTo(n,e,r,i,a,o){this._append`C${+n},${+e},${+r},${+i},${this._x1=+a},${this._y1=+o}`}arcTo(n,e,r,i,a){if(n=+n,e=+e,r=+r,i=+i,a=+a,a<0)throw new Error(`negative radius: ${a}`);let o=this._x1,s=this._y1,l=r-n,u=i-e,c=o-n,h=s-e,f=c*c+h*h;if(this._x1===null)this._append`M${this._x1=n},${this._y1=e}`;else if(f>zt)if(!(Math.abs(h*l-u*c)>zt)||!a)this._append`L${this._x1=n},${this._y1=e}`;else{let d=r-o,g=i-s,y=l*l+u*u,w=d*d+g*g,x=Math.sqrt(y),p=Math.sqrt(f),M=a*Math.tan((Cr-Math.acos((y+f-w)/(2*x*p)))/2),_=M/p,v=M/x;Math.abs(_-1)>zt&&this._append`L${n+_*c},${e+_*h}`,this._append`A${a},${a},0,0,${+(h*d>c*g)},${this._x1=n+v*l},${this._y1=e+v*u}`}}arc(n,e,r,i,a,o){if(n=+n,e=+e,r=+r,o=!!o,r<0)throw new Error(`negative radius: ${r}`);let s=r*Math.cos(i),l=r*Math.sin(i),u=n+s,c=e+l,h=1^o,f=o?i-a:a-i;this._x1===null?this._append`M${u},${c}`:(Math.abs(this._x1-u)>zt||Math.abs(this._y1-c)>zt)&&this._append`L${u},${c}`,r&&(f<0&&(f=f%Ir+Ir),f>td?this._append`A${r},${r},0,1,${h},${n-s},${e-l}A${r},${r},0,1,${h},${this._x1=u},${this._y1=c}`:f>zt&&this._append`A${r},${r},0,${+(f>=Cr)},${h},${this._x1=n+r*Math.cos(a)},${this._y1=e+r*Math.sin(a)}`)}rect(n,e,r,i){this._append`M${this._x0=this._x1=+n},${this._y0=this._y1=+e}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}}function rd(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function pe(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var e,r=t.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+t.slice(e+1)]}function Wt(t){return t=pe(Math.abs(t)),t?t[1]:NaN}function id(t,n){return function(e,r){for(var i=e.length,a=[],o=0,s=t[0],l=0;i>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),a.push(e.substring(i-=s,i+s)),!((l+=s+1)>r));)s=t[o=(o+1)%t.length];return a.reverse().join(n)}}function ad(t){return function(n){return n.replace(/[0-9]/g,function(e){return t[+e]})}}var od=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ge(t){if(!(n=od.exec(t)))throw new Error("invalid format: "+t);var n;return new Rr({fill:n[1],align:n[2],sign:n[3],symbol:n[4],zero:n[5],width:n[6],comma:n[7],precision:n[8]&&n[8].slice(1),trim:n[9],type:n[10]})}ge.prototype=Rr.prototype;function Rr(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==