offices-viewer
Version:
## Current Renderable File Types
1,356 lines (1,355 loc) • 241 kB
JavaScript
// src/drivers/chart/d3.min.js
!function() {
function n(n2) {
return n2 && (n2.ownerDocument || n2.document || n2).documentElement;
}
function t(n2) {
return n2 && (n2.ownerDocument && n2.ownerDocument.defaultView || n2.document && n2 || n2.defaultView);
}
function e(n2, t2) {
return t2 > n2 ? -1 : n2 > t2 ? 1 : n2 >= t2 ? 0 : NaN;
}
function r(n2) {
return null === n2 ? NaN : +n2;
}
function u(n2) {
return !isNaN(n2);
}
function i(n2) {
return { left: function(t2, e2, r2, u2) {
for (arguments.length < 3 && (r2 = 0), arguments.length < 4 && (u2 = t2.length); u2 > r2; ) {
var i2 = r2 + u2 >>> 1;
n2(t2[i2], e2) < 0 ? r2 = i2 + 1 : u2 = i2;
}
return r2;
}, right: function(t2, e2, r2, u2) {
for (arguments.length < 3 && (r2 = 0), arguments.length < 4 && (u2 = t2.length); u2 > r2; ) {
var i2 = r2 + u2 >>> 1;
n2(t2[i2], e2) > 0 ? u2 = i2 : r2 = i2 + 1;
}
return r2;
} };
}
function a(n2) {
return n2.length;
}
function o(n2) {
for (var t2 = 1; n2 * t2 % 1; )
t2 *= 10;
return t2;
}
function l(n2, t2) {
for (var e2 in t2)
Object.defineProperty(n2.prototype, e2, { value: t2[e2], enumerable: false });
}
function c() {
this._ = /* @__PURE__ */ Object.create(null);
}
function s(n2) {
return (n2 += "") === xa || n2[0] === ba ? ba + n2 : n2;
}
function f(n2) {
return (n2 += "")[0] === ba ? n2.slice(1) : n2;
}
function h(n2) {
return s(n2) in this._;
}
function g(n2) {
return (n2 = s(n2)) in this._ && delete this._[n2];
}
function p() {
var n2 = [];
for (var t2 in this._)
n2.push(f(t2));
return n2;
}
function v() {
var n2 = 0;
for (var t2 in this._)
++n2;
return n2;
}
function d() {
for (var n2 in this._)
return false;
return true;
}
function m() {
this._ = /* @__PURE__ */ Object.create(null);
}
function y(n2) {
return n2;
}
function M(n2, t2, e2) {
return function() {
var r2 = e2.apply(t2, arguments);
return r2 === t2 ? n2 : r2;
};
}
function x(n2, t2) {
if (t2 in n2)
return t2;
t2 = t2.charAt(0).toUpperCase() + t2.slice(1);
for (var e2 = 0, r2 = _a.length; r2 > e2; ++e2) {
var u2 = _a[e2] + t2;
if (u2 in n2)
return u2;
}
}
function b() {
}
function _() {
}
function w(n2) {
function t2() {
for (var t3, r3 = e2, u2 = -1, i2 = r3.length; ++u2 < i2; )
(t3 = r3[u2].on) && t3.apply(this, arguments);
return n2;
}
var e2 = [], r2 = new c();
return t2.on = function(t3, u2) {
var i2, a2 = r2.get(t3);
return arguments.length < 2 ? a2 && a2.on : (a2 && (a2.on = null, e2 = e2.slice(0, i2 = e2.indexOf(a2)).concat(e2.slice(i2 + 1)), r2.remove(t3)), u2 && e2.push(r2.set(t3, { on: u2 })), n2);
}, t2;
}
function S() {
oa.event.preventDefault();
}
function k() {
for (var n2, t2 = oa.event; n2 = t2.sourceEvent; )
t2 = n2;
return t2;
}
function N(n2) {
for (var t2 = new _(), e2 = 0, r2 = arguments.length; ++e2 < r2; )
t2[arguments[e2]] = w(t2);
return t2.of = function(e3, r3) {
return function(u2) {
try {
var i2 = u2.sourceEvent = oa.event;
u2.target = n2, oa.event = u2, t2[u2.type].apply(e3, r3);
} finally {
oa.event = i2;
}
};
}, t2;
}
function E(n2) {
return Sa(n2, Aa), n2;
}
function A(n2) {
return "function" == typeof n2 ? n2 : function() {
return ka(n2, this);
};
}
function C(n2) {
return "function" == typeof n2 ? n2 : function() {
return Na(n2, this);
};
}
function z(n2, t2) {
function e2() {
this.removeAttribute(n2);
}
function r2() {
this.removeAttributeNS(n2.space, n2.local);
}
function u2() {
this.setAttribute(n2, t2);
}
function i2() {
this.setAttributeNS(n2.space, n2.local, t2);
}
function a2() {
var e3 = t2.apply(this, arguments);
null == e3 ? this.removeAttribute(n2) : this.setAttribute(n2, e3);
}
function o2() {
var e3 = t2.apply(this, arguments);
null == e3 ? this.removeAttributeNS(n2.space, n2.local) : this.setAttributeNS(n2.space, n2.local, e3);
}
return n2 = oa.ns.qualify(n2), null == t2 ? n2.local ? r2 : e2 : "function" == typeof t2 ? n2.local ? o2 : a2 : n2.local ? i2 : u2;
}
function L(n2) {
return n2.trim().replace(/\s+/g, " ");
}
function q(n2) {
return new RegExp("(?:^|\\s+)" + oa.requote(n2) + "(?:\\s+|$)", "g");
}
function T(n2) {
return (n2 + "").trim().split(/^|\s+/);
}
function R(n2, t2) {
function e2() {
for (var e3 = -1; ++e3 < u2; )
n2[e3](this, t2);
}
function r2() {
for (var e3 = -1, r3 = t2.apply(this, arguments); ++e3 < u2; )
n2[e3](this, r3);
}
n2 = T(n2).map(D);
var u2 = n2.length;
return "function" == typeof t2 ? r2 : e2;
}
function D(n2) {
var t2 = q(n2);
return function(e2, r2) {
if (u2 = e2.classList)
return r2 ? u2.add(n2) : u2.remove(n2);
var u2 = e2.getAttribute("class") || "";
r2 ? (t2.lastIndex = 0, t2.test(u2) || e2.setAttribute("class", L(u2 + " " + n2))) : e2.setAttribute("class", L(u2.replace(t2, " ")));
};
}
function P(n2, t2, e2) {
function r2() {
this.style.removeProperty(n2);
}
function u2() {
this.style.setProperty(n2, t2, e2);
}
function i2() {
var r3 = t2.apply(this, arguments);
null == r3 ? this.style.removeProperty(n2) : this.style.setProperty(n2, r3, e2);
}
return null == t2 ? r2 : "function" == typeof t2 ? i2 : u2;
}
function j(n2, t2) {
function e2() {
delete this[n2];
}
function r2() {
this[n2] = t2;
}
function u2() {
var e3 = t2.apply(this, arguments);
null == e3 ? delete this[n2] : this[n2] = e3;
}
return null == t2 ? e2 : "function" == typeof t2 ? u2 : r2;
}
function U(n2) {
function t2() {
var t3 = this.ownerDocument, e3 = this.namespaceURI;
return e3 ? t3.createElementNS(e3, n2) : t3.createElement(n2);
}
function e2() {
return this.ownerDocument.createElementNS(n2.space, n2.local);
}
return "function" == typeof n2 ? n2 : (n2 = oa.ns.qualify(n2)).local ? e2 : t2;
}
function F() {
var n2 = this.parentNode;
n2 && n2.removeChild(this);
}
function H(n2) {
return { __data__: n2 };
}
function O(n2) {
return function() {
return Ea(this, n2);
};
}
function I(n2) {
return arguments.length || (n2 = e), function(t2, e2) {
return t2 && e2 ? n2(t2.__data__, e2.__data__) : !t2 - !e2;
};
}
function Y(n2, t2) {
for (var e2 = 0, r2 = n2.length; r2 > e2; e2++)
for (var u2, i2 = n2[e2], a2 = 0, o2 = i2.length; o2 > a2; a2++)
(u2 = i2[a2]) && t2(u2, a2, e2);
return n2;
}
function Z(n2) {
return Sa(n2, za), n2;
}
function V(n2) {
var t2, e2;
return function(r2, u2, i2) {
var a2, o2 = n2[i2].update, l2 = o2.length;
for (i2 != e2 && (e2 = i2, t2 = 0), u2 >= t2 && (t2 = u2 + 1); !(a2 = o2[t2]) && ++t2 < l2; )
;
return a2;
};
}
function X(n2, t2, e2) {
function r2() {
var t3 = this[a2];
t3 && (this.removeEventListener(n2, t3, t3.$), delete this[a2]);
}
function u2() {
var u3 = l2(t2, ca(arguments));
r2.call(this), this.addEventListener(n2, this[a2] = u3, u3.$ = e2), u3._ = t2;
}
function i2() {
var t3, e3 = new RegExp("^__on([^.]+)" + oa.requote(n2) + "$");
for (var r3 in this)
if (t3 = r3.match(e3)) {
var u3 = this[r3];
this.removeEventListener(t3[1], u3, u3.$), delete this[r3];
}
}
var a2 = "__on" + n2, o2 = n2.indexOf("."), l2 = $;
o2 > 0 && (n2 = n2.slice(0, o2));
var c2 = La.get(n2);
return c2 && (n2 = c2, l2 = B), o2 ? t2 ? u2 : r2 : t2 ? b : i2;
}
function $(n2, t2) {
return function(e2) {
var r2 = oa.event;
oa.event = e2, t2[0] = this.__data__;
try {
n2.apply(this, t2);
} finally {
oa.event = r2;
}
};
}
function B(n2, t2) {
var e2 = $(n2, t2);
return function(n3) {
var t3 = this, r2 = n3.relatedTarget;
r2 && (r2 === t3 || 8 & r2.compareDocumentPosition(t3)) || e2.call(t3, n3);
};
}
function W(e2) {
var r2 = ".dragsuppress-" + ++Ta, u2 = "click" + r2, i2 = oa.select(t(e2)).on("touchmove" + r2, S).on("dragstart" + r2, S).on("selectstart" + r2, S);
if (null == qa && (qa = "onselectstart" in e2 ? false : x(e2.style, "userSelect")), qa) {
var a2 = n(e2).style, o2 = a2[qa];
a2[qa] = "none";
}
return function(n2) {
if (i2.on(r2, null), qa && (a2[qa] = o2), n2) {
var t2 = function() {
i2.on(u2, null);
};
i2.on(u2, function() {
S(), t2();
}, true), setTimeout(t2, 0);
}
};
}
function J(n2, e2) {
e2.changedTouches && (e2 = e2.changedTouches[0]);
var r2 = n2.ownerSVGElement || n2;
if (r2.createSVGPoint) {
var u2 = r2.createSVGPoint();
if (0 > Ra) {
var i2 = t(n2);
if (i2.scrollX || i2.scrollY) {
r2 = oa.select("body").append("svg").style({ position: "absolute", top: 0, left: 0, margin: 0, padding: 0, border: "none" }, "important");
var a2 = r2[0][0].getScreenCTM();
Ra = !(a2.f || a2.e), r2.remove();
}
}
return Ra ? (u2.x = e2.pageX, u2.y = e2.pageY) : (u2.x = e2.clientX, u2.y = e2.clientY), u2 = u2.matrixTransform(n2.getScreenCTM().inverse()), [u2.x, u2.y];
}
var o2 = n2.getBoundingClientRect();
return [e2.clientX - o2.left - n2.clientLeft, e2.clientY - o2.top - n2.clientTop];
}
function G() {
return oa.event.changedTouches[0].identifier;
}
function K(n2) {
return n2 > 0 ? 1 : 0 > n2 ? -1 : 0;
}
function Q(n2, t2, e2) {
return (t2[0] - n2[0]) * (e2[1] - n2[1]) - (t2[1] - n2[1]) * (e2[0] - n2[0]);
}
function nn(n2) {
return n2 > 1 ? 0 : -1 > n2 ? ja : Math.acos(n2);
}
function tn(n2) {
return n2 > 1 ? Ha : -1 > n2 ? -Ha : Math.asin(n2);
}
function en(n2) {
return ((n2 = Math.exp(n2)) - 1 / n2) / 2;
}
function rn(n2) {
return ((n2 = Math.exp(n2)) + 1 / n2) / 2;
}
function un(n2) {
return ((n2 = Math.exp(2 * n2)) - 1) / (n2 + 1);
}
function an(n2) {
return (n2 = Math.sin(n2 / 2)) * n2;
}
function on() {
}
function ln(n2, t2, e2) {
return this instanceof ln ? (this.h = +n2, this.s = +t2, void (this.l = +e2)) : arguments.length < 2 ? n2 instanceof ln ? new ln(n2.h, n2.s, n2.l) : _n("" + n2, wn, ln) : new ln(n2, t2, e2);
}
function cn(n2, t2, e2) {
function r2(n3) {
return n3 > 360 ? n3 -= 360 : 0 > n3 && (n3 += 360), 60 > n3 ? i2 + (a2 - i2) * n3 / 60 : 180 > n3 ? a2 : 240 > n3 ? i2 + (a2 - i2) * (240 - n3) / 60 : i2;
}
function u2(n3) {
return Math.round(255 * r2(n3));
}
var i2, a2;
return n2 = isNaN(n2) ? 0 : (n2 %= 360) < 0 ? n2 + 360 : n2, t2 = isNaN(t2) ? 0 : 0 > t2 ? 0 : t2 > 1 ? 1 : t2, e2 = 0 > e2 ? 0 : e2 > 1 ? 1 : e2, a2 = 0.5 >= e2 ? e2 * (1 + t2) : e2 + t2 - e2 * t2, i2 = 2 * e2 - a2, new yn(u2(n2 + 120), u2(n2), u2(n2 - 120));
}
function sn(n2, t2, e2) {
return this instanceof sn ? (this.h = +n2, this.c = +t2, void (this.l = +e2)) : arguments.length < 2 ? n2 instanceof sn ? new sn(n2.h, n2.c, n2.l) : n2 instanceof hn ? pn(n2.l, n2.a, n2.b) : pn((n2 = Sn((n2 = oa.rgb(n2)).r, n2.g, n2.b)).l, n2.a, n2.b) : new sn(n2, t2, e2);
}
function fn(n2, t2, e2) {
return isNaN(n2) && (n2 = 0), isNaN(t2) && (t2 = 0), new hn(e2, Math.cos(n2 *= Oa) * t2, Math.sin(n2) * t2);
}
function hn(n2, t2, e2) {
return this instanceof hn ? (this.l = +n2, this.a = +t2, void (this.b = +e2)) : arguments.length < 2 ? n2 instanceof hn ? new hn(n2.l, n2.a, n2.b) : n2 instanceof sn ? fn(n2.h, n2.c, n2.l) : Sn((n2 = yn(n2)).r, n2.g, n2.b) : new hn(n2, t2, e2);
}
function gn(n2, t2, e2) {
var r2 = (n2 + 16) / 116, u2 = r2 + t2 / 500, i2 = r2 - e2 / 200;
return u2 = vn(u2) * Ka, r2 = vn(r2) * Qa, i2 = vn(i2) * no, new yn(mn(3.2404542 * u2 - 1.5371385 * r2 - 0.4985314 * i2), mn(-0.969266 * u2 + 1.8760108 * r2 + 0.041556 * i2), mn(0.0556434 * u2 - 0.2040259 * r2 + 1.0572252 * i2));
}
function pn(n2, t2, e2) {
return n2 > 0 ? new sn(Math.atan2(e2, t2) * Ia, Math.sqrt(t2 * t2 + e2 * e2), n2) : new sn(NaN, NaN, n2);
}
function vn(n2) {
return n2 > 0.206893034 ? n2 * n2 * n2 : (n2 - 4 / 29) / 7.787037;
}
function dn(n2) {
return n2 > 8856e-6 ? Math.pow(n2, 1 / 3) : 7.787037 * n2 + 4 / 29;
}
function mn(n2) {
return Math.round(255 * (304e-5 >= n2 ? 12.92 * n2 : 1.055 * Math.pow(n2, 1 / 2.4) - 0.055));
}
function yn(n2, t2, e2) {
return this instanceof yn ? (this.r = ~~n2, this.g = ~~t2, void (this.b = ~~e2)) : arguments.length < 2 ? n2 instanceof yn ? new yn(n2.r, n2.g, n2.b) : _n("" + n2, yn, cn) : new yn(n2, t2, e2);
}
function Mn(n2) {
return new yn(n2 >> 16, n2 >> 8 & 255, 255 & n2);
}
function xn(n2) {
return Mn(n2) + "";
}
function bn(n2) {
return 16 > n2 ? "0" + Math.max(0, n2).toString(16) : Math.min(255, n2).toString(16);
}
function _n(n2, t2, e2) {
var r2, u2, i2, a2 = 0, o2 = 0, l2 = 0;
if (r2 = /([a-z]+)\((.*)\)/.exec(n2 = n2.toLowerCase()))
switch (u2 = r2[2].split(","), r2[1]) {
case "hsl":
return e2(parseFloat(u2[0]), parseFloat(u2[1]) / 100, parseFloat(u2[2]) / 100);
case "rgb":
return t2(Nn(u2[0]), Nn(u2[1]), Nn(u2[2]));
}
return (i2 = ro.get(n2)) ? t2(i2.r, i2.g, i2.b) : (null == n2 || "#" !== n2.charAt(0) || isNaN(i2 = parseInt(n2.slice(1), 16)) || (4 === n2.length ? (a2 = (3840 & i2) >> 4, a2 = a2 >> 4 | a2, o2 = 240 & i2, o2 = o2 >> 4 | o2, l2 = 15 & i2, l2 = l2 << 4 | l2) : 7 === n2.length && (a2 = (16711680 & i2) >> 16, o2 = (65280 & i2) >> 8, l2 = 255 & i2)), t2(a2, o2, l2));
}
function wn(n2, t2, e2) {
var r2, u2, i2 = Math.min(n2 /= 255, t2 /= 255, e2 /= 255), a2 = Math.max(n2, t2, e2), o2 = a2 - i2, l2 = (a2 + i2) / 2;
return o2 ? (u2 = 0.5 > l2 ? o2 / (a2 + i2) : o2 / (2 - a2 - i2), r2 = n2 == a2 ? (t2 - e2) / o2 + (e2 > t2 ? 6 : 0) : t2 == a2 ? (e2 - n2) / o2 + 2 : (n2 - t2) / o2 + 4, r2 *= 60) : (r2 = NaN, u2 = l2 > 0 && 1 > l2 ? 0 : r2), new ln(r2, u2, l2);
}
function Sn(n2, t2, e2) {
n2 = kn(n2), t2 = kn(t2), e2 = kn(e2);
var r2 = dn((0.4124564 * n2 + 0.3575761 * t2 + 0.1804375 * e2) / Ka), u2 = dn((0.2126729 * n2 + 0.7151522 * t2 + 0.072175 * e2) / Qa), i2 = dn((0.0193339 * n2 + 0.119192 * t2 + 0.9503041 * e2) / no);
return hn(116 * u2 - 16, 500 * (r2 - u2), 200 * (u2 - i2));
}
function kn(n2) {
return (n2 /= 255) <= 0.04045 ? n2 / 12.92 : Math.pow((n2 + 0.055) / 1.055, 2.4);
}
function Nn(n2) {
var t2 = parseFloat(n2);
return "%" === n2.charAt(n2.length - 1) ? Math.round(2.55 * t2) : t2;
}
function En(n2) {
return "function" == typeof n2 ? n2 : function() {
return n2;
};
}
function An(n2) {
return function(t2, e2, r2) {
return 2 === arguments.length && "function" == typeof e2 && (r2 = e2, e2 = null), Cn(t2, e2, n2, r2);
};
}
function Cn(n2, t2, e2, r2) {
function u2() {
var n3, t3 = l2.status;
if (!t3 && Ln(l2) || t3 >= 200 && 300 > t3 || 304 === t3) {
try {
n3 = e2.call(i2, l2);
} catch (r3) {
return void a2.error.call(i2, r3);
}
a2.load.call(i2, n3);
} else
a2.error.call(i2, l2);
}
var i2 = {}, a2 = oa.dispatch("beforesend", "progress", "load", "error"), o2 = {}, l2 = new XMLHttpRequest(), c2 = null;
return !this.XDomainRequest || "withCredentials" in l2 || !/^(http(s)?:)?\/\//.test(n2) || (l2 = new XDomainRequest()), "onload" in l2 ? l2.onload = l2.onerror = u2 : l2.onreadystatechange = function() {
l2.readyState > 3 && u2();
}, l2.onprogress = function(n3) {
var t3 = oa.event;
oa.event = n3;
try {
a2.progress.call(i2, l2);
} finally {
oa.event = t3;
}
}, i2.header = function(n3, t3) {
return n3 = (n3 + "").toLowerCase(), arguments.length < 2 ? o2[n3] : (null == t3 ? delete o2[n3] : o2[n3] = t3 + "", i2);
}, i2.mimeType = function(n3) {
return arguments.length ? (t2 = null == n3 ? null : n3 + "", i2) : t2;
}, i2.responseType = function(n3) {
return arguments.length ? (c2 = n3, i2) : c2;
}, i2.response = function(n3) {
return e2 = n3, i2;
}, ["get", "post"].forEach(function(n3) {
i2[n3] = function() {
return i2.send.apply(i2, [n3].concat(ca(arguments)));
};
}), i2.send = function(e3, r3, u3) {
if (2 === arguments.length && "function" == typeof r3 && (u3 = r3, r3 = null), l2.open(e3, n2, true), null == t2 || "accept" in o2 || (o2.accept = t2 + ",*/*"), l2.setRequestHeader)
for (var s2 in o2)
l2.setRequestHeader(s2, o2[s2]);
return null != t2 && l2.overrideMimeType && l2.overrideMimeType(t2), null != c2 && (l2.responseType = c2), null != u3 && i2.on("error", u3).on("load", function(n3) {
u3(null, n3);
}), a2.beforesend.call(i2, l2), l2.send(null == r3 ? null : r3), i2;
}, i2.abort = function() {
return l2.abort(), i2;
}, oa.rebind(i2, a2, "on"), null == r2 ? i2 : i2.get(zn(r2));
}
function zn(n2) {
return 1 === n2.length ? function(t2, e2) {
n2(null == t2 ? e2 : null);
} : n2;
}
function Ln(n2) {
var t2 = n2.responseType;
return t2 && "text" !== t2 ? n2.response : n2.responseText;
}
function qn(n2, t2, e2) {
var r2 = arguments.length;
2 > r2 && (t2 = 0), 3 > r2 && (e2 = Date.now());
var u2 = e2 + t2, i2 = { c: n2, t: u2, n: null };
return io ? io.n = i2 : uo = i2, io = i2, ao || (oo = clearTimeout(oo), ao = 1, lo(Tn)), i2;
}
function Tn() {
var n2 = Rn(), t2 = Dn() - n2;
t2 > 24 ? (isFinite(t2) && (clearTimeout(oo), oo = setTimeout(Tn, t2)), ao = 0) : (ao = 1, lo(Tn));
}
function Rn() {
for (var n2 = Date.now(), t2 = uo; t2; )
n2 >= t2.t && t2.c(n2 - t2.t) && (t2.c = null), t2 = t2.n;
return n2;
}
function Dn() {
for (var n2, t2 = uo, e2 = 1 / 0; t2; )
t2.c ? (t2.t < e2 && (e2 = t2.t), t2 = (n2 = t2).n) : t2 = n2 ? n2.n = t2.n : uo = t2.n;
return io = n2, e2;
}
function Pn(n2, t2) {
return t2 - (n2 ? Math.ceil(Math.log(n2) / Math.LN10) : 1);
}
function jn(n2, t2) {
var e2 = Math.pow(10, 3 * Ma(8 - t2));
return { scale: t2 > 8 ? function(n3) {
return n3 / e2;
} : function(n3) {
return n3 * e2;
}, symbol: n2 };
}
function Un(n2) {
var t2 = n2.decimal, e2 = n2.thousands, r2 = n2.grouping, u2 = n2.currency, i2 = r2 && e2 ? function(n3, t3) {
for (var u3 = n3.length, i3 = [], a2 = 0, o2 = r2[0], l2 = 0; u3 > 0 && o2 > 0 && (l2 + o2 + 1 > t3 && (o2 = Math.max(1, t3 - l2)), i3.push(n3.substring(u3 -= o2, u3 + o2)), !((l2 += o2 + 1) > t3)); )
o2 = r2[a2 = (a2 + 1) % r2.length];
return i3.reverse().join(e2);
} : y;
return function(n3) {
var e3 = so.exec(n3), r3 = e3[1] || " ", a2 = e3[2] || ">", o2 = e3[3] || "-", l2 = e3[4] || "", c2 = e3[5], s2 = +e3[6], f2 = e3[7], h2 = e3[8], g2 = e3[9], p2 = 1, v2 = "", d2 = "", m2 = false, y2 = true;
switch (h2 && (h2 = +h2.substring(1)), (c2 || "0" === r3 && "=" === a2) && (c2 = r3 = "0", a2 = "="), g2) {
case "n":
f2 = true, g2 = "g";
break;
case "%":
p2 = 100, d2 = "%", g2 = "f";
break;
case "p":
p2 = 100, d2 = "%", g2 = "r";
break;
case "b":
case "o":
case "x":
case "X":
"#" === l2 && (v2 = "0" + g2.toLowerCase());
case "c":
y2 = false;
case "d":
m2 = true, h2 = 0;
break;
case "s":
p2 = -1, g2 = "r";
}
"$" === l2 && (v2 = u2[0], d2 = u2[1]), "r" != g2 || h2 || (g2 = "g"), null != h2 && ("g" == g2 ? h2 = Math.max(1, Math.min(21, h2)) : ("e" == g2 || "f" == g2) && (h2 = Math.max(0, Math.min(20, h2)))), g2 = fo.get(g2) || Fn;
var M2 = c2 && f2;
return function(n4) {
var e4 = d2;
if (m2 && n4 % 1)
return "";
var u3 = 0 > n4 || 0 === n4 && 0 > 1 / n4 ? (n4 = -n4, "-") : "-" === o2 ? "" : o2;
if (0 > p2) {
var l3 = oa.formatPrefix(n4, h2);
n4 = l3.scale(n4), e4 = l3.symbol + d2;
} else
n4 *= p2;
n4 = g2(n4, h2);
var x2, b2, _2 = n4.lastIndexOf(".");
if (0 > _2) {
var w2 = y2 ? n4.lastIndexOf("e") : -1;
0 > w2 ? (x2 = n4, b2 = "") : (x2 = n4.substring(0, w2), b2 = n4.substring(w2));
} else
x2 = n4.substring(0, _2), b2 = t2 + n4.substring(_2 + 1);
!c2 && f2 && (x2 = i2(x2, 1 / 0));
var S2 = v2.length + x2.length + b2.length + (M2 ? 0 : u3.length), k2 = s2 > S2 ? new Array(S2 = s2 - S2 + 1).join(r3) : "";
return M2 && (x2 = i2(k2 + x2, k2.length ? s2 - b2.length : 1 / 0)), u3 += v2, n4 = x2 + b2, ("<" === a2 ? u3 + n4 + k2 : ">" === a2 ? k2 + u3 + n4 : "^" === a2 ? k2.substring(0, S2 >>= 1) + u3 + n4 + k2.substring(S2) : u3 + (M2 ? n4 : k2 + n4)) + e4;
};
};
}
function Fn(n2) {
return n2 + "";
}
function Hn() {
this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]);
}
function On(n2, t2, e2) {
function r2(t3) {
var e3 = n2(t3), r3 = i2(e3, 1);
return r3 - t3 > t3 - e3 ? e3 : r3;
}
function u2(e3) {
return t2(e3 = n2(new go(e3 - 1)), 1), e3;
}
function i2(n3, e3) {
return t2(n3 = new go(+n3), e3), n3;
}
function a2(n3, r3, i3) {
var a3 = u2(n3), o3 = [];
if (i3 > 1)
for (; r3 > a3; )
e2(a3) % i3 || o3.push(/* @__PURE__ */ new Date(+a3)), t2(a3, 1);
else
for (; r3 > a3; )
o3.push(/* @__PURE__ */ new Date(+a3)), t2(a3, 1);
return o3;
}
function o2(n3, t3, e3) {
try {
go = Hn;
var r3 = new Hn();
return r3._ = n3, a2(r3, t3, e3);
} finally {
go = Date;
}
}
n2.floor = n2, n2.round = r2, n2.ceil = u2, n2.offset = i2, n2.range = a2;
var l2 = n2.utc = In(n2);
return l2.floor = l2, l2.round = In(r2), l2.ceil = In(u2), l2.offset = In(i2), l2.range = o2, n2;
}
function In(n2) {
return function(t2, e2) {
try {
go = Hn;
var r2 = new Hn();
return r2._ = t2, n2(r2, e2)._;
} finally {
go = Date;
}
};
}
function Yn(n2) {
function t2(n3) {
function t3(t4) {
for (var e3, u3, i3, a3 = [], o3 = -1, l3 = 0; ++o3 < r3; )
37 === n3.charCodeAt(o3) && (a3.push(n3.slice(l3, o3)), null != (u3 = vo[e3 = n3.charAt(++o3)]) && (e3 = n3.charAt(++o3)), (i3 = A2[e3]) && (e3 = i3(t4, null == u3 ? "e" === e3 ? " " : "0" : u3)), a3.push(e3), l3 = o3 + 1);
return a3.push(n3.slice(l3, o3)), a3.join("");
}
var r3 = n3.length;
return t3.parse = function(t4) {
var r4 = { y: 1900, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0, Z: null }, u3 = e2(r4, n3, t4, 0);
if (u3 != t4.length)
return null;
"p" in r4 && (r4.H = r4.H % 12 + 12 * r4.p);
var i3 = null != r4.Z && go !== Hn, a3 = new (i3 ? Hn : go)();
return "j" in r4 ? a3.setFullYear(r4.y, 0, r4.j) : "W" in r4 || "U" in r4 ? ("w" in r4 || (r4.w = "W" in r4 ? 1 : 0), a3.setFullYear(r4.y, 0, 1), a3.setFullYear(r4.y, 0, "W" in r4 ? (r4.w + 6) % 7 + 7 * r4.W - (a3.getDay() + 5) % 7 : r4.w + 7 * r4.U - (a3.getDay() + 6) % 7)) : a3.setFullYear(r4.y, r4.m, r4.d), a3.setHours(r4.H + (r4.Z / 100 | 0), r4.M + r4.Z % 100, r4.S, r4.L), i3 ? a3._ : a3;
}, t3.toString = function() {
return n3;
}, t3;
}
function e2(n3, t3, e3, r3) {
for (var u3, i3, a3, o3 = 0, l3 = t3.length, c3 = e3.length; l3 > o3; ) {
if (r3 >= c3)
return -1;
if (u3 = t3.charCodeAt(o3++), 37 === u3) {
if (a3 = t3.charAt(o3++), i3 = C2[a3 in vo ? t3.charAt(o3++) : a3], !i3 || (r3 = i3(n3, e3, r3)) < 0)
return -1;
} else if (u3 != e3.charCodeAt(r3++))
return -1;
}
return r3;
}
function r2(n3, t3, e3) {
_2.lastIndex = 0;
var r3 = _2.exec(t3.slice(e3));
return r3 ? (n3.w = w2.get(r3[0].toLowerCase()), e3 + r3[0].length) : -1;
}
function u2(n3, t3, e3) {
x2.lastIndex = 0;
var r3 = x2.exec(t3.slice(e3));
return r3 ? (n3.w = b2.get(r3[0].toLowerCase()), e3 + r3[0].length) : -1;
}
function i2(n3, t3, e3) {
N2.lastIndex = 0;
var r3 = N2.exec(t3.slice(e3));
return r3 ? (n3.m = E2.get(r3[0].toLowerCase()), e3 + r3[0].length) : -1;
}
function a2(n3, t3, e3) {
S2.lastIndex = 0;
var r3 = S2.exec(t3.slice(e3));
return r3 ? (n3.m = k2.get(r3[0].toLowerCase()), e3 + r3[0].length) : -1;
}
function o2(n3, t3, r3) {
return e2(n3, A2.c.toString(), t3, r3);
}
function l2(n3, t3, r3) {
return e2(n3, A2.x.toString(), t3, r3);
}
function c2(n3, t3, r3) {
return e2(n3, A2.X.toString(), t3, r3);
}
function s2(n3, t3, e3) {
var r3 = M2.get(t3.slice(e3, e3 += 2).toLowerCase());
return null == r3 ? -1 : (n3.p = r3, e3);
}
var f2 = n2.dateTime, h2 = n2.date, g2 = n2.time, p2 = n2.periods, v2 = n2.days, d2 = n2.shortDays, m2 = n2.months, y2 = n2.shortMonths;
t2.utc = function(n3) {
function e3(n4) {
try {
go = Hn;
var t3 = new go();
return t3._ = n4, r3(t3);
} finally {
go = Date;
}
}
var r3 = t2(n3);
return e3.parse = function(n4) {
try {
go = Hn;
var t3 = r3.parse(n4);
return t3 && t3._;
} finally {
go = Date;
}
}, e3.toString = r3.toString, e3;
}, t2.multi = t2.utc.multi = ct;
var M2 = oa.map(), x2 = Vn(v2), b2 = Xn(v2), _2 = Vn(d2), w2 = Xn(d2), S2 = Vn(m2), k2 = Xn(m2), N2 = Vn(y2), E2 = Xn(y2);
p2.forEach(function(n3, t3) {
M2.set(n3.toLowerCase(), t3);
});
var A2 = { a: function(n3) {
return d2[n3.getDay()];
}, A: function(n3) {
return v2[n3.getDay()];
}, b: function(n3) {
return y2[n3.getMonth()];
}, B: function(n3) {
return m2[n3.getMonth()];
}, c: t2(f2), d: function(n3, t3) {
return Zn(n3.getDate(), t3, 2);
}, e: function(n3, t3) {
return Zn(n3.getDate(), t3, 2);
}, H: function(n3, t3) {
return Zn(n3.getHours(), t3, 2);
}, I: function(n3, t3) {
return Zn(n3.getHours() % 12 || 12, t3, 2);
}, j: function(n3, t3) {
return Zn(1 + ho.dayOfYear(n3), t3, 3);
}, L: function(n3, t3) {
return Zn(n3.getMilliseconds(), t3, 3);
}, m: function(n3, t3) {
return Zn(n3.getMonth() + 1, t3, 2);
}, M: function(n3, t3) {
return Zn(n3.getMinutes(), t3, 2);
}, p: function(n3) {
return p2[+(n3.getHours() >= 12)];
}, S: function(n3, t3) {
return Zn(n3.getSeconds(), t3, 2);
}, U: function(n3, t3) {
return Zn(ho.sundayOfYear(n3), t3, 2);
}, w: function(n3) {
return n3.getDay();
}, W: function(n3, t3) {
return Zn(ho.mondayOfYear(n3), t3, 2);
}, x: t2(h2), X: t2(g2), y: function(n3, t3) {
return Zn(n3.getFullYear() % 100, t3, 2);
}, Y: function(n3, t3) {
return Zn(n3.getFullYear() % 1e4, t3, 4);
}, Z: ot, "%": function() {
return "%";
} }, C2 = { a: r2, A: u2, b: i2, B: a2, c: o2, d: tt, e: tt, H: rt, I: rt, j: et, L: at, m: nt, M: ut, p: s2, S: it, U: Bn, w: $n, W: Wn, x: l2, X: c2, y: Gn, Y: Jn, Z: Kn, "%": lt };
return t2;
}
function Zn(n2, t2, e2) {
var r2 = 0 > n2 ? "-" : "", u2 = (r2 ? -n2 : n2) + "", i2 = u2.length;
return r2 + (e2 > i2 ? new Array(e2 - i2 + 1).join(t2) + u2 : u2);
}
function Vn(n2) {
return new RegExp("^(?:" + n2.map(oa.requote).join("|") + ")", "i");
}
function Xn(n2) {
for (var t2 = new c(), e2 = -1, r2 = n2.length; ++e2 < r2; )
t2.set(n2[e2].toLowerCase(), e2);
return t2;
}
function $n(n2, t2, e2) {
mo.lastIndex = 0;
var r2 = mo.exec(t2.slice(e2, e2 + 1));
return r2 ? (n2.w = +r2[0], e2 + r2[0].length) : -1;
}
function Bn(n2, t2, e2) {
mo.lastIndex = 0;
var r2 = mo.exec(t2.slice(e2));
return r2 ? (n2.U = +r2[0], e2 + r2[0].length) : -1;
}
function Wn(n2, t2, e2) {
mo.lastIndex = 0;
var r2 = mo.exec(t2.slice(e2));
return r2 ? (n2.W = +r2[0], e2 + r2[0].length) : -1;
}
function Jn(n2, t2, e2) {
mo.lastIndex = 0;
var r2 = mo.exec(t2.slice(e2, e2 + 4));
return r2 ? (n2.y = +r2[0], e2 + r2[0].length) : -1;
}
function Gn(n2, t2, e2) {
mo.lastIndex = 0;
var r2 = mo.exec(t2.slice(e2, e2 + 2));
return r2 ? (n2.y = Qn(+r2[0]), e2 + r2[0].length) : -1;
}
function Kn(n2, t2, e2) {
return /^[+-]\d{4}$/.test(t2 = t2.slice(e2, e2 + 5)) ? (n2.Z = -t2, e2 + 5) : -1;
}
function Qn(n2) {
return n2 + (n2 > 68 ? 1900 : 2e3);
}
function nt(n2, t2, e2) {
mo.lastIndex = 0;
var r2 = mo.exec(t2.slice(e2, e2 + 2));
return r2 ? (n2.m = r2[0] - 1, e2 + r2[0].length) : -1;
}
function tt(n2, t2, e2) {
mo.lastIndex = 0;
var r2 = mo.exec(t2.slice(e2, e2 + 2));
return r2 ? (n2.d = +r2[0], e2 + r2[0].length) : -1;
}
function et(n2, t2, e2) {
mo.lastIndex = 0;
var r2 = mo.exec(t2.slice(e2, e2 + 3));
return r2 ? (n2.j = +r2[0], e2 + r2[0].length) : -1;
}
function rt(n2, t2, e2) {
mo.lastIndex = 0;
var r2 = mo.exec(t2.slice(e2, e2 + 2));
return r2 ? (n2.H = +r2[0], e2 + r2[0].length) : -1;
}
function ut(n2, t2, e2) {
mo.lastIndex = 0;
var r2 = mo.exec(t2.slice(e2, e2 + 2));
return r2 ? (n2.M = +r2[0], e2 + r2[0].length) : -1;
}
function it(n2, t2, e2) {
mo.lastIndex = 0;
var r2 = mo.exec(t2.slice(e2, e2 + 2));
return r2 ? (n2.S = +r2[0], e2 + r2[0].length) : -1;
}
function at(n2, t2, e2) {
mo.lastIndex = 0;
var r2 = mo.exec(t2.slice(e2, e2 + 3));
return r2 ? (n2.L = +r2[0], e2 + r2[0].length) : -1;
}
function ot(n2) {
var t2 = n2.getTimezoneOffset(), e2 = t2 > 0 ? "-" : "+", r2 = Ma(t2) / 60 | 0, u2 = Ma(t2) % 60;
return e2 + Zn(r2, "0", 2) + Zn(u2, "0", 2);
}
function lt(n2, t2, e2) {
yo.lastIndex = 0;
var r2 = yo.exec(t2.slice(e2, e2 + 1));
return r2 ? e2 + r2[0].length : -1;
}
function ct(n2) {
for (var t2 = n2.length, e2 = -1; ++e2 < t2; )
n2[e2][0] = this(n2[e2][0]);
return function(t3) {
for (var e3 = 0, r2 = n2[e3]; !r2[1](t3); )
r2 = n2[++e3];
return r2[0](t3);
};
}
function st() {
}
function ft(n2, t2, e2) {
var r2 = e2.s = n2 + t2, u2 = r2 - n2, i2 = r2 - u2;
e2.t = n2 - i2 + (t2 - u2);
}
function ht(n2, t2) {
n2 && _o.hasOwnProperty(n2.type) && _o[n2.type](n2, t2);
}
function gt(n2, t2, e2) {
var r2, u2 = -1, i2 = n2.length - e2;
for (t2.lineStart(); ++u2 < i2; )
r2 = n2[u2], t2.point(r2[0], r2[1], r2[2]);
t2.lineEnd();
}
function pt(n2, t2) {
var e2 = -1, r2 = n2.length;
for (t2.polygonStart(); ++e2 < r2; )
gt(n2[e2], t2, 1);
t2.polygonEnd();
}
function vt() {
function n2(n3, t3) {
n3 *= Oa, t3 = t3 * Oa / 2 + ja / 4;
var e3 = n3 - r2, a2 = e3 >= 0 ? 1 : -1, o2 = a2 * e3, l2 = Math.cos(t3), c2 = Math.sin(t3), s2 = i2 * c2, f2 = u2 * l2 + s2 * Math.cos(o2), h2 = s2 * a2 * Math.sin(o2);
So.add(Math.atan2(h2, f2)), r2 = n3, u2 = l2, i2 = c2;
}
var t2, e2, r2, u2, i2;
ko.point = function(a2, o2) {
ko.point = n2, r2 = (t2 = a2) * Oa, u2 = Math.cos(o2 = (e2 = o2) * Oa / 2 + ja / 4), i2 = Math.sin(o2);
}, ko.lineEnd = function() {
n2(t2, e2);
};
}
function dt(n2) {
var t2 = n2[0], e2 = n2[1], r2 = Math.cos(e2);
return [r2 * Math.cos(t2), r2 * Math.sin(t2), Math.sin(e2)];
}
function mt(n2, t2) {
return n2[0] * t2[0] + n2[1] * t2[1] + n2[2] * t2[2];
}
function yt(n2, t2) {
return [n2[1] * t2[2] - n2[2] * t2[1], n2[2] * t2[0] - n2[0] * t2[2], n2[0] * t2[1] - n2[1] * t2[0]];
}
function Mt(n2, t2) {
n2[0] += t2[0], n2[1] += t2[1], n2[2] += t2[2];
}
function xt(n2, t2) {
return [n2[0] * t2, n2[1] * t2, n2[2] * t2];
}
function bt(n2) {
var t2 = Math.sqrt(n2[0] * n2[0] + n2[1] * n2[1] + n2[2] * n2[2]);
n2[0] /= t2, n2[1] /= t2, n2[2] /= t2;
}
function _t(n2) {
return [Math.atan2(n2[1], n2[0]), tn(n2[2])];
}
function wt(n2, t2) {
return Ma(n2[0] - t2[0]) < Da && Ma(n2[1] - t2[1]) < Da;
}
function St(n2, t2) {
n2 *= Oa;
var e2 = Math.cos(t2 *= Oa);
kt(e2 * Math.cos(n2), e2 * Math.sin(n2), Math.sin(t2));
}
function kt(n2, t2, e2) {
++No, Ao += (n2 - Ao) / No, Co += (t2 - Co) / No, zo += (e2 - zo) / No;
}
function Nt() {
function n2(n3, u2) {
n3 *= Oa;
var i2 = Math.cos(u2 *= Oa), a2 = i2 * Math.cos(n3), o2 = i2 * Math.sin(n3), l2 = Math.sin(u2), c2 = Math.atan2(Math.sqrt((c2 = e2 * l2 - r2 * o2) * c2 + (c2 = r2 * a2 - t2 * l2) * c2 + (c2 = t2 * o2 - e2 * a2) * c2), t2 * a2 + e2 * o2 + r2 * l2);
Eo += c2, Lo += c2 * (t2 + (t2 = a2)), qo += c2 * (e2 + (e2 = o2)), To += c2 * (r2 + (r2 = l2)), kt(t2, e2, r2);
}
var t2, e2, r2;
jo.point = function(u2, i2) {
u2 *= Oa;
var a2 = Math.cos(i2 *= Oa);
t2 = a2 * Math.cos(u2), e2 = a2 * Math.sin(u2), r2 = Math.sin(i2), jo.point = n2, kt(t2, e2, r2);
};
}
function Et() {
jo.point = St;
}
function At() {
function n2(n3, t3) {
n3 *= Oa;
var e3 = Math.cos(t3 *= Oa), a2 = e3 * Math.cos(n3), o2 = e3 * Math.sin(n3), l2 = Math.sin(t3), c2 = u2 * l2 - i2 * o2, s2 = i2 * a2 - r2 * l2, f2 = r2 * o2 - u2 * a2, h2 = Math.sqrt(c2 * c2 + s2 * s2 + f2 * f2), g2 = r2 * a2 + u2 * o2 + i2 * l2, p2 = h2 && -nn(g2) / h2, v2 = Math.atan2(h2, g2);
Ro += p2 * c2, Do += p2 * s2, Po += p2 * f2, Eo += v2, Lo += v2 * (r2 + (r2 = a2)), qo += v2 * (u2 + (u2 = o2)), To += v2 * (i2 + (i2 = l2)), kt(r2, u2, i2);
}
var t2, e2, r2, u2, i2;
jo.point = function(a2, o2) {
t2 = a2, e2 = o2, jo.point = n2, a2 *= Oa;
var l2 = Math.cos(o2 *= Oa);
r2 = l2 * Math.cos(a2), u2 = l2 * Math.sin(a2), i2 = Math.sin(o2), kt(r2, u2, i2);
}, jo.lineEnd = function() {
n2(t2, e2), jo.lineEnd = Et, jo.point = St;
};
}
function Ct(n2, t2) {
function e2(e3, r2) {
return e3 = n2(e3, r2), t2(e3[0], e3[1]);
}
return n2.invert && t2.invert && (e2.invert = function(e3, r2) {
return e3 = t2.invert(e3, r2), e3 && n2.invert(e3[0], e3[1]);
}), e2;
}
function zt() {
return true;
}
function Lt(n2, t2, e2, r2, u2) {
var i2 = [], a2 = [];
if (n2.forEach(function(n3) {
if (!((t3 = n3.length - 1) <= 0)) {
var t3, e3 = n3[0], r3 = n3[t3];
if (wt(e3, r3)) {
u2.lineStart();
for (var o3 = 0; t3 > o3; ++o3)
u2.point((e3 = n3[o3])[0], e3[1]);
return void u2.lineEnd();
}
var l3 = new Tt(e3, n3, null, true), c3 = new Tt(e3, null, l3, false);
l3.o = c3, i2.push(l3), a2.push(c3), l3 = new Tt(r3, n3, null, false), c3 = new Tt(r3, null, l3, true), l3.o = c3, i2.push(l3), a2.push(c3);
}
}), a2.sort(t2), qt(i2), qt(a2), i2.length) {
for (var o2 = 0, l2 = e2, c2 = a2.length; c2 > o2; ++o2)
a2[o2].e = l2 = !l2;
for (var s2, f2, h2 = i2[0]; ; ) {
for (var g2 = h2, p2 = true; g2.v; )
if ((g2 = g2.n) === h2)
return;
s2 = g2.z, u2.lineStart();
do {
if (g2.v = g2.o.v = true, g2.e) {
if (p2)
for (var o2 = 0, c2 = s2.length; c2 > o2; ++o2)
u2.point((f2 = s2[o2])[0], f2[1]);
else
r2(g2.x, g2.n.x, 1, u2);
g2 = g2.n;
} else {
if (p2) {
s2 = g2.p.z;
for (var o2 = s2.length - 1; o2 >= 0; --o2)
u2.point((f2 = s2[o2])[0], f2[1]);
} else
r2(g2.x, g2.p.x, -1, u2);
g2 = g2.p;
}
g2 = g2.o, s2 = g2.z, p2 = !p2;
} while (!g2.v);
u2.lineEnd();
}
}
}
function qt(n2) {
if (t2 = n2.length) {
for (var t2, e2, r2 = 0, u2 = n2[0]; ++r2 < t2; )
u2.n = e2 = n2[r2], e2.p = u2, u2 = e2;
u2.n = e2 = n2[0], e2.p = u2;
}
}
function Tt(n2, t2, e2, r2) {
this.x = n2, this.z = t2, this.o = e2, this.e = r2, this.v = false, this.n = this.p = null;
}
function Rt(n2, t2, e2, r2) {
return function(u2, i2) {
function a2(t3, e3) {
var r3 = u2(t3, e3);
n2(t3 = r3[0], e3 = r3[1]) && i2.point(t3, e3);
}
function o2(n3, t3) {
var e3 = u2(n3, t3);
d2.point(e3[0], e3[1]);
}
function l2() {
y2.point = o2, d2.lineStart();
}
function c2() {
y2.point = a2, d2.lineEnd();
}
function s2(n3, t3) {
v2.push([n3, t3]);
var e3 = u2(n3, t3);
x2.point(e3[0], e3[1]);
}
function f2() {
x2.lineStart(), v2 = [];
}
function h2() {
s2(v2[0][0], v2[0][1]), x2.lineEnd();
var n3, t3 = x2.clean(), e3 = M2.buffer(), r3 = e3.length;
if (v2.pop(), p2.push(v2), v2 = null, r3)
if (1 & t3) {
n3 = e3[0];
var u3, r3 = n3.length - 1, a3 = -1;
if (r3 > 0) {
for (b2 || (i2.polygonStart(), b2 = true), i2.lineStart(); ++a3 < r3; )
i2.point((u3 = n3[a3])[0], u3[1]);
i2.lineEnd();
}
} else
r3 > 1 && 2 & t3 && e3.push(e3.pop().concat(e3.shift())), g2.push(e3.filter(Dt));
}
var g2, p2, v2, d2 = t2(i2), m2 = u2.invert(r2[0], r2[1]), y2 = { point: a2, lineStart: l2, lineEnd: c2, polygonStart: function() {
y2.point = s2, y2.lineStart = f2, y2.lineEnd = h2, g2 = [], p2 = [];
}, polygonEnd: function() {
y2.point = a2, y2.lineStart = l2, y2.lineEnd = c2, g2 = oa.merge(g2);
var n3 = Ot(m2, p2);
g2.length ? (b2 || (i2.polygonStart(), b2 = true), Lt(g2, jt, n3, e2, i2)) : n3 && (b2 || (i2.polygonStart(), b2 = true), i2.lineStart(), e2(null, null, 1, i2), i2.lineEnd()), b2 && (i2.polygonEnd(), b2 = false), g2 = p2 = null;
}, sphere: function() {
i2.polygonStart(), i2.lineStart(), e2(null, null, 1, i2), i2.lineEnd(), i2.polygonEnd();
} }, M2 = Pt(), x2 = t2(M2), b2 = false;
return y2;
};
}
function Dt(n2) {
return n2.length > 1;
}
function Pt() {
var n2, t2 = [];
return { lineStart: function() {
t2.push(n2 = []);
}, point: function(t3, e2) {
n2.push([t3, e2]);
}, lineEnd: b, buffer: function() {
var e2 = t2;
return t2 = [], n2 = null, e2;
}, rejoin: function() {
t2.length > 1 && t2.push(t2.pop().concat(t2.shift()));
} };
}
function jt(n2, t2) {
return ((n2 = n2.x)[0] < 0 ? n2[1] - Ha - Da : Ha - n2[1]) - ((t2 = t2.x)[0] < 0 ? t2[1] - Ha - Da : Ha - t2[1]);
}
function Ut(n2) {
var t2, e2 = NaN, r2 = NaN, u2 = NaN;
return { lineStart: function() {
n2.lineStart(), t2 = 1;
}, point: function(i2, a2) {
var o2 = i2 > 0 ? ja : -ja, l2 = Ma(i2 - e2);
Ma(l2 - ja) < Da ? (n2.point(e2, r2 = (r2 + a2) / 2 > 0 ? Ha : -Ha), n2.point(u2, r2), n2.lineEnd(), n2.lineStart(), n2.point(o2, r2), n2.point(i2, r2), t2 = 0) : u2 !== o2 && l2 >= ja && (Ma(e2 - u2) < Da && (e2 -= u2 * Da), Ma(i2 - o2) < Da && (i2 -= o2 * Da), r2 = Ft(e2, r2, i2, a2), n2.point(u2, r2), n2.lineEnd(), n2.lineStart(), n2.point(o2, r2), t2 = 0), n2.point(e2 = i2, r2 = a2), u2 = o2;
}, lineEnd: function() {
n2.lineEnd(), e2 = r2 = NaN;
}, clean: function() {
return 2 - t2;
} };
}
function Ft(n2, t2, e2, r2) {
var u2, i2, a2 = Math.sin(n2 - e2);
return Ma(a2) > Da ? Math.atan((Math.sin(t2) * (i2 = Math.cos(r2)) * Math.sin(e2) - Math.sin(r2) * (u2 = Math.cos(t2)) * Math.sin(n2)) / (u2 * i2 * a2)) : (t2 + r2) / 2;
}
function Ht(n2, t2, e2, r2) {
var u2;
if (null == n2)
u2 = e2 * Ha, r2.point(-ja, u2), r2.point(0, u2), r2.point(ja, u2), r2.point(ja, 0), r2.point(ja, -u2), r2.point(0, -u2), r2.point(-ja, -u2), r2.point(-ja, 0), r2.point(-ja, u2);
else if (Ma(n2[0] - t2[0]) > Da) {
var i2 = n2[0] < t2[0] ? ja : -ja;
u2 = e2 * i2 / 2, r2.point(-i2, u2), r2.point(0, u2), r2.point(i2, u2);
} else
r2.point(t2[0], t2[1]);
}
function Ot(n2, t2) {
var e2 = n2[0], r2 = n2[1], u2 = [Math.sin(e2), -Math.cos(e2), 0], i2 = 0, a2 = 0;
So.reset();
for (var o2 = 0, l2 = t2.length; l2 > o2; ++o2) {
var c2 = t2[o2], s2 = c2.length;
if (s2)
for (var f2 = c2[0], h2 = f2[0], g2 = f2[1] / 2 + ja / 4, p2 = Math.sin(g2), v2 = Math.cos(g2), d2 = 1; ; ) {
d2 === s2 && (d2 = 0), n2 = c2[d2];
var m2 = n2[0], y2 = n2[1] / 2 + ja / 4, M2 = Math.sin(y2), x2 = Math.cos(y2), b2 = m2 - h2, _2 = b2 >= 0 ? 1 : -1, w2 = _2 * b2, S2 = w2 > ja, k2 = p2 * M2;
if (So.add(Math.atan2(k2 * _2 * Math.sin(w2), v2 * x2 + k2 * Math.cos(w2))), i2 += S2 ? b2 + _2 * Ua : b2, S2 ^ h2 >= e2 ^ m2 >= e2) {
var N2 = yt(dt(f2), dt(n2));
bt(N2);
var E2 = yt(u2, N2);
bt(E2);
var A2 = (S2 ^ b2 >= 0 ? -1 : 1) * tn(E2[2]);
(r2 > A2 || r2 === A2 && (N2[0] || N2[1])) && (a2 += S2 ^ b2 >= 0 ? 1 : -1);
}
if (!d2++)
break;
h2 = m2, p2 = M2, v2 = x2, f2 = n2;
}
}
return (-Da > i2 || Da > i2 && 0 > So) ^ 1 & a2;
}
function It(n2) {
function t2(n3, t3) {
return Math.cos(n3) * Math.cos(t3) > i2;
}
function e2(n3) {
var e3, i3, l3, c2, s2;
return { lineStart: function() {
c2 = l3 = false, s2 = 1;
}, point: function(f2, h2) {
var g2, p2 = [f2, h2], v2 = t2(f2, h2), d2 = a2 ? v2 ? 0 : u2(f2, h2) : v2 ? u2(f2 + (0 > f2 ? ja : -ja), h2) : 0;
if (!e3 && (c2 = l3 = v2) && n3.lineStart(), v2 !== l3 && (g2 = r2(e3, p2), (wt(e3, g2) || wt(p2, g2)) && (p2[0] += Da, p2[1] += Da, v2 = t2(p2[0], p2[1]))), v2 !== l3)
s2 = 0, v2 ? (n3.lineStart(), g2 = r2(p2, e3), n3.point(g2[0], g2[1])) : (g2 = r2(e3, p2), n3.point(g2[0], g2[1]), n3.lineEnd()), e3 = g2;
else if (o2 && e3 && a2 ^ v2) {
var m2;
d2 & i3 || !(m2 = r2(p2, e3, true)) || (s2 = 0, a2 ? (n3.lineStart(), n3.point(m2[0][0], m2[0][1]), n3.point(m2[1][0], m2[1][1]), n3.lineEnd()) : (n3.point(m2[1][0], m2[1][1]), n3.lineEnd(), n3.lineStart(), n3.point(m2[0][0], m2[0][1])));
}
!v2 || e3 && wt(e3, p2) || n3.point(p2[0], p2[1]), e3 = p2, l3 = v2, i3 = d2;
}, lineEnd: function() {
l3 && n3.lineEnd(), e3 = null;
}, clean: function() {
return s2 | (c2 && l3) << 1;
} };
}
function r2(n3, t3, e3) {
var r3 = dt(n3), u3 = dt(t3), a3 = [1, 0, 0], o3 = yt(r3, u3), l3 = mt(o3, o3), c2 = o3[0], s2 = l3 - c2 * c2;
if (!s2)
return !e3 && n3;
var f2 = i2 * l3 / s2, h2 = -i2 * c2 / s2, g2 = yt(a3, o3), p2 = xt(a3, f2), v2 = xt(o3, h2);
Mt(p2, v2);
var d2 = g2, m2 = mt(p2, d2), y2 = mt(d2, d2), M2 = m2 * m2 - y2 * (mt(p2, p2) - 1);
if (!(0 > M2)) {
var x2 = Math.sqrt(M2), b2 = xt(d2, (-m2 - x2) / y2);
if (Mt(b2, p2), b2 = _t(b2), !e3)
return b2;
var _2, w2 = n3[0], S2 = t3[0], k2 = n3[1], N2 = t3[1];
w2 > S2 && (_2 = w2, w2 = S2, S2 = _2);
var E2 = S2 - w2, A2 = Ma(E2 - ja) < Da, C2 = A2 || Da > E2;
if (!A2 && k2 > N2 && (_2 = k2, k2 = N2, N2 = _2), C2 ? A2 ? k2 + N2 > 0 ^ b2[1] < (Ma(b2[0] - w2) < Da ? k2 : N2) : k2 <= b2[1] && b2[1] <= N2 : E2 > ja ^ (w2 <= b2[0] && b2[0] <= S2)) {
var z2 = xt(d2, (-m2 + x2) / y2);
return Mt(z2, p2), [b2, _t(z2)];
}
}
}
function u2(t3, e3) {
var r3 = a2 ? n2 : ja - n2, u3 = 0;
return -r3 > t3 ? u3 |= 1 : t3 > r3 && (u3 |= 2), -r3 > e3 ? u3 |= 4 : e3 > r3 && (u3 |= 8), u3;
}
var i2 = Math.cos(n2), a2 = i2 > 0, o2 = Ma(i2) > Da, l2 = ve(n2, 6 * Oa);
return Rt(t2, e2, l2, a2 ? [0, -n2] : [-ja, n2 - ja]);
}
function Yt(n2, t2, e2, r2) {
return function(u2) {
var i2, a2 = u2.a, o2 = u2.b, l2 = a2.x, c2 = a2.y, s2 = o2.x, f2 = o2.y, h2 = 0, g2 = 1, p2 = s2 - l2, v2 = f2 - c2;
if (i2 = n2 - l2, p2 || !(i2 > 0)) {
if (i2 /= p2, 0 > p2) {
if (h2 > i2)
return;
g2 > i2 && (g2 = i2);
} else if (p2 > 0) {
if (i2 > g2)
return;
i2 > h2 && (h2 = i2);
}
if (i2 = e2 - l2, p2 || !(0 > i2)) {
if (i2 /= p2, 0 > p2) {
if (i2 > g2)
return;
i2 > h2 && (h2 = i2);
} else if (p2 > 0) {
if (h2 > i2)
return;
g2 > i2 && (g2 = i2);
}
if (i2 = t2 - c2, v2 || !(i2 > 0)) {
if (i2 /= v2, 0 > v2) {
if (h2 > i2)
return;
g2 > i2 && (g2 = i2);
} else if (v2 > 0) {
if (i2 > g2)
return;
i2 > h2 && (h2 = i2);
}
if (i2 = r2 - c2, v2 || !(0 > i2)) {
if (i2 /= v2, 0 > v2) {
if (i2 > g2)
return;
i2 > h2 && (h2 = i2);
} else if (v2 > 0) {
if (h2 > i2)
return;
g2 > i2 && (g2 = i2);
}
return h2 > 0 && (u2.a = { x: l2 + h2 * p2, y: c2 + h2 * v2 }), 1 > g2 && (u2.b = { x: l2 + g2 * p2, y: c2 + g2 * v2 }), u2;
}
}
}
}
};
}
function Zt(n2, t2, e2, r2) {
function u2(r3, u3) {
return Ma(r3[0] - n2) < Da ? u3 > 0 ? 0 : 3 : Ma(r3[0] - e2) < Da ? u3 > 0 ? 2 : 1 : Ma(r3[1] - t2) < Da ? u3 > 0 ? 1 : 0 : u3 > 0 ? 3 : 2;
}
function i2(n3, t3) {
return a2(n3.x, t3.x);
}
function a2(n3, t3) {
var e3 = u2(n3, 1), r3 = u2(t3, 1);
return e3 !== r3 ? e3 - r3 : 0 === e3 ? t3[1] - n3[1] : 1 === e3 ? n3[0] - t3[0] : 2 === e3 ? n3[1] - t3[1] : t3[0] - n3[0];
}
return function(o2) {
function l2(n3) {
for (var t3 = 0, e3 = d2.length, r3 = n3[1], u3 = 0; e3 > u3; ++u3)
for (var i3, a3 = 1, o3 = d2[u3], l3 = o3.length, c3 = o3[0]; l3 > a3; ++a3)
i3 = o3[a3], c3[1] <= r3 ? i3[1] > r3 && Q(c3, i3, n3) > 0 && ++t3 : i3[1] <= r3 && Q(c3, i3, n3) < 0 && --t3, c3 = i3;
return 0 !== t3;
}
function c2(i3, o3, l3, c3) {
var s3 = 0, f3 = 0;
if (null == i3 || (s3 = u2(i3, l3)) !== (f3 = u2(o3, l3)) || a2(i3, o3) < 0 ^ l3 > 0) {
do
c3.point(0 === s3 || 3 === s3 ? n2 : e2, s3 > 1 ? r2 : t2);
while ((s3 = (s3 + l3 + 4) % 4) !== f3);
} else
c3.point(o3[0], o3[1]);
}
function s2(u3, i3) {
return u3 >= n2 && e2 >= u3 && i3 >= t2 && r2 >= i3;
}
function f2(n3, t3) {
s2(n3, t3) && o2.point(n3, t3);
}
function h2() {
C2.point = p2, d2 && d2.push(m2 = []), S2 = true, w2 = false, b2 = _2 = NaN;
}
function g2() {
v2 && (p2(y2, M2), x2 && w2 && E2.rejoin(), v2.push(E2.buffer())), C2.point = f2, w2 && o2.lineEnd();
}
function p2(n3, t3) {
n3 = Math.max(-Fo, Math.min(Fo, n3)), t3 = Math.max(-Fo, Math.min(Fo, t3));
var e3 = s2(n3, t3);
if (d2 && m2.push([n3, t3]), S2)
y2 = n3, M2 = t3, x2 = e3, S2 = false, e3 && (o2.lineStart(), o2.point(n3, t3));
else if (e3 && w2)
o2.point(n3, t3);
else {
var r3 = { a: { x: b2, y: _2 }, b: { x: n3, y: t3 } };
A2(r3) ? (w2 || (o2.lineStart(), o2.point(r3.a.x, r3.a.y)), o2.point(r3.b.x, r3.b.y), e3 || o2.lineEnd(), k2 = false) : e3 && (o2.lineStart(), o2.point(n3, t3), k2 = false);
}
b2 = n3, _2 = t3, w2 = e3;
}
var v2, d2, m2, y2, M2, x2, b2, _2, w2, S2, k2, N2 = o2, E2 = Pt(), A2 = Yt(n2, t2, e2, r2), C2 = { point: f2, lineStart: h2, lineEnd: g2, polygonStart: function() {
o2 = E2, v2 = [], d2 = [], k2 = true;
}, polygonEnd: function() {
o2 = N2, v2 = oa.merge(v2);
var t3 = l2([n2, r2]), e3 = k2 && t3, u3 = v2.length;
(e3 || u3) && (o2.polygonStart(), e3 && (o2.lineStart(), c2(null, null, 1, o2), o2.lineEnd()), u3 && Lt(v2, i2, t3, c2, o2), o2.polygonEnd()), v2 = d2 = m2 = null;
} };
return C2;
};
}
function Vt(n2) {
var t2 = 0, e2 = ja / 3, r2 = oe(n2), u2 = r2(t2, e2);
return u2.parallels = function(n3) {
return arguments.length ? r2(t2 = n3[0] * ja / 180, e2 = n3[1] * ja / 180) : [t2 / ja * 180, e2 / ja * 180];
}, u2;
}
function Xt(n2, t2) {
function e2(n3, t3) {
var e3 = Math.sqrt(i2 - 2 * u2 * Math.sin(t3)) / u2;
return [e3 * Math.sin(n3 *= u2), a2 - e3 * Math.cos(n3)];
}
var r2 = Math.sin(n2), u2 = (r2 + Math.sin(t2)) / 2, i2 = 1 + r2 * (2 * u2 - r2), a2 = Math.sqrt(i2) / u2;
return e2.invert = function(n3, t3) {
var e3 = a2 - t3;
return [Math.atan2(n3, e3) / u2, tn((i2 - (n3 * n3 + e3 * e3) * u2 * u2) / (2 * u2))];
}, e2;
}
function $t() {
function n2(n3, t3) {