plotly.js
Version:
The open source javascript graphing library that powers plotly
18 lines • 1.61 MB
JavaScript
/**
* plotly.js (gl3d - minified) v3.0.1
* Copyright 2012-2025, Plotly, Inc.
* All rights reserved.
* Licensed under the MIT license
*/
(
function(root, factory) {
if (typeof module === "object" && module.exports) {
module.exports = factory();
} else {
root.moduleName = factory();
}
} (typeof self !== "undefined" ? self : this, () => {
"use strict";var Plotly=(()=>{var ab=Object.defineProperty;var AB=Object.getOwnPropertyDescriptor;var kB=Object.getOwnPropertyNames;var SB=Object.prototype.hasOwnProperty;var ib=(e,r)=>()=>(e&&(r=e(e=0)),r);var pe=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var CB=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of kB(r))!SB.call(e,a)&&a!==t&&ab(e,a,{get:()=>r[a],enumerable:!(n=AB(r,a))||n.enumerable});return e};var EB=e=>CB(ab({},"__esModule",{value:!0}),e);var pc=pe(ob=>{"use strict";ob.version="3.0.1"});var sb=pe((lb,gc)=>{(function(r,t,n){t[r]=t[r]||n(),typeof gc!="undefined"&&gc.exports&&(gc.exports=t[r])})("Promise",typeof window!="undefined"?window:lb,function(){"use strict";var r,t,n,a=Object.prototype.toString,o=typeof setImmediate!="undefined"?function(k){return setImmediate(k)}:setTimeout;try{Object.defineProperty({},"x",{}),r=function(k,S,x,T){return Object.defineProperty(k,S,{value:x,writable:!0,configurable:T!==!1})}}catch(m){r=function(S,x,T){return S[x]=T,S}}n=function(){var k,S,x;function T(d,_){this.fn=d,this.self=_,this.next=void 0}return{add:function(_,g){x=new T(_,g),S?S.next=x:k=x,S=x,x=void 0},drain:function(){var _=k;for(k=S=t=void 0;_;)_.fn.call(_.self),_=_.next}}}();function i(m,k){n.add(m,k),t||(t=o(n.drain))}function l(m){var k,S=typeof m;return m!=null&&(S=="object"||S=="function")&&(k=m.then),typeof k=="function"?k:!1}function u(){for(var m=0;m<this.chain.length;m++)s(this,this.state===1?this.chain[m].success:this.chain[m].failure,this.chain[m]);this.chain.length=0}function s(m,k,S){var x,T;try{k===!1?S.reject(m.msg):(k===!0?x=m.msg:x=k.call(void 0,m.msg),x===S.promise?S.reject(TypeError("Promise-chain cycle")):(T=l(x))?T.call(x,S.resolve,S.reject):S.resolve(x))}catch(d){S.reject(d)}}function f(m){var k,S=this;if(!S.triggered){S.triggered=!0,S.def&&(S=S.def);try{(k=l(m))?i(function(){var x=new b(S);try{k.call(m,function(){f.apply(x,arguments)},function(){v.apply(x,arguments)})}catch(T){v.call(x,T)}}):(S.msg=m,S.state=1,S.chain.length>0&&i(u,S))}catch(x){v.call(new b(S),x)}}}function v(m){var k=this;k.triggered||(k.triggered=!0,k.def&&(k=k.def),k.msg=m,k.state=2,k.chain.length>0&&i(u,k))}function p(m,k,S,x){for(var T=0;T<k.length;T++)(function(_){m.resolve(k[_]).then(function(c){S(_,c)},x)})(T)}function b(m){this.def=m,this.triggered=!1}function y(m){this.promise=m,this.state=0,this.triggered=!1,this.chain=[],this.msg=void 0}function w(m){if(typeof m!="function")throw TypeError("Not a function");if(this.__NPO__!==0)throw TypeError("Not a promise");this.__NPO__=1;var k=new y(this);this.then=function(x,T){var d={success:typeof x=="function"?x:!0,failure:typeof T=="function"?T:!1};return d.promise=new this.constructor(function(g,c){if(typeof g!="function"||typeof c!="function")throw TypeError("Not a function");d.resolve=g,d.reject=c}),k.chain.push(d),k.state!==0&&i(u,k),d.promise},this.catch=function(x){return this.then(void 0,x)};try{m.call(void 0,function(x){f.call(k,x)},function(x){v.call(k,x)})}catch(S){v.call(k,S)}}var M=r({},"constructor",w,!1);return w.prototype=M,r(M,"__NPO__",0,!1),r(w,"resolve",function(k){var S=this;return k&&typeof k=="object"&&k.__NPO__===1?k:new S(function(T,d){if(typeof T!="function"||typeof d!="function")throw TypeError("Not a function");T(k)})}),r(w,"reject",function(k){return new this(function(x,T){if(typeof x!="function"||typeof T!="function")throw TypeError("Not a function");T(k)})}),r(w,"all",function(k){var S=this;return a.call(k)!="[object Array]"?S.reject(TypeError("Not an array")):k.length===0?S.resolve([]):new S(function(T,d){if(typeof T!="function"||typeof d!="function")throw TypeError("Not a function");var _=k.length,g=Array(_),c=0;p(S,k,function(h,R){g[h]=R,++c===_&&T(g)},d)})}),r(w,"race",function(k){var S=this;return a.call(k)!="[object Array]"?S.reject(TypeError("Not an array")):new S(function(T,d){if(typeof T!="function"||typeof d!="function")throw TypeError("Not a function");p(S,k,function(g,c){T(c)},d)})}),w})});var it=pe((Nue,yc)=>{(function(){var e={version:"3.8.2"},r=[].slice,t=function(C){return r.call(C)},n=self.document;function a(C){return C&&(C.ownerDocument||C.document||C).documentElement}function o(C){return C&&(C.ownerDocument&&C.ownerDocument.defaultView||C.document&&C||C.defaultView)}if(n)try{t(n.documentElement.childNodes)[0].nodeType}catch(C){t=function(z){for(var B=z.length,V=new Array(B);B--;)V[B]=z[B];return V}}if(Date.now||(Date.now=function(){return+new Date}),n)try{n.createElement("DIV").style.setProperty("opacity",0,"")}catch(C){var i=this.Element.prototype,l=i.setAttribute,u=i.setAttributeNS,s=this.CSSStyleDeclaration.prototype,f=s.setProperty;i.setAttribute=function(z,B){l.call(this,z,B+"")},i.setAttributeNS=function(z,B,V){u.call(this,z,B,V+"")},s.setProperty=function(z,B,V){f.call(this,z,B+"",V)}}e.ascending=v;function v(C,z){return C<z?-1:C>z?1:C>=z?0:NaN}e.descending=function(C,z){return z<C?-1:z>C?1:z>=C?0:NaN},e.min=function(C,z){var B=-1,V=C.length,W,J;if(arguments.length===1){for(;++B<V;)if((J=C[B])!=null&&J>=J){W=J;break}for(;++B<V;)(J=C[B])!=null&&W>J&&(W=J)}else{for(;++B<V;)if((J=z.call(C,C[B],B))!=null&&J>=J){W=J;break}for(;++B<V;)(J=z.call(C,C[B],B))!=null&&W>J&&(W=J)}return W},e.max=function(C,z){var B=-1,V=C.length,W,J;if(arguments.length===1){for(;++B<V;)if((J=C[B])!=null&&J>=J){W=J;break}for(;++B<V;)(J=C[B])!=null&&J>W&&(W=J)}else{for(;++B<V;)if((J=z.call(C,C[B],B))!=null&&J>=J){W=J;break}for(;++B<V;)(J=z.call(C,C[B],B))!=null&&J>W&&(W=J)}return W},e.extent=function(C,z){var B=-1,V=C.length,W,J,le;if(arguments.length===1){for(;++B<V;)if((J=C[B])!=null&&J>=J){W=le=J;break}for(;++B<V;)(J=C[B])!=null&&(W>J&&(W=J),le<J&&(le=J))}else{for(;++B<V;)if((J=z.call(C,C[B],B))!=null&&J>=J){W=le=J;break}for(;++B<V;)(J=z.call(C,C[B],B))!=null&&(W>J&&(W=J),le<J&&(le=J))}return[W,le]};function p(C){return C===null?NaN:+C}function b(C){return!isNaN(C)}e.sum=function(C,z){var B=0,V=C.length,W,J=-1;if(arguments.length===1)for(;++J<V;)b(W=+C[J])&&(B+=W);else for(;++J<V;)b(W=+z.call(C,C[J],J))&&(B+=W);return B},e.mean=function(C,z){var B=0,V=C.length,W,J=-1,le=V;if(arguments.length===1)for(;++J<V;)b(W=p(C[J]))?B+=W:--le;else for(;++J<V;)b(W=p(z.call(C,C[J],J)))?B+=W:--le;if(le)return B/le},e.quantile=function(C,z){var B=(C.length-1)*z+1,V=Math.floor(B),W=+C[V-1],J=B-V;return J?W+J*(C[V]-W):W},e.median=function(C,z){var B=[],V=C.length,W,J=-1;if(arguments.length===1)for(;++J<V;)b(W=p(C[J]))&&B.push(W);else for(;++J<V;)b(W=p(z.call(C,C[J],J)))&&B.push(W);if(B.length)return e.quantile(B.sort(v),.5)},e.variance=function(C,z){var B=C.length,V=0,W,J,le=0,ie=-1,fe=0;if(arguments.length===1)for(;++ie<B;)b(W=p(C[ie]))&&(J=W-V,V+=J/++fe,le+=J*(W-V));else for(;++ie<B;)b(W=p(z.call(C,C[ie],ie)))&&(J=W-V,V+=J/++fe,le+=J*(W-V));if(fe>1)return le/(fe-1)},e.deviation=function(){var C=e.variance.apply(this,arguments);return C&&Math.sqrt(C)};function y(C){return{left:function(z,B,V,W){for(arguments.length<3&&(V=0),arguments.length<4&&(W=z.length);V<W;){var J=V+W>>>1;C(z[J],B)<0?V=J+1:W=J}return V},right:function(z,B,V,W){for(arguments.length<3&&(V=0),arguments.length<4&&(W=z.length);V<W;){var J=V+W>>>1;C(z[J],B)>0?W=J:V=J+1}return V}}}var w=y(v);e.bisectLeft=w.left,e.bisect=e.bisectRight=w.right,e.bisector=function(C){return y(C.length===1?function(z,B){return v(C(z),B)}:C)},e.shuffle=function(C,z,B){(V=arguments.length)<3&&(B=C.length,V<2&&(z=0));for(var V=B-z,W,J;V;)J=Math.random()*V--|0,W=C[V+z],C[V+z]=C[J+z],C[J+z]=W;return C},e.permute=function(C,z){for(var B=z.length,V=new Array(B);B--;)V[B]=C[z[B]];return V},e.pairs=function(C){for(var z=0,B=C.length-1,V,W=C[0],J=new Array(B<0?0:B);z<B;)J[z]=[V=W,W=C[++z]];return J},e.transpose=function(C){if(!(J=C.length))return[];for(var z=-1,B=e.min(C,M),V=new Array(B);++z<B;)for(var W=-1,J,le=V[z]=new Array(J);++W<J;)le[W]=C[W][z];return V};function M(C){return C.length}e.zip=function(){return e.transpose(arguments)},e.keys=function(C){var z=[];for(var B in C)z.push(B);return z},e.values=function(C){var z=[];for(var B in C)z.push(C[B]);return z},e.entries=function(C){var z=[];for(var B in C)z.push({key:B,value:C[B]});return z},e.merge=function(C){for(var z=C.length,B,V=-1,W=0,J,le;++V<z;)W+=C[V].length;for(J=new Array(W);--z>=0;)for(le=C[z],B=le.length;--B>=0;)J[--W]=le[B];return J};var m=Math.abs;e.range=function(C,z,B){if(arguments.length<3&&(B=1,arguments.length<2&&(z=C,C=0)),(z-C)/B===1/0)throw new Error("infinite range");var V=[],W=k(m(B)),J=-1,le;if(C*=W,z*=W,B*=W,B<0)for(;(le=C+B*++J)>z;)V.push(le/W);else for(;(le=C+B*++J)<z;)V.push(le/W);return V};function k(C){for(var z=1;C*z%1;)z*=10;return z}function S(C,z){for(var B in z)Object.defineProperty(C.prototype,B,{value:z[B],enumerable:!1})}e.map=function(C,z){var B=new x;if(C instanceof x)C.forEach(function(ie,fe){B.set(ie,fe)});else if(Array.isArray(C)){var V=-1,W=C.length,J;if(arguments.length===1)for(;++V<W;)B.set(V,C[V]);else for(;++V<W;)B.set(z.call(C,J=C[V],V),J)}else for(var le in C)B.set(le,C[le]);return B};function x(){this._=Object.create(null)}var T="__proto__",d="\0";S(x,{has:c,get:function(C){return this._[_(C)]},set:function(C,z){return this._[_(C)]=z},remove:A,keys:h,values:function(){var C=[];for(var z in this._)C.push(this._[z]);return C},entries:function(){var C=[];for(var z in this._)C.push({key:g(z),value:this._[z]});return C},size:R,empty:E,forEach:function(C){for(var z in this._)C.call(this,g(z),this._[z])}});function _(C){return(C+="")===T||C[0]===d?d+C:C}function g(C){return(C+="")[0]===d?C.slice(1):C}function c(C){return _(C)in this._}function A(C){return(C=_(C))in this._&&delete this._[C]}function h(){var C=[];for(var z in this._)C.push(g(z));return C}function R(){var C=0;for(var z in this._)++C;return C}function E(){for(var C in this._)return!1;return!0}e.nest=function(){var C={},z=[],B=[],V,W;function J(ie,fe,xe){if(xe>=z.length)return W?W.call(C,fe):V?fe.sort(V):fe;for(var _e=-1,Ie=fe.length,Ne=z[xe++],$e,rr,qe,He=new x,Xe;++_e<Ie;)(Xe=He.get($e=Ne(rr=fe[_e])))?Xe.push(rr):He.set($e,[rr]);return ie?(rr=ie(),qe=function(er,tr){rr.set(er,J(ie,tr,xe))}):(rr={},qe=function(er,tr){rr[er]=J(ie,tr,xe)}),He.forEach(qe),rr}function le(ie,fe){if(fe>=z.length)return ie;var xe=[],_e=B[fe++];return ie.forEach(function(Ie,Ne){xe.push({key:Ie,values:le(Ne,fe)})}),_e?xe.sort(function(Ie,Ne){return _e(Ie.key,Ne.key)}):xe}return C.map=function(ie,fe){return J(fe,ie,0)},C.entries=function(ie){return le(J(e.map,ie,0),0)},C.key=function(ie){return z.push(ie),C},C.sortKeys=function(ie){return B[z.length-1]=ie,C},C.sortValues=function(ie){return V=ie,C},C.rollup=function(ie){return W=ie,C},C},e.set=function(C){var z=new D;if(C)for(var B=0,V=C.length;B<V;++B)z.add(C[B]);return z};function D(){this._=Object.create(null)}S(D,{has:c,add:function(C){return this._[_(C+="")]=!0,C},remove:A,values:h,size:R,empty:E,forEach:function(C){for(var z in this._)C.call(this,g(z))}}),e.behavior={};function N(C){return C}e.rebind=function(C,z){for(var B=1,V=arguments.length,W;++B<V;)C[W=arguments[B]]=I(C,z,z[W]);return C};function I(C,z,B){return function(){var V=B.apply(z,arguments);return V===z?C:V}}function F(C,z){if(z in C)return z;z=z.charAt(0).toUpperCase()+z.slice(1);for(var B=0,V=L.length;B<V;++B){var W=L[B]+z;if(W in C)return W}}var L=["webkit","ms","moz","Moz","o","O"];function P(){}e.dispatch=function(){for(var C=new O,z=-1,B=arguments.length;++z<B;)C[arguments[z]]=U(C);return C};function O(){}O.prototype.on=function(C,z){var B=C.indexOf("."),V="";if(B>=0&&(V=C.slice(B+1),C=C.slice(0,B)),C)return arguments.length<2?this[C].on(V):this[C].on(V,z);if(arguments.length===2){if(z==null)for(C in this)this.hasOwnProperty(C)&&this[C].on(V,null);return this}};function U(C){var z=[],B=new x;function V(){for(var W=z,J=-1,le=W.length,ie;++J<le;)(ie=W[J].on)&&ie.apply(this,arguments);return C}return V.on=function(W,J){var le=B.get(W),ie;return arguments.length<2?le&&le.on:(le&&(le.on=null,z=z.slice(0,ie=z.indexOf(le)).concat(z.slice(ie+1)),B.remove(W)),J&&z.push(B.set(W,{on:J})),C)},V}e.event=null;function X(){e.event.preventDefault()}function j(){for(var C=e.event,z;z=C.sourceEvent;)C=z;return C}function $(C){for(var z=new O,B=0,V=arguments.length;++B<V;)z[arguments[B]]=U(z);return z.of=function(W,J){return function(le){try{var ie=le.sourceEvent=e.event;le.target=C,e.event=le,z[le.type].apply(W,J)}finally{e.event=ie}}},z}e.requote=function(C){return C.replace(Y,"\\$&")};var Y=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,q={}.__proto__?function(C,z){C.__proto__=z}:function(C,z){for(var B in z)C[B]=z[B]};function Z(C){return q(C,ee),C}var ne=function(C,z){return z.querySelector(C)},Q=function(C,z){return z.querySelectorAll(C)},oe=function(C,z){var B=C.matches||C[F(C,"matchesSelector")];return oe=function(V,W){return B.call(V,W)},oe(C,z)};typeof Sizzle=="function"&&(ne=function(C,z){return Sizzle(C,z)[0]||null},Q=Sizzle,oe=Sizzle.matchesSelector),e.selection=function(){return e.select(n.documentElement)};var ee=e.selection.prototype=[];ee.select=function(C){var z=[],B,V,W,J;C=G(C);for(var le=-1,ie=this.length;++le<ie;){z.push(B=[]),B.parentNode=(W=this[le]).parentNode;for(var fe=-1,xe=W.length;++fe<xe;)(J=W[fe])?(B.push(V=C.call(J,J.__data__,fe,le)),V&&"__data__"in J&&(V.__data__=J.__data__)):B.push(null)}return Z(z)};function G(C){return typeof C=="function"?C:function(){return ne(C,this)}}ee.selectAll=function(C){var z=[],B,V;C=re(C);for(var W=-1,J=this.length;++W<J;)for(var le=this[W],ie=-1,fe=le.length;++ie<fe;)(V=le[ie])&&(z.push(B=t(C.call(V,V.__data__,ie,W))),B.parentNode=V);return Z(z)};function re(C){return typeof C=="function"?C:function(){return Q(C,this)}}var H="http://www.w3.org/1999/xhtml",te={svg:"http://www.w3.org/2000/svg",xhtml:H,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};e.ns={prefix:te,qualify:function(C){var z=C.indexOf(":"),B=C;return z>=0&&(B=C.slice(0,z))!=="xmlns"&&(C=C.slice(z+1)),te.hasOwnProperty(B)?{space:te[B],local:C}:C}},ee.attr=function(C,z){if(arguments.length<2){if(typeof C=="string"){var B=this.node();return C=e.ns.qualify(C),C.local?B.getAttributeNS(C.space,C.local):B.getAttribute(C)}for(z in C)this.each(ue(z,C[z]));return this}return this.each(ue(C,z))};function ue(C,z){C=e.ns.qualify(C);function B(){this.removeAttribute(C)}function V(){this.removeAttributeNS(C.space,C.local)}function W(){this.setAttribute(C,z)}function J(){this.setAttributeNS(C.space,C.local,z)}function le(){var fe=z.apply(this,arguments);fe==null?this.removeAttribute(C):this.setAttribute(C,fe)}function ie(){var fe=z.apply(this,arguments);fe==null?this.removeAttributeNS(C.space,C.local):this.setAttributeNS(C.space,C.local,fe)}return z==null?C.local?V:B:typeof z=="function"?C.local?ie:le:C.local?J:W}function de(C){return C.trim().replace(/\s+/g," ")}ee.classed=function(C,z){if(arguments.length<2){if(typeof C=="string"){var B=this.node(),V=(C=Me(C)).length,W=-1;if(z=B.classList){for(;++W<V;)if(!z.contains(C[W]))return!1}else for(z=B.getAttribute("class");++W<V;)if(!Ee(C[W]).test(z))return!1;return!0}for(z in C)this.each(ve(z,C[z]));return this}return this.each(ve(C,z))};function Ee(C){return new RegExp("(?:^|\\s+)"+e.requote(C)+"(?:\\s+|$)","g")}function Me(C){return(C+"").trim().split(/^|\s+/)}function ve(C,z){C=Me(C).map(Ae);var B=C.length;function V(){for(var J=-1;++J<B;)C[J](this,z)}function W(){for(var J=-1,le=z.apply(this,arguments);++J<B;)C[J](this,le)}return typeof z=="function"?W:V}function Ae(C){var z=Ee(C);return function(B,V){if(W=B.classList)return V?W.add(C):W.remove(C);var W=B.getAttribute("class")||"";V?(z.lastIndex=0,z.test(W)||B.setAttribute("class",de(W+" "+C))):B.setAttribute("class",de(W.replace(z," ")))}}ee.style=function(C,z,B){var V=arguments.length;if(V<3){if(typeof C!="string"){V<2&&(z="");for(B in C)this.each(ke(B,C[B],z));return this}if(V<2){var W=this.node();return o(W).getComputedStyle(W,null).getPropertyValue(C)}B=""}return this.each(ke(C,z,B))};function ke(C,z,B){function V(){this.style.removeProperty(C)}function W(){this.style.setProperty(C,z,B)}function J(){var le=z.apply(this,arguments);le==null?this.style.removeProperty(C):this.style.setProperty(C,le,B)}return z==null?V:typeof z=="function"?J:W}ee.property=function(C,z){if(arguments.length<2){if(typeof C=="string")return this.node()[C];for(z in C)this.each(De(z,C[z]));return this}return this.each(De(C,z))};function De(C,z){function B(){delete this[C]}function V(){this[C]=z}function W(){var J=z.apply(this,arguments);J==null?delete this[C]:this[C]=J}return z==null?B:typeof z=="function"?W:V}ee.text=function(C){return arguments.length?this.each(typeof C=="function"?function(){var z=C.apply(this,arguments);this.textContent=z==null?"":z}:C==null?function(){this.textContent=""}:function(){this.textContent=C}):this.node().textContent},ee.html=function(C){return arguments.length?this.each(typeof C=="function"?function(){var z=C.apply(this,arguments);this.innerHTML=z==null?"":z}:C==null?function(){this.innerHTML=""}:function(){this.innerHTML=C}):this.node().innerHTML},ee.append=function(C){return C=Ce(C),this.select(function(){return this.appendChild(C.apply(this,arguments))})};function Ce(C){function z(){var V=this.ownerDocument,W=this.namespaceURI;return W===H&&V.documentElement.namespaceURI===H?V.createElement(C):V.createElementNS(W,C)}function B(){return this.ownerDocument.createElementNS(C.space,C.local)}return typeof C=="function"?C:(C=e.ns.qualify(C)).local?B:z}ee.insert=function(C,z){return C=Ce(C),z=G(z),this.select(function(){return this.insertBefore(C.apply(this,arguments),z.apply(this,arguments)||null)})},ee.remove=function(){return this.each(Oe)};function Oe(){var C=this.parentNode;C&&C.removeChild(this)}ee.data=function(C,z){var B=-1,V=this.length,W,J;if(!arguments.length){for(C=new Array(V=(W=this[0]).length);++B<V;)(J=W[B])&&(C[B]=J.__data__);return C}function le(_e,Ie){var Ne,$e=_e.length,rr=Ie.length,qe=Math.min($e,rr),He=new Array(rr),Xe=new Array(rr),er=new Array($e),tr,Ke;if(z){var or=new x,dr=new Array($e),yr;for(Ne=-1;++Ne<$e;)(tr=_e[Ne])&&(or.has(yr=z.call(tr,tr.__data__,Ne))?er[Ne]=tr:or.set(yr,tr),dr[Ne]=yr);for(Ne=-1;++Ne<rr;)(tr=or.get(yr=z.call(Ie,Ke=Ie[Ne],Ne)))?tr!==!0&&(He[Ne]=tr,tr.__data__=Ke):Xe[Ne]=Ue(Ke),or.set(yr,!0);for(Ne=-1;++Ne<$e;)Ne in dr&&or.get(dr[Ne])!==!0&&(er[Ne]=_e[Ne])}else{for(Ne=-1;++Ne<qe;)tr=_e[Ne],Ke=Ie[Ne],tr?(tr.__data__=Ke,He[Ne]=tr):Xe[Ne]=Ue(Ke);for(;Ne<rr;++Ne)Xe[Ne]=Ue(Ie[Ne]);for(;Ne<$e;++Ne)er[Ne]=_e[Ne]}Xe.update=He,Xe.parentNode=He.parentNode=er.parentNode=_e.parentNode,ie.push(Xe),fe.push(He),xe.push(er)}var ie=ye([]),fe=Z([]),xe=Z([]);if(typeof C=="function")for(;++B<V;)le(W=this[B],C.call(W,W.parentNode.__data__,B));else for(;++B<V;)le(W=this[B],C);return fe.enter=function(){return ie},fe.exit=function(){return xe},fe};function Ue(C){return{__data__:C}}ee.datum=function(C){return arguments.length?this.property("__data__",C):this.property("__data__")},ee.filter=function(C){var z=[],B,V,W;typeof C!="function"&&(C=ge(C));for(var J=0,le=this.length;J<le;J++){z.push(B=[]),B.parentNode=(V=this[J]).parentNode;for(var ie=0,fe=V.length;ie<fe;ie++)(W=V[ie])&&C.call(W,W.__data__,ie,J)&&B.push(W)}return Z(z)};function ge(C){return function(){return oe(this,C)}}ee.order=function(){for(var C=-1,z=this.length;++C<z;)for(var B=this[C],V=B.length-1,W=B[V],J;--V>=0;)(J=B[V])&&(W&&W!==J.nextSibling&&W.parentNode.insertBefore(J,W),W=J);return this},ee.sort=function(C){C=Te.apply(this,arguments);for(var z=-1,B=this.length;++z<B;)this[z].sort(C);return this.order()};function Te(C){return arguments.length||(C=v),function(z,B){return z&&B?C(z.__data__,B.__data__):!z-!B}}ee.each=function(C){return ce(this,function(z,B,V){C.call(z,z.__data__,B,V)})};function ce(C,z){for(var B=0,V=C.length;B<V;B++)for(var W=C[B],J=0,le=W.length,ie;J<le;J++)(ie=W[J])&&z(ie,J,B);return C}ee.call=function(C){var z=t(arguments);return C.apply(z[0]=this,z),this},ee.empty=function(){return!this.node()},ee.node=function(){for(var C=0,z=this.length;C<z;C++)for(var B=this[C],V=0,W=B.length;V<W;V++){var J=B[V];if(J)return J}return null},ee.size=function(){var C=0;return ce(this,function(){++C}),C};function ye(C){return q(C,Le),C}var Le=[];e.selection.enter=ye,e.selection.enter.prototype=Le,Le.append=ee.append,Le.empty=ee.empty,Le.node=ee.node,Le.call=ee.call,Le.size=ee.size,Le.select=function(C){for(var z=[],B,V,W,J,le,ie=-1,fe=this.length;++ie<fe;){W=(J=this[ie]).update,z.push(B=[]),B.parentNode=J.parentNode;for(var xe=-1,_e=J.length;++xe<_e;)(le=J[xe])?(B.push(W[xe]=V=C.call(J.parentNode,le.__data__,xe,ie)),V.__data__=le.__data__):B.push(null)}return Z(z)},Le.insert=function(C,z){return arguments.length<2&&(z=me(this)),ee.insert.call(this,C,z)};function me(C){var z,B;return function(V,W,J){var le=C[J].update,ie=le.length,fe;for(J!=B&&(B=J,z=0),W>=z&&(z=W+1);!(fe=le[z])&&++z<ie;);return fe}}e.select=function(C){var z;return typeof C=="string"?(z=[ne(C,n)],z.parentNode=n.documentElement):(z=[C],z.parentNode=a(C)),Z([z])},e.selectAll=function(C){var z;return typeof C=="string"?(z=t(Q(C,n)),z.parentNode=n.documentElement):(z=t(C),z.parentNode=null),Z([z])},ee.on=function(C,z,B){var V=arguments.length;if(V<3){if(typeof C!="string"){V<2&&(z=!1);for(B in C)this.each(he(B,C[B],z));return this}if(V<2)return(V=this.node()["__on"+C])&&V._;B=!1}return this.each(he(C,z,B))};function he(C,z,B){var V="__on"+C,W=C.indexOf("."),J=Se;W>0&&(C=C.slice(0,W));var le=be.get(C);le&&(C=le,J=ze);function ie(){var _e=this[V];_e&&(this.removeEventListener(C,_e,_e.$),delete this[V])}function fe(){var _e=J(z,t(arguments));ie.call(this),this.addEventListener(C,this[V]=_e,_e.$=B),_e._=z}function xe(){var _e=new RegExp("^__on([^.]+)"+e.requote(C)+"$"),Ie;for(var Ne in this)if(Ie=Ne.match(_e)){var $e=this[Ne];this.removeEventListener(Ie[1],$e,$e.$),delete this[Ne]}}return W?z?fe:ie:z?P:xe}var be=e.map({mouseenter:"mouseover",mouseleave:"mouseout"});n&&be.forEach(function(C){"on"+C in n&&be.remove(C)});function Se(C,z){return function(B){var V=e.event;e.event=B,z[0]=this.__data__;try{C.apply(this,z)}finally{e.event=V}}}function ze(C,z){var B=Se(C,z);return function(V){var W=this,J=V.relatedTarget;(!J||J!==W&&!(J.compareDocumentPosition(W)&8))&&B.call(W,V)}}var Fe,Ze=0;function Ye(C){var z=".dragsuppress-"+ ++Ze,B="click"+z,V=e.select(o(C)).on("touchmove"+z,X).on("dragstart"+z,X).on("selectstart"+z,X);if(Fe==null&&(Fe="onselectstart"in C?!1:F(C.style,"userSelect")),Fe){var W=a(C).style,J=W[Fe];W[Fe]="none"}return function(le){if(V.on(z,null),Fe&&(W[Fe]=J),le){var ie=function(){V.on(B,null)};V.on(B,function(){X(),ie()},!0),setTimeout(ie,0)}}}e.mouse=function(C){return We(C,j())};var Ge=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;function We(C,z){z.changedTouches&&(z=z.changedTouches[0]);var B=C.ownerSVGElement||C;if(B.createSVGPoint){var V=B.createSVGPoint();if(Ge<0){var W=o(C);if(W.scrollX||W.scrollY){B=e.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var J=B[0][0].getScreenCTM();Ge=!(J.f||J.e),B.remove()}}return Ge?(V.x=z.pageX,V.y=z.pageY):(V.x=z.clientX,V.y=z.clientY),V=V.matrixTransform(C.getScreenCTM().inverse()),[V.x,V.y]}var le=C.getBoundingClientRect();return[z.clientX-le.left-C.clientLeft,z.clientY-le.top-C.clientTop]}e.touch=function(C,z,B){if(arguments.length<3&&(B=z,z=j().changedTouches),z){for(var V=0,W=z.length,J;V<W;++V)if((J=z[V]).identifier===B)return We(C,J)}},e.behavior.drag=function(){var C=$(W,"drag","dragstart","dragend"),z=null,B=J(P,e.mouse,o,"mousemove","mouseup"),V=J(we,e.touch,N,"touchmove","touchend");function W(){this.on("mousedown.drag",B).on("touchstart.drag",V)}function J(le,ie,fe,xe,_e){return function(){var Ie=this,Ne=e.event.target.correspondingElement||e.event.target,$e=Ie.parentNode,rr=C.of(Ie,arguments),qe=0,He=le(),Xe=".drag"+(He==null?"":"-"+He),er,tr=e.select(fe(Ne)).on(xe+Xe,dr).on(_e+Xe,yr),Ke=Ye(Ne),or=ie($e,He);z?(er=z.apply(Ie,arguments),er=[er.x-or[0],er.y-or[1]]):er=[0,0],rr({type:"dragstart"});function dr(){var pr=ie($e,He),br,_r;pr&&(br=pr[0]-or[0],_r=pr[1]-or[1],qe|=br|_r,or=pr,rr({type:"drag",x:pr[0]+er[0],y:pr[1]+er[1],dx:br,dy:_r}))}function yr(){ie($e,He)&&(tr.on(xe+Xe,null).on(_e+Xe,null),Ke(qe),rr({type:"dragend"}))}}}return W.origin=function(le){return arguments.length?(z=le,W):z},e.rebind(W,C,"on")};function we(){return e.event.changedTouches[0].identifier}e.touches=function(C,z){return arguments.length<2&&(z=j().touches),z?t(z).map(function(B){var V=We(C,B);return V.identifier=B.identifier,V}):[]};var Pe=1e-6,Qe=Pe*Pe,Ve=Math.PI,ar=2*Ve,se=ar-Pe,K=Ve/2,ae=Ve/180,Re=180/Ve;function Be(C){return C>0?1:C<0?-1:0}function je(C,z,B){return(z[0]-C[0])*(B[1]-C[1])-(z[1]-C[1])*(B[0]-C[0])}function nr(C){return C>1?0:C<-1?Ve:Math.acos(C)}function hr(C){return C>1?K:C<-1?-K:Math.asin(C)}function wr(C){return((C=Math.exp(C))-1/C)/2}function Cr(C){return((C=Math.exp(C))+1/C)/2}function Tr(C){return((C=Math.exp(2*C))-1)/(C+1)}function Ar(C){return(C=Math.sin(C/2))*C}var ft=Math.SQRT2,Yr=2,mr=4;e.interpolateZoom=function(C,z){var B=C[0],V=C[1],W=C[2],J=z[0],le=z[1],ie=z[2],fe=J-B,xe=le-V,_e=fe*fe+xe*xe,Ie,Ne;if(_e<Qe)Ne=Math.log(ie/W)/ft,Ie=function(er){return[B+er*fe,V+er*xe,W*Math.exp(ft*er*Ne)]};else{var $e=Math.sqrt(_e),rr=(ie*ie-W*W+mr*_e)/(2*W*Yr*$e),qe=(ie*ie-W*W-mr*_e)/(2*ie*Yr*$e),He=Math.log(Math.sqrt(rr*rr+1)-rr),Xe=Math.log(Math.sqrt(qe*qe+1)-qe);Ne=(Xe-He)/ft,Ie=function(er){var tr=er*Ne,Ke=Cr(He),or=W/(Yr*$e)*(Ke*Tr(ft*tr+He)-wr(He));return[B+or*fe,V+or*xe,W*Ke/Cr(ft*tr+He)]}}return Ie.duration=Ne*1e3,Ie},e.behavior.zoom=function(){var C={x:0,y:0,k:1},z,B,V,W=[960,500],J=ct,le=250,ie=0,fe="mousedown.zoom",xe="mousemove.zoom",_e="mouseup.zoom",Ie,Ne="touchstart.zoom",$e,rr=$(tr,"zoomstart","zoom","zoomend"),qe,He,Xe,er;Ur||(Ur="onwheel"in n?(Sr=function(){return-e.event.deltaY*(e.event.deltaMode?120:1)},"wheel"):"onmousewheel"in n?(Sr=function(){return e.event.wheelDelta},"mousewheel"):(Sr=function(){return-e.event.detail},"MozMousePixelScroll"));function tr(vr){vr.on(fe,Pr).on(Ur+".zoom",Bt).on("dblclick.zoom",dt).on(Ne,lt)}tr.event=function(vr){vr.each(function(){var Or=rr.of(this,arguments),Vr=C;yl?e.select(this).transition().each("start.zoom",function(){C=this.__chart__||{x:0,y:0,k:1},_r(Or)}).tween("zoom:zoom",function(){var st=W[0],Pt=W[1],$t=B?B[0]:st/2,bn=B?B[1]:Pt/2,In=e.interpolateZoom([($t-C.x)/C.k,(bn-C.y)/C.k,st/C.k],[($t-Vr.x)/Vr.k,(bn-Vr.y)/Vr.k,st/Vr.k]);return function(Gn){var Nn=In(Gn),$n=st/Nn[2];this.__chart__=C={x:$t-Nn[0]*$n,y:bn-Nn[1]*$n,k:$n},qr(Or)}}).each("interrupt.zoom",function(){Mr(Or)}).each("end.zoom",function(){Mr(Or)}):(this.__chart__=C,_r(Or),qr(Or),Mr(Or))})},tr.translate=function(vr){return arguments.length?(C={x:+vr[0],y:+vr[1],k:C.k},br(),tr):[C.x,C.y]},tr.scale=function(vr){return arguments.length?(C={x:C.x,y:C.y,k:null},dr(+vr),br(),tr):C.k},tr.scaleExtent=function(vr){return arguments.length?(J=vr==null?ct:[+vr[0],+vr[1]],tr):J},tr.center=function(vr){return arguments.length?(V=vr&&[+vr[0],+vr[1]],tr):V},tr.size=function(vr){return arguments.length?(W=vr&&[+vr[0],+vr[1]],tr):W},tr.duration=function(vr){return arguments.length?(le=+vr,tr):le},tr.x=function(vr){return arguments.length?(He=vr,qe=vr.copy(),C={x:0,y:0,k:1},tr):He},tr.y=function(vr){return arguments.length?(er=vr,Xe=vr.copy(),C={x:0,y:0,k:1},tr):er};function Ke(vr){return[(vr[0]-C.x)/C.k,(vr[1]-C.y)/C.k]}function or(vr){return[vr[0]*C.k+C.x,vr[1]*C.k+C.y]}function dr(vr){C.k=Math.max(J[0],Math.min(J[1],vr))}function yr(vr,Or){Or=or(Or),C.x+=vr[0]-Or[0],C.y+=vr[1]-Or[1]}function pr(vr,Or,Vr,st){vr.__chart__={x:C.x,y:C.y,k:C.k},dr(Math.pow(2,st)),yr(B=Or,Vr),vr=e.select(vr),le>0&&(vr=vr.transition().duration(le)),vr.call(tr.event)}function br(){He&&He.domain(qe.range().map(function(vr){return(vr-C.x)/C.k}).map(qe.invert)),er&&er.domain(Xe.range().map(function(vr){return(vr-C.y)/C.k}).map(Xe.invert))}function _r(vr){ie++||vr({type:"zoomstart"})}function qr(vr){br(),vr({type:"zoom",scale:C.k,translate:[C.x,C.y]})}function Mr(vr){--ie||(vr({type:"zoomend"}),B=null)}function Pr(){var vr=this,Or=rr.of(vr,arguments),Vr=0,st=e.select(o(vr)).on(xe,bn).on(_e,In),Pt=Ke(e.mouse(vr)),$t=Ye(vr);cc.call(vr),_r(Or);function bn(){Vr=1,yr(e.mouse(vr),Pt),qr(Or)}function In(){st.on(xe,null).on(_e,null),$t(Vr),Mr(Or)}}function lt(){var vr=this,Or=rr.of(vr,arguments),Vr={},st=0,Pt,$t=".zoom-"+e.event.changedTouches[0].identifier,bn="touchmove"+$t,In="touchend"+$t,Gn=[],Nn=e.select(vr),$n=Ye(vr);jn(),_r(Or),Nn.on(fe,null).on(Ne,jn);function An(){var Za=e.touches(vr);return Pt=C.k,Za.forEach(function(_n){_n.identifier in Vr&&(Vr[_n.identifier]=Ke(_n))}),Za}function jn(){var Za=e.event.target;e.select(Za).on(bn,ml).on(In,TB),Gn.push(Za);for(var _n=e.event.changedTouches,Ta=0,Mi=_n.length;Ta<Mi;++Ta)Vr[_n[Ta].identifier]=null;var Aa=An(),As=Date.now();if(Aa.length===1){if(As-$e<500){var xl=Aa[0];pr(vr,xl,Vr[xl.identifier],Math.floor(Math.log(C.k)/Math.LN2)+1),X()}$e=As}else if(Aa.length>1){var xl=Aa[0],_o=Aa[1],dc=xl[0]-_o[0],nb=xl[1]-_o[1];st=dc*dc+nb*nb}}function ml(){var Za=e.touches(vr),_n,Ta,Mi,Aa;cc.call(vr);for(var As=0,xl=Za.length;As<xl;++As,Aa=null)if(Mi=Za[As],Aa=Vr[Mi.identifier]){if(Ta)break;_n=Mi,Ta=Aa}if(Aa){var _o=(_o=Mi[0]-_n[0])*_o+(_o=Mi[1]-_n[1])*_o,dc=st&&Math.sqrt(_o/st);_n=[(_n[0]+Mi[0])/2,(_n[1]+Mi[1])/2],Ta=[(Ta[0]+Aa[0])/2,(Ta[1]+Aa[1])/2],dr(dc*Pt)}$e=null,yr(_n,Ta),qr(Or)}function TB(){if(e.event.touches.length){for(var Za=e.event.changedTouches,_n=0,Ta=Za.length;_n<Ta;++_n)delete Vr[Za[_n].identifier];for(var Mi in Vr)return void An()}e.selectAll(Gn).on($t,null),Nn.on(fe,Pr).on(Ne,lt),$n(),Mr(Or)}}function Bt(){var vr=rr.of(this,arguments);Ie?clearTimeout(Ie):(cc.call(this),z=Ke(B=V||e.mouse(this)),_r(vr)),Ie=setTimeout(function(){Ie=null,Mr(vr)},50),X(),dr(Math.pow(2,Sr()*.002)*C.k),yr(B,z),qr(vr)}function dt(){var vr=e.mouse(this),Or=Math.log(C.k)/Math.LN2;pr(this,vr,Ke(vr),e.event.shiftKey?Math.ceil(Or)-1:Math.floor(Or)+1)}return e.rebind(tr,rr,"on")};var ct=[0,1/0],Sr,Ur;e.color=xt;function xt(){}xt.prototype.toString=function(){return this.rgb()+""},e.hsl=zr;function zr(C,z,B){return this instanceof zr?(this.h=+C,this.s=+z,void(this.l=+B)):arguments.length<2?C instanceof zr?new zr(C.h,C.s,C.l):at(""+C,vt,zr):new zr(C,z,B)}var Hr=zr.prototype=new xt;Hr.brighter=function(C){return C=Math.pow(.7,arguments.length?C:1),new zr(this.h,this.s,this.l/C)},Hr.darker=function(C){return C=Math.pow(.7,arguments.length?C:1),new zr(this.h,this.s,C*this.l)},Hr.rgb=function(){return Ot(this.h,this.s,this.l)};function Ot(C,z,B){var V,W;C=isNaN(C)?0:(C%=360)<0?C+360:C,z=isNaN(z)||z<0?0:z>1?1:z,B=B<0?0:B>1?1:B,W=B<=.5?B*(1+z):B+z-B*z,V=2*B-W;function J(ie){return ie>360?ie-=360:ie<0&&(ie+=360),ie<60?V+(W-V)*ie/60:ie<180?W:ie<240?V+(W-V)*(240-ie)/60:V}function le(ie){return Math.round(J(ie)*255)}return new tn(le(C+120),le(C),le(C-120))}e.hcl=Lt;function Lt(C,z,B){return this instanceof Lt?(this.h=+C,this.c=+z,void(this.l=+B)):arguments.length<2?C instanceof Lt?new Lt(C.h,C.c,C.l):C instanceof Rt?xi(C.l,C.a,C.b):xi((C=gr((C=e.rgb(C)).r,C.g,C.b)).l,C.a,C.b):new Lt(C,z,B)}var yn=Lt.prototype=new xt;yn.brighter=function(C){return new Lt(this.h,this.c,Math.min(100,this.l+nt*(arguments.length?C:1)))},yn.darker=function(C){return new Lt(this.h,this.c,Math.max(0,this.l-nt*(arguments.length?C:1)))},yn.rgb=function(){return Gt(this.h,this.c,this.l).rgb()};function Gt(C,z,B){return isNaN(C)&&(C=0),isNaN(z)&&(z=0),new Rt(B,Math.cos(C*=ae)*z,Math.sin(C)*z)}e.lab=Rt;function Rt(C,z,B){return this instanceof Rt?(this.l=+C,this.a=+z,void(this.b=+B)):arguments.length<2?C instanceof Rt?new Rt(C.l,C.a,C.b):C instanceof Lt?Gt(C.h,C.c,C.l):gr((C=tn(C)).r,C.g,C.b):new Rt(C,z,B)}var nt=18,Ft=.95047,ha=1,Qn=1.08883,Fn=Rt.prototype=new xt;Fn.brighter=function(C){return new Rt(Math.min(100,this.l+nt*(arguments.length?C:1)),this.a,this.b)},Fn.darker=function(C){return new Rt(Math.max(0,this.l-nt*(arguments.length?C:1)),this.a,this.b)},Fn.rgb=function(){return wa(this.l,this.a,this.b)};function wa(C,z,B){var V=(C+16)/116,W=V+z/500,J=V-B/200;return W=Gi(W)*Ft,V=Gi(V)*ha,J=Gi(J)*Qn,new tn(Wi(3.2404542*W-1.5371385*V-.4985314*J),Wi(-.969266*W+1.8760108*V+.041556*J),Wi(.0556434*W-.2040259*V+1.0572252*J))}function xi(C,z,B){return C>0?new Lt(Math.atan2(B,z)*Re,Math.sqrt(z*z+B*B),C):new Lt(NaN,NaN,C)}function Gi(C){return C>.206893034?C*C*C:(C-4/29)/7.787037}function Yi(C){return C>.008856?Math.pow(C,1/3):7.787037*C+4/29}function Wi(C){return Math.round(255*(C<=.00304?12.92*C:1.055*Math.pow(C,1/2.4)-.055))}e.rgb=tn;function tn(C,z,B){return this instanceof tn?(this.r=~~C,this.g=~~z,void(this.b=~~B)):arguments.length<2?C instanceof tn?new tn(C.r,C.g,C.b):at(""+C,tn,Ot):new tn(C,z,B)}function xo(C){return new tn(C>>16,C>>8&255,C&255)}function bi(C){return xo(C)+""}var _i=tn.prototype=new xt;_i.brighter=function(C){C=Math.pow(.7,arguments.length?C:1);var z=this.r,B=this.g,V=this.b,W=30;return!z&&!B&&!V?new tn(W,W,W):(z&&z<W&&(z=W),B&&B<W&&(B=W),V&&V<W&&(V=W),new tn(Math.min(255,z/C),Math.min(255,B/C),Math.min(255,V/C)))},_i.darker=function(C){return C=Math.pow(.7,arguments.length?C:1),new tn(C*this.r,C*this.g,C*this.b)},_i.hsl=function(){return vt(this.r,this.g,this.b)},_i.toString=function(){return"#"+kr(this.r)+kr(this.g)+kr(this.b)};function kr(C){return C<16?"0"+Math.max(0,C).toString(16):Math.min(255,C).toString(16)}function at(C,z,B){var V=0,W=0,J=0,le,ie,fe;if(le=/([a-z]+)\((.*)\)/.exec(C=C.toLowerCase()),le)switch(ie=le[2].split(","),le[1]){case"hsl":return B(parseFloat(ie[0]),parseFloat(ie[1])/100,parseFloat(ie[2])/100);case"rgb":return z(bt(ie[0]),bt(ie[1]),bt(ie[2]))}return(fe=xn.get(C))?z(fe.r,fe.g,fe.b):(C!=null&&C.charAt(0)==="#"&&!isNaN(fe=parseInt(C.slice(1),16))&&(C.length===4?(V=(fe&3840)>>4,V=V>>4|V,W=fe&240,W=W>>4|W,J=fe&15,J=J<<4|J):C.length===7&&(V=(fe&16711680)>>16,W=(fe&65280)>>8,J=fe&255)),z(V,W,J))}function vt(C,z,B){var V=Math.min(C/=255,z/=255,B/=255),W=Math.max(C,z,B),J=W-V,le,ie,fe=(W+V)/2;return J?(ie=fe<.5?J/(W+V):J/(2-W-V),C==W?le=(z-B)/J+(z<B?6:0):z==W?le=(B-C)/J+2:le=(C-z)/J+4,le*=60):(le=NaN,ie=fe>0&&fe<1?0:le),new zr(le,ie,fe)}function gr(C,z,B){C=mn(C),z=mn(z),B=mn(B);var V=Yi((.4124564*C+.3575761*z+.1804375*B)/Ft),W=Yi((.2126729*C+.7151522*z+.072175*B)/ha),J=Yi((.0193339*C+.119192*z+.9503041*B)/Qn);return Rt(116*W-16,500*(V-W),200*(W-J))}function mn(C){return(C/=255)<=.04045?C/12.92:Math.pow((C+.055)/1.055,2.4)}function bt(C){var z=parseFloat(C);return C.charAt(C.length-1)==="%"?Math.round(z*2.55):z}var xn=e.map({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});xn.forEach(function(C,z){xn.set(C,xo(z))});function Xr(C){return typeof C=="function"?C:function(){return C}}e.functor=Xr,e.xhr=Wa(N);function Wa(C){return function(z,B,V){return arguments.length===2&&typeof B=="function"&&(V=B,B=null),hl(z,B,C,V)}}function hl(C,z,B,V){var W={},J=e.dispatch("beforesend","progress","load","error"),le={},ie=new XMLHttpRequest,fe=null;self.XDomainRequest&&!("withCredentials"in ie)&&/^(http(s)?:)?\/\//.test(C)&&(ie=new XDomainRequest),"onload"in ie?ie.onload=ie.onerror=xe:ie.onreadystatechange=function(){ie.readyState>3&&xe()};function xe(){var _e=ie.status,Ie;if(!_e&&kq(ie)||_e>=200&&_e<300||_e===304){try{Ie=B.call(W,ie)}catch(Ne){J.error.call(W,Ne);return}J.load.call(W,Ie)}else J.error.call(W,ie)}return ie.onprogress=function(_e){var Ie=e.event;e.event=_e;try{J.progress.call(W,ie)}finally{e.event=Ie}},W.header=function(_e,Ie){return _e=(_e+"").toLowerCase(),arguments.length<2?le[_e]:(Ie==null?delete le[_e]:le[_e]=Ie+"",W)},W.mimeType=function(_e){return arguments.length?(z=_e==null?null:_e+"",W):z},W.responseType=function(_e){return arguments.length?(fe=_e,W):fe},W.response=function(_e){return B=_e,W},["get","post"].forEach(function(_e){W[_e]=function(){return W.send.apply(W,[_e].concat(t(arguments)))}}),W.send=function(_e,Ie,Ne){if(arguments.length===2&&typeof Ie=="function"&&(Ne=Ie,Ie=null),ie.open(_e,C,!0),z!=null&&!("accept"in le)&&(le.accept=z+",*/*"),ie.setRequestHeader)for(var $e in le)ie.setRequestHeader($e,le[$e]);return z!=null&&ie.overrideMimeType&&ie.overrideMimeType(z),fe!=null&&(ie.responseType=fe),Ne!=null&&W.on("error",Ne).on("load",function(rr){Ne(null,rr)}),J.beforesend.call(W,ie),ie.send(Ie==null?null:Ie),W},W.abort=function(){return ie.abort(),W},e.rebind(W,J,"on"),V==null?W:W.get(Aq(V))}function Aq(C){return C.length===1?function(z,B){C(z==null?B:null)}:C}function kq(C){var z=C.responseType;return z&&z!=="text"?C.response:C.responseText}e.dsv=function(C,z){var B=new RegExp('["'+C+`
]`),V=C.charCodeAt(0);function W(xe,_e,Ie){arguments.length<3&&(Ie=_e,_e=null);var Ne=hl(xe,z,_e==null?J:le(_e),Ie);return Ne.row=function($e){return arguments.length?Ne.response((_e=$e)==null?J:le($e)):_e},Ne}function J(xe){return W.parse(xe.responseText)}function le(xe){return function(_e){return W.parse(_e.responseText,xe)}}W.parse=function(xe,_e){var Ie;return W.parseRows(xe,function(Ne,$e){if(Ie)return Ie(Ne,$e-1);var rr=function(qe){for(var He={},Xe=Ne.length,er=0;er<Xe;++er)He[Ne[er]]=qe[er];return He};Ie=_e?function(qe,He){return _e(rr(qe),He)}:rr})},W.parseRows=function(xe,_e){var Ie={},Ne={},$e=[],rr=xe.length,qe=0,He=0,Xe,er;function tr(){if(qe>=rr)return Ne;if(er)return er=!1,Ie;var or=qe;if(xe.charCodeAt(or)===34){for(var dr=or;dr++<rr;)if(xe.charCodeAt(dr)===34){if(xe.charCodeAt(dr+1)!==34)break;++dr}qe=dr+2;var yr=xe.charCodeAt(dr+1);return yr===13?(er=!0,xe.charCodeAt(dr+2)===10&&++qe):yr===10&&(er=!0),xe.slice(or+1,dr).replace(/""/g,'"')}for(;qe<rr;){var yr=xe.charCodeAt(qe++),pr=1;if(yr===10)er=!0;else if(yr===13)er=!0,xe.charCodeAt(qe)===10&&(++qe,++pr);else if(yr!==V)continue;return xe.slice(or,qe-pr)}return xe.slice(or)}for(;(Xe=tr())!==Ne;){for(var Ke=[];Xe!==Ie&&Xe!==Ne;)Ke.push(Xe),Xe=tr();_e&&(Ke=_e(Ke,He++))==null||$e.push(Ke)}return $e},W.format=function(xe){if(Array.isArray(xe[0]))return W.formatRows(xe);var _e=new D,Ie=[];return xe.forEach(function(Ne){for(var $e in Ne)_e.has($e)||Ie.push(_e.add($e))}),[Ie.map(fe).join(C)].concat(xe.map(function(Ne){return Ie.map(function($e){return fe(Ne[$e])}).join(C)})).join(`
`)},W.formatRows=function(xe){return xe.map(ie).join(`
`)};function ie(xe){return xe.map(fe).join(C)}function fe(xe){return B.test(xe)?'"'+xe.replace(/\"/g,'""')+'"':xe}return W},e.csv=e.dsv(",","text/csv"),e.tsv=e.dsv(" ","text/tab-separated-values");var W0,X0,Z0,J0,V5=this[F(this,"requestAnimationFrame")]||function(C){setTimeout(C,17)};e.timer=function(){K0.apply(this,arguments)};function K0(C,z,B){var V=arguments.length;V<2&&(z=0),V<3&&(B=Date.now());var W=B+z,J={c:C,t:W,n:null};return X0?X0.n=J:W0=J,X0=J,Z0||(J0=clearTimeout(J0),Z0=1,V5(Ld)),J}function Ld(){var C=G5(),z=Y5()-C;z>24?(isFinite(z)&&(clearTimeout(J0),J0=setTimeout(Ld,z)),Z0=0):(Z0=1,V5(Ld))}e.timer.flush=function(){G5(),Y5()};function G5(){for(var C=Date.now(),z=W0;z;)C>=z.t&&z.c(C-z.t)&&(z.c=null),z=z.n;return C}function Y5(){for(var C,z=W0,B=1/0;z;)z.c?(z.t<B&&(B=z.t),z=(C=z).n):z=C?C.n=z.n:W0=z.n;return X0=C,B}e.round=function(C,z){return z?Math.round(C*(z=Math.pow(10,z)))/z:Math.round(C)},e.geom={};function xs(C){return C[0]}function Zu(C){return C[1]}e.geom.hull=function(C){var z=xs,B=Zu;if(arguments.length)return V(C);function V(W){if(W.length<3)return[];var J=Xr(z),le=Xr(B),ie,fe=W.length,xe=[],_e=[];for(ie=0;ie<fe;ie++)xe.push([+J.call(this,W[ie],ie),+le.call(this,W[ie],ie),ie]);for(xe.sort(Sq),ie=0;ie<fe;ie++)_e.push([xe[ie][0],-xe[ie][1]]);var Ie=W5(xe),Ne=W5(_e),$e=Ne[0]===Ie[0],rr=Ne[Ne.length-1]===Ie[Ie.length-1],qe=[];for(ie=Ie.length-1;ie>=0;--ie)qe.push(W[xe[Ie[ie]][2]]);for(ie=+$e;ie<Ne.length-rr;++ie)qe.push(W[xe[Ne[ie]][2]]);return qe}return V.x=function(W){return arguments.length?(z=W,V):z},V.y=function(W){return arguments.length?(B=W,V):B},V};function W5(C){for(var z=C.length,B=[0,1],V=2,W=2;W<z;W++){for(;V>1&&je(C[B[V-2]],C[B[V-1]],C[W])<=0;)--V;B[V++]=W}return B.slice(0,V)}function Sq(C,z){return C[0]-z[0]||C[1]-z[1]}e.geom.polygon=function(C){return q(C,Q0),C};var Q0=e.geom.polygon.prototype=[];Q0.area=function(){for(var C=-1,z=this.length,B,V=this[z-1],W=0;++C<z;)B=V,V=this[C],W+=B[1]*V[0]-B[0]*V[1];return W*.5},Q0.centroid=function(C){var z=-1,B=this.length,V=0,W=0,J,le=this[B-1],ie;for(arguments.length||(C=-1/(6*this.area()));++z<B;)J=le,le=this[z],ie=J[0]*le[1]-le[0]*J[1],V+=(J[0]+le[0])*ie,W+=(J[1]+le[1])*ie;return[V*C,W*C]},Q0.clip=function(C){for(var z,B=X5(C),V=-1,W=this.length-X5(this),J,le,ie=this[W-1],fe,xe,_e;++V<W;){for(z=C.slice(),C.length=0,fe=this[V],xe=z[(le=z.length-B)-1],J=-1;++J<le;)_e=z[J],Rd(_e,ie,fe)?(Rd(xe,ie,fe)||C.push(Dd(xe,_e,ie,fe)),C.push(_e)):Rd(xe,ie,fe)&&C.push(Dd(xe,_e,ie,fe)),xe=_e;B&&C.push(C[0]),ie=fe}return C};function Rd(C,z,B){return(B[0]-z[0])*(C[1]-z[1])<(B[1]-z[1])*(C[0]-z[0])}function Dd(C,z,B,V){var W=C[0],J=B[0],le=z[0]-W,ie=V[0]-J,fe=C[1],xe=B[1],_e=z[1]-fe,Ie=V[1]-xe,Ne=(ie*(fe-xe)-Ie*(W-J))/(Ie*le-ie*_e);return[W+Ne*le,fe+Ne*_e]}function X5(C){var z=C[0],B=C[C.length-1];return!(z[0]-B[0]||z[1]-B[1])}var bs,dl,_s,Z5=[],Pd,Ju,J5=[];function Cq(){ec(this),this.edge=this.site=this.circle=null}function K5(C){var z=Z5.pop()||new Cq;return z.site=C,z}function Fd(C){Ms(C),_s.remove(C),Z5.push(C),ec(C)}function Eq(C){var z=C.circle,B=z.x,V=z.cy,W={x:B,y:V},J=C.P,le=C.N,ie=[C];Fd(C);for(var fe=J;fe.circle&&m(B-fe.circle.x)<Pe&&m(V-fe.circle.cy)<Pe;)J=fe.P,ie.unshift(fe),Fd(fe),fe=J;ie.unshift(fe),Ms(fe);for(var xe=le;xe.circle&&m(B-xe.circle.x)<Pe&&m(V-xe.circle.cy)<Pe;)le=xe.N,ie.push(xe),Fd(xe),xe=le;ie.push(xe),Ms(xe);var _e=ie.length,Ie;for(Ie=1;Ie<_e;++Ie)xe=ie[Ie],fe=ie[Ie-1],$0(xe.edge,fe.site,xe.site,W);fe=ie[0],xe=ie[_e-1],xe.edge=Ku(fe.site,xe.site,null,W),ws(fe),ws(xe)}function Lq(C){for(var z=C.x,B=C.y,V,W,J,le,ie=_s._;ie;)if(J=Q5(ie,B)-z,J>Pe)ie=ie.L;else if(le=z-Rq(ie,B),le>Pe){if(!ie.R){V=ie;break}ie=ie.R}else{J>-Pe?(V=ie.P,W=ie):le>-Pe?(V=ie,W=ie.N):V=W=ie;break}var fe=K5(C);if(_s.insert(V,fe),!(!V&&!W)){if(V===W){Ms(V),W=K5(V.site),_s.insert(fe,W),fe.edge=W.edge=Ku(V.site,fe.site),ws(V),ws(W);return}if(!W){fe.edge=Ku(V.site,fe.site);return}Ms(V),Ms(W);var xe=V.site,_e=xe.x,Ie=xe.y,Ne=C.x-_e,$e=C.y-Ie,rr=W.site,qe=rr.x-_e,He=rr.y-Ie,Xe=2*(Ne*He-$e*qe),er=Ne*Ne+$e*$e,tr=qe*qe+He*He,Ke={x:(He*er-$e*tr)/Xe+_e,y:(Ne*tr-qe*er)/Xe+Ie};$0(W.edge,xe,rr,Ke),fe.edge=Ku(xe,C,null,Ke),W.edge=Ku(C,rr,null,Ke),ws(V),ws(W)}}function Q5(C,z){var B=C.site,V=B.x,W=B.y,J=W-z;if(!J)return V;var le=C.P;if(!le)return-1/0;B=le.site;var ie=B.x,fe=B.y,xe=fe-z;if(!xe)return ie;var _e=ie-V,Ie=1/J-1/xe,Ne=_e/xe;return Ie?(-Ne+Math.sqrt(Ne*Ne-2*Ie*(_e*_e/(-2*xe)-fe+xe/2+W-J/2)))/Ie+V:(V+ie)/2}function Rq(C,z){var B=C.N;if(B)return Q5(B,z);var V=C.site;return V.y===z?V.x:1/0}function $5(C){this.site=C,this.edges=[]}$5.prototype.prepare=function(){for(var C=this.edges,z=C.length,B;z--;)B=C[z].edge,(!B.b||!B.a)&&C.splice(z,1);return C.sort(j5),C.length};function Dq(C){for(var z=C[0][0],B=C[1][0],V=C[0][1],W=C[1][1],J,le,ie,fe,xe=dl,_e=xe.length,Ie,Ne,$e,rr,qe,He;_e--;)if(Ie=xe[_e],!(!Ie||!Ie.prepare()))for($e=Ie.edges,rr=$e.length,Ne=0;Ne<rr;)He=$e[Ne].end(),ie=He.x,fe=He.y,qe=$e[++Ne%rr].start(),J=qe.x,le=qe.y,(m(ie-J)>Pe||m(fe-le)>Pe)&&($e.splice(Ne,0,new j0(zq(Ie.site,He,m(ie-z)<Pe&&W-fe>Pe?{x:z,y:m(J-z)<Pe?le:W}:m(fe-W)<Pe&&B-ie>Pe?{x:m(le-W)<Pe?J:B,y:W}:m(ie-B)<Pe&&fe-V>Pe?{x:B,y:m(J-B)<Pe?le:V}:m(fe-V)<Pe&&ie-z>Pe?{x:m(le-V)<Pe?J:z,y:V}:null),Ie.site,null)),++rr)}function j5(C,z){return z.angle-C.angle}function Pq(){ec(this),this.x=this.y=this.arc=this.site=this.cy=null}function ws(C){var z=C.P,B=C.N;if(!(!z||!B)){var V=z.site,W=C.site,J=B.site;if(V!==J){var le=W.x,ie=W.y,fe=V.x-le,xe=V.y-ie,_e=J.x-le,He=J.y-ie,Ie=2*(fe*He-xe*_e);if(!(Ie>=-Qe)){var Ne=fe*fe+xe*xe,$e=_e*_e+He*He,rr=(He*Ne-xe*$e)/Ie,qe=(fe*$e-_e*Ne)/Ie,He=qe+ie,Xe=J5.pop()||new Pq;Xe.arc=C,Xe.site=W,Xe.x=rr+le,Xe.y=He+Math.sqrt(rr*rr+qe*qe),Xe.cy=He,C.circle=Xe;for(var er=null,tr=Ju._;tr;)if(Xe.y<tr.y||Xe.y===tr.y&&Xe.x<=tr.x)if(tr.L)tr=tr.L;else{er=tr.P;break}else if(tr.R)tr=tr.R;else{er=tr;break}Ju.insert(er,Xe),er||(Pd=Xe)}}}}function Ms(C){var z=C.circle;z&&(z.P||(Pd=z.N),Ju.remove(z),J5.push(z),ec(z),C.circle=null)}function Fq(C,z,B,V){return function(W){var J=W.a,le=W.b,ie=J.x,fe=J.y,xe=le.x,_e=le.y,Ie=0,Ne=1,$e=xe-ie,rr=_e-fe,qe;if(qe=C-ie,!(!$e&&qe>0)){if(qe/=$e,$e<0){if(qe<Ie)return;qe<Ne&&(Ne=qe)}else if($e>0){if(qe>Ne)return;qe>Ie&&(Ie=qe)}if(qe=B-ie,!(!$e&&qe<0)){if(qe/=$e,$e<0){if(qe>Ne)return;qe>Ie&&(Ie=qe)}else if($e>0){if(qe<Ie)return;qe<Ne&&(Ne=qe)}if(qe=z-fe,!(!rr&&qe>0)){if(qe/=rr,rr<0){if(qe<Ie)return;qe<Ne&&(Ne=qe)}else if(rr>0){if(qe>Ne)return;qe>Ie&&(Ie=qe)}if(qe=V-fe,!(!rr&&qe<0)){if(qe/=rr,rr<0){if(qe>Ne)return;qe>Ie&&(Ie=qe)}else if(rr>0){if(qe<Ie)return;qe<Ne&&(Ne=qe)}return Ie>0&&(W.a={x:ie+Ie*$e,y:fe+Ie*rr}),Ne<1&&(W.b={x:ie+Ne*$e,y:fe+Ne*rr}),W}}}}}}function Iq(C){for(var z=bs,B=Fq(C[0][0],C[0][1],C[1][0],C[1][1]),V=z.length,W;V--;)W=z[V],(!Nq(W,C)||!B(W)||m(W.a.x-W.b.x)<Pe&&m(W.a.y-W.b.y)<Pe)&&(W.a=W.b=null,z.splice(V,1))}function Nq(C,z){var B=C.b;if(B)return!0;var V=C.a,W=z[0][0],J=z[1][0],le=z[0][1],ie=z[1][1],fe=C.l,xe=C.r,_e=fe.x,Ie=fe.y,Ne=xe.x,$e=xe.y,rr=(_e+Ne)/2,qe=(Ie+$e)/2,He,Xe;if($e===Ie){if(rr<W||rr>=J)return;if(_e>Ne){if(!V)V={x:rr,y:le};else if(V.y>=ie)return;B={x:rr,y:ie}}else{if(!V)V={x:rr,y:ie};else if(V.y<le)return;B={x:rr,y:le}}}else if(He=(_e-Ne)/($e-Ie),Xe=qe-He*rr,He<-1||He>1)if(_e>Ne){if(!V)V={x:(le-Xe)/He,y:le};else if(V.y>=ie)return;B={x:(ie-Xe)/He,y:ie}}else{if(!V)V={x:(ie-Xe)/He,y:ie};else if(V.y<le)return;B={x:(le-Xe)/He,y:le}}else if(Ie<$e){if(!V)V={x:W,y:He*W+Xe};else if(V.x>=J)return;B={x:J,y:He*J+Xe}}else{if(!V)V={x:J,y:He*J+Xe};else if(V.x<W)return;B={x:W,y:He*W+Xe}}return C.a=V,C.b=B,!0}function ex(C,z){this.l=C,this.r=z,this.a=this.b=null}function Ku(C,z,B,V){var W=new ex(C,z);return bs.push(W),B&&$0(W,C,z,B),V&&$0(W,z,C,V),dl[C.i].edges.push(new j0(W,C,z)),dl[z.i].edges.push(new j0(W,z,C)),W}function zq(C,z,B){var V=new ex(C,null);return V.a=z,V.b=B,bs.push(V),V}function $0(C,z,B,V){!C.a&&!C.b?(C.a=V,C.l=z,C.r=B):C.l===B?C.b=V:C.a=V}function j0(C,z,B){var V=C.a,W=C.b;this.edge=C,this.site=z,this.angle=B?Math.atan2(B.y-z.y,B.x-z.x):C.l===z?Math.atan2(W.x-V.x,V.y-W.y):Math.atan2(V.x-W.x,W.y-V.y)}j0.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}};function Id(){this._=null}function ec(C){C.U=C.C=C.L=C.R=C.P=C.N=null}Id.prototype={insert:function(C,z){var B,V,W;if(C){if(z.P=C,z.N=C.N,C.N&&(C.N.P=z),C.N=z,C.R){for(C=C.R;C.L;)C=C.L;C.L=z}else C.R=z;B=C}else this._?(C=rx(this._),z.P=null,z.N=C,C.P=C.L=z,B=C):(z.P=z.N=null,this._=z,B=null);for(z.L=z.R=null,z.U=B,z.C=!0,C=z;B&&B.C;)V=B.U,B===V.L?(W=V.R,W&&W.C?(B.C=W.C=!1,V.C=!0,C=V):(C===B.R&&(Qu(this,B),C=B,B=C.U),B.C=!1,V.C=!0,$u(this,V))):(W=V.L,W&&W.C?(B.C=W.C=!1,V.C=!0,C=V):(C===B.L&&($u(this,B),C=B,B=C.U),B.C=!1,V.C=!0,Qu(this,V))),B=C.U;this._.C=!1},remove:function(C){C.N&&(C.N.P=C.P),C.P&&(C.P.N=C.N),C.N=C.P=