You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2015/09/28 15:15:11 UTC
[39/69] [abbrv] stratos git commit: Removed tenantId from queries and
refactore jaggery files
http://git-wip-us.apache.org/repos/asf/stratos/blob/9c1fdc75/extensions/das/metering-service/capps/stratos-metering-service/Gadget_Member_Count/Member_Count/js/d3.geomap.dependencies.min.js
----------------------------------------------------------------------
diff --git a/extensions/das/metering-service/capps/stratos-metering-service/Gadget_Member_Count/Member_Count/js/d3.geomap.dependencies.min.js b/extensions/das/metering-service/capps/stratos-metering-service/Gadget_Member_Count/Member_Count/js/d3.geomap.dependencies.min.js
new file mode 100644
index 0000000..390b86f
--- /dev/null
+++ b/extensions/das/metering-service/capps/stratos-metering-service/Gadget_Member_Count/Member_Count/js/d3.geomap.dependencies.min.js
@@ -0,0 +1,8235 @@
+/*!
+ * d3.geomap
+ * https://github.com/yaph/d3-geomap/blob/master/LICENSE
+ * MIT licensed
+ * Copyright (C) 2015 by Ramiro Gómez (http://ramiro.org/)
+ */
+!function () {
+ function n(n) {
+ return n && (n.ownerDocument || n.document || n).documentElement
+ }
+
+ function t(n) {
+ return n && (n.ownerDocument && n.ownerDocument.defaultView || n.document && n || n.defaultView)
+ }
+
+ function e(n, t) {
+ return t > n ? -1 : n > t ? 1 : n >= t ? 0 : 0 / 0
+ }
+
+ function r(n) {
+ return null === n ? 0 / 0 : +n
+ }
+
+ function u(n) {
+ return !isNaN(n)
+ }
+
+ function i(n) {
+ return {
+ left: function (t, e, r, u) {
+ for (arguments.length < 3 && (r = 0), arguments.length < 4 && (u = t.length); u > r;) {
+ var i = r + u >>> 1;
+ n(t[i], e) < 0 ? r = i + 1 : u = i
+ }
+ return r
+ }, right: function (t, e, r, u) {
+ for (arguments.length < 3 && (r = 0), arguments.length < 4 && (u = t.length); u > r;) {
+ var i = r + u >>> 1;
+ n(t[i], e) > 0 ? u = i : r = i + 1
+ }
+ return r
+ }
+ }
+ }
+
+ function o(n) {
+ return n.length
+ }
+
+ function a(n) {
+ for (var t = 1; n * t % 1;)t *= 10;
+ return t
+ }
+
+ function c(n, t) {
+ for (var e in t)Object.defineProperty(n.prototype, e, {value: t[e], enumerable: !1})
+ }
+
+ function l() {
+ this._ = Object.create(null)
+ }
+
+ function s(n) {
+ return (n += "") === pa || n[0] === va ? va + n : n
+ }
+
+ function f(n) {
+ return (n += "")[0] === va ? n.slice(1) : n
+ }
+
+ function h(n) {
+ return s(n)in this._
+ }
+
+ function g(n) {
+ return (n = s(n))in this._ && delete this._[n]
+ }
+
+ function p() {
+ var n = [];
+ for (var t in this._)n.push(f(t));
+ return n
+ }
+
+ function v() {
+ var n = 0;
+ for (var t in this._)++n;
+ return n
+ }
+
+ function d() {
+ for (var n in this._)return !1;
+ return !0
+ }
+
+ function m() {
+ this._ = Object.create(null)
+ }
+
+ function y(n) {
+ return n
+ }
+
+ function M(n, t, e) {
+ return function () {
+ var r = e.apply(t, arguments);
+ return r === t ? n : r
+ }
+ }
+
+ function x(n, t) {
+ if (t in n)return t;
+ t = t.charAt(0).toUpperCase() + t.slice(1);
+ for (var e = 0, r = da.length; r > e; ++e) {
+ var u = da[e] + t;
+ if (u in n)return u
+ }
+ }
+
+ function b() {
+ }
+
+ function _() {
+ }
+
+ function w(n) {
+ function t() {
+ for (var t, r = e, u = -1, i = r.length; ++u < i;)(t = r[u].on) && t.apply(this, arguments);
+ return n
+ }
+
+ var e = [], r = new l;
+ return t.on = function (t, u) {
+ var i, o = r.get(t);
+ return arguments.length < 2 ? o && o.on : (o && (o.on = null, e = e.slice(0, i = e.indexOf(o)).concat(e.slice(i + 1)), r.remove(t)), u && e.push(r.set(t, {on: u})), n)
+ }, t
+ }
+
+ function S() {
+ ta.event.preventDefault()
+ }
+
+ function k() {
+ for (var n, t = ta.event; n = t.sourceEvent;)t = n;
+ return t
+ }
+
+ function E(n) {
+ for (var t = new _, e = 0, r = arguments.length; ++e < r;)t[arguments[e]] = w(t);
+ return t.of = function (e, r) {
+ return function (u) {
+ try {
+ var i = u.sourceEvent = ta.event;
+ u.target = n, ta.event = u, t[u.type].apply(e, r)
+ } finally {
+ ta.event = i
+ }
+ }
+ }, t
+ }
+
+ function A(n) {
+ return ya(n, _a), n
+ }
+
+ function N(n) {
+ return "function" == typeof n ? n : function () {
+ return Ma(n, this)
+ }
+ }
+
+ function C(n) {
+ return "function" == typeof n ? n : function () {
+ return xa(n, this)
+ }
+ }
+
+ function z(n, t) {
+ function e() {
+ this.removeAttribute(n)
+ }
+
+ function r() {
+ this.removeAttributeNS(n.space, n.local)
+ }
+
+ function u() {
+ this.setAttribute(n, t)
+ }
+
+ function i() {
+ this.setAttributeNS(n.space, n.local, t)
+ }
+
+ function o() {
+ var e = t.apply(this, arguments);
+ null == e ? this.removeAttribute(n) : this.setAttribute(n, e)
+ }
+
+ function a() {
+ var e = t.apply(this, arguments);
+ null == e ? this.removeAttributeNS(n.space, n.local) : this.setAttributeNS(n.space, n.local, e)
+ }
+
+ return n = ta.ns.qualify(n), null == t ? n.local ? r : e : "function" == typeof t ? n.local ? a : o : n.local ? i : u
+ }
+
+ function q(n) {
+ return n.trim().replace(/\s+/g, " ")
+ }
+
+ function L(n) {
+ return new RegExp("(?:^|\\s+)" + ta.requote(n) + "(?:\\s+|$)", "g")
+ }
+
+ function T(n) {
+ return (n + "").trim().split(/^|\s+/)
+ }
+
+ function R(n, t) {
+ function e() {
+ for (var e = -1; ++e < u;)n[e](this, t)
+ }
+
+ function r() {
+ for (var e = -1, r = t.apply(this, arguments); ++e < u;)n[e](this, r)
+ }
+
+ n = T(n).map(D);
+ var u = n.length;
+ return "function" == typeof t ? r : e
+ }
+
+ function D(n) {
+ var t = L(n);
+ return function (e, r) {
+ if (u = e.classList)return r ? u.add(n) : u.remove(n);
+ var u = e.getAttribute("class") || "";
+ r ? (t.lastIndex = 0, t.test(u) || e.setAttribute("class", q(u + " " + n))) : e.setAttribute("class", q(u.replace(t, " ")))
+ }
+ }
+
+ function P(n, t, e) {
+ function r() {
+ this.style.removeProperty(n)
+ }
+
+ function u() {
+ this.style.setProperty(n, t, e)
+ }
+
+ function i() {
+ var r = t.apply(this, arguments);
+ null == r ? this.style.removeProperty(n) : this.style.setProperty(n, r, e)
+ }
+
+ return null == t ? r : "function" == typeof t ? i : u
+ }
+
+ function U(n, t) {
+ function e() {
+ delete this[n]
+ }
+
+ function r() {
+ this[n] = t
+ }
+
+ function u() {
+ var e = t.apply(this, arguments);
+ null == e ? delete this[n] : this[n] = e
+ }
+
+ return null == t ? e : "function" == typeof t ? u : r
+ }
+
+ function j(n) {
+ function t() {
+ var t = this.ownerDocument, e = this.namespaceURI;
+ return e ? t.createElementNS(e, n) : t.createElement(n)
+ }
+
+ function e() {
+ return this.ownerDocument.createElementNS(n.space, n.local)
+ }
+
+ return "function" == typeof n ? n : (n = ta.ns.qualify(n)).local ? e : t
+ }
+
+ function F() {
+ var n = this.parentNode;
+ n && n.removeChild(this)
+ }
+
+ function H(n) {
+ return {__data__: n}
+ }
+
+ function O(n) {
+ return function () {
+ return ba(this, n)
+ }
+ }
+
+ function I(n) {
+ return arguments.length || (n = e), function (t, e) {
+ return t && e ? n(t.__data__, e.__data__) : !t - !e
+ }
+ }
+
+ function Y(n, t) {
+ for (var e = 0, r = n.length; r > e; e++)for (var u, i = n[e], o = 0, a = i.length; a > o; o++)(u = i[o]) && t(u, o, e);
+ return n
+ }
+
+ function Z(n) {
+ return ya(n, Sa), n
+ }
+
+ function V(n) {
+ var t, e;
+ return function (r, u, i) {
+ var o, a = n[i].update, c = a.length;
+ for (i != e && (e = i, t = 0), u >= t && (t = u + 1); !(o = a[t]) && ++t < c;);
+ return o
+ }
+ }
+
+ function X(n, t, e) {
+ function r() {
+ var t = this[o];
+ t && (this.removeEventListener(n, t, t.$), delete this[o])
+ }
+
+ function u() {
+ var u = c(t, ra(arguments));
+ r.call(this), this.addEventListener(n, this[o] = u, u.$ = e), u._ = t
+ }
+
+ function i() {
+ var t, e = new RegExp("^__on([^.]+)" + ta.requote(n) + "$");
+ for (var r in this)if (t = r.match(e)) {
+ var u = this[r];
+ this.removeEventListener(t[1], u, u.$), delete this[r]
+ }
+ }
+
+ var o = "__on" + n, a = n.indexOf("."), c = $;
+ a > 0 && (n = n.slice(0, a));
+ var l = ka.get(n);
+ return l && (n = l, c = B), a ? t ? u : r : t ? b : i
+ }
+
+ function $(n, t) {
+ return function (e) {
+ var r = ta.event;
+ ta.event = e, t[0] = this.__data__;
+ try {
+ n.apply(this, t)
+ } finally {
+ ta.event = r
+ }
+ }
+ }
+
+ function B(n, t) {
+ var e = $(n, t);
+ return function (n) {
+ var t = this, r = n.relatedTarget;
+ r && (r === t || 8 & r.compareDocumentPosition(t)) || e.call(t, n)
+ }
+ }
+
+ function W(e) {
+ var r = ".dragsuppress-" + ++Aa, u = "click" + r, i = ta.select(t(e)).on("touchmove" + r, S).on("dragstart" + r, S).on("selectstart" + r, S);
+ if (null == Ea && (Ea = "onselectstart"in e ? !1 : x(e.style, "userSelect")), Ea) {
+ var o = n(e).style, a = o[Ea];
+ o[Ea] = "none"
+ }
+ return function (n) {
+ if (i.on(r, null), Ea && (o[Ea] = a), n) {
+ var t = function () {
+ i.on(u, null)
+ };
+ i.on(u, function () {
+ S(), t()
+ }, !0), setTimeout(t, 0)
+ }
+ }
+ }
+
+ function J(n, e) {
+ e.changedTouches && (e = e.changedTouches[0]);
+ var r = n.ownerSVGElement || n;
+ if (r.createSVGPoint) {
+ var u = r.createSVGPoint();
+ if (0 > Na) {
+ var i = t(n);
+ if (i.scrollX || i.scrollY) {
+ r = ta.select("body").append("svg").style({
+ position: "absolute",
+ top: 0,
+ left: 0,
+ margin: 0,
+ padding: 0,
+ border: "none"
+ }, "important");
+ var o = r[0][0].getScreenCTM();
+ Na = !(o.f || o.e), r.remove()
+ }
+ }
+ return Na ? (u.x = e.pageX, u.y = e.pageY) : (u.x = e.clientX, u.y = e.clientY), u = u.matrixTransform(n.getScreenCTM().inverse()), [u.x, u.y]
+ }
+ var a = n.getBoundingClientRect();
+ return [e.clientX - a.left - n.clientLeft, e.clientY - a.top - n.clientTop]
+ }
+
+ function G() {
+ return ta.event.changedTouches[0].identifier
+ }
+
+ function K(n) {
+ return n > 0 ? 1 : 0 > n ? -1 : 0
+ }
+
+ function Q(n, t, e) {
+ return (t[0] - n[0]) * (e[1] - n[1]) - (t[1] - n[1]) * (e[0] - n[0])
+ }
+
+ function nt(n) {
+ return n > 1 ? 0 : -1 > n ? qa : Math.acos(n)
+ }
+
+ function tt(n) {
+ return n > 1 ? Ra : -1 > n ? -Ra : Math.asin(n)
+ }
+
+ function et(n) {
+ return ((n = Math.exp(n)) - 1 / n) / 2
+ }
+
+ function rt(n) {
+ return ((n = Math.exp(n)) + 1 / n) / 2
+ }
+
+ function ut(n) {
+ return ((n = Math.exp(2 * n)) - 1) / (n + 1)
+ }
+
+ function it(n) {
+ return (n = Math.sin(n / 2)) * n
+ }
+
+ function ot() {
+ }
+
+ function at(n, t, e) {
+ return this instanceof at ? (this.h = +n, this.s = +t, void(this.l = +e)) : arguments.length < 2 ? n instanceof at ? new at(n.h, n.s, n.l) : bt("" + n, _t, at) : new at(n, t, e)
+ }
+
+ function ct(n, t, e) {
+ function r(n) {
+ return n > 360 ? n -= 360 : 0 > n && (n += 360), 60 > n ? i + (o - i) * n / 60 : 180 > n ? o : 240 > n ? i + (o - i) * (240 - n) / 60 : i
+ }
+
+ function u(n) {
+ return Math.round(255 * r(n))
+ }
+
+ var i, o;
+ return n = isNaN(n) ? 0 : (n %= 360) < 0 ? n + 360 : n, t = isNaN(t) ? 0 : 0 > t ? 0 : t > 1 ? 1 : t, e = 0 > e ? 0 : e > 1 ? 1 : e, o = .5 >= e ? e * (1 + t) : e + t - e * t, i = 2 * e - o, new mt(u(n + 120), u(n), u(n - 120))
+ }
+
+ function lt(n, t, e) {
+ return this instanceof lt ? (this.h = +n, this.c = +t, void(this.l = +e)) : arguments.length < 2 ? n instanceof lt ? new lt(n.h, n.c, n.l) : n instanceof ft ? gt(n.l, n.a, n.b) : gt((n = wt((n = ta.rgb(n)).r, n.g, n.b)).l, n.a, n.b) : new lt(n, t, e)
+ }
+
+ function st(n, t, e) {
+ return isNaN(n) && (n = 0), isNaN(t) && (t = 0), new ft(e, Math.cos(n *= Da) * t, Math.sin(n) * t)
+ }
+
+ function ft(n, t, e) {
+ return this instanceof ft ? (this.l = +n, this.a = +t, void(this.b = +e)) : arguments.length < 2 ? n instanceof ft ? new ft(n.l, n.a, n.b) : n instanceof lt ? st(n.h, n.c, n.l) : wt((n = mt(n)).r, n.g, n.b) : new ft(n, t, e)
+ }
+
+ function ht(n, t, e) {
+ var r = (n + 16) / 116, u = r + t / 500, i = r - e / 200;
+ return u = pt(u) * Xa, r = pt(r) * $a, i = pt(i) * Ba, new mt(dt(3.2404542 * u - 1.5371385 * r - .4985314 * i), dt(-.969266 * u + 1.8760108 * r + .041556 * i), dt(.0556434 * u - .2040259 * r + 1.0572252 * i))
+ }
+
+ function gt(n, t, e) {
+ return n > 0 ? new lt(Math.atan2(e, t) * Pa, Math.sqrt(t * t + e * e), n) : new lt(0 / 0, 0 / 0, n)
+ }
+
+ function pt(n) {
+ return n > .206893034 ? n * n * n : (n - 4 / 29) / 7.787037
+ }
+
+ function vt(n) {
+ return n > .008856 ? Math.pow(n, 1 / 3) : 7.787037 * n + 4 / 29
+ }
+
+ function dt(n) {
+ return Math.round(255 * (.00304 >= n ? 12.92 * n : 1.055 * Math.pow(n, 1 / 2.4) - .055))
+ }
+
+ function mt(n, t, e) {
+ return this instanceof mt ? (this.r = ~~n, this.g = ~~t, void(this.b = ~~e)) : arguments.length < 2 ? n instanceof mt ? new mt(n.r, n.g, n.b) : bt("" + n, mt, ct) : new mt(n, t, e)
+ }
+
+ function yt(n) {
+ return new mt(n >> 16, n >> 8 & 255, 255 & n)
+ }
+
+ function Mt(n) {
+ return yt(n) + ""
+ }
+
+ function xt(n) {
+ return 16 > n ? "0" + Math.max(0, n).toString(16) : Math.min(255, n).toString(16)
+ }
+
+ function bt(n, t, e) {
+ var r, u, i, o = 0, a = 0, c = 0;
+ if (r = /([a-z]+)\((.*)\)/i.exec(n))switch (u = r[2].split(","), r[1]) {
+ case"hsl":
+ return e(parseFloat(u[0]), parseFloat(u[1]) / 100, parseFloat(u[2]) / 100);
+ case"rgb":
+ return t(kt(u[0]), kt(u[1]), kt(u[2]))
+ }
+ return (i = Ga.get(n.toLowerCase())) ? t(i.r, i.g, i.b) : (null == n || "#" !== n.charAt(0) || isNaN(i = parseInt(n.slice(1), 16)) || (4 === n.length ? (o = (3840 & i) >> 4, o = o >> 4 | o, a = 240 & i, a = a >> 4 | a, c = 15 & i, c = c << 4 | c) : 7 === n.length && (o = (16711680 & i) >> 16, a = (65280 & i) >> 8, c = 255 & i)), t(o, a, c))
+ }
+
+ function _t(n, t, e) {
+ var r, u, i = Math.min(n /= 255, t /= 255, e /= 255), o = Math.max(n, t, e), a = o - i, c = (o + i) / 2;
+ return a ? (u = .5 > c ? a / (o + i) : a / (2 - o - i), r = n == o ? (t - e) / a + (e > t ? 6 : 0) : t == o ? (e - n) / a + 2 : (n - t) / a + 4, r *= 60) : (r = 0 / 0, u = c > 0 && 1 > c ? 0 : r), new at(r, u, c)
+ }
+
+ function wt(n, t, e) {
+ n = St(n), t = St(t), e = St(e);
+ var r = vt((.4124564 * n + .3575761 * t + .1804375 * e) / Xa), u = vt((.2126729 * n + .7151522 * t + .072175 * e) / $a), i = vt((.0193339 * n + .119192 * t + .9503041 * e) / Ba);
+ return ft(116 * u - 16, 500 * (r - u), 200 * (u - i))
+ }
+
+ function St(n) {
+ return (n /= 255) <= .04045 ? n / 12.92 : Math.pow((n + .055) / 1.055, 2.4)
+ }
+
+ function kt(n) {
+ var t = parseFloat(n);
+ return "%" === n.charAt(n.length - 1) ? Math.round(2.55 * t) : t
+ }
+
+ function Et(n) {
+ return "function" == typeof n ? n : function () {
+ return n
+ }
+ }
+
+ function At(n) {
+ return function (t, e, r) {
+ return 2 === arguments.length && "function" == typeof e && (r = e, e = null), Nt(t, e, n, r)
+ }
+ }
+
+ function Nt(n, t, e, r) {
+ function u() {
+ var n, t = c.status;
+ if (!t && zt(c) || t >= 200 && 300 > t || 304 === t) {
+ try {
+ n = e.call(i, c)
+ } catch (r) {
+ return void o.error.call(i, r)
+ }
+ o.load.call(i, n)
+ } else o.error.call(i, c)
+ }
+
+ var i = {}, o = ta.dispatch("beforesend", "progress", "load", "error"), a = {}, c = new XMLHttpRequest, l = null;
+ return !this.XDomainRequest || "withCredentials"in c || !/^(http(s)?:)?\/\//.test(n) || (c = new XDomainRequest), "onload"in c ? c.onload = c.onerror = u : c.onreadystatechange = function () {
+ c.readyState > 3 && u()
+ }, c.onprogress = function (n) {
+ var t = ta.event;
+ ta.event = n;
+ try {
+ o.progress.call(i, c)
+ } finally {
+ ta.event = t
+ }
+ }, i.header = function (n, t) {
+ return n = (n + "").toLowerCase(), arguments.length < 2 ? a[n] : (null == t ? delete a[n] : a[n] = t + "", i)
+ }, i.mimeType = function (n) {
+ return arguments.length ? (t = null == n ? null : n + "", i) : t
+ }, i.responseType = function (n) {
+ return arguments.length ? (l = n, i) : l
+ }, i.response = function (n) {
+ return e = n, i
+ }, ["get", "post"].forEach(function (n) {
+ i[n] = function () {
+ return i.send.apply(i, [n].concat(ra(arguments)))
+ }
+ }), i.send = function (e, r, u) {
+ if (2 === arguments.length && "function" == typeof r && (u = r, r = null), c.open(e, n, !0), null == t || "accept"in a || (a.accept = t + ",*/*"), c.setRequestHeader)for (var s in a)c.setRequestHeader(s, a[s]);
+ return null != t && c.overrideMimeType && c.overrideMimeType(t), null != l && (c.responseType = l), null != u && i.on("error", u).on("load", function (n) {
+ u(null, n)
+ }), o.beforesend.call(i, c), c.send(null == r ? null : r), i
+ }, i.abort = function () {
+ return c.abort(), i
+ }, ta.rebind(i, o, "on"), null == r ? i : i.get(Ct(r))
+ }
+
+ function Ct(n) {
+ return 1 === n.length ? function (t, e) {
+ n(null == t ? e : null)
+ } : n
+ }
+
+ function zt(n) {
+ var t = n.responseType;
+ return t && "text" !== t ? n.response : n.responseText
+ }
+
+ function qt() {
+ var n = Lt(), t = Tt() - n;
+ t > 24 ? (isFinite(t) && (clearTimeout(tc), tc = setTimeout(qt, t)), nc = 0) : (nc = 1, rc(qt))
+ }
+
+ function Lt() {
+ var n = Date.now();
+ for (ec = Ka; ec;)n >= ec.t && (ec.f = ec.c(n - ec.t)), ec = ec.n;
+ return n
+ }
+
+ function Tt() {
+ for (var n, t = Ka, e = 1 / 0; t;)t.f ? t = n ? n.n = t.n : Ka = t.n : (t.t < e && (e = t.t), t = (n = t).n);
+ return Qa = n, e
+ }
+
+ function Rt(n, t) {
+ return t - (n ? Math.ceil(Math.log(n) / Math.LN10) : 1)
+ }
+
+ function Dt(n, t) {
+ var e = Math.pow(10, 3 * ga(8 - t));
+ return {
+ scale: t > 8 ? function (n) {
+ return n / e
+ } : function (n) {
+ return n * e
+ }, symbol: n
+ }
+ }
+
+ function Pt(n) {
+ var t = n.decimal, e = n.thousands, r = n.grouping, u = n.currency, i = r && e ? function (n, t) {
+ for (var u = n.length, i = [], o = 0, a = r[0], c = 0; u > 0 && a > 0 && (c + a + 1 > t && (a = Math.max(1, t - c)), i.push(n.substring(u -= a, u + a)), !((c += a + 1) > t));)a = r[o = (o + 1) % r.length];
+ return i.reverse().join(e)
+ } : y;
+ return function (n) {
+ var e = ic.exec(n), r = e[1] || " ", o = e[2] || ">", a = e[3] || "-", c = e[4] || "", l = e[5], s = +e[6], f = e[7], h = e[8], g = e[9], p = 1, v = "", d = "", m = !1, y = !0;
+ switch (h && (h = +h.substring(1)), (l || "0" === r && "=" === o) && (l = r = "0", o = "="), g) {
+ case"n":
+ f = !0, g = "g";
+ break;
+ case"%":
+ p = 100, d = "%", g = "f";
+ break;
+ case"p":
+ p = 100, d = "%", g = "r";
+ break;
+ case"b":
+ case"o":
+ case"x":
+ case"X":
+ "#" === c && (v = "0" + g.toLowerCase());
+ case"c":
+ y = !1;
+ case"d":
+ m = !0, h = 0;
+ break;
+ case"s":
+ p = -1, g = "r"
+ }
+ "$" === c && (v = u[0], d = u[1]), "r" != g || h || (g = "g"), null != h && ("g" == g ? h = Math.max(1, Math.min(21, h)) : ("e" == g || "f" == g) && (h = Math.max(0, Math.min(20, h)))), g = oc.get(g) || Ut;
+ var M = l && f;
+ return function (n) {
+ var e = d;
+ if (m && n % 1)return "";
+ var u = 0 > n || 0 === n && 0 > 1 / n ? (n = -n, "-") : "-" === a ? "" : a;
+ if (0 > p) {
+ var c = ta.formatPrefix(n, h);
+ n = c.scale(n), e = c.symbol + d
+ } else n *= p;
+ n = g(n, h);
+ var x, b, _ = n.lastIndexOf(".");
+ if (0 > _) {
+ var w = y ? n.lastIndexOf("e") : -1;
+ 0 > w ? (x = n, b = "") : (x = n.substring(0, w), b = n.substring(w))
+ } else x = n.substring(0, _), b = t + n.substring(_ + 1);
+ !l && f && (x = i(x, 1 / 0));
+ var S = v.length + x.length + b.length + (M ? 0 : u.length), k = s > S ? new Array(S = s - S + 1).join(r) : "";
+ return M && (x = i(k + x, k.length ? s - b.length : 1 / 0)), u += v, n = x + b, ("<" === o ? u + n + k : ">" === o ? k + u + n : "^" === o ? k.substring(0, S >>= 1) + u + n + k.substring(S) : u + (M ? n : k + n)) + e
+ }
+ }
+ }
+
+ function Ut(n) {
+ return n + ""
+ }
+
+ function jt() {
+ this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0])
+ }
+
+ function Ft(n, t, e) {
+ function r(t) {
+ var e = n(t), r = i(e, 1);
+ return r - t > t - e ? e : r
+ }
+
+ function u(e) {
+ return t(e = n(new cc(e - 1)), 1), e
+ }
+
+ function i(n, e) {
+ return t(n = new cc(+n), e), n
+ }
+
+ function o(n, r, i) {
+ var o = u(n), a = [];
+ if (i > 1)for (; r > o;)e(o) % i || a.push(new Date(+o)), t(o, 1); else for (; r > o;)a.push(new Date(+o)), t(o, 1);
+ return a
+ }
+
+ function a(n, t, e) {
+ try {
+ cc = jt;
+ var r = new jt;
+ return r._ = n, o(r, t, e)
+ } finally {
+ cc = Date
+ }
+ }
+
+ n.floor = n, n.round = r, n.ceil = u, n.offset = i, n.range = o;
+ var c = n.utc = Ht(n);
+ return c.floor = c, c.round = Ht(r), c.ceil = Ht(u), c.offset = Ht(i), c.range = a, n
+ }
+
+ function Ht(n) {
+ return function (t, e) {
+ try {
+ cc = jt;
+ var r = new jt;
+ return r._ = t, n(r, e)._
+ } finally {
+ cc = Date
+ }
+ }
+ }
+
+ function Ot(n) {
+ function t(n) {
+ function t(t) {
+ for (var e, u, i, o = [], a = -1, c = 0; ++a < r;)37 === n.charCodeAt(a) && (o.push(n.slice(c, a)), null != (u = sc[e = n.charAt(++a)]) && (e = n.charAt(++a)), (i = N[e]) && (e = i(t, null == u ? "e" === e ? " " : "0" : u)), o.push(e), c = a + 1);
+ return o.push(n.slice(c, a)), o.join("")
+ }
+
+ var r = n.length;
+ return t.parse = function (t) {
+ var r = {y: 1900, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0, Z: null}, u = e(r, n, t, 0);
+ if (u != t.length)return null;
+ "p"in r && (r.H = r.H % 12 + 12 * r.p);
+ var i = null != r.Z && cc !== jt, o = new (i ? jt : cc);
+ return "j"in r ? o.setFullYear(r.y, 0, r.j) : "w"in r && ("W"in r || "U"in r) ? (o.setFullYear(r.y, 0, 1), o.setFullYear(r.y, 0, "W"in r ? (r.w + 6) % 7 + 7 * r.W - (o.getDay() + 5) % 7 : r.w + 7 * r.U - (o.getDay() + 6) % 7)) : o.setFullYear(r.y, r.m, r.d), o.setHours(r.H + (r.Z / 100 | 0), r.M + r.Z % 100, r.S, r.L), i ? o._ : o
+ }, t.toString = function () {
+ return n
+ }, t
+ }
+
+ function e(n, t, e, r) {
+ for (var u, i, o, a = 0, c = t.length, l = e.length; c > a;) {
+ if (r >= l)return -1;
+ if (u = t.charCodeAt(a++), 37 === u) {
+ if (o = t.charAt(a++), i = C[o in sc ? t.charAt(a++) : o], !i || (r = i(n, e, r)) < 0)return -1
+ } else if (u != e.charCodeAt(r++))return -1
+ }
+ return r
+ }
+
+ function r(n, t, e) {
+ _.lastIndex = 0;
+ var r = _.exec(t.slice(e));
+ return r ? (n.w = w.get(r[0].toLowerCase()), e + r[0].length) : -1
+ }
+
+ function u(n, t, e) {
+ x.lastIndex = 0;
+ var r = x.exec(t.slice(e));
+ return r ? (n.w = b.get(r[0].toLowerCase()), e + r[0].length) : -1
+ }
+
+ function i(n, t, e) {
+ E.lastIndex = 0;
+ var r = E.exec(t.slice(e));
+ return r ? (n.m = A.get(r[0].toLowerCase()), e + r[0].length) : -1
+ }
+
+ function o(n, t, e) {
+ S.lastIndex = 0;
+ var r = S.exec(t.slice(e));
+ return r ? (n.m = k.get(r[0].toLowerCase()), e + r[0].length) : -1
+ }
+
+ function a(n, t, r) {
+ return e(n, N.c.toString(), t, r)
+ }
+
+ function c(n, t, r) {
+ return e(n, N.x.toString(), t, r)
+ }
+
+ function l(n, t, r) {
+ return e(n, N.X.toString(), t, r)
+ }
+
+ function s(n, t, e) {
+ var r = M.get(t.slice(e, e += 2).toLowerCase());
+ return null == r ? -1 : (n.p = r, e)
+ }
+
+ var f = n.dateTime, h = n.date, g = n.time, p = n.periods, v = n.days, d = n.shortDays, m = n.months, y = n.shortMonths;
+ t.utc = function (n) {
+ function e(n) {
+ try {
+ cc = jt;
+ var t = new cc;
+ return t._ = n, r(t)
+ } finally {
+ cc = Date
+ }
+ }
+
+ var r = t(n);
+ return e.parse = function (n) {
+ try {
+ cc = jt;
+ var t = r.parse(n);
+ return t && t._
+ } finally {
+ cc = Date
+ }
+ }, e.toString = r.toString, e
+ }, t.multi = t.utc.multi = ae;
+ var M = ta.map(), x = Yt(v), b = Zt(v), _ = Yt(d), w = Zt(d), S = Yt(m), k = Zt(m), E = Yt(y), A = Zt(y);
+ p.forEach(function (n, t) {
+ M.set(n.toLowerCase(), t)
+ });
+ var N = {
+ a: function (n) {
+ return d[n.getDay()]
+ }, A: function (n) {
+ return v[n.getDay()]
+ }, b: function (n) {
+ return y[n.getMonth()]
+ }, B: function (n) {
+ return m[n.getMonth()]
+ }, c: t(f), d: function (n, t) {
+ return It(n.getDate(), t, 2)
+ }, e: function (n, t) {
+ return It(n.getDate(), t, 2)
+ }, H: function (n, t) {
+ return It(n.getHours(), t, 2)
+ }, I: function (n, t) {
+ return It(n.getHours() % 12 || 12, t, 2)
+ }, j: function (n, t) {
+ return It(1 + ac.dayOfYear(n), t, 3)
+ }, L: function (n, t) {
+ return It(n.getMilliseconds(), t, 3)
+ }, m: function (n, t) {
+ return It(n.getMonth() + 1, t, 2)
+ }, M: function (n, t) {
+ return It(n.getMinutes(), t, 2)
+ }, p: function (n) {
+ return p[+(n.getHours() >= 12)]
+ }, S: function (n, t) {
+ return It(n.getSeconds(), t, 2)
+ }, U: function (n, t) {
+ return It(ac.sundayOfYear(n), t, 2)
+ }, w: function (n) {
+ return n.getDay()
+ }, W: function (n, t) {
+ return It(ac.mondayOfYear(n), t, 2)
+ }, x: t(h), X: t(g), y: function (n, t) {
+ return It(n.getFullYear() % 100, t, 2)
+ }, Y: function (n, t) {
+ return It(n.getFullYear() % 1e4, t, 4)
+ }, Z: ie, "%": function () {
+ return "%"
+ }
+ }, C = {
+ a: r,
+ A: u,
+ b: i,
+ B: o,
+ c: a,
+ d: Qt,
+ e: Qt,
+ H: te,
+ I: te,
+ j: ne,
+ L: ue,
+ m: Kt,
+ M: ee,
+ p: s,
+ S: re,
+ U: Xt,
+ w: Vt,
+ W: $t,
+ x: c,
+ X: l,
+ y: Wt,
+ Y: Bt,
+ Z: Jt,
+ "%": oe
+ };
+ return t
+ }
+
+ function It(n, t, e) {
+ var r = 0 > n ? "-" : "", u = (r ? -n : n) + "", i = u.length;
+ return r + (e > i ? new Array(e - i + 1).join(t) + u : u)
+ }
+
+ function Yt(n) {
+ return new RegExp("^(?:" + n.map(ta.requote).join("|") + ")", "i")
+ }
+
+ function Zt(n) {
+ for (var t = new l, e = -1, r = n.length; ++e < r;)t.set(n[e].toLowerCase(), e);
+ return t
+ }
+
+ function Vt(n, t, e) {
+ fc.lastIndex = 0;
+ var r = fc.exec(t.slice(e, e + 1));
+ return r ? (n.w = +r[0], e + r[0].length) : -1
+ }
+
+ function Xt(n, t, e) {
+ fc.lastIndex = 0;
+ var r = fc.exec(t.slice(e));
+ return r ? (n.U = +r[0], e + r[0].length) : -1
+ }
+
+ function $t(n, t, e) {
+ fc.lastIndex = 0;
+ var r = fc.exec(t.slice(e));
+ return r ? (n.W = +r[0], e + r[0].length) : -1
+ }
+
+ function Bt(n, t, e) {
+ fc.lastIndex = 0;
+ var r = fc.exec(t.slice(e, e + 4));
+ return r ? (n.y = +r[0], e + r[0].length) : -1
+ }
+
+ function Wt(n, t, e) {
+ fc.lastIndex = 0;
+ var r = fc.exec(t.slice(e, e + 2));
+ return r ? (n.y = Gt(+r[0]), e + r[0].length) : -1
+ }
+
+ function Jt(n, t, e) {
+ return /^[+-]\d{4}$/.test(t = t.slice(e, e + 5)) ? (n.Z = -t, e + 5) : -1
+ }
+
+ function Gt(n) {
+ return n + (n > 68 ? 1900 : 2e3)
+ }
+
+ function Kt(n, t, e) {
+ fc.lastIndex = 0;
+ var r = fc.exec(t.slice(e, e + 2));
+ return r ? (n.m = r[0] - 1, e + r[0].length) : -1
+ }
+
+ function Qt(n, t, e) {
+ fc.lastIndex = 0;
+ var r = fc.exec(t.slice(e, e + 2));
+ return r ? (n.d = +r[0], e + r[0].length) : -1
+ }
+
+ function ne(n, t, e) {
+ fc.lastIndex = 0;
+ var r = fc.exec(t.slice(e, e + 3));
+ return r ? (n.j = +r[0], e + r[0].length) : -1
+ }
+
+ function te(n, t, e) {
+ fc.lastIndex = 0;
+ var r = fc.exec(t.slice(e, e + 2));
+ return r ? (n.H = +r[0], e + r[0].length) : -1
+ }
+
+ function ee(n, t, e) {
+ fc.lastIndex = 0;
+ var r = fc.exec(t.slice(e, e + 2));
+ return r ? (n.M = +r[0], e + r[0].length) : -1
+ }
+
+ function re(n, t, e) {
+ fc.lastIndex = 0;
+ var r = fc.exec(t.slice(e, e + 2));
+ return r ? (n.S = +r[0], e + r[0].length) : -1
+ }
+
+ function ue(n, t, e) {
+ fc.lastIndex = 0;
+ var r = fc.exec(t.slice(e, e + 3));
+ return r ? (n.L = +r[0], e + r[0].length) : -1
+ }
+
+ function ie(n) {
+ var t = n.getTimezoneOffset(), e = t > 0 ? "-" : "+", r = ga(t) / 60 | 0, u = ga(t) % 60;
+ return e + It(r, "0", 2) + It(u, "0", 2)
+ }
+
+ function oe(n, t, e) {
+ hc.lastIndex = 0;
+ var r = hc.exec(t.slice(e, e + 1));
+ return r ? e + r[0].length : -1
+ }
+
+ function ae(n) {
+ for (var t = n.length, e = -1; ++e < t;)n[e][0] = this(n[e][0]);
+ return function (t) {
+ for (var e = 0, r = n[e]; !r[1](t);)r = n[++e];
+ return r[0](t)
+ }
+ }
+
+ function ce() {
+ }
+
+ function le(n, t, e) {
+ var r = e.s = n + t, u = r - n, i = r - u;
+ e.t = n - i + (t - u)
+ }
+
+ function se(n, t) {
+ n && dc.hasOwnProperty(n.type) && dc[n.type](n, t)
+ }
+
+ function fe(n, t, e) {
+ var r, u = -1, i = n.length - e;
+ for (t.lineStart(); ++u < i;)r = n[u], t.point(r[0], r[1], r[2]);
+ t.lineEnd()
+ }
+
+ function he(n, t) {
+ var e = -1, r = n.length;
+ for (t.polygonStart(); ++e < r;)fe(n[e], t, 1);
+ t.polygonEnd()
+ }
+
+ function ge() {
+ function n(n, t) {
+ n *= Da, t = t * Da / 2 + qa / 4;
+ var e = n - r, o = e >= 0 ? 1 : -1, a = o * e, c = Math.cos(t), l = Math.sin(t), s = i * l, f = u * c + s * Math.cos(a), h = s * o * Math.sin(a);
+ yc.add(Math.atan2(h, f)), r = n, u = c, i = l
+ }
+
+ var t, e, r, u, i;
+ Mc.point = function (o, a) {
+ Mc.point = n, r = (t = o) * Da, u = Math.cos(a = (e = a) * Da / 2 + qa / 4), i = Math.sin(a)
+ }, Mc.lineEnd = function () {
+ n(t, e)
+ }
+ }
+
+ function pe(n) {
+ var t = n[0], e = n[1], r = Math.cos(e);
+ return [r * Math.cos(t), r * Math.sin(t), Math.sin(e)]
+ }
+
+ function ve(n, t) {
+ return n[0] * t[0] + n[1] * t[1] + n[2] * t[2]
+ }
+
+ function de(n, t) {
+ return [n[1] * t[2] - n[2] * t[1], n[2] * t[0] - n[0] * t[2], n[0] * t[1] - n[1] * t[0]]
+ }
+
+ function me(n, t) {
+ n[0] += t[0], n[1] += t[1], n[2] += t[2]
+ }
+
+ function ye(n, t) {
+ return [n[0] * t, n[1] * t, n[2] * t]
+ }
+
+ function Me(n) {
+ var t = Math.sqrt(n[0] * n[0] + n[1] * n[1] + n[2] * n[2]);
+ n[0] /= t, n[1] /= t, n[2] /= t
+ }
+
+ function xe(n) {
+ return [Math.atan2(n[1], n[0]), tt(n[2])]
+ }
+
+ function be(n, t) {
+ return ga(n[0] - t[0]) < Ca && ga(n[1] - t[1]) < Ca
+ }
+
+ function _e(n, t) {
+ n *= Da;
+ var e = Math.cos(t *= Da);
+ we(e * Math.cos(n), e * Math.sin(n), Math.sin(t))
+ }
+
+ function we(n, t, e) {
+ ++xc, _c += (n - _c) / xc, wc += (t - wc) / xc, Sc += (e - Sc) / xc
+ }
+
+ function Se() {
+ function n(n, u) {
+ n *= Da;
+ var i = Math.cos(u *= Da), o = i * Math.cos(n), a = i * Math.sin(n), c = Math.sin(u), l = Math.atan2(Math.sqrt((l = e * c - r * a) * l + (l = r * o - t * c) * l + (l = t * a - e * o) * l), t * o + e * a + r * c);
+ bc += l, kc += l * (t + (t = o)), Ec += l * (e + (e = a)), Ac += l * (r + (r = c)), we(t, e, r)
+ }
+
+ var t, e, r;
+ qc.point = function (u, i) {
+ u *= Da;
+ var o = Math.cos(i *= Da);
+ t = o * Math.cos(u), e = o * Math.sin(u), r = Math.sin(i), qc.point = n, we(t, e, r)
+ }
+ }
+
+ function ke() {
+ qc.point = _e
+ }
+
+ function Ee() {
+ function n(n, t) {
+ n *= Da;
+ var e = Math.cos(t *= Da), o = e * Math.cos(n), a = e * Math.sin(n), c = Math.sin(t), l = u * c - i * a, s = i * o - r * c, f = r * a - u * o, h = Math.sqrt(l * l + s * s + f * f), g = r * o + u * a + i * c, p = h && -nt(g) / h, v = Math.atan2(h, g);
+ Nc += p * l, Cc += p * s, zc += p * f, bc += v, kc += v * (r + (r = o)), Ec += v * (u + (u = a)), Ac += v * (i + (i = c)), we(r, u, i)
+ }
+
+ var t, e, r, u, i;
+ qc.point = function (o, a) {
+ t = o, e = a, qc.point = n, o *= Da;
+ var c = Math.cos(a *= Da);
+ r = c * Math.cos(o), u = c * Math.sin(o), i = Math.sin(a), we(r, u, i)
+ }, qc.lineEnd = function () {
+ n(t, e), qc.lineEnd = ke, qc.point = _e
+ }
+ }
+
+ function Ae(n, t) {
+ function e(e, r) {
+ return e = n(e, r), t(e[0], e[1])
+ }
+
+ return n.invert && t.invert && (e.invert = function (e, r) {
+ return e = t.invert(e, r), e && n.invert(e[0], e[1])
+ }), e
+ }
+
+ function Ne() {
+ return !0
+ }
+
+ function Ce(n, t, e, r, u) {
+ var i = [], o = [];
+ if (n.forEach(function (n) {
+ if (!((t = n.length - 1) <= 0)) {
+ var t, e = n[0], r = n[t];
+ if (be(e, r)) {
+ u.lineStart();
+ for (var a = 0; t > a; ++a)u.point((e = n[a])[0], e[1]);
+ return void u.lineEnd()
+ }
+ var c = new qe(e, n, null, !0), l = new qe(e, null, c, !1);
+ c.o = l, i.push(c), o.push(l), c = new qe(r, n, null, !1), l = new qe(r, null, c, !0), c.o = l, i.push(c), o.push(l)
+ }
+ }), o.sort(t), ze(i), ze(o), i.length) {
+ for (var a = 0, c = e, l = o.length; l > a; ++a)o[a].e = c = !c;
+ for (var s, f, h = i[0]; ;) {
+ for (var g = h, p = !0; g.v;)if ((g = g.n) === h)return;
+ s = g.z, u.lineStart();
+ do {
+ if (g.v = g.o.v = !0, g.e) {
+ if (p)for (var a = 0, l = s.length; l > a; ++a)u.point((f = s[a])[0], f[1]); else r(g.x, g.n.x, 1, u);
+ g = g.n
+ } else {
+ if (p) {
+ s = g.p.z;
+ for (var a = s.length - 1; a >= 0; --a)u.point((f = s[a])[0], f[1])
+ } else r(g.x, g.p.x, -1, u);
+ g = g.p
+ }
+ g = g.o, s = g.z, p = !p
+ } while (!g.v);
+ u.lineEnd()
+ }
+ }
+ }
+
+ function ze(n) {
+ if (t = n.length) {
+ for (var t, e, r = 0, u = n[0]; ++r < t;)u.n = e = n[r], e.p = u, u = e;
+ u.n = e = n[0], e.p = u
+ }
+ }
+
+ function qe(n, t, e, r) {
+ this.x = n, this.z = t, this.o = e, this.e = r, this.v = !1, this.n = this.p = null
+ }
+
+ function Le(n, t, e, r) {
+ return function (u, i) {
+ function o(t, e) {
+ var r = u(t, e);
+ n(t = r[0], e = r[1]) && i.point(t, e)
+ }
+
+ function a(n, t) {
+ var e = u(n, t);
+ d.point(e[0], e[1])
+ }
+
+ function c() {
+ y.point = a, d.lineStart()
+ }
+
+ function l() {
+ y.point = o, d.lineEnd()
+ }
+
+ function s(n, t) {
+ v.push([n, t]);
+ var e = u(n, t);
+ x.point(e[0], e[1])
+ }
+
+ function f() {
+ x.lineStart(), v = []
+ }
+
+ function h() {
+ s(v[0][0], v[0][1]), x.lineEnd();
+ var n, t = x.clean(), e = M.buffer(), r = e.length;
+ if (v.pop(), p.push(v), v = null, r)if (1 & t) {
+ n = e[0];
+ var u, r = n.length - 1, o = -1;
+ if (r > 0) {
+ for (b || (i.polygonStart(), b = !0), i.lineStart(); ++o < r;)i.point((u = n[o])[0], u[1]);
+ i.lineEnd()
+ }
+ } else r > 1 && 2 & t && e.push(e.pop().concat(e.shift())), g.push(e.filter(Te))
+ }
+
+ var g, p, v, d = t(i), m = u.invert(r[0], r[1]), y = {
+ point: o,
+ lineStart: c,
+ lineEnd: l,
+ polygonStart: function () {
+ y.point = s, y.lineStart = f, y.lineEnd = h, g = [], p = []
+ },
+ polygonEnd: function () {
+ y.point = o, y.lineStart = c, y.lineEnd = l, g = ta.merge(g);
+ var n = Fe(m, p);
+ g.length ? (b || (i.polygonStart(), b = !0), Ce(g, De, n, e, i)) : n && (b || (i.polygonStart(), b = !0), i.lineStart(), e(null, null, 1, i), i.lineEnd()), b && (i.polygonEnd(), b = !1), g = p = null
+ },
+ sphere: function () {
+ i.polygonStart(), i.lineStart(), e(null, null, 1, i), i.lineEnd(), i.polygonEnd()
+ }
+ }, M = Re(), x = t(M), b = !1;
+ return y
+ }
+ }
+
+ function Te(n) {
+ return n.length > 1
+ }
+
+ function Re() {
+ var n, t = [];
+ return {
+ lineStart: function () {
+ t.push(n = [])
+ }, point: function (t, e) {
+ n.push([t, e])
+ }, lineEnd: b, buffer: function () {
+ var e = t;
+ return t = [], n = null, e
+ }, rejoin: function () {
+ t.length > 1 && t.push(t.pop().concat(t.shift()))
+ }
+ }
+ }
+
+ function De(n, t) {
+ return ((n = n.x)[0] < 0 ? n[1] - Ra - Ca : Ra - n[1]) - ((t = t.x)[0] < 0 ? t[1] - Ra - Ca : Ra - t[1])
+ }
+
+ function Pe(n) {
+ var t, e = 0 / 0, r = 0 / 0, u = 0 / 0;
+ return {
+ lineStart: function () {
+ n.lineStart(), t = 1
+ }, point: function (i, o) {
+ var a = i > 0 ? qa : -qa, c = ga(i - e);
+ ga(c - qa) < Ca ? (n.point(e, r = (r + o) / 2 > 0 ? Ra : -Ra), n.point(u, r), n.lineEnd(), n.lineStart(), n.point(a, r), n.point(i, r), t = 0) : u !== a && c >= qa && (ga(e - u) < Ca && (e -= u * Ca), ga(i - a) < Ca && (i -= a * Ca), r = Ue(e, r, i, o), n.point(u, r), n.lineEnd(), n.lineStart(), n.point(a, r), t = 0), n.point(e = i, r = o), u = a
+ }, lineEnd: function () {
+ n.lineEnd(), e = r = 0 / 0
+ }, clean: function () {
+ return 2 - t
+ }
+ }
+ }
+
+ function Ue(n, t, e, r) {
+ var u, i, o = Math.sin(n - e);
+ return ga(o) > Ca ? Math.atan((Math.sin(t) * (i = Math.cos(r)) * Math.sin(e) - Math.sin(r) * (u = Math.cos(t)) * Math.sin(n)) / (u * i * o)) : (t + r) / 2
+ }
+
+ function je(n, t, e, r) {
+ var u;
+ if (null == n)u = e * Ra, r.point(-qa, u), r.point(0, u), r.point(qa, u), r.point(qa, 0), r.point(qa, -u), r.point(0, -u), r.point(-qa, -u), r.point(-qa, 0), r.point(-qa, u); else if (ga(n[0] - t[0]) > Ca) {
+ var i = n[0] < t[0] ? qa : -qa;
+ u = e * i / 2, r.point(-i, u), r.point(0, u), r.point(i, u)
+ } else r.point(t[0], t[1])
+ }
+
+ function Fe(n, t) {
+ var e = n[0], r = n[1], u = [Math.sin(e), -Math.cos(e), 0], i = 0, o = 0;
+ yc.reset();
+ for (var a = 0, c = t.length; c > a; ++a) {
+ var l = t[a], s = l.length;
+ if (s)for (var f = l[0], h = f[0], g = f[1] / 2 + qa / 4, p = Math.sin(g), v = Math.cos(g), d = 1; ;) {
+ d === s && (d = 0), n = l[d];
+ var m = n[0], y = n[1] / 2 + qa / 4, M = Math.sin(y), x = Math.cos(y), b = m - h, _ = b >= 0 ? 1 : -1, w = _ * b, S = w > qa, k = p * M;
+ if (yc.add(Math.atan2(k * _ * Math.sin(w), v * x + k * Math.cos(w))), i += S ? b + _ * La : b, S ^ h >= e ^ m >= e) {
+ var E = de(pe(f), pe(n));
+ Me(E);
+ var A = de(u, E);
+ Me(A);
+ var N = (S ^ b >= 0 ? -1 : 1) * tt(A[2]);
+ (r > N || r === N && (E[0] || E[1])) && (o += S ^ b >= 0 ? 1 : -1)
+ }
+ if (!d++)break;
+ h = m, p = M, v = x, f = n
+ }
+ }
+ return (-Ca > i || Ca > i && 0 > yc) ^ 1 & o
+ }
+
+ function He(n) {
+ function t(n, t) {
+ return Math.cos(n) * Math.cos(t) > i
+ }
+
+ function e(n) {
+ var e, i, c, l, s;
+ return {
+ lineStart: function () {
+ l = c = !1, s = 1
+ }, point: function (f, h) {
+ var g, p = [f, h], v = t(f, h), d = o ? v ? 0 : u(f, h) : v ? u(f + (0 > f ? qa : -qa), h) : 0;
+ if (!e && (l = c = v) && n.lineStart(), v !== c && (g = r(e, p), (be(e, g) || be(p, g)) && (p[0] += Ca, p[1] += Ca, v = t(p[0], p[1]))), v !== c)s = 0, v ? (n.lineStart(), g = r(p, e), n.point(g[0], g[1])) : (g = r(e, p), n.point(g[0], g[1]), n.lineEnd()), e = g; else if (a && e && o ^ v) {
+ var m;
+ d & i || !(m = r(p, e, !0)) || (s = 0, o ? (n.lineStart(), n.point(m[0][0], m[0][1]), n.point(m[1][0], m[1][1]), n.lineEnd()) : (n.point(m[1][0], m[1][1]), n.lineEnd(), n.lineStart(), n.point(m[0][0], m[0][1])))
+ }
+ !v || e && be(e, p) || n.point(p[0], p[1]), e = p, c = v, i = d
+ }, lineEnd: function () {
+ c && n.lineEnd(), e = null
+ }, clean: function () {
+ return s | (l && c) << 1
+ }
+ }
+ }
+
+ function r(n, t, e) {
+ var r = pe(n), u = pe(t), o = [1, 0, 0], a = de(r, u), c = ve(a, a), l = a[0], s = c - l * l;
+ if (!s)return !e && n;
+ var f = i * c / s, h = -i * l / s, g = de(o, a), p = ye(o, f), v = ye(a, h);
+ me(p, v);
+ var d = g, m = ve(p, d), y = ve(d, d), M = m * m - y * (ve(p, p) - 1);
+ if (!(0 > M)) {
+ var x = Math.sqrt(M), b = ye(d, (-m - x) / y);
+ if (me(b, p), b = xe(b), !e)return b;
+ var _, w = n[0], S = t[0], k = n[1], E = t[1];
+ w > S && (_ = w, w = S, S = _);
+ var A = S - w, N = ga(A - qa) < Ca, C = N || Ca > A;
+ if (!N && k > E && (_ = k, k = E, E = _), C ? N ? k + E > 0 ^ b[1] < (ga(b[0] - w) < Ca ? k : E) : k <= b[1] && b[1] <= E : A > qa ^ (w <= b[0] && b[0] <= S)) {
+ var z = ye(d, (-m + x) / y);
+ return me(z, p), [b, xe(z)]
+ }
+ }
+ }
+
+ function u(t, e) {
+ var r = o ? n : qa - n, u = 0;
+ return -r > t ? u |= 1 : t > r && (u |= 2), -r > e ? u |= 4 : e > r && (u |= 8), u
+ }
+
+ var i = Math.cos(n), o = i > 0, a = ga(i) > Ca, c = gr(n, 6 * Da);
+ return Le(t, e, c, o ? [0, -n] : [-qa, n - qa])
+ }
+
+ function Oe(n, t, e, r) {
+ return function (u) {
+ var i, o = u.a, a = u.b, c = o.x, l = o.y, s = a.x, f = a.y, h = 0, g = 1, p = s - c, v = f - l;
+ if (i = n - c, p || !(i > 0)) {
+ if (i /= p, 0 > p) {
+ if (h > i)return;
+ g > i && (g = i)
+ } else if (p > 0) {
+ if (i > g)return;
+ i > h && (h = i)
+ }
+ if (i = e - c, p || !(0 > i)) {
+ if (i /= p, 0 > p) {
+ if (i > g)return;
+ i > h && (h = i)
+ } else if (p > 0) {
+ if (h > i)return;
+ g > i && (g = i)
+ }
+ if (i = t - l, v || !(i > 0)) {
+ if (i /= v, 0 > v) {
+ if (h > i)return;
+ g > i && (g = i)
+ } else if (v > 0) {
+ if (i > g)return;
+ i > h && (h = i)
+ }
+ if (i = r - l, v || !(0 > i)) {
+ if (i /= v, 0 > v) {
+ if (i > g)return;
+ i > h && (h = i)
+ } else if (v > 0) {
+ if (h > i)return;
+ g > i && (g = i)
+ }
+ return h > 0 && (u.a = {x: c + h * p, y: l + h * v}), 1 > g && (u.b = {
+ x: c + g * p,
+ y: l + g * v
+ }), u
+ }
+ }
+ }
+ }
+ }
+ }
+
+ function Ie(n, t, e, r) {
+ function u(r, u) {
+ return ga(r[0] - n) < Ca ? u > 0 ? 0 : 3 : ga(r[0] - e) < Ca ? u > 0 ? 2 : 1 : ga(r[1] - t) < Ca ? u > 0 ? 1 : 0 : u > 0 ? 3 : 2
+ }
+
+ function i(n, t) {
+ return o(n.x, t.x)
+ }
+
+ function o(n, t) {
+ var e = u(n, 1), r = u(t, 1);
+ return e !== r ? e - r : 0 === e ? t[1] - n[1] : 1 === e ? n[0] - t[0] : 2 === e ? n[1] - t[1] : t[0] - n[0]
+ }
+
+ return function (a) {
+ function c(n) {
+ for (var t = 0, e = d.length, r = n[1], u = 0; e > u; ++u)for (var i, o = 1, a = d[u], c = a.length, l = a[0]; c > o; ++o)i = a[o], l[1] <= r ? i[1] > r && Q(l, i, n) > 0 && ++t : i[1] <= r && Q(l, i, n) < 0 && --t, l = i;
+ return 0 !== t
+ }
+
+ function l(i, a, c, l) {
+ var s = 0, f = 0;
+ if (null == i || (s = u(i, c)) !== (f = u(a, c)) || o(i, a) < 0 ^ c > 0) {
+ do l.point(0 === s || 3 === s ? n : e, s > 1 ? r : t); while ((s = (s + c + 4) % 4) !== f)
+ } else l.point(a[0], a[1])
+ }
+
+ function s(u, i) {
+ return u >= n && e >= u && i >= t && r >= i
+ }
+
+ function f(n, t) {
+ s(n, t) && a.point(n, t)
+ }
+
+ function h() {
+ C.point = p, d && d.push(m = []), S = !0, w = !1, b = _ = 0 / 0
+ }
+
+ function g() {
+ v && (p(y, M), x && w && A.rejoin(), v.push(A.buffer())), C.point = f, w && a.lineEnd()
+ }
+
+ function p(n, t) {
+ n = Math.max(-Tc, Math.min(Tc, n)), t = Math.max(-Tc, Math.min(Tc, t));
+ var e = s(n, t);
+ if (d && m.push([n, t]), S)y = n, M = t, x = e, S = !1, e && (a.lineStart(), a.point(n, t)); else if (e && w)a.point(n, t); else {
+ var r = {a: {x: b, y: _}, b: {x: n, y: t}};
+ N(r) ? (w || (a.lineStart(), a.point(r.a.x, r.a.y)), a.point(r.b.x, r.b.y), e || a.lineEnd(), k = !1) : e && (a.lineStart(), a.point(n, t), k = !1)
+ }
+ b = n, _ = t, w = e
+ }
+
+ var v, d, m, y, M, x, b, _, w, S, k, E = a, A = Re(), N = Oe(n, t, e, r), C = {
+ point: f,
+ lineStart: h,
+ lineEnd: g,
+ polygonStart: function () {
+ a = A, v = [], d = [], k = !0
+ },
+ polygonEnd: function () {
+ a = E, v = ta.merge(v);
+ var t = c([n, r]), e = k && t, u = v.length;
+ (e || u) && (a.polygonStart(), e && (a.lineStart(), l(null, null, 1, a), a.lineEnd()), u && Ce(v, i, t, l, a), a.polygonEnd()), v = d = m = null
+ }
+ };
+ return C
+ }
+ }
+
+ function Ye(n) {
+ var t = 0, e = qa / 3, r = ir(n), u = r(t, e);
+ return u.parallels = function (n) {
+ return arguments.length ? r(t = n[0] * qa / 180, e = n[1] * qa / 180) : [t / qa * 180, e / qa * 180]
+ }, u
+ }
+
+ function Ze(n, t) {
+ function e(n, t) {
+ var e = Math.sqrt(i - 2 * u * Math.sin(t)) / u;
+ return [e * Math.sin(n *= u), o - e * Math.cos(n)]
+ }
+
+ var r = Math.sin(n), u = (r + Math.sin(t)) / 2, i = 1 + r * (2 * u - r), o = Math.sqrt(i) / u;
+ return e.invert = function (n, t) {
+ var e = o - t;
+ return [Math.atan2(n, e) / u, tt((i - (n * n + e * e) * u * u) / (2 * u))]
+ }, e
+ }
+
+ function Ve() {
+ function n(n, t) {
+ Dc += u * n - r * t, r = n, u = t
+ }
+
+ var t, e, r, u;
+ Hc.point = function (i, o) {
+ Hc.point = n, t = r = i, e = u = o
+ }, Hc.lineEnd = function () {
+ n(t, e)
+ }
+ }
+
+ function Xe(n, t) {
+ Pc > n && (Pc = n), n > jc && (jc = n), Uc > t && (Uc = t), t > Fc && (Fc = t)
+ }
+
+ function $e() {
+ function n(n, t) {
+ o.push("M", n, ",", t, i)
+ }
+
+ function t(n, t) {
+ o.push("M", n, ",", t), a.point = e
+ }
+
+ function e(n, t) {
+ o.push("L", n, ",", t)
+ }
+
+ function r() {
+ a.point = n
+ }
+
+ function u() {
+ o.push("Z")
+ }
+
+ var i = Be(4.5), o = [], a = {
+ point: n, lineStart: function () {
+ a.point = t
+ }, lineEnd: r, polygonStart: function () {
+ a.lineEnd = u
+ }, polygonEnd: function () {
+ a.lineEnd = r, a.point = n
+ }, pointRadius: function (n) {
+ return i = Be(n), a
+ }, result: function () {
+ if (o.length) {
+ var n = o.join("");
+ return o = [], n
+ }
+ }
+ };
+ return a
+ }
+
+ function Be(n) {
+ return "m0," + n + "a" + n + "," + n + " 0 1,1 0," + -2 * n + "a" + n + "," + n + " 0 1,1 0," + 2 * n + "z"
+ }
+
+ function We(n, t) {
+ _c += n, wc += t, ++Sc
+ }
+
+ function Je() {
+ function n(n, r) {
+ var u = n - t, i = r - e, o = Math.sqrt(u * u + i * i);
+ kc += o * (t + n) / 2, Ec += o * (e + r) / 2, Ac += o, We(t = n, e = r)
+ }
+
+ var t, e;
+ Ic.point = function (r, u) {
+ Ic.point = n, We(t = r, e = u)
+ }
+ }
+
+ function Ge() {
+ Ic.point = We
+ }
+
+ function Ke() {
+ function n(n, t) {
+ var e = n - r, i = t - u, o = Math.sqrt(e * e + i * i);
+ kc += o * (r + n) / 2, Ec += o * (u + t) / 2, Ac += o, o = u * n - r * t, Nc += o * (r + n), Cc += o * (u + t), zc += 3 * o, We(r = n, u = t)
+ }
+
+ var t, e, r, u;
+ Ic.point = function (i, o) {
+ Ic.point = n, We(t = r = i, e = u = o)
+ }, Ic.lineEnd = function () {
+ n(t, e)
+ }
+ }
+
+ function Qe(n) {
+ function t(t, e) {
+ n.moveTo(t + o, e), n.arc(t, e, o, 0, La)
+ }
+
+ function e(t, e) {
+ n.moveTo(t, e), a.point = r
+ }
+
+ function r(t, e) {
+ n.lineTo(t, e)
+ }
+
+ function u() {
+ a.point = t
+ }
+
+ function i() {
+ n.closePath()
+ }
+
+ var o = 4.5, a = {
+ point: t, lineStart: function () {
+ a.point = e
+ }, lineEnd: u, polygonStart: function () {
+ a.lineEnd = i
+ }, polygonEnd: function () {
+ a.lineEnd = u, a.point = t
+ }, pointRadius: function (n) {
+ return o = n, a
+ }, result: b
+ };
+ return a
+ }
+
+ function nr(n) {
+ function t(n) {
+ return (a ? r : e)(n)
+ }
+
+ function e(t) {
+ return rr(t, function (e, r) {
+ e = n(e, r), t.point(e[0], e[1])
+ })
+ }
+
+ function r(t) {
+ function e(e, r) {
+ e = n(e, r), t.point(e[0], e[1])
+ }
+
+ function r() {
+ M = 0 / 0, S.point = i, t.lineStart()
+ }
+
+ function i(e, r) {
+ var i = pe([e, r]), o = n(e, r);
+ u(M, x, y, b, _, w, M = o[0], x = o[1], y = e, b = i[0], _ = i[1], w = i[2], a, t), t.point(M, x)
+ }
+
+ function o() {
+ S.point = e, t.lineEnd()
+ }
+
+ function c() {
+ r(), S.point = l, S.lineEnd = s
+ }
+
+ function l(n, t) {
+ i(f = n, h = t), g = M, p = x, v = b, d = _, m = w, S.point = i
+ }
+
+ function s() {
+ u(M, x, y, b, _, w, g, p, f, v, d, m, a, t), S.lineEnd = o, o()
+ }
+
+ var f, h, g, p, v, d, m, y, M, x, b, _, w, S = {
+ point: e, lineStart: r, lineEnd: o, polygonStart: function () {
+ t.polygonStart(), S.lineStart = c
+ }, polygonEnd: function () {
+ t.polygonEnd(), S.lineStart = r
+ }
+ };
+ return S
+ }
+
+ function u(t, e, r, a, c, l, s, f, h, g, p, v, d, m) {
+ var y = s - t, M = f - e, x = y * y + M * M;
+ if (x > 4 * i && d--) {
+ var b = a + g, _ = c + p, w = l + v, S = Math.sqrt(b * b + _ * _ + w * w), k = Math.asin(w /= S), E = ga(ga(w) - 1) < Ca || ga(r - h) < Ca ? (r + h) / 2 : Math.atan2(_, b), A = n(E, k), N = A[0], C = A[1], z = N - t, q = C - e, L = M * z - y * q;
+ (L * L / x > i || ga((y * z + M * q) / x - .5) > .3 || o > a * g + c * p + l * v) && (u(t, e, r, a, c, l, N, C, E, b /= S, _ /= S, w, d, m), m.point(N, C), u(N, C, E, b, _, w, s, f, h, g, p, v, d, m))
+ }
+ }
+
+ var i = .5, o = Math.cos(30 * Da), a = 16;
+ return t.precision = function (n) {
+ return arguments.length ? (a = (i = n * n) > 0 && 16, t) : Math.sqrt(i)
+ }, t
+ }
+
+ function tr(n) {
+ var t = nr(function (t, e) {
+ return n([t * Pa, e * Pa])
+ });
+ return function (n) {
+ return or(t(n))
+ }
+ }
+
+ function er(n) {
+ this.stream = n
+ }
+
+ function rr(n, t) {
+ return {
+ point: t, sphere: function () {
+ n.sphere()
+ }, lineStart: function () {
+ n.lineStart()
+ }, lineEnd: function () {
+ n.lineEnd()
+ }, polygonStart: function () {
+ n.polygonStart()
+ }, polygonEnd: function () {
+ n.polygonEnd()
+ }
+ }
+ }
+
+ function ur(n) {
+ return ir(function () {
+ return n
+ })()
+ }
+
+ function ir(n) {
+ function t(n) {
+ return n = a(n[0] * Da, n[1] * Da), [n[0] * h + c, l - n[1] * h]
+ }
+
+ function e(n) {
+ return n = a.invert((n[0] - c) / h, (l - n[1]) / h), n && [n[0] * Pa, n[1] * Pa]
+ }
+
+ function r() {
+ a = Ae(o = lr(m, M, x), i);
+ var n = i(v, d);
+ return c = g - n[0] * h, l = p + n[1] * h, u()
+ }
+
+ function u() {
+ return s && (s.valid = !1, s = null), t
+ }
+
+ var i, o, a, c, l, s, f = nr(function (n, t) {
+ return n = i(n, t), [n[0] * h + c, l - n[1] * h]
+ }), h = 150, g = 480, p = 250, v = 0, d = 0, m = 0, M = 0, x = 0, b = Lc, _ = y, w = null, S = null;
+ return t.stream = function (n) {
+ return s && (s.valid = !1), s = or(b(o, f(_(n)))), s.valid = !0, s
+ }, t.clipAngle = function (n) {
+ return arguments.length ? (b = null == n ? (w = n, Lc) : He((w = +n) * Da), u()) : w
+ }, t.clipExtent = function (n) {
+ return arguments.length ? (S = n, _ = n ? Ie(n[0][0], n[0][1], n[1][0], n[1][1]) : y, u()) : S
+ }, t.scale = function (n) {
+ return arguments.length ? (h = +n, r()) : h
+ }, t.translate = function (n) {
+ return arguments.length ? (g = +n[0], p = +n[1], r()) : [g, p]
+ }, t.center = function (n) {
+ return arguments.length ? (v = n[0] % 360 * Da, d = n[1] % 360 * Da, r()) : [v * Pa, d * Pa]
+ }, t.rotate = function (n) {
+ return arguments.length ? (m = n[0] % 360 * Da, M = n[1] % 360 * Da, x = n.length > 2 ? n[2] % 360 * Da : 0, r()) : [m * Pa, M * Pa, x * Pa]
+ }, ta.rebind(t, f, "precision"), function () {
+ return i = n.apply(this, arguments), t.invert = i.invert && e, r()
+ }
+ }
+
+ function or(n) {
+ return rr(n, function (t, e) {
+ n.point(t * Da, e * Da)
+ })
+ }
+
+ function ar(n, t) {
+ return [n, t]
+ }
+
+ function cr(n, t) {
+ return [n > qa ? n - La : -qa > n ? n + La : n, t]
+ }
+
+ function lr(n, t, e) {
+ return n ? t || e ? Ae(fr(n), hr(t, e)) : fr(n) : t || e ? hr(t, e) : cr
+ }
+
+ function sr(n) {
+ return function (t, e) {
+ return t += n, [t > qa ? t - La : -qa > t ? t + La : t, e]
+ }
+ }
+
+ function fr(n) {
+ var t = sr(n);
+ return t.invert = sr(-n), t
+ }
+
+ function hr(n, t) {
+ function e(n, t) {
+ var e = Math.cos(t), a = Math.cos(n) * e, c = Math.sin(n) * e, l = Math.sin(t), s = l * r + a * u;
+ return [Math.atan2(c * i - s * o, a * r - l * u), tt(s * i + c * o)]
+ }
+
+ var r = Math.cos(n), u = Math.sin(n), i = Math.cos(t), o = Math.sin(t);
+ return e.invert = function (n, t) {
+ var e = Math.cos(t), a = Math.cos(n) * e, c = Math.sin(n) * e, l = Math.sin(t), s = l * i - c * o;
+ return [Math.atan2(c * i + l * o, a * r + s * u), tt(s * r - a * u)]
+ }, e
+ }
+
+ function gr(n, t) {
+ var e = Math.cos(n), r = Math.sin(n);
+ return function (u, i, o, a) {
+ var c = o * t;
+ null != u ? (u = pr(e, u), i = pr(e, i), (o > 0 ? i > u : u > i) && (u += o * La)) : (u = n + o * La, i = n - .5 * c);
+ for (var l, s = u; o > 0 ? s > i : i > s; s -= c)a.point((l = xe([e, -r * Math.cos(s), -r * Math.sin(s)]))[0], l[1])
+ }
+ }
+
+ function pr(n, t) {
+ var e = pe(t);
+ e[0] -= n, Me(e);
+ var r = nt(-e[1]);
+ return ((-e[2] < 0 ? -r : r) + 2 * Math.PI - Ca) % (2 * Math.PI)
+ }
+
+ function vr(n, t, e) {
+ var r = ta.range(n, t - Ca, e).concat(t);
+ return function (n) {
+ return r.map(function (t) {
+ return [n, t]
+ })
+ }
+ }
+
+ function dr(n, t, e) {
+ var r = ta.range(n, t - Ca, e).concat(t);
+ return function (n) {
+ return r.map(function (t) {
+ return [t, n]
+ })
+ }
+ }
+
+ function mr(n) {
+ return n.source
+ }
+
+ function yr(n) {
+ return n.target
+ }
+
+ function Mr(n, t, e, r) {
+ var u = Math.cos(t), i = Math.sin(t), o = Math.cos(r), a = Math.sin(r), c = u * Math.cos(n), l = u * Math.sin(n), s = o * Math.cos(e), f = o * Math.sin(e), h = 2 * Math.asin(Math.sqrt(it(r - t) + u * o * it(e - n))), g = 1 / Math.sin(h), p = h ? function (n) {
+ var t = Math.sin(n *= h) * g, e = Math.sin(h - n) * g, r = e * c + t * s, u = e * l + t * f, o = e * i + t * a;
+ return [Math.atan2(u, r) * Pa, Math.atan2(o, Math.sqrt(r * r + u * u)) * Pa]
+ } : function () {
+ return [n * Pa, t * Pa]
+ };
+ return p.distance = h, p
+ }
+
+ function xr() {
+ function n(n, u) {
+ var i = Math.sin(u *= Da), o = Math.cos(u), a = ga((n *= Da) - t), c = Math.cos(a);
+ Yc += Math.atan2(Math.sqrt((a = o * Math.sin(a)) * a + (a = r * i - e * o * c) * a), e * i + r * o * c), t = n, e = i, r = o
+ }
+
+ var t, e, r;
+ Zc.point = function (u, i) {
+ t = u * Da, e = Math.sin(i *= Da), r = Math.cos(i), Zc.point = n
+ }, Zc.lineEnd = function () {
+ Zc.point = Zc.lineEnd = b
+ }
+ }
+
+ function br(n, t) {
+ function e(t, e) {
+ var r = Math.cos(t), u = Math.cos(e), i = n(r * u);
+ return [i * u * Math.sin(t), i * Math.sin(e)]
+ }
+
+ return e.invert = function (n, e) {
+ var r = Math.sqrt(n * n + e * e), u = t(r), i = Math.sin(u), o = Math.cos(u);
+ return [Math.atan2(n * i, r * o), Math.asin(r && e * i / r)]
+ }, e
+ }
+
+ function _r(n, t) {
+ function e(n, t) {
+ o > 0 ? -Ra + Ca > t && (t = -Ra + Ca) : t > Ra - Ca && (t = Ra - Ca);
+ var e = o / Math.pow(u(t), i);
+ return [e * Math.sin(i * n), o - e * Math.cos(i * n)]
+ }
+
+ var r = Math.cos(n), u = function (n) {
+ return Math.tan(qa / 4 + n / 2)
+ }, i = n === t ? Math.sin(n) : Math.log(r / Math.cos(t)) / Math.log(u(t) / u(n)), o = r * Math.pow(u(n), i) / i;
+ return i ? (e.invert = function (n, t) {
+ var e = o - t, r = K(i) * Math.sqrt(n * n + e * e);
+ return [Math.atan2(n, e) / i, 2 * Math.atan(Math.pow(o / r, 1 / i)) - Ra]
+ }, e) : Sr
+ }
+
+ function wr(n, t) {
+ function e(n, t) {
+ var e = i - t;
+ return [e * Math.sin(u * n), i - e * Math.cos(u * n)]
+ }
+
+ var r = Math.cos(n), u = n === t ? Math.sin(n) : (r - Math.cos(t)) / (t - n), i = r / u + n;
+ return ga(u) < Ca ? ar : (e.invert = function (n, t) {
+ var e = i - t;
+ return [Math.atan2(n, e) / u, i - K(u) * Math.sqrt(n * n + e * e)]
+ }, e)
+ }
+
+ function Sr(n, t) {
+ return [n, Math.log(Math.tan(qa / 4 + t / 2))]
+ }
+
+ function kr(n) {
+ var t, e = ur(n), r = e.scale, u = e.translate, i = e.clipExtent;
+ return e.scale = function () {
+ var n = r.apply(e, arguments);
+ return n === e ? t ? e.clipExtent(null) : e : n
+ }, e.translate = function () {
+ var n = u.apply(e, arguments);
+ return n === e ? t ? e.clipExtent(null) : e : n
+ }, e.clipExtent = function (n) {
+ var o = i.apply(e, arguments);
+ if (o === e) {
+ if (t = null == n) {
+ var a = qa * r(), c = u();
+ i([[c[0] - a, c[1] - a], [c[0] + a, c[1] + a]])
+ }
+ } else t && (o = null);
+ return o
+ }, e.clipExtent(null)
+ }
+
+ function Er(n, t) {
+ return [Math.log(Math.tan(qa / 4 + t / 2)), -n]
+ }
+
+ function Ar(n) {
+ return n[0]
+ }
+
+ function Nr(n) {
+ return n[1]
+ }
+
+ function Cr(n) {
+ for (var t = n.length, e = [0, 1], r = 2, u = 2; t > u; u++) {
+ for (; r > 1 && Q(n[e[r - 2]], n[e[r - 1]], n[u]) <= 0;)--r;
+ e[r++] = u
+ }
+ return e.slice(0, r)
+ }
+
+ function zr(n, t) {
+ return n[0] - t[0] || n[1] - t[1]
+ }
+
+ function qr(n, t, e) {
+ return (e[0] - t[0]) * (n[1] - t[1]) < (e[1] - t[1]) * (n[0] - t[0])
+ }
+
+ function Lr(n, t, e, r) {
+ var u = n[0], i = e[0], o = t[0] - u, a = r[0] - i, c = n[1], l = e[1], s = t[1] - c, f = r[1] - l, h = (a * (c - l) - f * (u - i)) / (f * o - a * s);
+ return [u + h * o, c + h * s]
+ }
+
+ function Tr(n) {
+ var t = n[0], e = n[n.length - 1];
+ return !(t[0] - e[0] || t[1] - e[1])
+ }
+
+ function Rr() {
+ tu(this), this.edge = this.site = this.circle = null
+ }
+
+ function Dr(n) {
+ var t = el.pop() || new Rr;
+ return t.site = n, t
+ }
+
+ function Pr(n) {
+ Xr(n), Qc.remove(n), el.push(n), tu(n)
+ }
+
+ function Ur(n) {
+ var t = n.circle, e = t.x, r = t.cy, u = {x: e, y: r}, i = n.P, o = n.N, a = [n];
+ Pr(n);
+ for (var c = i; c.circle && ga(e - c.circle.x) < Ca && ga(r - c.circle.cy) < Ca;)i = c.P, a.unshift(c), Pr(c), c = i;
+ a.unshift(c), Xr(c);
+ for (var l = o; l.circle && ga(e - l.circle.x) < Ca && ga(r - l.circle.cy) < Ca;)o = l.N, a.push(l), Pr(l), l = o;
+ a.push(l), Xr(l);
+ var s, f = a.length;
+ for (s = 1; f > s; ++s)l = a[s], c = a[s - 1], Kr(l.edge, c.site, l.site, u);
+ c = a[0], l = a[f - 1], l.edge = Jr(c.site, l.site, null, u), Vr(c), Vr(l)
+ }
+
+ function jr(n) {
+ for (var t, e, r, u, i = n.x, o = n.y, a = Qc._; a;)if (r = Fr(a, o) - i, r > Ca)a = a.L; else {
+ if (u = i - Hr(a, o), !(u > Ca)) {
+ r > -Ca ? (t = a.P, e = a) : u > -Ca ? (t = a, e = a.N) : t = e = a;
+ break
+ }
+ if (!a.R) {
+ t = a;
+ break
+ }
+ a = a.R
+ }
+ var c = Dr(n);
+ if (Qc.insert(t, c), t || e) {
+ if (t === e)return Xr(t), e = Dr(t.site), Qc.insert(c, e), c.edge = e.edge = Jr(t.site, c.site), Vr(t), void Vr(e);
+ if (!e)return void(c.edge = Jr(t.site, c.site));
+ Xr(t), Xr(e);
+ var l = t.site, s = l.x, f = l.y, h = n.x - s, g = n.y - f, p = e.site, v = p.x - s, d = p.y - f, m = 2 * (h * d - g * v), y = h * h + g * g, M = v * v + d * d, x = {
+ x: (d * y - g * M) / m + s,
+ y: (h * M - v * y) / m + f
+ };
+ Kr(e.edge, l, p, x), c.edge = Jr(l, n, null, x), e.edge = Jr(n, p, null, x), Vr(t), Vr(e)
+ }
+ }
+
+ function Fr(n, t) {
+ var e = n.site, r = e.x, u = e.y, i = u - t;
+ if (!i)return r;
+ var o = n.P;
+ if (!o)return -1 / 0;
+ e = o.site;
+ var a = e.x, c = e.y, l = c - t;
+ if (!l)return a;
+ var s = a - r, f = 1 / i - 1 / l, h = s / l;
+ return f ? (-h + Math.sqrt(h * h - 2 * f * (s * s / (-2 * l) - c + l / 2 + u - i / 2))) / f + r : (r + a) / 2
+ }
+
+ function Hr(n, t) {
+ var e = n.N;
+ if (e)return Fr(e, t);
+ var r = n.site;
+ return r.y === t ? r.x : 1 / 0
+ }
+
+ function Or(n) {
+ this.site = n, this.edges = []
+ }
+
+ function Ir(n) {
+ for (var t, e, r, u, i, o, a, c, l, s, f = n[0][0], h = n[1][0], g = n[0][1], p = n[1][1], v = Kc, d = v.length; d--;)if (i = v[d], i && i.prepare())for (a = i.edges, c = a.length, o = 0; c > o;)s = a[o].end(), r = s.x, u = s.y, l = a[++o % c].start(), t = l.x, e = l.y, (ga(r - t) > Ca || ga(u - e) > Ca) && (a.splice(o, 0, new Qr(Gr(i.site, s, ga(r - f) < Ca && p - u > Ca ? {
+ x: f,
+ y: ga(t - f) < Ca ? e : p
+ } : ga(u - p) < Ca && h - r > Ca ? {x: ga(e - p) < Ca ? t : h, y: p} : ga(r - h) < Ca && u - g > Ca ? {
+ x: h,
+ y: ga(t - h) < Ca ? e : g
+ } : ga(u - g) < Ca && r - f > Ca ? {x: ga(e - g) < Ca ? t : f, y: g} : null), i.site, null)), ++c)
+ }
+
+ function Yr(n, t) {
+ return t.angle - n.angle
+ }
+
+ function Zr() {
+ tu(this), this.x = this.y = this.arc = this.site = this.cy = null
+ }
+
+ function Vr(n) {
+ var t = n.P, e = n.N;
+ if (t && e) {
+ var r = t.site, u = n.site, i = e.site;
+ if (r !== i) {
+ var o = u.x, a = u.y, c = r.x - o, l = r.y - a, s = i.x - o, f = i.y - a, h = 2 * (c * f - l * s);
+ if (!(h >= -za)) {
+ var g = c * c + l * l, p = s * s + f * f, v = (f * g - l * p) / h, d = (c * p - s * g) / h, f = d + a, m = rl.pop() || new Zr;
+ m.arc = n, m.site = u, m.x = v + o, m.y = f + Math.sqrt(v * v + d * d), m.cy = f, n.circle = m;
+ for (var y = null, M = tl._; M;)if (m.y < M.y || m.y === M.y && m.x <= M.x) {
+ if (!M.L) {
+ y = M.P;
+ break
+ }
+ M = M.L
+ } else {
+ if (!M.R) {
+ y = M;
+ break
+ }
+ M = M.R
+ }
+ tl.insert(y, m), y || (nl = m)
+ }
+ }
+ }
+ }
+
+ function Xr(n) {
+ var t = n.circle;
+ t && (t.P || (nl = t.N), tl.remove(t), rl.push(t), tu(t), n.circle = null)
+ }
+
+ function $r(n) {
+ for (var t, e = Gc, r = Oe(n[0][0], n[0][1], n[1][0], n[1][1]), u = e.length; u--;)t = e[u], (!Br(t, n) || !r(t) || ga(t.a.x - t.b.x) < Ca && ga(t.a.y - t.b.y) < Ca) && (t.a = t.b = null, e.splice(u, 1))
+ }
+
+ function Br(n, t) {
+ var e = n.b;
+ if (e)return !0;
+ var r, u, i = n.a, o = t[0][0], a = t[1][0], c = t[0][1], l = t[1][1], s = n.l, f = n.r, h = s.x, g = s.y, p = f.x, v = f.y, d = (h + p) / 2, m = (g + v) / 2;
+ if (v === g) {
+ if (o > d || d >= a)return;
+ if (h > p) {
+ if (i) {
+ if (i.y >= l)return
+ } else i = {x: d, y: c};
+ e = {x: d, y: l}
+ } else {
+ if (i) {
+ if (i.y < c)return
+ } else i = {x: d, y: l};
+ e = {x: d, y: c}
+ }
+ } else if (r = (h - p) / (v - g), u = m - r * d, -1 > r || r > 1)if (h > p) {
+ if (i) {
+ if (i.y >= l)return
+ } else i = {x: (c - u) / r, y: c};
+ e = {x: (l - u) / r, y: l}
+ } else {
+ if (i) {
+ if (i.y < c)return
+ } else i = {x: (l - u) / r, y: l};
+ e = {x: (c - u) / r, y: c}
+ } else if (v > g) {
+ if (i) {
+ if (i.x >= a)return
+ } else i = {x: o, y: r * o + u};
+ e = {x: a, y: r * a + u}
+ } else {
+ if (i) {
+ if (i.x < o)return
+ } else i = {x: a, y: r * a + u};
+ e = {x: o, y: r * o + u}
+ }
+ return n.a = i, n.b = e, !0
+ }
+
+ function Wr(n, t) {
+ this.l = n, this.r = t, this.a = this.b = null
+ }
+
+ function Jr(n, t, e, r) {
+ var u = new Wr(n, t);
+ return Gc.push(u), e && Kr(u, n, t, e), r && Kr(u, t, n, r), Kc[n.i].edges.push(new Qr(u, n, t)), Kc[t.i].edges.push(new Qr(u, t, n)), u
+ }
+
+ function Gr(n, t, e) {
+ var r = new Wr(n, null);
+ return r.a = t, r.b = e, Gc.push(r), r
+ }
+
+ function Kr(n, t, e, r) {
+ n.a || n.b ? n.l === e ? n.b = r : n.a = r : (n.a = r, n.l = t, n.r = e)
+ }
+
+ function Qr(n, t, e) {
+ var r = n.a, u = n.b;
+ this.edge = n, this.site = t, this.angle = e ? Math.atan2(e.y - t.y, e.x - t.x) : n.l === t ? Math.atan2(u.x - r.x, r.y - u.y) : Math.atan2(r.x - u.x, u.y - r.y)
+ }
+
+ function nu() {
+ this._ = null
+ }
+
+ function tu(n) {
+ n.U = n.C = n.L = n.R = n.P = n.N = null
+ }
+
+ function eu(n, t) {
+ var e = t, r = t.R, u = e.U;
+ u ? u.L === e ? u.L = r : u.R = r : n._ = r, r.U = u, e.U = r, e.R = r.L, e.R && (e.R.U = e), r.L = e
+ }
+
+ function ru(n, t) {
+ var e = t, r = t.L, u = e.U;
+ u ? u.L === e ? u.L = r : u.R = r : n._ = r, r.U = u, e.U = r, e.L = r.R, e.L && (e.L.U = e), r.R = e
+ }
+
+ function uu(n) {
+ for (; n.L;)n = n.L;
+ return n
+ }
+
+ function iu(n, t) {
+ var e, r, u, i = n.sort(ou).pop();
+ for (Gc = [], Kc = new Array(n.length), Qc = new nu, tl = new nu; ;)if (u = nl, i && (!u || i.y < u.y || i.y === u.y && i.x < u.x))(i.x !== e || i.y !== r) && (Kc[i.i] = new Or(i), jr(i), e = i.x, r = i.y), i = n.pop(); else {
+ if (!u)break;
+ Ur(u.arc)
+ }
+ t && ($r(t), Ir(t));
+ var o = {cells: Kc, edges: Gc};
+ return Qc = tl = Gc = Kc = null, o
+ }
+
+ function ou(n, t) {
+ return t.y - n.y || t.x - n.x
+ }
+
+ function au(n, t, e) {
+ return (n.x - e.x) * (t.y - n.y) - (n.x - t.x) * (e.y - n.y)
+ }
+
+ function cu(n) {
+ return n.x
+ }
+
+ function lu(n) {
+ return n.y
+ }
+
+ function su() {
+ return {leaf: !0, nodes: [], point: null, x: null, y: null}
+ }
+
+ function fu(n, t, e, r, u, i) {
+ if (!n(t, e, r, u, i)) {
+ var o = .5 * (e + u), a = .5 * (r + i), c = t.nodes;
+ c[0] && fu(n, c[0], e, r, o, a), c[1] && fu(n, c[1], o, r, u, a), c[2] && fu(n, c[2], e, a, o, i), c[3] && fu(n, c[3], o, a, u, i)
+ }
+ }
+
+ function hu(n, t, e, r, u, i, o) {
+ var a, c = 1 / 0;
+ return function l(n, s, f, h, g) {
+ if (!(s > i || f > o || r > h || u > g)) {
+ if (p = n.point) {
+ var p, v = t - n.x, d = e - n.y, m = v * v + d * d;
+ if (c > m) {
+ var y = Math.sqrt(c = m);
+ r = t - y, u = e - y, i = t + y, o = e + y, a = p
+ }
+ }
+ for (var M = n.nodes, x = .5 * (s + h), b = .5 * (f + g), _ = t >= x, w = e >= b, S = w << 1 | _, k = S + 4; k > S; ++S)if (n = M[3 & S])switch (3 & S) {
+ case 0:
+ l(n, s, f, x, b);
+ break;
+ case 1:
+ l(n, x, f, h, b);
+ break;
+ case 2:
+ l(n, s, b, x, g);
+ break;
+ case 3:
+ l(n, x, b, h, g)
+ }
+ }
+ }(n, r, u, i, o), a
+ }
+
+ function gu(n, t) {
+ n = ta.rgb(n), t = ta.rgb(t);
+ var e = n.r, r = n.g, u = n.b, i = t.r - e, o = t.g - r, a = t.b - u;
+ return function (n) {
+ return "#" + xt(Math.round(e + i * n)) + xt(Math.round(r + o * n)) + xt(Math.round(u + a * n))
+ }
+ }
+
+ function pu(n, t) {
+ var e, r = {}, u = {};
+ for (e in n)e in t ? r[e] = mu(n[e], t[e]) : u[e] = n[e];
+ for (e in t)e in n || (u[e] = t[e]);
+ return function (n) {
+ for (e in r)u[e] = r[e](n);
+ return u
+ }
+ }
+
+ function vu(n, t) {
+ return n = +n, t = +t, function (e) {
+ return n * (1 - e) + t * e
+ }
+ }
+
+ function du(n, t) {
+ var e, r, u, i = il.lastIndex = ol.lastIndex = 0, o = -1, a = [], c = [];
+ for (n += "", t += ""; (e = il.exec(n)) && (r = ol.exec(t));)(u = r.index) > i && (u = t.slice(i, u), a[o] ? a[o] += u : a[++o] = u), (e = e[0]) === (r = r[0]) ? a[o] ? a[o] += r : a[++o] = r : (a[++o] = null, c.push({
+ i: o,
+ x: vu(e, r)
+ })), i = ol.lastIndex;
+ return i < t.length && (u = t.slice(i), a[o] ? a[o] += u : a[++o] = u), a.length < 2 ? c[0] ? (t = c[0].x, function (n) {
+ return t(n) + ""
+ }) : function () {
+ return t
+ } : (t = c.length, function (n) {
+ for (var e, r = 0; t > r; ++r)a[(e = c[r]).i] = e.x(n);
+ return a.join("")
+ })
+ }
+
+ function mu(n, t) {
+ for (var e, r = ta.interpolators.length; --r >= 0 && !(e = ta.interpolators[r](n, t)););
+ return e
+ }
+
+ function yu(n, t) {
+ var e, r = [], u = [], i = n.length, o = t.length, a = Math.min(n.length, t.length);
+ for (e = 0; a > e; ++e)r.push(mu(n[e], t[e]));
+ for (; i > e; ++e)u[e] = n[e];
+ for (; o > e; ++e)u[e] = t[e];
+ return function (n) {
+ for (e = 0; a > e; ++e)u[e] = r[e](n);
+ return u
+ }
+ }
+
+ function Mu(n) {
+ return function (t) {
+ return 0 >= t ? 0 : t >= 1 ? 1 : n(t)
+ }
+ }
+
+ function xu(n) {
+ return function (t) {
+ return 1 - n(1 - t)
+ }
+ }
+
+ function bu(n) {
+ return function (t) {
+ return .5 * (.5 > t ? n(2 * t) : 2 - n(2 - 2 * t))
+ }
+ }
+
+ function _u(n) {
+ return n * n
+ }
+
+ function wu(n) {
+ return n * n * n
+ }
+
+ function Su(n) {
+ if (0 >= n)return 0;
+ if (n >= 1)return 1;
+ var t = n * n, e = t * n;
+ return 4 * (.5 > n ? e : 3 * (n - t) + e - .75)
+ }
+
+ function ku(n) {
+ return function (t) {
+ return Math.pow(t, n)
+ }
+ }
+
+ function Eu(n) {
+ return 1 - Math.cos(n * Ra)
+ }
+
+ function Au(n) {
+ return Math.pow(2, 10 * (n - 1))
+ }
+
+ function Nu(n) {
+ return 1 - Math.sqrt(1 - n * n)
+ }
+
+ function Cu(n, t) {
+ var e;
+ return arguments.length < 2 && (t = .45), arguments.length ? e = t / La * Math.asin(1 / n) : (n = 1, e = t / 4), function (r) {
+ return 1 + n * Math.pow(2, -10 * r) * Math.sin((r - e) * La / t)
+ }
+ }
+
+ function zu(n) {
+ return n || (n = 1.70158), function (t) {
+ return t * t * ((n + 1) * t - n)
+ }
+ }
+
+ function qu(n) {
+ return 1 / 2.75 > n ? 7.5625 * n * n : 2 / 2.75 > n ? 7.5625 * (n -= 1.5 / 2.75) * n + .75 : 2.5 / 2.75 > n ? 7.5625 * (n -= 2.25 / 2.75) * n + .9375 : 7.5625 * (n -= 2.625 / 2.75) * n + .984375
+ }
+
+ function Lu(n, t) {
+ n = ta.hcl(n), t = ta.hcl(t);
+ var e = n.h, r = n.c, u = n.l, i = t.h - e, o = t.c - r, a = t.l - u;
+ return isNaN(o) && (o = 0, r = isNaN(r) ? t.c : r), isNaN(i) ? (i = 0, e = isNaN(e) ? t.h : e) : i > 180 ? i -= 360 : -180 > i && (i += 360), function (n) {
+ return st(e + i * n, r + o * n, u + a * n) + ""
+ }
+ }
+
+ function Tu(n, t) {
+ n = ta.hsl(n), t = ta.hsl(t);
+ var e = n.h, r = n.s, u = n.l, i = t.h - e, o = t.s - r, a = t.l - u;
+ return isNaN(o) && (o = 0, r = isNaN(r) ? t.s : r), isNaN(i) ? (i = 0, e = isNaN(e) ? t.h : e) : i > 180 ? i -= 360 : -180 > i && (i += 360), function (n) {
+ return ct(e + i * n, r + o * n, u + a * n) + ""
+ }
+ }
+
+ function Ru(n, t) {
+ n = ta.lab(n), t = ta.lab(t);
+ var e = n.l, r = n.a, u = n.b, i = t.l - e, o = t.a - r, a = t.b - u;
+ return function (n) {
+ return ht(e + i * n, r + o * n, u + a * n) + ""
+ }
+ }
+
+ function Du(n, t) {
+ return t -= n, function (e) {
+ return Math.round(n + t * e)
+ }
+ }
+
+ function Pu(n) {
+ var t = [n.a, n.b], e = [n.c, n.d], r = ju(t), u = Uu(t, e), i = ju(Fu(e, t, -u)) || 0;
+ t[0] * e[1] < e[0] * t[1] && (t[0] *= -1, t[1] *= -1, r *= -1, u *= -1), this.rotate = (r ? Math.atan2(t[1], t[0]) : Math.atan2(-e[0], e[1])) * Pa, this.translate = [n.e, n.f], this.scale = [r, i], this.skew = i ? Math.atan2(u, i) * Pa : 0
+ }
+
+ function Uu(n, t) {
+ return n[0] * t[0] + n[1] * t[1]
+ }
+
+ function ju(n) {
+ var t = Math.sqrt(Uu(n, n));
+ return t && (n[0] /= t, n[1] /= t), t
+ }
+
+ function Fu(n, t, e) {
+ return n[0] += e * t[0], n[1] += e * t[1], n
+ }
+
+ function Hu(n, t) {
+ var e, r = [], u = [], i = ta.transform(n), o = ta.transform(t), a = i.translate, c = o.translate, l = i.rotate, s = o.rotate, f = i.skew, h = o.skew, g = i.scale, p = o.scale;
+ return a[0] != c[0] || a[1] != c[1] ? (r.push("translate(", null, ",", null, ")"), u.push({
+ i: 1,
+ x: vu(a[0], c[0])
+ }, {
+ i: 3,
+ x: vu(a[1], c[1])
+ })) : r.push(c[0] || c[1] ? "translate(" + c + ")" : ""), l != s ? (l - s > 180 ? s += 360 : s - l > 180 && (l += 360), u.push({
+ i: r.push(r.pop() + "rotate(", null, ")") - 2,
+ x: vu(l, s)
+ })) : s && r.push(r.pop() + "rotate(" + s + ")"), f != h ? u.push({
+ i: r.push(r.pop() + "skewX(", null, ")") - 2,
+ x: vu(f, h)
+ }) : h && r.push(r.pop() + "skewX(" + h + ")"), g[0] != p[0] || g[1] != p[1] ? (e = r.push(r.pop() + "scale(", null, ",", null, ")"), u.push({
+ i: e - 4,
+ x: vu(g[0], p[0])
+ }, {
+ i: e - 2,
+ x: vu(g[1], p[1])
+ })) : (1 != p[0] || 1 != p[1]) && r.push(r.pop() + "scale(" + p + ")"), e = u.length, function (n) {
+ for (var t, i = -1; ++i < e;)r[(t = u[i]).i] = t.x(n);
+ return r.join("")
+ }
+ }
+
+ function Ou(n, t) {
+ return t = (t -= n = +n) || 1 / t, function (e) {
+ return (e - n) / t
+ }
+ }
+
+ function Iu(n, t) {
+ return t = (t -= n = +n) || 1 / t, function (e) {
+ return Math.max(0, Math.min(1, (e - n) / t))
+ }
+ }
+
+ function Yu(n) {
+ for (var t = n.source, e = n.target, r = Vu(t, e), u = [t]; t !== r;)t = t.parent, u.push(t);
+ for (var i = u.length; e !== r;)u.splice(i, 0, e), e = e.parent;
+ return u
+ }
+
+ function Zu(n) {
+ for (var t = [], e = n.parent; null != e;)t.push(n), n = e, e = e.parent;
+ return t.push(n), t
+ }
+
+ function Vu(n, t) {
+ if (n === t)return n;
+ for (var e = Zu(n), r = Zu(t), u = e.pop(), i = r.pop(), o = null; u === i;)o = u, u = e.pop(), i = r.pop();
+ return o
+ }
+
+ function Xu(n) {
+ n.fixed |= 2
+ }
+
+ function $u(n) {
+ n.fixed &= -7
+ }
+
+ function Bu(n) {
+ n.fixed |= 4, n.px = n.x, n.py = n.y
+ }
+
+ function Wu(n) {
+ n.fixed &= -5
+ }
+
+ function Ju(n, t, e) {
+ var r = 0, u = 0;
+ if (n.charge = 0, !n.leaf)for (var i, o = n.nodes, a = o.length, c = -1; ++c < a;)i = o[c], null != i && (Ju(i, t, e), n.charge += i.charge, r += i.charge * i.cx, u += i.charge * i.cy);
+ if (n.point) {
+ n.leaf || (n.point.x += Math.random() - .5, n.point.y += Math.random() - .5);
+ var l = t * e[n.point.index];
+ n.charge += n.pointCharge = l, r += l * n.point.x, u += l * n.point.y
+ }
+ n.cx = r / n.charge, n.cy = u / n.charge
+ }
+
+ function Gu(n, t) {
+ return ta.rebind(n, t, "sort", "children", "value"), n.nodes = n, n.links = ri, n
+ }
+
+ function Ku(n, t) {
+ for (var e = [n]; null != (n = e.pop());)if (t(n), (u = n.children) && (r = u.length))for (var r, u; --r >= 0;)e.push(u[r])
+ }
+
+ function Qu(n, t) {
+ for (var e = [n], r = []; null != (n = e.pop());)if (r.push(n), (i = n.children) && (u = i.length))for (var u, i, o = -1; ++o < u;)e.push(i[o]);
+ for (; null != (n = r.pop());)t(n)
+ }
+
+ function ni(n) {
+ return n.children
+ }
+
+ function ti(n) {
+ return n.value
+ }
+
+ function ei(n, t) {
+ return t.value - n.value
+ }
+
+ function ri(n) {
+ return ta.merge(n.map(function (n) {
+ return (n.children || []).map(function (t) {
+ return {source: n, target: t}
+ })
+ }))
<TRUNCATED>