F&&(F=a)}else if(p=(p+360)%360-180,g^(u*T
F&&(F=t)}if(g)n =0&&"xmlns"!==(n=t.slice(0,r))&&(t=t.slice(r+1));return e.hasOwnProperty(n)?{space:e[n],local:t}:t}function creatorInherit(e){return function(){var n=this.ownerDocument,r=this.namespaceURI;return r===t&&n.documentElement.namespaceURI===t?n.createElement(e):n.createElementNS(r,e)}}function creatorFixed(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function creator(t){var e=namespace(t);return(e.local?creatorFixed:creatorInherit)(e)}function none(){}function selector(t){return null==t?none:function(){return this.querySelector(t)}}function selection_select(t){"function"!==typeof t&&(t=selector(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;ii)if(Math.abs(d*p-r*o)>i&&e){let u=n-_,x=a-$,y=p*p+r*r,M=u*u+x*x,c=Math.sqrt(y),f=Math.sqrt(l),w=e*Math.tan((t-Math.acos((y+l-M)/(2*c*f)))/2),v=w/f,P=w/c;Math.abs(v-1)>i&&this._append`L${h+v*o},${s+v*d}`;this._append`A${e},${e},0,0,${+(d*u>o*x)},${this._x1=h+P*p},${this._y1=s+P*r}`}else this._append`L${this._x1=h},${this._y1=s}`;else;}arc(n,a,e,_,$,p){n=+n,a=+a,e=+e,p=!!p;if(e<0)throw new Error(`negative radius: ${e}`);let r=e*Math.cos(_),o=e*Math.sin(_),d=n+r,l=a+o,u=1^p,x=p?_-$:$-_;null===this._x1?this._append`M${d},${l}`:(Math.abs(this._x1-d)>i||Math.abs(this._y1-l)>i)&&this._append`L${d},${l}`;if(e){x<0&&(x=x%h+h);x>s?this._append`A${e},${e},0,1,${u},${n-r},${a-o}A${e},${e},0,1,${u},${this._x1=d},${this._y1=l}`:x>i&&this._append`A${e},${e},0,${+(x>=t)},${u},${this._x1=n+e*Math.cos($)},${this._y1=a+e*Math.sin($)}`}}rect(t,h,i,s){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+h}h${i=+i}v${+s}h${-i}Z`}toString(){return this._}}function path(){return new Path}path.prototype=Path.prototype;function pathRound(t=3){return new Path(+t)}export{Path,path,pathRound};
+
diff --git a/vendor/javascript/d3-polygon.js b/vendor/javascript/d3-polygon.js
new file mode 100644
index 00000000..4ec6cc5c
--- /dev/null
+++ b/vendor/javascript/d3-polygon.js
@@ -0,0 +1,2 @@
+function area(n){var r,e=-1,t=n.length,o=n[t-1],l=0;while(++e=0;)if(r=i[o]){s&&4^r.compareDocumentPosition(s)&&s.parentNode.insertBefore(r,s);s=r}return this}function selection_sort(t){t||(t=ascending);function compareNode(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}for(var e=this._groups,n=e.length,r=new Array(n),i=0;i=0)i[n]=n;return i}function stackValue(t,n){return t[n]}function stackSeries(t){const n=[];n.key=t;return n}function stack(){var t=constant([]),n=none,i=none$1,e=stackValue;function stack(s){var o,a,r=Array.from(t.apply(this,arguments),stackSeries),h=r.length,l=-1;for(const t of s)for(o=0,++l;o53)return null;"w"in c||(c.w=1);if("Z"in c){f=utcDate(newDate(c.y,0,1)),i=f.getUTCDay();f=i>4||0===i?e.ceil(f):e(f);f=r.offset(f,7*(c.V-1));c.y=f.getUTCFullYear();c.m=f.getUTCMonth();c.d=f.getUTCDate()+(c.w+6)%7}else{f=localDate(newDate(c.y,0,1)),i=f.getDay();f=i>4||0===i?t.ceil(f):t(f);f=n.offset(f,7*(c.V-1));c.y=f.getFullYear();c.m=f.getMonth();c.d=f.getDate()+(c.w+6)%7}}else if("W"in c||"U"in c){"w"in c||(c.w="u"in c?c.u%7:"W"in c?1:0);i="Z"in c?utcDate(newDate(c.y,0,1)).getUTCDay():localDate(newDate(c.y,0,1)).getDay();c.m=0;c.d="W"in c?(c.w+6)%7+7*c.W-(i+5)%7:c.w+7*c.U-(i+6)%7}if("Z"in c){c.H+=c.Z/100|0;c.M+=c.Z%100;return utcDate(c)}return localDate(c)}}function parseSpecifier(e,r,t,n){var a,o,u=0,f=r.length,i=t.length;while(u0))return a;let o;do{a.push(o=new Date(+n)),t(n,r),e(n)}while(o